var veldFormName	= "";
var on_actie		= "";
var kalender_lastdatefield	= "";
var kalender = new Array(100);
switch (taal)
	{
	case "NL":
		tErrorVerplicht = 'Veld is verplicht';
		tErrorDatum = 'Dit is geen geldige datum';
		break;
	case "EN":
		tErrorVerplicht = 'This field is mandatory';
		tErrorDatum = 'This is not a valid date';
		break;
	case "DE":
		tErrorVerplicht = 'Diese Angabe ist notwendig';
		tErrorDatum = 'Bitte prüfen Sie Ihre Datumseingabe';
		break;
	}

function veld(id_type, id_name, id_value, id_prompt, id_help, id_extra)
	{
	//global op_vakantie_context, ${$id_name}, tab, on_actie, errmsg;
	//global pc_type, veldFormName, kalender_lastdate;

	var veldStr	= "";
	var char	= id_prompt.indexOf("\n");
	if (char!=-1)
		{	// maak 2de en volgende regels kleiner
		id_prompt	= id_prompt.substr(0,char)+"<font size='1'>"+id_prompt.substr(char)+"</font>";
		};
	var veld_required	= "";
	if (id_extra.substr(0,1) == "1")
		{
		//$veld_required	= " STYLE='background-color:#FFFF00'";
		veld_required = " class=verplicht";
		id_extra	= id_extra.substr(1);
		}
	else if (id_extra.substr(0,1) == "0") id_extra	= id_extra.substr(1);	// strip first

	t	= id_type.split("¦");
	m	= t.length;
	/*
	switch (t[0])	// preprocesing
		{
		case "boottijden":
			$id_type	= "select¦0¿ochtendboot (aankomst Vlieland ongeveer 10:30)¦1¿middagboot (aankomst Vlieland ongeveer 16:00)¦2¿avondboot (aankomst Vlieland ongeveer 20:30)";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "branche":
			$id_type	= "select¦0¿anders¦1¿horeca";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "eiland":
			$id_type	= "select¦vlieland¿Vlieland¦terschelling¿Terschelling¦ameland¿Ameland¦schiermonnikoog¿Schiermonnikoog";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "eilanden":
			$id_type	= "select¦¿-alle-¦texel¿Texel¦vlieland¿Vlieland¦terschelling¿Terschelling¦ameland¿Ameland¦schiermonnikoog¿Schiermonnikoog¦lauwersmeer¿Lauwersmeer¦friesekust¿Friese kust¦groningerkust¿Groninger kust¦ijsselmeer¿IJsselmeer¦hollandse¿Hollandse kust¦zeeuwse¿Zeeuwse kust";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "kustlocaties":
			if ($op_vakantie_context=="indebergen")
				{	// dg¿locatie¦dg¿locatie -- let op alleen de 'onderste locaties' geen overkoepelende sites --
				$id_type	= "select¦¿-alle-¦alpedhuez¿inAlpedHuez.nl¦chamonix¿inChamonix.nl¦grandmassif¿inGrandMassif.nl¦montblanc¿inEvationMontBlanc.nl¦laplagne¿inlaPlagne.nl¦lesarc¿inlesArc.nl¦tignes¿inTignes.nl¦deuxalpes¿inlesDeuxAlpes.nl¦3vallees¿inlesTroisVallees.nl¦serrechevaliers¿inSerreChevaliers.nl¦portesdusoleil¿inPortesduSoleil.nl¦maurienne¿inPaysdeMaurienne.nl¦davos¿inDavos.nl¦stmoritz¿inStMoritz¦4vallees¿inles4Vallees.nl¦zillertal¿inhetZillertal.nl¦pitztal¿inhetPitztal.nl¦tirol¿inTirol.nl¦saalbach¿inSaalBachHinterglem.nl¦zellamsee¿inSellamSee.nl";
				}
			else $id_type	= "select¦¿-alle-¦texel¿Texel¦vlieland¿Vlieland¦terschelling¿Terschelling¦ameland¿Ameland¦schiermonnikoog¿Schiermonnikoog¦lauwersmeer¿Lauwersmeer¦friesekust¿Friese kust¦groningerkust¿Groninger kust¦ijsselmeer¿IJsselmeer¦hollandse¿Hollandse kust¦zeeuwse¿Zeeuwse kust¦drenthe¿Drenthe";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "event_soort":
			$id_type	= "select¦0¿anders¦1¿algemeen¦2¿cultureel¦3¿kerkelijk¦4¿sportief¦5¿voor kinderen¦6¿voor eilanders";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "landen_de":
			$id_type	= "select¦de¿Deutschland¦be¿België¦nl¿Niederlande";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "landen_en":
			$id_type	= "select¦nl¿the Netherlands¦be¿Belgium¦de¿Germany";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "landen_nl":
			$id_type	= "select¦nl¿Nederland¦be¿België¦de¿Duitsland";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "linnengoed":
			$id_type	= "select¦0¿inbegrepen bij de huur¦1¿verplicht huren bij verhuurder¦2¿zelf meenemen of ter plaatse huren¦3¿zelf meenemen of huur ter plaatse door de verhuurder laten regelen¦4¿zelf meenemen";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "logies":
			$id_type	= "select¦lo¿Logies+ontbijt¦hp¿Half pension¦vp¿Vol pension";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "huisdieren":
			$id_type	= "select¦0¿geen huisdieren¦1¿huisdieren in overleg¦2¿huisdieren toegestaan";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "schoonmaken":
			$id_type	= "select¦0¿inbegrepen bij de huur¦1¿eindschoonmaak verplicht¦2¿zelf schoonmaken of laten doen¦3¿zelf schoonmaken";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "acc_lokatie":
			if ($op_vakantie_context=="indebergen")
				{
				$id_type	= "select¦0¿-alle-¦1¿dorp¦2¿bos¦3¿piste¦4¿veld¦5¿park¦6¿dal";
				}
			else $id_type	= "select¦0¿-alle-¦1¿dorp¦2¿bos¦3¿duin¦4¿veld¦5¿park¦6¿haven";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "acc_type":
			$id_type	= "select¦0¿-alle-¦h¿vakantiehuis¦a¿appartement¦m¿chalet¦c¿caravan¦t¿tent(huis)¦v¿kampeerplaats¦s¿schip¦k¿hotel¦p¿pension¦g¿groepsaccom.¦l¿part. kamer¦e¿bed&breakfast";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "vrijstatus":
			$id_type	= "select¦vrij¿Vrij¦bezet¿Bezet¦optie¿Optie";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "verhuurdvia":
			$id_type	= "select¦anders¿Anders¦herhaal¿Herhaal¦via-via¿Via-via¦internet¿Internet¦internet-vvv¿Internet (door VVV)¦vvv¿VVV-gids¦krant¿Krant";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "eigendom":
			$id_type	= "select¦1¿particulier¦2¿commercieel";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "soort_vermelding":
			$id_type	= "select¦1¿tekstvermelding¦2¿linkvermelding¦3¿fotolinkvermelding";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "taal":
			$id_type	= "select¦0¿alleen NL¦1¿NL en Engels¦2¿NL en Duits¦3¿NL, Engels en Duits";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "vaca_soort":
			$id_type	= "select";
			for ($i=0;$i<count($vaca_soort);$i++) $id_type .= "¦".$i."¿".$vaca_soort[$i];
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "werken_sts":
			$id_type	= "select";
			for ($i=0;$i<count($werken_sts);$i++) $id_type .= "¦".$i."¿".$werken_sts[$i];
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "provincie":
			$id_type	= "select¦1¿Drenthe¦2¿Flevoland¦3¿Friesland¦4¿Gelderland¦5¿Groningen¦6¿Limburg¦7¿Noord Brabant¦8¿Noord Holland¦9¿Overijssel¦10¿Utrecht¦11¿Zeeland¦12¿Zuid Holland";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "nederland":
			$id_type	= "select¦Nederland¿Heel Nederland¦Drenthe¿Drenthe¦Flevoland¿Flevoland¦Friesland¿Friesland¦Gelderland¿Gelderland¦Groningen¿Groningen¦Limburg¿Limburg¦Noord Brabant¿Noord Brabant¦Noord Holland¿Noord Holland¦Overijssel¿Overijssel¦Utrecht¿Utrecht¦Waddeneilanden¿Waddeneilanden¦Zeeland¿Zeeland¦Zuid Holland¿Zuid Holland";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
		case "te_koop_gebruik":
			$id_type	= "select¦1¿recreatief gebruik¦2¿permanent gebruik¦3¿bedrijfsmatig gebruik";
			$t	= explode("¦",$id_type);
			$m	= count($t);
			break;
//		case "":
//			$id_type	= "";
//			$t	= explode("¦",$id_type);
//			$m	= count($t);
//			break;
		}
*/
	switch (t[0])
		{
		case "dmj":
		case "dmjdow":
		case "dmjkort":
		case "dmjkortdow":
			// 0=dmj, 1=lengte
			if ((t[1])==undefined) t[1] = 20;	// set default field length
			veldStr += "<tr id='row_"+id_name+"'>\n <td valign='top' align='right' nowrap>"
							+nl2br(id_prompt)+(t[0].indexOf("kort")==-1?"<br><font size='1'>formaat: dd-mm-jjjj</font>":"")
						+"</td>\n";
			veldStr += " <td valign='top' align='left' nowrap>"
							+"<INPUT id=\""+id_name+"\" TYPE='"+t[0]+"' NAME=\""+id_name+"\" size='"+t[1]+"' VALUE=\""+id_value+"\" tabindex='"+tab+"' "
									+veld_required+" "+on_actie
									+" onblur=\"veldCheckDatum('"+id_name+"',document.forms['"+veldFormName+"'].elements['"+id_name+"'],"+(t[0].indexOf("dow")!=-1)+")\" "
									+"onFocus=\"$('#veldInfoContainer #dow_"+id_name+"').show('slow');\">";
			if (veldFormName!="")
				{	// voeg kalender toe
				veldStr += ''
							//+"<script language='javascript'>\nkalender["+tab+"] = new calendar1(document.forms['"+veldFormName+"'].elements['"+id_name+"'],'"+kalender_lastdatefield+"');\n</script>"
							+" <a href=\"javascript:kalender["+tab+"] = new calendar1(document.forms['"+veldFormName+"'].elements['"+id_name+"'],'"+kalender_lastdatefield+"');kalender["+tab+"].popup();\"><img src=http://www.opdewadden.nl/1inc/kalender/img/cal.gif border=0></a>";
				}
			//alert('veldStr='+veldStr);
			break;
		/*
		case "tijd":
			// 0=tijd, 1=lengte
			if ((t[1])==undefined) t[1] = 20;	// set default field length
			veldStr += "<tr>\n <td valign='top' align='right' nowrap>"
							+nl2br(id_prompt)+"<br><font size='1'>formaat: uu:mm</font></td>\n";
			veldStr += " <td valign='top' align='left' nowrap>".
				"<INPUT TYPE='$t[0]' NAME=\"$id_name\" size='$t[1]' VALUE=\"".${$id_name}."\" tabindex='$tab' $veld_required $on_actie>";
			break;
		case "email":
			// 0=email, 1=lengte
			if ((t[1])==undefined) t[1] = 20;	// set default field length
			echo "<tr>\n <td valign='top' align='right' nowrap>".nl2br($id_prompt)."<br><font size='1'>formaat: naam@domein.nl</font></td>\n";
			echo " <td valign='top' align='left' nowrap>".
				"<INPUT TYPE='text' NAME=\"$id_name\" size='$t[1]' VALUE=\"".${$id_name}."\" tabindex='$tab' $veld_required $on_actie>";
			break;
		case "password":
			// 0=password
			echo "<tr>\n <td valign='top' align='right' nowrap>".nl2br($id_prompt)."</td>\n";
			echo " <td valign='top' align='left' nowrap>".
				"<INPUT TYPE='password' NAME=\"$id_name\" tabindex='$tab' $veld_required $on_actie>";
			break;
		*/
		case "checkbox":
			// 0=checkbox
			if (veldFormName!="")
				{	// formname bekend, maak tekst aanklikbaar
				veldStr += "<tr id='row_"+id_name+"'>"+
								"\n	<td id='prompt_"+id_name+"' valign='top' align='right' nowrap"
										+" onClick=\"thisX=document.forms['"+veldFormName+"'].elements['"+id_name+"'];if (!thisX.disabled) {if (thisX.checked) thisX.checked=false;else thisX.checked=true;thisX.onchange()};\">"
									+nl2br(id_prompt)
									+"</td>\n";
				}
			else veldStr += "<tr id='row_"+id_name+"'>\n <td valign='top' align='right' nowrap>"
								+nl2br(id_prompt)
								+"</td>\n";
			check	= "";
			val	= "";
			if (id_value == 1)
				{
				check 	= "checked";
				val	= "value='ON'";
				}
			veldStr += " <td valign='top' align='left' nowrap>"
				+"<INPUT TYPE='checkbox' "+check+" NAME=\""+id_name+"\" "+val+" tabindex='"+tab+"' "+veld_required+" "+on_actie+">";
			break;

		case "boxcheck":
			// 0=boxcheck
			veldStr += "<tr id='row_"+id_name+"'>\n <td valign='top' align='right' nowrap>&nbsp;</td>\n";
			check	= "";
			val	= "";
			if (id_value == 1)
				{
				check 	= "checked";
				val	= "value='ON'";
				}
			veldStr += " <td valign='top' align='left' nowrap>"
							+"<INPUT TYPE='checkbox' "+check+" NAME=\""+id_name+"\" "+val+" tabindex='"+tab+"' "+veld_required+" "+on_actie+">"
						+"</td>";
			if (veldFormName!="")
				{	// formname bekend, maak tekst aanklikbaar
				veldStr += "<td id='prompt_"+id_name+"' valign='top' onClick=\"thisX=document.forms['"+veldFormName+"'].elements['"+id_name+"'];if (!thisX.disabled) {if (thisX.checked) thisX.checked=false;else thisX.checked=true;thisX.onchange();}\">"
								+nl2br(id_prompt);
				}
			else veldStr += "<td valign='top'>"+nl2br(id_prompt);
			break;
		/*
		case "radio":
			// 0=radio, 1=value
			echo "<tr>\n <td valign='top' align='right' nowrap>&nbsp;</td>\n";
			$check	= "";
			$val	= "value='$t[1]'";
			if (${$id_name} == $t[1])
				{
				$check 	= "checked";
				}
			echo " <td valign='top' align='left' nowrap>".
				"<INPUT TYPE='radio' $check NAME=\"$id_name\" $val tabindex='$tab' $veld_required $on_actie> ".nl2br($id_prompt);
			break;
		case "postcode":
			// 0=postcode, 1=lengte
			if (!isset($t[1])) $t[1] = 10;
			echo "<tr>\n <td valign='top' align='right' nowrap>".nl2br($id_prompt)."<br><font size='1'>formaat: 9999 AA</font></td>\n";
			echo " <td valign='top' align='left' nowrap>".
				"<INPUT TYPE='text' NAME=\"$id_name\" size='$t[1]' VALUE=\"".${$id_name}."\" tabindex='$tab' $veld_required $on_actie>";
			break;
		*/
		case "select":
			// 0=select, 1-en-volgenden=value¿string
			veldStr += "<tr id='row_"+id_name+"'>\n <td id='prompt_"+id_name+"' valign='top' align='right' nowrap>"+nl2br(id_prompt)+"</td>\n";
			veldStr += " <td valign='top' align='left' nowrap>\n  <select name=\""+id_name+"\" id=\""+id_name+"\" tabindex='"+tab+"' "+veld_required+" "+on_actie+" onChange=\"veldError('"+id_name+"','','');\">";
			optgroup = 0;
			optgroupstyle = '';
			for (i=1;i<m;i++)
				{
				if (t[i].substr(0,1)!="¶")
					{
					s	= t[i].split("¿");
					if (id_name.substr(id_name.length-1)!="]")
						{
						veldStr += "\n\t\t<option value=\""+s[0]+"\" "+(id_value==s[0]?"selected":"")+" "+optgroupstyle+">"+s[1]+"</option>";
						}
					else	// multiple
						{
						alert('Multiple select not yet supported for: '+id_name);
						/*
						m_id	= id_name.substr(0,id_name.length()-2);
						//global ${$m_id};
						c_m_id	= count(${$m_id});
						if ($c_m_id>0)
							{
							$slt = 0;
							for ($j=0;$j<$c_m_id;$j++)
								{
								if (${$m_id}[$j]==$s[0]) $slt = 1;
								}
							if ($slt==1) echo "\n\t\t<option value=\"".$s[0]."\" selected $optgroupstyle>".$s[1]."</option>";
							else echo "\n\t\t<option value=\"".$s[0]."\" $optgroupstyle>".$s[1]."</option>";
							}
						else echo "\n\t\t<option value=\"".$s[0]."\" $optgroupstyle>".$s[1]."</option>";
						*/
						}
					}
				else
					{
					if (pc_type!="apple")
						{
						if (optgroup) veldStr += "\n\t</optgroup>";
						s	= t[i].substr(1).split("¿");
						if (s[1]=="")
							{
							s[1] = "font-weight:bolder;";
							optgroupstyle = "style='font-weight:normal;'";
							}
						else optgroupstyle = "style='"+s[2]+"'";
						veldStr += "\n\t<optgroup label='"+s[0]+"' style='"+s[1]+"'>";
						$optgroup = 1;
						}
					}
				}
			if (optgroup) veldStr += "</optgroup>";
			veldStr += "</select>";
			break;
		case "textarea":
		case "phparea":
			// 0=textarea, 1=rows, 2=cols
			if (typeof(t[1])=="undefined")	t[1] = 4;
			else if (t[1].substr(0,1)=="*")
				{	// variable aantal regels, formaat *[min][-max]
				minregels = 4;
				maxregels = 20;
				if (t[1]!="*")
					{
					xxx = t[1].substr(1);
					xx = xxx.split("-");
					if (xx[0]!="") minregels = xx[0];
					if (xx[1]!="") maxregels = xx[1];
					}
				t[1] = id_value.split("\n").length*2;
				//alert('t1='+t[1]+', min='+minregels+', max='+maxregels);
				if (t[1]<minregels) t[1] = minregels;
				if (t[1]>maxregels) t[1] = maxregels;
				}
			if (typeof(t[2])=="undefined") t[2] = 40;
			veldStr += "<tr>\n <td valign='top' align='right' nowrap>"
						+nl2br(id_prompt)
						+(t[0]=="phparea"?"<br>(<a onClick=\"d=document.getElementById('help_"+id_name+"').style;if (d.display=='') d.display='none';else d.display='';\" style='background:lavender;'>help</a>)":"")+"</td>\n";
			veldStr += " <td valign='top' align='left' nowrap>"
							+"<TEXTAREA NAME=\""+id_name+"\" ROWS='"+t[1]+"' COLS='"+t[2]+"' WRAP='VIRTUAL' tabindex='"+tab+"' "+veld_required+" "+on_actie+">";
			//xx = id_value.split("\n");
			//for (i=0;i<xx.length;i++) veldStr += xx[i] + "\n";
			veldStr += id_value;
			veldStr += "</TEXTAREA>";
			break;
		/*
		case "foto":
			// 0=foto, 1=lengte 2=actie
			if ((t[1])==undefined) t[1] = 20;	// set default field length
			if (isset($t[2])) $blur	= "onBlur=".'"'.$t[2].'"';
			echo "<tr>\n <td valign='top' align='right' nowrap>".nl2br($id_prompt)."</td>\n";
			echo " <td valign='top' align='left' nowrap>".
				"<INPUT TYPE='$t[0]' NAME=\"$id_name\" size='$t[1]' VALUE=\"".${$id_name}."\" tabindex='$tab' $blur $veld_required $on_actie>";
			break;
		*/
		default:
			// 0=<onbekend>, 1=lengte
			if ((t[1])==undefined) t[1] = 20;	// set default field length
			veldStr += "<tr id='row_"+id_name+"'>\n <td valign='top' align='right' nowrap>"+nl2br(id_prompt)+"</td>\n";
			veldStr += " <td valign='top' align='left' nowrap>"
				+"<INPUT TYPE='"+t[0]+"' NAME=\""+id_name+"\" size='"+t[1]+"' VALUE=\""+id_value+"\" tabindex='"+tab+"' "+veld_required+" "+on_actie+">";
			break;

		};
	/*
	if (errmsg[id_name]!=undefined)	// check voor veld-specifieke errmsg
		{
		veldStr += " <font color=red>&lt;= "+nl2br(errmsg[id_name])+"</font>";
		}
	if (id_help!=undefined)
		{
		veldStr += " &nbsp;&nbsp;<a href='javascript:alert("+'"'+id_help+'"'+")' title='"+id_help+"' tabindex='99'>help</a>";
		}
	*/
	veldStr += "\n</td>";
	if (id_extra!='')
		{
		t	= id_extra.split("¦");
		x	= "";
		if (t.length>1)
			{
			x	= "rowspan='"+t[0]+"'";
			id_extra	= t[1];
			}
		veldStr += "<td id='"+id_name+"_extra' valign='top' "+x+">"+nl2br(id_extra)+"</td>";
		}
	veldStr += "\n</tr>\n";
	tab++;
	//if (t[0]=="dmj") alert(veldStr);
	return veldStr;
	};
//--------------------------------------------------------------------------------------------
// helper functies
//
function veldError(veldId,korteText,langeText)
	{
	//alert('veldError('+veldId+','+korteText+','+langeText+")");
	intVeldId = veldId;
	if (veldId.charAt(0)=='*') intVeldId = veldId.substr(1);
	if (korteText=='')
		{	// hide error
		$('#veldInfoContainer #error_'+intVeldId).hide('slow').empty();
		return true;
		}
	errorPositie = $('#'+intVeldId).position();
	if (veldId.charAt(0)=='*')
		{
		hoog	= $('#'+intVeldId).outerHeight();
		errorPositie.top += hoog;
		}
	else
		{ 
		breed	= $('#'+intVeldId).outerWidth();
		errorPositie.left += breed+2;
		if (veldFormName!='') errorPositie.left += 25;	// kalender symbooltje
		}
	if (!$('body').hasClass('veldInfoContainer'))
		{
		$('body').append("<div id='veldInfoContainer' class='veldInfoContainer'></div>");
		}
	if (!$('#veldInfoContainer').hasClass('error_'+intVeldId))
		{
		$('#veldInfoContainer').append("<div id='error_"+intVeldId+"' class='error_"+intVeldId+"'></div>");
		}
	$('#veldInfoContainer #error_'+intVeldId)
		.css('position','absolute').css(errorPositie)
		.animate({width:breed})
		.append("<table><tr><td valign='top'><b>"+(veldId.charAt(0)=='*'?"&uarr;":"&larr;")+"</b></td>"
						+"<td style='border: solid 1px red;' nowrap>"
							+"<div class='veldErrorKorteText'>"+korteText+"</div>"
							+(langeText!=''?"<div class='veldErrorLangeText' style='display:none;'>"+langeText+"</div>":"")
						+"</td></tr></table>"
				)
		.show()
		.click(function(){$('#veldInfoContainer #error_'+intVeldId+' .veldErrorLangeText').toggle('slow');})
		;
	return true;
	}

var veldDowTo = new Array();

function veldDow(veldId,dow)
	{
	//alert('veldDow('+veldId+','+dow+")");
	if (dow==-1)
		{	// hide dow
		$('#veldInfoContainer #dow_'+veldId).hide('slow').empty();
		return true;
		}
	dowPositie = $('#'+veldId).position();
	breed	= $('#'+veldId).outerWidth();
	dowPositie.left += breed+2;
	if (veldFormName!='') dowPositie.left += 25;	// kalender symbooltje
	if (!$('body').hasClass('veldInfoContainer'))
		{
		$('body').append("<div id='veldInfoContainer' class='veldInfoContainer'></div>");
		}
	if (!$('#veldInfoContainer').hasClass('dow_'+veldId))
		{
		$('#veldInfoContainer').append("<div id='dow_"+veldId+"' class='dow_"+veldId+"'></div>");
		}
	$('#veldInfoContainer #dow_'+veldId)
		.empty()
		.css('position','absolute').css(dowPositie)
		.animate({width:breed})
		.append("<table><tr>"
						+"<td nowrap>"
							+"<div class='veldDowText'>"+fmtTextDag[dow]+"</div>"
						+"</td></tr></table>"
				)
		.show()
		;
	veldDowTo[veldId] = setTimeout("$('#veldInfoContainer #dow_"+veldId+"').hide('slow');veldDowTo['"+veldId+"']=0;",5000);
	return true;
	}

function veldClear(veldId)
	{
	if (veldId!='')
		{
		clearTimeout(veldDowTo[veldId]);
		$('#veldInfoContainer #dow_'+veldId).empty().hide('slow');
		veldDowTo[veldId]=0;
		}
	else
		{
		for (key in veldDowTo)
			{
			if (veldDowTo[key]!=0)
				{
				clearTimeout(veldDowTo[key]);
				$('#veldInfoContainer #dow_'+key).empty().hide('slow');
				veldDowTo[key]=0;
				}
			}
		}
	}

//--------------------------------------------------------------------------------------------
// Validatie functies
//
function veldCheckDatum(veldId,veldWaarde,dow)
	{
	var today = new Date();
	nowDay = today.getDate();
	nowMonth = today.getMonth()+1;
	nowYear = veldY2k(today.getYear());
	today = veldIsDate(nowDay,nowMonth,nowYear);
	switch (taal)
		{
		case "NL":
			var datumHelp = "Een datumveld moet het formaat dd-mm-jjjj hebben. Tips:<ul caption='Tips:'>"
							+"<li>als u geen jaartal invoert neemt het systeem het huidige jaar (="+veldY2k(today.getYear())+")</li>"
							+"<li>u kunt zelf een scheidingsteken kiezen, als u maar consequent bent</li>"
							+"<li>u kunt de maand in cijfers of in letters invoeren<br>(eerste 3 letters zijn genoeg)</li>"
							+"<li>u kunt een datum ook zonder scheidingstekens invoeren<br>(dag en maand dan minimaal 2 cijfers)</li>"
							+"<li>Voorbeelden voor het invoeren van `4 april 2009`:"
							+"<br>3-4, 3.4, 3/4/9, 3 april, 3apr, 0304, 03042009"
							+"</li>"
							+"</ul><br>&nbsp;"
							;
			break;
		case "EN":
			var datumHelp = "A datefield must have the format dd-mm-yyyy. Tips:<ul caption='Tips:'>"
							+"<li>if you do not enter a year, the current year will be used (="+veldY2k(today.getYear())+")</li>"
							+"<li>you can pick a separator, as long as you use it consistently</li>"
							+"<li>you can enter the month in digits or in letters<br>(first 3 letters are enough)</li>"
							+"<li>you can also skip the separators<br>(day and month must have 2 digits)</li>"
							+"<li>Examples of entering `4 april 2009`:"
							+"<br>3-4, 3.4, 3/4/9, 3 april, 3apr, 0304, 03042009"
							+"</li>"
							+"</ul><br>&nbsp;"
							;
			break;
		case "DE":
			var datumHelp = "Een datumveld moet het formaat dd-mm-jjjj hebben. Tips:<ul caption='Tips:'>"
							+"<li>als u geen jaartal invoert neemt het systeem het huidige jaar (="+veldY2k(today.getYear())+")</li>"
							+"<li>u kunt zelf een scheidingsteken kiezen, als u maar consequent bent</li>"
							+"<li>u kunt de maand in cijfers of in letters invoeren<br>(eerste 3 letters zijn genoeg)</li>"
							+"<li>u kunt een datum ook zonder scheidingstekens invoeren<br>(dag en maand dan minimaal 2 cijfers)</li>"
							+"<li>Voorbeelden voor het invoeren van `4 april 2009`:"
							+"<br>3-4, 3.4, 3/4/9, 3 april, 3apr, 0304, 03042009"
							+"</li>"
							+"</ul><br>&nbsp;"
							;
			break;
		}	
	debug	= 0;
	if (debug) alert('veldCheckDatum('+dow+'): debug is on');
	veldError(veldId,'','');
	veldClear(veldId);
	var dl	= new Array(3);
	datum	= veldWaarde.value.toString();
	len	= datum.length;
	i	= 0;
	if (datum == "") return true;
	if (datum.match(/^[0-9]+$/))
		{
		dl[0]	= datum.substring(0,2);	// dag
		dl[1]	= datum.substring(2,4);	// maand
		dl[2]	= datum.substring(4,8);	// jaar
		}
	else
		{
		datum	= datum.toLowerCase();
		sep	= "";
		while ((i<len) && (sep == ""))
			{
			chr	= datum.charAt(i);
			if ((chr < '0') || (chr > '9')) sep	= chr;
			if ((sep >= "a") && (sep <= "z"))
				{
				datum	= datum.substring(0,i)+" "+datum.substring(i);
				sep	= " ";
				}
			i++;
			}
		if (sep == "")
			{
			veldError(veldId,tErrorDatum,datumHelp);
			return false;
			}
		dl		= datum.split(sep);	/* assume d/m/j */
		if (debug) alert("<br>Separator='"+sep+"' dag="+dl[0]+", maand="+dl[1]+", jaar="+dl[2]);
		c_dl	= dl.length;
		x		= 1;
		while ((c_dl>2) && (x<c_dl))
			{
			if (dl[x] == "")
				{
				//dl.splice(x,1,dl.slice(x+1));
				dl.splice(x,1);
				c_dl	= dl.length;
				}
			else x++;
			}
		if (debug) alert("<br>Na strippen lege separators dag="+dl[0]+", maand="+dl[1]+", jaar="+dl[2]);
		}
	if (dl[1].match(/^[a-z]+$/))
		{
		switch (dl[1].substring(0,3))
			{
			case "jan":	dl[1] = 1;break;
			case "feb":	dl[1] = 2;break;
			case "maa":
			case "mrt":
			case "mar":	dl[1] = 3;break;
			case "apr":	dl[1] = 4;break;
			case "mei":
			case "may":	dl[1] = 5;break;
			case "jun":	dl[1] = 6;break;
			case "jul":	dl[1] = 7;break;
			case "aug":	dl[1] = 8;break;
			case "sep":	dl[1] = 9;break;
			case "okt":
			case "oct":	dl[1] = 10;break;
			case "nov":	dl[1] = 11;break;
			case "dec":	dl[1] = 12;break;
			}
		if (debug) alert("<br>alfa-maand dag="+dl[0]+", maand="+dl[1]+", jaar="+dl[2]);
		}

	dl[0]	= parseInt(dl[0],10);
	dl[1]	= parseInt(dl[1],10);
	dl[2]	= parseInt(dl[2],10);

	if (!dl[1]) dl[1]	= today.getMonth()+1;
	yearDefaulted = false;
	if (!dl[2])
		{
		dl[2]	= veldY2k(today.getYear());
		yearDefaulted = true;
		}
	//if ((dl[2] > 10) && (dl[2]<=99)) dl[2] += 1900;
	if ((dl[2] >= 0) && (dl[2]<100)) dl[2] += 2000;
	if (debug) alert("<br>jaar default dag="+dl[0]+", maand="+dl[1]+", jaar="+dl[2]);

	if (!(dateObj = veldIsDate(dl[0],dl[1],dl[2])))		// expects d/m/j
		{
		veldError(veldId,tErrorDatum,datumHelp);
		return false;
		}
	else
		{
		if ((yearDefaulted)&&(dateObj<today))
			{
			dl[2]++;
			dateObj = veldIsDate(dl[0],dl[1],dl[2]);
			}
		}

	veldWaarde.value	= (dl[0]<10?"0"+dl[0]:dl[0])+"-"+(dl[1]<10?"0"+dl[1]:dl[1])+"-"+dl[2];
	if (dow) veldDow(veldId,dateObj.getDay());
	if (debug) alert('leaving check');
	return true;
}
	
function veldY2k(number) { return (number < 1000) ? number + 1900 : number; }

function veldIsDate (day,month,year)
	{
	month = month-1;
	var test = new Date(year,month,day);
	if (	(veldY2k(test.getYear()) == year) &&
			(month == test.getMonth()) &&
			(day == test.getDate())
		)
		{
        return test;
        }
    else
        return false
	}