$(document).ready
	(
	function
		(
		)
	{
	var o_todo =
		{
		f_b_esCif:
			function
				(
				s_cif
				)
			{
			return IdentificacionEspana.f_b_esCif(s_cif);
			},
        f_form1OnReset:
            function   
                (
                )
            {
            var b_afirmativo = confirm("¿Realmente desea limpiar todos los campos del formulario?");
            return b_afirmativo;
            },			
		f_form1OnSubmit:
			function
				(
				o_event//http://docs.jquery.com/Events/jQuery.Event
				)
			{
			var o_todo = o_event.data;
			var i_numErrores = 0;
			var s_msgObliVal = "El dato es oligatorio y debe ser válido.";
			//var s_msgOpVal = "El dato es opcional pero, si se especifica, debe ser válido.";
			//primeramente hay que limpiar todos los mensajes de error que hubiera anteriormente
			$("label[class='error']").text("");
			$("#divErrorGeneral").text("");
			
			// https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Regular_Expressions
			var o_patron = null;
			
			var s_empresa = jQuery.trim($("#inputTextEmpresa").attr("value"));
			o_patron = /[A-Za-z]/;
			if (!s_empresa.match(o_patron))
				{
				i_numErrores++;
				$("label[for='inputTextEmpresa'][class='error']").text(s_msgObliVal);
				}//if
				
			var s_cif = jQuery.trim($("#inputTextCif").attr("value"));
			if (!o_todo.f_b_esCif(s_cif))
				{
				$("label[for='inputTextCif'][class='error']").text(s_msgObliVal);
				i_numErrores++;				
				}//if		
															
			var s_direccion = jQuery.trim($("#inputTextDireccion").attr("value"));
			o_patron = /[A-Za-z]/;
			if (!s_direccion.match(o_patron))
				{
				$("label[for='inputTextDireccion'][class='error']").text(s_msgObliVal);
				i_numErrores++;
				}//if
				
			var s_persona = jQuery.trim($("#inputTextPersona").attr("value"));
			o_patron = /[A-Za-z]/;
			if (!s_persona.match(o_patron))
				{
				$("label[for='inputTextPersona'][class='error']").text(s_msgObliVal);
				i_numErrores++;
				}//if
			
			var s_email = jQuery.trim($("#inputTextEmail").attr("value"));
			// http://en.wikipedia.org/wiki/E-mail_address#RFC_specification
			o_patron = /^[A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+$/;
			if (!s_email.match(o_patron))
				{
				$("label[for='inputTextEmail'][class='error']").text(s_msgObliVal);
				i_numErrores++;
				}//if

			var s_telefono = jQuery.trim($("#inputTextTelefono").attr("value")); 
			//http://www.fileformat.info/info/unicode/char/0020/index.htm
			o_patron = /^[\s,+.-]*\d+([\s,+.-]|\d)*$/;
			if (!s_telefono.match(o_patron))
				{
				$("label[for='inputTextTelefono'][class='error']").text(s_msgObliVal);
				i_numErrores++;
				}//if				
				
			var s_acepta = $("#selectAcepta").val();//Devolverá el valor del atributo "value" del elemento "option" con 'selected="selected"'.
			if (s_acepta != "1")
				{
				$("label[for='selectAcepta'][class='error']").text("Debe seleccionar obligatoriamente 'sí'.");
				i_numErrores++;
				}//if																	
			if (i_numErrores > 0)
				{
				alert("No se puede enviar el formulario porque hay " + i_numErrores + " " + (i_numErrores == 1 ? "error" : "errores") + ". Corríjalo, por favor.");
				return false;
				}//if
			else
				{
				var s_msg1 = "";
				s_msg1 = s_msg1 + "----------------------------------------------------------------------------------\n";
				s_msg1 = s_msg1 + " Sus datos van a ser enviados al departamento de Compras y,\n";
				s_msg1 = s_msg1 + " a continuación, se descargará automáticamente la documentación.\n";
				s_msg1 = s_msg1 + "----------------------------------------------------------------------------------";
				var b_esAfirmativo = confirm(s_msg1);
				return b_esAfirmativo;
				}//else
			}
		};

	//He tenido que usar las llamadas del DOM y no las de JQuery porque JQuery carece de un evento "reset"·
	document.getElementById("form1").onreset = o_todo.f_form1OnReset;
	$("#form1").bind
		(
		"submit",
		o_todo,
		o_todo.f_form1OnSubmit
		);
	}
	);
