/******************************************************************************
 logiForm Referrer Tracking
 Plant a cookie containing the query string parameters on the first visit to the page. The
 vars are saved and passed from page to page until they are recorded through a logiforms form via
 the standard embedd integration code. Also record the referring site and the keyword search for
 google campaigns. In addition to custom query params, lfReferringSite and searchterm are passed to the users
 form.
 Author: Clinton Tu
 Build:  V1 / 2007
******************************************************************************/

//delete cookie
//document.cookie = 'lfPrimeroRef=del; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/'


function setlfCookie()
{

var qString 	 		 = 	location.search;
var lfReferringSite 	 = 	document.referrer;
var searchterm   		 = 	'';
var lfString 	 		 = 	''
var searchterm_id 		 = 	''

//change the = and & in the lfReferringSite to *am* *eq* so they can be stored in a cookie 
lfReferringSite = lfReferringSite.replace(/&/g,"lfreand");
lfReferringSite = lfReferringSite.replace(/=/g,"lfreeq");


//check for google and yahoo referrers and get search term if applicable
if ( (document.referrer.indexOf('google') != -1  || document.referrer.indexOf('search.msn') != -1  || document.referrer.indexOf('search.live.com') != -1  || document.referrer.indexOf('www.search.com') != -1 || document.referrer.indexOf('altavista.com') != -1 ) && document.referrer.indexOf('q=') != -1 ){
	searchterm_id = 'q=';
	searchtermRegEx=/(&|\?|\/)(q=)/
}else if(document.referrer.indexOf('yahoo') != -1 && document.referrer.indexOf('p=') != -1){
	searchterm_id = 'p=';
	searchtermRegEx=/(&|\?|\/)(p=)/
}else if( (document.referrer.indexOf('lycos.com') != -1 ||  document.referrer.indexOf('netscape.com') != -1 ||  document.referrer.indexOf('hotbot.com') != -1  ||  document.referrer.indexOf('search.aol.com') != -1) && document.referrer.indexOf('query=') != -1){
	searchterm_id = 'query=';
	searchtermRegEx=/(&|\?|\/)(query=)/
}


if (searchterm_id != ''){
	searchterm_start = document.referrer.search(searchtermRegEx)+searchterm_id.length+1;
	searchterm_end   = (document.referrer.indexOf('&',searchterm_start) > 0) ? document.referrer.indexOf('&',searchterm_start) : document.referrer.length;
	searchterm = document.referrer.substring(searchterm_start,searchterm_end);
	searchterm =  searchterm.replace(/\+/g,"%20");
}


//create cookie if it does not already exist
if (document.cookie.length == 0 || (document.cookie.length > 0 && document.cookie.indexOf("lfPrimeroRef=") == -1))
  {
	lfString = (searchterm.length > 0) ? 'lfReferringSite='+lfReferringSite+'&searchterm='+searchterm : 'lfReferringSite='+lfReferringSite+'&searchterm= ';
	//append the search term and the referrer to the qString
	appendchar = (qString.indexOf('?') >= 0) ? '&' : '?';
	// add to the existing query string
	qString  = qString +  appendchar + lfString
	//alert('Setting cookie ' + qString);
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+5);
	document.cookie="lfPrimeroRef=" +escape(qString.substring(1))+
	((5==null) ? "" : ";expires="+exdate.toGMTString())
   }
} 


function getlfCookie()
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf("lfPrimeroRef=") 
  if (c_start!=-1)
    {
    c_start=c_start + 13;
	c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) 
		{
			c_end=document.cookie.length
		}
    	var qs =unescape(document.cookie.substring(c_start,c_end));
		var nv = qs.split('&');
		var c = new Object();
		lfquerystring = location.search;
		
		for(i = 0; i < nv.length; i++)
		{
		  eq = nv[i].indexOf('=');
		 	//alert('setting key ' + nv[i].substring(0,eq).toLowerCase());
			 appendchar = (lfquerystring.indexOf('?') >= 0) ? '&' : '?';
			 if (lfquerystring.indexOf(nv[i]) == -1){lfquerystring = lfquerystring + appendchar +  nv[i];}
			  //c[nv[i].substring(0,eq).toLowerCase()] = unescape(nv[i].substring(eq + 1));
			}
	}
	
  }

}


//set and get the cookie on each page request. The result is a var 'lfquerystring' which will
// be recognized by the logiforms embedd code and passed to the form
setlfCookie();
getlfCookie();


