$(function(){
	var required_error_text = 'Tämä kenttä on pakollinen lomakkeen lähetykseen.',
		invalid_error_text 	= 'Tämä kenttä on virheellinen. Ole hyvä ja tarkista että teksti on oikein.',
		form_enabled = true,
		debug = false;
	
	$('.contact-form form').submit(function(e){
		e.preventDefault();
		form_enabled = false;
		
		var form = $(this),
			serial = $(form).serialize(),
			thank_you = $('#contact-thank-you');
		
		$('.label .errors', form).remove();
		$('.label', form).removeClass('error required invalid');
		
		if(debug) console.log('Sending...');
		
		$.post(
			'/send/contact',
			serial,
			function(data, textStatus) {
				if(debug) console.log('Received', data);
				if(data.status == 'success') {
					$.post(
						$(form).attr('action'),
						serial,
						function(data, textStatus) {
							$(form).fadeTo(400, 0, function(){
								thank_you.fadeTo(400, 1);
								form.hide();
							});
						}
					);
				}
				else if(data.status == 'error') {
					if(data.error == 'invalid_form_data') {
						for(var e in data.errors.required) {
							var field = data.errors.required[e];
							var label = $('[name="' + field + '"]', form).parent('.label');
							label.addClass('error required').append($('<div></div>').addClass('errors').html(required_error_text));
						}
						for(var e in data.errors.invalid) {
							var field = data.errors.invalid[e];
							var label = $('[name="' + field + '"]', form).parent('.label');
							label.addClass('error invalid').append($('<div></div>').addClass('errors').html(invalid_error_text));
						}
					}
					else {
						$('.form-errors').html('<strong>' + data.error + '</strong>\n');
					}
					
					form_enabled = true;
				}
			},
			'json'
		);
	});
});

