window.addEvent('domready', function() {
	
		var errorMsg = new Array();
		errorMsg[0] = "U heeft het bovenstaande veld niet ingevuld / aangekruist.";
		errorMsg[1] = "U heeft geen geldig e-mailadres ingevuld.";
		errorMsg[2] = "U mag alleen cijfers gebruiken.";
		
		var foutMelding = "U heeft een of meerdere bovenstaande velden onjuist ingevuld.\nDeze zijn met rode omlijning aangegeven.";
		
		var foutArray = new Array();
		
		var filter = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; // E-mail adres reg.expression
		var nFilter = /^\d+$/;
		
		$('validateCheck').addEvent('click', function(event) {
			var foutGevonden = false;
			$each($$('#validateMe'), 
				function(formObject)	{
					var i=0;
					$each($$('#validateMe input', '#validateMe textarea'), 
					function(el)	{
						/* Check op leeg veld */
						//alert(el.get("class"));
						if(el.get("class") == "req" || el.get("class") == "req text small" || el.get("class") == "req text medium" || el.get("class") == "req text large" || el.get("class") == "req text large tall") {
							if(el.value == "" && !foutArray[i] || el.checked == false && el.get("type") == "checkbox" && !foutArray[i])	{
								doBlink(el);
								foutGevonden = true;
								foutArray[i] = true;
							} else {
								if(el.value != "" && el.get("type") != "checkbox" || el.checked != false && el.get("type") == "checkbox")	{
									removeEl(el);
								} else { foutGevonden = true; reBlink(el); }
							}
						}
						
						/* Check op e-mail adres */
						if(el.get("class") == "reqeml" || el.get("class") == "reqeml text medium" || el.get("class") == "reqeml m" || el.get("class") == "reqeml l")	{
							if (!filter.test(el.value) && !foutArray[i])	{
								doBlink(el);
								
								foutGevonden = true;
								foutArray[i] = true;
							} else {
								if(filter.test(el.value))
								{
									removeEl(el);
								} else { foutGevonden = true; reBlink(el); }
							}
						}
						
						/* Check op nummer */
						if(el.get("class") == "reqnum" || el.get("class") == "reqnum s" || el.get("class") == "reqnum m" || el.get("class") == "reqnum l")	{
							if (!nFilter.test(el.value) && !foutArray[i])	{
								doBlink(el);
								
								foutGevonden = true;
								foutArray[i] = true;
							} else {
								if(nFilter.test(el.value))
								{
									removeEl(el);
								} else { foutGevonden = true; reBlink(el); }
							}
						}
						
						i++;
				});
			});
			
			if(foutGevonden == false)	{
			   $('validateMe').submit();
			}
		});		
		
		function doBlink(element)
		{
				var myFx = new Fx.Tween(element, {
				duration: 400,
				onComplete: function(e) {
					var myFx = new Fx.Tween(e, {
						duration: 400,
						onComplete: function(a) {
							var myFx = new Fx.Tween(a, {duration: 400}).start('border-color', '#d36666');
						}
					}).start('border-color', '#c3c3c3');
				}}).start('border-color', '#d36666');
		}
		
		function reBlink(element)
		{
			var myFx = new Fx.Tween(element, {
			duration: 400,
			onComplete: function(e) {
				doBlink(e);
			}}).start('border-color', '#c3c3c3');
		}
		
		function removeEl(element)
		{
			var myFx = new Fx.Tween(element, {duration: 400}).start('border-color', '#c3c3c3');
		}
		
});