Google Analytics with SBM

By yager Last update Mar 9, 2009 — Installed 256 times. Daily Installs: 0, 1, 0, 0, 0, 1, 0, 0, 1, 5, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0
// ==UserScript==
// @name           Google Analytics with SBM
// @namespace      http://creazy.net/
// @description    Add SBM(Hatena Bookmark) Counter besides the Outer URL Link
// @include        https://www.google.com/analytics/*
// ==/UserScript==

(function(){

    var w = (typeof(unsafeWindow) != 'undefined') ? unsafeWindow : window;
    var d = document;
    var t = d.getElementById('Table');
    
    function addSBM() {
        if ( !t ) return false;

        var anchors = t.getElementsByTagName('a');
        var sbms    = null;
        var is_sbm  = 0;
        for ( var i=0; i<anchors.length; i++ ) {
            if ( anchors[i].getAttribute('target') == 'GA_LINKER' && !anchors[i].getAttribute('GM_CHECKED') ) {
                sbms = d.createElement('span');
                sbms.innerHTML
                    = '<a href="http://b.hatena.ne.jp/entry/'+anchors[i].href+'" target="_blank">'
                    + '<img src="http://b.hatena.ne.jp/entry/image/small/'+anchors[i].href+'" border="0" />'
                    + '</a>';
                anchors[i].parentNode.insertBefore(sbms,anchors[i+1]);

                anchors[i].setAttribute('GM_CHECKED',1);
                is_sbm  = 1;
            }
        }

        if ( is_sbm && !d.getElementById('show_sbm') ) {
            var sbm = d.createElement('li');
            sbm.setAttribute('id','show_sbm');
            sbm.innerHTML = '<a href="javascript:void(0);">Show SBM</a>';
            d.getElementById('tab_0').parentNode.appendChild(sbm);
            
            __addEventListener(sbm,"click",addSBM);
        }
    }

    function __addEventListener(e, type, fn) {
        if (e.addEventListener) {
            e.addEventListener(type, fn, false);
        }
        else {
            e.attachEvent('on' + type, function() {
                fn(window.event);
            });
        }
    }

    addSBM();

})();