/*
* Util Codes
*/
function StringBuffer() {
    this.tempArr = new Array();
    this.append = function (str) {
        this.tempArr.push(str);
    }
    this.toString = function () {
        return this.tempArr.join("");
    }
}

var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent) ||
        this.searchVersion(navigator.appVersion) ||
        "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else
                if (dataProp)
                    return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1)
            return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },
    dataBrowser: [{
        string: navigator.userAgent,
        subString: "Chrome",
        identity: "Chrome"
    }, {
        string: navigator.userAgent,
        subString: "OmniWeb",
        versionSearch: "OmniWeb/",
        identity: "OmniWeb"
    }, {
        string: navigator.vendor,
        subString: "Apple",
        identity: "Safari",
        versionSearch: "Version"
    }, {
        prop: window.opera,
        identity: "Opera"
    }, {
        string: navigator.vendor,
        subString: "iCab",
        identity: "iCab"
    }, {
        string: navigator.vendor,
        subString: "KDE",
        identity: "Konqueror"
    }, {
        string: navigator.userAgent,
        subString: "Firefox",
        identity: "Firefox"
    }, {
        string: navigator.vendor,
        subString: "Camino",
        identity: "Camino"
    }, { // for newer Netscapes (6+)
        string: navigator.userAgent,
        subString: "Netscape",
        identity: "Netscape"
    }, {
        string: navigator.userAgent,
        subString: "MSIE",
        identity: "Internet Explorer",
        versionSearch: "MSIE"
    }, {
        string: navigator.userAgent,
        subString: "Gecko",
        identity: "Mozilla",
        versionSearch: "rv"
    }, { // for older Netscapes (4-)
        string: navigator.userAgent,
        subString: "Mozilla",
        identity: "Netscape",
        versionSearch: "Mozilla"
    }],
    dataOS: [{
        string: navigator.platform,
        subString: "Win",
        identity: "Windows"
    }, {
        string: navigator.platform,
        subString: "Mac",
        identity: "Mac"
    }, {
        string: navigator.userAgent,
        subString: "iPhone",
        identity: "iPhone/iPod"
    }, {
        string: navigator.platform,
        subString: "Linux",
        identity: "Linux"
    }]
};

BrowserDetect.init();

function getOS() {
    return BrowserDetect.OS;
}

function getBrowserType() {

    return BrowserDetect.browser;
}

/**************Codes for Live Help 5.2***************/
var version = 5.2;
var v = 0;
if (urlLink == undefined) {
    var urlLink;
    try {
        urlLink = window.location.href;
    }
    catch (e) {
        try {
            urlLink = document.URL;
        }
        catch (e) {
            urlLink = "";
        }
    }
}
/********************for clear swf object when close the ie window start*********/
window.onunload = function () {
    try {
        var m = navigator.userAgent.toLowerCase().indexOf("msie") != -1;
        if (m) {
            var lh = document.getElementById('topcmm_123livehelp');
            livehelp.removeChild(lh);
        }
    }
    catch (e) {
    }
}
/********************for clear swf object when close the ie window end*********/

var init_room;
var init_url;
var init_nickname;
var init_preColor;
var init_staff;
var init_dc;
var init_color;
var init_dc_skin;
var SELECT_NO_DC_NO_POPUP = "You do not need to embed any code!";
var NOT_DISPLAY_ONLINE_STATUS = "3"; //3 is the id for No Button
var DISPLAY_ONLINE_STATUS_TEXT = "4";
var CLIENT_ASSIGN_DEPT = "1";
var CLIENT_ASSIGN_STAFF = "2";
var init_os;
var init_keywords;
var init_search_engine;
var init_prelink;
var init_user;
var init_password;
var display_div_layerid;
var operator_status_live_update;

/**************************for open swf method start******************************/
function getParameter(arg) {
    arg = (arg == "") ? (arg + "?") : (arg + "&");
    return arg;
}

function openSWF(urlValue, widthValue, heightValue, divId, flashId) {

    init_room = "";
    var indexOfSWF = urlValue.indexOf('.swf');
    var indexOfInterrogation = urlValue.indexOf('?');
    var ieURL = "";
    var otherBrowserURL = "";
    var swfURL = "";
    var parameter = "";
    var init_prelink = "";
    var init_browser = BrowserDetect.browser;

    init_prelink = topcmm_GetCookie("referrerLH");
    if (init_prelink == "" || init_prelink + "" == "undefined") {
        init_prelink = getPreLink();
    }

    if (indexOfInterrogation != -1) {
        swfURL = urlValue.substring(0, indexOfInterrogation);
        parameter = urlValue.substring(indexOfInterrogation);

        if (parameter.indexOf(init_prelink) == -1 && init_prelink + "" != "undefined" && init_prelink != "") {
            parameter += ("&init_prelink=" + encodeURIComponent(init_prelink));
        }
    }
    else {
        swfURL = urlValue;
        if (swfURL.indexOf(init_prelink) == -1 && init_prelink + "" != "undefined" && init_prelink != "") {
            swfURL += ("?init_prelink=" + encodeURIComponent(init_prelink));
        }
    }
    if (init_room != undefined && parameter.indexOf("init_room") == -1) {
        if (init_room != 0) {
            parameter = getParameter(parameter);
            parameter += "init_room=" + init_room;
        }
    }
    if (init_browser != undefined && parameter.indexOf("init_browser") == -1) {
        parameter = getParameter(parameter);
        parameter += "init_browser=" + encodeURIComponent(init_browser);
    }

    if (init_url != undefined && parameter.indexOf("init_url") == -1) {
        parameter = getParameter(parameter);
        parameter += "init_url=" + encodeURIComponent(init_url);
    }

    if (init_nickname != undefined && parameter.indexOf("init_nickname") == -1) {
        parameter = getParameter(parameter);
        parameter += "init_nickname=" + init_nickname;
    }
    if (init_preColor != undefined && parameter.indexOf("init_preColor") == -1) {
        parameter = getParameter(parameter);
        parameter += "init_preColor=" + init_preColor;
    }
    if (init_staff != undefined && parameter.indexOf("init_staff") == -1) {
        parameter = getParameter(parameter);
        parameter += "init_staff=" + init_staff;
    }
    if (parameter.indexOf("init_os") == -1) {
        if (init_os != undefined) {

            parameter = getParameter(parameter);
            parameter += "init_os=" + init_os;
        }
        else {
            init_os = getOS();
            if (init_os != undefined) {
                parameter = getParameter(parameter);
                parameter += "init_os=" + init_os;
            }
        }
    }
    if (init_dc != undefined && parameter.indexOf("init_dc") == -1) {
        parameter = getParameter(parameter);
        parameter += "init_dc=" + init_dc;
    }
    if (indexOfSWF != -1) {
        ieURL = swfURL.substring(0, indexOfSWF);
        otherBrowserURL = swfURL;
    }
    else {
        ieURL = swfURL;
        otherBrowserURL = swfURL + '.swf';
    }
    if (init_color != undefined && parameter.indexOf("init_color") == -1) {
        parameter = getParameter(parameter);
        parameter += "init_color=" + init_color;
    }
    if (urlValue.indexOf("dc.swf") != -1) {
        parameter += "&footprint=" + encodeURIComponent(urlLink);
        if (typeof (define_url) != 'undefined') {
            parameter += "&init_root=" + encodeURIComponent(define_url);
        }
    }

    ieURL = ieURL + parameter;
    otherBrowserURL = otherBrowserURL + parameter;
    //alert(ieURL);
    var m = navigator.userAgent.toLowerCase().indexOf("msie") != -1
    if (m) //for ie, resolve the active swf problem
    {
        document.write('<DIV id="' + divId + '">');
        AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,19,0', 'width', widthValue, 'height', heightValue, 'src', ieURL, 'id', flashId, 'quality', 'high', 'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'movie', ieURL, 'name', 'topcmm_123livehelp', 'swfLiveConnect', 'true', 'AllowScriptAccess', 'always');
        document.write('</DIV>');
    }
    else {
        try {
            //if firefox use document.write('<OBJECT...'>) to embed swf object, the browser will throw SetVariable is not a method exception
            document.write('<DIV id="' + divId + '">');
            document.getElementById(divId).innerHTML = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" wmode="opaque" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,19,0" WIDTH="' + widthValue + '" HEIGHT="' + heightValue + '" id="' + flashId + '"><PARAM NAME=movie VALUE="' + otherBrowserURL + '"><PARAM NAME=AllowScriptAccess VALUE="always"><PARAM NAME=quality VALUE="high"><param name="wmode" value="opaque" /><PARAM NAME="menu" value="false"><EMBED src="' + otherBrowserURL + '" quality=high menu=false WIDTH="' + widthValue + '" HEIGHT="' + heightValue + '" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" scale="noscale" name="' + flashId + '" swLiveConnect="true" AllowScriptAccess="always"></EMBED></OBJECT>';
            document.write('</DIV>');
        }
        catch (e) {
            //can not use proxy
            document.write('<DIV id="' + divId + '"><OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" wmode="opaque" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,19,0" WIDTH="' + widthValue + '" HEIGHT="' + heightValue + '" id="' + flashId + '"><PARAM NAME=movie VALUE="' + otherBrowserURL + '"><PARAM NAME=AllowScriptAccess VALUE="always"><PARAM NAME=quality VALUE="high"><param name="wmode" value="opaque" /><PARAM NAME="menu" value="false"><EMBED src="' + otherBrowserURL + '" quality=high menu=false WIDTH="' + widthValue + '" HEIGHT="' + heightValue + '" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" scale="noscale" name="' + flashId + '" swLiveConnect="true" AllowScriptAccess="always"></EMBED></OBJECT></DIV>');
        }
    }
}

/**************************for open swf method end******************************/
/*******************************Adobe method start******************************/
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext) {
    if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext + '?');
    else
        return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) {
    var str = '<object ';
    for (var i in objAttrs)
        str += i + '="' + objAttrs[i] + '" ';
    str += '>';
    for (var i in params)
        str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    str += '<embed ';
    for (var i in embedAttrs)
        str += i + '="' + embedAttrs[i] + '" ';
    str += ' ></embed></object>';
    document.write(str);
}

function AC_FL_RunContent() {
    var ret = AC_GetArgs(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent() {
    var ret = AC_GetArgs(arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000", null);
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i = 0; i < args.length; i = i + 2) {
        var currArg = args[i].toLowerCase();

        switch (currArg) {
            case "classid":
                break;
            case "pluginspage":
                ret.embedAttrs[args[i]] = args[i + 1];
                break;
            case "src":
            case "movie":
                args[i + 1] = AC_AddExtension(args[i + 1], ext);
                ret.embedAttrs["src"] = args[i + 1];
                ret.params[srcParamName] = args[i + 1];
                break;
            case "onafterupdate":
            case "onbeforeupdate":
            case "onblur":
            case "oncellchange":
            case "onclick":
            case "ondblClick":
            case "ondrag":
            case "ondragend":
            case "ondragenter":
            case "ondragleave":
            case "ondragover":
            case "ondrop":
            case "onfinish":
            case "onfocus":
            case "onhelp":
            case "onmousedown":
            case "onmouseup":
            case "onmouseover":
            case "onmousemove":
            case "onmouseout":
            case "onkeypress":
            case "onkeydown":
            case "onkeyup":
            case "onload":
            case "onlosecapture":
            case "onpropertychange":
            case "onreadystatechange":
            case "onrowsdelete":
            case "onrowenter":
            case "onrowexit":
            case "onrowsinserted":
            case "onstart":
            case "onscroll":
            case "onbeforeeditfocus":
            case "onactivate":
            case "onbeforedeactivate":
            case "ondeactivate":
            case "type":
            case "codebase":
                ret.objAttrs[args[i]] = args[i + 1];
                break;
            case "width":
            case "height":
            case "align":
            case "vspace":
            case "hspace":
            case "class":
            case "title":
            case "accesskey":
            case "name":
            case "id":
            case "tabindex":
                ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1];
                break;
            default:
                ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1];
        }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType)
        ret.embedAttrs["type"] = mimeType;
    return ret;
}

/*******************************Adobe method end******************************/

//display status img start
function getOnlineStatus(assignType, assignId) {
    if (assignType == 1) //assign dept
    {
        for (var i in onlineDept) {
            if (onlineDept[i][1] == assignId)
                return true;
        }
    }
    else
        if (assignType == 2) //assign staff
        {
            for (var i in onlineStaff) {
                if (onlineStaff[i][0] == assignId)
                    return true;
            }
        }
        else {
            if (onlineDept.length != 0) {
                return true;
            }
            else {
                return false;
            }
        }
    return false;
}

function displayStatusImg(assignType, assignId, onlineImg, offlineImg, clientHtmlUrl, win_width, win_height, init_url, init_room, init_nickname, init_preColor, init_user, init_password) {
    var init_os = getOS();
    if (init_os == undefined) {
        init_os = "";
    }

    var isShowCustomizeLayer = getCustomizeDivLayer();
    var init_keywords = topcmm_GetCookie("keyWordsLH");

    if (init_keywords == "" || init_keywords + "" == "undefined") {
        init_keywords = getKeyWords();
    }
    if (init_keywords == undefined) {
        init_keywords = "";
    }
    var init_search_engine = getSearchEngine();
    if (init_search_engine == undefined) {
        init_search_engine = "";
    }
    var init_prelink = topcmm_GetCookie("referrerLH");

    var init_browser = BrowserDetect.browser;
    if (init_browser == undefined && init_browser == "") {

        init_browser = "";
    }
    if (init_prelink == "" || init_prelink + "" == "undefined") {
        init_prelink = getPreLink();
    }

    if (init_prelink == undefined) {
        init_prelink = "";
    }
    var htmlcode = "";
    if (getOnlineStatus(assignType, assignId)) {
        htmlcode = onlineImg;
    }
    else {
        htmlcode = offlineImg;
    }
    //alert("init_room"+ init_room);
    var functionStr = "openClientInNewWindow('" + clientHtmlUrl + "','" + win_width + "','" + win_height + "','" + encodeURIComponent(init_url) + "','" + init_room + "','" + init_nickname + "','" + init_preColor + "','" + init_user + "','" + init_password + "','" + init_os + "','" + init_keywords + "','" + init_search_engine + "','" + encodeURIComponent(init_prelink) + "','" + encodeURIComponent(init_browser) + "');return false;";

    htmlcode = '<a href="' + clientHtmlUrl + '" target="123livehelp_client" onclick="' + functionStr + '"><img class="topcmmLiveStatusImg" online="' + onlineImg + '" offline ="' + offlineImg + '" src="' + htmlcode + '"border="0"></a>';
    if (isShowCustomizeLayer) {
        document.getElementById(display_div_layerid).innerHTML = htmlcode;
    }
    else if (display_div_layerid == undefined) {
        document.write(htmlcode);
    }
}

function displayStatusText(assignType, assignId, onlineText, offlineText, clientHtmlUrl, win_width, win_height, init_url, init_room, init_nickname, init_preColor, init_user, init_password) {
    var init_os = getOS();
    if (init_os == undefined) {
        init_os = "";
    }

    var init_keywords = topcmm_GetCookie("keyWordsLH");

    if (init_keywords == "" || init_keywords + "" == "undefined") {
        init_keywords = getKeyWords();
    }
    if (init_keywords == undefined) {
        init_keywords = "";
    }
    var init_search_engine = getSearchEngine();
    if (init_search_engine == undefined) {
        init_search_engine = "";
    }
    var init_prelink = topcmm_GetCookie("referrerLH");

    if (init_prelink == "" || init_prelink + "" == "undefined") {
        init_prelink = getPreLink();
    }

    if (init_prelink == undefined) {
        init_prelink = "";
    }
    var htmlcode = "";
    if (getOnlineStatus(assignType, assignId)) {
        htmlcode = onlineText;
    }
    else {
        htmlcode = offlineText;
    }
    var init_browser = BrowserDetect.browser;
    if (init_browser == undefined && init_browser == "") {

        init_browser = "";
    }
    var functionStr = "openClientInNewWindow('" + clientHtmlUrl + "','" + win_width + "','" + win_height + "','" + encodeURIComponent(init_url) + "','" + init_room + "','" + init_nickname + "','" + init_preColor + "','" + init_user + "','" + init_password + "','" + init_os + "','" + init_keywords + "','" + init_search_engine + "','" + encodeURIComponent(init_prelink) + "','" + encodeURIComponent(init_browser) + "');return false;";

    htmlcode = '<a href="' + clientHtmlUrl + '" target="123livehelp_client" onclick="' + functionStr + '">' + htmlcode + '</a>';

    if (typeof isShowCustomizeLayer != 'undefined') {
        document.getElementById(display_div_layerid).innerHTML = htmlcode;
    }
    else if (display_div_layerid == undefined) {
        document.write(htmlcode);
    }
}

function getCustomizeDivLayer() {
    if (display_div_layerid != undefined) {
        if (document.getElementById(display_div_layerid) == null) {
            return false;
        }
        return true;
    }
    else {
        return false;
    }
}

function selectDC() {
    var button_type = "0";
    var buttonTypeLength = document.customForm.button_type.length;
    for (i = 0; i < buttonTypeLength; i++) {
        if (document.customForm.button_type[i].checked) {
            button_type = document.customForm.button_type[i].value;
            break;
        }
    }
    if (button_type == NOT_DISPLAY_ONLINE_STATUS) //only DC
    {
        document.customForm.win_width.disabled = true;
        document.customForm.win_height.disabled = true;
        var windowStytleLength = document.customForm.button_window_style.length;
        for (i = 0; i < windowStytleLength; i++) {
            document.customForm.button_window_style[i].disabled = true;
            document.customForm.button_window_style[i].checked = false;
        }
        document.customForm.button2.disabled = true;
        document.customForm.select_assign.disabled = true;
    }
    else {
        document.customForm.win_width.disabled = false;
        document.customForm.win_height.disabled = false;
        var windowStytleLength = document.customForm.button_window_style.length;
        for (i = 0; i < windowStytleLength; i++) {
            document.customForm.button_window_style[i].disabled = false;
        }
        document.customForm.button_window_style[0].checked = true;
        document.customForm.button2.disabled = false;
        document.customForm.select_assign.disabled = false;
    }
}

function selectNoDC() {
    var dcSkinType = "0";
    var dcSkinTypeLength = document.customForm.dc_style.length;
    var dcDeptLength = document.customForm.dc_dept.length;
    for (i = 0; i < dcSkinTypeLength; i++) {
        if (document.customForm.dc_style[i].checked) {
            dcSkinType = document.customForm.dc_style[i].value;
            break;
        }
    }
    if (dcSkinType == "0")//No DC
    {
        if (typeof (DeptLength) == 'undefined') {
            document.customForm.dc_dept.disabled = true;
            document.customForm.dc_dept.checked = false;
            document.customForm.select_DC_popup.disabled = true;
        }
        for (i = 0; i < dcDeptLength; i++) {
            document.customForm.dc_dept[i].disabled = true;
            document.customForm.dc_dept[i].checked = false;
            document.customForm.select_DC_popup.disabled = true;
        }
    }
    else {
        for (i = 0; i < dcDeptLength; i++) {
            document.customForm.dc_dept[i].disabled = false;
        }
        if (typeof (dcDeptLength) == 'undefined') {
            document.customForm.dc_dept.checked = true;
            document.customForm.dc_dept.disabled = false;
        }
        else {
            document.customForm.dc_dept[0].checked = true;
        }
        document.customForm.select_DC_popup.disabled = false;
    }
}

function getRootURL() {
    document.customForm.url.value = urlLink.substring(0, urlLink.lastIndexOf('/'));
}

function showAllDept() {
    if (deptList.length == 0) {
        document.getElementById("assign_dc_dept").innerHTML = '<font color="#FF0000">There is no Department for staff! <br>In order to use the function of invite window,please add at least one department.</font>';
    }
    for (i = 0; i < deptList.length; i++) {
        if (i == 0) {
            document.getElementById("assign_dc_dept").innerHTML += '<input type="radio" name="dc_dept" value="' + deptList[i][1] + '" checked>' + deptList[i][0];
        }
        else {
            document.getElementById("assign_dc_dept").innerHTML += '<input type="radio" name="dc_dept" value="' + deptList[i][1] + '" >' + deptList[i][0];
        }
        if (i > 0 && i % 7 == 0) {
            document.getElementById("assign_dc_dept").innerHTML += '<br>';
        }
    }
}

function openClientInNewWindow(clientHtmlUrl, win_width, win_height, init_url, init_room, init_nickname, init_preColor, init_user, init_password, init_os, init_keywords, init_search_engine, init_prelink, init_browser) {
    if (win_width == undefined || win_width == "") {
        win_width = 495;
    }
    if (win_height == undefined || win_height == "") {
        win_height = 440;
    }
    var parameter = "";
    if (init_url == 'undefined' || init_url == "") {
        init_url = urlLink;
    }
    parameter = "?";
    while (clientHtmlUrl.indexOf("?init_color") != -1) {
        parameter = "&";
        break;
    }

    parameter += "init_url=" + encodeURIComponent(init_url);
    if (init_room != 'undefined' && init_room != "") {
        parameter = getParameter(parameter);
        parameter += "init_room=" + init_room;
    }
    if (init_nickname != 'undefined' && init_nickname != "") {
        parameter = getParameter(parameter);
        parameter += "init_nickname=" + init_nickname;
    }

    if (init_user != 'undefined' && init_user != "") {
        parameter = getParameter(parameter);
        parameter += "init_user=" + init_user;
    }
    if (init_password != 'undefined' && init_password != "") {
        parameter = getParameter(parameter);
        parameter += "init_password=" + init_password;
    }
    if (init_os != 'undefined' && init_os != "") {
        parameter = getParameter(parameter);
        parameter += "init_os=" + init_os;
    }
    if (init_keywords != 'undefined' && init_keywords != "") {
        parameter = getParameter(parameter);
        parameter += "init_keywords=" + init_keywords;
    }
    if (init_search_engine != 'undefined' && init_search_engine != "") {
        parameter = getParameter(parameter);
        parameter += "init_search_engine=" + init_search_engine;
    }
    if (init_prelink != 'undefined' && init_prelink != "") {
        parameter = getParameter(parameter);
        parameter += "init_prelink=" + encodeURIComponent(init_prelink);
    }
    if (init_browser + "" != 'undefined' && init_browser != "") {
        parameter = getParameter(parameter);
        parameter += "init_browser=" + init_browser;
    }

    var urlStr = clientHtmlUrl + parameter;
    var win = window.open(urlStr, "123livehelp_client" + Math.round(Math.random() * 1000), "resizable=1, width=" + win_width + ",height=" + win_height + ",status=1");
}

//display status img end
//generator code
var CLIENT_HTML = "client.html";
var LIVE_STATUS_JS = "live_status.js";
var STYLE_CSS = "style.css";
var MAIN_JS = "123livehelp.js";
var ONLINE_JPG = "img/online.jpg";
var OFFLINE_JPG = "img/offline.jpg";
var ONLINE_1_JPG = "img/online1.jpg";
var OFFLINE_1_JPG = "img/offline1.jpg";
var ONLINE_2_JPG = "img/online2.jpg";
var OFFLINE_2_JPG = "img/offline2.jpg";
var DC_SWF = "dc.swf";
//define the constat variable
var BUTTON_TYPE_IMAGE = "0";
var BUTTON_TYPE_TEXT = "1";
var BUTTON_TYPE_NULL = "-1";

var BUTTON_ASSIGN_NULL = "0";
var BUTTON_ASSIGN_DEPT = "1";
var BUTTON_ASSIGN_STAFF = "2";

var INVITATION_STYLE_SLIDEDOWN = 1;
var INVITATION_STYLE_POPUP = 0;

var INVITATION_STYLE_BROWN = 1;
var INVITATION_STYLE_GREEN = 2;
var INVITATION_STYLE_RED = 3;
var INVITATION_STYLE_ORANGE = 4;
var INVITATION_STYLE_BLUE = 5;
var INVITATION_STYLE_BLACK = 6;
var INVITATION_STYLE_VIOLET = 7;
var INVITATION_STYLE_CYAN = 8;
var INVITATION_STYLE_NULL = 0;

//for the old version
var INVIATION_STYLE_SLIDEDOWN = 1;
var INVIATION_STYLE_POPUP = 0;
var INVIATION_STYLE_BROWN = 1;
var INVIATION_STYLE_GREEN = 2;
var INVIATION_STYLE_RED = 3;
var INVIATION_STYLE_ORANAGE = 4;
var INVIATION_STYLE_BLUE = 5;
var INVIATION_STYLE_BLACK = 6;
var INVIATION_STYLE_VIOLET = 7;
var INVIATION_STYLE_CYAN = 8;
var INVIATION_STYLE_NULL = 0;
//for the old version end

//define end
var CLIENT_HTML_CODE_TEMPLATE = '<!-- 123livehelp script begin -->\r\n<link href="#styleCSS#" rel="stylesheet" type="text/css" />\r\n<script language="javascript" src="#livestatusjs#"></script>\r\n<script language="javascript" src="#mainjs#"></script>\r\n<script language="javascript">\r\nvar button_type=#displayStatusStyle#;\r\nvar online_display="#online#";\r\nvar offline_display="#offline#";\r\nvar button_assign_type=#assigntype#;\r\n#pre_id#var chat_window_skin="#chatWindowSkin#";\r\nvar chat_window_width=#width#;\r\nvar chat_window_height=#height#;\r\nvar enable_invitation=#enableDC#;\r\n#pre_dc#var define_url = "#define_url#";\r\nlivehelp();\r\n</script>\r\n<!-- 123livehelp script end -->';
var CLIENT_STANDARD_EMBED_CODE = ""

if (typeof (deptList) != 'undefined' && deptList.length != 0) {
    CLIENT_STANDARD_EMBED_CODE = generateCode("0", "495", "440", "violet", "0", "0", "1", deptList[0][1], "1", "");
}
else {
    //alert(deptList.length);
    CLIENT_STANDARD_EMBED_CODE = generateCode("0", "495", "440", "violet", "0", "0", "0", "0", "1", "");
}

function generateCode(button_type, win_width, win_height, button_window_style, select_assign_type, assign_id, dc_skin, dc_dept, dc_app_type, url, onLineText, offLineText) {
    var rootUrl = urlLink.substring(0, urlLink.lastIndexOf('/'));
    var livestatusjs = LIVE_STATUS_JS;
    var styleCSS = STYLE_CSS;
    var mainjs = MAIN_JS;
    var online = ONLINE_JPG;
    var offline = OFFLINE_JPG;
    var dc = DC_SWF;
    var clientHtml = CLIENT_HTML + "?init_color=" + button_window_style;
    var enableDC = "true";
    if (select_assign_type == CLIENT_ASSIGN_DEPT)//assign dept
    {
        clientHtml += '&init_room=' + assign_id;
    }
    else
        if (select_assign_type == CLIENT_ASSIGN_STAFF)//assign staff
        {
            clientHtml += '&init_staff=' + assign_id;
        }
    if (url != "") {
        rootUrl = url;
    }
    switch (button_type) {
        case '0':
            online = ONLINE_JPG;
            offline = OFFLINE_JPG;
            break;
        case '1':
            online = ONLINE_1_JPG;
            offline = OFFLINE_1_JPG;
            break;
        case '2':
            online = ONLINE_2_JPG;
            offline = OFFLINE_2_JPG;
            break;
        case '3':
            online = "";
            offline = "";
            break;
        case '4':
            online = onLineText;
            offline = offLineText;
            break;
        default:
            online = ONLINE_JPG;
            offline = OFFLINE_JPG;
    }
    if (win_width < 495) {
        alert("width can't be less than 495");
        return CLIENT_STANDARD_EMBED_CODE;
    }
    if (win_height < 440) {
        alert("height can't be less than 440");
        return CLIENT_STANDARD_EMBED_CODE;
    }
    var embedCode = CLIENT_HTML_CODE_TEMPLATE;
    var displayOnlineType = "";
    while (embedCode.indexOf("#displayStatusStyle#") != -1) {
        if (typeof (onLineText) == 'undefined' && typeof (offLineText) == 'undefined') {
            displayOnlineType = "BUTTON_TYPE_IMAGE";
        }
        else {
            displayOnlineType = "BUTTON_TYPE_TEXT";
            if (typeof (onLineText) == 'undefined') {
                online = "";
            }
            else {
                online = onLineText;
            }
            if (typeof (offLineText) == 'undefined') {
                offline = ""
            }
            else {
                offline = offLineText;
            }
        }
        if (online == "" && offline == "") {
            displayOnlineType = "BUTTON_TYPE_NULL";
        }
        embedCode = embedCode.replace("#displayStatusStyle#", displayOnlineType);
    }
    while (embedCode.indexOf("#chatWindowSkin#") != -1) {
        embedCode = embedCode.replace("#chatWindowSkin#", button_window_style);
    }
    while (embedCode.indexOf("#livestatusjs#") != -1) {
        livestatusjs = rootUrl + '/' + livestatusjs;
        embedCode = embedCode.replace("#livestatusjs#", livestatusjs);
    }
    while (embedCode.indexOf("#styleCSS#") != -1) {
        styleCSS = rootUrl + '/css/' + styleCSS;
        embedCode = embedCode.replace("#styleCSS#", styleCSS);
    }
    while (embedCode.indexOf("#mainjs#") != -1) {
        mainjs = rootUrl + '/' + mainjs;
        embedCode = embedCode.replace("#mainjs#", mainjs);
    }
    if (displayOnlineType == "BUTTON_TYPE_IMAGE") {
        online = rootUrl + '/' + online;
        offline = rootUrl + '/' + offline;
    }
    while (embedCode.indexOf("#online#") != -1) {
        embedCode = embedCode.replace("#online#", online);
    }
    while (embedCode.indexOf("#offline#") != -1) {
        embedCode = embedCode.replace("#offline#", offline);
    }
    clientHtml = rootUrl + '/' + clientHtml;
    while (embedCode.indexOf("#clienthtmlurl#") != -1) {
        embedCode = embedCode.replace("#clienthtmlurl#", clientHtml);
    }
    while (embedCode.indexOf("#width#") != -1) {
        embedCode = embedCode.replace("#width#", win_width);
    }
    while (embedCode.indexOf("#height#") != -1) {
        embedCode = embedCode.replace("#height#", win_height);
    }
    while (embedCode.indexOf("#define_url#") != -1) {
        embedCode = embedCode.replace("#define_url#", rootUrl);
    }
    if (dc_skin == 0) {
        enableDC = "false";
    }
    var dc_str = "";
    if (enableDC == "true") {
        if (dc_app_type == INVITATION_STYLE_SLIDEDOWN) {
            dc_str += "var invitation_popup_type=INVITATION_STYLE_SLIDEDOWN;\r\n";
        }
        else {
            dc_str += "var invitation_popup_type=INVITATION_STYLE_POPUP;\r\n";
        }
        var INVITATION_STYLE_BLUE = 1;

        var dcSkinStr = "";
        switch (dc_skin) {
            case "1":
                dcSkinStr = "INVITATION_STYLE_BROWN";
                break;
            case "2":
                dcSkinStr = "INVITATION_STYLE_GREEN";
                break;
            case "3":
                dcSkinStr = "INVITATION_STYLE_RED";
                break;
            case "4":
                dcSkinStr = "INVITATION_STYLE_ORANGE";
                break;
            case "5":
                dcSkinStr = "INVITATION_STYLE_BLUE";
                break;
            case "6":
                dcSkinStr = "INVITATION_STYLE_BLACK";
                break;
            case "7":
                dcSkinStr = "INVITATION_STYLE_VIOLET";
                break;
            case "8":
                dcSkinStr = "INVITATION_STYLE_CYAN";
                break;
            case "0":
                dcSkinStr = "INVITATION_STYLE_NULL";
                break;
        }
        dc_str += "var invitation_skin=" + dcSkinStr + ";\r\n"
        dc_str += "var invitation_dept_id=" + dc_dept + ";\r\n"

    }
    while (embedCode.indexOf("#pre_dc#") != -1) {
        embedCode = embedCode.replace("#pre_dc#", dc_str);
    }
    init_dc_skin = dc_skin;
    if (typeof (deptList) != "undefined" && deptList.length == 0) {
        enableDC = "false";
    }
    while (embedCode.indexOf("#enableDC#") != -1) {
        embedCode = embedCode.replace("#enableDC#", enableDC);
    }
    var tempAssignType = "";
    while (embedCode.indexOf("#assigntype#") != -1) {
        if (select_assign_type == "1") {
            tempAssignType = "BUTTON_ASSIGN_DEPT"
        }
        else
            if (select_assign_type == "2") {
                tempAssignType = "BUTTON_ASSIGN_STAFF";
            }
            else {
                tempAssignType = "BUTTON_ASSIGN_NULL";
            }
        embedCode = embedCode.replace("#assigntype#", tempAssignType);
    }
    while (embedCode.indexOf("#pre_id#") != -1) {
        var tempAssignStr = "";
        if (tempAssignType == "BUTTON_ASSIGN_STAFF") {
            tempAssignStr = "var pre_staff_id=\"" + assign_id + "\";\r\n";
        }
        else
            if (tempAssignType == "BUTTON_ASSIGN_DEPT") {
                tempAssignStr = "var pre_dept_id=\"" + assign_id + "\";\r\n";
            }
            else {
                tempAssignStr = "";
            }
        embedCode = embedCode.replace("#pre_id#", tempAssignStr);
    }
    while (embedCode.indexOf("#assignid#") != -1) {
        embedCode = embedCode.replace("#assignid#", assign_id);
    }
    while (embedCode.indexOf("#dcappstyle#") != -1) {

    }
    if (button_type == NOT_DISPLAY_ONLINE_STATUS && (dc_skin == "0" || deptList.length == 0)) {
        embedCode = SELECT_NO_DC_NO_POPUP;
    }
    return embedCode;
}

//generator code
function getContentDocument(e) {
    if (e.contentDocument) {
        return (e.contentDocument);
    }
    else
        if (e.contentWindow) {
            return (e.contentWindow.document);
        }
        else
            if (e.document) {
                return (e.document);
            }
            else {
                return (undefined);
            }
}

var documentjs = {
    getScripts: function () {
        var retsrc = new Array();
        for (var i = 0; i < document.getElementsByTagName('script').length; i++) {
            if (document.getElementsByTagName('script')[i].src != null && document.getElementsByTagName('script')[i].src != '') {
                var s = document.getElementsByTagName('script')[i].src;
                if (s.indexOf('//') > 0) {
                    s = s.substr(s.indexOf('//') + 2);
                    retsrc[retsrc.length] = s.substr(s.indexOf('/'));
                }
                else {
                    retsrc[retsrc.length] = s;
                }
            }
        }
        return retsrc;
    },
    isLoadedByName: function (jsname) {
        var js = documentjs.getScripts();
        var f = false;
        for (var i = 0; i < js.length; i++) {
            var s = js[i].split('/');
            if (s[s.length - 1].toLowerCase() == jsname.toLowerCase()) {
                f = true;
                break;
            }
        }
        return f;
    },
    isLoadedByPath: function (path) {
        var js = documentjs.getScripts();
        var f = false;
        for (var i = 0; i < js.length; i++) {
            if (js[i].toLowerCase() == path.toLowerCase()) {
                f = true;
                break;
            }
        }
        return f;
    },
    loadScriptHead: function (path) {
        if (!documentjs.isLoadedByPath(path)) {
            head = document.getElementsByTagName('head').item(0);
            script = document.createElement('script');
            script.src = path;
            script.type = 'text/javascript';
            script.defer = true;
            void (head.appendChild(script));
        }
    },
    loadScriptBody: function (path) {
        if (!documentjs.isLoadedByPath(path)) {
            script = document.createElement('script');
            script.src = path;
            script.type = 'text/javascript';
            script.defer = true;
            document.body.appendChild(script);
        }
    }
}

var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
navigator.userAgent.indexOf("Windows") != -1 &&
navigator.userAgent.indexOf("Windows 3.1") == -1) {
    document.write('<SCRIPT LANGUAGE=VBScript\> \n');
    document.write('on error resume next \n');
    document.write('Sub lhclient_FSCommand(ByVal command, ByVal args)\n');
    document.write(' call lhclient_DoFSCommand(command, args)\n');
    document.write('end sub\n');
    document.write('</SCRIPT\> \n');
}

function lhclient_DoFSCommand(command, args) {
    if ((command == "123livehelp") && (args == "focus")) {
        focus();
    }
}

//mehtods for demo page
function generateEmbedCodeFromForm() {
    var button_type = "0";
    var buttonTypeLength = document.customForm.button_type.length;
    for (i = 0; i < buttonTypeLength; i++) {
        if (document.customForm.button_type[i].checked) {
            button_type = document.customForm.button_type[i].value;
            break;
        }
    }
    var win_width = document.customForm.win_width.value;
    var win_height = document.customForm.win_height.value;

    var window_type = "0";
    var window_typeTypeLength = document.customForm.button_window_style.length;
    for (i = 0; i < window_typeTypeLength; i++) {
        if (document.customForm.button_window_style[i].checked) {
            window_type = document.customForm.button_window_style[i].value;
            break;
        }
    }
    var assign_type = "0";
    var assign_id = "0";

    if (typeof (document.customForm.assign_id) == 'undefined') {
        assignLength = 0;
    }
    else {
        assignLength = document.customForm.assign_id.length;
    }
    if (typeof (assignLength) == 'undefined') {
        assign_id = document.customForm.assign_id.value;
    }
    if (assignLength != 0) {
        for (i = 0; i < assignLength; i++) {
            if (document.customForm.assign_id[i].checked) {
                assign_id = document.customForm.assign_id[i].value;
                break;
            }
        }
        assign_type = document.customForm.select_assign.value;
    }
    var dc_skin = "0";
    dcSkinLength = document.customForm.dc_style.length;
    for (i = 0; i < dcSkinLength; i++) {
        if (document.customForm.dc_style[i].checked) {
            dc_skin = document.customForm.dc_style[i].value;
            break;
        }
    }
    var dc_dept = "1";
    if (deptList.length != 0) {
        dcDeptLength = document.customForm.dc_dept.length;
        if (typeof (dcDeptLength) == 'undefined') {
            dc_dept = document.customForm.dc_dept.value;
        }
        else {
            for (i = 0; i < dcDeptLength; i++) {
                if (document.customForm.dc_dept[i].checked) {
                    dc_dept = document.customForm.dc_dept[i].value;
                    break;
                }
            }
        }
    }
    var dc_app_style = document.customForm.select_DC_popup.value;
    var url = document.customForm.url.value;
    if (button_type == DISPLAY_ONLINE_STATUS_TEXT) {
        var onlineText = document.customForm.online_text.value;
        var offlineText = document.customForm.offline_text.value;
        var embedCode = generateCode(button_type, win_width, win_height, window_type, assign_type, assign_id, dc_skin, dc_dept, dc_app_style, url, onlineText, offlineText);

    }
    else
        if (button_type == NOT_DISPLAY_ONLINE_STATUS) {
            var onlineText = "";
            var offlineText = "";
            var embedCode = generateCode(button_type, win_width, win_height, window_type, assign_type, assign_id, dc_skin, dc_dept, dc_app_style, url, onlineText, offlineText);
        }
        else {
            var embedCode = generateCode(button_type, win_width, win_height, window_type, assign_type, assign_id, dc_skin, dc_dept, dc_app_style, url);
        }
    if (embedCode == SELECT_NO_DC_NO_POPUP) {
        document.customForm.embedCode.disabled = true;
    }
    else {
        document.customForm.embedCode.disabled = false;
    }
    document.customForm.embedCode.value = embedCode;
}

function showAssign(assignType) {
    var assign_html = "";
    document.getElementById("div_assign").innerHTML = "";
    if (assignType == CLIENT_ASSIGN_DEPT)//pre select Dept
    {
        if (deptList.length == 0) {
            document.getElementById("div_assign").innerHTML += 'There is no Departments.Please add one in admin panel.'
        }
        for (i = 0; i < deptList.length; i++) {
            if (i == 0) {
                document.getElementById("div_assign").innerHTML += '<input type="radio" name="assign_id" value="' + deptList[i][1] + '" checked >' + deptList[i][0] + '<br/>';
            }
            else {
                document.getElementById("div_assign").innerHTML += '<input type="radio" name="assign_id" value="' + deptList[i][1] + '" >' + deptList[i][0] + '<br/>';
            }
        }

    }
    if (assignType == CLIENT_ASSIGN_STAFF)//pre select Dept
    {
        if (staffList.length == 0) {
            document.getElementById("div_assign").innerHTML += 'There is no staff.Please add one in admin panel.'
        }
        for (i = 0; i < staffList.length; i++) {
            if (i == 0) {
                document.getElementById("div_assign").innerHTML += '<input type="radio" name="assign_id" value="' + staffList[i] + '" checked >' + staffList[i] + '<br/>';
            }
            else {
                document.getElementById("div_assign").innerHTML += '<input type="radio" name="assign_id" value="' + staffList[i] + '" >' + staffList[i] + '<br/>';
            }
        }
    }
}

function openCustomClient1() {
    var win_width = document.customForm.win_width.value;
    var win_height = document.customForm.win_height.value;
    if (win_width < 495) {
        alert("width can't be less than 495");
        return;
    }
    if (win_height < 440) {
        alert("height can't be less than 440");
        return;
    }
    var window_type = "green";
    var window_typeTypeLength = document.customForm.button_window_style.length;
    for (i = 0; i < window_typeTypeLength; i++) {
        if (document.customForm.button_window_style[i].checked) {
            window_type = document.customForm.button_window_style[i].value;
            break;
        }
    }
    //var win_color=document.customForm.win_color.value;
    openClientInNewWindow('client.html?init_color=' + window_type, win_width, win_height, "", "", "", "", "", "");
}

function openCustomClient2() {
    var init_nickname = document.customForm.init_nickname.value;
    var init_room = document.customForm.init_room.value;
    openClientInNewWindow("client.html", "", "", "", init_room, init_nickname, "", "", "");
}

//mehtods for demo page

function Department(deptID) {

    if (deptID != null) {
        for (var i in onlineDept) {
            if (onlineDept[i][1] == deptID)
                return true;
        }
    }
    else {
        if (onlineDept.length != 0)
            return true;
    }
}

// This script is copyright (c) Henrik Petersen, NetKontoret
// Feel free to use this script on your own pages as long as you do not change it.
// It is illegal to distribute the script as part of a tutorial / script archive.
// Updated version available at: http://www.echoecho.com/toolfloatinglayer.htm
// This comment and the 4 lines above may not be removed from the code.



var FC_floatX = 200;
var FC_floatY = -130;
var FC_halign = "center";
var FC_valign = "top";

var FC_layerwidth = 250;
var FC_layerheight = 200;
var FC_delayspeed = 5;

var FC_lastX = 0;
var FC_lastY = 0;

var FC_NS6 = false;
var FC_IE4 = (document.all != null);
if (!FC_IE4) {
    FC_NS6 = (document.getElementById != null);
}
var FC_NS4 = (document.layers != null);

function FC_adjust() {
    if ((FC_NS4) || (FC_NS6)) {
        if (FC_lastX == -1 || FC_delayspeed == 0) {
            FC_lastX = window.pageXOffset + FC_floatX;
            FC_lastY = window.pageYOffset + FC_floatY;
        }
        else {
            var dx = Math.abs(window.pageXOffset + FC_floatX - FC_lastX);
            var dy = Math.abs(window.pageYOffset + FC_floatY - FC_lastY);
            var d = Math.sqrt(dx * dx + dy * dy);
            var c = Math.round(d / 10);
            if (window.pageXOffset + FC_floatX > FC_lastX) {
                FC_lastX = FC_lastX + FC_delayspeed + c;
            }
            if (window.pageXOffset + FC_floatX < FC_lastX) {
                FC_lastX = FC_lastX - FC_delayspeed - c;
            }
            if (window.pageYOffset + FC_floatY > FC_lastY) {
                FC_lastY = FC_lastY + FC_delayspeed + c;
            }
            if (window.pageYOffset + FC_floatY < FC_lastY) {
                FC_lastY = FC_lastY - FC_delayspeed - c;
            }
        }
        if (FC_NS4) {
            if (document.getElementById('FC_floatlayer') != null) {
                document.layers['FC_floatlayer'].pageX = FC_lastX + "px";
                document.layers['FC_floatlayer'].pageY = FC_lastY + "px";
            }
        }
        if (FC_NS6) {
            if (document.getElementById('FC_floatlayer') != null) {
                document.getElementById('FC_floatlayer').style.left = FC_lastX + "px";
                document.getElementById('FC_floatlayer').style.top = FC_lastY + "px";
            }
        }
    }
    else
        if (FC_IE4) {
            if (FC_lastX == -1 || FC_delayspeed == 0) {
                //FC_lastX = document.body.scrollLeft + FC_floatX;
                //FC_lastY = document.body.scrollTop + FC_floatY;
                FC_lastX = document.documentElement.scrollLeft + FC_floatX;
                FC_lastY = document.documentElement.scrollTop + FC_floatY;
            }
            else {
                var dx = Math.abs(document.getElementById('FC_floatlayer').scrollLeft + FC_floatX - FC_lastX);
                var dy = Math.abs(document.getElementById('FC_floatlayer').scrollTop + FC_floatY - FC_lastY);
                var d = Math.sqrt(dx * dx + dy * dy);
                var c = Math.round(d / 10);
                if (document.documentElement.scrollLeft + FC_floatX > FC_lastX) {
                    FC_lastX = FC_lastX + FC_delayspeed + c;
                }
                if (document.documentElement.scrollLeft + FC_floatX < FC_lastX) {
                    FC_lastX = FC_lastX - FC_delayspeed - c;
                }
                if (document.documentElement.scrollTop + FC_floatY > FC_lastY) {
                    FC_lastY = FC_lastY + FC_delayspeed + c;
                }
                if (document.documentElement.scrollTop + FC_floatY < FC_lastY) {
                    FC_lastY = FC_lastY - FC_delayspeed - c;
                }
            }
            document.getElementById('FC_floatlayer').style.posLeft = FC_lastX;
            document.getElementById('FC_floatlayer').style.posTop = FC_lastY;
        }
    setTimeout("FC_adjust()", 50);
}

function FC_define() {
    if ((FC_NS4) || (FC_NS6)) {
        switch (FC_halign) {
            case "left":
                FC_floatX = iFC_floatX;
                break;
            case "right":
                FC_floatX = window.innerWidth - iFC_floatX - FC_layerwidth - 20;
                break;
            case "center":
                FC_floatX = Math.round((window.innerWidth - 20) / 2) - Math.round(FC_layerwidth / 2);
                break;
        };
        switch (FC_valign) {
            case "top":
                FC_floatY = -FC_layerheight;
                break;
            case "bottom":
                FC_floatY = window.innerHeight - iFC_floatY - FC_layerheight;
                break;
            case "center":
                FC_floatY = Math.round((window.innerHeight - 20) / 2) - Math.round(FC_layerheight / 2);
                break;
        };
    }
    if (FC_IE4) {
        switch (FC_halign) {
            case "left":
                FC_floatX = iFC_floatX;
                break;
            case "right":
                FC_floatX = document.body.offsetWidth - iFC_floatX - FC_layerwidth - 20;
                break;
            case "center":
                FC_floatX = Math.round((document.body.offsetWidth - 20) / 2) - Math.round(FC_layerwidth / 2);
                break
        };
        switch (FC_valign) {
            case "top":
                FC_floatY = -FC_layerheight; //iFC_floatY - 100;
                break;
            case "bottom":
                FC_floatY = document.body.offsetHeight - iFC_floatY - FC_layerheight
                break;
            case "center":
                FC_floatY = Math.round((window.screen.availHeight - 20) / 2) - Math.round(FC_layerheight / 2)
                break;
        }
    }
}

/**
* Invite Message Box Codes start
* Author: Bruce
* Version: 5.2
*/
var dcfly;

//Functions called by swf
function onGetInvite(imgPath, skin, staff, staffMsg, dept, dc_group, dc_title, dc_accept, dc_refuse) {

    //alert("show");
    var head = document.getElementsByTagName('body').item(0);
    if (dc_title == undefined) {
        dc_title = "Chat Invitation";
    }
    if (dc_accept == undefined) {
        dc_accept = "Chat Now";
    }
    if (dc_refuse == undefined) {
        dc_refuse = "No,thanks";
    }
    var style = document.createElement('link');
    style.href = imgPath + 'css/' + skin + '.css';
    style.rel = 'stylesheet';
    style.type = 'text/css';
    head.appendChild(style);
    var sbInviteWindowHTML = new StringBuffer();
    sbInviteWindowHTML.append('<div class="dcjux"><div class="dcjux2"><div class="dczuo"><span id="white">' + dc_title + '</span></div>');
    sbInviteWindowHTML.append('<div class="dcyou"><a href="javascript:varToSwf(\'DCDeny\',null,null,null);"></a> </div></div>');
    sbInviteWindowHTML.append('<div class="dcyoumiddle"> <div class="dcspace" ></div><div class="dcspace1" style="text-decoration:underline "></div>');
    sbInviteWindowHTML.append('<div class="peopleimage"></div><div class="dcbobo" >');
    sbInviteWindowHTML.append(staffMsg);
    sbInviteWindowHTML.append('</div>');
    sbInviteWindowHTML.append('<div class="dcspace1"></div><div class="dcspace"></div>');
    sbInviteWindowHTML.append('<div class="dcbotton">');
    sbInviteWindowHTML.append('<a href="javascript:varToSwf(\'DCAccept\',\'' + staff + '\',\'' + dept + '\',\'' + imgPath + '\');" class="dcbtn">' + dc_accept + '</a>');
    sbInviteWindowHTML.append('<a href="javascript:varToSwf(\'DCDeny\',null,null,null);" class="dcbtn2">' + dc_refuse + '</a>')
    sbInviteWindowHTML.append('</div></div><div class="foot2"></div></div>')
    document.getElementById('FC_floatlayer').innerHTML = sbInviteWindowHTML.toString();
    window.focus();
    this.focus();
    FC_halign = "center";
    FC_valign = "center";
    FC_define();
}

function onCloseInvite() {
    if (dcfly == 0) {
        document.getElementById('FC_floatlayer').style.display = 'none';
    }
    FC_halign = "center";
    FC_valign = "top";
    FC_define();
    document.getElementById('FC_floatlayer').style.display = 'none'
}

function startDC(fly) {
    dcfly = fly;
    // create the popwin DIV
    var FC_swfhtmlcode = "";
    var myFC_popwincode = "";
    if (FC_NS4) {
        myFC_popwincode += '<layer NAME="FC_floatlayer" bgcolor="#000000"  LEFT="' + FC_floatX + '"px TOP="' + FC_floatY + '"px>';
    }
    else
        if ((FC_IE4) || (FC_NS6)) {
            if (document.body == null) {
                myFC_popwincode += "<body>";
            }
            myFC_popwincode += "<div id=\"FC_floatlayer\" style=\"width:1px; height:1px; left:" + FC_floatX + "px; top:" + FC_floatY + "px; position:absolute;\">";
            if (document.body == null) {
                myFC_popwincode += "</body>";
            }
        }
    if (FC_NS4) {
        myFC_popwincode += '</layer>';
    }
    else
        if ((FC_IE4) || (FC_NS6)) {
            myFC_popwincode += "<\/div>";
        }
    document.write(myFC_popwincode);

    var iFC_floatX = FC_floatX;
    var iFC_floatY = FC_floatY;
    var FC_lastX = FC_floatX;
    var FC_lastY = FC_floatY;

    window.onresize = FC_define;
    if (document.body != null) {
        FC_adjust();
        FC_halign = "center";
        //----set d.c. popwin fly mode---
        if (dcfly == 0) {
            FC_valign = "center";
        }
        else {
            FC_valign = "top";
        }
        FC_define();
    }
}

function varToSwf(args, staff, dept, imgpath) {
    if (args == "DCAccept") {
        if (typeof chat_window_width == 'undefined') {
            openClientWindow(dept, staff, imgpath, null, null);
        }
        else {
            openClientWindow(dept, staff, imgpath, chat_window_width, chat_window_height);
        }
    }
    onCloseInvite();
    window.document.topcmm_123livehelp_dc.SetVariable("invite.Status", args);
}


function openClientWindow(initroom, initstaff, imgpath, chat_window_width, chat_window_height) {
    var vars = "";
    if (typeof chat_window_skin == 'undefined') {
        chat_window_skin = 1;
    }
    if (initroom == "") {
        vars = "?init_staff=" + initstaff + "&init_dc=1" + "&init_color=" + chat_window_skin;
    }
    else {
        vars = "?init_room=" + initroom + "&init_staff=" + initstaff + "&init_dc=1" + "&init_color=" + chat_window_skin; ;
    }

    var init_keywords = topcmm_GetCookie("keyWordsLH");
    if (init_keywords == "" || init_keywords + "" == "undefined") {
        init_keywords = getKeyWords();
    }
    if (init_keywords + "" != "undefined" && init_keywords != "") {
        vars += ("&init_keywords=" + init_keywords);
    }

    var init_prelink = topcmm_GetCookie("referrerLH");
    if (init_prelink == "" || init_prelink + "" == "undefined") {
        init_prelink = getPreLink();
    }

    if (init_prelink + "" != "undefined" && init_prelink != "") {
        vars += ("&init_prelink=" + encodeURIComponent(init_prelink));
    }

    if (init_user != undefined && init_user != "")
        vars += "&init_user=" + init_user;
    if (init_password != undefined && init_password != "")
        vars += "&init_password=" + init_password;
    if (typeof init_group != 'undefined') {
        vars += "&init_group=" + init_group;
    }
    var win_width_dc = "495";
    var win_height_dc = "440";
    if (typeof chat_window_width == "undefined" || chat_window_width == null) {
        var chat_window_width = 495;
        var chat_window_height = 440;
    }
    window.open(imgpath + "client.html" + vars, '', 'resizable=yes,width=' + chat_window_width + ',height=' + chat_window_height + ',status=yes');
}

//End functions called by swf

function livehelp() {

    var init_prelink = topcmm_GetCookie("referrerLH");
    if (init_prelink == "" || init_prelink + "" == "undefined") {
        init_prelink = getPreLink();
    }

    if (init_prelink + "" != undefined && init_prelink != "") {
        init_prelink = ("&init_prelink=" + encodeURIComponent(init_prelink));
    }
    else {
        init_prelink = "";
    }

    define_url = livehelp_checkSlash(define_url);
    var client_html_url = define_url + "client.html?init_color=" + chat_window_skin;

    if (enable_invitation) {

        var dc_url = define_url + "dc.swf?skin=" + invitation_skin + "&init_room=" + invitation_dept_id + init_prelink;
        //alert("dc_url");
        if (operator_status_live_update != undefined) {
            var enableDcParam = "&operator_status_live_update=" + (operator_status_live_update ? "1" : "0");
            dc_url = dc_url + enableDcParam;
        }
    }
    var button_assign_id = "";
    if (button_assign_type == BUTTON_ASSIGN_NULL) {
        button_assign_id = 0;
    }
    else
        if (button_assign_type == BUTTON_ASSIGN_DEPT) {
            button_assign_id = pre_dept_id;
            client_html_url += "&init_room=" + button_assign_id;
        }
        else {
            button_assign_id = pre_staff_id;
            client_html_url += "&init_staff=" + button_assign_id;
        }
    init_user = (init_user != undefined && init_user != "") ? init_user : "";
    init_password = (init_password != undefined && init_password != "") ? init_password : "";

    if (typeof init_host != 'undefined' && init_host != "") {
        client_html_url += "&init_host=" + init_host;
        dc_url += "&init_host=" + init_host;
    }

    if (typeof init_port != 'undefined' && init_port != "") {
        client_html_url += "&init_port=" + init_port;
        dc_url += "&init_port=" + init_port;
    }

    if (typeof init_group != 'undefined' && init_group != "") {
        client_html_url += "&init_group=" + init_group;
        dc_url += "&init_group=" + init_group;
    }

    if (button_type == BUTTON_TYPE_IMAGE) {

        displayStatusImg(button_assign_type, button_assign_id, online_display, offline_display, client_html_url, chat_window_width, chat_window_height, '', init_room, '', '', init_user, init_password);
    }
    else
        if (button_type == BUTTON_TYPE_TEXT) {
            displayStatusText(button_assign_type, button_assign_id, online_display, offline_display, client_html_url, chat_window_width, chat_window_height, '', init_room, '', '', init_user, init_password);
        }
    if (enable_invitation) {
        startDC(invitation_popup_type);
        openSWF(dc_url, "1", "1", "dc", "topcmm_123livehelp_dc");
    }
}

function livehelp_checkSlash(path) {
    if (path.substr(-1, 1) != "/" && path != "") {
        path = path + "/";
    }
    return path;
}

var strparams;
var params;
var searchenginejson = {
    "google": "q",
    "baidu": "wd",
    "yahoo": "p",
    "bing": "q",
    "yahoo": "p",
    "ask": "q",
    "sogou": "query",
    "soso": "w",
    "netscape": "q",
    "alltheweb": "q",
    "altavista": "q",
    "anzwers": "search"
}

function getJson() {

    var ref = document.referrer;
    if (ref.indexOf('?') != -1) {
        strhttphead = ref.split('?')[0];

        for (var searchname in searchenginejson) {
            var regweb = new RegExp("^http://.*" + searchname + ".*");
            if (!regweb.test(strhttphead))
                continue;

            strparams = ref.substr(ref.indexOf('?') + 1);
            params = strparams.split('&');

            for (i = 0; i < params.length; i++) {
                if (params[i].indexOf('=') == -1)
                    continue;
                //var reg = new RegExp("^[0-9]*$");
                var keywords = params[i].split('=');
                if (keywords.length <= 1)
                    continue;

                if (keywords[0] == searchenginejson[searchname]) {
                    var user = {
                        "searchengine": searchname,
                        "keywords": keywords[1],
                        "prelink": ref
                    }
                    return user;
                }
            }
        }
    }
    else
        return;
}

var userjson = getJson();

function getSearchEngine() {
    if (userjson + '' != 'undefined') {
        return userjson.searchengine;
    }
    else {
        return "";
    }
}

function getKeyWords() {
    if (userjson + '' != 'undefined') {
        return userjson.keywords;
    }
    else {
        return "";
    }
}

function getPreLink() {
    return encodeURIComponent(document.referrer); //userjson.prelink;
}

function checkCookie() {
    var keyWordsLH = topcmm_GetCookie("keyWordsLH");
    var referrerLH = topcmm_GetCookie("referrerLH");

    if (keyWordsLH == "" || keyWordsLH == null) {
        keyWordsLH = getKeyWords();

        if ("" != keyWordsLH) {
            topcmm_SetCookie("keyWordsLH", keyWordsLH);

        }
    }

    if (referrerLH == "" || referrerLH == null) {
        referrerLH = getPreLink();

        if ("" != referrerLH) {
            topcmm_SetCookie("referrerLH", referrerLH);
        }

    }
}

function topcmm_GetCookie(name) {
    var arrStr = window.document.cookie.split("; ");
    var cookieLen = arrStr.length;
    var value = "";

    for (var i = 0; i < cookieLen; i++) {
        var temp = arrStr[i].split("=");

        if (temp[0] == name) {
            value = unescape(temp[1]);
            break;
        }
    }

    return value;
}

function topcmm_SetCookie(name, value) {
    window.document.cookie = name + "=" + escape(value) + "; path=/";
}

function topcmm_FocusWindow() {
    window.focus();
}

function getLivehelpElementsByClassName(n) {
    var classElements = [], allElements = document.getElementsByTagName('*');
    for (var i = 0; i < allElements.length; i++) {
        if (allElements[i].className == n) {
            classElements[classElements.length] = allElements[i];
        }
    }
    return classElements;
}

function changeLivehelpImgStatus(value) {
    if (value != undefined) {
        var livehelpElements = getLivehelpElementsByClassName("topcmmLiveStatusImg");

        //alert("changeLivehelpImgStatus:" + value);
        for (var i = 0; i < livehelpElements.length; i++) {
            var element = livehelpElements[i];
            //alert(element.src ); //element.innerText
            var online_param = element.getAttribute("online");
            var offline_param = element.getAttribute("offline");

            if (online_param != undefined && offline_param != undefined) {
                if (value == "1") {
                    element.src = online_param;
                }
                else {
                    element.src = offline_param;
                }
            }
        }
    }
}

checkCookie();

