function apo_setCookie(cookieName,value) {

	var exdate=new Date();

	exdate.setTime(exdate.getTime()+(1000*60*60*24*1000));

	

	var cookieValue	=	cookieName + "=" + escape(value)+";"		+

						"expires=" + exdate.toGMTString()+";"	+

						"path=/;"								+

						"domain="+domain+";";// CHANGE THE DOMAIN in form_and_js _snippets.html TO BE CLIENT SPECIFIC

	document.cookie	=	cookieValue;

} // END FUNCTION: setCookie



function apo_getCookie(cookieName) {

	if (document.cookie.length>0) {

		var c_start=document.cookie.indexOf(cookieName + "=");

		if (c_start!=-1) {

			c_start=c_start + cookieName.length+1; 

			var c_end=document.cookie.indexOf(";",c_start);

			if (c_end==-1)

				c_end=document.cookie.length;

			return unescape(document.cookie.substring(c_start,c_end));

		} // end if

	} // END IF

	return "";

} // END FUNCTION: getCookie



function apo_checkCookie( cookieName ) {

	var value = apo_getCookie( cookieName );

	return value;

} // END FUNCTION: checkCookie





function apo_setFieldFromCookie( fieldId, cookieName ) {

	if ( fieldId != undefined  &&  fieldId != null  &&  fieldId != "null"  &&  fieldId != "" ) {

		if ( cookieName != undefined  &&  cookieName != null  &&  cookieName != "null"  &&  cookieName != "" ) {

			var cookieValue = apo_getCookie( cookieName );

			if ( cookieValue != undefined  &&  cookieValue != null  &&  cookieValue != "null"  &&  cookieValue != "" ) {

				var fieldObj = document.getElementById( fieldId );

				if ( fieldObj != undefined  &&  fieldObj != null ) {

					fieldObj.value	= cookieValue;

				}

			}

		}

	}

} // END FUNCTION: setFieldFromCookie



function apo_getRef() {

	if (document.referrer != "")

	{

		return unescape(document.referrer);

	}

	else

	{

		return "None";

	}

} // END FUNCTION: getRef



function apo_getParmValue( parm, defaultValue ) {

	var value = defaultValue;

	var pquery = location.search;

	pquery = unescape(pquery).substr(1);

	var parr = pquery.split("&");

	

	for(i=0;i<parr.length;i++){

		$phash = parr[i].split("=");

		if($phash[0].toLowerCase()==parm){

			value = $phash[1];

		}

	}

	return value;

}



function apo_getSFjkid() {

	return apo_getParmValue( "jkid", "None" );  // searchforce paramater for keyword id

} // END FUNCTION: getSFjkid





function apo_getSearchEngine(url) {



	var searchEngine = "None";

	if (url == null){

		url = apo_getRef();

	} // END IF



	if ( url != null  &&  url != "None" ) switch(true){

		case(url.search(/google\./i) > -1):

			searchEngine = "Google";

			break;

		case(url.search(/yahoo\./i) > -1):

			searchEngine = "Yahoo";

			break;	

		case(url.search(/msn\./i) > -1):

			searchEngine = "MSN";

			break;	

		case(url.search(/live\./i) > -1):

			searchEngine = "Live";

			break;

		case(url.search(/bing\./i) > -1):

			searchEngine = "Bing";

			break;	

		case(url.search(/ask\./i) > -1):

			searchEngine = "Ask";

			break;	

		case(url.search(/business\./i) > -1):

			searchEngine = "Business";

			break;	

		case(url.search(/baidu\./i) > -1):

			searchEngine = "Baidu";

			break;	

		case(url.search(/search\.aol\./i) > -1):

			searchEngine = "AOL Search";

			break;	

		case(url.search(/aol\./i) > -1):

			searchEngine = "AOL";

			break;	

		case(url.search(/netscape\./i) > -1):

			searchEngine = "Netscape";

			break;	

		case(url.search(/lycos\./i) > -1):

			searchEngine = "Lycos";

			break;	

		case(url.search(/altavista\./i) > -1):

			searchEngine = "Altavista";

			break;	

		case(url.search(/alltheweb\./i) > -1):

			searchEngine = "AlltheWeb";

			break;	

	} // END SWITCH

	

	return searchEngine;

} // END FUNCTION: getSearchEngine



function apo_getNaturalKeyword() {

	var naturalKeyword = "None";

	var s_param;

	var rurl = apo_getRef();

	var rse = apo_getSearchEngine(rurl);		

	switch(rse){

	case "Google":

		s_param = "q";

		break;

	case "Yahoo":

		s_param = "p";

		break;	

	case "MSN":

		s_param = "q";

		break;	

	case "Live":

		s_param = "q";

		break;

	case "Bing":

		s_param = "q";

		break;	

	case "Ask":

		s_param = "q";

		break;	

	case "Business":

		s_param = "query";

		break;	

	case "Baidu":

		s_param = "wd";

		break;	

	case "AOL Search":

		s_param = "q";

		var aolQuery = rurl.substr(rurl.indexOf("?")+1);

		var aolParms = aolQuery.split("&");

	

		for(i=0;i<aolParms.length;i++){

			$aolParm = aolParms[i].split("=");

			if($aolParm[0].toLowerCase()== "s_it" ){

				if ( $aolParm[1] != null && $aolParm[1].indexOf( "comsearch40" ) > -1 ) {

					s_param = "query";

				}

			}

		}

		break;	

	case "AOL":

		s_param = "query";

		break;	

	case "Netscape":

		s_param = "query";

		var aolQuery = rurl.substr(rurl.indexOf("?")+1);

		var aolParms = aolQuery.split("&");

	

		for(i=0;i<aolParms.length;i++){

			$aolParm = aolParms[i].split("=");

			if($aolParm[0].toLowerCase()== "s_it" ){

				if ( $aolParm[1] != null && $aolParm[1].indexOf( "topsearchbox.search" ) > -1 ) {

					s_param = "q";

				}

			}

		}

		break;	

	case "Lycos":

		s_param = "query";

		break;	

	case "Altavista":

		s_param = "q";

		break;	

	case "AlltheWeb":

		s_param = "q";

		break;	

	default:

		s_param = "None";

		break;

	}	

	var rquery = rurl.substr(rurl.indexOf("?")+1);

	var rarr = rquery.split("&");

	

	for(i=0;i<rarr.length;i++){

		$rhash = rarr[i].split("=");

		if($rhash[0].toLowerCase()==s_param){

			naturalKeyword = $rhash[1];

		}

	}

		

	return naturalKeyword;

} // END FUNCTION: getNaturalKeyword





function apo_getSource() {



	var source = apo_getParmValue( "utm_source" );

	if ( source != null ) {

		return source;

	}



	return apo_getSearchEngine();

} // END FUNCTION: getSource

	



if (imptest) {

//	alert("Apogee CRM Cookie Functions Inclusion Successful!");

	document.write("Apogee CRM Cookie Functions Inclusion Successful!");



	var apoQueryStr = location.search;

	if ( apoQueryStr.length ) {

		apoQueryStr = unescape(apoQueryStr).substr(1);

		if ( apoQueryStr.length ) {

			var apoQArr = apoQueryStr.split("&");

			

			document.write( apoQArr.length + " variables passed in query for:<br>" + location.href + "<br>" );

			for(i=0;i<apoQArr.length;i++){

				$phash = apoQArr[i].split("=");

				document.write( $phash[0] + ": " + $phash[1] + "<br>" );

			}

		}

	}



} // END IF



// writeCookies

// define cookie names

	var apoFirstRef = "first_ref_url";

	var apoFirstSource = "first_source";     	// google, etc

    var apoFirstMedium = "first_medium";		// ppc, organic

    var apoFirstTerm = "first_term";			// {keyword}

	var apoFirstContent = "first_content";		// convent version

    var apoFirstCampaign = "first_campaign";	// campaign name/id

	var apoFirstRefDate = "first_ref_date";		// date first referenced

	var apoFirstJkid = "first_jkid";			// searchforce id



	var apoRecentRef = "recent_ref_url";

	var apoRecentSource = "recent_source";     	// google, etc

    var apoRecentMedium = "recent_medium";		// ppc, organic

    var apoRecentTerm = "recent_term";			// {keyword}

	var apoRecentContent = "recent_content";	// convent version

    var apoRecentCampaign = "recent_campaign";	// campaign name/id

	var apoRecentRefDate = "recent_ref_date";	// date recently referenced

	var apoRecentJkid = "recent_jkid";			// searchforce id



	var value;

	var d = new Date();

	var todaysDate = (d.getMonth()+1) + "/" + d.getDate() + "/" + d.getFullYear();

// write first landing cookies



// if the cookie has been written once before, don't touch it

	var tempref = apo_checkCookie( apoFirstRef );

	var value;



	if ( (tempref == undefined) || (tempref == null) || (tempref == "null") || (tempref == "") ) {

		var firstEngine = apo_getSource();

		if (firstEngine != null && firstEngine != "None" ) {

		// update First cookies if referred by search engine

			apo_setCookie(apoFirstSource, firstEngine);



			var jkid = apo_getSFjkid();

			apo_setCookie(apoFirstJkid, jkid);

			var medium = apo_getParmValue( "utm_medium", "" );

	

			if ( (medium != null && medium.toLowerCase() == "ppc")  ||  (jkid != null  &&  jkid != "None") ) {	

				apo_setCookie(apoFirstMedium, medium);

	

				value = apo_getParmValue( "utm_term", "" );

				apo_setCookie(apoFirstTerm, value);

	

				value = apo_getParmValue( "utm_content", "" );

				apo_setCookie(apoFirstContent, value);

	

				value = apo_getParmValue( "utm_campaign", "" );

				apo_setCookie(apoFirstCampaign, value);

			}

			else {

				apo_setCookie(apoFirstMedium, "organic");

	

				value = apo_getNaturalKeyword();

				apo_setCookie(apoFirstTerm, value);

	

				apo_setCookie(apoFirstContent, "");

	

				apo_setCookie(apoFirstCampaign, "");

			}

				

		

			apo_setCookie(apoFirstRefDate, todaysDate);

	

			value = apo_getRef();

			apo_setCookie(apoFirstRef, value);

		}

	} // END IF



// write recent cookies

	var recentEngine = apo_getSource();

	if (recentEngine != null && recentEngine != "None" ) {

		// update Recent cookies if referred by search engine

		apo_setCookie(apoRecentSource, recentEngine);



		var jkid = apo_getSFjkid();

		apo_setCookie(apoRecentJkid, jkid);

		var medium = apo_getParmValue( "utm_medium", "" );



		if ( (medium != null && medium.toLowerCase() == "ppc")  ||  (jkid != null  &&  jkid != "None") ) {	

			apo_setCookie(apoRecentMedium, medium);

			

			value = apo_getParmValue( "utm_term", "" );

			apo_setCookie(apoRecentTerm, value);



			value = apo_getParmValue( "utm_content", "" );

			apo_setCookie(apoRecentContent, value);



			value = apo_getParmValue( "utm_campaign", "" );

			apo_setCookie(apoRecentCampaign, value);

		}

		else {

			apo_setCookie(apoRecentMedium, "organic");



			value = apo_getNaturalKeyword();

			apo_setCookie(apoRecentTerm, value);



			apo_setCookie(apoRecentContent, "");



			apo_setCookie(apoRecentCampaign, "");

		}

			

	

		apo_setCookie(apoRecentRefDate, todaysDate);



		value = apo_getRef();

		apo_setCookie(apoRecentRef, value);

	}
