// DepCalc generation 1 ver 0.03 01/07/2011
// need JQuery for init full work component
function depCalcG1(property){
	if (property.minSum!=undefined)
		this.minSum=property.minSum;
	else
		throw("minSum property not defined!");
	if (property.cap!=undefined)
		this.cap=property.cap;
	else
		throw("cap property not defined!");
}
depCalcG1.prototype.setDays=function(days){
	this.days=days;
	this.months=Math.round(days/30);
}
depCalcG1.prototype.setProc=function(proc){
	this.proc=proc;
}
depCalcG1.prototype.setSum=function(sum){
	if (sum>=this.minSum){
		this.sum=sum;
		return true;
	}else
		return false;
}
depCalcG1.prototype.calc=function(){
	if (this.sum!=undefined && this.months!=undefined && this.proc!=undefined){
		var total=this.sum*(this.cap?
									(Math.pow(1+this.proc/1200,this.months)):
									(1+ this.days * this.proc / 36500)
							);
		return total;
	}else
		throw("sum not defined!");
}

function initCalcProperties(dcObj){
	if (!$)
		throw ("Jquery not found");
	$(document).ready(function(){
		var 	calcButton=document.getElementById('calcButton'),//Кнопка подсчета дохода по вкладу
				sumField=document.getElementById('beginSum'),//Поле ввода вносимой суммы
				monthSelect=document.getElementById('months'),// Выбор срока вклада
				dohod_po_vkladyNode=document.getElementById('dohod_po_vklady'),
				itogovaja_summaNode=document.getElementById('itogovaja_summa'),
				calcMes1=document.getElementById('calcMes1'),
				calcMes2=document.getElementById('calcMes2'),
				initSum=document.getElementById('initSum'),// элемент в котором отображается минимальная сумма вклада
				minSumCheckRezult=document.getElementById('minSumCheckRezult'),
				beginSum=0,
				selectValueArray;
		// #1: Обработчики событий
		var calcButtonPress=function(){
			//Считываем сумму первоначального взноса
			beginSum=parseFloat(sumField.value.replace(",","."),10);
			selectValueArray=monthSelect.value.split(" ");
			//Защита от неправльно заполненого <select>
			if(selectValueArray.length!=2) 
				throw("select options not complited!");
			var 	srokInDays=parseInt(selectValueArray[0],10),
					procent=parseFloat(selectValueArray[1],10);
			dcObj.setDays(srokInDays);
			dcObj.setProc(procent);
			var 	checkMinSum=dcObj.setSum(beginSum);
			if (checkMinSum){
				var 	rez=dcObj.calc();
				//Открываем поле
				if (dohod_po_vkladyNode.style.display=="none" && itogovaja_summaNode.style.display=="none"){
					dohod_po_vkladyNode.style.display="block";
					itogovaja_summaNode.style.display="block";
				}
				//FireFox в место свойства innerText поддерживает textContent 
				if (calcMes1.innerText!=undefined){
					calcMes1.innerText=(rez-beginSum).toFixed(2);
					calcMes2.innerText=rez.toFixed(2);
				}else{
					calcMes1.textContent=(rez-beginSum).toFixed(2);
					calcMes2.textContent=rez.toFixed(2);
				}
				//Если отображается фрагмент о недостаточном размере минимальной суммы вклада
				if (minSumCheckRezult.style.display=="block")
					minSumCheckRezult.style.display="none";
				}else{
				//ввели сумму  вклада меньше минимального
					minSumCheckRezult.style.display="block";
					if (calcMes1.innerText!=undefined){
						initSum.innerText=dcObj.minSum.toString();
					}else{
						initSum.textContent=dcObj.minSum.toString();
					}
					//Если отображается фрагмент с доходом по вкладу:
					if (dohod_po_vkladyNode.style.display=="block" && itogovaja_summaNode.style.display=="block"){
						dohod_po_vkladyNode.style.display=itogovaja_summaNode.style.display="none";
					}
				}
		}
		$(calcButton).click(calcButtonPress);
		$(monthSelect).bind("change",calcButtonPress);
	});
}