// eimenu v1.0-BRANCH-Megiddo-v1.0
// Written by John N King
// c. 2005 John N King. All rights reserved.

var imgA = new Array();
var imgB = new Array();
var menuParentIds = new Array();
var imgParentIds = new Array();
var visibleMenuIds = new Array();
var visibleImgIds = new Array();

function createMenu( parent_tag_id, parent_cell_id, parent_menu_id, menu_id, menu_left, menu_top, menu_imga, menu_imgb, menu_href , cell_id) {
 
 	var table = document.createElement( "table");
	var tbody = document.createElement( "tbody" );
	var tr = document.createElement( "tr" );
	
	table.setAttribute( "id", menu_id );
	table.className = "menu";
	table.setAttribute( "cellpadding", "0" );
	table.setAttribute( "cellspacing", "0" );
	table.setAttribute( "border", "0" );
	table.style.position = "absolute";
	table.style.left = ( menu_left + getXOffset() ) + "px";
	table.style.top = ( menu_top + getYOffset() )  + "px";

	if ( menu_id == "rootmenu" ) {
		table.style.visibility = "visible";
	} else {
		table.style.visibility = "hidden";
	}

	for ( var i = 0; i < menu_imga.length; i ++ ) {
	  createCell( tr, menu_id, parent_cell_id, cell_id[ i ], menu_imga[ i ], menu_imgb[ i ], menu_href[ i ] );
	}
	
	tbody.appendChild( tr );
	table.appendChild( tbody );
	document.getElementById( parent_tag_id ).appendChild( table );
	if ( parent_cell_id != "" ) {
		document.getElementById( parent_cell_id ).onmouseover = function() { hideAllMenus(); showMenu( menu_id ); }
	}

	if ( parent_menu_id != "" ) {
		menuParentIds[ menu_id ] = parent_menu_id;
	}
}

function createCell( parent, menu_id, parent_cell_id, id, imga, imgb, href ) {

	var td = document.createElement( "td" );
	var a = document.createElement( "a" );
	var img = document.createElement( "img" );
	
	td.setAttribute( "id", id );
	td.className = "menu";
	td.onmouseover = function() { hideAllMenus(); showMenu( menu_id ); }
	
	a.setAttribute( "id", id + "a");
	a.setAttribute( "href", href )
	
	img.setAttribute( "id",  id +  "img" );
	img.setAttribute( "src", imga );
	img.style.border = "0";
	img.onmouseover = function() { hideAllImgs(); showImg( id +  "img" ); }
	
	imgA[ id + "img" ] = imga;
	imgB[ id + "img" ] = imgb;
	if ( parent_cell_id != "" ) {
		imgParentIds[ id + "img" ] = parent_cell_id + "img";
	}

	a.appendChild( img );
	td.appendChild( a );
	parent.appendChild( td );
}

function showMenu( menu_id ) {

	if ( menu_id != "rootmenu" ) {
		visibleMenuIds[ visibleMenuIds.length ] = menu_id;
	}
	document.getElementById( menu_id ).style.visibility = "visible";

	var parentId = menuParentIds[ menu_id ];
	while ( typeof parentId != "undefined" && parentId != "" && parentId != "rootmenu" ) {
		visibleMenuIds[ visibleMenuIds.length ] = parentId;
		document.getElementById( parentId ).style.visibility = "visible";
		parentId = menuParentIds[ parentId ];
	}
}

function hideMenu( menu_id ) {
	document.getElementById( menu_id ).style.visibility = "hidden";
}

function hideAllMenus() {
	for ( var i = 0; i < visibleMenuIds.length; i ++ ) {
		hideMenu( visibleMenuIds[ i ] );
	}
	visibleMenuIds = new Array();
}

function showImg( img_id ) {
	visibleImgIds[ visibleImgIds.length ] = img_id;
	swapImg( img_id, imgB[ img_id ]);

	var parentId = imgParentIds[ img_id ];
	while ( typeof parentId != "undefined" && parentId != "" ) {
		visibleImgIds[ visibleImgIds.length ] = parentId;
		swapImg( parentId, imgB[ parentId ]);
		parentId = imgParentIds[ parentId ];
	}
}

function hideImg( img_id ) {
	swapImg( img_id, imgA[ img_id ]);
}

function hideAllImgs() {
	for ( var i = 0; i < visibleImgIds.length; i ++ ) {
		hideImg( visibleImgIds[ i ] );
	}
	visibleImgIds = new Array();
}

function swapImg( img_id, img_src ) {
	document.getElementById( img_id ).setAttribute( "src", img_src );
}

