// fromcheck script laatste update sept 2005, MR

ErrDatum = 'De waarde die u heeft ingevoerd voor de datum is niet goed. De dag, maand en jaar moeten worden gescheiden door een -, een spatie, een / of een komma. De maand kan nummeriek, of als tekst worden ingevoerd. Voorbeelden van goed ingevoerde data zijn: 1-10-1971, 1 okt 1971, 1 oktober 1971, 1/10/1971.';
ErrMaand = 'De maand is niet of niet juist ingevoerd. Als er een dag is ingevoerd, moet er ook een Maand en Jaartal worden ingevoerd. Geldige waarden voor maand zijn de waarden tussen 1 en 12 of  jan, feb, mrt, apr, mei, jun, jul, aug, sep, okt, nov, dec of de maand helemaal uitgeschreven, bijvoorbeeld januari. Door met uw muis over de informatieknop te gaan, kunt u meer informatie krijgen over hoe de datum moet worden ingevoerd.'
ErrJaar = 'Het jaartal is niet of niet juist ingevoerd. Als er een maand is ingevoerd, moet er ook een jaartal worden ingevoerd. Door met uw muis over de informatieknop te gaan, kunt u meer informatie krijgen over hoe de datum moet worden ingevoerd'
ErrTime = 'De waarde die u heeft ingevoerd voor de tijd is niet goed. Door met uw muis over de informatieknop te gaan, kunt u zien hoe de tijd moet worden ingevoerd';
ErrEmpty = 'Om deze gegevens op te kunnen slaan moeten alle verplichte velden ingevuld worden (deze zijn te herkennen aan de rode markering)'; 
ErrMaxLen = 'De ingevoerde tekst is te lang, zorg ervoor dat de ingevoerde tekst niet teveel tekens bevat. Hoeveel tekens een invoerveld mag bevatten is te zien door met uw muis over de informatieknop te gaan.';
ErrEmail = 'De waarde die u heeft ingevoerd voor het e-mailadres is niet goed. Een geldig e-mailadres heeft bijvoorbeeld de vorm uwnaam@bedrijfsnaam.nl';
ErrEmailNieuwsbrief = 'Het e-mailadres die u heeft ingevoerd bij het aanmelden voor de nieuwsbrief is niet goed. Een geldig e-mailadres heeft bijvoorbeeld de vorm uwnaam@bedrijfsnaam.nl';
ErrURL = 'U heeft geen internetadres ingevoerd, of de waarde die u heeft ingevoerd is geen geldig adres. Door met uw muis over de informatieknop te gaan, kunt u zien hoe het internetadres moet worden ingevoerd';
ErrRadio = 'U heeft bij de keuzerondjes geen optie aangeklikt, u moet hier 1 optie kiezen.';
ErrMoney = 'U heeft geen geldige waarde voor de prijs/prijzen ingevuld.';
ErrCijfer = 'In het veld met de rode markering is geen geldige waarde ingevoerd. Voer hier een cijfer in';
ErrNum = 'Vul een heel getal in'

Kar= ' characters'
ErrNoSpace = 'U hebt spaties gebruikt in een veld waar dit niet mag'
ErrWachtwoord = 'Dit is geen geldig wachtwoord';
ErrInlogNaam = 'Dit is geen geldige inlognaam';

strValidTLDs=".aero.arpa.biz.com.coop.edu.gov.info.int.jobs.mil.mobi.museum.name.net.pro.org.travel.ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cu.cv.cx.cy.cz.de.dj.dk.dm.do.dz.ec.ee.eg.er.es.et.eu.fi.fj.fk.fm.fo.fr.ga.gd.ge.gf.gg.gh.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nu.nz.om.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zw."

NumPath = /^[0-9]+$/;
CijferPath = /^([0-9]+(\.|\,)][0-9]+)|([0-9]+)$/;
EmailPath = /^.+@.+\.[A-Za-z]{2,6}$/;
URLPath = /^.+\.[A-Za-z]{2,3}(\/[^\/]+)*\/?$/;
TimePath = /^(0*[0-9]|1[0-9]|2[0-3])(:|\.)[0-5]\d$/;
NoSpacePath = /^.+$/;
EmptyPath = /^(\s*\n?)*$/;  // alleen spaties of regeleinden
WachtwoordPath = /^\S{4,16}$/;

function PlaceFocus()
// Plaatst de focus op het eerste veld waar een waarde kan worden ingevoerd.
{
	if (document.forms.length > 0)
	{
		var field = document.forms[0];
		for (i = 0; i < field.length; i++)
		{
			if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea") || (field.elements[i].type.toString().charAt(0) == "s"))
			{
				document.forms[0].elements[i].focus();
				break;
         	}
      	}
   }
} //  Einde functie Focus

function ValidateOnSubmit(strInput, ErrMsg, Path, booMagLeegZijn)
// Controleert of de invoer leeg mag zijn, en voldoet aan invoervoorwaarden.
{
	if (((strInput.value == '') && (booMagLeegZijn)) || (Path.exec(strInput.value))) {
		if(Path==EmailPath){
			TLD=(strInput.value.substr(strInput.value.lastIndexOf(".")));
			if (strValidTLDs.indexOf(TLD + ".")>-1) {
				return true;
			} else {
				alert(ErrMsg);
				return false;
			}
		}
		else {
			return true;   
		}
	}
	else 	
			{alert(ErrMsg); return false}
} // einde ValidateOnSubmit




function ValidateOnBlur(strInput, Path, booMagLeegZijn)
// Controleert of de invoer leeg mag zijn, en voldoet aan invoervoorwaarden.
{
var TLD
	if (((strInput.value == '') && (booMagLeegZijn)) || (Path.exec(strInput.value))){ 	
		if(Path==EmailPath){
			TLD=(strInput.value.substr(strInput.value.lastIndexOf(".")));
			if (strValidTLDs.indexOf(TLD + ".")>-1) {
				strInput.className = 'nofocus';
			} else {
				strInput.className = 'verplicht';
			}
		}
		else {
			strInput.className = 'nofocus';  
		}		
	}
	else 	
			{ strInput.className = 'verplicht';}
} // einde ValidateOnBlur


function ValidateTextOnBlur(strInput)
{ if ((strInput.value == '') || EmptyPath.exec(strInput.value))
	// Fout! De invoerstring mag NIET leeg zijn.
			{ strInput.className = 'verplicht';}
	else
			{ strInput.className = 'nofocus';}
} // einde ValidateText OnBlur


function ValidateTextOnSubmit(strInput)
{	
	if ((strInput.value == '') || EmptyPath.exec(strInput.value))
	// Fout! De invoerstring mag NIET leeg zijn.
			{ alert(ErrEmpty); return false;}
	else
			{ return true;}
} // einde ValidateText OnSubmit

function ValidateTextareaOnBlur(strInput, intMaxLen, booMagLeegZijn)
{	if ( (strInput.value == '') || EmptyPath.exec(strInput.value) )
	// De invoerstring is leeg
	{	if (booMagLeegZijn)
		// Niets aan de hand, de invoerstring mag ook leeg zijn.
			{ strInput.className = 'nofocus';}
		else
		// Fout! De invoerstring mag NIET leeg zijn.
			{ strInput.className = 'verplicht';}
	}
	else
	// De invoerstring is niet leeg
	{	if (strInput.value.length > intMaxLen)
		// Fout! De invoerstring is te lang.
			{ strInput.className = 'verplicht';}
		else
		// De invoer is goed.
			{ strInput.className = 'nofocus';}
	}
} // einde ValidateText OnBlur


function ValidateTextareaOnSubmit(strInput, intMaxLen, booMagLeegZijn)
{ if ( (strInput.value == '') || EmptyPath.exec(strInput.value) )
	// De invoerstring is leeg
	{ if (booMagLeegZijn)
		// Niets aan de hand, de invoerstring mag ook leeg zijn.
		{ return true; }
		else
		// Fout! De invoerstring mag NIET leeg zijn.
		{ alert (ErrEmpty);
		  return false;  }
	}
	else
	// De invoerstring is niet leeg
	{	if (strInput.value.length > intMaxLen)
		// Fout! De invoerstring is te lang.
		{ alert (ErrMaxLen + intMaxLen + Kar);
		  return false;	}
		else
		// De invoer is goed.
		{ return true; }
	}
} // einde ValidateText OnSubmit


function ValidateRadioOnSubmit(arrInput)
{
	booAangeklikt = false;
	for (i=0; i<arrInput.length; i++)
		{ if (arrInput[i].checked == true) {return true;}}
	alert(ErrRadio);
	return false;
} // einde ValidateRadio OnSubmit

function SearchSeparator(Datum)
// Deze functie bekijkt welke separator is gebruikt in het datumveld
{
	strSeparatorArray = new Array("-"," ","/",".");
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++)
	{
		if (Datum.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{	
			contactformulier.separator.value = (strSeparatorArray[intElementNr]);
			return (strSeparatorArray[intElementNr]);					// Hier is de naam v.h formulier aangepast voor porceleen
		}
	}	
	return "*";
}


function MaxDayPerMonth(Month, Year)
// Deze functie kijkt hoeveel dagen er in een bepaalde maand zitten
{
	if ((Month == 4) || (Month == 6) || (Month == 9) || (Month == 11)) 
		return 30;
	else
	{
		if ((Month == 2) && ((Year%4) != 0))
		// Geen schikkeljaar
			return 28;
		else
		{	
			if ((Month == 2) && ((Year%4) == 0))
		// Schikkeljaar
				return 29;
			else
		//Alle overige maanden hebben 31 dagen
				return 31;
		}
	}
} // einde functie MaxDayPerMonth


function CheckDatum (strDate) 
{ // begin functie
	
	strSeperator = SearchSeparator(strDate.value);
	if (strSeperator == "*")
		{ return false; }
	strDateArray = strDate.value.split(strSeperator);
	Len = strDateArray.length;
	if ((Len != 2) && (Len != 3)) 
		{ return false; }
	else 
		{
		// Als er een jaartal is, controleer deze:
		if ( Len == 3)        
		{	
			intYear = parseInt(strDateArray[2],10);
			if ( (isNaN(intYear)) || (intYear > 3000) || (intYear < 0) )
				return false
		}
		else
		// Er is geen jaartal ingevoerd, neem huidige jaar
		{
			Today = new Date();
			intYear = Today.getYear();
		}
		
		// Controleren van de invoer voor de maand:		
		intMonth = parseInt(strDateArray[1],10);
		if ( (isNaN(intMonth)) || (intMonth > 12) || (intMonth < 1) )
			return false;
		else
		{	// Controleren van de invoer voor de dag:
			MaxDay = MaxDayPerMonth(intMonth, intYear);
			intDay = parseInt(strDateArray[0],10);
			if ( (isNaN(intDay)) || (intDay > MaxDay) || (intDay < 1) )
			{
				alert (ErrDatum);
				return false;
			}
			else
				return true;
		}
	} // goede aantal arrays
} // einde functie


function ValidateDateOnSubmit(strInput, booMagLeegZijn)
// Controleert of de invoer leeg mag zijn, en voldoet aan invoervoorwaarden.
{
	if (((strInput.value == '') && (booMagLeegZijn)) || (CheckDatum(strInput)))
			{return true;   }
	else 	
			{alert(ErrDatum); return false}
} // einde ValidateDateOnSubmit


function ValidateDateOnBlur(strInput, booMagLeegZijn)
// Controleert of de invoer leeg mag zijn, en voldoet aan invoervoorwaarden.
{	
	if (((strInput.value == '') && (booMagLeegZijn)) || (CheckDatum(strInput)))
			{ strInput.className = 'nofocus';}
	else 	
			{  strInput.className = 'verplicht';}
} // einde ValidateDateOnBlur

