// 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(true,'',5,100,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('<b>Find&nbsp;Photos</b>','/sseop/clickmap/','',20,0,1);
menu[0][2]=new Item('<B>Collections</B>','/Coll/','',20,0,2);
menu[0][3]=new Item('<B>Information</B>','/Info/','',20,0,3);
menu[0][4]=new Item('<B>For&nbsp;Fun</B>','','',20,0,17);
menu[0][5]=new Item('<B>Videos</B>','/Videos/CrewEarthObservationsVideos/','',20,0,20);
menu[0][6]=new Item('<B>Connected</B>','','',20,0,15);

// 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>',88,0,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('Google Maps','/scripts/SSEOP/GoogleMapsQuery.pl','',defLength,0,0);
	menu[5][3]=new Item('Google Earth','/scripts/SSEOP/GoogleEarthQuery.pl','',defLength,0,0);
	menu[5][4]=new Item('Mission-Roll-Frame','/sseop/mrf.htm','',defLength,0,0);
	menu[5][5]=new Item('Technical','/sseop/technical.htm','',defLength,0,0);
	menu[5][6]=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>',88,0,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('Screensavers','/Coll/Ssaver.htm','',defLength,0,0);
menu[2][9]=new Item('Volcanoes','/scripts/sseop/Volcanoes/Volcanoes.pl','',defLength,0,0);
menu[2][10]=new Item('Custom','','',defLength,0,16);

	// Custom Collections submenu - DO NOT CHANGE THIS MENU SINCE IT IS MANAGED BY SOFTWARE!
	menu[16]=new Array();
	menu[16][0]=new Menu(true,'<b>:</b>',181,0,240,defOver,defBack,'itemBorder','itemText');

// Information menu.
menu[3]=new Array();
menu[3][0]=new Menu(true,'<b>:</b>',88,0,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);
menu[3][7]=new Item('Server Statistics','/stats/','',defLength,0,0);

	// 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('Website Awards','/Info/awards.htm','',defLength,0,0);
	menu[9][5]=new Item('User Comments','/Info/kudos.htm','',defLength,0,0);
	menu[9][6]=new Item('Server Statistics','/stats/','',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,300,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('Astronaut Photography on Other Gov Sites','/Links/gov.htm','',defLength,0,0);
	menu[12][5]=new Item('Sites that Use ISS Imagery','','',defLength,0,19);
	menu[12][6]=new Item('NASA, Government, Policies','','',defLength,0,18);

		// NASA, Government, Policies, Related Sites submenu
		menu[18]=new Array();
		menu[18][0]=new Menu(true,'<b>:</b>',301,0,300,defOver,defBack,'itemBorder','itemText');
		menu[18][1]=new Item('Web Accessibility and Policy Notices, NASA Web Privacy Policy','http://www.jsc.nasa.gov/policies.html','_blank',defLength*2,0,0);
		menu[18][2]=new Item('NASA Information on the American Recovery and Reinvestment Act of 2009','http://www.nasa.gov/recovery/index.html','_blank',defLength*2,0,0);
		menu[18][3]=new Item('Budgets, Strategic Plans and Accountability Reports','http://www.nasa.gov/news/budget/index.html','_blank',defLength*2,0,0);
		menu[18][4]=new Item('Equal Employment Opportunity Data Posted Pursuant to the No Fear Act','http://www.hq.nasa.gov/office/codee/nofear.html','_blank',defLength*2,0,0);
		menu[18][5]=new Item('Information-Dissemination Policies and Inventories','http://www.nasa.gov/about/contact/information_inventories_schedules.html','_blank',defLength*2,0,0);
		menu[18][6]=new Item('Freedom of Information Act','http://www.hq.nasa.gov/office/pao/FOIA/agency/','_blank',defLength,0,0);
		menu[18][7]=new Item('Privacy Policy &amp; Important Notices','http://www.nasa.gov/about/highlights/HP_Privacy.html','_blank',defLength,0,0);
		menu[18][8]=new Item('NASA Advisory Council','http://www.nasa.gov/offices/nac/home/index.html','_blank',defLength,0,0);
		menu[18][9]=new Item('Inspector General Hotline','http://oig.nasa.gov/hotline.html','_blank',defLength,0,0);
		menu[18][10]=new Item('Office of the Inspector General','http://oig.nasa.gov','_blank',defLength,0,0);
		menu[18][11]=new Item('NASA Communications Policy','http://www.nasa.gov/audience/formedia/features/communication_policy.html','_blank',defLength,0,0);
		menu[18][12]=new Item('Contact NASA','http://www.nasa.gov/about/contact/index.html','_blank',defLength,0,0);
		menu[18][13]=new Item('USA.gov','http://www.USA.gov','_blank',defLength,0,0);
		menu[18][14]=new Item('ExpectMore.gov','http://www.whitehouse.gov/omb/expectmore/','_blank',defLength,0,0);
		menu[18][15]=new Item('Open Government at NASA','http://www.nasa.gov/open/index.html','_blank',defLength,0,0);

		// Sites that Use ISS Imagery, Related Sites submenu
		menu[19]=new Array();
		menu[19][0]=new Menu(true,'<b>:</b>',301,0,300,defOver,defBack,'itemBorder','itemText');
		menu[19][1]=new Item('The National Snow and Ice Data Center, Glacier Photograph Collection','/scripts/disclaimer.pl?URL=http://nsidc.org/data/glacier_photo/index.html','_blank',44,0,0);
		menu[19][2]=new Item('NASA\'s Hurricane Resource Page','http://www.nasa.gov/mission_pages/hurricanes/main/','_blank',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);

// For Fun Menu
menu[17]=new Array();
menu[17][0]=new Menu(true,'<b>:</b>',88,0,280,defOver,defBack,'itemBorder','itemText');
menu[17][1]=new Item('Where is Your ISS?','http://external.jsc.nasa.gov/events/issphotos/','_blank',defLength,0,0);
menu[17][2]=new Item('Where in the World Image Quiz',"JavaScript:MakePopup('/quiz/quiz.pl?',980,700)",'',defLength,0,0);
menu[17][3]=new Item('Education','','',defLength,0,8);
if (document.location.host!="eol.jsc.nasa.gov")
	menu[17][4]=new Item('Astronaut Training <i>(astronauts only)</i>','/Training/','',defLength,0,0);

	// Education, For Fun submenu
	menu[8]=new Array();
	menu[8][0]=new Menu(true,'<b>:</b>',281,0,240,defOver,defBack,'itemBorder','itemText');
	menu[8][1]=new Item('Earth\'s 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);

// Videos Menu
menu[20]=new Array();
menu[20][0]=new Menu(true,'<b>:</b>',88,0,400,defOver,defBack,'itemBorder','itemText');
menu[20][1]=new Item('Up the East Coast of North America','/Videos/CrewEarthObservationsVideos/#eunitedstates_iss_20120129','',defLength,0,0);
menu[20][2]=new Item('Across Southwest Canada at Night','/Videos/CrewEarthObservationsVideos/#swcanada_iss_20120125','',defLength,0,0);
menu[20][3]=new Item('Mexico to New Brunswick','/Videos/CrewEarthObservationsVideos/#mexbrunswick_iss_20120130','',defLength,0,0);
menu[20][4]=new Item('North Dakota to Central Quebec','/Videos/CrewEarthObservationsVideos/#dakotaquebec_iss_20120126','',defLength,0,0);
menu[20][5]=new Item('Central Great Plains at Night','/Videos/CrewEarthObservationsVideos/#centplains_iss_20120130','',defLength,0,0);
menu[20][6]=new Item('Aurora Borealis over the Pacific Ocean','/Videos/CrewEarthObservationsVideos/#borealispacific_iss_20120125','',defLength,0,0);
menu[20][7]=new Item('Aurora Borealis over Northern North America and Canada','/Videos/CrewEarthObservationsVideos/#borealiscan_iss_20120129','',defLength,0,0);
menu[20][8]=new Item('Moonset over the Atlantic Ocean','/Videos/CrewEarthObservationsVideos/#moonset_iss_20120109','',defLength,0,0);
menu[20][9]=new Item('Over Africa, the Arabian Peninsula, and the Himalayas','/Videos/CrewEarthObservationsVideos/#africaarabiahimalayas_iss_20120102','',defLength,0,0);
menu[20][10]=new Item('Down the Persian Gulf at Night','/Videos/CrewEarthObservationsVideos/#persian_iss_20120101','',defLength,0,0);
menu[20][11]=new Item('Older Videos','/Videos/CrewEarthObservationsVideos/#camerneweng_iss_20120102','',defLength,0,0);


// Connected Menu
menu[15]=new Array();
menu[15][0]=new Menu(true,'<b>:</b>',88,0,260,defOver,defBack,'itemBorder','itemText');
menu[15][1]=new Item('RSS Feed','/sseop/NewPhotos.xml','',defLength,0,0);
menu[15][2]=new Item('Subscribe to Monthy Newsletter','/distribution/','',defLength,0,0);
menu[15][3]=new Item('Unsubscribe from Monthy Newsletter','/distribution/unsub.htm','',defLength,0,0);
menu[15][4]=new Item('Crew Earth Obs YouTube channel','/scripts/disclaimer.pl?URL=http://www.youtube.com/user/NASACrewEarthObs','_blank',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); }


