
function blockEnter(evt) {
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode :((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 13) {
        return false;
    } else {
        return true;
    }
} 

function formatWalutowy(mnt) {
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    return (mnt == Math.floor(mnt)) ? mnt + '.00' 
              : ( (mnt*10 == Math.floor(mnt*10)) ? 
                       mnt + '0' : mnt);
}

function Zapotrzebowanie()
{
	mainform = document.grzejniki;
	var Power = 0;
	
	var sprawdz;
	
	sprawdz = mainform.wys_pom.value;
	if (sprawdz.indexOf(",") > -1) 
	{ 
		sprawdz = sprawdz.replace(/,/, "."); 
		a = sprawdz;
	}
	else
	{
		a  = mainform.wys_pom.value;
	}
	
	sprawdz = mainform.szer_pom.value;
	if (sprawdz.indexOf(",") > -1) 
	{ 
		sprawdz = sprawdz.replace(/,/, "."); 
		b = sprawdz;
	}
	else
	{
		b  = mainform.szer_pom.value;
	}
	
	sprawdz = mainform.dl_pom.value;
	if (sprawdz.indexOf(",") > -1) 
	{ 
		sprawdz = sprawdz.replace(/,/, "."); 
		c = sprawdz;
	}
	else
	{
		c  = mainform.dl_pom.value;
	}
	
	
	aa = a * b * c;
	x=isNaN(a);
	if (x) {alert("Nalezy podać liczby w formacie 99.9 !!!")
	   	   mainform.wys_pom.value=1.0
		   return 0
	   	   } 
	x=isNaN(b);
	if (x) {alert("Nalezy podać liczby w formacie 99.9 !!!")
	   	   mainform.szer_pom.value=1.0
		   return 0
	   	   } 
	x=isNaN(c);
	if (x) {alert("Nalezy podać liczby w formacie 99.9 !!!")
	   	   mainform.dl_pom.value=1.0
		   return 0
	   	   } 
		   
	mainform.wys_pom_r1.value = a;
	mainform.wys_pom_r2.value = a;
	mainform.dl_pom_r.value = c;
	mainform.szer_pom_r.value = b;
	
	mainform.pow_pom.value = c*b;
	mainform.kub_pom.value = c*b*a;
	
	P = parseFloat(aa); //kubatura
	
	var K = mainform.sciany_z_szer.value;
	var L = mainform.sciany_z_dl.value;
	
	var Krot_wymiany;
	sprawdz = mainform.s_wentyl.value;
	if (sprawdz.indexOf(",") > -1) 
	{ 
		sprawdz = sprawdz.replace(/,/, "."); 
		Krot_wymiany = sprawdz;
	}
	else
	{
		Krot_wymiany = mainform.s_wentyl.value;
	}
	
	var Ustrop = mainform.u_ciepla_s.value;
	var Upodlogi = mainform.u_ciepla_p.value;
	var Uokn = mainform.kon_okna.value;
	
	var Pow_okn;
	sprawdz = mainform.pow_okna.value;
	if (sprawdz.indexOf(",") > -1) 
	{ 
		sprawdz = sprawdz.replace(/,/, "."); 
		Pow_okn = sprawdz;
	}
	else
	{
		Pow_okn  = mainform.pow_okna.value;
	}

	var Twew = 20;//temperatura wewnetrzna
	var Tgrun = 8;//temperatura gruntu
	var Tzew = mainform.s_klim.value;// temperatura zewnetrzna - strefa klimatyczna
	var Usc = mainform.sciana.value;
	
	var bezpiecznik = 1.2;
	
	var straty_scia = (((a*b*K) + (a*c*L) - (Pow_okn)) * Usc * (Twew-Tzew)) * bezpiecznik;
	
	var straty_okna = Pow_okn * Uokn * (Twew-Tzew) * bezpiecznik;
    
	var straty_str_podl = ((a*b*Ustrop*(Twew-Tzew)) + (a*b*Upodlogi*(Tgrun-Tzew))) * bezpiecznik
	
    var straty_went = 1.1 * (1.293 * 700 * (a*b*c) * (Twew-Tzew) * Krot_wymiany)/3600 * bezpiecznik;
	
	Power = parseInt(straty_scia + straty_str_podl + straty_went + straty_okna);
	
	
	//mainform.straty_1.value = parseInt(straty_scia);
	//mainform.straty_2.value = parseInt(straty_str_podl);
	//mainform.straty_3.value = parseInt(straty_okna);
	//mainform.straty_4.value = parseInt(straty_went);
	mainform.moc_potrz.value = Power;
	Dobor();
}

function Dobor()
{

	var descriptions=new Array()

	descriptions[0]="nie wybrano sterowania."
	descriptions[1]="Zawór odcinający i zawór termostatyczny (w kanale)"
	descriptions[2]="Zawór odcinający i zawór termostatyczny (w kanale) oraz głowica termostatyczna z czujnikiem temperatury na kapilarze montowanym poza kanałem (na ścianie)"
	descriptions[3]="Zawór odcinający i zawór termostatyczny z siłownikiem (w kanale) współpracującym radiowo ze sterownikiem montowanym poza kanałem (na ścianie)"
	
	grz_00 = new Array("brak",	'0'	,'0'	,'0'	,'0'	,'0' , '0'  , '0' ,  '0' ,'0', "brak");
	
	//Typ zestawu					Głębokość wanny [mm]	Szerokość podestu [mm]	Moc 1 mb 75/65/20 [W]		Przyrost mocy na 0,1mb [W]	Cena 1 mb PLN                 A               B               C               D        						przekroj_obrazek
	grz_01 = new Array("SOLO 17"		,'170'				,'250'		,'364'				,'45.5'				,'492',  '2.8696'  	, '1.3131' ,  '0.012396' , '0.016' , "przekroje\/solo170.jpg");
	grz_02 = new Array("SOLO 27"		,'265'				,'250'		,'468'				,'58.5'				,'562',  '3.6863'  	, '1.3131' ,  '0.012396' , '0.016' , "przekroje\/solo270.jpg");
	grz_03 = new Array("SOLO 40"		,'400'				,'250'		,'610'				,'76.25'			,'718',  '4.8058'  	, '1.3131' ,  '0.012396' , '0.016' , "przekroje\/solo400.jpg");
	grz_04 = new Array("SOLO 50"		,'500'				,'250'		,'788'				,'98.5'				,'795',  '6.20975'  , '1.3131' ,  '0.012396' , '0.016' , "przekroje\/solo500.jpg");
	grz_05 = new Array("SOLO 60"		,'600'				,'250'		,'977'				,'122.1'			,'861',  '7.6959'  	, '1.3131' ,  '0.012396' , '0.016' , "przekroje\/solo600.jpg");
	grz_06 = new Array("SOLO 70"		,'700'				,'250'		,'1203'				,'150.4'			,'933',  '9.47616'  , '1.3131' ,  '0.012396' , '0.016' , "przekroje\/solo700.jpg");
	grz_07 = new Array("DUO 10"			,'100'				,'350'		,'480'				,'60'				,'558',  '2.1633'  	, '1.444' 	,  '0.15706' , '0.016' , "przekroje\/duo100.jpg");
	grz_08 = new Array("QUATTRO 15"		,'150'				,'350'		,'560'				,'70'				,'626',  '3.963478' , '1.34' 	,  '0.018793' , '0.017' , "przekroje\/quattro150.jpg");
	grz_09 = new Array("QUATTRO 20"		,'200'				,'350'		,'741'				,'92.6'				,'663',  '4.3' 		, '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/quattro200.jpg");
	grz_10 = new Array("QUATTRO 27"		,'270'				,'350'		,'796'				,'99.5'				,'682',  '4.43974'  , '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/quattro270.jpg");
	grz_11 = new Array("DUBEL 17"		,'170'				,'400'		,'552'				,'69'				,'763',  '3.22583'  , '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/dubel170.jpg");
	grz_12 = new Array("DUBEL 27"		,'265'				,'400'		,'702'				,'87.8'				,'892',  '4.072916' , '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/dubel270.jpg");
	grz_13 = new Array("DUBEL 40"		,'400'				,'400'		,'915'				,'114.4'			,'1158', '5.30683'  , '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/dubel400.jpg");
	grz_14 = new Array("DUBEL 50"		,'500'				,'400'		,'1183'				,'147.9'			,'1301', '6.86083'  , '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/dubel500.jpg");
	grz_15 = new Array("DUBEL 60"		,'600'				,'400'		,'1466'				,'183.3'			,'1444', '8.503'  	, '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/dubel600.jpg");
	grz_16 = new Array("DUBEL 70"		,'700'				,'400'		,'1805'				,'225.6'			,'1673', '10.46983' , '1.3896' 	,  '0.024371' , '0.017' , "przekroje\/dubel700.jpg");

	grzejnik_typ = new Array(grz_00,grz_01,grz_02,grz_03,grz_04,grz_05,grz_06,grz_07,grz_08,grz_09,grz_10,grz_11,grz_12,grz_13,grz_14,grz_15,grz_16);

	obr_00 = new Array("bez podestu",	'0'	,'0','0');
	//		NAZWA									CENA 250 (1)               CENA  350 (2)                    CENA 400(3)  
	obr_01 = new Array("AluRoll250/7",				'361', 		'488',	 		'583'	);
	obr_02 = new Array("AluRoll250/10",				'308', 		'404',	 		'488'	);
	obr_03 = new Array("AluRoll250/13",				'265', 		'350',	 		'424'	);
	
	obr_04 = new Array("AluFix250/7",				'361', 		'488',	 		'583'	);
	obr_05 = new Array("AluFix250/10",				'308', 		'403',	 		'488'	);
	obr_06 = new Array("AluFix250/13",				'265', 		'350',	 		'424'	);
	
	obr_07 = new Array("Buk250K/14-kość",			'520', 		'647',	 		'774'	);
	obr_08 = new Array("Dąb250K/14-kość",			'552', 		'679',	 		'817'	);
	obr_09 = new Array("Jesion250K/14-kość",		'552', 		'679',	 		'817'	);
	
	obr_10 = new Array("Buk250K/14-listwa",			'265', 		'350',	 		'424'	);
	obr_11 = new Array("Dąb250L/14-listwa",			'308', 		'403',	 		'488'	);
	obr_12 = new Array("Jesion250L/14-listwa",		'308', 		'403',	 		'488'	);
	
	obr_13 = new Array("Posezonowy250",				'117', 		'128',	 		'149'	);
	
	podest_typ = new Array(obr_00,obr_01,obr_02,obr_03,obr_04,obr_05,obr_06,obr_07,obr_08,obr_09,obr_10,obr_11,obr_12,obr_13);
		
	temperatury_00 = new Array('0','0','0');
	temperatury_01 = new Array('95','85','20');
	temperatury_02 = new Array('90','80','20');
	temperatury_03 = new Array('85','75','20');
	temperatury_04 = new Array('80','70','20');
	temperatury_05 = new Array('75','65','20');
	temperatury_06 = new Array('70','60','20');
	temperatury_07 = new Array('65','55','20');
	temperatury_08 = new Array('60','50','20');
	temperatury_09 = new Array('55','45','20');
	temperatury_10 = new Array('50','40','20');
	temperatury_11 = new Array('45','35','20');
	temperatury_12 = new Array('40','30','20');
	temperatury_13 = new Array('35','25','20');	
	
	temperatury = new Array(temperatury_00,temperatury_01,temperatury_02,temperatury_03,temperatury_04,temperatury_05,temperatury_06,temperatury_07,temperatury_08,temperatury_09,temperatury_10,temperatury_11,temperatury_12,temperatury_13);
	
	
	var tg = mainform.typ.value;
	mainform.przekrojsw.src = grzejnik_typ[tg][10];
	Z = mainform.tz.value; // temp zasilania
	var delta_T = 0;
	delta_T = ((parseInt(temperatury[Z][0]) + parseInt(temperatury[Z][1]))/2)-parseInt(temperatury[Z][2]);
	var square1 = grzejnik_typ[tg][6]*Math.pow(delta_T,grzejnik_typ[tg][7]);
	var square2 = Math.pow(grzejnik_typ[tg][8],grzejnik_typ[tg][9]);
	var grzejnik_moc_m = parseInt(square1 * square2);
	
	var tpod = mainform.pod.value;
	var mocPotrzebna = mainform.moc_potrz.value;
	var ilosc_grzejnikow = 1;
	var przyrost = 100;
	var dl_wanny = 600;
	var dl_grzejnika = 400;
	var dl_grzejnika_metry = parseFloat(dl_grzejnika/1000);
	var mocGrzejnika = dl_grzejnika_metry * grzejnik_moc_m;
	var mocZestawu = parseInt(mocGrzejnika * ilosc_grzejnikow);
	
	
	while((mocZestawu < mocPotrzebna)&&(ilosc_grzejnikow < 100))
	{
		if((ilosc_grzejnikow < 2)&&(dl_grzejnika > 1900))
		{	
			przyrost = 200;	
		}
		else
		{	
			przyrost = 100;	
		}
		
		dl_grzejnika = dl_grzejnika + przyrost;

		if((ilosc_grzejnikow < 2)&&(dl_grzejnika > 2800))
		{
			dl_grzejnika = 1600;
			ilosc_grzejnikow++;
		}

		if((ilosc_grzejnikow >= 2)&&(ilosc_grzejnikow < 16)&&(dl_grzejnika > 2000))
		{
			dl_grzejnika = 1600;
			ilosc_grzejnikow++;
		}
		
		if((ilosc_grzejnikow >= 16)&&(dl_grzejnika > 2000))
		{
			dl_grzejnika = 2000;
			ilosc_grzejnikow++;
		}
		
		dl_grzejnika_metry = parseFloat(dl_grzejnika/1000);
		mocGrzejnika = dl_grzejnika_metry * grzejnik_moc_m;
		mocZestawu = parseInt(mocGrzejnika * ilosc_grzejnikow);
	}
	
	mainform.moc_grz.value = mocZestawu;
	mainform.il_grz.value = parseInt(ilosc_grzejnikow);
	mainform.dlu_grz.value = parseInt(dl_grzejnika);
	mainform.dl.value = parseInt((dl_grzejnika + 200) * ilosc_grzejnikow);
	
	mainform.gl_k.value = parseInt(grzejnik_typ[tg][1]);
	mainform.szer_p.value = parseInt(grzejnik_typ[tg][2]);
	mainform.szer_k.value = parseInt(grzejnik_typ[tg][2])-50;
	
	i = mainform.ster.value;
	mainform.steropis.value=descriptions[i];
	
	//  CENY
	
	dlugosc = mainform.dl.value;
	//var cena_grzejnikow = ilosc_grzejnikow * ((dl_grzejnika * parseInt(grzejnik_typ[tg][5])) / 1000);
	var cena_grzejnikow = dlugosc * parseInt(grzejnik_typ[tg][5]) / 1000;
	
	cena_grzejnikow = parseInt(cena_grzejnikow*10)/10;
	mainform.c_grz.value = formatWalutowy(cena_grzejnikow);
	
	if(mainform.szer_p.value == 250)
	{
		price_podest = eval((podest_typ[tpod][1] * dlugosc) / 1000);
		price_podest_p = eval((podest_typ[13][1] * dlugosc) / 1000);
	}
	if(mainform.szer_p.value == 350)
	{
		price_podest = eval((podest_typ[tpod][2] * dlugosc) / 1000);
		price_podest_p = eval((podest_typ[13][2] * dlugosc) / 1000);
	}
	if(mainform.szer_p.value == 400)
	{
		price_podest = eval((podest_typ[tpod][3] * dlugosc) / 1000);
		price_podest_p = eval((podest_typ[13][3] * dlugosc) / 1000);
	}
	price_podest = parseInt(price_podest*10)/10;
	mainform.c_pod.value = formatWalutowy(price_podest);
	if(( tg > 10)&&(tpod > 9))
	{
		mainform.c_pod.value = "niedostępny";
		price_podest = 0;
	}
	
	
	ispodest = mainform.pod_p.value;
	if( ispodest != 0)
	{	
		price_podest_p = parseInt(price_podest_p*10)/10;
		mainform.c_pod_pos.value = formatWalutowy(price_podest_p);
	}else{
		mainform.c_pod_pos.value = formatWalutowy(0);
	}

	
  suma = eval(mainform.c_grz.value) + price_podest + eval(mainform.c_pod_pos.value);
  suma = parseInt(suma*10)/10;
  mainform.razem.value = formatWalutowy(suma);
}
