Car Picker Validation

<SCRIPT>

function validEmail(email) {
     if (email == "") return false;

     var invalidChars = " /:,;";

     for (i = 0; i < invalidChars.length; i++) {
          var badChar = invalidChars.
charAt(i);

          if (email.indexOf(badChar, 0) > -1) return false;
     }

     var atPos = email.indexOf("@", 1);

     if (atPos == -1) return false;

     if (email.indexOf("@", atPos + 1) != -1) return false;

     var periodPos = email.indexOf(".", atPos);

     if (periodPos == -1) return false;

     if (email.lastIndexOf(".") + 3 > email.length) return false;
     if (email.length > email.lastIndexOf(".") + 4) return false;

     return true;
}

function isNum(passedVal) {
     if (passedVal == "") return false;

     for (i = 0; i < passedVal.length; i++) {
          if (passedVal.
charAt(i) < "0") return false;
          if (passedVal.
charAt(i) > "9") return false;
     }

     return true;
}

function validZip(inZip) {
     if (inZip == "") return true;

     if (isNum(inZip)) return true;

     return false;
}

function submitIt(form) {
     var colorChoice = form.color.
selectedIndex;

     if (form.color.options[colorChoice].value == "") {
         
alert("You must pick a color");
          return false;
     }

     var doorOption = -1;

     for (i = 0; i < form.DoorCt.length; i++) {
          if (form.DoorCt[i].
checked) doorOption = i;
     }

     if (doorOption == -1) {
         
alert("You must choose 2 or 4 door");
          return false;
     }

     if (form.DoorCt[doorOption].value == "fourDoor" && form.sunroof.checked) {
         
alert("The sunroof is only available on the two door model");
          return false;
     }

     if (!validEmail(form.emailAddr.value)) {
         
alert("Invalid email address");
          form.emailAddr.
focus();
          form.emailAddr.
select();
          return false;
     }

     if (form.zip.value == "" && form.dealerList.selectedIndex == 0) {
         
alert("You must either enter a Zip code, or pick the dealer closest to you");
          form.zip.
focus();
         
return false;
     }

     if (!validZip(form.zip.value)) {
         
alert("That is an invalid Zip code");
          form.zip.
focus();
          form.zip.
select();
          return false;
     }

     return true;
}

function doorSet(sunroofField) {
     if (sunroofField.
checked) {
          for (i = 0; i < document.myForm.DoorCt.
length; i++) {
               if (document.myForm.DoorCt[i].value == "twoDoor") {
                    document.myForm.DoorCt[i].
checked = true;
               }
          }
     }
}

</SCRIPT>

<BODY>

<FORM
  NAME="myForm
"
 
METHOD="POST"
  ACTION="
formmail.pl"
 
onSubmit="return submitIt(this)">

Your Email Address: <INPUT TYPE="text" NAME="emailAddr">

Colors:

<SELECT NAME="color">
     <
OPTION VALUE>Choose a color
     <
OPTION VALUE="red">Red
     <
OPTION VALUE="green">Green
     <
OPTION VALUE="blue">Blue
<
/SELECT>

Options:

<INPUT TYPE="checkbox" NAME="sunroof" VALUE="yes"
  onClick="doorSet(this)">Sunroof (Two door only)
<
INPUT TYPE="checkbox" NAME="pSteering" VALUE="yes">Power Steering
<
INPUT TYPE="checkbox" NAME="pBrakes" VALUE="yes">Power Brakes
<
INPUT TYPE="checkbox" NAME="fMats" VALUE="yes">Floor Mats

Doors:

<INPUT TYPE="radio" VALUE="twoDoor" NAME="DoorCt">Two
<INPUT TYPE="radio" VALUE="fourDoor" NAME="DoorCt">Four

Either enter your Zip code, or pick the dealer nearest you: Zip:
<INPUT
TYPE="text" NAME="zip">

<SELECT NAME="dealerList">
 
    <OPTION>California--Lemon Grove
     <OPTION>California--Lomita
     <OPTION>California--Long Beach
     <OPTION>California--Los Alamitos
     <OPTION>California--Los Angeles
</SELECT>

<INPUT TYPE="Submit" VALUE="Submit"> <INPUT TYPE="Reset" VALUE="Reset">

</FORM>