var allow;
function run(element){
    var items, select, layer;
    if(document.getElementById("table").style.display == "block"){
        document.getElementById("table").style.display = "none";
    }
    if(element==undefined){
        items   = soorten;
        select  = document.zoekCursus.cursus;
        layer   = document.getElementById("cursus");
        allow   = new Array();
        fillSelectElement(select,items);
    }
    else if(element.value == 0 && document.zoekCursus.cursus.value == 0){
        removeSelectElement(document.zoekCursus.lestype);
        document.getElementById("table").style.display = "none";
    }
    else{
        switch(element.name){
            case "cursus":
                items   = methoden;
                select  = document.zoekCursus.lestype;
                layer   = document.getElementById("lestype");
                allow   = lnk_meth_soort[element.value];
                fillSelectElement(select,items);
                break;
            case "lestype":
                fillTable();
                break;
        }
    }
//    layer.style.display = "block";
}
function removeSelectElement(selectbox){
    if(selectbox.options.length-1>0){
        for(i=selectbox.options.length-1;i>0;i--){
            selectbox.removeChild(selectbox[i]);
        }
    }
}
function fillSelectElement(selectbox, items){
    removeSelectElement(selectbox);
    var optn = null;
    for(index in items){
        if(allow.length == 0 || in_array(index,allow)){
            optn   = document.createElement("OPTION");
            optn.value = index;
            optn.text  = items[index]["kopregel"]!=undefined?items[index]["kopregel"]:items[index];
            selectbox.options.add(optn);
        }
    }
}
function fillTable(){
    var data, row;
    var cell    = new Array();
    var tables  = document.getElementById("table").getElementsByTagName("table");
    var table   = tables[0];
    
    if(table.rows.length-1>0){
        for(i=table.rows.length-1;i>=0;i--){
            table.deleteRow(i);
        }
    }

    var huidige_datum = new Date();

    var maanden = new Array("","jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec");
    var soort   = document.zoekCursus.cursus.value;
    var methode = document.zoekCursus.lestype.value;
    var cid     = findCursus(soort,methode);
    if(!findPlaats(cid)){
        //document.location = "/inschrijven?cid="+cid;
    }
    for(index in plaatsen){
        data = plaatsen[index][cid];
        if(data != undefined){
            row     = table.insertRow(table.rows.length);
            cell    = row.insertCell(row.cells.length);
            if (methode > 4) {
                cell.innerHTML = "<a href=\"/vaarbewijs/examens/"+soorten[soort]["access"]+"/"+methoden[methode]["access"]+"/"+plaatsAccess[index]+"\">"+index+"</a>";
            } else {
                cell.innerHTML = "<a href=\"/vaarbewijs/cursussen/"+soorten[soort]["access"]+"/"+methoden[methode]["access"]+"/"+plaatsAccess[index]+"\">"+index+"</a>";
            }
            cell.innerHTML = index;
            cell.width = "115";

            for(var i=1;i<=5;i++){
                cell[i] = row.insertCell(row.cells.length);
                cell[i].width = 42;
            }

            for(date_index in data){
                if(data[date_index]){
                    var id_date = data[date_index].split("|");
                    var pieces  = id_date[1].split("-");
                    for(i=1;i<=5;i++){
                        if(cell[i].innerHTML == "" && (pieces[1]*1) == ((huidige_datum.getMonth())+i)){
                            if (methode > 4) {
                                cell[i].innerHTML = "<a href=\"/vaarbewijs/examens/inschrijven-examen?cdid="+id_date[0]+"\">"+pieces[2]+" "+maanden[(pieces[1]*1)]+"</a>";
                            } else {
                                cell[i].innerHTML = "<a href=\"/vaarbewijs/cursussen/"+soorten[soort]["access"]+"/"+methoden[methode]["access"]+"/"+plaatsAccess[index]+"/inschrijven?cdid="+id_date[0]+"\">"+pieces[2]+" "+maanden[(pieces[1]*1)]+"</a>";
                            }
                        }
                    }
                }
            }
            document.getElementById("table").style.display = "block";
        }
        else{
            //document.location = "/inschrijven?cid="+cid;
            //document.getElementById("table").style.display = "none";
        }
    }

    if(table.rows.length==0){
        if (methode > 4) {
            document.location = "/inschrijven-examen?cid="+cid;
        } else {
            document.location = "/inschrijven?cid="+cid;
        }
    }
}
function findCursus(soort, methode){
    var _return = cursussen[soort+"|"+methode];
    return _return;
}
function findPlaats(cid){
    for(plaats in plaatsen){
        if(plaats[cid]!=undefined){
            return true;
        }
    }
    return false;
}

function in_array (needle, haystack, argStrict) {
    var key = '', strict = !!argStrict;
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
    return false;
}
run();
