/* 
   trac5.js v.2.1 
   Contributor : Adam Vandenberg            - 2006 
   Contributor : www.quirksmode.org         - 2006 
   Contributor : www.predictiveresponse.com - 2007-09 
*/
/*************************************************************
 *  CR 1030 02-Apr-2008 added function trackPredictiveParam()    
 ************************************************************/

var tme = 0;
var tot = "";
//
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.params_indexed = new Array()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

// Turn <plus> back to <space>
// See: https://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
		this.params_indexed[i] = { name:name, value:value };
	}
}

function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = '';
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}

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 readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function deleteCookie(name) {
	createCookie(name,"",-1);
}

function getLeaValue(cam) {
   var nam = 'cam_' + cam;
   var ret = readCookie(nam);
   return ret;
}

function getSfcValue() {
   var nam = 'sfi_';
   var ret = readCookie(nam);
   return ret;
}

//*************************************
// getTrac()
//*************************************
function getTrac(cam,lvl,pag)
{
    var url  = "https://www.predictiveresponse.net/ctrac.php";
    var nam  = "cam_" + cam;
    var ret  = readCookie(nam);
    var out = '<img height=1 width=1 src="' + url + '?cok=' + ret + '&ctr=' + ctr + '&pag=' + pag + '">';
    document.write(out);
}
//*************************************
// embedTrac()
//*************************************
function embedTrac(lvl,pag)
{
    var url  = "https://www.predictiveresponse.net/rtrac.php";
    var qs   = new Querystring();
    var org  = qs.get('org');
    var lea  = qs.get('lea');
    var ite  = qs.get('ite');
    var cam  = qs.get('cam');
    var sid  = qs.get('sid');
    var ctr  = qs.get('ctr');
    var nam  = 'cam_' + cam;
    var oli  = org + '|' + cam + '|' + lea;
    var sfi  = 'sfi_'    + sid;
    createCookie('lid',lea,999);
    createCookie('orgz',org,999);
    var out = '<img height=1 width=1 src="' + url + '?org=' + org  + '&lea=' + lea + '&ite=' + ite + '&lvl=' + --lvl + '&ctr=' + ctr + '&pag=' + pag + '">';
    document.write(out);
    //alert(out);
}
//*************************************
// embedTracking()
//*************************************
function embedTracking(pag)
{
    var url  = "https://www.predictiveresponse.net/rtrac.php";
    var qs   = new Querystring();
    var lvl  = 3;
    var org  = qs.get('org');
    var lea  = qs.get('lea');
    var ite  = qs.get('ite');
    var cam  = qs.get('cam');
    var sid  = qs.get('sid');
    var ctr  = qs.get('ctr');
    var nam  = 'cam_' + cam;
    var oli  = org + '|' + cam + '|' + lea;
    var sfi  = 'sfi_'    + sid;
    //
    deleteCookie('lid');
    deleteCookie('lidz');
    deleteCookie('orgz');
    //
    createCookie('lid',lea,999);
    createCookie('lidz',lea,999);
    createCookie('orgz',org,999);
    //createCookie('sid',sfi,365);
    //createCookie(nam,oli,999);
    var out = '<img height=1 width=1 src="' + url + '?org=' + org  + '&lea=' + lea + '&ite=' + ite + '&lvl=' + --lvl + '&ctr=' + ctr + '&pag=' + pag + '">';
    document.write(out);
    doWebStat(pag);
    //alert(out);
}
//*************************************
// helloWorld
//*************************************
function helloWorld() {
  alert('Hello World');
}
//*************************************
// tracVersion    
//*************************************
function tracVersion() {
  alert('trac.js Version 2.2');
}
//*************************************
// jSleep()
//*************************************
function jSleep(s){
        s=s*1000;
        var a=true;
        var n=new Date();
        var w;
        var sMS=n.getTime();
        while(a){
                w=new Date();
                wMS=w.getTime();
                if(wMS-sMS>s) a=false;
        }
}
//*************************************
// tracPredictive()
//*************************************
function tracPredictive() {
   trackPredictive();
} 
//*************************************
// trackPredictive()
//*************************************
function trackPredictive() {
    var pag   = 0;
    var url  = "https://www.predictiveresponse.net/rtrac.php";
    if (location.href.indexOf('?org') != -1) {
       curl = location.href.split('?');
       curl = curl[0];
    }
    else {
       curl1 = location.href.replace("&org","|"); 
       curl2 = curl1.split("|"); 
       curl  = curl2;  
       curl3 = curl[0];
       curl  = curl3.replace(/&/g,"|");
    }
    //alert(curl);
    var qs   = new Querystring();
    var lvl  = 3;
    var org  = qs.get('org');
    var lea  = qs.get('lea');
    var ite  = qs.get('ite');
    var cam  = qs.get('cam');
    var sid  = qs.get('sid');
    var ctr  = qs.get('ctr');
    var nam  = 'cam_' + cam;
    var oli  = org + '|' + cam + '|' + lea;
    var sfi  = 'sfi_'    + sid;
    //
    if (lea != "") {
       deleteCookie('lid');
       deleteCookie('lidz');
       createCookie('lid',lea,999);
       createCookie('lidz',lea,999);
    }
    else {
       lea = readCookie('lidz');
    }
    if (org != "") {
       deleteCookie('orgz');
       createCookie('orgz',org,999);
    }
    else {
       org = readCookie('orgz');
    }
    //
    var out = '<img height=1 width=1 src="' + url + '?org=' + org  + '&lea=' + lea + '&ite=' + ite + '&lvl=' + --lvl + '&ctr=' + ctr + '&curl=' + curl + '&titl=' + document.title + '">';
    document.write(out);
    jSleep(1);
    if (location.href.indexOf('&timeout=') != -1) {
       trackPredictiveTime(curl);
    }
    if (location.href.indexOf('?redirect=') != -1) {
       trackPredictiveRedirect();
    }
    if (location.href.indexOf('&redirect=') != -1) {
       trackPredictiveRedirect2();
    }
    if (location.href.indexOf('?redirect_np=') != -1) {
       trackPredictiveRedirectNP();
    }
    if (location.href.indexOf('&redirect_np=') != -1) {
       trackPredictiveRedirectNP(); // trackPredictiveRedirectNP2(); - not used
    }
    //alert(out);
    return curl;
}
//*************************************
// trackPredictiveParam()
// to be discontinued.
//*************************************
function trackPredictiveParam() {
    trackPredictive();
}
//*************************************
// trackPredictiveRedirect()
//*************************************
function trackPredictiveRedirect() {
    curl = location.href.split("?");    
    curl2 = curl[1].split("&"); 
    var par = "?" + curl2[1];
    for (i=1;i<curl2.length;i++) {
       par = par + '&' + curl2[i];
       //alert(par);
    }
    var qs          = new Querystring();
    var newURL      = qs.get('redirect');
    redirect        = newURL + par;
    window.location = redirect;
}
//*************************************
// trackPredictiveRedirect2()
//*************************************
function trackPredictiveRedirect2() {
    c0   = location.href.split("?");    
    c1 = c0[1].split("&redirect");    
    c2 = c0[0] + '?' + c1[0]; 
    c3 = c1[1].split("&");
    par = "";
    for (i=1;i<c3.length;i++) {
       par = par + '&' + c3[i];
    }
    var qs          = new Querystring();
    var newURL      = qs.get('redirect');
    redirect        = newURL + '?' + c1[0] + par;
    window.location = redirect;
}
//*************************************
// trackPredictiveRedirectNP()
//*************************************
function trackPredictiveRedirectNP() {
    curl = location.href.split("?");
    par = '';
		params_capture_started = false;
    var qs          = new Querystring();
		for (i=0;i<qs.params_indexed.length;i++) {
			if(qs.params_indexed[i]['name']=='org') break;
      if(params_capture_started) par += ((par=='')?'?':'&') + qs.params_indexed[i]['name'] + '=' + qs.params_indexed[i]['value'];
			if(qs.params_indexed[i]['name'] == 'redirect_np') params_capture_started = true;
    }
    var newURL      = qs.get('redirect_np');
    redirect        = newURL + par;
    window.location = redirect;
		// alert(redirect);
}
//*************************************
// trackPredictiveRedirectNP2()
//*************************************
function trackPredictiveRedirectNP2() {
		// not used any more
    c0   = location.href.split("?");    
    c1 = c0[1].split("&redirect_np=");    
    redirect        = c1[1];
    //alert(redirect);
    window.location = redirect;
}
//*************************************
// trackPredictiveTime()
//*************************************
function trackPredictiveTime(curl) {
    //curl = trackPredictive()
    //alert('trackPredictiveTime');
    var interval = 5000;
    var pag  = 0;
    var url  = "https://www.predictiveresponse.net/ttrac.php";
    //alert(curl);
    var qs   = new Querystring();
    var lvl  = 3;
    var timeout = qs.get('timeout');
    var org  = qs.get('org');
    var lea  = qs.get('lea');
    var ite  = qs.get('ite');
    var cam  = qs.get('cam');
    var sid  = qs.get('sid');
    var ctr  = qs.get('ctr');
    var nam  = 'cam_' + cam;
    var oli  = org + '|' + cam + '|' + lea;
    var sfi  = 'sfi_'    + sid;
    tot =  url + '?org=' + org  + '&lea=' + lea + '&ite=' + ite + '&lvl=' + --lvl + '&ctr=' + ctr + '&curl=' + curl;
    //
    tme = 0;
    if (timeout == undefined) { timeout = 18001; }
    else { timeout = (timeout * 1000) + 1; }
    if (timeout > 600000) { timeout = 600001; }
    //alert(timeout + '-' + interval);
    delta = setInterval("sendHeartBeat()", interval);
    setTimeout ('clearInterval(delta)', timeout);
}
//*************************************
// heartBeat()
//*************************************
function heartBeat(timeout) {
   var interval = 5000;
   tme = 0;
   if (timeout == undefined) { timeout = 18000; }
   if (timeout > 600000) { timeout = 600000; }
   heartbeatTimer = setInterval("sendHeartBeat()", interval);
   setTimeout ('clearInterval(heartbeatTimer)', timeout);
}
//*************************************
// sendHeartBeat()
//*************************************
function sendHeartBeat() {
    tme = tme + 1;
    var  top = (tme * 5);
    var tote = tot + '&seq=' + tme + '&top=' + top;
    //alert('Hello' + tme + '-' + tote);
    dummyimage = new Image();
    dummyimage.src = tote;
    //document.write(tote);
 }
//*************************************
//
//*************************************
function doWebStat(pag)
{
    var url  = "https://www.predictiveresponse.net/wtrac.php";
    var qs   = new Querystring();
    var leaz  = readCookie('lidz');
    var orgz  = readCookie('orgz');
    var out = '<img height=1 width=1 src="' + url + '?orgz=' + orgz  + '&leaz=' + leaz + '&pag=' + pag + '">';
    document.write(out);
    //alert(out);
}

//*************************************
//
//*************************************
function embedDirect(org,lvl,pag)
{
    var url  = "https://www.predictiveresponse.net/rtrac.php";
    var qs   = new Querystring();
    var lea  = qs.get('id');
    var ite  = 0;
    var cam  = qs.get('cam');
    var sid  = qs.get('sid');
    var ctr  = 0;
    var nam  = 'cam_' + cam;
    var oli  = org + '|' + lea;
    var sfi  = 'sfi_'    + sid;
    createCookie('lid' + org,lea,999);
    //createCookie(nam,oli,999);
    //createCookie('sid',sfi,365);
    var out = '<img height=1 width=1 src="' + url + '?org=' + org  + '&lea=' + lea + '&ite=' + ite + '&lvl=' + --lvl + '&ctr=' + ctr + '&pag=' + pag + '">';
    document.write(out);
    //alert(out);
}

//*************************************
//
//*************************************
function getDirect(org,lvl,pag)
{
    var url  = "https://www.predictiveresponse.net/rtrac.php";
    var qs   = new Querystring();
    var ite  = 0;
    var cam  = qs.get('cam');
    var sid  = qs.get('sid');
    var ctr  = 0;
    var nam  = 'cam_' + cam;
    var oli  = 'lid';
    var lea  = readCookie('lid' + org);
    var out = '<img height=1 width=1 src="' + url + '?org=' + org  + '&lea=' + lea + '&ite=' + ite + '&lvl=' + --lvl + '&ctr=' + ctr + '&pag=' + pag + '">';
    document.write(out);
    //alert(oli);
    //alert(out);
}

//*************************************
//
//*************************************
function thankYou(pag)
{
    var url  = "https://www.predictiveresponse.net/rtrac.php";
    var qs   = new Querystring();
    var lvl  = 4;
    var ite  = 0;
    var cam  = qs.get('cam');
    var sid  = qs.get('sid');
    var ctr  = 0;
    var nam  = 'cam_' + cam;
    var oli  = 'lid';
    var org  = readCookie('orgz');
    var lea  = readCookie('lid');
    var out = '<img height=1 width=1 src="' + url + '?org=' + org  + '&lea=' + lea + '&ite=' + ite + '&lvl=' + --lvl + '&ctr=' + ctr + '&pag=' + pag + '">';
    document.write(out);
    //alert(oli);
    doWebStat(pag);
    //alert(out);
}

//*************************************
//
//*************************************
function clickTrac(cam,lvl,pag)
{
    if (lvl < 3) {
       embedTrac(pag);
    }
    else {
       getTrac(cam,lvl,pag);
    }
}
//*************************************
//
//*************************************
function setSsid() {
    var qs   = new Querystring();
    var org  = qs.get('sessionId');
    document.write(org);
    createCookie('ssid',org,1);
}
//*************************************
// autoFill()
//*************************************
function autoFill() {
var formName = "autoFillForm";
var questionlocation = location.href.indexOf('?');
if(questionlocation < 0) { return; }
var q = location.href.substr(questionlocation + 1);
var list = q.split('&');
for(var i = 0; i < list.length; i++) {
   var kv = list[i].split('=');
   if(! eval('document.'+formName+'.'+kv[0])) { continue; }
   kv[1] = unescape(kv[1]);
   if(kv[1].indexOf('"') > -1) {
      var re = /"/g;
      kv[1] = kv[1].replace(re,'\\"');
      }
   eval('document.'+formName+'.'+kv[0]+'.value="'+kv[1]+'"');
   }
}

