function visit(field)
{
	field.style.backgroundColor='#ddd';
}

function leave(field)
{
	field.style.backgroundColor='#fff';
}

function checkForm(f)
{
	var i, j, re, err = "", msg = "", errbg = "#838383";
	
	if ( f.name == "nieuwsbrief" )
	{
		if ( !f.voornaam.value.length ) 
		{
			err += "- Geen voornaam ingevuld.\n";
			f.voornaam.style.backgroundColor = errbg;
		}

		if ( !f.email.value.length )
		{
			err += "- Geen e-mailadres ingevuld.\n";
			f.email.style.backgroundColor = errbg;
		}
		else
		{
			re = /^[a-z0-9][a-z0-9_.+-]*@[a-z0-9_.-]{2,}\.[a-z]{2,4}$/i;
			if ( !f.email.value.match(re) ) 
				err += "- Ongeldig e-mailadres ingevuld.\n";
		}

		if ( !f.optin[0].checked && !f.optin[1].checked )
		{
			err += "- Geen keuze gemaakt bij 'Specials'.\n";
			f.optin[0].style.backgroundColor = errbg;
		}
	}
	else if ( f.name == "contact" )
	{
		if ( !f.naam.value.length ) 
		{
			err += "- Geen naam ingevuld.\n";
			f.naam.style.backgroundColor = errbg;
		}

		if ( !f.email.value.length )
		{
			err += "- Geen e-mailadres ingevuld.\n";
			f.email.style.backgroundColor = errbg;
		}
		else
		{
			re = /^[a-z0-9][a-z0-9_.+-]*@[a-z0-9_.-]{2,}\.[a-z]{2,4}$/i;
			if ( !f.email.value.match(re) ) 
			{
				err += "- Ongeldig e-mailadres ingevuld.\n";
				f.email.style.backgroundColor = errbg;
			}
		}

		if ( f.bericht.value.length < 10 ) 
		{
			err += "- Geen of te koorte bericht ingevuld.\n";
			f.bericht.style.backgroundColor = errbg;
		}

		if ( !f.antispam.value.length ) 
		{
			err += "- Geen antispam maatregel ingevuld.\n";
			f.antispam.style.backgroundColor = errbg;
		}
	}
	else if ( f.name == "abonnement" )
	{
		j = -1;
		for ( i = 0; i < f.abotype.length; i++ )
			if ( f.abotype[i].checked )
			{
				j = i;
				break;
			}
		
		if ( j < 0 )
			err += "- Geen abonnementsvorm gekozen.\n";
		
		if ( !f.voornaam.value.length )
		{
			err += "- Geen voornaam ingevuld.\n";
			f.voornaam.style.backgroundColor = errbg;
		}

		if ( !f.achternaam.value.length )
		{
			err += "- Geen achternaam ingevuld.\n";
			f.achternaam.style.backgroundColor = errbg;
		}

		if ( !f.betaalwijze.selectedIndex ) 
		{
			err += "- Geen betaalwijze gekozen.\n";
			f.betaalwijze.style.backgroundColor = errbg;
		}

		if ( !f.rekeningnr.value.length ) 
		{
			err += "- Geen rekeningnummer ingevuld.\n";
			f.rekeningnr.style.backgroundColor = errbg;
		}

		if ( !f.straat.value.length ) 
		{
			err += "- Geen straatnaam ingevuld.\n";
			f.straat.style.backgroundColor = errbg;
		}

		if ( !f.huisnr.value.length ) 
		{
			err += "- Geen huisnummer ingevuld.\n";
			f.huisnr.style.backgroundColor = errbg;
		}

		if ( !f.postcode.value.length ) 
		{
			err += "- Geen postcode ingevuld.\n";
			f.postcode.style.backgroundColor = errbg;
		}

		if ( !f.plaats.value.length ) 
		{
			err += "- Geen woonplaats ingevuld.\n";
			f.plaats.style.backgroundColor = errbg;
		}

		if ( !f.land.value.length ) 
		{
			err += "- Geen land ingevuld.\n";
			f.land.style.backgroundColor = errbg;
		}

		if ( f.telefoon.value.length < 8 ) 
		{
			err += "- Geen telefoonnummer ingevuld.\n";
			f.telefoon.style.backgroundColor = errbg;
		}
		else
		{
			re = /^^(((\+|00)3[12])|0)[1-9]\d{8,13}$/;
			if ( !f.telefoon.value.match(re) )
			{
				err += "- Ongeldig telefoonnummer ingevuld.\n";
				f.telefoon.style.backgroundColor = errbg;
			}
		}

		if ( !f.email.value.length )
		{
			err += "- Geen e-mailadres ingevuld.\n";
			f.email.style.backgroundColor = errbg;
		}
		else
		{
			re = /^[a-z0-9][a-z0-9_.+-]*@[a-z0-9_.-]{2,}\.[a-z]{2,4}$/i;
			if ( !f.email.value.match(re) ) 
			{
				err += "- Ongeldig e-mailadres ingevuld.\n";
				f.email.style.backgroundColor = errbg;
			}
		}

		if ( j >= 3 )
		{
			if ( (!f.voornaam2.value.length || 
				  !f.achternaam2.value.length ||
				  !f.straat2.value.length ||
				  !f.huisnr2.value.length ||
				  !f.postcode2.value.length ||
				  !f.plaats2.value.length || 
				  !f.email2.value.length) && 
				 (!f.voornaam.value.length ||
				  !f.achternaam.value.length ||
				  !f.betaalwijze.selectedIndex ||
				  !f.rekeningnr.value.length ||
				  !f.straat.value.length ||
				  !f.huisnr.value.length ||
				  !f.postcode.value.length ||
				  !f.plaats.value.length || 
				  !f.email.value.length) )
				err += "\n";

			if ( !f.voornaam2.value.length )
			{
				err += "- Geen voornaam (voor de factuur) ingevuld.\n";
				f.voornaam2.style.backgroundColor = errbg;
			}

			if ( !f.achternaam2.value.length )
			{
				err += "- Geen achternaam (voor de factuur) ingevuld.\n";
				f.achternaam2.style.backgroundColor = errbg;
			}

			if ( !f.straat2.value.length ) 
			{
				err += "- Geen straat (voor de factuur) ingevuld.\n";
				f.straat2.style.backgroundColor = errbg;
			}

			if ( !f.huisnr2.value.length ) 
			{
				err += "- Geen huisnummer (voor de factuur) ingevuld.\n";
				f.huisnr2.style.backgroundColor = errbg;
			}

			if ( !f.postcode2.value.length ) 
			{
				err += "- Geen postcode (voor de factuur) ingevuld.\n";
				f.postcode2.style.backgroundColor = errbg;
			}

			if ( !f.plaats2.value.length ) 
			{
				err += "- Geen woonplaats (voor de factuur) ingevuld.\n";
				f.plaats2.style.backgroundColor = errbg;
			}

			if ( !f.email2.value.length )
			{
				err += "- Geen e-mailadres (voor de factuur) ingevuld.\n";
				f.email2.style.backgroundColor = errbg;
			}
			else
			{
				re = /^[a-z0-9][a-z0-9_.+-]*@[a-z0-9_.-]{2,}\.[a-z]{2,4}$/i;
				if ( !f.email2.value.match(re) ) 
				{
					err += "- Ongeldig e-mailadres ingevuld.\n";
					f.email2.style.backgroundColor = errbg;
				}
			}
		}
	}
	else if ( f.name == "uitschrijven" )
	{
		if ( !f.email.value.length )
		{
			err += "- Geen e-mailadres ingevuld.\n";
			f.email.style.backgroundColor = errbg;
		}
		else
		{
			re = /^[a-z0-9][a-z0-9_.+-]*@[a-z0-9_.-]{2,}\.[a-z]{2,4}$/i;
			if ( !f.email.value.match(re) ) 
			{
				err += "- Ongeldig e-mailadres ingevuld.\n";
				f.email.style.backgroundColor = errbg;
			}
		}
	}
	else if ( f.name == "reactie" )
	{
		if ( !f.author.value.length )
		{
			err += "- Geen author ingevuld.\n";
			f.author.style.backgroundColor = errbg;
		}

		if ( !f.email.value.length )
		{
			err += "- Geen e-mailadres ingevuld.\n";
			f.email.style.backgroundColor = errbg;
		}
		else
		{
			re = /^[a-z0-9][a-z0-9_.+-]*@[a-z0-9_.-]{2,}\.[a-z]{2,4}$/i;
			if ( !f.email.value.match(re) ) 
			{
				err += "- Ongeldig e-mailadres ingevuld.\n";
				f.email.style.backgroundColor = errbg;
			}
		}

		if ( f.message.value.length < 10 )
		{
			err += "- Geen bericht ingevuld of bericht te kort.\n";
			f.message.style.backgroundColor = errbg;
		}

		if ( !f.antispam.value.length )
		{
			err += "- Geen antispam maatregel ingevuld.\n";
			f.antispam.style.backgroundColor = errbg;
		}
	}
	else if ( formobj.name == "mailenwin" )
	{
		err += checkEmpty(formobj.voornaam, "voornaam");
		err += checkEmpty(formobj.achternaam, "achternaam");
		err += checkEmpty(formobj.straat, "straatnaam");
		err += checkEmpty(formobj.nummer, "huisnummer");
		err += checkPostcode(formobj.postcode);
		err += checkEmpty(formobj.plaats, "woonplaats");
		err += checkEmpty(formobj.land, "land");
		err += checkEmpty(formobj.telefoon, "telefoonnummer");
		err += checkEmail(formobj.email);
		if ( formobj.keuze && !formobj.keuze.selectedIndex )
			err += "- Geen cadeaukeuze gemaakt.\n";
		else if ( formobj.keuze.selectedIndex == 3 )
			err += checkEmpty(formobj.oplossing, "oplossing");
	}
	else
		msg += "Interne fout: onbekend formulier.\n";

	if ( err.length )
	{
		window.alert("Niet alle gegevens waren correct:\n\n" + err);
		return false;
	}
	
	if ( msg.length )
		window.alert(msg);

	return true;
}
