    run();
    
    var allow;
    function run(element){
        var items, select, layer;
        if(element==undefined){
            items   = soorten;
            select  = document.inschrCursus.cursus;
            layer   = document.getElementById("cursus");
            allow   = new Array();
            fillSelectElement(select,items);
        }
        else if(element.value == 0 && document.inschrCursus.cursus.value == 0){
            removeSelectElement(document.inschrCursus.lestype);
            removeSelectElement(document.inschrCursus.datum);
        }
        else if(element.value == 0 && document.inschrCursus.lestype.value == 0){
            removeSelectElement(document.inschrCursus.datum);
        }
        else{
            switch(element.name){
                case "cursus":
                    items   = methoden;
                    select  = document.inschrCursus.lestype;
                    allow   = lnk_meth_soort[element.value];
                    fillSelectElement(select,items);
                    for(index in soorten){
                        document.getElementById("omschr"+index).style.display="none";
                    }
                        document.getElementById("omschr"+element.value).style.display="block";
                    break;
                case "lestype":
                    select  = document.inschrCursus.plaatsdatum;
                    allow   = cursussen[document.inschrCursus.lestype.value+"|"+element.value];
                    removeDatum(select);
                    fillDatum(select);
                    if (select.options.length > 1) {
                        document.getElementById("plaatsdatum").style.display="block";
                    } else {
                        document.getElementById("plaatsdatum").style.display="none";
//                        document.inschrCursus.submit();
                    }
                    break;
                case "plaatsdatum":
//                    document.inschrCursus.submit();
                    break;
            }
        }
    //    layer.style.display = "block";
    }
    function initSelects(cursus, lestype, cdid){
        for(i=document.inschrCursus.cursus.options.length-1;i>0;i--){
            if (document.inschrCursus.cursus.options[i].value == cursus) {
                document.inschrCursus.cursus.options[i].selected = true;
                run(document.inschrCursus.cursus);
            }
        }
        for(i=document.inschrCursus.lestype.options.length-1;i>0;i--){
            if (document.inschrCursus.lestype.options[i].value == lestype) {
                document.inschrCursus.lestype.options[i].selected = true;
                run(document.inschrCursus.lestype);
            }
        }
        for(i=document.inschrCursus.plaatsdatum.options.length-1;i>0;i--){
            if (document.inschrCursus.plaatsdatum.options[i].value == cdid) {
                document.inschrCursus.plaatsdatum.options[i].selected = true;
            }
        }
    }
    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 removeDatum(selectbox){
        if(selectbox.options.length-1>0){
            for(i=selectbox.options.length-1;i>0;i--){
                selectbox.removeChild(selectbox[i]);
            }
        }
    }
    function fillDatum(selectbox){
        var data;
        var dagen=new Array("zo","ma","di","wo","do","vr","za");

        var huidige_datum = new Date();

        var maanden = new Array("","jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec");
        var soort   = document.inschrCursus.cursus.value;
        var methode = document.inschrCursus.lestype.value;
        var cid     = findCursus(soort,methode);
        for(index in plaatsen){
            data = plaatsen[index][cid];
            if(data != undefined){
                for(var i=0;i<data.length;i++){
                    if(data[i]){
                        var id_date     = data[i].split("|");
                        var pieces      = id_date[1].split("-");
                        var cursusdatum = new Date();
                        cursusdatum.setFullYear(parseInt(pieces[0]), (pieces[1])-1, parseInt(pieces[2]));
                        if (cursusdatum.getTime() > huidige_datum.getTime()) {
                            var option = document.createElement("OPTION");
                            option.text = index + ", " + dagen[cursusdatum.getDay()] + " " + (pieces[2] * 1) + " " + maanden[(pieces[1] * 1)] + " " + [(pieces[0] * 1)];
                            option.value = id_date[0];
                            selectbox.options.add(option);
                        }
                    }
                }
            }
        }
    }
    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;
    }

    function canPost() {
        if (document.inschrCursus.cursus.selectedIndex < 1) {
            alert("Kies een cursus");
            document.inschrCursus.cursus.focus();
            return (false);
        }
        if (document.inschrCursus.lestype.selectedIndex < 1) {
            alert("Kies een lestype");
            document.inschrCursus.lestype.focus();
            return (false);
        }
        else if(document.inschrCursus.plaatsdatum.options.length>1 && document.inschrCursus.plaatsdatum.selectedIndex<1){
            alert("Kies een locatie en datum");
            document.inschrCursus.plaatsdatum.focus();
            return (false);
        }
        document.inschrCursus.submit();
    }
