var req;
var reqJumpbox;
var reqSimilar;
var iTimerSMSChat = 0;
var status_message = new Array(
"The query is not initialized",
"The query is created",
"The query is sent",
"The query is processed"
);

function is_blank(str) {
    if (/\S+/.test(str)) {
        return false;
    } else {
        return true;
    }
}

function hide() {
    for(var i=0; i<arguments.length; i++) {
        var element = document.getElementById(arguments[i]);
        if (element) { element.style.visibility = 'hidden'; }
    }
}

function show() {
    for(var i=0; i<arguments.length; i++) {
        var element = document.getElementById(arguments[i]);
        if (element) { element.style.visibility = 'visible'; }
    }
}

function hide_block() {
    for(var i=0; i<arguments.length; i++) {
        var element = document.getElementById(arguments[i]);
        if (element) { element.style.display = 'none'; }
    }
}

function show_block() {
    for(var i=0; i<arguments.length; i++) {
        var element = document.getElementById(arguments[i]);
        if (element) { element.style.display = 'block'; }
    }
}

function loadXMLDoc(url) {
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);

        hide('lastposts');
        show('lastposts_update');

    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();

            hide('lastposts');
            show('lastposts_update');
        }
    }
}

function processReqChange() {
    if (req.readyState == 4) {
        var element = document.getElementById('lastposts_text');
        if (element) {
            if (req.status == 200) { element.innerHTML = req.responseText; }
            else { element.innerHTML = "Error " + req.status + "<br />" + req.statusText; }
        }

        hide('lastposts_update');
        show('lastposts');
    } else {
        var element_status = document.getElementById('status');
        if (element_status) { element_status.innerHTML = status_message[req.readyState]; }
    }
}

function showTooltip (e, name, rank, reg, post, age, zodiak, from, status, orireg, orireg_term, k_balab, reputation, last_visit) {
    if (name.length == 0) return false;
    var d = document.getElementById('tooltip');
    if (d) {
        //oCanvas = document.getElementsByTagName((document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0];
        oCanvas = document.getElementsByTagName(document.height ? "BODY" : "HTML")[0];
        x = window.event ? event.clientX + oCanvas.scrollLeft : e.pageX;
        y = window.event ? event.clientY + oCanvas.scrollTop : e.pageY;
        d.style.top = y + 5 + "px";
        d.style.left = x + 10 + "px";
        mess = '<table border="0" cellpadding="0" cellspacing="0" class="gensmall">';
        mess += '<tr><th colspan="2" class="gen">' + name + '</th></tr>';
        if (status.length > 0 || orireg.length > 0) {
            mess += '<tr><td colspan="2"><b>' + l_ori_info + ':</b></td></tr>';
            if (status.length > 0) mess += '<tr valign="top"><td>' + l_status + ':</td><td>' + status + '</td></tr>';
            if (orireg.length > 0) mess += '<tr valign="top"><td>' + l_orireg + ':</td><td>' + orireg + '</td></tr>';
            if (orireg_term.length > 0) mess += '<tr valign="top"><td>' + l_orireg_term + ':</td><td>' + orireg_term + '</td></tr>';
            mess += '<tr><td colspan="2">&nbsp;</td></tr>';
        }
        mess += '<tr><td colspan="2"><b>' + l_forum_info + ':</b></td></tr>';
        if (rank.length > 0) mess += '<tr valign="top"><td>' + l_rank + ':</td><td>' + rank + '</td></tr>';
        if (post.length > 0) mess += '<tr valign="top"><td>' + l_post + ':</td><td>' + post + '</td></tr>';
        if (reputation.length > 0) mess += '<tr valign="top"><td>' + l_reputation + ':</td><td>' + reputation + '</td></tr>';
        if (k_balab.length > 0) mess += '<tr valign="top"><td>' + l_k_balab + ':</td><td>' + k_balab + '</td></tr>';
        if (reg.length > 0) mess += '<tr valign="top"><td>' + l_reg + ':</td><td>' + reg + '</td></tr>';
        if (last_visit.length > 0) mess += '<tr valign="top"><td>' + l_last_visit + ':</td><td>' + last_visit + '</td></tr>';
        if (age.length > 0) mess += '<tr valign="top"><td>' + l_age + ':</td><td>' + age + '</td></tr>';
        if (zodiak.length > 0) mess += '<tr valign="top"><td>' + l_zodiak + ':</td><td>' + zodiak + '</td></tr>';
        if (from.length > 0) mess += '<tr valign="top"><td>' + l_from + ':</td><td>' + from + '</td></tr>';
        mess += '</table>';
        d.innerHTML = mess;
        d.style.display = 'block';
    }
}

function hideTooltip () {
    var d = document.getElementById('tooltip');
    if (d) d.style.display = 'none';
}

function showLoadingJumpbox () {
    var d = document.getElementById('jumpbox-title');
    if (d) d.innerHTML = 'Loading ...';
}

function loadJumpbox(url) {
    if (window.XMLHttpRequest) {
        showLoadingJumpbox();

        reqJumpbox = new XMLHttpRequest();
        reqJumpbox.onreadystatechange = updateJumpbox;
        reqJumpbox.open("GET", url, true);
        reqJumpbox.send(null);

    } else if (window.ActiveXObject) {
        reqJumpbox = new ActiveXObject("Microsoft.XMLHTTP");
        if (reqJumpbox) {
            showLoadingJumpbox();

            reqJumpbox.onreadystatechange = updateJumpbox;
            reqJumpbox.open("GET", url, true);
            reqJumpbox.send();
        }
    }
}

function updateJumpbox () {
    if (reqJumpbox.readyState == 4) {
        var d = document.getElementById('jumpbox-container');
        if (d) {
            if (reqJumpbox.status == 200) { d.innerHTML = reqJumpbox.responseText; }
            else { d.innerHTML = "Error " + reqJumpbox.status + " " + reqJumpbox.statusText; }
        }
    }
}

function checkLoginForm() {
    setTimeout("document.login.login.disabled = true", 0);
}

function showSMSchat() {
    if (iTimerSMSChat) { clearTimeout(iTimerSMSChat); }
    iTimerSMSChat = setTimeout("document.getElementById('smschat').className='smschathover'", 500);
}

function hideSMSchat() {
    if (iTimerSMSChat) { clearTimeout(iTimerSMSChat); }
    iTimerSMSChat = setTimeout("document.getElementById('smschat').className='smschat'", 100);
}

function fulltime(sDate, block, sEventEnd) {
    var time=new Date();
    var tEvent=new Date(sDate);
    var totalRemains=(tEvent.getTime()-time.getTime());
    if (totalRemains>1){
        var RemainsSec=(parseInt(totalRemains/1000));
        var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
        var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
        var RemainsFullHours=(parseInt(secInLastDay/3600));
        if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
        var secInLastHour=secInLastDay-RemainsFullHours*3600;
        var RemainsMinutes=(parseInt(secInLastHour/60));
        if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
        var lastSec=secInLastHour-RemainsMinutes*60;
        if (lastSec<10){lastSec="0"+lastSec};
        if (RemainsFullDays) { document.getElementById(block+"d").innerHTML="&nbsp;&nbsp;"+RemainsFullDays+"d"; } else { document.getElementById(block+"d").innerHTML=""; }
        document.getElementById(block+"h").innerHTML="&nbsp;&nbsp;"+RemainsFullHours+"h : ";
        document.getElementById(block+"m").innerHTML=RemainsMinutes+"m : ";
        document.getElementById(block+"s").innerHTML=lastSec+"s";
        setTimeout('fulltime("'+sDate+'","'+block+'")',1000);
    }else{
        document.getElementById(block+"end").innerHTML=sEventEnd;
    }
}

function showNY (e) {
    var d = document.getElementById('ny_block');
    if (d) {
        oCanvas = document.getElementsByTagName((document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0];
        x = window.event ? event.clientX + oCanvas.scrollLeft : e.pageX;
        y = window.event ? event.clientY + oCanvas.scrollTop : e.pageY;
        d.style.top = y + 5 + "px";
        d.style.left = x + 10 + "px";
        d.style.display = 'block';
    }
}

function hideNY () {
    var d = document.getElementById('ny_block');
    if (d) d.style.display = 'none';
}

function multi_page_jump(url_page, url_page_params, cur_page, pages, per_page, goto_page_text) {
    if (pages != 0) {
        msg = goto_page_text + "\nmax: " + pages;

        show_page = cur_page + 1;
        if (show_page > pages) { show_page = cur_page - 1; }

        userPage = prompt(msg, show_page);

        if (userPage > 0) {
            if (userPage < 1) { userPage = 1; }
            if (userPage > pages) { userPage = pages; }
            if (userPage != cur_page) {
                if (userPage == 1) { start = 0; }
                else { start = (userPage - 1) * per_page; }

                window.location = url_page + "?" + url_page_params + "&start=" + start;
            }
        }
    }
}

function similar(value, topic_id) {
    if (is_blank(value)) {
        var similar_tr = document.getElementById('similar_tr');
        if (similar_tr) similar_tr.style.display = 'none';
        return;
    }

    var url = "similartopics.php?text="+encodeURIComponent(value);
    if (topic_id) url = url + "&topic_id="+topic_id;
    if (window.XMLHttpRequest) {
        reqSimilar = new XMLHttpRequest();
        reqSimilar.onreadystatechange = similarProcess;
        reqSimilar.open("GET", url, true);
        reqSimilar.send(null);

    } else if (window.ActiveXObject) {
        reqSimilar = new ActiveXObject("Microsoft.XMLHTTP");
        if (reqSimilar) {
            reqSimilar.onreadystatechange = similarProcess;
            reqSimilar.open("GET", url, true);
            reqSimilar.send();
        }
    }
}

function similarProcess() {
    var similar_tr = document.getElementById('similar_tr');
    var similar_status = document.getElementById('similar_status');
    if (reqSimilar.readyState == 4) {
        response = reqSimilar.responseText;
        if (response != '') {
            document.getElementById('similar_result').innerHTML = response;
            if (similar_tr) similar_tr.style.display = '';
        } else {
            if (similar_tr) similar_tr.style.display = 'none';
            if (similar_status) similar_status.innerHTML = 'similar topics not found';
        }
    } else {
        if (similar_tr) similar_tr.style.display = 'none';
        if (similar_status) { similar_status.innerHTML = status_message[reqSimilar.readyState]; }
    }
}

function setHome(A, B) {
    A.style.behavior="url(#default#homepage)";
    A.setHomePage(B);
    return false;
}

function log_out(message) {
    return confirm(message);
}
