$(document).ready(function() {
	
	
	// global variables

	var PPLit = $('#PPLit');
	var Catalog = $('#Catalog');
	var PPPrice = $('#PPPrice');
	
	var form = $('#InformationRequest');
	var realname = $('#realname');
	var realnameInfo = $('#realnameInfo');
	var phone = $('#phone');
	var phoneInfo = $('#phoneInfo');
	var email = $('#email');
	var emailInfo = $('#emailInfo');
	var email2 = $('#email2');
	var email2Info = $('#email2Info');
	
	var address = $('#address');
	var addressInfo = $('#addressInfo');
	var address2 = $('#address2');
	var address2Info = $('#address2Info');
	var city = $('#city');
	var cityInfo = $('#cityInfo');
	var state = $('#state');
	var stateInfo = $('#stateInfo');
	var zip = $('#zip');
	var zipInfo = $('#zipInfo');
	
	
	
	//On blur
	realname.blur(validateName);
	phone.blur(validatePhone);
	email.blur(validateEmail);	
	email2.blur(validateEmail2);
	PPLit.click(validateMailing);
	Catalog.click(validateMailing);
	PPPrice.click(validateMailing);
	//On key press
	//realname.keyup(validateName);
	//phone.keyup(validatePhone);
	//email.keyup(validateEmail);
	//email2.keyup(validateEmail2);
	
	function validateMailing() {
		if (($('#PPLit').is(':checked')) || ($('#Catalog').is(':checked')) || ($('#PPPrice').is(':checked')))
		{
			$('.additional_required').show();
			address.blur(validateAddress);
			city.blur(validateCity);
			state.blur(validateState);
			zip.blur(validateZip);
		} else { 
			$('.additional_required').hide();
		}
	}
	
	
	function validateName() {  
		//if it's NOT valid  
		if(realname.val().length < 1) {  
			realname.addClass("error");  
			realnameInfo.text("Oops, you forgot to enter your full name.");  
			realnameInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
   		else {  
        	realname.removeClass("error");  
        	realnameInfo.text("Please provide your full name.");  
        	realnameInfo.removeClass("error");  
        	return true;  
    	}  
	}  
	
	function validatePhone() {  
		//if it's NOT valid  
		if(phone.val().length < 10) {  
			phone.addClass("error");  
			phoneInfo.text("Oops, make sure you provide a 10-digit phone number.");  
			phoneInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
   		else {  
        	phone.removeClass("error");  
        	phoneInfo.text("Include area code (###-###-####)");  
        	phoneInfo.removeClass("error");  
        	return true;  
    	}  
	}  
	
	function validateEmail(){
		//testing regular expression
		
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(email.val())){
			email.removeClass("error");
			emailInfo.text("Please provide a valid email address.");
			emailInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			emailInfo.text("Invalid email.");
			emailInfo.addClass("error");
			return false;
		}
	}
	
	function validateEmail2() {
		if(email.val() != email2.val()) {
			email2.addClass("error");
			email2Info.text("Email addresses do not match.");
			email2Info.addClass("error");
			return false;			
		}
		// are valid
		else {
			email2.removeClass("error");
			email2Info.text("Re-enter your email address to ensure accuracy.");
			email2Info.removeClass("error");	
			return true;
		}
	}
	
	function validateAddress() {  
		//if it's NOT valid  
		if(address.val().length < 1) {  
			address.addClass("error");  
			addressInfo.text("If requesting material, you need supply a mailing address.");  
			addressInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
   		else {  
        	address.removeClass("error");  
        	addressInfo.text("Number and street name for mailing.");  
        	addressInfo.removeClass("error");  
        	return true;  
    	}  
	}
	
	function validateCity() {  
		//if it's NOT valid  
		if(city.val().length < 1) {  
			city.addClass("error");  
			cityInfo.text("If requesting material, you need to supply a city.");  
			cityInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
   		else {  
        	city.removeClass("error");  
        	cityInfo.text("Please provide your city name for mailing.");  
        	cityInfo.removeClass("error");  
        	return true;  
    	}  
	}
	
	function validateState() {  
		//if it's NOT valid  
		if(state.val() == "Select One") {  
			state.addClass("error");  
			stateInfo.text("If requesting material, you need to supply a state.");  
			stateInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
   		else {  
        	state.removeClass("error");  
        	stateInfo.text("Please provide your state for mailing.");  
        	stateInfo.removeClass("error");  
        	return true;  
    	}  
	}
	
	function validateZip() {  
		//if it's NOT valid  
		if(zip.val().length < 5) {  
			zip.addClass("error");  
			zipInfo.text("Please provide a valid 5 or 9 digit zip code.");  
			zipInfo.addClass("error");  
			return false;  
		}  
		//if it's valid  
   		else {  
        	zip.removeClass("error");  
        	zipInfo.text("Please provide a valid 5 or 9 digit zip code.");  
        	zipInfo.removeClass("error");  
        	return true;  
    	}  
	}
	
	
});