$(document).ready(function() {

   initSelectForm = function(idName, idForm, flagActionForm, returnFieldName, arrayCatOk) {
      flagActionForm = flagActionForm || 0;
      returnFieldName = returnFieldName || "";
      arrayCatOk = arrayCatOk || null;
      
      var objDiv = $("#"+idName).parent().find(".selectDiv");
      
      var flagMulti = objDiv.hasClass("multi");
      if (returnFieldName == "") {
         returnFieldName = objDiv.find(":input:hidden").attr("name");
      }

      if (flagMulti) {
         getCheckedValues(idName, objDiv, returnFieldName);
      }
      
      
      
      objDiv.find(".close").click(function(){
         clickFunction(this);
      });
      
      $("#"+idName).click(function(){
         clickFunction(this);
      });
      
      var clickFunction = function(obj) {
         $(".selectDiv").not(objDiv).css({display: "none"});
         if ($(obj).hasClass("close")) {
            objDiv.slideUp(100);
         } else {
            objDiv.slideToggle();
         }
         
      }
      
         
      $("li A", objDiv).click(function() {
         var idTmp = $(this).attr("param_id");
         if (arrayCatOk != null) {
            if (!arrayCatOk[idTmp]) {
               alert("Данная рубрика не конечная, необходимо выбрать рубрику самого нижнего уровня");
               return false;
            }
            
         }
         setSelectName(idName, $(this).attr("title"));
         if (flagActionForm == 1) {
            $("#"+idForm).attr("action", $(this).attr("href"));
         } 
         if (returnFieldName != "") {
            if ($(this).parents(".region-body-item").size() > 0) {
               var classTmp = $(this).parents(".region-body-item").attr("class");
               var mas = classTmp.match(/region-body-([0-9]+)/);
               $("#"+idForm+" input[name='"+returnFieldName+"']").val(mas[1]+"="+idTmp);
            } else {
               $("#"+idForm+" input[name='"+returnFieldName+"']").val(idTmp);
            }
         }

         objDiv.slideUp(100);
         
         if (arrayCatOk != null) {
            setVisibleElements(arrayCatOk, idTmp);
         }
         
         $("li A", objDiv).removeClass("active");
         $(this).addClass("active");
         
         return false;
      });
      

      if (flagMulti) {
      $("div.funcLinks A", objDiv).click(function(){
         var flag = $(this).attr("act") == "yes" ? "checked" : "";
         $(objDiv).find(".region-body-item:visible :checkbox").attr({checked: flag});
         return false;
      });
      
      $("div.funcButton button", objDiv).click(function(){
         getCheckedValues(idName, objDiv, returnFieldName);
         return false;
         
      });
      }
      
      
   }
   

   getCheckedValues = function(idName, objDiv, returnFieldName) {
      var returnValue = "";
      var returnNames = "";
      var objField = $(objDiv).parents("form:first").find("input[name='"+returnFieldName+"']");
      $(objDiv).find(".region-body-item").each(function(){
         var obj = this;
         var mas = $(obj).attr("class").match(/region-body-([0-9]+)/);
         var index = 0;
         
         $(":checked", obj).each(function(){
            if (index == 0) {
               returnValue += (returnValue != "" ? ";" : "") + mas[1]+"=";
            }
            returnNames += (returnNames != "" ? ", " : "") + $(this).parent("label").text();
            returnValue += (index != 0 ? "," : "") + $(this).val();
            index ++; 
         });
         
      })
      if (objField.attr("p_tit_any") == undefined) {
         objField.attr("p_tit_any", "Не имеет значения");
      }
      returnNames = returnNames == "" ? "<em>"+objField.attr("p_tit_any") +"</em>" : returnNames;
      if (returnNames != "" && $(":checkbox:not(:checked)", objDiv).length == 0) {
         returnNames = "<em>"+objField.attr("p_tit_any")+"</em>";
         returnValue = "0";
      }
      
      if (returnFieldName != "") {
         objField.val(returnValue);
      }
      
      if ($.browser.msie && !window.XMLHttpRequest) {
         objDiv.css("display", "none");
      } else {
         objDiv.slideUp(100);   
      }
      $("#"+idName).html(""+returnNames);
   
   }
   
   
   provSubmitCategory = function(idForm) {
      if ($("#"+idForm).attr("action") == "") {
         alert("Не выбрана категория для поиска");
         return false;
      }
      return true;
   }
   
   setVisibleElements = function(arrayCatOk, idTmp) {
      //Открытие панели доп. параметров в зависимости от типа рубрики
      var objectsVisible = $(".for-type_1, .for-type_2, .for-type_21, .for-type_3");
      if (idTmp == 0) {
         objectsVisible.each(function(){$(this).css({"display" : "none"});});
         return;
      }
      var typeTmp = arrayCatOk[idTmp].type;
      objectsVisible.not(".for-type_"+typeTmp).css({"display" : "none"});
      $(".for-type_"+typeTmp).css("display", "");
          
      
      if (arrayCatOk[idTmp].mnogo) {
         $(".for_mnogo").css({display : "block"});
      } else {
         $(".for_mnogo").css({display : "none"});
      }
      
      return typeTmp;
   }
   
   setSelectName = function(idName, title) {
      $("#"+idName).html(title);
   }
   
   
   showRegionsType = function(obj, idRegion) {
      var parentForm = $(obj).parents(".selectDiv");
      var regionsHead = parentForm.find(".regions-head");
      var regionsBody = parentForm.find(".regions-body");
      
      regionsHead.find("li").removeClass("active").filter(".region-head-li-"+idRegion).addClass("active");
      regionsBody.find(".region-body-item").not(".region-body-"+idRegion).css({"display" : "none"});
      regionsBody.find(".region-body-"+idRegion).css({"display" : "block"});
   }
   
   
   
   
});
