﻿/// <reference path="~\Javascript\jquery-vsdoc.js"/>

top.MainMenuHideTimer = null;
top.MainMenuShowTimer = null;
top.MainMenuVisibleItemClass = "";
top.MainMenuOwnerMenuItem = null;

top.AllMenuItems = null;
top.InitiallySelectedMenuItems = null;

// Do the magic when the DOM is ready
jQuery(document).ready(function() {
    top.AllMenuItems = $(".MainMenu li a")
    top.InitiallySelectedMenuItems = $(".MainMenu li a").filter(function() {
        return $(this).attr("class").search("Selected") != -1
    })
})

function ShowMenu(objOverItem, strItemClass, booMenuItem)
{
    if(booMenuItem)
        top.MainMenuOwnerMenuItem = objOverItem;

    var intLeft = $(top.MainMenuOwnerMenuItem).offset().left - $(".MainMenu").offset().left;
    var booPlaceFromRight = false;
    
    if($($(top.MainMenuOwnerMenuItem).parent().get(0)).hasClass("NavRight"))
        booPlaceFromRight = true;
    
    clearTimeout(top.MainMenuShowTimer);
    clearTimeout(top.MainMenuHideTimer);
    
    if(strItemClass != top.MainMenuVisibleItemClass)
        SetMenu(0, top.MainMenuVisibleItemClass, 'hide');

    //Remove selection from all menuitems, and select the item that is currently selected.
    if (booMenuItem) {
        if (top.AllMenuItems != null && top.AllMenuItems.length > 0) {
            $.each(top.AllMenuItems, function(index, item) {
                $(item).attr("class", $(item).attr("class").replace("Selected", ""));
            });
        }
    
        if ($(objOverItem).attr("class").search("Selected") == -1) {
            $(objOverItem).attr("class", $(objOverItem).attr("class") + "Selected");
        }
    }
            
    top.MainMenuShowTimer = setTimeout("SetMenu(" + intLeft + ", '" + strItemClass + "', 'show', " + booPlaceFromRight + ");", 50);
    clearTimeout(top.MainMenuHideTimer);
}

function HideMenu(objOverItem, strItemClass) {
     

    clearTimeout(top.MainMenuHideTimer);
    clearTimeout(top.MainMenuShowTimer);

    if ($("." + strItemClass)[0]) {
        top.MainMenuHideTimer = setTimeout("SetMenu(0, '" + strItemClass + "', 'hide');", 300);
    }
    else {
        
        //Remove selection from all menuitems, and select the items that were selected when the page was loaded.
        if (top.AllMenuItems != null && top.AllMenuItems.length > 0) {
            $.each(top.AllMenuItems, function(index, item) {
                $(item).attr("class", $(item).attr("class").replace("Selected", ""));
            });
        }
        if (top.InitiallySelectedMenuItems != null && top.InitiallySelectedMenuItems.length > 0) {
            $.each(top.InitiallySelectedMenuItems, function(index, item) {
                if ($(item).attr("class").search("Selected") == -1) {
                    $(item).attr("class", $(item).attr("class") + "Selected");
                }
            });
        }
        
    }
        
}

function SetMenu(intLeft, strItemClass, state, booPlaceFromRight) {
    if (strItemClass != "") 
    {
        if (state == 'hide') 
        {
            if ($("." + strItemClass)[0]) 
            {

                //Remove selection from all menuitems, and select the items that were selected when the page was loaded.
                if (top.AllMenuItems != null && top.AllMenuItems.length > 0) {
                    $.each(top.AllMenuItems, function(index, item) {
                        $(item).attr("class", $(item).attr("class").replace("Selected", ""));
                    });
                }
                if (top.InitiallySelectedMenuItems != null && top.InitiallySelectedMenuItems.length > 0) {
                    $.each(top.InitiallySelectedMenuItems, function(index, item) {
                        if ($(item).attr("class").search("Selected") == -1) {
                            $(item).attr("class", $(item).attr("class") + "Selected");
                        }
                    });
                }
                
            
                $("." + strItemClass)[0].style.display = 'none';
                $("." + strItemClass)[0].style.left = '0px';
            }      
        }
        else if(state == 'show')
        {   
            if($("." + strItemClass)[0])
            {
                $("." + strItemClass)[0].style.display = '';
                top.MainMenuVisibleItemClass = strItemClass;
                
                if(booPlaceFromRight)
                {
                    $("." + strItemClass)[0].style.right = '0px';
                    $("." + strItemClass)[0].style.left = 'auto';
                }
                else
                    $("." + strItemClass)[0].style.left = intLeft + 'px';
            }
        }
    }
}