	// Hey ya'll, hold ma beer an' watch this...
	var _popupcommonparams = "dependent=0,directories=0,location=0,menubar=0,resizeable=0,status=0,scrollbars=1,hotkeys=1,toolbar=1";
	var _helpwindowparams  = _popupcommonparams + ",height=500,width=500";
	var _pfwindowparams	   = _popupcommonparams + ",height=480,width=640";

	var _bVer   = navigator.appVersion;
	var _ns	    = (navigator.appName == "Netscape");
	var _safari = (_ns && _bVer.indexOf("Safari") > 0);
	var _kon    = ((navigator.appName == "Konqueror") || (_bVer.indexOf("KHTML") > 0));
	var _ns4    = (_ns && _bVer.charAt(0) == "4");
	var _ns6    = (_safari || ((_ns || _kon) && _bVer.charAt(0) == "5"));
	var _ie4    = (_bVer.indexOf("MSIE") > 0 && _bVer.charAt(0) == "4");
	var _ie5    = (_ie4 && _bVer.indexOf("5.") > 0);
	var _ie55   = (_ie5 && _bVer.indexOf("5.5") > 0);
	var _ie6    = (_ie4 && _bVer.indexOf("6.") > 0);
	var _bWin   = (_bVer.indexOf("Win") > 0);
	var _bMac   = (_bVer.indexOf("Mac") > 0);
	var _bOSX	= (_bMac && _bVer.indexOf("Mac OS X") > 0);
	var _bX11   = ((_bVer.indexOf("X11") > 0) || (_bVer.indexOf("Linux") > 0));
	var _bPNG   = (_ns4 || _ns6 || _ie55 || (_ie5 && _bMac) || _ie6);
	var _bTPNG  = (_bPNG && (_ns6 || (_ie5 && _bMac)));

	var _preloadImages = new Array();
	
	function giveFieldFocus(fld)	{ fld.focus(); if(fld.type == "text" || fld.type == "textarea") fld.select(); }
	function openHelpWindow(theUrl) { window.open(theUrl, "helpwindow", _helpwindowparams); return false;		  }
	function openPFWindow(theUrl)	{ window.open(theUrl, "pfwindow",	_pfwindowparams	 ); return false;		  }

	function _addPreloadImage(imageSrc) {
		var img = new Image();
		img.src = imageSrc;
		_preloadImages[_preloadImages.length] = img;
		return _preloadImages.length-1;
	}

	function _nestedRoll(doc, srcImageName, newImageSrc) {
		var i, layer;
		if(doc.images && doc[srcImageName]) { 
			doc[srcImageName].src = newImageSrc; 
            return true; 
		}
		else if(doc.layers) {
			for(i = 0; i < doc.layers.length; i++) { 
				if(_nestedRoll(doc.layers[i].document, srcImageName, newImageSrc)) return true; 
			}
			return false;
		}
		else return true;
	}

	function _roll(srcImageName, newImageSrc) { _nestedRoll(document, srcImageName, newImageSrc); }
    
    function _generalImageHandler(srcImageName, newImageSrc, statusText, otherAction, event, menuName, bUp) {
        if(statusText != null) window.status = statusText;
        if(srcImageName != null && newImageSrc != null) {
            if(_ie4) eval("document."+srcImageName+".src = \'"+newImageSrc+"\'");
            else _nestedRoll(document, srcImageName, newImageSrc);
        }
        if(otherAction != null) eval(otherAction);
        if(menuName != null) { if(bUp) HM_f_PopUp(menuName,event); else HM_f_PopDown(menuName); }
        return true;
    }
    
    function _generalImageButtonHandler(btn,newImageSrc,statusText,otherAction) {
        if(statusText != null) window.status = statusText;
        if(btn != null && newImageSrc != null) btn.src = newImageSrc;
        if(otherAction != null) eval(otherAction);
        return true;
    }

	function _getElemById(name) {
		if(name == "") return null;
		else if(_ns4) return _findElemLayer(name,document); 
		else if(_ns6) return document.getElementById(name);
		else if(_ie4) return eval("document.all."+name);
		else return null;
	}

	function _findElemLayer(name,doc) {
		var i, layer;
		for(i = 0; i < doc.layers.length; i++) {
			layer = doc.layers[i];
			if(layer.name == name) return layer;
			if(layer.document.layers.length > 0 && (layer = _findElemLayer(name, layer.document)) != null) return layer;
		}
		return null;
	}

	//=======================================================================
	// The positioning funtions will account for differences in the vertical
	// placement of object between NS4, NS6 and IE.	 The functions will
	// assume that IE is the norm and will add or subtract as needed for
	// the other browsers.
	//=======================================================================
	
	function _getElemTop(elem) {
		if(_ns4) return elem.top;
		else if(_ns6) return parseInt(elem.style.top);
		else if(_ie4) return elem.style.pixelTop;
		else return 0;
	}

	function _getElemLeft(elem) {
		if(_ns4) return elem.left;
		else if(_ns6) return parseInt(elem.style.left);
		else if(_ie4) return elem.style.pixelLeft;
		else return 0;
	}

	function _moveElemTo(elem, x, y) {
		var dx,dy,pelem;
		if(_ns4) elem.moveTo(x, y);
		else if(_ns6) {
			elem.style.top	= String(y) + "px";
			elem.style.left = String(x) + "px";
		}
		else if(_ie4) {
			dx = x + 6;
			dy = y;
			pelem = elem.parentElement;
			while(pelem != null) {
				dx -= pelem.offsetLeft;
				dy -= pelem.offsetTop;
				pelem = pelem.parentElement;
			}
			if(elem.style.pixelTop	!= dy) elem.style.pixelTop	= dy;
			if(elem.style.pixelLeft != dx) elem.style.pixelLeft = dx;
		}
	}

	function _fixedMoveElemTo(elem, x, y) {
		var dx,dy,pelem;
		if(_ns4) elem.moveTo(x, y);
		else if(_ns6) {
			elem.style.top	= String(y) + "px";
			elem.style.left = String(x) + "px";
		}
		else if(_ie4) {
			dx = x;
			dy = y - 10;
			if(_bMac) {
				dx += 6;
				dy += 10;
				pelem = elem.parentElement;
				while(pelem != null) {
					dx -= pelem.offsetLeft;
					dy -= pelem.offsetTop;
					pelem = pelem.parentElement;
				}
			}
			if(elem.style.pixelTop	!= dy) elem.style.pixelTop	= dy;
			if(elem.style.pixelLeft != dx) elem.style.pixelLeft = dx;
		}
	}

	function _moveElemBy(elem, dx, dy) { _moveElemTo(elem,_getElemLeft(elem)+dx,_getElemTop(elem)+dy); }
	function _hideElem(elem) { if(_ns4) elem.visibility = "hide"; else if(_ns6 || _ie4) elem.style.visibility = "hidden"; }
	function _showElem(elem) { if(_ns4) elem.visibility = "show"; else if(_ns6 || _ie4) elem.style.visibility = "visible"; }
	function _inheritElem(elem) { if(_ns4) elem.visibility = "inherit"; else if(_ns6 || _ie4) elem.style.visibility = "inherit"; }
	function _setElemBgColor(elem, color) { if(_ns4) elem.bgColor = color; else if(_ie4 || _ns6) elem.style.backgroundColor = color; }
	function _setElemFgColor(elem, color) { if(_ns4) elem.color = color; else if(_ie4 || _ns6) elem.style.color = color; }
