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;
	
	// 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 (zonder tussenvoegsels)', '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('Straat', 'straat', '');
	add_break(4);
	add_element('Huisnummer', 'huisnummer', '8');
	add_break(4);
	add_element('Toevoeging', 'toevoeging', '8');
	add_break(4);
	add_element('Postcode (geen spaties)', 'postcode', '6');
	document.getElementById('postcode_' + teller).maxLength = '6';
	document.getElementById('postcode_'+teller).setAttribute('onkeyup', 'auto_postcode(value, "straat_'+teller+'", "woonplaats_'+teller+'")');
	add_break(4);
	add_element('Woonplaats', 'woonplaats', '');
	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';
}

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'));
	document.getElementById('formelement_' + id).className = 'formelement';
	// 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';
	// 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', '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);
}
