﻿function initForm(id, options){
	
	var defaults = { 
		alertClass: "alerta", 
		mode: "inline",
		toogle: ""
	};
	var settings = $.extend({}, defaults, options);

	$(id).submit(function(){
		var formError = false;
		var emailError = false;
		var legalError = false;
		var $firstInput;
		//alert($(id+" input:text.required").length);
		$(id+" input:text.required, "+ id+" textarea.required").each(function(){
			$input = $(this);
			if(jQuery.trim($input.val()) == ""){
				$input.parent().addClass("alerta");
				formError = true;
				if(!$firstInput) $firstInput = $input;
			}else{
				if($input.hasClass("email")){
					var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
						if (!filter.test($input.val())) {
							$input.parent().addClass("alerta");
							emailError = true;
							formError = true;
							if(!$firstInput) $firstInput = $input;
						}else{
							$input.parent().removeClass("alerta");
						}
				}else{
					$input.parent().removeClass("alerta");
				}
			}
		});
		//legal checkbox
		//alert($(id+" input:checkbox.legal:checked").length);
		var hasLegalCheckBox = ($(id+" input:checkbox.legal").length > 0);
		if(hasLegalCheckBox && !formError)
		{	
			var $checkbox =$(id+" input:checkbox.legal:checked");
			if($checkbox.length == 0){
				$checkbox =$(id+" input:checkbox.legal");
				if(!$firstInput) $firstInput = $checkbox;
				legalError = true;
				formError = true;
			}
		}
		
		if(formError){
			if(emailError){
				$(id+ " .errorEmail").show();
				$(id+ " .errorRequired").hide();
				$(id+ " .errorLegal").hide();
			}else if(legalError){
				$(id+ " .errorLegal").show();
				$(id+ " .errorEmail").hide();
				$(id+ " .errorRequired").hide();
			}else{
				$(id+ " .errorRequired").show();
				$(id+ " .errorEmail").hide();
				$(id+ " .errorLegal").hide();
			}
			$(id+" .error").css("visibility", "visible");
			if(settings.mode == "inline") $(id+" .error").css("display", "inline");
			if(settings.toogle != ""){
				$(id+" "+ settings.toogle).css("display", "none");
			}
			$firstInput.focus();
			return false;
		}else{
			//$(id+" .error").css("visibility", "hidden");
			$(id+" .error").css("visibility", "hidden");
			if(settings.mode == "inline") $(id+" .error").css("display", "none");
			if(settings.toogle != ""){
				if(settings.mode == "inline") $(id+" "+ settins.toogle).css("display", "inline");
				else $(id+" "+ settins.toogle).css("display", "block");
			}
			return true;
		}
	});
}
