/*
Scripting to support menu rollover and dropdown events

Karl Glasgow
05/2010
code@keg4.com
*/


// These settings apply to both drop-down and fly-out menus
var intAutoHideDelay = 15000; // milliseconds
var intShortHideDelay = 250; // milliseconds
//var strOptionOn = ''; This option is set by the calling script so that active options stay "on"


// Dropdown menu support
var objAutoHide = null;
var strSubMenuOn = '';

function optionActivate(strOptionId) 
{
    dropdownDeactivate();

    var objImage = document.getElementById('img_' + strOptionId);
    if (objImage) objImage.src = objImage.src.replace(/_(on|off)_/, '_on_');
        
    var objOption = document.getElementById('opt_' + strOptionId);
    if (objOption) objOption.className = objOption.className.replace(/_(on|off)$/, '_on');

    dropdownActivate(strOptionId);
}

function optionDeactivate(strOptionId) 
{
    if (typeof strOptionOn == 'undefined') strOptionOn = '';
    // If a dropdown sub-menu is active, do not turn the option button "off" -- 
    // allow the sub-menu to deactivate the option instead.
    if (strSubMenuOn == '' && strOptionId != strOptionOn) 
    {
        var objImage = document.getElementById('img_' + strOptionId);
        if (objImage) objImage.src = objImage.src.replace(/_(on|off)_/, '_off_');
        
        var objOption = document.getElementById('opt_' + strOptionId);
        if (objOption) objOption.className = objOption.className.replace(/_(on|off)$/, '_off');
    }
}

function dropdownActivate(strOptionId) 
{
    clearTimeout(objAutoHide);

	if (document.getElementById('sub_' + strOptionId)) 
	{
	    document.getElementById('sub_' + strOptionId).style.display = 'block';
	    strSubMenuOn = strOptionId;
    
    	KeepAwake();
    	return true;
	} 
	else 
	{
	    strSubMenuOn = '';
	    return false;
	}
}

function dropdownDeactivate() 
{
    flyoutDeactivate();
    clearTimeout(objAutoHideFlyOut);
    
	if (strSubMenuOn != '') 
	{
		if (document.getElementById('sub_' + strSubMenuOn)) 
		{
		    document.getElementById('sub_' + strSubMenuOn).style.display = 'none';
		}
		strOptionId = strSubMenuOn;
		strSubMenuOn = '';
		optionDeactivate(strOptionId);
	}
}

function KeepAwake() 
{
    clearTimeout(objAutoHide);
   	objAutoHide = setTimeout('dropdownDeactivate()', intAutoHideDelay);
}

function HurryUp() 
{
    clearTimeout(objAutoHide);
   	objAutoHide = setTimeout('dropdownDeactivate()', intShortHideDelay);
}


// Fly-out menu support
var objAutoHideFlyOut = null;
var strFlyOutMenuOn = '';

function setActiveSubOption(strSubOptionId) 
{
    if (document.getElementById('subopt_' + strSubOptionId)) 
    {
        document.getElementById('subopt_' + strSubOptionId).className = 'SubOption_on';
    }
}

function resetActiveSubOption(strSubOptionId) 
{
    if (document.getElementById('subopt_' + strSubOptionId)) 
    {
        document.getElementById('subopt_' + strSubOptionId).className = 'SubOption';
    }
}

function flyoutActivate(strOptionId) 
{
    clearTimeout(objAutoHideFlyOut);
    flyoutDeactivate();

    setActiveSubOption(strOptionId);
    
	if (document.getElementById('fly_' + strOptionId)) 
	{
	    document.getElementById('fly_' + strOptionId).style.display = 'block';
	    strFlyOutMenuOn = strOptionId;
    
    	KeepAwakeFlyOut();
	} 
	else 
	{
	    strFlyOutMenuOn = '';
	}
}

function flyoutDeactivate() 
{
	if (strFlyOutMenuOn != '') 
	{
		if (document.getElementById('fly_' + strFlyOutMenuOn)) 
		{
		    document.getElementById('fly_' + strFlyOutMenuOn).style.display = 'none';
		}
    	resetActiveSubOption(strFlyOutMenuOn);
		strFlyOutMenuOn = '';
	}
}

function KeepAwakeFlyOut() 
{
    clearTimeout(objAutoHideFlyOut);
   	objAutoHideFlyOut = setTimeout('flyoutDeactivate()', intAutoHideDelay);
   	KeepAwake();
}

function HurryUpFlyOut() 
{
    clearTimeout(objAutoHideFlyOut);
   	objAutoHideFlyOut = setTimeout('flyoutDeactivate()', intShortHideDelay);
   	HurryUp();
}


