addEvent( window, 'load', load );

var popID;
var tID;

function load()
{
	inMenu = false;
	body = document.getElementsByTagName( "body" )[0];
	last = null;
	if( getNode( "arm" ) == null )
		return;

	var arm = new MenuP( getNode( "arm" ));
	var vent = new MenuP( getNode( "vent" ));
	var vyp = new MenuP( getNode( "vyp" ));
	var dver = new MenuP( getNode( "dver" ));
	var kamb = new MenuP( getNode( "kamb" ));
	var pusk = new MenuP( getNode( "pusk" ));
	var svaz = new MenuP( getNode( "svaz" ));
	var pal = new MenuP( getNode( "pal" ));
	var tran = new MenuP( getNode( "tran" ));
	var eldv = new MenuP( getNode( "eldv" ));
	var elob = new MenuP( getNode( "elob" ));

	arm.add( new Menu( "Клапана", "/cgi-bin/gen.pl?page=01010" ) );
	arm.add( new Menu( "Задвижки клинкетные", "/cgi-bin/gen.pl?page=01020" ) );
	arm.add( new Menu( "Фильтры", "/cgi-bin/gen.pl?page=01030" ) );
	arm.add( new Menu( "Эжектора", "/cgi-bin/gen.pl?page=01070" ) );
	arm.create();

	vent.add( new Menu( "РСС", "/cgi-bin/gen.pl?page=02010" ) );
	vent.add( new Menu( "ЦС (переменный ток)", "/cgi-bin/gen.pl?page=02020" ) );
	vent.add( new Menu( "ОСО", "/cgi-bin/gen.pl?page=02040" ) );
	vent.add( new Menu( "Другие марки", "/cgi-bin/gen.pl?page=02050" ) );
	vent.create();

	vyp.add( new Menu( "ВАКС", "/cgi-bin/gen.pl?page=03010" ) );
	vyp.add( new Menu( "ВАКЗ", "/cgi-bin/gen.pl?page=03020" ) );
	vyp.add( new Menu( "ФВАКС", "/cgi-bin/gen.pl?page=03030" ) );
	vyp.create();

	dver.add( new Menu( "Двери", "/cgi-bin/gen.pl?page=04010" ) );
	dver.add( new Menu( "Крышки (люки)", "/cgi-bin/gen.pl?page=04030" ) );
	dver.create( );

	kamb.add( new Menu( "Кипятильники воды", "/cgi-bin/gen.pl?page=05030" ) );
	kamb.add( new Menu( "Подогреватели воды", "/cgi-bin/gen.pl?page=05040" ) );
	kamb.create( );

	pusk.add( new Menu( "ПММ, ПММД", "/cgi-bin/gen.pl?page=08010" ) );
	pusk.add( new Menu( "Командоконтроллеры", "/cgi-bin/gen.pl?page=08020" ) );
	pusk.add( new Menu( "Контроллеры кулачковые", "/cgi-bin/gen.pl?page=08030" ) )
	pusk.create();

	svaz.add( new Menu( "Телефонные аппараты", "/cgi-bin/gen.pl?page=10010" ) );
	svaz.add( new Menu( "Телефонные коммутаторы", "/cgi-bin/gen.pl?page=10020" ) );
	svaz.create();

	pal.add( new Menu( "Брашпили", "/cgi-bin/gen.pl?page=12010" ) );
	pal.add( new Menu( "Шпили якорные", "/cgi-bin/gen.pl?page=12020" ) );
	pal.add( new Menu( "Шпили швартовые", "/cgi-bin/gen.pl?page=12030" ) );
	pal.add( new Menu( "Лебедки грузовые", "/cgi-bin/gen.pl?page=12040" ) );
	pal.add( new Menu( "Лебедки шлюпочные", "/cgi-bin/gen.pl?page=12050" ) );
	pal.add( new Menu( "Киповые планки", "/cgi-bin/gen.pl?page=12060" ) );
        pal.add( new Menu( "Стопора цепные", "/cgi-bin/gen.pl?page=12070" ) );
	pal.create();

	eldv.add( new Menu( "Ам", "/cgi-bin/gen.pl?page=17030" ) );
	eldv.add( new Menu( "Дм", "/cgi-bin/gen.pl?page=17060" ) );
	eldv.add( new Menu( "Екм", "/cgi-bin/gen.pl?page=17070" ) );
	eldv.add( new Menu( "Ми", "/cgi-bin/gen.pl?page=17090" ) );
	eldv.add( new Menu( "МАП", "/cgi-bin/gen.pl?page=17110" ) );
	eldv.create( );

	elob.add( new Menu( "Авт. переключатели сетей", "/cgi-bin/gen.pl?page=18020" ) );
	elob.add( new Menu( "Разное", "/cgi-bin/gen.pl?page=18090" ) )
	elob.create();

}

function MenuP ( node )
{
	this.node = 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";

		var str = "_" + this.node.id;

		dNode.setAttribute( "id", str );

		var w = this.node.offsetWidth;

		dNode.style.width = w > 220 ? w+"px" : "220px";
		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 = "http://www.marinexpo.ru" + this.href;

	Menu.prototype.getLinkHTML = function ()
	{
		if( this.value != "" && this.href != "" )
			return "<li><a onclick=\"setInMenu(false);hideMenu();return true;\" href=\"" + this.href + "\">" + this.value + "</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" ) );
	var menuLeft = 218;					// left
	var menuTop = pItem.offsetHeight-15;
	var tmp = pItem;

	while(tmp.tagName!="BODY") 
	{
		if( tmp.tagName == "html:body" )
			break;
	
		menuLeft += tmp.offsetLeft;
		menuTop  += tmp.offsetTop;
		tmp = tmp.offsetParent;
	}
	node.style.left = menuLeft + "px";
	node.style.top = menuTop + "px";

	var w = pItem.offsetWidth;

	node.style.width = w > 220 ? w+"px" : "220px"; //size of menu
	node.style.display = "block";	
	setInMenu( true );
	last = node;
	tID = setTimeout( "hideMenu( last )", 900 );
}

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" ) );
		last = null;
		clearTimeout( tID );
	}
	else
		tID = setTimeout( "hideMenu( last )", 900 );	
}

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;
}