// JavaScript Document
function ForceNumeric(nValue) {
	validChars = "0123456789.";
	newValue="";
	for(k = 0; k < nValue.length; k++) {
		thisChar = nValue.charAt(k);
		if(validChars.indexOf(thisChar) != -1) newValue += thisChar;
	}
	return newValue;
}

function FormatNumber(Number,Decimals,Separator) {
 // **********************************************************
 // Placed in the public domain by Affordable Production / March 21, 1998
 // Web site: http://www.aptools.com/
 //
 // November 24, 1998 -- Error which allowed a null value
 // to remain null fixed. Now forces value to 0.
 //
 // This function accepts a number to format and number
 // specifying the number of decimal places to format to. May
 // optionally use a separator other than '.' if specified.
 //
 // If no decimals are specified, the function defaults to
 // two decimal places. If no number is passed, the function
 // defaults to 0. Decimal separator defaults to '.' .
 //
 // If the number passed is too large to format as a decimal
 // number (e.g.: 1.23e+25), or if the conversion process
 // results in such a number, the original number is returned
 // unchanged.
 // **********************************************************
	Number += ""          // Force argument to string.
	Decimals += ""        // Force argument to string.
	Separator += ""       // Force argument to string.
	if((Separator == "") || (Separator.length > 1))
 	Separator = "."
 	if(Number.length == 0)
		Number = "0"
 		var OriginalNumber = Number  // Save for number too large.
 		var Sign = 1
 		var Pad = ""
 		var Count = 0
 		// If no number passed, force number to 0.
 		if(parseFloat(Number)){
  		Number = parseFloat(Number)} else {
  		Number = 0}
 		// If no decimals passed, default decimals to 2.
 		if((parseInt(Decimals,10)) || (parseInt(Decimals,10) == 0)){
  			Decimals = parseInt(Decimals,10)} else {
  			Decimals = 2}
 		if(Number < 0) {
  			Sign = -1         // Remember sign of Number.
  			Number *= Sign    // Force absolute value of Number.
 		}
 		if(Decimals < 0)
  		Decimals *= -1    // Force absolute value of Decimals.
 		// Next, convert number to rounded integer and force to string value.
 		// (Number contains 1 extra digit used to force rounding)
 		Number = "" + Math.floor(Number * Math.pow(10,Decimals + 1) + 5)
 		if((Number.substring(1,2) == '.')||((Number + '')=='NaN'))
		return(OriginalNumber) // Number too large to format as specified.
		// If length of Number is less than number of decimals requested +1,
		// pad with zeros to requested length.
		if(Number.length < Decimals +1) // Construct pad string.
 {
	  for(Count = Number.length; Count <= Decimals; Count++)
	   Pad += "0"
 }
 Number = Pad + Number // Pad number as needed.
 if(Decimals == 0){
  // Drop extra digit -- Number is formatted.
  Number = Number.substring(0, Number.length -1)} else {
  // Or, format number with decimal point and drop extra decimal digit.
 Number = Number.substring(0,Number.length - Decimals -1) +
          Separator +
          Number.substring(Number.length - Decimals -1,
          Number.length -1)}
 if(Sign == -1)
  Number = "-" + Number  // Set sign of number.
 if(Number.length == 0)
  Number="0"
 return(Number)
}

function atocurr( x ) {
	var num, decnum, decstr, retval;
	x = "" + eval( x );
	num = parseInt( x );

	if( isNaN( num ) ) num = 0;

	decnum = Math.abs( parseFloat( x ) - num );

	if( isNaN( decnum ) ) decnum = .0;

	decnum *= 100;

	decstr = "" + Math.abs( Math.round( decnum ) );

	while( decstr.length < 2 ) {
		decstr = "0" + decstr;
	}

	retval =  num + "." + decstr ;

	while( retval.length < 10 ) {
		retval = " " + retval;
	}
	return retval;
}

function atof( x ) {
	if ( isNaN( parseFloat( x ) ) ) {
		return 0;
	}	
	else	
	{
		return parseFloat( x );
	}
}

function trimWhiteSpace(str) {
	str = this != window? this : str;
	return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function hideButton() {
	document.getElementById("submitBtn").style.display = 'none';
}


function addEvent(obj, evType, fn) { 
	if (obj.addEventListener) { 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} 
	else if (obj.attachEvent) 
	{ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
 	}
	else 
	{ 
		return false; 
	} 
}

addEvent(window, 'load', hideButton);
addEvent(window, 'load', calcRepayment);
addEvent(window, 'load', calcTotal);
addEvent(window, 'load', calcSaving);