//Инициализация в начале страницы
//============================================================================== # Bookmarks: 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,49
var bOtherBrowser = true;
// for Mozilla
if (document.addEventListener) {
                document.addEventListener("DOMContentLoaded", init, false);
                bOtherBrowser = false;
}
// for Safari
if (/WebKit/i.test(navigator.userAgent)) {
                var _timer = setInterval(function() {
                        if (/loaded|complete/.test(document.readyState)) {
                                init();
                        }
                }, 10);

           bOtherBrowser = false;
}
if(bOtherBrowser){
   window.onload = init;
}

window.onStart = Start();

function StopEnterForIE(event){
   alert(event.keyCode);
  if(window.event){
       if(event.keyCode == 13){
            alert('Клавиша "Enter" не работает на данном сайте.');
            return;
       }
  }
}

var bFormIsSubmit = true;
function StopEnterKey(form, event){
  if(event.keyCode == 13)
          bFormIsSubmit = false;
}

function EnableSubmitForm(inputSubmit){
  var Form = inputSubmit.form;
  if(bFormIsSubmit)
        Form.onsubmit = function(event){ return ValidateOrderForm(Form);   }
  else  Form.onsubmit = function(event){ return false;   }

  bFormIsSubmit = true;
}

function init(){
}


//Отправка товара в корзину и пересчет товара в корзине
//==============================================================================
var bSendingRequest = false;
var SendingParams = '';

function SendGood(type){
  var inputs = document.getElementsByTagName('input');
  var params = '';
  var action = '';
  var reg = '';
  if(!type || (type == 'cart')){
    action = 'ADD2BASKET';
    var reg = /quant_sale_\d/;
    if(type == 'cart') params += '&cart=Y';
  }
  if(type == 'calc'){
    action = 'CALC2BASKET';
    var reg = /QUANTITY_\d/;
    var reg2 = /DELETE_\d/;
    var reg3 = /ORDER_PROP_/;
  }
  if(type == 'ocalc'){
    action = 'CALC2ORDER';
    var reg = /ORDER_PROP_/;
    var reg3 = /ORDER_PROP_/; //для select
  }
  if(type == 'refresh'){
    action = 'BASKET_REFRESH';
  }

  for(var i = 0; i < inputs.length; i++){
      var cbi = inputs.item(i);
      if(!type && reg.test(cbi.name)){
             if(cbi.id != "quant_sale_cart") params += '&' + cbi.name + '=' + cbi.value;
      }
      else if((type == 'cart') && reg.test(cbi.name) ){
             if(cbi.id == "quant_sale_cart") params += '&' + cbi.name + '=' + cbi.value;
      }
      else if((type == 'calc') && (reg.test(cbi.name) || reg2.test(cbi.name) || reg3.test(cbi.name)) ){
             if((cbi.type != "text") && !cbi.checked) continue;
             params += '&' + cbi.name + '=' + cbi.value;
      }
      else if((type == 'ocalc') && reg.test(cbi.name) ){
             if((cbi.type != "text") && !cbi.checked) continue;
             params += '&' + cbi.name + '=' + cbi.value;
      }
  }//for

  if((type == 'calc') || (type == 'ocalc')){
     var selects = document.getElementsByTagName('select');
     for (var i = 0; i < selects.length; i++){
       var cbi = selects.item(i);
       if(reg3.test(cbi.name) && cbi.value && (cbi.value != 'Default')){
            params += '&' + cbi.name + '=' + cbi.value;
       }
     }
  }
  //alert(params); return;

  if((type == 'calc') && (params == SendingParams)){
       alert('Корзина уже изменена или не выбрано количество товара.');
  }

  if(params != SendingParams)
  {
        if(bSendingRequest) return;
        bSendingRequest = true;

        if(type == 'calc')
            ShowWaitWindow("обновление корзины");
        if(type == 'ocalc')
            ShowWaitWindow("обновление заказа");
        xmlDoc = CreateHttpRequest(process);
        xmlDoc.open("POST", "/ajax/sendgood.php?action="+action, true);
        xmlDoc.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlDoc.setRequestHeader("Content-length", params.length);
        xmlDoc.setRequestHeader("Connection", "close");
        xmlDoc.send(params);
  }

  if(type == 'refresh')
  {
        ShowWaitWindow("обновление корзины");
        xmlDoc = CreateHttpRequest(process);
        action = 'BASKET_REFRESH';
        xmlDoc.open("GET", "/ajax/sendgood.php?action="+action, true);
        xmlDoc.send(null);
  }
}

function process() {
   if(xmlDoc.readyState != 4) return;
   clearTimeout(_timeout);
   bSendingRequest = false;

   //alert(xmlDoc.responseText[0]); return;
   var BasketAnswer = unserialize(xmlDoc.responseText);
   if(BasketAnswer["ERRORMESS"]){
      if(document.getElementById("sSuccess"))document.getElementById("sSuccess").innerHTML = '';
      if(document.getElementById("sError"))document.getElementById("sError").innerHTML = BasketAnswer["ERRORMESS"];
   }
   else {
    with(document)
    {
      if(BasketAnswer["ISCART"] != "Y"){
         SendingParams = BasketAnswer["PARAMS"]; //делаем только при успешном добавлении в корзину
      }

      //basket line
      if(BasketAnswer["ACTION"] == 'ADD2BASKET'){
        if(BasketAnswer["IS_ALERT"])
             alert('Корзина уже изменена.');
        else ShowWaitBasket(0, 0);
      }
      else CloseWaitWindow();

      if(getElementById("sError") && document.getElementById("sError").innerHTML)
                     getElementById("sError").innerHTML = '';

      //обновить basket.line
      if(getElementById("basketTable"))
      {
           if(BasketAnswer["QUANTITY_ALL"] > 0)
                 getElementById("basketTable").style.cssText = "background:#DBECF9; padding: 4px 4px 4px 4px;";
           else  getElementById("basketTable").style.cssText = "";

           getElementById("sQUANTITY_ALL").innerHTML = BasketAnswer["QUANTITY_ALL"];
           getElementById("sallSum").innerHTML = BasketAnswer["PRICE_ALL"];
           if(getElementById("sDELIVERY"))
               getElementById("sDELIVERY").innerHTML = BasketAnswer["DELIVERY_ALL"];
           if(getElementById("sDISCOUNT_PERCENT"))
               getElementById("sDISCOUNT_PERCENT").innerHTML = BasketAnswer["DISCOUNT_PERCENT"];
           if(getElementById("sbasket_url"))
               getElementById("sbasket_url").innerHTML = BasketAnswer["BASKET_URL"];
           if(getElementById("sbasket_url2"))
               getElementById("sbasket_url2").innerHTML = BasketAnswer["BASKET_URL_MS"];

           if(getElementById("quant_sale_cart") && BasketAnswer["QUANTITY_CART"])
              getElementById("quant_sale_cart").value = BasketAnswer["QUANTITY_CART"];

         if(BasketAnswer["DELIVERY_ALL"] > 0)
               getElementById("tr_DeliveryLine").style.display = '';
         else  getElementById("tr_DeliveryLine").style.display = 'none';
         if(BasketAnswer["DISCOUNT_PERCENT"] > 0)
               getElementById("tr_DiscountPrice").style.display = '';
         else  getElementById("tr_DiscountPrice").style.display = 'none';
      }

      //меняем кнопку "КУПИТЬ"
      if(BasketAnswer["ISCART"] == "Y"){
         if(getElementById("quant_sale_cart").value > 0){
           getElementById("quant_sale_button").className = "sale_button2";
           getElementById("quant_sale_button").value = "В КОРЗИНЕ";
         }
         else {
           getElementById("quant_sale_button").className = "sale_button";
           getElementById("quant_sale_button").value = "   КУПИТЬ";
         }
      }

      if(BasketAnswer["ACTION"] == 'CALC2BASKET'){
         for(var i in BasketAnswer["DELETED"]){
           var basket_id = BasketAnswer["DELETED"][i];
           Tablecolumns = document.getElementById("sbasket_" + basket_id).cells.length; //число столбцов в таблице корзины
           for (var j = 0; j < Tablecolumns; j++)
               getElementById("sbasket_" + basket_id).deleteCell(0);
         }
         for(var basket_id in BasketAnswer["UPDATED"]){
           getElementById("SaleSumma_" + basket_id).innerHTML = BasketAnswer["UPDATED"][basket_id]["SaleSummaDisc"];
           getElementById("PriceDisc_" + basket_id).innerHTML = BasketAnswer["UPDATED"][basket_id]["DISCOUNT_PRICE"];
         }
         if(BasketAnswer["DISCOUNT_BIG_PERCENT"]){
                  if(getElementById("sDISCOUNT_BIG_PERCENT")){
                    getElementById("sDISCOUNT_BIG_PERCENT").innerHTML = BasketAnswer["DISCOUNT_BIG_PERCENT"];
                    getElementById("sDISCOUNT_BIG_SUM_FORMATED").innerHTML = BasketAnswer["DISCOUNT_BIG_SUM_FORMATED"];
                  }
                  else getElementById("sDISCOUNT_BIG").innerHTML = 'Чтобы получить скидку <b><span id="sDISCOUNT_BIG_PERCENT">'+BasketAnswer["DISCOUNT_BIG_PERCENT"]+'</span>%</b> добавьте в корзину товаров на <b><span id="sDISCOUNT_BIG_SUM_FORMATED">'+BasketAnswer["DISCOUNT_BIG_SUM_FORMATED"]+'</span> руб.</b>';
         }
         else {
           if(getElementById("sDISCOUNT_BIG"))
              getElementById("sDISCOUNT_BIG").innerHTML = '';
         }

         //всего
         var sht = 'штук';
         if(BasketAnswer["QUANTITY_ALL"] == 1) sht = 'штука';
         if((BasketAnswer["QUANTITY_ALL"] == 2) || (BasketAnswer["QUANTITY_ALL"] == 3) || (BasketAnswer["QUANTITY_ALL"] == 4)) sht = 'штуки';
         if(BasketAnswer["QUANTITY_ALL"] >= 5) sht = 'штук';
         getElementById("sQUANTITY_ALL2").innerHTML = BasketAnswer["QUANTITY_ALL"];
         getElementById("sQUANTITY_SHT").innerHTML = sht;

         getElementById("sallSum2").innerHTML = BasketAnswer["PRICE_ALL"];
         if(BasketAnswer["SMALL_SUM"]){
              getElementById("tr_DELIVERY").style.display = 'none';
              getElementById("tr_DeliveryRegion").style.display = 'none';
              getElementById("tr_DeliveryRegion_prim").style.display = 'none';
         }
         else {
              getElementById("tr_DELIVERY").style.display = '';
              getElementById("tr_DeliveryRegion").style.display = '';
              getElementById("tr_DeliveryRegion_prim").style.display = '';
         }

         //итого
         if(BasketAnswer["DISCOUNT_PERCENT"] > 0){
             getElementById("tr_DISCOUNT_PERCENT1").style.display = '';
             getElementById("tr_DISCOUNT_PERCENT2").style.display = '';
         }
         else {
             getElementById("tr_DISCOUNT_PERCENT1").style.display = 'none';
             getElementById("tr_DISCOUNT_PERCENT2").style.display = 'none';
         }
         if(BasketAnswer["DELIVERY_ALL"] > 0)
               getElementById("tr_ITOGO_SUM").style.display = '';
         else  getElementById("tr_ITOGO_SUM").style.display = 'none';

         getElementById("sDISCOUNT_PERCENT").innerHTML = BasketAnswer["DISCOUNT_PERCENT"] + '%';
         getElementById("sDISCOUNT").innerHTML  = BasketAnswer["DISCOUNT_VALUE"];
         if(BasketAnswer["DELIVERY_ALL"] > 0){
              getElementById("sDELIVERY2").innerHTML = BasketAnswer["DELIVERY_ALL"];
              getElementById("sRUB").innerHTML = "руб.";
         }
         else {
              getElementById("sDELIVERY2").innerHTML = "<a href='/info/dost.php'><b>Доставка невозможна</b></a>";
              getElementById("sRUB").innerHTML = "";
         }

         getElementById("sITOGO").innerHTML = BasketAnswer["ITOGO"];
         getElementById("sITOGO_SUM").innerHTML = BasketAnswer["ITOGO_SUM"];
         getElementById("sallWeight").innerHTML = BasketAnswer["WEIGHT_ALL"];

         if(getElementById("sSendZakaz"))
            getElementById("sSendZakaz").innerHTML = BasketAnswer["SEND_ZAKAZ_URL"];
         if(getElementById("sSendZakaz_ms"))
            getElementById("sSendZakaz_ms").innerHTML = BasketAnswer["SEND_ZAKAZ_URL_MS"];
      }

      if(BasketAnswer["ACTION"] == 'CALC2ORDER'){
         getElementById("sDISCOUNT_PERCENT").innerHTML = BasketAnswer["DISCOUNT_PERCENT"] + '%';
         getElementById("sDISCOUNT").innerHTML  = BasketAnswer["DISCOUNT_VALUE"];
         getElementById("sITOGO").innerHTML = BasketAnswer["ITOGO"];
         if(BasketAnswer["DELIVERY_ALL"] > 0)
              getElementById("sDELIVERY2").innerHTML = BasketAnswer["DELIVERY_ALL"] + " руб.";
         else getElementById("sDELIVERY2").innerHTML = BasketAnswer["SEND_ZAKAZ_URL"];
         getElementById("sITOGO_SUM").innerHTML = BasketAnswer["ITOGO_SUM"];
         getElementById("sITOGO_SUM2").innerHTML = BasketAnswer["ITOGO_SUM"];

         if(BasketAnswer["DISCOUNT_PERCENT"] > 0){
             getElementById("tr_DISCOUNT_PERCENT1").style.display = '';
             getElementById("tr_DISCOUNT_PERCENT2").style.display = '';
         }
         else {
             getElementById("tr_DISCOUNT_PERCENT1").style.display = 'none';
             getElementById("tr_DISCOUNT_PERCENT2").style.display = 'none';
         }

         //сдача
         var SdachaSel = getElementById("ORDER_PROP_MONEY_TO");
         while(SdachaSel.length > 1){
             SdachaSel.remove(SdachaSel.length - 1);
         }
         var i = 0;
         while(BasketAnswer["MONEY_TO"]["VARIANTS"][i]){
             SdachaVal = BasketAnswer["MONEY_TO"]["VARIANTS"][i];
             Opt = new Option(SdachaVal+" руб.", SdachaVal);
             SdachaSel.add(Opt, null);
             i++;
         }
      }

    }//with
   }//if

}


//Отправка товара в записную книжку
//==========================================================================
function SendtoNT(element_id, del_nt) {
        if(bSendingRequest) return;
        bSendingRequest = true;
        if(del_nt == 'Y')
             ShowWaitWindow("удаление из записной книжки");
        else ShowWaitWindow("добавление в записную книжку");

        xmlDoc = CreateHttpRequest(processNT);
        xmlDoc.open("GET", "/ajax/sendto_nt.php?nt="+element_id+'&del_nt='+del_nt, true);
        xmlDoc.send(null);
}
function processNT() {
   if(xmlDoc.readyState != 4) return;
   ClearXMLprocess(xmlDoc);

   var BasketAnswer = xmlDoc.responseText.split('#');
   if(BasketAnswer[0] == 'Error'){
      document.getElementById("sSuccess").innerHTML = '';
      document.getElementById("sError").innerHTML = BasketAnswer[1];
      alert(BasketAnswer[1]);
   }
   else {
      document.getElementById("sError").innerHTML = '';
      if(BasketAnswer[0] == 'delete')
                   window.location = '/personal/notebook/';
   }
}


//Авторизация
//==========================================================================
function SendAuth(authtype) {
 if(bSendingRequest) return;
 bSendingRequest = true;

 if(document.getElementById("sErrorPers")) //сообщение в персональном разделе
         document.getElementById("sErrorPers").innerHTML = "";

 if(authtype == 'Go')
 {
    var inputs = document.getElementsByTagName('input');
    var params = '';
    for (var i = 0; i < inputs.length; i++){
         var cbi = inputs.item(i);
         if((cbi.type == 'text') && (cbi.name == 'login') && cbi.value){
              params += '&' + cbi.name + '=' + cbi.value;
         }
         if((cbi.type == 'password') && (cbi.name == 'password') && cbi.value){
              params += '&' + cbi.name + '=' + cbi.value;
         }
         if((cbi.type == 'checkbox') && (cbi.name == 'USER_REMEMBER') && cbi.checked){
              params += '&' + cbi.name + '=' + 'Y';
         }
    }
    //alert(params); //return;

    if(params){
     xmlDoc = CreateHttpRequest(processAuth);
     xmlDoc.open("POST", "/ajax/auth.php?authtype="+authtype, true);
     xmlDoc.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xmlDoc.setRequestHeader("Content-length", params.length);
     xmlDoc.setRequestHeader("Connection", "close");
     xmlDoc.send(params);
    }
    else bSendingRequest = false;
 }

 if(authtype == 'Exit')
 {
        xmlDoc = CreateHttpRequest(processAuth);
        xmlDoc.open("GET", "/ajax/auth.php?authtype="+authtype, true);
        xmlDoc.send(null);
 }
}

function processAuth() {
   if(xmlDoc.readyState != 4) return;
   ClearXMLprocess(xmlDoc);

   //alert(xmlDoc.responseText);
   if(xmlDoc.responseText){
        var BasketAnswer = unserialize(xmlDoc.responseText);
        if(BasketAnswer["ERROR"]){
           if(document.getElementById("sError"))
              document.getElementById("sError").innerHTML = BasketAnswer["MESSAGE"];
        }
        else {
           document.getElementById("AuthSuccess").innerHTML = BasketAnswer["MESSAGE"];
           if(document.getElementById("loginform"))
              document.getElementById("loginform").innerHTML = BasketAnswer["MESSAGE2"];
           if(BasketAnswer["AUTHTYPE"] == 'Go')
                SendGood('refresh');
        }
   }
   else alert('Сообщение отсутствует.');
}


//AJAX Анимация
//==========================================================================
function ShowWaitWindow(caption)
{
        CloseWaitWindow();
        var obWndSize = GetWindowSize();

        var div = document.body.appendChild(document.createElement("DIV"));
        div.id = "wait_window_div";
        div.innerHTML = caption;
        div.className = "waitwindow";
        div.style.left = obWndSize.scrollLeft + obWndSize.innerWidth/2 + "px";
        //div.style.right = (5 - obWndSize.scrollLeft) + 'px';
        div.style.top = obWndSize.scrollTop + (obWndSize.innerHeight/2-50) + "px";
}
function CloseWaitWindow()
{
        var frame = document.getElementById("wait_window_frame");
        if(frame)
                frame.parentNode.removeChild(frame);

        var div = document.getElementById("wait_window_div");
        if(div)
                div.parentNode.removeChild(div);
}
function ShowWaitBasket(divleft, divtop)
{
        if(divleft != 0) CloseWaitWindow();
        var obWndSize = GetWindowSize();
        var div = document.body.appendChild(document.createElement("DIV"));

        div.id = "wait_window_div";
        if(/MSIE (5\.5|6).+Win/.test(navigator.userAgent))  //из-за проблемы прозрачных png в ie6
             div.className = "waitbasket_ie6";
        else div.className = "waitbasket";
        if(divleft == 0){
           var beginleft = obWndSize.scrollLeft + obWndSize.innerWidth/2 + 400;
           var begintop = obWndSize.scrollTop + obWndSize.innerHeight/2 - 190;
           div.style.left = beginleft + "px";
           div.style.top = begintop + "px";
           divleft = beginleft;
           divtop = begintop;
        }
        else {
           divleft -= 20;
           divtop -= 3;
           div.style.left = divleft + "px";
           div.style.top = divtop + "px";
        }

        if((divleft < 110) || (divtop < 110)){ CloseWaitWindow();  }
        else {
           setTimeout('ShowWaitBasket('+divleft+', '+divtop+')', 20);
        }
}

//Облако тэгов
//=========================================================================
function trim(sInString){
   sInString = sInString.replace(/ /g," ");
   return sInString.replace(/(^\s+)|(\s+$)/g, "");
}
function CreateCloudTags(xmlText, stylefile)
{
  //alert(xmlText);
  var html = "";
  if(!xmlText) return html;

  if(stylefile) html += '<link href="'+stylefile+'" type="text/css" rel="stylesheet" />';
  html += '<span style="text-align: center; display: block; padding-bottom:10px;"><img src="/images_new/metki.png"></span>';
  html += '<div class="tags">';
  var TagWeights = {
        0: "tg0",
        1: "tg1",
        2: "tg2",
        3: "tg3",
        4: "tg4",
        5: "tg5",
        6: "tg6",
        7: "tg7",
        8: "tg8",
        9: "tg9",
        10: "tg10"
  }

  //Internet Explorer
  if(typeof window.ActiveXObject != 'undefined')
  {
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.loadXML(xmlText);
  }
  //Firefox, Mozilla, Opera, etc.
  else {
      var parser=new DOMParser();
      var xmlDoc=parser.parseFromString(xmlText,"text/xml");
  }

  var tags = xmlDoc.documentElement.childNodes;
  for(var i=0;i<tags.length;i++){
    tag = tags[i].childNodes;
    var tagid = ''; var tagtitle = ''; var taglink = ''; var tagfactor = '';
    for(var j=0;j<tag.length;j++){
        //alert(tag[j].firstChild.nodeValue);
        if(tag[j].nodeName == "id")       {  tagid = trim(tag[j].firstChild.nodeValue);     }
        if(tag[j].nodeName == "tagname")  {  tagtitle = tag[j].firstChild.nodeValue;  }
        if(tag[j].nodeName == "taglink")  {  taglink = trim(tag[j].firstChild.nodeValue);   }
        if(tag[j].nodeName == "tagfactor"){  tagfactor = trim(tag[j].firstChild.nodeValue); }
    }

    if(!TagWeights[tagfactor]) TagWeights[tagfactor] = 100;
    var linkprefix = '';
    html += '<a id="'+tagid+'" class="'+TagWeights[tagfactor]+'" title="'+tagtitle+'" href="'+taglink+linkprefix+'">'+tagtitle+'</a>';
    //if(tagfactor >= 5) html += '<wbr>';
  }

  html += '</div>';
  return html;
}


//панель товаров
//=========================================================================
function loadimg(ImP, chSep, ImgNames, ImgSrcs, ImgWsStr, ImgHsStr, ImgNP)
{
   //alert(ImgNames);
   var Imgs = ImgNames.split(chSep);
   var ImgSrs = ImgSrcs.split(chSep);
   var ImgWs = ImgWsStr.split(chSep);
   var ImgHs = ImgHsStr.split(chSep);
   for(var no=0; no<Imgs.length; no++){
     if(ImgNP) Imgs[no] = ImgNP + Imgs[no];
     if(Imgs[no] && ImgSrs[no]){
        document.images[Imgs[no]].src = ImP + ImgSrs[no];
        if(ImgWsStr && ImgHsStr){
                document.images[Imgs[no]].width = ImgWs[no];
                document.images[Imgs[no]].height = ImgHs[no];
        }
     }
   }
}

//проверка на отключение картинок
function check_img(){
 /*  if(!document.images['check_img'].complete){
   }  */
}


//добавляем в корзину несколько товаров  в разделе
//=====================================================================================
       function IsDigit(c) {
          if(c>0)
          { return 1;        }
          else { return 0;        }
       }
       function OnQuantity(checkbox_sale_name, quant_sale_num_name)
       {
         if(document.getElementById(quant_sale_num_name).value > 0)
           document.getElementById(checkbox_sale_name).checked = true;
         else
           document.getElementById(checkbox_sale_name).checked = false;
       }

       function OnQuantityTM(checkbox_sale_name, quant_sale_num_name)
       {
         if(document.getElementById(quant_sale_num_name).value > 0)
           document.getElementById(checkbox_sale_name).checked = true;
         else
           document.getElementById(checkbox_sale_name).checked = false;
       }

       function OnGoodCount(checkbox_sale_name, quant_sale_num_name)
       {
         if(document.getElementById(checkbox_sale_name)){
          if(!document.getElementById(checkbox_sale_name).checked)
            document.getElementById(quant_sale_num_name).value = '';
          else {
            document.getElementById(quant_sale_num_name).value = 1;
          }

          SendGood();
         }
       }

   function OnQuantCartPl(snipper, checkbox_sale_name, quant_sale_num_name)
   {
         if(snipper == 'plus'){
           document.getElementById(quant_sale_num_name).value++;
         }
         if(snipper == 'minus'){
          if(document.getElementById(quant_sale_num_name).value>0)
               document.getElementById(quant_sale_num_name).value -= 1;
         }
   }


//отображение наличия товаров
//====================================================================================
        function ShowExistGoods(bAll){
            if(!bSendingRequest){
                bSendingRequest = true;
                ShowWaitWindow("коррекция списка товаров");
                xmlDoc = CreateHttpRequest(processExistGoods);
                xmlDoc.open("GET", "/ajax/existgood.php?allgoods="+bAll, true);
                xmlDoc.send(null);
            }
        }
        function processExistGoods(){
              if(xmlDoc.readyState != 4) return;
              ClearXMLprocess(xmlDoc);

              if(xmlDoc.responseText)
                   alert(xmlDoc.responseText);
              else window.location.reload();
        }




//отображение div-панелей
//=============================================================================================
        var Effect = '';
        function CreateFormCall(ProductId, loginbox){
            if(!bSendingRequest){
                bSendingRequest = true;
                ShowWaitWindow("открытие формы");
                xmlDoc = CreateHttpRequest(processDivPanel);
                xmlDoc.open("GET", "/ajax/getdivpanel.php?panel_no="+loginbox+'&ProductId='+ProductId, true);
                xmlDoc.send(null);
            }
        }
        function processDivPanel(){
              if(xmlDoc.readyState != 4) return;
              ClearXMLprocess(xmlDoc);

              if(!xmlDoc.responseText) return;
              var BasketAnswer = unserialize(xmlDoc.responseText);
              var loginbox = BasketAnswer["LOGINBOX"];
              var ProductId = BasketAnswer["PRODUCT_ID"];
              document.getElementById("DivPanels").innerHTML = BasketAnswer["MESSAGE"];

              if(document.getElementById(loginbox)){
                Effect = document.createElement("div");
                init_effect(loginbox);
                Effect.style.display = "block";
                document.getElementById(loginbox).style.top = document.body.scrollTop+200;   //а можно и так

                if(loginbox == 'loginbox3'){
                    document.getElementById("errormess").value = SelectedText;
                    SelectedText = '';
                }

                if(document.getElementById("ProductId"))
                        document.getElementById("ProductId").value = ProductId;
                document.body.appendChild(document.getElementById(loginbox));
                document.getElementById(loginbox).style.display = "block";

                if(loginbox == 'loginbox'){ document.getElementById("tofriend_email").focus(); }
                if(loginbox == 'loginbox2'){ document.getElementById("from_email2").focus(); }
                if(loginbox == 'loginbox3'){ document.getElementById("from_email3").focus(); }
                if(loginbox == 'loginbox4'){ document.getElementById("from_email4").focus(); }
                if((loginbox == 'loginbox5') || (loginbox == 'loginbox7')){
                  if(document.getElementById("REVIEW_TEXT"))
                       document.getElementById("REVIEW_TEXT").focus();
                }
                if(loginbox == 'loginbox8'){ document.getElementById("goodcode").focus(); }
             }
        }
        function init_effect(loginbox){
           var scrollWidth = document.body.scrollWidth;
           var scrollHeight = document.body.scrollHeight;
           with (Effect.style){
                      width = scrollWidth;
                      height = scrollHeight;
                      top = 0;
                      left = 0;
                      opacity = 0.2;
                      filter = "alpha(opacity: 10)";
                      backgroundColor = "#cccccc";
                      position = "absolute";
                      display = "none";
                      id = "modalbox";
           }
           document.body.appendChild(Effect);
           with (document.getElementById(loginbox).style){
                left = Math.round(scrollWidth / 2) - 150;
                top = Math.round(document.body.clientHeight / 2) - 200;
           }
        }
        function close_win(loginbox){
                document.body.removeChild(Effect);
                document.body.removeChild(document.getElementById(loginbox));
                opac = 10;
        }

        var SelectedText = '';
        function GetSelectionText(){
                 if (typeof window.getSelection != "undefined") {
                       // Ветка для Gecko-браузеров (Mozilla)
                       var selection = window.getSelection();
                       if (selection.rangeCount < 1)
                         return;

                       var range = selection.getRangeAt(0);
                       SelectedText = range.toString();
                 }
                 // Ветка для IE
                 else {
                   /*
                          // создать объект TextRange на основе текущего выделения
                          var rng = document.selection.createRange();
                          // сделать выделение текущим
                          rng.select();
                          // достать выделенный текст
                          SelectedText = rng.text;
                   */
                 }
        }

        function SubmitDivPanel(loginbox){
            var formSuccess = false;
            var form = document.getElementById("divPanelForm");
            if(loginbox == "loginbox") formSuccess = ValidateToFriendForm(form);
            if(loginbox == "loginbox2") formSuccess = ValidateQuestForm(form);
            if(loginbox == "loginbox3") formSuccess = ValidateErrorForm(form);
            if(loginbox == "loginbox4") formSuccess = ValidateCallForm(form);
            if(loginbox == "loginbox6") formSuccess = ValidateZakazForm(form);
            if((loginbox == "loginbox5") || (loginbox == "loginbox7")) formSuccess = ValidateFormResponse(form);
            if(loginbox == "loginbox9") formSuccess = ValidateEstimateForm(form);
            if(loginbox == "loginbox10") formSuccess = ValidateBadPriceForm(form);
            if(loginbox == "loginbox11") formSuccess = ValidateZakazForm(form);
            if(loginbox == "loginbox12") formSuccess = ValidateZakazPhoneForm(form);

            if(formSuccess && !bSendingRequest){
                bSendingRequest = true;
                ShowWaitWindow("отправка сообщения");

                var params = '';
                var inputs = document.getElementById("divPanelForm").getElementsByTagName('input');
                var textareas = document.getElementById("divPanelForm").getElementsByTagName('textarea');
                for (var i = 0; i < inputs.length; i++){
                  var cbi = inputs.item(i);
                  if(cbi.type == 'radio'){
                      if(cbi.checked){
                        params += '&' + cbi.name + '=' + cbi.value;
                      }
                  }
                  else params += '&' + cbi.name + '=' + cbi.value;
                }
                for (var i = 0; i < textareas.length; i++){
                     var cbi = textareas.item(i);
                     params += '&' + cbi.name + '=' + cbi.value;
                }

                var selects = document.getElementById("divPanelForm").getElementsByTagName('select');
                for (var i = 0; i < selects.length; i++){
                     var cbi = selects.item(i);
                     if(cbi.selectedIndex > 0)
                        params += '&' + cbi.name + '=' + cbi.options[cbi.selectedIndex].value;
                }
                //alert(params); return;

                xmlDoc = CreateHttpRequest(processSubmitDivPanel);
                xmlDoc.open("POST", "/ajax/submitdivpanel.php?panel_no="+loginbox, true);
                xmlDoc.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlDoc.setRequestHeader("Content-length", params.length);
                xmlDoc.setRequestHeader("Connection", "close");
                xmlDoc.send(params);
            }
        }
        function processSubmitDivPanel(){
              if(xmlDoc.readyState != 4) return;
              ClearXMLprocess(xmlDoc);

              if(!xmlDoc.responseText) return;
              var BasketAnswer = unserialize(xmlDoc.responseText);
              var loginbox = BasketAnswer["LOGINBOX"];
              if(document.getElementById(loginbox)){
                if(BasketAnswer["ERROR_MESSAGE"]){
                     document.getElementById("sdivError").innerHTML = BasketAnswer["ERROR_MESSAGE"];
                     document.getElementById("img_captcha").src = '/bitrix/tools/captcha.php?captcha_code='+BasketAnswer["CAPTCHA_CODE"];
                     document.getElementById("divPanelForm").captcha_code.value = BasketAnswer["CAPTCHA_CODE"];
                }
                else {
                   document.getElementById("divPanelForm").style.display = "none";
                   document.getElementById("sdivError").innerHTML = '';
                   document.getElementById("sdivSuccess").innerHTML = BasketAnswer["MESSAGE"];
                   if(loginbox == "loginbox9"){
                     window.location = '/personal/order/';
                   }
                }
              }
        }

//проверка div-форм
//================================================================================
function check_FC_phone(){
     if(document.getElementById("depart").value == "dost_depart")
          document.getElementById("FC_phone").style.display = "";
     else document.getElementById("FC_phone").style.display = "none";
}
function isValidEmail (email, strict)
{
 if ( !strict ) email = email.replace(/^\s+|\s+$/g, '');
 return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}
function ValidateToFriendForm(form){
   if(!form.tofriend_email.value){
       alert('Введите e-mail друга.');
       return false;
   }
   if(!isValidEmail(form.tofriend_email.value)){
     alert("Неверный формат E-mail друга.");
     return false;
   }
   if(!form.from_email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.from_email.value)){
     alert("Неверный формат Вашего E-mail.");
     return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateToRegForm(form){
   if(!form.login.value){
       alert('Введите логин.');
       return false;
   }
   if(!form.password.value){
       alert('Введите пароль (не менее 6 символов).');
       return false;
   }
   if(!form.password_confirm.value){
       alert('Введите подтверждение пароля.');
       return false;
   }
   if(form.password.value.length < 6){
       alert('Пароль должен быть не менее 6 символов.');
       return false;
   }
   if(!form.email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.email.value)){
     alert("Неверный формат E-mail.");
     return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateQuestForm(form){
   if(!form.author.value){
       alert('Введите Ваше имя.');
       return false;
   }
   if(!form.from_email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.from_email.value)){
     alert("Неверный формат Вашего E-mail.");
     return false;
   }
   if(!form.question.value){
       alert('Введите вопрос.');
       return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateErrorForm(form){
   if(!form.author.value){
       alert('Введите Ваше имя.');
       return false;
   }
   if(!form.from_email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.from_email.value)){
     alert("Неверный формат Вашего E-mail.");
     return false;
   }
   if(!form.errormess.value){
       alert('Введите текст ошибки.');
       return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateCallForm(form){
   if(!form.depart.value){
       alert('Введите отдел, к которому относится сообщение.');
       return false;
   }
   if(!form.author.value){
       alert('Введите Ваше имя.');
       return false;
   }
   if((form.depart.value == 'dost_depart') && !form.phone.value){
       alert('Введите номер телефона.');
       return false;
   }
   if(!form.from_email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.from_email.value)){
     alert("Неверный формат Вашего E-mail.");
     return false;
   }
   if(!form.subject.value){
       alert('Введите тему сообщения.');
       return false;
   }
   if(!form.message.value){
       alert('Введите сообщение.');
       return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateZakazForm(form){
 if(!form.telephon_gorod.value && !form.telephon_nomer.value){
   if(!form.from_email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.from_email.value)){
     alert("Неверный формат Вашего E-mail.");
     return false;
   }
 }
 else
 {
   if(!form.telephon_gorod.value){
       alert('Не заполнен код города в поле "Телефон".');
       return false;
   }
   if(!form.telephon_nomer.value){
       alert('Не заполнено поле "Телефон".');
       return false;
   }
   var phone = '8' + '(' + form.telephon_gorod.value + ')' + form.telephon_nomer.value;
   var reg = /^[8][(]?\d{3}[)]?[-]?\d{3}[-]?\d{2}[-]?\d{2}$/i;
   if(!reg.test(phone)){
       alert('Неверный формат телефона. Необходимый формат - 8(***)*******.');
       return false;
   }
 }//if

   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateEstimateForm(form){
   var EstimValue = "";
   for(var i = 0; i < form.Estimation.length; i++) {
           if(form.Estimation[i].checked){
               EstimValue = form.Estimation[i].value;
           }
   }

   if(!EstimValue){
       alert('Поставьте оценку.');
       return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateOrderForm(form){
   var bregion_val = false;
   for(var i = 0; i < form.ORDER_PROP_DeliveryRegion.length; i++) {
     if(form.ORDER_PROP_DeliveryRegion[i].checked) bregion_val = true;
   }
   if(!bregion_val){
       alert('Не выбран регион доставки.');
       return false;
   }
   var reg = /Доставка невозможна/;
   if(reg.test(document.getElementById("sDELIVERY2").innerHTML)){
       alert('Доставка в данный регион невозможна.');
       return false;
   }

   if(!form.ORDER_PROP_FIO.value){
       alert('Не заполнено поле "ФИО".');
       return false;
   }
   if(!form.ORDER_PROP_telephon_gorod.value){
       alert('Не заполнен код города в поле "Телефон".');
       return false;
   }
   if(!form.ORDER_PROP_telephon_nomer.value){
       alert('Не заполнено поле "Телефон".');
       return false;
   }
   var phone = '8' + '(' + form.ORDER_PROP_telephon_gorod.value + ')' + form.ORDER_PROP_telephon_nomer.value;
   var reg = /^[8][(]?\d{3}[)]?[-]?\d{3}[-]?\d{2}[-]?\d{2}$/i;
   if(!reg.test(phone)){
       alert('Неверный формат телефона. Необходимый формат - 8(***)*******.');
       return false;
   }
   //if(!confirm('Ваш телефон: ' + phone + '. Продолжить?'))
   //    return false;

   //доп. информация
   var AddInfo = form.ORDER_DESCRIPTION.value;
   form.ORDER_DESCRIPTION.value = '';
   if(form.not_phone){
    if(form.not_phone.checked){
     if(!form.ORDER_PROP_email.value){
       alert('Не заполнено поле "Электронная почта".');
       return false;
     }
     form.ORDER_DESCRIPTION.value += 'Клиент согласен получить подтверждение по электронной почте; \n';
    }
   }

   if(getRadioValue(form.addressType) == 0){
      if(form.street.value || form.house.value || form.korpus.value || form.flat.value || form.housePart.value || form.floor.value)
          form.ORDER_DESCRIPTION.value += 'Домашний адрес: ';
      if(form.street.value)
          form.ORDER_DESCRIPTION.value += form.street.value+' - ';
      if(form.house.value)
          form.ORDER_DESCRIPTION.value += 'д: '+form.house.value+', ';
      if(form.korpus.value)
          form.ORDER_DESCRIPTION.value += 'корп: '+form.korpus.value+', ';
      if(form.flat.value)
          form.ORDER_DESCRIPTION.value += 'кв: '+form.flat.value+', ';
      if(form.housePart.value)
          form.ORDER_DESCRIPTION.value += 'под: '+form.housePart.value+', ';
      if(form.floor.value)
          form.ORDER_DESCRIPTION.value += 'эт: '+form.floor.value+', ';
      if(form.HouseManualCode.value)
          form.ORDER_DESCRIPTION.value += 'код: '+form.HouseManualCode.value+', ';
      if(form.HouseCode.value)
          form.ORDER_DESCRIPTION.value += 'д-н: '+form.HouseCode.value+', ';
      if(form.subway.value)
          form.ORDER_DESCRIPTION.value += 'Ближайшая станция метро: '+form.subway.value;
      if(form.ORDER_DESCRIPTION.value)
          form.ORDER_DESCRIPTION.value += '; \n';
   }
   else {
      if(form.street2.value || form.house.value || form.korpus.value || form.flat.value || form.housePart.value || form.floor.value)
          form.ORDER_DESCRIPTION.value += 'Рабочий адрес: ';
      if(form.street2.value)
          form.ORDER_DESCRIPTION.value += form.street2.value+' - ';
      if(form.house2.value)
          form.ORDER_DESCRIPTION.value += 'д: '+form.house2.value+', ';
      if(form.korpus2.value)
          form.ORDER_DESCRIPTION.value += 'корп: '+form.korpus2.value+', ';
      if(form.flat2.value)
          form.ORDER_DESCRIPTION.value += 'оф: '+form.flat2.value+', ';
      if(form.housePart2.value)
          form.ORDER_DESCRIPTION.value += 'под: '+form.housePart2.value+', ';
      if(form.floor2.value)
          form.ORDER_DESCRIPTION.value += 'эт: '+form.floor2.value+', ';
      if(form.HouseManualCode2.value)
          form.ORDER_DESCRIPTION.value += 'код: '+form.HouseManualCode2.value+', ';
      if(form.HouseCode2.value)
          form.ORDER_DESCRIPTION.value += 'д-н: '+form.HouseCode2.value+', ';
      if(form.firma.value)
          form.ORDER_DESCRIPTION.value += 'фирма: '+form.firma.value+', ';
      if(form.subway2.value)
          form.ORDER_DESCRIPTION.value += 'Ближайшая станция метро: '+form.subway2.value;
      if(form.ORDER_DESCRIPTION.value)
          form.ORDER_DESCRIPTION.value += '; \n';
   }

   if(form.whereShop){
      if(form.whereShop.value)
          form.ORDER_DESCRIPTION.value += 'Откуда узнали: '+form.whereShop.value+'; \n';
   }
   if(AddInfo)
          form.ORDER_DESCRIPTION.value += 'Примечание: '+AddInfo+'; \n';

   if(form.boxType){
     if(getRadioValue(form.boxType))
          form.ORDER_DESCRIPTION.value += 'Тип упаковки: '+getRadioValue(form.boxType)+'; \n';
   }


   ShowWaitWindow("Идет обработка заказа!<br>Если Вы не хотите ждать результата – <span OnClick='OrderProcClose()' style='cursor:pointer; color:blue;'>нажмите здесь</span>");
   Effect = document.createElement("div");
   with(Effect.style){
                      width = document.body.scrollWidth;
                      height = document.body.scrollHeight;
                      top = 0;
                      left = 0;
                      opacity = 0.2;
                      filter = "alpha(opacity: 10)";
                      backgroundColor = "#cccccc";
                      position = "absolute";
                      display = "none";
                      id = "modalbox";
   }
   document.body.appendChild(Effect);
   Effect.style.display = "block";
   return true;
}
function ValidateZakazPhoneForm(form){
   if(!form.author.value){
       alert('Не заполнено поле "Имя".');
       return false;
   }

   if(!form.telephon_gorod.value){
       alert('Не заполнен код города в поле "Телефон".');
       return false;
   }
   if(!form.telephon_nomer.value){
       alert('Не заполнено поле "Телефон".');
       return false;
   }
   var phone = '8' + '(' + form.telephon_gorod.value + ')' + form.telephon_nomer.value;
   var reg = /^[8][(]?\d{3}[)]?[-]?\d{3}[-]?\d{2}[-]?\d{2}$/i;
   if(!reg.test(phone)){
       alert('Неверный формат телефона. Необходимый формат - 8(***)*******.');
       return false;
   }

  /* if(!form.call_data.value){
       alert('Не заполнено поле "Дата звонка".');
       return false;
   }
   if(!form.call_time.value){
       alert('Не заполнено поле "Время звонка".');
       return false;
   }*/
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }

   return true;
}
function OrderProcClose(){
     //window.location = "/";
     window.location = "/personal/order/make/index.php?CurrentStep=7&uc=1";
     //window.location = "/test.php";
     //window.close();
}

function ValignForgetForm(form){
   if(!form.email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.email.value)){
     alert("Неверный формат Вашего E-mail.");
     return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function ValidateBadPriceForm(form){
   if(!form.bad_price.value){
       alert('Введите цену товара.');
       return false;
   }
   var reg = /^\d+$/i;
   if(!reg.test(form.bad_price.value)){
       alert('Цена товара должна содержать только цифры.');
       return false;
   }
   if(!form.other_sale.value){
       alert('Укажите магазин, где этот товар дешевле.');
       return false;
   }
   if(!form.from_email.value){
       alert('Введите Ваш e-mail.');
       return false;
   }
   if(!isValidEmail(form.from_email.value)){
     alert("Неверный формат Вашего E-mail.");
     return false;
   }
   if(!form.captcha_word.value){
       alert('Введите символы, указанные на картинке.');
       return false;
   }
   return true;
}
function check_ins_photo(form){
   if(!form.UserName.value){
       alert('Введите ФИО.');
       return false;
   }
   if(!form.Comment.value){
       alert('Введите комментарий.');
       return false;
   }
   if(!form.Img_file.value){
       alert('Введите название файла изображения.');
       return false;
   }
   return true;
}

//выбор рабочего адреса
//============================================
function dispWorkTab(){
   for(var i=1;i<=10;i++){
     eval('document.getElementById("tab_pers'+i+'").style.display = "none"');
     eval('document.getElementById("tab_work'+i+'").style.display = ""');
   }
}
function dispPersTab(){
   for(var i=1;i<=10;i++){
     eval('document.getElementById("tab_work'+i+'").style.display = "none"');
     eval('document.getElementById("tab_pers'+i+'").style.display = ""');
   }
}


//ComboBox для ТМ
//=========================================

function ComboTMs(SectIds, SectNames, chSep){
   var GroupBukvaCur = '';
   var IsSelect = false;
   var og = '';
   var Ids = SectIds.split(',');
   var options = SectNames.split(chSep);
   for(var no=0; no<options.length; no++){
         IdsSel = Ids[no].split(' ');
         if(IdsSel[1] == 'selected'){
              IsSelect = true;
              Ids[no] = IdsSel[0];
         }
         else IsSelect = false;

         GroupBukva = options[no].charAt(0).toUpperCase();
         //alert(GroupBukva);
         if(GroupBukva != GroupBukvaCur){
              if(og != '') document.getElementById("ComboBox_TMs").appendChild(og);
              GroupBukvaCur = GroupBukva;
              og = document.createElement('optgroup');
              og.setAttribute('label', GroupBukvaCur);
         }
         opt = document.createElement('option');
         opt.setAttribute('value', Ids[no]);
         if(IsSelect) opt.setAttribute('selected', true);
         txt = document.createTextNode(options[no]);
         opt.appendChild(txt);
         og.appendChild(opt);
   }
   if(og != '') document.getElementById("ComboBox_TMs").appendChild(og);
}

function TMSelected(add_url, SectName)
{
   var SectID = '';
   if(SectName != ''){ SectID = document.getElementById('TM_'+SectName).value;          }
   else {
      //обычный ComboBox
      SectID = document.getElementById("ComboBox_TMs").value;
   }
   if(SectID != ''){
     var loc = add_url + '/' + SectID + '/' + 'tm' + '/';
     //alert(loc);
     window.location = loc;
   }
}


//Подсказки в меню каталога
//=======================================================================================
var tooltip_attr_name = "tooltip";
var tooltip_attr_name_right = "tooltip-right"
var aLength;

 function addTootips(){
             if(document.getElementById('main-menu-table')){
                allElements = document.getElementById('main-menu-table').getElementsByTagName('a');
                aLength = allElements.length;
                if (document.createElement){
                        alt.create();

                }
             }
 }

 function getBounds(element) {
  var left = element.offsetLeft;
  var top = element.offsetTop;
  for (var parent = element.offsetParent; parent; parent = parent.offsetParent) {
    left += parent.offsetLeft;
    top += parent.offsetTop;
  }
  return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}

 alt = {
        tip: document.createElement("div"),
        top: document.createElement("div"),
        middle: document.createElement("div"),
        middle2: document.createElement("div"),
        bottom: document.createElement("div"),
        arrow: document.createElement("div"),
        c: null,
        visible: false,

        move: function(e) {
                if (alt.visible) {
                        alt.draw(curX, curY);
                }
        },

        create: function() {
                //tip create
                alt.tip.setAttribute("id", "tooltip-right");
                document.body.appendChild(alt.tip); //IE вылетает - поставить скрипт в элемент body !

                //top create
                alt.top.setAttribute("id", "tooltip-right-top");
                alt.tip.appendChild(alt.top);

                //tip create
                alt.middle2.setAttribute("id", "tooltip-right-middle2");
                alt.tip.appendChild(alt.middle2);
                alt.middle.setAttribute("id", "tooltip-right-middle");
                alt.middle2.appendChild(alt.middle);

                //tip create
                alt.bottom.setAttribute("id", "tooltip-right-bottom");
                alt.tip.appendChild(alt.bottom);

                //tip create
                alt.arrow.setAttribute("id", "tooltip-right-arrow");
                alt.tip.appendChild(alt.arrow);

                for (var i = 0; i < aLength; i++) {
                        if (allElements[i].getAttribute("mytitle")) {
                                allElements[i].setAttribute(tooltip_attr_name_right, allElements[i].getAttribute("mytitle"));
                                if (allElements[i].getAttribute(tooltip_attr_name_right)) {
                                        allElements[i].removeAttribute("mytitle");
                                        alt.addListener(allElements[i], "mouseover", alt.show);
                                        alt.addListener(allElements[i], "mouseout", alt.hide);
                                }
                        }
                }

                //document.onmousemove = alt.move;
                alt.tip.style.display = "none";
                alt.visible = false;

                window.onscroll = alt.hide;
                window.onresize = alt.hide;
        },

        show: function(e) {
                d = window.event ? window.event.srcElement : e.currentTarget;
                currentElement = d;
                if (!d.getAttribute(tooltip_attr_name_right))
                        return;
                if (alt.middle.firstChild)
                        alt.middle.removeChild(alt.middle.firstChild);
                //alt.middle.appendChild(document.createTextNode(d.getAttribute(tooltip_attr_name_right))); //плохо - не работает перевод строки
                alt.middle.innerHTML = d.getAttribute(tooltip_attr_name_right);

                position = getBounds(d);

                curX = position.left + position.width + 10;
                curY = position.top + position.height - 13 - 8;
                alt.visible = true;
                alt.c = setTimeout("alt.tip.style.display = 'block';", 0);
                setTimeout("alt.move()",0);
        },

        hide: function(e) {
                alt.tip.style.display = "none";
                clearTimeout(alt.c);
                alt.visible = false;
                alt.draw(-200, -200);
        },

        addListener: function(o, e, a) {
                if (o.addEventListener)
                        o.addEventListener(e, a, false);
                else if (o.attachEvent)
                        o.attachEvent("on" + e, a);
                else
                        return null;
        },

        draw: function(x, y) {
                alt.tip.style.left = x + "px";
                alt.tip.style.top = y + "px";
        }
}


//форумы
//===========================
function storeCaret(textEl)
{
        if (textEl.createTextRange)
                textEl.caretPos = document.selection.createRange().duplicate();
}

function ValidateFormResponse(form)
{
        MessageMax = 64000;
        MessageLength = form.REVIEW_TEXT.value.length;
        errors = "";
        if (MessageLength < 2) errors += "Нет сообщения";
        if (MessageMax != 0){
                if (MessageLength > MessageMax) errors += "Длина сообщения превышает допустимую (64 Кб)";
        }
        if (errors != ""){
                alert(errors);
                return false;
        }

        if(!form.REVIEW_EMAIL.value){
          alert('Введите Ваш E-mail.');
          return false;
        }
        if(!isValidEmail(form.REVIEW_EMAIL.value)){
          alert('E-mail имеет неправильный формат.');
          return false;
        }
        if(!form.MESS_TYPE.value){
          alert('Выберите тип сообщения (мнение или вопрос).');
          return false;
        }
        if(!form.captcha_word.value){
          alert('Введите символы, указанные на картинке.');
          return false;
        }

        return true;
}


//Личные данные
//========================================================
function removeElement(arr, sElement)
{
        var tmp = new Array();
        for (var i = 0; i<arr.length; i++) if (arr[i] != sElement) tmp[tmp.length] = arr[i];
        arr=null;
        arr=new Array();
        for (var i = 0; i<tmp.length; i++) arr[i] = tmp[i];
        tmp = null;
        return arr;
}

function SectionClick(id)
{
        var div = document.getElementById('user_div_'+id);
        if (div.className == "profile-block-hidden")
        {
                opened_sections[opened_sections.length]=id;
        }
        else
        {
                opened_sections = removeElement(opened_sections, id);
        }

        document.cookie = cookie_prefix + "_user_profile_open=" + opened_sections.join(",") + "; expires=Thu, 31 Dec 2020 23:59:59 GMT; path=/;";
        div.className = div.className == 'profile-block-hidden' ? 'profile-block-shown' : 'profile-block-hidden';
}



//библиотечные функции
//=======================================================================================================
function getRadioValue(radioObj) {
        if(!radioObj)
                return "";
        var radioLength = radioObj.length;
        if(radioLength == undefined)
                if(radioObj.checked)
                        return radioObj.value;
                else
                        return "";
        for(var i = 0; i < radioLength; i++) {
                if(radioObj[i].checked) {
                        return radioObj[i].value;
                }
        }
        return "";
}


var EventCache = function(){
        var listEvents = [];
        return {
                listEvents : listEvents,
                add : function(node, sEventName, fHandler){
                        listEvents.push(arguments);
                },
                flush : function(){
                        var i, item;
                        for(i = listEvents.length - 1; i >= 0; i = i - 1){
                                item = listEvents[i];
                                if(item[0].removeEventListener){
                                        item[0].removeEventListener(item[1], item[2], item[3]);
                                };
                                if(item[1].substring(0, 2) != "on"){
                                        item[1] = "on" + item[1];
                                };
                                if(item[0].detachEvent){
                                        item[0].detachEvent(item[1], item[2]);
                                };
                                item[0][item[1]] = null;
                        };
                }
        };
}();

function addEvent( obj, type, fn ) {
        if (obj.addEventListener) {
                //obj.addEventListener( type, fn, false );
                EventCache.add(obj, type, fn);
        }
        else if (obj.attachEvent) {
                obj["e"+type+fn] = fn;
                obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
                obj.attachEvent( "on"+type, obj[type+fn] );
                EventCache.add(obj, type, fn);
        }
        else {
                obj["on"+type] = obj["e"+type+fn];
        }
}

function IsIE(){
      return (document.attachEvent && !this.IsOpera());
}
function IsOpera(){
      return (navigator.userAgent.toLowerCase().indexOf('opera') != -1);
}
function GetWindowInnerSize(pDoc){
                var width, height;
                if (!pDoc)
                        pDoc = document;

                if (self.innerHeight) // all except Explorer
                {
                        width = self.innerWidth;
                        height = self.innerHeight;
                }
                else if (pDoc.documentElement && pDoc.documentElement.clientHeight) // Explorer 6 Strict Mode
                {
                        width = pDoc.documentElement.clientWidth;
                        height = pDoc.documentElement.clientHeight;
                }
                else if (pDoc.body) // other Explorers
                {
                        width = pDoc.body.clientWidth;
                        height = pDoc.body.clientHeight;
                }
                return {innerWidth : width, innerHeight : height};
}
function GetWindowScrollPos(pDoc){
                var left, top;
                if (!pDoc)
                        pDoc = document;

                if (self.pageYOffset) // all except Explorer
                {
                        left = self.pageXOffset;
                        top = self.pageYOffset;
                }
                else if (pDoc.documentElement && pDoc.documentElement.scrollTop) // Explorer 6 Strict
                {
                        left = document.documentElement.scrollLeft;
                        top = document.documentElement.scrollTop;
                }
                else if (pDoc.body) // all other Explorers
                {
                        left = pDoc.body.scrollLeft;
                        top = pDoc.body.scrollTop;
                }
                return {scrollLeft : left, scrollTop : top};
}
function GetWindowScrollSize(pDoc){
                var width, height;
                if (!pDoc)
                        pDoc = document;

                if ( (pDoc.compatMode && pDoc.compatMode == "CSS1Compat"))
                {
                        width = pDoc.documentElement.scrollWidth;
                        height = pDoc.documentElement.scrollHeight;
                }
                else
                {
                        if (pDoc.body.scrollHeight > pDoc.body.offsetHeight)
                                height = pDoc.body.scrollHeight;
                        else
                                height = pDoc.body.offsetHeight;

                        if (pDoc.body.scrollWidth > pDoc.body.offsetWidth ||
                                (pDoc.compatMode && pDoc.compatMode == "BackCompat") ||
                                (pDoc.documentElement && !pDoc.documentElement.clientWidth)
                        )
                                width = pDoc.body.scrollWidth;
                        else
                                width = pDoc.body.offsetWidth;
                }
                return {scrollWidth : width, scrollHeight : height};
}
function GetWindowSize(){
                var innerSize = GetWindowInnerSize();
                var scrollPos = GetWindowScrollPos();
                var scrollSize = GetWindowScrollSize();

                return  {
                        innerWidth : innerSize.innerWidth, innerHeight : innerSize.innerHeight,
                        scrollLeft : scrollPos.scrollLeft, scrollTop : scrollPos.scrollTop,
                        scrollWidth : scrollSize.scrollWidth, scrollHeight : scrollSize.scrollHeight
                };
}

var _timeout;
function CreateHttpRequest(process){
        if (typeof window.ActiveXObject != 'undefined' ) {
          try {
            xmlDoc = new ActiveXObject('Msxml2.XMLHTTP');
          }
          catch(e){
             try {
                 xmlDoc = new ActiveXObject('Microsoft.XMLHTTP');
             }
             catch(e2){
                 alert('Ошибка № ' + e2.number + ":\n" + e2.description);
                 return false;
             }
          }
          xmlDoc.onreadystatechange = process;
        }
        else {
          xmlDoc = new XMLHttpRequest();
          xmlDoc.onload = process;
        }
        _timeout = setTimeout(function(){
                      xmlDoc.abort();
                      bSendingRequest = false;
                      CloseWaitWindow();
                }, 30000); //в милисекундах

   return xmlDoc;
}
function ClearXMLprocess(xmlDoc){
   clearTimeout(_timeout);
   bSendingRequest = false;
   CloseWaitWindow();
}


function unserialize(data){
    var error = function (type, msg, filename, line){throw new this.window[type](msg, filename, line);};
    var read_until = function (data, offset, stopchr){
        var buf = [];
        var chr = data.slice(offset, offset + 1);
        var i = 2;
        while (chr != stopchr) {
            if ((i+offset) > data.length) {
                error('Error', 'Invalid');
            }
            buf.push(chr);
            chr = data.slice(offset + (i - 1),offset + i);
            i += 1;
        }
        return [buf.length, buf.join('')];
    };
    var read_chrs = function (data, offset, length){
        var buf;

        buf = [];
        for(var i = 0;i < length;i++){
            var chr = data.slice(offset + (i - 1),offset + i);
            buf.push(chr);
        }
        return [buf.length, buf.join('')];
    };
    var _unserialize = function (data, offset){
        var readdata;
        var readData;
        var chrs = 0;
        var ccount;
        var stringlength;
        var keyandchrs;
        var keys;

        if(!offset) {offset = 0;}
        var dtype = (data.slice(offset, offset + 1)).toLowerCase();

        var dataoffset = offset + 2;
        var typeconvert = new Function('x', 'return x');

        switch(dtype){
            case 'i':
                typeconvert = function (x) {return parseInt(x, 10);};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'b':
                typeconvert = function (x) {return parseInt(x, 10) == 1;};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'd':
                typeconvert = function (x) {return parseFloat(x);};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'n':
                readdata = null;
            break;
            case 's':
                ccount = read_until(data, dataoffset, ':');
                chrs = ccount[0];
                stringlength = ccount[1];
                dataoffset += chrs + 2;

                readData = read_chrs(data, dataoffset+1, parseInt(stringlength, 10));
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 2;
                if(chrs != parseInt(stringlength, 10) && chrs != readdata.length){
                    error('SyntaxError', 'String length mismatch');
                }
            break;
            case 'a':
                readdata = {};

                keyandchrs = read_until(data, dataoffset, ':');
                chrs = keyandchrs[0];
                keys = keyandchrs[1];
                dataoffset += chrs + 2;

                for(var i = 0;i < parseInt(keys, 10);i++){
                    var kprops = _unserialize(data, dataoffset);
                    var kchrs = kprops[1];
                    var key = kprops[2];
                    dataoffset += kchrs;

                    var vprops = _unserialize(data, dataoffset);
                    var vchrs = vprops[1];
                    var value = vprops[2];
                    dataoffset += vchrs;

                    readdata[key] = value;
                }

                dataoffset += 1;
            break;
            default:
                error('SyntaxError', 'Unknown / Unhandled data type(s): ' + dtype);
            break;
        }
        return [dtype, dataoffset - offset, typeconvert(readdata)];
    };
    return _unserialize(data, 0)[2];
}
function getTagsNames(){
  var res=new Array();
  var tmp=null;
  for(var a=0;a<arguments.length;a++){
    tmp=document.getElementsByTagName(arguments[a]);
    for(var t=0;t<tmp.length;t++)
      res.push(tmp[t]);
  }
  return res;
}

function Go(loc){
   window.location = loc;
}
function ChangeReviewAuthor(){
     if(document.getElementById("REVIEW_AUTHOR").value == "--впишите Ваше имя--")
            document.getElementById("REVIEW_AUTHOR").value = "";
}

function Ul(span){
        span.style.textDecoration = "underline";
}
function nUl(span){
        span.style.textDecoration = "";
}

function CreateBookmarkLink(url, title){
  xmlDoc = CreateHttpRequest(processBookmark);
  xmlDoc.open("GET", "/ajax/bookmark.php?url="+window.location, true);
  xmlDoc.send(null);

  if (window.sidebar){ // Mozilla Firefox Bookmark
       window.sidebar.addPanel(title, url,"");
  }
  else if(window.external){ // IE Favorite, Google Chrome
      if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1)
           alert("Нажмите CTRL-D, чтобы добавить страницу в закладки.");
      else window.external.AddFavorite(url, title);
  }
  else if(window.opera && window.print){ // Opera Hotlist
    alert("Нажмите CTRL-D, чтобы добавить страницу в закладки.");
    return true;
  }
  else alert("Нажмите CTRL-D, чтобы добавить страницу в закладки.");
}
function processBookmark(){
    if(xmlDoc.readyState != 4) return;
    ClearXMLprocess(xmlDoc);
}

function sel_region(radioObj, calctype){
 var radioObjs = document.getElementsByName(radioObj.name);
 var radioObjValue = "";
 for(var i = 0; i < radioObjs.length; i++) {
           if(radioObjs[i].checked){
               radioObjValue = radioObjs[i].value;
           }
 }

 if(radioObjValue == 'Oblast')
      document.getElementById('tr_way_ot_MKAD').style.display = '';
 else document.getElementById('tr_way_ot_MKAD').style.display = 'none';

 SendGood(calctype);
}


function tel_gorod(InputCtrl, event){
  //alert(event.keyCode);
  if(event.keyCode != 8){ //это нажатие backspace
   if(InputCtrl.value.length == InputCtrl.maxLength){
    var InputCtrlName = InputCtrl.name;
    var InputNomerName = InputCtrlName.replace("_gorod", "");
    InputNomerName = InputNomerName + '_nomer';
    document.getElementById(InputNomerName).focus();
   }
  }
}


function show_smaller_disc(Disc_all_count, Disc_visible_count){
   with(document){
      getElementById('td_disc_arrow_right').style.display = '';

      var Num_begin = 0;
      for(var i = Disc_all_count-1; i > 0; i--){
        if(getElementById('td_disc_'+i).style.display == ''){
          getElementById('td_disc_'+i).style.display = 'none';
          getElementById('td_discpr_'+i).style.display = 'none';
          Num_begin = i;
        }
      }

      var Num_begin2 = Num_begin-1-Disc_visible_count;
      if(Num_begin2 < 0) Num_begin2 = -1;

      for(var j = Num_begin-1; j > Num_begin2; j--){
         getElementById('td_disc_'+j).style.display = '';
         getElementById('td_discpr_'+j).style.display = '';
      }

      if(Num_begin2 == -1)
         getElementById('td_disc_arrow_left').style.display = 'none';

      var DiscTDVisibleCount = 0;
      for(var i = 0; i < Disc_all_count; i++){
         if(getElementById('td_disc_'+i).style.display == '')
                    DiscTDVisibleCount++;
      }
      getElementById('td_dischelp').colSpan = DiscTDVisibleCount+3;
   }
}

function show_bigger_disc(Disc_all_count, Disc_visible_count){
   with(document){
      getElementById('td_disc_arrow_left').style.display = '';

      var Num_end = 0;
      for(var i = 0; i < Disc_all_count-1; i++){
        if(getElementById('td_disc_'+i).style.display == ''){
          getElementById('td_disc_'+i).style.display = 'none';
          getElementById('td_discpr_'+i).style.display = 'none';
          Num_end = i;
        }
      }

      var Num_end2 = Num_end+1+Disc_visible_count;
      var Num_end3 = 0;
      for(var j = Num_end+1; j < Num_end2; j++){
         if(getElementById('td_disc_'+j)){
            getElementById('td_disc_'+j).style.display = '';
            getElementById('td_discpr_'+j).style.display = '';
            Num_end3 = j;
         }
         else break;
      }

      if(Num_end3 == (Disc_all_count-1))
         getElementById('td_disc_arrow_right').style.display = 'none';

      var DiscTDVisibleCount = 0;
      for(var i = 0; i < Disc_all_count; i++){
         if(getElementById('td_disc_'+i).style.display == '')
                    DiscTDVisibleCount++;
      }
      getElementById('td_dischelp').colSpan = DiscTDVisibleCount+3;
   }
}


//Опережающий ввод для полей формы
//==============================================================================
var sDefVal = '--Набрать--';

function ForwardInit(inputCtrl){
   if(inputCtrl.value == sDefVal)
         inputCtrl.value = '';
}

function ForwardSend(inputCtrl, event, action, selFieldname, sess_id){
  if(!event) event = window.event;
  //alert(String.fromCharCode(event.keyCode)); return;

  if(String.fromCharCode(event.keyCode) == '('){ //это нажатие стрелки вниз
    document.getElementById(selFieldname).focus();
    //document.getElementById(selFieldname).options[0].selected = true;
  }
  else {
    var params = '';
    params += '&' + inputCtrl.name + '=' + encodeURI(inputCtrl.value);
    params += '&fieldname=' + inputCtrl.name;
    params += '&selFieldname=' + selFieldname;
    params += '&sess_id=' + sess_id;
    //alert(params);

    //ShowWaitWindow("построение списка");
    xmlDoc = CreateHttpRequest(process_ws);
    xmlDoc.open("GET", "/ajax/ajaxws.php?action="+action+params, true);
    xmlDoc.send(null);
  }
}

function ForwardSend2(inputCtrl, event, action, selFieldname){
  if(!event) event = window.event;
  //alert(String.fromCharCode(event.keyCode)); return;

  if(String.fromCharCode(event.keyCode) == '('){ //это нажатие стрелки вниз
    document.getElementById(selFieldname).focus();
   // document.getElementById(selFieldname).options[0].selected = true;
  }
}

function process_ws() {
   if(xmlDoc.readyState != 4) return;
   ClearXMLprocess(xmlDoc);

   //alert(xmlDoc.responseText[0]); //если не работает, то проблема в ajaxobs.php
   if(!xmlDoc.responseText) return;
   var FormAnswer = unserialize(xmlDoc.responseText);

   if(FormAnswer["ACTION"]){
       var SelectCtrl = document.getElementById(FormAnswer["SELFIELD_ID"]);
       while(SelectCtrl.length > 0)
             SelectCtrl.remove(SelectCtrl.length - 1);
       SelectCtrl.style.display = 'none';

       //alert(xmlDoc.responseText);
       if(FormAnswer["VARIANTS"] && FormAnswer["SELECT_CTRL_SIZE"] > 0){
         SelectCtrl.size = FormAnswer["SELECT_CTRL_SIZE"];
         var i = 0;
         while(FormAnswer["VARIANTS"][i]){
             Opt = new Option(FormAnswer["VARIANTS"][i]["NAME"], FormAnswer["VARIANTS"][i]["ID"]);
             if(IsIE())
                  SelectCtrl.add(Opt);
             else SelectCtrl.add(Opt, null);
             i++;
         }

         //добавляем многоточие
         if(FormAnswer["SELECT_CTRL_SIZE"] == 20){
             SelectCtrl.size = FormAnswer["SELECT_CTRL_SIZE"] + 1;
             Opt = new Option("\u00A0 \u00A0 \u00A0 \u00A0 \u00A0 ...", "...");
             if(IsIE())
                  SelectCtrl.add(Opt);
             else SelectCtrl.add(Opt, null);
         }
         SelectCtrl.style.display = '';

       }
   }
}

function ForwardSelId(SelectCtrl, inputFieldName){
  if(SelectCtrl.options[SelectCtrl.selectedIndex].value != '...'){
     document.getElementById(inputFieldName).value = SelectCtrl.options[SelectCtrl.selectedIndex].text;
     document.getElementById(inputFieldName+"_validate").value = 'Y';
  }
  else SelectCtrl.selectedIndex--;
}

function ForwardEnter(SelectCtrl, event, inputFieldName){
   //alert(String.fromCharCode(event.keyCode)); return;

   if(event.keyCode == 13){  //Enter
      document.getElementById(inputFieldName).value = SelectCtrl.options[SelectCtrl.selectedIndex].text;
      document.getElementById(inputFieldName+"_validate").value = 'Y';
      SelectCtrl.style.display = 'none';
      document.getElementById(inputFieldName).focus();

      bFormIsSubmit = true;
   }

 /*  if(String.fromCharCode(event.keyCode) == '&'){  //это нажатие стрелки вверх
      if(SelectCtrl.selectedIndex == 0)
           document.getElementById(inputFieldName).focus();
   } */
}

function MouseClick(SelectCtrl, event, inputFieldName){
      document.getElementById(inputFieldName).value = SelectCtrl.options[SelectCtrl.selectedIndex].text;
      document.getElementById(inputFieldName+"_validate").value = 'Y';
      SelectCtrl.style.display = 'none';
      document.getElementById(inputFieldName).focus();
}
