  window.onload = init;

  var root = '';
  var home, home_on, nieuws, nieuws_on, acties, acties_on, boerhof, boerhof_on, projecten, projecten_on, showroom, showroom_on;
  var woonideeen, woonideeen_on, service, service_on, contact, contact_on, route, route_on;

  function init(){
    // Preload menuimages
    home  = newImage(root + 'images/menu/home.gif');
    home_on  = newImage(root + 'images/menu/home_on.gif');
    nieuws  = newImage(root + 'images/menu/nieuws.gif');
    nieuws_on  = newImage(root + 'images/menu/nieuws_on.gif');
    acties  = newImage(root + 'images/menu/acties.gif');
    acties_on  = newImage(root + 'images/menu/acties_on.gif');
    boerhof = newImage(root + 'images/menu/boerhof.gif');
    boerhof_on = newImage(root + 'images/menu/boerhof_on.gif');
    projecten = newImage(root + 'images/menu/projecten.gif');
    projecten_on = newImage(root + 'images/menu/projecten_on.gif');
    showroom = newImage(root + 'images/menu/showroom.gif');
    showroom_on = newImage(root + 'images/menu/showroom_on.gif');
    woonideeen = newImage(root + 'images/menu/woonideeen.gif');
    woonideeen_on = newImage(root + 'images/menu/woonideeen_on.gif');
    service = newImage(root + 'images/menu/service.gif');
    service_on = newImage(root + 'images/menu/service_on.gif');
    contact = newImage(root + 'images/menu/contact.gif');
    contact_on = newImage(root + 'images/menu/contact_on.gif');
    route = newImage(root + 'images/menu/route.gif');
    route_on = newImage(root + 'images/menu/route_on.gif');

    // Hang eventhandlers aan de menuitems
    if( document.getElementById('menu')){
      var menuItems = document.getElementById('menu').getElementsByTagName('a');

      for(i=0; i<menuItems.length; i++){
        if( menuItems[i].name != currentLoc){
          menuItems[i].onmouseover  = menuItems[i].onmouseout   = toggleMenu;
          menuItems[i].onclick = clickMenu;
        }else{
          menuItems[i].parentNode.className = 'hover';
        }
      }
    }

  }

  function toggleMenu(){
    var li = this.parentNode;
    if( li.className == ''){
      li.className = 'hover';
      this.firstChild.src = eval( this.name + '_on.src');
    }else{
      li.className = '';
      this.firstChild.src = eval( this.name + '.src');
    }
  }

  function clickMenu(){
    var li = this.parentNode;
    li.className = 'hover';
  }

  function newImage(arg) {
    if (document.images) {
      rslt = new Image();
      rslt.src = arg;
      return rslt;
    }
  }


 function toonRondleiding(){
    var popup, url;

    url = 'showroom/rondleiding.asp';
    popup = window.open( url, 'popup', 'scrollbars=no,resizable=no,menubar=no,status=no,width=250,height=200');
    popup.focus();
  }


 function showroommodellen(){
    var popup, url;

    url = 'acties/showroommodellen.asp';
    popup = window.open( url, 'popup', 'scrollbars=no,resizable=no,menubar=no,status=no,width=450,height=358');
    popup.focus();
  }


  function controleer(){
    var frm = document.formulier;
    var foutmelding = '';

    if( isLeeg( frm.naam.value)) {
      foutmelding = 'U heeft geen naam ingevoerd';
    }
    else if(isLeeg( frm.adres.value)){
      foutmelding = 'U heeft geen adres ingevoerd';
    }
    else if(!isPostcode( frm.postcode.value)){
      foutmelding = 'U heeft geen of een onjuiste postcode ingevoerd';
    }
    else if(isLeeg( frm.plaats.value)){
      foutmelding = 'U heeft geen woonplaats ingevoerd';
    }
    else if( isLeeg( frm.telefoon.value)){
      foutmelding = 'U heeft geen telefoonnummer ingevoerd';
    }
    else if( !isLeeg( frm.telefoon.value) && !isTelefoonnummer( frm.telefoon.value)){
      foutmelding = 'U heeft een onjuist telefoonnummer ingevoerd';
    }
    else if( !isLeeg( frm.email.value) && !isGeldigEmailadres( frm.email.value)){
      foutmelding = 'U heeft een onjuist emailadres ingevoerd';
    }
    else if( frm.belmij[1].checked && isLeeg(frm.vraag.value)){
      foutmelding = 'U heeft geen vraag ingevoerd';
    }

    if ( foutmelding != '') {
      alert( foutmelding);
      return false;
    } else{
      return true;
    }
  }


  function controleerFolderForm(){
    var frm = document.formulier;
    var foutmelding = '';

    if( !frm.folder_woonimpressie.checked && !frm.folder_novastyl.checked && !frm.folder_stijlenklasse.checked){
      foutmelding = 'U heeft geen folder gekozen';
    }
    else if( isLeeg( frm.naam.value)) {
      foutmelding = 'U heeft geen naam ingevoerd';
    }
    else if(isLeeg( frm.adres.value)){
      foutmelding = 'U heeft geen adres ingevoerd';
    }
    else if(!isPostcode( frm.postcode.value)){
      foutmelding = 'U heeft geen of een onjuiste postcode ingevoerd';
    }
    else if(isLeeg( frm.plaats.value)){
      foutmelding = 'U heeft geen woonplaats ingevoerd';
    }
    else if( !isLeeg( frm.email.value) && !isGeldigEmailadres( frm.email.value)){
      foutmelding = 'U heeft een onjuist emailadres ingevoerd';
    }

    if ( foutmelding != '') {
      alert( foutmelding);
      return false;
    } else{
      return true;
    }
  }


  function controleerBelForm(){
    var frm = document.belformulier;
    var foutmelding = '';

    if( isLeeg( frm.naam.value)) {
      foutmelding = 'U heeft geen naam ingevoerd';
    }
    else if( isLeeg( frm.telefoon.value)){
      foutmelding = 'U heeft geen telefoonnummer ingevoerd';
    }

    if ( foutmelding != '') {
      alert( foutmelding);
      return false;
    } else{
      return true;
    }
  }


  function projectPopup(afbeelding){
    var popup, xMax, yMax, xOffset, yOffset;

    if (!document.layers) {
        xMax = screen.width;
        yMax = screen.height;
    }
    else {
        xMax = window.outerWidth;
        yMax = window.outerHeight;
    }

    xOffset = (xMax - 400)/2;
    yOffset = (yMax - 300)/2;

    var projectFoto = window.open('','projectFoto','resizable=no,width=400,height=300,scrollbars=no,screenX='+xOffset+',screenY=' + yOffset + ',top='+yOffset+',left='+xOffset);
    projectFoto.document.write("<ht" + "ml><h" + "ead><ti" + "tle>Uitvergroting</titl" + "e>\n\n</h" + "ead>\n\n<bo" + "dy style='margin:0;'><a href='#' onclick='window.close()' title='Sluit dit venster'><img src='" + afbeelding + "' border=0></bo" + "dy></h" + "tml>");
    projectFoto.document.close();
    projectFoto.focus();
  }


  function afbeelding(str){
    var str2 = str.split("/");
    return(str2[str2.length-1]);
  }


  function projectmap(str){
    var str2 = str.split("/");
    return(str2[str2.length-2]);
  }




  // isGeldigEmailadres( deString)    Controleert of de gegeven string een goed emailadres is
  //
  // returned                         true wanneer de string een geldig emailadres is
  //
  function isGeldigEmailadres( deString){
      var EmailOk  = true
      var AtSym    = deString.indexOf('@')
      var Period   = deString.lastIndexOf('.')
      var Space    = deString.indexOf(' ')
      var Length   = deString.length - 1   // Array is from 0 to length-1

      if ((AtSym < 1) ||                   // '@' cannot be in first position
      (Period <= AtSym+1) ||               // Must be atleast one valid char btwn '@' and '.'
      (Period == Length ) ||               // Must be atleast one valid char after '.'
      (Space  != -1))                      // No empty spaces permitted
      {
        EmailOk = false
      }
      return EmailOk;
  }

  // initialen   zet een string om in hoofdletters en zet er puntjes tussen als deze ontbreken
  //
  function initiaalKapitalen( str){
    var i;
    var nw;

    /* Null string wordt leeg */
    if( str == null) {
      return '';
    }

    str = String( str);
    nw = '';

    if( str.length >= 1) {
          for( i=0; i < str.length; i++) {
        nw += str.charAt(i).toUpperCase();
        /* zet een punt tussen 2 karakters die beide geen punt zijn */
            if ( (str.charAt(i) != '.') && (str.charAt( i+1) != '.')) {
              nw += '.';
            }
          }
    }

    return nw;
  }


  // Controleert de postCode aan de hand van het gegeven formaat
  // Wanneer de postcode klopt, wordt de (eventueel) opnieuwe geformateerde postcode teruggegeven
  // Wanneer hij niet klopt wordt de waarde null teruggegeven
  //
  function postcodeOK( postcode, formaat)    {
      var goed, pcPos, pcChar, fmtPos, fmtChar, nieuw;

      /* Lege formaat string? dan is alles goed */
      if( formaat == null  ||  formaat == '') return postcode;

      nieuw = '';
      fmtPos = 0;
      pcPos  = 0;
      goed   = true;
      while( fmtPos < formaat.length  &&  pcPos <= postcode.length  &&  goed) {
          fmtChar = formaat.charAt( fmtPos);
          pcChar  = postcode.charAt( pcPos);
          kopieer = true;

          if( fmtChar == '9') {
              goed = (pcChar >= '0' &&  pcChar <= '9');
          }
          else if( fmtChar == 'a' ||  fmtChar == 'A') {
              goed = ((pcChar >= '0'  &&  pcChar <= '9')  ||  (pcChar >= 'a' &&  pcChar <= 'z')  ||  (pcChar >= 'A'  &&  pcChar <= 'Z'));
          }
          else if( fmtChar == '*') {          /* We hebben een ster, dus we zijn klaar, kopieer de rest van de postcode */
              nieuw  += postcode.substring( pcPos, postcode.length);
              fmtPos += 1;
              pcPos   = postcode.length;
              kopieer = false;
          }
          else if( fmtChar != pcChar) {       /* We hebben niet het gewenst format character, dus voeg het toe aan de nieuwe */
              nieuw  += fmtChar;
              fmtPos += 1;
              kopieer = false;
          }

          if( goed  &&  kopieer) {
              nieuw += pcChar;
              pcPos += 1;
              fmtPos += 1;
          }
      }

      goed = (pcPos == postcode.length  &&  fmtPos == formaat.length);

      return (goed ? nieuw : null);
  }

  // isNummer( nummer)    Controleert of de gegeven string een juist nummer is
  //
  // returned             true wanneer het een goed nummer is anders false
  //
  function isNummer( nummer){
      var i;

      nummer = trim( nummer);

      /* Een leeg nummer is geen nummer */
      if( isLeeg( nummer))     return false;

      /* Kijk of het nummer alleen uit cijfers bestaat */
      for( i = 0; i < nummer.length; i++) {
            if( nummer.charAt(i) < '0'  ||  nummer.charAt(i) > '9')    return( false);
      }

      /* Geen fout gevonden */
      return( true);
  }

  // isLeeg( string)    Controleert of de gegeven string leeg is of alleen maar spaties bevat
  //
  // returned           true wanneer de string leeg is anders false
  //
  function isLeeg( deString){
      return( trim( deString).length == 0);
  }

  // trim( string)     Haalt alle spaties aan het begin en het eind van een string weg
  //
  function trim( deString)
  {
      deString = String( deString);

      /* Verwijder alle spaties aan het begin */
      while( isSpatie( deString.charAt(0))) {
          deString = deString. substring( 1, deString.length);
      }

      /* Verwijder de spaties aan het eind */
      while( isSpatie( deString.charAt( deString.length - 1))) {
          deString = deString.substring( 0, deString.length - 1);
      }

      return( deString);
  }


  // isSpatie()   Controleer of het karakter een spatie, tab of nieuwe regel is
  //
  function isSpatie( karakter)    {
      karakter = String( karakter);

      return( karakter == ' '   ||   karakter == '\n'  ||  karakter == '\r'  ||  karakter == '\t');
  }


  // eersteKapitaal    Maakt van de eerste letter in de gegeven string en hoofdletter en geeft de nieuwe string terug
  function eersteKapitaal( str){
      var nw;

      /* Null string wordt leeg */
      if( str == null) {
          return '';
      }

      str = String( str);
      nw = '';

      /* Eerste letter wordt hoofdletter */
      if( str.length >= 1) {
          nw += str.charAt(0).toUpperCase();
      }

      /* Rest zo laten */
      if( str.length >= 2) {
          nw += str.substr( 1, str.length - 1);
      }

      return nw;
  }


  function isTelefoonnummer( str) {
      return str.match( /^[^A-Za-z]+$/);
  }

  function isPostcode( str) {
      return str.match( /^\d{4} ?[A-Z]{2}$/i);
  }

/*
 * isDatum( dag, maand, jaar)    Controleert of de gegevens strings samen een juiste datum vormen
 *
 * returned                      true wanneer het een goed datum is anders false
 */

function isDatum( dag, maand, jaar)
{
    var dagenInMaand =  new Array( 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

    /* Als alle waarden leeg zijn beschouwen we dit als een goede datum */
    if( dag == ''  &&  maand == ''  &&  jaar == '')     return true;

    /* Controleer eerst of het allemaal nummers zijn */
    if( !isNummer( dag)  ||  !isNummer( maand)  ||  !isNummer( jaar))    return( false);

    /* Controleer range van de maand */
    if( maand < 1  ||  maand > 12 )    return( false);

    /* Controleer het jaar */
    if( jaar < 1753  ||  jaar > 2100)  return( false);

    /* Controleer op een schrikkeljaar */
    if( maand == 2  &&  dag == 29) {
       if(!(jaar % 4 == 0  &&  (jaar % 100 != 0   ||  jaar % 400 == 0))) return false;    /* We hebben geen schrikkeljaar */
    }

    /* Controleer de dag */
    if( dag < 1  ||  dag > dagenInMaand[maand - 1])  return( false);

    /* Als we hier zijn is de datum goed */
    return( true);
}

