// TRAK_PARAM - This is the name of the query string parameter which
// contains the Active-Trak servlet url.
//
// MESSAGE_MSG_SECURE_KEY is also the name of the cookie which
// stores the message identifier.
var TRAK_PARAM = 'MESSAGE_MSG_SECURE_KEY';


/*
 * Pass an Active-Trak url to this function.  
 * The message identifier section (?MESSAGE_MSG_SECURE_KEY=ABCD.WXYZ)
 * will be added to the url and it will be loaded into an image object.
 *
 * The message identifier is retrieved from:
 *	1. Query String (then saved in cookie) or
 *	2. Cookie.
 *	3. No message identifier - track against Active-Trak entity.
 */
function activeTrackURL(activeTrakURL) {

	QueryString_Parse();	
	var trackValue = QueryString(TRAK_PARAM);
	
	if(trackValue == null || trackValue == '') // no active-Trak parameter in query string
	{	
		trackValue = GetCookie(TRAK_PARAM)	// get  active-Trak parameter from cookie
		
		if(trackValue == null || trackValue == '') { // if not in cookie
			if(window.TRACK_VALUE)
			{
				trackValue = TRACK_VALUE;
			}
		}		
	}
	else {		
		SaveCookie(TRAK_PARAM,trackValue)
	}
	
	if(activeTrakURL && activeTrakURL != null) {	
		var parameterisedURL = activeTrakURL;
		if(trackValue!=null && trackValue != '') {
			parameterisedURL = parameterisedURL + '&' + TRAK_PARAM + '=' + trackValue;
		}
	
		image1 = new Image();
		image1.src = parameterisedURL;
	}
}

//
// QueryString
//

function QueryString(key)
{
	var value = null;
	for (var i=0;i<QueryString.keys.length;i++)
	{
		if (QueryString.keys[i]==key)
		{
			value = QueryString.values[i];
			break;
		}
	}
	return value;
}
QueryString.keys = new Array();
QueryString.values = new Array();

function QueryString_Parse()
{
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	
	for (var i=0;i<pairs.length;i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			QueryString.keys[QueryString.keys.length] = argname;
			QueryString.values[QueryString.values.length] = value;		
		}
	}
}


function SaveCookie(container,value)
{
	document.cookie = container + "=" + value;
}

function GetCookie(container)
{
	var allcookies = document.cookie;
	var pos = allcookies.indexOf(container + "=");
	
	if (pos != -1)
	{
		var start = pos + container.length;
		var end = allcookies.indexOf(";",start);
		if (end == -1) end = allcookies.length;
		var value = allcookies.substring(start+1,end);
		return unescape(value);
	}
		else
	{
		return '';
	}
}
