// First party cookie implementation for use on a site not using a WebTrends Analytics JS Tag.
// Apply this javascript to all page on the site (will work on just landing pages).
// Change @@CUSTID@@ in the last line to reflect the correct account number.

function DcsDynamicSearch(cid){
	// private members
	var cname="WT_DSAI";
	var wt=(typeof(_tag.WT)=="object")?_tag.WT:{};
	var trackOffsite = true;				// Set to true to allow cross-domain tracking
	var offsiteDoms = "digikeytest.digikey.com,trout,walleye,bullhead,searchtest.digikey.com,orderingtest.digikey.com,digikey.com,digikey.co.jp,mkt.digikey.com,www.digikey.com,digikey.com,digi-key.dirxion.com,media.digikey.com,pdfcatalog.digikey.com,suppliers.digikey.com,dkc1.digikey.com,ordering.digikey.com,sales.digikey.com,search.digikey.com,dkc3.digikey.com,javascript,at.digikey.com,au.digikey.com,be.digikey.com,ca.digikey.com,cn.digikey.com,de.digikey.com,dk.digikey.com,es.digikey.com,fi.digikey.com,fr.digikey.com,gr.digikey.com,hk.digikey.com,ie.digikey.com,in.digikey.com,it.digikey.com,jp.digikey.com,kr.digikey.com,lu.digikey.com,mx.digikey.com,nl.digikey.com,no.digikey.com,nz.digikey.com,pt.digikey.com,se.digikey.com,sg.digikey.com,tw.digikey.com,uk.digikey.com,us.digikey.com,www.digikey.com.au,www.digikey.at,www.digikey.be,br.digikey.com,www.digikey.ca,www.digikey.cn,www.digikey.dk,www.digikey.de,www.digikey.fi,www.digikey.fr,www.digikey.gr,www.digikey.hk,www.digikey.in,www.digikey.ie,www.digikey.co.il,www.digikey.it,www.digikey.jp,www.digikey.kr,www.digikey.lu,www.digikey.nl,www.digikey.co.nz,www.digikey.no,www.digikey.pt,www.digikey.ru,www.digikey.sg,www.digikey.es,www.digikey.se,www.digikey.ch,www.digikey.tw,www.digikey.co.uk,www.digikey.com.br,www.digikey.cz,digikey.co.cz,www.digikey.my,www.digikey.com.my,digikey.my,www.digikey.mx,digikey.com.mx,www.digikey.ar,tr.digikey.com,www.digikey.com.tr,www.digikey.co.za,www.digikey.com.co,www.digikey.co.th,www.digikey.com.do,digikey.do,www.digikey.com.gt,www.digikey.com.jm,www.digikey.com.ph,digikey.ph,www.digikey.com.pr,www.digikey.com.ve,digikey.co.ve,www.digikey.com.vn,digikey.vn,digikey.lt,digikey.pe,digikey.pk,digikey.com.pk,digikey.si,digikey.bo,digikey.com.bo,digikey.cl,digikey.co.ee,digikey.com.pa,digikey.com.pl,digikey.lv,digikey.ro,digikey.ae,digikey.co.cr,digikey.co.hu,digikey.hu,digikey.com.ec,digikey.com.lv,digikey.com.pe,digikey.com.sa,digikey.com.uy,digikey.ec,digikey.pr";						// Comma separated list of domains to pass the cookie value to.
	
	// set client ID variable name
	var clientname="WT_DSCI";


	// private methods
	function setAdInfo(){
		var value=getQueryParam("cshift_ck");
		if (value.length>0){
			var cur=new Date();
			var exp=new Date(cur.getTime()+315360000000);
			document.cookie=cname+"="+value+"; expires="+exp.toGMTString()+"; path=/;" + Domain();
		}
	}
	
	function Domain()
	{
		 var curdom = document.location.hostname;
		 var dRoot = ".digikey.com";
		 if (curdom.indexOf(dRoot) == (curdom.length - dRoot.length))
		 {
		 	return "domain=" + dRoot;
		 }
		 else
		 {
		 	return ""
		 }
	}
	
		// function to set the client ID as a cookie if client_id parameter exists on the URL
	function setClientInfo(){
		if (getQueryParam("client_id")) 
	  {
	
			var value = getQueryParam("client_id");
		}
		else if (dcsGetCookie(clientname))
		{
			var value=dcsGetCookie(clientname);
		}
		else {
			var value = cid;
		}

			var cur=new Date();
			var exp=new Date(cur.getTime()+315360000000);
			document.cookie=clientname+"="+value+"; expires="+exp.toGMTString()+"; path=/;" + Domain();

	}
	
		// function to check for client ID cookie, used in the f2convert call
	function getclient() {
		if (dcsGetCookie(clientname)) 
	 {
			return dcsGetCookie(clientname);
		}
		else {
			return cid;
		}
	}
	
	function getQueryParam(key){
		var qry=window.location.search.substring(1);
		if (qry.length>0){
			var params=qry.split("&");
			var count=params.length;
			for (var i=0;i<count;i++){
				var p=params[i].split("=");
				if (p[0]==key){
					return p[1];
				}
			}
		}
		return "";
	}

	function dcsGetCookie(name){
		var cookies=document.cookie.split("; ");
		var cmatch=[];
		var idx=0;
		var i=0;
		var namelen=name.length;
		var clen=cookies.length;
		for (i=0;i<clen;i++){
			var c=cookies[i];
			if ((c.substring(0,namelen+1))==(name+"=")){
				cmatch[idx++]=c;
			}
		}
		var cmatchCount=cmatch.length;
		if (cmatchCount>0){
			idx=0;
			return unescape(cmatch[idx].substring(namelen+1));
		}	
		else{
			return null;
		}
	}
	
	function dcsGetCrumb(cval,crumb){
		var aCookie=cval.split(":");
		for (var i=0;i<aCookie.length;i++){
			var aCrumb=aCookie[i].split("=");
			if (crumb==aCrumb[0]){
				return aCrumb[1];
			}
		}
		return null;
	}


	function dcsBind(event,func){
		if ((typeof(func)=="function")){
			if (document.body.addEventListener){
				document.body.addEventListener(event, func, true);
			}
			else if(document.body.attachEvent){
				document.body.attachEvent("on"+event, func);
			}
		}
	}

	function AdOffsiteWatcher(evt)
	{
		// obtain the event for both IE and others
		evt=evt||(window.event||"");
		var e=evt.target||evt.srcElement;
		while (e.tagName&&(e.tagName.toLowerCase()!="a")){
			e=e.parentElement||e.parentNode;
		}
		if (AdIsTrackable(e))
		{
			e.href += ((e.href.indexOf("?")== -1)?"?":"&") + "cshift_ck=" + dcsGetCookie(cname) + "&client_id=" + getclient();
		}
	}

	function AdIsTrackable(e)
	{
		var offsite=offsiteDoms.split(",");
			if ((offsite.length > 0)&&(e.href)&&(e.href.toLowerCase().indexOf("http")==0)&&(e.href.toLowerCase().indexOf(document.location.hostname.toLowerCase())==-1))
			{
				for (x=0; x < offsite.length; x++)
				{
					if (e.href.toLowerCase().indexOf(offsite[x].toLowerCase()) != -1)
					{
						return true;
					}
				}
			}
			else
				return false;
	}

	// privileged methods
	this.getClientId=function(){
		if (dcsGetCookie(clientname)) 
	 {
			return dcsGetCookie(clientname);
		}
		else {
			return cid;
		}
	};
	
	this.getProductInfo=function(){
		var info="";
		try{
			//replicated var id to split WT.pn_sku based on pipe and not semi-colon - DO 07/2008 (originally, 02/2008)
            var id=wt.pn_sku.split("|");
			var price=wt.tx_s.split(";");
			var qty=wt.tx_u.split(";");
			var pr;
			for (var i=0;i<id.length;i++){
				pr=(parseFloat(price[i])*100)/parseInt(qty[i]);
				info+=(i?",":"")+id[i]+"#"+pr.toFixed(4)+"*"+qty[i];
			}
		}
		catch(e){
		}
		return info;
	};
	
	this.getOrderInfo=function(){
		return wt.tx_i||"";
	};

	this.isConvPage=function(){
		return ((typeof(wt)=="object")&&(wt.tx_e=="p"))?true:false;
	};

	
	this.getAdInfo=function(){
		return dcsGetCookie(cname)||"";
	};
	this.getIsNew=function(){
		return 1;
	};
	// read query parameter, set cookie
	setAdInfo();
	
	// set cookie containing client id
	setClientInfo();

	if ((trackOffsite) && (offsiteDoms.length > 0))
	{
		var ev=(navigator.appVersion.indexOf("MSIE")!=-1)?"click":"mousedown";
		dcsBind(ev,AdOffsiteWatcher);
	}

	if (document.Sform!=null)
	{
		if (document.Sform.cshift_ck!=null)
			document.Sform.cshift_ck.value=dcsGetCookie(cname);
		if (document.Sform.client_id!=null)
			document.Sform.client_id.value=getclient();
	}

}

var dcsDS=new DcsDynamicSearch(wtDScid);
if (dcsDS.isConvPage()){
	f2convert(dcsDS.getClientId(),dcsDS.getProductInfo(),dcsDS.getOrderInfo(),dcsDS.getIsNew(),dcsDS.getAdInfo());
}


