var FM_POS_TOP=1;
var FM_POS_BOTTOM=2;

var FM_POS_LEFT=4;
var FM_POS_RIGHT=8;

var FM_DIR_UP=16;

var LayersLoaded = 1;

// Проверка на поддержку навигатора.
var iex=(document.all);
var nav=(document.layers);
var old=(navigator.appName=="Netscape" && !document.layers && !document.getElementById);
var n_6=(window.sidebar);

var ShowedMenuBars=new Array();
var ShowedCount=0;
var TimeOut;


// -----------------------------
// РЕгистрируем слой.
// -----------------------------
function RL(lName, Content)
{

//if(Opera) return;

document.write("<DIV onmouseout=InactiveLayer(this) onmouseover=ActiveLayer(this) class=popup ID='"+lName+"'></DIV>");
var skin = document.getElementById(lName);
if(skin==null) return;
skin.innerHTML=Content;
}


// -----------------------------
// меняем контент слоя.
// -----------------------------
function SetLayerContent(lName, Content)
{
var skin = document.getElementById(lName);
if(skin==null) return;
skin.innerHTML=Content;
}            
// -----------------------------
// Актвиизация слоя.
// -----------------------------
function InactiveLayer()
{

clearTimeout(TimeOut);
TimeOut=setTimeout( "HideLayers()" , 1000 );

}

// -----------------------------
// Актвиизация слоя.
// -----------------------------
function ActiveLayer()
{

clearTimeout(TimeOut);

}


// -----------------------------
// Отображаем с такими координатами.
// -----------------------------

function ShowLayer(lName, x, y, Hide, zInd)
{


//if(Opera) return;

var skin;

if(lName=='') return;

clearTimeout(TimeOut);

if(iex) skin=document.getElementById(lName);
if(n_6) skin=document.getElementById(lName);

if(skin==null) return;

skin.style.left = x;
skin.style.top  = y;


skin.style.zIndex=zInd;
skin.style.visibility="visible";

ShowedMenuBars[ShowedCount] = skin;
ShowedCount++;

}



// -----------------------------
// Прячем слой.
// -----------------------------

function HideLayers()
{

//alert(ShowedCount);

while(ShowedCount)
    {
    ShowedMenuBars[ShowedCount-1].style.visibility="hidden";
    ShowedCount--;  
    }

}

// -----------------------------
// Прячем слой.
// -----------------------------

function HideLayer(lName)
{

var skin;

if(iex) skin=document.getElementById(lName);
if(n_6) skin=document.getElementById(lName);

if(skin==null) return;

skin.style.visibility="hidden";

}



// -----------------------------
// Получаем положение контрола по X.
// -----------------------------
function GetControlX(Control)
{

var Tmp = Control;
var X = 0;

while(Tmp)
    {
    X += Tmp.offsetLeft;
    Tmp = Tmp.offsetParent;
    }

return ( parseInt(X) );

}


// -----------------------------
// Получаем положение контрола Y.
// -----------------------------
function GetControlY(Control)
{

var Tmp = Control;
var Y = 0;

while(Tmp)
    {
    Y += Tmp.offsetTop;
    Tmp = Tmp.offsetParent;
    }

return ( parseInt(Y) );

}


// -----------------------------
// Получаем положение контрола снизу.
// -----------------------------
function GetControlBottom(Control)
{
return ( GetControlY(Control)+Control.offsetHeight );
}


// -----------------------------
// Получаем положение контрола справа.
// -----------------------------
function GetControlRight(Control)
{

return ( GetControlX(Control)+Control.offsetWidth );

}



// -----------------------------
// Выводим слой ниже данного контрола.
// -----------------------------

function SAL(lName, Control, Hd, zInd, Tp, xShift, yShift)
{        


//if(Opera) return;

var x,y,skin, bod;

if(!Opera)  Control.style.background = "A6D2BB";

if(document.getElementById(lName)==null) return;
                              
while( (ShowedCount)&&(ShowedMenuBars[ShowedCount-1].style.zIndex>=zInd) )
    {
    ShowedMenuBars[ShowedCount-1].style.visibility = "hidden";
    ShowedCount--;
    }

if ( document.getElementById(lName) == null ) return;

if(lName!='') 
    {

    // Располагаем в зависимоти от типа.
    if(Tp&FM_POS_TOP)   
            {
        y = GetControlY(Control);

        }

    if(Tp&FM_POS_BOTTOM)    
            {
        y = GetControlBottom(Control);

        if(Mozilla)  
                {
            skin=document.getElementById(lName);
            y = y + skin.offsetHeight;
            }

        }

    if( !(Tp&FM_POS_TOP)&&!(Tp&FM_POS_BOTTOM) ) y = GetControlY(Control)-2;


    if(Tp&FM_POS_LEFT)  x = GetControlX(Control) + xShift;
    if(Tp&FM_POS_RIGHT)     x = GetControlRight(Control) + xShift;
    
    skin=document.getElementById(lName);

    bod = document.getElementById("Desktop");

    if( x + skin.offsetWidth > document.body.clientWidth ) 
            {
        if(!(Tp&FM_POS_LEFT) ) x = GetControlX(Control) - skin.offsetWidth+xShift; 
                  else x = GetControlRight(Control) - skin.offsetWidth+1+xShift;
        }

    if( y + skin.offsetHeight > bod.clientHeight-30 )
            {
        if( !(Tp&FM_POS_TOP)&&!(Tp&FM_POS_BOTTOM) )
            y = GetControlBottom(Control) - skin.offsetHeight;
            else
            y = y - skin.offsetHeight;
        }
    }

// Показываем слой.
ShowLayer(lName, x, y+yShift, Hd, zInd );

}


function RC(Control)
{

if(!Opera) Control.style.background=0;

}

function GU(Url)
{

location.href = Url;

}

