
function isblank(s) {

  for (var i = 0; i < s.length; i++) {
      var c = s.charAt(i);
      if ((c != ' ') && (c != '\n') && (c != '\t')){ return false; }
  }
  return true;
}



function validateForm(f)
{

    var reqElements = new Array("plan_type","pin_type","pin_number","cc_type","cc_number","cc_name","cc_expmonth","cc_expyear","firstname", "lastname", "address1","city","state","postalcode","country","homephone","email");

    var elementNames = new Array("Which Plan is Right for You?","Which PIN is Right for You?","PIN Number","Credit Card Type","Credit Card Number","Name on Card","Expiration Month","Expiration Year", "First Name", "Last Name", "Address", "City", "State", "Postal Code", "Country","Home phone","E-mail Address");


    var emptyFields  = false;
    var emptyEmail  = false;
    var msg = "____________________________________________________     \n\n";
    msg += "The form was not submitted because of the following error(s).\n";
    msg += "Please correct these error(s) and re-submit.\n";
    msg += "____________________________________________________     \n\n"; 

    var  emptyMsg = " - The following required field(s) must have a value set:\n\n\t";
   
    var list = "";
    var listValue = "";
    var planTypeChecked = false;
    var pinTypeChecked = false; 
    var selectData = false;

 

                   


    for(var i=0; i < reqElements.length; i++) {
        if ((f.elements[reqElements[i]].value == "") ||
            (f.elements[reqElements[i]].value == null) || isblank(f.elements[reqElements[i]].value) ) {
             selectData = false;


              if(reqElements[i] == "plan_type"){
                   selectData = true;

                   for( var j = 0; j < f.plan_type.length; j++){
                     if(f.plan_type[j].checked){planTypeChecked = true;}
                      
                   }                      
                   if(planTypeChecked == false){
                     emptyMsg += elementNames[i] + "\n\t";
                     emptyFields = true;
                                          
                   }
              }
              if(reqElements[i] == "pin_type"){
                   selectData = true;

                   for( var j = 0; j < f.pin_type.length; j++){
                     if(f.pin_type[j].checked){pinTypeChecked = true;}
                      
                   }   
                                         
                   if(pinTypeChecked == false){
                     emptyMsg += elementNames[i] + "\n\t";
                     emptyFields = true;
                                          
                   }
              }

              if(reqElements[i] == "pin_number"){
                   selectData = true;
                   
                   if(f.pin_type[1].checked){
                     emptyMsg += elementNames[i] + "\n\t";
                     emptyFields = true;
                                          
                   }
              }
              if(reqElements[i] == "cc_type"){
                   selectData = true;
                   list = f.cc_type;
                   listValue = list.options[list.selectedIndex].value;
                   if(listValue == ""){emptyMsg += elementNames[i] + "\n\t"; emptyFields = true;}
                   
              }
              if(reqElements[i] == "cc_expmonth"){
                   selectData = true;
                   list = f.cc_expmonth;
                   listValue = list.options[list.selectedIndex].value;
                   if(listValue == ""){emptyMsg += elementNames[i] + "\n\t"; emptyFields = true;}
                   
              }
              if(reqElements[i] == "cc_expyear"){
                   selectData = true;
                   list = f.cc_expyear;
                   listValue = list.options[list.selectedIndex].value;
                   if(listValue == ""){emptyMsg += elementNames[i] + "\n\t"; emptyFields = true;}
                   
              }
              if(reqElements[i] == "state"){
                   selectData = true;
                   list = f.state;
                   listValue = list.options[list.selectedIndex].value;
                   if(listValue == ""){emptyMsg += elementNames[i] + "\n\t"; emptyFields = true;}
      
              }
              if(reqElements[i] == "country"){ 
                   selectData = true;
                   list = f.country;
                   listValue = list.options[list.selectedIndex].value;
                   if(listValue == ""){emptyMsg += elementNames[i] + "\n\t"; emptyFields = true;}
      
              }
              if(selectData == false){
                  emptyMsg += elementNames[i] + "\n\t";
                  emptyFields = true; 
              }

            if(reqElements[i] == "email"){emptyEmail = true;}
            
        }
        



    }


    var emailError = "";
    if(!emptyEmail){
        emailError = validateEmail(f.email.value);
    }

    if (!emptyFields && !emailError)
    {
        return true;
    }
    else
    {
        
    
        if(emptyFields){
           msg += emptyMsg;
        }
        
        if(emailError){msg += "\n - " + emailError;}
        alert(msg + "\n\n");
        return false;
    }
}

