/**
 *
 * @access public
 * @return void
 **/
function calc_credit()
 {
 	var period=$('#period').val();
 	var time = Number(period);
 	var firstpayment=$('#firstpayment').val();
 	var sum=$('#sum').val();
 	if (firstpayment<100)
	 {
 		firstpayment=sum*firstpayment/100;
 	 }
 	var sumcredit=sum-firstpayment;
 	var comission=$('#comission').val();
 	var comissionSum = sum*comission/100;
 	var procent_credit=$('#procent').val();
 	var paymentType=$('#paymenttype').val();

 	var row = {};
    if ( paymentType == 'diff' ) {
      CalculateDiff( procent_credit,sumcredit, time, row );
    } else {
      CalculateAnnuitet( procent_credit,sumcredit, time, row );
    }
	var over = Number(row.percentPaid)+Number(comissionSum);
	$('#paymentmax').text(row.monthlyMax);
	$('#paymentmin').text(row.monthlyMin);
	$('#over').text(over);
	var firstpaymentsum=Number(firstpayment)+Number(comissionSum);
	$('#firstpaymentsum').text(firstpayment+comissionSum);
	$('#creditsum').text(sumcredit);
	$.get("/run/ajax/count.php");
 }

function CalculateDiff( tariff, summa, time, row ) {
  var monthlyTariff = tariff/100/12;
    var maxPay = Math.round(summa*monthlyTariff+summa/time,0);
    var minPay = Math.round(summa/time+summa/time*monthlyTariff,0);
    row.monthlyMax = maxPay;
    row.monthlyMin = minPay;
    row.percentPaid = summa*monthlyTariff*(time + 1) / 2;
}

function CalculateAnnuitet( tariff, summa, time, row ) {
  var monthlyTariff = tariff/100/12;
  var divider = 1-Math.pow(1/(1+monthlyTariff),time);
  row.monthlyMin = Math.round(monthlyTariff*summa/divider,0);
  row.monthlyMax = row.monthlyMin;
  row.percentPaid = row.monthlyMin*time-summa;
}

$(document).ready(function(){
	$("#calcform").validate({
		submitHandler: function(form) {
  	  calc_credit();
    	},
		errorPlacement: function(error, element) {
						error.appendTo( element.parent("td") );
					},
		errorClass: "error",
		highlight: function(element, errorClass) {
     	$(element).addClass(errorClass);
  		},
  		unhighlight: function(element, errorClass) {
     		$(element).removeClass(errorClass);
  		},
		rules : {
				sum :  {required : true, number: true, minlength: 4},
				firstpayment :  {required : true, number: true},
				comission :  {required : true, number: true},
				period :  {required : true, number: true},
				procent :  {required : true, number: true}
				},
		messages : {
				sum  : {required : '<br/>Ââåäèòå ñóììó êðåäèòà',
						number: '<br/>Ââîäèòå, ïîæàëóéñòà, òîëüêî ÷èñëî',
						minlength : "<br/>Ñëèøêîì ìàëà ñóììà êðåäèòà"
						},
				firstpayment : {
						required : '<br/>Ââåäèòå ïåðâîíà÷àëüíûé âçíîñ â %',
						number: '<br/>Ââîäèòå, ïîæàëóéñòà, òîëüêî ÷èñëî'},
				comission : {
						required : '<br/>Ââåäèòå êîìèññèþ ïðè âûäà÷å êðåäèòà â %',
						number: '<br/>Ââîäèòå, ïîæàëóéñòà, òîëüêî ÷èñëî'},
				period : {
						required : '<br/>Ââåäèòå ñðîê êðåäèòà',
						number: '<br/>Ââîäèòå, ïîæàëóéñòà, òîëüêî ÷èñëî'},
				procent : {
						required : '<br/>Ââåäèòå ïðîöåíòíóþ ñòàâêó êðåäèòà â %',
						number: '<br/>Ââîäèòå, ïîæàëóéñòà, òîëüêî ÷èñëî'}
				}
	});
});
