var wload_h = window.onload;
window.onload = init_calc_el;

function init_calc_el(){
	tbody = document.getElementById("creditcalc").getElementsByTagName("TBODY")[0];;
	tr = document.createElement('tr');

	td = document.createElement('td');
	td.innerHTML = 'Metoda de calcul: ';
	td.setAttribute("align", "right");
	tr.appendChild(td);
	
	td = document.createElement('td');
	td.innerHTML = '<select name="cred_method" id="cred_method">'+
		'<option value="std" selected >standard</option>'+
		'<option value="ann">cu anuitate</option></select>';
	tr.appendChild(td);

	td = document.createElement('td');
	td.innerHTML = 'Amânarea de rambursare: ';
	td.setAttribute("align", "right");
	tr.appendChild(td);
	
	td = document.createElement('td');
	td.innerHTML = '<input type="text" id="delay_per" name="delay_per" " class="input"  value="0">';
	tr.appendChild(td);

	tbody.appendChild(tr);
	if (wload_h) {
		wload_h();
	}
}




function calculate_deposit()
{
	var obj = document.getElementById('sum');
	var sum = parseFloat(obj.value.replace(",", "."));
	if(isNaN(sum)) {alert("Указана неверная сумма"); obj.focus(); obj.select(); return;}
	
	var obj = document.getElementById('period');
	var period = parseInt(obj.value.replace(",", "."));

	var currency = document.getElementById('currency').value;
	var deposit = document.getElementById('deposit').value;
	
	
	
	var res = "<table border=0 cellpadding=5 cellspacing=1 id='calc_result' width='100%'>";
	
	res += "<tr><td class='head'>№</td><td  class='head'>Tipul de depozit</td><td  class='head'>Venit pentru toate perioada</td><td  class='head'>Descriere</td></tr>";
	var cl = 'even';
	var idx = 1;	
	for(var i=0; i<deposits.length; i++)
	{
	var per = parseInt(deposits[i]["period"]);
	if(deposits[i]["currency"]==currency)
		{
			if(deposit=="" || deposit==i)
			{
			var percent = parseFloat(deposits[i]["percent"].replace(",", "."))/12/100;
			var profit = 0; 
			for(var p=0; p<period;p++ )
			{
				
				profit += (sum*percent)
				if(deposits[i]["capital"]=="on") sum+=(sum*percent);
				
			}
			profit  = FormatNumber(profit);
			
			
		res += "<tr class='"+cl+"'><td align='center'>"+idx+".</td><td >"+deposits[i]["title"]+"</td><td align='right'>"+profit+"</td><td >"+deposits[i]["description"]+"</td></tr>";
		cl = (cl=='even') ? "odd" : "even";
				idx++;
			}
			}
		
	}
		res += "</table>";


	document.getElementById('result').innerHTML = res;
}


function calculate_credit()
{
	var obj = document.getElementById('sum');
	var sum = parseFloat(obj.value.replace(",", "."));
	if(isNaN(sum)) {alert("Suma creditului indicata este incorecta"); obj.focus(); obj.select(); return;}
	
	var obj = document.getElementById('period');
	var period = parseInt(obj.value.replace(",", "."));
	if(isNaN(period) || period<1 || period>360 ) {alert("Perioada indicata este necorespunzatoare"); obj.focus(); obj.select(); return;}
	
	var obj = document.getElementById('percent');
	var percent = parseInt(obj.value.replace(",", "."));
	if(isNaN(percent) ||  percent>100) {alert("Procentul anual indicat este necorespunzator"); obj.focus(); obj.select(); return;}

	var obj = document.getElementById('advance');
	var advance = parseInt(obj.value.replace(",", "."));
	if(isNaN(advance)) {alert("Plata in avans indicata este necorespunzatoare"); obj.focus(); obj.select(); return;}
	
	var obj = document.getElementById('delay_per');
	var delay_period = parseInt(obj.value.replace(",", "."));
	if(isNaN(delay_period) || delay_period<0 || delay_period>100 ) {alert("Amânarea de rambursare  este necorespunzatoare"); obj.focus(); obj.select(); return;}
	
	var obj = document.getElementById('cred_method');
	var cred_method = obj.options[obj.selectedIndex].value;
	if ( cred_method != 'ann' ) { cred_method='std'}
	
	var remain = sum;
	if ( cred_method == 'ann' ) {
		var percentpermonth = percent * 31 / (100 * 365);
		var monthpay = Math.round( 100 * (sum*percentpermonth) / (1 - Math.pow(1+percentpermonth, -period)) )/100;
		var paypermonth = 0;
	} else {
		var percentpermonth = percent/12/100;
		var paypermonth = Math.round((sum/period)*100)/100;
		var monthpay = 0;
	}
	var percentpaypermonth = Math.round(remain * percentpermonth*100)/100;
	var capital = true;
	var total_percent = 0;
	var total_pay = 0;
	var total_other = advance;
	var res = "<table border=0 cellpadding=5 cellspacing=1 id='calc_result' width='100%'>";
	
	res += "<tr><td class='head'>Nr. lunii</td><td  class='head'>Datorii</td><td  class='head'>Plata pentru credit</td><td  class='head'>Procente</td><td  class='head'>Alte plati</td><td  class='head'>Spre plata luna aceasta</td></tr>";
	var cl = 'even';
	for(var i=1; i<=period;i++)
	{
		if ( advance && i==1 ) {
			other = advance;
		} else {
			other = 0;
		}
		if(i==period) paypermonth=remain;

		percentpaypermonth = Math.round(remain * percentpermonth*100)/100;

		if ( cred_method == 'ann' ) {
			paypermonth = monthpay - percentpaypermonth;
		} else {
			monthpay = Math.round((percentpaypermonth + paypermonth)*100)/100;;
		}
		res += "<tr class='"+cl+"'><td align='center'>"+i+".</td><td align='right'>"+FormatNumber(remain)+"</td><td align='right'>"+FormatNumber(paypermonth)+"</td><td align='right'>"+FormatNumber(percentpaypermonth)+"</td><td align='right'>"+FormatNumber(other)+"</td><td align='right'>"+FormatNumber(monthpay+other)+"</td></tr>";
		remain = Math.round((remain-paypermonth)*100)/100;
		total_percent += percentpaypermonth;
		total_pay +=monthpay;

		if(capital) var percentpaypermonth = Math.round(remain * percentpermonth*100)/100;
		cl = (cl=='even') ? "odd" : "even";
		
	}
		res += "<tr class='"+cl+"'><td colspan='3' align='right'><b>Total:</b></td><td  align='right'>"+FormatNumber(total_percent)+"</td><td align='right'>"+FormatNumber(total_other)+"</td><td align='right'>"+FormatNumber(total_pay+total_other)+"</td></tr>";
	
		res += "</table>";

	document.getElementById('result').innerHTML = res;		
}



//---------------------------------------------
function FocusFirst(oForm)
{
	
	
	if("" + oForm == "unknown" || oForm == null ) return;
	for(var i=0; i < oForm.elements.length; i++)
	{
		
		if(oForm.elements[i].type.toLowerCase()!="hidden" && !oForm.elements[i].disabled) 
			{oForm.elements[i].focus(); return;}
		
	}
	
}

//---------------------------------
function FormatNumber(val)
{

    val = "" + val;
	var num = parseFloat(val.replace(",", "."))
	var sign = "";
	if(isNaN(num) || num==0)
		{
			num = "0,00"
		}
	else
		{
			
			num = Math.round(num * 100);
			if(num<0) sign = "-";
			num = "" + Math.abs(num)

			num = "000".substr(0, 3-num.length) + num;
			num = sign + num.substr(0, num.length-2) + "," + num.substr(num.length-2);
		}
	return num;
}
//---------------------------------
function CalcCol(obj)
{
var name = obj.id;
var objects = document.all(name);
var sum = 0;
var num;

var oSum = document.all(name + "_sum");
if(objects != null)
	{
	if(""+objects.length!="undefined")
		{
			for (var i=0; i<objects.length; i++)
			{
				num = parseFloat(objects[i].value.replace(',','.'));
				if (!isNaN(num)) sum += num;
			}
		}
			else
		{
				num = parseFloat(objects.value.replace(',','.'));
				if (!isNaN(num)) sum += num;
		}
	}


if(oSum != null ) oSum.innerText = FormatNumber(sum);

}

//-----------------------------------
function GetValue(name)
{
	var obj = document.getElementById(name);
	if(obj==null) return 0;
	num = parseFloat(obj.innerText.replace(",", "."));
	if(isNaN(num)) num = 0;
	return num;
}
//-----------------------------------
function SetValue(name, value)
{
	var obj = document.all(name);
	if(obj==null) return;
	obj.innerText = "" + value;
}
//-----------------------------------

function CalcOverall(Sections, obj)
{
var overall = 0;

for(var i=0; i <Sections.length; i++)
	{
		CalcSection = Sections[i];
		var num;
		oSum = document.all(CalcSection);
		if (oSum != null)
		{
			num = parseFloat(oSum.innerText.replace(",", "."))
			if (!isNaN(num))	overall += num;
			
		}
	}

 if(obj != null ) obj.innerText = FormatNumber(overall);

}

//-------------------------------------------------------
function KeyCheck(obj)
{
	if(event.keyCode!=13) return true;
	var objs = document.all(obj.id);
	if (objs==null) return true;
	for(var i=0; i<objs.length; i++)
	{
		if(objs[i]==obj) if("" + objs[i+1] != "undefined") objs[i+1].focus();
	}
	
}


//-------------------------------------------------------
function isFloat(obj, format)
{

		if((event.keyCode==13 || event.keyCode == 9 || event.keyCode == 189) && obj.value=="") return true;
//	alert(event.keyCode)
		var chrCode = event.keyCode;
		if (chrCode==110) chrCode = 46;
		if (chrCode > 90) chrCode = chrCode - 48;
		
		if(val=="-") return true;
		var val = obj.value.replace(",", ".") + String.fromCharCode(chrCode);

		if(format=="int") val = parseInt(val); else val = parseFloat(val);
		if (isNaN(val))  return false;
		return true;
}

//-------------------------------------------------
function Repair(obj, format)
{
		if(obj.value=='') return;
		if(format=="int") 
		{	
			var val = parseInt(obj.value);
			if(isNaN(val)) val = 0;
			obj.value = val;
		}
			else obj.value = FormatNumber(obj.value)
		
}
//-------------------------------------------------
    function FormatDate(i, delKey,direction) {
	if(i.value=="") return;
      if (i.value.length < 10) {
      	if (delKey!=9) { //tab
    	  	if(delKey!=8 && delKey!=46 && delKey!=16 &&  !(delKey>36 && delKey<41)){ //if the delete, backspace, shift, are not the keys that caused the keyup event.
      			var fieldLen = i.value.length
       			if ((delKey >= 48 && delKey <= 57) || (delKey >= 96 && delKey <=105)) {
       				if (fieldLen == 2 || fieldLen == 5) {
          				i.value = i.value + ".";
    		     	}
       			} else {
       				if (direction == "up") {
         				if (i.value.length == 0) {
          					i.value = ""
    	     			} else {
    		      			i.value = i.value.substring(0,i.value.length-1)
    	   				}
        			}
    	 		}
      			i.focus()
    	  	}
     	} else {
     		if (direction == "down") {
    	 		CheckDate(i)
      		}
      	}
     }
    }


//-------------------------------------------------------------------------
function ChooseSortOrder(value1,value2)
{
	frm = document.forms[0];
	frm.elements[CurrentTarget+'_OrderDirection'].value = value1;
	frm.elements[CurrentTarget+'_OrderField'].value = value2;
	frm.submit();
}

//------------------------------
function ChoosePage(value)
{
		document.forms[0].pn.value = value;
		document.forms[0].act.value = "list"
		document.forms[0].submit();
}
//------------------------------
function Do()
{
	if(arguments.length == 0)  return false;
	if (arguments[0]!="list")	if(!CheckForm()) return false;

	frm = document.forms[0];
	frm.act.value = arguments[0];
	if (arguments.length > 1) frm.elements[CurrentTarget+id].value = arguments[1];
	if (arguments.length > 2) frm.Target.value = arguments[2];
	if (arguments.length > 3) frm.realTarget.value = arguments[3];
	frm.target = "";
	frm.submit();
}

//------------------------------
function DoPopup()
{
	if(arguments.length == 0)  return false;
	if (arguments[0]!="list")	if(!CheckForm()) return false;

	frm = document.forms[0];
	form_target = frm.target;
	act = frm.act.value;
	id = frm.elements[CurrentTarget+id].value;
	target = frm.Target.value;
	real_target = frm.realTarget.value;
	frm.act.value = arguments[0];
	if (arguments.length > 1) frm.elements[CurrentTarget+id].value = arguments[1];
	if (arguments.length > 2) frm.Target.value = arguments[2];
	if (arguments.length > 3) frm.realTarget.value = arguments[3];
//	frm.target = "_blank";
	frm.submit();
	frm.act.value = act;
	frm.elements[CurrentTarget+id].value = id;
	frm.Target.value = target;
	frm.realTarget.value = real_target;
	frm.target = form_target;
}

//------------------------------
function Redirect(Target, action)
{
	if(arguments.length == 0)  return false;
	document.location = "default.asp?Target=" + Target + "&act="+action;	
	
}


//-------------------------------
function Del(id, rt, hard)
{
	strMess = 'Are you sure?';
	if(hard) strMess = 'Are you sure?';
	if (confirm(strMess)) 
	{
		if("" + rt != "undefined") document.forms[0].realTarget.value = rt;
		Do('del',id);
	}
}



