var DEBUG = false;

// Enable "Enter Key" Triggered Calculations
function keyPressed( e ){
	if( ( ( e = e || event ).which || e.keyCode ) == 13 ) {
		switch ( document.getElementById("app_name").value ) {
			case "fincl_plngl_pgrms":	fincl_plngl_pgrms();	break;
			case "ret_plng_pgrms":		ret_plng_pgrms();		break;
		}
	}
}
document.onkeydown = keyPressed;

var IsNumeric = function(n)
{
	return (!isNaN(n) && n > 0);
}

/***
*	Miscellaneous Support Functions
*
function IsNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 

		if (ValidChars.indexOf(Char) == -1)
			IsNumber = false;
	}

	if ( sText.length == 0 )
		IsNumber = false;

	return IsNumber;
}
*/


function roundNumber(num,dec) {
	var snum=num.toString()+"000000000000000001";
	var sep=snum.indexOf(".");
	var beg=snum.substring(0,snum.indexOf("."));
	snum=snum.substring(eval(snum.indexOf(".")+1),snum.length);
	var dig=snum.substring(0,eval(dec-1));
	snum=snum.substring(eval(dec-1),dec);
	snum=parseInt(snum);
	gohigher=false;
	if (snum>4) {gohigher=true;}
	if (gohigher) {snum=parseInt(snum);snum++;}
	snum=snum.toString();
	num=beg+"."+dig+""+snum;
	return num;
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function FV(rate,nper,pv) {
	var i = Math.pow((1+rate),nper);
	return pv*i;
}

function set_percent ( id_src, id_dest ) {
	var diff = 100-document.getElementById(id_src).value;
	document.getElementById(id_dest).value = diff;
}

/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(arr,level) {
var dumped_text = "";
if(!level) level = 0;

//The padding given at the beginning of the line.
var level_padding = "";
for(var j=0;j<level+1;j++) level_padding += "    ";

if(typeof(arr) == 'object') { //Array/Hashes/Objects
 for(var item in arr) {
  var value = arr[item];
 
  if(typeof(value) == 'object') { //If it is an array,
   dumped_text += level_padding + "'" + item + "' ...\n";
   dumped_text += dump(value,level+1);
  } else {
   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
  }
 }
} else { //Stings/Chars/Numbers etc.
 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
}
return dumped_text;
}

 function roundVal(val){
	var dec = 2;
	var result = Math.round(val*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}
