	// 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="/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'],
		'm3':['0m3'],
		'm4':['0m4'],
		'm5':['0m5'],
		'm6':['0m6'],
		'm7':['0m7'],
		'm8':['0m8'],
		'm9':['0m9'],
		'm10':['0m10'],
		'm11':['0m11'],
		'm12':['0m12'],
		'm13':['0m13'],
		'm14':['0m14'],
		'm15':['0m15'],
		'm16':['0m16'],
		'm17':['0m17'],
		'm18':['0m18'],
		'm19':['0m19'],
		'm20':['0m20'],
		'm21':['0m21'],
		'm22':['0m22'],
		'm23':['0m23'],
		'm24':['0m24'],
		'm25':['0m25'],
		'm26':['0m26']
	};

	var special_on_off = {
		'0m1':1,
		'0m2':1,
		'0m3':1,
		'0m4':1,
		'0m5':1,
		'0m6':1,
		'0m7':1,
		'0m8':1,
		'0m9':1,
		'0m10':1,
		'0m11':1,
		'0m12':1,
		'0m13':1,
		'0m14':1,
		'0m15':1,
		'0m16':1,
		'0m17':1,
		'0m18':1,
		'0m19':1,
		'0m20':1,
		'0m21':1,
		'0m22':1,
		'0m23':1,
		'0m24':1,
		'0m25':1,
		'0m26':1
	};

	var show_triggers = {
		'0m1':{'m1':1},
		'0m2':{'m2':1},
		'0m3':{'m3':1},
		'0m4':{'m4':1},
		'0m5':{'m5':1},
		'0m6':{'m6':1},
		'0m7':{'m7':1},
		'0m8':{'m8':1},
		'0m9':{'m9':1},
		'0m10':{'m10':1},
		'0m11':{'m11':1},
		'0m12':{'m12':1},
		'0m13':{'m13':1},
		'0m14':{'m14':1},
		'0m15':{'m15':1},
		'0m16':{'m16':1},
		'0m17':{'m17':1},
		'0m18':{'m18':1},
		'0m19':{'m19':1},
		'0m20':{'m20':1},
		'0m21':{'m21':1},
		'0m22':{'m22':1},
		'0m23':{'m23':1},
		'0m24':{'m24':1},
		'0m25':{'m25':1},
		'0m26':{'m26':1}
	}

	var sub_menu_deps = {
	/*	'm6':['m1'],
		'm7':['m2'],
		'm8':['m2'],
		'm9':['m2'],
		'm10':['m2'],
		'm11':['m2'],
		'm12':['m2'],
		'm13':['m2'],
		'm14':['m2'],
		'm15':['m2'],
		'm16':['m2', 'm14'],
		'm17':['m2'],
		'm18':['m3'],
		'm19':['m2'], 
		'm20':['m4'], //bad
		'm21':['m4'], //bad
		'm22':['m2'],
		'm23':['m2'],
		'm24':['m4'], //bad
		'm25':['m2', 'm14'],
		'm26':['m2', 'm11'],
		'm27':['m3'] */
	};
	
	var number_of_divs = 26;
	var number_of_top_menus = 26;
	var number_of_menu_items = number_of_divs + 1; // 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=32; 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;
		}
	} 

/*	show_triggers['14m3'] = {'m2':1, 'm14':1, 'm25':1};  // an override for the two third level sub menus
	show_triggers['14m6'] = {'m2':1, 'm14':1, 'm16':1};  // an override for the two third level sub menus
	show_triggers['11m2'] = {'m2':1, 'm11':1, 'm26':1};  // an override for the two third level sub menus
*/
	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 +41;
		Xcomp = Xcomp -281;

		align_relative(getById("anchor"), getById("m1"), 1 + Xcomp, 19 + Ycomp);
		align_relative(getById("anchor"), getById("m2"), 121 + Xcomp, 19 + Ycomp);
		align_relative(getById("anchor"), getById("m3"), 241 + Xcomp, 19 + Ycomp);
		align_relative(getById("anchor"), getById("m4"), 361 + Xcomp, 19 + Ycomp);
		align_relative(getById("anchor"), getById("m5"), 481 + Xcomp, 19 + Ycomp);
		align_relative(getById("anchor"), getById("m6"), 120 + Xcomp, 47 + Ycomp);
		align_relative(getById("anchor"), getById("m7"), 240 + Xcomp, 19 + Ycomp);
		align_relative(getById("anchor"), getById("m8"), 240 + Xcomp, 47 + Ycomp);
		align_relative(getById("anchor"), getById("m9"), 240 + Xcomp, 61 + Ycomp);
		align_relative(getById("anchor"), getById("m10"), 240 + Xcomp, 75 + Ycomp);
		align_relative(getById("anchor"), getById("m11"), 240 + Xcomp, 103 + Ycomp);
		align_relative(getById("anchor"), getById("m12"), 240 + Xcomp, 117 + Ycomp);
		align_relative(getById("anchor"), getById("m13"), 240 + Xcomp, 131 + Ycomp);
		align_relative(getById("anchor"), getById("m14"), 240 + Xcomp, 159 + Ycomp);
		align_relative(getById("anchor"), getById("m15"), 240 + Xcomp, 89 + Ycomp);
		align_relative(getById("anchor"), getById("m16"), 359 + Xcomp, 229 + Ycomp);
		align_relative(getById("anchor"), getById("m17"), 240 + Xcomp, 201 + Ycomp);
		align_relative(getById("anchor"), getById("m18"), 360 + Xcomp, 75 + Ycomp);
		align_relative(getById("anchor"), getById("m19"), 240 + Xcomp, 187 + Ycomp);
		align_relative(getById("anchor"), getById("m20"), 480 + Xcomp, 47 + Ycomp);
		align_relative(getById("anchor"), getById("m21"), 480 + Xcomp, 85 + Ycomp);
		align_relative(getById("anchor"), getById("m22"), 240 + Xcomp, 145 + Ycomp);
		align_relative(getById("anchor"), getById("m23"), 240 + Xcomp, 33 + Ycomp);
		align_relative(getById("anchor"), getById("m24"), 480 + Xcomp, 33 + Ycomp);
		align_relative(getById("anchor"), getById("m25"), 359 + Xcomp, 187 + Ycomp);
		align_relative(getById("anchor"), getById("m26"), 359 + Xcomp, 117 + Ycomp);
		align_relative(getById("anchor"), getById("m27"), 360 + Xcomp, 19 + 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){
	
		// 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){
			
			img_id = major + 'm' + minor;
			img = getById(img_id);
			
			//img = document.images[major + 'm' + minor];
			
			//alert(img);
			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 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 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<=33; 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))
}



function getById(ID){
	if (document.getElementById) {
		return document.getElementById(ID);
	}
	else if ((document.all) && (eval ('document.all.' + ID))) {
		return eval ('document.all.' + ID);
	}
}
function hideIt(obj){
	if (typeof obj == 'string'){
		obj = getById(obj);
	}

			obj.style.display = 'none';
}
function showIt(obj){
	if (typeof obj == 'string'){
		obj = getById(obj);
	}

			obj.style.display = 'block';
}

function RH_onLoadAdd(string, unshift){
	alert (' hello from RH_onLoadAdd');
	if (typeof(RH_onLoadHolder) == undefined){
		RH_onLoadHolder = [];
		document.RH_onLoadTimeout = setTimeout('RH_onLoad()', 5000);
	}
	if (unshift == 1){
		RH_onLoadHolder.unshift(string);
	}
	else{
		RH_onLoadHolder.push(string);
	}
}
function RH_onLoad(){
	// why oh why is there only room for one onLoad per page?

    var body = document.getElementsByTagName('body')[0];
    if (body == undefined){
        setTimeout('RH_onLoad()', 100);
        return;
    }

	var i;
	var code;
	for (i=0; i<RH_onLoadHolder.length; i++){
		code = RH_onLoadHolder[i];

		alert ('now executing ' + code);
		eval(code);
	}
}



/* 2004-4-2 scott lindsey is hacking in detection of Safari */

/*
ua.js revision 0.200 2001-12-03

Contributor(s): Bob Clary, Netscape Communications, Copyright 2001

Netscape grants you a royalty free license to use, modify and 
distribute this software provided that this copyright notice 
appears on all copies.  This software is provided "AS IS," 
without a warranty of any kind.
*/

function xbDetectBrowser()
{
  var oldOnError = window.onerror;
  var element = null;

  window.onerror = null;
  
  // work around bug in xpcdom Mozilla 0.9.1
  window.saveNavigator = window.navigator;

  navigator.OS	= '';
  navigator.version  = parseFloat(navigator.appVersion);
  navigator.org	= '';
  navigator.family  = '';

  var platform;
  if (typeof(window.navigator.platform) != 'undefined')
  {
	platform = window.navigator.platform.toLowerCase();
	if (platform.indexOf('win') != -1)
	  navigator.OS = 'win';
	else if (platform.indexOf('mac') != -1)
	  navigator.OS = 'mac';
	else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)
	  navigator.OS = 'nix';
  }

  var i = 0;
  var ua = window.navigator.userAgent.toLowerCase();
  
  if (ua.indexOf('opera') != -1)
  {
	i = ua.indexOf('opera');
	navigator.family  = 'opera';
	navigator.org	= 'opera';
	navigator.version  = parseFloat('0' + ua.substr(i+6), 10);
  }
  else if ((i = ua.indexOf('msie')) != -1)
  {
	navigator.org	= 'microsoft';
	navigator.version  = parseFloat('0' + ua.substr(i+5), 10);
	
	if (navigator.version == 3)
	  navigator.family = 'ie3';
	else if(navigator.version == 4)
	  navigator.family = 'ie4';
	else
	  navigator.family = 'ie5';
  }
  else if ((i = ua.indexOf('safari')) != -1){
	navigator.family = 'safari';
	navigator.org = 'apple';
	navigator.version = 5;
  }
  else if (ua.indexOf('gecko') != -1)
  {
	navigator.family = 'gecko';
	var rvStart = navigator.userAgent.indexOf('rv:') + 3;
	var rvEnd = navigator.userAgent.indexOf(')', rvStart);
	var rv = navigator.userAgent.substring(rvStart, rvEnd);
	var decIndex = rv.indexOf('.');
	if (decIndex != -1)
	{
	  rv = rv.replace(/\./g, '')
	  rv = rv.substring(0, decIndex-1) + '.' + rv.substr(decIndex)
	}
	navigator.version = parseFloat(rv);

	if (ua.indexOf('netscape') != -1)
	  navigator.org = 'netscape';
	else if (ua.indexOf('compuserve') != -1)
	  navigator.org = 'compuserve';
	else
	  navigator.org = 'mozilla';
  }
  else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))
  {
	var is_major = parseFloat(navigator.appVersion);
	
	if (is_major < 4)
	  navigator.version = is_major;
	else
	{
	  i = ua.lastIndexOf('/')
	  navigator.version = parseFloat('0' + ua.substr(i+1), 10);
	}
	navigator.org = 'netscape';
	navigator.family = 'nn' + parseInt(navigator.appVersion);
  }
  else if ((i = ua.indexOf('aol')) != -1 )
  {
	// aol
	navigator.family  = 'aol';
	navigator.org	= 'aol';
	navigator.version  = parseFloat('0' + ua.substr(i+4), 10);
  }
  else if ((i = ua.indexOf('hotjava')) != -1 )
  {
	// hotjava
	navigator.family  = 'hotjava';
	navigator.org	= 'sun';
	navigator.version  = parseFloat(navigator.appVersion);
  }

  window.onerror = oldOnError;
}

xbDetectBrowser();

function setupRollovers() {
  if (!document.getElementsByTagName)
    return;
  var all_links = document.getElementsByTagName('li');
  for (var i = 0; i < all_links.length; i++) {
    var link = all_links[i]; 
    if (link.className &&
        (' ' + link.className + ' ').indexOf(' rollover ') != -1) {
        link.onmouseover = li_mouseover;
        link.onmouseout = li_mouseout;
    }
  }
}

function find_target(e)
{
  /* Begin the DOM events part, which you */
  /* can ignore for now if it's confusing */
  var target; 

  if (window.event && window.event.srcElement) 
    target = window.event.srcElement;
  else if (e && e.target)
    target = e.target;
  if (!target)
    return null;

  while (target != document.body &&
      target.nodeName.toLowerCase() != 'li')
    target = target.parentNode;

  if (target.nodeName.toLowerCase() != 'li')
    return null;

  return target;
}

function li_mouseover(e) {
  var target = find_target(e);
  if (!target) return;
  target.className = 'on';
  if (hide_timeout) clearTimeout(hide_timeout);
}

function li_mouseout(e) {
  var target = find_target(e);
  if (!target) return;
  target.className = 'off';
  hide_timeout = setTimeout("showMenus()", 500);
}




// When the page loads, set up the rollovers
window.onload = setupRollovers;
