
		var PreloadCheckedImg = new Image();
		PreloadCheckedImg.src = "Images/Misc/ChkBox_On.gif";
		var PreloadUncheckedImg = new Image();
		PreloadUncheckedImg.src = "Images/Misc/ChkBox_Off.gif";

		//Capture Netscape MouseUp event when dragged off an ImageButton.
		if (document.addEventListener) {
			document.addEventListener('mouseup',CheckMouseUp,false);
		}
//-------------------------------------------------------------------------------------------------

		function getNamedElement(sElementName) {
			//Returns an Element object if an element named sElementName exists on the page.
			if (document.getElementById) {
				return document.getElementById(sElementName);
			}
			else if (document.all) {
				return document.all[sElementName];
			}
			else if (document.layers) {
				for (var i=0; i<document.anchors.length; i++) {
					if (document.anchors[i].name==sElementName) {
						return document.anchors[i]; 
					}
				}
			}
			return null;
		}
//-------------------------------------------------------------------------------------------------

		function getStyleProp(oElem, sPropCSS) {
			//Returns a current style property for an element.
			var sProp = "";
			for (var i=0; i < sPropCSS.length; i++) {
				sProp += (sPropCSS.charAt(i)=="-") ? sPropCSS.substr(++i,1).toUpperCase() : sPropCSS.substr(i,1);
			}
			if (oElem.currentStyle!=null) {
				return eval('oElem.currentStyle.' + sProp);
			} 
			else if (document.defaultView) {
				return (oElem.style[sProp]) ? oElem.style[sProp] : document.defaultView.getComputedStyle(oElem, null).getPropertyValue(sPropCSS);
			}
			return null;
		}
//-------------------------------------------------------------------------------------------------

		function CheckMouseUp() {
			//Finds any ImageButton currently pressed and releases it.
			var oInps = document.getElementsByTagName("input");
			if (oInps!=null) {
				for (var i=0; i<oInps.length; i++) {
					var sID = oInps[i].id;
					if (sID!=null) {
						var iPos = sID.indexOf("_Data");
						if ((iPos>0) && (oInps[i].title!=null)) {
							if (oInps[i].title.indexOf("true")>=0) {
								SetBtnStatus(sID.substr(0, iPos));
							}
						}
					}
				}
			}
		}
//-------------------------------------------------------------------------------------------------

		function SetBtnStatus(sName, oEvent) {
			//Sets the status (Pressed/Unpressed) for an ImageButton.
			//Sources and Status are stored and updated
			//using a hidden Input tag named "<ButtonName>_Data".
			var oBtn = getNamedElement(sName);
			if (oEvent) {
				var bFromSrc = (oEvent.target) ? (oEvent.target==oBtn) : (oEvent.srcElement==oBtn);
				var bLeftBtn = (oEvent.which) ? (oEvent.which==1) : (oEvent.button==1); //Only for MouseDown and MouseUp
				var iX = (oEvent.layerX) ? oEvent.layerX : oEvent.offsetX;
				var iY = (oEvent.layerY) ? oEvent.layerY : oEvent.offsetY;
				if ((oEvent.layerX) && (oBtn.tagName.toLowerCase()=="img")) {
					iX -= oBtn.offsetLeft;
					iY -= oBtn.offsetTop;
				}
				var bOverSrc = ((iX>=0) && (iX < oBtn.offsetWidth) && (iY>=0) && (iY < oBtn.offsetHeight));
				var sEvent = oEvent.type.toLowerCase()
			} else {
				//Came here from CheckMouseUp(). No event passed in.
				var bFromSrc = true;
				var bLeftBtn = true;
				var bOverSrc = false;
				var sEvent = "mouseup"
			}
			if (oBtn!=null) {
				var oData = getNamedElement(sName + "_Data");
				if (oData!=null) {
					var sValue = oData.value.toString();
					var sCurSrc = oBtn.src.toString().toLowerCase();
					var sSrcs = sValue.split("|");
					var sSrcUp = sSrcs[0].toString().toLowerCase();
					var sSrcDn = sSrcs[1].toString().toLowerCase();
					var sSrcHv = sSrcs[2].toString().toLowerCase();
					if (sCurSrc.indexOf(sSrcUp)>=0) sCurSrc = sSrcUp;
					if (sCurSrc.indexOf(sSrcDn)>=0) sCurSrc = sSrcDn;
					if (sCurSrc.indexOf(sSrcHv)>=0) sCurSrc = sSrcHv;
					var bMouseDown = (oData.title.toString()=="true") ? true : false;
					switch (sEvent) {
						case "mousemove" :
							if (bFromSrc && bOverSrc) {
								//Button is Event source and Mouse is over the button
								if (bMouseDown) {
									//Mouse is Down
									if (sCurSrc!=sSrcDn) {
										//Button is not Down (Press It)
										oBtn.src = sSrcDn;
										//oBtn.style.cursor = "pointer";
									}
								} else {
									//Mouse is not Down, but it's hovering
									if (sCurSrc!=sSrcHv) {
										//Hover source is not Button source (Show Hover)
										oBtn.src = sSrcHv;
										//oBtn.style.cursor = "pointer";
									}
								}
							} else if (bFromSrc) {
								//Button is Event source, but the Mouse is not over it
								if (sCurSrc!=sSrcUp) {
									//Mouse is Not over the Button, but it's Pressed or Hovering (Release It)
									oBtn.src = sSrcUp;
									//oBtn.style.cursor = "pointer";
								}
							}
							break;
						case "mousedown" :
							if (bLeftBtn) {
								oBtn.src = sSrcDn;
								//oBtn.style.cursor = "pointer";
								oData.title = "true"
							}
							break;
						case "mouseup" :
							if (bLeftBtn) {
								oBtn.src = sSrcUp;
								oData.title = "false"
								//oBtn.style.cursor = "pointer";
								oData.title = "false"
							}
							break;
						case "mouseout" :
							if (oBtn.src!=sSrcUp) {
								oBtn.src = sSrcUp;
								//oBtn.style.cursor = "pointer";
							}
							break;
						default :
							break;
					}
				}
			}
		}
//-------------------------------------------------------------------------------------------------

		function SetCheckStatus(sName) {
			//Sets the status (Checked/Unchecked) for a CheckBox.
			var sImgName = sName.toString() + "Image";
			var sStatName = sName.toString() + "Status";
			var sStat = "False"
			var oImg = getNamedElement(sImgName);
			var oStat = getNamedElement(sStatName);
			if (oStat!=null) {
				sStat = (oStat.value.toLowerCase()=="true") ? "False" : "True";
				oStat.value = sStat;
				oImg.src = (sStat=="True") ? "Images/Misc/ChkBox_On.gif" : "Images/Misc/ChkBox_Off.gif";
			}
		}
			
//-------------------------------------------------------------------------------------------------
