$(document).ready(function(){

	//global vars
	var form = $("#submitbusiness");
	var contactFirstName = $("#contactfirstname");
	var contactFirstNameInfo = $("#invalid_contact_firstname");
	var contactLastName = $("#contactlastname");
	var contactLastNameInfo = $("#invalid_contact_lastname");
	var contactPhone = $("#contactphone");
	var contactPhoneInfo = $("#invalid_contact_phonenumber");
	var contactEmail = $("#contactemail");
	var contactEmailInfo = $("#invalid_contact_email");
	var businessDescription = $("#businessdescription");
	var businessDescriptionInfo = $("#invalid_business_description");
	var businessName = $("#businessname");
	var businessNameInfo = $("#invalid_business_name");
	var category = $("#category");
	var categoryInfo = $("#invalid_business_category");
	var businessPhone = $("#businessphone1");
	var businessPhoneInfo = $("#invalid_business_phone1");
	var businessFax = $("#businessfaxnumber");
	var businessFaxInfo = $("#invalid_business_fax");
	var businessAddress = $("#address1");
	var businessAddressInfo = $("#invalid_business_address");
	var businessCity = $("#city");
	var businessCityInfo = $("#invalid_business_city");
	var businessProvince = $("#province");
	var businessProvinceInfo = $("#invalid_business_province");
	
	//On blur events
	contactFirstName.blur(validateContactFirstName);
	contactLastName.blur(validateContactLastName);	
	contactPhone.blur(validateContactPhoneNumber);
	contactEmail.blur(validateContactEmail);
	businessName.blur(validateBusinessName);
	
		businessPhone.blur(validateBusinessPhoneNumber);
	//businessFax.blur(validateBusinessFaxNumber);
	businessAddress.blur(validateBusinessAddress);
	businessCity.blur(validateBusinessCity);
	businessProvince.change(validateBusinessProvince);
	businessProvince.blur(validateBusinessProvince);	
	businessDescription.blur(validateBusinessDescription);

	//On Submit
	form.submit(function(){
			
			if(validateContactFirstName() & validateContactLastName() &validateContactPhoneNumber() & validateContactEmail() & validateBusinessName() & validateBusinessPhoneNumber() & validateBusinessAddress() & validateBusinessCity() & validateBusinessProvince() & validateBusinessDescription() )
			return true
		else
			return false;
			
	});

	//validation functions
	function validateContactFirstName()
	{
		if(contactFirstName.val().length < 4){
			//NOT valid
			contactFirstName.addClass("error");
			contactFirstNameInfo.css('display', 'block');
			contactFirstNameInfo.addClass("error");
			return false;
		} else {
			//valid
			contactFirstName.removeClass("error");
			contactFirstNameInfo.css('display', 'none');
			contactFirstNameInfo.removeClass("error");
			return true;
		}
	}
	
	function validateContactLastName()
	{
		if(contactLastName.val().length < 4){
			//NOT valid
			contactLastName.addClass("error");
			contactLastNameInfo.css('display', 'block');
			contactLastNameInfo.addClass("error");
			return false;
		} else {
			//valid
			contactLastName.removeClass("error");
			contactLastNameInfo.css('display', 'none');
			contactLastNameInfo.removeClass("error");
			return true;
		}
	}
	
	function validateContactEmail()
	{
		var a = $("#contactemail").val();
		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(filter.test(a)){
			//valid 
			contactEmail.removeClass("error");
			contactEmailInfo.css('display', 'none');
			contactEmailInfo.removeClass("error");
			return true;
		} else {
			//NOT valid
			contactEmail.addClass("error");
			contactEmailInfo.css('display', 'block');
			contactEmailInfo.addClass("error");
			return false;
		}
	}
	
	function validateContactPhoneNumber()
	{
		var a = $("#contactphone").val();
		var filter = /\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/;
		
		if (filter.test(a)){
			//Valid
			contactPhone.removeClass("error");
			contactPhoneInfo.css('display', 'none');
			contactPhoneInfo.removeClass("error");
			return true;
		} else {
			//NOT valid
			contactPhone.addClass("error");
			contactPhoneInfo.css('display', 'block');
			contactPhoneInfo.addClass("error");
			return false;
		}
	}
	
	function validateBusinessDescription()
	{
		if(businessDescription.val().length < 10)
		{
			//NOT valid
			businessDescription.addClass("error");
			businessDescriptionInfo.css('display', 'block');
			businessDescriptionInfo.addClass("error");
			return false;
		} else {
			//valid			
			businessDescription.removeClass("error");
			businessDescriptionInfo.css('display', 'none');
			businessDescriptionInfo.removeClass("error");
			return true;
		}
	}
	
	function validateBusinessName()
	{
		if(businessName.val().length < 4)
		{
			//NOT valid
			businessName.addClass("error");
			businessNameInfo.css('display', 'block');
			businessNameInfo.addClass("error");
			return false;
		} else {
			//valid
			businessName.removeClass("error");
			businessNameInfo.css('display', 'none');
			businessNameInfo.removeClass("error");
			return true;
		}
	}
	function validateBusinessCategory()
	{
		var a = $("#category").val().length;
		if (a > 0)
		{
			category.removeClass("error");
			categoryInfo.css('display', 'none');
			categoryInfo.removeClass("error");
			return true;
		} else {
			//NOT valid
			category.addClass("error");
			categoryInfo.css('display', 'block');
			categoryInfo.addClass("error");
			return false;
		}
	}
	
	function validateBusinessPhoneNumber()
	{
		var a = $("#businessphone1").val();
		var filter = /\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/;
		
		if (filter.test(a))
		{
			//valid
			businessPhone.removeClass("error");
			businessPhoneInfo.css('display', 'none');
			businessPhoneInfo.removeClass("error");
			return true;
		} else {
			// NOT valid
			businessPhone.addClass("error");
			businessPhoneInfo.css('display', 'block');
			businessPhoneInfo.addClass("error");
			return false;
		}
	}
	function validateBusinessFaxNumber()
	{
		var a = $("#businessfaxnumber").val();
		var filter = /\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/;
		
		if (filter.test(a))
		{
			businessFax.removeClass("error");
			businessFaxInfo.css('display', 'none');
			businessFaxInfo.removeClass("error");
			return true;
		} else {
			//NOT valid
			businessFax.addClass("error");
			businessFaxInfo.css('display', 'block');
			businessFaxInfo.addClass("error");
			return false;
		}
	}
	
	function validateBusinessAddress()
	{
		if(businessAddress.val().length < 4)
		{
			//NOT valid
			businessAddress.addClass("error");
			businessAddressInfo.css('display', 'block');
			businessAddressInfo.addClass("error");
			return false;
		} else {
			//valid
			businessAddress.removeClass("error");
			businessAddressInfo.css('display', 'none');
			businessAddressInfo.removeClass("error");
			return true;
		}
	}
	
	function validateBusinessCity()
	{	
		if(businessCity.val().length < 2)
		{
			//NOT valid
			businessCity.addClass("error");
			businessCityInfo.css('display', 'block');
			businessCityInfo.addClass("error");
			return false;
		} else {
			//valid
			businessCity.removeClass("error");
			businessCityInfo.css('display', 'none');
			businessCityInfo.removeClass("error");
			return true;
		}
	}
	
	function validateBusinessProvince()
	{
		var a = $("#province").val();
		if (a != "")
		{
			businessProvince.removeClass("error");
			businessProvinceInfo.css('display', 'none');
			businessProvinceInfo.removeClass("error");
			return true;
		} else {
			//NOT valid
			businessProvince.addClass("error");
			businessProvinceInfo.css('display', 'block');
			businessProvinceInfo.addClass("error");
			return false;
		}
	}
	
	
	//all form input events - focus, blur and hover
	$("input").focus(function() {
		$(this)
			.addClass("active")
			.parent()
				.addClass("curFocus");
	});
	
	$("input").blur(function() {
		$(this)
			.removeClass("active")
			.parent()
				.removeClass("curFocus");
	});
	
	$("input").hover(function() {
		$(this).addClass("active_hover");
	}, function() {
		$(this).removeClass("active_hover");
	});
	
	//all form select events - focus, blur and hover
	$("select").focus(function() {
		$(this)
			.addClass("active")
			.parent()
				.addClass("curFocus");
	});
	$("select").blur(function() {
		$(this)
			.removeClass("active")
			.parent()
				.removeClass("curFocus");
	});
	$("select").hover(function() {
		$(this).addClass("active_hover");
	}, function() {
		$(this).removeClass("active_hover");
	});
	
	//all form textarea events - focus, blur and hover
	$("textarea").focus(function() {
		$(this)
			.addClass("active")
			.parent()
				.addClass("curFocus");
	});
	$("textarea").blur(function() {
		$(this)
			.removeClass("active")
			.parent()
				.removeClass("curFocus");
	});
	$("textarea").hover(function() {
		$(this).addClass("active_hover");
	}, function() {
		$(this).removeClass("active_hover");
	});	
});
