// BF 02.04.08 JavaScript Document - this goes at the end of the HTML Doc so that the Reg Form is loaded
 
//	SEM SEO variables
// 	CookieName	SREV	Description
//	HBX_PK		SRE118 	SEM Keyword
//	HBX_OU		SRE119	SEM Referrer (Encoded)
//	HBX_DATE	SRE120	SEM Date
//	CMP			SRE121 	
//	ReferredDate 	SRE120	SEO Date
//	Referrer		SRE118	SEO Keyword
//				SRE119	SEO Referrer Host

var seof;
var seoe;

function calcAvayaServerDate(cookiedatetime) {


	var m_sDate =cookiedatetime;
  // document.write(m_sDate + "<br>");

	var aMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var syear = m_sDate.substring(0,4);
	var smonth = m_sDate.substring(5,7);
	//alert("smonth:" + smonth);
	var sday =  m_sDate.substring(8,10);
	var shour =  m_sDate.substring(11,13);
	var smin =  m_sDate.substring(14,16);
	var ssec =  m_sDate.substring(17,19);
	var smsec =  m_sDate.substring(20,23);
	var offsethours =  parseInt(m_sDate.substring(23,26));
	//var offsethours =  m_sDate.substring(23,26) + 0;
	//alert("offsethours:" + offsethours);
	var offsetmins =  m_sDate.substring(27,29);

	//var imonth = parseInt(smonth) - 1; //BF 8.22.08
	var imonth = smonth - 1;
	//alert("imonth:" + imonth);
	var namemonth = aMonths[imonth];
	
	var datestring = namemonth + " " + sday  + ", " + syear + " " + shour + ":" + smin + ":" + ssec; 
	//alert("datetime:" + datestring);
	
	var d = new Date(datestring);
	 
    // convert to msec
    // add local time zone offset 
    // get UTC time in msec
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    
    // create new Date object for different zone
    // using supplied offset
    var m_sToDate = new Date(utc + (3600000*offsethours));

    var m_sYear = m_sToDate.getFullYear();
			
    var m_sMonth = m_sToDate.getMonth()+1;
    var m_sDay = m_sToDate.getDate();
	 if (m_sDay < 10) {
    m_sDay = "0" + m_sDay;
    }
    if (m_sMonth < 10) {
    m_sMonth = "0" + m_sMonth;
    }
	 var m_sDate = m_sYear + "-" + m_sMonth + "-" + m_sDay;
    
    // return time as a string
 
   return m_sDate;
}



function readCookieSEO(name) {

var ReturnValue =""; 
var c_start;
var c_end;
 
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
 	   ReturnValue = unescape(document.cookie.substring(c_start,c_end));
    } 
  }
//BF 3.5.08 if (ReturnValue == "") { ReturnValue = false; }
	if (ReturnValue == false || ReturnValue == "false") { ReturnValue = ""; }

	return ReturnValue;
}


function addFormElement(fname, ename)  {

var regform = document.getElementById(fname);

var ffield = document.createElement("input");
ffield.setAttribute("type", "hidden");
ffield.setAttribute("name", ename);
ffield.setAttribute("id", ename);
//field1.setAttribute("value", val);
regform.appendChild(ffield);

}


function putinseovalues() {

	  seof = document.forms["registration"];
	 //f = document.getElementById("registration");	
	  seoe = seof.elements;	


	if (!(seoe["SRE118"])) 	{ addFormElement("registration", "SRE118" );  }
	if (!(seoe["SRE119"]))	{ addFormElement("registration", "SRE119" );  }
	if (!(seoe["SRE120"]))	{ addFormElement("registration", "SRE120" );   }
	if (!(seoe["SRE121"]))	{ addFormElement("registration", "SRE121" );  }
	//SEM keyword                    

	 if (SRE118 != "undefined")  { seoe["SRE118"].value = SRE118 ; }
   	 if (SRE119 != "undefined")  { seoe["SRE119"].value = SRE119; }
    	 if (SRE120 != "undefined")  { seoe["SRE120"].value = SRE120; }
	 if (SRE121 != "undefined")  { seoe["SRE121"].value = SRE121; }
	
	
}

function clearOldSEOvalues() {

	  seof = document.forms["registration"];
	 //f = document.getElementById("registration");	
	  seoe = seof.elements;	


	if (seoe["SRE118"])	{ seoe["SRE118"].value = "" ; }
	if (seoe["SRE119"])	{ seoe["SRE119"].value = ""; } 
	if (seoe["SRE120"])	{ seoe["SRE120"].value = ""; } 
	if (seoe["SRE121"])	{ seoe["SRE121"].value = ""; } 
	                                       
	
}


function getTodaysDate(wtime) {

    var m_sToDate = new Date();
    var m_sYear = m_sToDate.getFullYear();
    var m_sMonth = m_sToDate.getMonth()+1;
    var m_sDay = m_sToDate.getDate();
    var m_sHour = m_sToDate.getHours();
    var m_sMin = m_sToDate.getMinutes();
    var m_sSec = m_sToDate.getSeconds();
    var m_sMilliSec = m_sToDate.getMilliseconds();
    var m_sTZD = "Z";
    var m_sOffset = m_sToDate.getTimezoneOffset();
    
    if (m_sOffset/60 != 0) {
        m_sOffSetMin = m_sOffset%60;
        m_sOffSetHour = (m_sOffset-m_sOffSetMin)/60;
        if (m_sOffSetMin<10) {
            m_sOffSetMin = "0" + m_sOffSetMin;
        }
        if (m_sOffSetHour<10) {
            m_sOffSetHour = "0" + m_sOffSetHour;
        }
        
        m_sTZD = m_sOffSetHour + ":" + m_sOffSetMin
    }
    if (m_sOffset < 0) {
        m_sTZD = "+" + m_sTZD;
    } else if (m_sOffset > 0) {
        m_sTZD = "-" + m_sTZD;
    } 

    if (m_sDay < 10) {
    m_sDay = "0" + m_sDay;
    }
    if (m_sMonth < 10) {
    m_sMonth = "0" + m_sMonth;
    }
    if (m_sHour < 10) {
    m_sHour = "0" + m_sHour;
    }
    if (m_sMin < 10) {
    m_sMin = "0" + m_sMin;
    }
    if (m_sSec < 10) {
    m_sSec = "0" + m_sSec;
    }
    
    var m_sDate = m_sYear + "-" + m_sMonth + "-" + m_sDay;
    
	if (wtime > 0 ) { 
		m_sDate = m_sDate   + "T" + m_sHour + ":" + m_sMin + ":" + m_sSec + "." + m_sMilliSec + m_sTZD;
	}


    return m_sDate;
}


function getSEOCookieData() {

if (HBX_OU != "undefined" && HBX_PK != "undefined" && CMP != "undefined")  // Data was passed in in the URL so let this trump anything else always for PC SEM
{
	SRE118 = HBX_PK;
	SRE119 = HBX_OU;
	SRE121 = CMP;
	SEMflag="Y";

	if (HBX_DATE != "undefined") {  
		SRE120 = HBX_DATE;
	}
	else { 
	
		SRE120 = getTodaysDate(1);

	}	
	
	
}

//else if  (location.href.indexOf("/premcontent/us/sem/") > 1) // BF 4.28.08 Read from the cookie
//{
	// If it wasn't in the URL - Do nothing 
//}

else { 

	
 // We need to read the cookies if at least the site and keyword were not passed via URL
	var refdate = ""
	var refdatePieces = "";
	var refsite = "";	
	var referrerPieces = "";
	var refqstring = "";	
	var refqstringPieces = "";
	var refquerytag = "?";
	var refsearchwords = "";	


	
	ReferredDate = unescape(readCookieSEO('ReferredDate'));
	Referrer = unescape(readCookieSEO('Referrer'));
	HBX_OU = unescape(readCookieSEO('HBX_OU'));
	HBX_PK = unescape(readCookieSEO('HBX_PK'));
	HBX_DATE = unescape(readCookieSEO('HBX_DATE'));
	CMP = unescape(readCookieSEO('CMP'));
	
	//BF 3.5.08 Set Flag for SEM if all 3 values are valid
	if ( HBX_OU !="undefined" && HBX_PK != "undefined" &&  HBX_OU != "" && HBX_PK != ""  && CMP != "undefined" &&  CMP != "") 
	{ SEMflag="Y"; }
	

	//alert(Referrer); //debug

		if (ReferredDate) {	
		//refdatePieces = ReferredDate.split ('T');
		//refdate = refdatePieces[0];
		refdate = ReferredDate;
	}
	
	if (Referrer) {	
	
		SEOflag="Y";  //BF 3.5.08
	//	alert("SEO"); //debug

		if (!(unescape(Referrer).indexOf("http://") == -1)) { 
			refsite= Referrer.substr(7, Referrer.length -7);  
		}
		referrerPieces = refsite.split ("/");
		refsite = referrerPieces[0];
		if (!(unescape(Referrer).indexOf("?") == -1)) { 
			refqstringPieces = Referrer.split ("?");
			refqstring = refqstringPieces[1]; 
		}	

		// Get The Search Keywords parsed out of the Referrer
		
		var aSearchVars = new Array("q","query","p","qry","string","searchfor","qkw","url","va","vp","key","queryterm","keywords","s","as_epq","as_q","as_oq");
		var aSize = aSearchVars.length;
		var i = 0;
		var kword = "";
		var kwordsep = "";

		for (i = 0; (i < aSize); i++) {
		
			if (unescape(Referrer).indexOf(aSearchVars[i]+ "=") > 1) {  // then it is in the string
					kword = getSearchQueryVariable(aSearchVars[i], Referrer);
					if (kword > "") {
 						refsearchwords = refsearchwords + kwordsep  + kword;	
						//kwordsep = ":"; may cause problem switch to underscore   
						kwordsep = "_";
					}
			} // end in Referrer

		} // end for 

		

		if (refsearchwords > "") 
		{
			refqstring = refsearchwords;	
		}
		else { // BF 3.05.08 if we couldn't get the searchwords send a Blank  can't send null or will break
			refqstring = " ";	
		}




 
	}
	
	//alert	(refsite + "  " + refqstring + "  " + refdate );
	
	//HBX_OU = "69"
	//HBX_PK = "CRM_SOFTWARE_INTEGRATION";

	
	// If we have Both SEM and SEO cookies 
	// BF 3.5.08 if ( (HBX_DATE != false) && (HBX_DATE > " " ) && (HBX_DATE != "false") &&  (refdate) && (refdate > " ")) {  
	if ( SEMflag == "Y" && SEOflag == "Y" &&  (refdate) ) {  
		
		// If the SEO date is later than the SEM DATE use the SEO Fields
		if (refdate > HBX_DATE)  {  
			HBX_DATE = refdate;
			HBX_PK = refqstring; 
			HBX_OU = refsite;
			CMP = ""; //  BF 03.05.08 NO CMP for SEO
			
		}
	} 
//	BF 3.5.08 else if ( Referrer != false &&  Referrer != "false" && refsite > " " &&  refdate > " " ) {	
	else if ( Referrer > " "  &&  refsite > " " &&  refdate > " " ) {	
			HBX_DATE = refdate;
			HBX_PK = refqstring; 
			HBX_OU = refsite;
			CMP = ""; //  BF 03.05.08 NO CMP for SEO
			//alert("ref:" + Referrer);
	}
	else {
	// else use the HBX_ vars for SEM
	//	alert("else");
	}


	if (!(CMP) || CMP == "false" || CMP == false)   {  CMP = "undefined" };  // Send undefined instead of false from get cookie

	if ( HBX_OU != false && HBX_PK != false  && HBX_OU != "false" && HBX_PK != "false" &&  HBX_OU !="undefined" && HBX_PK != "undefined" &&  HBX_OU != "" && HBX_PK != "")
	{

		if ((!(HBX_DATE))  || HBX_DATE =="undefined" ||  HBX_DATE == ""  || HBX_DATE == "false" || HBX_DATE == false)
		{ 
			HBX_DATE = getTodaysDate(1);	
		
		}


		SRE118 = HBX_PK;
		SRE119 = HBX_OU;
		SRE120 = HBX_DATE;
		SRE121 = CMP;
		
		//BF 4.29.08 Sanity Check-On Date
	
		if (!(unescape(SRE120).indexOf("NaN") == -1)) {
		 	
			SRE120 = getTodaysDate(0);
			
         } 

	}
	else{ 
		// We got nothing
		SRE118 = "";
		SRE119 = "";
		SRE120 = "";
		SRE121 = "";
	}
 } // end else get from cookie
                   
if (!(unescape(SRE120).indexOf("T") == -1)) { 
			SRE120  = calcAvayaServerDate(SRE120);	
			var DateTimeArray = SRE120.split("T");
	    SRE120  = DateTimeArray[0];
	//		alert (SRE120);	
}

//alert (SRE119  + ' | '  +  SRE118  + ' | ' + SRE120 + ' | '  + SRE121 + " ");
//document.write("<br>" +SRE118 +"<br>");

} // end func

function getQueryVariableSEO(variable) {
	if (!(unescape(location.href).indexOf("?") == -1)) { 
		var query = location.href.split("?");
		var vars = query[1].split("&");
		var ok = false;
		for (var i=0;i<vars.length;i++) {
			var pair = vars[i].split("=");
			if (pair[0] == variable) {
				ok = true; return pair[1];
			}
		}
		if (!(ok)) { return "undefined"; }
	}
	else { return "undefined"; }
}


function getSearchQueryVariable(variable, urlstring) {
	if (!(unescape(urlstring).indexOf("?") == -1)) { 
		var query = urlstring.split("?");
		var vars = query[1].split("&");
		var ok = false;
		var strval = false;
		for (var i=0;i<vars.length;i++) {
			var pair = vars[i].split("=");
			if (pair[0] == variable) {
				ok = true; 
				strval=unescape(pair[1]); 
				strval=strval.replace(/\+/g, " "); // replace the + with blanks 
				strval= strval.replace(/^\s+|\s+$/g, ""); //trim leading and trailing white space	
				strval= strval.replace(/\"/g, '%22');  //  encode double quotes " 	
			//	strval= strval.replace(/\'\'/g, "\"");  // convert 2 single quotes to double quotes 
			//	strval= strval.replace(/\"/g, '\\\"');  //  escape double quotes " 	  
			//	strval= strval.replace(/\'/g, "\\\'");  // escape single quotes   '
			//	strval= strval.replace(/^\"|\"$/g, "");  // trim leading and trailing  double quotes   
			//	strval= strval.replace(/^\'|\'$/g,  "");  // trim leading and trailing  single quotes   
			//	strval= strval.replace(/^\s+|\s+$/g, ""); //trim leading and trailing white space	
				//strval=strval.replace( /"([^"]*)"/g, "" );	
			

				return strval;
			}
		}
		if (!(ok)) { return ""; }
	}
	else { return ""; }
}


var ReferredDate;
var Referrer;
var SRE118; 
var SRE119; 
var SRE120; 
var SRE121; 

var HBX_OU 	= getQueryVariableSEO("HBX_OU");
var HBX_PK 	= getQueryVariableSEO("HBX_PK");
var HBX_DATE = getQueryVariableSEO("HBX_DATE");
var CMP  		= getQueryVariableSEO("CMP");

//BF 3.5.08 Add flag for SEM/SEO Cookie Sets and checks for campaign sites/premium content site
var SEMflag = "" ;
var SEOflag = "" ; 
var checkCID = getQueryVariableSEO("cid");
var checkPC = ""; 
if (checkCID == "undefined" ) { checkCID = ""; }
if(location.href.indexOf("/forms/premcontent/") > 1) { 	checkPC = "Y"; } 
// end BF 3.5.08


 clearOldSEOvalues() ; // Make sure no old stuff from userdata 

//If we are not PC and came with a CID - use campaign codes and don't submit SEM/SEO SRVs
// BF 04.01.08 skip the check send values even with campaign 
//  if (checkCID == "" ||  checkPC == "Y") { 
	//alert("populate SEO Values");
	getSEOCookieData();
	putinseovalues();
//}


	
