$(document).ready(function() {
    // Validate form before submit
	$('#user-form').submit(
		function() {
			$(':submit').attr('disabled','disabled'); // Disable submit button 
			$('#user-form :input').removeClass('validation-error'); // Remove error class on all elements
			$('#user-form .errors').remove(); // Removes all error blocks
			
			var success;
			$.ajax({
			    type: 'POST',
			    url: baseURL + '/i/validate/',
			    data: $('#user-form').serialize(),
				dataType: 'json',
				async: false,
			    success: 
					function(data) { 
						if (data == true) {
							success = true;							
						} else {
							success = false;
							
							$.each(data,function(field,item) {
								var errors = '';
								$.each(item, function(errorno,errormsg) {
									errors = errors + '<li>' + errormsg + '</li>';
								});
								$('#' + field).addClass('validation-error'); // Add class on fields that failed validation
								$('#' + field).after('<ul class="errors">' + errors + '</ul>'); // Add error block
							});
							
							$(':submit').removeAttr('disabled'); // Enable 
							$('#user-form .validation-error:first:visible').focus(); // Focus on first field that fails validation
						}
					}
			});

			if (success) {
				return true;
			} else {
				return false;
			}
		}
	);
});
