		
	
/* ----------- */
function action_summary_updateby_MortgageAmount( f )
	{
	if( !isNumericField( f.mAmount, "Mortgage Amount"  ) )
		return;
	addHistory();	
	global_historyArr[global_historyArr.length-1][ s_INDEX_mAmount ] = eval(f.mAmount.value);
	reloadSummary();
	}	
/* ----------- */
	
	
	

		
	
/* ----------- */
function action_summary_updateby_anualInterestRate( f )
	{
	if( !isNumericField( f.anualInterestRate, "Annual Interest Rate" ) )
		return;

	addHistory();	
	global_historyArr[global_historyArr.length-1][ s_INDEX_anualInterestRate ] = eval(f.anualInterestRate.value);
	reloadSummary();

	}
/* ----------- */
	
	
	

		
	
/* ----------- */
function action_summary_updateby_termYears( f )
	{
	if( !isNumericField( f.termYears, "Term of Loan in Years" ) )
		return;

	addHistory();	
	global_historyArr[global_historyArr.length-1][ s_INDEX_termYears ] = eval(f.termYears.value);
	global_historyArr[global_historyArr.length-1][ s_INDEX_numPayments ] = (eval(f.termYears.value)*12);
	reloadSummary();



	}
/* ----------- */
	
		
	
/* ----------- */
function action_summary_updateby_monthlyPayment( f )
	{
	if( !isNumericField( f.monthlyPayment, "Monthly Payment" ) )
		return;

	addHistory();	
	var original_numPayments = global_historyArr[global_historyArr.length-1][ s_INDEX_numPayments ];
	var original_termYears = global_historyArr[global_historyArr.length-1][ s_INDEX_termYears ];

	global_historyArr[global_historyArr.length-1][ s_INDEX_monthlyPayment ] = eval(f.monthlyPayment.value);
	reloadSummary(); 

	if( global_paymentTooSmall >= global_maxPayments )
		{
		alert( "With a monthly payment of " + f.monthlyPayment.value + " you will never pay off the loan." );
		global_historyArr[global_historyArr.length-1][ s_INDEX_monthlyPayment ] = global_originalFieldValue;
		global_historyArr[global_historyArr.length-1][ s_INDEX_numPayments ] = original_numPayments;
		global_historyArr[global_historyArr.length-1][ s_INDEX_termYears ] = original_termYears;

		f.monthlyPayment.value = global_originalFieldValue;
		f.monthlyPayment.focus();
		reloadSummary();
		}		
	loadScenarios( global_ScenarioView, global_scenarios_lineOpen )
	}
/* ----------- */
	
	
	

		
	
/* ----------- */
function action_summary_updateby_numPayments( f )
	{
	if( !isNumericField( f.numPayments, "Number of Payments" ) )
		return;
	
	var nPayments = eval(f.numPayments.value);

	if( nPayments > 1000 )
		{
		alert( "With " + nPayments + " payments you will never pay off the loan." );
		f.numPayments.value = global_originalFieldValue;
		f.numPayments.focus();
		return;
		}

	addHistory();	
	global_historyArr[global_historyArr.length-1][ s_INDEX_termYears ] = eval(calcNumYears( nPayments ));
	global_historyArr[global_historyArr.length-1][ s_INDEX_numPayments ] = nPayments;
	reloadSummary();
	}
/* ----------- */
	
	
	

		
	
/* ----------- */
function action_summary_updateby_investmentLoanAmount( f )
	{
	if( !isNumericField( f.lAmount, "Loan Amount" ) )
		return;

	var investmentLoanPrincipal = eval(f.lAmount.value);
	addHistory();	
	var len = global_historyArr.length-1;
	var adjustedAnnalInterestRate = global_historyArr[len][ s_INDEX_primeRate ];
	global_historyArr[len][ s_INDEX_loanPrincipal ] = investmentLoanPrincipal;

	if( !global_historyArr[len][ s_INDEX_securedInvestmentLoan ] )
		adjustedAnnalInterestRate += global_historyArr[global_historyArr.length-1][ s_INDEX_primeRate_Plus ];
	
	global_Portfolio.setInvestmentLoanPrincipal( investmentLoanPrincipal ); 
	global_historyArr[len][ s_INDEX_potentialSavingsPerMonth ] = eval(getPotentialSavingsPerMonth( investmentLoanPrincipal, adjustedAnnalInterestRate ));	

	loadPortfolio( document.portfolio, global_Portfolio );
	reloadSummary();
	}
/* ----------- */
	
	
	



/* ----------- */
function action_summary_updateby_secured( f, isSecured )
	{
	if( fieldNotChanged( f.securedInvestmentLoan ) )
		return; 

	global_Lookups.setSecuredInvestment( isSecuredInvestmentLoan( isSecured ) );

	addHistory();		
	var len = global_historyArr.length-1;
	global_historyArr[len][ s_INDEX_securedInvestmentLoan ] = isSecuredInvestmentLoan( isSecured );
	global_Lookups.attributes.setRates( global_historyArr[len][ s_INDEX_securedInvestmentLoan ] );
	global_historyArr[len][ s_INDEX_loanPrincipal ] = getLoanAmount( global_historyArr[len][ s_INDEX_potentialSavingsPerMonth ], global_Lookups.attributes.adjustedAnnalInterestRate );		
	global_Portfolio.setInvestmentLoanPrincipal( global_historyArr[len][ s_INDEX_loanPrincipal ] ); 
	loadPortfolio( document.portfolio, global_Portfolio );

	loadLookups( f, global_Lookups )
	reloadSummary();
	}
/* ----------- */




/* ----------- */
function action_summary_updateby_assumedRateofReturn( f )
	{
	if( !isNumericField( f.rateOfReturn, "Assumed Rate of Return" ) )
		return;

	addHistory();		
	global_historyArr[global_historyArr.length-1][ s_INDEX_rateOfReturn ] = eval( f.rateOfReturn.value );
	reloadSummary();
	}
/* ----------- */




/* ----------- */
function action_summary_updateby_primeRate( f )
	{
	if( !isNumericField( f.prime, "Prime Rate" ) )
		return;

	addHistory();	
	var len = global_historyArr.length-1;
	global_historyArr[len][ s_INDEX_primeRate ] = eval(f.prime.value);
	global_Lookups.updateLookup( 0, "primeInterestRate", global_historyArr[len][ s_INDEX_primeRate ]);
	global_historyArr[len][ s_INDEX_loanPrincipal ] = getLoanAmount( global_historyArr[len][ s_INDEX_potentialSavingsPerMonth ], global_Lookups.attributes.adjustedAnnalInterestRate );	
	global_Portfolio.setInvestmentLoanPrincipal( global_historyArr[len][ s_INDEX_loanPrincipal ] ); 
	loadPortfolio( document.portfolio, global_Portfolio );

	loadLookups( f, global_Lookups )
	reloadSummary();
	}
/* ----------- */



/* ----------- */
function action_summary_updateby_annualIncome( f )
	{
	if( !isNumericField( f.annualIncome, "Annual Income" ) )
		return;

	addHistory();		
	global_historyArr[global_historyArr.length-1][ s_INDEX_annualIncome ] = eval( f.annualIncome.value );
	
	global_Lookups.updateLookup( 0, "newAnnualIncome", global_historyArr[global_historyArr.length-1][ s_INDEX_annualIncome ] );
	loadLookups( f, global_Lookups )
	loadPortfolio( document.portfolio, global_Portfolio );
	reloadSummary();
	}
/* ----------- */
		



	
/* ----------- */
function action_summary_updateby_potentialSavingsPerMonth( f )
	{
	if( !isNumericField( f.potentialSavingsPerMonth, "Potentail Savings Per Month" ) )
		return;

	addHistory();		
	var len = global_historyArr.length-1;
	global_historyArr[len][ s_INDEX_potentialSavingsPerMonth ] = eval( f.potentialSavingsPerMonth.value );

	
	if( global_potentialSavingsPerMonth  == 0 )
		global_historyArr[len][ s_INDEX_loanPrincipal ] = global_Lookups.attributes.defaultInvestmentPrincipal.toFixed(2)
			else
				global_historyArr[len][ s_INDEX_loanPrincipal ] = getLoanAmount( global_historyArr[len][ s_INDEX_potentialSavingsPerMonth ], global_Lookups.attributes.adjustedAnnalInterestRate );	

	global_Portfolio.setInvestmentLoanPrincipal( global_historyArr[global_historyArr.length-1][ s_INDEX_loanPrincipal ] ); 
	loadPortfolio( document.portfolio, global_Portfolio );
	loadLookups( f, global_Lookups )
	reloadSummary();
	}
/* ----------- */




/* ----------- */
function action_summary_updateby_houseValue( f )
	{
	if( !isNumericField( f.propertyValue, "House Value" ) )
		return;
	addHistory();
	var len = global_historyArr.length-1;
	
	global_historyArr[len][ s_INDEX_propertyValue ] = eval( f.propertyValue.value );		
	global_personalInfo.propertyValue = global_historyArr[len][ s_INDEX_propertyValue ];
	global_scenarios.next.houseValue = global_historyArr[len][ s_INDEX_propertyValue ];
	reloadSummary();
	}
/* ----------- */




/* ----------- */
function action_Lookup_update( f, formfieldID, id, field, fValue )
	{
// jay here, look at this function fieldNotNum in the saHelper page.
//	alert("test : " + formfieldID + " : " + f.elements[formfieldID].name )



	var index = -1;
	for( i = 0; i < f.elements.length; i++ )
		if( f.elements[i].name == formfieldID )
			index = i;


	if( field != "enableMortgageAccelerator" )
		if( !isNumericField( f.elements[index], field  ) )
			return;


	if( fieldNotChanged( f.elements[index] ) )
		return;


	var filter_ttl = 0;

	if( field == "filter" )
		{
		for( j = 0; j < f.elements.length; j++ )
			if( f.elements[j].name.indexOf("filter_") != -1 )
				if( !isNaN(f.elements[j].value) )
					filter_ttl += eval(f.elements[j].value);



		if( filter_ttl > 100 )
			{
			alert( "filters are greater than 100%" )
			f.elements[index].value = global_originalFieldValue;
			return;
			}
	
		}			

	addHistory();
	
	if( !global_Lookups.updateLookup(id, field, fValue))
		{
		reSetField(f, formfieldID, global_originalFieldValue);
		}		
		else
			{
			var len = global_historyArr.length-1;
			switch( field )
				{
				case "defaultInvestmentPrincipal" :
					global_historyArr[len][ s_INDEX_defaultInvestmentPrincipal ] = eval( fValue );
					break;

				case "housingGrowthRate" :
					global_historyArr[len][ s_INDEX_housingGrowthRate ] = eval( fValue );
					break;

				case "primeInterestRateAdjustment" :
					global_historyArr[len][ s_INDEX_primeRate_Plus ] = eval( fValue );
					break;

				case "enableMortgageAccelerator" :
					global_historyArr[len][ s_INDEX_enableMortgageAccelerator ] = setBool( fValue );
					break;
			
				case "filter" :
					for( var k = 0; k < global_historyArr[len][ s_INDEX_filtersArr ].length; k++ )
						{
						if( global_historyArr[len][ s_INDEX_filtersArr ][k].id == eval(id) )
							{
							global_historyArr[len][ s_INDEX_filtersArr ][k].percentage =  eval( fValue );
							break;
							}
						}
					break;
				}	

			loadLookups( f, global_Lookups )
			reloadSummary()
			}
	}
/* ----------- */




/* ----------- */
function action_Lookup_deleteRate( f, fid )
	{
	addHistory();
	global_Lookups.deleteRate( fid );
	global_historyArr[global_historyArr.length-1][s_INDEX_taxRateArr] = global_lMarginalTRA;
	loadLookups( f, global_Lookups )
	reloadSummary()
	}
/* ----------- */




/* ----------- */
function action_Lookup_addRate( f, dateStr )
	{
	addHistory();
	global_Lookups.addRate( global_historyArr[global_historyArr.length-1][ s_INDEX_loanPrincipal ], dateStr );
	loadLookups( f, global_Lookups )
	reloadSummary()
	}
/* ----------- */




/* ----------- */

function action_Portfolio_update( f, formfieldID, id, field, fValue )
	{
	var index = -1;
	for( i = 0; i < f.elements.length; i++ )
		if( f.elements[i].name == formfieldID )
			index = i;
	
	if( fieldNotChanged( f.elements[index] ) )
		return;


	if( field != "fundName" )
		if( eval(fValue) < 0 )		
			{
			alert( "Assest Allocation must be a positive number." );
			reSetField(f, index, global_originalFieldValue);
			return;
			}
		
	addHistory();

	if( !global_Portfolio.updatePortfolio(id, field, fValue))
		{
		reSetField(f, index, global_originalFieldValue);
		}		
		else
			{
			loadPortfolio( f, global_Portfolio )
			reloadSummary();
			}
	}
/* ----------- */




/* ----------- */
function action_Portfolio_deleteFund( f, fid )
	{
	addHistory();
	global_Portfolio.deleteFund( fid );
	global_historyArr[global_historyArr.length-1][s_INDEX_fundArr] = global_pFunds;
	loadPortfolio( f, global_Portfolio )
	reloadSummary();
	}
/* ----------- */




/* ----------- */

function action_Portfolio_addFund( f, dateStr )
	{
	addHistory();
	global_Portfolio.addFund( global_historyArr[global_historyArr.length-1][ s_INDEX_loanPrincipal ], dateStr );
	loadPortfolio( f, global_Portfolio )
	reloadSummary();
	}
/* ----------- */
	
