/* Stay open functionality for Allianz menus */

function setCurrentActiveElement( elementID ) {
	// Find out which DOM model is being used and set currentElement accordingly
	this.currentActiveElementID = elementID;
	if( document.getElementById ) {
		this.currentActiveElement = document.getElementById( elementID );
	} else if( document.all ) {
		this.currentActiveElement = document.all[elementID];
	} else {
		this.currentActiveElement = null;
	}
}
function getCurrentActiveElement() {
	return this.currentActiveElement;
}

function switchActiveElementState( elementID ) {
	// Clear the previous menu timeout operation
	if( elementID != this.currentActiveElementID ) {
		if( this.currentTimer ) {
			clearTimeout( this.currentTimer );
			this.currentTimer = null;
			this.resetActiveElements();
		}

		this.setCurrentActiveElement( elementID );
		this.setActiveElements();
	} else {
		clearTimeout( this.currentTimer );
		this.currentTimer = null;
	}
}

function returnActiveElementState() {
	this.currentTimer = setTimeout("menuManager.resetActiveElements()", 2000 );
}

function setActiveElements() {
	if( this.firstLevel ) {
		this.defaultActiveElement.className = this.defaultActiveElement.className.replace( new RegExp( "_active" ), "" );
	}
	this.currentActiveElementClass = this.currentActiveElement.className;
	this.currentActiveElement.className += "_active";
//	this.alertState();
}
function resetActiveElements() {
	this.currentActiveElement.className = this.currentActiveElementClass;
	if( this.firstLevel ) {
		this.defaultActiveElement.className = this.defaultActiveElementClass;
	}
	this.currentActiveElementID = "";
//	this.alertState();
}

function alertState() {
//	alert( "I get a round" );
	alert( this.defaultActiveElement.id + ": " + this.defaultActiveElement.className + "\n" + this.currentActiveElement.id + ": " + this.currentActiveElement.className );
//	alert( this.currentActiveElementID );
}

// The MenuManager object
function MenuManager( defaultActiveLocationIDArg ) {
	// Properties
	var defaultActiveLocationID;
	var defaultActiveElement;
	var defaultActiveElementID;
	var defaultActiveElementClass;

 	var currentActiveElement = null;
 	var currentActiveElementID = null;
 	var currentActiveElementClass = null;

	var currentTimer = false;
	var firstLevel = false;
	var topActiveLocation = null;

	// Methods
	this.setCurrentActiveElement = setCurrentActiveElement;
	this.getCurrentActiveElement = getCurrentActiveElement;
	this.switchActiveElementState = switchActiveElementState;
	this.returnActiveElementState = returnActiveElementState;
	this.setActiveElements = setActiveElements;
	this.resetActiveElements = resetActiveElements;
	this.alertState = alertState;

	// Start object constructor functionality
	this.defaultActiveLocationID = defaultActiveLocationIDArg;

	if( this.defaultActiveLocationID && ( this.defaultActiveLocationID > 1 ) ) {
		this.firstLevel = true;
		this.defaultActiveElementID = "navMenu_" + this.defaultActiveLocationID;

		if( document.getElementById ) {
			this.defaultActiveElement = document.getElementById( this.defaultActiveElementID );
		} else {
			this.defaultActiveElement = document.all[this.defaultActiveElementID];
		}
		this.defaultActiveElementClass = this.defaultActiveElement.className;
	}
}


/* Hooray for suckerfish menus!! */
var sfHover;

sfHover = function() {
	var sfEls = document.getElementById( "mainMenu" ).getElementsByTagName( "li" );
	for (var i = 0; i < sfEls.length; i++ ) {
		if( !sfEls[i].id || sfEls[i].id == undefined || (sfEls[i].id && !sfEls[i].id.match('navMenu_')) ) {
			sfEls[i].onmouseover = function() {
				this.className += "sfhover";
				//alert( 'Class name: ' + this.className + '\nId name: ' + this.id );
			}
			sfEls[i].onmouseout = function() {
				this.className = this.className.replace( new RegExp( "sfhover" ), "" );
			}
		}
	}
}
if( window.attachEvent ) window.attachEvent( "onload", sfHover );