﻿function $() 
{
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) 
  {
    var element = arguments[i];
	
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }
}

var kolejnosc = new Array();
var nosnik_elem = new Array();
var propan_but = new Array();

var roczne_zuzycie_do_celow_grzewczych_pb;
var roczne_zuzycie_do_celow_grzewczych_wy;
var roczne_zuzycie_w_poborze_pb;
var roczne_zuzycie_w_poborze_wy;
var koszty_zuzycia_nosnikow_do_celow_grzewczych_pb;
var koszty_zuzycia_nosnikow_do_celow_grzewczych_wy;
var koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_pb;
var koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy;

var ceny_nosnikow_pb;
var ceny_nosnikow_wy;
var laczna_moc_pb;
var laczna_moc_wy;

var isFixed = false;

window.onload = function()
{
	nosnik_elem.push($('ceny_nosnikow_energii_wy'));
	nosnik_elem.push($('wartosc_opalowa_wy'));
	nosnik_elem.push($('laczna_moc_urzadzen_wy'));
	nosnik_elem.push($('roczne_zuzycie_do_celow_grzewczych_wy'));
	nosnik_elem.push($('roczne_zuzycie_w_poborze_wy'));
	nosnik_elem.push($('koszty_zuzycia_nosnikow_do_celow_grzewczych_wy'));
	nosnik_elem.push($('koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy'));
	
	propan_but.push($('ceny_nosnikow_energii_pb'));
	propan_but.push($('wartosc_opalowa_pb'));
	propan_but.push($('laczna_moc_urzadzen_pb'));
	propan_but.push($('roczne_zuzycie_do_celow_grzewczych_pb'));
	propan_but.push($('roczne_zuzycie_w_poborze_pb'));
	propan_but.push($('koszty_zuzycia_nosnikow_do_celow_grzewczych_pb'));
	propan_but.push($('koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_pb'));
	reset();
}

function reset()
{
	$('wartosc_opalowa_pb').value = wartosci_opalowe['1'];
	$('ceny_nosnikow_energii_pb').value = ceny_nosnikow_energii['1'];
	var nosniki = "<select id=\"nosnik\" onchange=\"nosnik_onchange(this);\">";
	for(var i in nosnik)
	{
		if(i != 1)
		{
			kolejnosc.push(i);
			nosniki += "<option>" + nosnik[i] + "</option>";
		}
	}
	$("nos").innerHTML = nosniki + "</select>";
	nosnik_onchange($("nosnik"));
	isFixed = false;
}

function przelicz_clicked()
{
	if(przelicz_propan_buttan())
	{
		przelicz_inny_nosnik();
		podsumowanie();
	}
}

function wyczysc_clicked()
{
	$('nosnik').selectedIndex = 0;
	for(var i = 0; i < nosnik_elem.length; i++)
	{
		nosnik_elem[i].readOnly = true;
		nosnik_elem[i].style.color = '#666666';
		if(i != 0 && i != 2)
		{
			propan_but[i].style.color = '#666666';
			propan_but[i].readOnly = true;
		}
		if(i != 2)
		{
			propan_but[i].value = "---";
			nosnik_elem[i].value = "---";
		}
		else
		{
			propan_but[i].value = "";
			nosnik_elem[i].value = "";
		}
	}
	reset();
	$('roczne_oszczednosci1').value = "---";
	$('roczne_oszczednosci2').value = "---";
	$('cena_jenostka').innerHTML = "";
	$('wartosc_opalowa_jednostka').innerHTML = "";
	$('roczne_zuzycie1_jednostka').innerHTML = "";
	$('roczne_zuzycie2_jednostka').innerHTML = "";
	$('text_opis_1').innerHTML = "<br />&nbsp;";
	$('text_opis_2').innerHTML = "<br />&nbsp;";
}

function przelicz_propan_buttan()
{
	ceny_nosnikow_pb = $('ceny_nosnikow_energii_pb').value.split(",").join(".");
	ceny_nosnikow_wy = $('ceny_nosnikow_energii_wy').value.split(",").join(".");
	laczna_moc_pb = $('laczna_moc_urzadzen_pb').value.split(",").join(".");
	laczna_moc_wy = $('laczna_moc_urzadzen_wy').value.split(",").join(".");
	
	if(isValidate(laczna_moc_pb))
	{
			if(isValidate(ceny_nosnikow_pb))
			{
				if(isValidate(ceny_nosnikow_wy))
				{
					isFixed = true;
					
					roczne_zuzycie_do_celow_grzewczych_pb = Number((( laczna_moc_pb / 13 ) * 8 * 30 * 7 ) * 1.78).toFixed(0);
					roczne_zuzycie_w_poborze_pb = Number((( laczna_moc_pb / 13 ) * 24 * 365) * 1.78).toFixed(0);
					koszty_zuzycia_nosnikow_do_celow_grzewczych_pb = Number(roczne_zuzycie_do_celow_grzewczych_pb * ceny_nosnikow_pb).toFixed(0);
					koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_pb = Number(roczne_zuzycie_w_poborze_pb * ceny_nosnikow_pb).toFixed(0);
								
					$('roczne_zuzycie_do_celow_grzewczych_pb').value = separate(String(roczne_zuzycie_do_celow_grzewczych_pb));
					$('roczne_zuzycie_w_poborze_pb').value = separate(String(roczne_zuzycie_w_poborze_pb));
					$('koszty_zuzycia_nosnikow_do_celow_grzewczych_pb').value = separate(String(koszty_zuzycia_nosnikow_do_celow_grzewczych_pb)) + "zł";
					$('koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_pb').value = separate(String(koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_pb)) + "zł";
					return true;
				}
				else
				{
					alert(error[2]);
					return false;
				}
			}
			else
			{
				alert(error[2]);
				return false;
			}
		}
		else
		{
			alert(error[1]);
			return false;
		}
}

function separate(value)
{
	value = value.split("0").join("0 ");
	value = value.split("1").join("1 ");
	value = value.split("2").join("2 ");
	value = value.split("3").join("3 ");
	value = value.split("4").join("4 ");
	value = value.split("5").join("5 ");
	value = value.split("6").join("6 ");
	value = value.split("7").join("7 ");
	value = value.split("8").join("8 ");
	value = value.split("9").join("9 ");
	array = value.split(" ");
	arrayRevers = new Array();
	for(var i = array.length - 2; i >= 0; i--)
		arrayRevers.push(array[i]);
	
	array = new Array();
	var result;	
	for(i = 0; i < arrayRevers.length; i++)
	{
		if(i%3)
			result = arrayRevers[i] + "@";
		else
			result = arrayRevers[i] + "@ ";
		array.push(result);
	}
	
	arrayRevers = new Array();
	for(var i = array.length - 1; i >= 0; i--)
		arrayRevers.push(array[i]);
		
	return arrayRevers.join("").split("@").join("");
}

function przelicz_inny_nosnik()
{
	
	roczne_zuzycie_do_celow_grzewczych_wy = Number(( roczne_zuzycie_do_celow_grzewczych_pb * $('wartosc_opalowa_pb').value ) / $('wartosc_opalowa_wy').value ).toFixed(0);
	roczne_zuzycie_w_poborze_wy = Number(( roczne_zuzycie_w_poborze_pb * $('wartosc_opalowa_pb').value ) / $('wartosc_opalowa_wy').value ).toFixed(0);
	koszty_zuzycia_nosnikow_do_celow_grzewczych_wy = Number(roczne_zuzycie_do_celow_grzewczych_wy * ceny_nosnikow_wy).toFixed(0);
	koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy = Number(roczne_zuzycie_w_poborze_wy * ceny_nosnikow_wy).toFixed(0);
	
	$('roczne_zuzycie_do_celow_grzewczych_wy').value = separate(String(roczne_zuzycie_do_celow_grzewczych_wy));
	$('roczne_zuzycie_w_poborze_wy').value = separate(String(roczne_zuzycie_w_poborze_wy));
	$('koszty_zuzycia_nosnikow_do_celow_grzewczych_wy').value = separate(String(koszty_zuzycia_nosnikow_do_celow_grzewczych_wy)) + "zł";
	$('koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy').value = separate(String(koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy)) + "zł";
}

function podsumowanie()
{
	var roczne_oszczednosci1 = Number(koszty_zuzycia_nosnikow_do_celow_grzewczych_wy - koszty_zuzycia_nosnikow_do_celow_grzewczych_pb).toFixed(0);
	var roczne_oszczednosci2 = Number(koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy - koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_pb).toFixed(0);

	if(roczne_oszczednosci1 > 0)
	{
		$('roczne_oszczednosci1').style.color = "black";
		$('text_opis_1').innerHTML = opis_text["opis1+"];
	}
	else
	{
		$('roczne_oszczednosci1').style.color = "red";
		$('text_opis_1').innerHTML = opis_text["opis1-"];
	}
	if(roczne_oszczednosci2 > 0)
	{
		$('roczne_oszczednosci2').style.color = "black";
		$('text_opis_2').innerHTML = opis_text["opis2+"];
	}
	else
	{
		$('roczne_oszczednosci2').style.color = "red";
		$('text_opis_2').innerHTML = opis_text["opis2-"];
	}
	
	$('roczne_oszczednosci1').value = separate(String(roczne_oszczednosci1)) + "zł";;
	$('roczne_oszczednosci2').value = separate(String(roczne_oszczednosci2)) + "zł";;
}

function init_element(nazwa)
{
	$('ceny_nosnikow_energii_wy').readOnly = false;
	$('ceny_nosnikow_energii_wy').style.color = '#000000';
	$('ceny_nosnikow_energii_wy').value = ceny_nosnikow_energii[nazwa];
	$('ceny_nosnikow_energii_wy').value = $('ceny_nosnikow_energii_wy').value.split(".").join(",");
	$('ceny_nosnikow_energii_pb').value = $('ceny_nosnikow_energii_pb').value.split(".").join(",");
	$('wartosc_opalowa_wy').value = wartosci_opalowe[nazwa];
}

function nosnik_onchange(elem)
{
	if(!isValidate($('laczna_moc_urzadzen_pb').value))
	{
		for(var i = 4; i < nosnik_elem.length; i++)
		{
			nosnik_elem[i].readOnly = true;
			nosnik_elem[i].style.color = '#666666';
		}
		
		$('roczne_zuzycie_do_celow_grzewczych_wy').value = "---";
		$('roczne_zuzycie_w_poborze_wy').value = "---";
		$('koszty_zuzycia_nosnikow_do_celow_grzewczych_wy').value = "---";
		$('koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy').value = "---";
		
		$('roczne_zuzycie_do_celow_grzewczych_pb').value = "---";
		$('roczne_zuzycie_w_poborze_pb').value = "---";
		$('koszty_zuzycia_nosnikow_do_celow_grzewczych_pb').value = "---";
		$('koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_pb').value = "---";
		
		$('roczne_oszczednosci1').value = "---";
		$('roczne_oszczednosci2').value = "---";
	}
	if(kolejnosc[elem.selectedIndex] == '')
	{
		for(var i = 0; i < nosnik_elem.length; i++)
		{
			nosnik_elem[i].readOnly = true;
			nosnik_elem[i].style.color = '#666666';
		}
		$('ceny_nosnikow_energii_wy').value = "---";
		$('wartosc_opalowa_wy').value = "---";
		$('roczne_zuzycie_do_celow_grzewczych_wy').value = "---";
		$('roczne_zuzycie_w_poborze_wy').value = "---";
		$('koszty_zuzycia_nosnikow_do_celow_grzewczych_wy').value = "---";
		$('koszty_zuzycia_nosnikow_w_poborze_ciaglych_paliwa_wy').value = "---";
		$('roczne_oszczednosci1').value = "---";
		$('roczne_oszczednosci2').value = "---";
		$('text_opis_1').innerHTML = "<br />&nbsp;";
		$('text_opis_2').innerHTML = "<br />&nbsp;";
		$('cena_jenostka').innerHTML = "";
		$('wartosc_opalowa_jednostka').innerHTML = "";
		$('roczne_zuzycie1_jednostka').innerHTML = "";
		$('roczne_zuzycie2_jednostka').innerHTML = "";
	}
	else
	{
		init_element(kolejnosc[elem.selectedIndex]);
		$('cena_jenostka').innerHTML = jednostki[kolejnosc[elem.selectedIndex]][0];
		$('wartosc_opalowa_jednostka').innerHTML = jednostki[kolejnosc[elem.selectedIndex]][1];
		$('roczne_zuzycie1_jednostka').innerHTML = jednostki[kolejnosc[elem.selectedIndex]][2];
		$('roczne_zuzycie2_jednostka').innerHTML = jednostki[kolejnosc[elem.selectedIndex]][2];
		if(isFixed && isValidate($('laczna_moc_urzadzen_pb').value))
		{
			przelicz_propan_buttan();
			przelicz_inny_nosnik();
			podsumowanie();
		}
	}
}

function isValidate(wartosc)
{
	if(String(Number(wartosc)) == "NaN" || wartosc == "")
		return false;
	return true;
}

function moc_change(wartosc)
{
	$('laczna_moc_urzadzen_wy').value = wartosc;
}
