// JavaScript Document   дерево каталога

// делает слой невидимым
function close_layer(layer,event)
{
 var lay=document.getElementById(layer);
 lay.style.visibility="hidden";
}

// делает слой видимым, позиционирует возле мыши или возле обьекта id, layer - id слоя
function show_layer(layer,id,event)
{ 
 var iL,iT,scrL,scrT,clW,clH,LW,LH,lay;
 var delta_y=5;delta_x=5;
 
 if(id){
   if(!document.getElementById(id)){return false;}   
   var arr=get_xy(id); 
   iL=arr[0]; iT=arr[1];
  }else{ 
   if(!event) return false;  
   // позиционируем подсказку рядом с курсором мыши    
   iL = event.clientX;	iT = event.clientY;      
  }
 
 lay=document.getElementById(layer);
 
 if(event){
   scrL=document.body.scrollLeft; scrT=document.body.scrollTop;
   clW=document.body.clientWidth; clH=document.body.clientHeight;
   LW=lay.offsetWidth; LH=lay.offsetHeight;
      
   if((LW+iL+10)>clW || (LH+iT+10)>clH){
    if((LW+iL+10)>clW){ k_x=LW+iL+10-clW; lay.style.left=scrL+iL+10-k_x; }else{ lay.style.left=scrL+iL+10; }
    if((LH+iT+10)>clH){ k_y=LH+iT+10-clH; lay.style.top=scrT+iT-LH-10; }else{ lay.style.top=scrT+iT+10; }     
   }else{ 
    lay.style.left=scrL+iL+10; lay.style.top=scrT+iT+10; 
   }
 }else{ 
  lay.style.top=iT+delta_y; lay.style.left=iL+delta_x;
 }
     
 lay.style.visibility="visible";   
}

function show_helpmodels(e){ 
 showhelper(0,'helpmodels','<img src="/images/ajax-loader.gif" width="56" height="21" border=0 >',0,0,4500,e); 
}

// всплывающая подсказка: 
// id - обьекта возле которого нужно отобразить подсказку,
// если id==0 то тогда подсказка позиционируется около курсора мыши 
// helper - id слоя подсказки (обьект подсказки) , text - содержание подсказки 
function showhelper(id,helper,text,delta_x,delta_y,sec,event)
{ 
 var iL,iT;
  if(id!=0){
   var bp=document.getElementById(id);
   if(!bp){return false;}   
   var arr=get_xy(id); 
   iL=arr[0]; iT=arr[1];
  }else{ 
   if(!event) return false;     
   
   // позиционируем подсказку рядом с курсором мыши    
   iL = event.clientX;	iT = event.clientY;      
  } 
  
  
  var layer=helper;
  var lay=document.getElementById(layer);
  
  if(lay==undefined){   
   lay=document.createElement("DIV");
   var text_item=document.createTextNode("");
   lay.setAttribute("id", layer);    
   lay.style.position="absolute";
   
   lay.style.backgroundColor="#FFFFCC";
   lay.style.borderWidth="1px";
   lay.style.borderStyle="solid";
   lay.style.borderColor="#000000";    
   
   lay.style.fontFamily="Tahoma";
   lay.style.fontSize="11px";
   lay.style.padding="5 5 5 5";   
   lay.style.vAlign="middle";
   lay.style.zIndex=5;
   lay.appendChild(text_item); document.body.appendChild(lay); lay=document.getElementById(layer);   
  } 
  
  
   if(event){
   
    var scrL,scrT,clW,clH,LW,LH;
    scrL=document.body.scrollLeft; scrT=document.body.scrollTop;
    clW=document.body.clientWidth; clH=document.body.clientHeight;
    LW=lay.offsetWidth; LH=lay.offsetHeight;
    
    if((LW+iL+10)>clW || (LH+iT+10)>clH){
     if((LW+iL+10)>clW){ k_x=LW+iL+10-clW; lay.style.left=scrL+iL+10-k_x; }else{ lay.style.left=scrL+iL+10; }
     if((LH+iT+10)>clH){ k_y=LH+iT+10-clH; lay.style.top=scrT+iT-LH-10; }else{ lay.style.top=scrT+iT+10; }     
    }else{ 
     lay.style.left=scrL+iL+10; lay.style.top=scrT+iT+10; 
    }
     
   }else{
    lay.style.top=iT+delta_y; lay.style.left=iL+delta_x;    
   }
   
   lay.innerHTML=text;   
   lay.style.visibility="visible";   
  
  // убрать подсказку через sec секунд , если sec > 1000
  sec=new Number(sec);
  if(sec>1000){
   var str="var lay=document.getElementById('"+layer+"');";
   str+="lay.style.visibility='hidden';";   
   setTimeout(str,sec);
  }
  
}

// подгружает форму поиска по характеристикам
function get_bigsearchfrm(id,ind,url){
 open_ttx(); 
 //var url='index.php?ttop=120083&bigsearch='+id;
 document.getElementById('treettx').innerHTML="Загрузка...<img src=\"/images/ajax-loader.gif\" align=\"absmiddle\">";
  
  if(!req){alert("Браузер не поддерживает передачу данных при помощи JavaScript!");close_ttx();}
  if(!(req.readyState == 0 || req.readyState == 4))
  {alert("Невозможно соединиться с сервером, повторите попытку чуть позже!");close_ttx();}
  else{
   try{
    if(req.readyState == 4){req.abort();}
    req.onreadystatechange = function(){
    if(req.readyState == 4){
     if(req.status == 200){      
      document.getElementById('treettx').innerHTML=req.responseText;             
     }else{alert("Не удалось получить данные:\n" + req.statusText);close_ttx();}
    }
   }
    req.open("GET", url, true);
    req.send(null);
   }
   catch(e){alert("Невозможно соединиться с сервером:\n" + e.toString());close_ttx();}
  }
}

function resize_ttx(){
 var lay=document.getElementById('container2');
 if(lay.style.visibility=='visible'){
  var arr=get_xy('treettx_href'); var arr2=get_xy('anonse');
  lay.style.top=arr[1];
  lay.style.left=arr2[0];
  SetCookie('openttx',lay.style.left+'~'+lay.style.top);
 }
}

function open_ttx(){
 document.getElementById('container2').style.visibility='visible';
 document.getElementById('container2').style.position='static';
 SetCookie('openttx','1',null,'/'); 
}

function close_ttx(){
 DeleteCookie('openttx','/');
 DeleteCookie('ttxval','/');
 DeleteCookie('ttxzagls','/');
 
 // рисунки в дереве скрываем  -  глюк такой во всех броузерах
 var tree=document.getElementById('treettx');
 var arr=Array('div'); 
 for(var j=0;j<arr.length;j++){ 
  var img_items=tree.getElementsByTagName(arr[j]); 
  if(img_items.length>0){
   var str="";
   for(i=0;i<img_items.length;i++){
    if(img_items[i].style.display=="block"){
     img_items[i].style.display="";
    }
    
    if(img_items[i].style.visibility=="visible"){
     img_items[i].style.visibility="";
    }         
   }
  } 
 } 
 
 // скрываем основной слой
 var lay=document.getElementById('container2');
 lay.style.visibility='hidden';
 lay.style.position='absolute';
}

function close_div(){

 DeleteCookie('opencat','/'); 
 
 // скрываем ссылку развернуть свернуть
 var lay=document.getElementById('treecatalltn');
 if(lay.style.display=="block"){ lay.style.display=""; }
 if(lay.style.visibility=="visible"){ lay.style.visibility=""; } 
 
 // скрываем основной слой
 var lay=document.getElementById('container1');
 lay.style.visibility='hidden';
 
 // рисунки в дереве скрываем  -  глюк такой во всех броузерах
 var tree=document.getElementById('tree');
 var arr=Array('img','div'); 
 for(var j=0;j<arr.length;j++){ 
  var img_items=tree.getElementsByTagName(arr[j]); 
  if(img_items.length>0){
   var str="";
   for(i=0;i<img_items.length;i++){
    if(img_items[i].style.display=="block"){
     img_items[i].style.display="";
    }
    
    if(img_items[i].style.visibility=="visible"){
     img_items[i].style.visibility="";
    }         
   }
  } 
 } 
}

function resize_div(){
 var lay=document.getElementById('container1');
 if(lay.style.visibility=='visible'){
  var arr=get_xy('treecat_href'); var arr2=get_xy('anonse');
  lay.style.top=arr[1]; 
  lay.style.left=arr2[0]; 
  SetCookie('opencat',lay.style.left+'~'+lay.style.top);
 }  
}

function open_div(){ 
 var lay=document.getElementById('container1'); 
 var arr=get_xy('treecat_href'); 
 lay.style.top=arr[1]; var arr2=get_xy('anonse');
 lay.style.left=arr2[0]; 
 lay.style.visibility='visible';
 SetCookie('opencat',lay.style.left+'~'+lay.style.top);
 opclalltn(document.getElementById('treecatalltn_a')); 
}

// определяет координаты обьекта (id в качестве аргумента) возращает массив x y
function get_xy(id){
 var obj=document.getElementById(id);
 if(obj.x){
  return Array(obj.x,obj.y);
 }else{
  var dp=document.getElementById(id);
  var x=0; var y=0;
  do{ x+=dp.offsetLeft; y+=dp.offsetTop;  dp=dp.offsetParent; }
  while (dp.nodeName!='BODY');
  return Array(x,y);
 }
}

function chstyle(main,id,ind)
{
 var node="node"+main+"_"+id;
 var node_item=document.getElementById(node);
 if(ind==0)
 { node_item.style.backgroundColor="#D3E5FA"; }
 else{ node_item.style.backgroundColor=""; }
}

//сворачивает или разворачивает все дерево
function opclalltn_1(ind){
 var temp,arr,tn_item;
 var re_node=new RegExp("^nodetree_[0-9]+$");
 
 var tree=document.getElementById("tree");
  
 for (i=0; i<tree.childNodes.length; i++){
   if(tree.childNodes[i].nodeName=="DIV"){
   temp=tree.childNodes[i].getAttribute('id');
  
     if(re_node.test(temp)){
      arr=temp.split("_"); 
      temp="tntree_"+arr[1];
      tn_item=document.getElementById(temp);
      if(tn_item){
       if(tn_item.style.display=="block"){
        if(ind==0){opcltn("tree",arr[1]);}
       }else{
        if(ind==1){opcltn("tree",arr[1]);}
       }       
      }
     }
    }
 }
}

//сворачивает или разворачивает все дерево
function opclalltn(obj){
 var temp,arr,tn_item,ind;
 if(obj.innerHTML=="[свернуть]"){ind=0;}else{ind=1;} 
 var re_node=new RegExp("^nodetree_[0-9]+$");
 //alert(ind);
 var tree=document.getElementById("tree");
  
 for (i=0; i<tree.childNodes.length; i++){
   if(tree.childNodes[i].nodeName=="DIV"){
   temp=tree.childNodes[i].getAttribute('id');
  
     if(re_node.test(temp)){
      arr=temp.split("_"); 
      temp="tntree_"+arr[1];
      tn_item=document.getElementById(temp);
      if(tn_item){
       if(tn_item.style.display=="block"){
        if(ind==0){opcltn("tree",arr[1]); }
       }else{
        if(ind==1){opcltn("tree",arr[1]); }
       }       
      }
     }
    }
  }
  
  
  if(ind==1){
   obj.innerHTML="[свернуть]";
  }else{
   obj.innerHTML="[развернуть]";
  }
  
}

//сворачивает или разворачивает элемент дерева
function opcltn(main,id)
{
 var tn="tn"+main+"_"+id; var tbo="tbo"+main+"_"+id; var tbc="tbc"+main+"_"+id;

 var tn_item=document.getElementById(tn);
 var tbo_item=document.getElementById(tbo);
 var tbc_item=document.getElementById(tbc);

 if(tn_item.style.display=="block")
 {
  tn_item.style.display="none"; tn_item.style.visibility="hidden";
  tbo_item.style.display="block"; tbo_item.style.visibility="visible";
  tbc_item.style.display="none"; tbc_item.style.visibility="hidden";
 }
 else
 {
  tn_item.style.display="block"; tn_item.style.visibility="visible";
  tbo_item.style.display="none"; tbo_item.style.visibility="hidden";
  tbc_item.style.display="block"; tbc_item.style.visibility="visible";
 }
}

// устанавливает cookie в виде id~id~id~id , if ind=0 - удаляет id из списка, ind=1 - добавляет id к списку
function setcook(id,ind){ 
 var ck = GetCookie('ttxzagls');
 
 if(!ck)
 {
  ck = ""; var arr = Array();
 }
 else
 {
  var arr = ck.split("~");
 }
 
  var newck = ""; var i;
  for(i = 0; i < arr.length; i++)
  {
   if (arr[i] != id) newck += arr[i] + "~";
  }
 
 if(ind > 0)
 {
  newck += id;
 }
 else
 {
  if(newck.length > 0)
  {
    newck = newck.substr(0,(newck.length-1) );
  }
 }
 
 if(newck.length > 0)
 { 
  SetCookie('ttxzagls',newck,null,'/');
 }
 else
 {
  DeleteCookie('ttxzagls','/');
 }
}

// разворачивает сворачивает элементы меню
function oclay(id)
{
 var temp = id.split("_");   
 var img = document.getElementById('imgitem_'+temp[1]);
 var a_item = document.getElementById('aitem_'+temp[1]);
 var lay = document.getElementById(id);
 if(lay.style.display == "block")
 {
  lay.style.display = "none"; 
  lay.style.visibility = "hidden";
  img.src = "/images/arrow_d.gif"; 
  a_item.title = "развернуть";
  img.alt = "развернуть";
  setcook(temp[1],0);        
 }
 else
 {
  lay.style.display = "block"; 
  lay.style.visibility = "visible";
  img.src = "/images/arrow_u.gif";
  a_item.title = "свернуть"; 
  img.alt = "свернуть";
  setcook(temp[1],1);    
 }
}
