var appForm = 'form';
var formSending = false;
var currentForm = false;

function initForm()
{
	$('body').delegate(appForm, 'submit', function(){sendForm($(this)); return false;});
}

function sendForm(form)
{
	if(!formSending)
	{
		currentForm = form;
		var options = { 
		    target:     	appForm,
		    url:        	form.attr('action'), 
		    type:			'post',
		    dataType:		'json',
		    success:    	onFormResponse
		};
		
		formSending = true;
		
		// pass options to ajaxForm 
		$('#form .label span.error, #form #submit span').html('');
		$('#form .frmblock').height($('#form .frmblock').height());
		$('#form .frmblock').append('<div class="message">Sending Message</div>').toggleClass('preload', true);
		$(appForm).ajaxSubmit(options);
	}
}

function onFormResponse(data)
{
	formSending = false;
	if(data.error != undefined && !data.error && data.data.page != undefined && data.data.page.result != undefined)
	{
		processReponse(data.data.page.result);
	}
}

function processReponse(reponse)
{
	$('#form .frmblock').toggleClass('preload', false);
	$('#form .frmblock > .message').remove();
	currentForm.find('span.error').html('');
	if(reponse.error && reponse.errors != undefined)
	{
		//if errors
		if(reponse.errors.name != undefined)
		{
			currentForm.find('label[for="name"]').parent().find('span.error').html(reponse.errors.name);
		}
		if(reponse.errors.email != undefined)
		{
			currentForm.find('label[for="email"]').parent().find('span.error').html(reponse.errors.email);
		}
		if(reponse.errors.message != undefined)
		{
			currentForm.find('label[for="message"]').parent().find('span.error').html(reponse.errors.message);
		}
	}
	else
	{
		//if success
		//currentForm.find('input[type=text], textarea').val('')
		//currentForm.find('span.response').html(reponse.message);
		currentForm.remove();
		$('#form').html('<h2>Message sent</h2><div class="body">'+reponse.message+'</div>')
	}
}
