// JScript source code

_objReq = null;
_objCookie = null;

//TRACKING FUNCTIONS
function SendPageTrackInfo(TrackURL)
{
	SendTrackInfo(TrackURL, false);
}

function SendMailTrackInfo(TrackURL)
{
	SendTrackInfo(TrackURL, true);
}
//END TRACKING FUNCTIONS

function SendTrackInfo(TrackURL, IsEmail)
{
	var SE_ID, MB_ID, MSC_RefURL, MSC_PageCode
	var bitTrack;
	
	bitTrack = LoadQueryParam("track");
	
	if (bitTrack == "0")
	{
		return;
	}
	
	SE_ID = LoadParam("SE_ID");
	MB_ID = LoadParam("MB_ID");
	MSC_PageCode = GetPageCode();
	
	MSC_RefURL = LoadParam("MSC_RefURL");
	
	if (MSC_RefURL == null)
    {	
	    MSC_RefURL = document.referrer;
	    SaveParam("MSC_RefURL", MSC_RefURL);
    }
    
   	if (IsEmail)
	{
		TrackURL = TrackURL + "?IsEmail=1"
	}
	else
	{
		TrackURL = TrackURL + "?IsEmail=0"
	}
	
	TrackURL = TrackURL + "&SE_ID=" + SE_ID + "&MB_ID=" + MB_ID + "&MSC_RefURL=" 
		+ URLEncode(MSC_RefURL) + "&MSC_PageCode=" + URLEncode(MSC_PageCode);
	
	Send(TrackURL);
}

function RequestObject()
{
	if (_objReq != null)
	{
		return _objReq;
	}

	_objReq = new Object();
    
	separator = ',';
    
	query = '' + this.location;
	qu = query;
	
    query = query.substring((query.indexOf('?')) + 1);
    
	if (query.length < 1) 
	{ 
		return false; 
	}
	
	keypairs = new Object();
	numKP = 1;
    
	while (query.indexOf('&') > -1) 
	{
		keypairs[numKP] = query.substring(0,query.indexOf('&'));
		query = query.substring((query.indexOf('&')) + 1);
		numKP++;
	}

	keypairs[numKP] = query;
    
	for (i in keypairs) 
	{
		keyName = keypairs[i].substring(0,keypairs[i].indexOf('='));
		keyValue = keypairs[i].substring((keypairs[i].indexOf('=')) + 1);
   
		while (keyValue.indexOf('+') > -1) 
		{
			keyValue = keyValue.substring(0,keyValue.indexOf('+')) + ' ' + keyValue.substring(keyValue.indexOf('+') + 1);
        }
        
		keyValue = unescape(keyValue);
		
      
		if (_objReq[keyName]) 
		{
			_objReq[keyName] = _objReq[keyName] + separator + keyValue;
        
		} 
		else 
		{
			_objReq[keyName] = keyValue;
		}
	}
	
	return _objReq;
}

function CookieObject()
{
	if (_objCookie != null)
	{
		return _objCookie;
	}
	
	var expirationDate = new Date();
	expirationDate.setHours(48); //at least 1 day
	
	_objCookie = new Cookie(expirationDate);
	
	return _objCookie;
}

function SaveParam(Name, Value)
{
	_objCookie = CookieObject();
	
	_objCookie.Set(Name, Value);
}

function LoadParam(Name)
{
	var Value;

	//1. Check Query string
	_objReq = RequestObject();
	Value = eval("_objReq." + Name);

	//2. If found save in cookie SaveParam
	if (Value != null)
	{
		SaveParam(Name, Value);
	}

	//3. Laways it Get from the Cookie
	_objCookie = CookieObject();

	return _objCookie.Get(Name);
}

function LoadQueryParam(Name)
{
	var Value;

	//1. Check Query string
	_objReq = RequestObject();
	Value = eval("_objReq." + Name);
	
	return Value;
}

/* Helper Routines*/

function Send(TrackURL)
{
	var objImg = new Image(1,1);
	objImg.src = TrackURL;
	objImg.onload = function() {EmptyFunc();}
}

function EmptyFunc() 
{ 
	return; 
}

function URLEncode(Value)
{
	if (Value == null)
	{
		return "";
	}
	else
	{
		return escape(Value);
	}
}

function GetPageCode()
{
	var pagePath = window.location.pathname;
	var rExpName = new RegExp("/(\\w+)\\.\\w{1,4}$", "g");
	var arr = rExpName.exec(pagePath);

	if (arr != null && arr.length > 0)
	{
		pagePath = arr[1];
	}
	
	return pagePath;
}

function AddQueryStringParam(url, paramName, paramValue, isFirstParam)
{
	var separator = "&";

	if (isFirstParam)
	{
		separator = "?";
	}
	
	url = url + separator + paramName + "=" + URLEncode(paramValue);
	return url;
}

/* End Helper Routines*/

/*Cookie Class*/

function Cookie(expirationDate)
{
	this.ExpirationDate = expirationDate;

	if (document.cookie == '')
	{
		document.cookie = 'cookieName=Locator; expires=' + expirationDate.toGMTString();
	}

	this.Get = function(Name)
	{
		var result = null;
		var cookieString = document.cookie;

		var NameString = Name + '=';
		var NameStartIndex = cookieString.indexOf(NameString);

		if (NameStartIndex != -1)
		{
			var ValueStartIndex = NameStartIndex + NameString.length;
			var NextSeparatorIndex = cookieString.indexOf(";", NameStartIndex);
			
			if (NextSeparatorIndex == -1)
			{
				NextSeparatorIndex = cookieString.length;
			}
			
			result = cookieString.substring(ValueStartIndex, NextSeparatorIndex);
			result = unescape(result);
		}

		return result;
	}

	this.Set = function(Name, Value)
	{
		document.cookie = Name + '=' + escape(Value) + '; expires=' + this.ExpirationDate.toGMTString();
	}
}

/*End of Cookie Routines*/