﻿function executeShoppingCart()
{
	try
	{
		if(typeof(csSalesStageCode)!='undefined' || typeof(csItems)!='undefined')
		{
			csGenShoppingCartData = '';
			if (typeof(csOrderSubTotal)!='undefined')
				{csGenShoppingCartData += UrlParm('ost',csOrderSubTotal,'S')}
			if (typeof(csOrderTotal)!='undefined')
				{csGenShoppingCartData += UrlParm('ot',csOrderTotal,'S')}
			if (typeof(csOrderDiscount)!='undefined')
				{csGenShoppingCartData += UrlParm('dc',csOrderDiscount,'S')}
			if (typeof(csOrderNum)!='undefined')
				{csGenShoppingCartData += UrlParm('on',csOrderNum,'S')}
			if (typeof(csNumOfItems)!='undefined')
				{csGenShoppingCartData += UrlParm('noi',csNumOfItems,'S')}
			if (typeof(csItems)!='undefined')
				{csGenShoppingCartData += UrlParm('i',csItems,'A')}
			if (typeof(csIds)!='undefined')
				{csGenShoppingCartData += UrlParm('ids',csIds,'A')}
			if (typeof(csCodes)!='undefined')
				{csGenShoppingCartData += UrlParm('c',csCodes,'A')}
			if (typeof(csQtys)!='undefined')
				{csGenShoppingCartData += UrlParm('q',csQtys,'A')}
			if (typeof(csPrice)!='undefined')
				{csGenShoppingCartData += UrlParm('p',csPrice,'A')}
			if (typeof(csCosts)!='undefined')
				{csGenShoppingCartData += UrlParm('pcs',csCosts,'A')}
			if (typeof(csExternalItemIds)!='undefined')
				{csGenShoppingCartData += UrlParm('pi',csExternalItemIds,'A')}
			if (typeof(csCustKey)!='undefined')
				{csGenShoppingCartData += UrlParm('ck',csCustKey,'S')}
			if (typeof(csName)!='undefined')
				{csGenShoppingCartData += UrlParm('n',csName,'S')}
			if (typeof(csAddress1)!='undefined')
				{csGenShoppingCartData += UrlParm('a',csAddress1,'S')}
			if (typeof(csAddress2)!='undefined')
				{csGenShoppingCartData += UrlParm('a1',csAddress2,'S')}
			if (typeof(csCsz)!='undefined')
				{csGenShoppingCartData += UrlParm('csz',csCsz,'S')}
			if (typeof(csPhone)!='undefined')	
				{csGenShoppingCartData += UrlParm('ph',csPhone,'S')}
			if (typeof(csCity)!='undefined')
				{csGenShoppingCartData += UrlParm('ct',csCity,'S')}
			if (typeof(csState)!='undefined')
				{csGenShoppingCartData += UrlParm('st',csState,'S')}
			if (typeof(csPostalCode)!='undefined')
				{csGenShoppingCartData += UrlParm('pc',csPostalCode,'S')}				
			if (typeof(csEmail)!='undefined')
				{csGenShoppingCartData += UrlParm('e',csEmail,'S')}
			if (typeof(csShipping)!='undefined')
				{csGenShoppingCartData += UrlParm('sh',csShipping,'S')}
			if (typeof(csTax)!='undefined')
				{csGenShoppingCartData += UrlParm('tx',csTax,'S')}	
			if (typeof(csCategoryPath)!='undefined')
				{csGenShoppingCartData += UrlParm('cpth',csCategoryPath,'S')}
			if (typeof(csCategoryPathId)!='undefined')
				{csGenShoppingCartData += UrlParm('cpthi',csCategoryPathId,'S')}
			if (typeof(csOrderType)!='undefined')
				{csGenShoppingCartData += UrlParm('otp',csOrderType,'S')}
			if (typeof(csEstimatedValue)!='undefined')
				{csGenShoppingCartData += UrlParm('ev',csEstimatedValue,'S')}
			if (typeof(csSalesStageCode)!='undefined')
				{csGenShoppingCartData += UrlParm('ss',csSalesStageCode,'S')}
			if (typeof(csHearAboutUs)!='undefined')
				{csGenShoppingCartData += UrlParm('hr',csHearAboutUs,'S')}
			if (typeof(csDescription)!='undefined')
				{csGenShoppingCartData += UrlParm('ds',csDescription,'S')}
			if (typeof(csEstimatedValue)!='undefined')
				{csGenShoppingCartData += UrlParm('ev',csEstimatedValue,'S')}
			if (typeof(csCompanyName)!='undefined')
				{csGenShoppingCartData += UrlParm('cn',csCompanyName,'S')}
			if (typeof(csFirstName)!='undefined')
				{csGenShoppingCartData += UrlParm('fn',csFirstName,'S')}
			if (typeof(csMiddleName)!='undefined')
				{csGenShoppingCartData += UrlParm('mn',csMiddleName,'S')}
			if (typeof(csLastName)!='undefined')
				{csGenShoppingCartData += UrlParm('ln',csLastName,'S')}
			if (typeof(csJobTitle)!='undefined')
				{csGenShoppingCartData += UrlParm('jt',csJobTitle,'S')}
			if (typeof(csSalutation)!='undefined')
				{csGenShoppingCartData += UrlParm('sa',csSalutation,'S')}
			if (typeof(csWebsiteURL)!='undefined')
				{csGenShoppingCartData += UrlParm('wu',csWebsiteURL,'S')}
			if (typeof(csFax)!='undefined')
				{csGenShoppingCartData += UrlParm('fx',csFax,'S')}
			if (typeof(csPager)!='undefined')
				{csGenShoppingCartData += UrlParm('pg',csPager,'S')}
			if (typeof(csCountryCode)!='undefined')
				{csGenShoppingCartData += UrlParm('cc',csCountryCode,'S')}
			if (typeof(csFullAddress)!='undefined')
				{csGenShoppingCartData += UrlParm('fa',csFullAddress,'S')}
		}
		
	}
	catch(ex)
	{
	}	
}


function arryToString(inputArray)
{
	var newString = '';
	if (inputArray != null)
	{
		for (var csx = 0; csx<inputArray.length; csx++)
		{
			inputArray[csx] = inputArray[csx].replace(/,/gi,"%C%");
			inputArray[csx] = inputArray[csx].replace(/&/gi,"%A%");
			inputArray[csx] = inputArray[csx].replace(/\?/gi,"%Q%");
			inputArray[csx] = inputArray[csx].replace(/=/gi,"%E%");
			newString += inputArray[csx];
			if (csx < (inputArray.length-1))
			{
				newString += ",";
			}
		}
	}	
	return newString;
}

function UrlParm(parmname,parmval,parmtype)
{
	retval = '';
	if (parmtype == "A")
	{
		parmval = arryToString(parmval);
	}
	
	if (parmval != '')
	{
		retval='&' + parmname + '=' + encodeURIComponent(parmval);
	}
	return retval;
}



function executeTrackerAJAX(scriptName)
{
	var	act	= 0;
	var	ssid = '';
	var	clt_ssid = '';
	var	kyid = '';
	var	lsid = '';
	var	mfgid =	'';
	var con = '';
	var plc = '';
	var	okyid =	'';
	var	olsid =	'';
	var	omfgid = '';
	var ocpid = '';
	var	ver='1200';
	var mtch='';
	var qstr='';
	var psid = '';
	var cpid = '';
	var agid = '';
	var cit = '';
	var cid = '';
	var erid = '';
	var kwd = '';
	var ccat = '';
	var pcf = '';
	var exph = '';
	var sessionCreatedDate = '';
	var asid = '';
	var sst = '';
	var ssr = '';
	var lam = '';
	var pre = '';
	var ter = '';
	var rat = '';
	var gen = '';
	var bir = '';
	
	var	bGenericShoppingCartData = false;
	var	bYahooShoppingCartData = false;
	var	tran=-1;
	var	trackURL = 'https://dsa.csdata1.com/data/sample.jpeg?';
	var	iCustomerGeneratedSessionId	= 0;
	var	iCookieIndicator = 0;
	var bHitTrackOff = false;
	var bDisplayAltTag = false;
	
	// if variables are set use them instead of querystring
	if (typeof(CS_002)!='undefined')
	{
		lsid = CS_002;
		if (typeof(CS_003)!='undefined')
		{
			cpid = CS_003;
		}
		if (typeof(CS_004)!='undefined')
		{
			agid = CS_004;
		}
		if (typeof(CS_005)!='undefined')
		{
			kyid = CS_005;
		}
		if (typeof(CS_006)!='undefined')
		{
			cid = CS_006;
		}
		if (typeof(CS_007)!='undefined')
		{
			con = CS_007;
		}
		if (typeof(CS_008)!='undefined')
		{
			plc = CS_008;
		}
		if (typeof(CS_009)!='undefined')
		{
			mtch = CS_009;
		}
		if (typeof(CS_010)!='undefined')
		{
			erid = CS_010;
		}
		if (typeof(CS_011)!='undefined')
		{
			qstr = CS_011;
		}
		if (typeof(CS_012)!='undefined')
		{
			kwd = CS_012;
		}
		if (typeof(CS_013)!='undefined')
		{
			ccat = CS_013;
		}
		if (typeof(CS_014)!='undefined')
		{
			pcf = CS_014;
		}
		if (typeof(CS_015)!='undefined')
		{
			exph = CS_015;
		}
		
	}
	else
	{
		// if no local variables are set, use querystring variables
		lsid = getUrlValue('002');
		if (lsid ==	'')
		{
			lsid = getUrlValue('CS_002');
		}
		
		mfgid =	getUrlValue('manufacturerid');
		
		cpid = getUrlValue('003');
		if (cpid ==	'')
		{
			cpid = getUrlValue('CS_003');
		}

		agid = getUrlValue('004');
		if (agid ==	'')
		{
			agid = getUrlValue('CS_004');
		}

		kyid = getUrlValue('005');
		if (kyid ==	'')
		{
			kyid = getUrlValue('CS_005');
		}

		cid	= getUrlValue('006');
		if (cid	== '')
		{
			cid	= getUrlValue('CS_006');
		}
		
		con	= getUrlValue('007');
		if (con	== '')
		{
			con	= getUrlValue('CS_007');
		}

		plc	= getUrlValue('008');
		if (plc	== '')
		{
			plc	= getUrlValue('CS_008');
		}

		mtch = getUrlValue('009');
		if (mtch ==	'')
		{
			mtch = getUrlValue('CS_009');
		}
			
		erid = getUrlValue('010');
		if (erid ==	'')
		{
			erid = getUrlValue('CS_010');
		}

		qstr = getUrlValue('011');
		if (qstr ==	'')
		{
			qstr = getUrlValue('CS_011');
		}
		
		kwd = getUrlValue('012');
		if (kwd ==	'')
		{
			kwd = getUrlValue('CS_012');
		}

		ccat = getUrlValue('013');
		if (ccat ==	'')
		{
			ccat = getUrlValue('CS_013');
		}

		pcf = getUrlValue('014');
		if (pcf ==	'')
		{
			pcf = getUrlValue('CS_014');
		}

		exph = getUrlValue('015');
		if (exph ==	'')
		{
			exph = getUrlValue('CS_015');
		}
	}
	if (exph != '')
	{
		var scd =	readCookie('ClrSCD');
		if (scd != null)
		{
			var utcSessionCreated = parseInt(scd);
			var iexpiremilliseconds= parseInt(exph) * 60 * 60 * 1000;
			var utcNow = (new Date()).getTime();
			var iMillSinceSessionCreated = utcNow - utcSessionCreated;
			if (iMillSinceSessionCreated >= iexpiremilliseconds)
			{
			eraseCookie('ClrSSID');
			}
		}
	}

	if (typeof(csHitTrackingOff)!='undefined' && csHitTrackingOff != '')
	{
		bHitTrackOff = csHitTrackingOff;
	}

	if (typeof(csDisplayAltTag)!='undefined' && csDisplayAltTag != '')
	{
		bDisplayAltTag = csDisplayAltTag;
	}

	if (typeof(csAlternateSessionId)!='undefined' && csAlternateSessionId != '')
	{
		asid=csAlternateSessionId;
	}

	if (typeof(csSiteSearchTerm)!='undefined' && csSiteSearchTerm != '')
	{
		sst=csSiteSearchTerm;
		
	}

	if (typeof(csSiteSearchResultCount)!='undefined' && csSiteSearchResultCount != '')
	{
		ssr=csSiteSearchResultCount;
		
	}

	if (typeof(csUniqueVisitorID)!='undefined' && csUniqueVisitorID != '')
	{
		ssid=csUniqueVisitorID;
		iCustomerGeneratedSessionId	= 1;
		iCookieIndicator = 1;

	}
	else
	{
	
		// get the client side cookie
		ssid = readCookie('ClrSSID');
		if (ssid==null || ssid == '')
		{
			//generate new session id
			ssid = generateGuid();
			sessionCreatedDate = (new Date()).getTime();
			iCookieIndicator = 0;
			bHitTrackOff = false;
		}
		else
		{		
			iCookieIndicator = 1;

			if (kyid !=	'' && psid == '')
			{
				okyid =	readCookie('ClrKYID');
				okyid += '';
				//if (okyid!=null && kyid !=	okyid)
				if (kyid !=	okyid)
				{
					psid = ssid;
					ssid = generateGuid();
					sessionCreatedDate = (new Date()).getTime();
					bHitTrackOff = false;

				}
			}

			if (lsid !=	'' && psid == '')
			{
				olsid =	readCookie('ClrLSID');
				olsid += '';
				
				//if (olsid!=null && lsid !=	olsid)
				if (lsid !=	olsid)
				{
					psid = ssid;
					ssid = generateGuid();
					sessionCreatedDate = (new Date()).getTime();
					bHitTrackOff = false;
				}
			}
			
			if (mfgid != '' && psid == '')
			{
				omfgid = readCookie('ClrMFGID');
				omfgid += '';
				
				//if (omfgid!=null && mfgid != omfgid)
				if (mfgid != omfgid)
				{
					psid = ssid;
					ssid = generateGuid();
					dt = new Date();
					sessionCreatedDate = (new Date()).getTime();
					bHitTrackOff = false;

				}
			}
			
			if (cpid != '' && psid == '')
			{
				ocpid = readCookie('ClrCPID');
				ocpid += '';
				
				//if (ocpid!=null && cpid != ocpid)
				if (cpid != ocpid)
				{
					psid = ssid;
					ssid = generateGuid();
					sessionCreatedDate = (new Date()).getTime();
					bHitTrackOff = false;

				}
			}			

			iCustomerGeneratedSessionId	= 0;
		}
	}

	// create client side cookie
	createCookie('ClrSSID',escape(ssid),180);
	// create the origional session id cookie
	var ossid = readCookie('ClrOSSID');
	if (ossid==null || ossid == '')
		{createCookie('ClrOSSID',escape(ssid),180);}
	if (kyid !=	'')
		{createCookie('ClrKYID',escape(kyid),180);}
	if (lsid !=	'')
		{createCookie('ClrLSID',escape(lsid),180);}
	if (mfgid != '')
		{createCookie('ClrMFGID',escape(mfgid),180);}
	if (cpid != '')
		{createCookie('ClrCPID',escape(cpid),180);}
	if (sessionCreatedDate != '')
		{createCookie('ClrSCD',escape(sessionCreatedDate),180);}

	
	if (typeof(csAccountID)!='undefined')
	{
		act=csAccountID;
	}
	else
	{
		act	= parseAccountId(scriptName);
	}
	
	if (typeof(csGenShoppingCartData) !='undefined')
	{
		bGenericShoppingCartData = true;
	}
	if (typeof(csYhoShoppingCartData) !='undefined')
	{
		bYahooShoppingCartData = true;
	}
	if (typeof(csTrackURL)	!='undefined')
	{
		trackURL = csTrackURL;
	}

	if (typeof(csCustomCategory)	!='undefined')
	{
		ccat = csCustomCategory;
	}

	if (typeof(csPageConfiguration)	!='undefined')
	{
		pcf = csPageConfiguration;
	}


	if (typeof(csLoanAmount )	!='undefined')
	{
		lam = csLoanAmount;
	}
	if (typeof(csPremiumAmount )	!='undefined')
	{
		pre = csPremiumAmount;
	}
	if (typeof(csTerm )	!='undefined')
	{
		ter = csTerm;
	}
	if (typeof(csCustomerRating )	!='undefined')
	{
		rat = csCustomerRating;
	}
	if (typeof(csGender )	!='undefined')
	{
		gen = csGender;
	}
	if (typeof(csBirthDay )	!='undefined')
	{
		bir = csBirthDay;
	}

	var	hostName = document.location.hostname; 
		
	trackURL += 'CS_001=' + act + buildParameter('ssid',ssid) + buildParameter('cs',iCustomerGeneratedSessionId) + buildParameter('psid',psid) + buildParameter('002',lsid) + buildParameter('003',cpid) + buildParameter('004',agid)	+ buildParameter('005',kyid) + buildParameter('006',cid) + buildParameter('007',con) + buildParameter('008',plc) + buildParameter('009',mtch) + buildParameter('010',erid)+ buildParameter('011',qstr) + buildParameter('012',kwd) + buildParameter('013',ccat) + buildParameter('014',pcf) + buildParameter('mid',mfgid) + buildParameter('ci',iCookieIndicator) + buildParameter('ver',ver) + buildParameter('rurl',document.referrer) + buildParameter('as',asid) + buildParameter('sst',sst) + buildParameter('ssr',ssr)+ buildParameter('lam',lam)+ buildParameter('pre',pre)+ buildParameter('ter',ter)+ buildParameter('rat',rat)+ buildParameter('gen',gen)+ buildParameter('bir',bir);
	
	if (bGenericShoppingCartData)
	{
		bHitTrackOff = false;
		trackURL+= csGenShoppingCartData;
		trackURL	+= '&actionId=1';
		tran = 1;
		
	}
	
	if (bYahooShoppingCartData)
	{
		bHitTrackOff = false;
		trackURL+= csYhoShoppingCartData;
		trackURL	+= '&actionId=1';
		tran = 2;
	}
	
	trackURL	+= '&tran='	+tran;
	if (trackURL.Length > 2000)
	{
		trackURL	= trackURL.substring(0,2000)	+ '&TR=1';
	}
	
	var altTag = '';
	if (bDisplayAltTag)
	{
		altTag = " alt=''";	
	}
	
	if (!bHitTrackOff)
	{
		//document.write('<img src='+	trackURL + altTag + " style='DISPLAY:	none' height=0/>");
		objImage = new Image();
		objImage.src = trackURL + altTag;
	}
}

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 csp=0;csp < ca.length;csp++) {
		var c = ca[csp];
		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 eraseCookie(name) {
	createCookie(name,'',-1);
}


function generateGuid()
   {
    var guid = '';
	var d1 = new Date();
	var strDate = d1.getTime().toString(); //number of milliseconds since 1970
	// add up characters in urls and title for extra uniqueness
	var urls = '';
	var urlchar = '';
	urls = document.referrer + document.location + document.title;
	var urlsum = 0;
	
	for (var csq=0;csq<urls.length;csq++)
	{
		urlsum += urls.charCodeAt(csq);
	}
	guid = strDate + '-' + urlsum.toString();
    return guid;
}

// get the account id from the path
function parseAccountId(scriptName)
{
	try
	{
		var index = 0;
		var iAccount = 1;
		var scripts = document.getElementsByTagName('SCRIPT');
		for (var csr = 0; csr<scripts.length; csr++)
		{	
			index = scripts[csr].src.toLowerCase().indexOf(scriptName);
			if (index >= 0 )
			{
				var aryPth = scripts[csr].src.split('/');
				var strTmp;
				
				if (aryPth.length >= 2)
				{
					strTmp = aryPth[aryPth.length-2];
					var iAccount = parseInt(strTmp);
					
					if ((iAccount == 0) || isNaN(iAccount))
					{
						iAccount = 1;
					}
				}
				break;
			}
		}
	}
	catch(ex)
	{
		return 1;
	}
	return iAccount;
}

function getUrlValue(inputKey)
{
	var returnVal = '';
	var qs;
	 
	qs=location.search.substring(1,location.search.length);
	if (qs.length > 0)
	{
		returnVal = getQsValue(qs,inputKey);
	}
	else
	{
		var idx1 = 0;
		idx1 = location.href.indexOf('&');
		if (idx1 >= 0)
		{
			returnVal = getQsValue(location.href.substring(idx1+1),inputKey);
		}
	}
	return returnVal;
}

function getQsValue(qs,inputKey)
{
	var returnVal = '';

	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&');
	for (var cst=0;cst<args.length;cst++) 
	{
		var tempValue;
		var tempKey;
		var pair = args[cst].split('=')
		
		if (pair.length == 2)
		{
			tempKey = unescape(pair[0])
			if (tempKey.toUpperCase() == inputKey.toUpperCase())
			{
				returnVal = unescape(pair[1])
				break;
			}
		}
	}
	return returnVal;
}

function buildParameter(skey,svalue)
{ 
	if (svalue == '')
		{return '';}
	else
		{return '&' + skey + '=' + encodeURIComponent(svalue);} 
}





