/**
 * Created by IntelliJ IDEA.
 * User: chris.hilditch
 * Date: 13-Oct-2010
 * Time: 16:43:30
 * To change this template use File | Settings | File Templates.
 */
netdirector.util.namespace('netdirector.search.budget');

netdirector.search.budget = {
	elIdForm: '#frmBudgetSearch',
	elId: '#vehicleSearchBudget',
	apr: 15,
	activeType: 'fixed',

	onReady: function() {
		var self = this;
		this.apr = $(this.elId +'_apr').val();

		$(this.elIdForm +' .vehicleSearchBudget_fieldLoan').change(function() {
			self.activeType = 'loan';
			self.process();
		});
		$(this.elIdForm +' .vehicleSearchBudget_fieldFixed').change(function() {
			self.activeType = 'fixed';
			self.process();
		});

		$(this.elIdForm +' .vehicleSearchBudget_submit').click(function() {
			self.process();

			if (self.activeType == 'fixed') {
				$(self.elId +'_maxPrice').val($(self.elId +'_maxPriceFixed').val());
			}

			$(self.elIdForm).submit();
		});

		this.process();
	},

	process: function() {
		var monthlyBudget = $(this.elId +'_monthlyBudget').val();
		if ( (monthlyBudget == '') || isNaN( monthlyBudget ) ) {
			return;
		}

		var deposit = $(this.elId +'_deposit').val();
		var term = $(this.elId +'_loanPeriod').val();

		var monthly_apr = ( parseFloat( this.apr ) / 12 ) /100;

		var totalFunds = 0;
		var totalInterest = 0;
//		var totalAll = 0;

		var monthly_interest_payment = new Array();
		var monthly_total_payment = new Array();

		// Loop over the term to generate the monthly values
		for( var i = 0; i < term; i++  ) {
			if( i == 0 ) {
				monthly_interest_payment[i] = parseFloat( monthlyBudget ) * parseFloat( monthly_apr );
				monthly_total_payment[i] = parseFloat( monthlyBudget ) - parseFloat( monthly_interest_payment[i] );
			} else {
				monthly_interest_payment[i] = ( parseFloat( monthlyBudget ) + parseFloat( monthly_total_payment[ i -1 ] ) )* parseFloat( monthly_apr );
				monthly_total_payment[i] = ( parseFloat( monthlyBudget ) + parseFloat( monthly_total_payment[ i -1 ] ) ) - parseFloat( monthly_interest_payment[i] );
				totalFunds = monthly_total_payment[i];

			}
			totalInterest = parseFloat( totalInterest + monthly_interest_payment[i] );
		}

//		var finance_total = parseFloat( totalInterest ) + parseFloat( totalFunds);
		var finance_total_funds = parseFloat( totalFunds ) + parseFloat( deposit );

		var maxPrice = finance_total_funds * 1;
		$(this.elId +'_maxPrice').val(maxPrice.toFixed(2));
		$(this.elIdForm +' .calculatedMaxPrice').text (maxPrice.toFixed(0));
		$(this.elId +'_minPrice').val(0);

	}

}

$().ready(function () {
	netdirector.search.budget.onReady();
});
