// radio tracker
// requires dojo
if(window.radio.track === undefined || window.radio.track === null) {
	window.radio.track = {
		
	    init : function() {
        
            window.radio.track.ga = {};
            
            // init global ga account
            try {
                radio.track.ga.all = _gat._getTracker(window.radio.tracking.gaGlobal);
                radio.track.ga.all._setDomainName(window.radio.tracking.gaDomainName);
                radio.track.ga.all._trackPageview();
                console.debug("track: ga.all initialized");
            } catch(e){}

            // init local ga account
            try {
                radio.track.ga.local = _gat._getTracker(window.radio.tracking.gaLocal);
                radio.track.ga.local._setDomainName(window.radio.tracking.gaDomainName);
                radio.track.ga.local._trackPageview();
                console.debug("track: ga.local initialized");
            } catch(e){}
     
            
            // 3 min heartbeat
            window.setInterval(function() {
                if(window.radio.track.timeonsite  === undefined || window.radio.track.timeonsite === null){    
                    window.radio.track.timeonsite=0;
                }
                window.radio.track.timeonsite=window.radio.track.timeonsite+3;
                radio.track.trackEvent('timeonsite','station',window.radio.jsp.pageSubdomain,window.radio.track.timeonsite);
            
            }, 180000);

            console.info("radio.track.init");

        },
        trackPageview : function(p) {
            
            // google analytics
            if(p.ga || p.ga === undefined || p.ga === null) {
            	 try {
                    radio.track.ga.all._setReferrerOverride(window.radio.jsp.pageReferrerUrl);
                    radio.track.ga.all._trackPageview(p.url);
                } catch(e){}
                
                try {
                    radio.track.ga.local._setReferrerOverride(window.radio.jsp.pageReferrerUrl);
                    radio.track.ga.local._trackPageview(p.url);
                } catch(e){}
                console.debug("track: trackPageview("+p.url+");");
            }
            
            // tracking image
            if(dojo.exists('window.radio.tracking.trackingImage')) {

                // default tracking categories
                if(dojo.byId('trackingcode') === null && dojo.byId('trackingcode') === undefined){
                    
                    // radio.de default
                    if(window.radio.jsp.pageConfigServerSite === 'radio.de') { 
                        var _trackingcode = "012-0;"+windows.radio.jsp.relativeRequestUrl;
                    }
                    // radio.at default
                    if(window.radio.jsp.pageConfigServerSite === 'radio.at') { 
                        var _trackingcode = "Sonstiges/Sonstiges"+windows.radio.jsp.relativeRequestUrl;
                    }
                }
                else {    
                    var _trackingcode = dojo.attr(dojo.byId('trackingcode'),'code'+'');    
                }
                
                var _trackingimage = window.radio.tracking.trackingImage;
                
                var _trackingrand = (Math.random()*100000);
                // radio.at / oewa needs a exception here!
                if(window.radio.jsp.pageConfigServerSite === 'radio.at') { 
                     _trackingrand = (new Date().getTime());
                }
                
                var _trackingurl = _trackingimage+_trackingcode+"?r="+escape(window.radio.jsp.pageReferrerUrl)+"&d="+_trackingrand;
            
                if(dojo.byId('trackingpixel') === null && dojo.byId('trackingpixel') === undefined){
                    dojo.destroy('trackingpixel');
                }
                if(dojo.byId('tracker') === null && dojo.byId('tracker') === undefined){
                	dojo.addOnLoad(function(){
	                		dojo.create('img', {
	 	                    src: _trackingurl,
	 	                    width: '1',
	 	                    height: '1',
	 	                    id: 'trackingpixel'
	 	                }, dojo.byId('body'));
                	});
                	console.debug("track: trackPageview("+_trackingurl+"); -> body");
                }
                else {
	                dojo.create('img', {
	                    src: _trackingurl,
	                    width: '1',
	                    height: '1',
	                    id: 'trackingpixel'
	                }, dojo.byId('tracker'));   
                	console.debug("track: trackPageview("+_trackingurl+"); -> tracker");
                }
                
            }
            
            if(p.url === undefined || p.url === null) {
                p.url = window.location.pathname;
            }
            window.radio.jsp.pageReferrerUrl = 'http://'+window.radio.jsp.pageSubdomain+'.'+window.radio.jsp.pageConfigServerSite+p.url;
            console.debug("referrer: "+window.radio.jsp.pageReferrerUrl);
        },
        trackEvent : function(event) {
            
                // google analytics only
                try {
                    radio.track.ga.all._trackEvent.apply(this, arguments);
                } catch(e){console.warn("track: trackEvent('all');");}
                try {
                    radio.track.ga.local._trackEvent.apply(this, arguments);    
                } catch(e){console.warn("track: trackEvent('local');");}
            
            console.debug("track: trackEvent("+event+");");
            
        },
        setDomainName : function (name) {
            
                // google analytics only
                try {
                    radio.track.ga.all._setDomainName.apply(this, arguments);
                } catch(e){}
                try {
                    radio.track.ga.local._setDomainName.apply(this, arguments);
                } catch(e){}
            
            console.debug("track: setDomainName("+name+");");
            
        },
        setVar : function (v) {
            
                // google analytics only
                try {
                    radio.track.ga.all._setVar.apply(this, arguments);
                } catch(e){}
                try {
                    radio.track.ga.local._setVar.apply(this, arguments);
                } catch(e){}
            
            console.debug("track: setVar("+v+");");
        }
    };
}
window.radio.track.init();
