var Validation = {
	
	init: function(){
		Validation.setFocus();
		
		$('form.validate').submit(function(){
			var submit = true;
			var form = $(this);

			$( '#RegisterSubmit' ).parent().hide();
			$( '#pleaseWait' ).show();

			Validation.reset();
			
			/* Validation: Required */
			
			$(' form.validate .validate-required' ).each( function() {
				$( this ).removeClass( 'current' );
			});
			
			$('form.validate .validate-required input, form.validate .validate-required select').each(function(){
				var element = $(this);

				if (element.val() == '') {
					submit = false;

					// element.parents('.form-row').addClass('error').prepend('<div class="form-comment"><p>' + Validation.getLabel(element) + ' is required</p></div>');
					validateFields( 'register', element.attr( 'name' ) );
				}
			});
			validateFields('register','dateOfBirth,dateOfBirth_dd,dateOfBirth_mm,dateOfBirth_yyyy')

			/* Validation: Email */
			
			$('form.validate .validate-email input').each(function(){
				var element = $(this);
				var regex 	= /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

				if (!element.val().match(regex)) {
					submit = false;

					// element.parents('.form-row').addClass('error').prepend('<div class="form-comment"><p>' + Validation.getLabel(element) + ' is not valid</p></div>');
				}
			});
			
			if (submit) {
				Validation.reset();
			} else {
				$( '#RegisterSubmit' ).parent().show();
				$( '#pleaseWait' ).hide();	
			}
			
			return submit;
		});
	},
	
	setFocus: function(){
		$('form.validate').find('.form-field input, .form-field select').focus(function(){
			$(this).parents('form.validate').find('.form-row').removeClass('current');
			$(this).parents('.form-row').addClass('current');
		});
	},
	
	getLabel: function(el){
		return el.parents('.form-row').find('.form-label label').html();
	},
	
	reset: function(){
		$('.form-row.error .form-comment').remove();
		$('.form-row.error').removeClass('error');
	}
	
}

$(document).ready(Validation.init);
