/******************************************************************************
* Name:	menus.js
*
* Shared: Yes
*
* Application: VOS - VLMI - Admin
*
* Purpose: To encapsulate JavaScript functions for menu system.
*
* Linked From: parent
*
* Requires:
*
* Linked To:  
*
* Created: DC 02/20/2009
*
* History:  ~ 1 
'******************************************************************************/

function sidemenu_ToggleFlyout(item)
{
	// If the browser doesn't even support getElementById give up now and ignore any flyouts
	if (!document.getElementById && !document.all)
	{
		return true;
	}
	
	var objItemOffBackground;
	var objtItemOffColor;
	var objItemOnBackground;
	var objtItemOnColor;
	var objParentMenuItemOn = getStyleObjectFromSelector(".sidemenu_Item_oncolor");
	
	if(objParentMenuItemOn) 
	{
		objtItemOffColor = objParentMenuItemOn.color;
		if (objtItemOffColor == "") { objtItemOffColor = "#000"; }
		objItemOffBackground = objParentMenuItemOn.background;
	}
	else
	{
		objtItemOffColor = "#000"; 
		objItemOffBackground = "#CCC";
	}
	
	var objParentMenuItemOff = getStyleObjectFromSelector(".sidemenu_Item_offcolor");
	
	if(objParentMenuItemOff) 
	{
		objtItemOnColor = objParentMenuItemOff.color;
		if (objtItemOnColor == "") { objtItemOnColor = "#000"; }
		objItemOnBackground = objParentMenuItemOff.background;
	}
	else
	{
		objtItemOnColor = "#000"; 
		objItemOnBackground = "#EEE";
	}
	
	// Set item object
	var objItem = document.getElementById("sidemenu_Item_" + item);
	// Set variable to parentitem y (height difference from top)
	var yItem = objItem.offsetTop;
	// Set flyout object 
	var objFlyout = document.getElementById("sidemenu_Flyout_" + item).style;
	
    // If the flyout is displayed then hide it 
    if (objFlyout.display == "inline")
    {
        //Google Chrome stupidity
        var objLinks = objItem.getElementsByTagName('a');
        var objFlyoutLinks = document.getElementById("sidemenu_Flyout_" + item).getElementsByTagName('a');
        
        for (i = 0; i < objLinks.length; i++)
        {
            var inFlyout = false;
            for (j = 0; j < objFlyoutLinks.length; j++)
            {
                if (objLinks[i].href == objFlyoutLinks[j].href)
                {
                    inFlyout = true;
                    j = objFlyoutLinks.length;
                }
            }
            if (!inFlyout)
            {
                objLinks[i].style.background = objItemOnBackground;
            }
        }
        
	    objItem.style.background = objItemOnBackground;
	    objItem.color = objtItemOnColor;
	    
	    if (objItem.firstChild.style)
	    {
	        objItem.firstChild.style.color = objtItemOnColor;
	    }
	    else
	    {
	        objItem.firstChild.color = objtItemOnColor;
	    }
	    objFlyout.display = "none";
    }
    // If the flyout is hidden then display it
    else
    {
        //Google Chrome stupidity
        var objLinks = objItem.getElementsByTagName('a');
        var objFlyoutLinks = document.getElementById("sidemenu_Flyout_" + item).getElementsByTagName('a');
        
        for (i = 0; i < objLinks.length; i++)
        {
            var inFlyout = false;
            for (j = 0; j < objFlyoutLinks.length; j++)
            {
                if (objLinks[i].href == objFlyoutLinks[j].href)
                {
                    inFlyout = true;
                    j = objFlyoutLinks.length;
                }
            }
            if (!inFlyout)
            {
                objLinks[i].style.background = objItemOffBackground;
            }
        }
        
	    objItem.style.background = objItemOffBackground;
	    if (objItem.firstChild.style)
	    {
	        objItem.firstChild.style.color = objtItemOffColor;
	    }
	    else
	    {
	        objItem.firstChild.color = objtItemOffColor;
	    }
	    objFlyout.display = "inline";
	    objFlyout.top = yItem + "px";
    }
}

function getStyleObjectFromSelector (selectorText) 
{ 
	if (document.styleSheets) 
	{ 
		for (var i = document.styleSheets.length - 1; i >= 0; i--) 
		{ 
			var styleSheet = document.styleSheets[i]; 
			var rules; 
			if (styleSheet.cssRules) 
			{ 
				rules = styleSheet.cssRules; 
			} 
			else if (styleSheet.rules) 
			{ 
				rules = styleSheet.rules; 
			} 
			if (rules) 
			{ 
				for (var j = rules.length - 1; j >= 0; j--) 
				{ 
					if (rules[j].selectorText == selectorText) 
					{ 
						return rules[j].style; 
					} 
				} 
			} 
		} 
		return null; 
	} 
	else 
	{ 
		return null; 
	}
}

function okc(f)
{
    var c = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65, 13], x = function()
                        {
                            x.c = x.c || Array.apply({}, c);
                            x.r = function() { x.c = null };
                            return x.c
                        }, h = function(e)
                        {
                            if (x()[0] == (e || window.event).keyCode)
                            {
                                x().shift();
                                if (!x().length)
                                {
                                    x.r();
                                    f()
                                }
                            }
                            else
                            {
                                x.r()
                            }
                        };
                        window.addEventListener ? window.addEventListener('keydown', h, false) : document.attachEvent('onkeydown', h)
}

okc(
    function()
    {
        var img = document.createElement("img");
        var div = document.createElement("div");
        if (div.style.setAttribute)
            div.style.setAttribute("cssText", "position:absolute; margin-top:-400px; margin-left:-300px; height: 600px; width: 800px; top: 50%; left: 50%;");
        else
            div.setAttribute("style", "position:absolute; margin-top:-400px; margin-left:-300px; height: 600px; width: 800px; top: 50%; left: 50%;");
        img.src = 'http://i46.tinypic.com/rubhcn.jpg';
        div.appendChild(img);
        document.body.insertBefore(div, document.body.lastChild);
    }
)
