/** Vivek Haridas, July 17,2003
*	Modular Cross browser menu.
*	Major Portion of the code retained from
*	http://www.quest-net.org/jamesaustin/menus1.asp
*
*	Made changes to make it modular and added support for
*	having multiple menu bars.
*	
*	Order in which Functions have to be used:-
*	1.	Every Menubar has to start with StartMenuBar and end with EndMenuBar
*	2.	Every Dropdown menu in a menubar should start with a StartDropDown and end with an EndDropDown	
*	3.	Any number of Menu items can be inserted in a Dropdown menu with an InsertMenuItem for each item.
*	
**/

/**Global Data**/
Dropdowns  = 1;
MenuItems = 1;
MenuBars = 0;
/****/

/****Functions for adding Menus*******/
function StartMenuBar()
{
	document.writeln('<table class="Menubar" cellpadding="0" cellspacing="0" border="0"');
	document.writeln('<tr>');
	MenuBars++;
}

function EndMenuBar()
{
	document.writeln('</tr>');
	document.writeln('</table>');
}

function StartDropDown(label,link)
{
		document.writeln('<td class="MenuHeader">');
		document.write('<div id="drop');
		document.write(label);
		document.write('"><a href="');
		document.write(link);
		document.write('" class="MenuHeader">');
		document.write('<img src="images/tick.gif" align="absmiddle" border="0">' + label + '<img src="images/x.gif" align="absmiddle" width="26" height="16" border="0">');
		document.write('</a></div>');
}

function EndDropDown()
{
		document.writeln('</div>');
		document.writeln('</td>');
}

function InsertMenuItem(label,link)
{
/*
	document.write('<tr id="');
	document.write(MenuItems);
	document.write('">');
	document.write('<td align="left" class="MenuItem" onMouseover="this.className = \'MenuItemHover\';" onMouseout = "this.className = \'MenuItem\';" width="100%">');
	document.write('<a class="MenuItem" href="');
	document.write(link);
	document.write('" onMouseOut="menuOut(\'rollimg2\');" onMouseOver="menuOver(\'rollimg2\');">');
	document.write(label);
	document.writeln('</a></td>');
	document.writeln('</tr>');
	MenuItems++;
	*/
}

function InsertMenuSeparator()
{
/*
	document.write('<tr id="');
	document.write(MenuItems);
	document.write('">');
	document.write('<td align="left" class="MenuSep" width="100%">');
	document.writeln('</td>');
	document.writeln('</tr>');
	MenuItems++;
	*/
}
/***********/

<!--
// MENU MOUSE OVER 
function menuOver(itemName) {
 clearTimeout(timeOn)
 menuActive = 1
}// MENU MOUSE OUT 
function menuOut(itemName) {
 if(document.layers) {
 	menuActive = 0 
 	timeOn = setTimeout("hideAllMenus()", 400)
  }
}
 // SET BACKGROUND COLOR 
function getImage(name) {
  if (document.layers) {
    return findImage(name, document);
  }
  return null;
}

function findImage(name, doc) {
  var i, img;
  for (i = 0; i < doc.images.length; i++)
    if (doc.images[i].name == name)
      return doc.images[i];
  for (i = 0; i < doc.layers.length; i++)
    if ((img = findImage(name, doc.layers[i].document)) != null) {
      img.container = doc.layers[i];
      return img;
    }
  return null;
}

function getImagePageLeft(img) {
  var x, obj;
  if (document.layers) {
    if (img.container != null)
      return img.container.pageX + img.x;
    else
      return img.x;
  }
  return -1;
}

function getImagePageTop(img) {
  var y, obj;
  if (document.layers) {
    if (img.container != null)
      return img.container.pageY + img.y;
    else
      return img.y;
  }
  return -1;
}

//document.write('<style> .menu{position: absolute;}</style>');
var timeOn = null
numMenus = 4;
document.onmouseover = hideAllMenus;
document.onclick = hideAllMenus;
window.onerror = null;

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	//we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility


function showMenu(menuNumber, eventObj, labelID) {
    hideAllMenus();
	if(document.layers) {
	img = getImage("img" + menuNumber);
 	x = getImagePageLeft(img);
 	y = getImagePageTop(img);
 	menuTop = y + 10; // LAYER TOP POSITION
	eval('document.layers["menu'+menuNumber+'"].top="'+menuTop+'"');
 	eval('document.layers["menu'+menuNumber+'"].left="'+x+'"');
	}
	eventObj.cancelBubble = true;
    var menuId = 'menu' + menuNumber;
    if(changeObjectVisibility(menuId, 'visible')) {
	return true;
    } else {
	return false;
    }
}

function hideAllMenus() {
 /*Old code*/  //for(counter = 1; counter <= numMenus; counter++) {
  for(counter = 1; counter <= Dropdowns; counter++) {
	changeObjectVisibility('menu' + counter, 'hidden');
    }
}

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
} // moveObject



// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
function initializeHacks() {
    // this ugly little hack resizes a blank div to make sure you can click
    // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
}



function createFakeEventObj() {
    // create a fake event object for older browsers to avoid errors in function call
    // when we need to pass the event object to functions
    if (!window.event) {
	window.event = false;
    }
} // createFakeEventObj



function resizeBlankDiv() {
    // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	getStyleObject('blankDiv').width = document.body.clientWidth - 20;
	getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
}

function explorerMacResizeFix () {
    location.reload(false);
}

function mClk(src){ 
	if(event.srcElement.tagName=='TD')
		src.children.tags('A')[0].click();
}
//-->