function get_situatie(){
    if (document.getElementById('radio_werkgever').checked)
        return 'werkgever';
    else if (document.getElementById('radio_medewerker').checked)
        return 'medewerker';
    else if (document.getElementById('radio_particulier').checked)
        return 'particulier';
}

function check_situatie() {
    if ($('#akkoord').is(":checked")) {
        verander_situatie(get_situatie());
    }
    else {
        alert('U dient akkoord te gaan met de algemene voorwaarden');
        return false;
    }
    return true;
}

function verander_situatie(situatie) {
    var situaties = new Array('werkgever', 'medewerker', 'particulier');
    for (var i = 0; i < situaties.length; i++){
        if (situaties[i] == situatie){
            document.getElementById('div_' + situaties[i]).style.display = 'block';
            document.getElementById('submit_'+ situaties[i]).style.display = 'inline';
        }else{
            document.getElementById('div_' + situaties[i]).style.display = 'none';
            document.getElementById('submit_'+ situaties[i]).style.display = 'none';
        }
    }
}

function add_aanhef(index){
    // div.formelement maken voor formlabel en forminput
    var formelement = document.createElement('div');
    formelement.id = 'formelement_aanhef_'+index;
    document.getElementById('lastelement').parentNode.insertBefore(formelement,document.getElementById('lastelement'));
    document.getElementById('formelement_aanhef_'+index).className = 'formelement';
    // div.formlabel maken voor label (idd)
    var formlabel = document.createElement('div');
    formlabel.id  = 'label_aanhef_cursist_' + index;
    formlabel.appendChild(document.createTextNode('Aanhef'));
    document.getElementById('formelement_aanhef_'+index).appendChild(formlabel);
    document.getElementById('label_aanhef_cursist_' + index).className = 'formlabel';
    // div.forminput maken voor radiobuttons
    var forminput = document.createElement('div');
    forminput.id = 'forminput_aanhef_'+index;
    document.getElementById('formelement_aanhef_'+index).appendChild(forminput);
    document.getElementById('forminput_aanhef_'+index).className = 'forminput';
    // radiobutton man
    var radio;
    try {
        var radio = document.createElement('<input name="aanhef_'+index+'">');
    } catch (e) {
        var radio = document.createElement('input');
        radio.setAttribute('name', 'aanhef_' + index);
    }
    radio.id = 'aanhef_cursist_man_' + index;
    radio.type = 'radio';
    radio.value = 'de heer';
    radio.style.display = 'inline';
    document.getElementById('forminput_aanhef_'+index).appendChild(radio);
    // label man
    var label = document.createElement('div');
    label.id  = 'label_aanhef_cursist_man_' + index;
    label.style.display = 'inline';
    label.appendChild(document.createTextNode('de heer'));
    document.getElementById('forminput_aanhef_'+index).appendChild(label);
    // radiobutton vrouw
    try {
        var radio = document.createElement('<input name="aanhef_'+index+'">');
    } catch (e) {
        var radio = document.createElement('input');
        radio.setAttribute('name', 'aanhef_' + index);
    }
    radio.id = 'aanhef_cursist_vrouw_' + index;
    radio.type = 'radio';
    radio.value = 'mevrouw';
    radio.style.display = 'inline';
    document.getElementById('forminput_aanhef_'+index).appendChild(radio);
    // label vrouw
    var label = document.createElement('div');
    label.id  = 'label_aanhef_cursist_vrouw_' + index;
    label.style.display = 'inline';
    label.appendChild(document.createTextNode('mevrouw'));
    document.getElementById('forminput_aanhef_'+index).appendChild(label);
}
	

function hide_aanhef(index){
    document.getElementById('formelement_aanhef_'+index).style.display = 'none';
}

function show_aanhef(index){
    document.getElementById('formelement_aanhef_'+index).style.display = 'inline';
}

function remove_aanhef(index){
    document.getElementById('formelement_aanhef_'+index).parentNode.removeChild(document.getElementById('formelement_aanhef_'+index));
}

function add_cursist() {
    // teller ophalen
    var teller = document.getElementById('teller').value;
    var direct_aanmelden = document.getElementById('direct_aanmelden_check').value;

    // breakteller toevoegen
    var breakteller = document.createElement('input');
    breakteller.id = 'teller_breaks_' + teller;
    breakteller.type = 'hidden';
    breakteller.value = '0';
    document.getElementById('lastelement').parentNode.insertBefore(breakteller,document.getElementById('lastelement'));

    // 'Nieuwe cursist toevoegen' knop verbergen
    document.getElementById('button_addcursist').style.display = 'none';
	
    // Lijstelement toevoegen voor naam
    var lijstelement = document.createElement('input');
    lijstelement.id = 'list_item_' + teller;
    lijstelement.type = 'text';
    lijstelement.value = '';
    lijstelement.style.display = 'none';
    lijstelement.style.cssFloat = 'left';
    document.getElementById('lastelement').parentNode.insertBefore(lijstelement,document.getElementById('lastelement'));
    // Buttons voor bij lijstelement toevoegen - aanpassen
    var lijstelement = document.createElement('input');
    lijstelement.id = 'list_edit_button_' + teller;
    lijstelement.type = 'button';
    lijstelement.value = 'pas aan';
    lijstelement.style.display = 'none';
    lijstelement.style.cssFloat = 'left';
    document.getElementById('lastelement').parentNode.insertBefore(lijstelement,document.getElementById('lastelement'));
    document.getElementById('list_edit_button_' + teller).onclick = function(){
        edit_cursist(teller);
    };
    // Buttons voor bij lijstelement toevoegen - verwijderen
    var lijstelement = document.createElement('input');
    lijstelement.id = 'list_delete_button_' + teller;
    lijstelement.type = 'button';
    lijstelement.value = 'verwijder';
    lijstelement.style.display = 'none';
    lijstelement.style.cssFloat = 'left';
    document.getElementById('lastelement').parentNode.insertBefore(lijstelement,document.getElementById('lastelement'));
    document.getElementById('list_delete_button_' + teller).onclick = function(){
        delete_cursist(teller);
    };
    add_break(20);
	
    add_break(25);
    // header toevoegen
    var header = document.createElement('div');
    header.id = 'label_cursist_' + teller;
    header.appendChild(document.createTextNode('Cursistgegevens (' + teller + ')'));
    header.className = 'formgroup';
    header.style.cssFloat = 'left';
    document.getElementById('lastelement').parentNode.insertBefore(header,document.getElementById('lastelement'));
    add_break(5);
	
    add_aanhef(teller);
    add_break(4);
    // standaardelementen toevoegen
    add_element('Achternaam', 'achternaam', '');
    add_break(4);
    add_element('Geboortenaam', 'aanspreeknaam','');
    add_break(4);
    add_element('Voornamen', 'voornamen', '');
    add_break(4);
    add_element('Voorletters', 'voorletters', '');
    add_break(4);
    add_element('Roepnaam', 'roepnaam', '');
    add_break(4);
    add_element('Tussenvoegsels', 'tussenvoegsels', '');
    add_break(4);
    add_element('Burgerservicenummer (BSN)', 'sofinummer', '');
    add_break(4);
    add_element('Huisnummer', 'huisnummer', '8');
    document.getElementById('huisnummer_'+teller).className = 'streetnumber';
    add_break(4);
    add_element('Toevoeging', 'toevoeging', '8');
    document.getElementById('toevoeging_'+teller).className = 'streetnumber_extend';
    add_break(4);
    add_element('Postcode (geen spaties)', 'postcode', '6');
    document.getElementById('postcode_' + teller).maxLength = '6';
    document.getElementById('postcode_'+teller).className = 'postcode';
    add_break(4);
    add_element('Straat', 'straat', '');
    document.getElementById('straat_'+teller).className = 'street';
    if (direct_aanmelden == 'false') {
        document.getElementById('straat_'+teller).readOnly=true;
    }
    document.getElementById('straat_'+teller).setAttribute('style', 'background-color: #cccccc; color: #000000;');
    add_break(4);
    add_element('Woonplaats', 'woonplaats', '');
    document.getElementById('woonplaats_'+teller).className = 'city';
    if (direct_aanmelden == 'false') {
        document.getElementById('woonplaats_'+teller).readOnly=true;
    }
    document.getElementById('woonplaats_'+teller).setAttribute('style', 'background-color: #cccccc; color: #000000;');
    add_break(4);
    add_element('Telefoon (geen spaties)', 'telefoon', '');
    add_break(4);
    add_element('Mobiele nummer (geen spaties)', 'mobiel', '');
    add_break(4);
    add_element('E-mail', 'email', '');
    add_break(4);
    add_element('Geboortedatum', 'geboortedatum', '8');
    add_break(4);
    document.getElementById('geboortedatum_' + teller).value = 'dd-mm-jjjj';
    document.getElementById('geboortedatum_' + teller).maxLength = '10';
    add_element('Geboorteplaats', 'geboorteplaats', '');
	
    add_superscript(' 1)', 'aanspreeknaam');
	
    // Uitleg 1) toevoegen
    var uitleg = document.createElement('div');
    uitleg.id = 'label_uitleg_' + teller;
    uitleg.appendChild(document.createTextNode('1) Indien gehuwd'));
    uitleg.className = 'formlabel';
    uitleg.style.cssFloat = 'left';
    uitleg.style.width = '300px';
    document.getElementById('lastelement').parentNode.insertBefore(uitleg,document.getElementById('lastelement'));
	
    add_break(24);
	
    //opslaan & nieuwe cursist knop toevoegen
    var button = document.createElement('input');
    button.id = 'button_save_and_new_cursist_' + teller;
    button.type = 'button';
    button.value = 'Opslaan & nieuwe cursist';
    button.style.cssFloat = 'left';
    button.style.width = '180px';
    button.style.textAlign = 'left';
    button.style.padding = '0 0 0 10px';
    document.getElementById('lastelement').parentNode.insertBefore(button,document.getElementById('lastelement'));
    document.getElementById('button_save_and_new_cursist_'+teller).onclick = function(){
        save_and_new_cursist(teller);
    };
	
    //opslaan & verder gaan knop toevoegen
    var button = document.createElement('input');
    button.id = 'button_save_cursist_and_stop_' + teller;
    button.type = 'button';
    button.value = 'Opslaan';
    button.style.cssFloat = 'left';
    document.getElementById('lastelement').parentNode.insertBefore(button,document.getElementById('lastelement'));
    document.getElementById('button_save_cursist_and_stop_' + teller).onclick = function(){
        save_cursist_and_stop(teller);
    };
	
    //annuleren knop toevoegen
    var button = document.createElement('input');
    button.id = 'button_cancel_cursist_' + teller;
    button.type = 'button';
    button.value = 'Annuleren';
    button.style.cssFloat = 'left';
    document.getElementById('lastelement').parentNode.insertBefore(button,document.getElementById('lastelement'));
    document.getElementById('button_cancel_cursist_' + teller).onclick = function(){
        cancel_cursist(teller);
    };
	
    // teller ophogen
    document.getElementById('teller').value++;
	
    document.getElementById('cursist_openstaand').value = 'true';

    $('.cursist_autocomplete_' + teller).applyAutocomplete();
}

function edit_cursist(index){
    var situaties = new Array('achternaam', 'aanspreeknaam', 'voornamen', 'voorletters', 'roepnaam', 'tussenvoegsels', 'sofinummer',
        'straat', 'huisnummer', 'toevoeging', 'postcode', 'woonplaats', 'telefoon', 'mobiel', 'email', 'geboortedatum', 'geboorteplaats');
	
    if (document.getElementById('cursist_openstaand').value == 'false'){
		
        show_aanhef(index);
        // velden en labels en knoppen weergeven
        for (var i = 0; i < situaties.length; i++){
            document.getElementById('formelement_' + situaties[i] + '_' + index).style.display = 'inline';
        }
        document.getElementById('label_cursist_' + index).style.display = 'inline';
        document.getElementById('label_uitleg_' + index).style.display = 'inline';
        document.getElementById('button_save_cursist_and_stop_' + index).style.display = 'inline';
        document.getElementById('button_save_and_new_cursist_' + index).style.display = 'inline';
        document.getElementById('button_cancel_cursist_' + index).style.display = 'inline';
		
        // breaks weergeven
        for (var i = 0; i < document.getElementById('teller_breaks_' + index).value; i++){
            document.getElementById('br_' + index + '_' + i).style.display = 'block';
        }
        // lijstelement + buttons verbergen
        document.getElementById('list_item_' + index).style.display = 'none';
        document.getElementById('list_edit_button_' + index).style.display = 'none';
        document.getElementById('list_delete_button_' + index).style.display = 'none';
		
        // 'Nieuwe cursist toevoegen' knop verbergen
        document.getElementById('button_addcursist').style.display = 'none';
		
        document.getElementById('cursist_openstaand').value = 'true';
    } else {
        alert('Sluit a.u.b. eerst de openstaande cursist')
    }
}

function save_cursist_and_stop(index){
	
    if (save_cursist(index)) {
        // Toegestaan om cursist aan te passen
        document.getElementById('cursist_openstaand').value = 'false';
		
        // 'Nieuwe cursist toevoegen' knop weergeven
        document.getElementById('button_addcursist').style.display = 'block';
    }
    else {
        alert('vul eerst alle velden in');
    }
}

function save_cursist(index){
    if (check_cursist_form(index)){
        // 'Ingevoerde cursisten' laten zien
        document.getElementById('cursisten_list_header').style.display = 'block';
			
        var situaties = new Array('achternaam', 'aanspreeknaam', 'voornamen', 'voorletters', 'roepnaam', 'tussenvoegsels', 'sofinummer',
            'straat', 'huisnummer', 'toevoeging', 'postcode', 'woonplaats', 'telefoon', 'mobiel', 'email', 'geboortedatum', 'geboorteplaats');
		
        hide_aanhef(index);
        // velden en labels en knoppen verbergen
        for (var i = 0; i < situaties.length; i++){
            document.getElementById('formelement_' + situaties[i] + '_' + index).style.display = 'none';
        }
        document.getElementById('label_cursist_' + index).style.display = 'none';
        document.getElementById('label_uitleg_' + index).style.display = 'none';
        document.getElementById('button_save_cursist_and_stop_' + index).style.display = 'none';
        document.getElementById('button_save_and_new_cursist_' + index).style.display = 'none';
        document.getElementById('button_cancel_cursist_' + index).style.display = 'none';
		
        // breaks verbergen
        for (var i = 0; i < document.getElementById('teller_breaks_' + index).value; i++){
            document.getElementById('br_' + index + '_' + i).style.display = 'none';
        }
        // value zetten op de naam en lijstelement + buttons laten zien
        var voornamen = document.getElementById('voornamen_' + index).value;
        var naam = document.getElementById('achternaam_' + index).value;
        document.getElementById('list_item_' + index).value = voornamen + ' ' + naam;
        document.getElementById('list_item_' + index).style.display = 'inline';
        document.getElementById('list_item_' + index).style.width = '180px';
        document.getElementById('list_item_' + index).readOnly = true;
        document.getElementById('list_item_' + index).style.backgroundColor = '#5A7A89';
        document.getElementById('list_item_' + index).style.border = 'none';
        document.getElementById('list_edit_button_' + index).style.display = 'inline';
        document.getElementById('list_delete_button_' + index).style.display = 'inline';
        return true;
    }
    return false;
}

function delete_cursist(index){
    if (confirm('Weet u zeker dat u deze cursist wilt verwijderen?'))
        remove_fields(index);
}

function cancel_cursist(index){
    if (confirm('Weet u zeker dat u de openstaande cursistgegevens wilt annuleren?'))
        remove_fields(index);
	
    // teller verlagen en evt list header verbergen
    document.getElementById('teller').value--;
    if (document.getElementById('teller').value == 0)
        document.getElementById('cursisten_list_header').style.display = 'none';
	
    // 'Nieuwe cursist toevoegen' knop weergeven
    document.getElementById('button_addcursist').style.display = 'block';
	
    // Toegestaan om cursist aan te passen
    document.getElementById('cursist_openstaand').value = 'false';
}

function remove_fields(index) {
    var situaties = new Array('achternaam', 'aanspreeknaam', 'voornamen', 'voorletters', 'roepnaam', 'tussenvoegsels', 'sofinummer',
        'straat', 'huisnummer', 'toevoeging', 'postcode', 'woonplaats', 'telefoon', 'mobiel', 'email', 'geboortedatum', 'geboorteplaats');
	
    remove_aanhef(index);
    // velden en labels en knoppen verwijderen
    for (var i = 0; i < situaties.length; i++){
        document.getElementById('formelement_' + situaties[i] + '_' + index).parentNode.removeChild(document.getElementById('formelement_' + situaties[i] + '_' + index));
    }
    document.getElementById('label_cursist_' + index).parentNode.removeChild(document.getElementById('label_cursist_' + index));
    document.getElementById('label_uitleg_' + index).parentNode.removeChild(document.getElementById('label_uitleg_' + index));
    document.getElementById('button_save_cursist_and_stop_' + index).parentNode.removeChild(document.getElementById('button_save_cursist_and_stop_' + index));
    document.getElementById('button_save_and_new_cursist_' + index).parentNode.removeChild(document.getElementById('button_save_and_new_cursist_' + index));
    document.getElementById('button_cancel_cursist_' + index).parentNode.removeChild(document.getElementById('button_cancel_cursist_' + index));
    // breaks verwijderen
    for (var i = 0; i < document.getElementById('teller_breaks_' + index).value; i++){
        document.getElementById('br_' + index + '_' + i).parentNode.removeChild(document.getElementById('br_' + index + '_' + i));
    }
    // meer troep verwijderen
    document.getElementById('list_item_' + index).parentNode.removeChild(document.getElementById('list_item_' + index));
    document.getElementById('list_edit_button_' + index).parentNode.removeChild(document.getElementById('list_edit_button_' + index));
    document.getElementById('list_delete_button_' + index).parentNode.removeChild(document.getElementById('list_delete_button_' + index));
    document.getElementById('teller_breaks_' + index).parentNode.removeChild(document.getElementById('teller_breaks_' + index));
}

function save_and_new_cursist(index){	
    if (save_cursist(index)) {
        add_cursist();
    }
    else {
        alert('vul eerst alle velden in');
    }
}

function add_element(display, id, size) {
    var oldId = id;
    var verplicht = check_verplicht(id);
    // id en index zetten
    var index = document.getElementById('teller').value;
    id += '_' + index;
    // div.formelement maken voor formlabel en forminput
    var formelement = document.createElement('div');
    formelement.id = 'formelement_' + id;
    document.getElementById('lastelement').parentNode.insertBefore(formelement,document.getElementById('lastelement'));
    // div.formlabel voor inputlabel
    var formlabel = document.createElement('div');
    formlabel.id = 'formlabel_' + id;
    formlabel.appendChild(document.createTextNode(display + ':'));
    document.getElementById('formelement_' + id).appendChild(formlabel);
    document.getElementById('formlabel_' + id).className = 'formlabel';
    // evt * maken voor verplicht veld
    if (verplicht){
        var reqfield = document.createElement('span');
        reqfield.id = 'reqfield_' + id;
        reqfield.appendChild(document.createTextNode('*'));
        document.getElementById('formlabel_' + id).appendChild(reqfield);
        document.getElementById('reqfield_' + id).className = 'req';
    }
    // div.forminput maken voor label en input
    var forminput = document.createElement('div');
    forminput.id = 'forminput_' + id;
    document.getElementById('lastelement').parentNode.insertBefore(forminput,document.getElementById('lastelement'));
    document.getElementById('formelement_' + id).appendChild(forminput);
    document.getElementById('forminput_' + id).className = 'forminput cursist_autocomplete_'+ index;
    // creeeren van standaardveld voor in div.forminput
    var input;
    try {
        input = document.createElement('<input name="'+id+'">');
    } catch (e) {
        input = document.createElement('input');
        input.setAttribute('name', id);
    }
    if (size != '')
        input.setAttribute('size', size)
		
    input.id = id;
    document.getElementById('forminput_' + id).appendChild(input);
	
/*if (oldId == 'voornamen') {
		var input2 = document.createElement('input');
		input2.setAttribute('name', 'voorletters_' + index);
		input2.id = 'voorletters_' + index;
		input2.type = 'hidden';
		document.getElementById('forminput_' + id).appendChild(input2);
	}*/
}

function check_verplicht(id){
    var verpl_velden = new Array('voornamen', 'achternaam', 'voorletters', 'roepnaam','sofinummer',
        'straat', 'huisnummer', 'postcode', 'woonplaats', 'telefoon', 'geboortedatum', 'geboorteplaats');
	
    for(var i = 0; i < verpl_velden.length; i++){
        if (id == verpl_velden[i])
            return true;
    }
}

function add_break(height) {
    // teller ophalen
    var teller = document.getElementById('teller').value;
	
    var br = document.createElement('div');
    br.appendChild(document.createTextNode(''));
	
    br.style.height = height + 'px';
    br.style.width = '380px';
    br.style.display = 'block';
    br.style.cssFloat = 'left';
    br.id = 'br_' + teller + '_' + document.getElementById('teller_breaks_' + teller).value;
    if (height == 25)
        br.style.borderTop = '4px solid black';
	
    document.getElementById('lastelement').parentNode.insertBefore(br,document.getElementById('lastelement'));
	
    // breakteller ophogen
    document.getElementById('teller_breaks_' + teller).value++;
}
function is_valid_bsn(text){
    if (text == '000000000') return true;
    if(text.length != 9){
        return false;
    }
    var multiplier = 9;
    var sum = 0;
    for(var i=0; i < 9; i++){
        var code = text.charAt(i).charCodeAt(0);
        if(!(code > 31 && (code < 48 || code > 57))){
            if(multiplier == 1){
                multiplier = -1;
            }
            sum += text.charAt(i) * multiplier;
            multiplier--;
        }
    }
    return sum % 11 == 0;
}
function check_cursist_form(index) {
    var situaties = new Array('achternaam', 'voornamen', 'voorletters', 'roepnaam',
        'straat', 'huisnummer', 'postcode', 'woonplaats', 'telefoon', 'geboortedatum', 'geboorteplaats', 'sofinummer');
	
    var isgoed = true;
	
    for (var i = 0; i < situaties.length; i++){
        if (document.getElementById(situaties[i] + '_' + index).value  == ''){
            // eerste letter transformeren in hoofdletter
            var hoofdletter = (situaties[i].substring(0,1)).toUpperCase();
            // hoofdletter plakken aan de rest
            var display_string = hoofdletter + situaties[i].substring(1);
            alert(display_string + ' is niet ingevuld.');
            isgoed = false;
        }
        if (situaties[i] == 'sofinummer'){
            if(!is_valid_bsn(document.getElementById(situaties[i]+'_'+index).value)){
                alert("Controleer de burgerservicenummers van uw medewerkers");
                isgoed = false;
            }
        }
    }
    if (document.getElementById('aanhef_cursist_man_'+index).checked == false && document.getElementById('aanhef_cursist_vrouw_'+index).checked == false){
        alert('Aanhef is niet ingevuld.');
        isgoed = false;
    }
    return isgoed;
}

function add_superscript(text, field){
    // teller ophalen
    var teller = document.getElementById('teller').value;
	
    var sup = document.createElement('sup');
    sup.setAttribute('style.fontSize','9pt');
    sup.appendChild(document.createTextNode(text));
	
    document.getElementById('formlabel_' + field + '_' + teller).appendChild(sup);
}

