function glNav() {
	// purpose: assigns ids and classes to the global navigation items
	if ($('globalnav')) {
		// this is required for flyout submenus and graphical replacement of the top level navigation items
		var lis					= $('globalnav').childNodes;
		var count				= 0;
		var selectedClass 		= 'selected';

		for (var i=0; i<lis.length; i++) {
			if (lis[i].tagName && lis[i].tagName=='LI') {
				lis[i].id = 'glmenu'+count;
				lis[i].onmouseover = function () {
					if (this.getElementsByTagName('ul').length > 0) {
						for (var j=0; j<this.getElementsByTagName('ul').length; j++) {
							if (BrowserDetect.browser.toLowerCase()=='explorer' && parseFloat(BrowserDetect.version) < 7) {
								this.getElementsByTagName('ul')[j].style.display='block';
								if (this.getElementsByTagName('ul')[j].childNodes[0].tagName.toLowerCase() != 'iframe') {
									// IE script to cover <select> elements with <iframe>s
									var ieMat 				= document.createElement('iframe');
									ieMat.src				= "javascript:false";
									ieMat.scrolling			= "no";
									ieMat.frameBorder		= "0";
									ieMat.style.width		= this.getElementsByTagName('ul')[j].offsetWidth+"px";
									ieMat.style.height		= this.getElementsByTagName('ul')[j].offsetHeight+"px";
									ieMat.style.zIndex		= "-1";
									this.getElementsByTagName('ul')[j].insertBefore(ieMat, this.getElementsByTagName('ul')[j].childNodes[0]);
									this.getElementsByTagName('ul')[j].style.zIndex	= "101";
								}
							}else{
								this.getElementsByTagName('ul')[j].style.visibility='visible';
							}
						}
					}
					(this.className!==null)?this.className=selectedClass+' '+this.className:this.className=selectedClass;
				}
				lis[i].onmouseout = function () {
					if (this.getElementsByTagName('ul').length > 0) {
						for (var j=0; j<this.getElementsByTagName('ul').length; j++) {
							if (BrowserDetect.browser.toLowerCase()=='explorer' && parseFloat(BrowserDetect.version) < 7) {
								this.getElementsByTagName('ul')[j].style.display='none';
							}else{
								this.getElementsByTagName('ul')[j].style.visibility='hidden';
							}
						}
					}
					if (this.className.substring(0,selectedClass.length)===selectedClass) this.className=this.className.substring(selectedClass.length);
				}
				count++;
			}
		}
		$('globalnav').style.visibility='visible';
	}
}

function printIt() {  
	if (window.print) {
    	window.print();  
	} else {
    	var WebBrowser = '<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
		document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
    	WebBrowser1.ExecWB(6, 2); 
	}
}

function getParentByTagName(elm,tag) {
	if (elm == null) return elm;
	if (elm.tagName.toLowerCase() == tag.toLowerCase() && elm.nodeType == 1) return elm;
	else return getParentByTagName(elm.parentNode, tag);
}

function closeGetFlash(elm) {
	var el = getParentByTagName(elm,'div');
	if (el) el.style.display = 'none';
}

function showFlash() {
	var divs = document.getElementsByClassName('flashPlayerMessage');
	if (divs.length > 0) {
		for (var i=0; i<divs.length; i++) {
			divs[i].style.visibility='visible';
		}
	}
}

function formErrorSpacing() {
	if (document.getElementsByClassName('errMessage even').length > 0) {
		var els = document.getElementsByClassName('errMessage even');
		for (var i=0; i<els.length; i++) {
			if (els[i].getElementsByTagName('span').length > 0) els[i].parentNode.style.height = els[i].offsetHeight + 'px';
		}
	}
	//hide empty error containers
	if (document.getElementsByClassName('error').length > 0) {
		var els = document.getElementsByClassName('error');
		for (var i=0; i<els.length; i++) {
			if (els[i].getElementsByTagName('span').length == 0) els[i].style.display = 'none';
		}
	}
}

function handleComments() {
	if (document.getElementsByClassName('commentWrap').length > 0) {
		var c 		= document.getElementsByClassName('commentWrap');
		var show 	= 3;
		for (var i=0; i<c.length; i++) {
			var els = c[i].getElementsByClassName('comment');
			var sh 	= null;
			show	= els.length < show?els.length:show;
			// show the allowed number of comments
			if (els.length > 0) {
				for (var j=0; j<show; j++) {
					els[j].style.display='block';
				}
			}
			if (els.length > show) {
				// prepare the link to show/hide comments
				if (c[i].getElementsByClassName('showHide').length > 0) sh = c[i].getElementsByClassName('showHide')[0];
				if (sh) {
					if (sh.getElementsByTagName('span').length > 0) sh.getElementsByTagName('span')[1].style.display='none';
					sh.onclick = function() {
						var els = this.parentNode.getElementsByClassName('comment');
						if (els.length > show) {
							if (this.className == 'showHide selected') {
								this.className = 'showHide';
								if (this.getElementsByTagName('span').length > 0) {
									this.getElementsByTagName('span')[1].style.display='none';
									this.getElementsByTagName('span')[0].style.display='block';
								}
								for (var j=show; j<els.length; j++) {
									els[j].style.display='none';
								}
							} else {
								this.className = 'showHide selected'
								if (this.getElementsByTagName('span').length > 0) {
									this.getElementsByTagName('span')[0].style.display='none';
									this.getElementsByTagName('span')[1].style.display='block';
								}
								for (var j=show; j<els.length; j++) {
									els[j].style.display='block';
								}
							}
						}
						return false;
					};
					sh.style.display='block';
				}
			}
		}
	}
}

var winReference = null;
function openWindow(url, name, properties, openerName) {
	// ie4.x pc can't give focus to windows containing documents from a different domain
   // in this case, initially load a local interstisial page to allow focussing before loading final url
   var agent = navigator.userAgent.toLowerCase();
   if (agent.indexOf("msie 4") != -1 && agent.indexOf("win") != -1 && url.indexOf('http://') == 0) {
      winReference = window.open('about:blank', name, properties);
      setTimeout('if (winReference && !winReference.closed) winReference.location.replace("' + url + '")', 300);
   }
   else {
      winReference = window.open(url, name, properties);
   }

   // ie doesn't like giving focus immediately (to new window in 4.5 on mac; to existing ones in 5 on pc)
   setTimeout('if (winReference && !winReference.closed) winReference.focus()', 200);
   if (openerName) self.name = openerName;
   return winReference;
}

// browser detection to address older firefox issues
// source http://www.quirksmode.org/js/detect.html
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

function heightAdjust() {
	if ($("page")) {
		var myTag 		= $("page");
		var myHeight 	= 2000;
		var myScroll 	= 0;	
		if (typeof(window.innerHeight)=='number') {
	    	//Non-IE
			myHeight = window.innerHeight;
			myScroll = window.scrollMaxY;
		} else if (document.documentElement && document.documentElement.clientHeight) {
	    	//IE 6+ in 'standards compliant mode'
			myHeight = (document.documentElement.clientHeight < document.documentElement.scrollHeight)?document.documentElement.scrollHeight:document.documentElement.clientHeight;
		} else if (document.body && document.body.clientHeight) {
	    	//IE 4 compatible
	    	myHeight = (document.body.clientHeight < document.body.scrollHeight)?document.body.scrollHeight:document.body.clientHeight;
		}
		var myDiv = $('heightadjust');
		if (myDiv == null) {
			myDiv = document.createElement("div");
			myDiv.setAttribute("id","heightadjust");
			myTag.insertBefore(myDiv, myTag.firstChild);
		}
		myDiv.style.height = parseInt(myHeight+myScroll)+"px";
	}
}

BrowserDetect.init();
Event.observe(window, 'load', glNav);
Event.observe(window, 'load', showFlash);
Event.observe(window, 'load', formErrorSpacing);
Event.observe(window, 'load', handleComments);

if (BrowserDetect.browser.toLowerCase()=='firefox' && parseFloat(BrowserDetect.version) < 1.5) {
	function ffAdjust() {
		if (document.getElementsByTagName('input').length > 0) {
			var fs = document.getElementsByTagName('input');
			for (var i=0; i<fs.length; i++) {
				if (fs[i].className.indexOf('fileField') > -1) fs[i].className += ' ff1';
			}
		}
		if (document.getElementsByTagName('h1').length > 0) {
			var hs = document.getElementsByTagName('h1');
			for (var i=0; i<hs.length; i++) {
				hs[i].className += ' ff1';
			}
		}
	}
	//make firefox 1.0.x (and older) adjustments
	Event.observe(window, 'load', ffAdjust);
}
Event.observe(window, 'load', heightAdjust);
//Event.observe(window, 'resize', heightAdjust);