var clockTimerId;
function startclock() {
    if (clockTimerId) clearTimeout(clockTimerId);
    try {
        var thetime = new Date();

        var nhours = thetime.getHours();
        var nmins = thetime.getMinutes();
        var nsecn = thetime.getSeconds();
        var AorP = " ";

        if (nhours >= 12) {
            AorP = "PM";
        } else {
            AorP = "AM";
        }

        if (nhours >= 13) nhours -= 12;
        if (nhours == 0) nhours = 12;
        if (nsecn < 10) nsecn = "0" + nsecn;
        if (nmins < 10) nmins = "0" + nmins;

        document.getElementById("clock").innerHTML = "" + nhours + ":" + nmins + "&nbsp;" + AorP;
    } catch (e) {
    }

    clockTimerId = setTimeout('startclock()', 1000);
}
function changeStyleUserStatus() {
    var statusText = document.getElementById("statusText");
    if (statusText.style.display == "none") {
        statusText.style.display = "inline";
    } else {
        statusText.style.display = "none";
    }

    var statusSelect = document.getElementById("statusSelect");
    if (statusSelect.style.display == "none") {
        statusSelect.style.display = "inline";
    } else {
        statusSelect.style.display = "none";
    }
}

function getStatuses() {

    var xmlStatuses = getDataFromServer('/user/ajax/get_statuses.jsp?rnd=' + Math.random());

    var o = document.getElementById("statusSelect").options;
    o.length = 0

    if (xmlStatuses.length > 0) {
        var statuses = parseStatusesResponse(xmlStatuses);

        for (var j = 0; j < statuses.length; j++) {
            var oOption = document.createElement("OPTION");
            o.add(oOption);
            if (document.all) {
                oOption.innerText = statuses[j].name;
            } else {
                oOption.textContent = statuses[j].name;
            }
            oOption.value = statuses[j].id;
            if (statuses[j].selected) {
                oOption.selected = true;
                document.getElementById("statusText").value = statuses[j].name;
            }
        }
    }
    var oOption = document.createElement("OPTION");
    o.add(oOption);
    if (document.all) {
        oOption.innerText = "New custom status";
    } else {
        oOption.textContent = "New custom status";
    }
    oOption.value = -1;
}

function parseStatusesResponse(xmlStatuses) {
    var xmlDoc = getXmlDocument(xmlStatuses);
    return parseStatuses(xmlDoc);
}

function parseStatuses(xmlDoc) {
    var root = xmlDoc.documentElement;
    var selectedId = root.getAttribute("selected_id");
    var statuses = xmlDoc.getElementsByTagName("status");
    var res = new Array();
    for (var i = 0; i < statuses.length; i++) {
        var id = xmlDoc.getElementsByTagName("id")[i].childNodes[0].nodeValue;
        var name = xmlDoc.getElementsByTagName("name")[i].childNodes[0].nodeValue;
        res.push(new Status(id, name, selectedId == id));
    }
    return res;
}

function Status(id, name, selected) {
    this.id = id;
    this.name = name;
    this.selected = selected;
}

function url_escape(url) {
    url = url.toString();
    var regcheck = url.match(/[\x90-\xFF]/g);
    if (regcheck)
    {
        for (var i = 0; i < i.length; i++)
        {
            url = url.replace(regcheck[i], '%u00' + (regcheck[i].charCodeAt(0) & 0xFF).toString(16).toUpperCase());
        }
    }

    return escape(url).replace(/\+/g, "%2B");
}


function onStatusSelectChange(s) {
    if (s.options[ s.selectedIndex ].value == "-1") {
        changeStyleUserStatus();
        document.getElementById('statusText').value = "";
        document.getElementById('statusText').focus();
        return;
    }

    document.getElementById('statusText').value = document.getElementById('statusSelect').options[ s.selectedIndex ].text;
    setUserStatus();

    document.getElementById('display_status').innerText = document.getElementById('statusSelect').options[ s.selectedIndex ].text;
    document.getElementById('display_status').style.display = 'inline';
    document.getElementById('status_div').style.display = 'none';
}

var updateMessageCountTimerId = 0;
function updateMessagesCount() {
    if (updateMessageCountTimerId) clearTimeout(updateMessageCountTimerId);
    getAsyncDataFromServer('/user/ajax/get_messages_count.jsp?rnd=' + Math.random(), parseMessagesCountResponse);
    updateMessageCountTimerId = setTimeout(updateMessagesCount, 10000);
}


function parseMessagesCountResponse(messagesCountXml) {
    if (messagesCountXml.length == 0) return;

    var messagesCountXmlDoc = getXmlDocument(messagesCountXml);

    var root = messagesCountXmlDoc.documentElement;
    var messagesCount = root.getAttribute("messages_count");
    var newMessagesCount = root.getAttribute("new_messages_count");
    try {
        if (document.all) {
            document.getElementById("messages_count").innerText = messagesCount;
            document.getElementById("messages_count_new").innerText = " (" + newMessagesCount + " new)";
        } else {
            document.getElementById("messages_count").textContent = messagesCount;
            document.getElementById("messages_count_new").textContent = " (" + newMessagesCount + " new)";
        }
    } catch (e) {
    }
}

function validateSearchForm(f) {
    f.go_button.click();
    return false;
}
