function validate_form_koopsubsidie_index_berekening(frm)
{
	// contactgegevens ingevuld?
	if (!isGeldigGeslacht(frm.geslacht.value))
	{
		alert('Wilt u uw geslacht opgeven, zodat wij u correct kunnen aanspreken?');
		frm.geslacht.focus();
		return false;
	}
	if (!isGeldigeVoornaam(frm.voornaam.value))
	{
		alert('Vul uw voornaam in, zodat wij u correct kunnen aanspreken. Schrijf uw voornaam voluit.');
		frm.voornaam.focus();
		return false;
	}
	if (!isGeldigeAchternaam(frm.achternaam.value))
	{
		alert('Vul uw achternaam in, zodat wij u correct kunnen aanspreken. Schrijf uw achternaam voluit.');
		frm.achternaam.focus();
		return false;
	}
	if (!isGeldigEmailadres(frm.emailadres.value))
	{
		alert('Vul een geldig emailadres in waarop u email kunt ontvangen en verzenden, omdat wij u een automatische email toesturen. Controleer ook de spelling van het emailadres, misschien hebt u een typefout gemaakt.');
		frm.emailadres.focus();
		return false;
	}
	if (!isGeldigTelefoonnummer(frm.telefoonnummer.value))
	{
		alert('Vul het (mobiele) telefoonnummer in waarop wij u het beste kunnen bereiken, indien uw gegevens incompleet of incorrect zijn ontvangen en u daardoor mogelijk benadeeld bent. Gebruik uitsluitend cijfers.');
		frm.telefoonnummer.focus();
		return false;
	}
	if (!isGeldigePostcode4(frm.postcode_1234.value))
	{
		alert('Vul een geldige postcode in omdat sommige informatie die wij u toesturen afhankelijk is van waar u woont. Gebruik uitsluitend cijfers en hoofdletters, waarbij de cijfers en letters in aparte velden worden ingevuld.');
		frm.postcode_1234.focus();
		return false;
	}
	if (!isGeldigePostcode2(frm.postcode_ab.value))
	{
		alert('Vul een geldige postcode in omdat sommige informatie die wij u toesturen afhankelijk is van waar u woont. Gebruik uitsluitend cijfers en hoofdletters, waarbij de cijfers en letters in aparte velden worden ingevuld.');
		frm.postcode_ab.focus();
		return false;
	}
	if (!isGetal(frm.huisnummer.value)
		|| (intval(frm.huisnummer.value) <= 0))
	{
		alert('Vul een geldig huisnummer in omdat sommige informatie die wij u toesturen afhankelijk is van waar u woont. Gebruik uitsluitend cijfers, en noteer eventuele toevoegingen in het veld ernaast.');
		frm.huisnummer.focus();
		return false;
	}
	
	// financiele gegevens ingevuld?
	if (!isGetal(frm.inkomen.value)
	    || (intval(frm.inkomen.value) < 1))
	{
		alert('Vul uw bruto inkomen in. Rond af op hele euro\'s en gebruik alleen cijfers, dus geen punten of komma\'s.');
		frm.inkomen.focus();
		return false;
	}
	if (!isGetal(frm.medebewoner_inkomen.value)
		|| (intval(frm.medebewoner_inkomen.value) < 0))
	{
		alert('Vul het bruto inkomen van uw partner in (of 0 als dit niet van toepassing is). Rond af op hele euro\'s en gebruik alleen cijfers, dus geen punten of komma\'s.');
		frm.medebewoner_inkomen.focus();
		return false;
	}
	
	// woninggegevens ingevuld?
	if (!isGetal(frm.koopsom.value)
		|| (intval(frm.koopsom.value) < 10000))
	{
		alert('Vul de koopsom van de gewenste woning in. Rond af op hele euro\'s en gebruik alleen cijfers, dus geen punten of komma\'s.');
		frm.koopsom.focus();
		return false;
	}
	if (!isGetal(frm.meerwerk.value)
		|| (intval(frm.meerwerk.value) < 0))
	{
		alert('Vul eventueel meerwerk voor de gewenste woning in (of 0 als u geen meerwerk te verrichten hebt). Rond af op hele euro\'s en gebruik alleen cijfers, dus geen punten of komma\'s.');
		frm.meerwerk.focus();
		return false;
	}
	
	// inkomen, medebewoner_inkomen
	var inkomen = parseInt(frm.inkomen.value);
	if (frm.inkomen_periode.value == 'maand')
		inkomen = inkomen * 12.96;
	var medebewoner_inkomen = parseInt(frm.medebewoner_inkomen.value);
	if (frm.medebewoner_inkomen_periode.value == 'maand')
		medebewoner_inkomen = medebewoner_inkomen * 12.96;
	if (!controleerInkomen(inkomen, medebewoner_inkomen))
		return false;

	// bkr_codering
	if (!controleerBkrCodering(parseInt(frm.bkr_codering.value)))
		return false;
	
	return true;
}
