Verstuur=function(f,Params,ReactieInPagina){
	if (Valideer(f)){
		Verstuur.Formulier=f;
		Verstuur.ReactieInPagina=ReactieInPagina;
		if (isArray(Params)){
			var Waarde;
			var Inhoud='<style>TD{font-family:Tahoma;font-size:8pt;border-bottom:1px solid buttonface}</style><table width="100%" cellspacing="0"><tr><td width="30%"></td><td></td></tr>';
			for (var Naam in f.Velden){
				Waarde=f.Velden[Naam];
				if (Waarde==undefined || Waarde=='') Waarde='-';
				else if (isEmail(Waarde)) Waarde='<a href="mailto:'+Waarde+'">'+Waarde+'</a>';
				if (Naam.substr(0,8)!='Herhaal ') Inhoud+='<tr><td valign="top"><b>'+Naam+'</b></td><td valign="top">'+(isArray(Waarde)?Waarde.join('<br>'):Vervang(Waarde,'\n','<br>'))+'</td></tr>';
			}
			Inhoud+='</table>';
			for (var Bijlage in f.Bijlagen) Inhoud=Vervang(Inhoud,Bijlage,'<a href="cid:'+Bijlage+'">'+Bijlage+'</a>');
			f.van.push('formulier@'+Vervang(Lokatie.VirtueelDomein,'www.',''));
			if (Params[0]) f.aan.push(Params[0]);
			if (Params[1]) f.cc.push(Params[1]);
			if (Params[2]) f.bcc.push(Params[2]);
			var MailTekst=d.E(f.id+'_MailTekst').innerHTML;
			new Mail(f.van.join(','),f.aan.join(','),f.cc.join(','),f.bcc.join(','),'Formulier: '+(Lokatie.Args.Titel?Lokatie.Args.Titel:document.title),(MailTekst==''?'':MailTekst+'<hr/>')+Inhoud,true,_,_,Keys(f.Bijlagen)).Verstuur(Verstuur.ReactieFunctie);
		}
		else new HTTPVerzoek(Params,f.Velden,Verstuur.ReactieFunctie).Start();
	}
	else{
		alert(f.FoutVeld.Info);
		f.FoutVeld.Invoer.focus();
	}
	return false;
}

Verstuur.ReactieFunctie=function(){
	if (this.Respons) alert(CG.frontendTekst(0,OpmaakRotOp(this.Respons)));
	else{
		if (w.pageTracker) pageTracker._trackPageview('/?pagina='+Lokatie.Args.pagina+'&verzonden=1');
		var Reactie=d.E(Verstuur.Formulier.id+'_Reactie');
		if (Reactie){
			if (Verstuur.ReactieInPagina) Verstuur.Formulier.innerHTML='<div class="Reactie">'+Reactie.innerHTML+'</div>';
			else{
				alert(Reactie.innerText);
				if (!Verstuur.behoudFormulier) Verstuur.Formulier.style.display='none';
			}
		}
	}
}

Valideer=function(f){
	var Veld;
	var OnthoudVelden={};
	f.Velden={};
	f.Bijlagen={};
	f.van=[];
	f.aan=[];
	f.cc=[];
	f.bcc=[];
	f.FoutVeld=undefined;
	for (var d=0;d<f.childNodes.length-1;d++){
		Veld=f.childNodes[d];
		var tmp=Veld.className.split(' ');
		Veld.Type=tmp[2];
		Veld.isVerplicht=Veld.className.indexOf('Verplicht')>-1;
		Veld.Onthouden=Veld.className.indexOf('Onthouden')>-1;
		try{//negeer overige kindjes
			Veld.Naam=Veld.childNodes[0].childNodes[0].innerText;
			Veld.Info=Veld.Waarde=undefined;
			switch (Veld.Type){
				case 'Tekstregel':
				case 'Tekstvlak':
				case 'Wachtwoord':
					Veld.Invoer=Veld.childNodes[1];
					Veld.Waarde=Veld.Invoer.value;
					if (Veld.Invoer.getAttribute('mailoptie')) Veld.Mail=[Veld.Waarde];
				break;
				case 'Dropdown':
					Veld.Invoer=Veld.childNodes[1];
					if (Veld.Invoer.selectedIndex>0){
						var v=Veld.Invoer[Veld.Invoer.selectedIndex];
						if (v.value) Veld.Waarde=v.value;//getAttribute('value')?
						else Veld.Waarde=v.innerText;
						if (Veld.Invoer.getAttribute('mailoptie')) Veld.Mail=[Veld.Waarde];
					}
				break;
				case 'Radiogroep':
					var Opties=Veld.childNodes[1].childNodes;
					Veld.Invoer=Opties[0].childNodes[0];
					for (var o=0;o<Opties.length;o++){
						Optie=Opties[o];
						if (Optie.childNodes[0].checked){
							var Label=Optie.childNodes[2];
							var Alternatief=Label.firstChild.childNodes[1];
							//indien het veld een value heeft, value meegeven (ts), dat mag echter niet 'on' zijn
							var v=Optie.childNodes[0].getAttribute('value');
							if (v&&v!='on') Veld.Waarde=v;
							else Veld.Waarde=Label.innerText+(Alternatief?' '+Alternatief.value:'');
							if (Veld.Invoer.getAttribute('mailoptie')) Veld.Mail=[Veld.Waarde];
							if (Alternatief && Alternatief.value.trim().isLeeg()){
								f.FoutVeld={'Invoer':Alternatief,'Info':CG.frontendTekst(1,Label.innerText)};
								return false;
							}
							break;
						}
					}
				break;
				case 'Checkbox':
				break;
				//case 'Listbox': //(met multi-select)
				case 'Checkgroep':
					var Opties=Veld.childNodes[1].childNodes;
					Veld.Invoer=Opties[0].childNodes[0];
					Veld.Waarde=[];
					Veld.Mail=[];
					for (var o=0;o<Opties.length;o++){
						Optie=Opties[o];
						var Label=Optie.childNodes[2];
						if (Label.firstChild){
							var Alternatief=Label.firstChild.childNodes[1];
						}
						if (Optie.childNodes[0].checked){
							Veld.Waarde.push(Label.innerText+(Alternatief?' '+Alternatief.value:''));
							if (Veld.childNodes[1].getAttribute('mailoptie')) Veld.Mail.push(Optie.childNodes[0].getAttribute('value'));
							if (Alternatief && Alternatief.value.trim().isLeeg()){
								f.FoutVeld={'Invoer':Alternatief,'Info':CG.frontendTekst(1,Label.innerText)};
								return false;
							}
						}
					}
					if (Veld.Waarde.length==0) Veld.Waarde=undefined;
				break;
				case 'Document':
					Veld.Invoer=Veld.childNodes[1];
					Veld.Waarde=Keys(Veld.Invoer.Bestanden);
					for (var Bijlage in Veld.Invoer.Bestanden) f.Bijlagen[Bijlage]=true;
				break;
				case 'Datum':
					Veld.Invoer=Veld.childNodes[1].firstChild;
					var Dag=parseInt(Veld.Invoer.value,10);
					var Maand=parseInt(Veld.Invoer.nextSibling.nextSibling.value,10);
					var Jaar=parseInt(Veld.Invoer.nextSibling.nextSibling.nextSibling.nextSibling.value,10);
					if (Veld.isVerplicht || (!isNaN(Dag)||!isNaN(Maand)||!isNaN(Jaar)))
					if (isNaN(Dag)) Veld.Info=Valideer.datumMelding(0);
					else{
						if (isNaN(Maand)){
							Veld.Info=Valideer.datumMelding(1);
							Veld.Invoer=Veld.Invoer.nextSibling.nextSibling;
						}
						else{
							if (isNaN(Jaar)||Jaar<1000){
								Veld.Info=Valideer.datumMelding(2);
								Veld.Invoer=Veld.Invoer.nextSibling.nextSibling.nextSibling.nextSibling;
							}
							else{
								var FouteDatum=false;
								switch (Maand){
									case 2:
										if (((Jaar%4==0)&&(Jaar%100!=0))||(Jaar%400==0)) FouteDatum=(Dag>29);
										else FouteDatum=Dag>28;
									break;
									case 4:
									case 6:
									case 9:
									case 11:
										FouteDatum=Dag>30;
								}
								if (FouteDatum) Veld.Info=CG.frontendTekst(6);
							}
						}
					}
					Veld.Waarde=Dag+'-'+Maand+'-'+Jaar;
				break;
				default:
					Veld=undefined;
				break;
			}
			if (Veld){
				if ((Veld.Waarde==undefined || Trim(Veld.Waarde)=='') && Veld.isVerplicht) Veld.Info='\''+Veld.Naam+'\' '+CG.frontendTekst(7)+' '+CG.frontendTekst(8);
				else{
					if (Veld.Type=='Wachtwoord' && Veld.Naam.indexOf(CG.frontendTekst(9)+' ')==0){
						VorigVeld=f.childNodes[d-1];
						if (Veld.Waarde!=VorigVeld.Waarde) Veld.Info='\''+VorigVeld.Naam+'\' '+CG.frontendTekst(10);
					}
					else{
						var n=Veld.Naam.toLowerCase();
						if (n.bevat('mail') && !isEmail(Veld.Waarde) && Trim(Veld.Waarde)!='') Veld.Info='\''+Veld.Naam+'\' '+CG.frontendTekst(11)+' '+CG.frontendTekst(12);
						else if (Valideer.telefoonnummers!=false&&(n.bevat('foon')||n.bevat('fax')) && !isTelefoon(Veld.Waarde) && Trim(Veld.Waarde)!='') Veld.Info='\''+Veld.Naam+'\' '+CG.frontendTekst(11)+' '+CG.frontendTekst(13);
						else {
							var mo=Veld.childNodes[1].getAttribute('mailoptie');
							if (mo) f[mo]=f[mo].concat(Veld.Mail);
						}
					}
				}
				if (Veld.Info){
					f.FoutVeld=Veld;
					return false;
				}
				f.Velden[Veld.Naam]=Veld.Waarde;
				if (Veld.Onthouden) OnthoudVelden[Veld.Invoer.id]=Veld.Waarde;
			}
		}
		catch (e){}
	}
	w.Client.Schrijf(f.id,ObjectNaarString(OnthoudVelden));
	return true;
}
Valideer.datumMelding=function(n){return CG.frontendTekst(2,CG.frontendTekst(n+3))};

VulFormulier=function(f,Velden){
 if (Velden){
  Velden=Velden.naarObject();
  for (var VeldID in Velden){
		var v=d.E(VeldID);
		if (v) v.value=Velden[VeldID];
	}
 }
}

isTelefoon=function(s){
	s=s.vervang('-').vervang(' ');
	return isNum(parseInt(s))&&s.length==10;
}

checkDatum=function(e){
	if (event.keyCode!=16 && event.keyCode!=9){
		var t=parseInt(e.value,10);
		if (isNaN(t)) e.value='';
		if (e.className!='Jaar'){
			if (!isNaN(t)){
				if (t<0) e.value='';
				if (e.className=='Dag'){
					if (t>31) e.value=31;
				}
				else{
					if (t>12) e.value=12;
					switch (parseInt(t,10)){
						case 2: // jaar lossen we later op
							break;
						case 4:
						case 6:
						case 9:
						case 11:
							if (e.previousSibling.previousSibling.value>30) e.previousSibling.previousSibling.value=30;
					}
				}
			}
			if (e.value.length>1){
				if (e.value=='00') e.value='';
				else e.nextSibling.nextSibling.focus();
			}
		}
	}
}

SelecteerAlternatief=function(e){e.parentNode.parentNode.parentNode.firstChild.checked=true}
FocusAlternatiefVeld=function(e){if (e.checked) e.nextSibling.nextSibling.firstChild.childNodes[1].focus()}