/*
File name: b_calculator.js
Authored by: Loic Kreitmann
Date authored: 08/14/2001
Modified by: Loic Kreitmann
Date last modified: 08/22/2001
Description:
	Budget Calculator Functions for Visa USA
*/

//net income value array
var netIn = new Array();

//net income option name array
var netOpt = new Array();

//Monthly Net Income
var mNetIn = 0;

//fixed expense value array
var expFix = new Array();

//fixed expense option name array
var expOpt = new Array();

//Monthly Fixed Expenses
var mFixEx = 0;

//planned flexible expense value array
var expFlexPl = new Array();

//flexible expense option name array
var flexOpt = new Array();

//Planned Monthly Flexible Expenses
var mPlFlexEx = 0;

//actual flexible expense value array
var expFlexAct = new Array();

//Actual Monthly Flexible Expenses
var mActFlexEx = 0;

//planned flexible expense value array less actual flexible expense value array
var expFlexDiff = new Array();

//Difference of Actual vs. Planned Monthly Flexible Expenses
var mDiffFlexEx = 0;

//Total Monthly Actual Expenses (Fixed + Actual Flexible)
var mActExp = 0;

//Discretionary Income
var discrIn = 0;

//function grabs the values of the form fields and makes the necessary calculations
function storeVariables() {
	if (((document.budget_calc.net_1.value == "") || numbersValidator("budget_calc","net_1"))
			&& ((document.budget_calc.net_2.value == "") || numbersValidator("budget_calc","net_2"))
			&& ((document.budget_calc.net_3.value == "") || numbersValidator("budget_calc","net_3"))
			&& ((document.budget_calc.net_4.value == "") || numbersValidator("budget_calc","net_4"))
			&& ((document.budget_calc.net_5.value == "") || numbersValidator("budget_calc","net_5"))
			&& ((document.budget_calc.net_6.value == "") || numbersValidator("budget_calc","net_6"))
			&& ((document.budget_calc.net_7.value == "") || numbersValidator("budget_calc","net_7"))
			&& ((document.budget_calc.net_8.value == "") || numbersValidator("budget_calc","net_8"))
			&& ((document.budget_calc.ex_fix_1.value == "") || numbersValidator("budget_calc","ex_fix_1"))
			&& ((document.budget_calc.ex_fix_2.value == "") || numbersValidator("budget_calc","ex_fix_2"))
			&& ((document.budget_calc.ex_fix_3.value == "") || numbersValidator("budget_calc","ex_fix_3"))
			&& ((document.budget_calc.ex_fix_4.value == "") || numbersValidator("budget_calc","ex_fix_4"))
			&& ((document.budget_calc.ex_fix_5.value == "") || numbersValidator("budget_calc","ex_fix_5"))
			&& ((document.budget_calc.ex_fix_6.value == "") || numbersValidator("budget_calc","ex_fix_6"))
			&& ((document.budget_calc.ex_fix_7.value == "") || numbersValidator("budget_calc","ex_fix_7"))
			&& ((document.budget_calc.ex_fix_8.value == "") || numbersValidator("budget_calc","ex_fix_8"))
			&& ((document.budget_calc.ex_fix_1.value == "") || numbersValidator("budget_calc","ex_fix_1"))
			&& ((document.budget_calc.ex_pl_1.value == "") || numbersValidator("budget_calc","ex_pl_1"))
			&& ((document.budget_calc.ex_pl_2.value == "") || numbersValidator("budget_calc","ex_pl_2"))
			&& ((document.budget_calc.ex_pl_3.value == "") || numbersValidator("budget_calc","ex_pl_3"))
			&& ((document.budget_calc.ex_pl_4.value == "") || numbersValidator("budget_calc","ex_pl_4"))
			&& ((document.budget_calc.ex_pl_5.value == "") || numbersValidator("budget_calc","ex_pl_5"))
			&& ((document.budget_calc.ex_pl_6.value == "") || numbersValidator("budget_calc","ex_pl_6"))
			&& ((document.budget_calc.ex_pl_7.value == "") || numbersValidator("budget_calc","ex_pl_7"))
			&& ((document.budget_calc.ex_pl_8.value == "") || numbersValidator("budget_calc","ex_pl_8"))
			&& ((document.budget_calc.ex_pl_9.value == "") || numbersValidator("budget_calc","ex_pl_9"))
			&& ((document.budget_calc.ex_pl_10.value == "") || numbersValidator("budget_calc","ex_pl_10"))
			&& ((document.budget_calc.ex_pl_11.value == "") || numbersValidator("budget_calc","ex_pl_11"))
			&& ((document.budget_calc.ex_pl_12.value == "") || numbersValidator("budget_calc","ex_pl_12"))
			&& ((document.budget_calc.ex_act_1.value == "") || numbersValidator("budget_calc","ex_act_1"))
			&& ((document.budget_calc.ex_act_2.value == "") || numbersValidator("budget_calc","ex_act_2"))
			&& ((document.budget_calc.ex_act_3.value == "") || numbersValidator("budget_calc","ex_act_3"))
			&& ((document.budget_calc.ex_act_4.value == "") || numbersValidator("budget_calc","ex_act_4"))
			&& ((document.budget_calc.ex_act_5.value == "") || numbersValidator("budget_calc","ex_act_5"))
			&& ((document.budget_calc.ex_act_6.value == "") || numbersValidator("budget_calc","ex_act_6"))
			&& ((document.budget_calc.ex_act_7.value == "") || numbersValidator("budget_calc","ex_act_7"))
			&& ((document.budget_calc.ex_act_8.value == "") || numbersValidator("budget_calc","ex_act_8"))
			&& ((document.budget_calc.ex_act_9.value == "") || numbersValidator("budget_calc","ex_act_9"))
			&& ((document.budget_calc.ex_act_10.value == "") || numbersValidator("budget_calc","ex_act_10"))
			&& ((document.budget_calc.ex_act_11.value == "") || numbersValidator("budget_calc","ex_act_11"))
			&& ((document.budget_calc.ex_act_12.value == "") || numbersValidator("budget_calc","ex_act_12"))) {
		var counter;
		for (var i = 0; i < 8; i++) {
			counter = i + 1;
			netIn[i] = eval("document.budget_calc.net_" + counter);
			mNetIn += Number(netIn[i].value);
			}
		for (i = 0; i < 8; i++) {
			counter = i + 1;
			expFix[i] = eval("document.budget_calc.ex_fix_" + counter);
			mFixEx += Number(expFix[i].value);
			}
		for (i = 0; i < 12; i++) {
			counter = i + 1;
			expFlexPl[i] = eval("document.budget_calc.ex_pl_" + counter);
			mPlFlexEx += Number(expFlexPl[i].value);
			}
		for (i = 0; i < 12; i++) {
			counter = i + 1;
			expFlexAct[i] = eval("document.budget_calc.ex_act_" + counter);
			mActFlexEx += Number(expFlexAct[i].value);
			}
		for (i = 0; i < 3; i++) {
			counter = i + 1;
			netOpt[i] = eval("document.budget_calc.net_opt_" + counter);
			}
		for (i = 0; i < 3; i++) {
			counter = i + 1;
			expOpt[i] = eval("document.budget_calc.ex_fix_opt_" + counter);
			}
		for (i = 0; i < 3; i++) {
			counter = i + 1;
			flexOpt[i] = eval("document.budget_calc.ex_flex_opt_" + counter);
			}
		for (i = 0; i < 12; i++) {
			expFlexDiff[i] = Number(expFlexPl[i].value) - Number(expFlexAct[i].value);
			mDiffFlexEx += expFlexDiff[i];
			}
		mActExp = mFixEx + mActFlexEx;
		discrIn = mNetIn - mActExp;
		displayResults();
		}
	}

//function displays the results
function displayResults() {
	var netHeads = ["Job #1","Job #2","Scholarships","Loans","Parents",netOpt[0].value,netOpt[1].value,netOpt[2].value];
	var expHeads = ["Rent","Car Expenses","Credit Card Payment","Tuition","Loan Payment",expOpt[0].value,expOpt[1].value,expOpt[2].value];
	var flexHeads = ["Savings","Phone/Utilities","Groceries","Eating Out","Transportation","Clothing","Entertainment","Books/Supplies","Hobbies/Sports",flexOpt[0].value,flexOpt[1].value,flexOpt[2].value];
	var str = "";
	var str2 = "";
	var str3 = "";
	var str4 = "";
	var str5 = "";
	var str6 = "";
	var str7 = "";
	str += "<!doctype html public \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
	str += "<html>\n";
	str += "<style type=\"text/css\">\n";
	str += "@import url(/css/global.css);\n";
	str += "@import url(/css/content.css);\n";
	str += "@import url(/css/custom.css);\n";
	str += "</style>\n";
	str += "<style type=\"text/css\">\n";
	str += "@import url(/css/personal.css);\n";
	str += "div#body {margin:0; padding:0; width:auto}\n";
	str += "div#content {margin:0; padding:0; width:auto}\n";
	str += "body {margin:0; padding:0;}\n";
	str += "</style>\n";
	str += "</head>\n";
	str += "<body topmargin=\"0\" leftmargin=\"0\" marginheight=\"0\" marginwidth=\"0\" onLoad=\"window.focus();\">\n";
	str += "<div id=\"body\">\n";
	str += "<div id=\"content\">\n";	
	str += "<table width=\"448\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
	str += "<tr>\n";
	str += "<td valign=\"top\">\n";
	str += "<p><b>Results</b><br/>Your budget results are listed below.  Print this worksheet to use as a handy reference.</p>\n";
	str += "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"448\">\n";
	str += "<tr>\n";
	str += "<td align=\"left\" valign=\"TOP\" width=\"50%\">\n";
	str += "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">\n";
	str += "<tr><td align=\"left\" colspan=\"2\"><h4><b>Monthly Net Income</b></h4></td></tr>\n";
	for (i = 0; i < 8; i++) {
		str2 += "<tr>\n";
		str2 += "<td align=\"left\">" + netHeads[i] +"</td>\n";
		str2 += "<td>$ " + (Math.round(netIn[i].value * 100) / 100) + "</td>\n";
		str2 += "</tr>\n";
		}
	str3 += "<tr><td colspan=\"2\"><hr></td></tr>\n";
	str3 += "<tr>\n";
	str3 += "<td align=\"left\"><strong>Total Monthly<br>Net Income</strong></td>\n";
	str3 += "<td valign=\"bottom\">$ " + (Math.round(mNetIn * 100) / 100) + "</td>\n";
	str3 += "</tr>\n";
	str3 += "</table>\n";
	str3 += "</td>\n";
	str3 += "<td align=\"left\" valign=\"TOP\">\n";
	str3 += "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"200\">\n";
	str3 += "<tr><td align=\"left\" colspan=\"2\"><h4><b>Monthly Fixed Expenses</b></h4></td></tr>\n";
	for (i = 0; i < 8; i++) {
		str4 += "<tr>\n";
		str4 += "<td align=\"left\">" + expHeads[i] + "</td>\n";
		str4 += "<td>$ " + (Math.round(expFix[i].value * 100) / 100) + "</td>\n";
		str4 += "</tr>\n";
		}
	str5 += "<tr><td colspan=\"2\"><hr></td></tr>\n";
	str5 += "<tr>\n";
	str5 += "<td align=\"left\"><strong>Total Monthly<br>Fixed Expenses</strong></td>\n";
	str5 += "<td valign=\"bottom\">$ " + (Math.round(mFixEx * 100) / 100) + "</td>\n";
	str5 += "</tr>\n";
	str5 += "</table>\n";
	str5 += "</td>\n";
	str5 += "</tr>\n";
	str5 += "<tr>\n";
	str5 += "<td colspan=\"2\">\n";
	str5 += "<br><br>\n";
	str5 += "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"399\">\n";
	str5 += "<tr>\n";
	str5 += "<td align=\"left\"><h4><b>Monthly Flexible Expenses</b></h4></td>\n";
	str5 += "<td colspan=\"2\"></td>\n";
	str5 += "<td></td>\n";
	str5 += "</tr>\n";
	str5 += "<tr>\n";
	str5 += "<td></td>\n";
	str5 += "<td align=\"CENTER\"><strong>Planned</strong></td>\n";
	str5 += "<td align=\"CENTER\"><strong>Actual</strong></td>\n";
	str5 += "<td align=\"CENTER\"><strong>Difference</strong></td>\n";
	str5 += "</tr>\n";
	for (i = 0; i < 12; i++) {
		str6 += "<tr>\n";
		str6 += "<td align=\"left\">" + flexHeads[i] + "</td>\n";
		str6 += "<td align=\"CENTER\">$ " + (Math.round(expFlexPl[i].value * 100) / 100) + "</td>\n";
		str6 += "<td align=\"CENTER\">$ " + (Math.round(expFlexAct[i].value * 100) / 100) + "</td>\n";
		str6 += "<td align=\"CENTER\">$ " + (Math.round(expFlexDiff[i] * 100) / 100) + "</td>\n";
		str6 += "</tr>\n";
		}
	str7 += "<tr><td colspan=\"4\"><hr></td></tr>\n";
	str7 += "<tr>\n";
	str7 += "<td align=\"left\" valign=\"TOP\"><strong>Total Monthly<br>Flexible Expenses</strong></td>\n";
	str7 += "<td align=\"CENTER\" valign=\"TOP\">$ " + (Math.round(mPlFlexEx * 100) / 100) + "<br></td>\n";
	str7 += "<td align=\"CENTER\" valign=\"TOP\">$ " + (Math.round(mActFlexEx * 100) / 100) + "<br></td>\n";
	str7 += "<td align=\"CENTER\" valign=\"TOP\">$ " + (Math.round(mDiffFlexEx * 100) / 100) + "<br></td>\n";
	str7 += "</tr>\n";
	str7 += "<tr><td colspan=\"4\"><hr></td></tr>\n";
	//str7 += "</table>\n";
	//str7 += "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\">\n";
	str7 += "<tr>\n";
	str7 += "<td align=\"left\" valign=\"TOP\"><strong>Total Monthly Income</strong></td>\n";
	str7 += "<td valign=\"TOP\" align=\"CENTER\">$ " + (Math.round(mNetIn * 100) / 100) + "</td>\n";
	str7 += "<td colspan=\"3\">&nbsp;</td>\n";
	str7 += "<td colspan=\"3\">&nbsp;</td>\n";
	str7 += "</tr>\n";
	str7 += "<tr>\n";
	str7 += "<td colspan=\"3\"></td>\n";		
	str7 += "</tr>\n";
	str7 += "<tr>\n";
	str7 += "<td align=\"left\" valign=\"TOP\"><strong>Total Monthly Actual Expenses</strong><br>(fixed and flexible)</td>\n";
	str7 += "<td valign=\"TOP\" align=\"CENTER\">$ " + (Math.round(mActExp * 100) / 100) + "</td>\n";
	str7 += "</tr>\n";
	str7 += "<tr>\n";
	str7 += "<td colspan=\"3\"></td>\n";		
	str7 += "</tr>\n";
	str7 += "<tr>\n";
	str7 += "<td align=\"left\" valign=\"TOP\"><strong>Discretionary Income</strong></td>";
	str7 += "<td valign=\"TOP\" align=\"CENTER\">$ " + (Math.round(discrIn * 100) / 100) + "</td>\n";
	str7 += "</tr>\n";
	str7 += "<tr><td colspan=\"4\"><hr></td></tr>\n";
	str7 += "</table>\n";
	str7 += "</td>\n";
	str7 += "</tr>\n";
	str7 += "</table>\n";
	str7 += "</td>\n";
	str7 += "</tr>\n";
	str7 += "</table>\n";
	str7 += "</div>\n";
	str7 += "</div>\n";
	str7 += "</body>\n";
	str7 += "</html>\n";
	document.write(str + str2 + str3 + str4 + str5 + str6 + str7);
	}
