var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace = " \t\n\r";
var defaultEmptyOK = false
var decimalPointDelimiter = "."
var iEmail = "Please enter a valid email address (like your_name@company.com)"
var iUSPhone = "Please enter a 10 digit U.S. phone number (like 310 555 1212 or 310 555 1212 x 1234)"
var iZIPCode = "Please enter a 5 or 9 digit U.S. ZIP Code (like 92708)"
var digitsInUSPhoneNumber = 10;
var digitsInUSPhoneNumber2 = 12;
var digitsInUSPhoneNumber3 = 13;
var digitsInUSPhoneNumber4 = 14;
var ZIPCodeDelimiters = "-";
var ZIPCodeDelimeter = "-"
var validZIPCodeChars = digits + ZIPCodeDelimiters
var digitsInZIPCode1 = 5
var digitsInZIPCode2 = 9
var decimalPointDelimiter = "."
var phoneNumberDelimiters = "()-xX ";
var validUSPhoneChars = digits + phoneNumberDelimiters;
function isEmpty(s)
{ return ((s == null) || (s.length == 0))
}
function isWhitespace (s)
{ var i;
if (isEmpty(s)) return true;
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (whitespace.indexOf(c) == -1) return false;
}
return true;
}
function isDigit (c)
{ return ((c >= "0") && (c <= "9"))
}
function isInteger (s)
{ var i;
if (isEmpty(s))
if (isInteger.arguments.length == 1) return defaultEmptyOK;
else return (isInteger.arguments[1] == true);
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (!isDigit(c)) return false;
}
return true;
}
function isFloat (s)
{ var i;
var seenDecimalPoint = false;
if (isEmpty(s))
if (isFloat.arguments.length == 1) return defaultEmptyOK;
else return (isFloat.arguments[1] == true);
if (s == decimalPointDelimiter) return false;
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;
else if (!isDigit(c)) return false;
}
return true;
}
function warnInvalid (theField, s)
{ theField.focus()
theField.select()
alert(s)
return false
}
function warnMsg (theField, s)
{ theField.focus()
alert(s)
return false
}
function warnMsg (theField, s)
{ theField.focus()
alert(s)
return false
}
// =============================
function alltrim(inputString) {
if (typeof inputString != "string") { return inputString; }
var retValue = inputString;
var ch = retValue.substring(0, 1);
while (ch == " ") { // Check for spaces at the beginning of the string
retValue = retValue.substring(1, retValue.length);
ch = retValue.substring(0, 1);
}
ch = retValue.substring(retValue.length-1, retValue.length);
while (ch == " ") { // Check for spaces at the end of the string
retValue = retValue.substring(0, retValue.length-1);
ch = retValue.substring(retValue.length-1, retValue.length);
}
while (retValue.indexOf(" ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); // Again, there are two spaces in each of the strings
}
return retValue;
}
function checkEmptyString (theField, s)
{
if (isWhitespace(theField.value))
return warnInvalid (theField, s);
else return true;
}
function checkInteger (theField, s)
{
if (!isInteger(theField.value))
return warnInvalid (theField, s);
else return true;
}
function checkFloat(theField, s)
{
if (!isFloat(theField.value))
return warnInvalid (theField, s);
else return true;
}
function getListBoxIndex(lstbox)
{
var j=-1
for (var i = 0; i < lstbox.length; i++) {
if (lstbox.options[i].selected == true ) {
j=i; break
}
}
return j
}
function getListBoxValue(lstbox)
{
var s=""
for (var i = 0; i < lstbox.length; i++) {
if (lstbox.options[i].selected == true ) {
s= lstbox.options[i].value; break
}
}
return s
}
function isListBoxSelected(lstbox)
{
var j=-1
for (var i = 0; i < lstbox.length; i++) {
if (lstbox.options[i].selected == true ) {
j=i
return true
}
}
return false
}
function checkListBoxSelected(lstbox,s)
{
if (isListBoxSelected(lstbox) == false)
return warnMsg (lstbox, s);
else return true;
}
function checkEmptyListBox(lstbox,s)
{
if (getListBoxValue(lstbox) == "")
return warnMsg (lstbox, s);
else return true;
}
function SelectListBoxItem(lstbox,s)
{
for (var i = 0; i < lstbox.length; i++) {
if (alltrim(lstbox.options[i].value) == s ) {
lstbox.options[i].selected = true ; break
}
}
return i
}
function SelectListBoxItemByText(lstbox,s)
{
for (var i = 0; i < lstbox.length; i++) {
if (alltrim(lstbox.options[i].text) == s ) {
lstbox.options[i].selected = true ; break
}
}
return i
}
function checkZero(theField, s)
{
if (theField.value == 0)
return warnInvalid (theField, s);
else return true;
}
function checkMaxiValue(theField, iValue, s)
{
if (theField.value > iValue )
return warnInvalid (theField, s);
else return true;
}
function getRadioButtonValue (radio)
{ for (var i = 0; i < radio.length; i++)
{ if (radio[i].checked) { break }
}
return radio[i].value
}
function isRadioButtonSelected(RadioBtn)
{
var j=-1
for (var i = 0; i < RadioBtn.length; i++) {
if (RadioBtn[i].checked == true ) {
j=i
return true
}
}
return false
}
function checkAnyRadioButtonSelected(RadioBtn,s)
{
if (isRadioButtonSelected(RadioBtn) == false) {
RadioBtn[0].focus();
alert(s);
return false;
}
else return true;
}
function isEmail (s)
{ if (isEmpty(s))
if (isEmail.arguments.length == 1) return defaultEmptyOK;
else return (isEmail.arguments[1] == true);
// is s whitespace?
if (isWhitespace(s)) return false;
// there must be >= 1 character before @, so we
// start looking at character position 1
// (i.e. second character)
var i = 1;
var sLength = s.length;
// look for @
while ((i < sLength) && (s.charAt(i) != "@"))
{ i++
}
if ((i >= sLength) || (s.charAt(i) != "@")) return false;
else i += 2;
// look for .
while ((i < sLength) && (s.charAt(i) != "."))
{ i++
}
// there must be at least one character after the .
if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
else return true;
}
function checkEmail (theField, emptyOK)
{ if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else if (!isEmail(theField.value, false))
return warnInvalid (theField, iEmail);
else return true;
}
function isZIPCode (s)
{ if (isEmpty(s))
if (isZIPCode.arguments.length == 1) return defaultEmptyOK;
else return (isZIPCode.arguments[1] == true);
return (isInteger(s) &&
((s.length == digitsInZIPCode1) ||
(s.length == digitsInZIPCode2)))
}
function reformatZIPCode (ZIPString)
{ if (ZIPString.length == 5) return ZIPString;
else return (reformat (ZIPString, "", 5, "-", 4));
}
function checkZIPCode (theField, emptyOK)
{ if (checkZIPCode.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else
{ var normalizedZIP = stripCharsInBag(theField.value, ZIPCodeDelimiters)
if (!isZIPCode(normalizedZIP, false))
return warnInvalid (theField, iZIPCode);
else
{ // if you don't want to insert a hyphen, comment next line out
theField.value = reformatZIPCode(normalizedZIP)
return true;
}
}
}
function stripCharsInBag (s, bag)
{ var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++)
{
// Check that current character isn't whitespace.
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function reformat (s)
{ var arg;
var sPos = 0;
var resultString = "";
for (var i = 1; i < reformat.arguments.length; i++) {
arg = reformat.arguments[i];
if (i % 2 == 1) resultString += arg;
else {
resultString += s.substring(sPos, sPos + arg);
sPos += arg;
}
}
return resultString;
}
function isUSPhoneNumber (s)
{ if (isEmpty(s))
if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK;
else return (isUSPhoneNumber.arguments[1] == true);
return (isInteger(s) && ((s.length == digitsInUSPhoneNumber) ||
(s.length == digitsInUSPhoneNumber2) ||
(s.length == digitsInUSPhoneNumber3) ||
(s.length == digitsInUSPhoneNumber4) ))
}
function reformatUSPhone (USPhone)
{ return (reformat (USPhone, "(", 3, ") ", 3, "-", 4))
}
function checkUSPhone (theField, emptyOK)
{ if (checkUSPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else
{ var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
if (!isUSPhoneNumber(normalizedPhone, false))
return warnInvalid (theField, iUSPhone);
else
{ // if you don't want to reformat as (123) 456-789, comment next line out
// theField.value = reformatUSPhone(normalizedPhone)
return true;
}
}
}