//***********************************************************************************DISCLAIMER************************************************************************************
// NOTE: By downloading and using this software you expressly agree to the following: This software is for the limited use only in connection with the LivePerson services purchased by you. 
// Once the LivePerson services are no longer in use, you must cease all use of the software and destroy all copies. 
// The software is provided to you �as is� and without any warranty of any kind, express, implied or otherwise, including without limitation, any warranty of merchantability or fitness for a particular purpose.  
// In no event shall LivePerson or any of its affiliates be liable for any direct, indirect, special, incidental, or consequential damages or any other damages of any kind, whether LivePerson
// or any of its affiliates have been advised of the possibility of such loss, however caused, and on any theory of liability, arising out of or related to the possession, use or performance of this software.  
// IF YOU DO NOT AGREE TO THE FOREGOING TERMS, DO NOT DOWNLOAD THE SOFTWARE OR USE THE SOFTWARE.
//***********************************************************************************DISCLAIMER************************************************************************************
var lpMTagConfig = {
	'lpServer' : "sales.liveperson.net",
	'lpNumber' : "57472748",
	'lpProtocol' : (document.location.toString().indexOf("https:")==0) ? "https" : "http",
	'sendCookies' : "true",
	'pageWindowName' : "Adobe Window", //used to fix bug with very large pageWindowName causing POST requests
	'lpTagSrv' : "sr2.liveperson.net"
}

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);

function lpSendData(variable,varname){
if(typeof(lpMTag)!='undefined' && typeof(lpMTag.lpSendData)!='undefined')
  lpMTag.lpSendData('&SESSIONVAR!'+ variable + '=' + varname, true);
}

function lpSendDataPage(variable,varname){
 if(typeof(lpMTag)!='undefined' && typeof(lpMTag.lpSendData)!='undefined'){
  lpMTag.lpSendData('PAGEVAR!'+ variable + '=' + varname, true);}
}

//Dynamic Buttons Array
if(typeof(lpMTagConfig.dynButton)=="undefined") lpMTagConfig.dynButton=new Array();

var _lang = "";

lpMTagConfig.db1 = new Object();

lpMTagConfig.db1.dbStateChange = function (objName, buttonState) {
	var dbRef = eval(objName);
    if (dbRef == null) return true;
	   var onlineText = '<h4>A chat support specialist is available</h4>';
	if (_lang == "en-gb") {
	   var onlineText = '<h4>A chat support specialist is available</h4>';
	} else if (_lang == "de") {	
	   var onlineText = '<h4>Ein Support-Mitarbeiter ist im Chat verfügbar</h4>';
	} else if (_lang == "fr-fr") {	
	    var onlineText = '<h4>Un spécialiste support est disponible</h4>';	
	}

	
	var offlineText = '';
	var busyText = '';
	var divRef = dbRef.GetObj('lpChatDynamicButtonDiv_Text');
	//alert(buttonState);
	if (divRef == null) return true;
	switch (buttonState) {
        case 'online':
		showChatContainer();
            // divRef.innerHTML = onlineText;
            break;

        case 'offline':
		collapseChatContainer();
            // divRef.innerHTML = offlineText;
            break;

        case 'busy':
		collapseChatContainer();
            // divRef.innerHTML = busyText;
            break;
    }
    return true;
};



//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();

// Function that sends variables to LP - By Scope
function lpAddVars(scope,name,value) 	{
	if (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;
};


// Generate random 10 character string
  chars = "1234567890"; //character set to use for random string or number
  var lpUniqueString = "CH";
  for(x=0;x<8;x++) //the 8 indicates the length of the random string or number to generate
  {
    i = Math.floor(Math.random() * 10); //number of characters within character set above
	lpUniqueString += chars.charAt(i);
  }

// 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{
   //var _lang = "";
   //alert(document.getElementsByTagName('meta').length);
   //_lang = $$("meta[http-equiv=Content-Language]").invoke("readAttribute","content").first();
   var myMetaTags = document.getElementsByTagName('meta');
   for(var i=0;i<myMetaTags.length;i++) {
	 try{
		 if(myMetaTags[i].getAttribute('http-equiv') == "Content-Language") { 	
		 	_lang = myMetaTags[i].getAttribute('content', 2);
		 }	   
	 } catch(ex) {
	 }
   }
   if(_lang == "") {
	   for(var i=0;i<myMetaTags.length;i++) {
		 try{
             var myMetaTag = myMetaTags[i].outerHTML;
			 if(myMetaTag.indexOf('http-equiv') != -1) {
			    if (myMetaTag.indexOf('Content-Language') != -1) {	
					 //alert("1:" + myMetaTag);	 
			 	     myMetaTag = myMetaTag.replace("<META http-equiv=Content-Language content=","");		 	
					 //alert("2:" + myMetaTag);	 
			 	     myMetaTag = myMetaTag.replace(">","");	
					 myMetaTag = myMetaTag.replace(/\n/,"");
					 myMetaTag = myMetaTag.replace(/\r/,"");
					 //alert("3:" + myMetaTag);	 					 	 	
					_lang = myMetaTag;
				}
			  }	   
		 } catch(ex) {
		 }
	   }
   }

//alert("lang:" + _lang);
	/*
	 * <meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Language" content="fr-fr" />
<meta http-equiv="Content-Language" content="en-gb" />
	 */
	//http-equiv="Content-Language"

if (typeof(lpUnit)=='undefined') var lpUnit='service';
if (typeof(lpLanguage)=='undefined') var lpLanguage='english';

if(_lang == "en-us") {	
	lpLanguage='english';
} else if (_lang == "en-gb") {
	    lpLanguage = 'english';
    var lpUnit='service-uk';
} else if (_lang == "de") {	
	lpLanguage='german';
} else if (_lang == "fr-fr") {	
	lpLanguage='french';	
} 
//alert("lpLanguage:" + lpLanguage);

	if(typeof(lpAddVars)!="undefined"){
		lpAddVars('page','unit',lpUnit);
		lpAddVars('session','language',lpLanguage);
		lpAddVars('visitor','lpUniqueString',lpUniqueString);
		}
	lpMTagConfig.defaultInvite = "chat-" + lpUnit + "-" +lpLanguage;
	}catch(e){
		
		alert(e.message);
	}


/** patch for gpr  no border on invite **/ 

  lpMTagConfig.inviteChatStart = function (objName) {
    var inviteObj = eval(objName);
    if (inviteObj==null) {
        return true;
    }
    var divObj = inviteObj.GetObj(inviteObj.divID);
    if (divObj==null) {
        return true;
    }
    var inviteHTML = "<table border='0' cellspacing='0' cellpadding='0' style='border:none;'>";
            inviteHTML += "<tr><td style='border:none;background:none;padding:0px;'>";
			inviteHTML += "<a name='"+ inviteObj.aRefNeedHelpID +"' id='"+inviteObj.aRefNeedHelpID+"' href='#' title='" + inviteObj.buttonTitle + "'>";
			inviteHTML += "<img id='"+ inviteObj.imgNeedHelpID +"' src='"+inviteObj.imgNeedHelpOffSRC+"' alt='" + inviteObj.buttonTitle + "' style='display: block; border: 0;'/>";
			inviteHTML += "</a></td></tr>";
			inviteHTML += "<tr><td style='border:none; background:none;padding:0px;'>";
			inviteHTML += "<a name='"+ inviteObj.aRefCloseID +"' id='"+inviteObj.aRefCloseID+"' href='#' title='" + inviteObj.closeTitle + "'>";
			inviteHTML += "<img id='"+ inviteObj.imgCloseID +"' src='"+inviteObj.imgCloseOffSRC+"' alt='" + inviteObj.closeTitle + "' style='display: block; border: 0;'/>";
			inviteHTML += "</a></td></tr>";
			inviteHTML += '</table>';
			divObj.innerHTML = inviteHTML;
    return true;
};
  