Xeon.Core.namespace('Calculator');

Calculator.DepositDetailRenderer = function(placeHolderId, tableId) {
	this.tableElement = document.getElementById(tableId);
	this.placeHolder = document.getElementById(placeHolderId);

	this.fields = {};
	this.fields.amountOnDeposit = document.getElementById('d_ps_amount_on_deposit');
	this.fields.depositName = document.getElementById('d_ps_deposit_name');
	this.fields.depositLink = document.getElementById('d_ps_deposit_link');
	this.fields.currencyType = document.getElementById('d_ps_currency_type');
	this.fields.depositPeriod = document.getElementById('d_ps_deposit_period');
	this.fields.openDate = document.getElementById('d_ps_open_date');
	this.fields.closeDate = document.getElementById('d_ps_close_date');
	this.fields.depositPct = document.getElementById('d_ps_deposit_pct');
	this.fields.capOfPct = document.getElementById('d_ps_cap_of_pct');
	this.fields.payPct = document.getElementById('d_ps_pay_pct');
	this.fields.refinanceRate = document.getElementById('d_ps_ref_rate');
	this.fields.resupply = document.getElementById('d_ps_resupply');
	this.fields.writeDown = document.getElementById('d_ps_write_down');
	this.fields.totlalAmt = document.getElementById('d_ps_totlal_amt');
	this.fields.taxBase = document.getElementById('d_ps_tax_base');
	this.fields.taxHold = document.getElementById('d_ps_tax_hold');
	this.fields.netAmt = document.getElementById('d_ps_net_amt');
	this.fields.profut = document.getElementById('d_ps_profut');
	
	this.fillDetailInfo = function(oDeposit, oDepositParams, oTaxationParams, oPaySchedule)
	{
		this.fields.amountOnDeposit.innerHTML = oDepositParams.amountOnDeposit;
		this.fields.depositName.innerHTML = oDeposit.description;
		this.fields.depositLink.innerHTML = '<a href="' + oDeposit.link + '">подробнее о вкладе</a>';
		this.fields.currencyType.innerHTML = oCurrency[oTaxationParams.currency];
		this.fields.depositPeriod.innerHTML = oDepositParams.depositPeriod;
		this.fields.openDate.innerHTML = dateToStr(oDepositParams.openDate);
		var closeDate = new Date(oDepositParams.openDate);
		closeDate.setDate(closeDate.getDate() + oDepositParams.depositPeriod);
		this.fields.closeDate.innerHTML =  dateToStr(closeDate);
		var depositPct = oDeposit.getDepositPercent(oDepositParams);
		this.fields.depositPct.innerHTML = (depositPct * 100).toFixed(1) + "%";
		this.fields.capOfPct.innerHTML = aYesNo[parseInt(oDeposit.options.cap_of_pct)];
		this.fields.payPct.innerHTML = oPaymentOfPercents[oDeposit.options.pay_period];
		this.fields.refinanceRate.innerHTML = (oTaxationParams.refinancingRate * 100) + '%';
		this.fields.resupply.innerHTML = aYesNo[parseInt(oDeposit.options.resupply)];
		this.fields.writeDown.innerHTML = aYesNo[parseInt(oDeposit.options.write_down)];
		var summPct = oDeposit.getSummPct(oDepositParams, depositPct);
		this.fields.totlalAmt.innerHTML = Math.round(summPct);
		this.fields.taxBase.innerHTML = Math.round(oPaySchedule.calc.taxBase);
		this.fields.taxHold.innerHTML = Math.round(oPaySchedule.calc.payTax);
		this.fields.netAmt.innerHTML = Math.round(oPaySchedule.calc.payPctByPeriod);
		this.fields.profut.innerHTML = Math.round(oDepositParams.amountOnDeposit + oPaySchedule.calc.payPctByPeriod);
	};
	
	this.show = function()
	{
		if (this.placeHolder.style.display == 'none') {
			this.placeHolder.style.display = 'block';
		}
	};

	this.hide = function()
	{
		if (this.placeHolder.style.display != 'none') {
			this.placeHolder.style.display = 'none';
		}
	}	
}
