
// JavaScript Document
// find a div, span, layer, etc. in the document

function findElement(strId) {

	var el = null;

	// ie 5
	if(el == null && document.all) {
		el = document.all[strId];
	}

	// dom
	if(el == null && document.getElementById) {
		el = document.getElementById(strId);
	}

	// netscape 4.x
	if(el == null && document.layers) {
		el = document.layers[strId];
	}

	return el;

}


// write text to a div/span/layer
function writeText(strText,objElement) {

	// ie 5 and dom
	objElement.innerHTML = strText;

	// netscape 4.x

}

// validate form input is not empty
function isEmpty(strInput) {

	if(strInput == null) {
		return true;
	}

	if(strInput.length == 0) {
		return true;
	}

	var allWhitespace = true;

	for(var i = 0;i<strInput.length;i++) {

		if(strInput.charAt(i).search(/\t\n\r/) < 0) {
			allWhitespace = false;
		}
	
	}

	return allWhitespace;

}

// validate form input is number
function isNumber(strInput,required) {

	if(typeof required != 'undefined' 
		&& !required
		&& isEmpty(strInput)) {
		return true;
	}

	
	if(strInput.search(/[0-9]/) >= 0) {
		return true;
	}


	return false;
}


// run payment calculation and display results
function calculatePayments() {

	// forms[0], or use a named form with forms['formName']
	var objForm = document.forms['calculate_settlement'];

	if(!objForm) {
		return;
	}

	// input name is 'debt' - change if needed
	var objInput = objForm.debt;

	// find the monthly payment and lump sum display areas
	var monthlyDisplay = findElement("monthly_payment_results");
	var lumpSumDisplay = findElement("lump_sum_results");

	if(!objInput || !monthlyDisplay || !lumpSumDisplay) {
		return;
	}

	// verify input
	var value = objInput.value.replace(/[^0-9\.]/ig,'');

	if(!isNumber(value,true)) {
		alert("Please enter a dollar amount");
		objInput.focus();
		return;
	}
	
	// get numeric input
	var debt = parseFloat(value);		


	// calculate payments
	var monthly = Math.round(debt * .03);
	var lump = Math.round(debt * .60);

	// display results
	writeText("$" + formatDollars(monthly) + " ",monthlyDisplay);
	writeText("$" + formatDollars(lump) + " ",lumpSumDisplay);

}

function formatDollars(amt) {
	amtString = new String(amt);

	
	var formattedString = "";

	if(amtString.length > 3) {

		var i;
		for(i = amtString.length;i>= 3;i-=3) {
			var chunk = amtString.substr(i-3,3);
			if(formattedString.length > 0) {
				formattedString = chunk + "," + formattedString;
			} else {
				formattedString = chunk;
			}

		}


		if(i != 0) {
			if(formattedString.length > 0) {
				formattedString = amtString.substr(0,i) + "," + formattedString;
			} else {
				formattedString = amtString.substr(0,i);
			}
		}

	} else {
		return amtString;
	}

	return formattedString;
}