var polygon;
var postcodeTabel = new Array();
var postcodeTabelBlauw = new Array();
		
		// Dit zijn de postcode's voor het groene gebied van de landelijke installatie
		postcodeTabel[10] = 0;
		postcodeTabel[11] = 1;
		postcodeTabel[12] = 2;
		postcodeTabel[13] = 2;
		postcodeTabel[14] = 1;
		postcodeTabel[15] = 1;
		postcodeTabel[16] = 0;
		postcodeTabel[17] = 0;
		postcodeTabel[18] = 1;
		postcodeTabel[19] = 1;
		postcodeTabel[20] = 3;
		postcodeTabel[21] = 3;
		postcodeTabel[22] = 3;
		postcodeTabel[23] = 3;
		postcodeTabel[24] = 3;
		postcodeTabel[25] = 3;
		postcodeTabel[26] = 3;
		postcodeTabel[27] = 3;
		postcodeTabel[28] = 3;
		postcodeTabel[29] = 3;
		postcodeTabel[30] = 3;
		postcodeTabel[31] = 3;
		postcodeTabel[32] = 2;
		postcodeTabel[33] = 2;
		postcodeTabel[34] = 3;
		postcodeTabel[35] = 2;
		postcodeTabel[36] = 2;
		postcodeTabel[37] = 2;
		postcodeTabel[38] = 1;
		postcodeTabel[39] = 2;
		postcodeTabel[40] = 1;
		postcodeTabel[41] = 2;
		postcodeTabel[42] = 2;
		postcodeTabel[43] = 0;
		postcodeTabel[44] = 0;
		postcodeTabel[45] = 0;
		postcodeTabel[46] = 1;
		postcodeTabel[47] = 1;
		postcodeTabel[48] = 1;
		postcodeTabel[49] = 1;
		postcodeTabel[50] = 1;
		postcodeTabel[51] = 1;
		postcodeTabel[52] = 1;
		postcodeTabel[53] = 1;
		postcodeTabel[54] = 1;
		postcodeTabel[55] = 0;
		postcodeTabel[56] = 0;
		postcodeTabel[57] = 0;
		postcodeTabel[58] = 0;
		postcodeTabel[59] = 0;
		postcodeTabel[60] = 0;
		postcodeTabel[61] = 0;
		postcodeTabel[62] = 0;
		postcodeTabel[63] = 0;
		postcodeTabel[64] = 0;
		postcodeTabel[65] = 1;
		postcodeTabel[66] = 1;
		postcodeTabel[67] = 1;
		postcodeTabel[68] = 1;
		postcodeTabel[69] = 1;
		postcodeTabel[70] = 0;
		postcodeTabel[71] = 0;
		postcodeTabel[72] = 1;
		postcodeTabel[73] = 1;
		postcodeTabel[74] = 0;
		postcodeTabel[75] = 0;
		postcodeTabel[76] = 0;
		postcodeTabel[77] = 0;
		postcodeTabel[78] = 0;
		postcodeTabel[79] = 0;
		postcodeTabel[80] = 1;
		postcodeTabel[81] = 1;
		postcodeTabel[82] = 1;
		postcodeTabel[83] = 0;
		postcodeTabel[84] = 0;
		postcodeTabel[85] = 0;
		postcodeTabel[86] = 0;
		postcodeTabel[87] = 0;
		postcodeTabel[88] = 0;
		postcodeTabel[89] = 0;
		postcodeTabel[90] = 0;
		postcodeTabel[91] = 0;
		postcodeTabel[92] = 0;
		postcodeTabel[93] = 0;
		postcodeTabel[94] = 0;
		postcodeTabel[95] = 0;
		postcodeTabel[96] = 0;
		postcodeTabel[97] = 0;
		postcodeTabel[98] = 0;
		postcodeTabel[99] = 0;
			
		// De postcode's voor het blauwe gebied
		postcodeTabelBlauw[10] = 0;
		postcodeTabelBlauw[11] = 0;
		postcodeTabelBlauw[12] = 0;
		postcodeTabelBlauw[13] = 0;
		postcodeTabelBlauw[14] = 0;
		postcodeTabelBlauw[15] = 0;
		postcodeTabelBlauw[16] = 0;
		postcodeTabelBlauw[17] = 0;
		postcodeTabelBlauw[18] = 0;
		postcodeTabelBlauw[19] = 0;
		postcodeTabelBlauw[20] = 0;
		postcodeTabelBlauw[21] = 0;
		postcodeTabelBlauw[22] = 3;
		postcodeTabelBlauw[23] = 3;
		postcodeTabelBlauw[24] = 3;
		postcodeTabelBlauw[25] = 3;
		postcodeTabelBlauw[26] = 3;
		postcodeTabelBlauw[27] = 3;
		postcodeTabelBlauw[28] = 3;
		postcodeTabelBlauw[29] = 0;
		postcodeTabelBlauw[30] = 3;
		postcodeTabelBlauw[31] = 3;
		postcodeTabelBlauw[32] = 0;
		postcodeTabelBlauw[33] = 0;
		postcodeTabelBlauw[34] = 0;
		postcodeTabelBlauw[35] = 0;
		postcodeTabelBlauw[36] = 0;
		postcodeTabelBlauw[37] = 0;
		postcodeTabelBlauw[38] = 0;
		postcodeTabelBlauw[39] = 0;
		postcodeTabelBlauw[40] = 0;
		postcodeTabelBlauw[41] = 0;
		postcodeTabelBlauw[42] = 0;
		postcodeTabelBlauw[43] = 0;
		postcodeTabelBlauw[44] = 0;
		postcodeTabelBlauw[45] = 0;
		postcodeTabelBlauw[46] = 0;
		postcodeTabelBlauw[47] = 0;
		postcodeTabelBlauw[48] = 0;
		postcodeTabelBlauw[49] = 0;
		postcodeTabelBlauw[50] = 0;
		postcodeTabelBlauw[51] = 0;
		postcodeTabelBlauw[52] = 0;
		postcodeTabelBlauw[53] = 0;
		postcodeTabelBlauw[54] = 0;
		postcodeTabelBlauw[55] = 0;
		postcodeTabelBlauw[56] = 0;
		postcodeTabelBlauw[57] = 0;
		postcodeTabelBlauw[58] = 0;
		postcodeTabelBlauw[59] = 0;
		postcodeTabelBlauw[60] = 0;
		postcodeTabelBlauw[61] = 0;
		postcodeTabelBlauw[62] = 0;
		postcodeTabelBlauw[63] = 0;
		postcodeTabelBlauw[64] = 0;
		postcodeTabelBlauw[65] = 0;
		postcodeTabelBlauw[66] = 0;
		postcodeTabelBlauw[67] = 0;
		postcodeTabelBlauw[68] = 0;
		postcodeTabelBlauw[69] = 0;
		postcodeTabelBlauw[70] = 0;
		postcodeTabelBlauw[71] = 0;
		postcodeTabelBlauw[72] = 0;
		postcodeTabelBlauw[73] = 0;
		postcodeTabelBlauw[74] = 0;
		postcodeTabelBlauw[75] = 0;
		postcodeTabelBlauw[76] = 0;
		postcodeTabelBlauw[77] = 0;
		postcodeTabelBlauw[78] = 0;
		postcodeTabelBlauw[79] = 0;
		postcodeTabelBlauw[80] = 0;
		postcodeTabelBlauw[81] = 0;
		postcodeTabelBlauw[82] = 0;
		postcodeTabelBlauw[83] = 0;
		postcodeTabelBlauw[84] = 0;
		postcodeTabelBlauw[85] = 0;
		postcodeTabelBlauw[86] = 0;
		postcodeTabelBlauw[87] = 0;
		postcodeTabelBlauw[88] = 0;
		postcodeTabelBlauw[89] = 0;
		postcodeTabelBlauw[90] = 0;
		postcodeTabelBlauw[91] = 0;
		postcodeTabelBlauw[92] = 0;
		postcodeTabelBlauw[93] = 0;
		postcodeTabelBlauw[94] = 0;
		postcodeTabelBlauw[95] = 0;
		postcodeTabelBlauw[96] = 0;
		postcodeTabelBlauw[97] = 0;
		postcodeTabelBlauw[98] = 0;
		postcodeTabelBlauw[99] = 0;

// Functie van http://www.dustindiaz.com/getelementsbyclass/
// Gebruikt om alle inputs te krijgen door ze simpelweg een class te geven.
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function valideerFormulier()
{
	var fout = false;
	
	// Valideer postcode
	if( !document.getElementById('postcode').value.match(/^[1-9][0-9]{3}[\s]?([A-Z]|[a-z]){2}$/) )
	{
		document.getElementById('postcodeFout').innerHTML = 'De postcode moet geldig zijn';
		fout = true;
	} else {
		document.getElementById('postcodeFout').innerHTML = '';
	}
	
	// Valideer woonplaats
	if( document.getElementById('woonplaats').value.length < 2 )
	{
		document.getElementById('woonplaatsFout').innerHTML = 'De woonplaats moet minstens 3 tekens lang zijn';
		fout = true;
	} else if( document.getElementById('woonplaats').value.length > 256 ) {
		document.getElementById('woonplaatsFout').innerHTML = 'De woonplaats mag maximaal 255 tekens lang zijn';
		fout = true;
	} else {
		document.getElementById('woonplaatsFout').innerHTML = '';
	}
	
	// Valideer adres
	if( document.getElementById('adres').value.length < 2 )
	{
		document.getElementById('adresFout').innerHTML = 'Het adres moet minstens 3 tekens lang zijn';
		fout = true;
	} else if( document.getElementById('adres').value.length > 256 ) {
		document.getElementById('adresFout').innerHTML = 'Het adres mag maximaal 255 tekens lang zijn';
		fout = true;
	} else {
		document.getElementById('adresFout').innerHTML = '';
	}
	
	// Valideer voorletters
	if( document.getElementById('voorletters').value.length == 0 )
	{
		document.getElementById('voorlettersFout').innerHTML = 'De voorletters moeten ingevuld worden';
		fout = true;
	} else if( document.getElementById('voorletters').value.length > 256 ) {
		document.getElementById('voorlettersFout').innerHTML = 'De voorletters mogen maximaal 255 tekens lang zijn';
		fout = true;
	} else {
		document.getElementById('voorlettersFout').innerHTML = '';
	}
	
	// Valideer achternaam
	if( document.getElementById('achternaam').value.length == 0 )
	{
		document.getElementById('achternaamFout').innerHTML = 'De achternaam moet ingevuld worden';
		fout = true;
	} else if( document.getElementById('achternaam').value.length > 256 ) {
		document.getElementById('achternaamFout').innerHTML = 'De achternaam mag maximaal 255 tekens lang zijn';
		fout = true;
	} else {
		document.getElementById('achternaamFout').innerHTML = '';
	}
	
	// Valideer email
	if( !document.getElementById('email').value.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i) )
	{
		document.getElementById('emailFout').innerHTML = 'Er moet een geldig email-adress worden ingevuldt';
		fout = true;
	} else {
		document.getElementById('emailFout').innerHTML = '';
	}
	
	// Valideer telefoonnummer
	if( !document.getElementById('telefoonnummer').value.match(/^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/) )
	{
		document.getElementById('telefoonnummerFout').innerHTML = 'Er moet een geldig telefoonnummer worden ingevuldt';
		fout = true;
	} else {
		document.getElementById('telefoonnummerFout').innerHTML = '';
	}
	
	// Kijk of er wel een element is gekozen
	gekozen = false;
	inputs = getElementsByClass('input', document.getElementById('inputsTop'), 'input');
	for( var i=0; i<inputs.length; i++ )
	{
		if( inputs[i].checked == true )
			gekozen = true;
	}
	
	if( !gekozen )
	{
		document.getElementById('inputsFout').innerHTML = 'Er moet een optie zijn aangevinkt';
		fout = true;
	} else {
		document.getElementById('inputsFout').innerHTML = '';
	}
	
	// Valideer opmerking
	if( document.getElementById('opmerking').value.length > 65535 ) {
		document.getElementById('opmerkingFout').innerHTML = 'De opmerking mag maximaal 65535 tekens lang zijn';
		fout = true;
	} else {
		document.getElementById('opmerkingFout').innerHTML = '';
	}
	
	// De volgende test alleen maar op de reparatie pagina
	var reparatieGebiedFout = document.getElementById('reparatieGebiedFout');
	if( reparatieGebiedFout )
	{
		// Als een reparatie niet in het groene gebied ligt kan het niet. Kijk dus of het een reparatie is en als dat zo is of die in het groene gebied ligt.
		var postcodeKlein = document.getElementById('postcode').value.substr(0,2);
		switch( postcodeTabelBlauw[postcodeKlein] )
		{
			default:
			case 0:
			case 1:
				reparatieGebiedFout.innerHTML = 'U woont helaas buiten ons werkgebied. Wij repareren niet aan huis. Wel kunt u uw apparatuur naar onze werkplaats brengen. Kijk voor meer informatie hierover onder het kopje breng-reparatie.';
				fout = true;
			break;
			case 2:
			case 3:
				reparatieGebiedFout.innerHTML = '';
			break;
		}
	} else {
		// Deze test alleen maar op installatie pagina
		// Kijk of er wel een bereikbaarheid is gekozen
		if( document.getElementById('bereikbaar').value == 'geen' )
		{
			document.getElementById('bereikbaarFout').innerHTML = 'Er moet een manier zijn gekozen';
			fout = true;
		} else {
			document.getElementById('bereikbaarFout').innerHTML = '';
		}
	}
	
	// Kijk of er iets fout is gegaan, als het zo is formulier niet versturen
	if( fout )
	{
		document.getElementById('fout').innerHTML = 'Er is iets fout gegaan met het versturen van het formulier, controleer of uw ingevulde waarden correct zijn';
	}
	
	return !fout;
}

