$(document).ready(function(){
	initValidation();
});

function initValidation(){
	var _errorClass = 'error';
	var _regEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var _regEmails = /^([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4})+([, ]+[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4})*$/;
	var _regPhone = /^[0-9\-\ \()]+$/;
	var _regNum = /^[0-9]+$/;
	var _regDay = /^(([0]{1}[1-9]{1})|([1-9]{1})|([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))$/;
	var _regMon = /^(([0]{1}[1-9]{1})|([1-9]{1})|([1]{1}[0-2]{1}))$/;
	var _regYear = /^[19]{2}[0-9]{2}$/;
	
	$('#main .registration-form').each(function(){
		var _form = $(this);
		function checkFields() {
			var _flag = false;
			_form.find('.'+_errorClass).removeClass(_errorClass);

			// fields validation
			_form.find('input.required-email').each(function(){
				
				if(!_regEmail.test($(this).val())) addError($(this));
			});
			
			_form.find('input.required-confirm-email').each(function(){
				var _confPass = $(this).val();				
				var _truePass = $(this).parents('div.form-holder').find('input.required-email').val();				
				if(_confPass != _truePass) addError($(this));
			});
			
			_form.find('input.required-length').each(function(){
				if(!$(this).val().length || $(this).val().length > 12) addError($(this));
			});
			
			_form.find('input.required-confirm-pass').each(function(){
				var _confPass = $(this).val();			
				var _truePass = $(this).parents('div.form-holder').find('input.required-pass').val();			
				if(_confPass != _truePass) addError($(this));
			});
			
			
			_form.find('select.required-gender').each(function(){		
		         
				if($("#select-1").val()==0) addError($(this));
			});
			
			_form.find('select.required-day').each(function(){
				if($("#select-day").val()=="") addError($(this));				
			});
			_form.find('select.required-mon').each(function(){
				if($("#select-month").val()=="") addError($(this));
			});
			_form.find('select.required-year').each(function(){
				if($("#select-year").val()=="") addError($(this));
			});
			_form.find('textarea.required-many-emails').each(function(){
				if(!_regEmails.test($(this).val())) addError($(this));
			});
			_form.find('input.required-phone').each(function(){
				if(!_regPhone.test($(this).val())) addError($(this));
			});
			_form.find('input.required-num').each(function(){
				if(!_regNum.test($(this).val())) addError($(this));
			});
			_form.find('input.required,input.required-pass,textarea.required').each(function(){
				if(!$(this).val().length || $(this).val() == $(this).attr('alt')) addError($(this));
			});
			_form.find('input.required-chek').each(function(){
				if (!$(this).is(':checked')) {
					$(this).parent('div').addClass('error-chk');
					_flag=true;
				}
			});
			_form.find('div.required-radio').each(function(){
				var _test = false;
				$(this).find('input[type=radio]').each(function(){
					if ($(this).is(':checked')) _test = true;
				});
				if (!_test) {
					_flag=true;
				}
			});

			// error class adding
			function addError(_obj) {
				_obj.parents('div.row').addClass(_errorClass);
				_flag=true;
			}
			return _flag;
		}

		// catch form submit event
		_form.submit(function(){
			if(checkFields()) {
				return false;
			}
		});
	});
}


function validateTerm(theForm){
	var error="";	
     if(!theForm.terms.checked)
    	 error = "You must agree to the terms of service before you to continue."
	 if (error != "") {
	   alert(error);
	   return false;
	 }
 return true;
}
