// David M Rautert
// October 2, 2007
// Form Validation


/*
** Configuration Directives
*/

var effects = false;


function validForm() {
    if (!document.getElementsByTagName) { return; }

    // fname
    var fname = document.signup_form.person_firstName.value;
    if (fname == null || fname == "") {
        popUpMessage("Please enter your first name.");
        return false;
    }

    // lname
    var lname = document.signup_form.person_lastName.value;
    if (lname == null || lname == "") {
        popUpMessage("Please enter your last name.");
        return false;
    }

    //selection - professional designation
    var profdesign = document.signup_form.professional_designation.value;
    if (profdesign == 1) {
        popUpMessage("Please select your professional designation.");
        return false;
    }

    //selection - specialty
    var spec = document.signup_form.specialty.value;
    if (spec == 1) {
        popUpMessage("Please select your specialty.");
        return false;
    }

    // Email validation
    var emailAddress = document.signup_form.person_email.value;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(emailAddress)) {
        popUpMessage("Please enter a valid email address.");
        return false;
    }

    // street address
    var streetaddr = document.signup_form.person_homeAddress_street1.value;
    if (streetaddr == null || streetaddr == "") {
        popUpMessage("Please enter your street address.");
        return false;
    }

    // Zip Code validation
    var zipCode = document.signup_form.person_homeAddress_zipcode.value;
    var re = /^\d{5}([\-]\d{4})?$/;
    if (!re.test(zipCode)) {
        popUpMessage("Please enter a valid zip code.");
        return false;
    }

    //selection - birthYear
    var birthYearValue = document.signup_form.person_birthYear.value;
    if (birthYearValue == 1) {
        popUpMessage("Please select your year of birth.");
        return false;
    }


    // Checkbox validation
    var checkbox = document.signup_form.agreeTerms;
    if (checkbox.checked != true) {
        popUpMessage("You must agree to the terms of use before proceeding.");
        return false;
    }

    return true;

}

function validForm2() {
    if (!document.getElementsByTagName) { return; }

    // fname
    var fname = document.signup_form.person_firstName.value;
    if (fname == null || fname == "") {
        popUpMessage("Please enter your first name.");
        return false;
    }

    // lname
    var lname = document.signup_form.person_lastName.value;
    if (lname == null || lname == "") {
        popUpMessage("Please enter your last name.");
        return false;
    }

    // Email validation
    var emailAddress = document.signup_form.person_email.value;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(emailAddress)) {
        popUpMessage("Please enter a valid email address.");
        return false;
    }

    // street address
    var streetaddr = document.signup_form.person_homeAddress_street1.value;
    if (streetaddr == null || streetaddr == "") {
        popUpMessage("Please enter your street address.");
        return false;
    }

    // Zip Code validation
    var zipCode = document.signup_form.person_homeAddress_zipcode.value;
    var re = /^\d{5}([\-]\d{4})?$/;
    if (!re.test(zipCode)) {
        popUpMessage("Please enter a valid zip code.");
        return false;
    }

    //selection - birthYear
    var birthYearValue = document.signup_form.person_birthYear.value;
    if (birthYearValue == 1) {
        popUpMessage("Please select your year of birth.");
        return false;
    }


    // gender buttons 
    var form = $('signup_form');
    var buttons = form.getInputs('radio', 'person_gender');
    for (i = 0; i < buttons.length; i++) {
        if (buttons[i].checked == true) {
            var somethingIsChecked = true;
        }
    }
    if ((somethingIsChecked != true) && (buttons.length > 0)) {
        popUpMessage("Please select your gender.");
        return false;
    }


    // Checkbox validation
    var checkbox = document.signup_form.agreeTerms;
    if (checkbox.checked != true) {
        popUpMessage("You must agree to the terms of use before proceeding.");
        return false;
    }

    return true;

}

/* Validates Samples Form
 * created by gabriel esquivel 05/22/2010
 */
function validForm3() {
    if (!document.getElementsByTagName) { return; }

	var msg = '';
	
    // name
    var name = document.sf.name.value;
    if (name == null || name == "") {
        msg+= "\u00B7 Please enter your name. \n";
    }
	
    // street address
    var address = document.sf.address.value;
    if (address == null || address == "") {
        msg+= "\u00B7 Please enter your street address.\n";
    }
	
	// city
    var city = document.sf.city.value;
    if (city == null || city == "") {
        msg+= "\u00B7 Please enter your city. \n";
    }
	
	//selection - state
    var state = document.sf.state.value;
    if (state == 1) {
        msg+= "\u00B7 Please select your State.\n";
    }
	
	// Zip Code validation
    var zipcode = document.sf.zipcode.value;
    var re = /^\d{5}([\-]\d{4})?$/;
    if (!re.test(zipcode) || zipcode == null || zipcode == "") {
        msg+= "\u00B7 Please enter a valid ZIP code.\n";
    }
	
	//selection - professional designation
    var prodes = document.sf.prodes.value;
    if (prodes == 1) {
        msg+= "\u00B7 Please select your Professional Designation.\n";

    }
	
	// phone validation
    var phone1 = document.sf.phone1.value;
	var phone2 = document.sf.phone2.value;
	var phone3 = document.sf.phone3.value;
	var validphone= false;
	
	if(phone1.length == 3 && phone2.length == 3 && phone3.length == 4 && 
	   IsNumeric(phone1) && IsNumeric(phone2) && IsNumeric(phone3) ){
		validphone= true;
	}
	
	if(!validphone){
		msg+= "\u00B7 Please enter a valid phone number.\n";

	}
	
	// fax validation
    var fax1 = document.sf.fax1.value;
	var fax2 = document.sf.fax2.value;
	var fax3 = document.sf.fax3.value;
	var validfax= false;
	
	if(fax1.length == 3 && fax2.length == 3 && fax3.length == 4 && 
	   IsNumeric(fax1) && IsNumeric(fax2) && IsNumeric(fax3) ){
		validfax= true;
	}
	
	if(!validfax){
		msg+= "\u00B7 Please enter a valid fax number.\n";
	}
	
	
	// Email validation
    var email = document.sf.email.value;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email)) {
        msg+= "\u00B7 Please enter a valid email address.\n";
    }
	
	
	// valid date
    var day = document.sf.day.value;
	var month = document.sf.month.value;
	var year = document.sf.year.value;
	var validdate= false;
	
	if(year.length < 2){
		msg+= "\u00B7 Please enter a valid year(yy).\n";
	}
	
	if(IsNumeric(day) && IsNumeric(month) && IsNumeric(year) ){
		
		if(validDate(day, month, year)){
			validdate= true;
		}
	}
	
	if(!validdate){
		msg+= "\u00B7 Please enter a valid date.\n";
	}


	// statelicense
    var statelicense = document.sf.statelicense.value;
    if (statelicense == null || statelicense == "") {
        msg+= "\u00B7 Please enter your state license number.\n";
    }
	
	if(msg != ''){
		popUpMessage('Please complete all required fields before downloading and printing. \n'+msg);
		return false;
	}
    
	var getString= '?';
	for(i=0; i<document.sf.elements.length; i++){
		var name = document.sf.elements[i].name;
		var value = document.sf.elements[i].value;
		getString+= name+'='+value;
		if((document.sf.elements.length-1)!=i){
			getString+= '&';
		}
	}
	SetCookie('formData', getString);
	
	//alert(getString);
	alert('Please remember to SIGN this form before faxing it.')
	
	document.sf.submit();

	// Browser detection
	if(Prototype.Browser.IE){
		//alert('This is IE');
      window.open('print-samples-form.html', '', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=950,height=1000');
   }else{
      window.open('print-samples-form.html', '', 'menubar=1, toolbar=1,fullscreen=yes, scrollbars=1');
   }
}




function popUpMessage(myMessage) {
    if (effects == true) {
        new Effect.Appear('d3', { duration: 1.0, queue: 'front' });
        new Effect.Fade('d2', { duration: 4.0, queue: 'end' });
    } else {
        alert(myMessage);
    }
}



function IsNumeric(sText){
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}



function validDate(day, month, year){

var leap = 0;
var err = 0;

   if (month <= 0 || year <= 0 || day <= 0) {
      err = 1;
   }

   if (month > 12) {
      err = 1;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }

   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      return true;
   }
   /* Error-message if err != 0 */
   else {
      return false;
   }
}
