/**
 * All clicks on links being tracked as pageviewes
 */
PJTracker = {

    initTracker : function(){
        PJTracker.userid = PJTracker.getUser();
        PJTracker.sessionId = PJTracker.getCookie("jsessionid");
        PJTracker.trackPageView("load" ,document.referrer, window.location, PJTracker.userid)

        externalLinks = document.evaluate( '//a[contains(@href, "http://")][not(contains(@href, "'+ location.hostname +'"))]' ,document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null )

        while(extLink = externalLinks.iterateNext()){
            PJTracker.addEvent(extLink, "keypress", PJTracker.externalClick);
            PJTracker.addEvent(extLink, "click", PJTracker.externalClick);
        }
    },

    addEvent : function (obj, evType, fn){
        if (obj.addEventListener){
            obj.addEventListener(evType, fn, false);
            return true;
        } else if (obj.attachEvent){
            var r = obj.attachEvent("on"+evType, fn);
            return r;
        } else {
            return false;
        }
    },

    externalClick : function (event) {
        var code=event.charCode || event.keyCode;
        if(!code || (code && code == 13)) {
            PJTracker.trackPageView("click",window.location, this.href, PJTracker.userid);
        }
    },

    trackPageView : function (tracker, referrer, url, userid){
        var sc=document.createElement('script');
        sc.type='text/javascript';
        sc.id="_tmp" + Math.random();
        sc.src=PJTracker.host+tracker+'?url='+escape(url)+'&user='+escape(userid)+'&ref='+escape(referrer)+'&sessid='+PJTracker.sessionId+'&'+Math.random();
        document.getElementsByTagName('head')[0].appendChild(sc);
    },

    getUser : function (){
        return PJTracker.getCookie(PJTracker.userCookie)
    },

    getCookie : function (name){
        if (document.cookie.length>0){
            start=document.cookie.indexOf(name + "=");
            if (start!=-1){
                start=start + name.length+1;
                end=document.cookie.indexOf(";",start);
                if (end==-1) end=document.cookie.length;
                return unescape(document.cookie.substring(start+1,end-1));
            }
        }
        return "";
    },

    host : "http://console.plugjam.com/api/events/report/",
    userid : "",
    sessionId : "",
    userCookie : "iPlanetDirectoryPro"
};

PJTracker.addEvent(window, 'load', PJTracker.initTracker);
//window.beforeunload = PJTracker.trackPageView("close", "", window.location, PJTracker.userid);

