// Check input fields and submit form.
function doLogin() {
	var bd = "";
	var bd2 = "";
	var bd3 = "";	
	var DemoWindow;	
	var f = document.forms[0];
	var min_size = 4
	var max_size = 25

	init();

	// See if we have a demo window open, if yes close it.
	if (f.nid.value != "999999999")
	{
		if (DemoWindow)
		{
			DemoWindow.close();
		}
	}

	if (f.nid.value == "" || f.nwd.value == "") {
		bd = "-"
	}

	//bd += DataValid ("hbpassword",4,25,f.nwd,"Password");
	bd2 = DataValid ("hbpassword",4,25,f.nwd,"Password");

	//bd += DataValid ("number",10000,999999999,f.nid,"User Id");
	//bd3 = DataValid ("number",10000,999999999,f.nid,"User Id");
	bd3 = DataValid ("onlyalphanum",5,25,f.nid,"User ID");
	
	if (bd == "" && bd2 == "" && bd3 == "")	{

		timeoutID = window.setTimeout("resetTimer()", timeout*1000);
		return true;
	} else {

		if (bd != "") {
			alert("You must enter your User ID and Password or PIN before clicking \"Log In\"");
		} else if (bd3 != "") {
			alert("Invalid User ID");
		} else if (bd2 != "") {
			alert("Invalid PIN/Password");
		}
		return false;
	}
}



<!-- 
// Script two

function dateString (year, month, day)
{
	if (dateString.arguments.length != 3)
	{
		date = new Date ();
		year = date.getYear ();
		month = date.getMonth () + 1;
		day = date.getDate ();
	}

	if (!isNumeric (year) || !isNumeric (month) || !isNumeric (day))
		return ("00/00/0000")

	// if year > 4 digits, take right 4
	year %= 10000;

	// add 1900 if year < 4 digits but greater then 10 (4 = 2004, 98 = 1998, etc.)
	if (year < 1000 && year > 10)
		year += 1900;

	if (year <= 10)					// added logic for Y2K
	   year += 2000;

	month = addZero (month);
	day = addZero (day);
	return (month + "/" + day + "/" + year);
}

function updateDayText (yearSelect, monthSelect, daySelect, dayText)
{
	var date	= new Date (getSelectedValue (yearSelect),
							getSelectedValue (monthSelect) * 1 - 1,
							getSelectedValue (daySelect));
	var weekDay = date.getDay ();
	var dayName = new Array ("Sunday", "Monday", "Tuesday", "Wednesday",
							 "Thursday", "Friday", "Saturday");
	dayText.value = dayName[weekDay];
}

function popUp(url) {
	sealWin=window.open(url,"win",'toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=500,height=450');
	self.name = "mainWin";
}

function fnSuppressZeros(psNumber)
{
	var sNumber = new String(psNumber);
	var sRetVal = "";
	var fZeroSuppress = true;

	for (var i = 0; i < sNumber.length; i++) {
	  if (sNumber.charAt(i) != "0") {
	      fZeroSuppress = false;
	      sRetVal = sRetVal + sNumber.substring(i,i+1);
	  } else {
	      if (!(fZeroSuppress)) {
			  sRetVal = sRetVal + sNumber.substring(i,i+1);
		  }
	  }
	}

	return sRetVal;
}

function fnValidDate(dDate, fOlderDate)
{
	var monthName   = new Array ("",
								 "January",
								 "February",
								 "March",
								 "April",
								 "May",
								 "June",
								 "July",
								 "August",
								 "September",
								 "October",
								 "November",
								 "December");
	var monthSize   = new Array (0, 31, 28, 31, 30, 31, 30,
                                 31, 31, 30, 31, 30, 31);
	var returnValue = "";

	var sDate = new String(dDate);
	var sYear;
	var sDay;
	var sMonth;

	var i;
	var iCount = 0;
	var iLastPos = 0;
	var iError = 0;

	for (var i = 0; i < sDate.length; i++) {
	  if (sDate.charAt(i) == "/") {
	    iCount = iCount + 1;

	    if (iCount == 1)
	        sMonth = sDate.substring(iLastPos, i);

	    if (iCount == 2) {
		  sDay = sDate.substring(iLastPos, i);
		  sYear = sDate.substring(i + 1, sDate.length);
		  if (sDate.length - (i + 1) == 2) {
		    if (fOlderDate) {
		      if (parseInt(sYear)< 10) {
			    sYear = "20" + sYear;
			  } else {
			    sYear = "19" + sYear;
			  }
		    } else {
		      if (parseInt(sYear)< 60) {
			    sYear = "20" + sYear;
			  } else {
			    sYear = "19" + sYear;
			  }
		    }
		  }
		}
        iLastPos = i + 1;
      } else {
          if (!(isNumeric(sDate.charAt(i)))) {
	        iError = iError + 1;
            if (iError == 1)
              returnValue = "Not a valid date!";
          }
	  }
	}

	// check that selected day value is less than the number of
	// days in that selected month
	// first check if the month is february and its a leap year
	var Year = parseInt(sYear);
	var month = parseInt(fnSuppressZeros(sMonth));
	var day = parseInt(fnSuppressZeros(sDay));

	if ((month == 2) &&	(((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0)))
	{
		// compare against number of days in February in a leap year
		if (day > 29)
		{
		  returnValue = "Day value, " + day + ", is beyond the number of days in " + monthName [month] + ", 29.";
		}
	}
	// compare against normal days in the month (not February or not a leap year)
	else if (day > monthSize [month])
	{
		returnValue = "Day value, " + day + ", is beyond the number of days in " + monthName [month] + ", " + monthSize [month] + ".";
	}

	return returnValue;

}

function fnReturnDate(dDate, fOlderDate)
{
	var monthName   = new Array ("",
								 "January",
								 "February",
								 "March",
								 "April",
								 "May",
								 "June",
								 "July",
								 "August",
								 "September",
								 "October",
								 "November",
								 "December");
	var monthSize   = new Array (0, 31, 28, 31, 30, 31, 30,
                                 31, 31, 30, 31, 30, 31);

	var sDate = new String(dDate);
	var sYear;
	var sDay;
	var sMonth;

	var sReturnValue = "";

	var i;
	var iCount = 0;
	var iLastPos = 0;
	var iError = 0;

	for (var i = 0; i < sDate.length; i++) {
	  if (sDate.charAt(i) == "/") {
	    iCount = iCount + 1;

	    if (iCount == 1)
	        sMonth = sDate.substring(iLastPos, i);

	    if (iCount == 2) {
		  sDay = sDate.substring(iLastPos, i);
		  sYear = sDate.substring(i + 1, sDate.length);
		  if (sDate.length - (i + 1) == 2) {
		    if (fOlderDate) {
		      if (parseInt(sYear)< 10) {
			    sYear = "20" + sYear;
			  } else {
			    sYear = "19" + sYear;
			  }
		    } else {
		      if (parseInt(sYear)< 60) {
			    sYear = "20" + sYear;
			  } else {
			    sYear = "19" + sYear;
			  }
		    }
		  }
		}
        iLastPos = i + 1;
      } else {
          if (!(isNumeric(sDate.charAt(i)))) {
	        iError = iError + 1;
            if (iError == 1)
              sReturnValue = "Not a valid date!";
          }
	  }
	}

	// check that selected day value is less than the number of
	// days in that selected month
	// first check if the month is february and its a leap year
	var Year = parseInt(sYear);
	var month = parseInt(fnSuppressZeros(sMonth));
	var day = parseInt(fnSuppressZeros(sDay));

	if ((month == 2) &&	(((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0)))
	{
		// compare against number of days in February in a leap year
		if (day > 29)
		{
		  sReturnValue = "Day value, " + day + ", is beyond the number of days in " + monthName [month] + ", 29.";
		}
	}
	// compare against normal days in the month (not February or not a leap year)
	else if (day > monthSize [month])
	{
		sReturnValue = "Day value, " + day + ", is beyond the number of days in " + monthName [month] + ", " + monthSize [month] + ".";
	}

	var returnValue = new Date(day + "/" + month + "/" + Year);

    return returnValue;
}


function validDate (year, month, day)
{
	var monthName   = new Array ("",
								 "January",
								 "February",
								 "March",
								 "April",
								 "May",
								 "June",
								 "July",
								 "August",
								 "September",
								 "October",
								 "November",
								 "December");
	var monthSize   = new Array (0, 31, 28, 31, 30, 31, 30,
                                 31, 31, 30, 31, 30, 31);

	// check that selected day value is less than the number of
	// days in that selected month
	// first check if the month is february and its a leap year
	if ((month == 2) &&
		(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)))
	{
		// compare against number of days in February in a leap year
		if (day > 29)
		{
			alert ("Day value, " + day + ", is beyond the number of days in " +
				monthName [month] + ", 29.");
			return false;
		}
	}
	// compare against normal days in the month (not February or not a leap year)
	else if (day > monthSize [month])
	{
		alert ("Day value, " + day + ", is beyond the number of days in " +
			monthName [month] + ", " + monthSize [month] + ".");
		return false;
	}

	return true;
}

// ***** Date Input Code Ends *****
// ***** Misc Utility Code Begins *****

function getSelectedValue (selectObject)
{
	return (selectObject.options[selectObject.selectedIndex].value);
}

function isNumeric (inputValue)
{
	if (!inputValue && ((inputValue + "") != '0'))
		return false;

	var value = new String(inputValue);
	for (var i = 0; i < value.length; i++)
		if ("0123456789".indexOf (value.charAt (i)) == -1)
			return false;
	return true;
}

function atoi (value)
{
	return 1 * value;
}

function addZero (value)
{
	// isNumeric returns false if length = 0
	if (!isNumeric (value))
		return "00";

	// convert value to a string, otherwise length will produce an error
	value = new String (value);
	if (value.length == 1)
		return ("0" + value);
	if (value.length == 2)
		return value;
	// value is greater than 2 digits, return rightmost 2
	return value.substring ((value.length - 2));
}

// ***** Misc Utility Code Ends *****

// NG-Customization Begins
var badElement = null;
var badCount = 0, badMax = 6;
var tbeg = "- ", tmid = "\n    ", tend = "\n\n";

function printError (badDataDialog)
{
	alert("Please fill in or correct the following field(s) before submitting: \n \n"
		+ badDataDialog
		+ (badCount >= badMax ? "etc...." : ""));

	if (badElement)
		if (!(MSIEver) || (MSIEver >= 4)){
			if (badElement.type!="hidden")
				badElement.focus();
			if (!MSIEver)
				badElement.select();
		}
}

function init () {
	badElement = null;
	badCount = 0;
}

function ErrorFormat(elename,badString,element){
	if (element) markBad(element);
	return tbeg+elename+tmid+badString+tend;
}

function markBad (formEle)
{
	badCount++;
	if (badElement == null) badElement = formEle;
	return true;
}

function valid_date(FMonth,FDay,FYear,formelement,elename)
{
	for (var i=0;i<FMonth.value.length;i++)
		if ("0123456789".indexOf(FMonth.value.charAt(i))==-1) {
			markBad(formelement);
			return tbeg+elename+tmid+"Value contains illegal characters"+tend;
		}
	for (var i=0;i<FDay.value.length;i++)
		if ("0123456789".indexOf(FDay.value.charAt(i))==-1) {
			markBad(formelement);
			return tbeg+elename+tmid+"Value contains illegal characters"+tend;
		}
	for (var i=0;i<FYear.value.length;i++)
		if ("0123456789".indexOf(FYear.value.charAt(i))==-1) {
			markBad(formelement);
			return tbeg+elename+tmid+"Value contains illegal characters"+tend;
		}
	var TMonth = FMonth.value;
	if (TMonth.charAt(0) == "0")
		TMonth = (TMonth.charAt(1) * 1);
	var TDay = FDay.value;
	if (TDay.charAt(0) == "0")
		TDay = (TDay.charAt(1) * 1);
	var TYear = parseInt(FYear.value);

	var Months = new Array();
	Months[0] = 0;
	Months[1] = 31
	Months[2] = 28;
	Months[3] = 31;
	Months[4] = 30;
	Months[5] = 31;
	Months[6] = 30;
	Months[7] = 31;
	Months[8] = 31;
	Months[9] = 30;
	Months[10] = 31;
	Months[11] = 30;
	Months[12] = 31;

	if (TYear/4 == Math.floor(TYear/4)) {
		Months[2] = 29;
	} else {
		Months[2] = 28;
	}

	if (parseInt(TDay) > Months[parseInt(TMonth)]) {
		var ret = "The date you specified is beyond that months valid range";
		markBad(formelement);
		return tbeg+elename+tmid+ret+tend;
	}

	return "";
}

function DataValid (type,min_size,max_size,formelement,elename)
{
	if (type.indexOf("OPT")==0)
		var chktype=type.substring(3,type.length);
	else var chktype=type;
	if (badCount >= badMax)
		return "";
	if (type=="radioselect")
	{
		var radcheck = false;
		if (formelement.length){
			var radle = parseInt(formelement.length);
			for (var j=0; j<formelement.length; j++)
				if (formelement[j].checked)
					radcheck = true;
		} else radcheck = formelement.checked;
		if (!radcheck)
			return ErrorFormat(elename,"You must select one of the option buttons",formelement.length?formelement[0]:formelement);
		else
			return "";
	}
	data = formelement.value;
	if (type.indexOf("OPT")==0)
	{
		if ((data.length == 0) || (data == null)) return "";
		type=type.substring(3,type.length);
	}

	if ((data == null) || (data.length == 0))
		return ErrorFormat(elename,"Value must not be blank",formelement);
	else {
		if (type=="number" || type=="numberbylength" || type=="numberyear") {
			for (var i=0;i<data.length;i++)
				if (! (data.charAt(i) >= '0' && data.charAt(i) <= '9'))
					return ErrorFormat(elename,"Value may only contain numbers",formelement);
		}
	}
	if (type != "number" && type != "numberyear" && type != "zip")
	{
		if (min_size != -1 && data.length < min_size)
			return ErrorFormat(elename,"Value is blank or too short",formelement);
		if (max_size != -1 && data.length > max_size)
			return ErrorFormat(elename,"Value is too long",formelement);
	}

	if ((type=="email") && (data.indexOf("@") == -1 || data.indexOf(".") == -1))
		return ErrorFormat(elename,"Full address required: user@yourdomain.com",formelement);

	if (type == "email") {
		for (var i=0;i<data.length;i++)
			if ("_-.#@0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(data.charAt(i))==-1)
				return ErrorFormat(elename,"Value contains illegal characters",formelement);

		var found1 = data.indexOf("@");
		var found2 = data.indexOf("@", found1+1);
		if (found2 != -1)
			return ErrorFormat(elename,"Email address must be in user@domain.com format",formelement);

		var found3 = data.indexOf("@");
		var found4 = data.indexOf(".", found3);
		var found4len = data.substring(found4+1, data.length).length;
		if (found4len < 2)
			return ErrorFormat(elename,"Email address must have at least two characters after the last period user@domain.com",formelement);
	}

	if (type == "alphanum")
		for (var i=0;i<data.length;i++)
			if (" 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(data.charAt(i))==-1)
				return ErrorFormat(elename,"Value contains illegal characters",formelement);

	if (type == "limited") {
		for (var i=0;i<data.length;i++)
			if (" 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(data.charAt(i))==-1)
				return ErrorFormat(elename,"Value contains illegal characters",formelement);
	}

	if (type == "onlyalphanum")
		for (var i=0;i<data.length;i++)
			if ("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(data.charAt(i))==-1)
				return ErrorFormat(elename,"Value contains illegal characters",formelement);

	if (type == "hbpassword")
		for (var i=0;i<data.length;i++)
			if ("_0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(data.charAt(i))==-1)
				return ErrorFormat(elename,"Value contains illegal characters",formelement);

	if (type == "specialalphanum")
		for (var i=0;i<data.length;i++)
			if (" 0123456789abcdefghijklmnopqrstuvwxyz^ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(data.charAt(i))==-1)
				return ErrorFormat(elename,"Value contains illegal characters",formelement);

	if ((type=="zip") && ((data.length != 0) && (data.length != 5) && (data.length != 10) && (data.length != 9)))
		return ErrorFormat(elename,"May only consist of 5 or 9 numbers and a dash",formelement);

	if (type=="zip") {
		if ((data.length == 10) && (data.charAt(5) != "-"))
			return ErrorFormat(elename,"May only consist of 5 or 9 numbers and a dash",formelement);
		if (data.length == 5 || data.length == 9)
			for (var i=0;i<data.length;i++)
				if ((data.charAt(i) < '0') || (data.charAt(i) > '9'))
					return ErrorFormat(elename,"5 or 9 digit zip codes may only contain numbers",formelement);
	}

	if (type=="alpha")
		for (var i=0;i<data.length;i++)
		 if (! ((data.charAt(i) >= 'a' && data.charAt(i) <= 'z') || (data.charAt(i) >= 'A' && data.charAt(i) <= 'Z') ))
			return ErrorFormat(elename,"Value may only contain letters",formelement);
	if (type=="numberdash") // or extension, anything with a dash
		for (var i=0;i<data.length;i++)
			if (! (data.charAt(i) == "-" || data.charAt(i) >= '0' && data.charAt(i) <= '9'))
				return ErrorFormat(elename,"Value may only contain numbers or hyphens",formelement);
	if (type=="name")
		for (var i=0;i<data.length;i++)
			if (" -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(data.charAt(i))==-1)
				return ErrorFormat(elename,"Value contains illegal characters",formelement);
	if (type == "number") {
		if (min_size != -1 && data*1 < min_size*1)
			return ErrorFormat(elename,"Value is too small. It must be between " + min_size + ' and ' + max_size ,formelement);
		if (max_size != -1 && data*1 > max_size*1)
			return ErrorFormat(elename,"Value is too large. It must be between " + min_size + ' and ' + max_size,formelement);
	}
	if (type == "numberyear") {
		if (min_size != -1 && data*1 < min_size*1)
			return ErrorFormat(elename,"Value is too small, please enter in 'yyyy' form.",formelement);
		if (max_size != -1 && data*1 > max_size*1)
			return ErrorFormat(elename,"Value is too large, please enter in 'yyyy' form.",formelement);
	}
	return "";
}

function currentYear()
{
	var year = (new Date ()).getYear ();
	if (year < 1000) year = year*1 + 1900;
	return year;
}

function ParseValue(val,tk){
	if (val && tk){
		var x=val.indexOf(tk);
		if (x != -1)
			return parseFloat(val.substring(x+(tk.length),val.length));
		else return "";
	}
}

function ParseString(val,tk){
	if (val && tk){
		var x=val.indexOf(tk);
		if (x != -1) {
			var x1 = val.indexOf(';',x);
			return val.substring(x+(tk.length),(x1 == -1 ? val.length : x1))
		} else return "";
	}
}

function parseDate(year, mon, day)
{
  if (year < 100) year = year*1 + 1900;
  return (year*10000 + mon*100 + day);
}

function GetSelectedValue(s) {
	if (s.selectedIndex >= 0)
		return s.options[s.selectedIndex].value
	else return "";
}

function isDate(Y,M,D)
{
	if (Y && Y.value.length > 0 && M && M.value.length > 0 && D && D.value.length > 0)
		return true
	else
		return false;
}
function makeDate(Y,M,D)
{
	if (arguments.length != 3) {
		var date = new Date ();
		Y = currentYear();
		M = date.getMonth () + 1;
		D = date.getDate ();
	} else if ((String(Y)).length == 0 || (String(M)).length == 0 || (String(D)).length == 0)
		return "";
	return (addZero(M) + "/" + addZero(D) + "/" + Y);
}

function GetRadioValue(s)
{
	var val = null;
	if (s.length) {
		for (var i=0; i<s.length; i++) {
			if (s[i].checked) {
				val = s[i].value;
				break;
			}
		}
	} else val = s.value;
	return val;
}
function v_name(f,m,l,txt,f1,f2)
{
	txt=((txt==null)?"":txt+' ');
	var o=(f1?"":"OPT");
	var o2=(f2?"":"OPT");
	var bd	= DataValid(o+"name",1,20,f,txt+"First Name");
	bd += DataValid(o2+"name",1,2,m,txt+"Middle Initial");
	bd += DataValid(o+"name",1,20,l,txt+"Last Name");
	return bd;
}
function v_ssn(a,b,c,bReq,txt){
	var o=(bReq?"":"OPT");
	var bd = v_numnumbylen(1,999,3,3,a,bReq,txt);
	bd += v_numnumbylen(1,99,2,2,b,bReq,txt);
	bd += v_numnumbylen(1,9999,4,4,c,bReq,txt);
	return bd;
}

function v_phone(AC,p1,p2,p3,txt,bReq,bReq2)
{
	var o=(bReq?"":"OPT");
	var o2=(bReq2?"":"OPT");
	if (((AC == null) || (AC.value.length == 0)) || ((p1 == null) || (p1.value.length == 0)) || ((p2 == null) || (p2.value.length == 0)))
		if ((AC.value.length > 0) || (p1.value.length > 0) || (p2.value.length > 0))
			return ErrorFormat(txt + ' Number',txt + ' Number is not complete',AC);
		else if (bReq)
			return ErrorFormat(txt + ' Number','You must enter a ' + txt + ' Number',AC);

	var bd = DataValid(o+"numberbylength",3,3,AC,txt +" Number Area Code");
	bd += DataValid(o+"number",1,999,AC,txt+" Number Area Code");
	bd += DataValid(o+"numberbylength",3,3,p1,txt+" Number Exchange");
	bd += DataValid(o+"number",1,999,p1,txt+" Number Exchange");
	bd += DataValid(o+"numberbylength",4,4,p2,txt+" Number");
	bd += DataValid(o+"number",1,9999,p2,txt+" Number");
	if (p3) bd += DataValid(o2+"limited",1,10,p3,txt+" Extention");
	return bd;
}

function v_phone2(AC, p1, txt, bReq)
{
	var o=(bReq?"":"OPT");

	if (((AC == null) || (AC.value.length == 0)) || ((p1 == null) || (p1.value.length == 0)))
		if ((AC.value.length > 0) || (p1.value.length > 0))
			return ErrorFormat(txt + ' Number',txt + ' Number is not complete',AC);
		else if (bReq)
			return ErrorFormat(txt + ' Number','You must enter a ' + txt + ' Number',AC);

	var value = new String(p1.value);

	var dashAllowed = (value.length==8?true:false)
	var dashExist = false;

	for (var i = 0; i < value.length; i++)
	  {
		if (dashAllowed)
		  {
		    if ("0123456789".indexOf (value.charAt (i)) == -1)
		      {
		        if (value.charAt(i) == "-")
		          {
		            if (dashExist)
		              return ErrorFormat(txt + ' Phone Number',txt + ' Not a valid phone format',p1);
		            else
		              if (i == 2)
		                dashExist = true;
					  else
					    return ErrorFormat(txt + ' Phone Number',txt + ' Invalid phone format, dash is wrong place',p1);
		          }
		        else
		          {
		            return ErrorFormat(txt + ' Phone Number',txt + ' Not a valid phone format',p1);
		          }
		      }
		  }
		else
		  {
		    if ("0123456789".indexOf (value.charAt (i)) == -1)
		      {
		        return ErrorFormat(txt + ' Phone Number',txt + ' Number must be numeric, not a valid phone format',p1);
			  }
		  }
	  }

	if (dashAllowed)
	  {
	    if (!dashExist)
	      return ErrorFormat(txt + ' Phone Number',txt + ' To many numbers for a phone number',p1);
	  }
	else
	  if (value.length != 7)
	    return ErrorFormat(txt + ' Phone Number',txt + ' Not enough numbers for a phone number',p1);

	var bd = DataValid("numberbylength",3,3,AC,txt +" Phone Number Area Code");
	if (bd == "")
      bd += DataValid("number",1,999,AC,txt+" Phone Number Area Code");
	return bd;
}

function v_dollar(d,c,m,bReq,txt)
{
	var o = (bReq?"":"OPT");
	var bd = "";
	if (!bReq) {
		var x=(d.value.length>0);x+=(c.value.length>0);
		if (x==1) bd += ErrorFormat(txt,"Please completely fill out this field",d);}
	bd += DataValid(o+"number",m,9999999,d,"Dollars " +txt);
	bd += DataValid(o+"number",0,99,c,"Cents "+txt);
	return bd;
}
<!-- Compare 2 Form Fields to a Maximum Floating Amount -->
function v_number(mn,mx,d,c,fopt,txt)
{
	var bd = "";
	var x = parseFloat(d.value + '.' + c.value);
	var o = (fopt?"":"OPT");
	if (x < mn) bd += ErrorFormat(txt,txt+" is too small",d);
	if (bd == "")
		if (x > mx) bd += ErrorFormat(txt,txt+" is too large",d);
	if (bd == "") {
		bd += DataValid(o+"number",parseInt(mn),parseInt(mx),d,"Dollars "+txt);
		bd += DataValid(o+"number",0,99,c,"Cents "+txt);
	}
	return bd;
}
<!-- Macro that calls numberbylength and number but doesn't show 2 dialogs-->
function v_numnumbylen(mns,mxs,mnl,mxl,ele,bReq,txt){
	var o = (bReq?"":"OPT");
	var bd = DataValid(o+"numberbylength",mnl,mxl,ele,txt);
	if (bd.length == 0) bd += DataValid(o+"number",mns,mxs,ele,txt);
	return bd;
}

function v_address2(a,c,s,bReq,z,bReq2,a2,a2txt,txt){
	var o = (bReq?"":"OPT");
	var o2 = (bReq2?"":"OPT");

	if (txt) txt = txt + " ";

	var bd = DataValid(o+"alphanum",1,40,a,txt+"Address");

	if (a2) bd += DataValid("OPTalphanum",1,40,a2,a2txt);
	bd += DataValid(o+"name",1,16,c,txt+"City");

	if ((s.selectedIndex==-1) && (bReq==true)) bd += ErrorFormat(txt+"State","State",s);
	bd += DataValid(o2+"zip",5,5,z,txt+"Zip");

	return bd;
}

function v_date(M,D,Y,bReq,txt)
{
	var o = (bReq?"":"OPT");
	if ((M && M.value.length==0) || (D && D.value.length==0) || (Y && Y.value.length==0))
		if (bReq)
			return ErrorFormat(txt + ' Date','You must enter a ' + txt + ' Date',M);
		else {
			if ((M && M.value.length==0) && (D && D.value.length==0) && (Y && Y.value.length>0))
				{M.value = "";D.value = "";Y.value="";return ""}
			if ((M && M.value.length>0) || (D && D.value.length>0) || (Y && Y.value.length>0))
				return ErrorFormat(txt + " Date",txt + ' Date is not complete',M);
	}

	var tbd = v_numnumbylen(1,12,1,2,M,bReq,txt+" Month");
	tbd += v_numnumbylen(1,31,1,2,D,bReq,txt+" Day");
	tbd += v_numnumbylen(1872,2100,4,4,Y,bReq,txt+" Year");

	if (tbd.length == 0)
		var bd = valid_date(M,D,Y,D,txt);
	else
		var bd = tbd;
	return bd;
}
function v_null(f) {
	if (f) {
		if (typeof(f) == "object") f=f.value;
		if (f.length > 0)
			return false;
	}
	return true;
}

function IsValidMonth(oMM)
{
	if (isNumeric(oMM.value) == false || (Number(oMM.value) > 12 || Number(oMM.value) < 1))
	{
		alert ("Month must be between 01-12");
		return false;
	}
	if (Number(oMM.value) < 10 && Number(oMM.value) > 0 && oMM.value.length  == 1)
	{
		oMM.value = "0" + oMM.value;
	}
	return true;
}

function IsValidDay(oDD)
{
	if (isNumeric(oDD.value) == false || (Number(oDD.value) > 31 || Number(oDD.value) < 1))
	{
		alert ("Day must be between 01-31");
		return false;
	}
	if (Number(oDD.value) < 10 && Number(oDD.value) > 0 && oDD.value.length  == 1)
	{
		oDD.value = "0" + oDD.value;
	}
	return true;
}

function IsValidYear(oYY)
{
	if (isNumeric(oYY.value) == false || (Number(oYY.value) > 3000 || Number(oYY.value) < 2000))
	{
		alert ("Month must be between 2000-3000");
		return false;
	}
	return true;
}

function IsValidHour(oHR)
{
	if (isNumeric(oHR.value) == false || (Number(oHR.value) > 24 || Number(oHR.value) < 1))
	{
		alert ("Hour must be between 01-24");
		return false;
	}
	if (Number(oHR.value) < 10 && Number(oHR.value) > 0 && oHR.value.length  == 1)
	{
		oHR.value = "0" + oHR.value;
	}
	return true;
}

function IsValidMinute(oMN)
{
	if (isNumeric(oMN.value) == false || (Number(oMN.value) > 59 || Number(oMN.value) < 0))
	{
		alert ("Minute must be between 01-59");
		return false;

	}
	if (Number(oMN.value) < 10 && Number(oMN.value) > 0 && oMN.value.length  == 1)
	{
		oMN.value = "0" + oMN.value;
	}
	return true;
}



-->


