/**
* Kalkulator rat Zagiel
*/
function policzRaty(oferta)
{
	// nazwy promocji
	var nazwa_promocji = new Array();
	nazwa_promocji[1] = '1% miesięcznie';
	nazwa_promocji[2] = 'EXTRA';
	nazwa_promocji[3] = '0,8% miesięcznie (08PMU)';

	// minimalna i maksymalna liczba rat dla kazdej z ofert
	var min_liczba_rat = new Array();
	min_liczba_rat[1] = 6;
	min_liczba_rat[2] = 11;
	min_liczba_rat[3] = 6;

	var max_liczba_rat = new Array();
	max_liczba_rat[1] = 24;
	max_liczba_rat[2] = 24;
	max_liczba_rat[3] = 24;

	var oprocentowanie = 0;

	// kwota ubezpieczenia
	var ubezpieczenie = 0;

	// domyslna stopa ubezpieczenia
	var ubezpieczenie_pr = 0.015;

	// dane z formularza
	var liczba_rat = liczba_rat_id.value;
	var wartosc = wartosc_id.value;
	var wplata = wplata_id.value;
	var czy_ubezpieczyc = 0;
	if (ubezpieczenie_id.checked == true)
	{
		czy_ubezpieczyc = 1;
	}

	// zerowanie pola wynikowego
	wynik_id.value = '';

	// czy podana liczba rat jest prawidlowa
	liczba_rat = liczba_rat.replace(',', '.');
	if (isNumber(liczba_rat))
	{
		liczba_rat = parseInt(liczba_rat);
		liczba_rat = Math.floor(liczba_rat);
		liczba_rat_id.value = liczba_rat;
		if (liczba_rat <= 0)
		{
			alert('Podana liczba rat jest nieprawidłowa.');
			return 0;
		}
	}
	else
	{
		alert('Podana liczba rat jest nieprawidłowa.');
		return 0;
	}

	// czy liczba rat jest w odpowiednim przedziale
	if (liczba_rat < min_liczba_rat[oferta])
	{
		alert('Podana liczba rat jest za mała do promocji '+nazwa_promocji[oferta]+'. Minimalna liczba rat wynosi '+min_liczba_rat[oferta]+'.');
		return 1;
	}
	else if (liczba_rat > max_liczba_rat[oferta])
	{
		alert('Podana liczba rat jest za duża do promocji '+nazwa_promocji[oferta]+'. Maksymalna liczba rat wynosi '+max_liczba_rat[oferta]+'.');
		return 1;
	}

	// czy podana wartosc towaru jest prawidlowa
	wartosc = wartosc.replace(',', '.');
	if (isNumber(wartosc))
	{
		wartosc = Math.round(wartosc * 100) / 100;
		wartosc_id.value = wartosc;
		if (wartosc <= 0)
		{
			alert('Podana wartość towaru jest nieprawidłowa.');
			return 0;
		}
	}
	else
	{
		alert('Podana wartość towaru jest nieprawidłowa.');
		return 0;
	}

	// czy podana wplata jest prawidlowa
	wplata = wplata.replace(',', '.');
	if (isNumber(wplata))
	{
		wplata = parseFloat(wplata);
		wplata = Math.round(wplata * 100) / 100;
		wplata_id.value = wplata;
		if (wplata < 0)
		{
			alert('Podana wartość wpłaty własnej jest nieprawidłowa.');
			return 0;
		}
		else if (wplata > (0.9 * wartosc))
		{
			alert('Podana wartość wpłaty własnej jest zbyt duża.');
			return 0;
		}
	}
	else
	{
		wplata = 0;
		wplata_id.value = wplata;
	}

	// obliczenie kosztow ubezpieczenia
	if (czy_ubezpieczyc == 1)
	{
		if (liczba_rat > 17)
		{
			ubezpieczenie_pr = 0.03;
		}
		ubezpieczenie = (wartosc - wplata) * ubezpieczenie_pr;
	}

	// obliczanie rat
	// 1PPM
	if (oferta == 1)
	{
		rata = ((wartosc + ubezpieczenie - wplata + 12) / liczba_rat) + (0.01 * (wartosc + ubezpieczenie - wplata + 12));
		rata = Math.round(rata * 100) / 100;
		
		wynik_id.value = rata+' zł';
	}
	// EXTRA
	else if (oferta == 2)
	{
		if (liczba_rat < 14)
		{
			oprocentowanie = 0.13;
		}
		else if (liczba_rat < 17)
		{
			oprocentowanie = 0.18;
		}
		else if (liczba_rat < 21)
		{
			oprocentowanie = 0.21;
		}
		else
		{
			oprocentowanie = 0.26;
		}
		rata = ((((wartosc + ubezpieczenie - wplata + 12) * (1 + oprocentowanie))) * 1.01) / liczba_rat;
		rata = Math.round(rata * 100) / 100;
		
		wynik_id.value = rata+' zł';
	}
	// 1PM
	else if (oferta == 3)
	{
		rata = ((wartosc - wplata) / liczba_rat) + ((wartosc - wplata) * 0.01);
		rata = Math.round(rata * 100) / 100;
		rata = rata.toString();
		wynik_id.value = rata.replace('.', ',')+' zł';
	}

	return 1;
}

/**
* Funkcja pomocnicza kalkulatora, sprawdza czy zmienna jest liczba
*/
function isNumber(value) 
{
	if (value == "") 
	{
		return false;
	}

	var d = parseFloat(value);

	if (!isNaN(d))
	{
		return true; 
	}
	else 
	{
		return false;
	}
}