﻿
/* NAMESPACE Relational.Menu */

/* Classes used by the Relational.Controls.Menu control */

Type.registerNamespace('Relational.Menu');

/* hide the first ul element of the current element */
Relational.Menu.hide = function()
{
    var myLink = this.getElementsByTagName('a')[0]
    var mySubmenu = this.getElementsByTagName('ul')[0]
    if (mySubmenu) {
        Relational.Utility.changeClassName(myLink, "Hover", "NoHover");
        mySubmenu.style.visibility = "hidden";
        Relational.Menu.freezeBackground(false);
    }
}

/* show the first ul element of the current element */
Relational.Menu.show = function()
{
    var myLink = this.getElementsByTagName('a')[0]
    var mySubmenu = this.getElementsByTagName('ul')[0]
    if (mySubmenu) { 
        Relational.Utility.changeClassName(myLink, "NoHover", "Hover");
        mySubmenu.style.visibility = "visible";
        Relational.Menu.freezeBackground(true);
   } 
}

/* Freeze/unfreeze background (fix for menus showing below drop-down SELECT elements in IE6) */
Relational.Menu.freezeBackground = function(value)
{
	if (document.all)
	if (document.all.Advanced)
	if (document.all.Advanced.filters)
	if (value) {
		document.all.Advanced.filters["revealTrans"].apply();
		document.all.AdvancedInner.style.display = "none";
	}
	else {
		document.all.Advanced.filters["revealTrans"].play();
		document.all.Advanced.filters["revealTrans"].stop();
		document.all.AdvancedInner.style.display = "block";
	}
}
     
var myrules = {

    // Attach events to menu list items
    'ul._CaudillAjaxMenu li' : function(element){
        $addHandler(element, 'mouseover', Relational.Menu.show);
        $addHandler(element, 'focus', Relational.Menu.show);
        $addHandler(element, 'mouseout', Relational.Menu.hide);
        $addHandler(element, 'blur', Relational.Menu.hide);
    }

};
	
Relational.Utility.Rules.register(myrules); 
/* Relational.Utility.Rules.apply needs to run onload - this control assumes this is taken care of elsewhere. */


if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();