function changeCss(theClass, element, value) {
	//documentation for this script at http://www.shawnolson.net/a/503/
	var cssRules;
	if (document.all) {
		cssRules = 'rules';
	}
	else if (document.getElementById) {
		cssRules = 'cssRules';
	}
	
	for (var S = 0; S < document.styleSheets.length; S++){
		for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
			if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
				document.styleSheets[S][cssRules][R].style[element] = value;
			}
		}
	}	
}

function invoerDetails(s, id, balk) {
	//var v = document.getElementById('domein_a_'+id).style.display;
	var v = (s == 2) ? 'block' : 'none';
	document.getElementById('domein_a_'+id).style.display = v;
	//changeCss('td.overzicht_'+balk, 'border-bottom-width', 0);
	//changeCss('td.overzicht_'+balk, 'borderBottomWidth', 0);
	//document.getElementById('regel1_'+id).className = ((v == 'none') ? 'overzicht_'+balk : 'overzicht_'+balk+'_none');
	//document.getElementById('regel2_'+id).className = ((v == 'none') ? 'overzicht_'+balk : 'overzicht_'+balk+'_none');
	//document.getElementById('regel3_'+id).className = ((v == 'none') ? 'overzicht_'+balk : 'overzicht_'+balk+'_none');
}

function toonDetails(id, balk, toon_details, verberg_details) {
	var v = document.getElementById('domein_a_'+id).style.display;
	v = (v == 'none') ? 'block' : 'none';
	document.getElementById('domein_details_'+id).innerHTML = (v == 'none') ? toon_details : verberg_details;
	document.getElementById('domein_a_'+id).style.display = v;
	//changeCss('td.overzicht_'+balk, 'border-bottom-width', 0);
	//changeCss('td.overzicht_'+balk, 'borderBottomWidth', 0);
	//document.getElementById('regel1_'+id).className = ((v == 'none') ? 'overzicht_'+balk : 'overzicht_'+balk+'_none');
	//document.getElementById('regel2_'+id).className = ((v == 'none') ? 'overzicht_'+balk : 'overzicht_'+balk+'_none');
	//document.getElementById('regel3_'+id).className = ((v == 'none') ? 'overzicht_'+balk : 'overzicht_'+balk+'_none');
}

function fixWinkelwagen(id, array) {/*
	for (var i=0; i < array.length; i++) {
		if (array[i] == id) continue;
		alert(array[i]);
		//document.getElementById('regel1_'+array[i]).style.background = ((i%2 == 0) ? '#E9E9E9' : '#FFFFFF');
	}*/
}

function betalingsMethode(check, tekst) {
	if (check != 'ai') {
		document.getElementById('rekeningnummer').value = '';
		document.getElementById('rekeningnummer').disabled = true;
		document.getElementById('ster_rekeningnummer').innerHTML = tekst+':';
	} else {
		document.getElementById('rekeningnummer').disabled = false;
		document.getElementById('ster_rekeningnummer').innerHTML = '<b>'+tekst+' *:</b>';
	}
}

function landCode(code) {
	if (code == 'NL' ||
		code == 'B' ||
		code == 'D' ||
		code == 'I') {
		if (document.getElementById('ai')) {
			document.getElementById('ai').disabled = false;
			if (document.getElementById('ai').checked) document.getElementById('rekeningnummer').disabled = false;
		}
	} else {
		if (document.getElementById('rekeningnummer')) document.getElementById('rekeningnummer').disabled = true;
		if (document.getElementById('ai')) document.getElementById('ai').disabled = true;
	}
}

String.prototype.trim = function() {
	a = this.replace(/^\s+/, '');
	return a.replace(/\s+$/, '');
};

function checkGegevens1(verplicht) {
	var f = document.forms["gegevensinvoer"];
	var ok=true;

	if (f.voornaam.value.trim() == "") 			{ ok=false; document.getElementById("i_voornaam").innerHTML="*"; } else document.getElementById("i_voornaam").innerHTML="";
	if (f.achternaam.value.trim() == "") 		{ ok=false; document.getElementById('i_achternaam').innerHTML="*"; } else document.getElementById('i_achternaam').innerHTML="";
	if (f.straatnaam.value.trim() == "" ||
		f.huisnummer.value.trim() == "") 		{ ok=false; document.getElementById('i_huisnummer').innerHTML="*"; } else document.getElementById('i_huisnummer').innerHTML="";
	if (f.postcode.value.trim() == "") 			{ ok=false; document.getElementById('i_postcode').innerHTML="*"; } else document.getElementById('i_postcode').innerHTML="";
	if (f.woonplaats.value.trim() == "") 		{ ok=false; document.getElementById('i_woonplaats').innerHTML="*"; } else document.getElementById('i_woonplaats').innerHTML="";
	if (f.landcode.value.trim() == "") 			{ ok=false; document.getElementById('i_landcode').innerHTML="*"; } else document.getElementById('i_landcode').innerHTML="";
	if (f.emailadres.value.trim() == "") 		{ ok=false; document.getElementById('i_emailadres').innerHTML="*"; } else document.getElementById('i_emailadres').innerHTML="";
	if (f.telefoonnummer.value.trim() == "") 	{ ok=false; document.getElementById('i_telefoonnummer').innerHTML="*"; } else document.getElementById('i_telefoonnummer').innerHTML="";
	if (document.getElementById('ai') && document.getElementById('ai').checked &&
		f.rekeningnummer.value.trim() == "") 	{ ok=false; document.getElementById('i_rekeningnummer').innerHTML="*"; } else if (document.getElementById('i_rekeningnummer')) document.getElementById('i_rekeningnummer').innerHTML="";
	
	// inhoud controleren
	var wellformed = true;
	var error = '';
	/*
	if (f.klantnummer.value.trim() != "") {
		if (f.klantnummer.value.length != 4)	{ wellformed=false; error='klantnummer'; }
		if (f.klantnummer.value < 1000)			{ wellformed=false; error='klantnummer'; }
	}
	if (f.bedrijfsnaam.value.length > 100)	{ wellformed=false; error='bedrijfsnaam'; }
	if (f.voornaam.value.length < 2)		{ wellformed=false; error='voornaam'; }
	if (f.voornaam.value.length > 100)		{ wellformed=false; error='voornaam'; }
	if (f.achternaam.value.length < 2)		{ wellformed=false; error='achternaam'; }
	if (f.achternaam.value.length > 100)	{ wellformed=false; error='achternaam'; }
	if (f.postcode.value.length > 10)		{ wellformed=false; error='postcode'; }
	if (f.woonplaats.value.length < 2)		{ wellformed=false; error='woonplaats'; }
	if (f.woonplaats.value.length > 100)	{ wellformed=false; error='woonplaats'; }
	
	var re = new RegExp('([0-9a-z_]+\.*)+@([0-9a-z_-]+\.)+[a-z]{2,6}');
	if (!f.emailadres.value.match(re))		{ wellformed=false; error='emailadres'; }
	if (f.emailadres.value.length > 100)	{ wellformed=false; error='emailadres'; }
	
	re = new RegExp('[0-9\-\+]+');
	if (!f.telefoonnummer.value.match(re))	{ wellformed=false; error='telefoonnummer'; }
	
	if (f.faxnummer.value.trim() != "") {
		if (!f.faxnummer.value.match(re))		{ wellformed=false; error='telefoonnummer'; }
	}
	/*
	// check voor automatische incasso waarbij ook land check
	if (document.getElementById('ai') && document.getElementById('ai').checked == true) {
		if (f.landcode.value == 'NL') {
			// 11 proef
			var rekeningnr = f.rekeningnummer.value;
			var j = 11;
			for (var i = 0; i < rekeningnr.length; i++) {
				var ch = rekeningnr.charAt(i);
				if (ch >= 0 && ch <= 9) {
					total += ch * j;
					j--;
				}
			}
			if (j == 0) {
				if (total % 11 != 0) wellformed=false;
			} else {
				;	// girorekening
			}
		}
	}
	*/
	if (ok && wellformed) {
		opslaanGegevens1();
	} else if (!ok) {
		alert(verplicht);
	} else if (!wellformed) {
		alert(error);	// TODO taalondersteuning!
	}
	
	return ok;
	
	/*
	f.klantnummer
	f.bedrijfsnaam
	f.voornaam
	f.achternaam
	f.straatnaam
	f.huisnummer
	f.postcode
	f.woonplaats
	f.landcode
	f.emailadres
	f.telefoonnummer
	f.faxnummer
	f.betaling
	f.rekeningnummer
	f.opmerkingen
	*/
}

function checkGegevens2(aantal, verplicht) {
	var ok=true;
	for (var i=1; i <= aantal; i++) {
		var fb=null;
		if (document.getElementById("radio_a_"+i)) {
			if (document.getElementById("radio_a_"+i).checked) {
				var f = document.forms["gegevensdomein_"+i];
				if (f.voornaam.value.trim() == "") 			{ ok=false; document.getElementById("i_voornaam_"+i).innerHTML="*"; } else document.getElementById("i_voornaam_"+i).innerHTML="";
				if (f.achternaam.value.trim() == "") 		{ ok=false; document.getElementById("i_achternaam_"+i).innerHTML="*"; } else document.getElementById("i_achternaam_"+i).innerHTML="";
				if (f.straatnaam.value.trim() == "" ||
					f.huisnummer.value.trim() == "") 		{ ok=false; document.getElementById("i_huisnummer_"+i).innerHTML="*"; } else document.getElementById("i_huisnummer_"+i).innerHTML="";
				if (f.postcode.value.trim() == "") 			{ ok=false; document.getElementById("i_postcode_"+i).innerHTML="*"; } else document.getElementById("i_postcode_"+i).innerHTML="";
				if (f.woonplaats.value.trim() == "") 		{ ok=false; document.getElementById("i_woonplaats_"+i).innerHTML="*"; } else document.getElementById("i_woonplaats_"+i).innerHTML="";
				if (f.landcode.value.trim() == "") 			{ ok=false; document.getElementById("i_landcode_"+i).innerHTML="*"; } else document.getElementById("i_landcode_"+i).innerHTML="";
				if (f.emailadres.value.trim() == "") 		{ ok=false; document.getElementById("i_emailadres_"+i).innerHTML="*"; } else document.getElementById("i_emailadres_"+i).innerHTML="";
				if (f.telefoonnummer.value.trim() == "") 	{ ok=false; document.getElementById("i_telefoonnummer_"+i).innerHTML="*"; } else document.getElementById("i_telefoonnummer_"+i).innerHTML="";
				if (f.faxnummer != null)
					if (f.faxnummer.value.trim() == "") 		{ ok=false; document.getElementById("i_faxnummer_"+i).innerHTML="*"; } else document.getElementById("i_faxnummer_"+i).innerHTML="";
			}
			fb=f;
		}
		var fi = document.forms["gegevensdomein_"+i+"_it"];
		if (fi) {
			if (fb == null) fb=fi;
			if (fi.btwnummer != null)
				if (fb.bedrijfsnaam.value.trim() != "" &&
					fi.btwnummer.value.trim() == "")			{ ok=false; document.getElementById("i_btwnummer_"+i).innerHTML="*"; } else document.getElementById("i_btwnummer_"+i).innerHTML="";
			if (fi.standplaats != null && document.getElementById("i_standplaats_"+i) != null)
				if (fb.bedrijfsnaam.value.trim() != "" &&
					fi.standplaats.value.trim() == "")			{ ok=false; document.getElementById("i_standplaats_"+i).innerHTML="*"; } else document.getElementById("i_standplaats_"+i).innerHTML="";
			if (fi.standland != null && document.getElementById("i_standland_"+i))
				if (fb.bedrijfsnaam.value.trim() != "" &&
					fi.standland.value.trim() == "")			{ ok=false; document.getElementById("i_standland_"+i).innerHTML="*"; } else document.getElementById("i_standland_"+i).innerHTML="";
			if (fi.geboortedatum != null && fi.geboorteplaats)
				if (fi.geboortedatum.value.trim() == "" ||
					fi.geboorteplaats.value.trim() == "") 		{ ok=false; document.getElementById("i_geboorteplaats_"+i).innerHTML="*"; } else document.getElementById("i_geboorteplaats_"+i).innerHTML="";
			if (fi.geboorteland != null)
				if (fi.geboorteland.value.trim() == "") 		{ ok=false; document.getElementById("i_geboorteland_"+i).innerHTML="*"; } else document.getElementById("i_geboorteland_"+i).innerHTML="";
			if (fi.sofinummer != null)
				if (fi.sofinummer.value.trim() == "") 			{ ok=false; document.getElementById("i_sofinummer_"+i).innerHTML="*"; } else document.getElementById("i_sofinummer_"+i).innerHTML="";
		}
	}
	
	if (ok) {
		opslaanGegevens2(aantal);
	} else {
		alert(verplicht);
	}
	
	return ok;
}

function showWinkelwagen(aan) {
	showWinkelwagenAjax(aan);
	
	var a = (aan == 1) ? 'block' : 'none';
	var u = (aan == 0) ? 'block' : 'none';
	document.getElementById('winkelwagen_aan').style.display = a;
	document.getElementById('winkelwagen_uit').style.display = u;
}

function showExtensies(aan) {
	//showExtensiesAjax(aan);
	
	var a = (aan == 1) ? 'block' : 'none';
	var u = (aan == 0) ? 'block' : 'none';
	document.getElementById('domein_ext_extra').style.display = a;
	document.getElementById('domein_ext_extra_uit').style.display = u;
}

function checkDomainName() {
	var re = new RegExp('[a-zA-Z0-9]');
	if (document.forms["domein"].domeinnaam.value.match(re)) {
		//alert("Successful match");
		vulCheckDom();
	} else {
		//alert("No match");
	}
	return false;
}