// Date last modified = <YYYYMMDD>
// Modified by = <INITIALS>

var lpMTagConfig = {
        "lpServer" : "sales.liveperson.net",
        "lpNumber" : account_number,
        "lpProtocol" : (document.location.toString().indexOf("https:")==0) ? "https" : "http",
		'lpTagSrv' : "sr2.liveperson.net",
		"sendCookies" : false
	}
function lpAddMonitorTag(src) { 
	if (!lpMTagConfig.lpTagLoaded) {if (typeof(src) == 'undefined' || typeof(src) == 'object') {if (lpMTagConfig.lpMTagSrc) {src = lpMTagConfig.lpMTagSrc;}else {if (lpMTagConfig.lpTagSrv) {src = lpMTagConfig.lpProtocol + "://" +lpMTagConfig.lpTagSrv + '/hcp/html/mTag.js';}else {src = '/hcp/html/mTag.js';};};};if (src.indexOf("http") != 0) {src = lpMTagConfig.lpProtocol + "://" + lpMTagConfig.lpServer + src + "?site=" + lpMTagConfig.lpNumber;} else {if (src.indexOf("site=") < 0) {if (src.indexOf("?") < 0) {src = src + "?";} else{src = src + "&";} src = src + "site=" + lpMTagConfig.lpNumber;  };};var s = document.createElement("script");s.setAttribute("type", "text/javascript");s.setAttribute("charset", "iso-8859-1");s.setAttribute("src", src);document.getElementsByTagName("head").item(0).appendChild(s);}
}
if (window.attachEvent) window.attachEvent("onload",lpAddMonitorTag);
else window.addEventListener("load",lpAddMonitorTag,false);

//Variables Arrays - By Scope
if (typeof(lpMTagConfig.pageVar)=="undefined") {lpMTagConfig.pageVar = new Array();}
if (typeof(lpMTagConfig.sessionVar)=="undefined") {lpMTagConfig.sessionVar = new Array();}
if (typeof(lpMTagConfig.visitorVar)=="undefined") {lpMTagConfig.visitorVar = new Array();}
//Extra actions to be taken once the code executes
if (typeof(lpMTagConfig.onLoadCode)=="undefined") {lpMTagConfig.onLoadCode = new Array();}
//Dynamic Buttons Array
if(typeof(lpMTagConfig.dynButton)=="undefined") {lpMTagConfig.dynButton=new Array();}


//function sonyMethodTrackCMSpot(param){
// alert(param);
//}

// Function that sends variables to LP - By Scope
function lpAddVars(scope,name,value) {
	if (name.indexOf('OrderTotal')!=-1 && (value=='' || value==0)) {   // pass 0 value to all but OrderTotal
		return;
	}

	value=lpTrimSpaces(value.toString());
	switch (scope){
		case "page": lpMTagConfig.pageVar[lpMTagConfig.pageVar.length] = escape(name)+"="+escape(value); break;
		case "session": lpMTagConfig.sessionVar[lpMTagConfig.sessionVar.length] = escape(name)+"="+escape(value); break;
		case "visitor": lpMTagConfig.visitorVar[lpMTagConfig.visitorVar.length] = escape(name)+"="+escape(value); break;
	}
}
// Preventing long cookie transfer for IE based browsers.
function onloadEMT() {
	var LPcookieLengthTest=document.cookie;
	if (lpMTag.lpBrowser == "IE" && LPcookieLengthTest.length>1900){
		lpMTagConfig.sendCookies=false;
	}
}

//The Trim function returns a text value with the leading and trailing spaces removed
function lpTrimSpaces(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
// Immediate Data submission function
function lpSendData(varscope,varname,varvalue){
	if(typeof(lpMTag)!="undefined" && typeof(lpMTag.lpSendData)!="undefined") {
		lpMTag.lpSendData(varscope.toUpperCase() +"VAR!"+ varname + "=" + varvalue, true);
	}
}


// The unit variable purpose is to route the chat or call to the designated skill. <LOB> should be replaced with the skill name, i.e. : sales
try{
	if (typeof(lpUnit)=='undefined')	var lpUnit='sonystyle-sales-general';
		// Checking for empty string and setting to default
		if(lpUnit=='') lpUnit='sonystyle-sales-general';
	if(typeof(lpAddVars)!="undefined")	lpAddVars('page','unit',lpUnit);
	if (typeof(lpLanguage)=='undefined')	var lpLanguage='english';
	if(typeof(lpAddVars)!="undefined")	lpAddVars('session','language',lpLanguage);
	lpMTagConfig.defaultInvite = "chat-" + lpUnit + "-" + lpLanguage;
	}catch(e){}

lpMTagConfig.onLoadCode[lpMTagConfig.onLoadCode.length] = onloadEMT;

//Omniture tracking calls (inviteAccept/Declined/Timeout,ButtonClicked,Button Online/Busy/Offline)
//sonyMethodTrackCMSpot's function should be defined on SonyStyle/Vendor's end.
lpMTagConfig.inviteChatAccept = function(objName) {
	var inviteObj = eval(objName);
	try{
	//Omniture tracking call - inviteChatAccept
	userChatDecision("inviteChatAccept");
	} catch(e){}
	return true;
};
lpMTagConfig.inviteChatDeclined = function(objName) {
	var inviteObj = eval(objName);
	try{
	//Omniture tracking call - inviteChatDeclined
	userChatDecision("inviteChatDeclined");
	} catch(e){}
	return true;
};
lpMTagConfig.inviteChatTimeout = function(objName) {
	var inviteObj = eval(objName);
	try{
	//Omniture tracking call - inviteChatTimeout
	userChatDecision("inviteChatTimeout");
	} catch(e){}
	return true;
};
lpMTagConfig.db1 = new Object();
lpMTagConfig.db1.dbClicked = function (objName, status) {
    objRef = eval(objName);
    if (status == 'online') {
	try{
	//Omniture tracking call - ButtonClicked
	userChatDynamicButton("ButtonClicked");
	} catch(e){}
    }
	return true;
};
lpMTagConfig.db1.dbStateChange = function (objName, status) {
    objRef = eval(objName);
	if (status == 'online') {
	try{
		//Omniture tracking call - Commented because this is not tracked ButtonOnline
		//sonyMethodTrackCMSpot("ButtonOnline");
		} catch(e){}
    }
	   if (status == 'busy') {
	try{
	//Omniture tracking call - Commented because this is not tracked ButtonBusy
		//sonyMethodTrackCMSpot("ButtonBusy");
			} catch(e){}
    }
  if (status == 'offline') {
	try{
	//Omniture tracking call - Commented because this is not tracked ButtonOffline
		//sonyMethodTrackCMSpot("ButtonOffline");
			} catch(e){}
    }
	return true;
 }

// LP Button Code-
if(typeof(lpMTagConfig.dynButton)!="undefined") {
	lpMTagConfig.dynButton[lpMTagConfig.dynButton.length] = {"name":"chat-"+lpUnit+"-"+lpLanguage,"pid":"lpButton-DIV","ovr":"lpMTagConfig.db1"};
}
if(typeof(lpMTagConfig.dynButton)!="undefined") {
	lpMTagConfig.dynButton[lpMTagConfig.dynButton.length] = {"name":"chat-sonystyle-service-english","pid":"lpButton-DIV-service","ovr":"lpMTagConfig.db1"};
}
if(typeof(lpMTagConfig.dynButton)!="undefined") {
	lpMTagConfig.dynButton[lpMTagConfig.dynButton.length] = {"name":"chat-sonystyle-sales-cart-english","pid":"lpButton-DIV-checkout","ovr":"lpMTagConfig.db1"};
}

lpMTagConfig.onLoadCode = new Array();

lpMTagConfig.maxReferrerLength = 800;

lpMTagConfig.onLoadCode[lpMTagConfig.onLoadCode.length] = function() {
	hcArrayStorage.prototype.set = function(name,value) {
	   for (var i=0;i<this.size();i++) {
	       if (this.nameArray[i] == name) {
	    	   this.valueArray[i] = value;
	       }
	   }
	}


	// store the original function
	lpMonitorTag.prototype._lpSetCallParams = lpMonitorTag.prototype.lpSetCallParams;
	// override the function
	lpMonitorTag.prototype.lpSetCallParams = function (lpCmd, extra) {
		// invoke the original function
		var CallParams = this._lpSetCallParams(lpCmd,extra);
		// modify the referrer property
		var trimmedReferrer = document.referrer;
		if (trimmedReferrer.length > lpMTagConfig.maxReferrerLength) {
			trimmedReferrer = document.referrer.substring(0,lpMTagConfig.maxReferrerLength);
		}

			CallParams.set('referrer',trimmedReferrer);
		return CallParams;
	}
}


// code used to set the z-index of the invitation
lpMTagConfig.inviteChatStart = function (invitename){
    try{
        var inv = eval(invitename);
        document.getElementById(inv.divID).style.zIndex = 2000; //you may change this as needed
        inv.zIndex=2000;
      }catch(e){}
      return true;
}
