﻿
////
function JC_AddLoadEvent(func) 
	{
	var oldonload = window.onload;
	if (typeof window.onload != 'function') 
		{
		window.onload = func;
		} else {
		window.onload = function() 
			{
			if (oldonload) oldonload();
			func();
			}
		}
	}
////
function JC_AddUnloadEvent(func) 
	{
	var oldunload = window.onunload;
	if (typeof window.onunload != 'function') 
		{
		window.onunload = func;
		} else {
		window.onunload = function() 
			{
			if (oldunload)  oldunload();
			func();
			}
		}
	}
////

function IncludeJavaScript(jsFile)
	{
	document.write('<script type="text/javascript" src="'
								+ jsFile + '"></scr' + 'ipt>'); 
	}
////    
function createCookie(name, value, days)
	{
	if (days) 
		{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
		} else  {
		var expires = "";
		}
	document.cookie = name+"="+value+expires+"; path=/";
	}
////
function getCookie(name)
	{
	var ca = document.cookie.split(';');
	var nameEQ = name + "=";
	for(var i=0; i < ca.length; i++) 
		{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
		}
	return null;
	}
////
function deleteCookie(name)
	{
	createCookie(name, "", -1);
	}
////
function setTrackCookie()
	{
	var msg = '';
	if (jctr != phpSessID)
		{
		deleteCookie(cookieName);
		createCookie(cookieName, phpSessID);
		devOutput('cookie created: ' + phpSessID);	// dev
		}
	devOutput(window.location);
	return phpSessID;
	}
////
function encodeNameAndValue(name, value)
	{
	var param = encodeURIComponent(name);
	param += "=";
	param += encodeURIComponent(value);
	return param;
	}
////
function pageLoaded()
	{
	sendTrackingData(true);
	}
////
function pageUnloaded()
	{
	if (mysqlPageloadId==null || mysqlPageloadId=='') return;
	sendTrackingData(false);
//	alert('pageUnloaded() called');
	} 
////
function sendTrackingData(isPageLoad)
	{
	var params = new Array();
	var qStr = '';
//	alert('pageLoaded() called');
	jctr = setTrackCookie(cookieName);
	oXHR.open("post", trackActionFile, true);
	oXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	oXHR.onreadystatechange = function ()
		{
		if (oXHR.readyState == 4)
			{
			devOutput('oXHR connection got response from action script (' + trackActionFile +')');
			if (oXHR.status==200 || oXHR.status==304)
				{
				devOutput('response from ' + trackActionFile + ' = ' + oXHR.responseText);
				mysqlPageloadId = oXHR.responseText;
				} else {
				devOutput('oXHR error sending tracking data: ' + oXHR.statusText);
				}
			}
		}
	if (mysqlPageloadId!= null) params.push(encodeNameAndValue('id', mysqlPageloadId));
	
	params.push(encodeNameAndValue('sSessID', phpSessID));
	params.push(encodeNameAndValue('sIP', ip));
	params.push(encodeNameAndValue('sReferer', ref));
	params.push(encodeNameAndValue('sUrl', loc));
	params.push(encodeNameAndValue('sUserAgent', agent));
	params.push(encodeNameAndValue('pageLoad', isPageLoad));
	qStr = params.join('&');
	devOutput('qStr: ' + qStr);
	
	oXHR.send(qStr);
	} 



////
function devOutput(msg)
	{
	if (!inDevelopment) return;
	c = document.getElementById('dev').innerHTML;
	document.getElementById('dev').innerHTML = c + (c=='' ? '' : '<div style="border-bottom:1px dotted #666;margin:5px;"></div>') + msg;
	}







































































