/***************************/
//@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
	$('#frmmain input[type="text"]').addClass("idleField");
	$('#frmmain select').addClass("idleField");
	$('#frmmain input[type="text"]').focus(function() {
		$(this).removeClass("idleField").addClass("focusField");
    });
    $('#frmmain select').focus(function() {
		$(this).removeClass("idleField").addClass("focusField");
    });
    $('#frmmain select').blur(function() {
    	$(this).removeClass("focusField").addClass("idleField");
    });
    $('#frmmain input[type="text"]').blur(function() {
    	$(this).removeClass("focusField").addClass("idleField");
    });
	var form = $("#frmmain");
	var dj_type = $("#clsextquote_dj_type");
	var dj_typeInfo = $("#dj_typeInfo");
	var event_type = $("#clsextquote_eventtype_id_1");
	var event_typeInfo = $("#event_typeInfo");
	var state = $("#clsextquote_state");
	var stateInfo = $("#stateInfo");
	var city = $("#clsextquote_city");
	var cityInfo = $("#cityInfo");
	var name = $("#clsextquote_name");
	var nameInfo = $("#nameInfo");
	var date = $("#clsextquote_date");
	var dateInfo = $("#dateInfo");
	/*var start_time=$("#clsextquote_starttime");
	var start_timeInfo=$("#start_timeInfo");
	var end_time=$("#clsextquote_endtime");
	var end_timeInfo=$("#end_timeInfo");*/
	var email = $("#clsextquote_email");
	var emailInfo = $("#emailInfo");
	var phone = $("#clsextquote_phone");
	var phoneInfo = $("#phoneInfo");
	
	//On blur
	dj_type.blur(validateDjType)
	event_type.blur(validateEventType)
	state.blur(validateState)
	city.blur(validateCity)
	name.blur(validateName);
	date.blur(validateDate);
	/*start_time.blur(validateStartTime);
	end_time.blur(validateEndTime);*/
	date.blur(validateDate);
	email.blur(validateEmail);
	phone.blur(validatePhone);
	//On key press
	dj_type.change(validateDjType)
	event_type.change(validateEventType)
	state.change(validateState)
	city.change(validateCity)
	name.keyup(validateName);
	date.change(validateDate);
	/*start_time.change(validateStartTime);
	end_time.change(validateEndTime);*/
	email.keyup(validateEmail);
	//phone.keyup(validatePhone);
	//On Submitting
	form.submit(function(){
		if(validateDjType() & validateEventType() & validateState() & validateCity() & validateName() & validateDate() & validateEmail() & validatePhone())
			return true
		else
			return false;
	});
	function validateDjType(){
		//if it's NOT valid
		if(dj_type.val()==""){
			dj_type.addClass("error");
			dj_typeInfo.addClass("invalid");
			dj_typeInfo.fadeIn("slow");
			dj_typeInfo.text("Please Select Valid DJ Type");
			return false;
		}
		//if it's valid
		else{
			dj_typeInfo.text("");
			dj_typeInfo.fadeOut("slow");
			dj_typeInfo.removeClass("invalid");
			dj_type.removeClass("error");
			return true;
		}
	}
	function validateEventType(){
		//if it's NOT valid
		if(event_type.val()==""){
			event_type.addClass("error");
			event_typeInfo.addClass("invalid");
			event_typeInfo.fadeIn("slow");
			event_typeInfo.text("Please Select Valid Event Type");
			return false;
		}
		//if it's valid
		else{
			event_typeInfo.text("");
			event_typeInfo.fadeOut("slow");
			event_typeInfo.removeClass("invalid");
			event_type.removeClass("error");
			return true;
		}
	}
	function validateState(){
		//if it's NOT valid
		if(state.val()==""){
			state.addClass("error");
			stateInfo.addClass("invalid");
			stateInfo.fadeIn("slow");
			stateInfo.text("Please Select Valid State");
			return false;
		}
		//if it's valid
		else{
			stateInfo.text("");
			stateInfo.fadeOut("slow");
			stateInfo.removeClass("invalid");
			state.removeClass("error");
			return true;
		}
	}
	function validateCity(){
		//if it's NOT valid
		if(city.val()==""){
			city.addClass("error");
			cityInfo.addClass("invalid");
			cityInfo.fadeIn("slow");
			cityInfo.text("Please Select Valid City");
			return false;
		}
		//if it's valid
		else{
			cityInfo.text("");
			cityInfo.fadeOut("slow");
			cityInfo.removeClass("invalid");
			city.removeClass("error");
			return true;
		}
	}
	function validateName(){
		//if it's NOT valid
		if(name.val()==""){
			name.addClass("error");
			nameInfo.addClass("invalid");
			nameInfo.fadeIn("slow");
			nameInfo.text("Please Enter Name");
			return false;
		}
		//if it's valid
		else{
			nameInfo.text("");
			nameInfo.fadeOut("slow");
			nameInfo.removeClass("invalid");
			name.removeClass("error");
			return true;
		}
	}
	//validation functions
	function validateEmail(){
		//testing regular expression
		var a = $("#clsextquote_email").val();
		var filter = /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i;
		//if it's valid email
		if(filter.test(a)){
			emailInfo.text("");
			emailInfo.fadeOut("slow");
			emailInfo.removeClass("invalid");
			email.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			emailInfo.addClass("invalid");
			emailInfo.fadeIn("slow");
			emailInfo.text("Please Enter Valid E-mail");
			return false;
		}
	}
	function validateDate(){
		//it's NOT valid
		if(date.val()==""){
			date.addClass("error");
			dateInfo.addClass("invalid");
			dateInfo.fadeIn("slow");
			dateInfo.text("Please Select Date");
			return false;
		}
		//it's valid
		else{
			dateInfo.text("");
			dateInfo.fadeOut("slow");
			dateInfo.removeClass("invalid");
			date.removeClass("error");
			return true;
		}
	}
	function validateStartTime(){
		//if it's NOT valid
		if(start_time.val()==""){
			start_time.addClass("error");
			start_timeInfo.addClass("invalid");
			start_timeInfo.fadeIn("slow");
			start_timeInfo.text("Please Select Start Time");
			return false;
		}
		//if it's valid
		else{
			start_timeInfo.text("");
			start_timeInfo.fadeOut("slow");
			start_timeInfo.removeClass("invalid");
			start_time.removeClass("error");
			return true;
		}
	}
	function validateEndTime(){
		//if it's NOT valid
		if(end_time.val()==""){
			end_time.addClass("error");
			end_timeInfo.addClass("invalid");
			end_timeInfo.fadeIn("slow");
			end_timeInfo.text("Please Select End Time");
			return false;
		}
		//if it's valid
		else{
			end_timeInfo.text("");
			end_timeInfo.fadeOut("slow");
			end_timeInfo.removeClass("invalid");
			end_time.removeClass("error");
			return true;
		}
	}
	function validatePhone(){
		//it's NOT valid
		if(phone.val()==""){
			phone.addClass("error");
			phoneInfo.addClass("invalid");
			phoneInfo.fadeIn("slow");
			phoneInfo.text("Please Enter Phone");
			return false;
		}
		//it's valid
		else{		
			phoneInfo.text("");
			phoneInfo.fadeOut("slow");
			phoneInfo.removeClass("invalid");	
			phone.removeClass("error");
			return true;
		}
	}
});
