
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; 
        
        
        
		//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');
                } 
            }  
        }); 
        
        //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;
		}
	},	
	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 );
    }
	
}
ccmStatsTracker.trackHit();
ccmStatsTracker.integrate();