function ShowAnswer (num, answerGiven){
	document.getElementById ("Answer_"+num).className = "Answer";	
}
function ShowAndHide (num){
	ShowAnswer (num);
	//document.getElementById ("Button_"+num).className = "Hidden";
}
function ShowEditBox (num){
	document.getElementById ("EditBox_"+num).className = "";
	document.getElementById ("ShowBox_"+num).className = "Hidden";
	tinyMCE.execCommand('mceFocus',false,'Box_'+num);
	document.getElementById ("Box_"+num).focus();
}
function HideEditBox (num){
	document.getElementById ("EditBox_"+num).className = "Hidden";	
	document.getElementById ("ShowBox_"+num).className = "Answer";
}
function SaveActivity (num, boxnum){
	edit.triggerSave(boxnum);

	document.getElementById ("ShowBox_"+num).innerHTML = document.getElementById ("Box_"+num).value;
	HideEditBox(num);
}

function SaveActivityDiv (num){
	alert (get ("Box_"+num));
	content = edit.getContent (get ("Box_"+num));
	alert (content);
	document.getElementById ("ShowBox_"+num).innerHTML = content;
	HideEditBox(num);
}
function DismissActivity(num){
	HideEditBox(num);
}

//per activity function
function SaveValues (){
	var boxText = get ("Box_1").value;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("Box_1", boxText);
	xhttp.load ("/money/ajax/saveValues.cfm");
}

function SaveDebtMinimum (){
	var boxText = get ("Box_1").value;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("Box_1", boxText);
	xhttp.load ("/money/ajax/saveDebtMinimum.cfm");
}

function UpdateDiv (num){
	var textIn = get ("Text_"+num).value;
	var textOut = get ("Text_"+num+"_div");
	textOut.innerHTML = textIn;
}

//per activity function
function SaveNeedsAndWants (num){
	if (!num){
		var boxText = get ("Box_1").value;
		var xhttp = new XHTTP("POST");
		xhttp.addArgument ("Box_1", boxText);
		xhttp.load ("/money/ajax/saveNeedsAndWants.cfm");
	}else{
		var boxText = get ("Box_2").value;
		var xhttp = new XHTTP("POST");
		xhttp.addArgument ("Box_2", boxText);
		xhttp.load ("/money/ajax/saveNeedsAndWants.cfm");
	}
}

function SaveShortTerm (){
	var titleText = get ("Text_2").value;
	var boxText = document.getElementById ("Box_2").value;;
	var date = get ("input_shortTerm").value;
	
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("type", "shortTerm");
	xhttp.addArgument ("Title", titleText);
	xhttp.addArgument ("Box", boxText);
	xhttp.addArgument ("Date", date);
	
	xhttp.load ("/money/ajax/saveGoals.cfm");
}

function SaveLongTerm (){
	var titleText = get ("Text_3").value;
	var boxText = get ("Box_3").value;
	var date = get ("input_longTerm").value;
	
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("type", "longTerm");
	xhttp.addArgument ("Title", titleText);
	xhttp.addArgument ("Box", boxText);
	xhttp.addArgument ("Date", date);
	
	xhttp.load ("/money/ajax/saveGoals.cfm");
}

function SaveAndAdd_FamilyIncome(){
	var formPtr = get("FamilyIncome");
	var addInput = document.createElement ("input");
	addInput.type="hidden";
	addInput.name = "add";
	addInput.value = "1";
	formPtr.appendChild (addInput);
	
	formPtr.submit();
}
function Save_FamilyIncome(){
	var formPtr = get("FamilyIncome");
	formPtr.submit();
}

function SaveExpenseText (){
	var boxText = get ("ShowBox_1").innerHTML;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("Box_1", boxText);
	xhttp.load ("/money/ajax/saveExpenseText.cfm");	
}

function SaveAndAdd_Expense(){
	var formPtr = get("FamilyExpense");
	var addInput = document.createElement ("input");
	addInput.type="hidden";
	addInput.name = "add";
	addInput.value = "1";
	formPtr.appendChild (addInput);
	
	formPtr.submit();
}
function Save_Expense(){
	var formPtr = get("FamilyExpense");
	formPtr.submit();
}

//spending plan calculator
function SpendMore (id){
	var current = get ("i"+id).innerHTML;	
	var num = new Number (current.substr (current.indexOf ("$")+1, current.length));
	num+=10;
	get ("i"+id).innerHTML = "$"+num.toString();
	
	if (id <=4)
		addTotal (1);
	else if (id <=12)
		addTotal (2);
}

function SpendLess (id){
	var current = get ("i"+id).innerHTML;	
	var num = new Number (current.substr (current.indexOf ("$")+1, current.length));
	num-=10;
	if (num >= 0)
		get ("i"+id).innerHTML = "$"+num.toString();
	
	if (id <=4)
		addTotal (1);
	else if (id <=12)
		addTotal (2);
	
}
function addTotal (id){
	var sum = 0;
	if (id == 1){
		
		for (var i=1; i<=4; i++){
			var current = get ("i"+i).innerHTML;	
			var num = new Number (current.substr (current.indexOf ("$")+1, current.length));
			sum+=num;
		}
		get ("t"+1).innerHTML = "$"+sum.toString();
	}else{
		for (var i=5; i<=12; i++){
			var current = get ("i"+i).innerHTML;	
			var num = new Number (current.substr (current.indexOf ("$")+1, current.length));
			sum+=num;
		}
		get ("t"+2).innerHTML = "$"+sum.toString();
	}
	
	var t1 = get ("t1").innerHTML;	
	var t1_num = new Number (t1.substr (t1.indexOf ("$")+1, t1.length));
	
	var t2 = get ("t2").innerHTML;	
	var t2_num = new Number (t2.substr (t2.indexOf ("$")+1, t2.length));
	
	var expenses = t2_num+t1_num;
	
	get ("t3").innerHTML = "$"+expenses.toString();
	
	var income = 1500;
	
	var overspent = Math.abs (expenses - income);
	
	get ("t5").innerHTML = "$"+overspent.toString();
	
	if (expenses - income <0){
		get ("label").innerHTML = "Surplus - Good job!";
		get ("label").className = "Success";
		get ("spacer").className = "Success";
		get ("t5").className = "Success";
	}else if (expenses-income > 0){
		get ("label").innerHTML = "Overspent";	
		get ("label").className = "Warning";
		get ("spacer").className = "Warning";
		get ("t5").className = "Warning";
	}else{ //balanced
		get ("label").innerHTML = "Balanced";	
		get ("label").className = "Neutral";
		get ("spacer").className = "Neutral";
		get ("t5").className = "Neutral";
	}

}

function showTip (num){
	get ("h"+num).className = "Hint";	
}

function hideTip (num){
	get ("h"+num).className = "Hidden";	
}

function Save_Stories(){
	var formPtr = get("Stories");
	formPtr.submit();
}


function SaveAndAdd_Savings (){
	var formPtr = get("ExpenseSavings");
	var addInput = document.createElement ("input");
	addInput.type="hidden";
	addInput.name = "add";
	addInput.value = "1";
	formPtr.appendChild (addInput);
	formPtr.submit();	
}

function Save_Savings(){
	var formPtr = get("ExpenseSavings");
	formPtr.submit();
}
var runningTotal = 0;
function CalculateSavings (num, counter){
	var price = get ("price_"+num).value;
	var freq = get ("freq_"+num);
	freq = freq.options[freq.selectedIndex].value;
	var total = 0;
	if (freq <=5){ //days
		total = 365*freq*price;	
	}else if (freq<12){ //weeks
		total = 52*(freq-5)*price;
	}else{ //months
		total = 12 * (freq-11) * price;
	}
	
	get ("itemTotal_"+counter).innerHTML = "$"+total;
	runningTotal = 0;
	CalculateRunningTotals();
}

function CalculateRunningTotals(){
	var count = 0;
	
	while (true){
		if (itemTotal = get ("itemTotal_"+count)){
			val = new String (itemTotal.innerHTML);
			val = new Number (val.substr (1,val.length));
			runningTotal += val;
			
			if (total = get ("Total")){
				DisplayTotalSavings();	
			}
			
		}else{
			
			return;	
		}
		count++;
	}
}

function DisplayTotalSavings(){
	get ("Total").innerHTML = "$"+runningTotal;
}
//Spending plan
function Save_SpendingPlanIncome (incomeIDs){
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("incomeIDs", incomeIDs);
	if (incomeIDs.length == undefined){
		var input = document.getElementById ("incomeValue_"+incomeIDs);
		xhttp.addArgument ("values", new Number (input.value));
	}else{
		for (var i=0; i<incomeIDs.length; i++){
			var input = document.getElementById ("incomeValue_"+incomeIDs[i]);
			xhttp.addArgument ("values", new Number (input.value));
		}
	}
	xhttp.load ("/money/ajax/saveSpendingPlanIncome.cfm");
	
	Event.bind (xhttp.req, "statechange", this, function (){
		if (xhttp.req.readyState == 4){
			ShowChangesMade(1);
			setTimeout ("HideChangesMade(1)", 2000);
		}else{
			HideChangesMade(1);
		}
	});
}

function Save_SpendingPlanExpenses (expenseIDs){
	
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("expenseIDs", expenseIDs);
	
	if (expenseIDs.length == undefined){
		var input = document.getElementById ("expenseValue_"+expenseIDs);
		xhttp.addArgument ("values", new Number (input.value));
	}else{
		for (var i=0; i<expenseIDs.length; i++){
			var input = document.getElementById ("expenseValue_"+expenseIDs[i]);
			xhttp.addArgument ("values", new Number (input.value));
		}
	}
	xhttp.load ("/money/ajax/saveSpendingPlanExpenses.cfm");
	
	Event.bind (xhttp.req, "statechange", this, function (){
		if (xhttp.req.readyState == 4){
			ShowChangesMade(2);
			setTimeout ("HideChangesMade(2)", 2000);
		}else{
			HideChangesMade(2);
		}
	});
}


function HideChangesMade(i){
	get ("ChangesMade_"+i).className = "Hidden";
}
function ShowChangesMade(i){
	get ("ChangesMade_"+i).className = "ChangesMade";
}
//per activity function
function SaveIdeas (){
	var boxText = get ("ShowBox_1").innerHTML;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("BoxText", boxText);
	xhttp.load ("/money/ajax/saveIdeas.cfm");
}

function SaveNewIdeas (){
	var boxText = get ("ShowBox_2").innerHTML;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("BoxText", boxText);
	xhttp.load ("/money/ajax/saveNewIdeas.cfm");
	

}


function SaveStory (){
	var boxText = get ("ShowBox_1").innerHTML;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("Box_1", boxText);
	xhttp.load ("/money/ajax/saveStory.cfm");
}

//Credit module
var credit_answers = new Array ();
function CheckCredit (num){
	
	if (num%2 == 0){ //multiple of 2 (no)
		theQuestion = num-1;
		theQuestion = Math.ceil (theQuestion/2);
		credit_answers[theQuestion-1] = false;
	}else{
		
		theQuestion = num;
		theQuestion = Math.ceil (theQuestion/2);
		credit_answers[theQuestion-1] = true;
	}
	
	if (credit_answers.length == 5){
		get ("credit_answer").className = "";
	}
	
	
}

function HighlightRow (num){
	var el = getElementsByClassName ("Row_"+num);
	for (var i=0; i<el.length; i++){
		el[i].style.backgroundColor = "#ECFFDD";
	}
}

function ShowDescription (num){
	get ("Description_"+num).className = "Description";	
	var expandBtn = get ("Expand_"+num);
	if (expandBtn){
		expandBtn.className = "Hidden";	
	}
}

function SaveAndAdd_Credit(){
	var formPtr = get("Credit");
	var addInput = document.createElement ("input");
	addInput.type="hidden";
	addInput.name = "add";
	addInput.value = "1";
	formPtr.appendChild (addInput);
	
	formPtr.submit();
}
function Save_Credit(){
	var formPtr = get("Credit");
	formPtr.submit();
}

function CalcDebtRate(debtPayment,monthlyIncome){
	var debtRateCell = get ("DebtRate");
	
	if (monthlyIncome > 0){
		var debtRate = Math.round ((debtPayment / monthlyIncome)*100);
		debtRateCell.innerHTML = debtRate+"%";
	}
	
}
function CalcCreditLimit(){

	var monthlyIncome = new Number (get ("c1").innerHTML);
	var mortgage = new Number (get ("c2").innerHTML);
	var utilities = new Number (get ("c3").innerHTML);
	var food = new Number (get ("c4").innerHTML);
	var transportation = new Number (get ("c5").innerHTML);
	var clothing = new Number (get ("c6").innerHTML);
	var medicalExpenses = new Number (get ("c7").innerHTML);
	
	var basicExpenses = mortgage + utilities + food + transportation + clothing + medicalExpenses;
	var moneyLeft = monthlyIncome - basicExpenses;
	var spendingMoney = moneyLeft / 3;
	
	get ("TotalBasicExpenses").innerHTML = "$"+Math.round (basicExpenses);
	get ("MoneyLeft").innerHTML = "$"+Math.round (moneyLeft);
	get ("MonthlySpendingMoney").innerHTML = "$"+Math.round (spendingMoney);
	
	if (spendingMoney-spendingMoney == 0){
		if (spendingMoney <= 0){
			get ("NoCredit").className = "NoMoreCredit";
			get ("InsideSign").className = "Hidden";
			get ("GoodToGo").className = "Hidden";
		}else
			get ("InsideSign").innerHTML = "$"+Math.round (spendingMoney);
	}else{
		get ("InsideSign").innerHTML = "$0";
	}
}

function HideCreditWisely(num){
	get ("Answer_"+num).className = "Hidden";
}
function ShowCreditWisely (num){
	get ("Answer_"+num).className = "Answer";
}

function DebtMinimumCheck (num){
	if (!DebtMinimum (num))
		get ("row_"+num).className = "marginten Wrong";
}
//Debt module
function DebtMinimum (num){
	
	correct = false;
	if (num == 1) {//how much money will she save
		var saved = get ("interestSave").value;
		if (saved == 113.70){
			correct = true;
		}
	}else if (num == 2){ //total savings
		var total = get ("totalDebt").value;
		if (total == 113.70){
			correct = true;	
		}
	}else{
		var timeTotalDebt = get ("timeTotalDebt");
		timeOption = timeTotalDebt.options[timeTotalDebt.selectedIndex].value;
		
		if (timeOption == 3){
			correct = true;	
		}
	}
	
	if (correct){
		get ("row_"+num).className = "CorrectClose";

	}else{
		get ("row_"+num).className = "";
	}
	return correct;
}
function LoanCalcCheck (num){
	if (!LoanCalc (num))
		get ("row_"+num).className = "marginten WrongClose";
}

function LoanCalc (num){
	correct = false;
	if (num == 1) {
		var value = get ("years_2").value;
		if (value == 59.45){
			correct = true;
		}
	}else if (num == 2){ //total savings
		var value = get ("years_3").value;
		if (value == 200.09){
			correct = true;	
		}
	}else{
		var value = get ("years_5").value;
		if (value == 369.21){
			correct = true;	
		
		}
	}
	
	if (correct){
		get ("row_"+num).className = "CorrectClose";

	}else{
		get ("row_"+num).className = "";
	}
}

function PowerPayCheck (num){
	if (!PowerPay (num))
		get ("row_"+num).className = "marginten Wrong";
}

function PowerPay (num){
	correct = false;
	if (num == 1) {//how much money will she save
		var timeTotalDebt = get ("timeTotalDebt");
		timeOption = timeTotalDebt.options[timeTotalDebt.selectedIndex].value;
		
		if (timeOption == 2){
			correct = true;	
		}
		
		
	}else if (num == 2){ //total savings
		var saved = get ("saving").value;
		if (saved == 247.02){
			correct = true;
		}
	}	
	
	
	if (correct){
		get ("row_"+num).className = "Correct";

	}else{
		get ("row_"+num).className = "";
	}
}
//per activity function
function SaveSavingList (){
	var boxText = get ("ShowBox_1").innerHTML;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("Box_1", boxText);
	xhttp.load ("/money/ajax/saveSavingList.cfm");
}
function SaveSavingTips (){
	var boxText = get ("ShowBox_1").innerHTML;
	var xhttp = new XHTTP("POST");
	xhttp.addArgument ("Box_1", boxText);
	xhttp.load ("/money/ajax/saveSavingTips.cfm");
}
function ShowDescriptionWhere (num,option){
	if (option == 0){
		get ("Description0_"+num).className = "Description";	
		get ("Description1_"+num).className = "Hidden";	
	}else{
		get ("Description0_"+num).className = "Hidden";	
		get ("Description1_"+num).className = "Description";	
		
	}
	var expandBtn = get ("Expand_"+num);
	if (expandBtn){
		expandBtn.className = "Hidden";	
	}
}

function CalculateSavingByPercentage (id){
	var amount = new Number (get ("amount_"+id).value);
	
	var period = get ("timeSelect_"+id);
	period = new Number (period.options[period.selectedIndex].value);
	var percent = get ("percent_"+id);
	percent = new Number (percent.options[percent.selectedIndex].value);
	var saved = get ("saved_"+id);

	var runningTotal = (amount * 52) * (percent + 1);

	for (var i=1; i<period; i++){
		runningTotal = runningTotal + (amount * 52);
		runningTotal = runningTotal + (runningTotal*percent);
	}
	saved.innerHTML = formatMoney(Math.round (runningTotal),"$",",",".");
}
function CalcMonthlyDifferenceCheck (num){
	if (!CalcMonthlyDifference (num))
		get ("row_"+num).className = "marginten Wrong";
}
function CalcMonthlyDifference(num, ans){
	if (num < 3)
		var monthlyPayment = new Number (get ("MonthlyPayment_"+num).value);

	var correct = false;
	
	if (num == 1){
		if (monthlyPayment > 0){
			if (Math.abs (monthlyPayment) == 57.72)
				correct = true;
		}
	}else if (num == 2){
		if (monthlyPayment > 0){
			if (Math.abs (monthlyPayment) == 2770.56)
				correct = true;
		}	
	}else{
		if (ans==1)
			correct = true;
		
	}

	if (correct){
		get ("row_"+num).className = "marginten Correct";
		ShowAndHide(num); HighlightRow (num); get ("Button_"+num).className ="Hidden";
		return true;
	}else{
		get ("Button_"+num).className ="CheckBtn";
		HighlightRow (num);return false;
		
	}
}

function CalcInterestDifferenceCheck (){
	if (!CalcInterestDifference ())
		get ("Row_1").className = "marginten Wrong";
}

function CalcInterestDifference(){
	var iDiff = new Number (get ("InterestDifference").value);

	var correct = false;

	if (iDiff > 0){
		if (Math.abs (iDiff) == 45.83)
			correct = true;
	}

	
	if (correct){
		get ("Row_1").className = "marginten Correct";
		ShowAndHide(1); 
	}else{
		get ("Row_1").className = "marginten";
		get ("Button_1").className ="CheckBtn";
		return false;
	}
}


function Modified(id){
	var dueDates = get ("DueDates_"+id);
	dueDates.className = "Hidden";
	
	var message = get ("ModifiedMessage_"+id);
	message.className = "";
}

function KeepSpendingPlan (){
	get ("SpendingPlanForm").submit();	
}

function SpendLessPlan (id, type){
	var current = get ("input_Expense_"+type+"_"+id);	
	var formValue = get ("Expense_"+type+"_"+id);	
	var num = new Number (current.innerHTML.substr (current.innerHTML.indexOf ("$")+1, current.innerHTML.length));
	num-=10;

	if (num >= 0){
		current.innerHTML = "$"+num.toString();
		formValue.value = num;
	}

	addSpendingPlan();
	
}
function addSpendingPlan(){
	expenses = 0;
	for (var i=0; i<=2; i++){
		
		var count = 0;
		while (true){
			if (field = get ("Expense_"+i+"_"+count)){
				
				expenses+=new Number (field.value);
			}else break;
			
			count ++;
		}
	}

	var expenses_input = get ("TotalExpenses");
	expenses_input.innerHTML= expenses;
	var income = new Number (get ("TotalIncome").innerHTML);
	get ("balance").innerHTML = new String ("$"+new Number (income-expenses));
	
	
	if (expenses - income <0){
		get ("label").innerHTML = "Surplus - Good job!";
		get ("label").className = "Success";
		get ("spacer").className = "Success";
		get ("balance").className = "Success";
	}else if (expenses-income > 0){
		get ("label").innerHTML = "Overspent";	
		get ("label").className = "Warning";
		get ("spacer").className = "Warning";
		get ("balance").className = "Warning";
	}else{ //balanced
		get ("label").innerHTML = "Balanced";	
		get ("label").className = "Neutral";
		get ("spacer").className = "Neutral";
		get ("balance").className = "Neutral";
	}
}

function ResetSpendingPlan (){
		
	get ("operation").value = "reset";	
	get ("SpendingPlanForm").submit();	
}
