

var focusLineClasses = new Array();

/* FUNCTION PSEUDO CLASS ----------- */
function msNormalAttributes( principal )
	{
	this.payment = 0;
	this.principalAmount = 0;
	this.interestAmount = 0;
	this.cumInterestAmount = 0;
	this.balanceAmount = principal.toFixed(2);
	this.cumPrincipalPaid = 0.0;
	this.cumCashFlow = 0;
	}
/* ----------- */

/* FUNCTION PSEUDO CLASS ----------- */
function msAcceleratorAttrs( principal )
	{
	this.last_revisedPayment = 0;
	this.revisedPayment = 0;
	this.revisedPaymentTest = 0;
	this.interestAmount = 0;
	this.filterMortgage = 0;
	this.enableMortgageAccelerator = false;
	this.balanceAmount = principal.toFixed(2);
	this.interestSaved = 0;
	this.cumInterestSaved = 0;
	this.cumCashFlow = 0;
	this.interestAmountTest = 0;
	this.totalPayment = 0;

	this.totalInterestAmount = 0;
	this.totalRevisedPayment = 0;
	this.totalNumberPayments = 0;
	
	this.getTotalInterestPaid = function()
		{
		return this.totalInterestAmount.toFixed(2);
		}

	this.getTotalPayments = function()
		{
		return this.totalRevisedPayment.toFixed(2);
		}		

	this.getYearsToPay = function()
		{
		return eval(eval(this.totalNumberPayments)/12).toFixed(1);
		}		
	}
/* ----------- */



/* FUNCTION PSEUDO CLASS ----------- */
function mortgageScenariosAttrs( n, a, ir, p )
	{
	this.getPaymentAmount = function( princ, nPayments, interest )
		{
	  	var rate =  (interest * .01) / 12;
	  	return (princ * rate / (1 - (1 / Math.pow(1 + rate, nPayments)))).toFixed(2);
		}


	this.normal = n;
	this.accelerator = a;
	this.interestRate = ir
	this.principal = p;
	this.monthlyInterestRate = (this.interestRate * .01) / 12;

	this.setMonthlyInterestRate = function()
		{
		this.monthlyInterestRate = (this.interestRate * .01) / 12;
		}
	}
/* ----------- */


/* FUNCTION PSEUDO CLASS ----------- */
function investmentLoanAttrs( mdf, iror, investmentLoanPrincipal, md, ilir, mtr )
	{
	this.principal = investmentLoanPrincipal;
	this.value = investmentLoanPrincipal;
	this.investmentLoanPrincipal = 0;
	this.monthlyDistribution = md;
	this.totalDistribution = 0;
	this.monthlyInterestPayment = 0;
	this.totalMonthlyInterestPayed = 0;

	this.monthlyIncrementalInvestment = 0; 

	this.filtered_mortgage = 0; // filtered
	this.filtered_investmentLoanPrinciple = 0; // filtered
	this.filtered_reinvestment = 0; // filtered
	this.filtered_RRSP = 0; // filtered
	this.filtered_cash = 0; // filtered
	this.filtered_other = 0; // filtered

	this.filtered_mortgage_TTL = 0; // filtered
	this.filtered_investmentLoanPrinciple_TTL = 0; // filtered
	this.filtered_reinvestment_TTL = 0; // filtered
	this.filtered_RRSP_TTL = 0; // filtered
	this.filtered_cash_TTL = 0; // filtered
	this.filtered_other_TTL = 0; // filtered

	this.taxSavings = 0;
	this.totalTaxSavings = 0;
	this.monthlyDistributionFactor = eval(mdf/100);
	this.investmentROR = eval(iror/100);
	this.investmentLoanIR = ilir; 

	this.redirectPayments = true;
	this.marginalTaxRate = eval(mtr/100);

	this.setMarginalTaxRate = function( mTaxRate )
		{
		this.marginalTaxRate = eval(mTaxRate/100);
		}

	this.setInvestmentROR = function( ror )
		{
		this.investmentROR = eval(ror/100);
		}

	this.setMonthlyDistributionFactor = function( df )
		{
		this.monthlyDistributionFactor = eval(df/100);
		}
	}

/* ----------- */


/* FUNCTION PSEUDO CLASS ----------- */
function scenario( m, i, h, n, ir, hgr, pspm )
	{
	this.year = 0;
	this.month = 0;
	this.mortgage = m;
	this.investmentLoans = i;
	this.houseValue = h.toFixed(2);
	this.futureHouseValue = this.houseValue;
	this.numberPayments = n;	
	this.acceleratedNumberPayments = 0;
	this.interestRate = ir
	this.housingGrowthRate = hgr;
	this.potentialSavingsPerMonth = pspm
	this.mortgage.accelerator.revisedPayment = this.mortgage.getPaymentAmount( this.mortgage.principal, this.numberPayments, this.interestRate );

	this.setNextMonth = function()
		{
		this.month++;

		if( (this.month%12) == 0 ) 
			this.year++;
		}

	this.setFutureHouseValue = function() 
		{
		var annualInterestRate = (( this.housingGrowthRate/100 ) / 12);
		this.futureHouseValue = Math.floor( this.houseValue * ( Math.pow( ( 1+annualInterestRate ), this.month ) ) * 100 ) /100;
		this.futureHouseValue = this.futureHouseValue.toFixed(2);
		}



	}
/* ----------- */


/* FUNCTION PSEUDO CLASS ----------- */
function scenarios( n, history )
	{
	this.prev = null;
	this.next = n;
	this.historyArr = history;
	this.isSameMonthHistoryNum = 0;
	this.isSameMonthHistory = false;
	this.isSameYearHistory = false;
	this.offSetYearNum = 0;
	this.offSetMonthNum = 0;
	
	this.getNextScenario = function()
		{
		this.setPrev();
		this.setNext();

		return this.next;
		}

	this.setPrev = function()
		{
		this.prev = this.next;
		}


	this.setHistory = function()
		{
		for( var m = 0; m < this.historyArr.length; m++ )
			{
		
			if( this.historyArr[ m ][s_INDEX_monthNum] == this.next.month)
				{
//				alert( "m: " + m )
				this.isSameMonthHistory = true;
				this.isSameMonthHistoryNum = m;
				break;
				}
				else
					this.isSameMonthHistory = false;
		

			}

		
		for( var y = 0; y < this.historyArr.length; y++ )
			{
			
			if( this.historyArr[y][s_INDEX_monthNum] < this.offSetMonthNum && this.next.month < this.offSetMonthNum ) // for the first year if the year starts other than jan
				{
				this.isSameYearHistory = true;
				break;
				}
				else
					{
					if( this.next.month > this.offSetMonthNum - 1 ) // because the offset is less than 12 and this will mark the both the first and second years
						if(	Math.floor( (this.historyArr[y][s_INDEX_monthNum] - this.offSetMonthNum)/12 )  ==   this.next.year )
							{
							this.isSameYearHistory = true;
							break;
							}
							else
								this.isSameYearHistory = false;

					}			
			}

		if( this.isSameMonthHistory )
			{
			this.doHistory();
			loadLookups( document.lookup, global_Lookups )
			loadPortfolio( document.portfolio, global_Portfolio );
			}
		
		}


	this.doHistory = function()
		{

		if(	this.isSameMonthHistory )			
			{
			var ha = this.historyArr[this.isSameMonthHistoryNum];
			global_Portfolio = new portfolio( "portfolio_content", ha[s_INDEX_fundArr], ha[s_INDEX_loanPrincipal] );

			ha[s_INDEX_monthlyDistributionFactor] = global_Portfolio.getMonthlyDistributionCompoundFactor();

			global_Lookups = new lookUps( "lookup_content", ha[s_INDEX_taxRateArr], ha[s_INDEX_annualIncome], ha[s_INDEX_defaultInvestmentPrincipal], ha[s_INDEX_housingGrowthRate], ha[s_INDEX_primeRate], ha[s_INDEX_primeRate_Plus], ha[s_INDEX_securedInvestmentLoan], ha[s_INDEX_filtersArr], ha[s_INDEX_enableMortgageAccelerator] );
			var loanDiff = ha[s_INDEX_loanPrincipal] - this.next.investmentLoans.principal
			this.next.investmentLoans.principal = ha[s_INDEX_loanPrincipal];
			this.next.investmentLoans.value = eval(this.next.investmentLoans.value) + eval(loanDiff);

			this.next.mortgage.accelerator.enableMortgageAccelerator = ha[s_INDEX_enableMortgageAccelerator];
		
			ha[s_INDEX_marginalTaxRate] = global_Lookups.attributes.marginalTaxRate.toFixed(2);

			this.next.investmentLoans.setMarginalTaxRate( eval(ha[s_INDEX_marginalTaxRate]) );
			this.next.interestRate = ha[ s_INDEX_anualInterestRate ];
			this.next.mortgage.interestRate = ha[ s_INDEX_anualInterestRate ];
			this.next.mortgage.setMonthlyInterestRate();
			mnthIntRate = this.next.mortgage.monthlyInterestRate;
			
			
			var temp_mAmount = 0;
			if( this.isSameMonthHistoryNum > 0 )
				temp_mAmount = this.historyArr[this.isSameMonthHistoryNum-1][s_INDEX_mAmount];
					else
						temp_mAmount = this.historyArr[this.isSameMonthHistoryNum][s_INDEX_mAmount];


			var temp_diff = eval(eval(ha[s_INDEX_mAmount]) - eval(temp_mAmount) )
			this.next.mortgage.normal.balanceAmount = eval(eval(this.next.mortgage.normal.balanceAmount) + eval(temp_diff));
			this.next.mortgage.accelerator.balanceAmount = eval(eval(this.next.mortgage.accelerator.balanceAmount) + eval(temp_diff));
			
			if( ha[ s_INDEX_monthlyPayment] != 0 )
				{
				this.next.mortgage.normal.payment = ha[ s_INDEX_monthlyPayment];
				global_paymentTooSmall = resetNumPayment( this.next.mortgage.normal.balanceAmount,  ha[ s_INDEX_monthlyPayment], this.next.month, mnthIntRate)
				}
				else
					this.next.mortgage.normal.payment = this.next.mortgage.getPaymentAmount( this.next.mortgage.normal.balanceAmount, eval((ha[ s_INDEX_numPayments]+1) - this.next.month ), ha[ s_INDEX_anualInterestRate ] );


				
			this.next.investmentLoans.setMonthlyDistributionFactor( ha[s_INDEX_monthlyDistributionFactor] );
			this.next.investmentLoans.setInvestmentROR( ha[ s_INDEX_rateOfReturn ] );
			this.next.houseValue = ha[ s_INDEX_propertyValue ];
			this.next.setFutureHouseValue();
			}

		}		
		

	//
	this.getFilterMoney = function( filter, payment, taxsavings )
		{
		// we are redistributing the (investments)monthlyDistribution
		var moneyFilter = this.historyArr[this.isSameMonthHistoryNum][s_INDEX_filtersArr];	
		var filteredValue = 0;

		for( var f = 0; f < moneyFilter.length; f++ )
			{
			if( moneyFilter[f].percentage > 0 )
				if( moneyFilter[f].name == filter )
					{
					switch( moneyFilter[f].name )
						{
						case FILTER_Investment_Loan_Principle :
							filteredValue = (moneyFilter[f].percentage * .01) * payment;
							filteredValue += (moneyFilter[f].percentage * .01) * taxsavings;
							break;
		
						case FILTER_Mortgage :
							filteredValue = (moneyFilter[f].percentage * .01) * payment;
							filteredValue += (moneyFilter[f].percentage * .01) * taxsavings;
							break;
		
						case FILTER_Reinvesting :
							if( taxsavings > 0 )
								filteredValue = (moneyFilter[f].percentage * .01) * taxsavings;
									else
										filteredValue = (moneyFilter[f].percentage * .01) * payment;
							break;

						case FILTER_RRSP :
							filteredValue = (moneyFilter[f].percentage * .01) * payment;
							filteredValue += (moneyFilter[f].percentage * .01) * taxsavings;
							break;
		
						case FILTER_Cash :
							filteredValue = (moneyFilter[f].percentage * .01) * payment;
							filteredValue += (moneyFilter[f].percentage * .01) * taxsavings;
							break;
						}
					break;	
					}				
			}			


		return filteredValue;
		}
	//

	//
	this.setNext = function()
		{
		this.next.setNextMonth();
		this.next.setFutureHouseValue();
		var mnthIntRate = ((this.next.interestRate/100)/12);	

		var nN = this.next.mortgage.normal;
		var pN = this.prev.mortgage.normal;

		var nA = this.next.mortgage.accelerator;
		var pA = this.prev.mortgage.accelerator;

		var nI = this.next.investmentLoans;
		var pI = this.prev.investmentLoans;

		// find history change for year
		this.setHistory();

		if( this.next.month == 1 )
			{
			this.next.mortgage.normal.payment = this.next.mortgage.getPaymentAmount( this.next.mortgage.principal, this.next.numberPayments, this.next.interestRate );
			}

		if( this.next.month == 999 )
			{
			alert("Number of Payments is over :" + this.next.numberPayments )
			}
		// normal --------------------------
		
		// G10
		nN.interestAmount = ( nN.balanceAmount * mnthIntRate );
		nN.cumInterestAmount = parseFloat(nN.cumInterestAmount) + parseFloat(nN.interestAmount); 
		// E10
		nN.principalAmount = ( nN.payment - nN.interestAmount );
		// I10
		nN.cumPrincipalPaid = eval(nN.cumPrincipalPaid) + nN.principalAmount;
		// H10
		nN.balanceAmount -= nN.principalAmount;
		// K10
		nN.cumCashFlow = ( this.next.potentialSavingsPerMonth + eval(nN.payment)) * this.next.month;
		
		var temp_pAinterestAmount = eval(pA.interestAmount); // we are using a temp value because the value is a reference not a value.
		// o10 needs q9 before						
		// accelerator - interest O10
		if(pA.balanceAmount <= 0 )
			nA.interestAmount = 0;
				else
					nA.interestAmount = eval( mnthIntRate * pA.balanceAmount );

		// u10 needs o10, n8, u9, o9
		// investment - U10
		if( eval(nA.interestAmount) == 0 )
			{
			if( eval(temp_pAinterestAmount) > 0 )
				nA.revisedPaymentTest = pA.last_revisedPayment;
					else
						nA.revisedPaymentTest = pA.revisedPaymentTest;
			}
			else
				nA.revisedPaymentTest = 0

		nI.monthlyIncrementalInvestment = nA.revisedPaymentTest;
		nI.filtered_investmentLoanPrinciple = eval(this.getFilterMoney( FILTER_Investment_Loan_Principle, nI.monthlyDistribution, pI.taxSavings ));
		nI.filtered_investmentLoanPrinciple_TTL += eval(nI.filtered_investmentLoanPrinciple);

		nI.filtered_RRSP = (eval(pI.filtered_RRSP) + this.getFilterMoney( FILTER_RRSP, nI.monthlyDistribution, pI.taxSavings ));
		nI.filtered_cash = (eval(pI.filtered_cash) + this.getFilterMoney( FILTER_Cash, nI.monthlyDistribution, pI.taxSavings ));

		if( eval(nI.principal > 0) )
			{
			nI.principal -= nI.filtered_investmentLoanPrinciple;
			if( nI.principal < 0 )
				nI.principal = 0.00;
			}
			else
				{
				nI.principal = 0.00;
				if( nA.enableMortgageAccelerator )
					nI.filtered_other += eval(nI.filtered_investmentLoanPrinciple.toFixed(2));

				}

		// y10 needs o10, y9, ad34
		// investment - value Y10
		var ROR =  eval( nI.investmentROR / 12 )
			ROR += 1;

		var MDF = eval(nI.monthlyDistributionFactor)
			MDF = this.getFilterMoney( FILTER_Reinvesting, MDF, 0 );
			MDF += 1;


		if( this.next.month > 1 && MDF > 1 )
			{

			nI.filtered_reinvestment = (nI.value * MDF )- pI.value;
			nI.filtered_reinvestment_TTL += eval(nI.filtered_reinvestment);
			nI.filtered_reinvestment_TTL += this.getFilterMoney( FILTER_Reinvesting, 0, pI.taxSavings );
			nI.value = (pI.value * MDF) + this.getFilterMoney( FILTER_Reinvesting, 0, pI.taxSavings );
			}
			else
				{
				nI.value = (nI.value *  ROR);
				}

		// z10 needs y10, o10 before
		// investment - monthly distribution Z10
		if( this.next.month > 1 )
			if( nA.interestAmount == 0 )
				nI.monthlyDistribution = 0;
				 else
				 	nI.monthlyDistribution = (nI.value * nI.monthlyDistributionFactor);

		nI.totalDistribution = eval(nI.monthlyDistribution) + eval(pI.totalDistribution);


		// ab10 needs o10, ab9, y10
		// investment - tax savings AB10
		if( nA.interestAmount == 0 )
			nI.monthlyInterestPayment = eval(pI.monthlyInterestPayment);
				else
					nI.monthlyInterestPayment = ( nI.value * ( (nI.investmentLoanIR/100)/12 ) );

		nI.totalMonthlyInterestPayed += nI.monthlyInterestPayment;
		
		//ae10 needs ab10 before
		// investment - tax savings AE10
		nI.taxSavings = ( nI.monthlyInterestPayment  * nI.marginalTaxRate );

		// q10 needs ae10, z10 before
		// accelerator - balance Q10
		nI.filtered_mortgage = this.getFilterMoney( FILTER_Mortgage, nI.monthlyDistribution, pI.taxSavings );
		if( nA.enableMortgageAccelerator && nI.principal > 0 )
		if( nA.balanceAmount > 0 )
			nI.filtered_mortgage_TTL += eval(nI.filtered_mortgage);

		var tempBalance = 0;
		if( nA.enableMortgageAccelerator )
			tempBalance = eval(pA.balanceAmount) - eval(nN.principalAmount) - eval(nI.filtered_mortgage);
				else
					{
					tempBalance = eval(pA.balanceAmount) - eval(nN.principalAmount)
					nI.filtered_other += eval(nI.filtered_mortgage);
					}
					
	
		if( nA.interestAmount == 0 )
			{
			nA.balanceAmount = 0
			nI.filtered_other += eval(nI.filtered_mortgage);
			}
			else
 				if( tempBalance < 0  )
					nA.balanceAmount = 	0
						else
							nA.balanceAmount = 	tempBalance;

		// n10 needs Q10, o10 before
		// accelerator - revised payment N10
		nA.last_revisedPayment = eval(nA.revisedPayment);

		if( nA.interestAmount <= 0 )
			nA.revisedPayment = 0
				else
					{
					nA.totalNumberPayments++;
					nA.revisedPayment = ( eval(nA.interestAmount) + eval(nN.principalAmount) );
					}

		//m10 needs o10, m9	before	
		// accelerator - M10
		if( nA.interestAmount == 0 )
			{
			if( pA.interestAmountTest > 0 )
				nA.interestAmountTest = 0;
				else
					nA.interestAmountTest = pA.interestAmountTest - 1;
			}
			else
				nA.interestAmountTest = nA.interestAmount;
		
		// s10 needs o10 before		
		// accelerator - interest saved S10
		if( nN.payment == 0 ) 
			nA.interestSaved = 0;
				else
					nA.interestSaved = eval(nN.interestAmount) - eval(nA.interestAmount);								
								
		// t10 needs s10 before
		// accelerator - cummulative interest saved T10
		nA.cumInterestSaved = eval(pA.cumInterestSaved) + eval(nA.interestSaved);								

		//v10 needs m10, ab10, v9, ad10, e10, 010 before
		// accelerator - cummulative cash flow V10
		if( nA.interestAmountTest <= 0 )
			 nA.cumCashFlow = (eval(nI.monthlyInterestPayment) + eval(pA.cumCashFlow) + eval(nI.monthlyIncrementalInvestment) );
			 	else
					nA.cumCashFlow = ( eval(nN.principalAmount) + eval(nA.interestAmount) + eval(nI.monthlyInterestPayment) + eval(pA.cumCashFlow) + eval(nI.monthlyIncrementalInvestment) );	

		//af10 need af9, ae10 before
		// investment - tax savings AF10
		nI.totalTaxSavings = (eval(pI.totalTaxSavings) + eval(nI.taxSavings));				
		nA.totalRevisedPayment += eval(nA.revisedPayment);

		this.doFixed( nN, nA, nI );
		return this.next;
		}
	//		


	//	
	this.doFixed = function( n, a, i )
		{

		if( i.monthlyDistribution == 0 && i.investmentLoanPrincipal == 0 )
			i.investmentLoanPrincipal = eval(i.principal).toFixed(2);					
//			i.investmentLoanPrincipal = eval(i.value).toFixed(2);					

		
		// normal
		n.interestAmount = n.interestAmount.toFixed(2);
//		nN.cumInterestAmount = parseFloat(nN.cumInterestAmount); 
		n.cumInterestAmount = n.cumInterestAmount.toFixed(2)
		n.principalAmount = n.principalAmount.toFixed(2);
		n.cumPrincipalPaid = n.cumPrincipalPaid.toFixed(2);
		n.balanceAmount = n.balanceAmount.toFixed(2);
		n.cumCashFlow = n.cumCashFlow.toFixed(2);
			
		

		// accelorator					
		a.revisedPayment = a.revisedPayment.toFixed(2);
		a.interestAmount = a.interestAmount.toFixed(2);
		a.totalInterestAmount += eval(a.interestAmount);
		
		a.balanceAmount = a.balanceAmount.toFixed(2);
		a.interestSaved = eval(a.interestSaved).toFixed(2);
		a.cumInterestSaved = eval(a.cumInterestSaved).toFixed(2);
		a.cumCashFlow = eval(a.cumCashFlow).toFixed(2);
					
		// investment
		i.principal = eval(i.principal.toFixed(2));
		i.value = eval(i.value).toFixed(2);
		i.monthlyDistribution = eval(i.monthlyDistribution).toFixed(2);
		i.totalDistribution = i.totalDistribution.toFixed(2);
		i.monthlyInterestPayment = i.monthlyInterestPayment.toFixed(2);
		i.monthlyIncrementalInvestment = i.monthlyIncrementalInvestment.toFixed(2)
		i.taxSavings = i.taxSavings.toFixed(2);

		i.filtered_mortgage_TTL = eval(i.filtered_mortgage_TTL.toFixed(2));
		i.filtered_reinvestment = eval(i.filtered_reinvestment.toFixed(2));
		i.filtered_RRSP = i.filtered_RRSP.toFixed(2);
		i.filtered_cash = i.filtered_cash.toFixed(2);
		i.filtered_investmentLoanPrinciple = i.filtered_investmentLoanPrinciple.toFixed(2);
		i.filtered_other = eval(i.filtered_other.toFixed(2));
		i.filtered_investmentLoanPrinciple_TTL = eval(i.filtered_investmentLoanPrinciple_TTL.toFixed(2));
		i.filtered_reinvestment_TTL = eval(i.filtered_reinvestment_TTL.toFixed(2));

		i.totalTaxSavings = eval(i.totalTaxSavings).toFixed(2);
		}

	}
/* ----------- */

function formatDate_year( yearIndex )
	{
	var thisdate = new Date( global_startDate );
	return thisdate.getFullYear() + yearIndex;
	}


function formatDate_month( monthIndex )
	{
	return getMonthName( monthIndex )
	}


function getMonthName( monthIndex )
	{
	var month = new Array("January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")

	return month[monthIndex+1];
	}


function isTodayYear( thisYear )
	{
	var thisdate = new Date();
	 if( thisYear == thisdate.getFullYear() )
	 	return true;	
		
	return false;	
	}

function isTodayMonth( thisMonth )
	{
	var thisdate = new Date();
	 if( thisMonth == thisdate.getMonth() )
		return true;	
		
	return false;	
	}

	
function formatHistoryPopUp( historyArr, monthNum )
	{

	var enableMortgageAcceleratorStr = "Off"
	var m = 0;
	var h = historyArr;
	var len = historyArr.length;
	var isChanged = false;

	for( n = 0; n < len; n++ )
		if( eval(h[ n ][ s_INDEX_monthNum ]) == eval(monthNum) )
			m = n;

	var contentStr = "<table cellpadding=0 cellspacing=0 width=\'100%\' class=\"contentTip\">"
		contentStr += "<tr><td class=\"popUpTop\" colspan=\"2\">Your History Changes</td></tr>"

	if( m == 0 )
		{
		contentStr += "<tr><th class=\'rightVertBottomLine\' style=\"color:"+openMouseOverLineClr+"\"></th><td class=\'VertBottomLine\'></td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Annual Income</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_annualIncome]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>PrimeRate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_primeRate]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>PrimeRate Plus</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_primeRate_Plus]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Secured Investment Loan</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_securedInvestmentLoan]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Mortgage Amount</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_mAmount]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Term Years</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_termYears]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Anual Interest Rate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_anualInterestRate]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Num Payments</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_numPayments]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Potential Savings Per-Month</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_potentialSavingsPerMonth]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Property Value</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_propertyValue]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Rate of Return</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_rateOfReturn]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Default Investment Principal</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_defaultInvestmentPrincipal]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Housing Growth Rate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_housingGrowthRate]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Loan Principal</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_loanPrincipal]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Monthly Distribution Factor</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_monthlyDistributionFactor]+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Marginal Tax Rate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_marginalTaxRate]+"</td></tr>"
		if( h[m][s_INDEX_enableMortgageAccelerator] )
			enableMortgageAcceleratorStr = "On"
	
		contentStr += "<tr><th class=\'rightVertBottomLine\'>Enable Mortgage Accelerator</th><td class=\'VertBottomLine\'>"+enableMortgageAcceleratorStr+"</td></tr>"
		contentStr += "<tr><th class=\'rightVertBottomLine\'>&nbsp;</th><td class=\'VertBottomLine\'>&nbsp;</td></tr>"
		contentStr += "<tr><th style=\"background-color:black; color:white\">Money Allocation Filters</th><td style=\"background-color:black; color:white\">&nbsp;</td></tr>"
		for( f = 0; f < h[m][s_INDEX_filtersArr].length; f++ )
			contentStr += "<tr><th class=\'rightVertBottomLine\'>" +h[m][s_INDEX_filtersArr][f].name+ "</th><td class=\'VertBottomLine\' >"+h[m][s_INDEX_filtersArr][f].percentage +"%</td></tr>"
		
		isChanged = true;
		}
		else
			{
			if( len > 1 )
				{

				if( h[(m-1)][s_INDEX_annualIncome] != h[m][s_INDEX_annualIncome] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Annual Income</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_annualIncome]+"</td></tr>"
					isChanged = true;
					}
				if( h[(m-1)][s_INDEX_primeRate] != h[m][s_INDEX_primeRate] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>PrimeRate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_primeRate]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_primeRate_Plus] != h[m][s_INDEX_primeRate_Plus] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>PrimeRate Plus</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_primeRate_Plus]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_securedInvestmentLoan] != h[m][s_INDEX_securedInvestmentLoan] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Secured Investment Loan</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_securedInvestmentLoan]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_mAmount] != h[m][s_INDEX_mAmount] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Mortgage Amount</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_mAmount]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_termYears] != h[m][s_INDEX_termYears] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Term Years</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_termYears]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_anualInterestRate] != h[m][s_INDEX_anualInterestRate] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Anual Interest Rate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_anualInterestRate]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_numPayments] != h[m][s_INDEX_numPayments] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Num Payments</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_numPayments]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_potentialSavingsPerMonth] != h[m][s_INDEX_potentialSavingsPerMonth] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Potential Savings Per-Month</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_potentialSavingsPerMonth]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_propertyValue] != h[m][s_INDEX_propertyValue] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Property Value</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_propertyValue]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_rateOfReturn] != h[m][s_INDEX_rateOfReturn] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Rate of Return</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_rateOfReturn]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_defaultInvestmentPrincipal] != h[m][s_INDEX_defaultInvestmentPrincipal] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Default Investment Principal</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_defaultInvestmentPrincipal]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_housingGrowthRate] != h[m][s_INDEX_housingGrowthRate] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Housing Growth Rate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_housingGrowthRate]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_loanPrincipal] != h[m][s_INDEX_loanPrincipal] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Loan Principal</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_loanPrincipal]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_monthlyDistributionFactor] != h[m][s_INDEX_monthlyDistributionFactor] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Monthly Distribution Factor</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_monthlyDistributionFactor]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_marginalTaxRate] != h[m][s_INDEX_marginalTaxRate] )
					{
					contentStr += "<tr><th class=\'rightVertBottomLine\'>Marginal Tax Rate</th><td class=\'VertBottomLine\'>"+h[m][s_INDEX_marginalTaxRate]+"</td></tr>"
					isChanged = true;
					}					
				if( h[(m-1)][s_INDEX_enableMortgageAccelerator] != h[m][s_INDEX_enableMortgageAccelerator] )
					{
					enableMortgageAcceleratorStr = "Off"
					if( h[m][s_INDEX_enableMortgageAccelerator] )
						enableMortgageAcceleratorStr = "On"

					contentStr += "<tr><th class=\'rightVertBottomLine\'>Enable Mortgage Accelerator</th><td class=\'VertBottomLine\'>"+enableMortgageAcceleratorStr+"</td></tr>"
					isChanged = true;
					}					
					
				for( k = 0; k < h[m][s_INDEX_filtersArr].length; k++ )
					if( h[(m-1)][s_INDEX_filtersArr][k].percentage != h[m][s_INDEX_filtersArr][k].percentage )
						{
						contentStr += "<tr><th class=\'rightVertBottomLine\'>&nbsp;</th><td class=\'VertBottomLine\'></td></tr>"
						contentStr += "<tr><th style=\"background-color:black; color:white\">Money Allocation Filters</th><td style=\"background-color:black; color:white\">&nbsp;</td></tr>"
						isChanged = true;
						break;
						}
								
				for( c = 0; c < h[m][s_INDEX_filtersArr].length; c++ )
					if( h[(m-1)][s_INDEX_filtersArr][c].percentage != h[m][s_INDEX_filtersArr][c].percentage )
						{
						contentStr += "<tr><th class=\'rightVertBottomLine\'>" +h[m][s_INDEX_filtersArr][c].name+ "</th><td class=\'VertBottomLine\' >"+h[m][s_INDEX_filtersArr][c].percentage +"%</td></tr>"
						isChanged = true;
						}

				}
			
			}

	contentStr += "</table>"
	if( !isChanged )
		{
		contentStr = "<table cellpadding=0 cellspacing=0 width=\'100%\' class=\"contentTip\">"
		contentStr += "<tr><td class=\"popUpTop\" colspan=\"2\">Your History Changes</td></tr>"
		contentStr += "<td colspan=\"2\" class=\'VertBottomLine\'>All changes have benn reverted back to there original values</td></tr>"
		}

	popContentStrArr[ popNo ] = contentStr;		

	popNo += 1;
	return popNo-1; // return the inndexed popupstr num.	
	}

/*  View options:
		-mortgage
		-investment
*/	
function loadScenarios( view, showDetailsLineNum )
	{

	loadDefaultScenarios( );

	popUpIndex = 0;
	var termYears = global_historyArr[global_historyArr.length-1][s_INDEX_termYears];

	var contentStr = "";
	contentStr += "<table cellspacing=\"0\" cellpadding=\"2\" style=\"font-size:8pt\" border=\"0\" width=\"100%\">";
	contentStr += "<tr>";
	contentStr += "<td width=\"50\" class=\"scenarioDataLabels\" valign=\"bottom\">Year</td>";
	contentStr += "<td width=\"60\" class=\"scenarioDataLabels\" valign=\"bottom\">Month</td>";


	switch( view )
		{
		case "mortgage_normal" :
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Payment</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Principal</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Interest</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Balance</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Cummulative<br>Principal Paid</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Cummulative<br>Cash Flow</td>";
			break;

		case "mortgage_accelerator" :
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Revised<br>Payment</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Interest</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Balance</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Interest<br>Saved</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Cummulative<br>Interest Paid</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Cummulative<br>Cash Flow</td>";
			break;

		case "investment" :
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Investment<br>Loan</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Investment<br>Value</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Monthly<br>Distribution</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Total<br>Distribution</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Monthly<br>Interest</td>"; //Payment
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Tax<br>Savings</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Total Tax<br>Savings</td>";
			break;

		case "filters" :
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Mortgage<br>Filter</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Investment<br>Loan Principle</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Reinvesting</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">RRSP</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Cash</td>";
				contentStr += "<td class=\"scenarioDataLabels\" valign=\"bottom\">Other</td>";
			break;	

		}					


	contentStr += "<td width=\"60\" class=\"scenarioDataLabels\" valign=\"bottom\">House Value</td>";
	contentStr += "<td width=\"20\" colspan=\"2\" class=\"scenarioDataLabels\" valign=\"bottom\">History</td>";
	contentStr += "</tr>";	

//--
	
	contentStr += "<tr id=\"line_0\" onMouseOver=\"focusLine( this.id, 'false' )\" onMouseOut=\"unFocusLine( this.id, 'false' )\">";
	contentStr += "<td align=\"right\" class=\"scenarosColumn_2\"></td>";
	contentStr += "<td align=\"right\" class=\"rColBorder scenarosColumn_2\">&nbsp;</td>";


				
	switch( view )
		{
		case "mortgage_normal" :
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.balanceAmount).toFixed(2) + "</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
			break;

		case "mortgage_accelerator" :
				contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.revisedPayment).toFixed(2) + "</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.balanceAmount).toFixed(2) + "</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
			break;

		case "investment" :
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
			break;

		case "filters" :
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
				contentStr += "<td>&nbsp;</td>";
			break;
		}					




	contentStr += "<td  class=\"scenarosColumn_3\" align=\"right\">" + global_scenarios.next.futureHouseValue + "</td>";
	contentStr += "<td align=\"right\"></td>";
	contentStr += "<td align=\"right\"></td>";
	contentStr += "</tr>";	


	var thisdate = new Date( global_startDate );
	var offsetMnth = thisdate.getMonth(); 
	var months = 12;
	var offsetNumMonths = 0;
	var temp = 11;
	var january  = -1;

	switch( offsetMnth )
		{
		case 0 :
			global_scenarios.offSetMonthNum = 1
			break;

		case 1 :
			global_scenarios.offSetMonthNum = 0
			break;
	
		default :
			global_scenarios.offSetMonthNum = ( 12 - ( offsetMnth-1) );	
		
		}




	// add 1 to term years because the start date maybe in the middle of a year and we need the next year to add the rest of the months.
	for( var i = 0; i < termYears + 1; i++ )
		{


		if( eval(global_scenarios.next.mortgage.normal.balanceAmount) > 0 )
			{
			// offset months
			if( i == 0 )
				offsetNumMonths = (offsetMnth-1);
					else
						offsetNumMonths = 0; 



//	offsetNumMonths = (offsetMnth-1);
	
//		if( i == ( termYears - 1 ) ) 
//			temp = 2

			if( i == (termYears) )
				{
				months = offsetMnth;
				}
				
			if( i == 0 )
				global_scenarios.getNextScenario();
	
			var offsetYr = 0				
			if( offsetMnth > 2 )
				offsetYr = 1
	
			var isTodayBool = "false";


			if( isTodayYear( formatDate_year( global_scenarios.next.year+offsetYr ) ) )
				{
				isTodayBool = "true";
				}
	
			if(!isNaN( showDetailsLineNum ) )
				{
				if( (showDetailsLineNum-1) == i )
					{
					contentStr += "<tr class=\"openSectionLine_top\" onClick=\"showScenariosDetails( this.id )\" id=\"line_" + (i+1) + "\">";
					cssClass_1 = " class=\"openSectionLine_top\" ";
					cssClass_2 = " class=\"openSectionLine_top\" " 
					cssClass_3 = " class=\"openSectionLine_top\" " 
					}						
					else
						{
						contentStr += "<tr onClick=\"showScenariosDetails( this.id )\" id=\"line_" + (i+1) + "\" onMouseOver=\"focusLine( this.id, '"+isTodayBool+"' )\" onMouseOut=\"unFocusLine( this.id, '"+isTodayBool+"')\">";
						cssClass_1 = " class=\"scenarosColumn_1\" ";
						cssClass_2 = " class=\"scenarosColumn_2\" "; 
						cssClass_3 = " class=\"scenarosColumn_3\" "; 
						} 
				}
				else
					{
					contentStr += "<tr onClick=\"showScenariosDetails( this.id )\" id=\"line_" + (i+1) + "\" onMouseOver=\"focusLine( this.id,  '"+isTodayBool+"' )\" onMouseOut=\"unFocusLine( this.id, '"+isTodayBool+"')\">";
					cssClass_1 = " ";					
					cssClass_2 = " "; 
					cssClass_3 = " "; 
					}
		
			if( i == 0 )
				{
				contentStr += "<td"+cssClass_1+">" + formatDate_year( global_scenarios.next.year ) + "</td>";
				contentStr += "<td align=\"right\""+cssClass_2+">" + formatDate_month(offsetNumMonths) + "</td>";
				global_scenarios.offSetYearNum = global_scenarios.next.year;
				offsetNumMonths++;
				}
				else
					{
// jay here todayArrowIcon
					if( isTodayBool == "true" )
						contentStr += "<td"+cssClass_1+" style=\"padding-left:0;padding-right:0\"><table style=\"font-size:8pt\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"><tr><td"+cssClass_1+"width=\"9\">"+ todayArrowIcon +"</td><td"+cssClass_1+">"+formatDate_year( global_scenarios.next.year + offsetYr )+"</td></tr></table></td>";
							else
								contentStr += "<td"+cssClass_1+">" + formatDate_year( global_scenarios.next.year + offsetYr ) + "</td>";
							
					contentStr += "<td align=\"right\""+cssClass_2+" >" + formatDate_month(january) + "</td>";
					global_scenarios.offSetYearNum = global_scenarios.next.year+offsetYr;
					}
	


			switch( view )
				{
				case "mortgage_normal" :
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.payment).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.principalAmount).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.interestAmount).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.balanceAmount).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.cumPrincipalPaid).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.cumCashFlow).toFixed(2) + "</td>";

					break;

				case "mortgage_accelerator" :
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.revisedPayment).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.interestAmount).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.balanceAmount).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.interestSaved).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.cumInterestSaved).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.cumCashFlow).toFixed(2) + "</td>";
					break;

				case "investment" :
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.principal).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.value).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.monthlyDistribution).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.totalDistribution).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.monthlyInterestPayment).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.taxSavings).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.totalTaxSavings).toFixed(2) +"</td>";
					break;



				case "filters" :
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_mortgage_TTL).toFixed(2) + "</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_investmentLoanPrinciple_TTL).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_reinvestment_TTL).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_RRSP).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_cash).toFixed(2) +"</td>";
						contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_other).toFixed(2) +"</td>";
					break;



				}					


			contentStr += "<td"+cssClass_3+">" + global_scenarios.next.futureHouseValue + "</td>";
	

			if( global_scenarios.isSameYearHistory )
				{
				if(!isNaN( showDetailsLineNum ) )
					{

					// if the history is on the year line, re: january, and it is open we need to show the file not the folder
					if( (showDetailsLineNum-1) == i && global_scenarios.isSameMonthHistory )
						{
						popUpIndex = formatHistoryPopUp( global_scenarios.historyArr, global_scenarios.next.month )
						contentStr += "<td class=\"historyIcon\" align=\"right\"><a href=\"#\" onMouseover=\"ddrivetip( getFormatPopup_History( popContentStrArr["+popUpIndex+"] ),\'\', 350 )\" onMouseout=\"hideddrivetip()\">"+historyIcon+"</a></td><td class=\"historyIcon\" align=\"right\">"+historyFolderIcon+ "</td>";
						
						}
						else
							contentStr += "<td class=\"historyIcon\"></td><td class=\"historyIcon\" align=\"right\">"+historyFolderIcon + "</td>";
					}
					else		
						contentStr += "<td class=\"historyIcon\"></td><td class=\"historyIcon\" align=\"right\">"+historyFolderIcon + "</td>";
				}
				else
					contentStr += "<td class=\"historyIcon\"></td><td class=\"historyIcon\"></td>";
				
			contentStr += "</tr>";	
	
	
			for( j = offsetNumMonths; j < months-1; j++ )
				{

				global_scenarios.getNextScenario();
				if( eval(global_scenarios.next.mortgage.normal.balanceAmount) > global_scenarios.next.mortgage.normal.payment - ( global_scenarios.next.mortgage.normal.payment * 2 ) )
					{
					if( isTodayYear( formatDate_year( global_scenarios.next.year+offsetYr - 1 ) )  && isTodayMonth( j+1 ) )
						global_thisMonthNum = global_scenarios.next.month;

						
					if(!isNaN( showDetailsLineNum ) )
						{
						// line details
						if( (showDetailsLineNum-1) == i )
							{
							if( isTodayYear( formatDate_year( global_scenarios.next.year+offsetYr ) )  && isTodayMonth( j+1 ) )
								{
								contentStr += "<tr class=\"openSectionLine\" id=\"line_" + (i+1) + "_"+j+1+"\" onMouseOver=\"focusDetailedLine( this.id, '"+isTodayBool+"' )\" onMouseOut=\"unFocusDetailedLine( this.id, '"+isTodayBool+"')\">";
								}
								else
									{
									if( global_scenarios.isSameMonthHistory && isTodayBool == "true" )
										{
										contentStr += "<tr class=\"openSectionLine\" id=\"line_" + (i+1) + "_"+j+1+"\" onMouseover=\"ddrivetip( getFormatPopup_History( popContentStr ),\'\', 350 ), focusDetailedLine( this.id, '"+isTodayBool+"' )\" onMouseout=\"hideddrivetip(), unFocusDetailedLine( this.id, '"+isTodayBool+"')\">";
										}		
										else
											contentStr += "<tr class=\"openSectionLine\" id=\"line_" + (i+1) + "_"+j+1+"\" onMouseOver=\"focusDetailedLine( this.id, '"+isTodayBool+"' )\" onMouseOut=\"unFocusDetailedLine( this.id, '"+isTodayBool+"')\">";
									}
							contentStr += "<td align=\"right\">&nbsp;</td>";
// jay here todayArrowIcon
							if( isTodayYear( formatDate_year( global_scenarios.next.year+offsetYr - 1 ) )  && isTodayMonth( j+1 ) )
								contentStr += "<td align=\"right\" class=\"rColBorder\" style=\"padding-right:0\"><table style=\"font-size:8pt\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\"><tr><td class=\"openSectionLine\" width=\"9\">"+ todayArrowIcon +"</td><td class=\"openSectionLine\" style=\"text-align:right; padding-right:2\">" + formatDate_month( j ) + "</td></tr></table></td>";
									else
										contentStr += "<td align=\"right\" class=\"rColBorder\">" + formatDate_month( j ) + "</td>";
	

							switch( view )
								{
								case "mortgage_normal" :
										contentStr += "<td align=\"right\"><i>" + eval(global_scenarios.next.mortgage.normal.payment).toFixed(2) +"</i></td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.principalAmount).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.interestAmount).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.balanceAmount).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.normal.cumPrincipalPaid).toFixed(2) + "</td>";
										contentStr += "<td  align=\"right\" class=\"rColBorder\">" + eval(global_scenarios.next.mortgage.normal.cumCashFlow).toFixed(2) + "</td>";
									break;
				
								case "mortgage_accelerator" :
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.revisedPayment).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.interestAmount).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.balanceAmount).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.interestSaved).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.mortgage.accelerator.cumInterestSaved).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\" class=\"rColBorder\">" + eval(global_scenarios.next.mortgage.accelerator.cumCashFlow).toFixed(2) + "</td>";
									break;
				
								case "investment" :
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.principal).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.value).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.monthlyDistribution).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.totalDistribution).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.monthlyInterestPayment).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.taxSavings).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\" class=\"rColBorder\">"+ eval(global_scenarios.next.investmentLoans.totalTaxSavings).toFixed(2) +"</td>";
									break;


								case "filters" :
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_mortgage_TTL).toFixed(2) + "</td>";
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.filtered_investmentLoanPrinciple_TTL).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">"+ eval(global_scenarios.next.investmentLoans.filtered_reinvestment_TTL).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_RRSP).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\">" + eval(global_scenarios.next.investmentLoans.filtered_cash).toFixed(2) +"</td>";
										contentStr += "<td align=\"right\" class=\"rColBorder\">" + eval(global_scenarios.next.investmentLoans.filtered_other).toFixed(2) +"</td>";
									break;
								}					

							contentStr += "<td align=\"right\"><i>" + eval(global_scenarios.next.futureHouseValue).toFixed(2) + "</i></td>";
							if( global_scenarios.isSameMonthHistory )
								{
								popUpIndex = formatHistoryPopUp( global_scenarios.historyArr, global_scenarios.next.month )
								contentStr += "<td class=\"historyIcon\" align=\"right\"><a href=\"#\" onMouseover=\"ddrivetip( getFormatPopup_History( popContentStrArr["+popUpIndex+"] ),\'\', 350 )\" onMouseout=\"hideddrivetip()\">"+historyIcon+"</a></td><td class=\"historyIcon\"></td>";
								
							
								}									
								else
									contentStr += "<td class=\"historyIcon\"></td><td class=\"historyIcon\"></td>";
	
							contentStr += "</tr>";	
							}	
						}

	
					}
					
				} // end months for loops
			if( i < (termYears) )
				global_scenarios.getNextScenario(); 
			} // end if
		}
	// end years for loop	
	contentStr += "</table>";	
//	document.all.scenarios_content.innerHTML = contentStr;
	document.getElementById("scenarios_content").innerHTML = contentStr;
	}

function setScenarioView( view, tid )
	{
	document.getElementById("mortgage_normal_tab").className = "scenario_taboutline_off";
	document.getElementById("mortgage_accelerator_tab").className = "scenario_taboutline_off";
	document.getElementById("investment_tab").className = "scenario_taboutline_off";
	document.getElementById("filters_tab").className = "scenario_taboutline_off";
	document.getElementById(tid).className = "scenario_taboutline_on";
	
	global_ScenarioView = view;
	loadScenarios( global_ScenarioView, global_scenarios_lineOpen );
	}	
	

function showScenariosDetails( lineID )
	{
	if( global_scenarios_lineOpen == eval(lineID.substring( 5 ) ) )
		{
		global_scenarios_lineOpen = -1;
		loadScenarios( global_ScenarioView, global_scenarios_lineOpen );
		}
		else
			{
			loadScenarios( global_ScenarioView, eval(lineID.substring( 5 ) ), global_scenarios_lineOpen );
			global_scenarios_lineOpen = eval(lineID.substring( 5 ) );
			}
	}
	

	
function focusLine( id, isToday )	
	{
	for( j = 0; j < document.getElementById( id ).childNodes.length; j++ )
		{
		focusLineClasses[j] = document.getElementById( id ).childNodes[j].className;
		document.getElementById( id ).childNodes[j].className = "mouseOverLine";
		}
				
	document.getElementById( id ).style.cursor = "hand"
	}


function unFocusLine( id, isToday )	
	{
	for( j = 0; j < document.getElementById( id ).childNodes.length; j++ )
		{
		document.getElementById( id ).childNodes[j].className = focusLineClasses[j];
		}
				
	document.getElementById( id ).style.cursor = "arrow"
	}
	



function focusDetailedLine( id, isToday )	
	{

	document.getElementById( id ).style.background = openMouseOverLineClr;
	document.getElementById( id ).childNodes[0].style.background = openArea;

	document.getElementById( id ).style.cursor = "hand"
	}


function unFocusDetailedLine( id, isToday )	
	{
	document.getElementById( id ).style.background = openArea;
	document.getElementById( id ).style.cursor = "hand"
	}



function resetNumPayment( principal,  monthlyPayment, numPaymentsMade, monthlyInterestRate)
	{
	var nPayments = 0;
	var interestAmount = 0;
	var principal_port = 0;
	
	while( principal > monthlyPayment ) 
		{
		nPayments++;
		if( nPayments >= global_maxPayments )
			return nPayments;

		interestAmount = monthlyInterestRate * principal;
		principal_port = eval(monthlyPayment) - eval(interestAmount);
		principal -= eval(principal_port);
		}
	global_historyArr[global_historyArr.length-1][ s_INDEX_termYears ] = eval(calcNumYears( nPayments + numPaymentsMade ));
	global_historyArr[global_historyArr.length-1][ s_INDEX_numPayments ] = eval(nPayments + numPaymentsMade );

	return nPayments;
	}
	