/* $Id: inslener.js,v 1.11 2008/10/29 10:39:21 martijn Exp $ */
/* baseert zich op net.js en validate.js */
function checkPIN1() {
  var p1=document.getElementById('input_pincode1').value;
  if (p1.length>0 && p1.length<4) {
    warn_field('pincode1','Een pincode bestaat uit 4 cijfers');
  } else if (!isInteger(p1)) {
    warn_field('pincode1','Een pincode bestaat uit 4 cijfers');
  } else if (p1=='9999') {
    warn_field('pincode1','Deze waarde is niet toegestaan');
  } else {
    warn_field('pincode1','');
  }
}

function isInteger(val){
  if (isBlank(val)){return false;}
  for(var i=0;i<val.length;i++){
    if(!isDigit(val.charAt(i))){return false;}
  }
  return true;
}
function isBlank(val){
  if(val==null){return true;}
  for(var i=0;i<val.length;i++) {
    if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
  }
  return true;
}
function isDigit(num) {
  if (num.length>1){return false;}
  var string="1234567890";
  if (string.indexOf(num)!=-1){return true;}
  return false;
}

function checkPIN2() {
  var p1=document.getElementById('input_pincode1').value;
  var p2=document.getElementById('input_pincode2').value;
  if (p1.length==4 && p2.length>0 && p1!=p2) {
    warn_field('pincode2','pincodes stemmen niet overeen');
    return;
  } else {
    warn_field('pincode2','');
    return;
  } 
}

function updPostcode() {
  var p=document.getElementById('input_postcode');
  p.value = p.value.toUpperCase();
}

function updVoorletters() {
  var p=document.getElementById('input_voorletters');
  p.value = p.value.toUpperCase();
}

function updAchternaam() {
  var p=document.getElementById('input_achternaam');
  p.value = p.value.substr(0,1).toUpperCase() + p.value.substr(1);
}

function checkVoorletters() {
  var p=document.getElementById('input_voorletters').value;
  if (p.length==0) {
    warn_field('voorletters','Graag voorletters invullen');
    return;
  } else {
    warn_field('voorletters','');
    return;
  } 
}
function checkAchternaam() {
  var p=document.getElementById('input_achternaam').value;
  if (p.length==0) {
    warn_field('achternaam','Graag achternaam invullen');
    return;
  } else {
    warn_field('achternaam','');
    return;
  } 
}

function checkMV() {
    warn_field('mv','');
    return;
}

function checkEmail() {
  var p=document.getElementById('input_email').value;
  if (p.length==0) {
    warn_field('email','Graag email adres invullen');
    return;
  } else {
    warn_field('email','');
    return;
  } 
}

function GebDatKey(e){
  var keynum;
  var keyboardchars = /[\x00\x08]/;
  var validnum = new RegExp("[0-9]");
  var validnext = new RegExp("[,.-]");
  if(window.event) // IE
  {
    keynum = e.keyCode;
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
    keynum = e.which;
  }
  var keychar = String.fromCharCode(keynum);
  if (validnext.test(keychar)) {
    document.getElementById('input_gebdat_jaar').focus();
    return false;
  } else {	
    if (!validnum.test(keychar) && !keyboardchars.test(keychar)) {
      return false;
    } else {
      return keychar;
    }
  }
}

function checkGebDat() {
  var dag=document.getElementById('input_gebdat_dag').value;
  var maand=document.getElementById('input_gebdat_mnd').value;
  var jaar=document.getElementById('input_gebdat_jaar').value;

  if (dag.length==0 && maand.length==0 && jaar.length==0) {
    warn_field('gebdat','');
    return;
  }
  if (dag<1 || dag>31 || maand<1 || maand>31 || jaar<1900) {
    warn_field('gebdat','niet correct/volledig');
    // NOK
  } else {
    warn_field('gebdat','');
    // OK
  }
}

function checkPCHN() {
  var pc=document.getElementById('input_postcode').value;
  var hn=document.getElementById('input_huisnum').value;
  if (pc.length>5 && hn.length>0) {
    var loader=new net.ContentLoader('/cgi-bin/bx.pl?sid=99999;event=pc_check;postcd1='+pc+';huisnr1='+hn,parseXML);
  } 
}
function parseXML() {
  var st;
  var pl;
  var br;
  var stat;
  var msg='';
  var xmlDoc=this.req.responseXML;
  var elDocRoot=xmlDoc.getElementsByTagName("pcc")[0];
  if (elDocRoot){
    for(i=0;i<elDocRoot.childNodes.length;i++){
      elChild=elDocRoot.childNodes[i];
      if (elChild.nodeType==1 && elChild.tagName=="stat"){
        stat = elChild.firstChild.nodeValue;
      }
      if (elChild.nodeType==1 && elChild.tagName=="msg"){
        msg = elChild.firstChild.nodeValue;
      }
      if (elChild.nodeType==1 && elChild.tagName=="st"){
        // check op elChild.firstChild to exist
        st = elChild.firstChild.nodeValue;
      }
      if (elChild.nodeType==1 && elChild.tagName=="pl"){
        pl = elChild.firstChild.nodeValue;
      }
      if (elChild.nodeType==1 && elChild.tagName=="br"){
        br = elChild.firstChild.nodeValue;
      }
    }
    if (stat.length>0 && stat==0) {
      if (st.length>0 && pl.length>0) {
        var st_el=document.getElementById('input_straat');
        var pl_el=document.getElementById('input_plaats');
        st_el.value = st;
        pl_el.value = pl;
        if (br=='T') {
          st_el.disabled=true;
          pl_el.disabled=true;
          warn_field('straat','opgezocht')
          warn_field('plaats','opgezocht')
          warn_field('postcode','');
          warn_field('huisnum','');
          // anders gaan we naar input_telefoon, toch?
        } else {
          st_el.disabled=false;
          pl_el.disabled=false;
          warn_field('straat','')
          warn_field('plaats','')
          warn_field('postcode','');
          warn_field('huisnum','');
	  st_el.focus();
        }
      }
    } else {
      if (msg.length==0) {
        msg='Postcode niet toegestaan';
      }
      var pc_el=document.getElementById('input_postcode');
      warn_field('postcode',msg);
      pc_el.focus();
    }
  } else {
    alert('no doc');
  }
}

function _submit() {
  var st_el=document.getElementById('input_straat');
  var pl_el=document.getElementById('input_plaats');
  st_el.disabled=false;
  pl_el.disabled=false;
  document.forms['inslener1form'].submit();
}

function _confirm_annulering(t,f) {
  if (confirm(t)) {
    goMain();
  }
}

function warn_field (f,m) {
  var st_el=document.getElementById('warn_'+f);
  st_el.innerHTML = m;
}

function _reset_field(f) {
  var st_el=document.getElementById('input_'+f);
  st_el.value='';
  st_el.disabled=false;
  warn_field(f,'');
}

function _reset() {
  _reset_field('postcode');
  _reset_field('huisnum');
  _reset_field('straat');
  _reset_field('plaats');
  var st_el=document.getElementById('input_postcode');
  st_el.focus();
}

function get_form_encoded_value(parm) {
  var id_name = '_'+parm;
  var e_parm = document.getElementById(id_name);
  if (e_parm != null) {
    return e_parm.value;
  } else {
    return '';
  }
}
// grab the basic parameters and compose a basic url from it
function mkbaseurl() {
  var sid_val = get_form_encoded_value('sid');
  var ingang_val = get_form_encoded_value('ingang');
  var vestnr_val = get_form_encoded_value('vestnr');
  var vestfx_val = get_form_encoded_value('vestfx');
  var prt_val = get_form_encoded_value('prt');
  var cdef_val = get_form_encoded_value('cdef');
  var srvnum_val = get_form_encoded_value('srvnum');
  var taal_val = get_form_encoded_value('taal');
  var sn_val = get_form_encoded_value('sn');
  var fmt_val = get_form_encoded_value('fmt');
  var xvar_val = get_form_encoded_value('var');
  var dgc_val = get_form_encoded_value('dgc');

  var url = '/cgi-bin/bx.pl?';
  url +=   'sid='+sid_val;
  url +=  ';ingang='+ingang_val;
  url +=  ';vestnr='+vestnr_val;
  url +=  ';vestfx='+vestfx_val;
  url +=  ';prt='+prt_val;
  url +=  ';cdef='+cdef_val;
  url +=  ';srvnum='+srvnum_val;
  url +=  ';taal='+taal_val;
  url +=  ';sn='+sn_val;
  url +=  ';fmt='+fmt_val;
  url +=  ';var='+xvar_val;
  url +=  ';dgc='+dgc_val;
  return url;
}
// grab the parameters and compose a url and change the location to that url
function goMain() {
  var url = mkbaseurl();
  url += ';event=main';
  document.location = url;  
}
