/*******************************************************
*	Title:		Form Validation Script
*	Author:		Brad Simons
*	E-mail:		bhsimons@gmail.com
*******************************************************/



/* 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("" + 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(ConferenceRegistrationForm) {


    /* define form variables */
    var firstname   = document.ConferenceRegistrationForm.firstname;
    var lastname   = document.ConferenceRegistrationForm.lastname;
    var address      = document.ConferenceRegistrationForm.address;
    var city      = document.ConferenceRegistrationForm.city;
    var state     = document.ConferenceRegistrationForm.state;
    var zip       = document.ConferenceRegistrationForm.zip;
    //var country       = document.ConferenceRegistrationForm.country;
    var phone1    = document.ConferenceRegistrationForm.phone1;
    var phone2    = document.ConferenceRegistrationForm.phone2;
    var phone3    = document.ConferenceRegistrationForm.phone3;
    var email      = document.ConferenceRegistrationForm.email;
	
	var company = document.ConferenceRegistrationForm.company; 
	var memberof = document.ConferenceRegistrationForm.memberof; 
	var firstyearmember = document.ConferenceRegistrationForm.firstyearmember; 
	var firsttimeattendee = document.ConferenceRegistrationForm.firsttimeattendee;
	var memberfee = document.ConferenceRegistrationForm.memberfee;
	var sponsor = document.ConferenceRegistrationForm.sponsor; 
  
	
	 

    //var badgename  = document.ConferenceRegistrationForm.badgename; 
    //var namedisplay    = document.ConferenceRegistrationForm.namedisplay;
    //var amountenclosed = document.ConferenceRegistrationForm.amountenclosed;

    /* 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(company.value, "company")) {
		company.focus();
		return false;
	}
	
	
	
	
	
	


	if(!validateText(address.value, "mailing address")) {
		address.focus();
		return false;
	}

	if(!validateText(city.value, "city")) {
		city.focus();
		return false;
	}

	if(!validateText(state.value, "state")) {
		state.focus();
		return false;
	}
	
	
    if(!validateNumber(zip.value, 5, "zip code")) {
        zip.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(memberof, "Please select whether you are a NCACE member or Non member.")) {
		return false;
	}
	
	if(!validateRadio(firstyearmember, "Please select whether this is your first year of NCACE membership.")) {
		return false;
	}
	
	if(!validateRadio(firsttimeattendee, "Please select whether you are a first-time conference attendee.")) {
		return false;
	}
	
	if(!validateRadio(memberfee, "Please a registration fee.")) {
		return false;
	}
	
	if(!validateRadio(sponsor, "Please select whether your organization sponsors the conference at $500 or more.")) {
		return false;
	}



	
	
	
	
	
	
    return true;
}
