$(document).ready(function () {
	if ($('div.mood a').length=!0) {
		$('div.mood a').removeClass('selected').click(function() {
			$('div.mood a').removeClass('selected');
			$(this).addClass('selected');
		});
		if (document.location.hash) {
			$('a[href='+document.location.hash+']').addClass('selected');
		} else {
			$('div.mood a:first').addClass('selected');
		}
	}
	$('div.text form').submit(function() {
		return ajaxForm(this);
	});
});

function ajaxForm(myForm) {
	if (validateForm(myForm)) {
		var form = $(myForm);
		var url = form.attr('action');
		var data = form.serialize();
		$.ajax({ 
		   	type: "GET", 
		   	url: url, 
		   	data: data,
			dataType: 'html',
		   	success: function(html){
				$('.contactform:first').replaceWith($('.contactform:last',html));
		   	} 
		 });		
		return false;
	} else return false;
}

function validateForm(form) {
	var myForm = $(form);
	var result = true;
	var fs = myForm.find('div:last');
	myForm.find('p.error').remove();
	myForm.find('.mandatory').each(function() {
		var lab = $(this);
		var id = lab.attr('for');
		var val = $('#' + id).val();
		if (lab.hasClass('select')) {
			id = val;
			val = $('#' + val).val();
		}
		if (!val) {
			result = false;
			lab.addClass('error');
			fs.append('<p class="error">Bitte ausfüllen: "' + lab.text() + '"</p>');
		} else {
			if ((lab.hasClass('email') || id == 'email') && !validEmail(val)) {
				result = false;
				lab.addClass('error');
				fs.append('<p class="error">"' + val + '" ist keine gültige Email-Adresse.</p>');
			} else {
				lab.removeClass('error');
			}
		}
	});
	return result;
}

function validEmail(email) {
	// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
	return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/.test(email);
}
