    // QUICK & DIRTY BROWSER DETECT
	var browserVersion = parseInt(navigator.appVersion);
	var agt=navigator.userAgent.toLowerCase();
	var is_major = parseInt(navigator.appVersion);
	var is_minor = parseFloat(navigator.appVersion);
	var is_safari = ((agt.match(/safari/)) ? true : false);
	var is_ns4 = ((document.layers) ? true : false);
    var isLayers = ((is_ns4) ? 1 : 0);
    var isAll = da = ((document.all) ? 1 : 0);
	var isID = ((document.getElementById) ? 1 : 0);
	var isDHTML = ((isID) ? 1 : ((isAll) ? 1 : ((isLayers) ? 1 : 0)));
    var isNet7 = (((navigator.appName.indexOf("Netscape") != -1) && (browserVersion > 4)) ? 1 : 0);
    var pr = ((window.print) ? 1 : 0);
    var mac = (navigator.userAgent.indexOf("Mac") != -1);
	// CORE PROPERTY/ATTRIBUTE VALUE "HOMOGENIZATION"
	var hidden = ((document.layers) ? "hide" : "hidden");
	var visible = ((document.layers) ? "show" : "visible");
	var toggle = "toggle";
	var px = ((document.layers) ? "" : "px");
	var style = ((document.layers) ? "" : ".style");
	
	// Array for validInputByRegExp
	presetRE =
	{
		phone: /[0-9\-\.\(\)extmb\#]/i,
		notphone: /[^0-9\-\.\(\)extmb\#]+/gi,
		phonealpha: /[0-9\-\. \(\)a-z\#]/i,
		notphonealpha: /[^0-9\-\. \(\)a-z\#]+/gi,
		zip: /[0-9\-]/,
		notzip: /[^0-9\-]+/g,
		address: /[^<>%\!\?\~\^\\\{\}\[\]]/,
		notaddress: /[<>%\!\?\~\^\\\{\}\[\]]+/g,
		alphanumeric:  /[^<>\?\~\^\\\{\}\[\]]/,
		notalphanumeric: /[<>\?\~\^\\\{\}\[\]]+/g,
		name: /[^<>%\#\!\@\?\~\^\\\{\}\[\]]/,
		notname: /[<>%\#\!\@\?\~\^\\\{\}\[\]]+/g,
		emailaddress: /[^ <>\\%]/,
		notemailaddress: /[ <>\\%]+/g,
		notes: /[^<>\^\{\}]/,
		notnotes: /[<>\^\{\}]+/g
	}
	presetRE['email'] = presetRE['emailaddress'];
	presetRE['notemail'] = presetRE['notemailaddress'];
	
	function initKeyPress()
	{
		if(document.layers)
		{
			document.captureEvents(Event.KEYPRESS);
			document.onkeypress = getKeyPress;
		}
	}

	function getKeyPress(e)
	{
		e = (e && e != "") ? e : (window.event) ? window.event : null;
		retKeyVal = (!e) ? null : (!document.all) ? String.fromCharCode(e.which) : String.fromCharCode(e.keyCode);
		if(document.layers && typeof e.target != "undefined" && typeof e.target.onkeypress != "undefined" && e.target.onkeypress != getKeyPress)
		{
			fS = e.target.onkeypress.toString().replace(/this[ ]*\,[ ]*event/,"e.target,e");
			fS = fS.substring((fS.indexOf("{") + 1),(fS.lastIndexOf("}") - 1));
			if(fS.indexOf("return") != -1) { fS = fS.replace(/return/,""); }
			eval(fS);
		}
		return retKeyVal;
	}

	function getKeyCode(e)
	{
		e = (e && e != "") ? e : (window.event) ? window.event : null;
		retKeyCode = (!document.all) ? e.which : e.keyCode;
		return retKeyCode;
	}

	function validInputByRegExp(obj, e, rE)
	{
		var key;
		var keychar;
		e = (e) ? e : null;
		rE = (typeof rE == "string") ? ((rE != "" && typeof presetRE[rE] != "undefined") ? presetRE[rE] : "") : rE;
		if(!rE)
			return;
		key = getKeyCode(e);
		keychar = (document.layers) ? String.fromCharCode(key) : getKeyPress(e);
		// allow use of  control keys
		/*
		0 = null;
		8 = backspace;
		9 = horizontal tab/down arrow
		13 = carriage return/enter
		27 = esc
		*/
		if((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) || (key==189) || (key==191) || (key==190) || (key==187))
		{
			return true;
		}
		if((keychar + "").match(rE))
		{
			return true;
		}
		return false;
	}
	
	// ** BEGIN (c) Copyright 2002 Adobe// ** BEGIN (c) Copyright 2002 Adobe
	function findObj(n, ly)
	{
		if(is_major < 4) return document[n];
		var curDoc = ly ? ly.document : document;
		var elem = curDoc[n];
		if(!elem)
		{
			for(var i=0;i<curDoc.layers.length;i++)
			{
				elem = findObj(n,curDoc.layers[i]);
				if(elem) return elem;
			}
		}
		return elem;
	}
	
	function getObjRef(objId)
	{
		objRef = false;
		objRef = (document.layers) ? findObj(objId) : (document.getElementById) ? eval("document.getElementById(\"" + objId + "\")") : (document.all) ? eval("document." + objId) : false;
		if(document.layers && !objRef) { objRef = (typeof document[objId] != "undefined") ? document[objId] : false; };
		return objRef;
	}

	function getStyRef(objId)
	{
		styRef = false;
		styRef = (document.layers) ? findObj(objId) : (document.getElementById) ? eval("document.getElementById(\"" + objId + "\").style") : (document.all) ? eval("document." + objId + ".style") : false;
		if(document.layers && !styRef) { styRef = (typeof document[objId] != "undefined") ? document[objId] : false; };
		return styRef;
	}

	function getWinDims()
	{
        winDim = ( ((typeof winDim == "undefined") || (typeof winDim.length == "undefined") || (typeof winDim == "string")) ? {} : winDim );
		winDim["w"] = (document.all) ? document.body.clientWidth : (document.documentElement) ? document.documentElement.offsetWidth : (!document.all && !document.layers) ? window.innerWidth : (document.layers) ? innerWidth : false;
		winDim["h"] = (document.all) ? document.body.clientHeight : (document.documentElement) ? document.documentElement.offsetHeight : (!document.all && !document.layers) ? window.innerHeight : (document.layers) ? innerHeight : false;
		return winDim;
	}

    function rNm(nM)
    {
    	nM = ((nM && !isNaN(parseInt(nM))) ? parseInt(nM) : 9);
    	rnV = (Math.round(Math.floor((Math.random() * nM))));
    	return rnV;
    }

    overflowCount = 0;
    onLoadEvents = [];
    function processOnload(onLArray)
    {
        onLArray = (onLArray && typeof onLArray.length != "undefined" && typeof onLArray != "string") ? onLArray : ((typeof onLoadEvents != "undefined" && typeof onLoadEvents.length != "undefined" && typeof onLoadEvents != "string") ? onLoadEvents : ["1+1"]);
        for(onLI=0;onLI<onLArray.length;onLI++)
        {
            if(onLArray[onLI] != "")
            {
                /*
                if(confirm("Execute: \n" + onLArray[onLI] + " ?\n" + onLI + "/" + onLArray.length))
                {
                */
                    eval(onLArray[onLI]);
                /*
                }
                */
            }
        }
    }

    function safeOnload(onL)
    {
        onL = (onL) ? onL : false;
        pageOtherOnLoad = (window.onload != null && overflowCount < 101010 && ((typeof onLoadEvents != "undefined") && (onLoadEvents.length < 1))) ? window.onload : null;
        window.onload = null;
        otherOnloadStr = (pageOtherOnLoad && typeof pageOtherOnLoad == "function") ? "pageOtherOnLoad();" : "";
        if(otherOnloadStr != "")
        {
            onLoadEvents[onLoadEvents.length] = otherOnloadStr;
        }
        //eval("newOnLoad = function() { " + onL + "" + ((onL.toString().charAt(onL.toString().length - 1) == ";") ? "" : ";") + " " + otherOnloadStr + " };");
        //confirm(window.onload + "\n\n" + newOnLoad);
        onLoadEvents[onLoadEvents.length] = onL + "" + ((onL.toString().charAt(onL.toString().length - 1) == ";") ? "" : ";");
        overflowCount ++;
        if(overflowCount >= 101010) return false;
        if(window.onload == null)
        {
            window.onload = processOnload
        }
        return;
    }

    function getId(obj)
    {
        nwRnd = rNm(1000);
        dtStr = new Date();
        dtStr = dtStr.getTime() + nwRnd;
        obj.id = (obj.id != "") ? obj.id : ("id_" + dtStr);
        return obj.id;
    }

    function getWidth(obj)
    {
        tmpO = getObjRef(getId(obj));
        widthVal = (document.layers) ? ((tmpO == '[object Image]') ? (tmpO.width) : (tmpO.obj) ? tmpO.obj.style.clip.width : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.width != "undefined") ? tmpO.clip.width : tmpO.width) : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? (document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("width")) : (typeof tmpO.offsetWidth != "undefined") ? (tmpO.offsetWidth) : "";
        widthVal = ((!isNaN(parseInt(widthVal))) ? parseInt(widthVal) : widthVal);
        return widthVal;
    }

    function getHeight(obj)
    {
        tmpO = getObjRef(getId(obj));
        heightVal = (document.layers) ? ((tmpO == '[object Image]') ? (tmpO.height) : (tmpO.obj) ? tmpO.obj.style.clip.height : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.height != "undefined") ? tmpO.clip.height : tmpO.height) : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? (document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("height")) : (typeof tmpO.offsetHeight != "undefined") ? (tmpO.offsetHeight) : "";
        heightVal = ((!isNaN(parseInt(heightVal))) ? parseInt(heightVal) : heightVal);
        return heightVal;
    }

    function getTop(obj)
    {
        tmpO = getObjRef(getId(obj));
        topVal = (document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.top : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? (document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("top")) : (typeof tmpO.offsetTop != "undefined") ? (tmpO.offsetTop) : "";//+ (tmpO.parentElement.offsetTop) : "";
        topVal = ((!isNaN(parseInt(topVal))) ? parseInt(topVal) : topVal);
        return topVal;
    }

    function getLeft(obj)
    {
        tmpO = getObjRef(getId(obj));
        leftVal = (document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.left : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? (document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("left")) : (typeof tmpO.offsetLeft != "undefined") ? (tmpO.offsetLeft) : ""; //+ (tmpO.parentElement.offsetLeft) : "";
        leftVal = ((!isNaN(parseInt(leftVal))) ? parseInt(leftVal) : leftVal);
        return leftVal;
    }

    function getZIndex(obj)
    {
        tmpO = getObjRef(getId(obj));
        zIndexVal = (document.layers) ? ((tmpO == '[object Image]') ? "" : (tmpO.obj) ? tmpO.obj.zIndex : tmpO.zIndex) : (!document.all && document.getElementById && typeof document.defaultView != "undefined") ? document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("z-index") : (typeof tmpO.style.zIndex != "undefined") ? tmpO.style.zIndex : ""; //+ tmpO.parentElement.style.zIndex : "";
        zIndexVal = ((!isNaN(parseInt(zIndexVal))) ? parseInt(zIndexVal) : zIndexVal);
        return zIndexVal;
    }

    function getRealDims(id)
    {
        // unused but useful Netscape 4 fix snippet
        /*
            current_width = document.layers[layertoCheck].document.width;
            current_height = document.layers[layertoCheck].document.height;
        */
        eval("realDim." + id + " = new Array();");
        tmpO = getObjRef(id);
        realDim[id].w = getWidth(tmpO);//(document.layers) ? ((tmpO == '[object Image]') ? parseInt(tmpO.width) : (tmpO.obj) ? tmpO.obj.style.clip.width : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.width != "undefined") ? tmpO.clip.width : tmpO.width) : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("width")) : (document.all) ? parseInt(tmpO.offsetWidth) : "";
        realDim[id].h = getHeight(tmpO);//(document.layers) ? ((tmpO == '[object Image]') ? parseInt(tmpO.height) : (tmpO.obj) ? tmpO.obj.style.clip.height : (typeof tmpO.clip != "undefined" && typeof tmpO.clip.height != "undefined") ? tmpO.clip.height : tmpO.height) : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("height")) : (document.all) ? parseInt(tmpO.offsetHeight) : "";
        realDim[id].t = getTop(tmpO);//(document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.top : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("top")) : (document.all) ? parseInt(tmpO.offsetTop) + parseInt(tmpO.parentElement.offsetTop) : "";
        realDim[id].l = getLeft(tmpO);//(document.layers) ? (tmpO == '[object Image]') ? "" : tmpO.left : (!document.all && document.getElementById) ? parseInt(document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("left")) : (document.all) ? parseInt(tmpO.offsetLeft) + parseInt(tmpO.parentElement.offsetLeft) : "";
        realDim[id].z = getZIndex(tmpO);//(document.layers) ? ((tmpO == '[object Image]') ? "" : (tmpO.obj) ? tmpO.obj.zIndex : tmpO.zIndex) : (!document.all && document.getElementById) ? document.defaultView.getComputedStyle(tmpO, "").getPropertyValue("z-index") : (document.all) ? tmpO.style.zIndex + tmpO.parentElement.style.zIndex : "";
        return realDim,realDim[id];
    }

    function setContent(layerRef,content,is_unicode)
    {
        if(!layerRef || typeof layerRef != "object")
            return false;
        content = (content) ? content : null;
        if(content)
        {
            is_unicode = (is_unicode) ? is_unicode : false;
            if(is_unicode)
            {
                if(document.layers)
                {
                    with(layerRef.document)
                    {
                        open();
                        write(unescape(content));
                        close();
                    }
                }
                else if(typeof layerRef.innerHTML != "undefined")
                {
                    layerRef.innerHTML = unescape(content);
                }
            }
            else if(!is_unicode)
            {
                if(document.layers || (layerRef.innerHTML == "undefined"))
                {
                    with(layerRef.document)
                    {
                        open();
                        write(content);
                        close();
                    }
                    return layerRef;
                }
                else if(typeof layerRef.innerHTML != "undefined")
                {
                    layerRef.innerHTML = content;
                    return layerRef;
                }
            }
        }
        return;
    }

	function swapImg(imgName,fullPath)
	{
		if(!imgName)
			return false;
		imgObj = getObjRef(imgName);
		if(!imgObj)
			return false;
		fullPath = (fullPath) ? fullPath : "";
		imSrc = imgObj.src.toString();
		imgObj.src = (fullPath != "") ? fullPath : imSrc;
		return imgObj.src;
	}

	presetClassNames = 	{
							_on: 1,
							_over: 1,
							_hover: 1,
							_active: 1,
							_off: 1,
							_out: 1,
							_blur: 1,
							_inactive: 1
						};
	nmStr = "";
	for(var nm in presetClassNames)
	{
		nmStr += nm + "|";
	}
	nmStr = nmStr.substring(0,(nmStr.length - 1));
	pCNregEx = new RegExp(nmStr,"gi");
	function swapClass(obj,nwClass)
	{
		if(!obj)
			return;
		if(nwClass == -1)
		{
			obj.className = obj.className.replace(pCNregEx,"");
		}
		else
		{
			obj.className = (((obj.className + "").match(pCNregEx) != null) ? obj.className.replace(pCNregEx,"") + nwClass : ((nwClass.match(pCNregEx) != null) ? obj.className : "") + nwClass);
		}
	}
    
    function printPage(frame, arg) {
      if (frame == window) {
        printThis();
      } else {
        link = arg; // a global variable
        printFrame(frame);
      }
      return;
    }
    
    function printThis() {
      if (pr) { // NS4, IE5
        window.print();
      } else if (da && !mac) { // IE4 (Windows)
        vbPrintPage();
      } else { // other browsers
        alert("Sorry, your browser doesn't support this feature.");
      }
    }
    
    function printFrame(frame) {
      if (pr && da) { // IE5
        frame.focus();
        window.print();
        link.focus();
      } else if (pr) { // NS4
        frame.print();
      } else if (da && !mac) { // IE4 (Windows)
        frame.focus();
        setTimeout("vbPrintPage(); link.focus();", 100);
      } else { // other browsers
        alert("Sorry, your browser doesn't support this feature.");
      }
    }

    function printContent(formObj,spoolObj,sourceObj)
    {
        formObj = (!formObj) ? getObjRef("printCardForm") : formObj;
        spoolObj = (!spoolObj) ? getObjRef("htmPrintSpool") : spoolObj;
        sourceObj = (!sourceObj) ? getObjRef('contentArea') : sourceObj;
        spoolObj.value = escape(sourceObj.innerHTML + '');
        formObj.submit();
    }

	function requestInfo(formObj)
	{
	   formObjPaneStyle = getStyRef((formObj.id + "").replace(/Form/,"Pane"));
	   formObjPaneStyle.display = ((formObjPaneStyle.display != 'block') ? "block" : "none");
	   if(formObjPaneStyle.display == "block") { setTimeout("getObjRef('" + formObj.id + "').elements['name'].focus();",321); };
	}