$(document).ready( function() {

	var name_error = false;
	var email_error = false;
	var phone_error = false;
	var country_error = false;

	function validateField(field) {
		var error = false;
		
		// required fields
		if ($(field).attr("class").indexOf("name") != -1) {
			if (!$(field).val().length) {
				error = true;
				name_error = true;
			}else{
				name_error = false;
			}
		}
		// name
		if ($(field).attr("class").indexOf("name") != -1) {
			if (!/^[a-zA-Zâˆšâˆ‚âˆšÃ±âˆšÂ§âˆšÃ‘âˆšâ€¢âˆšÃ– ]*$/.test($(field).val())) {
				error = true;
			}
		}
		if ($(field).attr("class").indexOf("country") != -1) {
			if (!$(field).val().length) {
				error = true;
				country_error = true;
			}else{
				country_error = false;
			}
		}
		// country
		//if ($(field).attr("class").indexOf("country") != -1) {
		//	if (!/^[a-zA-Zâˆšâˆ‚âˆšÃ±âˆšÂ§âˆšÃ‘âˆšâ€¢âˆšÃ– ]*$/.test($(field).val())) {
		//		error = true;
		//	}
		//}
		// emails
		if ($("#identity_sendmail").is(':checked')){
			if ($(field).attr("class").indexOf("email") != -1) {
				if (!/^[a-zA-Z0-9]{1}([\._a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+){1,3}$/.test($(field).val())){
					error = true;
					email_error = true;
				}else{
					email_error = false;
				}
			}
		}
		// phone
		if ($("#identity_sendtxt").is(':checked')){
			if ($(field).attr("class").indexOf("phone") != -1) {
				var validNum = $(field).val().replace(/[^\d]/g,'');
				var formatNum = ["+" + validNum];
				$("#identity_phone").attr('value', formatNum.join(''));
				
				if (!/^\+\d{11,13}$/.test($(field).val())){
					error = true;	
					phone_error = true;
				}else{
					phone_error = false;
				}
			}
		}
		
		if (error) {
			$(field).addClass("error");
		} else {
			$(field).removeClass("error");
		}
		
		if(name_error || country_error || email_error || phone_error) {
			var message = [""];
			if(name_error) message = ["NAME "];
			if(country_error) message = [message + "COUNTRY "];
			if(email_error) message = [message + "EMAIL "];
			if(phone_error) message = [message + "PHONE "];
			message = ["&nbsp;&nbsp;&nbsp;" + message + "field(s) required."];
			//alert(message);
			$("#error_message").html(message.join(''));
		}else if(!name_error && !email_error && !phone_error) {
			var message = ["&nbsp;&nbsp;&nbsp;" + "Your promise has not been saved."];
			$("#error_message").html(message.join(''));
			//alert(message);
		}
		
		return !error;
	}
	
	$("form").each( function() {
		// handle submissions without filling any field
		$(this).submit(function () {
			var validationError = false;
			// for each field test it
			$("input, select, textarea", this).each( function() {
				if ($(this).attr("class")) {
					if (!validateField(this))
						validationError = true;
				}
			});
			return !validationError;
		});
	
		// handle changes on the fly
		$("input, select, textarea", this).each( function() {
			if ($(this).attr("class")) {
				//$(this).blur( function() { validateField(this) } );
				$(this).keyup( function() { validateField(this) } );
    			}
		});
	});
});