          function number_format( number, decimals, dec_point, thousands_sep ) {
  
    var n = number, prec = decimals;
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
    if (s.indexOf(dec) === -1 && prec > 1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}


function rand(l,u) // lower bound and upper bound
 {
     return Math.floor((Math.random() * (u-l+1))+l);
 }
    
 
 function stap1() {
      document.getElementById('stap').src= "http://hypotheek-check.nu/stap1.gif";  
    document.getElementById('stap2').style.display= "none";  
    document.getElementById('stap1').style.display= "block";  
   document.getElementById('errs').style.display= 'none';  
   
 }
 function stap1_3() {
      location.href='/offerte' 
   
 }
 
 function close_errs() {
      document.getElementById('errs').style.display ='none';
   
 }
 
 function validate (){
    var stap1 = document.getElementById('stap1');
    var stap1_s = document.getElementById('stap1_special');
    if (stap1_s.style.display == 'block'){
        
    }
    f_sm();
 }
 
 function f_sm(){
   var err ="";
   if(document.getElementById('maandinkomen').value == ''){
     err += "Uw maandinkomen is niet ingevuld.<br>";
     document.getElementById('maandinkomen').style.border ='1px solid red';
   }
   else if(checkNumeric(document.getElementById('maandinkomen'),0,6000000,'','','') == false ){
     err += "Uw maandinkomen is niet numeriek.<br>";
     document.getElementById('maandinkomen').style.border ='1px solid red';
   } 
   else{document.getElementById('maandinkomen').style.border ='1px solid green';}
   
   if(document.getElementById('reden').selectedIndex == 0){
     err += "U heeft geen fase opgegeven.<br />";
     document.getElementById('reden').style.border ='double red';
   } else {
     document.getElementById('reden').style.border ='1px solid green';
   }
   if(document.getElementById('partner').selectedIndex == 0){
     err += "U heeft niet aangegeven of u een partner heeft.<br>";
     document.getElementById('partner').style.border ='double red';
   } else {
     document.getElementById('partner').style.border ='1px solid green';
   }
   
   if(document.getElementById('geslacht').selectedIndex == 0){
     err += "Vult u astublieft uw geslacht in.<br>";
     document.getElementById('geslacht').style.border ='double red';
   }else {document.getElementById('geslacht').style.border ='double green';}
   
   
   if(document.getElementById('initialen').value == ''){
     err += "Uw initialen ontbreken.<br>";
     document.getElementById('initialen').style.border ='1px solid red';
   }else {document.getElementById('initialen').style.border ='1px solid green';}
   
   
   if(document.getElementById('aankoopsom').value == ''){
     err += "Uw gewenste hypotheeksom ontbreekt.<br>";
     document.getElementById('aankoopsom').style.border ='1px solid red';
   }else {document.getElementById('aankoopsom').style.border ='1px solid green';}
   
   if(document.getElementById('naam').value == ''){
     err += "Uw naam is nog leeg.<br>";
     document.getElementById('naam').style.border ='1px solid red';
   }else {document.getElementById('naam').style.border ='1px solid green';}
   
   if(document.getElementById('Geboortedatum_dag').selectedIndex == 0){
      err += "Uw geboortedag is nog leeg.<br>";
     document.getElementById('Geboortedatum_dag').style.border ='double red';
   }else {document.getElementById('Geboortedatum_dag').style.border ='double green';}
   
   if(document.getElementById('Geboortedatum_maand').selectedIndex == 0){
      err += "Uw geboortemaand is nog leeg.<br>";
     document.getElementById('Geboortedatum_maand').style.border ='double red';
   }else {document.getElementById('Geboortedatum_maand').style.border ='double green';}
   
   if(document.getElementById('Geboortedatum_jaar').selectedIndex == 0){
      err += "Uw geboortejaar is nog leeg.<br>";
     document.getElementById('Geboortedatum_jaar').style.border ='double red';
   }else {document.getElementById('Geboortedatum_jaar').style.border ='double green';}
   
   if(document.getElementById('straat').value == ''){
     err += "Uw straatnaam is nog leeg.<br>";
     document.getElementById('straat').style.border ='1px solid red';
   } else {document.getElementById('straat').style.border ='1px solid green';}
   
   if(document.getElementById('huisnr').value == ''){
     err += "Uw huisnummer is nog leeg.<br>";
     document.getElementById('huisnr').style.border ='1px solid red';
   } else {document.getElementById('huisnr').style.border ='1px solid green';}
   
   if(validatePostalCode(document.getElementById('postcode').value) == false){
     err += "Uw postcode is incorrect ingevuld.<br>";
     document.getElementById('postcode').style.border ='1px solid red';
   } else {document.getElementById('postcode').style.border ='1px solid green';}
   
   if(document.getElementById('woonplaats').value == ''){
     err += "Uw woonplaats is leeg.<br>";
     document.getElementById('woonplaats').style.border ='1px solid red';
   } else {document.getElementById('woonplaats').style.border ='1px solid green';}
   
   if(checkInternationalPhone(document.getElementById('tel').value) == false){
     err += "Uw telefoonnummer is niet correct, vul een 10-cijferig nummer in.<br>";
     document.getElementById('tel').style.border ='1px solid red';
     $('melding_telnr').style.display = 'block';
   } else {document.getElementById('tel').style.border ='1px solid green';
   $('melding_telnr').style.display = 'none';
   }
   setMinHeight();
   
    /*if(document.getElementById('rabo').selectedIndex == 0){
        if(document.getElementById('email').value == ''){
            document.getElementById('email').style.border ='1px solid red';
            err += "Uw emailadres is nodig om u een vrijblijvende berekening te sturen.<br>";
        }
    } else {
        document.getElementById('email').style.border ='1px solid green';
    }*/
   
    document.getElementById('errs').style.display= 'block';  
    document.getElementById('errs').innerHTML= err + '<br /><img src="images/close.png" alt="x" class="close" /> <span class="arrow"><!-- //--></span>';
    if(err != ''){return false; }
    
    //if something wrong with the lead... 
    
    if( $('changed_bruto').value != '') {
        var p =  $('changed_bruto').value;
    } else {
        var p = ($('bruto').value * 1) + ($('maandinkomen2').value * 1);
    }
    if(p != 0){
        var factor = $('aankoopsom').value / (p * 12.96 )
    }
    document.getElementById('errs').style.display= 'none';
    
    if(factor < 5.05){
        if (!$('akkoord').checked){
            openAkkoord();
            return;
        }
        document.getElementById('smallform').submit();
    } else {
        //als vragen al gesteld zijn Sm...
        if($('e_melding').style.display == 'block'){
            if (!$('akkoord').checked){
                openAkkoord();
                return;
            }
            document.getElementById('smallform').submit(); 
        }
        //end
        //div extra vragen
        var inkomens = ($('bruto').value * 1) + ($('maandinkomen2').value *1);
        $('stap1_special').style.display = 'block';
        $('stap1').style.display = 'none';
        $('melding1').style.display = 'none';
        $('but').style.marginLeft = '15px';
        $('terugbut').style.display = 'inline';
        $('opgegeven_inkomen').innerHTML = '(<b>&euro; '+ number_format(inkomens,0,",",".")+',-</b>) ';
        $('as').innerHTML = '(<b>&euro; '+ number_format($('aankoopsom').value,0,",",".")+',-</b>) ';
        $('e_melding').style.display ='block';
    }
 }
 
 function sendform() {
    $('akkoord').checked = true;
    boxie.hideBoxie();
    document.getElementById('smallform').submit();
 }
 function openAkkoord (){
    boxie.showBoxie();
 }
 
 function dontsend(){
    alert('Indien u niet akkoord gaat kunnen wij u niet verder helpen. Klik op OK en sluit uw scherm. Wij danken u voor uw interesse.');
    boxie.hideBoxie();
 }
 function f_back(){
   $('stap1_special').style.display = 'none';
   $('stap1').style.display = 'block';
   $('terugbut').style.display = 'none';
   $('but').style.marginLeft = '250px';
   $('e_melding').style.display = 'none';
 }
 
  
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
    var bracket=3
    strPhone=trim(strPhone)
    if(strPhone.indexOf("+")>1) return false
    if(strPhone.indexOf("-")!=-1)bracket=bracket+1
    if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
    var brchr=strPhone.indexOf("(")
    if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
    if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
    s=stripCharsInBag(strPhone, validWorldPhoneChars);
    if ((!isInteger(s) || s.length < minDigitsInIPhoneNumber)){
        return false;
    }
    
    var ret = strPhone.match(/^(([0]{2}){0,1}(((\+){0,1}(31){1})){1}){0,1}(\(0\)|0){0,1}(([1-9]{1}[0-9]{1}[\-]{0,1}[0-9]{7})|([1-9]{1}[0-9]{2}[\-]{0,1}[0-9]{6})|([1-9]{1}[0-9]{3}[\-]{0,1}[0-9]{5})|(6[\-]{0,1}[0-9]{8})){1}$/);
    return ret == null? false : true;
}
  
  function validatePostalCode(strPC) {
  return typeof strPC=='string'
    ?strPC.match(/[1-9][0-9]{3} ?[a-zA-Z]{2}/)==strPC
    :false;
}
  
function checkNumeric(objName,minval, maxval,comma,period,hyphen)
{
	var numberfield = objName;
	if (chkNumeric(objName,minval,maxval,comma,period,hyphen) == false)
	{
		numberfield.select();
		numberfield.focus();
		return false;
	}
	else
	{
		return true;
	}
}
 
 
function chkNumeric(objName,minval,maxval,comma,period,hyphen)
{
var checkOK = "0123456789" + comma + period + hyphen;
var checkStr = objName;
var allValid = true;
var decPoints = 0;
var allNum = "";

for (i = 0;  i < checkStr.value.length;  i++) {
    ch = checkStr.value.charAt(i);
    for (j = 0;  j < checkOK.length;  j++) 
        if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length) {
        allValid = false;
        break;
    }
    if (ch != ",") {
        if (ch == '.'){
            continue;
        }
        allNum += ch;
    } else {
        break;
    }
}
if (!allValid) {
    alertsay = "Tik alleen getallen zoals \""
    alertsay = alertsay + checkOK + "\" in het \"" + checkStr.name + "\" veld."
    alert(alertsay);
    return false;
}
// set the minimum and maximum
var chkVal = allNum;
var prsVal = parseFloat(allNum);
if (chkVal != "" && !(prsVal >= minval && prsVal <= maxval)) {
    alertsay = "Tik een groter getal dan "
    alertsay = alertsay + minval + " en kleiner dan "
    alertsay = alertsay + maxval + " in het \"" + checkStr.name + "\" veld."
    alert(alertsay);
    var x = objName.id;
    document.getElementById(x).focus();
    document.getElementById(x).style.border='1px solid red';
    return (false);
}
}
 
 function partner_jn() {
   var x =  document.getElementById('partner')
   if(x.selectedIndex == 1){
    document.getElementById('partnerinkomen').style.display='block';
   }
   else{
      document.getElementById('partnerinkomen').style.display='none';
   }
 }
 

function update_rekentool(){
     var a = "maatschappij,nhg_5jr,Variabel,jr_2,jr_05,jr_10,jr_15,jr_30,min_hypo,max_hypo,aflvrij_percentage|Aegon Hypotheken,4.80,3.40,4.70,5.40,5.85,6.25,6.30,10000,,90|AFAB,4.95,3.85,5.00,5.50,6.10,6.40,,35000,,90|BLG Hypotheken,4.65,4.05,,5.35,5.95 ,6.65,,25000,,75|DBV Finance,5.00,3.70,,5.60,6.15,6.35,6.50,50000,1000000,75|Direktbank,5.05,,,5.45,6.00,6.35,,25000,,90|Florius,4.60,4.10,,5.30,6.00,6.40,6.70,40000,5000000,100|HypInvest,5.30,3.9,4.85,5.70,6.35,6.50,6.50,68000,500000,100|Hypotrust,4.95,,4.85,5.35,5.85,6.15,,35000,455000,90|ING,4.60,,5.10,5.20,5.70,6.40,,30000,,100|MNF Bank,4.65,4.10,5.60,5.35,6.05,6.45,6.75,15000,,100|Nationale Nederlanden,4.90,,5.05,5.50,6.05,6.50,,15000,,90|Alkmaar Hypotheken,5.10,3.90,,5.50,6.05,6.40,,40000,1000000,100|Reaal,4.50,3.95,,5.20,5.90,6.30,6.60,40000,1000000,100|Rabobank,4.90,4.0,,5.1,,,,,,|RVS,4.90,,5.05,5.50,6.15,6.60,,15000,,90|SNS,4.60,,,5.20,5.85,6.40,6.65,25000,,100|WestlandUtrecht,5.00,,4.95,5.60,6.05,6.55,,25000,,100|Zwitserleven,4.55,4.10,,5.35,6.05,6.45,6.75,40000,1500000,90|DSB BANK,4.75,,4.55,5.10,5.75,6.65,,25000,750000,90|Allianz,4.45,4.20,4.80,5.15,6.05,6.30,6.35,,,|Moneyou,4.50,3.85,,5.25,6.00,6.35,6.60,,,|ABN AMRO,4.75,4.30,4.65,5.35,5.95,6.55,6.85,,,|Obvion,4.70,,4.40,5.10,5.80,6.20,6.60,,,|Bank of Scotland,4.55,3.85,,5.10,5.95,6.50,6.60,,,|Europe life,5.00,3.70,,5.60,6.15,6.35,6.50,,,|Avero Achmea,5.00,,5.80,5.60,6.60,6.60,7.20,,,|ASR verzekeringen,5.25,5.00,4.90,5.45,6.00,5.85,6.40,,,|Fortis,5.25,5.00,4.90,5.45,6.00,5.85,6.40,,,|Capitalum,5.25,4.15,4.80,5.75,6.20,6.30,6.55,,,|Argenta,5.50,,,5.75,6.55,,,,,|Delta Lloyd,4.80,3.50,4.55,5.35,5.85,6.80,7.30,,,|Qent hypotheken	,4.75,3.75,,5.15,5.70,,,,,|UCB hypotheken,4.70,,,5.60,6.10,6.30,,,,|Woonfonds,5.30,4.40,5.90,6.60,7.00,7.20,,,,|Acadium Bastion,5.00,,,5.20,5.65,5.90,,,,|Falcon Leven,4.90,3.85,5.30,5.50,5.70,6.30,,,,|Friesland Bank,4.50,5.15,5.00,5.70,6.20,,,,,|BNP Paribas,4.75,3.80,5.40,5.90,6.20,6.50,,,,|Postbank,4.60,5.10,5.20,5.90,6.60,,,,,";
    var hyponaam_array = a.split("|");
    var regel = hyponaam_array[1];
    
    var r1 = rand(1,36);
  
    for (i=0; i < hyponaam_array.length; i++) {
       var b = hyponaam_array[i].split(",");
       if(i == r1){var hyponaam1 = b[0];var rente1 = b[1];
       var ll1 = hyponaam1.toLowerCase(); 
       var logoo1 = ll1.replace(" ",""); 
       logoo1 = logoo1.replace(" ",""); 
       var logo1 = "http://hypotheekrente.net/logos/"+logoo1+".jpg";
       }
    }    
  
//  var maandinkomen  =  document.getElementById('maandinkomen').value;
//  var maandinkomen2  =  document.getElementById('maandinkomen2').value;
//  var jaarink       =  document.getElementById('jaarink');
//  var aankoopsom    =  document.getElementById('aankoopsom').value;
//  var aanksom       =  document.getElementById('aanksom');
//  var maandlasten_uitkomst  =  document.getElementById('maandlasten_uitkomst');
//  var marktw       =  document.getElementById('marktw');
//  var marktwaarde_woning       =  document.getElementById('marktwaarde_woning').value;
//  
//  maandinkomen  = maandinkomen  *1;
//  maandinkomen2 = maandinkomen2 *1;
//  document.getElementById('rente_uitkomst').innerHTML = number_format(rente1,1,",",".")+"%";
//  document.getElementById('logotool').src = logo1;
//  document.getElementById('provider_uitkomst').innerHTML = hyponaam1 + "<br>Aflossingsvrije hypotheek";
//  jaarink.innerHTML = "&euro; "+ number_format(((maandinkomen + maandinkomen2) * 13),0,",",".") + ",-";
//  aanksom.innerHTML = "&euro; "+ number_format((aankoopsom * 1),0,",",".") + ",-";
//  marktw.innerHTML =  "&euro; "+ number_format((marktwaarde_woning * 1),0,",",".") + ",-";
//  maandlasten_uitkomst.innerHTML = "&euro; "+ number_format(((aankoopsom / 12) *(rente1/100)),0,",",".") + ",-";
}




function getNewHTTPObject()
{
        var xmlhttp;
        /** Special IE only code ... */
        /*@cc_on
          @if (@_jscript_version >= 5)
              try
              {
                  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
              }
              catch (e)
              {
                  try
                  {
                      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                  }
                  catch (E)
                  {
                      xmlhttp = false;
                  }
             }
          @else
             xmlhttp = false;
        @end @*/

        /** Every other browser on the planet */
        if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
        {
            try
            {
                xmlhttp = new XMLHttpRequest();
            }
            catch (e)
            {
                xmlhttp = false;
            }
        }
        return xmlhttp;
}

