// get browser type
var agent = navigator.userAgent.toLowerCase();
var is_ie = ((agent.indexOf("msie") != -1) && (agent.indexOf("opera") == -1));

// main javascript functions

function galleryLink(link) {
	var links = get_links();
	document.location = links[link];
}

// show info for gallery section that mouse is over
function showGalleryInfo(gallery_section, map, description_text) {
	var descriptions = get_descriptions();
	var description_text = descriptions[gallery_section];

	// get description table cell: upper_level_description, main_level_description, lower_level_description
	description = document.getElementById(map + '_description');

	// uncomment to display gallery descritpions on mouseover
	//description.innerHTML = description_text;
}


// DROP DOWN MENUS
function highlight_nav(nav_id, drop_box_id, this_drop_down) {
	var nav = document.getElementById(nav_id);
	nav.style.color='#FFFFFF';

	var drop_box = document.getElementById(drop_box_id);
	drop_box.style.backgroundImage='url(/images/nav_bar_background.gif)';
	drop_box.style.backgroundRepeat='no-repeat';

	//this_drop_down.style.backgroundImage = 'url(/images/nav_bar_background.gif)';
	this_drop_down.style.backgroundRepeat='no-repeat';
	if (this_drop_down.childNodes[0].style) {
		//this_drop_down.childNodes[0].style.color = '#FFFFFF';
		this_drop_down.childNodes[0].style.color = '#AAAAAA';
	}
}

function unhighlight_nav(nav_id, drop_box_id, this_drop_down) {
	var nav = document.getElementById(nav_id);
	nav.style.color='#460708';

	var drop_box = document.getElementById(drop_box_id);
	drop_box.style.backgroundImage='';

	this_drop_down.style.color='#460708';
	this_drop_down.style.backgroundImage = '';
	if (this_drop_down.childNodes[0].style) {
		//this_drop_down.childNodes[0].style.color = '#602F2B';
		this_drop_down.childNodes[0].style.color = '#FFFFFF';
	}
}


var timer = 0;
var drop_down = "";

var drop_down_timer = 0;
var drop_down_timer_subs = 0;

var all_drop_downs = new Array();
/*
all_drop_downs.push("drop_box1");
all_drop_downs.push("drop_box2");
all_drop_downs.push("drop_box3");
all_drop_downs.push("volunteer");
all_drop_downs.push("volunteer2");
all_drop_downs.push("drop_box4");
all_drop_downs.push("drop_box5");
all_drop_downs.push("drop_box6");
all_drop_downs.push("swap");
all_drop_downs.push("programs");
all_drop_downs.push("education_exhibitions");
all_drop_downs.push("drop_box7");
all_drop_downs.push("drop_box8");
all_drop_downs.push("drop_box9");
*/

var sub_sub_menu_ids = new Array();


function show_drop_down(menu, hover_element, skip_hide) {

	/*
	main_nav_item = document.getElementById(menu);
	main_nav_item.style.backgroundImage='url(/images/nav_bar_background.gif)';
	main_nav_item.style.backgroundRepeat='no-repeat';
	*/

	//alert("show_drop_down(" + menu + "," + hover_element + ")");
	drop_down = document.getElementById(menu + "_drop_down");

	//alert("show drop_down: " + menu + "_drop_down");

	drop_down.style.left = getMenuX(menu);
	drop_down.style.top = getMenuY(menu);

	drop_down.style.visibility = 'visible';

	//alert("(" + drop_down.style.left + "," + drop_down.style.top + ")");

	// hide all other drop down menus
	if (!skip_hide) {
		var num_drop_downs = all_drop_downs.length;
		for (var i = 0; i < num_drop_downs; i++) {
			if (menu != all_drop_downs[i]) {

				// TODO: don't hide parent or child submenu of current menu item

				// FIX THIS!!!


				// don't hide parent submenu of current menu item
				var test_drop_down = document.getElementById(menu + "_drop_down");
				var test_drop_down_class_parts = test_drop_down.className.split(" ");
				//alert(test_drop_down_class_parts[1]);
				if (all_drop_downs[i] == test_drop_down_class_parts[1])
					continue;

				// don't hide child submenu of current menu item
				if (hover_element) {
					//alert("hover_element " + hover_element.className + " " + i + " " + all_drop_downs[i]);

					//alert(test_drop_down_class_parts[1]);
					if (all_drop_downs[i] == hover_element.className)
						continue;
				}


				if (menu == "volunteer" && all_drop_downs[i] == "drop_box1" ||
					menu == "drop_box1" && all_drop_downs[i] == "volunteer") {
					continue;
				}

				if (menu == "volunteer2" && all_drop_downs[i] == "drop_box3" ||
					menu == "drop_box3" && all_drop_downs[i] == "volunteer2") {
					continue;
				}

				if (menu == "programs" && all_drop_downs[i] == "drop_box6" ||
					menu == "drop_box6" && all_drop_downs[i] == "programs") {
					continue;
				}

				if (menu == "swap" && all_drop_downs[i] == "drop_box6" ||
					menu == "drop_box6" && all_drop_downs[i] == "swap") {
					continue;
				}

				if (menu == "education_exhibitions" && all_drop_downs[i] == "drop_box6" ||
					menu == "drop_box6" && all_drop_downs[i] == "education_exhibitions") {
					continue;
				}


				drop_down = document.getElementById(all_drop_downs[i] + "_drop_down");

				if (drop_down != null) {
					//alert("hiding " + all_drop_downs[i] + "_drop_down");
					drop_down.style.visibility = 'hidden';
				}
			}
		}
	}

	clearTimeout(drop_down_timer);
}

function hide_all_drop_downs() {
	var num_drop_downs = all_drop_downs.length;

	for (var i = 0; i < num_drop_downs; i++) {
		drop_down = document.getElementById(all_drop_downs[i] + "_drop_down");
		drop_down.style.visibility = 'hidden';
	}
}

function hide_drop_down(menu) {
	drop_down = document.getElementById(menu + "_drop_down");
	drop_down_timer = setTimeout("drop_down.style.visibility = 'hidden';", 50);
	//drop_down.style.visibility = 'hidden';
}

function hide_drop_down_immediate(menu) {
	//alert("hiding IMMEDIATE " + menu + "_drop_down");
	drop_down = document.getElementById(menu + "_drop_down");
	if (drop_down)
		drop_down.style.visibility = 'hidden';
}

function getMenuX(element_id){
	var xPos = document.getElementById(element_id).offsetLeft;
	var tempEl = document.getElementById(element_id).offsetParent;

	while (tempEl != null) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}

	var num_sub_sub_menu_ids = sub_sub_menu_ids.length;

	for (var i = 0; i < num_sub_sub_menu_ids; i++) {
		if (element_id == sub_sub_menu_ids[i]) {
			xPos = xPos + 210;

			if (is_ie) {
				xPos = xPos - 5;
			}
		}
	}

	//if (element_id == "swap" || element_id == "programs" || element_id == "education_exhibitions" || element_id == "volunteer" || element_id == "volunteer2") {
	//}

	//xPos = xPos + 151;

	return xPos;
}

function getMenuY(element_id) {
	var header = document.getElementById("header");
	var navbar = document.getElementById("navbar");

	var yPos = document.getElementById(element_id).offsetTop;
	var tempEl = document.getElementById(element_id).offsetParent;

	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}

	// vertical offset for submenus

	var num_sub_sub_menu_ids = sub_sub_menu_ids.length;
	var isSubMenu = false;

	for (var i = 0; i < num_sub_sub_menu_ids; i++) {
		if (element_id == sub_sub_menu_ids[i]) {
			isSubMenu = true;
			break;
		}
	}

	if (isSubMenu) {
		yPos = yPos - 5;
	}
	else
		yPos += 22;

	return yPos;
}

// BANNER IMAGE ROTATION
var banner_images = new Array();
var banner_urls = new Array();
var banner_rotate_delay = 5000;
var current_banner_index = 0;

var banner_image_directory = "/images/banners/";

function rotate_banner_image() {
	current_banner_index++;

	if (current_banner_index >= banner_images.length)
		current_banner_index = 0;

	Effect.Fade("banner_image", {to: 0.01});
	setTimeout("document.getElementById('banner_image_link').href=banner_urls[current_banner_index]; document.getElementById('banner_image').src= banner_image_directory + banner_images[current_banner_index];", 1000);

	setTimeout("Effect.Appear('banner_image');", 1000);

	setTimeout("rotate_banner_image();", banner_rotate_delay);
}



// get browser type
var agent = navigator.userAgent.toLowerCase();
var is_ie = ((agent.indexOf("msie") != -1) && (agent.indexOf("opera") == -1));

// Returns a true or false value for whether or not the suggested
// action was accepted
function dlgConfirm(text) {
    return confirm("Are you sure you want to execute the following action?\n\n" + text);
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {
  	if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    	document.MM_pgW=innerWidth; document.MM_pgH=innerHeight;
    	onresize=MM_reloadPage;
    }
  }
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function moveYbySlicePos (y, img) {
	if(!document.layers) {
		var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
		var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
		var par = img;
		var lastOffset = 0;
		while(par){
			if( par.topMargin && !onWindows ) y += parseInt(par.topMargin);
			if( (par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);
			if( par.offsetTop != 0 ) lastOffset = par.offsetTop;
			par = macIE45 ? par.parentElement : par.offsetParent;
		}		
	} else if (img.y >= 0) y += img.y;
	return y;
}

function formHandler(form){
    alert(form);
    var URL = document.form.url.options[document.form.url.selectedIndex].value;
    window.location.href = URL;
}

function goToURL(url) {
    var URL = url;
    window.location.href = URL;
}

function dbsyncUpdate () {
	response = confirm("Are you sure you wish to apply these changes?");
	if (response == true) document.sync.submit();
}

function findPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent)
		while(1) 
		{
		  curleft += obj.offsetLeft;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
		  curtop += obj.offsetTop;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;

	return curtop - GetScrollPositionY();
}

function GetScrollPositionY () {
	if (window.pageXOffset === undefined) {     // Internet Explorer
		var scrollLeft = Math.round (document.documentElement.scrollLeft);
		var scrollTop = Math.round (document.documentElement.scrollTop);

		scrollTop = (document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);
	}
	else {
		var scrollLeft =  window.pageXOffset;
		var scrollTop = window.pageYOffset;
	}
	//alert ("The current horizontal scroll amount: " + scrollLeft + "px");
	//alert ("The current vertical scroll amount: " + scrollTop + "px");

	return scrollTop;
}

