//-------------------------------------------------------------------
//  Модуль      : menu.js
//  Проект              : WebForms
//  Описание    : Скрипт работы с menu
//  Дата        : 15-ИЮЛ-04
//  Автор       : Русак Александр
//  Все права защищены (C) 2004 ЗАО "Монолит-Инфо"
//-------------------------------------------------------------------


var fwStart = null;
var fwHideMenuTimer = null;
var fwDHFlag = false;


var mStart = null;
var showMenuTimer = null;
var mFlag = false;

var fwShowMenuTimer = null;

var fwSubStart = null;
var fwHideSubMenuTimer = null;
var fwDHSubFlag = false;

var menuObj = null;
var submenuObj = null;
var topLevel = null;

function topMenuOver(menuItem)
{

        clearMenuTimeout();

        if (fwShowMenuTimer != null)
                clearTimeout(fwShowMenuTimer);
        fwShowMenuTimer = null;

        var menuID = "TopMenu" + menuItem;
        
        if (menuObj)
        {
                menuObj.style.display = "none";
                if (topLevel!=null)
                        topLevel.className = "topLevel";
        }
        if (submenuObj)
        {
                submenuObj.style.display = "none";
        }

        menuObj = document.getElementById(menuID);
        SetMenuPosition(menuObj, 'topLevel'+menuItem);

        var s = 
          "topLevel = document.getElementById('topLevel" + menuItem + "');" +
          "if (menuObj!=null) "+
          "   topLevel.className = 'topLevelHo';" + 
          "startMenuShow();";

        fwShowMenuTimer = setTimeout(s,300);

        
//        menuObj.style.display = 'block';
//        topLevel = document.getElementById('topLevel' + menuItem);
//        topLevel.className = "topLevelHo";
        //alert(event.srcElement.getBoundingClientRect().left);
}


function startMenuShow()
{
        mFlag = true;
        doShow();
}

function doShow()
{
        if (!mFlag) return;
        if (menuObj==null) return;

        mFlag = false;
        menuObj.style.display = "block";
}



function topMenuOut(menuItem)
{
        if (fwShowMenuTimer != null)
                clearTimeout(fwShowMenuTimer);
        fwShowMenuTimer = null;

        var menuID = "TopMenu" + menuItem;
        
        menuObj = document.getElementById(menuID);
        startMenuTimeout();
//      document.getElementById('topLevel' + menuItem).className = "topLevel";
}

function GetSrc()
{
        return event.srcElement;
//        return menuObj.parentNode;
}

function SetMenuPosition(menuItem, top)
{
        var src =  document.getElementById(top);
//        var rect = src.getBoundingClientRect();
        
      menuItem.style.top = 16;
//        var a =  menuItem.style.top+2;
//        menuItem.style.top = a;

//        menuItem.style.left = rect.left - 3;
        menuItem.style.left = src.offsetParent.offsetLeft + 3;
}


function subMenuOver(menuItem)
{
        clearSubMenuTimeout();
        var menuID = "subMenu" + menuItem;
        
        if (submenuObj) submenuObj.style.display = "none";
        
        submenuObj = document.getElementById(menuID);
        SetSubMenuPosition(submenuObj);
        
        submenuObj.style.display = "block";
//      alert(header.clientHeight);
}

function subMenuOut(menuItem)
{
        var menuID = "subMenu" + menuItem;
        submenuObj = document.getElementById(menuID);
        startSubMenuTimeout();
}

function SetSubMenuPosition(menuItem)
{
        var src = GetSrc();
        
        while(src.tagName.toUpperCase() != "DIV")
        {
                src = src.parentElement;
        }

        //rect = event.srcElement.parentElement.parentElement.getBoundingClientRect();
        rect = src.getBoundingClientRect();

var clientHeight = 0;

        menuItem.style.top = rect.top + document.body.scrollTop - clientHeight - 3;
        menuItem.style.left = rect.right - 2;
//      alert(menuItem.style.left);
}



function popupMenuOver()
{
        clearMenuTimeout();
}

function popupMenuOut()
{
        startMenuTimeout();
}

function popupSubMenuOver()
{
        clearMenuTimeout();
        clearSubMenuTimeout();
}

function popupSubMenuOut()
{
        startSubMenuTimeout();
        startMenuTimeout();
}



function clearMenuTimeout()
{
        if (fwHideMenuTimer) clearTimeout(fwHideMenuTimer);
        fwHideMenuTimer = null;
        fwDHFlag = false;
}

function startMenuTimeout()
{
        fwStart = new Date();
        fwDHFlag = true;
        fwHideMenuTimer = setTimeout("doHide()", 500);
}

function doHide()
{
        if (!fwDHFlag) return;
        var elapsed = new Date() - fwStart;
        if (elapsed < 500) {
                fwHideMenuTimer = setTimeout("doHide()", 1100-elapsed);
                return;
        }
        fwDHFlag = false;
        menuObj.style.display = "none";
        if (topLevel!=null)
           topLevel.className = "topLevel";
}



function clearSubMenuTimeout()
{
        if (fwHideSubMenuTimer) clearTimeout(fwHideSubMenuTimer);
        fwHideSubMenuTimer = null;
        fwDHSubFlag = false;
}

function startSubMenuTimeout()
{
        fwSubStart = new Date();
        fwDHSubFlag = true;
        fwHideSubMenuTimer = setTimeout("doSubHide()", 500);
}

function doSubHide()
{
        if (!fwDHSubFlag) return;
        var elapsed = new Date() - fwSubStart;
        if (elapsed < 500) {
                fwHideSubMenuTimer = setTimeout("doSubHide()", 1100-elapsed);
                return;
        }
        fwDHSubFlag = false;
        submenuObj.style.display = "none";
//      topLevel.className = "topLevel";
}




function GetObjectByIdTagName(sId, sTagName)
{
    var arr = window.document.all[sId];
    sTagName = sTagName.toUpperCase();

    if (arr == null)
        return null;   
     
    if (typeof(arr.length) != 'undefined')
    {
        for (var i = 0; i < arr.length; i++)
            if (arr[i].tagName.toUpperCase() == sTagName)
                return arr[i]
    }
    else
    {
        if (arr.tagName.toUpperCase() == sTagName)
            return arr;
    }
    
    return null;
}

function ScrollArea()
{
    var o = window.document.getElementById('ScrollArea');
//    o.scrollIntoView();
    o.style.width = window.document.body.offsetWidth
    o.style.height = window.document.body.offsetHeight -103;
    o.style.left = window.document.body.offsetLeft
    o.style.top = 103;
}

