 //---tree open / close---
 function setHeight(elemID,setmy)
 {
  AA=document.getElementById(elemID);
  newH=AA.style.height.substring(0,AA.style.height.length-2);

  if(setmy == 'close'){newH=newH-5;}
  if(setmy == 'open') {newH=parseInt(newH) +5;}

  if(newH <= 0)
  {   AA.style.height='1px';
   document.getElementById('mz_white_tree_opened').value='0';
  }
  else
  if(newH < AA.scrollHeight+10)
  {
   AA.style.height=newH+'px';
   setTimeout("setHeight('"+elemID+"','"+setmy+"')",10);
  }
  else
  {   document.getElementById('mz_white_tree_opened').value='0';
  }
 }



 function OpenCloseDochTree(TreeID)
 {
  AA=document.getElementById(TreeID);
  if(AA.style.height != '1px')
  {
   setHeight(TreeID,'close');
  }
  else
  {
   setHeight(TreeID,'open');
  }
 }



 function OpenCloseMainTree(TreeID)
 {
  AA=document.getElementById(TreeID);
  if(AA.style.height != '1px')
  {
   setHeight(TreeID,'close');
  }
  else
  {
   LastOpenedID=document.getElementById('mz_main_tree_opened_id');
   if(LastOpenedID.value.length>0)
   {setHeight(LastOpenedID.value,'close');}
   LastOpenedID.value=TreeID;
   setHeight(TreeID,'open');
  }
 }



 function closeMainPanel()
 {  AA=document.getElementById('mz_main_tree_opened_id');
  if(AA.value.length > 0)
  {   setHeight(AA.value,'close');  } }



 function OpenPathTree(TreeID)
 {
  arr_die = Array();
  arr_die[0]=TreeID;

  for(ii=1;ii < 10;ii++)
  {
   AA=document.getElementById(TreeID);
   arr_die[ii]=AA.getAttribute('mzParent');
   if(AA.getAttribute('mzParent') == 'mz_accordion_0')
   { break; }
   TreeID=AA.getAttribute('mzParent');
  }
  for(ii=arr_die.length-2;ii>0;ii--)
  {    if(ii == arr_die.length-2)
    {     OMO=document.getElementById('mz_main_tree_opened_id').value;     if(OMO.length > 0 && arr_die[ii] != OMO){setHeight(OMO,'close');}
     document.getElementById('mz_main_tree_opened_id').value = arr_die[ii];
    }
    setHeight(arr_die[ii],'open');  }
 }



 function GetBigMainParent(TreeID)
 {  arr_die = Array();
  arr_die[0]=TreeID;

  for(ii=1;ii < 10;ii++)
  {
   AA=document.getElementById(TreeID);
   arr_die[ii]=AA.getAttribute('mzParent');
   if(AA.getAttribute('mzParent') == 'mz_accordion_0')
   { break; }
   TreeID=AA.getAttribute('mzParent');
  }

  for(ii=0;ii<arr_die.length-1;ii++)
  {
   if(ii==arr_die.length-2)
   {    NormalizeHeight(arr_die[ii]);
   }
  } }



 function CloseOldDochMenu(TreeID)
 {  AA=document.getElementById(TreeID);
  ThisTreeParId=AA.getAttribute('mzParent');
  oldOpenID=document.getElementById('mz_doch_tree_opened_id');
  PredTreeid=oldOpenID.value;
  if(ThisTreeParId != PredTreeid && PredTreeid.length > 0){ setHeight(PredTreeid,'close'); }
  oldOpenID.value=TreeID; }



function closeOldMainTree(myID)
 {
  for(ii=1;ii < 20;ii++)
  {
   AA=document.getElementById(myID);
   if(AA.getAttribute('mzParent') == 'mz_accordion_0')
   {
    if(document.getElementById('mz_main_tree_opened_id').value != myID)
    {     OpenCloseMainTree(myID);
     //document.getElementById(myID).style.height=getInnerHeight(myID)+'px';
    }
    break;
   }
   myID=AA.getAttribute('mzParent');
  }
 }



 //---tree open / close---
 function NormalizeHeight(elemID)
 {
  AA=document.getElementById(elemID);
  oldH=AA.style.height.substring(0,AA.style.height.length-2);
  yesH=getInnerHeight(elemID);

  if(oldH == yesH) {newH=oldH;}
  if(oldH > yesH)  {newH=oldH-1;}
  if(oldH < yesH)  {newH=parseInt(oldH)+1;}

  if(newH <= 1)
  {
   AA.style.height='1px';
  }

  if(newH < yesH-1 || newH > yesH+1)
  {
   AA.style.height=newH+'px';
   setTimeout("NormalizeHeight('"+elemID+"')",10);
  }
  else{AA.style.height=(parseInt(newH)+10)+'px';}
 }








 //---tree open / close---
 function setHeight_norm(elemID,setmy)
 {
  AA=document.getElementById(elemID);
  newH=AA.style.height.substring(0,AA.style.height.length-2);

  if(setmy == 'close'){newH=newH-5;}
  if(setmy == 'open') {newH=parseInt(newH) +5;}

  if(newH <= 0)
  {
   AA.style.height='1px';
   document.getElementById('mz_white_tree_opened').value='0';
  }
  else
  if(newH < getInnerHeight(elemID)+10)
  {
   AA.style.height=newH+'px';
   setTimeout("setHeight_norm('"+elemID+"','"+setmy+"')",10);
  }
  else
  {
   document.getElementById('mz_white_tree_opened').value='0';
  }
 }



 function OpenPathTree_norm(TreeID)
 {
  FM_ID=TreeID;

  //--Снять выделение у предыущего открытого пункта
   AA=document.getElementById('mz_doch_tree_opened_id').value;
   if(AA.length>0)
   {    document.getElementById(AA+'_a').style.color='#003A68';
   }
  //--------------------------------

  //--закрыть прежде открытое главное меню, {если оно не главным будет}
  myID=TreeID;
  BB=document.getElementById('mz_main_tree_opened_id').value;
  for(ii=1;ii < 20;ii++)
  {
   AA=document.getElementById(myID);
   if(AA.getAttribute('mzParent') == 'mz_accordion_0')
   {
    if(BB == myID)
    {
     document.getElementById(myID).style.height=getInnerHeight(myID)+'px';
    }
    else
    {
     if(BB.length>0)
     {      document.getElementById(BB).style.height='1px';
     }
    }
    break;
   }
   myID=AA.getAttribute('mzParent');
  }
  //-------------------------------------------------------------------


  //--закрыть преждеоткрытое подменю
  AA=document.getElementById(TreeID);
  ThisParentID=AA.getAttribute('mzParent');
  PredTreeID=document.getElementById('mz_doch_tree_opened_id').value;
  if(ThisParentID != PredTreeID && PredTreeID != TreeID  && PredTreeID.length > 0)
  {
   document.getElementById(PredTreeID).style.height='1px';
   //document.getElementById(PredTreeID+'_a').style.color='';
  }
  document.getElementById('mz_doch_tree_opened_id').value=TreeID;
  //-------------------------


  //---открыть или закрыть текущую ветку
  // OpenCloseDochTree(TreeID);
  thisTree=document.getElementById(TreeID);
  if(thisTree.style.height == '1px')
  {
   //alert('H='+thisTree.scrollHeight);
   if(thisTree.scrollHeight>15)
   {thisTree.style.height=thisTree.scrollHeight+'px';}
   else
   {thisTree.style.height='4px';}
   //setHeight_norm(TreeID,'open');
  }
  else
  {
   thisTree.style.height='1px';
   //setHeight_norm(TreeID,'close');
  }
  //------------------------------------



  //--полоска подчеркивания меню
  //AA=document.getElementById(TreeID);
  //if(AA.getAttribute('mzParent') != 'mz_accordion_0')
  //{if(ii==1){AA.innerHTML='<img src="/main/tree.jpg" style="height:1px; width:100px; margin-top:1px; vertical-align:top;" />';}}

  //--открыть весь путь
  for(ii=1;ii < 20;ii++)
  {
   AA=document.getElementById(TreeID);

   if(AA.getAttribute('mzParent') == 'mz_accordion_0')
   {    //--пере открыть главный пункт меню (для FFX)
    BB=document.getElementById(TreeID);
    BB.style.height=getInnerHeight(TreeID)+'px';
    AA=document.getElementById('mz_main_tree_opened_id');
    AA.value=TreeID;
    //BB.style.height = '10px';
    //---------------------------------
    break;
   }
   TreeID=AA.getAttribute('mzParent');
   //NormalizeHeight(TreeID);
   AA.style.height=getInnerHeight(AA.id)+'px';
  }
  //-------------------


  document.getElementById(FM_ID+'_a').style.color='#008040';

 }



//--отдаёт высоту контента в компоненте--
function getInnerHeight(TreeID)
{ AA=document.getElementById(TreeID);
 BB=document.getElementById('mz_buf_tree_heigtheter');
 BB.innerHTML=AA.innerHTML;
 CC=BB.scrollHeight;
 CC=CC-getHBrouser();
 if(CC<15){CC=2;}
 return CC;}



//--определяет браузер и создаёт коэффициент--
function getHBrouser()
{
 var ua = navigator.userAgent.toLowerCase();
 // Определим Internet Explorer
 if (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1) { return "0"; }
 // Opera
 if (ua.indexOf("opera") != -1) { return "17"; }
 // Gecko = Mozilla + Firefox + Netscape
 if (ua.indexOf("gecko") != -1) { return "0"; }
 // Safari, используется в MAC OS
 if (ua.indexOf("safari") != -1) { return "0"; }
 // Konqueror, используется в UNIX-системах
 if (ua.indexOf("konqueror") != -1) { return "0"; }
 return "0";
}
