/** Code by www.labsmedia.com */
var clickHeatGroup="";
var clickHeatSite="";
var clickHeatServer="";
var clickHeatLastIframe=-1;
var clickHeatTime=0;
var clickHeatQuota=-1;
var clickHeatBrowser="";
var clickHeatDocument="";
var clickHeatDebug=(window.location.href.search(/debugclickheat/)!=-1);

function showClickHeatDebug(a){
	if(clickHeatDebug==true)
	{
		document.getElementById("clickHeatDebuggerSpan").innerHTML=a;
		document.getElementById("clickHeatDebuggerDiv").style.display="block"
	}
}

function catchClickHeat(l){
	try{
		showClickHeatDebug("Gathering click data...");
		if(clickHeatQuota==0){
			showClickHeatDebug("Click not logged: quota reached");
			return true
		}
		if(clickHeatGroup==""){
			showClickHeatDebug("Click not logged: group name empty (clickHeatGroup)");
			return true
		}
		if(l==undefined){
			l=window.event;
			c=l.button;
			element=l.srcElement
		}	
		else{
			c=l.which;
			element=null
		}
		if(c==0){
			showClickHeatDebug("Click not logged: no button pressed");
			return true
		}
		if(element!=null&&element.tagName.toLowerCase()=="iframe"){
			if(element.sourceIndex==clickHeatLastIframe){
				showClickHeatDebug("Click not logged: same iframe (a click on iframe opens a popup and popup is closed => iframe gets the focus again)");
				return true
			}
			clickHeatLastIframe=element.sourceIndex
		}
		else{
			clickHeatLastIframe=-1
		}
		var o=l.clientX;
		var n=l.clientY;
		var p=clickHeatDocument.clientWidth!=undefined?clickHeatDocument.clientWidth:window.innerWidth;
		var k=clickHeatDocument.clientHeight!=undefined?clickHeatDocument.clientHeight:window.innerHeight;
		var j=window.pageXOffset==undefined?clickHeatDocument.scrollLeft:window.pageXOffset;
		var g=window.pageYOffset==undefined?clickHeatDocument.scrollTop:window.pageYOffset;
		if(o>p||n>k){
			showClickHeatDebug("Click not logged: out of document (should be a click on scrollbars)");
			return true
		}
		clickTime=new Date();
		if(clickTime.getTime()-clickHeatTime<1000){
			showClickHeatDebug("Click not logged: at least 1 second between clicks");
			return true
		}
		clickHeatTime=clickTime.getTime();
		if(clickHeatQuota>0){
			clickHeatQuota=clickHeatQuota-1
		}
		params="s="+clickHeatSite+"&g="+clickHeatGroup+"&x="+(o+j)+"&y="+(n+g)+"&w="+p+"&b="+clickHeatBrowser+"&c="+c+"&random="+Date();
		showClickHeatDebug("Ready to send click data...");
		var m=false;
		if(clickHeatServer.substring(0,4)!="http"){
			var d=false;
			try{
				d=new ActiveXObject("Msxml2.XMLHTTP")
			}
			catch(r){
				try{
					d=new ActiveXObject("Microsoft.XMLHTTP")
				}
				catch(a){
					d=null
				}
			}
			if(!d&&typeof XMLHttpRequest!=undefined){
				d=new XMLHttpRequest()
			}
			if(d){
				d.onreadystatechange=function(){
					if(d.readyState==4){
						if(d.status==200){
							showClickHeatDebug("Click recorded at "+clickHeatServer+" with the following parameters:<br />x = "+(o+j)+" ("+o+"px from left + "+j+"px of horizontal scrolling)<br />y = "+(n+g)+" ("+n+"px from top + "+g+"px of vertical scrolling)<br />width = "+p+"<br />browser = "+clickHeatBrowser+"<br />click = "+c+"<br />site = "+clickHeatSite+"<br />group = "+clickHeatGroup+"<br /><br />Server answer: "+d.responseText)
						}
						else{
							if(d.status==404){
								showClickHeatDebug("click.php was not found at: "+(clickHeatServer!=""?clickHeatServer:"/clickheat/click.php")+" please set clickHeatServer value")
							}
							else{
								showClickHeatDebug("click.php returned a status code "+d.status+" with the following error: "+d.responseText)
							}
						}
					}
				}
				d.open("GET",clickHeatServer+"?"+params,true);
				d.setRequestHeader("Connection","close");
				d.send(null);
				m=true
			}
		}
		if(m==false){
			if(clickHeatDebug==true){
				showClickHeatDebug("Click recorded at "+clickHeatServer+" with the following parameters:<br />x = "+(o+j)+" ("+o+"px from left + "+j+"px of horizontal scrolling)<br />y = "+(n+g)+" ("+n+"px from top + "+g+"px of vertical scrolling)<br />width = "+p+"<br />browser = "+clickHeatBrowser+"<br />click = "+c+"<br />site = "+clickHeatSite+"<br />group = "+clickHeatGroup+'<br /><br />Server answer:<br /><iframe src="'+clickHeatServer+"?"+params+'" width="700" height="60"></iframe>')
			}
			else{
				var q=new Image();
				q.src=clickHeatServer+"?"+params
			}
		}
	}
	catch(f){
		showClickHeatDebug("An error occurred while processing click (Javascript error): "+l.message)
	}
	return true
}

function initClickHeat(){
	if(clickHeatDebug==true){
		document.write('<div id="clickHeatDebuggerDiv" style="padding:5px; display:none; position:absolute; top:10px; left:10px; border:1px solid #888; background-color:#eee; z-index:99;"><strong>ClickHeat debug: <a href="#" onmouseover="document.getElementById(\'clickHeatDebuggerDiv\').style.display = \'none\'; return false">Rollover to close</a></strong><br /><br /><span id="clickHeatDebuggerSpan"></span></div>')
	}
	if(clickHeatGroup==""||clickHeatServer==""){
		showClickHeatDebug("ClickHeat NOT initialised: either clickHeatGroup or clickHeatServer is empty");
		return false
	}
	domain=window.location.href.match(/http:\/\/[^/]+\//);
	if(domain!=null&&clickHeatServer.substring(0,domain[0].length)==domain[0]){
		clickHeatServer=clickHeatServer.substring(domain[0].length-1,clickHeatServer.length)
	}
	if(document.addEventListener){
		document.addEventListener("mousedown",catchClickHeat,false)
	}
	else{
		if(document.attachEvent){
			document.attachEvent("onmousedown",catchClickHeat)
		}
	}
	iFrames=document.getElementsByTagName("iframe");
	for(i=0;i<iFrames.length;i++){
		if(document.addEventListener){iFrames[i].addEventListener("focus",catchClickHeat,false)
		}
		else{
			if(document.attachEvent){
				iFrames[i].attachEvent("onfocus",catchClickHeat)
			}
		}
	}
	clickHeatDocument=(document.documentElement!=undefined&&document.documentElement.clientHeight!=0)?document.documentElement:document.body;var a=navigator.userAgent!=undefined?navigator.userAgent.toLowerCase().replace(/-/g,""):"";
	clickHeatBrowser=a.replace(/iceweasel/,"firefox").replace(/^.*(firefox|kmeleon|safari|msie|opera).*$/,"$1");
	if(a==clickHeatBrowser||clickHeatBrowser==""){
		clickHeatBrowser="unknown"
	}
	showClickHeatDebug("ClickHeat initialised with:<br />site = "+clickHeatSite+"<br />group = "+clickHeatGroup+"<br />server = "+clickHeatServer+"<br />quota = "+(clickHeatQuota==-1?"unlimited":clickHeatQuota)+"<br /><br />browser = "+clickHeatBrowser)
};
