function showHideText(txt) {
	var msgBox = document.getElementById('msg');
	msgBox.innerHTML = txt;
}

function calculate() {
	//inputs
	var LoanAmount = document.getElementById('LoanAmount');
	var Margin = document.getElementById('Margin');
	var CurrentIndex = document.getElementById('CurrentIndex');
	var IndexMargin = (1 * toNumber(Margin.value) + 1 * toNumber(CurrentIndex.value));
	var StartRate = document.getElementById('StartRate');
	var LoanTerm30 = 30;
	var LoanTerm40 = 40;
	var LoanTerm15 = 15;

	LoanAmount.value = toNumber(LoanAmount.value);
	Margin.value = toNumber(Margin.value);
	CurrentIndex.value = toNumber(CurrentIndex.value);
	StartRate.value = toNumber(StartRate.value);

	//outputs
	var IndexMarginDisplay = document.getElementById('IndexMargin');
	var MinPayment = document.getElementById('MinPayment');
	var InterestOnlyPayment = document.getElementById('InterestOnlyPayment');
	var FullPayment = document.getElementById('FullPayment');
	var Payment40 = document.getElementById('40YearPayment');
	var Payment15 = document.getElementById('15YearPayment');

	//output margin + index
	IndexMarginDisplay.innerHTML = IndexMargin;

	//compute min monthly payment
	var MinPaymentCalc = compute_payment(LoanAmount.value, StartRate.value, 12 * LoanTerm30, 12);

	//compute the interest only payment
	var IOPayment = (LoanAmount.value * IndexMargin) / 12 / 100;
	InterestOnlyPayment.innerHTML = formatAsMoney(IOPayment);

	//compute full payment
	var FullPaymentCalc = compute_payment(LoanAmount.value, IndexMargin, 12 * LoanTerm30, 12);

	//compute full payment
	var Payment40Calc = compute_payment(LoanAmount.value, IndexMargin, 12 * LoanTerm40, 12);
	Payment40.innerHTML = formatAsMoney(Payment40Calc);

	//compute full payment
	var Payment15Calc = compute_payment(LoanAmount.value, IndexMargin, 12 * LoanTerm15, 12);
	Payment15.innerHTML = formatAsMoney(Payment15Calc);

	//compute the 5 year min payments and monthly savings
	var Yr1Min = document.getElementById('Yr1Min');
	var Yr1Savings = document.getElementById('Yr1Savings');
	var Yr1fixed30 = document.getElementById('Yr1fixed30');
	Yr1MinCalc = MinPaymentCalc;
	Yr1Min.innerHTML = formatAsMoney(Yr1MinCalc);
	Yr1Savings.innerHTML = formatAsMoney(FullPaymentCalc - Yr1MinCalc);
	Yr1fixed30.innerHTML = formatAsMoney(FullPaymentCalc);
	lastYrVal = Yr1MinCalc;

	for (i = 2; i <= 5; i++) {
		eval('var Yr' + i + 'Min = document.getElementById(\'Yr' + i + 'Min\');');
		eval('var Yr' + i + 'Savings = document.getElementById(\'Yr' + i + 'Savings\');');
		eval('var Yr' + i + 'fixed30 = document.getElementById(\'Yr' + i + 'fixed30\');');
		eval('var Yr' + i + 'MinCalc = lastYrVal * 1.075;');
		eval('Yr' + i + 'Min.innerHTML = formatAsMoney(Yr' + i + 'MinCalc);');
		eval('Yr' + i + 'Savings.innerHTML = formatAsMoney(FullPaymentCalc - Yr' + i + 'MinCalc);');
		eval('Yr' + i + 'fixed30.innerHTML = formatAsMoney(FullPaymentCalc);');
		eval('lastYrVal = Yr' + i + 'MinCalc;');
	}
}

function computeFullyIndexed(objField) {
	var returnvar = false;
	returnvar = checkField(objField, 'Float', true);
	if (returnvar) {
		var Margin = document.getElementById('Margin');
		var CurrentIndex = document.getElementById('CurrentIndex');
		var IndexMargin = document.getElementById('IndexMargin');
		IndexMargin.innerHTML = 1 * toNumber(Margin.value) + 1 * toNumber(CurrentIndex.value);
	}
}

function formatAsMoney(mnt) {
	mnt -= 0;
	mnt = (Math.round(mnt * 100)) / 100;
	return (mnt == Math.floor(mnt)) ? mnt + '.00'
			: ( (mnt * 10 == Math.floor(mnt * 10)) ?
				mnt + '0' : mnt);
}

function toNumber(fnum) {
	var strBuffer = new String(fnum);
	var rString = '';
	var periodCount = 0;
	for (nPos = 0; nPos < strBuffer.length; nPos++) {
		if ((strBuffer.charAt(nPos) >= '0' && strBuffer.charAt(nPos) <= '9') ||
			strBuffer.charAt(nPos) == '.') {
			if (strBuffer.charAt(nPos) == '.') {
				periodCount++;
			}
			if (periodCount > 1) {
				return 1 * rString;
			}
			rString += strBuffer.charAt(nPos);
		}
	}
	return 1 * rString;
}

window.onload = calculate;


