﻿function validar(formulario) {
    var checkbox_obligatorio, tipo_campo, boxMarcado
    var valor_checkbox = ""
    lObjFormulario = document.getElementById(formulario);
    
    for (i = 0; i < lObjFormulario.elements.length; i++) {

        //Significado de los carácteres: 
        //		El caracter X es 'ciego' se pone en las posiciones nulas.
        //		En 1er carácter.  - o: Campo obligatorio

        //		En 2º carácter. - n: Campo numérico.	
        //		En 2º carácter. - e: Campo email.	
        //		En 2º carácter. - b: Campo checkbox.		 
        //		En 2º carácter. - s: Campo Combo Select.	

        //		En 3º carácter. - c: Campo que se enviará por correo.

        //		En (4º) o (4º y 5º) carácter. - posicion (ejem: 1,2,15,etc...). Número que identifica la posición del campo dentro de la tabla donde va a ir almacenado.	 
        //		EJEM: 'onx1x_apellido1' Es un campo obligatorio, numerico, No envia por correo, se guardará en campo 1 en la tabla de BD

        //		En 6º carácter (NO ES OBLIGATORIO PONERLO) - Únicamente se utilizará para campos que posteriormente se unirán a otros.
        //		EJEM: 'xxx11a_Tele1', xxx11b_Tele2, xxx11c_Tele3 : Son tres campos q se completan por separado, pero su contenido se unirá en uno único en BD.  

        //EXPRESIONES REGULARES
        var ExpRegEmail = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{1,}\.)*([\w-]{2,}\.)[a-z]{2,2}/;

        var Campo = lObjFormulario.elements[i];
        //var Formato = lObjFormulario.elements[i].name
        var Formato = Campo.alt;
        if (Formato != "undefined" && Campo.type != "textarea") {
            if (Campo.style.display != "none") {
                NombreCampo = Campo.alt.substr(6, Campo.alt.length)
                if (Formato.substr(0, 1) == "o") {
                    tipo_campo = Formato.substr(1, 1);
                    switch (tipo_campo) {
                        case "e": //email
                            if (!Campo.value.match(ExpRegEmail)) {
                                alert("La direccion de email no es valida");
                                Campo.focus();
                                return false;
                            }
                            break;

                        case "n":
                            if (isNaN(parseInt(Campo.value)) == 1) {
                                alert("El valor del campo debe ser numérico");
                                Campo.focus();
                                return false;
                            }
                            break;

                        //Check de CONDICIONES obligatorio    
                        case "b":
                            if ((NombreCampo == "Condiciones") && (Campo.checked == false)) {
                                alert("Es obligatorio aceptar las condiciones sobre Protección de Datos.");
                                lObjFormulario.elements[i].focus();
                                return false;
                            } else {
                                if (NombreCampo != "Condiciones") checkbox_obligatorio = "1"
                                if ((Campo.checked != "") && (NombreCampo != "Condiciones")) {
                                    valor_checkbox = valor_checkbox + Campo.value
                                }
                            }
                            break;

                        case "s":
                            if (Campo.value == "0") {
                                alert("Seleccione una opción");
                                Campo.focus();
                                return false;
                            }
                            break;

                        default:
                            if (Campo.value == "") {
                                alert("Falta información en el campo obligatorio: " + NombreCampo);
                                Campo.focus();
                                return false;
                            }
                    }
                }
            }
        }
    }

    lObjFormulario.submit();
}
