<!-- Hide the script from old browsers --
// Deze functie bevat de variabelen en de functies die nodig zijn om formuliervelden te testen.
// De functie verifie bevat de code die de velden bekijkt, 
// en returnt alleen true als het veld goed is gekeurd.
// Het voldoet dus om een array van Check-objecten te doorlopen, en voor elk object
// de verifie-method aan te roepen.
function Check(veld, beschrijving, type, n)
{
	this.veld = veld;
	this.beschrijving = beschrijving;
	this.type = type;
	this.n = n;
	
	function verify(f)
	{	
		switch (this.type) {
			case 'CROSSDATA':
				var found = false;
				var str = '';
				for (var i = 0; i < this.n; i++) {
					str = this.veld + '[' + i + ']';
					if (f.elements[str].checked) {
						found = true;
					}
				}
				if (found) {
					return '';
				} else {
					return ' - ' + this.beschrijving + "\n";
				}
				break;
			case 'NOTZERO':
				if (f.elements[this.veld].value == 0) {
					return ' - ' + this.beschrijving + "\n";
				} else {
					return '';
				}
				break;
			case 'RADIO':
				var found = false;
				for (var i = 0; i < this.n; i++) {
					if (f.elements[this.veld][i].checked) {
						found = true;
					}
				}
				if (found) {
					return '';
				} else {
					return ' - ' + this.beschrijving + "\n";
				}
				break;
			case 'TEXT':
				if (f.elements[this.veld].value.length == 0) {
					return ' - ' + this.beschrijving + "\n";
				} else {
					return '';
				}
				break;
			default:
				return 'ERROR: ' + this.veld + ' javascript controle ' + this.type + " niet mogelijk!\n";
		}
	}
	// De onderstaande regel is nodig om de functie aan het object te koppelen.
	this.verify = verify;
}

// Deze array bevat al de objecten.
var Checks = new Array();

// Deze variabele wordt true als er op de verwijder button wordt geklikt
var erase_button = false;

// Deze variabele wordt true als er op de preview button wordt geklikt
var preview_button = false;

// Hier checken we het gehele form.
function formCheck(f)
{
	var foutmeldingen = '';
	// Als we willen wissen, moet er geen controle uitgevoerd worden of de velden ingevuld zijn...
	if (erase_button) {
		return confirm('Erase this item?');
	} else if (!preview_button) {
		// Anders moeten we de controle uitvoeren of we ze mogen updaten/inserten.
		var c = Checks.length;
		for (var i = 0; i < c; i++) {
			foutmeldingen += Checks[i].verify(f);
		}
	}
	// Fouten gevonden?
	if (foutmeldingen != '') {
		alert("Please fill out the following required fields first:\n\n" + foutmeldingen);
		return false;
	}
	return true;
}

// -- End Hiding Here -->
