/*
#  formulieren.js
#
#  v1.0 - 15/jun/2009 - S van Oekel - Initial version
#
#  (C) Copyright 2009 Medusa, Media Usage Advice B.V.
#  All rights reserved.
*/

function checkForm(e) {
	var form = $('formulier_' + formulier_id);
	
	var validImageExtensions = ['jpg', 'jpeg', 'gif', 'png'];
	
	var ignoreTypes = [
		'100',
		'200',
		'300',
		'1400'
	];
	
	for (var v=0; v<velden.length; v++) {
		var veld = velden[v];
		var el = form['invoerveld_' + veld.veld_id];
		
		switch(veld.veldtype) {
			case '420':
				if (!$F(el).match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/) && $F(el) != "") {
					$(el).focus();
					alert("In het veld \"" + veld['veldnaam'] + "\" dient u een geldig e-mailadres in te vullen.");
					Event.stop(e);
					return false;
				}
			break;
			
			case '600':
				if (el && $F(el) != "" && $F(el).match(/[^0-9,\.]/)) {
					$(el).focus();
					alert("U kunt alleen numerieke waardes invoeren in het veld \"" + veld['veldnaam'] + "\".");
					Event.stop(e);
					return false;
				}
			break;
			
			case '1200':
				var re = new RegExp("\\." + validImageExtensions.join("$|\\.") + "$", "i");
				if (!$F(el).match(re) && $F(el) != "") {
					alert("U kunt in het veld \"" + veld['veldnaam'] + "\" alleen afbeeldingen uploaden.");
					Event.stop(e);
					return false;
				}
			break;
		}
		
		if (
			veld['verplicht'] == "1" &&
			ignoreTypes.indexOf(veld['veldtype']) == -1
		) {	
			if (!checkEmpty(veld['veld_id'], veld['veldtype'])) {
				alert("Het veld \"" + veld['veldnaam'] + "\" is niet ingevuld.");
				Event.stop(e);
				return false;
			}
		}
	}
}

function checkEmpty(veld_id, veldtype) {
	var form = $('formulier_' + formulier_id);
	
	var allesGoed = false;
	
	switch(veldtype) {
		case '400':
		case '420':
		case '440':
		case '500':
		case '600':
		case '1100':
			allesGoed = waardeLeeg(form['invoerveld_' + veld_id], (veldtype == '600' ? true : false));
		break;
		
		case '700':
		case '800':
			var inputs = form.getElementsByTagName("input");
			
			var iterator = 0;
			var input = false;
			while (input = inputs[iterator]) {
				var re = new RegExp("^invoerveld_" + veld_id + "_\\d{1,}$");
				if (
					input.type == "checkbox" && 
					input.name.match(re) &&
					input.checked
				) allesGoed = true;
				iterator++;
			}
		break;
		
		case '900':
		case '1000':
			var inputs = $(form['invoerveld_' + veld_id]);
			
			var iterator = 0;
			var input = false;
			while (input = inputs[iterator]) {
				if (
					input.checked
				) allesGoed = true;
				iterator++;
			}
		break;
		
		case '1200':
		case '1300':
			allesGoed = waardeLeeg(form['invoerveld_' + veld_id], false);
		break;
	}
	
	return allesGoed;
}

function waardeLeeg(el, is_numeric) {
	if (el) {
		if ((
			!is_numeric && 
			$F(el).match(/[a-zA-Z0-9]/)
		) || (
			is_numeric && 
			$F(el).match(/[0-9]/)
		)) {
			return true;
		} else {
			$(el).focus();
		}
	}
	return false;
}