//set global variables

var rolltimeout = setTimeout('donothing();', 500);

var wHeight;
var pPos;

tmot = null;
ma = "";
mb = "";
mc = "";
md = "";

adja = 0;
adjb = 0;
adjc = 0;
adjd = 0;

var hilita;
var hilitb;
var hilitc;
var hilitd;


function donothing() {
}

function sethilit() {

	hilita = cb_getImage('az','a0');
	hilitb = cb_getImage('bz','b0');
	hilitc = cb_getImage('cz','c0');
	hilitd = cb_getImage('dz','d0');
}


//load menu tiles

	if (document.images) {
		t_mnu_off = new Image();
		t_mnu_off.src = "/images/t_mnu_off.gif";
		t_mnu_on = new Image();
		t_mnu_on.src = "/images/t_mnu_on.gif";
				
		t_mnu_che_off = new Image();
		t_mnu_che_off.src = "/images/t_mnu_che_off.gif";
		t_mnu_che_on = new Image();
		t_mnu_che_on.src = "/images/t_mnu_che_on.gif";
				
		t_hme_off = new Image();
		t_hme_off.src = "/images/t_hme_off.gif";
		t_hme_on = new Image();
		t_hme_on.src = "/images/t_hme_on.gif";
	
	}
        
//cross-browser code
	
function cb_getElement(elemID) {
	if (document.layers != null) 
		return eval('document.layers["' + elemID + '"]');
	else if (document.all != null)
		return eval('document.all.' + elemID + '');
	else return document.getElementById(elemID);

}

function cb_getElementStyle(elemID) {
	if (document.layers != null)
		return eval('document.layers["' + elemID + '"]');
	else if (document.all != null) {
		if (eval('document.all.' + elemID))
			return eval('document.all.' + elemID + '.style');
		else return null;
	}
 	else {
		if (document.getElementById(elemID))
			return document.getElementById(elemID).style;
		else return null;
	}
}

function cb_getImage(elemID,imgID) {
	if (document.layers != null) {
		if (elemID == null) return eval('document.images["' + imgID + '"]');
		else
			return eval('document.layers["' + elemID + '"].document.images["' + imgID + '"]');
	}
	else
		return eval('document.images["' + imgID + '"]');
} 



function cb_getElementHeight(elemID) {
	if (document.layers != null) 
	        return eval('document.layers[' + elemID + '].clip.height');
	else if (document.all != null)
	     return eval(elemID + ".offsetHeight");
	else {
            obj = document.getElementById(elemID);
            return parseInt(document.defaultView.getComputedStyle(obj, "").getPropertyValue("height"));
	}
}


function cb_setElementHeight(elemID, newHeight) {
	if (document.layers != null) 
	    document.layers[elemID].clip.height = newHeight;
	else if (document.all != null)
            eval(elemID + ".style.pixelHeight=" + newHeight);
        else 
            document.getElementById(elemID).style.height = newHeight + "px";
}




 
//parse mouseover values to determine current and parent menus

function mousetickle (clm,row) {

	clearTimeout(rolltimeout);
	
	windowStats();

	if (clm=="a") {
		ma = row;
		mb = "";
		mc = "";
		md = "";
		
		adjb = 0;
		
		mnuon(clm,row);
		
	}
	
	if (clm=="b") {
	
		mb = row - ma + adjb;
		mc = "";
		md = "";
		
		adjc = 0;
		
		mnuon(clm,row);
		
	}
	
	if (clm=="c") {
	
		mc = row - ma - mb + adjb + adjc;
		md = "";
		
		adjd = 0;
		
		mnuon(clm,row);
	}
	
	if (clm=="d") {
		md = row - ma - mb - mc + adjb + adjc + adjd;
		
		mnuon(clm,row);
	}
	
if (ma != "-1" && mb != "-1" && mc != "-1" && md != "-1") {

	//menu column b
	
	if (clm == "a") {
	
	cb_getElementStyle("bx").visibility = "hidden";	
	cb_getElementStyle("by").visibility = "hidden";		
	cb_getElementStyle("bz").visibility = "hidden";
	
	cb_getElementStyle("cx").visibility = "hidden";	
	cb_getElementStyle("cy").visibility = "hidden";		
	cb_getElementStyle("cz").visibility = "hidden";
	
		if (eval('window.j_mnua' + ma) != null) {
			tp = ma * 20;
			bt = tp +  (eval('j_mnua' + ma +'.length')*20) + 1;
			mnu = "j_mnua" + ma;
			
			hider();
						
			if ( (pPos + wHeight) < (105+bt) ) {
			
				adjb =  parseInt((((105+bt) - (pPos + wHeight)) / 20) + 0.5);
				
				if ((ma-adjb) < -4) {
					adjb = (-4 - ma) * -1;
				}
				
			tp = tp - (adjb*20);
			bt = bt - (adjb*20);	
			
			}

			writer ('by',tp,mnu,'submenu');
			
			chevron ('b',ma-adjb,mnu);
			clipper ('b',tp+80,bt+80);

			x = ma+mb
		}
	}


	//menu column c
	
	if (clm == "b") {
	
	cb_getElementStyle("cx").visibility = "hidden";	
	cb_getElementStyle("cy").visibility = "hidden";		
	cb_getElementStyle("cz").visibility = "hidden";
	
	cb_getElementStyle("dx").visibility = "hidden";	
	cb_getElementStyle("dy").visibility = "hidden";		
	cb_getElementStyle("dz").visibility = "hidden";
	
	
		if (eval('window.j_mnua' + ma + 'b' + mb) != null) {

			tp = (ma + mb - adjb) * 20;
			bt = tp +  (eval('j_mnua' + ma + 'b' + mb + '.length')*20) + 1;
			mnu = "j_mnua" + ma + "b" + mb;
			
			if ( (pPos + wHeight) < (105+bt) ) {
			
				adjc =  parseInt((((105+bt) - (pPos + wHeight)) / 20) + 0.5);
				
				if ((ma+mb-adjb-adjc) < -4) {
					adjc = (-4 - ma - mb +adjb) * -1;
				}
				
				if (isInteger(adjc)) {
				} else {
				adjc = 0;
				}
				
			tp = tp - (adjc*20);
			bt = bt - (adjc*20);	
			
			}
	
			writer ('cy',tp,mnu,'submenu');
			chevron ('c',(ma+mb-adjb-adjc),mnu);
			clipper ('c',tp+80,bt+80);

			x = ma+mb+mc
		}
	}

	//menu column d
	
	if (clm == "c") {
		
	cb_getElementStyle("dx").visibility = "hidden";	
	cb_getElementStyle("dy").visibility = "hidden";		
	cb_getElementStyle("dz").visibility = "hidden";
	
		if (eval('window.j_mnua' + ma + 'b' + mb + 'c' + mc) != null) {

			tp = (ma + mb + mc - adjb - adjc) * 20;
			bt = tp +  (eval('j_mnua' + ma + 'b' + mb + 'c' + mc + '.length')*20) + 1;
			mnu = "j_mnua" + ma + "b" + mb + "c" + mc;
			
			if ( (pPos + wHeight) < (105+bt) ) {
			
				adjd =  parseInt((((105+bt) - (pPos + wHeight)) / 20) + 0.5);
				
				if ((ma+mb+mc-adjb-adjc-adjd) < -4) {
					adjd = (-4 - ma - mb - mc +adjb +adjc) * -1;
				}
				
				if (isInteger(adjd)) {
				} else {
				adjd = 0;
				}
				
			tp = tp - (adjd*20);
			bt = bt - (adjd*20);	
			
			}
	
			writer ('dy',tp,mnu,'submenu');
			chevron ('d',(ma+mb+mc-adjb-adjc-adjd),mnu);
			clipper ('d',tp+80,bt+80);

			x = ma+mb+mc+md
		}
	}
}

}

//write menu items in relevent 'y' layer

function writer (lyra,tp,mnu,sty,row) {

	if (document.layers != null) {
	
		txt = "";
		txt += "<table cellpadding='0' cellspacing='0' border='0'>";

		for (i=-4; i< (tp/20); i++) {
			txt += "<tr height='20'><td colspan='2' height='20'></td></tr>"
		}


		for (i=0; i < eval(mnu + '.length'); i++) {
			txt += "<tr height='20'><td height='20' valign='middle'>";
			txt += "<span class='n" + sty + "'>";
			txt += eval(mnu +'[' + i + '].nme');
			txt += "</span></td><td></td></tr>";
		}

		txt += "</table>";

		var lyr = document.layers[lyra].document;
		lyr.open();
		lyr.write(txt);
		lyr.close();

	
	} else {
	
		txt = "";

		for (i=-4; i< (tp/20); i++) {
			txt += "<span class='" + sty + "'>-<br></span>"
		}


		for (i=0; i < eval(mnu + '.length'); i++) {
			txt += "<span class='" + sty + "'>";
			txt += eval(mnu +'[' + i + '].nme');
			txt += "<br></span>";
		}
	
		cb_getElement(lyra).innerHTML = txt;

	}

}


//put chevron tiles on menu items with child menus

function chevron(clm,st,mnu) {

for (i=0; i<= eval(mnu+'.length')-1; i++) {
	if (eval(mnu +'[' + i + '].url') == "*") {
		
		ttt = "t_mnu_che_off";
		
		} else {
		
		ttt = "t_mnu_off";
		
		}
		
		cb_getImage((clm + "z"),(clm + (st+i))).src = eval(ttt + ".src")
		
	} 

}

//clip generic menus at top and bottom to display relevent portion, and set visibility to visible

function clipper (lyr,tp,bt) {

	if (document.layers != null) {
	
		cb_getElementStyle(lyr + 'x').clip.top = tp;
		cb_getElementStyle(lyr + 'x').clip.bottom = bt;
		
		cb_getElementStyle(lyr + 'y').clip.top = tp;
		cb_getElementStyle(lyr + 'y').clip.bottom = bt;
		
		cb_getElementStyle(lyr + 'z').clip.top = tp;
		cb_getElementStyle(lyr + 'z').clip.bottom = bt;
				
	 } else  {
	 
	 	if (lyr == "a") {
	 
		cb_getElementStyle(lyr + 'x').clip = 'rect('+tp+'px 153px '+bt+'px 0px)';
		cb_getElementStyle(lyr + 'y').clip = 'rect('+tp+'px 153px '+bt+'px 0px)';
		cb_getElementStyle(lyr + 'z').clip = 'rect('+tp+'px 153px '+bt+'px 0px)';
		
		} else {
		
		cb_getElementStyle(lyr + 'x').clip = 'rect('+tp+'px 162px '+bt+'px 0px)';
		cb_getElementStyle(lyr + 'y').clip = 'rect('+tp+'px 162px '+bt+'px 0px)';
		cb_getElementStyle(lyr + 'z').clip = 'rect('+tp+'px 162px '+bt+'px 0px)';
				
		}
	} 

	cb_getElementStyle(lyr + 'x').visibility = "visible";	
	cb_getElementStyle(lyr + 'y').visibility = "visible";		
	cb_getElementStyle(lyr + 'z').visibility = "visible";
}

//rollover images

function mnuon(clm,row) {
	
if (hilita == null) return;
		eval("ttt = hilit" + clm + ".src");
		ttt = ttt.substring (ttt.lastIndexOf('/')+1, ttt.lastIndexOf('_'));
		
		eval("hilit" + clm + ".src = " + ttt + "_off.src");
		
		if (document.layers != null) {		
			eval ("hilit" + clm + " = document.layers['" + clm + "z'].document.images['" + clm + row + "']");
		} else {		
			eval ("hilit" + clm + " = document.images['" + clm + row + "']");
		}
		
		eval("ttt = hilit" + clm + ".src");
		
		ttt = ttt.substring (ttt.lastIndexOf('/')+1, ttt.lastIndexOf('_'));
		
		eval("hilit" + clm + ".src = " + ttt + "_on.src");

}


//rolloff images

function mnuoff() {
if (hilita == null) return;
		ttt = hilita.src;
		
		ttt = ttt.substring (ttt.lastIndexOf('/')+1, ttt.lastIndexOf('_'));
		
		eval("hilita.src = " + ttt + "_off.src"); 		
}

//receive mouseoff, set timeout call to hideMenu
                        
function mouseuntickle(clm,row) {
	rolltimeout = setTimeout('hideMenu();', 1000);
}

//hide all menus except for initial 'a-level' menu

function hideMenu() {

	adja = 0;
	adjb = 0;
	adjc = 0;
	adjd = 0;

	unhider();		
	
	cb_getElementStyle("bx").visibility = "hidden";	
	cb_getElementStyle("by").visibility = "hidden";		
	cb_getElementStyle("bz").visibility = "hidden";
	
	cb_getElementStyle("cx").visibility = "hidden";	
	cb_getElementStyle("cy").visibility = "hidden";		
	cb_getElementStyle("cz").visibility = "hidden";
	
	cb_getElementStyle("dx").visibility = "hidden";	
	cb_getElementStyle("dy").visibility = "hidden";		
	cb_getElementStyle("dz").visibility = "hidden";
		
	mnuoff();
}
      	
//hide page content for pages containing forms
      	
function hider() {
	if (cb_getElement("content") != null) {
			cb_getElementStyle("content").visibility = "hidden";
	}
}

//reveal page content for pages containing forms

function unhider() {
	if (cb_getElement("content") != null) {
		cb_getElementStyle("content").visibility = "visible";
	}
}

//setting up initial 'a-level' menu

function opener() {

	if (window.j_mnu) {
	
	clearTimeout(tmot);

	bt = (j_mnu.length*20) + 81;
	mnu = "j_mnu";
	
	writer ('ay',0,mnu,'menu1');
	
	clipper ('a',80,bt);
	searchStyle = cb_getElementStyle("search");
	if (searchStyle != null)
		searchStyle.top = '' + (bt + 50);
		
	} else {
	
	tmot = setTimeout ("opener", 500);
	
	}
	
	sethilit();
}

//receive mouseclick and navigate to new url

function link(clm,row) {

	url = "j_mnu";
	
	if (clm == "a") {
	url += "[" + row + "]";
	}
	
	if (clm == "b") {
	url += "a" + ma + "[" + (row - ma + adjb) + "]";
	}
	
	if (clm == "c") {
	url += "a" + ma + "b" + mb + "[" + (row - ma -mb + adjb + adjc) + "]";
	}
	
	if (clm == "d") {
	url += "a" + ma + "b" + mb + "c" + mc + "[" + (row - ma - mb - mc + adjb + adjc + adjd) + "]";
	}
	
	if (eval(url + '.url') != "*") {
	
		if (eval(url + '.url').charAt(0) == "#") {
		
		popurl = eval(url + '.url')
				
		newnavwindow(popurl.substring(1, popurl.length));
		
		} else {

		document.location.href =  eval(url + '.url');
		
		}
	
	}
}

//function for popping up new windows from navbar

	var newnavwin = null;

	function newnavwindow(URL) {

		if (newnavwin != null)
		{
		 	if (newnavwin.closed == false)
			{
				newnavwin.focus();
			}
		}
		newnavwin = window.open(URL, "newwindow", "width=640,height=480,scrollbars=yes,menubar=yes,directories=yes,location=yes,toolbar=yes,resizable=yes");
	}

//function to measure window dimension status

function windowStats() {
	if (navigator.appName == "Netscape") {
		wHeight = window.innerHeight;
		pPos = pageYOffset;
	} else {
		wHeight = document.body.clientHeight;
		pPos = document.body.scrollTop;
	}
}

function isInteger(inputVal) {
	inputStr = inputVal.toString()
	for (i=0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i)
		if (i==0 && oneChar == "-") {
			continue
		}
		if (oneChar < "0" || oneChar > "9") {
			return false
		}
	}
	return true
}


