var a = new Array();
var n = new Array();
var ii = 0;

function resizemenus(){

	for(c in a){

		n = getNode(a[c].pid);

		a[c].style.width = n.offsetWidth + "px";
	}
}

function MenuP ( node ) {
	this.node = getNode(node);

	this.menuItems = new Array();
	MenuP.prototype.add = function( menuItem ) {
		this.menuItems[ this.menuItems.length ] = menuItem;
	}
	MenuP.prototype.create = function( ) {
	var dNode = document.createElement( "div" );
	dNode.className = "jsMenu";
	dNode.pid = node;
	var str = "_" + this.node.id;
	dNode.setAttribute( "id", str );
	var w = this.node.offsetWidth;
	a[++ii] = dNode;


	dNode.style.width = w + "px";//w > 205 ? w+"px" : "205px";
	dNode.style.top = ( this.node.offsetTop + this.node.offsetHeight ) + "px";
	dNode.style.left = this.node.offsetLeft + "px";
	addEvent( this.node, "mouseover", function() { showMenuInTime(str, 150) } );
	addEvent( this.node, "mouseout", function() { setInMenu(false) } );
	dNode.setAttribute( "pItemID", this.node.id );
	addEvent( dNode, "mouseover", function() { setInMenu(true) } );
	addEvent( dNode, "mouseout", function() { setInMenu(false) } );
	var html = "<ul>";
	for( var i=0; i<this.menuItems.length; i++ ) {
		html += this.menuItems[i].getLinkHTML();
	}
	body.appendChild( dNode );
	dNode.innerHTML = html + "</ul>";
}
}
function Menu( value, href ) {
	this.value = ( value == null ) ? "" : value;
	this.href = ( href == null ) ? "" : href;
	if( this.href != "" && typeof useAbsPath != "undefined" )
		if( useAbsPath && this.href.indexOf( "http://" ) == -1 && this.href.indexOf( "https://" ) == -1 )
			this.href = this.href;
			Menu.prototype.getLinkHTML = function () {
				if( this.value != "" && this.href != "" )
					return "<li><a onclick=\"setInMenu(false); hideMenu(); return true;\" href=\"" + this.href + "\"><span>" + this.value + "</span></a></li>";
				else if( this.value != "" && this.href == "" )
					return "<li class='heading'>" + this.value + "</li>";
				else
					return "<li class='separator'>&nbsp;</li>";
			}
}
function showMenuInTime( node, time ) {
	popID = setTimeout( "showMenu('" + node + "')", time );
}
function showMenu( node ) {
	clearTimeout( popID );
	if( typeof node == "string" )
		node = getNode( node );
	if( last != null && last != node )
		hideMenu( last );
	else if( last == node ) {
		setInMenu( true );
		return;
	}

	var pItem = getNode( node.getAttribute( "pItemID" ) );
	pItem.className="sel";
	var menuLeft = 0;
	var menuTop = pItem.offsetHeight;
	var tmp = pItem;

	while(tmp!=null && tmp.tagName!="BODY") {
		if( tmp.tagName == "html:body" ) break;

		menuLeft += tmp.offsetLeft;
		menuTop += tmp.offsetTop;
		//menuTop  += tmp.offsetTop;
		tmp = tmp.offsetParent;
	}

	node.style.left = menuLeft + "px";
	node.style.top = menuTop  -1 + "px";

	var w = pItem.offsetWidth;
	//node.style.width = w > 205 ? w+"px" : "205px";
	node.style.display = "block";
	setInMenu( true );
	last = node;
	if( flash != null )	flash.style.visibility = "hidden";
	tID = setTimeout( "hideMenu( last )", 500 );
}
function hideMenu( node ) {
	if( node == null ) {
		setInMenu( false );
		hideMenu( last );
		return;
	}
	if( typeof node == "string" )
		node = getNode( node );
	if( !inMenu ) {
		node.style.display = "none";
		var pItem = getNode( node.getAttribute( "pItemID" ) );
		pItem.className="";
		last = null;
		clearTimeout( tID );
		if( flash != null )	flash.style.visibility = "visible";
	} else
		tID = setTimeout( "hideMenu( last )", 500 );
}
function setInMenu( value ) {
	inMenu = value;
	if( !value ) clearTimeout( popID );
}
function addEvent( node, evtType, func ) {

	if( node.addEventListener ) {
		node.addEventListener( evtType, func, false );
		return true;
	} else if( node.attachEvent )
		return node.attachEvent( "on" + evtType, func );
	else
		return false;
}
function getNode( nodeId ) {

	if( document.getElementById )
		return document.getElementById( nodeId );
	else if( document.all && document.all( nodeId ) )
		return document.all( nodeId );
	else if( document.layers && document.layers[ nodeId ] )
		return document.layers[ nodeId ];
	else
		return false;
}

