// ajax_validate.js
// Unobstrusive ajax validation handler
// Modified by David Li 2011
// Last Updated - 19/7/11
// USAGE: Add script reference to HTML header section

$(document).ready(function(){
	// On form submission
	/*$('#submit').click(function() {

		//$('#waiting').show(500); // Loading bar
		$('#demoForm').hide(0); // Form
		//$('#message').hide(0);  // Messages

		$.ajax({
			type : 'POST',
			url : 'ajax_validate.php',
			dataType : 'json',
			data: {
				email : $('#email').val()
			},
			success : function(data){
				$('#waiting').hide(500);
				$('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
					.text(data.msg).show(500);
				if (data.error === true)
					$('#demoForm').show(500);
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				$('#waiting').hide(500);
				$('#message').removeClass().addClass('error')
					.text('There was an error.').show(500);
				$('#demoForm').show(500);
			}
		});

		return false;
	});*/
	
	// When a field has lost focus
	$('.validateField').blur(function() {
    
    var errorDiv = $(this).closest("form").attr("name")+'Errors';
    var field = $(this);
    var labelName = $(this).attr('name')+'Label';

		$.ajax({
			type : 'POST',
			url : 'ajax_validateField.php',
			dataType : 'json',
			data: {
				val : $(this).val(),
				title : $(this).attr('title'),
				name : $(this).attr('name'),
				classes : $(this).attr('class')
			},
			success : function(data){
				if (data.error === true)
				{
					$('#'+errorDiv).html(data.msg);
					
					field.addClass("fieldErrorInput");
					$('#'+labelName).addClass("fieldErrorLabel");
        }
        else
        {
          //$('#'+errorDiv).text("Valid input").show(500); // DEBUG
          
          $('#'+errorDiv).empty()
          field.removeClass("fieldErrorInput");
          $('#'+labelName).removeClass("fieldErrorLabel");
        }
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				$('#'+errorDiv).text('AJAX Error. Please notify the webmaster.'+"\n"+errorThrown).show(500);
			}
		});

		return false;
	});
});
