var iframewin = null;
var startTime;
var actionCount;
addEventLstnr(window, "load", callLogger);

function callLogger(){
	if(document.cookie.indexOf("loggerid=")>-1){//user has an id cookie

		if(iframewin == null)
		{
			iframewin = document.createElement("iframe");
			iframewin.name = "heartbeatframe";
			iframewin.id = "heartbeatframe";
			iframewin.height = 0;
			iframewin.width = 0;
			iframewin.frameBorder = 0;
			iframewin.src = "/empty.htm";
			var bodies = document.getElementsByTagName("body");
			var body = null;
			if(bodies != null && bodies.length > 0)
			{
				body = bodies[0];
				body.appendChild(iframewin);						
			}
		}

		startTime = new Date().getTime();
		actionCount = 0;
		heartbeat();
	}
}
function heartbeat()
{       
        var nameOfPageToBeStored=window.location.href;
	if(typeof displayName != 'undefined')
        {
            var nameOfPageToBeStored=displayName;
        }

	if(typeof pagename != 'undefined')
	{
		nameOfPageToBeStored = pagename;
	}
	actionCount++;
	var z = Number(Math.round((new Date().getTime() - startTime)/1000.0));

		referrerString = encode(document.referrer);
        var version = parseInt(navigator.appVersion)
          // replace is supported
          if (version>=4 || window.location.replace)
        	window.heartbeatframe.location.replace( "/heartbeat.jsp?pagename="+nameOfPageToBeStored+"&pid="+pid+"&timeonpage="+z+"&actioncount="+actionCount+"&referrer="+referrerString);
          else
        	window.heartbeatframe.location.href = "/heartbeat.jsp?pagename="+nameOfPageToBeStored+"&pid="+pid+"&timeonpage="+z+"&actioncount="+actionCount+"&referrer="+referrerString;

	setTimeout("heartbeat()", 20000);
}

function encode(str) {
	var result = "";
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}
	return escape(result);
}

// Add an eventListener to browsers that can do it somehow.
// Originally by Scott Andrew.
function addEventLstnr(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

