﻿var hideTimeout; //Clear Hide TimeOut
var hideSubTimeout;
var hideListMenuTimeout;
var LastListMenuShowedObj;
var showNewSubMenuTimeout;
var showNewSubMenu=false;

/* Java Script FUNCTION: Add OnMouseOver/Out TO SHOW/HIDE MENU */
//<!-- JavaScript Products Menu Open -->
//<script type="text/javascript" language="javascript">
//    AddAttribute("naviList_PRODUKTER","TableCategories","CategoryMenu");
//</script>
//<!-- JavaScript Products Menu Open -->
function AddOnMouseAttribute(ElementId,TargetElementId,MenuType)
{
   if(MenuType == "CategoryMenu" )
   {
       var onmouseover = "ShowMenu($('"+TargetElementId+"'));";
       var onmouseout = "HideMenu($('"+TargetElementId+"'));";
   }
   else if(MenuType == "ListMenu" )
   {
        var onmouseover = "ShowListMenu($('"+TargetElementId+"'));";
        var onmouseout = "HideListMenu($('"+TargetElementId+"'));"; 
   }
   else return;
   
   var Element = document.getElementById(ElementId);
   if(Element!=null)
   {           
        if(document.getElementById(TargetElementId)==null) return;
        
        Element.onmouseover =  new Function(onmouseover);
        Element.onmouseout =  new Function(onmouseout);        
   }
   else alert("Element ["+ElementId+"] Not Exist");
}
/* Java Script FUNCTION: Add OnMouseOver/Out TO SHOW/HIDE MENU */


/* LIST MENU FUNCTIONS */
function ShowListMenu(ListMenuObj)
{
    if(LastListMenuShowedObj!=null && ListMenuObj!=LastListMenuShowedObj)
        fadeThis(LastListMenuShowedObj);
    LastListMenuShowedObj=ListMenuObj;
    
    if(hideListMenuTimeout!=undefined)
        clearTimeout(hideListMenuTimeout);
    
    appearThis(ListMenuObj);
}

function HideListMenu(ListMenuObj)
{
    if(hideListMenuTimeout!=undefined)
        clearTimeout(hideListMenuTimeout);
    
    hideListMenuTimeout = setTimeout( function(){
            fadeThis(ListMenuObj);
            },1500);   
}

/* END LIST MENU FUNCTIONS */

/* CATEGORY MENU FUNCTIONS */

function ShowMenu(MenuObj)
{    
    if(hideTimeout!=undefined)
        clearTimeout(hideTimeout);
    
    appearThis(MenuObj);
}

function ShowSubMenu(SubMenuObj)
{   
    if(hideSubTimeout!=undefined)
        clearTimeout(hideSubTimeout);
    
    appearThis(SubMenuObj);
    
    UpdateAllSubMenues(SubMenuObj);
}

function HideMenu(MenuObj)
{
    //if(showNewSubMenu==true) return;

    if(hideTimeout!=undefined)
        clearTimeout(hideTimeout);
    
    hideTimeout = setTimeout( function(){
            fadeThis(MenuObj);
            },1500);   
}

function HideSubMenu(SubMenuObj)
{
    if(showNewSubMenu==true) return;
    
    if(hideSubTimeout!=undefined)
        clearTimeout(hideSubTimeout);

    hideSubTimeout = setTimeout( function(){
            fadeThis(SubMenuObj);
            },1000);   
            
    UpdateAllSubMenues(SubMenuObj);

}

function UpdateCategoryAndSubCategoryStyle(SelectedCategoryCellId)
{
    if(showNewSubMenu==true) return;
    
    showNewSubMenu=true;
    
    UpdateCategoryAndSubCategoryStyle1(SelectedCategoryCellId);
    
    showNewSubMenuTimeout= setTimeout( function(){showNewSubMenu=false;},200);
}


function UpdateCategoryAndSubCategoryStyle1(SelectedCategoryCellId)
{

    var TableMenuId ='TableCategories';
    var TableSubCatPrefix = 'tableSubCat_';
    var TdCategoryCss = 'TdCategoryCss';
    var TdCategoryActiveCss ='TdCategoryActiveCss';

    if(hideSubTimeout!=undefined)
    {
        clearTimeout(hideSubTimeout);
    }

    var TableMenuObj = document.getElementById(TableMenuId);
    //if(TableMenuObj==null) return;

    for(var i=0;i<TableMenuObj.rows.length;i++)
    {
       if(TableMenuObj.rows[i].childNodes[0].tagName != undefined) 
           TableMenuObj.rows[i].childNodes[0].className = TdCategoryCss;
       else TableMenuObj.rows[i].childNodes[1].className = TdCategoryCss;
    }

    var SelectedCategoryAHref = document.getElementById(SelectedCategoryCellId);
    if(SelectedCategoryAHref.parentNode.childNodes[0].tagName != undefined)
       SelectedCategoryAHref.parentNode.childNodes[0].className=TdCategoryActiveCss;
    else SelectedCategoryAHref.parentNode.childNodes[1].className=TdCategoryActiveCss;

    for(var j=0;j<TableMenuObj.rows.length;j++)
    {
        var tableSubCatIndex = SelectedCategoryCellId.charAt(SelectedCategoryCellId.length-1);
        var SubMenuObj = document.getElementById(TableSubCatPrefix+j);
        
        if(SubMenuObj!=null && SubMenuObj!=undefined)
            if(tableSubCatIndex !=j)
                SubMenuObj.style.display='none';
            else
                ShowSubMenu(SubMenuObj); 
    }
}

function UpdateAllSubMenues(SubMenuObj)
{
   
    var SubMenuIndex = SubMenuObj.id.charAt(SubMenuObj.id.length-1);
    
    var TableSubCatPrefix = 'tableSubCat_';
    
    for(var j=0;j<50;j++)
    {
        var SubMenuObj = document.getElementById(TableSubCatPrefix+j);
        if(SubMenuObj==null)return;
        else if(SubMenuIndex != j) 
        {
            SubMenuObj.style.display='none';
        }
    }
}

/* END CATEGORY MENU FUNCTIONS */


function appearThis(target) {

    new Effect.Appear(target, {duration: 0.5});
}

function fadeThis(target) {

    new Effect.Fade(target, {duration: 0.9});
}
