$(document).ready(function() {
	setForm();
	
	$('#contact-form').submit(function() {
		if (validateField('nb068931cc450442b63f5b3d276ea4297', 'empty', 'input')
			& validateField('e0c83f57c786a0b4a39efab23731c7ebc', 'email', 'input')
			& validateField('m78e731027d8fd50ed642340b7c9a63b3', 'empty', 'textarea')) {
			
			sendData($('#contact-form').serialize(), 'mail.php', 'POST');
			$('#submit').blur();
		}
		else {
			$('#submit').after('<button id="submit-error" class="error">' + $('#submit').text() + '</button>');
			$('#submit').blur();
			$('#submit-error').show();
			$('#submit-error').fadeOut('slow', function() {
				$('#submit-error').remove();
			});
		}
		
		return false;
	});
});

function setForm() {
	setField('nb068931cc450442b63f5b3d276ea4297');
	setField('e0c83f57c786a0b4a39efab23731c7ebc');
	setField('wd1befa03c79ca0b84ecc488dea96bc68');
	setField('m78e731027d8fd50ed642340b7c9a63b3');
}

function setField(fieldName) {
	var field = $('#' + fieldName);
	var labelText = $('label[for="' + fieldName + '"]').text();
	
	field.val(labelText);
	field.addClass('label');
	
	field.focus(function() {
		if (field.val() == labelText)
			field.val('');
		field.removeClass('label');
	});
	
	field.blur(function() {
		if (field.val() == '')
		{
			field.val(labelText);
			field.addClass('label');
		}
	});
}

function showError(fieldName, type) {
	var field = $('#' + fieldName);
	
	switch (type) {
		case 'input':
			field.after('<input id="' + fieldName + '-error" class="error" />');
			break;
		case 'textarea':
			field.after('<textarea id="' + fieldName + '-error" class="error"></textarea>');
			break;
	}
		
	var fieldError = $('#' + fieldName + '-error');
	
	fieldError.val(field.val());
	fieldError.show();
	fieldError.fadeOut('slow', function() {
		fieldError.remove();
	});
}

function validateField(fieldName, validate, type) {
	var field = $('#' + fieldName);
	var labelText = $('label[for="' + fieldName + '"]').text();
	
	switch (validate) {
		case 'empty':
			if (field.val() == labelText || field.val() == '') {
				showError(fieldName, type);
				return false;	
			}
			else {
				return true;
			}
			break;
		case 'email':
			var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if (! filter.test(field.val())) {
				showError(fieldName, type);
				return false;	
			}
			else {
				return true;
			}
			break;
	}
}

function sendData(data, url, type) {
	if ($('#website').val() == 'Webseite')
		$('#website').val('');
		
	$.ajax({
		type: type,
		url: url,
		data: data,
		success: function() {
			showMessage();
		}
	});
}

function showMessage() {
	$('#contact').append('<p id="form-message">Vielen Dank für Ihre Nachricht.</p>');
	$('#contact-form').fadeOut('slow', function() {
		$('#form-message').fadeIn('fast');
		$('#form-message').fadeTo(3000, 1, function() {
			$('#form-message').fadeOut('fast', function() {
				$('#form-message').hide();
				setForm();
				$('#contact-form').fadeIn('slow');
			});
		})
	});
	
}