﻿// JScript File
var req_post = null;
var lang = "";

var arrOfDinamicElementsID = new Array( "extblock", "div_rightContent", "lang", "authform");
var div_message = null;

var div_wait = null;
var div_Lock = null;
var prev_a = null;

var isStart = true;

window.onload = function()
{
    InitElements();

    //инициализируем объект истории
    InitHistory();
    
    //вешаем обработчик всех онкликов на странице
    document.body.onclick = nodeClick;
    
    ReplaceHref();
    
    CheckLang();
    
    //снимаем ожидание
    WaitHidden();
}

nodeClick = function(e){
    if(document.all && !e)
    {
        e = window.event;
        e.target = e.srcElement;
    }
    //если кликнули на а, то ajax
    if(e.target.tagName.toLowerCase() == "a")
    {
        var a = e.target;
        if(CheckA(a))
        {
            navigate(a.href);
            return false;
        }
    }    
    //если кликнули на что-то в a, то ajax
    if(e.target.parentNode.tagName.toLowerCase() == "a")
            if(CheckA(e.target.parentNode))
            {
                navigate(e.target.parentNode.href);
                return false;
            }
}
//проверка на ашки, на которые не нужен ajax
function CheckA(a)
{
    if((a.shape != "default") && (a.href.search(/belmt/i) != -1) && (a.href != "") && (a.href.search(/imageID/i) == -1) && (a.href.search(/DBFile/i) == -1) && (a.href.search(/UserFiles/i) == -1) && (a.href.search(/mailto/i) == -1) && (a.href.search(/print/i) == -1))
        return true;
    return false;
}

function ReplaceHref()
{
    var arr = document.getElementsByTagName("a");
    for(var i = 0; i < arr.length; i++)
    {
        if(arr[i].href.search(/calendarTender/i) != -1)
        {
            arr[i].onclick = function(){ DoPostBackTendTopClndr(this.innerHTML); return false}
            arr[i].href = "#";
            arr[i].shape = "default";
        }
    }
}

//================================================================================
//================================ HISTORY =======================================
//================================================================================
function InitHistory()
{
    try {
        // определяем, какая страница должна быть открыта первой
        var bookmark = YAHOO.util.History.getBookmarkedState("page");
        var initialState = bookmark || window.location.href;

        // каждый раз при изменении состояния объекта history будет вызываться обработчик DoPostBack
        YAHOO.util.History.register("page", initialState, DoPostBack);

        YAHOO.util.History.onReady(function () {
            //снимаем ожидание
            //WaitHidden();
            var firstPage = YAHOO.util.History.getCurrentState("page");
            DoPostBack(firstPage);
        });

        YAHOO.util.History.initialize("yui-history-field", "yui-history-iframe");
    } catch (e){
        // в случае ошибки инициализации, переопределяем функцию navigate,
        // чтобы не использовать функции history
        navigate = DoPostBack;
        
        // открываем первую страницу
        //navigate('default.aspx');
    }
}

// функция, осуществляющая ajax запрос посредством объекта history
function navigate(url){
       // параметр url будет передаваться обработчику (в нашем случае это функция DoPostBack)
       YAHOO.util.History.navigate("page", url);
}
//================================================================================
//================================================================================
//================================================================================

function InitElements()
{
    div_wait = document.getElementById("div_wait");
    div_Lock = document.getElementById("div_Lock");
}

//===========================================
//=       ...::: AJAX BLOCK :::...          =
//===========================================
function DoPostBack(url)
{
    //вешаем ожидение
    WaitVisible();
    
    //отправляем
    req_post = getRequest();
    req_post.onreadystatechange = stateChange_post;
    req_post.open('GET', url, true);
    req_post.setRequestHeader("Content-Type", "text/html");
    req_post.send("");
}
function DoPostBackWithParams(url, params)
{
    //вешаем ожидение
    WaitVisible();
    
    //отправляем
    req_post = getRequest();
    req_post.onreadystatechange = stateChange_post;
    req_post.open('POST', url, true);
    req_post.setRequestHeader("Content-Type", "text/html");
    req_post.send(params);
}
function getRequest()
{
    var xreq = null;
    if(window.XMLHttpRequest)
    {
        xreq = new XMLHttpRequest;
    }
    else if(typeof ActiveXObject != "undefined")
    {
        xreq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xreq;
}
function stateChange_post()
{
    if(req_post.readyState == 4)
    {
        parseResponse(req_post.responseText);
        WaitHidden();
    }
}

//===========================================

function parseResponse(resp)
{
    var div = document.createElement("div");
    
    var div_lng = "<div id=\"lang\">" + resp.split("<div id=\"lang\">")[1].split("</div>")[0] + "</div>";
    div.innerHTML = div_lng + "<div id=\"body\">" + resp.split("<div id=\"body\">")[1].split("<div id=\"ftr\">")[0];
    
    var arr = div.getElementsByTagName("div");
    for(var i = 0; i < arr.length; i++)
        for(var j = 0; j < arrOfDinamicElementsID.length; j++)
            if(arr[i].id == arrOfDinamicElementsID[j])
                {
                    var el = document.getElementById(arrOfDinamicElementsID[j]);
                    if(el) el.innerHTML = arr[i].innerHTML;
                }
    ReplaceHref();
}

//-------------------- достаём язык из куки -------------------------
function CheckLang()
{
    var aCookie = document.cookie.split("; ");
    for (var i=0; i < aCookie.length; i++)
    {
        var aCrumb = aCookie[i].split("=");
        if (aCrumb[0] == "lang")
        {
            if(aCrumb.length > 1) lang = unescape(aCrumb[1]);
                else lang = "";
        }
    }
}

//---------------------- Сообщение -----------------------
function Message(sMessage)
{
    div_message = document.getElementById("div_message");
    if(div_message)
    {
        div_message.innerHTML = sMessage;
        div_message.style.display = "block";
    }
}

//======================== WAIT =============================
function WaitVisible()
{
    document.body.style.cursor = "wait";
    if(div_Lock)
    {
        if(!isStart)
        {
            div_Lock.style.background = "#000";
            div_Lock.style.filter = "alpha(opacity=20)";
            div_Lock.style.opacity = "0.20";
        }
        else isStart = false;
    
        if(window.innerHeight)
        {
            div_Lock.style.height = window.document.body.offsetHeight + "px";
            div_Lock.style.width = window.document.body.offsetWidth + "px";
        }
        div_Lock.style.display = "block";
    }
    if(div_wait)
    {
        var sp = div_wait.getElementsByTagName("span")[0];
        if(lang != "")
        {
            sp.innerHTML = "Loading ...";
        }
        else sp.innerHTML = "Загрузка ...";
        
        if(document.all)
        {
            div_wait.style.top = window.screen.availHeight / 2 + document.documentElement.scrollTop - 140 + "px";
            div_wait.style.left = window.screen.availWidth / 2 + document.documentElement.scrollLeft - 75 + "px";
        }
        else
            {
                div_wait.style.top = window.innerHeight / 2 + window.scrollY - 60 + "px";
                div_wait.style.left = window.innerWidth / 2 + window.scrollX - 75 + "px";
            }
        div_wait.style.display = "block";
    }
}
function WaitHidden()
{
    document.body.style.cursor = "default";
    if(div_wait)
    {
        div_wait.style.display = "none";
        if(div_Lock)
        {
            if(!isStart) div_Lock.style.display = "none";
        }
    }
}
//============================================================

//=======================================
//=       ...::: CATALOG :::...         =
//=======================================
function DoPostBackCatalog(params)
{
    var slct_group = document.getElementById("ctl00_ph_menu_ctl00_ProdSelector1_ddlMedGroup");
    var slct_prod = document.getElementById("ctl00_ph_menu_ctl00_ProdSelector1_ddlProducer");
    
    var url = "page.aspx?a=catalog&cid=" + slct_group.value + "&prod=" + slct_prod.value;
    DoPostBackWithParams(url, params);
}
function DoPostBackCatFind()
{
    var slct_group = document.getElementById("ctl00_ph_menu_ctl00_ProdSelector1_ddlMedGroup");
    var slct_prod = document.getElementById("ctl00_ph_menu_ctl00_ProdSelector1_ddlProducer");
    
    var url = "page.aspx?a=catalog&cid=" + slct_group.value + "&prod=" + slct_prod.value;
    navigate(url);
}

//===============================================
//=       ...::: AJAX BLOCK LANG :::...         =
//===============================================
function DoPostBackLang(url)
{
    //вешаем ожидение
    WaitVisible();
    
    //отправляем
    req_post = getRequest();
    req_post.onreadystatechange = stateChange_postLang;
    req_post.open('GET', url, true);
    req_post.setRequestHeader("Content-Type", "text/html");
    req_post.send("");
}
function stateChange_postLang()
{
    if(req_post.readyState == 4)
    {
        parseResponseLang(req_post.responseText);
        WaitHidden();
        CheckLang();
    }
}
function parseResponseLang(resp)
{
    var div = document.createElement("div");
    div.innerHTML = resp;
    var arr = div.getElementsByTagName("div");
    for(var i = 0; i < arr.length; i++)
        if(arr[i].id == "div_allbody")
        {
            var el = document.getElementById("div_allbody");
            if(el) el.innerHTML = arr[i].innerHTML;
            break;
        }
    ReplaceHref();
}
//======================================
//=       ...::: SEARCH :::...         =
//======================================
function DoPostBackSearch(btn)
{
    var value = btn.parentNode.firstChild.value;
    DoPostBackWithParams("search.aspx", "search=" + value + "&page=1");
}
//===================================
//=       ...::: LOGIN :::...       =
//===================================
var arrToChangeFoLogin = new Array( "authform");
function DoPostBackLogin(url, logout)
{
    WaitVisible();
    
    if(url.search(/a=tender/i) != -1) arrToChangeFoLogin.push("div_rightContent");
    else arrToChangeFoLogin = new Array( "authform");
    
    var params = "";
    if(!logout)
    {
        var login = document.getElementById("ctl00_ctl05_txtLogin").value;
        var psw = document.getElementById("ctl00_ctl05_txtPsw").value;
        var rmb = document.getElementById("ctl00_ctl05_chb_remember").checked;
        params = "login=" + login + "&psw=" + psw + "&rmb=" + rmb;
    }
    else params = "logout";
    //отправляем
    req_post = getRequest();
    req_post.onreadystatechange = stateChange_postLogin;
    req_post.open('POST', url, true);
    req_post.setRequestHeader("Content-Type", "text/html");
    req_post.send(params);
}
function stateChange_postLogin()
{
    if(req_post.readyState == 4)
    {
        parseResponseLogin(req_post.responseText);
        WaitHidden();
    }
}
function parseResponseLogin(resp)
{
    var div = document.createElement("div");
    
    var div_lng = "<div id=\"lang\">" + resp.split("<div id=\"lang\">")[1].split("</div>")[0] + "</div>";
    div.innerHTML = div_lng + "<div id=\"body\">" + resp.split("<div id=\"body\">")[1].split("<div id=\"ftr\">")[0];
    
    var arr = div.getElementsByTagName("div");
    for(var i = 0; i < arr.length; i++)
        for(var j = 0; j < arrToChangeFoLogin.length; j++)
            if(arr[i].id == arrToChangeFoLogin[j])
                {
                    var el = document.getElementById(arrToChangeFoLogin[j]);
                    if(el) el.innerHTML = arr[i].innerHTML;
                }
}
//=====================================
//=       ...::: TENDERS :::...       =
//=====================================
//MONTH / YEAR
function DoPostBackTendDdl(month, year)
{
    WaitVisible();
    
    if(!year)
        year = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddlYear").value;
    else
        month = document.getElementById("td_month").firstChild.value;
    var params = "month=" + month + "&year=" + year;
    
    //отправляем
    req_post = getRequest();
    req_post.onreadystatechange = stateChange_postTendDdl;
    req_post.open('POST', "tenders.aspx", true);
    req_post.setRequestHeader("Content-Type", "text/html");
    req_post.send(params);
}
function stateChange_postTendDdl()
{
    if(req_post.readyState == 4)
    {
        parseResponseTendDdl(req_post.responseText);
        WaitHidden();
    }
}
function parseResponseTendDdl(resp)
{
    var div = document.createElement("div");
    
    var div_lng = "<div id=\"lang\">" + resp.split("<div id=\"lang\">")[1].split("</div>")[0] + "</div>";
    div.innerHTML = div_lng + "<div id=\"body\">" + resp.split("<div id=\"body\">")[1].split("<div id=\"ftr\">")[0];
    
    var arr = div.getElementsByTagName("div");
    for(var i = 0; i < arr.length; i++)
        if(arr[i].id == "top_calendar")
        {
            var el = document.getElementById("top_calendar");
            if(el) el.innerHTML = arr[i].innerHTML;
            break;
        }
    ReplaceHref();
}
//DAY
function DoPostBackTendTopClndr(d)
{
    var year = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddlYear").value;
    var month = document.getElementById("td_month").firstChild.value;
    var url = "tenders.aspx?date=" + d + "." + month + "." + year;
    navigate(url);
}
//Filial
function DoPostBackTendFilial(value)
{
    var year = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddlYear").value;
    var month = document.getElementById("td_month").firstChild.value;
    var url = "tenders.aspx?filial=" + value;
    navigate(url);
}
//Paginator
function DoPostBackTendPgn(params)
{
    //вешаем ожидение
    WaitVisible();

    var d = document.getElementById("ctl00_ph_center_div_date").innerHTML;
    if(d != "") params += "&date=" + d;
    
    var f = document.getElementById("ctl00_ph_center_div_filial").innerHTML;
    if(f != "") params += "&filial=" + f;
    
    var nb = document.getElementById("ctl00_ph_center_div_nb").innerHTML;
    if(nb != "") params += "&nb=" + nb;
    
    var naim = document.getElementById("ctl00_ph_center_div_naim").innerHTML;
    if(naim != "") params += "&naim=" + naim;
    
    var descr = document.getElementById("ctl00_ph_center_div_descr").innerHTML;
    if(descr != "") params += "&descr=" + descr;
    
    var dfrom = document.getElementById("ctl00_ph_center_div_dfrom").innerHTML;
    if(dfrom != "") params += "&datefrom=" + dfrom;
    
    var dto = document.getElementById("ctl00_ph_center_div_dto").innerHTML;
    if(dto != "") params += "&dateto=" + dto;
    
    var allT = document.getElementById("ctl00_ph_center_div_allT").innerHTML;
    if(allT != "") params += "&all=1";
    
    //отправляем
    req_post = getRequest();
    req_post.onreadystatechange = stateChange_postTendPgn;
    req_post.open('POST', "tenders.aspx", true);
    req_post.setRequestHeader("Content-Type", "text/html");
    req_post.send(params);
}
function stateChange_postTendPgn()
{
    if(req_post.readyState == 4)
    {
        parseResponseTendPgn(req_post.responseText);
        WaitHidden();
    }
}
function parseResponseTendPgn(resp)
{
    var div = document.createElement("div");
    
    var div_lng = "<div id=\"lang\">" + resp.split("<div id=\"lang\">")[1].split("</div>")[0] + "</div>";
    div.innerHTML = div_lng + "<div id=\"body\">" + resp.split("<div id=\"body\">")[1].split("<div id=\"ftr\">")[0];
    
    var arr = div.getElementsByTagName("div");
    var arrToChange = new Array( "div_rightContent", "authform");
    for(var i = 0; i < arr.length; i++)
        for(var j = 0; j < arrToChange.length; j++)
            if(arr[i].id == arrToChange[j])
                {
                    var el = document.getElementById(arrToChange[j]);
                    if(el) el.innerHTML = arr[i].innerHTML;
                }
}
//Find
function DoPostBackTendFind()
{
    //вешаем ожидение
    WaitVisible();
    
    var nb = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_TenderFind1_tenderNb").value;
    var naim = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_TenderFind1_tb_naim").value;
    var descr = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_TenderFind1_tb_descr").value;
    var params = "";
    if(nb != "") params = "nb=" + nb;
    if(naim != "") params = "naim=" + naim;
    if(descr != "") params = "descr=" + descr;
    
    if(params != "")
    {
        //отправляем
        req_post = getRequest();
        req_post.onreadystatechange = stateChange_postTendFind;
        req_post.open('POST', "tenders.aspx", true);
        req_post.setRequestHeader("Content-Type", "text/html");
        req_post.send(params);
    }
    else WaitHidden();
}
function stateChange_postTendFind()
{
    if(req_post.readyState == 4)
    {
        parseResponseTendFind(req_post.responseText);
        WaitHidden();
    }
}
function parseResponseTendFind(resp)
{
    var div = document.createElement("div");
    
    var div_lng = "<div id=\"lang\">" + resp.split("<div id=\"lang\">")[1].split("</div>")[0] + "</div>";
    div.innerHTML = div_lng + "<div id=\"body\">" + resp.split("<div id=\"body\">")[1].split("<div id=\"ftr\">")[0];
    
    var arr = div.getElementsByTagName("div");
    var arrToChange = new Array( "div_rightContent", "authform", "top_tendmenu");
    for(var i = 0; i < arr.length; i++)
        for(var j = 0; j < arrToChange.length; j++)
            if(arr[i].id == arrToChange[j])
                {
                    var el = document.getElementById(arrToChange[j]);
                    if(el) el.innerHTML = arr[i].innerHTML;
                }
    ReplaceHref();
}
//time frame
function DoPostBackTendTimeFrame()
{
    var dFrom = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddl_daysFrom").value;
    var dTo = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddl_daysTo").value;
    var monthFrom = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddl_monthFrom").value;
    var monthTo = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddl_monthTo").value;
    var yearFrom = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddl_yearFrom").value;
    var yearTo = document.getElementById("ctl00_ph_menu_leftMenuCtrl1_ddl_yearTo").value;
    
    var params = "datefrom=" + dFrom + "." + monthFrom + "." + yearFrom;
    params += "&dateto=" + dTo + "." + monthTo + "." + yearTo;
    var url = "tenders.aspx?" + params;
    
    navigate(url);
}
//==================================
//=       ...::: ROOM :::...       =
//==================================
function DoPostBackRoom(url, logout)
{
    var params = "getnews=" + document.getElementById("ctl00_ph_center_ctl00_chkNews").checked;
    params += "&getinfo=" + document.getElementById("ctl00_ph_center_ctl00_chkTenders").checked;
        
    //отправляем
    DoPostBackWithParams("spam.my.aspx", params);
}
//======================================
//=       ...::: FeedBack :::...       =
//======================================
function FeedBackSend()
{
    var name    = document.getElementById("ctl00_ph_center_ctl00_txtName").value;
    var org     = document.getElementById("ctl00_ph_center_ctl00_txtOrg").value;
    var phone   = document.getElementById("ctl00_ph_center_ctl00_txtPhone").value;
    var email   = document.getElementById("ctl00_ph_center_ctl00_txtMail").value;
    var mess    = document.getElementById("ctl00_ph_center_ctl00_txtMessage").value;
    
    if(name.replace(/ /g, "") != "" && org.replace(/ /g, "") != "" && phone.replace(/ /g, "") != "" && email.replace(/ /g, "") != "" && mess.replace(/ /g, ""))
    {
        var info = name + "*&*" + org + "*&*" + phone + "*&*" + email + "*&*" + mess;
        
        //отправляем запрос
        DoPostBackWithParams("contact.aspx", info);
    }
    else
    {
        var mes = "Поля, помеченные звёздочкой, необходимо заполнить!!!";
        if(lang != "") mes = "The fields marked asterisk necessary to fill!!!";
        //показываем сообщение
        Message(mes);
    }
}