//TODO: bind on reload!!
$(document).ready(function() { 
	initBinding();
	$('#is_js_active').val('1');
});

var lastFormErrorFieldId = null;

function initBinding(){
	$('#form_contact').submit(function() {
		$('#loading_form_contact').show();			
		// submit the form 
		var options = {       
			dataType:  'json', 		
	        success: dispatchResponse 		// post-submit callback 			
		};
	    $(this).ajaxSubmit(options); 
	    // return false to prevent normal browser submit and page navigation 
	    return false; 				
	});
}

function dispatchResponse(data, statusText){
	$("#form_contact_success").delay(300, function(){
		$('#loading_form_contact').show()

		if (data.status == 'OK') {
			$("#form_contact_error").hide();
			$("#form_contact_success").html(data.status_message);
			$("#form_contact_success").show();
			$("#form_contact_success").delay(10000, function(){
				$('#form_contact_success').fadeOut(400)
			});
			resetFormContact();
		}
		else if(data.status == 'ERROR') {
			$("#form_contact_success").hide();
			highlightField(data.field);
			$("#form_contact_error").html(data.status_message);
			$("#form_contact_error").show();
		}
		else
		{
			$("#form_contact_error").html('Leider');
			$("#form_contact_error").show();
		}
		
		$('#loading_form_contact').hide();
	});

}

function highlightField(fieldId)
{
	var highlighClass = 'border_black';
	var currentFormErrorFieldId = fieldId;
	if(lastFormErrorFieldId != currentFormErrorFieldId)
	{
		$("#" + currentFormErrorFieldId).focus();
		$("#" + currentFormErrorFieldId).addClass(highlighClass);
	
		if(lastFormErrorFieldId != null)
			$("#" + lastFormErrorFieldId).removeClass(highlighClass);
		lastFormErrorFieldId = currentFormErrorFieldId;
	}
	else
	{
		$("#" + lastFormErrorFieldId).focus();		
	}
}

function resetFormContact()
{
	document.getElementById('form_contact').reset();
	$("#display_count").html(5000);
	$("#message").blur();	
	$('#is_js_active').val('1');	
}
