function checkForm() {
	// Check the values
	var obj				= document.forms.register;
	var achternaam		= obj.frm_achternaam.value;
	var mail			= obj.frm_email.value;
	
	// Trick the phone number field
	obj.frm_telefoon.value = obj.frm_telefoon.value.replace(/[^\d]/g, "");
	
	var telefoon		= obj.frm_telefoon.value;
	var ok				= false;
	
	if (achternaam.length >= 2) {
		if (formCheckMail(mail)) {
			if (telefoon.length == 10) {
				ok = true;
			}
		}
	}
	
	if (ok) {
		obj.submit();
	} else {
		alert('Niet alle velden zijn ingevuld. Controleer uw invoer en probeer opnieuw.');
	}
}

function formCheckMail(input) {
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return filter.test(input);
}

function toggleVoorwaarden() {
	objTarief_a = document.getElementById("frm_contract_tarief_VAST");
	objTarief_b = document.getElementById("frm_contract_tarief_VARIABEL");
	
	objSoort_a = document.getElementById("frm_contract_soort_elektriciteit_GRIJS");
	objSoort_b = document.getElementById("frm_contract_soort_elektriciteit_GROEN");
	
	objContract_a = document.getElementById("frm_contract_looptijd_1");
	objContract_b = document.getElementById("frm_contract_looptijd_3");
	
	if ( (objTarief_a.checked) || (objTarief_b.checked) ) {
		if ( (objSoort_a) || (objSoort_b) ) {
			if ( (objContract_a) || (objContract_b) ) {
				
				// Hide all first;
				for (x=1;x<9;x++) {
					toggleHTML( ['trfrm_akkoord_Productvoorwaarden' + x], 'none');
				}
				
				
				// Show correct one
				if ( (objTarief_b.checked) && (objSoort_a.checked) && (objContract_a.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden1'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden1'; } // Productvoorwaarden Voordeel Garantie (1 jaar)
				if ( (objTarief_b.checked) && (objSoort_b.checked) && (objContract_a.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden2'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden2'; } // Productvoorwaarden Voordeel Garantie met Wind Garantie (1 jaar)
				if ( (objTarief_b.checked) && (objSoort_a.checked) && (objContract_b.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden3'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden3'; } // Productvoorwaarden Voordeel Garantie (3 jaar)
				if ( (objTarief_b.checked) && (objSoort_b.checked) && (objContract_b.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden4'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden4'; } // Productvoorwaarden Voordeel Garantie met Wind Garantie (3 jaar)
				if ( (objTarief_a.checked) && (objSoort_a.checked) && (objContract_a.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden5'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden5'; } // Productvoorwaarden Prijszeker Garantie (1 jaar)
				if ( (objTarief_a.checked) && (objSoort_b.checked) && (objContract_a.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden6'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden6'; } // Productvoorwaarden Prijszeker Garantie met Wind Garantie (1 jaar)
				if ( (objTarief_a.checked) && (objSoort_a.checked) && (objContract_b.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden7'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden7'; } // Productvoorwaarden Prijszeker Garantie (3 jaar)
				if ( (objTarief_a.checked) && (objSoort_b.checked) && (objContract_b.checked) ) { toggleHTML( ['trfrm_akkoord_Productvoorwaarden8'], ''); document.forms.Aanmelden.mandatory_checkboxExtra.value = 'frm_akkoord_Productvoorwaarden8'; } // Productvoorwaarden Prijszeker Garantie met Wind Garantie (3 jaar)
				
			}
		}
	}
	
	//	Variabel = Voordeel Garantie
	//	Vast = Prijszeker
	//	Groen = Wind garantie
}

function togglePostcode() {
	obj = document.getElementById("Aanmelden");
	
	if (obj) {
		if (obj.frm_postcode.value.length >= 6) {
			
			obj.frm_postcode.value = obj.frm_postcode.value.replace(" ", "");
			obj.frm_postcode.value = obj.frm_postcode.value.toUpperCase();
			
			if (obj.frm_postcode.value.length != 6) {
				return;
			} else {
				if (obj.frm_huisnummer.value.length != 0) {
					ajaxURL = '/ajax.provider.postcode.php?postcode=' + obj.frm_postcode.value;
					ajaxURL += '&huisnummer=' + obj.frm_huisnummer.value + '&nocache=' + Math.random();
					ajaxLoadURL(ajaxURL, 'postcode', 'Aanmelden');
				}
			}
		}
	}
}

function toggleRekening() {
	obj = document.getElementById("frm_rekening_andere_naam_Y");
	if (obj) {
		if (obj.checked) {
			toggleHTML( ['trfrm_rekening_houder', 'trfrm_rekening_plaats'], '');
		} else {
			toggleHTML( ['trfrm_rekening_houder', 'trfrm_rekening_plaats'], 'none');
		}
	}
}

function toggleVerhuizing() {
	obj = document.getElementById("frm_verhuizing_Y");
	if (obj) {
		if (obj.checked) {
			toggleHTML( ['trfrm_netbeheerder_info'], '');
		} else {
			toggleHTML( ['trfrm_netbeheerder_info'], 'none');
		}
	}
}

function toggleHTML(arr, mode) {
	for(i = 0; i < arr.length; i++) {
		obj	= document.getElementById(arr[i]);
		if (obj) {
			obj.style.display = mode;
		}
	}
}

function ajaxLoadURL(url, callback, helper) {
	var xmlhttp;
	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// code for IE6, IE5
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if (xmlhttp) {
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState == 4) {
				if (callback == "postcode") {
					callbackPostcode(xmlhttp.responseText, helper);
				}
			}
		}
		
		xmlhttp.open("GET",url,true);
		xmlhttp.send(null);
	}
}

function callbackPostcode(data, formName) {
	
	obj = document.getElementById(formName);
	
	if (obj) {
		split = data.split("|");
		if (split.length == 2) {
			
			obj.frm_plaats.value = split[0];
			// obj.frm_plaats.readOnly = (obj.frm_plaats.value.length != 0) ? true : false;
			// obj.frm_plaats.readOnly ? changeStyleReadOnly(obj.frm_plaats) : changeStyleDefault(obj.frm_plaats);
			
			obj.frm_straat.value = split[1];
			// obj.frm_straat.readOnly = (obj.frm_straat.value.length != 0) ? true : false;
			// obj.frm_straat.readOnly ? changeStyleReadOnly(obj.frm_straat) : changeStyleDefault(obj.frm_straat);
		}
	}
}

function checkMail() {
	return document.forms.Aanmelden.frm_email != document.forms.Aanmelden.frm_email_check;
}

function toggleMail() {
	if (!checkMail()) {
		alert("Het e-mail adres wat u heeft ingevoerd komt niet overeen met het vorige adres.")
	}
}

function verify() {
	
	// Get checkbox:
	checkBox = document.forms.Aanmelden.mandatory_checkboxExtra.value;
	
	if (checkBox == "") {
		alert("U heeft nog geen energie contract samengesteld.");
		return;
	}
	
	if (!checkMail()) {
		toggleMail();
		return;
	}
	
	// Checks
	obj = document.getElementById(checkBox);
	
	if (obj) {
		if (obj.checked) {
			// Check always needed:
			if (document.forms.Aanmelden.frm_akkoord_Afschrijving.checked) {
				if (document.forms.Aanmelden.frm_akkoord_Laagsteprijs.checked) {
					if (document.forms.Aanmelden.frm_akkoord_Voorwaarden.checked) {
						document.forms.Aanmelden.submit();
						return;
					}
				}
			}
		}
	}
	
	if (!obj.checked) {
		setCssClass(obj,'warning');
	} else {
		setCssClass(obj,'');
	}
	
	if (!document.forms.Aanmelden.frm_akkoord_Afschrijving.checked) {
		setCssClass(document.forms.Aanmelden.frm_akkoord_Afschrijving,'warning');
	} else {
		setCssClass(document.forms.Aanmelden.frm_akkoord_Afschrijving,'');
	}
	
	if (!document.forms.Aanmelden.frm_akkoord_Laagsteprijs.checked) {
		setCssClass(document.forms.Aanmelden.frm_akkoord_Laagsteprijs,'warning');
	} else {
		setCssClass(document.forms.Aanmelden.frm_akkoord_Laagsteprijs,'');
	}
	
	if (!document.forms.Aanmelden.frm_akkoord_Voorwaarden.checked) {
		setCssClass(document.forms.Aanmelden.frm_akkoord_Voorwaarden,'warning');
	} else {
		setCssClass(document.forms.Aanmelden.frm_akkoord_Voorwaarden,'');
	}
	
	alert("U heeft nog niet alle vereiste voorwaarden geaccepteerd.");
}

function setCssClass(obj, cls) {
	obj.className = cls;
}
