// ==UserScript==
// @name Show Full Title for Google
// @include *://*.google.*/search?*
// ==/UserScript==

(function(){
var rets = document.evaluate('id("ires")/ol/li/div/h3/a', document, null, 7, null);
for (var i=0; i<rets.snapshotLength; i++) {
var a = rets.snapshotItem(i);
var txt = a.innerHTML;
if (/<b>...<\/b>$/.test(txt)) a.addEventListener('mouseover', getTitle, false);
}

function getTitle() {
var cacheUrl = this.parentNode.parentNode.querySelector('div.s div.f span.gl a');
if (!cacheUrl) return;

var that = this;
GM_xmlhttpRequest({
method: 'GET',
url: cacheUrl,
onload: function (res) {
if (/<title>(.*?)<\/title>/i.test(res.responseText)) {
that.innerHTML = RegExp.$1.replace(/<b.+?>/g, '<em>').replace(/<\/b>/g, '</em>');
that.removeEventListener('mouseover', getTitle, false);
}
}
});
}
})();