var calculatorType = 0;

var errSUMMA = 'Nepareizs datu formāts. Kredīta summai jābūt lielākai par 0!';
var errLIKME = 'Nepareizs datu formāts. Procentu likmei jābūt lielākai par 0!';
var errTERMINS = 'Nepareizs datu formāts. Kredīta atmaksas termiņam jābūt lielākam par 0 un veselam skaitlim!';
var errMONTH = 'Nepareizs datu formāts. Ikmēnaša maksajums jābūt lielākam par 0!';
var limSUMMA = 'Kredīta ikmēneša atmaksas summa nedrīkst pārsniegt kredīta summu.';
var limPEDIOD = 'Maksimālais kredīta termiņš 15 gadi vai 180 mēneši.';
var limMONTH = 'Ikmēneša maksājums nedrīkst pārsniegt 40% no klienta ģimenes ikmēneša ienākumiem.';

function ClearFields() {
	document.getElementById('type').selectedIndex = 0;
	document.getElementById('summa').value = '';
	document.getElementById('procent').value = '';
	document.getElementById('terminsI').value = '';
	document.getElementById('terminsS').selectedIndex = 0;
	document.getElementById('month').value = '';
	document.getElementById('minimum').value = '';
	document.getElementById('grafik0').checked = true;
	
	disableAnchor(document.getElementById('btnPrint'),1);
	document.getElementById('btnPrint').disabled = 1;
}

function disableAnchor(obj, disable){
  if(disable){
    var href = obj.getAttribute("href");
    if(href && href != "" && href != null)
       obj.setAttribute('href_bak', href);
   	obj.setAttribute('color_bak', obj.style.color);
    obj.removeAttribute('href');
    obj.style.color="gray";
  }
  else{
    
    obj.setAttribute('href', obj.attributes['href_bak'].nodeValue);
    
    obj.style.color = obj.attributes['color_bak'].nodeValue;
  }
  
}

function checkFields() {
	var num, tp = document.getElementById('type'), sum = document.getElementById('summa');
	if (tp.selectedIndex != 1) {
		num = parseFloat(sum.value);
		if (isNaN(num) || num <= 0) {
			displayError(errSUMMA);
			return false;
		} else
			sayNum(sum,num,2,true);
	}
	var pc = document.getElementById('procent');
	num = parseFloat(pc.value);
	if (isNaN(num) || num <= 0.0) {
		displayError(errLIKME);
		return false;
	} else
		sayNum(pc,num,2,true);

	if (tp.selectedIndex != 2) {
		var tm = document.getElementById('terminsI');
		num = parseInt(tm.value,10);
		if (isNaN(num) || num <= 0) {
			displayError(errTERMINS);
			return false;
		} else
			sayNum(tm,num,0,false);
	}
	if (tp.selectedIndex != 0) {
		var mn = document.getElementById('month');
		num = parseFloat(mn.value);
		if (isNaN(num) || num <= 0) {
			displayError(errMONTH);
			return false;
		} else
			sayNum(mn,num,2,false);
	}
	var min = document.getElementById('minimum');
	num = parseFloat(min.value);
	if (isNaN(num) || num <= 0)
		min.value = '';
	else
		sayNum(min,num,2,true)
	displayError('');
	return true;
}
function checkNumber(num) {
	num = parseFloat(num);
	if (isNaN(num))
		return false;
	else
		return (num > 0.0);
}
function changeType() {
	var tp = document.getElementById('type'), 
		sum = document.getElementById('summa');
	if (tp.selectedIndex == 1) {
		sum.value = '';
		sum.disabled = true;
	} else
		sum.disabled = false;
	var ts = document.getElementById('terminsS'), ti = document.getElementById('terminsI');
	if (tp.selectedIndex == 2) {
		ts.selectedIndex = 0;
		ts.disabled = true;
		ti.value = '';
		ti.disabled = true;
	} else {
		ts.disabled = false;
		ti.disabled = false;
	}
	var mn = document.getElementById('month');
	if (tp.selectedIndex == 0) {
		mn.value = '';
		mn.disabled = true;
	} else
		mn.disabled = false;

}
function displayError(str) {
	var td = document.getElementById('tdError');
	td.innerHTML = str;
}
function logn(x,n){					
	return (Math.log(x)/Math.log(n));
}
function sayNum(obj,num,dec,zero) {
	if (dec == 0) { 
		num = Math.round(num);
		obj.value = (''+num == '0' && zero == false) ? '' : num;
	} else {
		num = Math.round(num * Math.pow(10,dec)) / Math.pow(10,dec);
		if (''+num == '0' && zero == false)
			obj.value = '';
		else {
			var str,x, point = false, cnt = 0;
			str = ''+num;
			for (x = 0; x < str.length; x++){
				if (str.substr(x,1) == '.')
					point = true;
				else if (point)
					cnt++;
			}
			if (dec > 0 && point == false)
				str += '.';
			for (x = cnt; x < dec; x++)
				str += '0';
			obj.value = str;
		}
	}
}

function setPercent(){
	B5 = parseInt(document.getElementById('terminsI').value,10);
	obj = document.getElementById('terminsS');
	if (obj.selectedIndex == 1)
		B5 *= 12;
	
/*
	if((B5/12)<=9){
		document.getElementById('procent').value = 19.5;
	} else {
		document.getElementById('procent').value = 19.5 - (Math.floor(B5/12)-9)*0.5;
	
	}
*/
	if (calculatorType == 0)
	{
		jQuery('#procent').val(11);
	}
	//else
	//	document.getElementById('procent').value = 0;
}
function Calc() {
	setPercent();
	if (!checkFields())
		return;
	var B3,B4,B5,B6;
	var grafik, tp, obj, month;
	grafik = document.getElementById('grafik0').checked ? 0 : 1;
	obj = document.getElementById('type');
	tp = obj.options[obj.selectedIndex].value;
	setPercent();
	switch (tp) {
		case '0':	// Ikmeenessa maksajums
					B3 = parseFloat(document.getElementById('summa').value);
					B4 = parseFloat(jQuery('#procent').val());
					B5 = parseInt(document.getElementById('terminsI').value,10);
					obj = document.getElementById('terminsS');
					if (obj.selectedIndex == 1)
						B5 *= 12;
					if (grafik == 1) {
						// B3/B5+B3*B4/100*30/360
						B6 = B3/B5+B3*B4/100*30/360;
					} else {
						// (B3*(B4/1200)*((1+B4/1200)^B5))/(((1+B4/1200)^B5)-1)
						B6 =(B3*(B4/1200)*Math.pow(1+B4/1200,B5))/(Math.pow(1+B4/1200,B5)-1);
					}
					sayNum(document.getElementById('month'),B6,2,true)
					break;
		case '1':	// Krediita summa
					B4 = parseFloat(jQuery('#procent').val());
					B5 = parseInt(document.getElementById('terminsI').value,10);
					obj = document.getElementById('terminsS');
					if (obj.selectedIndex == 1)
						B5 *= 12;
					B6 = parseFloat(document.getElementById('month').value);
					if (grafik == 1) {
						// B6/(1/B5+B4/100*30/360)
						B3 = B6/(1/B5+B4/100*30/360);
					} else {
						// B6/(((B4/1200)*((1+B4/1200)^B5))/(((1+B4/1200)^B5)-1))
						B3 = B6/(((B4/1200)*Math.pow(1+B4/1200,B5))/(Math.pow(1+B4/1200,B5)-1));
					}
					sayNum(document.getElementById('summa'),B3,2,true)
					break;
		case '2':	// Kredita atmaksas terminnss
					B3 = parseFloat(document.getElementById('summa').value);
					B4 = parseFloat(jQuery('#procent').val());
					B6 = parseFloat(document.getElementById('month').value);
					if (grafik == 1) {
						// 1/(B6/B3-B4/100*30/360)
						B5 = 1/(B6/B3-B4/100*30/360);
					} else {
						// LOG(1/(1-(B3*(B4/1200))/B6);1+B4/1200)
						B5 = logn(1/(1-(B3*(B4/1200))/B6),1+B4/1200);
					}
					if (isNaN(B5) || B5 <= 0) {
						document.getElementById('terminsI').value ='###';
					} else {
						B5 = Math.ceil(B5);
						sayNum(document.getElementById('terminsI'),B5,0,true);
						document.getElementById('terminsS').selectedIndex = 0;
					}
					break;
	}
	displayLimit();
}
function displayLimit() {
	var str = '';
	var sm = parseFloat(document.getElementById('summa').value);
	var mn = parseFloat(document.getElementById('month').value);
	var ti = parseInt(document.getElementById('terminsI').value,10);
	if (document.getElementById('terminsS').selectedIndex == 1)
		ti *= 12;
	sayNum(document.getElementById('minimum'),mn / 0.4,2,true);
	if (mn > sm)
		str += limSUMMA + '<br />';
	if (isNaN(ti) || (ti > 180))
		str += limPEDIOD + '<br />';
	displayError(str);
	if(str.length > 0)
	{
		disableAnchor(document.getElementById('btnPrint'),1);
		document.getElementById('btnPrint').disabled = 1;
	} else {
		disableAnchor(document.getElementById('btnPrint'),0);
		document.getElementById('btnPrint').disabled = 0;
	}
}
function Print() {
	setPercent();
	if (document.getElementById('btnPrint').disabled)
		return;
	var sum = document.getElementById('summa').value;
	var prc = jQuery('#procent').val();
	var mn = document.getElementById('terminsI').value;
	if (document.getElementById('terminsS').selectedIndex == 1)
		mn *= 12;
	var tp = document.getElementById('grafik0').checked?0:1;
	var query = '?sum='+sum+'&prc='+prc+'&mn='+mn+'&tp='+tp+'&'+Math.random();
	window.open('./inc/grafik.php'+query,null,"left=100,top=50,height=400,width=500,titlebar=no,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes");
}


