var strGivenName="First Name (Given Name)"
var strFamilyName="Last Name (Family Name)"
var strTitle="Title"
var strCompany="Business Name"
var strWebsite="Web Site"
var strPassword="Password"
var strAddress="Street Address"
var strCity="City"
var strStateProvince="State or Province"
var strZip="Postal Code"
var strCountry="Country"
var strPhone="Business Phone"
var strFax="Business Fax"
var strEmail="Email Address"
var strPrompt="Please enter your "
var wEmptyPrefix="The field "
var wEmptySuffix=" is required."
var errPhone="The phone number is not valid."
var errEmail="The e-mail address is not valid."
var whitespace=" \t\n\r"
var pwderror="Password and confirmation do not agree."

function isEmpty(str) {
   if ((str==null) || (str.length==0)) return true
return false
}

function isNotEmpty(str) {
   if ((str==null) || (str.length==0)) return false
   return true
}

function isWhitespace(str) {
   for (var i=1; i<str.length; i++) {
      var chr=str.charAt(i)
      if (whitespace.indexOf(chr)==-1) return false
   }
   return true
}

function warnEmpty(elementObj, str) {
   elementObj.focus()
   alert(wEmptyPrefix+str+wEmptySuffix)
   return false
}

function warnInvalid(elementObj, str) {
   elementObj.focus()
   elementObj.select()
   alert(str)
   return false
}

function isPhoneNumber(phoneStr) {
   if (parseInt(phoneStr)>0) return true
   return false
}
function isEmail(emailStr) {
   if (isWhitespace(emailStr)) return false
   // There needs to be an @ sign after the first
   // charachter but before the end of the string
   var idx=emailStr.indexOf("@", 1)
   if (idx==-1) return false
   // Need a period to have a domain name
   idx+=2
   if (emailStr.indexOf(".", idx)==-1)
      return false
   return true
}
// event handlers

function promptMsg(msg) {
   self.status=strPrompt+msg
}

function checkPwd(theobj1,theobj2) {
   if ((isEmpty(theobj1.value)) || (theobj1.value != theobj2.value)) {
    alert(pwderror);
    return false;
    }
    return true;
}

function checkStr(theObj, fieldStr, reqField) {
   if (isEmpty(theObj.value)) {
      if (reqField==false) return true
      else return warnEmpty(theObj, fieldStr)
   }
   if (isWhitespace(theObj.value))
      return warnEmpty(theObj, fieldStr)
   return true
}

function checkPhone(theObj, fieldStr, reqField) {
   if (isEmpty(theObj.value)) {
      if (reqField == false) return true
      else return warnEmpty(theObj, fieldStr)
   }
   if (!isPhoneNumber(theObj.value))
      return warnInvalid(theObj, errPhone)
   return true
}

function checkEmail(theObj,fieldStr, reqField) {
   if (isEmpty(theObj.value)) {
      if (reqField==false) return true
      else return warnEmpty(theObj, fieldStr)
   }
   if (isEmail(theObj.value)) return true
   return warnInvalid(theObj, errEmail)
}

function checkForm(frmObj) {
   return(
      checkStr(frmObj.Firstname, strGivenName, true) &&
      checkStr(frmObj.Lastname, strFamilyName, true) &&
      checkEmail(frmObj.Email,strEmail, true) &&
      checkStr(frmObj.Password, strPassword, true) &&
      checkPwd(frmObj.Password,frmObj.Confirmation) &&
      checkPhone(frmObj.PhoneNumber, strPhone, true) &&
      checkPhone(frmObj.Fax, strFax, false) &&
      checkStr(frmObj.Companyname, strCompany, true) &&
      checkStr(frmObj.Department, strWebsite, true) 
  )   
}
