var BGOK  = "#fff";
var BGFOC = "#eee";
var BGERR = "#ccc";
//var BGERR = "#fff0f0";

function checkEmpty(inputobj, inputname, minlength)
{
	var minlen = 1;
	if ( minlength && minlength > minlen )
		minlen = minlength;

	if ( inputobj.value.length < minlen )
	{
		inputobj.style.backgroundColor = BGERR;
		inputobj.onfocus = function() { this.style.backgroundColor = BGFOC; }
		if ( minlen == 1 )
			return "- Geen " + inputname + " ingevuld.\n";
		else
			return "- Het veld '" + inputname + "' is te kort (min. " + minlen + " tekens).\n";
	}

	inputobj.style.backgroundColor = BGOK;
	return "";
}

function checkEmail(inputobj)
{
	var inputname = "e-mailadres";
	var emp = checkEmpty(inputobj, inputname);

	if ( emp.length )
		return emp;

	var re = /^[a-z0-9][a-z0-9_.+-]*@[a-z0-9.-]{2,}\.[a-z]{2,4}$/i;
	if ( !inputobj.value.match(re) )
	{
		inputobj.style.backgroundColor = BGERR;
		inputobj.onfocus = function() { this.style.backgroundColor = BGFOC; }
		return "- Ongeldig " + inputname + ".\n";
	}

	return "";
}

function checkDateNL(inputobj, inputname)
{
	var emp = checkEmpty(inputobj, inputname);

	if ( emp.length )
		return emp;

	var re = /^([0-9]{2})-([0-9]{2})-([0-9]{4})$/i;
	if ( inputobj.value.match(re) )
	{
		var nu = new Date();
		var ditjaar = nu.getFullYear();
		var d = parseInt(RegExp.$1, 10);
		var m = parseInt(RegExp.$2, 10);
		var j = parseInt(RegExp.$3, 10);
		if (  d < 1 || d > 31 || m < 1 || m > 12 || j < ditjaar - 100 || j > ditjaar - 12 )
		{
			inputobj.style.backgroundColor = BGERR;
			inputobj.onfocus = function() { this.style.backgroundColor = BGFOC; }
			return "- Het veld '" + inputname + "' is geen geldige datum.\n";
		}
	}
	else
	{
		inputobj.style.backgroundColor = BGERR;
		inputobj.onfocus = function() { this.style.backgroundColor = BGFOC; }
		return "- Het veld '" + inputname + "' is niet van de vorm dd-mm-jjjj.\n";
	}

	return "";
}

function checkPostcode(inputobj)
{
	var inputname = "postcode";
	var emp = checkEmpty(inputobj, inputname);

	if ( emp.length )
		return emp;

	var re = /^([1-9][0-9]{3}) ?([A-Z]{2})?$/i;
	if ( inputobj.value.match(re) )
	{
		if ( RegExp.$2 )
			inputobj.value = RegExp.$1 + RegExp.$2.toUpperCase();
		else
			inputobj.value = RegExp.$1;
	}
	else
	{
		inputobj.style.backgroundColor = BGERR;
		inputobj.onfocus = function() { this.style.backgroundColor = BGFOC; }
		return "- De postcode is niet van de vorm '1234 AB'.\n";
	}

	return "";
}

function checkCheckbox(checkboxobj, checkboxname)
{
	var chk = checkboxobj.checked;

	if ( chk )
		checkboxobj.style.backgroundColor = BGOK;
	else
	{
		checkboxobj.style.backgroundColor = BGERR;
		return "- Niet aangevinkt: " + checkboxname + ".\n";
	}

	return "";
}

function checkOneChecked(radioobj, radioname, selectedindex)
{
	var i, chk = false;
	for ( i = 0; i < radioobj.length; ++i )
		if ( radioobj[i].checked )
		{
			chk = true;
			if ( selectedindex )
				selectedindex.value = i;
		}

	if ( chk )
	{
		for ( i = 0; i < radioobj.length; ++i )
			radioobj[i].style.backgroundColor = BGOK;
	}
	else
	{
		for ( i = 0; i < radioobj.length; ++i )
			radioobj[i].style.backgroundColor = BGERR;
		return "- Geen " + radioname + " gekozen.\n";
	}

	return "";
}

function checkSelected(selectobj, selectname)
{
	var sel = false;
	if ( selectobj.options[selectobj.selectedIndex].value > 0 )
		sel = true;

	if ( !sel )
	{
		selectobj.style.backgroundColor = BGERR;
		selectobj.onfocus = function() { this.style.backgroundColor = BGFOC; }
		return "- Geen " + selectname + " gekozen.\n";
	}

	selectobj.style.backgroundColor = BGOK;
	return "";
}

function checkForm(formobj)
{
	var err = "", msg = "";

	if ( formobj.name == "abonneren" ||
		formobj.name == "abonnerenslankie" ||
		formobj.name == "abonnerenslankie2" ||
		formobj.name == "abonnerenrumeur" ||
		formobj.name == "abonnerenweleda" )
	{
		var abo = new Object();
		abo.value = -1;
		err += checkOneChecked(formobj.abotype, "abonnementsvorm", abo);
		err += checkEmpty(formobj.voornaam, "voornaam");
		err += checkEmpty(formobj.achternaam, "achternaam");
		//err += checkEmpty(formobj.betaalwijze, "betaalwijze");
		//err += checkEmpty(formobj.rekeningnr, "rekeningnummer");
		err += checkEmpty(formobj.straat, "straatnaam");
		err += checkEmpty(formobj.huisnr, "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.name == "abonneren" && abo.value > 4) ||
			((formobj.name == "abonnerenslankie" || formobj.name == "abonnerenrumeur") && abo.value > 0) )
		{
			err += checkEmpty(formobj.voornaam2, "2e voornaam");
			err += checkEmpty(formobj.achternaam2, "2e achternaam");
			err += checkEmpty(formobj.straat2, "2e straatnaam");
			err += checkEmpty(formobj.huisnr2, "2e huisnummer");
			err += checkPostcode(formobj.postcode2, '2e postcode');
			err += checkEmpty(formobj.plaats2, "2e woonplaats");
			err += checkEmpty(formobj.land2, "2e land");
		}
	}
	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);
		err += checkEmpty(formobj.fb, "Anti Spam");
		if ( formobj.keuze && !formobj.keuze.selectedIndex )
			err += "- Geen cadeaukeuze gemaakt.\n";
		else if ( formobj.keuze.selectedIndex == 3 )
			err += checkEmpty(formobj.oplossing, "oplossing");
	}
	else if ( formobj.name == "loyalty" )
	{
		err += checkEmpty(formobj.code, "actiecode");
		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);
	}
	else if ( formobj.name == "nieuwsbrief" )
	{
		err += checkEmail(formobj.email);
	}
	else if ( formobj.name == "contact" )
	{
		err += checkEmpty(formobj.naam, "naam");
		err += checkEmail(formobj.email);
		err += checkEmpty(formobj.bericht, "bericht");
	}
	else if ( formobj.name == "login" )
	{
		err += checkEmpty(formobj.username, "gebruikersnaam");
		err += checkEmpty(formobj.password, "wachtwoord");
	}
	else if ( formobj.name == "reqlogin" )
	{
		err += checkEmail(formobj.email);
	}
	else if ( formobj.name == "newlogin" )
	{
		err += checkOneChecked(formobj.abonnee, "abonneestatus");
		err += checkEmail(formobj.email);
		err += checkEmpty(formobj.username, "gebruikersnaam", 3);
	}
	else if ( formobj.name == "forumonderwerp" )
	{
		err += checkEmpty(formobj.naam, "naam");
		err += checkEmail(formobj.email);
		err += checkEmpty(formobj.onderwerp, "onderwerp", 10);
		err += checkEmpty(formobj.bericht, "bericht", 10);
		err += checkEmpty(formobj.codemsg, "code");
	}
	else if ( formobj.name == "forumbericht" )
	{
		err += checkEmpty(formobj.naam, "naam");
		err += checkEmail(formobj.email);
		err += checkEmpty(formobj.bericht, "reactie", 10);
		err += checkEmpty(formobj.codemsg, "code");
	}
	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;
}

function pad(x)
{
	if ( x < 10 ) return "0" + x;
	return "" + x;
}

function writetime(txtobj, plusmonths, plusdays)
{
	var now = new Date();
	var d = new Date(
		now.getFullYear(),
		now.getMonth() + plusmonths,
		now.getDate() + plusdays,
		now.getHours(),
		now.getMinutes(),
		now.getSeconds());
	txtobj.value =
		d.getFullYear()
		+ "-" + pad(1 + d.getMonth())
		+ "-" + pad(d.getDate())
		+ " " + pad(d.getHours())
		+ ":" + pad(d.getMinutes())
		+ ":" + pad(d.getSeconds());
}

function nu(txtobj)
{
	writetime(txtobj, 0, 0);
}

function dag(txtobj)
{
	writetime(txtobj, 0, 1);
}

function week(txtobj)
{
	writetime(txtobj, 0, 7);
}

function maand(txtobj)
{
	writetime(txtobj, 1, 0);
}

function visit(field)
{
	field.style.backgroundColor = "#eee";
}

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

function showhide(id)
{
	var content	= document.getElementById('content');
		
	if ( id == 1 )
		content.style.visibility = "visible";	
	else
		content.style.visibility = "hidden";	
}
