// File: menu.js
// Purpose: Provide menus
var isDOM = (document.getElementById ? true : false);
var isIE4 = ((document.all && (!isDOM || navigator.appVersion.indexOf('Macintosh')!=-1)) ? true : false);
var isNS4 = (document.layers ? true : false);

function getRef(id) {
	if (isDOM) return document.getElementById(id);
	if (isIE4) return document.all[id];
	if (isNS4) return document.layers[id]; }

function getSty(id) { return (isNS4 ? getRef(id) : getRef(id).style); }

var popTimer=0; // Hide timeout.
var litNow=new Array(); // Array showing highlighted menu items.

function popOver(menuNum,itemNum) {
	clearTimeout(popTimer);
	hideAllBut(menuNum);
	litNow=getTree(menuNum,itemNum);
	changeCol(litNow,true);
	targetNum=menu[menuNum][itemNum].target;
	if (targetNum>0) {
		thisX=parseInt(menu[menuNum][0].ref.left)+parseInt(menu[menuNum][itemNum].ref.left);
		thisY=parseInt(menu[menuNum][0].ref.top)+parseInt(menu[menuNum][itemNum].ref.top);
		with (menu[targetNum][0].ref) {
			left=parseInt(thisX+menu[targetNum][0].x);
			top=parseInt(thisY+menu[targetNum][0].y);
			visibility='visible'; }}}

function popOut(menuNum,itemNum) {
	if ((menuNum==0) && !menu[menuNum][itemNum].target) hideAllBut(0)
	else popTimer=setTimeout('hideAllBut(0)',500); }

function getTree(menuNum,itemNum) {
	// Array index is the menu number. The contents are null (if that menu is not a parent)
	// or the item number in that menu that is an ancestor (to light it up).
	itemArray=new Array(menu.length);
	while(1) {
		itemArray[menuNum]=itemNum;
		if (menuNum==0) return itemArray; // If we've reached the top of the hierarchy, return.
		itemNum=menu[menuNum][0].parentItem;
		menuNum=menu[menuNum][0].parentMenu; }}

// Pass an array and a boolean to specify color change, true=over color.
function changeCol(changeArray,isOver) {
	for (menuCount=0;menuCount<changeArray.length;menuCount++) {
		if (ColorActivePageBG && ((menuCount==ThisMenu && changeArray[menuCount]==ThisItem) || (menuCount==0 && changeArray[menuCount]==ThisMainMenuItem))) continue;
		if (changeArray[menuCount]) {
			newCol=isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
			// Change the colors of the div/layer background.
			with (menu[menuCount][changeArray[menuCount]].ref) {
				if (isNS4) bgColor=newCol;
				else backgroundColor=newCol; }}}}

function hideAllBut(menuNum) {
	var keepMenus=getTree(menuNum,1);
	for (count=0; count<menu.length; count++)
		if (!keepMenus[count])
			menu[count][0].ref.visibility='hidden';
	changeCol(litNow,false); }

// MENU CONSTRUCTION FUNCTIONS

function Menu(isVert,popInd,x,y,width,overCol,backCol,borderClass,textClass) {
	this.isVert=isVert; // True or false - a vertical menu?
	this.popInd=popInd; // The popout indicator used (if any) for this menu.
	this.x=x; // Position and size settings.
	this.y=y;
	this.width=width;
	// Colors of menu and items.
	this.overCol=overCol;
	this.backCol=backCol;
	// The stylesheet class used for item borders and the text within items.
	this.borderClass=borderClass;
	this.textClass=textClass;
	// Parent menu and item numbers, indexed later.
	this.parentMenu=null;
	this.parentItem=null;
	this.ref=null; } // Reference to the object's style properties (set later).

function Item(text,href,frame,length,spacing,target) {
	this.text=text;
	this.href=href;
	this.frame=frame;
	this.length=length;
	this.spacing=spacing;
	this.target=target;
	this.ref=null; } // Reference to the object's style properties (set later).

function RepositionMenus() {
	if (!isDOM && !isIE4) return;
	for (currMenu=0;currMenu<menu.length;currMenu++) with (menu[currMenu][0]) {
		var itemX=0,itemY=0;
		for (currItem=1;currItem<menu[currMenu].length;currItem++) with (menu[currMenu][currItem]) {
			var itemID='menu'+currMenu+'item'+currItem;
			if (isDOM || isIE4) {
				document.getElementById(itemID).style.left=itemX;
				document.getElementById(itemID).style.top=itemY; }
			if (isVert) itemY += length+spacing;
			else itemX += length+spacing; }}
	with(menu[0][0]) {
		ref.left=x+CalculateHorizontalIndent();
		ref.top=y;
		ref.visibility='visible'; }}

// Since some browsers (not IE) don't support onResize in the body tag, use another way to reload the page if resized.
function CheckForResize() {
	if (window.innerWidth)
		if (window.innerWidth!=ResizeFlag) {
			RepositionMenus();
			ResizeFlag=window.innerWidth; }}
if (window.innerWidth) {
	var ResizeFlag=window.innerWidth;
	setTimeout('CheckForResize()',1000); }

// If a table is used to center the page, defined as id="MainTable", then calculate an indent
// to adjust for the centering.
function CalculateHorizontalIndent() {
	if (document.getElementById('MainTable') && window.innerWidth) {
		if (window.innerWidth<document.getElementById('MainTable').width) return 0;
		return (window.innerWidth-document.getElementById('MainTable').width)/2; }
	else if (document.getElementById('MainTable') && document.getElementById('MainTable').offsetLeft)
		return document.getElementById('MainTable').offsetLeft;
	else return 0; }

function writeMenus() {
	if (!isDOM && !isIE4 && !isNS4) return;
	var FontThis,uselink;
	if (ColorActivePageBG && ThisMainMenuItem) menu[0][ThisMainMenuItem].backCol=ActivePageBGCol;
	for (currMenu=0;currMenu<menu.length;currMenu++) with (menu[currMenu][0]) {
		var str='',itemX=0,itemY=0; // Variable for holding HTML for items and positions of next item.
		// Remember, items start from 1 in the array (0 is menu object itself, above).
		// Also use properties of each item nested in the other with() for construction.
		for (currItem=1;currItem<menu[currMenu].length;currItem++) with (menu[currMenu][currItem]) {
			var itemID='menu'+currMenu+'item'+currItem;
			// The width and height of the menu item - dependent on orientation!
			var w=(isVert ? width : length);
			var h=(isVert ? length : width);

			// Create a div or layer text string with appropriate styles/properties.
			if (ColorActivePageBG && currItem==ThisItem && currMenu==ThisMenu) menu[currMenu][currItem].backCol=ActivePageBGCol;
			if (isDOM || isIE4) {
				if (document.getElementById(itemID)) document.getElementById(itemID).innerHTML="";
				str += '<div id="'+itemID+'" style="position: absolute; left: '+itemX+'; top: '+itemY+'; width: '+w+'; height: '+h+'; visibility: inherit; z-index: 100;';
				if (backCol) str += 'background: '+backCol+'; ';
				str += '" '; }
			if (isNS4) {
				str += '<layer id="'+itemID+'" left="'+itemX+'" top="'+itemY+'" width="'+ w+'" height="'+h+'" visibility="inherit" ';
				if (backCol) str += 'bgcolor="'+backCol+'" '; }
			if (borderClass) str += 'class="'+borderClass+'" ';

			// Add mouseover handlers and finish div/layer.
			str += 'onMouseOver="popOver('+currMenu+','+currItem+')" onMouseOut="popOut('+currMenu+','+currItem+')">';

			// Flag whether to change the color on the menu text item.
			if (ColorActivePageFG && ThisMainMenuItem && ((currMenu==0 && currItem==ThisMainMenuItem) || (currMenu==ThisMenu && currItem==ThisItem))) FontThis=1;
			else FontThis=0;

			// Add contents of item (default: table with link inside).
			// In IE/NS6+, add padding if there's a border to emulate NS4's layer padding.
			// If a target frame is specified, also add that to the <a> tag.
			if (href.length)
				uselink='<a class="'+textClass+'" href="'+href+'"'+(frame ? ' target="'+frame+'">' : '>')+
(FontThis ? '<font color='+ActivePageFGCol+'>' : '')+text+(FontThis ? '</font>' : '')+'</a>';
			else uselink=(FontThis ? '<font color='+ActivePageFGCol+'>' : '')+text+(FontThis ? '</font>' : '');
			str+='<table width="'+(w - 8)+'" border="0" cellspacing="0" cellpadding="'+(!isNS4 && borderClass ? 3 : 0)+
'"><tr><td align="left" height="'+(h - 7)+'">'+uselink+'</td>';
			if (target>0) {
				// Set target's parents to this menu item.
				menu[target][0].parentMenu=currMenu;
				menu[target][0].parentItem=currItem;
				// Add a popout indicator.
				if (popInd) str += '<td class="'+textClass+'" align="right">'+popInd+'</td>'; }
			str += '</tr></table>'+(isNS4 ? '</layer>' : '</div>');
			if (isVert) itemY += length+spacing;
			else itemX += length+spacing; }
		if (isDOM) {
			var newDiv=document.createElement('div');
			document.getElementsByTagName('body').item(0).appendChild(newDiv);
			newDiv.innerHTML=str;
			ref=newDiv.style;
			ref.position='absolute';
			ref.left=x; ref.top=y;
			ref.visibility='hidden'; }

		// Insert a div tag to the end of the BODY with menu HTML in place for IE4.
		if (isIE4) {
			document.body.insertAdjacentHTML('beforeEnd','<div id="menu'+currMenu+'div" '+'style="position: absolute; visibility: hidden">'+str+'</div>');
			ref=getSty('menu'+currMenu+'div'); }

		// In NS4, create a reference to a new layer and write the items to it.
		if (isNS4) {
			ref=new Layer(0);
			ref.document.write(str);
			ref.document.close(); }

		for (currItem=1;currItem<menu[currMenu].length;currItem++) {
			itemName='menu'+currMenu+'item'+currItem;
			if (isDOM || isIE4) menu[currMenu][currItem].ref=getSty(itemName);
			if (isNS4) menu[currMenu][currItem].ref=ref.document[itemName]; }}
	with(menu[0][0]) {
		ref.left=x+CalculateHorizontalIndent();
		ref.top=y;
		ref.visibility='visible'; }}

// Syntaxes: START EDITING HERE, READ THIS SECTION CAREFULLY!
// 
// menu[menuNumber][0]=new Menu(Vertical menu? (true/false), 'popout indicator', left, top,
// width, 'mouseover color', 'background color', 'border stylesheet', 'text stylesheet');
// 
// Left and Top are measured on-the-fly relative to the top-left corner of its trigger, or
// for the root menu, the top-left corner of the page.
// 
// menu[menuNumber][itemNumber]=new Item('Text', 'URL', 'target frame', length of menu item,
//	additional spacing to next menu item, number of target menu to popout);
//
// If no target menu (popout) is desired, set it to 0. Likewise, if your site does not use
// frames, pass an empty string as a frame target.
// 
// Something that needs explaining - the Vertical Menu setup. You can see most menus below
// are 'true', that is they are vertical, except for the first root menu. The 'length' and
// 'width' of an item depends on its orientation -- length is how long the item runs for in
// the direction of the menu, and width is the lateral dimension of the menu. Just look at
// the examples and tweak the numbers, they'll make sense eventually :).
// 
// In order to allow this same code file to work with different web pages, the following
// variables need to be set (not defined) in the web page that uses this Javascript files
// if menu item highlighting for the current web page is desired.
// - ThisMainMenuItem : This is the item on the main menu that was used to access any submenus to access this page.
// - ThisMenu : This is the menu number of the menu used to access this page.
// - ThisItem : This is the item number on the menu used to access this page.
// These variables are used by the code to set the foreground or background color on the main menu item
// and in the lower-most popup item.  Note that items in middle menus will not be highlighted.
// If no highlighting is desired, then simply don't set any of these (they are definined and initialized
// to zero below) .

var menu=new Array();

// Default colors passed to most menu constructors (just passed to functions, not
// a global variable - makes things easier to change later in bulk).
var defOver='#131B3B',defBack='#17234d';

// Items used to determine the highlighting of the menu choices that resolve to the active page.
var ActivePageFGCol='#A9A9A9'; // foreground color
var ActivePageBGCol='#071C3F'; // background color
var ColorActivePageFG=1; // Flag that determines if the text on the menu items corresponding to the active page is highlighted.
var ColorActivePageBG=0; // Flag that determines if the bacground on the menu items corresponding to the active page is highlighted.
// Change these values to actual values in the HTML page AFTER this JS file is called if you want
// to use menu highlighting to flag the current page menu choices.	These must be defined somewhere
// to avoid JavaScript errors, so they are initialized here.
var ThisMainMenuItem=ThisMenu=ThisItem=0;

// Default 'length' of menu items - item height if menu is vertical, width if horizontal.
var defLength = 22;

// Menu 0 is the special, 'root' menu from which everything else arises.
menu[0] = new Array();
// MOVE ROOT MENU AROUND HERE.
menu[0][0] = new Menu(false, '', 155, 90, 25, '', '', '', 'itemText');
// Notice how the targets are all set to nonzero values...
// The 'length' of each of these items is the first number, and the spacing is identified next. The last number relates to the menu or submenu that this item calls.
menu[0][1] = new Item('<img border="0" width="129" height="18" alt="Find Photos" src="/images/menu2.jpg">', '/sseop/clickmap/', '', 130, 00, 1);
menu[0][2] = new Item('<img border="0" width="140" height="18" alt="Collections" src="/images/menu3.jpg">', '/Coll/', '', 75, 63, 2);
menu[0][3] = new Item('<img border="0" width="140" height="18" alt="Information" src="/images/menu4.jpg">', '/Info/', '', 75, 65, 3);
menu[0][4] = new Item('<img border="0" width="140" height="18" alt="Where is Your ISS?" src="/images/menu5.gif">', 'http://external.jsc.nasa.gov/events/issphotos/', '_blank', 75, 65, 0);

// Find Photos menu.
menu[1] = new Array();
// The Home menu is positioned 20px across and 19 down from its trigger, and is 160 wide.
// All text in this menu has the stylesheet class 'item' -- see the <style> section above.
// Non-zero target means this will trigger a popout
menu[1][0] = new Menu(true, '<b>:</b>', 20, 19, 160, defOver, defBack, 'itemBorder', 'itemText');
menu[1][1] = new Item('Search', '', '', defLength, 0, 5);
menu[1][2] = new Item('Weekly Top 10', '/Coll/weekly.htm', '', defLength, 0, 0);
menu[1][3] = new Item('Photo Info', '', '', defLength, 0, 6);

     // Search, Find Photos Submenu.
     menu[5] = new Array();
     menu[5][0] = new Menu(true, '<b>:</b>', 161, 0, 180, defOver, defBack, 'itemBorder', 'itemText');
     menu[5][1] = new Item('Clickable Map', '/sseop/clickmap/', '', defLength, 0, 0);
     menu[5][2] = new Item('Mission-Roll-Frame', '/sseop/mrf.htm', '', defLength, 0, 0);
     menu[5][3] = new Item('Technical', '/sseop/technical.htm', '', defLength, 0, 0);
     menu[5][4] = new Item('Uncataloged ESC', '/sseop/SearchCameraFileNadir.htm', '', defLength, 0, 0);
     
     // Photo Info, Find Photos Submenu.
     menu[6] = new Array();
     menu[6][0] = new Menu(true, '<b>:</b>', 161, 0, 160, defOver, defBack, 'itemBorder', 'itemText');
     menu[6][1] = new Item('About Photos', '/Info/about.htm', '', defLength, 0, 0);
     menu[6][2] = new Item('Order Photos', '/Info/order.htm', '', defLength, 0, 0);
     menu[6][3] = new Item('Conditions for Use', '/Info/use.htm', '', defLength, 0, 0);
     menu[6][4] = new Item('FAQs', '/faq.htm', '', defLength, 0, 0);

// Collections menu.
menu[2] = new Array();
menu[2][0] = new Menu(true, '<b>:</b>', 34, 19, 180, defOver, defBack, 'itemBorder', 'itemText');
menu[2][1] = new Item('Earth Observatory', '/Coll/EarthObservatory/PostedSort.htm', '', defLength, 0, 0);
menu[2][2] = new Item('Mission Highlights', '/debrief/', '', defLength, 0, 0);
menu[2][3] = new Item('Earth From Space', '/sseop/EFS/', '', defLength, 0, 0);
menu[2][4] = new Item('Cities Collection', '/cities/', '', defLength, 0, 0);
menu[2][5] = new Item('Whole Earth (Earth Disc)', '/scripts/sseop/PhotoIdSets/PhotoIdSets.pl?set=EarthDisc', '', defLength, 0, 0);
menu[2][6] = new Item('IPY Images', '/scripts/sseop/PhotoIdSets/PhotoIdSets.pl?set=IPY', '', defLength, 0, 0);
menu[2][7] = new Item('Weekly Top 10', '/Coll/weekly.htm', '', defLength, 0, 0);
menu[2][8] = new Item('Education', '', '', defLength, 0, 8);
menu[2][9] = new Item('Screensavers', '/Coll/Ssaver.htm', '', defLength, 0, 0);

     // Education, Collections Submenu.
     menu[8] = new Array();
     menu[8][0] = new Menu(true, '<b>:</b>', 181, 0, 240, defOver, defBack, 'itemBorder', 'itemText');
     menu[8][1] = new Item('Earths Systems from Space', '/education/ESS', '', defLength, 0, 0);
     menu[8][2] = new Item('How to Find Mt. Everest', '/education/Everest/', '_blank', defLength, 0, 0);
     menu[8][3] = new Item('Canyons, Craters & Drifting Dunes', '/newsletter/planetary/sld001.htm', '_blank', defLength, 0, 0);
     menu[8][4] = new Item('Where in the World Image Quiz', "JavaScript:MakePopup('/quiz/quiz.pl?',980,700)", '', defLength, 0, 0);

// Information menu.
menu[3] = new Array();
menu[3][0] = new Menu(true, '<b>:</b>', 31, 19, 160, defOver, defBack, 'itemBorder', 'itemText');
menu[3][1] = new Item('About Us', '/Info/aboutus.htm', '', defLength, 0, 9);
menu[3][2] = new Item('Our Images', '', '', defLength, 0, 10);
menu[3][3] = new Item('Mission Photography', '', '', defLength, 0, 11);
menu[3][4] = new Item('Related Sites', '', '', defLength, 0, 12);
menu[3][5] = new Item('Publications', '', '', defLength, 0, 13);
menu[3][6] = new Item('Database', '', '', defLength, 0, 14);

     // About Us, Information Submenu.
     menu[9] = new Array();
     menu[9][0] = new Menu(true, '<b>:</b>', 161, 0, 160, defOver, defBack, 'itemBorder', 'itemText');
     menu[9][1] = new Item('Factsheet', '/Info/Eobs.pdf', '_blank', defLength, 0, 0);
     menu[9][2] = new Item('Contact Us', '/Info/contact.htm', '', defLength, 0, 0);
     menu[9][3] = new Item('FAQs', '/faq.htm', '', defLength, 0, 0);
     menu[9][4] = new Item('Subscriptions', '', '', defLength, 0, 15);
     menu[9][5] = new Item('Website Awards', '/Info/awards.htm', '', defLength, 0, 0);
     menu[9][6] = new Item('User Comments', '/Info/kudos.htm', '', defLength, 0, 0);
     menu[9][7] = new Item('Server Statistics', '/stats/', '', defLength, 0, 0);
     // menu[10][8] = new Item('Sitemap', '', '', defLength, 0, 0);

          // Subscriptions, Information, About Us Submenu.
     	  menu[15] = new Array();
     	  menu[15][0] = new Menu(true, '<b>:</b>', 161, 0, 140, defOver, defBack, 'itemBorder', 'itemText');
     	  menu[15][1] = new Item('Subscribe', '/distribution/', '', defLength, 0, 0);
     	  menu[15][2] = new Item('Verify Subscription', '/distribution/verify.htm', '', defLength, 0, 0);
     	  menu[15][3] = new Item('Password Remind', '/distribution/pass.htm', '', defLength, 0, 0);
     	  menu[15][4] = new Item('Unsubscribe', '/distribution/unsub.htm', '', defLength, 0, 0);

     // Our Images, Information Submenu.
     menu[10] = new Array();
     menu[10][0] = new Menu(true, '<b>:</b>', 161, 0, 160, defOver, defBack, 'itemBorder', 'itemText');
     menu[10][1] = new Item('About the Photos', '/Info/about.htm', '', defLength, 0, 0);
     menu[10][2] = new Item('Order Photos', '/Info/order.htm', '', defLength, 0, 0);
     menu[10][3] = new Item('Conditions for Use', '/Info/use.htm', '', defLength, 0, 0);
     menu[10][4] = new Item('Editing', '', '', defLength, 0, 4);
     menu[10][5] = new Item('Calculations', '', '', defLength, 0, 7);
     menu[10][6] = new Item('Saving & Printing', '/Info/color.htm', '', defLength, 0, 0);
     
     		 // Editing, Information, Our Images Submenu.
     		 menu[4] = new Array();
     		 menu[4][0] = new Menu(true, '<b>:</b>', 161, 0, 180, defOver, defBack, 'itemBorder', 'itemText');
     		 menu[4][1] = new Item('Image Transformation Tutorial', '/newsletter/Transformations/', '', defLength, 0, 0);
     		 menu[4][2] = new Item('Color Enhancement', '/Info/color2.htm', '', defLength, 0, 0);
     		 
     		 // Calculations, Information, Our Images Submenu.
     		 menu[7] = new Array();
     		 menu[7][0] = new Menu(true, '<b>:</b>', 161, 0, 180, defOver, defBack, 'itemBorder', 'itemText');
     		 menu[7][1] = new Item('Time to Position', '/time2pos/default.htm', '_blank', defLength, 0, 0);
     		 menu[7][2] = new Item('Position to Time', '/pos2time/default.htm', '_blank', defLength, 0, 0);

     // Mission Photography, Information Submenu.
     menu[11] = new Array();
     menu[11][0] = new Menu(true, '<b>:</b>', 161, 0, 190, defOver, defBack, 'itemBorder', 'itemText');
     menu[11][1] = new Item('Space Station Window', '/worf/', '', defLength, 0, 0);
     menu[11][2] = new Item('ISS Orbit Tutorial', '/orbtutor/page1.htm', '', defLength, 0, 0);
     menu[11][3] = new Item('Cameras Used', '/sseop/metadata/camera.htm', '', defLength, 0, 0);
     menu[11][4] = new Item('Real-Time Orbital Positions', 'http://spaceflight.nasa.gov/realdata/tracking/index.html', '_blank', defLength, 0, 0);
     
     // Related Sites, Information Submenu.
     menu[12] = new Array();
     menu[12][0] = new Menu(true, '<b>:</b>', 161, 0, 160, defOver, defBack, 'itemBorder', 'itemText');
     menu[12][1] = new Item('Earth Science Sites', '/Links/earth.htm', '', defLength, 0, 0);
     menu[12][2] = new Item('NASA Sites', '/Links/nasa.htm', '', defLength, 0, 0);
     menu[12][3] = new Item('NOAA Sites', '/Links/noaa.htm', '', defLength, 0, 0);
     menu[12][4] = new Item('Other Gov Sites', '/Links/gov.htm', '', defLength, 0, 0);
     
     // Publications, Information Submenu.
     menu[13] = new Array();
     menu[13][0] = new Menu(true, '<b>:</b>', 161, 0, 160, defOver, defBack, 'itemBorder', 'itemText');
     menu[13][1] = new Item('Earth Observatory', '/Coll/EarthObservatory/PostedSort.htm', '', defLength, 0, 0);
     menu[13][2] = new Item('Publication List', '/newsletter/PubsList.htm', '', defLength, 0, 0);
     menu[13][3] = new Item('Submit a Publication', '/newsletter/SubmitPub.htm', '', defLength, 0, 0);
     menu[13][4] = new Item('Online Publications', '/newsletter/OnlinePubs.htm', '', defLength, 0, 0);
     menu[13][5] = new Item('News Archive', '/newsletter/NewsArchives/', '', defLength, 0, 0);
     menu[13][6] = new Item('ISS for IPY','/IPY/IPY-ISS_tech_report_Rev11-03-06.pdf','',defLength,0,0);
     
     // Database, Information Submenu.
     menu[14] = new Array();
     menu[14][0] = new Menu(true, '<b>:</b>', 161, 0, 160, defOver, defBack, 'itemBorder', 'itemText');
     menu[14][1] = new Item('Database Content', '/sseop/DbCon.htm', '', defLength, 0, 0);
     menu[14][2] = new Item('Database Fields', '/sseop/DbFields.htm', '', defLength, 0, 0);
     menu[14][3] = new Item('Database Change Log', '/scripts/sseop/DBChange/DBChange.pl', '', defLength, 0, 0);


// OPTIONAL CODE FROM HERE DOWN

// This is a quick snippet that captures all clicks on the document and hides the menus
// every time you click.

if (isNS4) document.captureEvents(Event.CLICK);
document.onclick = clickHandle;

function clickHandle(evt) {
	if (isNS4) document.routeEvent(evt);
	hideAllBut(0); }

