	// show_triggers has a key for each item, and the value is an array of item names

	window.onresize=handleResize;

	document.write('    <script type="text/javascript" src="/highschool/js/rh.js"><\/script>');

	// umm, global variable, yummy

	var hide_timeout;
	var all_images = [];
	var all_links = [];
	var finished_loading = 0;

	var menu_to_header = {
		'm1':['0m1'],
		'm2':['0m2']
	};

	var special_on_off = {
		'0m1':1,
		'0m2':1
	};

	var show_triggers = {
		'0m1':{'m1':1},
		'0m2':{'m2':1},
		'1m1':{'m1':1},
		'1m2':{'m1':1},
		'1m3':{'m1':1},
		'1m4':{'m1':1},
		'1m5':{'m1':1},
		'1m6':{'m1':1},
		'1m7':{'m1':1},
		'1m8':{'m1':1},
		'1m9':{'m1':1},
		'1m10':{'m1':1},
		'1m11':{'m1':1},
		'1m12':{'m1':1},
		'2m1':{'m2':1},
		'2m2':{'m2':1},
		'2m3':{'m2':1},
		'2m4':{'m2':1}
	}

	var sub_menu_deps = {
	};
	
	var number_of_divs = 2;
	var number_of_top_menus = 2;
	var number_of_menu_items = 16; // must be more than number of menu items in longest menu

	var all_items = [];
	
	var i;
	for (i=0; i<number_of_divs; i++){
		all_items[i] = 'm'+ (i+1);
	}

	var ii;
	var new_menu_holder;
	var this_menu_deps;

	for (i=6; i<=number_of_divs; i++){  // flesh out the show_triggers menu as most of it is derivable from sub_menu_deps
		this_menu_deps = sub_menu_deps['m' + i];

		new_menu_holder = {}
		new_menu_holder['m' + i] = 1;

		for (ii=0; ii<=this_menu_deps.length; ii++){
			new_menu_holder[this_menu_deps[ii]] = 1;
		}
		for (ii=1; ii<number_of_menu_items; ii++){
			show_triggers[i + 'm' + ii] = new_menu_holder;
		}
	} 

	var to_show = {};

	var saved_size = 0;

	function centerMenus(){
		// put the menus in the right location, relative to the anchor

		if (navigator.family == 'nn4'){
			saved_size = (innerWidth + ":" + innerHeight);
		}

		var Xcomp = 0;
		var Ycomp = 0;

		// quick hack for changed design...

		Ycomp = Ycomp +65;
		Xcomp = Xcomp +1;

		align_relative(getById("anchor"), getById("m1"), 425 + Xcomp, 23 + Ycomp);
		align_relative(getById("anchor"), getById("m2"), 499 + Xcomp, 23 + Ycomp);

	}
	function get_all_images_and_links(){
		var max_divs = number_of_menu_items;

		var i, ii;
		var temp;
		var zero_images = [];
/*		
		for (i=0; i<=number_of_menu_items; i++){
			temp = getById(0 + 'm' + (i+1));
			if (temp){
				zero_images[i] = temp;
			}
		}
*/
		all_images[0] = zero_images;
		
		for (i=1; i<=max_divs; i++){
			temp = get_images_for_div('m' + i);
			if (temp){
				all_images[i] = temp;
			}
			temp = get_links_for_div('m' + i);
			if (temp){
				all_links[i] = temp;
			}
		}
	}
	function populate_mOvers(){
		var i, ii;

		var div_images;
		var div_links;

		for (i=0; i<=number_of_menu_items; i++){  // iterating through divs...
			
			div_images = all_images[i];
			div_links = all_links[i];

			if (div_links){
				for (ii=0; ii<=number_of_menu_items; ii++){
					if (div_links[ii]){
						//div_links[ii].onmouseover = eval('mOver' + i + 'm' + (ii+1));
						//div_links[ii].onmouseout = eval('mOut' + i + 'm' + (ii+1));
						div_links[ii].onmouseover = magic_mOver;
						div_links[ii].onmouseout = magic_mOut;
						div_links[ii].major = i;
						div_links[ii].minor = (ii+1);
						div_images[ii].major = i;
						div_images[ii].minor = (ii+1);
					}
				}
			}
		}
	}
	function showMenus(){
		if (hide_timeout){
			clearTimeout(hide_timeout);
		}

		var menu_shows_ar;
		var i;
		var ii;
		var just_shown = {}

		for (i=1; i<=all_items.length; i++){ // iterating all divs (major)

			if (to_show[all_items[i-1]] == 1){ // if this div is one we should show...

				Show(all_items[i-1]);

				menu_shows_ar = menu_to_header[all_items[i-1]]; // get the array of headers, menu items to be turned on

				for(ii=0; ii<menu_shows_ar.length; ii++){
					mImgOn(menu_shows_ar[ii]);
					just_shown[menu_shows_ar[ii]] = 1;
				}

				for(ii=1; ii<number_of_menu_items; ii++){ //itterate all possible menu items for this div;
					if (special_on_off[i + 'm' + ii] == 1){
						if (just_shown[i + 'm' + ii] != 1){
							mImgOff(i + 'm' + ii);
						}
					}
				}
			}
			else{ // this is a div we should not show...
				Hide(all_items[i-1]);
			}
		}
		// now must hide uneeded headers...
		for (ii = 1; ii<=number_of_top_menus; ii++){
			if (just_shown[0 + 'm' + ii] != 1){
				mImgOff(0 + 'm' + ii);
			}
		}
	}
	
	function get_event_element(event){

		if (!event) event = window.event;

		if ((navigator.family == 'ie4') || (navigator.family == 'ie5')){
			return window.event.srcElement;
		}
		else{
			return event.target;
		}
	}
				
	function magic_mOver(event){

		var element = get_event_element(event);
		var major = element.major;
		var minor = element.minor;

		mOver(major, minor);
	}
    function magic_mOut(event){

		var element = get_event_element(event);
		var major = element.major;
		var minor = element.minor;

        mOut(major, minor);
    }
	function mOver(major, minor){

		if (navigator.family == 'nn4'){
			if (saved_size != (innerWidth + ":" + innerHeight)){
				//location.reload();
				centerMenus();
			}
		}
		// do appropriate mouseOver visual feedback

		if (special_on_off[major + 'm' + minor] != 1){
			mImgOn(major, (major,minor));
		}

		// register the items that need to be shown
		to_show = show_triggers[major + "m" + minor];

		// then call showMenus.
		showMenus();
	}
	function mOut(major, minor){

		// deactivate any mouseOver visual feedback
		
		if (special_on_off[major + 'm' + minor] != 1){
			mImgOff(major, (major,minor));
		}

		// unregister "this" item and it's parents
		to_show = {};

		// register call to showMenus in 500ms
		hide_timeout = setTimeout("showMenus()", 500);
	}

	function fetchImg(major, minor){
		var img;
	   
		if (major == 0){
			switch(navigator.family){
				case 'nn4':
					if (major == 0){
						img = document.images[major + 'm' + minor];
					}
					else{
						var div = getById("m" + major);
						img = div.document.images[major + 'm' + minor];
					}
				break;
				default:
					img = document.images[major + 'm' + minor];
				break;
			}
			return img;
		}
		return all_images[major][minor-1];
	}  
	function mImgOn(major, minor) {

		if (major.toString().indexOf('m') != -1){
		//	alert("mImgOn called with major " + major);
			minor = major.slice(major.indexOf('m')+1, major.length);
			major = major.slice(0, major.indexOf('m'));
		}
        /*
		var windowed = document.getElementById("cat");
        if (minor == 1){
            windowed.className = "hidden";
        }
*/
		var img = fetchImg(major, minor);

		if ((img) && (img.src.indexOf('_on.gif') == -1)){}
		else{
			return;
		}
		if (img.orig_src){}
		else{
			img.orig_src = img.src;
		}
		img.src = (img.src.slice(0, -4) + '_on.gif');

	}
	function mImgOff(major, minor) {

		if (major.toString().indexOf('m') != -1){
			minor = major.slice(major.indexOf('m')+1, major.length);
			major = major.slice(0, major.indexOf('m'));
		}

    /*    var windowed = document.getElementById("cat");
        if (minor == 1){
            windowed.className = "shown";
        }
	*/
		var img = fetchImg(major, minor);

		if ((img) && (img.orig_src)){}
		else{
			return;
		}

		img.src = img.orig_src;
	}
	function handleResize(){
		switch(navigator.family){
			case 'nn4':
				// will be handled by looking at window size in showMenus
			break;
			default:
				centerMenus();
			break;
		}
	}
	function preloadNav(){
		var i;
		var j;
		var img;

		for (i=0; i<=number_of_divs; i++) {  
			for (j=1; j<=23; j++) {
				img = fetchImg(i,j);
				if (img){
					eval("b"+i+" = new Image()");
					eval("b"+i+".src = (img.src.slice(0, -4) + '_on.gif')");
				}
			}
		}
	}
	function get_images_for_div(div_id){

		var div = getById(div_id);

		if (!div){
			return 0;
		}
		var imgs_array;

		switch(navigator.family){
			case 'nn4':
				imgs_array = div.document.images;
			break;
			default:
				imgs_array = div.getElementsByTagName('img'); 
			break;
		}
		return imgs_array;
	}
	function get_links_for_div(div_id){

		var div = getById(div_id);

		if (!div){
			return 0;
		}
		var links_array;

		switch(navigator.family){
			case 'nn4':
				links_array = div.document.links;
			break;
			default:
				links_array = div.getElementsByTagName('a'); 
			break;
		}
		return links_array;
	}
	

function NV_initialize(){
	centerMenus();
	get_all_images_and_links();
	populate_mOvers();
	finished_loading = 0;
	preloadNav();
}


function Show(div){
	showIt(getById(div))
}
function Hide(div){
	hideIt(getById(div))
}

