function ChangeCount(Sender) {

  /*var SumCost = 0;
  
  $H(Price).each(function (e) {

    if( $(e.key).value
        && parseInt($(e.key).value)
        && e.value
        && parseFloat(e.value) )
      SumCost += parseInt($(e.key).value) * parseFloat(e.value);

  });

  $("SumCost").innerHTML = SumCost;*/
  
  //SetValue( Sender.name , Sender.value, 'string');
  
  if($(("cost-"+Sender.id)).innerHTML == "заказ")
    return;
    
  var result = 0;
  var price = $(("cost-"+Sender.id)).innerHTML.replace(',', '.').replace(' ', '');

  $(("price-"+Sender.id)).innerHTML = number_format(Sender.value * price, 0, '', ' ');
  
  $$(".price").each(function(e){
    if(e.innerHTML != "заказ")
      result += parseInt(e.innerHTML.replace(/[^0-9|\.|,]/gi, ""));
  });
  
  $("SumCost").update(number_format(result, 0, '', ' '));
}

function RemoveGood(Id){

  var table = $("row-"+Id).up();
   
  if(confirm("Вы уверены, что хотите удалить данную позицию из заказа?")){
    
    $(Id).value = 0; 
    ChangeCount($(Id));
    
    if($("row-"+Id) && $("row-"+Id).parentNode ){
      $("row-"+Id).parentNode.removeChild($("row-"+Id));
    }
    SetValue("Goods["+Id+"]", "", 'string');
    SetValue("CSVBask["+Id+"]", "", 'string');
    
    var count = 0;
    
    $$('table.basket-table tr.goods-row-0, table.basket-table tr.goods-row-1').each(function(e){
    
      e.className = 'goods-row-'+((count++)%2);
    });
  }

  for(var i = 0, count = 0; i < table.childNodes.length; i++){
    if(table.childNodes.item(i).tagName == 'TR')
      count++;
  }
  
  if(count <= 2){
    alert("Ваша корзина заказов пуста! Выберите необходимы Вам товары в каталоге.");
    location.href = '/catalog/';
  }
    
  return false;
}

function SetValue(Key, Value, Type) {
  var Request = null;
  if( window.XMLHttpRequest )
    Request = new XMLHttpRequest();
  else if( window.ActiveXObject )
    Request = new ActiveXObject('MsXml2.XmlHttp');
  if( Request ) {
    Request.open('get', '/setvalue.html?Type='+Type+'&Key='+Key+'&Value='+Value+'&Active='+Math.random(), true);
    Request.send(null);
  }
}


function UpCount(Obj) {

  if( $(Obj).value >= 0 )
    $(Obj).value++;
  else
    $(Obj).value = 0;
}

function DownCount(Obj) {

  if( $(Obj).value > 0 )
    $(Obj).value--;
  else
    $(Obj).value = 0;
}

function number_format(number, decimal, dec_point, th_sep){
	number = Math.round(number * Math.pow(10, decimal)) / Math.pow(10, decimal);
	str_number = number + '';
	arr_int = str_number.split('.');

	if(!arr_int[0]) arr_int[0] = '0';
	if(!arr_int[1]) arr_int[1] = '';
	if(arr_int[1].length < decimal)
	{
		nachkomma = arr_int[1];

		for(i = arr_int[1].length + 1; i <= decimal; i++)
		{
			nachkomma += '0';
		}

	        arr_int[1] = nachkomma;
	}

	if(th_sep != '' && arr_int[0].length > 3)
	{

		Begriff = arr_int[0];
		arr_int[0] = '';

		for(j = 3; j < Begriff.length ; j += 3)
		{

			Extrakt = Begriff.slice(Begriff.length - j, Begriff.length - j + 3);
			arr_int[0] = th_sep + Extrakt +  arr_int[0] + '';

	        }

		str_first = Begriff.substr(0, (Begriff.length % 3 == 0) ? 3 : (Begriff.length % 3));
	        arr_int[0] = str_first + arr_int[0];
	}

	return arr_int[0] + dec_point + arr_int[1];
}

function ShowGoodPreview(Id, Action){

  if(Action == 1){
   $("good-img-"+Id).setStyle({'display': 'block'});
  }
  else{
   $("good-img-"+Id).setStyle({'display': 'none'});
  }
} 

function ClickModeHowTo(Link, ID) {

  $(ID).style.display = "";
  $("know-more").style.display = "none";

  return false;
}

function ClickNextHowTo(Link, ID) {

  $(ID).style.display = "none";
  $("know-more").style.display = "";

  var url = "/json/";
  var pars = "random=" + Math.round(Math.random() * 1000000) + "&Name=random_know";
  
  //window.status = pars; //"Data load...";
  
  var myAjax = new Ajax.Request (
    url, 
    {
     method: 'get',
     parameters: pars,
     asynchronous: true,
     onComplete: knowResponse,
     onFailure: knowFailure
    }
  );

  return false;
}

function knowFailure(originalRequest) {

  window.status = "Loading error: " + originalRequest.statusText;
}

function knowResponse(originalRequest) {

  //window.status = new Number(originalRequest.responseText.length/1024).toFixed(2) + " Kb loaded.";
  
  // переменная - поток данных
  var random_know;

  //alert(originalRequest.responseText);
  try {
    eval(originalRequest.responseText);
  }
  catch(e) {
    window.status = "Ошибка: " + e.description;
    //alert(originalRequest.responseText);
  }

  $("know-caption").innerHTML = random_know.Know["Caption"];
  $("know-content").innerHTML = random_know.Know["Content"];
  $("know-more").href = random_know.Know["Path"];
  $("know-next").href = random_know.Know["Path"];
}
  

function CountCompare() {

  var oForm = $("GoodsForm");
  var aItems = Form.getElements(oForm);
  var iCount = 0;

  for(var i in aItems ) {

    if( typeof aItems[i] == "function"
        || (!aItems[i].id && !aItems[i].name)
        || aItems[i].type != "checkbox" )
      continue;

     re = /^(\w+)\[(\d+)\]$/
     aRegs = re.exec(aItems[i].id);

     if( aRegs[1] != "Compare"
         || !aItems[i].checked )
       continue;

     iCount++;
  }

  return iCount;
}

function Add2Compare(oCheckBox) {

  if( CountCompare() > 5 ) {

    alert("Можно выбрать не более 5 (пять) товаров для сравнения!");
    return false;
  }

  SetValue(oCheckBox.id, oCheckBox.checked, 'bool');

  return true;
}

function SubmitCompare() {

  /*if( CountCompare() < 2 ) {

    alert("Нужно выбрать не менее 2-х товаров для сравнения!");
    return false;
  }*/

  location.href = "?compare";
  return true;
}

var IsFirst = true;

function PlaceGroupe(Tick) {

  var Size = 6;

  Groupes.length = 0;
  
  // посчитаем кол-во "числовых" свойств, исходя из того, что они идут подряд
  for(var i in Groupes) {

    if( !i.match(/\d+/)
        || !Groupes[i]
        || typeof Groupes[i] == "function" )
      continue;

    Groupes.length++;
  }

  if( Index < 0
      || Index >= Groupes.length ) {
    Index = 0;
    IsFirst = false;
  }

  // по кучкам - сколько будет в каждом койкоместе
  var CountInPlace = Math.ceil(Groupes.length / Size);

  if( Index
      && !(Index % CountInPlace)
      && Index < Groupes.length-1
      && IsFirst )
    Index++;
  
  var I = Math.floor(Index / CountInPlace);

  // сквозная волна по группе на место
  //var I = Math.ceil(Index % Size);
  window.status = "Группа: " + Index + " на место №" + I;

  if( Tick <= 0 )
    $("g" + I + "_i").style.filter = "alpha(opacity=" + (Tick*25+100) + ")";

  if( Tick > 0 )
    $("g" + I + "_i").style.filter = "alpha(opacity=" + (100-Tick*10) + ")";

  //window.status = "Группа: " + Index + ", " + $("g" + I + "_i").style.filter;

  if( typeof Tick == "undefined"
      || Tick >= 10 ) {
    Tick = 0;
  }
  else {

    setTimeout("PlaceGroupe(" + (Tick+1) + ");", Tick <= 5 ? 100 : 300);
    return;
  }

  $("g" + I + "_c").innerHTML = Groupes[Index].C;
  $("g" + I + "_i").src = Groupes[Index].I;
  $("g" + I + "_i").width = Groupes[Index].W;
  $("g" + I + "_i").height = Groupes[Index].H;
  $("g" + I + "_i").style.filter = "";

  Index++;

  //if( Tick == 0 )
  //  setTimeout("PlaceGroupe(" + (Tick+1) + ");", 50);
  //else
    setTimeout("PlaceGroupe(" + (Tick+1) + ");", 2000);
}


function LoadContent(HRef) {

  //alert(HRef);
  
  var url = HRef;
  var pars = 'JSON=1&' + Math.random();
  
  //window.status = "Data load...";
  
  var myAjax = new Ajax.Request (
    url, 
    {
     method: 'get',
     parameters: pars,
     onComplete: showResponse,
     onFailure: showFailure
    }
  );
  
  return false;
}

function showFailure(originalRequest) {

  //window.status = "Loading error: " + originalRequest.statusText;
}

function showResponse(originalRequest) {

  //window.status = new Number(originalRequest.responseText.length/1024).toFixed(2) + " Kb loaded.";
  
  $("groupe-content").innerHTML = originalRequest.responseText;

  //eval(originalRequest.responseText);
  
  //window.status = new Number(originalRequest.responseText.length/1024).toFixed(2) + " Kb placed.";
}
  

function ClickNode(Node) {

  var oNode = $("node" + Node);
  var oA = $("a" + Node);

  if( oNode.style.display == "" ) {
    oNode.style.display = "none";
    oA.innerHTML = "<img width=9 height=9 src='/i/design/+.gif' border=0 style='padding-right: 6px;'>";
  }
  else {
    oNode.style.display = "";
    oA.innerHTML = "<img width=9 height=9 src='/i/design/-.gif' border=0 style='padding-right: 6px;'>";
  }

  //LoadContent(oA.href);
}

function ClickGroupe(Node) {

  var oA = $("a" + Node);

  LoadContent(oA.href);
}

function BuildNode(Id, Node, Level, Path) {

  if( typeof Level == "undefined" )
    Level = 0;

  // если узел не нужно показать Раскрытым - по умолчанию скрыть
  var Style = "";

  if( !Node["O"]
      && !Groupe["root"]["A"] )
    Style += "display: none;";

  var HTML = "<div class=level-" + Level + " id=node" + Id + " style='padding-left: "+ (10*(Level?1:0)) + "px; padding-bottom: 5px;" + Style + "'>\n";

  for(var i in Node["I"] ) {

    if( typeof Node["I"][i] == "function" )
      continue;

    var Style = "padding-bottom: 5px;";
    var Class = "sheet";

    // если это текущий узел - показать его особо
    if( CurrentNode.toLowerCase() == Node["I"][i]["P"].toLowerCase() ) {
      Style += "margin: 5px 0px; padding: 5px 0px;";
      Class = "current-node";
    }

    // это Группа с товарами - кликается и указано кол-во товара
    if( Node["I"][i]["C"] ) {

      Style += "padding-left: 15px; ";
      HTML += "<div style='" + Style + "' class='" + Class + "'><a class='" + Class + "' href='/" + Groupe["root"]["P"] + "/" + Node["I"][i]["P"] + "/'>" + Node["I"][i]["N"] + "</a>&nbsp;<b>(" + Node["I"][i]["C"] + ")</b></div>";
    }
    
    // это группа, но нет товаров и детей
    else if( !Node["I"][i]["I"] ) {

      Style += "padding-left: 15px; ";
      HTML += "<div style='" + Style + "' class='" + Class + "'>";

      // понять - есть ли описание: либо это ссылка, либо нет
      if( Node["I"][i]["D"] )
        HTML += "<a class=sheet href='/" + Groupe["root"]["P"] + "/" + Node["I"][i]["P"] + "/'>" + Node["I"][i]["N"] + "</a>";
      else
        HTML += "<span class='" + Class + "'>" + Node["I"][i]["N"] + "</span>";

      HTML += "</div>";
    }

    // это узел с ветками: показать + и всё такое
    else {

      // понять - есть ли описание: либо это ссылка, либо нет
      HTML += "<div style='" + Style + "' class='" + Class + "'><a href='/" + Groupe["root"]["P"] + "/" + Node["I"][i]["P"] + "/' id='a" + i + "' onclick='ClickNode(" + i + "); return false;'><img width=9 height=9 src='/i/design/" + (Node["I"][i]["O"] || Groupe["root"]["A"]?"-":"+") + ".gif' border=0 style='padding-right: 6px;'></a>";

      // понять - есть ли описание: либо это ссылка, либо нет
      if( Node["I"][i]["D"] )
        //HTML += "<a class=node onclick='ClickGroupe(" + i + "); return false;' href='/" + Groupe["root"]["P"] + "/" + Node["I"][i]["P"] + "/'>" + Node["I"][i]["N"] + "</a>";
        HTML += "<a class=node href='/" + Groupe["root"]["P"] + "/" + Node["I"][i]["P"] + "/'>" + Node["I"][i]["N"] + "</a>";
      else
        HTML += "<span class='" + Class + "'>" + Node["I"][i]["N"] + "</span>";

      HTML += "</div>";
    }

    // если у учередного Узла нет Детей, то не входим даже внутрь
    if( Node["I"][i]["I"] )
      HTML += BuildNode(i, Node["I"][i], Level + 1, Path + "/" + Node["I"][i]["P"]);
  }

  HTML += "</div>\n";

  return HTML;
}

function BuildTree(Groupe) {

  var HTML = BuildNode("root", Groupe["root"], 0, "/catalog");

  HTML += "<div id=goods-count>ВСЕГО: " + Math.floor(Groupe["root"]["C"]) + " ед. продукции</div>";

  $("groupe-tree").innerHTML = HTML;
  //$("log").value = HTML;
}


/*function $(ID) {

  return document.getElementById(ID);
}*/


function FindFirst( Select ) {

 var Text = String.fromCharCode(window.event.keyCode);
 FindValue(Text, Select, 2);
}

function FindValue( Text, Select, Type ) {

 var iValue = "";
 var str = Text;

 if( str != "" ) {

  for( i = 0; i < Select.options.length; i++ ) {
   iValue = Select.options[i].text;

   if( Type == 1
       && Select.options[i].value != 0
       && iValue.toLowerCase().indexOf(str.toLowerCase()) != -1 ) {
    Select.options[i].selected = true;
    break;
   }

   if( Type == 2
       && Select.options[i].value != 0
       && iValue.substring(0, str.length).toLowerCase() == str.toLowerCase() ) {
    Select.options[i].selected = true;
    break;
   }
  }

  if( i == Select.options.length )
   window.status = "Не найдено: " + str;
  else
   window.status = str + " - можете выбрать...";

 }
}

function hideItem(id)
{
 document.getElementById(id).style.display = "none";
 document.getElementById("i"+id).src = '/i/+.gif';
}

function showItem(id)
{
 o = document.getElementById(id).style;
 if(o.display == "none")
  document.getElementById('i'+id).src = '/i/-.gif';
 else
  document.getElementById('i'+id).src = '/i/+.gif';
 o.display = (o.display == "none") ? "" : "none";
 return false;
}

function CheckEmpty2(VarName,Msg,Value) {
  if (Value>0)
   return true;
  if(IsEmpty(VarName)) { alert(Msg); GoToField(VarName);return false;}
  return true;
}

function CheckEmpty(VarName,Msg) {
  if(IsEmpty(VarName)) { alert(Msg); GoToField(VarName);return false;}
  return true;
}

function GoToField(VarName) {

    eval("vr=document."+VarName+";");
    if(IsEmpty(VarName))
          vr.value=' ';
    vr.focus();
    vr.select();
}

function IsEmpty(VarName){

  eval("txt=document."+VarName+".value;");
  tst=true;
    if (txt!='')
      for(i=0;i< txt.length;i++)
      {
       code = txt.charCodeAt(i);
       if((code != 32 )&&(code != 13)&&(code!=10))
        {
          tst=false;
          break;
        }
      }
  return(tst);
}

function submitMailForm(){

 if($("email").hasClassName("not-valid-email")){
   alert("Поле \"Email\" должно иметь верное значение!");
   return false;
 }

 if ( CheckEmpty("ask_form.message", "Введите сообщение!") )
  if ( CheckEmpty("ask_form.author", "Представьтесь, пожалуйста!") )
   if ( CheckEmpty("ask_form.email", "введите Ваш email!") )
    return true;
    
 return false;
}

function submitUserForm() {

 if($("email").hasClassName("not-valid-email")){
   alert("Поле \"Email\" должно иметь верное значение!");
   return false;
 }

 if ( CheckEmpty("UserForm.Category", "Введите форму собственности!") )
  if ( CheckEmpty("UserForm.FullName", "Введите название предприятия!") )
   if ( CheckEmpty("UserForm.TypeActivity", "Введите профиль деятельности!") )
    if ( CheckEmpty("UserForm.Department", "Введите подразделения!") )
     if ( CheckEmpty("UserForm.AddressZip", "Введите индекс!") )
      if ( CheckEmpty2("UserForm.AddressRegion", "Введите регион!", UserForm.Region.value) )
       if ( CheckEmpty2("UserForm.AddressCity", "Введите город!", UserForm.City.value) )
        if ( CheckEmpty("UserForm.AddressStreetAndFlat", "Введите улицу!") )
         if ( CheckEmpty("UserForm.AddressHouse", "Введите дом!") )
          if ( CheckEmpty("UserForm.PhoneZip1", "Введите код города!") )
           if ( CheckEmpty("UserForm.Phone1", "Введите телефон!") )
            if ( CheckEmpty("UserForm.FaxZip", "Введите код города!") )
             if ( CheckEmpty("UserForm.Fax", "Введите номер факса!") )
              if ( CheckEmpty("UserForm.ContactFamily", "Введите фамилию!") )
               if ( CheckEmpty("UserForm.ContactFirstName", "Введите имя!") )
                if ( CheckEmpty("UserForm.ContactLastName", "Введите отчество!") )
                 if ( CheckEmpty("UserForm.ContactPost", "Введите должность!") )
                  if ( CheckEmpty("UserForm.EMail", "Введите e-mail!") )
 //                  if ( CheckEmpty("UserForm.InfoSources", "Введите источник получения информации!") )
                    if ( CheckEmpty("UserForm.LoginName", "Введите логин!") )
                     if ( CheckEmpty("UserForm.Password", "Введите пароль!") )
                      if ( CheckEmpty("UserForm.PasswordRetype", "Введите пароль!") )
                        if ( CheckEmpty("UserForm.Code", "Введите защитный код!") )
                         return true;


 return false;
}

function openCatalog(){
 var sArr = new Array();
 sArr = idList.split(',');
 for(i=0; i<sArr.length; i++){
  if (fClick == 1)
   if (document.getElementById(sArr[i]).style.display == 'none')
    showItem(sArr[i]);
  if (fClick == 0)
   if (document.getElementById(sArr[i]).style.display != 'none')
    hideItem(sArr[i]);

 }
}

function listClick(){
 if(fClick){ 
   fClick = 0;
   document.getElementById('list').innerText='Раскрыть список';
 }else{
   fClick = 1;
   document.getElementById('list').innerText='Свернуть список';
 }
}

function CheckBasketForm(){
 if ( CheckEmpty("BasketForm.fio", "Представьтесь, пожалуйста!") )
  if ( CheckEmpty("BasketForm.tel", "Введите Ваш телефон!") )
   if ( CheckEmpty("BasketForm.email", "Введите Ваш email!") )
    if ( CheckEmpty("BasketForm.delivery", "Укажите способ доставки!") )
     return true;
 return false;
}
