
cm2=null;
hide_delay2=500;
tstat2=0;



// Функция отображающая и скрывающая слои

// Вход:
// objElement - идентификатор(id) слоя;
// bolVisible - булева переменная:
// true  - отобразить слой;
// false - скрыть слой.

// Выход:
// 1


// P.S: В зависимости от типа браузера
// сценарий для манипуляции с видимостью слоёв
// несколько различается.

function switchDiv2(objElement,bolVisible){
if(isNS4||isIE4){
     if(!bolVisible) {
       objElement.visibility ="hidden"
     } else {
       objElement.visibility ="visible"
     }     
 } else if (isIE5 || isNS6) {
      if(!bolVisible){
         objElement.style.display = "none";
         
      } else {
        objElement.style.display = "";
        
        }

      }

return 1;
}





// Функция отображающая|скрывающая
// ,а предварительно ещё и передвигающая
// должным образом слои.


// Вход:
// el - яйчейка таблицы на которой 
// находится указатель;
// m  - наименование слоя, который надо
// отобразить под этой яйчейкой.

function show2(el,m) {

// Если имеется видимый слой,
// сделать его невидимым.

 if (cm2!=null) {
 switchDiv2(cm2,false);
 }


// Если указано название слоя для отображения,
// то:
// 1) Получить его объект;
// 2) X слоя = X яйчейки;
// 3) Y слоя = Y яйчейки + высота яйчейки;
// 4) Сделать слой видимым;
// 5) Сохранить копию слоя в cm.  


 if (m!=null) {
 m=getelementbyid(m);
 m.style.left = getPos(el,"Left")+"px";
 m.style.top =  getPos(el,"Top")+el.offsetHeight+"px";
 switchDiv2(m,true);
 cm2=m;
 }

}




function hidemenu2() {

timer12=setTimeout("show2(null,null)",hide_delay2);

tstat2=1;

return 1;
}



function cancelhide2() {
 if (tstat2==1) {
 clearTimeout(timer12);
 tstat2=0;
 }
return 1;
}
//  ????????? ?????????? ??????????

cm=null;                    // ???? ????? ?????????? 
                                // ??????? ????. ????????? 
                               // ???????? - null.
hide_delay=500;       // ????? ???????? (? ?.?.) ????-????.
                              // ????. 
tstat=0;                  // ??????? ?????????? ??????? ????-????.

// ?????????? ??????? ????????????

isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;


// ??????? ???????????? ? ?????????? ????

// ????:
// objElement - ?????????????(id) ????;
// bolVisible - ?????? ??????????:
// true  - ?????????? ????;
// false - ?????? ????.

// ?????:
// 1


// P.S: ? ??????????? ?? ???? ????????
// ???????? ??? ??????????? ? ?????????? ?????
// ????????? ???????????.

function switchDiv(objElement,bolVisible){
if(isNS4||isIE4){
     if(!bolVisible) {
       objElement.visibility ="hidden"
     } else {
       objElement.visibility ="visible"
     }     
 } else if (isIE5 || isNS6) {
      if(!bolVisible){
         objElement.style.display = "none";
         
      } else {
        objElement.style.display = "";
        
        }

      }

return 1;
}



// ??????? ???????????? ???????? ?????????? ?? 
// ???????? ??????? (?? ??????????? ????).

// ????:
// el    - ????????????? ????????;
// sProp - ???????? (left,top...)

// ?????:
// ???????? ??????-?????? ???????? ???????.



function getPos(el,sProp) {
var iPos = 0;
while (el!=null) {
iPos+=el["offset" + sProp]
el = el.offsetParent
}
return iPos

}



// ??????? ?????? ?????? ? ?????????
// ?? ?????????.

// ????:
// myid - ???????? ???????

// ?????: ??????.

function getelementbyid(myid) {
   if (isNS4){
        objElement = document.layers[myid];
     }else if (isIE4) {
        objElement = document.all[myid];
     }else if (isIE5 || isNS6) {
             objElement = document.getElementById(myid);
     }
return(objElement);
}



// ??????? ????????????|??????????
// ,? ?????????????? ??? ? ?????????????
// ??????? ??????? ????.


// ????:
// el - ??????? ??????? ?? ??????? 
// ????????? ?????????;
// m  - ???????????? ????, ??????? ????
// ?????????? ??? ???? ????????.

function show(el,m,img,pic) {

// ???? ??????? ??????? ????,
// ??????? ??? ?????????.
MM_swapImage(img,'',pic,1);
 if (cm!=null) {
 switchDiv(cm,false);
 }


// ???? ??????? ???????? ???? ??? ???????????,
// ??:
// 1) ???????? ??? ??????;
// 2) X ???? = X ???????;
// 3) Y ???? = Y ??????? + ?????? ???????;
// 4) ?????? ???? ???????;
// 5) ????????? ????? ???? ? cm.  


 if (m!=null) {
 m=getelementbyid(m);
 m.style.left = getPos(el,"Left")+"px";
 m.style.top =  getPos(el,"Top")+el.offsetHeight+"px";
 switchDiv(m,true);
 cm=m;
 }

}



// ??????? "???????????" ????.

// ??????? ?????? ?? ????????? ?? ????
// ? ?????????? 1.

function hidemenu() {
//alert("dsafdsa");
// ????????????? ???????? ?????? 
// hide_delay ?.?. ? ??????? ???????; 
timer1=setTimeout("show(null,null,null,null)",hide_delay);

// ????????????? tstat=1 - ???????, ????, ??? ?????? ???????.
tstat=1;
MM_swapImgRestore();

return 1;
}



// ???????, ??????????????? ?????? ??????????
// ??????? ????????. ????? ???????,
// ???? ?? ?????????.

// ??????? ?????? ?? ????????? ?? ????
// ? ?????????? 1.

function cancelhide() {
 if (tstat==1) {
 clearTimeout(timer1);
 tstat=0;
 }
return 1;
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; 
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
