// ==UserScript==
// @name           PDF/PPT/TIF viewer with Google docs
// @namespace      http://www.cs.toronto.edu/~murray/
// @include        http://*
// @exclude        http://docs.google.com/*
// @version        1.4
// ==/UserScript==

// Adapted from v1.2 from http://d.hatena.ne.jp/Koonies/

// Wrap up the script in case the browser/extension doesn't (Greasemonkey does)
(function(){

//var favico = "http://docs.google.com/favicon.ico";
// Maybe firefox would cache the favicon, or maybe it would generate lots of
// requests to Google with referrer information. To keep things neater I'll use
// a local copy of the icon (as a heavily squished png):
var favico = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAwFBMVEX///8AZaUAZKQAZKVAirtcpdD3+v9bpNBbpM9bpdBAi7yszePCzNnCzdnDzdrI3+zt9f/y+P9PaYn8/f////8/ibpbpc9Ej7xEj71iephje5lxqcpyqMmImKyNutaOu9aPu9eaqLmhrsKsvdMAZaauuMO9zNzA1OrCyc9PaYpQaYlQaorEzttXmcHa4ejb5O7e7fbm6Ovn8v/o8v/t7/NXmcPu9P/u9f/w8vbw9v9ao8709fVapM75+/9apNBAi7uOdzbOAAAAAXRSTlMAQObYZgAAAJZJREFUeF5VzlUOw0AMRdHYQ2EuMzMz739XjUetlNzPI8t6xtKjfLdv/PJS3XXQK8JxM2kV4LEe1+I8pLvpqADUPAeIADBE/ANi4LSbpwoJwQuDrmkJYXOCJJESnHtKcchASnmDTvmtlLI0RFEYQsOkgy2Be77sD7ASVpYg8Gfxos6qPDt4luipjjGbc/6xGSOg9DCgGV9huw6QnLMNXAAAAABJRU5ErkJggg%3D%3D';

if (location.href.indexOf("http://docs.google.com/") == -1) {
    var l = document.getElementsByTagName("a");
    var i = l.length;
    while (i--) {
        link = l[i];
        if ((link.href.match(/^(ht|f)tps*:([^?]+|[^:]+)\.(pdf|ppt|tif|tiff)$/i)) && !(link.href.match(/docs.google/i))) {
            var newLink = document.createElement("a");
            newLink.href = 'http://docs.google.com/viewer?url=' + link.href;
            newLink.style.border = '0px';
            var ico = document.createElement("img");
            ico.src = favico;
            ico.style.border = '0px';
            newLink.appendChild(ico);
            link.parentNode.insertBefore(newLink, link.nextSibling);
            link.parentNode.insertBefore(document.createTextNode("\u00a0"), link.nextSibling);
        }
    }
}

})();
