var bw = new browserd();
var dtDate = new Date();
var szTimeZone = dtDate.getTimezoneOffset() * -1;
var menutotal = 12;
var ServerSelected = 0;
var MenuSel = 0;

var ssmenu = [
    { menuid: 'general', menutext: 'Общая', visible: true, dev: true, title: 'Общая статистика сервера' },
    { menuid: 'players', menutext: 'Игроки', visible: true, dev: true, title: 'Статистика по персонажам' },
    { menuid: 'pets', menutext: 'Питомцы', visible: true, dev: true, title: 'Статистика питомцев' },
    { menuid: 'clans', menutext: 'Кланы', visible: true, dev: true, title: 'Статистика по кланам' },
    { menuid: 'ally', menutext: 'Альянсы', visible: true, dev: true, title: 'Статистика по алиансам' },
    { menuid: 'castles', menutext: 'Замки', visible: true, dev: true, title: 'Статистика по замкам' },
    { menuid: 'forts', menutext: 'Форты', visible: true, dev: true, title: 'Статистика по фортам' },
    { menuid: 'sieges', menutext: 'Осады', visible: true, dev: true, title: 'Статистика по текущим осадам' },
    { menuid: '7singns', menutext: 'Семь печатей', visible: true, dev: true, title: 'Статистика семи печатей' },
    { menuid: 'chat', menutext: 'Шаут', visible: true, dev: true, title: 'Глобальный чат' },
    { menuid: 'bans', menutext: 'Баны', visible: true, dev: true, title: 'Забанные аккаунты' },
    { menuid: 'la2tv', menutext: 'TV', visible: false, dev: true, title: 'Телевидиние сервера - Новости, События, Жизнь сервера' }
];
function browserd() {
    doc = window.document;
    navVersion = navigator.appVersion.toLowerCase();
    this.ie4 = (!doc.getElementById && doc.all) ? true : false;
    this.ie5 = (navVersion.indexOf("msie 5.0") != -1) ? true : false;
    this.ie55 = (navVersion.indexOf("msie 5.5") != -1) ? true : false;
    this.isSafari = (navVersion.indexOf("safari") != -1) ? true : false;
    this.ie6 = (navVersion.indexOf("msie 6.0") != -1) ? true : false;
    this.ie7 = (navVersion.indexOf("msie 7.0") != -1) ? true : false;
    this.ie8 = (navVersion.indexOf("msie 8.0") != -1) ? true : false;
    this.ie = (navVersion.indexOf("msie") != -1) ? true : false;
    this.isIE = (this.ie5 || this.ie55 || this.ie6 || this.ie7 || this.ie8 || this.ie) ? true : false;
    this.isOpera = (navigator.appName.toLowerCase().indexOf("opera") != -1) ? true : false;
    this.isGecko = !this.isIE;
}
var isFirst = true;
function Init() {
    if (bw.isGecko) { window.onresize = BodyResize; }
    else window.attachEvent("onresize", BodyResize);
    window.setTimeout("Ping()", 1000);
}
function Ping() {
    if (!isFirst) {
        var preloadservers = document.getElementById('preloadservers');
        preloadservers.style.display = "";
    }
    repou.webhelper.GetServers(szTimeZone, onResultServers, GetServersOnTimeOut, GetServersOnError);
}
function GetServersOnTimeOut(arg) {
    //alert("Таймаут. Нет соединения с сервером."); 
    var loaderServers = document.getElementById("loaderServers");
    if (loaderServers) { loaderServers.style.display = "none"; }
    Servers = null;
    var severlist = document.getElementById("severlist");
    severlist.style.display = "";
    severlist.innerHTML = "Таймаут. Нет соединения с сервером.";
    window.setTimeout("Ping()", 5000);
}

function GetServersOnError(arg) {
    alert("Ошибка при вызове функции. Попробуйте позднее");
}
var Servers = null;
function onResultServers(servers) {
    var loaderServers = document.getElementById("loaderServers");
    if (loaderServers) { loaderServers.style.display = "none"; }
    Servers = servers; isFirst = false;
    window.setTimeout("renderservers()", 100);
}
function renderservers() {
    if (Servers) {
        var to = 0;
        var tm = 0;
        var severlist = document.getElementById("severlist");
        severlist.style.display = "";
        var serverList = document.getElementById('serverList');
        var slmnu = "";
        for (var i = 0; i < Servers.l; i++) {
            var obj = Servers.si[i];

            var oi = "<img border='0' class='off' title='Ошибка: " + obj.err + "' src='/0.gif'>";
            if (obj.online) oi = "<img border='0' class='on' title='Сервер в сети' src='/0.gif'>";
            if (!obj.active) { oi = "<img border='0' class='dis' title='Сервер неактивен. Ведутся работы' src='/0.gif'>"; }

            if (document.getElementById('server' + obj.ID)) {
                oRow = document.getElementById('server' + obj.ID);
            }
            else { oRow = severlist.insertRow(i); oRow.id = 'server' + obj.ID; }

            if (document.getElementById('Sname' + obj.ID)) { oCell = document.getElementById('Sname' + obj.ID); }
            else { oCell = oRow.insertCell(0); oCell.id = 'Sname' + obj.ID; }
            if (obj.isLogin) {
                oRow.style.height = "30px";
                oCell.innerHTML = oi + obj.name;
                if (document.getElementById('on' + obj.ID)) { }
                else { oCell = oRow.insertCell(1); oCell.id = 'on' + obj.ID; oCell.className = 'online'; oCell.innerHTML = "Онлайн:"; }
                if (document.getElementById('rec' + obj.ID)) { }
                else { oCell = oRow.insertCell(2); oCell.id = 'rec' + obj.ID; oCell.className = 'record'; oCell.innerHTML = "Рекорд:"; }

            } else {

                oRow.style.height = "20px";
                oCell.innerHTML = oi + "<a title='" + obj.info + "' unselectable='on' href='javascript:void(0);' onclick='ServerStat(" + i + ");'>" + obj.name + "</a>";
                //if(ServerSelected != i) 
                slmnu += "<a class='ServerMenu' unselectable='on' href='javascript:void(0);' onclick='SelNewServer(" + i + ");'>" + obj.name + "</a>";

                to += obj.count; tm += obj.record;
                if (document.getElementById('on' + obj.ID)) { oCell = document.getElementById('on' + obj.ID); }
                else { oCell = oRow.insertCell(1); oCell.id = 'on' + obj.ID; oCell.className = 'online'; }
                oCell.innerHTML = obj.count;
                if (document.getElementById('rec' + obj.ID)) { oCell = document.getElementById('rec' + obj.ID); }
                else { oCell = oRow.insertCell(2); oCell.id = 'rec' + obj.ID; oCell.className = 'record'; }
                oCell.innerHTML = obj.record;

            }

        }
        serverList.innerHTML = slmnu;
        if (document.getElementById('totallbl')) { oRow = document.getElementById('totallbl'); }
        else {
            oRow = severlist.insertRow(i);
            oCell = oRow.insertCell(0); oRow.id = 'totallbl';
            oRow.style.height = "25px";
            oCell.innerHTML = "<img class='sum' src='/0.gif'><b>Всего:</b>";
        }
        if (document.getElementById('totalon')) { oCell = document.getElementById('totalon'); }
        else { oCell = oRow.insertCell(1); oCell.id = 'totalon'; oCell.className = 'online'; }
        oCell.innerHTML = "<b>" + to + "</b>";

        if (document.getElementById('totalmax')) { oCell = document.getElementById('totalmax'); }
        else { oCell = oRow.insertCell(2); oCell.id = 'totalmax'; oCell.className = 'record'; }
        oCell.innerHTML = "<b>" + tm + "</b>";
        window.setTimeout("Ping()", 5000);
        if (!isFirst) {
            var preloadservers = document.getElementById('preloadservers');
            preloadservers.style.display = "none";
        }
        var svicon = "<img class='" + Servers.repouservice[1] + "' src='/0.gif'>";
        var sricon = "<img class='" + Servers.starter[1] + "' src='/0.gif'>";
        if (document.getElementById('rws')) {
            oRow = document.getElementById('rws');
            oCell = document.getElementById('rwsTD');
            oCell.innerHTML = sricon + "Служба стартера: <b>" + Servers.starter[0] + "</b>";
        } else {
            oRow = severlist.insertRow(i+1);
            oCell = oRow.insertCell(0); oRow.id = 'rws';
            oCell.id = 'rwsTD';
            oCell.colSpan = "3";
            oRow.style.height = "25px";
            oCell.innerHTML = sricon + "Служба стартера: <b>" + Servers.starter[0] + "</b>";
        }
        if (document.getElementById('rwst')) {
            oRow = document.getElementById('rwst');
            oCell = document.getElementById('rwstTD');
            oCell.innerHTML = svicon + "Служба герои: <b>" + Servers.repouservice[0] + "</b>";
        } else {
            oRow = severlist.insertRow(i + 2);
            oCell = oRow.insertCell(0); oRow.id = 'rwst';
            oCell.id = 'rwstTD';
            oCell.colSpan = "3";
            oRow.style.height = "25px";
            oCell.innerHTML = svicon + "Служба герои: <b>" + Servers.repouservice[0] + "</b>";
        }
        if (document.getElementById('rwsTD')) { oCell = document.getElementById('totalmax'); }
        else { oCell = oRow.insertCell(2); oCell.id = 'totalmax'; oCell.className = 'record'; }

        var donP = document.getElementById('donP');
        var donDiv = document.getElementById('donDiv');
        var donTo = document.getElementById('donTo');

        if (Servers.don) {
            donP.innerHTML = Servers.percent + "%";
            donDiv.style.width = Servers.percent + "%";
        }
        donTo.innerHTML = Servers.donate;
    }
}
var oindex = 0;
var playo = false;
function opacity(element, tim, side) {
    playo = true;
    var tag = document.getElementById(element);
    if (side == 1) {
        oindex += side;
        if (oindex <= 7) {
            tag.className = "opacity" + oindex;
            window.setTimeout("opacity('" + element + "', " + tim + ", 1)", tim);
        } else {
            playo = false;
        }
    } else {
        oindex += side;
        if (oindex >= 0) {
            tag.className = "opacity" + oindex;
            window.setTimeout("opacity('" + element + "', " + tim + ", -1)", tim);
        } else {
            tag.className = "opacity0";
            tag.style.display = "none";
            oindex = 0;
            playo = false;
        }
    }
}

var CurentWindow = null;

function showOverlay(wnd) {
    CurentWindow = wnd;
    var overlay = document.getElementById('wndOverlay');
    overlay.style.display = "block";
    var bodyDiv = document.getElementById('bodyDiv');
    var bh = bodyDiv.offsetHeight;
    overlay.style.height = bh + "px";
    window.setTimeout("opacity('wndOverlay', 25 , 1)", 25);
    if (CurentWindow) {
        CurentWindow.style.display = "block";
          
        var lt = (document.body.offsetWidth - CurentWindow.offsetWidth) / 2;
        var tp = (document.body.clientHeight - CurentWindow.offsetHeight) / 2;
        CurentWindow.style.left = lt + "px";
        document.body.scrollTop = 60;
        if (document.body.clientHeight > CurentWindow.offsetHeight) CurentWindow.style.top = tp + "px";
    }

}
function aUrl(url) {
    GoUrl = url;
    showstart();
}
function closeOverlay() {
    if (!playo) {
        if (CurentWindow) CurentWindow.style.display = "none";
        var overlay = document.getElementById('wndOverlay');
        window.setTimeout("opacity('wndOverlay', 50 , -1)", 50);
        StatUpdate = true;
    }
}
var GoUrl = '/start.aspx';
function showstart(url) {
    
    var wndRules = document.getElementById('wndRules');
    showOverlay(wndRules);
}
function AgreeAndGo() {
    //window.setTimeout("", 50);    
    window.location.href = GoUrl;
}

function ServerStat(id) {
    ServerSelected = id;
    var wndStat = document.getElementById('wndStat');
    showOverlay(wndStat);
    window.setTimeout("StatInit()", 500);
}
function ServerStat2() {
    if (Servers) {
        ServerSelected = 0;
        var wndStat = document.getElementById('wndStat');
        showOverlay(wndStat);
        window.setTimeout("StatInit()", 500);
    } else { alert('Дождитесь получения списка серверов.'); }
}
var StatUpdate = false;
var inter = null;

function ChangeServer() {
    var subheaderinfo = document.getElementById('subheaderinfo');
    var serverList = document.getElementById('serverList');
    serverList.style.top = (subheaderinfo.offsetTop + 30) + 'px';
    serverList.style.left = '525px';
    serverList.style.display = "block";
    serverList.mustHide = false;
}
function hideSubMenu(menu) {
    var el = document.getElementById(menu);
    el.mustHide = true;
    window.setTimeout("DoHide('" + menu + "')", 500);
}
function DoHide(id) { var el = document.getElementById(id); if (el.mustHide) { el.style.display = "none"; } }
function ServerSelect(index) {
    ServerSelected = index;
    if (inter) { window.clearTimeout(inter); } inter = window.setTimeout('StatInit()', 50);
}
function StatInit() {

    if (Servers) {
        StatUpdate = true;
        var server = Servers.si[ServerSelected];
        var headerStat = document.getElementById('headerStat');
        headerStat.innerHTML = "Статистика сервера — " + server.name;
        var subheaderinfo = document.getElementById('subheaderinfo');
        var swmenu = document.getElementById('swmenu');
        var swpreload = document.getElementById('preload');
        var swcnt = document.getElementById('swcnt');

        var statinfo = document.getElementById('statinfo');
        swmenu.innerHTML = "";
        var menu = "";
        for (var mi = 0; mi < menutotal; mi++) {
            var itm = ssmenu[mi];
            if (itm.visible) {
                if (mi == MenuSel) {
                    menu += "<span class='ssMitem'>" + itm.menutext + "</span>";
                    subheaderinfo.innerHTML = "<h3 class='crsh'>" + itm.title + "</h3><p class='serverabout'>" + server.info;
                    if (itm.dev) {
                        swpreload.style.display = "none";
                        swcnt.innerHTML = "<img class='sw-dev' src='/0.gif'><h2>Раздел в разработке</h2>";
                        statinfo.style.display = "";
                        swcnt.align = "center";
                    } else {

                        swpreload.style.display = "";
                        statinfo.style.display = "none";
                        swcnt.align = "left";

                    }
                } else {

                    menu += "<a class='ssMitem' href='javascript:SelectMenu(" + mi + ")'>" + itm.menutext + "</a>";
                }
            }
        }
        swmenu.innerHTML = menu;

        var servOnline = document.getElementById('servOnline');
        servOnline.innerHTML = "Онлайн:" + server.count;
        var servMax = document.getElementById('servMax');
        servMax.innerHTML = "Рекорд:" + server.record;


        var statusbar = document.getElementById('statusbar');

        if (server.online) statusbar.innerHTML = "<span class='online'>Статус: Работает</span> | [" + server.l2ver + "] |Рестарт в [" + server.hr + "] через " + server.tr;
        else statusbar.innerHTML = "<span class='offline'>Статус: Не в сети | Ошибка: " + server.err + " [" + server.l2ver + "]</span>";

        inter = window.setTimeout('StatInit()', 1000);
    }
}
function SelNewServer(index) {
    ServerSelected = index;
    if (inter) { window.clearTimeout(inter); }
    inter = window.setTimeout('StatInit()', 50);
    var serverList = document.getElementById('serverList');
    serverList.style.display = "none";
}

function SelectMenu(index) { MenuSel = index; if (inter) { window.clearTimeout(inter); } inter = window.setTimeout('StatInit()', 50); }
function Sendfeed() { }
function BodyResize() {

    if (CurentWindow) {
        var lt = (document.body.offsetWidth - CurentWindow.offsetWidth) / 2;
        var tp = (document.body.clientHeight - CurentWindow.offsetHeight) / 2;
        CurentWindow.style.left = lt + "px";
        if (document.body.clientHeight > CurentWindow.offsetHeight) CurentWindow.style.top = tp + "px";
    }
}
function OnSelectStart() {
    if (document.activeElement.tagName.toLowerCase() != "input" && document.activeElement.tagName.toLowerCase() != "textarea") { document.selection.clear(); }
}

function OnComplete(arg) {
    alert(arg);
}


//    var ac = afarr[af-1];
//    dvNav.innerHTML = "<h2 style='font-weight:normal;'>" + ac.Aforizm + "</h2><div align='right'><i>"+ ac.Author + "</i></div>";
