/**
* Pěkně naformátuje cenu. Z "1000.2" udělá "1000,20 Kč".
* Vstupy:
* cena = číslo
* mena = řetězec. Undefined = "Kč".
* vzdyHalire = boolean určující, zda se mají vypsat halíře i v případě, kdy číslo je na celé koruny (tj. false je "1000 Kč", true je "1000,00 Kč".) Desetinné ceny se vypisují s halíři vždy.
*/
function eshopPrelozCenu(cena,mena,vzdyHalire) {
	if (mena===undefined) mena="Kč";
	if (mena) mena=" "+mena;
	if (!eshopData) {
		eshopData={"desetinnaMista":2}
	}
	var halire=cena%1;	
	halire*=Math.pow(10,eshopData.desetinnaMista);
	halire=Math.round(halire);
	halire/=Math.pow(10,eshopData.desetinnaMista);
	halire*=100;
	if (halire=="100") {
		cena++;
		halire=0;
	}
	if (halire<10) halire=halire+"0";	
	
	var cele=Math.floor(cena);
	if (cele>999999) {
		var druha=new String(Math.floor(cele%1000000/1000));
		var treti=new String(cele%1000);
		while (druha.length<3) druha="0"+druha;
		while (treti.length<3) treti="0"+treti;
		cele=Math.floor(cele/1000000)+"."+druha+"."+treti;
	}
	if (cele>999) {
		var druha=new String(cele%1000);
		while (druha.length<3) druha="0"+druha;
		cele=Math.floor(cele/1000)+"."+druha;
	}

	var vrat=cele;
	if (vzdyHalire || (halire && halire!="00")) vrat+=","+halire;
	vrat+=mena;
	return vrat;
}

/**
* Od čísla cena odpočídá dan procent.
*/
function eshopBezDane(cena,dan) {
	return Math.round(cena*10000/(100+dan))/100;
}

/**
* K číslu cena přičte dan procent.
*/
function eshopSDani(cena,dan) {
	return Math.round(cena*100*(100+dan)/100)/100;
}

var eshopData={cena:0, dan:0, mena:'', desetinnaMista: 0, modifikujici:[], modifikujiciPriplatky:0, mnozstevniPocty:[], mnozstevniCeny:[], mnozstevni:false, poleModifikujici:[], polePocet:[],poleCenaBez:[], poleCenaS:[], poleCenaCBez:[], poleCenaCS:[], poleCenaGet:[]};
function eshopZakladniData(cena,dan,mena,desetinnaMista) {
	eshopData.cena=cena;
	eshopData.dan=dan;
	eshopData.mena=mena;
	if (desetinnaMista) eshopData.desetinnaMista=desetinnaMista;
}
function eshopOznacPoleCenaGet(id) {
	var el=document.getElementById(id);
	if (el) eshopData.poleCenaGet.push(el);
}
function eshopOznacPolePocet(id) {
	var el=document.getElementById(id);
	if (el) {
		eshopData.polePocet.push(el);
		el.onkeyup=eshopPrepocet;
	}
}
function eshopOznacPoleCena(id,dan,celkove) {
	var el=document.getElementById(id);
	if (dan===undefined) dan=true;
	if (el) {
		if (dan && !celkove) eshopData.poleCenaS.push(el);
		if (!dan && !celkove) eshopData.poleCenaBez.push(el);		
		if (dan && celkove) eshopData.poleCenaCS.push(el);
		if (!dan && celkove) eshopData.poleCenaCBez.push(el);				
	}
}
function eshopDataModifikujici(idParametru,poleHodnot,poleZmen) {
	eshopData.modifikujici[idParametru]={hodnota:poleHodnot,zmena:poleZmen};
}
function eshopDataMnozstevniSlevy(polePoctu,poleSlev) {
	eshopData.mnozstevni=true;
	eshopData.mnozstevniPocty=polePoctu;
	eshopData.mnozstevniCeny=poleSlev;	
}
function oznacPoleModifikujici(idParam,prvek) {
	if (prvek!="select" && prvek!="radio") prvek="select";
	var name="param"+idParam;
	var zvolenaHodnota="";
	var el,i;
	if (prvek=="select") {
		el=filterAttr("select","name",name);
		if (el.length!=1) return;
		el=el[0];
		el.onchange=function() {
			eshopNastavMnozstevni();
			eshopPrepocet();
		}
	} else {
		el=filterAttr("input","name",name);
		if (el.length<1) return;
		for (i=0;i<el.length;i++) {
			el[i].onclick=function() {
				eshopNastavMnozstevni();
				eshopPrepocet();
			}
		}
	}
	eshopData.poleModifikujici.push({name:name, prvek:prvek, id:idParam});
}
function eshopNastavMnozstevni() {
	var i,j,prvek,name,el,vybranaHodnota,priplatek,idParam,celkemPriplatky;
	celkemPriplatky=0;
	for (i=0;i<eshopData.poleModifikujici.length;i++) {
		prvek=eshopData.poleModifikujici[i].prvek;
		name=eshopData.poleModifikujici[i].name;
		idParam=eshopData.poleModifikujici[i].id;
		vybranaHodnota="";
		priplatek=0;
		if (prvek=="select") {
			el=filterAttr("select","name",name);
			if (el.length!=1) return;
			el=el[0];
			vybranaHodnota=el.value;
		} else {
			el=filterAttr("input","name",name);
			if (el.length<1) return;
			for (j=0;j<el.length;j++) {
				if (el[j].checked) vybranaHodnota=el[j].value;
			}
		}
		for (j=0;j<eshopData.modifikujici[idParam].hodnota.length;j++) {
			if (eshopData.modifikujici[idParam].hodnota[j]==vybranaHodnota) priplatek=eshopData.modifikujici[idParam].zmena[j];
		}
		celkemPriplatky+=priplatek;
	}
	eshopData.modifikujiciPriplatky=celkemPriplatky;
}

function eshopPrepocet() {
	var pocet,i;
	var cena;
	if (!eshopData.polePocet[0]) pocet=1;
	else pocet=eshopData.polePocet[0].value;	
	if (!pocet || pocet*1===NaN) pocet=1;	
	cena=eshopData.cena;
	if (eshopData.mnozstevni) {
		for (i=0;i<eshopData.mnozstevniPocty.length;i++) {
			if (eshopData.mnozstevniPocty[i]<=pocet) cena=eshopData.mnozstevniCeny[i];
		}
	}
	cena+=eshopData.modifikujiciPriplatky;
	for (i=0;i<eshopData.poleCenaS.length;i++) {eshopData.poleCenaS[i].innerHTML=eshopPrelozCenu(cena,eshopData.mena);}
	for (i=0;i<eshopData.poleCenaBez.length;i++) {eshopData.poleCenaBez[i].innerHTML=eshopPrelozCenu(eshopBezDane(cena,eshopData.dan),eshopData.mena);}	
	for (i=0;i<eshopData.poleCenaCS.length;i++) {eshopData.poleCenaCS[i].innerHTML=eshopPrelozCenu(cena*pocet,eshopData.mena);}
	for (i=0;i<eshopData.poleCenaCBez.length;i++) {eshopData.poleCenaCBez[i].innerHTML=eshopPrelozCenu(eshopBezDane(cena,eshopData.dan)*pocet,eshopData.mena);}
	for (i=0;i<eshopData.poleCenaGet.length;i++) {eshopData.poleCenaGet[i].value=cena;}	
	return cena;
}
function eshopKosikAjax(zdroj) {
	var form=null;
	var i,kontrola=0;
	var kde=zdroj;
	var pouzitForm=true;
	while (true) {
		kde=kde.parentNode;
		if (kde.nodeName=="FORM") {
			form=kde;
			pouzitForm=true;
			break;
		}
		if (kde.nodeName=="BODY") {
			pouzitForm=false;
			break;
		}		
		kontrola++;
		if (kontrola>100) {return true;}
	}
	var data="";
	var cilove="";
	if (pouzitForm && form) {
		var ser=[];
		for (i=0;i<form.elements.length;i++) {
			var el=form.elements[i];
			if (!el.getAttribute("name")) continue;
			if (el.getAttribute("type")=="checkbox" || el.getAttribute("type")=="radio") {
				if (!el.checked) continue;
			}
			ser.push(el.getAttribute("name")+"="+encodeURIComponent(el.value));
		}
		ser.push("ajaxeshop=1");
		data=ser.join("&");
		cilove=form.action;
	} else {
		data="ajaxeshop=1";
		cilove=zdroj.href;
	}
		
	if (!cilove) return true;
	
	var zalZdrojValue=zdroj.value;
	var ajax = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false)); 
	if (!ajax) {
		return true;
	}
	
	var el=document.getElementById("hsman");
	if (el) el.parentNode.removeChild(el);
	el=document.createElement("div");
	el.setAttribute("id","hsman");
	document.body.appendChild(el);
	
	ajax.open("POST",cilove);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
	ajax.setRequestHeader("Content-length", data.length);
	ajax.setRequestHeader("Connection", "close");
	ajax.onreadystatechange=function() {
		if (ajax.readyState!=4) return;
		var vysledek=ajax.responseText;
		document.getElementById("hsman").innerHTML=vysledek;
		if (pouzitForm) zdroj.value=zalZdrojValue;

		var els,i;
		els=document.getElementById("ajaxformat_tabulka").getElementsByTagName("*");
		for (i=0;i<els.length;i++) {
			els[i].style.font="normal normal 12px Arial,sans-serif";
			els[i].style.background="white";
			els[i].style.color="#2f2f2f";
			els[i].style.textDecoration="none";
		}
		els=document.getElementById("ajaxformat_tabulka").getElementsByTagName("TD");
		for (i=0;i<els.length;i++) {
			els[i].style.padding="5px 8px 5px 8px";
			els[i].style.borderBottom="solid 1px #828282";
			els[i].style.borderRight="solid 1px #828282";
		}		
		els=document.getElementById("ajaxformat_tabulka").getElementsByTagName("TR");
		for (i=0;i<els.length;i++) {
			els[i].firstChild.style.textAlign="left";
		}
		els=document.getElementById("ajaxformat_nadpis_tabulky").getElementsByTagName("TD");
		for (i=0;i<els.length;i++) {
			els[i].style.backgroundColor="#b8b8b8";
			els[i].style.fontWeight="bold";
		}				
		
		el=document.getElementById("ajaxformat_nadpis_tabulky").lastChild.previousSibling;
		el.style.width='90px';
		el.previousSibling.style.width='90px';		
		el.previousSibling.previousSibling.style.width='60px';		
		
		els=document.getElementById("ajaxformat_zapati_tabulky").getElementsByTagName("TD");
		for (i=0;i<els.length;i++) {
			els[i].style.backgroundColor="#ededed";
			els[i].style.fontWeight="bold";		
		}				
		els=document.getElementById("ajaxformat_tabulka").getElementsByTagName("TR");	
		for (i=0;i<els.length;i++) {
			els[i].lastChild.style.display="none";
		}			
		els=document.getElementById("hsman").getElementsByTagName("A");
		for (i=0;i<els.length;i++) {
			els[i].onmouseover=function() {
				this.style.textDecoration="underline";
			}
			els[i].onmouseout=function() {
				this.style.textDecoration="none";
			}			
		}			

		return hs.htmlExpand(zdroj,{contentId:'hsman',width: 600/* ,slideshowGroup:"std", captionText: '', captionEval:''*/});
	}
	
	document.getElementById("hsman").style.display="none";
	ajax.send(data);
	if (pouzitForm) zdroj.value="Loading...";
	return false;
}


