   function chvisible(table_id,parent_id,button)
   {
          var table = document.getElementById(table_id);
          var i = 0;
          var stat_changed = false;
          for(i = 0; i < table.rows.length; i++)
          {
                 var id_str = table.rows[i].id;
                 var exp = new RegExp("^"+parent_id+":([0-9]+)$");
                 var child_id = exp.exec(id_str);
                 if(id_str.match(exp))
                 {
                         if(!stat_changed && table.rows[i].style.display == "none")
                         {
                                 button.className = 'expanded';
                                 stat_changed = true;
                         }
                         else if(!stat_changed)
                         {
                                 button.className = 'collapsed';
                                 stat_changed = true;
                         }

                         var ch_id = child_id[1];
                         var subbutton = document.getElementById(ch_id+"button");

                         if(table.rows[i].style.display == "none")
                         {
                                 table.rows[i].style.display = "block";
                         }
                         else
                         {
                                 table.rows[i].style.display = "none";
                                 if(!subbutton.disabled)
                                 {
                                          subbutton.className = "collapsed";
                                          subbutton.value = "+";
                                 }
                                 close(table_id,ch_id);
                         }
                 }
          }
   }

   function close(table_id,parent_id)
   {
          var table = document.getElementById(table_id);
          var j = 0;
          for(j = 0; j < table.rows.length; j++)
          {
                 var id_str = table.rows[j].id;
                 var exp = new RegExp("^"+parent_id+":([0-9]+)$");
                 var child_id = exp.exec(id_str);
                 if(id_str.match(exp))
                 {
                        button = document.getElementById(child_id[1]+"button");
                        if(!button.disabled)
                        {
                                   button.className = 'collapsed';
                                   button.value = "+";
                        }
                        table.rows[j].style.display = "none";
                        if(child_id != null){ close(table_id,child_id[1]); }
                 }
          }
   }

   function translate(from_id,to_id)
   {
         obj_from = document.getElementById(from_id);
         obj_to = document.getElementById(to_id);
         if(obj_to.readOnly == true) obj_to.value = obj_from.value;
   }

   function disable(id)
   {
           obj = document.getElementById(id);
           obj.readOnly = true;
           obj.style.color = "#CCCCCC";
           obj_main = document.getElementById('main');
           obj.value = obj_main.value;
   }

   function enable(id)
   {
           obj = document.getElementById(id);
           obj.readOnly = false;
           obj.style.color = "#000000";
           obj.value = "";
   }

   function checkFill(formId)
   {
           var form = document.getElementById(formId);
           var falt = false;
           if(old_part = document.getElementById("old_part")) var old_part_id = old_part.value;
           for(i = 0; i < form.elements.length; i++)
           {
                   if(form.elements[i].id=="url" && form.elements[i].readOnly != true)
                   {
                           var url_pattern = new RegExp("^[a-z0-9_\-]+$","i");
                           if(url_pattern.exec(form.elements[i].value));
                           else
                           {
                                   alert("В url должны быть только латинские буквы, цифры, _ и - ");
                                   return false;
                           }
                           if(!checkSimilar(formId,form.elements[i].value, old_part_id))
                           {
                                   alert("В данном разделе уже есть подраздел с таким названием в URL");
                                   return false;
                           }
                   }
                   else if(form.elements[i].id=="main")
                   {
                           if(form.elements[i].value != "");
                           else
                           {
                                   alert("Название раздела не должно быть пустым");
                                   return false;
                           }
                   }
           }

           if(!falt) return true;
   }

   function checkSimilar(formId,url_name, old_part_id)
   {
           var form = document.getElementById(formId);
           var part_list = document.getElementById("select_part");
           var selected_part = part_list.options[part_list.selectedIndex];
           var url_fields_id_pattern = new RegExp("^([0-9]+)url$");
           var need_check_part = true;
           for(i = 0; i < form.elements.length; i++)
           {
                   if(form.elements[i].id == selected_part.value+"url")
                   {
                           var selected_url = form.elements[i].value;
                           //alert(selected_url);
                           if(old_part_id != null && (selected_part.value == old_part_id)) need_check_part = false;
                   }
           }
           if(need_check_part)
                   for(i = 0; i < form.elements.length; i++)
                   {
                           if(url_fields_id_pattern.exec(form.elements[i].id))
                           {
                                   if(form.elements[i].value == selected_url+url_name+"/") return false;
                           }
                   }
           if(need_check_part && formId == "edit")
           {
                   if(confirm("вы уверены, что хотите перенести этот подраздел в другой раздел?")) return true;
                   else return false;
           }
           return true;
   }

   function applyStyleToForms(form,tag,class_name,attribute,condition)
   {

   }
   
   function is_filled(name)
   {
           obj = document.getElementsByName(name)[0];
           if(!obj){ alert('объекта с именем '+name+' не существует'); return false; }
           if(obj.value == '') return false;
           else return true;
   }

   function is_mail(name)
   {
           obj = document.getElementsByName(name)[0];
           if(!obj){ alert('объекта с именем '+name+' не существует'); return false; }
           var mail_format = new RegExp("^[a-z0-9\-_\.]+@[a-z0-9\-_\.]+[\.](ru|com|net|org|biz|su|name|info|gs|eu|in|ws|cn|mobi|aero|us|be|it|cc|tv)$","i");
           if(mail_format.test(obj.value)) return true;
           else return false;
   }
