function postcodeCheck(ajaxResponse)
{
	eval(ajaxResponse);

	// Opslaan of de postcode check aan of uit staat
	voerPostcodeCheckUit = postcodeArray['voerPostcodeCheckUit'];

	if (postcodeArray['voerPostcodeCheckUit'] == 1)
	{
		// Default values goedzetten
		document.getElementById('inputAdres').value = '';
		document.getElementById('inputPlaats').value = '';
		document.getElementById('inputPlaats').style.textTransform = 'uppercase';

		// Alleen als er geen error is opgetreden en de postcode correct is
		if (postcodeArray["status"] != 0 && postcodeArray["error"] == 0)
		{
			// De adres en plaats velden disabelen en invullen
			document.getElementById('inputAdres').disabled = true;
			document.getElementById('inputPlaats').disabled = true;
			document.getElementById('inputAdres').value = postcodeArray['adres'];
			document.getElementById('inputPlaats').value = postcodeArray['woonplaats'];
			if (document.getElementById('inputTelefoon')) document.getElementById('inputTelefoon').value = postcodeArray['netnummer'] + '-';
		}
		else
		{
			if (postcodeArray['error'] != 0)
			{
				// Er is iets fout gegaan
				alert('Postcode foutmelding ' + postcodeArray['error'] + ': ' + postcodeArray['errorString'] + '\nVul uw postcode en huisnummer opnieuw in.');
				
				document.getElementById('inputAdres').value = '';
				document.getElementById('inputPostcode').value = '';
				document.getElementById('inputHuisnr').value = '';
				document.getElementById('inputPlaats').value = '';
				document.getElementById('inputPostcode').focus();
			}
			else
			{
				// Alleen een eventuele error geven als zowel het postcodeveld en het huisnummer veld is ingevuld
				if (document.getElementById('inputPostcode').value && document.getElementById('inputHuisnr').value)
				{
					// De huidige postcode/huisnr combinatie lijkt niet te kloppen, vragen of de gebruiker hiermee accoord gaat
					if (!confirm('De door u ingevoerde postcode en huisnummer combinatie lijkt onjuist te zijn.\n\nKlik op \'Annuleren\' als u zeker weet dat postcode ' + document.getElementById('inputPostcode').value + ' en huisnummer ' + document.getElementById('inputHuisnr').value + ' correct is.'))
					{
						// De gebruiker de mogelijkheid geven het adres en plaatsveld aan te passen
						document.getElementById('inputAdres').disabled = false;
						document.getElementById('inputPlaats').disabled = false;
					}
					else
					{
						// Het adres en plaatsveld mogen niet aangepast worden door de gebruiker
						document.getElementById('inputAdres').disabled = true;
						document.getElementById('inputPlaats').disabled = true;
						
						// Tijdelijke waarden resetten, zodat de checker opnieuw uitgevoerd zal worden na een nieuwe invoer
						document.getElementById('tmpPostcode').value = "";
						document.getElementById('tmpHuisnummer').value = "";
						
						// Huisnummerveld leeg maken ter voorkoming van ongewenste loop (postcode correct, huisnr niet; dan niet mogelijk huisnr meer aan te passen)
						document.getElementById('inputHuisnr').value = "";
						
						// Geen andere errors/focus toestaan dan van het huisnummer
						//ongeldigInvoerVeld = 'inputHuisnr';
						document.getElementById('inputPostcode').focus();
					}
				}
			}
		}
	}
	else
	{
		// Als de postcode check uit staat, de volgende velden enabelen
		document.getElementById('inputAdres').disabled = false;
		document.getElementById('inputPlaats').disabled = false;
	}
}


function verstuurPostcodeCheck()
{
	// Alleen de postcodecheck uitvoeren als deze aan staat
	if (voerPostcodeCheckUit)
	{
		// Alleen de postcodecheck uitvoeren als zowel de postcode als het huisnr is ingevuld
		if (document.getElementById('inputPostcode').value && document.getElementById('inputHuisnr').value)
		{
			// Moet de postcode check alleen worden ingevuld als pulldownLand op 1 staat? (1 is Nederland)
			if (document.getElementById('pulldownLand').value == 1)
			{
				// Tijdelijke melding in het adres- en plaatsveld tonen
				document.getElementById('inputAdres').disabled = true;
				document.getElementById('inputPlaats').disabled = true;
				document.getElementById('inputAdres').value = 'Bezig met ophalen van gegevens...';
				//document.getElementById('inputPlaats').style.textTransform = '';
				//document.getElementById('inputPlaats').value = 'Even geduld a.u.b.';
				document.getElementById('inputPlaats').value = '';

				if (!ajaxPaginaLaden('postcode_check.php?postcode=' + document.getElementById('inputPostcode').value +'&huisnummer=' + document.getElementById('inputHuisnr').value, 'postcodeCheck'))
				{
					//alert("Er is iets fout gegaan tijdens het uitvoeren van de postcode check.");

					document.getElementById('inputAdres').disabled = false;
					document.getElementById('inputPlaats').disabled = false;

					document.getElementById('inputAdres').value = '';
					document.getElementById('inputPlaats').value = '';
				}
			}
		}
		else
		{
			/*
			// De velden legen als het postcode of huisnr veld is ingevoerd
			if (document.getElementById('inputPlaats') && document.getElementById('inputAdres'))
			{
				document.getElementById('inputAdres').value = '';
				document.getElementById('inputPlaats').value = '';
				if (document.getElementById('inputTelefoon')) document.getElementById('inputTelefoon').value = '';
			}
			*/
		}
	}
}


function trim(tekst)
{
	var tmp = tekst;
	tmp = tmp.replace(/^\s+/,''); 
	tmp = tmp.replace(/\s+$/,'');
	return tmp;
}

function trimVeld(veld)
{
	var tekst = trim(veld.value);
	if (tekst != veld.value) veld.value = tekst;
}


function checkInvoerGewijzigd()
{
	var postcodeValue = document.getElementById('inputPostcode').value;
	var huisnummerValue = document.getElementById('inputHuisnr').value;
	
	var tmpPostcodeValue = document.getElementById('tmpPostcode').value;
	var tmpHuisnummerValue = document.getElementById('tmpHuisnummer').value;
	
	return !(tmpPostcodeValue == postcodeValue && tmpHuisnummerValue == huisnummerValue);
}


function checkPostcode(geefAlert, doeCheck)
{
	var veld = document.getElementById('inputPostcode');
	veld.value = veld.value.toUpperCase();

	if (document.getElementById("pulldownLand").value == 1 && veld.value != "")
	{
		var geldig = eval("/^([0-9]{4})([A-Z]{2})$/");
		if (!geldig.test(veld.value))
		{
			if (document.getElementById('inputPlaats') && document.getElementById('inputAdres'))
			{
				document.getElementById('inputAdres').value = '';
				document.getElementById('inputHuisnr').value = '';
				document.getElementById('inputPlaats').value = '';
			}

			if (geefAlert)
			{
				alert("U heeft een ongeldige postcode ingevoerd!");
			}
			
			setTimeout("document.getElementById('inputPostcode').focus()",0);
			document.getElementById('inputPostcode').value = document.getElementById('inputPostcode').value;
			return false;
		}

		if (doeCheck && checkInvoerGewijzigd() && checkHuisnummer(false, false)) verstuurPostcodeCheck();
	}

	document.getElementById('tmpPostcode').value = veld.value;
	return true;
}

function checkHuisnummer(geefAlert, doeCheck)
{
	var veld = document.getElementById('inputHuisnr');

	if (veld.value != "")
	{
		var geldig = eval("/^([0-9])+$/");
		if (!geldig.test(veld.value))
		{
			if (geefAlert)
			{
				alert("U heeft een ongeldig huisnummer ingevoerd!");
			}
			
			setTimeout("document.getElementById('inputHuisnr').focus()",0);
			document.getElementById('inputHuisnr').value = document.getElementById('inputHuisnr').value;
			return false;
		}
	
		if (doeCheck && checkInvoerGewijzigd() && checkPostcode(false, false)) verstuurPostcodeCheck();
	}
	
	document.getElementById('tmpHuisnummer').value = veld.value;	
	return true;
}


function pulldownLandVeranderd(waarde, vraagGegevensLegen)
{
	// Alleen wijzigingen in het adres en plaatsveld toestaan bij het buitenland (waarde 1 is Nederland)
	if (waarde == 1 && voerPostcodeCheckUit)
	{
		document.getElementById('inputAdres').disabled = true;
		document.getElementById('inputPlaats').disabled = true;
	}
	else
	{
		document.getElementById('inputAdres').disabled = false;
		document.getElementById('inputPlaats').disabled = false;
	}

	if (vraagGegevensLegen)
	{
		if (waarde == 1)
		{
			document.getElementById('inputPostcode').value = '';
			document.getElementById('inputHuisnr').value = '';
			document.getElementById('inputHuisnrT').value = '';		
			document.getElementById('inputAdres').value = '';
			document.getElementById('inputPlaats').value = '';
			if (document.getElementById('inputTelefoon')) document.getElementById('inputTelefoon').value = '';
		}
		else if (document.getElementById('inputPostcode').value != '' || document.getElementById('inputHuisnr').value != '' || document.getElementById('inputHuisnrT').value != '' || document.getElementById('inputAdres').value != '' || document.getElementById('inputPlaats').value != '')
		{
			if (confirm('Er is een ander land geselecteerd. Wilt u de adresvelden ook legen?'))
			{
				document.getElementById('inputPostcode').value = '';
				document.getElementById('inputHuisnr').value = '';
				document.getElementById('inputHuisnrT').value = '';		
				document.getElementById('inputAdres').value = '';
				document.getElementById('inputPlaats').value = '';
				if (document.getElementById('inputTelefoon')) document.getElementById('inputTelefoon').value = '';
			}
		}
	}
}
