/* form validation */

/* validation data: */

var regExps = new Array();
regExps["text"] = new RegExp("(.)+");
regExps["number"] = new RegExp("^([0-9]+[- /.]*?)+$");
regExps["date"] = new RegExp("^(0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.](19|20)?[0-9]{2}$");
regExps["email"] = new RegExp("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$");
regExps["compulsory"] = new RegExp("(.)+");
regExps["superficial"] = new RegExp("(.)*?");

var errMsg = new Array();
errMsg["text"] = "Not a valid text.";
errMsg["number"] = "Not a valid number.";
errMsg["date"] = "Not a valid date.";
errMsg["email"] = "Not a valid email.";
errMsg["compulsory"] = "Field is compulsory.";
errMsg["superficial"] = "Field is superficial.";

/* forms data: */

var form1_nm_pfis = new Array();
form1_nm_pfis[0] = "pfis_nombre";
form1_nm_pfis[1] = "pfis_apellido1";
form1_nm_pfis[2] = "pfis_apellido2";
form1_nm_pfis[3] = "pfis_fdn";
form1_nm_pfis[4] = "pfis_doc_id";
form1_nm_pfis[5] = "cont_email";
form1_nm_pfis[6] = "cont_telefono1";
form1_nm_pfis[7] = "cont_nombrevia";
form1_nm_pfis[8] = "cont_numvia";
form1_nm_pfis[9] = "cont_piso";
form1_nm_pfis[10] = "cont_provincia";
form1_nm_pfis[11] = "cont_localidad";
form1_nm_pfis[12] = "pago_importe";
/* form1_nm_pfis[12] = "pago_numcuenta"; */

var form1_rx_pfis = new Array();
form1_rx_pfis[0] = "text";
form1_rx_pfis[1] = "text";
form1_rx_pfis[2] = "text";
form1_rx_pfis[3] = "date";
form1_rx_pfis[4] = "compulsory";
form1_rx_pfis[5] = "email";
form1_rx_pfis[6] = "number";
form1_rx_pfis[7] = "text";
form1_rx_pfis[8] = "text";
form1_rx_pfis[9] = "text";
form1_rx_pfis[10] = "text";
form1_rx_pfis[11] = "text";
form1_rx_pfis[12] = "number";
/* form1_rx_pfis[12] = "number"; */

var form1_nm_pjur = new Array();
form1_nm_pjur[0] = "pjur_razon";
form1_nm_pjur[1] = "pjur_cif";
form1_nm_pjur[2] = "pjur_nombre";
form1_nm_pjur[3] = "pjur_apellido1";
form1_nm_pjur[4] = "pjur_apellido2";
form1_nm_pjur[5] = "cont_email";
form1_nm_pjur[6] = "cont_telefono1";
form1_nm_pjur[7] = "cont_nombrevia";
form1_nm_pjur[8] = "cont_numvia";
form1_nm_pjur[9] = "cont_piso";
form1_nm_pjur[10] = "cont_provincia";
form1_nm_pjur[11] = "cont_localidad";
/* form1_nm_pjur[12] = "pago_numcuenta"; */

var form1_rx_pjur = new Array();
form1_rx_pjur[0] = "compulsory";
form1_rx_pjur[1] = "compulsory";
form1_rx_pjur[2] = "text";
form1_rx_pjur[3] = "text";
form1_rx_pjur[4] = "text";
form1_rx_pjur[5] = "email";
form1_rx_pjur[6] = "number";
form1_rx_pjur[7] = "text";
form1_rx_pjur[8] = "text";
form1_rx_pjur[9] = "text";
form1_rx_pjur[10] = "text";
form1_rx_pjur[11] = "text";
/* form1_rx_pjur[12] = "number"; */

var form2_nm = new Array();
form2_nm[0] = "pfis_nombre";
form2_nm[1] = "pfis_apellido1";
form2_nm[2] = "pfis_apellido2";
form2_nm[3] = "pfis_l_nacim";
form2_nm[4] = "pfis_doc_id";
form2_nm[5] = "cont_email";
form2_nm[6] = "cont_telefono1";
form2_nm[7] = "cont_nombrevia";
form2_nm[8] = "cont_numvia";
form2_nm[9] = "cont_piso";
form2_nm[10] = "cont_provincia";
form2_nm[11] = "cont_localidad";
/* form2_nm[12] = "pago_numcuenta"; */
form2_nm[13] = "pago_importe"

var form2_rx = new Array();
form2_rx[0] = "text";
form2_rx[1] = "text";
form2_rx[2] = "text";
form2_rx[3] = "text";
form2_rx[4] = "compulsory";
form2_rx[5] = "email";
form2_rx[6] = "number";
form2_rx[7] = "text";
form2_rx[8] = "text";
form2_rx[9] = "text";
form2_rx[10] = "text";
form2_rx[11] = "text";
/* form2_rx[12] = "number"; */
form2_rx[13] = "number"

function checkRegex(str, rxp) {
    if(str.search(rxp)==-1){
        return false;
    } else {
        return true;
    }
}

var nm_to_use = new Array();
nm_to_use = form1_nm_pfis;

var rx_to_use = new Array();
rx_to_use = form1_rx_pfis;

function validate(formName) {

    var validated = true;
    var errors = new Array();
    //var alertstr = "";

    for(var i=0; i<nm_to_use.length; i++) {
        var theLmnt = document.getElementById(nm_to_use[i]);
        var theCheck = checkRegex(theLmnt.value, regExps[rx_to_use[i]]);
        if(theCheck == false) {
            validated = false;
            errors.push(nm_to_use[i]+" : "+errMsg[rx_to_use[i]]);
            theLmnt.style.backgroundColor = "#FFD1D1";
        } else {
            theLmnt.style.backgroundColor = "#ededed";
        }
    }

    if (validated == false) {
        /*for(var q=0; q<errors.length; q++) {
            alertstr += "\n"+errors[q];
        }
        alert(errors.length+" Error(s):\n"+alertstr);*/
        alert("Por favor, revise los campos en rojo.");
    } else if (validated == true) {
        document.forms[formName].submit();
    }

}

/* form validation */

/* isolated functions */

function show_hide(id1,id2) {
    lmnt_show = document.getElementById(id1);
    lmnt_hide = document.getElementById(id2);
    lmnt_show.style.display = "inherit";
    lmnt_hide.style.display = "none";

    if(id1 == "pfis") {
        nm_to_use = form1_nm_pfis;
        rx_to_use = form1_rx_pfis;
    }

    if(id1 == "pjur") {
        nm_to_use = form1_nm_pjur;
        rx_to_use = form1_rx_pjur;
    }
}

function ch_frm() {
        nm_to_use = form2_nm;
        rx_to_use = form2_rx;
}

/* isolated functions */
