/* init vars */
  var ie              = (navigator.appName.indexOf('Internet Explorer') != '-1');
  var regExp1         = new RegExp('[a-zA-Z]');
  //var regExpPC        = /^\d{4} ?[a-z]{2}$/i;
  var regExpPC        = /^[1-9]\d{3}\s[A-Z]{2}$/
  var regExpLidnr     = /^([0-9][0-9])+\.([0-9][0-9][0-9])+$/;
  var regExpBirthDate = /^\d{2}\-\d{2}\-\d{4}$/;
  var regExpEmail     = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
  var regExpYear      = /^\d{4}$/;
  var regExpPhone     = /^\d{10}$/;
  var error           = false;
  
  /* determine required educations */
  function validateEducations() {
    error = true;
    var argvalues = '';
    var formFields = document.getElementById('holder_0');
    formFields = formFields.getElementsByTagName('input');
    formLength = formFields.length;
    
    for (i = 0, j=0, k=0; i < formLength; i++) {
      if ((formFields[i].className).indexOf('medischebasiskennis')>= 0) {
        if (formFields[i].value != '') {
          j++;
          if (regExpYear.test(formFields[i].value)) {
            error = false;
          }
          else {
            error = true;
          }
        }
      } else {
        if (formFields[i].value != '') {
          if ((formFields[i].type) != 'button') {
            k++;
          }
        }
      }
    }
    if(k == 0 ) {
      error = true;
    }
    if (error) {
      alert ('U voldoet niet aan de opleidingscriteria van de VNT, tenminste Medische Basiskennis en een  is vereist.');
    } else {
      $('.holder_0').hide();
      $('.holder_1').show();
    }
  }
  
   /* determine required fields (check the classname) */
  function validateEvents() {
    var validForm = new Array();
    var formFields = document.getElementById('holder_events');
    var reqCount = 0;
    formSpans = formFields.getElementsByTagName('span');
    for(i=0, k=0; i<formSpans.length; i++) {
      if(formSpans[i].className == 'required') {
        reqCount++;
        formFields = formSpans[i].getElementsByTagName('input');
        formLength = formFields.length;
        
        for(j=0; j<formLength; j++) {
          //alert(formFields[j].checked);
          if(formFields[j].checked == true) {
            validForm[k] = true;
            k++;
          }
        }
      }
    }
    if (validForm.length >= reqCount) {
      //alert('Uw inschrijving voor het evenement wordt verstuurd.');
      
      var agree = confirm("Uw inschrijving wordt naar de VNT verstuurd. In de stap hierna kunt u de betaling via iDeal doen.\nIndien u de inschrijving nu niet wilt voltooien klik dan hieronder op 'annuleren' of 'cancel'.)");
      if (agree) {
        document.eventform.submit();
      } else  {
        alert('De inschrijving is geannuleerd.')
      }

      
      
    } else {
      alert('Vul a.u.b. alle verplichte velden in.')
    }
  }
  
  var DevOrProduction = '';
  
  /* determine required fields (check the classname) */
  function validateForm(s, DP) {
    DevOrProduction = DP;
    error = false;
    chosen = '';
    radio = 0;

    // detect all labels and formfields within holder
    var formFields = document.getElementById('holder_'+s);
    formLabels = formFields.getElementsByTagName('label');
    formFields = formFields.getElementsByTagName('input');
    formLength = formFields.length;
    
    for (i=0; i<formLength; i++) {
      if(formFields[i].type=='radio') {
        radio++;
        var newspan = document.createElement("span");
        newspan.className = 'error';
        transform(formFields[i].id, formFields[i].value, formLabels[i])
        if(formFields[i].checked) {
           chosen = formFields[i].value;
        }
      }

      formClass = formFields[i].className;
      // check if classname containes required
      if (formClass.indexOf('required') != '-1') {
        var label = formLabels;
        //if(formFields[i].type!='radio') {
          transform(formFields[i].id, formFields[i].value, formLabels[i])
        //}
      }
    }
    //check of de radiobuttons zijn aangeklikt
    if (radio > 0 && chosen == '') {
      error = true;
      if (!document.getElementById('span_radio'+s)) {
        document.getElementById('labelspan'+s).appendChild(newspan);
        newspan.id = 'span_radio'+s;
        newspan.innerHTML = "&nbsp;&nbsp;(er is geen button aangeklikt)";
      }  
    } else {
      var newval = '';
      // remove span from label
      if (document.getElementById('span_radio'+s)) {
        document.getElementById('labelspan'+s).removeChild(document.getElementById('span_radio'+s));
      }
    }
  // proceed only if form is valid
    if (!error) {
      $('.holder_'+s).hide();
      $('.holder_'+(s+1)).show();
      if(s==2) {
        
        processForm(this);
        
      }
    }
  }
  
  function processForm(){
    var data = $("#inschrijven").formSerialize();
    $.ajax({ 
      type: "POST", 
      url: "procesinschrijving.php", 
      data: data, 
      success: function(msg){
        $('#resultaat').html(msg); 
        // moved ideal button to procesinschrijving.php - $('#iDeal').show('slow');
      }
    });
  }
 
      /* transform required fields ( called from validateForm() ) */
  function transform(s, val, l) {
    // create span element for error messages in label
    var newspan = document.createElement("span");
    newspan.className = 'error';
    s = s.toLowerCase();
    s_conf = (s.substring((s.indexOf('_')+1), s.length));
    // check required elements
    switch (s_conf) {
      case "voorletters":
        // regular expression
        if (!regExp1.test(val)) {
          error = true;
          // append span to label
          if (!document.getElementById('span_'+s)) {
            l.appendChild(newspan);
            newspan.id = 'span_'+s
            newspan.innerHTML = "&nbsp;&nbsp;(U heeft iets niet, of niet goed ingevuld)";
          }      
        } else {
          var newval = '';
          // remove span from label
          if (document.getElementById('span_'+s)) {
            l.removeChild(document.getElementById('span_'+s));
          }
          // clean up and convert value
          val = val.toUpperCase();
          val = val.replace(new RegExp(" ", "g"), "");
          val = val.replace(new RegExp("\\.", "g"), "");
          var temp = new Array();
          temp =val.split('');
          // separate values with dots and spaces
          for (i=0; i<temp.length; i++) {
            newval += (i==(temp.length-1))?temp[i]+'.':temp[i]+'. ';
          }
          // cleaned up value is returned at the and of this function
          val = newval;
        }
      break;
      case "tussenvoegsel":
        val=val;
      break;
      case "postcode":
        // regular expression
        if(!regExpPC.test(val)) {
          error = true;
          // append span to label
          if (!document.getElementById('span_'+s)) {
            l.appendChild(newspan);
            newspan.id = 'span_'+s
            newspan.innerHTML = "&nbsp;&nbsp;(U heeft iets niet, of niet goed ingevuld)";
          }
        } else {
          // remove span from label
          if (document.getElementById('span_'+s)) {
            l.removeChild(document.getElementById('span_'+s));
          }
          // clean up and convert value
          val = val.toUpperCase();
          if(val.length == 6) {
            val = val.substring(0,4)+' '+val.substr(4,2);
          }
        }
      break; 
      case "emailadres":
        // regular expression
        if(!regExpEmail.test(val)) {
          error = true;
          // append span to label
          if (!document.getElementById('span_'+s)) {
            l.appendChild(newspan);
            newspan.id = 'span_'+s
            newspan.innerHTML = "&nbsp;&nbsp;(U heeft iets niet, of niet goed ingevuld)";
          }
        } else {
          // remove span from label
          if (document.getElementById('span_'+s)) {
            l.removeChild(document.getElementById('span_'+s));
          }
          // clean up and convert value
          val = val.toLowerCase();
        }
      break;
      case "geboortedatum":
        // regular expression
        if(!regExpBirthDate.test(val)) {
          error = true;
          // append span to label
          if (!document.getElementById('span_'+s)) {
            l.appendChild(newspan);
            newspan.id = 'span_'+s
            newspan.innerHTML = "&nbsp;&nbsp;(U heeft iets niet, of niet goed ingevuld)";
          }
        } else {
          // remove span from label
          if (document.getElementById('span_'+s)) {
          l.removeChild(document.getElementById('span_'+s));
          }                     
        }
      break;

      case "telefoonnummer":
        // regular expression
        if(!regExpPhone.test(val)) {
          error = true;
          // append span to label
          if (!document.getElementById('span_'+s)) {
            l.appendChild(newspan);
            newspan.id = 'span_'+s
            newspan.innerHTML = "&nbsp;&nbsp;(U heeft iets niet, of niet goed ingevuld. Let op, alleen cijfers zijn toegestaan)";
          }
        } else {
          // remove span from label
          if (document.getElementById('span_'+s)) {
          l.removeChild(document.getElementById('span_'+s));
          }                     
        }
      break;
            
      default : 
        //alert("default is "+val);
        if (val=='') {
          error = true;
          if (!document.getElementById('span_'+s)) {
            l.appendChild(newspan);
            newspan.id = 'span_'+s
            newspan.innerHTML = "&nbsp;&nbsp;(U heeft iets niet, of niet goed ingevuld)";
          }
        } else {
          val = val.substr(0, 1).toUpperCase() + val.substr(1).toLowerCase();
          // remove span from label
          if (document.getElementById('span_'+s)) {
            l.removeChild(document.getElementById('span_'+s));
          }
        }
      }
    // return value to document element
    document.getElementById(s).value = val;
  }

  var formArr = new Array('straatnaam','huisnummer','postcode','woonplaats','telefoonnummer','mobielnummer','faxnummer','emailadres','provincie');
  function copyData() {
    // copy fields from previous form
    for(i=0; i<formArr.length; i++) {    
      document.getElementById('praktijk_'+formArr[i]).value = document.getElementById(formArr[i]).value;
    }
  }
  
  function validateLogin() {
    var lidnrval = (document.getElementById('login_lidnummer').value);
    var pcval    = (document.getElementById('login_postcode').value);
    var loginerror = false;
    
    if (!regExpLidnr.test(lidnrval)) {
      alert('Er zit een fout in het wachtwoord');
      loginerror = true;
    }
    
    if (!regExpPC.test(pcval)) {
      alert('Er zit een fout in de postcode');
      loginerror = true;
    }
    
    if (!loginerror) {
      processLogin(this);
    }
  }
  
  function processLogin(){
    var data = $("#inloggen").formSerialize();

    $('.#resultaat').html('<div style="padding: 20px; text-align: center;" id="loader"><img src="assets/gfx/ajax-loader.gif" alt="loading" /><p><strong>Uw gegevens worden gecontroleerd. Een moment geduld alstublieft...</strong></p></div></div>');
    $('.#resultaat').slideDown("slow");
    $.ajax({ type: "POST", url: "proceslogin.php", data: data, success: function(msg){ $('#resultaat').html(msg); } });
  }
  
  function logOut(){
    var data = '';
    $('.#resultaat').slideDown("slow");
    $.ajax({ type: "POST", url: "proceslogout.php", data: data, success: function(msg){ $('#resultaat').html(msg); setTimeout("location.href = 'index.php?id=17'", 5000); } });
  }
  
  var dataCollect = '';
  function collectData() {
    formdata = ($("#inschrijven").formSerialize())
    formdata = formdata.split("&");
    formoutput = '';
    for (i=0; i<formdata.length; i++) {
      
      tempoutput = formdata[i];
      //tempoutput = tempoutput.replace('=',': ');
      //tempoutput = tempoutput.replace('%40','@');
      // global replace spaces
      //tempoutput = tempoutput.replace(/%20/g, ' ');
      tempoutput = unescape(tempoutput);      
      tempoutput = tempoutput.replace('praktijk_','');
      
      // hack to create header
      if (formdata[i].indexOf('geslacht') != -1) formoutput += '<h2>Persoonlijke gegevens</h2>';
      if (formdata[i].indexOf('praktijknaam') != -1) formoutput += '<h2>Praktijkgegevens</h2>';      
      formoutput += tempoutput + '<br />';
    }
    document.getElementById('data_form1').innerHTML = formoutput;  
  }
  
  function scrollTop() {
    scroll(0,0);  
  }