// JavaScript Document
<!--
var barvaMark='#99ff99';	//barva zvyraznene polozky
//globalni promenne, pres ktere funkce spolu komunikuji
var propVlastnosti='';
var propDrevina='';
var propTloustka='';
var propKvalita='';
var opennedPopup='';
var simpleObjekt=''; //pomocna promenna, pomoci niz si POPUP funkce predavaji jmeno objektu, u ktereho se bude menit hodnota
var tempNumber='';

//trida ceniku dle formatu desky
function CformatCena(drevina, min_delka, max_delka, cena)
{
	this.drevina=drevina;
	this.min_delka=min_delka;
	this.max_delka=max_delka;
	this.cena=cena;
}

//trida priplatku
function CpriplatekCena(nazev, hodnota, cena)
{
	this.nazev=nazev;
	this.hodnota=hodnota;
	this.cena=cena;
}

//stara se o zpracovani vyberu polozky v popup nabidce - je volana z inputu eventem onClick
function simpleSelect(jmenoElem, propName){
	pole=document.getElementsByTagName('span');	//ziska seznam vsech elementu s tagem SPAN
	for(i=0; i<pole.length; i++){	
		if(pole[i].id.substr(0, jmenoElem.length-2)==jmenoElem.substr(0, jmenoElem.length-2)){
			pole[i].style.backgroundColor="";	//ze seznamu elementu se vyberou jen ty, ktere patri do id "jmenoElem" a nastavni prazdny background
		}
	}
	document.getElementById(jmenoElem).style.backgroundColor=barvaMark;	//element, na kterem bylo klepnuto se zvyrazni
	//window.status=jmenoElem+'*'+simpleObjekt.id;
	
	simpleObjekt.value=document.getElementById(jmenoElem).firstChild.data;	//nastavi se prislusny input vybranou hodnotou
	
	//osetreni vstupu - kdyz je vybrany typ dvirek "plna", musi se nastavit vypln na "ne"
	if(jmenoElem=='provedeniSel0')	//jestli byla vybrana prvni (vychozi) hodnota provedeni dvirek (=plna)
	{
		index=simpleObjekt.id.match(/\d+/); //zjisti, o kolikaty input v tabulce se jedna
		document.getElementById('vypln'+index).value=document.getElementById('vyplnSel0').firstChild.data; //nastavi se "vypln" taky na vychozi (-); pozn. plna dvirka nemuzou mit nastavenu zadnou vypln
	}
	
	//osetreni vstupu - kdyz je vybrana vypln, automaticky se prepne typ na nejblizsi "ramova", pokud je typ nastaven na "plna"
	if(jmenoElem.match(/\D+/)=='vyplnSel')
	{
		if(jmenoElem.match(/\d+/)>0)
		{
			
			index=simpleObjekt.id.match(/\d+/);
			if(document.getElementById('provedeni'+index).value.substr(0,3)=='pln') document.getElementById('provedeni'+index).value=document.getElementById('provedeniSel1').firstChild.data;
		}
	}
	//window.status=jmenoElem.match(/\D+/);
	
	if(!simpleObjekt.readOnly) //pokud nastavovany input neni readonly, nastavi se na nej fokus
	{
		simpleObjekt.focus();
	}
	
	if(tempNumber!='') //pokud obsahuje hodnotu, je pozadovan prepocet metru
	{
		metryCtverecni(tempNumber);
		tempNumber='';
	}
	else vypocetCeny();
		
	
	popupClose(opennedPopup);	//a popup se skryje
}

//stara se o oznaceni vybrane polozky v popup vyberu vlastnosti id "jmenoElem" a nastaveni hidden inputu "jmenoPromenne"
function propertySelect(jmenoElem, propName){
	pole=document.getElementsByTagName('span');	//ziska seznam vsech elementu s tagem SPAN
	for(i=0; i<pole.length; i++){	
		if(pole[i].id.substr(0, jmenoElem.length-2)==jmenoElem.substr(0, jmenoElem.length-2)){
			pole[i].style.backgroundColor="";	//ze seznamu elementu se vyberou jen ty, ktere patri do id "jmenoElem" a nastavni prazdny background
		}
	}
	document.getElementById(jmenoElem).style.backgroundColor=barvaMark;	//element, na kterem bylo klepnuto se zvyrazni
	//window.status=document.getElementById(jmenoElem).firstChild.data;
	
	switch(propName)
	{
		case 'drevina':
		tempObjekt=propDrevina;
		break;
		case 'tloustka':
		tempObjekt=propTloustka;
		break;
		case 'kvalita':
		tempObjekt=propKvalita;
		break;
	}
	tempObjekt.value=document.getElementById(jmenoElem).firstChild.data;
	propVlastnosti.value=propDrevina.value+', '+propTloustka.value+', '+propKvalita.value;
}

//zvyrazni polozku, ktera se rovna promenne 'hodnota' (soucasna hodnota)
function propertyMark(jmenoElem, hodnota)
{
	pole=document.getElementsByTagName('span');	//ziska seznam vsech SPAN elementu
	for(i=0; i<pole.length; i++){	
		if(pole[i].id.substr(0, jmenoElem.length-2)==jmenoElem.substr(0, jmenoElem.length-2)){
			if(pole[i].firstChild.data==hodnota)	//ber jen ty, ktere patri do pozadovane skupiny id
				pole[i].style.backgroundColor=barvaMark;	//vybranou polozku zvyrazni
			else
				pole[i].style.backgroundColor='';	//ostatni zustanou bez zvyrazneni
		}
	}
}

//zobrazi popup okno pro zobrazovani obrazku
function picturePopup(jmenoElem, obrazekId, obrazekSoubor)
{
	obj=document.getElementById(jmenoElem);
	document.getElementById(obrazekId).src=obrazekSoubor;
	obj.style.visibility='visible'; //ma-li byt viditelny, ukaz jej
	obj.style.left=curX+10; obj.style.top=curY+10;	//a v miste kolem kurzoru
}
		
//zobrazi popup okno 
function simplePopup(jmenoElem, idname, cisloPolozky)
{
	if(opennedPopup!='') popupClose(opennedPopup); //pokud je otevrene nejake okno, nejdrive jej skryj
	opennedPopup=jmenoElem; //ulozi se jmeno vrstvy pro pouziti v dalsim skriptu
	obj=document.getElementById(jmenoElem);	//vezmi objekt
	obj.style.visibility='visible'; //zobraz jej
	obj.style.left=curX+10; obj.style.top=curY+10;	//v miste kolem kurzoru
	
	if(cisloPolozky!='') simpleObjekt=document.getElementById(idname+cisloPolozky); //objekt predavaci promenne
	else simpleObjekt=document.getElementById(idname); //objekt predavaci promenne
	//window.status=simpleObjekt.value;
	propertyMark(idname, simpleObjekt.value); //zvyrazni soucasnou hodnotu v nabidce
	
	//pokud se zadava delka, priprav prepocet metru ctverecnich
	if(jmenoElem=='stddPopup') tempNumber=cisloPolozky; //do docasne promenne dej cislo prave zpracovavane polozky;
		
}

//zobrazi popup okno zobrazujici vlastnosti polozky
function propertyPopup()
{
	if(opennedPopup!='') popupClose(opennedPopup); //pokud je otevrene nejake okno, nejdrive jej skryj
	opennedPopup='vlPopup'; //ulozi se jmeno vrstvy pro pouziti v dalsim skriptu
	obj=document.getElementById('vlPopup');	//vezmi objekt
	obj.style.visibility="visible";	//zobraz jej - popup okno se ukaze
	obj.style.left=curX+10;	obj.style.top=curY-150; 	//v miste kolem kurzoru
	
	propVlastnosti=document.getElementById('vlastnosti');	//objekt promenne "vlastnosti" polozky
	propDrevina=document.getElementById('drevina');	//objekt promenne "drevina" polozky
	propTloustka=document.getElementById('tloustka'); //objekt promenne "tloustka" polozky
	propKvalita=document.getElementById('kvalita');	//objekt promenne "kvalita" polozky
	
	kontrola=0;
	if(propDrevina.value==''){ //pokud je vlastnost drevina prazdna,
		drev=document.getElementById('drevina').value; //zjisti naposled pouzitou hodnotu
		propDrevina.value=drev; //a nastav hidden input teto polozky
		kontrola++;
	}
	if(propTloustka.value==''){ //pokud je vlastnost tloustka prazdna,
		tl=document.getElementById('tloustka').value; //zjisti naposled pouzitou hodnotu
		propTloustka.value=tl; //a nastav hidden input teto polozky
		kontrola++;
	}
	if(propKvalita.value==''){ //pokud je vlastnost kvalita prazdna,
		kval=document.getElementById('kvalita').value; //zjisti naposled pouzitou hodnotu
		propKvalita.value=kval; //a nastav hidden input teto polozky 
		kontrola++;
	}
	
	propertyMark('drevina', propDrevina.value);
	propertyMark('tloustka', propTloustka.value);
	propertyMark('kvalita', propKvalita.value);
	
	if(kontrola==3){	//pole vlastnosti se bude nastavovat, jen pokud probehla inicializace vsech 3 vlastnosti
		propVlastnosti.value=drev+', '+tl+', '+kval;
	}
}

//skryje popup okno zobrazujici vlastnosti polozky
function popupClose(jmenoElem)
{
	if(jmenoElem=='') return;
	document.getElementById(jmenoElem).style.visibility="hidden";
}

var curX=0;
var curY=0;
//obsluha sledovani kurzoru - zjistuje pozici absolutne k viewportu browseru
function kurzor(cur)
{
	if(typeof event=='undefined'){	//neumis 'event', nejsi IE
		curX=cur.clientX;
		curY=cur.clientY;
	}
	else{
		curX=event.clientX;
		curY=event.clientY;
	}
}
document.onmousemove=kurzor;

//kontroluje input behem zadavani, jine znaky nez numericke odstrani
function numberOnly(jmenoElem)
{
	retezec=jmenoElem.value;
	jmenoElem.value=retezec.replace(/\D+/, '');
	
	scitaniHodnot('kusy', 'mnozstvi');
}

//zaokrouhli cislo na urceny pocet desetinnych mist - num=cislo, dec=pocet mist
function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

//vypocita cenu za m2 podle ceniku
function vypocetCeny()
{
	var soucet=0;
	var priplatkySoucet=0;
	priplatekOpracovani=0; priplatekPovrch=0; priplatekProvedeni=0; priplatekVypln=0;
	priplatekPolodrazka=0; priplatekListy=0; priplatekPanty=0; priplatekBalne=0;
	
	var drevina=document.getElementById('drevina0').value; //ziskej nazev dreviny z formu
	var aElementy=document.getElementsByName('delka[]');	//vytvor si seznam vsech jednotek delky z formu

	//pripravi se zaklad vsech priplatku - vyberou se hodnoty z ceniku, podle parametru objednavky
	zakladDoprava=Number(navyseni(document.getElementById('doprava').value, 'doprava', Cpriplatky));
	
	zakladTloustka=navyseni(document.getElementById('tloustka0').value, 'tloustka', Cpriplatky);
	zakladKvalita=navyseni(document.getElementById('kvalita0').value, 'kvalita', Cpriplatky);
	zakladBalne=(navyseni(document.getElementById('typ').value, 'balne', Cpriplatky));
	
	//vypocitaji se priplatky uctovane na ramova dvirka v jednotka/kus
	if(document.getElementById('typ').value==2) //priplatky pouze u dvirek
	{
		zakladOpracovani=navyseni(document.getElementById('opracovani0').value, 'opracovani', Cpriplatky);
		zakladPovrch=navyseni(document.getElementById('povrch0').value, 'povrch', Cpriplatky);
		zakladPolodrazka=Number(navyseni(document.getElementById('polodr0').value, 'polodrazka', Cpriplatky));
		zakladListy=Number(navyseni(document.getElementById('listy0').value, 'listy', Cpriplatky));
		zakladPanty=Number(navyseni(document.getElementById('panty0').value, 'panty', Cpriplatky));
	
		priplatekPolodrazka=kusovky(zakladPolodrazka);
		priplatekListy=kusovky(zakladListy);
		priplatekPanty=soucetElementu('mnozstvi[]')*zakladPanty;
	}

	//sectou se metry, celkova cena za formaty a priplatky uctovane v jednotka/m2 
	for(i=0; i<aElementy.length; i++)
	{
		if(document.getElementById('typ').value==2) //priplatky pouze u dvirek
		{
			zakladProvedeni=navyseni(document.getElementById('provedeni'+i).value, 'provedeni', Cpriplatky);
			zakladVypln=navyseni(document.getElementById('vypln'+i).value, 'vypln', Cpriplatky);
		}
		
		for(j=0; j<Cceny.length; j++) //pocet polozek v ceniku
		{	
			if(drevina == Cceny[j].drevina && aElementy[i].value > Number(Cceny[j].min_delka) && Number(aElementy[i].value) <= Cceny[j].max_delka)
			{
				metry=document.getElementById('sirka'+i).value*document.getElementById('delka'+i).value*document.getElementById('mnozstvi'+i).value/1000000; //metry ctverecni polozky - nezaokrouhlene
				
				cenaPolozka=Number(Cceny[j].cena)*metry; //cena formatu jedne polozky v tabulce
				document.getElementById('metry'+i).title=cenaPolozka; //do bubliny cenu polozky
				
				priplatekTloustka=priplatek(cenaPolozka, zakladTloustka, metry); //priplatek za tloustku
				priplatekKvalita=priplatek(cenaPolozka, zakladKvalita, metry); //priplatek za kvalitu
				
				if(document.getElementById('typ').value==2) //priplatky pouze u dvirek
				{
					priplatekProvedeni=priplatek(cenaPolozka, zakladProvedeni, metry); //priplatek za plna/ramova dvirka
					priplatekVypln=priplatek(cenaPolozka, zakladVypln, metry); //priplatek za vypln
				}
				
				soucet+=cenaPolozka; //vysledna cena za formaty
				priplatkySoucet+=priplatekTloustka+priplatekKvalita+priplatekPovrch+priplatekProvedeni+priplatekVypln; //vysledna cena za priplatky
			}
		}
	}
	
	celkoveMetry=soucetElementu('metry'); //celkovy soucet metru
	if(document.getElementById('typ').value==2){
		priplatekOpracovani=priplatek(soucet, zakladOpracovani, celkoveMetry); //priplatek za opracovani
		priplatekPovrch=priplatek(soucet, zakladPovrch, celkoveMetry); //priplatek za povrchovou upravu
	}
	window.status=zakladBalne+'*'+celkoveMetry;
	priplatekBalne=priplatek(soucet, zakladBalne, celkoveMetry); //priplatek za baleni
	
	priplatkySoucet+=priplatekPovrch+zakladDoprava+priplatekPolodrazka+priplatekListy+priplatekPanty+priplatekOpracovani+priplatekBalne; //pripocitaji se zbyle priplatky
	
	document.getElementById('cena').value=Math.round(soucet+priplatkySoucet);
	domInnerText(document.getElementById('cena_celkem'), Math.round(soucet+priplatkySoucet)); //zobraz celkovou cenu
}

//
function kusovky(zaklad)
{
	vratit=0;
	var aKusovky=document.getElementsByName('mnozstvi[]');
	for(i=0; i<aKusovky.length; i++)
	{
		if(document.getElementById('provedeni'+aKusovky[i].id.match(/\d+/)).value.substr(0, 3)!='pln')
		{
			vratit+=aKusovky[i].value*zaklad;
		}
	}
	return vratit;
}

//zjisti hodnotu priplatku
function navyseni(vyber, skupina, aSeznamPriplatku)
{
	aPriplatek=new Array();
	priplatek_seskup(skupina, Cpriplatky, aPriplatek);
	vratit=aPriplatek[0].cena;
	for(n=0; n<aPriplatek.length; n++)
	{
		if(aPriplatek[n].hodnota==vyber) vratit=aPriplatek[n].cena; //podle hodnoty vyber priplatek
	}
	return vratit;
}

//Vypocita castku priplatku. Pokud je za priplatkem znak %, pricita se procentualni hodnota. Scitanec obsahuje cislo ze ktereho se pripadne vypocita procentualni hodnota
function priplatek(scitanec, priplatek, metry)
{
	sign=1;
	if(priplatek.substr(0, 1)=='-') sign=-1; 
	if(priplatek.substr(priplatek.length-1, 1)=='%') priplatek=scitanec/100*priplatek.match(/\d+/);
	else priplatek=priplatek.match(/\d+/)*metry;
	return priplatek*sign;
}

//z pole priplatku vybere stejne polozky dle nazvu, vrati nove pole
function priplatek_seskup(nazev, zdroj, pole)
{
	for(p=0; p<zdroj.length; p++)
	{
		if(zdroj[p].nazev==nazev) pole.push(new CpriplatekCena(nazev, zdroj[p].hodnota, zdroj[p].cena));
	}
}

//zpocita celkove metry ctverecni prave zmenene polozky
function metryCtverecni(idnumber)
{
	metry=(document.getElementById('sirka'+idnumber).value*document.getElementById('delka'+idnumber).value*document.getElementById('mnozstvi'+idnumber).value)/1000000;
	document.getElementById('metry'+idnumber).value=metry; //napln hidden input presnou hodnotou
	document.getElementById('mround'+idnumber).value=roundNumber(metry, 4); //napln viditelny readonly input zaokrouhlenou hodnotou
	
	scitaniHodnot('soucet_metru', 'metry');
	vypocetCeny();
}

//secte ciselne hodnoty vsech inputu, ktere maji v id retezec 'jmeno'
function soucetElementu(jmeno)
{
	var soucet=0;
	elementy=document.getElementsByTagName('input');	//ziska seznam vsech elementu s tagem INPUT
	for(i=0; i<elementy.length; i++){	
		if(elementy[i].id.substr(0, jmeno.length-2)==jmeno.substr(0, jmeno.length-2)){
			soucet=soucet+Number(elementy[i].value);	//ze seznamu elementu se vyberou jen ty, ktere patri do id "jmeno" a prictou se
		}
	}
	return soucet;
}

//secte celkovy pocet hodnot vsech polozek, ktere maji v nazvu 'jmenoElem'. hodnotu ulozi do ciloveho elementu s nazvem 'cil' se zaokrouhlenim na 2 desetinna mista
function scitaniHodnot(cil, jmenoElem)
{
	domInnerText(document.getElementById(cil), roundNumber(soucetElementu(jmenoElem), 2));
}

//nastavi akci a odesle form
function odeslat(akce)
{
	//window.status=document.getElementById('cena').value;
	document.getElementById('akce').value=akce;
	document.getElementById('form1').submit();	
}

function odeslatKontrola(akce, zkontrolujElem, hlaseni)
{
	if(document.getElementById(zkontrolujElem).value==''){
		alert(hlaseni);
		return;
	}
	document.getElementById('akce').value=akce;
	document.getElementById('form1').submit();	
}

//vyzada si potvrzeni a v pozitivnim pripade nastavi akci a odesle form
function potvrdit(akce, hlaseni)
{
	if(confirm(hlaseni)){
		document.getElementById('akce').value=akce;
		document.getElementById('form1').submit();
	}
}

function potvrditLink(akce, soubor, hlaseni)
{
	if(confirm(hlaseni)){
		document.getElementById('akce').value=akce;
		document.getElementById('soubor').value=soubor;
		document.getElementById('form1').submit();
	}
}

function provedLink(akce, soubor)
{
	document.getElementById('akce').value=akce;
	document.getElementById('soubor').value=soubor;
	document.getElementById('form1').submit();
}

//nahrazuje innerText nefunkcni v mozille
//pouziti - domInnerText(document.getElementById('varpopis'), "text");
function domInnerText(node, text)
{
	while (node.hasChildNodes()){
		node.removeChild(node.firstChild);
	}
	node.appendChild(document.createTextNode(text));
}

//zajistuje odemceni tlacitka pro odeslani objednavky az po souhlasu s podminkami
function allowSend(isenable, parentelem)
{
	if(parentelem.checked && isenable>0){
		document.getElementById('sendbtn').disabled=false;
	}else{
		document.getElementById('sendbtn').disabled=true;
	}
}

//podpora dynamickeho nacitani javascriptu 
/*function dhtmlLoadScript(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e);
}

/*onload = function()
{
   dhtmlLoadScript("dhtml_way.js");
}*/
-->
