// JavaScript Document
var ink_aanvr;
var ink_partner;
var woonlasten;
var totaal_lenen;
var startberekening;

function makePositive (a) {
	if (a < 0) {
		a = -a;
		return a;
	} else {
		a = +a;
	 	return a;
	}
}

function numberCheck  (var1, var2) 
{
// checks if var1 is empty. If yes then var1 = 0 
	if (var1 == ''){
		var1 = 0;
		document.getElementById(var2).value = var1;
		return var1;
	} else {
		
		// negative number changes to positive
		if (var1 < 0) {
			var1 = makePositive(var1);
		}
		
		// checks if var1 isn't a number.
		if (isNaN(var1) || var1.length > 8) {
			document.getElementById(var2).value = 'Ongeldige invoer..';
			test1 = 'false';
			// returns false..
			return test1;
		} else {
			// returns number..
			document.getElementById(var2).value = var1;
			return var1;
		}
	}
}

function berekenLening() 
{
// start calculation
	var check0 	= 'true';
	var check1 	= 'true';
	var check2 	= 'true';

// variables from document
  ink_aanvr 	= document.getElementById('maand_inkomen_aanvrager').value;
  ink_partner = document.getElementById('maand_inkomen_partner').value;
  woonlasten2 = document.getElementById('woonlasten').value;

// Checks for letters and negative numbers
	check0 		= numberCheck(ink_aanvr, 'maand_inkomen_aanvrager');
	check1 		= numberCheck(ink_partner, 'maand_inkomen_partner');
	check2 		= numberCheck(woonlasten2, 'woonlasten'); 
	
// Checks the new values
	ink_aanvr 	= document.getElementById('maand_inkomen_aanvrager').value;
	ink_partner = document.getElementById('maand_inkomen_partner').value;
	woonlasten2 = document.getElementById('woonlasten').value;

// Checks if the calculation starts or not..
	if (check0 == 'false' || check1 == 'false' || check2 == 'false' ) {
		document.getElementById('totaal_te_lenen').value = "";
	} else {
		totaal_inkomen = parseFloat(ink_aanvr) + parseFloat(ink_partner);
				
		if (totaal_inkomen <= 2000) {
			
			totaal_lasten = parseFloat(woonlasten2) + 700;
			subtotaal = totaal_inkomen - totaal_lasten;
			output = subtotaal * 50;
			if(output < 0){ output = 0;}
			
			document.getElementById('totaal_te_lenen').value = output;
		
		} else if (totaal_inkomen > 2000 && totaal_inkomen < 2500) {
			
			totaal_lasten = parseFloat(woonlasten2) + 900;
			subtotaal = totaal_inkomen - totaal_lasten;
			output = subtotaal * 50;
			if(output < 0){ output = 0;}
			
			document.getElementById('totaal_te_lenen').value = output;
		
		} else if ( totaal_inkomen >= 2500) {
			
			totaal_lasten = parseFloat(woonlasten2) + 1000;
			subtotaal = totaal_inkomen - totaal_lasten;
			output = subtotaal * 50;
			if(output < 0){ output = 0;}
						
			document.getElementById('totaal_te_lenen').value = output;
		}		
	}
}

function berekenHypotheek() {
	bruto_salaris	= document.getElementById('bruto_salaris').value;

if (isNaN(bruto_salaris) || bruto_salaris < 0 || bruto_salaris == '') {
	document.getElementById('bruto_salaris').value = 'Ongeldige Invoer..';

} else {

	hypotheekbedrag = parseFloat(bruto_salaris) * 5.5;
	document.getElementById('hypotheekbedrag').value = printf('%.2f', hypotheekbedrag);

	renteperjaar = hypotheekbedrag * 0.03;
	document.getElementById('renteperjaar').value = printf('%.2f',renteperjaar);
	
	rentepermaand = renteperjaar / 12;
  document.getElementById('rentepermaand').value = printf('%.2f',rentepermaand);
	nettomaandlasten = rentepermaand * 0.60 ;
	document.getElementById('nettomaandlasten').value = printf('%.2f',nettomaandlasten);
	}
}

/* Function printf(format_string,arguments...)
 * Javascript emulation of the C printf function (modifiers and argument types 
 *    "p" and "n" are not supported due to language restrictions)
 *
 * Copyright 2003 K&L Productions. All rights reserved
 * http://www.klproductions.com 
 *
 * Terms of use: This function can be used free of charge IF this header is not
 *               modified and remains with the function code.
 * 
 * Legal: Use this code at your own risk. K&L Productions assumes NO resposibility
 *        for anything.
 ********************************************************************************/
function printf(fstring)
  { var pad = function(str,ch,len)
      { var ps='';
        for(var i=0; i<Math.abs(len); i++) ps+=ch;
        return len>0?str+ps:ps+str;
      }
    var processFlags = function(flags,width,rs,arg)
      { var pn = function(flags,arg,rs)
          { if(arg>=0)
              { if(flags.indexOf(' ')>=0) rs = ' ' + rs;
                else if(flags.indexOf('+')>=0) rs = '+' + rs;
              }
            else
                rs = '-' + rs;
            return rs;
          }
        var iWidth = parseInt(width,10);
        if(width.charAt(0) == '0')
          { var ec=0;
            if(flags.indexOf(' ')>=0 || flags.indexOf('+')>=0) ec++;
            if(rs.length<(iWidth-ec)) rs = pad(rs,'0',rs.length-(iWidth-ec));
            return pn(flags,arg,rs);
          }
        rs = pn(flags,arg,rs);
        if(rs.length<iWidth)
          { if(flags.indexOf('-')<0) rs = pad(rs,' ',rs.length-iWidth);
            else rs = pad(rs,' ',iWidth - rs.length);
          }    
        return rs;
      }
    var converters = new Array();
    converters['c'] = function(flags,width,precision,arg)
      { if(typeof(arg) == 'number') return String.fromCharCode(arg);
        if(typeof(arg) == 'string') return arg.charAt(0);
        return '';
      }
    converters['d'] = function(flags,width,precision,arg)
      { return converters['i'](flags,width,precision,arg); 
      }
    converters['u'] = function(flags,width,precision,arg)
      { return converters['i'](flags,width,precision,Math.abs(arg)); 
      }
    converters['i'] =  function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        var rs = ((Math.abs(arg)).toString().split('.'))[0];
        if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
        return processFlags(flags,width,rs,arg); 
      }
    converters['E'] = function(flags,width,precision,arg) 
      { return (converters['e'](flags,width,precision,arg)).toUpperCase();
      }
    converters['e'] =  function(flags,width,precision,arg)
      { iPrecision = parseInt(precision);
        if(isNaN(iPrecision)) iPrecision = 6;
        rs = (Math.abs(arg)).toExponential(iPrecision);
        if(rs.indexOf('.')<0 && flags.indexOf('#')>=0) rs = rs.replace(/^(.*)(e.*)$/,'$1.$2');
        return processFlags(flags,width,rs,arg);        
      }
    converters['f'] = function(flags,width,precision,arg)
      { iPrecision = parseInt(precision);
        if(isNaN(iPrecision)) iPrecision = 6;
        rs = (Math.abs(arg)).toFixed(iPrecision);
        if(rs.indexOf('.')<0 && flags.indexOf('#')>=0) rs = rs + '.';
        return processFlags(flags,width,rs,arg);
      }
    converters['G'] = function(flags,width,precision,arg)
      { return (converters['g'](flags,width,precision,arg)).toUpperCase();
      }
    converters['g'] = function(flags,width,precision,arg)
      { iPrecision = parseInt(precision);
        absArg = Math.abs(arg);
        rse = absArg.toExponential();
        rsf = absArg.toFixed(6);
        if(!isNaN(iPrecision))
          { rsep = absArg.toExponential(iPrecision);
            rse = rsep.length < rse.length ? rsep : rse;
            rsfp = absArg.toFixed(iPrecision);
            rsf = rsfp.length < rsf.length ? rsfp : rsf;
          }
        if(rse.indexOf('.')<0 && flags.indexOf('#')>=0) rse = rse.replace(/^(.*)(e.*)$/,'$1.$2');
        if(rsf.indexOf('.')<0 && flags.indexOf('#')>=0) rsf = rsf + '.';
        rs = rse.length<rsf.length ? rse : rsf;
        return processFlags(flags,width,rs,arg);        
      }  
    converters['o'] = function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        var rs = Math.round(Math.abs(arg)).toString(8);
        if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
        if(flags.indexOf('#')>=0) rs='0'+rs;
        return processFlags(flags,width,rs,arg); 
      }
    converters['X'] = function(flags,width,precision,arg)
      { return (converters['x'](flags,width,precision,arg)).toUpperCase();
      }
    converters['x'] = function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        arg = Math.abs(arg);
        var rs = Math.round(arg).toString(16);
        if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
        if(flags.indexOf('#')>=0) rs='0x'+rs;
        return processFlags(flags,width,rs,arg); 
      }
    converters['s'] = function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        var rs = arg;
        if(rs.length > iPrecision) rs = rs.substring(0,iPrecision);
        return processFlags(flags,width,rs,0);
      }
    farr = fstring.split('%');
    retstr = farr[0];
    fpRE = /^([-+ #]*)(\d*)\.?(\d*)([cdieEfFgGosuxX])(.*)$/;
    for(var i=1; i<farr.length; i++)
      { fps=fpRE.exec(farr[i]);
        if(!fps) continue;
        if(arguments[i]!=null) retstr+=converters[fps[4]](fps[1],fps[2],fps[3],arguments[i]);
        retstr += fps[5];
      }
    return retstr;
  }
/* Function printf() END */
