/*******************************************************
*	Title:		Form Validation Script
*	Author:		Brad Simons
*	E-mail:		simonsb@mail.ecu.edu
*	Date:		11/17/04
*	Purpose:	Validates via Javascript the Fall Fair
*				Fair registration form on
*				http://www.ecu.edu/e3careers/
*				careerfair.fallfair.asp.
*******************************************************/



/* Text Validation */
function validateText(field, type) {
	if(field.length == 0) {
		alert("Please enter the " + type + ".");
		return false;
	}
	return true;
}



/* Number Validation */
function validateNumber(field, size, type) {
    var valid = "0123456789";

    if(field.length != size) {
        alert("Please enter a " + size + " digit " + type + ".");
        return false;
    }

    for(var i=0; i<field.length; i++) {
        var temp = "" + field.substring(i, i+1);
        if(valid.indexOf(temp) == "-1") {
            alert("There are invalid characters in the " + type + ". Please try again.");
            return false;
        }
    }

    return true;
}



/* Select Field Validation */
function validateSelect(field, type) {
    if((field == null) || (field == "")) 
	{
        alert("Please select a " + type + ".");
        return false;
    }

    return true;
}


/* E-Mail Validation */
function validateEmail(field) {
    var at = "@";
    var dot = ".";
    var msg = "The e-mail address is invalid. Please try again.";
    var lat = field.indexOf(at);
    var ldot = field.indexOf(dot);

    if((field == null) || (field == "")) {
        alert("Please enter the e-mail address.");
        return false;
    }

    if(field.indexOf(at) == -1) {
        alert(msg);
        return false;
    }

    if((field.indexOf(at) == -1) || (field.indexOf(at) == 0) || (field.indexOf(at) == field.length-1)) {
        alert(msg);
        return false;
    }

    if((field.indexOf(dot) == -1) || (field.indexOf(dot) == 0) || (field.indexOf(dot) == field.length-1)) {
        alert(msg);
        return false;
    }

    if(field.indexOf(at,(lat+1)) != -1) {
        alert(msg);
        return false;
    }

    if((field.substring(lat-1,lat) == dot) || (field.substring(lat+1,lat+2) == dot)) {
        alert(msg);
        return false;
    }

    if(field.indexOf(dot,(lat+2)) == -1) {
        alert(msg);
        return false;
    }

    if(field.indexOf(" ") != -1) {
        alert(msg);
        return false;
    }

    return true;
}

/* Radio Button Validation */
function validateRadio(radio, type) {
	var checked = false;

	for(var i=0; i<radio.length; i++)
		if(radio[i].checked)
			checked = true;
	if(!checked) {
		alert("Please make a selection regarding " + type + ".");
		return false;
	}
	return true;
}



/* Radio Button Value Retrieval */
function getRadioValue(radio) {
	for(var i=0; i<radio.length; i++)
		if(radio[i].checked)
			return radio[i].value;
}






/* Form Validation */
function validateForm(MembershipApplicationForm) {


    /* define form variables */
    var firstname   = document.MembershipApplicationForm.firstname;
    var lastname   = document.MembershipApplicationForm.lastname;
    var address      = document.MembershipApplicationForm.address;
    var city      = document.MembershipApplicationForm.city;
    var stateA     = document.MembershipApplicationForm.stateA;
    //var zip       = document.MembershipApplicationForm.zip;
    var country       = document.MembershipApplicationForm.country;
    var phone1    = document.MembershipApplicationForm.phone1;
    var phone2    = document.MembershipApplicationForm.phone2;
    var phone3    = document.MembershipApplicationForm.phone3;
    var email      = document.MembershipApplicationForm.email;
    var membership    = document.MembershipApplicationForm.membership;
    /*var schema1       = document.MembershipApplicationForm.schema1;*/
    var schemaA            = document.MembershipApplicationForm.schemaA;
    var schemaB       = document.MembershipApplicationForm.schemaB;
    var schemaC       = document.MembershipApplicationForm.schemaC;
    var schemaD      = document.MembershipApplicationForm.schemaD;
    var certification   = document.MembershipApplicationForm.certification;
    var membershipdues   = document.MembershipApplicationForm.membershipdues;
    var membershipnum   = document.MembershipApplicationForm.membershipnum;
    var organizationname   = document.MembershipApplicationForm.organizationname;

    /* begin form validation */

	if(!validateText(firstname.value, "first name")) {
		firstname.focus();
		return false;
	}

	if(!validateText(lastname.value, "last name")) {
		lastname.focus();
		return false;
	}


	if(!validateText(address.value, "mailing address")) {
		address.focus();
		return false;
	}

	if(!validateText(city.value, "city")) {
		city.focus();
		return false;
	}
    if(!validateSelect(stateA.value, "state")) {
		stateA.focus();
		return false;
	}
	
	if(!validateNumber(phone1.value, 3, "telephone area code")) {
        phone1.focus();
        return false;
    }

    if(!validateNumber(phone2.value, 3, "telephone number")) {
        phone2.focus();
        return false;
    }

    if(!validateNumber(phone3.value, 4, "telephone number")) {
        phone3.focus();
        return false;
    }
	  if(!validateEmail(email.value)) {
        email.focus();
        return false;
    }

	if(!validateRadio(membership, "your membership type")) {
		return false;
	}
	membership = getRadioValue(membership);

	if(!validateSelect(schemaA.value, "schema 1")) {
		schemaA.focus();
		return false;
	}

	if(!validateSelect(schemaB.value, "schema 2")) {
		schemaB.focus();
		return false;
	}

	if(!validateSelect(schemaC.value, "schema 3")) {
		schemaC.focus();
		return false;
	}

	if(!validateSelect(schemaD.value, "schema 4")) {
		schemaD.focus();
		return false;
	}

	if(!validateRadio(certification, "your level of certification")) {
		return false;
	}
	certification = getRadioValue(certification);

    if(!validateRadio(membershipdues, "your organizational membershipdues")) {
		return false;
	}
	membershipdues = getRadioValue(membershipdues);


    
	if(document.MembershipApplicationForm.membershipdues[1].checked == true)
	{

  	 	if(!validateText(membershipnum.value, "number of members")) {
			membershipnum.focus();
			return false; 
   		}
   		if(!validateText(organizationname.value, "name of organization")) {
			organizationname.focus();
			return false; 
   		}

	    
	}


return true;
}
