/*-----------------------------------------------------------------------------
	Apply Now Form
-----------------------------------------------------------------------------*/
	
	$(document).ready(function() {
		var form = $('#apply-now form');
		var validateOnChange = false;
		
	/*-------------------------------------------------------------------------
		Form interaction:
	-------------------------------------------------------------------------*/
		
		form.find('#field-course').change(function() {
			var self = $(this);
			
			form.find('#field-course-date').val(
				form.find('#dates-' + self.val() + ' option:first').attr('value')
			);
		});
		
	/*-------------------------------------------------------------------------
		Form validation:
	-------------------------------------------------------------------------*/
		
		form.attr('action', ROOT + '/apply-now/validate/');
		
		function validate(submit) {
			form.ajaxSubmit({
				'dataType': 'xml',
				'type':		'POST',
				'success':	function(xml) {
					var success = true;
					
					$(xml).find('field').each(function() {
						var self = $(this);
						
						if (self.attr('status') == 'error') {
							form.find('#field-' + self.attr('name')).parent('.field').addClass('error');
							success = false;
							
						} else {
							form.find('#field-' + self.attr('name')).parent('.field').removeClass('error');
						}
					});
					
					if (submit && success) form.attr('action', ROOT + '/apply-now/').unbind('submit').submit();
				}
			});
			
			return false;
		}
		
		// Validate on change:
		form.change(function() {
			if (validateOnChange) return validate(false);
		});
		
		// Validate on submit:
		form.submit(function() {
			validateOnChange = true; return validate(true);
		});
	});
	
/*---------------------------------------------------------------------------*/