﻿// kalkulator cen druku cyfrowego wykonany 
// dla firmy Media Press
// Kod chroniony prawem autorskim.
// Kopiowanie bez zgody autora zabronione
//
// © 2006-2009 Maciej Wieczorek wieczorek69@gmail.com 
//

function zeruj() {
document.calc.papier_cena.value=0;
document.calc.arkusz_1str_cena.value=0;
document.calc.arkusz_2str_cena.value=0;
document.calc.intro_ciecie_cena.value=0;
document.calc.intro_big_cena.value=0;
document.calc.intro_folia_cena.value=0;
document.calc.intro_razem_cena.value=0;
document.calc.wyliczony_naklad_arkuszy.value=0;
document.calc.wyliczony_naklad_uzytkow.value=0;
document.calc.cena_za_uzytek.value=0;
document.calc.cena_arkusza.value=0;
document.calc.wynik.value=0;
}

// - odczytuje wartość grupy radio
function stateChecker(n) {
   for (var i = 0; i < n.length; i++) {
      if (n[i].checked == true) {
         return(parseInt(n[i].value))
      }
   }
}
// - pokazuje dostępne papiery

function pokaz_papiery() {
	for (var i=0;i<ceny_papiery.length;i++) {
	document.calc.papiery.options[i] = null;
	var optname = new Option(ceny_papiery[i][0],i);
	document.calc.papiery.options[i]=optname
	}
	document.calc.papiery.options[0].selected= true
}

function pokaz_produkty() {
	for (var i=0;i<produkty.length;i++) {
	document.calc.produkt_dropdown.options[i] = null;
	var optname = new Option(produkty[i]["Info"][0],i);
	document.calc.produkt_dropdown.options[i]=optname
	}
	document.calc.produkt_dropdown.options[0].selected= true	
	
}

// - pokazuje dostępne formaty
function pokaz_formaty() {
        for (var i=0; i<4; i++) {
        document.calc.formaty.options[i] = null;
                if (ceny_papiery[document.calc.papiery.value][i]!=0) {
				var optname = new Option(nazwy_formatow[i],i);
                document.calc.formaty.options[i]=optname;
                } else {
                document.calc.formaty.options[i]= null;
                }
        }
document.calc.formaty.options[0].selected= true;
zeruj()
}

// Pokazuje możliwe nakłady wizytówek
function pokaz_naklady_wiz(rozmiar_par) {
	for (var i=0;i<=12;i++) {
	document.calc.naklad_wizytowek_dropdown.options[i] = null;
	var optname = new Option(naklad_wizytowek[rozmiar_par][i],i);
	document.calc.naklad_wizytowek_dropdown.options[i]=optname;
	document.calc.naklad_wizytowek_dropdown.options[i].id=naklad_wizytowek[rozmiar_par][i],i;
	}
	document.calc.naklad_wizytowek_dropdown.options[0].selected= true
}

// funkcja zwraca ogólną ilość kolorów na obu stronach wizytówki
function kolorystyka_wiz() {
var i=0;
var kolorow=0;
for (i=0;i<=1;i++) {
if (document.calc.strona1[i].checked == true) {	kolorow = kolorow + eval(document.calc.strona1[i].value)}
if (document.calc.strona2[i].checked == true) {	kolorow = kolorow + eval(document.calc.strona2[i].value)}
	}
return(kolorow)		
}

function rozmiary_wiz() {
var i=0;
var rozmiar=0;
for (i=0;i<=1;i++) {
if (document.calc.rozmiar_wiz[i].checked == true) {	return(eval(document.calc.rozmiar_wiz[i].value))}
	}
}		
	
// funkcja bada wymagane nakłady wizytówek w zależności od kolorystyki
// w razie konfliktu informuje o tym i poprawia wybrany nakład
function zbadaj_min_naklady(rozmiar_par, naklad_par ,kolorystyka_par) {
	if (eval(min_naklad[rozmiar_par][kolorystyka_par])>naklad_par) {
		window.alert("Minimalny nakład dla zadanych parametrów wizytówek wynosi: " + min_naklad[rozmiar_par][kolorystyka_par] + " szt.");
document.getElementById(min_naklad[rozmiar_par][kolorystyka_par]).selected=true;
}
}
// pokazuje lub chowa dodatkowe parametry foliowania
function pokaz_strony_foliowania() {
if (document.calc.intro_folia.value!=0) {
document.getElementById("intro_folia_parametry").style.visibility="visible";
} else {
document.getElementById("intro_folia_parametry").style.visibility="hidden";
}
}
// pokazuje lub chowa dodatkowe parametry bigowania
function pokaz_ilosc_bigow() {
	if (document.calc.intro_big.checked==true) {
document.getElementById("intro_big_parametry").style.visibility="visible";
} else {
document.getElementById("intro_big_parametry").style.visibility="hidden";
}
}
// wyswietla okienko z komunikatem o ilosci uzytków na arkuszu
function uwaga() {
if (document.calc.uzytek_format.value=="0") {
document.getElementById('uwaga').innerHTML="<-- wpisz samodzielnie!"
} else {
document.getElementById('uwaga').innerHTML=""
}
}

// wyswietla okienko z komunikatem
function uwaga_ciecie() {
if ((document.calc.intro_ciecie.checked==true)&&(document.calc.intro_ciecie_cena.value==0)) {
document.getElementById('uwaga_ciecie').innerHTML="&nbsp;cięcie bezpłatne!"
} else {
document.getElementById('uwaga_ciecie').innerHTML=""
}}


// wybiera stosowny indeks nakłądu
function wybierz_indeks_nakladu(par_przeloty) {
if (par_przeloty==1)   {indeks= 0}
if (par_przeloty>=2)   {indeks= 1}
if (par_przeloty>=10)  {indeks= 2}
if (par_przeloty>=20)  {indeks= 3}
if (par_przeloty>=50)  {indeks= 4}
if (par_przeloty>=100) {indeks= 5}
if (par_przeloty>=200) {indeks= 6}
if (par_przeloty>=500) {indeks= 7}
return indeks;
}

// ustaw właściwy nakład w dolnej sekcji
function ustaw_naklad() {
document.calc.zakres[wybierz_indeks_nakladu(document.calc.wyliczony_naklad_arkuszy.value)].checked=true
}

//////////////////////////////////////
// sekcja obliczająca cenę wydruku /////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////

function oblicz_wydruk(n){
	
// wylicz wynikowy nakład w arkuszach
document.calc.wyliczony_naklad_arkuszy.value=Math.ceil(document.calc.uzytek_sztuk.value/document.calc.uzytek_arkusz.value);
if (stateChecker(document.calc.strona2)>0) {
	wyliczona_ilosc_przelotow=2*document.calc.wyliczony_naklad_arkuszy.value
	} else {
	wyliczona_ilosc_przelotow=document.calc.wyliczony_naklad_arkuszy.value
}

// wylicz wynikowy nakład w sztukach
document.calc.wyliczony_naklad_uzytkow.value=document.calc.wyliczony_naklad_arkuszy.value*document.calc.uzytek_arkusz.value;

// ustaw prawidłowy nakład z zakresu
if (n==1) {
// wywołanie funkcji odbyło się z sekcji NAKŁAD Z ZAKRESU więc nie zmieniaj zakresu
	} else {
document.calc.zakres[wybierz_indeks_nakladu(wyliczona_ilosc_przelotow)].checked=true;
	}
	

	
// ustaw odpowiedni zakres cenowy	
indeks_nakladu = wybierz_indeks_nakladu(wyliczona_ilosc_przelotow);
	
	
	
	
	
// cena druku I strony
if (document.calc.formaty.value==1) {
                j=0
                } else {
                j=2
                }
document.calc.arkusz_1str_cena.value=ceny_naklady[stateChecker(document.calc.zakres)][stateChecker(document.calc.strona1)+j]

// cena druku II strony
if (document.calc.strona2[2].checked==true) {
document.calc.arkusz_2str_cena.value=0
        } else {
                if (document.calc.formaty.value==1) {
                j=0
                } else {
                j=2
                }
 document.calc.arkusz_2str_cena.value=ceny_naklady[stateChecker(document.calc.zakres)][stateChecker(document.calc.strona2)+j]
}
		
// koszt papieru
if (document.calc.formaty.value==0) {
zeruj()
} else {
document.calc.papier_cena.value=ceny_papiery[parseInt(document.calc.papiery.value)][parseInt(document.calc.formaty.value)]
}

// koszt druku arkusza
document.calc.cena_arkusza.value=Math.round(10*(eval(document.calc.arkusz_1str_cena.value)+eval(document.calc.arkusz_2str_cena.value)+eval(document.calc.papier_cena.value)))/10

// koszty introligatorni:
// ciecie
if (document.calc.intro_big.checked==true && document.calc.intro_bigow.value>1)
document.calc.intro_ciecie.checked=true

if ((document.calc.intro_ciecie.checked==true && document.calc.uzytek_arkusz.value>4)||(document.calc.uzytek_arkusz.value>1 && document.calc.intro_big.checked==true && document.calc.intro_bigow.value>1)) {
document.calc.intro_ciecie_cena.value=Math.ceil(document.calc.wyliczony_naklad_arkuszy.value/25)*cena_ciecie_25ark

if (document.calc.intro_ciecie_cena.value>maks_cena_ciecie) 
document.calc.intro_ciecie_cena.value=maks_cena_ciecie
}
else
			{
			document.calc.intro_ciecie_cena.value=0
			}


// pokazuje uwagę o cięciu
uwaga_ciecie();

// bigowanie
if ((document.calc.intro_big.checked==true)&&(document.calc.intro_bigow.value>0)) {
document.calc.intro_big_cena.value=document.calc.wyliczony_naklad_arkuszy.value*document.calc.uzytek_arkusz.value*document.calc.intro_bigow.value*0.20
} else {
document.calc.intro_big_cena.value=0
}
// foliowanie
if (document.calc.intro_folia.value!=0) {
temp_cena_foliowania=(document.calc.intro_folia.value*document.calc.intro_folia_strony.value*document.calc.wyliczony_naklad_arkuszy.value);
if (temp_cena_foliowania<50) {
	document.calc.intro_folia_cena.value=50
} else {
	document.calc.intro_folia_cena.value=temp_cena_foliowania
}
} else {
document.calc.intro_folia_cena.value=0
}

// podsumowanie introligatorni
document.calc.intro_razem_cena.value=Math.round(10*(eval(document.calc.intro_ciecie_cena.value)+eval(document.calc.intro_big_cena.value)+eval(document.calc.intro_folia_cena.value)))/10;

// pomnóż cenę arkusza przez sztuki i dodaj introligatornię
document.calc.wynik.value=Math.round(10*((document.calc.cena_arkusza.value*document.calc.wyliczony_naklad_arkuszy.value)+eval(document.calc.intro_razem_cena.value)))/10;
document.calc.cena_za_uzytek.value=Math.round(10*(document.calc.wynik.value/document.calc.wyliczony_naklad_uzytkow.value))/10;
}

////////////////////////////////////////
// sekcja obliczająca ceny wizytówek /////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////
function oblicz_cene_wiz(){
zbadaj_min_naklady(rozmiary_wiz(), naklad_wizytowek[rozmiary_wiz()][document.calc.naklad_wizytowek_dropdown.selectedIndex] ,kolorystyka_wiz());

// wylicz wynikowy nakład w arkuszach
wyliczony_naklad_arkuszy=naklad_wizytowek[stateChecker(document.calc.rozmiar_wiz)][document.calc.naklad_wizytowek_dropdown.value]/wiz_arkusz[stateChecker(document.calc.rozmiar_wiz)];

// wylicz wynikowy nakład w przelotach
if (stateChecker(document.calc.strona2)>0) {
	wyliczona_ilosc_przelotow=2*wyliczony_naklad_arkuszy
	} else {
	wyliczona_ilosc_przelotow=wyliczony_naklad_arkuszy
}
	
// ustaw odpowiedni zakres cenowy	
indeks_nakladu = wybierz_indeks_nakladu(wyliczona_ilosc_przelotow);
	
// I strona
if (document.calc.strona1[0].checked == true) {
        cena_druku_Istr=ceny_naklady[indeks_nakladu][4];
        } 
if (document.calc.strona1[1].checked==true) {
        cena_druku_Istr=ceny_naklady[indeks_nakladu][3];
        }		

// II strona
if (document.calc.strona2[0].checked==true) {
        cena_druku_IIstr=ceny_naklady[indeks_nakladu][4];
        } 
if (document.calc.strona2[1].checked==true) {
        cena_druku_IIstr=ceny_naklady[indeks_nakladu][3];
        } 
if (document.calc.strona2[2].checked==true) {
        cena_druku_IIstr=0;
        }
//window.alert("I strona: " + cena_druku_Istr + " - II strona: " + cena_druku_IIstr);

// koszt papieru
cena_papieru=ceny_papiery[stateChecker(document.calc.papier)][3];
//window.alert("Papier: " + cena_papieru);

// ciecie
if ((Math.ceil(wyliczony_naklad_arkuszy/25)*cena_ciecie_25ark) > maks_cena_ciecie)
{
cena_ciecia=maks_cena_ciecie
}
else
{
cena_ciecia=Math.ceil(wyliczony_naklad_arkuszy/25)*cena_ciecie_25ark
}

document.calc.wynik.value=Math.round(10*(wyliczony_naklad_arkuszy*(cena_druku_Istr+cena_druku_IIstr+cena_papieru)+cena_ciecia))/10
}

////////////////////////////////////////
// sekcja obliczająca ceny produktów /////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////

function pokaz_parametry(par_index) {
	if (par_index!=0) { 
	document.getElementById('Ilosci_dropdown').style.visibility="visible";
	document.getElementById('InfoIlosc').style.visibility="visible";
	for (var i=0;i<produkty[par_index]['Ilosci'].length;i++) {
	document.calc.Ilosci_dropdown.options[i] = null;
	var optname = new Option(produkty[par_index]['Ilosci'][i],i);
	document.calc.Ilosci_dropdown.options[i]=optname
	}
	document.calc.Ilosci_dropdown.options[0].selected= true;
	document.getElementById('InfoIlosc').innerHTML=produkty[par_index]['Info'][1];
	document.getElementById('Opis').innerHTML=produkty[par_index]['Info'][2]
	}
	else
	{
	document.getElementById('Ilosci_dropdown').style.visibility="hidden";
	document.getElementById('InfoIlosc').style.visibility="hidden";
	document.getElementById('Opis').style.visibility="hidden";

	}
	}

function oblicz_cene_produktu(par_produkt,par_index) {
	if (par_produkt!=0)
	document.calc.wynik.value = produkty[par_produkt]['Narzad']+produkty[par_produkt]['Ceny'][par_index];
	else
	document.calc.wynik.value = 0
	
}
