var awaria_3d = false;

//zdefiniowanie danych dotyczšcych papierów

function MaterialDef(Nazwa, SzerArk, WysArk, Spad, Podklad, Zywica, Koszt, Cena, Cena2, Termin, Ploter, Waga, Material){
  	this.Nazwa = Nazwa;
	this.SzerArk = SzerArk;
    this.WysArk = WysArk;
	this.Spad = Spad;
  	this.Podklad = Podklad;
	this.Zywica = Zywica;
	this.Koszt = Koszt;
	this.Cena = Cena;
	this.Cena2 = Cena2; // cena przy cięciu lini prostych
	this.Termin = Termin;
	this.Ploter = Ploter;
	this.Waga = Waga; //w gramach
	this.Material = Material; // Materiał do druku p-papier, f- folia
  }

// utworzenie tablicy papierów
MaterialDane = new Array();// | nazwa | max szer | max wys | spad | podklad | 3d | koszt staly | cena druku z materialem | Cemna uproszczona | termin | ploter | waga | materiał |
MaterialDane[0] = new MaterialDef(js_Etykiety_z_papieru_samoprzylepnego, 					490, 340, 2, 0,	0,	5,	3.60, 8,	3,	0, 31.5,'p');
MaterialDane[1] = new MaterialDef(js_Etykiety_z_papieru_samoprzylepnego_laminowanego,		490, 340, 2, 0,	0,	5,	3.50, 0,	4,	1, 33,	'p');
MaterialDane[2] = new MaterialDef(js_Etykiety_z_folii_samoprzylepnej,						490, 340, 2, 0,	0,	5,	6.73, 11,	3,	0, 42,	'f');
MaterialDane[3] = new MaterialDef(js_Nalepki_3D_samoprzylepne,								490, 340, 4, 0,	1,	25,	20.73, 0,	5,	0, 42,	'f');
MaterialDane[4] = new MaterialDef(js_Etykiety_z_papieru_samoprzylepnego_na_podkladzie_mag,	490, 290, 3, 1,	0,	5,	3.00, 0,	4,	1, 42,	'p');
MaterialDane[5] = new MaterialDef(js_Etykiety_z_papieru_samoprzylepnego_lamin_na_podk_mag,	490, 290, 3, 1,	0,	5,	3.50, 0,	5,	1, 300,	'p');
MaterialDane[6] = new MaterialDef(js_Etykiety_z_folii_samoprzylepnej_na_podk_magnet,		490, 290, 3, 1,	0,	5,	6.73, 0,	4,	1, 300,	'f');
MaterialDane[7] = new MaterialDef(js_Etykiety_3D_na_podk_magnetycznym,  					490, 290, 3, 1,	1,	25,	6.73, 0,	6,	1, 300,	'f');

// zdefiniowanie stałych

var CenaFoliiMagnetycznej 	= 11.00;
var CenaNaklejania 			= 1.00;
var RoboczogodzinaPlotera 	= 45.00;
var debug=0;

function SetMaterial(){
	ii=0;
	for (var i = 0; i < MaterialDane.length; i++) {
		if(!(MaterialDane[i].Zywica == 1 && awaria_3d))
		{
			document.kalkulator.Material.options[ii] = new Option(MaterialDane[i].Nazwa);
			ii++;
		}
	}
}


function sprawdzDane(){
	szer = document.kalkulator.szer.value.replace(',','.');
	wys = document.kalkulator.wys.value.replace(',','.');
	szer=szer*1-4;
	wys=wys*1-4;
	if(MaterialDane[document.kalkulator.Material.selectedIndex].Zywica == 1){
		if(szer*wys > 20000){
			resetuj_wynik(js_alert_Maksymalny_rozmiar_nalepki_3D);
			alert(js_alert_Zbyt_duzy_rozmiar);
			return 0;
		}
		if(szer<8 || wys <8 || szer*wys < 100){
			resetuj_wynik(js_alert_Minimalny_wymiar_nalepki);
			alert(js_alert_Zbyt_maly_rozmiar);
			return 0;
		}
	}
	maxSzer = MaterialDane[document.kalkulator.Material.selectedIndex].SzerArk - MaterialDane[document.kalkulator.Material.selectedIndex].Spad *2;
	maxWys  = MaterialDane[document.kalkulator.Material.selectedIndex].WysArk  - MaterialDane[document.kalkulator.Material.selectedIndex].Spad *2;
	over=0;
	if(szer>maxSzer || wys>maxSzer ){
		over=1;
	}else{
		if(szer>maxWys && wys>maxWys) over=1;
	}
	if(over){
		resetuj_wynik(js_alert_Maksymalny_rozmiar_uzytku_dla_mat + maxSzer + 'mm x '+ maxWys + 'mm.');
		alert(js_alert_Zbyt_duzy_rozmiar);
		return 0;
	}

	return 1;
}

function ustawCzekboksa(){
nazwa = document.kalkulator.Material[document.kalkulator.Material.selectedIndex].text;
if(nazwa == js_Etykiety_z_papieru_samoprzylepnego || nazwa ==  js_Etykiety_z_folii_samoprzylepnej){
		document.kalkulator.proste_linie.disabled = false;
		document.getElementById('2').disabled = false;
	}else{
		document.kalkulator.proste_linie.disabled = true;
		document.kalkulator.proste_linie.checked = false;
		document.getElementById('2').disabled = true;
	}


	if( (nazwa == js_Nalepki_3D_samoprzylepne || nazwa == js_Etykiety_3D_na_podk_magnetycznym) && (awaria_3d  || !expres_3d)) {
		document.getElementById('exp_lab').disabled = true; //label
		document.getElementById('exp').disabled = true; //checkbox
		document.getElementById('exp').checked = false; //checkbox
	}else{
		document.getElementById('exp_lab').disabled = disabled_expres; //label
		document.getElementById('exp').disabled = disabled_expres; //checkbox
	}
	dodaj_uwage_3d();

}

function kalkulacja(){
	var dbg='';

	if (!sprawdzDane()) return;

	var wsp, Liczba_nalepek_na_arkuszu, liczbaArkuszy, cenaCieciaUzytku;

	if(document.kalkulator.dealer.value==1) {wsp=1} else {wsp=1.6}

	szer = document.kalkulator.szer.value.replace(',','.');
	szer=szer*1-4;
	wys = document.kalkulator.wys.value.replace(',','.');
	wys=wys*1-4;

	var szer_ark = MaterialDane[document.kalkulator.Material.selectedIndex].SzerArk;
	var wys_ark  = MaterialDane[document.kalkulator.Material.selectedIndex].WysArk;
	var spad     = MaterialDane[document.kalkulator.Material.selectedIndex].Spad;
	var naklad   = document.kalkulator.naklad.value;
	// obliczamy ile nalepek zmiesci nie na arkuszu w zaleznoci od orietacji strony
	S1 = Math.floor( szer_ark / (szer+2*spad));
	W1 = Math.floor( wys_ark / (wys+2*spad));
	S2 = Math.floor( wys_ark / (szer+2*spad));
	W2 = Math.floor( szer_ark / (wys+2*spad));

	if (S1*W1>S2*W2) {
		Liczba_nalepek_na_arkuszu= S1*W1;
		macierz= 'Obrócone, '+ W1 +' x ' +S1;
	}else{
		Liczba_nalepek_na_arkuszu= S2*W2;
		macierz= S2 +' x ' +W2;
	}

	liczbaArkuszy = Math.ceil(naklad / Liczba_nalepek_na_arkuszu);
	//if(liczbaArkuszy==1) Liczba_nalepek_na_arkuszu = naklad;

	var Cena = MaterialDane[document.kalkulator.Material.selectedIndex].Cena * liczbaArkuszy;
	dbg += ' cena druku z papierem: '+ Cena;
	Cena += MaterialDane[document.kalkulator.Material.selectedIndex].Koszt*1;
	dbg += '<BR> koszt stały: '+ MaterialDane[document.kalkulator.Material.selectedIndex].Koszt*1;
	if(MaterialDane[document.kalkulator.Material.selectedIndex].Podklad == 1) {
		Cena += (CenaFoliiMagnetycznej*1 + CenaNaklejania*1)* liczbaArkuszy;
		dbg += '<BR> cena foli + naklejanie: '+(CenaFoliiMagnetycznej*1 + CenaNaklejania*1)*liczbaArkuszy;
	}

	cenaCieciaUzytku = (szer*2+wys*2)*0.1 * 0.71 * RoboczogodzinaPlotera/3600;
	dbg += '<BR> cenaCieciaUzytku: '+	cenaCieciaUzytku
	Cena += cenaCieciaUzytku * Liczba_nalepek_na_arkuszu * liczbaArkuszy;
	dbg += '<BR> Liczba_nalepek_na_arkuszu : '+ 	Liczba_nalepek_na_arkuszu;
	dbg += '<BR> liczbaArkuszy : '+ 	liczbaArkuszy;

	dbg += '<BR> cena ciecia dowolne linie : '+ (cenaCieciaUzytku * Liczba_nalepek_na_arkuszu * liczbaArkuszy);
	// sprawdzamy czy jest wylewanie zywicy
	if(MaterialDane[document.kalkulator.Material.selectedIndex].Zywica == 1){
		powierzchnia = szer*wys/100;
		if(0.02+4500/(powierzchnia*naklad)/100>0.035){
			CenaWylania = 0.038;
		}else{
			CenaWylania = 0.022+ 4300 / (powierzchnia*naklad)/100;
		}
		Cena += szer*wys*naklad/100*CenaWylania;
		dbg += '<BR> cena zywicy : '+ szer*wys*naklad/100*CenaWylania;
	}

	if(document.kalkulator.proste_linie.checked){
		Cena2 = MaterialDane[document.kalkulator.Material.selectedIndex].Cena2
		if(Cena2 >0) Cena=Cena2*liczbaArkuszy;
	}



	termin = MaterialDane[document.kalkulator.Material.selectedIndex].Termin;
	if ((szer+wys)*naklad > 200000 && !document.kalkulator.proste_linie.checked) termin += 1;

	fontkolor=''; font='';
	if (document.kalkulator.expres.checked) {
		termin -= 1;
		fontkolor='<font color=red><B>'+ js_w_ekspresie ;
		font='</b></font>';
	}
	//debug += '<BR> Cena razem org. :'+ Cena;
	if (Liczba_nalepek_na_arkuszu > 300 && MaterialDane[document.kalkulator.Material.selectedIndex].Zywica != 1) {
		Cena = Cena*1.1;
	}

	if (Cena > 400) {
	//alert(Math.ceil((Cena - 400)/300));
		termin += Math.ceil((Cena - 400)/300)
	}
	Cena = Math.max(Cena, 30);
	if (document.kalkulator.expres.checked) {
		Cena = Cena*1.3;
	}
	Cena = Cena * wsp;
	Cena = Math.ceil(Cena*100)/100;


	wyn = '<table><tr><td>'+js_Cena_zlecenia+ '</td><td>' +formatNum(Cena/kurs_waluty,2)+ ' '+wal+' (+ '+vat*22+'% VAT)</td></tr>';
	wyn += '<tr><td>'+js_Cena_jednej_sztuki+ '</td><td>' +formatNum(Cena/naklad/kurs_waluty,3)+ ' '+wal+' (+ '+vat*22+'% VAT)</td></tr>';
	wyn += '<tr><td colspan=2>_______________________________________________</td></tr>';
	wyn += '<tr><td>'+js_waga+ '</td><td>' + formatNum(waga(liczbaArkuszy),2) +'kg</td></tr>';
	wyn += '<tr><td>'+js_Termin+ '</td><td>'+fontkolor +termin+ js_dni_roboczych + font+'</td></tr></table>';

	document.getElementById("wynik").innerHTML = wyn;


	if(debuger) document.getElementById("wyn_dbg").innerHTML = dbg+'</TD></TR></table>';
	dbg="";

	Specyfikacja ='Arkusz : '+ MaterialDane[document.kalkulator.Material.selectedIndex].SzerArk + ' x '+MaterialDane[document.kalkulator.Material.selectedIndex].WysArk;
	Specyfikacja += '\n<br>Liczba użytków na arkuszu : '+Liczba_nalepek_na_arkuszu+' \n<br> Rozmieszczenie : '+macierz;
	Specyfikacja += '\n<br>Odległość użytków : '+ MaterialDane[document.kalkulator.Material.selectedIndex].Spad*2;

	indeks_elinor = 'ETN';
	if( MaterialDane[document.kalkulator.Material.selectedIndex].Podklad == 1) indeks_elinor = 'ETN_Mag';
	if( MaterialDane[document.kalkulator.Material.selectedIndex].Zywica == 1) indeks_elinor = 'nalepki';

	Nazwa_zlecenia = MaterialDane[document.kalkulator.Material.selectedIndex].Nazwa;
	Nazwa_zlecenia = Nazwa_zlecenia.replace('lamin.','laminowane');
	Nazwa_zlecenia = Nazwa_zlecenia.replace('podkł.','podkładzie');
	Nazwa_zlecenia += ' ' + (szer*1+4) + 'mm x ' + (wys*1+4) + 'mm ';
	if(document.kalkulator.proste_linie.checked){
		Nazwa_zlecenia += ' (cięcie prostoliniowe)';
	}
	Nazwa_zlecenia += ' '+ naklad + ' szt.';

	if (document.kalkulator.expres.checked){
		Nazwa_zlecenia = '<font color=red>EKSPRES</font> ' + Nazwa_zlecenia;
	}

document.kalkulator.Specyfikacja.value = Specyfikacja;
document.kalkulator.kwota_netto.value = formatNum(Cena,2);
document.kalkulator.cena_za_sztuke.value = formatNum(Cena,2);
document.kalkulator.termin.value = termin * 24;
document.kalkulator.nazwa_zlecenia.value = Nazwa_zlecenia;
document.kalkulator.masa_sztuki.value = waga(liczbaArkuszy);

if(MaterialDane[document.kalkulator.Material.selectedIndex].Zywica == 1){
	if (liczbaArkuszy * Liczba_nalepek_na_arkuszu < naklad*1.1) {
		liczbaArkuszy = Math.ceil(liczbaArkuszy*1.06);
	}

}
document.kalkulator.LiczbaArkuszy.value = liczbaArkuszy;
document.kalkulator.indeks_el.value =indeks_elinor;
document.kalkulator.papier.value = MaterialDane[document.kalkulator.Material.selectedIndex].Material;
document.kalkulator.ploter.value =MaterialDane[document.kalkulator.Material.selectedIndex].Ploter;
document.kalkulator.naklejanie.value =MaterialDane[document.kalkulator.Material.selectedIndex].Podklad;
document.kalkulator.wylewanie.value =MaterialDane[document.kalkulator.Material.selectedIndex].Zywica;
}

/**
 *
 * @access public
 * @return void
 **/
function dodaj_uwage_3d(){

	uwaga='<p><strong>W przypadku etykiet 3D o skomlikowanym kształcie lub bardzo małych,<BR>z uwagi na podwyższoną pracochłonność, zastrzegamy sobie prawo<br> podwyższenia ceny i wydłużenia terminu realizacji!<BR><BR><strong></p>';
		if( MaterialDane[document.kalkulator.Material.selectedIndex].Zywica != 1) uwaga='';

		document.getElementById("uwaga_3d").innerHTML =uwaga;
}

/**
 *
 * @access public
 * @return void
 **/
function resetuj_wynik(text){
	if(text) document.getElementById("wynik").innerHTML = text; else document.getElementById("wynik").innerHTML = '';
}

function waga(lArk){
	masaZywicy=0;
	wagaArkusza= MaterialDane[document.kalkulator.Material.selectedIndex].Waga / 1000;
	if (MaterialDane[document.kalkulator.Material.selectedIndex].Zywica ==1){
		szer = document.kalkulator.szer.value.replace(',','.')-4;
		wys = document.kalkulator.wys.value.replace(',','.')-4;
		masaZywicy = wys*0.001*szer*0.001*0.4*document.kalkulator.naklad.value;
	}
	return lArk*wagaArkusza+masaZywicy;
}