var bytepark = bytepark || {};

bytepark.ContactForm = {
	init : function() {
		$("#contactForm input[type=submit]").click(submitForm);
		
		var create = bytepark.ContactForm.createElement;
		var check = bytepark.ContactForm.checkError;
		
		var nameError = ($('#btnDE').length) ? create("Please enter your name.", "#username") : create("Bitte geben Sie Ihren Namen an.", "#username"); 
		var emailError = ($('#btnDE').length) ? create("Please enter your e-mail.", "#email") : create("Bitte geben Sie Ihre E-Mail an.", "#email");
		var messageError = ($('#btnDE').length) ? create("Please enter your request.", "#message") : create("Bitte geben Sie Ihre Anfrage an.", "#message");
		var codeError = ($('#btnDE').length) ? create("Please enter the correct code.", "#captcha") : create("Bitte geben Sie den korrekten Code ein.", "#captcha");
		var responseSuccess = ($('#btnDE').length) ? "<p id='contactSuccess'>Thank you.</p>" : "<p id='contactSuccess'>Vielen Dank. Email wurde gesendet.</p>"; 
		var responseError = ($('#btnDE').length) ? "<p id='contactError'>Sorry, an error has occured. Please try again later.</p>" : "<p id='contactError'>Leider ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.</p>";
		
		var isSending = false;
		
		function submitForm(e) {
			if (!isSending) {
				$.ajax({
					type: "POST",
					dataType: "json",
					data: $("#contactForm").serialize(),
					url: "/kontakt/ajax.html",
					success: function(result) {						
						check(result.name, nameError);
						check(result.email, emailError);
						check(result.message, messageError);
						check(result.code, codeError);
						
						if (result.mail == "ok") $('#content #main h1').after(responseSuccess);
						isSending = false;
					},
					error: function() {
						$('#content #main h1').after(responseError);
						isSending = false;
					}
				});
				
				isSending = true;
			}
			
			e.preventDefault();
		}
	},
	
	checkError : function(result, elem) {
		if (result == "error") {
			bytepark.ContactForm.showElement(elem);
		} 
		else if (elem) bytepark.ContactForm.hideElement(elem);
	},
	
	createElement : function(msg, parent) {
		var elem =  $('<p style="height:0px; overflow:hidden;">'+msg+'</p>');
		$(parent).after(elem);
		return elem;
	},
	
	showElement : function(elem) {
		elem.stop().animate({"height": "20px"}, 500, "easeOutExpo");
	},
	
	hideElement : function(elem) {
		elem.stop().animate({"height": "0px"}, 500, "easeOutExpo");
	}
};

$(bytepark.ContactForm.init);
