function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function back_date(date_value){
		var separator = '';
		//if ( date_value.match(/\//) ){separator = '/';} 	
		if ( date_value.match(/-/)  ){separator = '-';}

		if ( (separator == '/') || (separator == '-') ){
		var date_array = date_value.split(separator);
		var day = date_array[0];
		var mth = date_array[1];
		var year= date_array[2];
		}
		else if ( date_value.match(/(\d{6})|(\d{8})/) ) {
		var day = date_value.substring(0, 2);
		var mth = date_value.substring(2, 4);
		var year= date_value.substring(4, 8);
		}

		else {
		return 'error';
		//alert("Invoerhulp: Een datum bestaat uit twee cijfers voor de dag en maand \n en 4 voor het jaar, gescheiden door een \"/\" (forward slash).");
		return false;
		}

		var bck_date = new Date(year, mth-1, day);
		return bck_date;
}

function MM_validateForm() 
{ //v4.0
	var i,p,p2,q,nm,test,num,min,max,re,passConfirm,userName,formName,errors='',args=MM_validateForm.arguments;
 
	for (i=0; i<(args.length-2); i+=3)
	{
		test=args[i+2]; val=MM_findObj(args[i]);
		if (val)
		{
			nm=val.name.replace("_"," ");			
			if ((val=val.value)!="")
			{
				/* substr -1 is dus min de R */
				if (test.indexOf('isEmail')!=-1)
				{
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors+='- '+nm+' moet een geldig e-mail adres zijn.\n';
				}
				else if (test.indexOf('isDate')!=-1)
				{
					if (isNaN(back_date(val)))
					{
						errors += '- '+nm.replace("_"," ")+' bestaat uit twee cijfers voor de dag en maand \n en 4 voor het jaar, gescheiden door een \"-\" (liggend streepje).\n';
					}
				}
				/* Voorbeeld: 'RisPassConfirm6|password_bevestiging-login' --> Verplicht, is een password, en moet minimaal 5 karaketrs bevatten */
				else if (test.indexOf('isPassConfirm')!=-1)
				{
					/* Kijken waar het '|'-teken staat: */
					p=test.indexOf('|');
					/* van teken 8 t/m P */
					min=test.substring(14,p);
					/* Username + formulier naam ophalen */
					p2=test.indexOf('-');
					/* van teken P t/m ... */
					//userName=test.substring(p+1,p2);
					formName=test.substring(p2+1);
					passConfirm = eval("document." + formName + "." + test.substring(p+1,p2) + ".value");

					if (val.length<min) errors+='- '+nm+' moet minimaal '+min+' tekens lang zijn.\n';
					if (val != passConfirm) errors+='- De passwords zijn niet hetzelfde.\n';
					/*
					re = /[0-9]/;
					if (!re.test(val))errors+='- '+nm+' moet minmaal 1 cijfer bevatten.\n';
					re = /[a-z]/;
					if (!re.test(val))errors+='- '+nm+' moet minmaal 1 onderkast letter bevatten.\n';
					re = /[A-Z]/;
					if (!re.test(val))errors+='- '+nm+' moet minmaal 1 hoofdletter bevatten.\n';
					*/
				}
				/* Voorbeeld: 'RisPass5|username-form' --> Verplicht, is een password, en moet minimaal 5 karaketrs bevatten */
				else if (test.indexOf('isPass')!=-1)
				{
					/* Kijken waar het '|'-teken staat: */
					p=test.indexOf('|');
					/* van teken 8 t/m P */
					min=test.substring(7,p);
					/* Username + formulier naam ophalen */
					p2=test.indexOf('-');
					/* van teken P t/m ... */
					//userName=test.substring(p+1,p2);
					formName=test.substring(p2+1);
					userName = eval("document." + formName + "." + test.substring(p+1,p2) + ".value");

					if (val.length<min) errors+='- '+nm+' moet minimaal '+min+' tekens lang zijn.\n';
					if (val == userName) errors+='- '+nm+' mag niet gelijk zijn aan de username.\n';
					re = /[0-9]/;
					if (!re.test(val))errors+='- '+nm+' moet minmaal 1 cijfer bevatten.\n';
					re = /[a-z]/;
					if (!re.test(val))errors+='- '+nm+' moet minmaal 1 onderkast letter bevatten.\n';
					re = /[A-Z]/;
					if (!re.test(val))errors+='- '+nm+' moet minmaal 1 hoofdletter bevatten.\n';
				}
				else if (test.indexOf('isUsername')!=-1)
				{
					min=test.substring(11);
					if (val.length<min) errors+='- '+nm+' moet minimaal '+min+' karakters bevatten.\n';
					/*
					re = /[0-9]/;
					if(!re.test(val))errors+='- '+nm+' moet minmaal 1 cijfer bevatten.\n';
					*/
					re = /[a-z]/;
					if(!re.test(val))errors+='- '+nm+' moet minmaal 1 onderkast letter bevatten.\n';
					re = /[A-Z]/;
					if(!re.test(val))errors+='- '+nm+' moet minmaal 1 hoofdletter bevatten.\n';
				}
				else if (test.indexOf('isVoorwaarden')!=-1)
				{
					if (document.forms[0].voorwaarden.checked == false)
					{
						errors+='\nAls je het niet eens bent met onze regels en voorwaarden, kun je helaas niet meedoen met de Quiz.\n';
					}
				}
				else if (test!='R')
				{
					num = parseFloat(val);
					if (isNaN(val)) errors+='- '+nm+' moet een nummer zijn zonder scheidingstekens.\n';
					/* 'RinRange10000:100000' */
					if (test.indexOf('inRange') != -1)
					{
						/* Kijken waar het ':'-teken staat: */
						p=test.indexOf(':');
						/* van teken 8 t/m P */
						min=test.substring(8,p);
						//* van teken P t/m ... */
						max=test.substring(p+1);
						if (num<min || max<num) errors+='- '+nm+' moet een nummer zijn tussen '+min+' en '+max+'.\n';
					}
				}
			}
			else if (test.charAt(0) == 'R')
			{
				errors += '- '+nm.replace("_"," ")+'\n';// ben je vergeten.
			}
		}
	}
	/* Fouten weergeven */
	if (errors)
	{
		alert('Je hebt de volgende velden niet volledig ingevuld:\n'+errors);
	}
	document.MM_returnValue = (errors == '');
}
