$(document).ready( function() {
$('#close-message').click(function(){$('#error-messages').hide();});

	function validateField(field) {
		var error = false;
		
		// required fields
		if ($(field).attr("class").indexOf("required") != -1) {
			if (!$(field).val().length)
				error = true;
		}
		// numeric fields
		if ($(field).attr("class").indexOf("number") != -1) {
			if (!/^[0-9\s\+\(\)]*$/.test($(field).val()))
				error = true;
		}
		// characters (letters)
		if ($(field).attr("class").indexOf("character") != -1) {
			if (!/^[a-zA-ZÃ¶Ã–Ã¤Ã„Ã¥Ã…\s\']*$/.test($(field).val()))
				error = true;
		}
		// emails
		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;
		}
		
		if (error) {
			$(field).addClass("error");
			$(field).parent().find('input').addClass("error");
		} else {
			$(field).removeClass("error");
			$(field).parent().find('input').removeClass("error");

		}
		
		return !error;
	}
	
	$("form").each( function() {
		// handle submissions without filling any field
		$('#submit-button',this).click(function () {
			$('#error-messages').hide();
			var validationError = false;
			// for each field test it
			$("input, select, textarea").each( function() {
				if ($(this).attr("class")) {
					if (!validateField(this)){
						validationError = true; $('#error-messages').fadeIn('slow');
						//pageTracker._trackPageview("/funnel/submit-error.html");
						}
				}
			}); if (!validationError){
			//pageTracker._trackPageview("/funnel/submit-application.html"); 
			$('form')[0].submit();}
			return !validationError;
		});
	
		// handle changes on the fly
		$("input, select, textarea", this).each( function() {
			if ($(this).attr("class")) {
				$(this).change( function() { validateField(this) } );
    			}
		});
	});
});


