//Date Last Modified 20090127
//Modified by DS
var lpMTagConfig = {
    'lpServer': "sales.liveperson.net",
    'lpNumber': "10502888",
    'lpProtocol': (document.location.toString().indexOf("https:") == 0) ? "https" : "http",
    'sendCookies': "true"
}

function lpAddMonitorTag(src) { 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); }

if (window.attachEvent) window.attachEvent('onload', lpAddMonitorTag);
else window.addEventListener("load", lpAddMonitorTag, false);

//Dynamic Buttons Array
if (typeof (lpMTagConfig.dynButton) == "undefined") lpMTagConfig.dynButton = new Array();

//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 != 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;
};

// 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 = 'MID';
    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;
} catch (e) { }

//Overrides for Chat Button on the page
if (typeof (lpMTagConfig.db1) == 'undefined') {
    lpMTagConfig.db1 = new Object(); // needed if does not already exist
}
lpMTagConfig.db1.dbStart = function(objName) {
    objRef = eval(objName);
    if (objRef == null) return true;
    objRef.buttonName = objRef.origButtonName;
    objRef.roomName = objRef.origButtonName;
    return true;
}
//overriding busy action to make the busy state clickable
lpMTagConfig.db1.busyAction = function(objName) {
    objRef = eval(objName);
    var chatWinURL = objRef.getActionURL("Busy");
    chatWinURL = chatWinURL.replace(/forceOffline/, "SESSIONVAR%21BusyClickOverride");
    window.open(chatWinURL, 'chat' + lpMTagConfig.lpNumber, 'width=472,height=320,status=0,resizable=0,menubar=no,scrollbars=no,location=no');
};
//overriding offline action to make the offline state clickable
lpMTagConfig.db1.offlineAction = function(objName) {
    objRef = eval(objName);
    var chatWinURL = objRef.getActionURL("Offline");
    window.open(chatWinURL, 'chat' + lpMTagConfig.lpNumber, 'width=472,height=320,status=0,resizable=0,menubar=no,scrollbars=no,location=no');
};
//overriding click action to call client functions
lpMTagConfig.db1.dbClicked = function(objName, buttonState) {
    objRef = eval(objName);
    if (buttonState == 'online') {
        try {
            pageEventsTracking.setAsyncClickEvents('ChatOnline');  //function to be executed when the chat button is clicked in online state
        } catch (e) { }
    }
    if (buttonState == 'busy') {
        try {
            pageEventsTracking.setAsyncClickEvents('ChatOnline');  //function to be executed when the chat button is clicked in busy state
        } catch (e) { }
    }
    if (buttonState == 'offline') {
        try {
            pageEventsTracking.setAsyncClickEvents('ChatOnline');  //function to be executed when the chat button is clicked in offline state
        } catch (e) { }
    }
    return true;
};


//Overrides for Talk Button on the page
if (typeof (lpMTagConfig.db2) == 'undefined') {
    lpMTagConfig.db2 = new Object(); // needed if does not already exist
}
lpMTagConfig.db2.dbStart = function(objName) {
    objRef = eval(objName);
    if (objRef == null) return true;
    objRef.buttonName = objRef.origButtonName;
    objRef.roomName = objRef.origButtonName;
    return true;
}
//overriding busy action to make busy state clickable
lpMTagConfig.db2.busyAction = function(objName) {
    objRef = eval(objName);
    var chatWinURL = objRef.getActionURL("Busy");
    chatWinURL = chatWinURL.replace(/forceOffline/, "SESSIONVAR%21BusyClickOverride");
    window.open(chatWinURL, 'chat' + lpMTagConfig.lpNumber, 'width=472,height=320,status=0,resizable=0,menubar=no,scrollbars=no,location=no');
};
//overriding offline action to make offline state clickable
lpMTagConfig.db2.offlineAction = function(objName) {
    objRef = eval(objName);
    var chatWinURL = objRef.getActionURL("Offline");
    window.open(chatWinURL, 'chat' + lpMTagConfig.lpNumber, 'width=472,height=320,status=0,resizable=0,menubar=no,scrollbars=no,location=no');
};
//overriding click action to call client functions
lpMTagConfig.db2.dbClicked = function(objName, buttonState) {
    objRef = eval(objName);
    if (buttonState == 'online') {
        try {
            pageEventsTracking.setAsyncClickEvents('TalkOnline');  //function to be executed when the talk button is clicked in online state
        } catch (e) { }
    }
    if (buttonState == 'busy') {
        try {
            pageEventsTracking.setAsyncClickEvents('TalkOnline');  //function to be executed when the talk button is clicked in busy state
        } catch (e) { }
    }
    if (buttonState == 'offline') {
        try {
            pageEventsTracking.setAsyncClickEvents('TalkOnline');  //function to be executed when the talk button is clicked in offline state
        } catch (e) { }
    }
    return true;
};
