

function preload_menu_images() {
	// make sure that old browsers don't trip up on image arrays
	if (document.images) {
		//
		//  hover (mouseover) images here
		//
		buttonHover = new Object();
		buttonHover["mn_current"] = new Image(55,11);
		buttonHover["mn_current"].src = "/images/nav/mn_current_hover.gif";
		buttonHover["mn_portraits"] = new Image(65,11);
		buttonHover["mn_portraits"].src = "/images/nav/mn_portraits_hover.gif";
		buttonHover["mn_action"] = new Image(45,11);
		buttonHover["mn_action"].src = "/images/nav/mn_action_hover.gif";
		buttonHover["mn_advertising"] = new Image(78,11);
		buttonHover["mn_advertising"].src = "/images/nav/mn_advertising_hover.gif";
		buttonHover["mn_editorial"] = new Image(62,11);
		buttonHover["mn_editorial"].src = "/images/nav/mn_editorial_hover.gif";
		buttonHover["mn_motion"] = new Image(46,11);
		buttonHover["mn_motion"].src = "/images/nav/mn_motion_hover.gif";
		buttonHover["mn_archive"] = new Image(51,11);
		buttonHover["mn_archive"].src = "/images/nav/mn_archive_hover.gif";
		buttonHover["mn_contact"] = new Image(56,11);
		buttonHover["mn_contact"].src = "/images/nav/mn_contact_hover.gif";
		
		buttonHover["mn_previous"] = new Image(58,8);
		buttonHover["mn_previous"].src = "/images/nav/mn_previous_hover.gif";
		buttonHover["mn_next"] = new Image(30,8);
		buttonHover["mn_next"].src = "/images/nav/mn_next_hover.gif";
		
		buttonHover["mn_advertising_nike"] = new Image(24,10);
		buttonHover["mn_advertising_nike"].src = "/images/nav/mn_advertising_nike_hover.gif";
		buttonHover["mn_advertising_adidas"] = new Image(39,10);
		buttonHover["mn_advertising_adidas"].src = "/images/nav/mn_advertising_adidas_hover.gif";
		
		buttonHover["mn_archive_action"] = new Image(40,10);
		buttonHover["mn_archive_action"].src = "/images/nav/mn_archive_action_hover.gif";
		buttonHover["mn_archive_advertising"] = new Image(70,10);
		buttonHover["mn_archive_advertising"].src = "/images/nav/mn_archive_advertising_hover.gif";
		buttonHover["mn_archive_editorial"] = new Image(56,10);
		buttonHover["mn_archive_editorial"].src = "/images/nav/mn_archive_editorial_hover.gif";
		buttonHover["mn_archive_portraits"] = new Image(59,10);
		buttonHover["mn_archive_portraits"].src = "/images/nav/mn_archive_portraits_hover.gif";
		
	
		//
		//  normal (mouseout) images here
		//
		buttonNormal = new Object();
		buttonNormal["mn_current"] = new Image(55,11);
		buttonNormal["mn_current"].src = "/images/nav/mn_current_norm.gif";
		buttonNormal["mn_portraits"] = new Image(65,11);
		buttonNormal["mn_portraits"].src = "/images/nav/mn_portraits_norm.gif";
		buttonNormal["mn_action"] = new Image(45,11);
		buttonNormal["mn_action"].src = "/images/nav/mn_action_norm.gif";
		buttonNormal["mn_advertising"] = new Image(78,11);
		buttonNormal["mn_advertising"].src = "/images/nav/mn_advertising_norm.gif";
		buttonNormal["mn_editorial"] = new Image(62,11);
		buttonNormal["mn_editorial"].src = "/images/nav/mn_editorial_norm.gif";
		buttonNormal["mn_motion"] = new Image(46,11);
		buttonNormal["mn_motion"].src = "/images/nav/mn_motion_norm.gif";
		buttonNormal["mn_archive"] = new Image(51,11);
		buttonNormal["mn_archive"].src = "/images/nav/mn_archive_norm.gif";
		buttonNormal["mn_contact"] = new Image(56,11);
		buttonNormal["mn_contact"].src = "/images/nav/mn_contact_norm.gif";
		
		buttonNormal["mn_previous"] = new Image(58,8);
		buttonNormal["mn_previous"].src = "/images/nav/mn_previous_norm.gif";
		buttonNormal["mn_next"] = new Image(30,8);
		buttonNormal["mn_next"].src = "/images/nav/mn_next_norm.gif";
		
		buttonNormal["mn_advertising_nike"] = new Image(24,10);
		buttonNormal["mn_advertising_nike"].src = "/images/nav/mn_advertising_nike_norm.gif";
		buttonNormal["mn_advertising_adidas"] = new Image(39,10);
		buttonNormal["mn_advertising_adidas"].src = "/images/nav/mn_advertising_adidas_norm.gif";
		
		buttonNormal["mn_archive_action"] = new Image(40,10);
		buttonNormal["mn_archive_action"].src = "/images/nav/mn_archive_action_norm.gif";
		buttonNormal["mn_archive_advertising"] = new Image(70,10);
		buttonNormal["mn_archive_advertising"].src = "/images/nav/mn_archive_advertising_norm.gif";
		buttonNormal["mn_archive_editorial"] = new Image(56,10);
		buttonNormal["mn_archive_editorial"].src = "/images/nav/mn_archive_editorial_norm.gif";
		buttonNormal["mn_archive_portraits"] = new Image(59,10);
		buttonNormal["mn_archive_portraits"].src = "/images/nav/mn_archive_portraits_norm.gif";
	}
}


function nav_init() {
	
	// get <body> id value (indicates which page we're on)
	var page_id = document.getElementsByTagName('body');
	
	currentId = page_id[0].getAttribute('id');
	// swap image for the page we're on
	switch (currentId) {
		
		case 'current':
			set_active_image('mn_current');
			break;
		
		case 'portraits':
			set_active_image('mn_portraits');
			break;
			
		case 'action':
			set_active_image('mn_action');
			break;
		
		case 'advertising':
			set_active_image('mn_advertising');
			parentId = 'mn_advertising';
			show_menu(currentId);	
			break;
		
		case 'advertising_nike':
			set_active_image('mn_advertising');
			parentId = 'mn_advertising';
			show_menu('advertising');
			set_active_subcat('mn_advertising_nike');	
			break;
			
		case 'advertising_adidas':
			set_active_image('mn_advertising');
			parentId = 'mn_advertising';
			show_menu('advertising');
			set_active_subcat('mn_advertising_adidas');	
			break;
			
		case 'editorial':
			set_active_image('mn_editorial');
			break;
			
		case 'motion':
			set_active_image('mn_motion');
			break;
		
		case 'archive':
			set_active_image('mn_archive');
			parentId = 'mn_archive';
			show_menu('archive');
			break;
			
		case 'archive_portraits':
			set_active_image('mn_archive');
			parentId = 'mn_archive';
			show_menu('archive');
			set_active_subcat('mn_archive_portraits');
			break;
		
		case 'archive_action':
			set_active_image('mn_archive');
			parentId = 'mn_archive';
			show_menu('archive');
			set_active_subcat('mn_archive_action');
			break;
			
		case 'archive_advertising':
			set_active_image('mn_archive');
			parentId = 'mn_archive';
			show_menu('archive');
			set_active_subcat('mn_archive_advertising');
			break;
			
		case 'archive_editorial':
			set_active_image('mn_archive');
			parentId = 'mn_archive';
			show_menu('archive');
			set_active_subcat('mn_archive_editorial');
			break;
	}
}



function rollover(evt) {
	if (document.images) {
		// equalize W3C and IE event objects
		evt = (evt) ? evt : ((window.event) ? window.event : null);
		if (evt) {
			//equalize W3C and IE event property
			var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
			// filter out older browsers (elem=null) and unswappable elements
			if ((elem && elem.className == "rollover") || (elem && elem.className == "rollover_subcat")) {
				
				// don't swap image if the image is "active"
				if (elem.id != activeId) {
					// let the event type govern state of rollover
					switch (evt.type) {
			
						case "mouseover":
							if ((elem.className == "rollover") && (elem.id != parentId) && (parentId)) {
								// if we're moving out of a subcategory page and 
								// getting a new mouseover from one of the main
								// categories, then turn off the subcategory page
								// and turn off the hover state for its parent category
								//alert ('cleared parent= ' + parentId);
								
								var oldParent = document.getElementById(parentId);
								oldParent.src = buttonNormal[parentId].src;
								parentId = "";
								show_menu('none');
								
								if ((activeId == 'mn_advertising') || (activeId == 'mn_archive')) {
									//alert("go back to active subcat page");
									nav_init();
								}
							}
							
							// switch image to its hover state		
							elem.src = buttonHover[elem.id].src;
							
							// show subcategory pages if needed
							// and set its parent category
							switch (elem.id) {
								case 'mn_advertising':
									parentId = elem.id;
									show_menu('advertising');
									break;
								case 'mn_archive':
									parentId = elem.id;
									show_menu('archive');
									break;
								case 'mn_contact':
									parentId = elem.id;
									show_menu('contact');
									break;
								default:
									break;
							}
							// keep the subcategory page visible
							keepMenu();
							break;
							
						case "mouseout":
							
							// keep parent category open while we're
							// showing a subcategory page
							
							if (elem.id != parentId) {
								elem.src = buttonNormal[elem.id].src;
							}
							
							// turn off any subcategory pages if the
							// mouseout is from one of the main categories;
							// otherwise, keep the menu visible.
									
							if (elem.className == "rollover_subcat") {
								keepMenu();
							}
							else {
								// subcategory pages are "sticky" -
								// they don't disappear until another category
								// is hovered.
								if ((elem.id != "mn_contact") && (elem.id != "mn_advertising") && (elem.id != "mn_archive")) {
									if ((activeId == 'mn_advertising') || (activeId == 'mn_archive')) { 
										show_menu('none');
										nav_init();
									}
									else {
										requestHideMenu();
									}
								}
							}
							break;
							
						case "click":
							break;
					}
				}
			}
		}
	}
}


function set_active_image(imageId) {

	// could also use separate array for active images;
	// doesn't have to use buttonHover array
	
	var image = document.getElementById(imageId);
	
	if (activeId && (imageId != activeId)) {
		var active_img = document.getElementById(activeId);
		active_img.src = buttonNormal[activeId].src;
	}
	
	image.src = buttonHover[imageId].src;
	activeId = imageId;
}


function set_active_subcat(imageId) {

	// could also use separate array for active images;
	// doesn't have to use buttonHover array
	
	var image = document.getElementById(imageId);
	image.src = buttonHover[imageId].src;
}


function hide(objectId) {
	
	var obj = document.getElementById(objectId);
	obj.style.display = 'none';
}


function show(objectId) {
	
	var obj = document.getElementById(objectId);
	obj.style.display = 'block';
}


function show_menu(menu_name) {
	switch(menu_name) {
		case 'advertising':
			hide('subcategory_archive');
			hide('subcategory_contact');
			show('subcategory_advertising');
			
			break;
			
		case 'archive':
			hide('subcategory_contact');
			hide('subcategory_advertising');
			show('subcategory_archive');
			break;
		
		case 'contact':
			hide('subcategory_archive');
			hide('subcategory_advertising');
			show('subcategory_contact');
			break;
		
		case 'none':
			hide('subcategory_advertising');
			hide('subcategory_archive');
			hide('subcategory_contact');
			break;
			
		default:
			break;
	}
}


function keepMenu() {
	clearTimeout(menutimer);
}


function requestHideMenu(obj) {
	menutimer = setTimeout("show_menu('none')", 400);
}


function requestHideMenuFast(obj) {
	menutimer = setTimeout("show_menu('none')", 10);
}


var activeId = "";
var parentId = "";
var menutimer;

// need to figure out how to incorporate onclick event into rollover function


// bind events for rollovers
//document.onclick = rollover;
document.onmouseover = rollover;
document.onmouseout = rollover;

