var codisProvincies = new Array("N/D","ALAVA","ALBACETE","ALICANTE","ALMERIA","ASTURIAS",
                    "AVILA","BADAJOZ","BARCELONA","BURGOS","CACERES","CADIZ",
                    "CANTABRIA","CASTELLON","CEUTA","CIUDAD REAL","CORDOBA","CUENCA",
                    "GIRONA","LAS PALMAS","GRANADA","GUADALAJARA","GUIPUZCOA","HUELVA",
                    "HUESCA","ILLES BALEARS","JAEN","A CORUÑA","LA RIOJA","LEON","LLEIDA",
                    "LUGO","MADRID","MALAGA","MELILLA","MURCIA","NAVARRA","OURENSE",
                    "PALENCIA","PONTEVEDRA","SALAMANCA","SEGOVIA","SEVILLA","SORIA",
                    "TARRAGONA","SANTA CRUZ DE TENERIFE","TERUEL","TOLEDO","VALENCIA",
                    "VALLADOLID","VIZCAYA","ZAMORA","ZARAGOZA");

var nomsProvincies = new Array("Fuera de España","Álava","Albacete","Alicante/Alacant",
                    "Almería","Asturias","Ávila","Badajoz","Barcelona","Burgos","Cáceres",
                    "Cádiz","Cantabria","Castellón/Castelló","Ceuta","Ciudad Real","Córdoba",
                    "Cuenca","Girona","Las Palmas","Granada","Guadalajara","Guipúzcoa","Huelva",
                    "Huesca","Illes Balears","Jaén","A Coruña","La Rioja","León","Lleida","Lugo",
                    "Madrid","Málaga","Melilla","Murcia","Navarra","Ourense","Palencia","Pontevedra",
                    "Salamanca","Segovia","Sevilla","Soria","Tarragona","Santa Cruz de Tenerife",
                    "Teruel","Toledo","Valencia/Valéncia","Valladolid","Vizcaya","Zamora","Zaragoza");

function obrirMultiple(inscripcioId) {
    var dadesExternes;
    var numCelles;
    var filaActual;
    var i, iExtern;
    var numFiles;
    var w;
    var h;

    w = document.body.clientWidth;
    h = document.body.clientHeight;
    
    dadesExternes = window.showModalDialog("/index.php?controlador=inscripcions&accion=inscripcionsMultiples&id=" + inscripcioId , "Dades", "dialogWidth:" + w +  "px;dialogHeight:" + h + "px; ")
    
    var tblHeader = document.getElementById("taulaInscritsHeader");
    var tblInfo = document.getElementById("taulaInscritsInformacio");
    var tblDadesUnic = document.getElementById("dadesUnicInscrit");

    numFiles  = dadesExternes.length;
    if (numFiles >1)
        numCelles = dadesExternes[0].length;
    else
        numCelles = 0;
    
    
    if (numFiles > 1) {
        tblHeader.style.visibility = "visible";
        tblHeader.style.display = "table-row";
        tblInfo.style.visibility = "visible";
        tblDadesUnic.style.display = "none";
        document.getElementById("multiplesInscrits").value = 1;
    } else {
        tblHeader.style.visibility = "hidden"
        tblInfo.style.visibility = "hidden";
        tblDadesUnic.style.display = "block";
    }

    var tbl = document.getElementById("taulaInscrits");
    for(iExtern=1; iExtern<numFiles; iExtern++) {
        // Per cada fila de la taula pare afegim un nou registre
        var newRow = tbl.insertRow(tbl.rows.length);
        filaActual = tbl.rows.length;
        filaActual = filaActual - 1;
        for(i=0;i<numCelles;i++) {
          newCell = newRow.insertCell(i);
          input = document.createElement("input");
          input.style.width="7em";
          nomPare = dadesExternes[0][i];          
          nomFilla = nomPare + "_" + filaActual;
          input.name=nomFilla;
          newCell.appendChild(input);
          
          input.setAttribute("value", dadesExternes[iExtern][i]);
        }
    }
    document.getElementById("numRegistres").value = document.getElementById("numRegistres").value + tbl.rows.length -1;
}

function tancarMultiple(tblId) {
    var tbl;
    var numCelles;
    var numFiles;
    var i;
    var j;
    var valorActual;
    var filaActual;
    var resultat;

    if (validarInscritsMultiples()) {
        tbl = document.getElementById(tblId);

        resultat = new Array();
    
        numCelles = tbl.rows[0].cells.length;
        numFiles = tbl.rows.length;

        // Tactem la primera fila per posar-hi els camps
        filaActual = new Array();
        for (j=1;j<numCelles;j++) {
            valorActual = tbl.rows[0].cells[j].title;
            filaActual[j-1] = valorActual;
        }

        resultat[0] = filaActual;

        // Tractem les files dels continguts
        for (i=1;i<numFiles;i++) { // Comencem a 1 perquè a la primera fila hi ha la capçalera
            filaActual = new Array();
            for (j=1;j<numCelles;j++) {
                valorActual = tbl.rows[i].cells[j].childNodes[0].value;
                filaActual[j-1] = valorActual;
            }

            resultat[i] = filaActual;
        }
    
        window.returnValue = resultat;
        window.close();
    }
}

function esborrarFila(filaActual) {
    if (confirm('Segur que vols esborrar la fila actual?')) {
        document.getElementById('taulaInscrits').deleteRow(filaActual);
    }
}

function afegirInscritMultiple(tblId) {
    var i;
    var newCell;
    var input;
    var numCelles;
    var filaActual;
    var nomPare;
    var nomFilla;
    var opt;
    var titolActual;
    var txtEsborrar;

    var div= document.getElementById("divTaulaInscrits");
    div.style.visibility = "visible";

    var tbl = document.getElementById(tblId);

    numCelles = tbl.rows[0].cells.length;
    var newRow = tbl.insertRow(tbl.rows.length);
    filaActual = tbl.rows.length;
    filaActual = filaActual - 1;

    txtEsborrar = document.getElementById("txtEsborrar").value;
    newCell = newRow.insertCell(0);
    input = document.createElement("input");
    input.type = "button";
    input.value = txtEsborrar;
    input.onclick = function(){esborrarFila(filaActual);};
    newCell.appendChild(input);
    
    for(i=1;i<numCelles;i++) {

        titolActual = tbl.rows[0].cells[i].title;
        switch (titolActual) {
            case "data_naix":
                // Columna de l'any
                newCell = newRow.insertCell(i);                
                input = document.createElement("input");
                input.id = "data_" + filaActual;
                nomPare = tbl.rows[0].cells[i].title;
                nomFilla = nomPare + "_" + filaActual;
                input.name=nomFilla;
                input.type = "hidden";
                newCell.appendChild(input);

                var taula;
                var fila;
                var cella;
                var edatInici;
                var edatFinal;
                var anyInici;
                var anyFinal;
                var anyActual;

                anyActual = new Date().getFullYear();
                edatInici = document.getElementById("edatInici").value;
                edatFinal = document.getElementById("edatFinal").value;
                anyInici = anyActual - edatInici;
                anyFinal = anyActual - edatFinal;

                taula = document.createElement("table");
                fila = taula.insertRow(0);
                cella = fila.insertCell(0);
                cella.appendChild(createSelectDies(filaActual));
                cella = fila.insertCell(1);
                cella.appendChild(createSelectMesos(filaActual));
                cella = fila.insertCell(2);
                cella.appendChild(createSelectAnys(filaActual,anyFinal,anyInici));
                
                newCell.appendChild(taula);
                break;
            case "sexe":
                // Columna del sexe
                newCell = newRow.insertCell(i);
                input = document.createElement("select");
                opt = document.createElement("option");
                opt.innerHTML=" ";
                input.appendChild(opt);
                opt = document.createElement("option");
                opt.value = "H";
                opt.innerHTML="M";
                input.appendChild(opt);
                opt = document.createElement("option");
                opt.value = "F";
                opt.innerHTML="F";
                input.appendChild(opt);
                newCell.appendChild(input);
                break;
            case "provincia":
                // Columna provincia
                newCell = newRow.insertCell(i);
                input = createSelectProvincies();
                newCell.appendChild(input);
                break;
           case "club":
                // Columne club
                newCell = newRow.insertCell(i);
                input = createSelectClubs();
                newCell.appendChild(input);
                break;
            default:
                newCell = newRow.insertCell(i);
                input = document.createElement("input");
                input.style.width="7em";
                nomPare = tbl.rows[0].cells[i].title;
                nomFilla = nomPare + "_" + filaActual;
                input.name=nomFilla;
                newCell.appendChild(input);
                break;
        }

        if (i==1)
            input.focus();
    }

    document.getElementById("numRegistres").value = tbl.rows.length -1;
    

}


function validarInscritsMultiples() {
    var tbl;
    var tblObligat;

    var numCelles;
    var numFiles;
    var i;
    var j;
    var retval;
    var msg;
    

    tbl = document.getElementById("taulaInscrits");
    tblObligat = document.getElementById("taulaInscritsObligatoris");
    numCelles = tbl.rows[0].cells.length;
    numFiles = tbl.rows.length;
    retval = true;
    msg = "";
    
    for (i=1;i<numFiles;i++) { // Comencem a 1 perquè a la primera fila hi ha la capçalera
        if (retval) {
            // Només entrem si les cel·les anterior són correctes
            for (j=1;j<numCelles;j++) {
                
                if(tblObligat.rows[0].cells[j].innerHTML.indexOf("1")>=0) {

                    if(tbl.rows[i].cells[j].childNodes[0].value == "") {
                        retval = false;
                        msg += "Falta entrar el " + tbl.rows[0].cells[j].title + "\n";
                    }
                }
                
            }
        }
    }

    if (!retval) {
        alert(msg);
    }
    return retval;
}

function createSelectProvincies() {
    var select;
    var i;
    var mida;
    select = document.createElement("select");

    opt = document.createElement("option");
    opt.value = "";
    opt.innerHTML="";
    select.appendChild(opt);

    mida = nomsProvincies.length;
    for(i=0; i<mida; i++) {
        opt = document.createElement("option");
        opt.value = codisProvincies[i];
        opt.innerHTML = nomsProvincies[i];
        select.appendChild(opt);
    }
    
    return select;
}

function createSelectClubs() {
    var select;
    var i;
    var mida;
    select = document.createElement("select");

    opt = document.createElement("option");
    opt.value = "";
    opt.innerHTML="";
    select.appendChild(opt);

    mida = clubs.length;
    for(i=0; i<mida; i++) {
        opt = document.createElement("option");
        opt.value = clubs[i].toUpperCase();
        opt.innerHTML = clubs[i].toUpperCase();
        select.appendChild(opt);
    }

    return select;
}

function createSelectDies(filaActual) {
    var select;
    var i;

    select = document.createElement("select");
    select.id = "selectdies_" + filaActual;
    select.onchange = function(){inscripcionsMultiplesCanviarData(filaActual);};
    opt.value = "";
    opt.innerHTML="";
    select.appendChild(opt);

    for (i=1; i<=32; i++) {
        opt = document.createElement("option");
        
        if (i<10) {
            opt.value = "0" + i;
            opt.innerHTML = "0" + i;
        }
        else {
            opt.value = i;
            opt.innerHTML = i;
        }
        select.appendChild(opt);
    }

    return select;
}

function createSelectMesos(filaActual) {
    var select;
    var i;

    select = document.createElement("select");
    select.id = "selectmesos_" + filaActual;
    select.onchange = function(){inscripcionsMultiplesCanviarData(filaActual);};
    opt.value = "";
    opt.innerHTML="";
    select.appendChild(opt);

    for (i=1; i<=13; i++) {
        opt = document.createElement("option");
        
        if (i<10) {
            opt.value = "0" + i;
            opt.innerHTML = "0" + i;
        }
        else {
            opt.value = i;
            opt.innerHTML = i;
        }
        select.appendChild(opt);
    }

    return select;
}

function createSelectAnys(filaActual, anyMinim, anyMaxim) {
    var select;
    var i;

    select = document.createElement("select");
    select.id = "selectanys_" + filaActual;
    select.onchange = function(){inscripcionsMultiplesCanviarData(filaActual);};
    opt.value = "";
    opt.innerHTML="";
    select.appendChild(opt);

    for (i=anyMaxim; i>=anyMinim; i--) {
        opt = document.createElement("option");
        opt.value = i;
        opt.innerHTML = i;
        select.appendChild(opt);
    }

    return select;
}

function inscripcionsMultiplesCanviarData(filaActual) {
    var dies;
    var mesos;
    var anys;
    var data;
    var txt;

    dies = document.getElementById("selectdies_" + filaActual);
    mesos = document.getElementById("selectmesos_" + filaActual);
    anys = document.getElementById("selectanys_" + filaActual);
    data = document.getElementById("data_" + filaActual);
    txt = dies.value + '-' + mesos.value + '-' + anys.value;    
    if (inscripcioMultiplesIsDate(txt)) {
        data.value = txt;
    } else {
        data.value = "";
    }

}

function inscripcioMultiplesIsDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
return false;
}
return true;
}
