
var ccmStatsTracker={  

	//this is one way to track browser interactions, between full page loads
    //although it would be better to call this from within the block itself
    //ccmStatsTracker.trackEvent('Event Name','Event URL');
    
	integrate:function(){ 
	 
    	if( !jQuery || typeof(jQuery.Event)!='function') return;  
		
		$(window).unload(function(){ ccmStatsTracker.unload(); })
        
		//catch click events as they bubble up to the document root. 
    	this.addEvent(document, 'click', function(e){ 
            if(!e) e = window.event;
            var targ = (typeof(e.target)!= 'undefined') ? e.target : e.srcElement; 
            var jqObj=$(targ); 
            //is image slider  
            if( targ.nodeName.toLowerCase()=='img' && jqObj.parents('.ccm-imageSlider-wrapper').length ){ 
            	if(jqObj.parents('.ccm-imageSlider-nextBtnMovie').length){
                	ccmStatsTracker.trackEvent('Image Slider Next');
                }else if(jqObj.parents('.ccm-imageSlider-prevBtnMovie').length){
                	ccmStatsTracker.trackEvent('Image Slider Previous');
                }else if(jqObj.parents('.ccm-imageSlider-playBtnMovie').length){
                	ccmStatsTracker.trackEvent('Image Slider Play');
                }else if(jqObj.parents('.ccm-imageSlider-pauseBtnMovie').length){
                	ccmStatsTracker.trackEvent('Image Slider Pause');
                } 
            }else if( targ.nodeName.toLowerCase()=='a' && jqObj.attr('href')){
				var d=jqObj.attr('href').toLowerCase();
				if( d.indexOf("http")==0 && d.indexOf("http://www.maargrafisk.dk")==-1 && d.indexOf("http://www.maargrafisk.dk")==-1 && d.indexOf("#")!=0  ){
					ccmStatsTracker.trackEvent(  'External Link:  '+jqObj.html(),  jqObj.attr('href')  );
					return true; 	
				}
			} 
        }); 
        
        //bubble up method doesn't work with lightbox
        if( typeof($(document).lightBox)=='function'){ 
            $('a.ccmGalleryImage img').each(function(i,el){ 
                ccmStatsTracker.addEvent(el, 'click', function(e){
                    if(!e) e = window.event;
                    var targ = (typeof(e.target)!= 'undefined') ? e.target : e.srcElement; 
                    if(!targ || !targ.parentNode) return; 
                    var t=(targ.parentNode.title)?targ.parentNode.title:targ.parentNode.href;
                    ccmStatsTracker.trackEvent('Gallery Popup: '+t,targ.parentNode.href);
                });
            }); 
            $('a.zoomImage img').each(function(i,el){
                ccmStatsTracker.addEvent(el, 'click', function(e){  
                    if(!e) e = window.event;
                    var targ = (typeof(e.target)!= 'undefined') ? e.target : e.srcElement;
                    if(!targ || !targ.parentNode) return;
                    ccmStatsTracker.trackEvent('Zoom Image: '+targ.src,targ.src);
                });
            }); 
        }        
    },
	//this'll capture the user's flash version and screen resolution
	trackHit:function(){		
		var ws=this.getWindowSize(); 
		var q='mode=tracking_img';
		//q='b='+encodeURIComponent(Browser.Engine.name);
		//q+='&bv='+encodeURIComponent(Browser.Engine.version);  
		//q+='&p='+encodeURIComponent(Browser.Platform.name);
		q+='&fv='+this.majorFlashVersion();
		q+='&wx='+ws.x+'&wy='+ws.y;
		q+='&site='+0;  
		q+='&t='+encodeURIComponent(document.title);
		q+='&url='+encodeURIComponent(window.location);
		q+='&ref='+encodeURIComponent(document.referrer);
		q+='&time='+parseInt(new Date().getTime().toString().substring(0, 10));		
		var url='/index.php/tools/packages/tony_stats/services/?'+q; 
		if(!this.trackPgViewImg)
			 this.trackPgViewImg=this.getSpacerImg('ParticleTrafficUserAgent',url); 
		else this.trackPgViewImg.src=url;
        //alert(this.trackPgViewImg.src); 
	},	
	//call this to track events that occur between full page loads, like ajax or flash events
	trackEvent:function(eventName,eventUrl){		
		if(!eventUrl) eventUrl=window.location;		
		var q='mode=track_event&site=0&title='+encodeURIComponent(eventName)+'&url='+eventUrl;
		var requestUrl='/index.php/tools/packages/tony_stats/services/?'+q;
		if(!this.trackEventImg){
			this.trackEventImg=this.getSpacerImg('ParticleTrafficEventTracker',requestUrl); 
		}else{
			this.trackEventImg.src=requestUrl;
		}
	},	
	
	unload:function(){ 	
		var q='mode=page_unload';
		var requestUrl='/index.php/tools/packages/tony_stats/services/?'+q; 
		if(!this.trackEventImg){
			this.trackEventImg=this.getSpacerImg('ParticleTrafficEventTracker',requestUrl); 
		}else{
			this.trackEventImg.src=requestUrl;
		}
	},
	
	getSpacerImg:function(id,url){
		var trackImg=document.createElement('img');
		trackImg.id=id;
		trackImg.src=url;  
		trackImg.style.width='1px';
		trackImg.style.height='1px';
		trackImg.style.position='absolute';
		return trackImg;
	},	
	getWindowSize:function(){
		var e = window, a = 'inner';
		if(!('innerWidth' in e)){
			var t = document.documentElement
			e = t && t.clientWidth ? t : document.body 
			a = 'client';
		}
		return {x: e[a+'Width'],y: e[a+'Height']}
	}, 	
	
	flashVersion:function(){ 
		try { 
			try { 
				// avoid fp6 minor version lookup issues 
				// see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/ 
				var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6'); 
				try { axo.AllowScriptAccess = 'always'; } 
				catch(e) { return '6,0,0'; } 
			} catch(e) {} 
			return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1]; 
		// other browsers 
		} catch(e) { 
			try { 
				if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){ 
					return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1]; 
				} 
			} catch(e) {} 
		} 
		return '0,0,0'; 
	},
	majorFlashVersion:function(){
		var v=this.flashVersion();
		if( v.indexOf(',')<=0 ) return 0; 
		return v.substring( 0, v.indexOf(',') ); 
	},
    addEvent:function( obj, type, fn ) {
      if ( obj.attachEvent ) {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
        obj.attachEvent( 'on'+type, obj[type+fn] );
      } else
        obj.addEventListener( type, fn, false );
    },
	hasClass:function(el,c){ return (!el.className || el.className.indexOf(c)>-1)?1:0 },
	addClass:function(el,newClass){
		if(!el) return;
		elClasses=(el.className)?el.className.split(' '):[];
		for(i=0;i<elClasses.length;i++)
			if(newClass==elClasses[i]) return;
		el.className=el.className+' '+newClass;
	},
	removeClass:function(el,rmvClass){  
		if(!el || !el.className) return; 
		var elClasses=el.className.split(' ');
		for(i=0;i<elClasses.length;i++)
			if(rmvClass==elClasses[i]){
				elClasses[i]='';
			}
		el.className=elClasses.join(' ');
	},
	toggleClass:function(el,c){
		if( this.hasClass(el,c) )
			 this.removeClass(el,c);
		else this.addClass(el,c);
	},
	$:function(id){ 
		var elements = new Array();
		for (var i = 0; i < arguments.length; i++) {
			var element = arguments[i];
			if (typeof element == 'string')
				element = document.getElementById(element);
			if (arguments.length == 1)
				return element;
			elements.push(element);
		}
		return elements;	
	}	
	
}
ccmStatsTracker.trackHit();
ccmStatsTracker.integrate();