(function($) {

	var validate = function(el,rules) {
		var error={};
		$(":input",el).each(
			function() {
				var attr = $(this).attr('name');
				var val  = $.trim($(this).val());
				if (typeof rules[attr] !== "undefined") {
					if (rules[attr][0]===true && val=="") {
						error[attr]='required';
					}
					else if (typeof rules[attr][1] !== "undefined" && rules[attr][1] != "" && val!="") {					//do validation on field
						var regex = new RegExp("^" + rules[attr][1] + "$","i"); 
						if (!regex.test(val)) {
							//failed
							error[attr]='invalid';
						}
					}
				}
			}
		);
		return error;
	}
	
	var registerSubmit = function() {
		//reset errors
		$("label > em",this).remove();
		$("li",this).removeClass('error')
		
		//custom errors
		var errors = {}
		
		if ($("input[name=password]").val()!=$("input[name=password_conf]").val()) {
			errors['password']='error';
			errors['password_conf']='error';
		}
		
		//add basic errors
		errors = $.extend(errors,validate(this,logicbox.userValRules));
			
		var i=0,self = this;
		$.each(errors, function(k, v) {
			i++;
			$(":input[name=" + k + "]",self)
				.parent().parent().addClass('error')
				.find('label').append('<em> ' + v + '</em>'); 
		});

		return i==0 ? true : false;
	}
	
	$(function() {
			   
		$("#register").submit(registerSubmit);
			   
	});

})(jQuery);