/***************************/
//@Author: Adrian "yEnS" Mato Gondelle & Ivan Guardado Castro
//@website: www.yensdesign.com
//@email: yensamg@gmail.com
//@license: Feel free to use it, but keep this credits please!					
/***************************/

$(document).ready(function(){
	//global vars
	var form 						= $("#adoptEntryForm");
	var contest_fname 				= $("#contest_fname");
	var contest_fnameinfo 			= $("#contest_fnameinfo");
	var contest_lname 				= $("#contest_lname");
	var contest_lnameInfo 			= $("#contest_lnameInfo");
	var contest_city 				= $("#contest_city");
	var contest_cityInfo 			= $("#contest_cityInfo");
	var prov_state 					= $("#prov_state");
	var prov_stateInfo 				= $("#prov_stateInfo");
	var contest_postal_zip 			= $("#contest_postal_zip");
	var contest_postal_zipInfo 		= $("#contest_postal_zipInfo");
	var contest_phone 				= $("#contest_phone");
	var contest_phone1Info 			= $("#contest_phone1Info");
	var contest_email 				= $("#contest_email");
	var contest_emailInfo 			= $("#contest_emailInfo");
	var contest_email2 				= $("#contest_email2");
	var contest_email2Info			= $("#contest_email2Info");
	var tv_provider 				= $("#tv_provider");
	var tv_provider_other 			= $("#tv_provider_other");
	var tv_providerInfo				= $("#tv_providerInfo")
	var ans1 						= $("#ans1");
	var ans1Info 					= $("#ans1Info");
	var send_comcast 				= $("#send_comcast");
	var newsletter_wfn 				= $("#newsletter_wfn");
	var terms_wfn 					= $("#terms_wfn");
	var terms_wfnInfo				= $("#terms_wfnInfo");
	var contest_photo				= $("#contest_photo");
	//On blur
	contest_fname.blur(validatefName);
	contest_lname.blur(validatelName);
	contest_city.blur(validatecity);
	prov_state.blur(validatestate);
	contest_postal_zip.blur(validatezip);
	contest_phone.blur(validatephone);
	contest_email.blur(validateEmail);
	contest_email2.blur(validateEmail2);
	tv_provider.blur(validateEmail2);
	ans1.blur(validateans1);
	
	//On key press
	contest_fname.keyup(validatefName);
	contest_lname.keyup(validatelName);
	contest_city.keyup(validatecity);
	prov_state.keyup(validatestate);
	contest_postal_zip.keyup(validatezip);
	contest_phone.keyup(validatephone);
	contest_email.keyup(validateEmail);
	contest_email2.keyup(validateEmail2);
	tv_provider.keyup(validatetvprovider);
	ans1.keyup(validateans1);
	//On Submitting
	form.submit(function(){
		if(validatefName() && validatelName() && validatecity()&& validatestate()&& validatezip() && validatephone() && validateEmail() && validateEmail2()&&validatetvprovider() && validateans1() && validateTerms() && validatephoto()){
			return true
		} else {
			return false;
		}
	});



	function validatephoto(){
		if(contest_photo.val() == ''){
			$("#contest_photo_confirm").slideDown('normal');
			return false;
		} else {
			return true;
		}
	}
	
	
	//validation functions
	function validateTerms(){
		var selector_checked = $("#terms_wfn:checked").length; 
		if(selector_checked==0){
			terms_wfnInfo.addClass("error");
			$('#image_upload').css('margin-top','-225px'); 
			terms_wfnInfo.text("You must agree to the Rules and Regulations to enter");
			terms_wfnInfo.addClass("error");
			return false;
		} else {
			return true;
		}	
	}
	
	
	
	function validateans1(){
		//if it's NOT valid
		if(ans1.val()==''){
			ans1.addClass("error");
			ans1Info.text("Please include your response");
			ans1Info.addClass("error");
			return false;
		}
		//if it's valid
		else{
			ans1.removeClass("error");
			ans1.css('font-style','normal'); 
			ans1Info.text("");
			ans1Info.removeClass("error");
			return true;
		}
	}
	
	
	
	function validatetvprovider(){
		//if it's NOT valid
		if(tv_provider.val() == ''){
			tv_provider.addClass("error");
			tv_providerInfo.text("Please select your TV provider");
			tv_providerInfo.addClass("error");
			return false;
		} else if(tv_provider.val() == 'Other'){
			if(tv_provider_other.val()==''){
				tv_provider.addClass("error");
				tv_providerInfo.text("Please Enter your TV provider Name");
				tv_providerInfo.addClass("error");
				return false;				
			} else {
				tv_provider.removeClass("error");
				tv_providerInfo.text("");
				tv_providerInfo.removeClass("error");
				return true;
			}
		} else {
			tv_provider.removeClass("error");
			tv_providerInfo.text("");
			tv_providerInfo.removeClass("error");
			return true;
		}
	}
	
	
	
	
	function validateEmail(){
		//testing regular expression
		var a = $("#contest_email").val();
		var filter = /^[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(a)){
			contest_email.removeClass("error");
			contest_emailInfo.text("");
			contest_emailInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			contest_email.addClass("error");
			contest_emailInfo.text("Please enter a valid email address");
			contest_emailInfo.addClass("error");
			return false;
		}
	}
	
	function validateEmail2(){
		if(contest_email.val() != contest_email2.val()){
			contest_email2.addClass("error");
			contest_email2Info.text("Email and confirm email do not match.");
			contest_email2Info.addClass("error");
			return false;
		}
		//if it's NOT valid
		else{
			contest_email2.removeClass("error");
			contest_email2Info.text("");
			contest_email2Info.removeClass("error");
			return true;
		}
	}
	
	function validatefName(){
		//if it's NOT valid
		if(contest_fname.val().length < 1){
			contest_fname.addClass("error");
			contest_fnameinfo.text("Please enter your First Name");
			contest_fnameinfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			contest_fname.removeClass("error");
			contest_fnameinfo.text("");
			contest_fnameinfo.removeClass("error");
			return true;
		}
	}

	function validatelName(){
		//if it's NOT valid
		if(contest_lname.val().length < 1){
			contest_lname.addClass("error");
			contest_lnameInfo.text("Please enter your Last Name");
			contest_lnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			contest_lname.removeClass("error");
			contest_lnameInfo.text("");
			contest_lnameInfo.removeClass("error");
			return true;
		}
	}


	function validatecity(){
		//if it's NOT valid
		if(contest_city.val().length < 1){
			contest_city.addClass("error");
			contest_cityInfo.text("Please enter your City");
			contest_cityInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			contest_city.removeClass("error");
			contest_cityInfo.text("");
			contest_cityInfo.removeClass("error");
			return true;
		}
	}

	function validatestate(){
		//if it's NOT valid
		if(prov_state.val() == ''){
			prov_state.addClass("error");
			prov_stateInfo.text("Please enter your State");
			prov_stateInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			prov_state.removeClass("error");
			prov_stateInfo.text("");
			prov_stateInfo.removeClass("error");
			return true;
		}
	}

	function validatezip(){
		//if it's NOT valid
		if(contest_postal_zip.val().length < 4){
			contest_postal_zip.addClass("error");
			contest_postal_zipInfo.text("Please enter your ZIP code");
			contest_postal_zipInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			contest_postal_zip.removeClass("error");
			contest_postal_zipInfo.text("");
			contest_postal_zipInfo.removeClass("error");
			return true;
		}
	}
	
	function validatephone(){
		//if it's NOT valid
		if(contest_phone.val().length < 3){
			contest_phone.addClass("error");
			contest_phone1Info.text("Please enter your Phone No");
			contest_phone1Info.addClass("error");
			return false;
		}
		//if it's valid
		else{
			contest_phone.removeClass("error");
			contest_phone1Info.text("");
			contest_phone1Info.removeClass("error");
			return true;
		}
	}
});