/************************************************************
*/
function ZZ_doNotSubmitOnEnter(theEvent) {
	var keycode;
	if(window.event) keycode = window.event.keyCode;
	else if(theEvent) keycode = theEvent.which;
	else return true;
	if(keycode == 13) return false;
	else return true;
}
/************************************************************
*/
function makeItWhole(radioLeftSide, radioLeftSideValue, radioWhole, radioWholeValue, radioRightSide, radioRightSideValue) {

	for(var i = 0; i < radioLeftSide.length; i++) {
		if(radioLeftSide[i].value == radioLeftSideValue && 
			 radioLeftSide[i].checked == true &&
			 radioRightSide[i].value == radioRightSideValue && 
			 radioRightSide[i].checked == true &&
			 radioWhole[i].value == radioWholeValue && 
			 radioWhole[i].checked == false) {
			radioLeftSide[i].checked = false;
			radioRightSide[i].checked = false;
			radioWhole[i].checked = true;
			break;
		}
	}
}
/************************************************************
* @verstion 1.01
*/
function ZZ_toggleArrow(elemID, action, activeImage, inactiveImage) {
	var ActiveImageURL, InactiveImageURL;
	ActiveImageURL   = 'url(' + activeImage + ')';
	InactiveImageURL = 'url(' + inactiveImage + ')';

	if(action == 'toggle') {
		//if(document.getElementById(elemID).style.backgroundImage == InactiveImageURL){
		if(document.getElementById(elemID).style.backgroundImage.indexOf(inactiveImage) > -1){
			document.getElementById(elemID).style.backgroundImage = ActiveImageURL;
		}	else {
			document.getElementById(elemID).style.backgroundImage = InactiveImageURL;
		}
	} else if (action == 'hide') {
		document.getElementById(elemID).style.backgroundImage = InactiveImageURL;
	} else {
		document.getElementById(elemID).style.backgroundImage = ActiveImageURL;
	}
}
/************************************************************
* @verstion 1.0
*/
function ZZ_toggle(elem, count) {
	for(var i = 0; i < count; i++) {
		if(document.getElementById(elem + "_" + i)) {
			if(document.getElementById(elem + "_" + i).style.display == 'none') {
				if(document.all) {
					document.getElementById(elem + "_" + i).style.display = 'block';
				} else {
					document.getElementById(elem + "_" + i).style.display = 'table-row';
				}
			} else {
				document.getElementById(elem + "_" + i).style.display = 'none';
			}
		}
	}		
}
/************************************************************
* @verstion 1.0
*/
function ZZ_trackCount(fieldObj,countFieldName,maxChars)  {
  var countField = eval("fieldObj.form." + countFieldName);
  var diff = maxChars - fieldObj.value.length;

  // Need to check & enforce limit here also in case user pastes data
  if(diff < 0)  {
	fieldObj.value = fieldObj.value.substring(0,maxChars);
	diff = maxChars - fieldObj.value.length;
  }
  countField.value = diff;
}
/************************************************************
* @verstion 1.0
*/
function ZZ_limitText(fieldObj,maxChars) {
  var result = true;
  if(fieldObj.value.length >= maxChars)
	result = false;
  if(window.event)
	window.event.returnValue = result;
  return result;
}
/************************************************************
* @vrsion 1.0
*/
function ZZ_findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=ZZ_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

/************************************************************
* @vrsion 1.0
*/
function ZZ_showHideLayers() {
  var i,p,v,obj,args=ZZ_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=ZZ_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

/************************************************************
* @vrsion 1.0
*/
function ZZ_removeBlanks(str) {
    var reg = /\s/gi;
    return str.replace(reg, "");
}

/************************************************************
* @version 1.01
*/
function validateRemoveBlanks(aTextField) {
    aTextField.value = ZZ_removeBlanks(aTextField.value);
}

/************************************************************
* @version 1.0
*/
function ZZ_trimBlanks_str(str) {
    var result = str;
    var reg1 = /^\s/gi;
    var reg2 = /\s$/gi;
    for(var i = 0; i < str.length; i++) {
        result = result.replace(reg1, "");
        result = result.replace(reg2, "");
    }
    return result;
}

/************************************************************
* @version 1.0
*/
function ZZ_trimBlanks_it(aTextField) {
    aTextField.value = ZZ_trimBlanks_str(aTextField.value);
}

/************************************************************
* @version 1.01
*/
function ZZ_isValidEmail(s) {
    var invalidChars = " \\/:*?\"',<>|[]{}+=()&^%$#!~`";
    if(s == "") {
        return false;
    }
    for(var i = 0; i < invalidChars.length; i++) {
        badChar = invalidChars.charAt(i);
        if(s.indexOf(badChar,0) != -1) {
            return false;
        }
    }
    var atPos = s.indexOf ("@",1);
    if(atPos == -1) {
        return false;
    }
    if(s.indexOf ("@", atPos+1) != -1) {
            return false;
    }
    var periodPos = s.indexOf (".", atPos);
    if(periodPos == -1) {
        return false;
    }
    if(periodPos + 3 > s.length) { // Longer domains are comming
        return false;
    }
    return true;
}

/************************************************************
* @version 1.03
*/
function ZZ_validateEmail(aTextField) {    
    aTextField.value = ZZ_trimBlanks_str(aTextField.value);
    if(aTextField.value.length == 0)
        return;
    if(!ZZ_isValidEmail(aTextField.value)) {
	    alert("The email address you entered does not appear to be valid.\nPlease enter a valid email address.");
		aTextField.value = "";
		aTextField.focus();
		aTextField.select();
    }
}

/************************************************************
* @verstion 1.0
*/
function secureSealPopUp(url) {
sealWin=window.open(url,"win",'toolbar=0,location=1,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=550,height=500');
self.name = "mainWin"; 
}

/************************************************************
* @verstion 1.0
*/
function ZZ_doSubmit(formName, valFunction, layerName) {
    // Determine browser
	var browserName = navigator.appName;
	var version = parseFloat(navigator.appVersion);
    
    if(layerName != "null") { // We have layers
	    if(browserName == "Microsoft Internet Explorer") {
		    formName = "document." + formName;
	    } else if(browserName == "Netscape") {
		    if(version >= 4 && version < 5)
			    formName = "document.layers['" + layerName + "'].document." + formName;
		    else if(version == 5)
			    formName = "document." + formName;
		    else {
			    alert("Unsupported Netscape Browser.");
			    return false;
			}
	    } else {
		    alert("Unsupported Browser.");
		    return false;
	    }
    } else {
        formName = "document." + formName;   
    }    
	if(valFunction != "null") {
		if(eval(valFunction + "('" + layerName +"')") == true) {
			eval(formName + ".submit()");
		} else {
			return false;
		}
	} else {
		eval(formName + ".submit()");
	}

	return true;	
}

/************************************************************
* @verstion 1.0
*/
function ZZ_doSubmit2(formName) {
  formName = "document." + formName;
	eval(formName + ".submit()");
}

/************************************************************
* @version 1.0
*/ 
function ZZ_doSelect(selectObj, objValue)
{
	var optionsArray = selectObj.options;
	for(var i = 0; i < optionsArray.length; i++) {		
		if(optionsArray[i].value == objValue) {
			selectObj.selectedIndex = i;
		}
	}
}
/************************************************************
* @version 1.0
*/ 
function ZZ_doMultiSelect()
{
	var selectObj = arguments[0];
	var optionsArray = selectObj.options;
	for(var j = 1; j < arguments.length; j++) {
		var objValue = arguments[j];
		for(var i = 0; i < optionsArray.length; i++) {			
			if(optionsArray[i].value == objValue) {
				//selectObj.selectedIndex = i;
				optionsArray[i].selected =  true;
			}
		}
	}
}
/************************************************************
* @version 1.0
*/
function ZZ_doCheck(checkboxObj, checkState)
{
	checkState == 1 ? checkboxObj.checked = true : checkboxObj.checked = false;	
}
/************************************************************
* @version 1.0
*/
function ZZ_doRadioCheck(radioObjArray, aValue)
{
	for(var i = 0; i < radioObjArray.length; i++) {
		if(radioObjArray[i].value == aValue) {
			radioObjArray[i].checked = true;
			break;
		}
	}
}
/************************************************************
* @version 1.0
*/
function ZZ_doRadioUncheck(radioObjArray, aValue)
{
	if(isNaN(radioObjArray.length)) {
		radioObjArray.checked = false;
	} else {
		for(var i = 0; i < radioObjArray.length; i++) {
			if(radioObjArray[i].value == aValue) {
				radioObjArray[i].checked = false;
				break;
			}
		}
	}	
}
/************************************************************
* @version 1.0
*/
function ZZ_showImage(url)
{
	var winName = "ZZ_ImageWindow";
	var decorations = "status=no,width=200,height=200,top=125px,left=150px, scrollbars=0,resizable=1,toolbar=no,menubar=no";
	ZZ_openWin(url, winName, decorations);
}

/************************************************************
* @version 1.0
*/
function ZZ_showHelpOn(url)
{
	var winName = "ZZ_HelpWindow";
	var decorations = "status=no,width=450,height=350,top=125px,left=150px, scrollbars=1,resizable=1,toolbar=no,menubar=no";
	ZZ_openWin(url, winName, decorations);
}
/************************************************************
* @version 1.1
*/
function ZZ_openWin(url, winName, decorations)
{
	var sw = window.open(url, winName, decorations);
	sw.focus();
}
/************************************************************
* @version 1.0
*/
function ZZ_validateDate(aTextField) {
    aTextField.value = ZZ_removeBlanks(aTextField.value);
    if(aTextField.value.length == 0)
        return;
    if(!ZZ_isValidDate(aTextField.value)) {
	    alert("The date entered is either not valid or not in the right format.\n" + 
	          "Please enter a valid date in the following format:\n\n" +
	          "Date format: mm/dd/yyyy e.g. 02/28/1951");
		aTextField.value = "";
		aTextField.focus();
		aTextField.select();
    }
    var reg = /-/g;
    aTextField.value = aTextField.value.replace(reg, "/");    
}
/************************************************************
* @version 1.01
*/
function ZZ_isValidDate(dateString) {
	if(dateString.length != 10)
	    return false;
	var month = dateString.substring(0, 2);
	var separator1 = dateString.substring(2, 3);
	var day = dateString.substring(3, 5);
	var separator2 = dateString.substring(5, 6);
	var year = dateString.substring(6, 10);
	if(month < 1 || month > 12 || !ZZ_isDigitString(month))
	    return false;
	if(separator1 != '-' && separator1 != '/')
	    return false;
	if(day < 1 || day > 31 || !ZZ_isDigitString(day))
	    return false;
	if(separator2 != '-' && separator2 != '/')
	    return false;	
	if(year <= 0 || year > 9999 || !ZZ_isDigitString(year))
	    return false;	
	if((month == 9 || month == 4 || month == 6 || month == 11) && (day == 31))
	        return false;
	if(month == 2) {
        if(!isLeapYear(year)) {
            if(day > 28) {
                return false;
            }
        } else {
            if(day > 29) {
                return false;
            }
        }
	}
	return true;
}

/************************************************************
* @version 1.0
*/
function isLeapYear(year) {
    return((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)));
}

/************************************************************
* @version 1.0
*/
function ZZ_isDigitString(s) {
	for(var i = 0; i < s.length; i++) {
		var ch = s.charAt(i);
		if(!ZZ_isDigit(ch)) {
			return false;
		}
	}
	return true;
}
/************************************************************
* @version 1.0
*/
function ZZ_isDigit(ch) {
	return ( ch >= "0" && ch <= "9");
}
/************************************************************
* @version 1.01
*/
function ZZ_getCheckedRadioValue(radioObjArray) 
{
	var aValue;
	aValue = radioObjArray.value; 
	for(var i = 0; i < radioObjArray.length; i++) {
		if(radioObjArray[i].checked) {
			aValue = radioObjArray[i].value;
			break;
		}
	}
	return aValue;
}
/************************************************************
* @version 1.0
*/
function ZZ_setCookie(name, value, expires, path, domain, secure) 
{
    document.cookie = name + "=" + escape(value) +
        ((expires) ? ";expires=" + expires.toGMTString() : "") +
        ((path) ? ";path=" + path : "") + 
        ((domain) ? ";domain=" + domain : "") +
        ((secure) ? ";secure" : "");
}
/************************************************************
* @version 1.0
*/
function ZZ_getCookie(name) 
{
    var start = document.cookie.indexOf(name + "=");
    var len = start + name.length + 1;
    if((!start) && (name != document.cookie.substring(0, name.length))) 
		return null;
    if(start == -1) 
		return null;
    var end = document.cookie.indexOf(";", len);
    if(end == -1) 
		end = document.cookie.length;
    return unescape(document.cookie.substring(len, end));
}
/************************************************************
* @version 1.0
*/
function ZZ_deleteCookie(name, path, domain) 
{
    if(ZZ_getCookie(name)) 
		document.cookie = name + "=" +
        ((path) ? ";path=" + path : "") +
        ((domain) ? ";domain=" + domain : "") +
        ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
/************************************************************
* @version 1.0
*/
function ZZ_acceptsSessionCookie() 
{
	ZZ_deleteCookie('ZZ_s_c_chk', "/", null);
	ZZ_setCookie('ZZ_s_c_chk', 'ZZ_s_c_val', null, "/", null, false);
	if(!ZZ_getCookie('ZZ_s_c_chk'))
		return false;
	return true;
}
/************************************************************
* @version 1.0
*/
function ZZ_acceptsDatedCookie() 
{
	var zCookieDate = new Date();
	zCookieDate.setMonth(zCookieDate.getMonth() + 1);
	ZZ_deleteCookie('ZZ_c_chk', "/", null);
	ZZ_setCookie('ZZ_c_chk', 'ZZ_c_val', zCookieDate, "/", null, false);
	if(!ZZ_getCookie('ZZ_c_chk'))
		return false;
	return true;
}
/************************************************************
* @version 1.0
*/
function ZZ_acceptsCookie()
{
	if(ZZ_acceptsSessionCookie() && ZZ_acceptsDatedCookie())
		return true;
	return false;
}
/************************************************************
* @version 1.0
*/
function ZZ_y2kYear(number) { 
	return (number < 1000) ? number + 1900 : number; 
}
/************************************************************
* @version 1.0
*/
function ZZ_padSingleDigit(number) { 
	return (number < 10) ? '0' + number : number; 
}
/************************************************************
* @version 1.0
*/
function ZZ_ieOrNet() {
	var browserName = navigator.appName;
	if(browserName == "Microsoft Internet Explorer") {
		return "ie";
	} else if(browserName == "Netscape") {
		return "net";
	}
	return "?";
}
/************************************************************
* @version 1.0
*/
function ZZ_digitsOnly(aTextField) {
    aTextField.value = ZZ_removeBlanks(aTextField.value);
    if(aTextField.value.length == 0)
        return;
	if(!ZZ_isDigitString(aTextField.value)) {
		alert("Please enter only digits into this field.");
		aTextField.value = "";
		aTextField.focus();   
		aTextField.select();
	}
}
