// Date last modified = 20090218
// Modified by = DS
var lpMTagConfig = {
		'lpServer' : "sales.liveperson.net",
		'lpNumber' : "27428686", 
		'lpProtocol' : (document.location.toString().indexOf("https:")==0) ? "https" : "http", 
		'sendCookies' : true,
		"lpTagLoaded" : false,
		"pageStartTime" : (new Date()).getTime() //pageStartTime is set with a timestamp as soon as the page starts loading
	}

function lpAddMonitorTag(src)
{
	if (!lpMTagConfig.lpTagLoaded)
	{
		if(typeof(src)=="undefined"||typeof(src)=="object"){src=lpMTagConfig.lpMTagSrc?lpMTagConfig.lpMTagSrc:"/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);	
	}
}

/*
The code below send a PAGEVAR to LP with the time [iin seconds] it took the page to load. Code is executed in the onload event
*/
lpMTagConfig.calculateSentPageTime = function () {
	var t = (new Date()).getTime() - lpMTagConfig.pageStartTime;
	lpAddVars('page','pageLoadTime', Math.round(t/1000)+" sec");
};

if (window.attachEvent)window.attachEvent("onload",lpMTagConfig.calculateSentPageTime);
else window.addEventListener("load",lpMTagConfig.calculateSentPageTime,false);

//Load mtag.js inline if this is a Confermation Page else load it on page load event
if (window.attachEvent)window.attachEvent("onload",lpAddMonitorTag);
else window.addEventListener("load",lpAddMonitorTag,false);

function onloadEMT() {
	//  Preventing long cookie transfer for IE based browsers.
	var LPcookieLengthTest=document.cookie;
	if (lpMTag.lpBrowser == 'IE' && LPcookieLengthTest.length>1900){
		lpMTagConfig.sendCookies=false;
	}
}

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 that sends variables to LP - By Scope
function lpAddVars(scope,name,value) 	{
	if (name=="OrderNumber" || name=="orderNumber" || name=="OrderTotal" || name=="orderTotal") lpMTagConfig.sendCookies=false;
	if (value != 0 && value != "")  //This is optional, depends if client wants to pass 0 or blank values
	{
	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;
		}
	}
}

//Visitor activity indicator
//lpMTagConfig.enableActivityMon =<true/false>; //By default true
//lpMTagConfig.inactivityPeriod=<Inactivity Period in Sec>; //By default 120
//lpMTagConfig.actPollingInterval =<value in sec>; // By default 3 sec

//Prevent Invitation shown off page
lpMTagConfig.lpInvitePreventOffpage = true; // <true/false>  Can be change to false.

// Variables submission using lpGetVariables
/*
function lpGetVariables() {
var udes = new Array();
udes['<Scope:page/session/visitor>'] = new Array();
udes['<Scope:page/session/visitor>'][<counter>] = '<Variable Name>=<Variable Value>'; //First counter =0
return udes;
}
*/

// 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 Trim function returns a text value with the leading and trailing spaces removed
function lpTrimSpaces(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

//Omit a specific cookie from the list of cookies that is being sent to LP with the monitor
lpMTagConfig.GetPageCookies = function () {
var cookies = document.cookie;
if ((typeof(cookies) == "undefined") || (cookies == null)) {
            cookies = "";
}
cookies = cookies.replace(/COOKIENAME=[a-zA-Z0-9\-!]*;?/,"");
return cookies;
};

/* Webtrends tracking call - Invitation Shown */
lpMTagConfig.inviteChatShown = function(objName) {
	var inviteObj = eval(objName);
	try{
		dcsMultiTrack('DCS.dcssip',document.domain,
		'DCS.dcsuri','/virtual/inviteShown',
		'DCS.dcsref',document.location.href,
		'DCSext.wtEvent','ChatInviteShown',
		'DCSext.wtEventSuccessFlag','1',
		'DCSext.wtChatType','Proactive'); 
	} catch(e){}
	return true;
};
/* Webtrends tracking call - Invitation Accepted */
lpMTagConfig.inviteChatAccept = function(objName) {
	var inviteObj = eval(objName);
	try{
		dcsMultiTrack('DCS.dcssip',document.domain,
		'DCS.dcsuri','/virtual/chatAccepted',
		'DCS.dcsref',document.location.href,
		'DCSext.wtEvent','ChatAccepted',
		'DCSext.wtUserResp','chat',
		'DCSext.wtEventSuccessFlag','1',
		'DCSext.wtChatType','Proactive');
		lpSendData('page','ChatStartedURL',document.location);
	} catch(e){}
	return true;
};
/* Webtrends tracking call - Invitation Declined */
lpMTagConfig.inviteChatDeclined = function(objName) {
	var inviteObj = eval(objName);
	try{
		dcsMultiTrack('DCS.dcssip',document.domain,
		'DCS.dcsuri','/virtual/chatDeclined',
		'DCS.dcsref',document.location.href,
		'DCSext.wtEvent', 'ChatDeclined',
		'DCSext.wtUserResp', 'noThanks',
		'DCSext.wtEventSuccessFlag','1',
		'DCSext.wtChatType','Proactive'); 
	} catch(e){}
	return 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='uverse-residential';
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){}


if (typeof(lpMTagConfig.db1)=='undefined') {
    lpMTagConfig.db1 = new Object(); /* needed if does not already exist */
}
lpMTagConfig.dbStart = function (objName) {
	objRef = eval(objName);
	if (objRef==null) return true;
	objRef.buttonName = objRef.origButtonName;
	objRef.roomName = objRef.origButtonName;
	return true;
}

/* Webtrends tracking call - Button Shown */
lpMTagConfig.db1.dbStateChange = function (objName, status) {
	objRef = eval(objName);          
	if (status == 'online') {
		try{
			dcsMultiTrack('DCS.dcssip',document.domain,
			'DCS.dcsuri','/virtual/inviteShown',
			'DCS.dcsref',document.location.href,
			'DCSext.wtEvent','ChatInviteShown',
			'DCSext.wtEventSuccessFlag','1',
			'DCSext.wtChatType','Reactive'); 
		} catch(e){}
	}
	return true;
}

/* Webtrends tracking call - Button Clicked */
lpMTagConfig.db1.dbClicked = function (objName, status) {
    objRef = eval(objName);	
    if (status == 'online') {
		try{
			dcsMultiTrack('DCS.dcssip',document.domain,
			'DCS.dcsuri','/virtual/chatAccepted',
			'DCS.dcsref',document.location.href,
			'DCSext.wtEvent','ChatAccepted',
			'DCSext.wtUserResp','chat',
			'DCSext.wtEventSuccessFlag','1',
			'DCSext.wtChatType','Reactive');
		} catch(e){}
    }
	return true;
};

lpMTagConfig.onLoadCode[lpMTagConfig.onLoadCode.length] = onloadEMT;



