// --------------------------------------------------------------------
// Kopeling van DynInputs lijsten met links of blobs via DB declaratie
// --------------------------------------------------------------------
    function redirectToBlobHandler(s,back) {
      var s1 = "ShowBlobs.aspx?" + s
      // alert("1 redirectToBlobHander: " + s1);
      //if(back == true)
        //parent.Besturing.document.location="back2ovz.aspx";
      window.location=s1;
      return;
    }
    function redirectToPage(page) {
      var s1 = page;
      // alert("redirectToPage:  redirecting not active:" + s1);
      window.location=s1;
      return;
    }
// --------------------------------------------------------------------
// standaard checkfuncties
// --------------------------------------------------------------------  
  
  function checktime(veld, prompt) {
    var retval;
    var tijd = veld.value;
    if(trim(veld) == "")
      return false;
    retval="";
    uur = 0;
	  min = 0;
	  sec = 0;
	  //outfilter miliseconds
	  // alert("checktime: " + tijd);
	  tijd = tijd.split(".");
	  tijd = tijd[0];
	  tijd = tijd.split("T");
	  tijd = tijd[0];
  	
  	
	  qqt=tijd.split(":");
	  if(qqt.length  < 2 || qqt.length >  3) { 
		  alert("Tijd heeft foute formaat, verwachten hh:mm of hh:mm:ss");veld.focus();
		  return false;   }

	  s1 = new Array("uren","minuten","seconden") ;
	  for(i = 0;i < qqt.length;i++)
	  {
		  if(qqt[i] == "" || isNaN(qqt[i]))
		    { alert("De " + s1[i] + "tal is niet numeriek of leeg"); veld.focus();return false;}
	  }
	  uur=parseInt(qqt[0],10);
	  if(uur < 0 || uur > 23) {
		  alert("De urental moet de waarde tussen 0 en 23 hebben." );veld.focus();return false;
	  } 
	  min=parseInt(qqt[1],10); 
	  if(min < 0 || min > 59) {
		  alert("De minutental moet de waarde tussen 0 en 59 hebben." );veld.focus();return false;
	  }  
	  if(qqt.length == 3)
		  sec=parseInt(qqt[2],10); 
	  if(sec< 0 || sec > 59) {
		  alert("De secondental moet de waarde tussen 0 en 59 hebben." );veld.focus();return false;
	  }	
	  return true;
  } 
  function checkemail (veld, prompt) {
    var emailStr = veld.value;
    if(trim(veld) == "")
      return false;
    
    var checkTLD=1;
    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);

    if (matchArray==null) {
			alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
      veld.focus();
      return false;
    }

    var user=matchArray[1];
    var domain=matchArray[2];
    for (i=0; i<user.length; i++) {
      if (user.charCodeAt(i)>127) {
  			alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
        veld.focus();
        return false;
      }
    }

    for (i=0; i<domain.length; i++) {
      if (domain.charCodeAt(i)>127) {
  			alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
        veld.focus();
        return false;
      }
    }

    if (user.match(userPat)==null) {
			alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
      veld.focus();
      return false;
    }

    var IPArray=domain.match(ipDomainPat);
    if (IPArray != null) {
      for (var i=1;i<=4;i++) {
        if (IPArray[i] > 255) {
  		  	alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
          veld.focus();
          return false;
        }
      }
      return true;
    }

    var atomPat=new RegExp("^" + atom + "$");
    var domArr=domain.split(".");
    var len=domArr.length;
    for (i=0;i<len;i++) {
      if (domArr[i].search(atomPat)==-1) {
  			alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
        veld.focus();
        return false;
      }
    }


    if (checkTLD && domArr[domArr.length-1].length!=2 &&
      domArr[domArr.length-1].search(knownDomsPat)==-1) {
			alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
      veld.focus();
      return false;
    }

    if (len < 2) {
			alert("Het veld " + prompt + " moet een valide e-mail adres zijn")
      veld.focus();
      return false;
    }

    return true;
}


function checkgevuld(veld,prompt)
{
    // 11-7-2001, Hans Bijen
    // Nu altijd veld eerst ontdoen van leading/trailing spaces.
    // alert("CheckGevuld");
    veld.value = trim(veld);
	if( veld.value == '' ) {
		alert("Het veld " + prompt + " moet ingevuld zijn.");
		veld.focus();
		return false;
	}
	return true;
}

function checkminmax(veld,prompt,min,max)
{
val = veld.value;
if(val < min || val > max) {
	alert("Het veld " + prompt + " moet tussen " + min  + " en " + max + " liggen")
  return false;
}
return true;
}

function checkgetal(veld,prompt)
{
var len, i, ch, start

    // 11-7-2001, Hans Bijen
    // Nu altijd veld eerst ontdoen van leading/trailing spaces.
    veld.value = trim(veld);
	// getal: [+|-]{0-9}[.|,]{0-9}
	len = veld.value.length
	start = 0
	ch = veld.value.substring(0,1)
	if (ch == '-' || ch == '+')
		start++
	for (i = start; i < len; i++) {
		ch = veld.value.substring(i, i+1)
		if(ch != '.' && ch != ',' && (ch < '0' || ch > '9')) {
			alert("Het veld " + prompt + " moet een getal zijn")
			veld.focus()
			return false
		}
	}
	return true;
}
function checkgeheelgetal(veld,prompt)
{
var len, i, ch, start

    // 11-7-2001, Hans Bijen
    // Nu altijd veld eerst ontdoen van leading/trailing spaces.
    veld.value = trim(veld);
	// geheel getal: [+|-]{0-9}
	len = veld.value.length;
	start = 0;
	ch = veld.value.substring(0,1);
	if (ch == '-' || ch == '+')
		start++;
	for (i = start; i < len; i++) {
		ch = veld.value.substring(i, i+1);
		if(ch < '0' || ch > '9') {
			alert(prompt + " moet een geheel getal zijn");
			veld.focus();
			return false;
		}
	}
	return true;
}
function checknatuurlijkgetal(veld,prompt)
{
var len, i, ch, start

    // 11-7-2001, Hans Bijen
    // Nu altijd veld eerst ontdoen van leading/trailing spaces.
    veld.value = trim(veld);
	// natuurlijk getal: {0-9}
	len = veld.value.length
	start = 0
	for (i = start; i < len; i++) {
		ch = veld.value.substring(i, i+1)
		if(ch < '0' || ch > '9') {
			alert("Het veld " + prompt + " moet een positief geheel getal zijn")
			veld.focus()
			return false
		}
	}
	return true;
}
// 31-05-2005: Walter van Nijnatten
// Nieuwe functie om een veld te controleren op ongeldige karakters;
// Beter is een functie die aan de hand van een regular expression controleert. 
function checkongeldigekarakters(veld,ongeldigekarakters,prompt)
{
  // het veld eerst ontdoen van leading/trailing spaces.
  veld.value = trim(veld);
	
	for (var i=0; i<veld.value.length; i++) {
	  for (var j=0; j<ongeldigekarakters.length; j++) {
  	  if (veld.value.substr(i, 1) == ongeldigekarakters.substr(j, 1)) {
			  alert("Het veld " + prompt + " bevat ongeldige karakters.");
			  veld.focus();
			  return false;
  	  }
	  }
	}
	return true;
}
function checkpostcode(veld)
{
var len, i, ch, start;
var melding;

    // 11-7-2001, Hans Bijen
    // Nu altijd veld eerst ontdoen van leading/trailing spaces.
    veld.value = trim(veld);
	melding = "Het veld " + veld.name + " moet 4 cijfers, een spatie en twee hoofdletters bevatten";
	len = veld.value.length;
	if(len < 7) {
		alert(melding);
		veld.focus();
		return false;
	}
	for (i = 0; i < 4; i++) {
		ch = veld.value.substring(i, i+1);
		if(ch < '0' || ch > '9') {
			alert(melding);
			veld.focus();
			return false;
		}
	}
	if (veld.value.substring(i, i+1) != ' ') {
			alert(melding);
			veld.focus();
	}
	for (i = 5; i < 7; i++) {
		ch = veld.value.substring(i, i+1);
		if(ch < 'A' || ch > 'Z') {
			alert(melding);
			veld.focus();
			return false;
		}
	}
	return true;
}

function trim(veld)
{
    var waarde, lengte, i, j;

	//alert(veld.id);
    //alert("trim: '" + veld.value + "'" );
    waarde = veld.value;
    //if(veld.value == null)
	//	return;
    if( waarde == ""  || waarde == null) return ""; //waarde;
    lengte = veld.value.length;
    i = 0;
    while( (i < lengte) && waarde.charAt(i) == ' ' ) {
        i++;
    }
    // alert("ltrim = '" + waarde.substring( i ) + "'" );
    if( i == lengte ) return "";
    // i staat op eerste non-spatie van voren
    j = lengte - 1;
    while( (j >= 0) && waarde.charAt(j) == ' ' ) {
        j--;
    }
    j++;
    // j staat op eerste non-spatie van achteren.
    //alert("trim = '" + waarde.substring( i, j ) + "'" );
    return waarde.substring( i, j  );
}

//
// Nu datumveld
// Datum velden worden eerst op verplichtheid getest.

function blncheckdate(datumveld) {
    // 11-7-2001, Hans Bijen
    // Nu altijd veld eerst ontdoen van leading/trailing spaces.
    // return true; //deb:
    datumveld.value = trim(datumveld);
    if( datumveld.value == "" ) {
        //alert( "blncheckdate: Datum is leeg");
        return true;
    }
    if( checkdate(datumveld.value) == "" ) {
      //alert( "blncheckdate: Datum fout");    //deb: only voor debug, alert moet van checkdate komen
		  datumveld.focus();
		  return false;
    } else {
      // om gefixeerde formaat te hebben
      // datumveld.value=checkdate(datumveld.value);  
      // alert( "blncheckdate: Datum OK: " + datumveld.value);
	    return true;
    }
}

function  checkdate(datetime) {
  var dt,retval;
  retval = "";
	datumtijd=datetime;
	
	//TODO: if no space, try to look for "T"
	qq=datumtijd.split(" ");
	datum=qq[0];
	
	tijd="";
	msec="";
	if(qq.length == 2) {
	  // check voor miliseconden achter een .
	  qqq=qq[1].split(".");
	  tijd = qqq[0];
	  if(qqq.length == 2)
	    msec=qqq[1];
	};
	//alert("Tijd: " + tijd + "," + qq.length);
	
	// vind datumseparator
	cSeparator = '-';
  bSeparatorFound = false;
  for( i = 0; i < datum.length; i++ ) {
      c = datum.charAt(i);
      if( isNaN(parseInt(c,10)) ) {
          if( bSeparatorFound ) {
              if( cSeparator == c ) {
                  // OK, nog een separator gevonden
                } else {
                  alert(datum +  ":Niet numeriek karakter ("
                  + c + ") ongelijk aan het scheidingsteken ("
                  + cSeparator + ") gevonden, datum opgeven als b.v. 28/02/2003" );
                  return "";
              }
          } else {
              cSeparator = c;
              bSeparatorFound = true;
          }
      }
  }
	// kontroleer datum deel
	qqd=datum.split(cSeparator);
	if(qqd.length != 3) { 
		alert("Datum heeft foute formaat.");
		return "";
	}

	for(i = 0;i < qqd.length ;i++)
	{
	  // alert(s[i] + " " + isNaN(qqd[i]).toString() + qqd[i]);
		if(isNaN(qqd[i])) {alert("Het " + s[i] + "tal is niet numeriek");return "";}
	}
	// kontrolleer datuminhoud , parse zonder radix veroorzaakt ellende op 08 en 09!!
  jaar=parseInt( qqd[2],10);
  maand=parseInt(qqd[1],10);
  dag=parseInt(  qqd[0],10);
  
  //alert("Jaar/Maand/Dag: /" + qqd[2] + "/" + qqd[1]+ "/" + qqd[0]);
  //alert("hr:m:sec.msec: " + qqq[0] + "." + qqq[1]);
 
  // Jaar
	if(jaar < 1800) {
		alert("Het jaartal " + jaar + " is te klein.");
        return "";
	}
	if(jaar > 2199) {
		alert("Het jaartal " + jaar + " is te groot.");
        return "";
	}
     
     
  // Deelbaar door 4 schrikkeljaar,
  // deelbaar door 100 geen schrikkel jaar,
  // deelbaar door 1000 schrikkeljaar.
  schrikkel=jaar%4;
  if( schrikkel==0 ) {
      schrikkelHonderd=jaar%100;
      if( schrikkelHonderd==0 ) {
          schrikkelDuizend=jaar%1000;
          if( schrikkelDuizend==0 ) {
    	      schrikkel=0;
          } else {
    	      schrikkel=1;
    	  }
      }
  }
  
  // Maand
  if( maand < 1 || maand > 12) {
    alert("De maand moet de waarde tussen 1 en 12 hebben."); return "";
  }
  // Dag van de maand
	if(dag < 1) {alert(" De dag moet tenminste 1 worden.");return ""; }
	if((maand==1 && dag > 31)
	|| (maand==2 && dag > 28 & schrikkel>0)
	|| (maand==2 && dag > 29 & schrikkel==0)
	|| (maand==3 && dag > 31)
	|| (maand==4 && dag > 30)
	|| (maand==5 && dag > 31)
	|| (maand==6 && dag > 30)
	|| (maand==7 && dag > 31)
	|| (maand==8 && dag > 31)
	|| (maand==9 && dag > 30)
	|| (maand==10 && dag > 31)
	|| (maand==11 && dag > 30)
	|| (maand==12 && dag > 31)
	){
		alert("De dag " + dag + " is te groot voor de maand " + maand);
        return "";   
	}
	// kontroleer tijd als heet nodig is
	uur = 0;
	min = 0;
	sec = 0;
	if(tijd != "") {
		qqt=tijd.split(":");
		if(qqt.length != 3) { 
		  alert("Tijd heeft foute formaat.");
		return "";   }
	
		s1 = new Array("uren","minuten","seconden") ;
		for(i = 0;i < qqt.length;i++)
		{
		  if(isNaN(qqt[i])){ alert("De " + s1[i] + "tal is niet numeriek") ;return "";}
		}
		uur=parseInt(qqt[0],10);
		if(uur < 0 || uur > 23) {
		  alert("De urental moet de waarde tussen 0 en 23 hebben." );return "";
		}
		min=parseInt(qqt[1],10); 
		if(min < 0 || min > 59) {
		  alert("De minutental moet de waarde tussen 0 en 59 hebben." );return "";
		}
		sec=parseInt(qqt[2],10); 
		if(sec< 0 || sec > 59) {
		  alert("De secondental moet de waarde tussen 0 en 59 hebben." );return "";
		}
	} //tijd != ""
		  
	// Hier bouwen we op de string in de internationaal formaat van de elementen van qqd 
	// en van nullen of elementen van qqt
 /**/
 
	//retval= dag.toString() + "-" + maand.toString() + "-" + jaar.toString();
	retval = dag.toString() + "/" + maand.toString() + "/" + jaar.toString();
	if(tijd != "")
	 retval += " " + uur.toString() + ":" + min.toString()+ ":" + sec.toString() ;
  if(msec != "")
   retval += "." + msec.toString();
	// alert("Retval: " + retval + " from: " + datumtijd);
	// return(""); //deb:
	return retval;
	
}  // end checkdate(new)
function checktelefoon(veld, prompt)
{
var len, i, ch, count

  if(trim(veld) == "")
    return true;
    
  //spaties weg
  veld.value = trim(veld);
	len = veld.value.length;
	
	count = 0;
	for(i = 0; i < len; i++ ) {
	  ch = veld.value.substring(i, i+1);
	  if(ch >= '0' && ch <= '9') {
	    count++;
	  } else {
	    if(ch != ' ' && ch != '-') {
	      if(i == 0) {
	        alert("Telefoonnummer moet beginnen met een cijfer");
	      } else {
	        alert("Alleen spaties of - toegestaan tussen de cijfers");
	      }
	      veld.focus();
	      return(false);
	    }
	  } 
	}
	if(count < 10) {
	  alert("Telefoonnummer moet tenminste 10 getallen bevatten, eventueel met spaties of - " );
	  veld.focus();
	  return(false);
	}
	return true;
}	  
function checkdateold(datum) {

    // checkdate controleert op een Nederlandse datum
    // (DD-MM-JJJJ). Het scheidingsteken is het eerste
    // niet numerieke karakter. Dit mag meer dan een keer
    // voorkomen.
    // Als de datum correct is dan geeft de functie
    // een Universal Date string terug (YYYY/MM/DD),
    // anders wordt een lege string terug gegeven.

    // alert("checkdate in formlib: datum = '" + datum + "'" );
    // Bepaal scheider
    cSeparator = '-';
    bSeparatorFound = false;
    for( i = 0; i < datum.length; i++ ) {
        c = datum.charAt(i);
        if( isNaN(parseInt(c,10)) ) {
            if( bSeparatorFound ) {
                if( cSeparator == c ) {
                    // OK, nog een separator gevonden
                } else {
                    alert( "Niet numeriek karakter ("
                    + c + ") ongelijk aan het scheidingsteken ("
                    + cSeparator + ") gevonden" );
                    return "";
                }
            } else {
                cSeparator = c;
                bSeparatorFound = true;
            }
        }
    }
    //alert( "Sep = <" + cSeparator + ">");
    loc1=datum.indexOf(cSeparator);
    loc2=datum.indexOf(cSeparator,loc1+1);
    //
    // Formaat: (D)D-(M)M-YYYY
    // Dag
    dag=parseInt(datum.substring(0,loc1));
    if( isNaN(dag) ) {
		alert("Dag is niet numeriek");
        return "";
    }
    // Maand
    maand=parseInt(datum.substring(loc1+1, loc2));
    if( isNaN(maand) ) {
		alert("Maand is niet numeriek");
        return "";
    }
	if((maand < 1) || (maand > 12)) {
		alert("Maand is niet geldig");
        return "";
	}
	// Jaar
    jaar=parseInt(datum.substring(loc2+1));
    if( isNaN(jaar) ) {
		alert("Jaar is niet numeriek");
        return "";
    }
	if(jaar < 1800) {
		alert("Jaar is te klein");
        return "";
	}
	if(jaar > 2199) {
		alert("Jaar is te groot");
        return "";
	}
    //alert( "dag = " + dag + ", maand = " + maand + ", jaar = " + jaar );

    // Deelbaar door 4 schrikkeljaar,
    // deelbaar door 100 geen schrikkel jaar,
    // deelbaar door 1000 schrikkeljaar.
    schrikkel=jaar%4;
    if( schrikkel==0 ) {
        schrikkelHonderd=jaar%100;
        if( schrikkelHonderd==0 ) {
            schrikkelDuizend=jaar%1000;
            if( schrikkelDuizend==0 ) {
    	        schrikkel=0;
            } else {
    	        schrikkel=1;
    	    }
        }
    }
    //alert( "schrikkel (0=ja, anders=nee) = " + schrikkel );
	if((maand==1 && dag > 31)
	|| (maand==2 && dag > 28 & schrikkel>0)
	|| (maand==2 && dag > 29 & schrikkel==0)
	|| (maand==3 && dag > 31)
	|| (maand==4 && dag > 30)
	|| (maand==5 && dag > 31)
	|| (maand==6 && dag > 30)
	|| (maand==7 && dag > 31)
	|| (maand==8 && dag > 31)
	|| (maand==9 && dag > 30)
	|| (maand==10 && dag > 31)
	|| (maand==11 && dag > 30)
	|| (maand==12 && dag > 31)
	){
		alert("Dag is te groot");
        return "";
	}
	return jaar.toString() + "/" + maand.toString() + "/" + dag.toString();
} //end  checkdate(old)

function open_scherm(scherm,naam){
    // Parameter "naam", bevat window naam.
    newwin=open(scherm,naam,'fullscreen=no channelmode=no toolbar=no location=no directories=no status=no menubar=no scrollbars=yes resizable=yes width=700 height=500',true);
    newwin.focus();
}

function std_open_url(url) {
  var my_win;
  w=400;
  h=550;
  my_win=window.open(url,'help','scrollbars=yes,resizable=no,toolbar=no,menubar=no,status=no,width=' + w + ',height=' + h);    
  my_win.focus();
  return my_win;
}
