<!--

//Browser detection globals
var agt = navigator.userAgent.toLowerCase();
var MAJOR = parseInt(navigator.appVersion);
var MINOR = parseFloat(navigator.appVersion);

//Netscape version detection
var NAV = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
			&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
			&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));

var NAV4DOWN = (NAV && (MAJOR <= 4));
var NAV6UP = (NAV && (MAJOR >= 5));

//Internet Explorer detection
var IE = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

//Platform detection globals
var MAC = (agt.indexOf("mac")!=-1);

//Supress Javascript Error messages
//function handleError() {
//	return true;
//}

//Returns browser-independent reference to object style collection
function UTL_GetObjectStyle(strObjectID)
{
	if (IE) {
		if (document.all[strObjectID]) {
			return document.all[strObjectID].style;
		}
	} else if(NAV4DOWN) {
		if (document.layers[strObjectID]) {
			return document.layers[strObjectID];
		}
	} else {
		if (document.getElementById(strObjectID)) {
			return document.getElementById(strObjectID).style;
		}
	}
}

//Returns browser-independent reference to object
function UTL_GetObject(strObjectID)
{
	if (IE) {
		if (document.all[strObjectID]) {
			return document.all[strObjectID];
		}
	} else if(NAV4DOWN) {
		if (document.layers[strObjectID]) {
			return document.layers[strObjectID];
		}
	} else {
		if (document.getElementById(strObjectID)) {
			return document.getElementById(strObjectID);
		}
	}
}

//Alters the visibility of the object 'objObject' to 'bolVisible'
function UTL_ChangeVisibility(objObject, bolVisible)
{
	if (bolVisible)
	{
		//Display object
		objObject.visibility = 'visible';
	}
	else
	{
		objObject.visibility = 'hidden';
	}
}

//Gets the left position (x) of the specified element on the page
function UTL_GetElementLeft(eElement)
{
	//If no element passed, return 0
	if (eElement) {
		var nLeftPos = eElement.offsetLeft;
		var eParElement = eElement.offsetParent;
		while (eParElement != null)
		{
			nLeftPos += eParElement.offsetLeft;
			eParElement = eParElement.offsetParent;
		}
		return nLeftPos;
    } else {
		return 0;
	}
}

//Gets the top position (y) of the specified element on the page
function UTL_GetElementTop(eElement)
{
    //If no element passed, return 0
	if (eElement) {
		var nTopPos = eElement.offsetTop;
		var eParElement = eElement.offsetParent;
		while (eParElement != null)
		{
			nTopPos += eParElement.offsetTop;
			eParElement = eParElement.offsetParent;
		}
		return nTopPos;
	} else {
		return 0;
	}
}

//Sets up querystring handler
function UTL_QSHandler()
{
	//Extract querystring from url
	var qs = location.search.substr(1).split("&amp;");
	this.data = [];
	
	for(var i = 0; i < qs.length; i++) this.data[qs[i].split("=")[0]] = qs[i].split("=")[1];
	
	//Setup prototype
	this.QueryString = function(x) {return this.data[x];};
}
var UTL_Request = new UTL_QSHandler();
//-->