﻿addEvent( window, 'load', load );

var popID;

var tID;

var flash;

function load() {

inMenu = false;

flash = getNode( "flash" );

body = document.getElementsByTagName( "body" )[0];

last = null;

if( getNode( "download" ) == null ) return;

var about  = new MenuP( getNode( "about" ));

var services	  = new MenuP( getNode( "services" ));

var safety  = new MenuP( getNode( "safety" ));



about.add( new Menu( "Mission", "mission.php" ) );

about.add( new Menu( "Executive<br/>Staff", "executive-staff.php" ) );

about.add( new Menu( "Sales", "sales.php" ) );

about.add( new Menu( "Safety", "safety.php" ) );

about.add( new Menu( "Operations", "operations.php" ) );

about.add( new Menu( "Office", "office.php" ) );

about.add( new Menu( "Trade", "trade.php" ) );

about.create();

// services.add( new Menu( "Premium Support", "/services/" ) );

// services.add( new Menu( "Opera for Mobile", "/services/?show=mobile" ) );

services.add( new Menu( "Turnarounds", "turnarounds.php" ) );

services.add( new Menu( "Chemical", "chemical.php" ) );

services.add( new Menu( "Tank", "tank.php" ) );

services.add( new Menu( "UHP", "uhp.php" ) );

services.add( new Menu( "Hydroblasting", "hydroblasting.php" ) );

services.add( new Menu( "Vacuum", "vacuum.php" ) );

services.add( new Menu( "Waste", "waste.php" ) );

services.add( new Menu( "On-Site", "on-site.php" ) );

services.create();

safety.add( new Menu( "Safety", "safety.php" ) );

safety.add( new Menu( "Safety Staff", "safety-staff.php" ) );

safety.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 > 160 ? w+"px" : "160px";

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.opera.com" + 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 = 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;

	tmp = tmp.offsetParent;

}

node.style.left = menuLeft + "px";

node.style.top = 114 + "px";

var w = pItem.offsetWidth;

node.style.width = w > 160 ? w+"px" : "160px";

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" ) );

	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;

}

