var im_win;
var prefix = "/im/Messenger.html?session=";
var timerID = null;
var attemptCount = 0;

function startLiveChat(hasUsername, showHistory, sessionId) {
    startLiveChatDomain(hasUsername, showHistory, sessionId, null);
}

function startLiveChatDomain(hasUsername, showHistory, sessionId, domain) {
    startLiveChatDomain(hasUsername, showHistory, sessionId, domain, null);
}

function startLiveChatDomain(hasUsername, showHistory, sessionId, domain, locale) {
    startLiveChatDomainInWindow('newim', hasUsername, showHistory, sessionId, domain, locale);
}

function startLiveChatInWindow(windowName, hasUsername, showHistory, sessionId) {
    startLiveChatDomainInWindow(windowName, hasUsername, showHistory, sessionId, null, null);
}

function startLiveChatDomainInWindow(windowName, hasUsername, showHistory, sessionId, domain) {
    startLiveChatDomainInWindow(windowName, hasUsername, showHistory, sessionId, domain, null);
}

function startLiveChatDomainInWindow(windowName, hasUsername, showHistory, sessionId, domain, locale) {
    var host = window.location.host;
    host = host.replace(/mail./, 'www.');

    var imurl = "http://" + host + prefix + sessionId;

    showHistory = "" + showHistory;

    if (domain != null && domain != '') {
        imurl += "&domain=" + domain;
    }

    if (locale != null && locale != '') {
        imurl += "&locale=" + locale;
    }
    var history = false;
    if (showHistory != null && showHistory != '' && (showHistory.indexOf("true") != -1)) {
        history = true;
    }
    if (hasUsername != null && hasUsername != '') {
        imurl += "#PrivateChatPlace:" + hasUsername + "!" + history;
    }

    if (im_win == null || !im_win.open || im_win.closed) {
        im_win = window.open(imurl, windowName, 'width=1000, height=640, scrollbars=yes, resizable=yes');
    } else {
        // fix for Chrome, Safari browser, make following focus work.
        im_win.blur();
        im_win.location = imurl;
    }
    try {
        im_win.focusChat();
    } catch(e) {
        im_win.focus();
    }

}


