﻿// global variables
var zpusobA = [];
var nadVodouA = [];
var cenaNadA = [];
var podVodouA = [];
var cenaPodA = [];
var blindsA = [];
var blindsPriceA = [];
var otherA = [];
var otherPriceA = []
var celkovaCena = [];
var textContent = "";

function GetUrlBase() {
	var result = window.location.toString().replace("http://","");
	result = result.substr(0,result.indexOf("/"));
	return result;
}

// **************************************************************************************************************************
// Getting data
// **************************************************************************************************************************

function LoadData()
{
    if (!ajaxLoadingData)
    {
        AjaxTransfer("http://"+GetUrlBase()+"/files/kalkulacka.xml");
        LoadDataProcess();
    }
    else
    {
        window.setTimeout("LoadData();", 10);
    }
}

function LoadDataProcess()
{
    if (!ajaxResultReady)
    {
        window.setTimeout("LoadDataProcess();", 10);
    }
    else
    {	
		// getting data
		// přidání položek nad vodou z XML do pole nadVodouA
		// přidání cen jednotlivých položek do pole cenaNadA
		var nadVodou = ajaxResultsXML.getElementsByTagName("UpperWater");
		for (var i = 0; i < nadVodou.length; i++) {
			var nadVodouName = nadVodou[i].attributes.getNamedItem("nazev").nodeValue;
			zpusobA.push(nadVodouName);
			var upW = ajaxResultsXML.getElementsByTagName("upw");
			for (var j = 0; j < upW.length; j++) {
				var upWName = upW[j].attributes.getNamedItem("nazev").nodeValue;
				nadVodouA.push(upWName);
				var cenaNad = upW[j].attributes.getNamedItem("cena").nodeValue;
				cenaNadA.push(cenaNad)
			}
		}
		// přidání položek pod vodou z XML do pole podVodouA
		// přidání cen jednotlivých položek do pole cenaPodA
		var podVodou = ajaxResultsXML.getElementsByTagName("UnderWater");
		for (var a = 0; a < podVodou.length; a++) {
			var podVodouName = podVodou[a].attributes.getNamedItem("nazev").nodeValue;
			zpusobA.push(podVodouName);
			var unW = ajaxResultsXML.getElementsByTagName("unw");
			for (var b = 0; b < unW.length; b++) {
				var unWName = unW[b].attributes.getNamedItem("nazev").nodeValue;
				podVodouA.push(unWName);
				var cenaPod = unW[b].attributes.getNamedItem("cena").nodeValue;
				cenaPodA.push(cenaPod);
			}
		}
		// přidání rolet z XML do pole blindsA
		// přidání cen jednotlivých rolet do pole blindsPriceA
		var blinds = ajaxResultsXML.getElementsByTagName("Blinds");
		for (var x = 0; x < blinds.length; x++) {
			var bl = ajaxResultsXML.getElementsByTagName("bl");
			for (var y = 0; y < bl.length; y++) {
				var blName = bl[y].attributes.getNamedItem("nazev").nodeValue;
				blindsA.push(blName);
				var cenaBl = bl[y].attributes.getNamedItem("cena").nodeValue;
				blindsPriceA.push(cenaBl);
			}
		}
		
		// získání dat z elementu OTHER v XML, jedná se o checkboxy
		var other = ajaxResultsXML.getElementsByTagName("Other");
		for (var c = 0; c < other.length; c++) {
			var otr = ajaxResultsXML.getElementsByTagName("otr");
			for (var d = 0; d < otr.length; d++) {
				var otrName = otr[d].attributes.getNamedItem("nazev").nodeValue;
				otherA.push(otrName);
				var cenaOtr = otr[d].attributes.getNamedItem("cena").nodeValue;
				otherPriceA.push(cenaOtr);
			}
		}
		
		// získání dat z elementu TEXT v XML
		var text = ajaxResultsXML.getElementsByTagName("Text");
		for (var t = 0; t < text.length; t++) {
			textContent = text[t].attributes.getNamedItem("value").nodeValue;
		}
		// definování jednotlivých selectů
		var system = document.getElementById("system");
		var volba = document.getElementById("volba");
		var roleta = document.getElementById("roleta");
		// přidání dat do selectů
		pridej(system,zpusobA);
		pridej(volba,nadVodouA);
		pridej(roleta,blindsA);
		zobrazSkryj();
		// přidání událostí k selectům
		if (typeof document.addEventListener != "undefined") {
			system.addEventListener("change",function() {if (system.value == zpusobA[0]) { pridej(volba,nadVodouA); zobrazSkryj(); } if (system.value == zpusobA[1]) { pridej(volba,podVodouA); zobrazSkryj(); }},false);
		}
		else {
			system.attachEvent("onchange",function() {if (system.value == zpusobA[0]) { pridej(volba,nadVodouA); zobrazSkryj(); } if (system.value == zpusobA[1]) { pridej(volba,podVodouA); zobrazSkryj(); }});
		}	

        ajaxResultReady = false;
        ajaxLoadingData = false;
    }
}

// funkce ktera pocita vsechny ceny a generuje stránky s přehledem cen
function spocitej() {
	// definice proměnných
	var system = document.getElementById("system");
	var roleta = document.getElementById("roleta").value;
	var delka = document.getElementById("delka").value;
	var sirka = document.getElementById("sirka").value;
	var obsah = parseFloat(delka) * parseFloat(sirka);
	var cenaMontaz = 0; // cena montaze
	var cenaS = 0; // cena systemu
	var cenaD = 0; // cena delene provedeni nad 6m sire
	var cenaK = 0; // cena kryti lamel
	var cenaVrtani = 0; // cena vrtani
	var vrtani = false;
	var id = "";
	celkovaCena = []; // definice pole pro celkovou cenu
	var cena;
	var umisteni = "";
	var roletaCena = 0; // cena rolet
	var zamereniCena = 0; // cena zaměření
	var prepravaCena = 0; //cena přepravy
	var balneCena = 0; // cena balného
	var tvarCena = 0;
	var cenaMontazNow = 0;
	var vystup = false;
	var naDotaz = false;
	
	//zaokrouhlení obsahu na 2 desetinná místa
	//obsah = Math.round(obsah);
	obsah = obsah.toFixed(2);
	
	// přidání ceny ze selectu volba
	// nad vodou
	if (system.value == zpusobA[0]) {
		var zdroj = document.getElementById("volba").value;
		for (var a = 0; a < nadVodouA.length; a++) {
			if (zdroj == nadVodouA[a]) {
				cena = cenaNadA[a];
				cenaS = cena;
			}
		}
		// pokud je vybraná poslední položka, zobrazí se cena na dotaz
		if (zdroj == nadVodouA[nadVodouA.length-1]) {
			cenaS = 0;
			naDotaz = true;
		}
		celkovaCena.push(cena);
		umisteni = "nad vodou";
		vrtani = false;
	}
	// pod vodou
	if (system.value == zpusobA[1]) {
		var zdroj = document.getElementById("volba").value;
		for (var b = 0; b < podVodouA.length; b++) {
			if (zdroj == podVodouA[b]) {
				cena = cenaPodA[b];
				cenaS = cena;
			} //*
		}
		// pokud je vybraná poslední položka, zobrazí se cena na dotaz
		if (zdroj == podVodouA[podVodouA.length-1]) {
			cenaS = 0;
			naDotaz = true;
		}
		celkovaCena.push(cena);
		umisteni = "pod vodou";
		vrtani = true;
	}
	// přidání ceny ze selectu rolety
	// pokud nejsou vyplněny hodnoty, zobrazí se varovná hláška
	if (delka != "" && sirka != "") {
		if (isNaN(delka) == false && isNaN(sirka) == false) {
			vystup = true;
			for (var x = 0; x < blindsA.length; x++) {
				if (roleta == blindsA[x])
					cena = parseFloat(obsah) * parseFloat(blindsPriceA[x]);
					roletaCena = cena;
			}
		}
		else
			alert("Zadejte číselné hodnoty!\nHodnoty rozměru bazénu zadávejte ve formátu čísla s oddělením desetinných míst pomocí tečky!");
	}
	else {
		alert("Zadejte rozměry bazénu");
		vystup = false;
		cena = 0;
	}

	celkovaCena.push(cena);
	// přidání ceny z vybraných checkboxů
	// přiřazení cen do proměnných pro následné vygenerování přehledu cen
	var volba = document.forms[1]["other"];
	for (var i = 0; i < volba.length; i++) {
		if (volba[i].checked) {
			id = volba[i].id;
			for (var j = 0; j < otherA.length; j++) {
				if (system.value == zpusobA[0]) {
					// definice ceny krytu lamel nad vodou
					if (id == "krytLamel") {
						if (id == otherA[j]) {
							var cenaNew = parseFloat(otherPriceA[j]) * parseFloat(sirka);
							cenaK = cenaNew;
							celkovaCena.push(cenaNew); //?
						}
					}
				}

				if (system.value == zpusobA[1]) {
					// definice ceny krytu lamel nad vodou
					if (id == "krytDna") {
						if (id == otherA[j]) {
							var cenaNew = parseFloat(otherPriceA[j]) * parseFloat(sirka);
							cenaK = cenaNew;
							celkovaCena.push(cenaK); //?
						}
					}
					if (id == "vrtani") {
						if (id == otherA[j]) {
							cenaVrtani = otherPriceA[j];
						}
					}
				}
				if (id == "zamereni") {
					if (id == otherA[j]) {
						zamereniCena = otherPriceA[j];
					}
				}
				if (id == "balne") {
					if (id == otherA[j]) {
						balneCena = otherPriceA[j];
					}
				}
				if (id == "preprava") {
					if (id == otherA[j]) {
						prepravaCena = otherPriceA[j];
					}
				}
				if (id == "nepravidelnyTvar") {
					if (id == otherA[j]) {
						tvarCena = otherPriceA[j];
					}
				}
				if (id == otherA[j]) {
					if (otherA[j] == "krytLamel" || otherA[j] == "krytDna") {
						var cena = 0;
					}
					else
						var cena = otherPriceA[j];
				}
			}
			celkovaCena.push(cena);
			//celkovaCena.push(cenaNew);
		}
	}
	// montáž
	var montaz = document.getElementById("montaz");
	var deleneProvedeni = document.getElementById("deleneProvedeni");
	
	if (montaz.checked) {
		if (system.value == zpusobA[0]) {
			for (var q = 0; q < otherA.length; q++) {
				if (deleneProvedeni.checked) {
					id = deleneProvedeni.id;
					if (id == otherA[q]) {
						cenaD = otherPriceA[q];
					}
				}
			}
			cenaMontaz = parseFloat(cenaS) + parseFloat(cenaD) + parseFloat(cenaK);
			cenaMontazNow = Math.round(parseFloat(cenaMontaz) * parseFloat(0.10));
			celkovaCena.push(cenaMontazNow);
		}
	
		if (system.value == zpusobA[1]) {
			for (var q = 0; q < otherA.length; q++) {
				if (deleneProvedeni.checked) {
					id = deleneProvedeni.id;
					if (id == otherA[q]) {
						cenaD = otherPriceA[q];
					}
				}
			}
			cenaMontaz = parseFloat(cenaS) + parseFloat(cenaD) + parseFloat(cenaK);
			cenaMontazNow = Math.round(parseFloat(cenaMontaz) * parseFloat(0.18));
			celkovaCena.push(cenaMontazNow);
		}
	}
	// sečtení všech cen v poli celkovaCena
	var price = 0;
	var priceComplete = "";
	for (var z = 0; z < celkovaCena.length; z++) {
		price += parseFloat(celkovaCena[z]);
	}
	// nastavení cen s DPH, bez DPH
	var priceWithoutDPH = "";
	priceWithoutDPH = "<td>Celkem bez DPH:</td><td align=\"right\" colspan=\"3\">" + Math.round(price) + " Kč</td>";
	var priceDPH = parseFloat(price) * parseFloat("1.09");
	priceComplete = "<td><strong>Celkem s DPH 9%:</strong></td><td align=\"right\" colspan=\"3\"><strong>" + Math.round(priceDPH) + " Kč</strong></td>";
	// nastavení ceny na dotaz
	var systemValue = "";
	if (naDotaz) {
		systemValue = "<td>Navíjecí systém</td><td align=\"right\" colspan=\"3\">na dotaz</td>"
	}
	else
		systemValue = "<td>Navíjecí systém</td><td align=\"right\" colspan=\"3\">" + cenaS + " Kč</td>"
	
	// pokud jsou vyplněny rozměry bazénu, zobrazí se výstup
	if (vystup) {
	// získání aktuálního data
		var datumNow = new Date;
		var mesic = datumNow.getMonth()+1;
		var den = datumNow.getDate();
		var rok = datumNow.getFullYear();
		var datum = den + "." + mesic + "." + rok;
		// zobrazení nového okna s výsledky
		var newWindow = window.open("","_blank","width=650,height=600,scrollbars=1");
		newWindow.document.write("<html><head><title>Bazénová roleta Aspar " + umisteni + "</title></head><body>");
		newWindow.document.write("<div align=\"center\"><img src=\"http://" + GetUrlBase() + "/images/lista.jpg\" alt=\"hlavicka\" /></div>");
		newWindow.document.write("<h3>Cenová nabídka \"koncový uživatel\" ze dne " + datum + "</h3>");
		newWindow.document.write("<table width=\"100%\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\">");
		newWindow.document.write("<thead>Bazénová roleta Aspar " + umisteni + "</thead>");
		newWindow.document.write("<tr><td>Rozměr</td><td align=\"center\">Délka: " + delka + "</td><td align=\"center\">Šířka: " + sirka + "</td><td align=\"center\">Obsah: " + obsah + "</td></tr>");
		newWindow.document.write("<tr><td>Roleta " + roleta + "</td><td align=\"right\" colspan=\"3\">" + Math.round(roletaCena) + " Kč</td></tr>");
		newWindow.document.write("<tr>" + systemValue + "</tr>");
		//newWindow.document.write("<tr><td>Navíjecí systém</td><td align=\"right\" colspan=\"3\">" + cenaS + " Kč</td></tr>");
		newWindow.document.write("<tr><td>Kryt lamel</td><td align=\"right\" colspan=\"3\">" + Math.round(cenaK) + " Kč</td></tr>");
		newWindow.document.write("<tr><td>Zaměření</td><td align=\"right\" colspan=\"3\">" + Math.round(zamereniCena) + " Kč</td></tr>");
		newWindow.document.write("<tr><td>Balné tuzemsko nevratný obal</td><td align=\"right\" colspan=\"3\">" + Math.round(balneCena) + " Kč</td></tr>");
		newWindow.document.write("<tr><td>Přeprava po ČR</td><td align=\"right\" colspan=\"3\">" + Math.round(prepravaCena) + " Kč</td></tr>");
		newWindow.document.write("<tr><td>Příplatek za nepravidelný tvar lamel</td><td align=\"right\" colspan=\"3\">" + Math.round(tvarCena) + " Kč</td></tr>");
		newWindow.document.write("<tr><td>Dělené provedení nad 6m šíře</td><td align=\"right\" colspan=\"3\">" + Math.round(cenaD) + " Kč</td></tr>");
		if (vrtani) {
			newWindow.document.write("<tr><td>Vyvrtání prostupu stěnou pouze v případě montáže naší firmou  </td><td align=\"right\" colspan=\"3\">" + Math.round(cenaVrtani) + " Kč</td></tr>");
		}
		newWindow.document.write("<tr><td>Montáž</td><td align=\"right\" colspan=\"3\">" + Math.round(cenaMontazNow) + " Kč</td></tr>");
		newWindow.document.write("<tr>" + priceWithoutDPH + "</tr>");
		newWindow.document.write("<tr>" + priceComplete + "</tr>");
		newWindow.document.write("</table>");
		newWindow.document.write("<br /><p align=\"justify\" style=\"font-size:80%;\"><b>" + textContent + "</b></p><br />");
		newWindow.document.write("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"font-size:80%;\">");
		newWindow.document.write("<tr><td>Firma je zapsána u OR KOS v Brně , oddíl C, vložka 8590</td><td>Souhlasí s nabídkou a závazně objednává:</td></tr>");
		newWindow.document.write("<tr><td></td><td>Podpis:</td></tr>");
		newWindow.document.write("<tr><td>V případě, že souhlasíte s nabídkou, žádáme Vás o její potvrzení a zaslání zpět na FAX: 543330580, následně Vám zašleme proforma fa.</td><td>Razítko:</td></tr>");
		newWindow.document.write("<tr><td></td><td>Dne:</td></tr>");
		newWindow.document.write("</table><br />");
		newWindow.document.write("<form><input type=\"button\" onclick=\"print()\" value=\"Vytiskni\" />");
		newWindow.document.write("</body></html>");
	}
	
}

// funkce pro přidání dat do selectů
function pridej(zdroj,pole) {
	smazat(zdroj);
	for (var i = 0; i < pole.length; i++) {
		var item = document.createElement("option");
		item.setAttribute("value",pole[i]);
		zdroj.appendChild(item);
		item.appendChild(document.createTextNode(pole[i]));
	}
	zdroj.style.width = "200px";
}

// funkce pro mazání položek selectů
function smazat(zdroj) {
	var elementy = zdroj.getElementsByTagName("option");
	for (var i = 0; i < elementy.length; i++) {
		var el = elementy.item(i);
		el.parentNode.removeChild(el);
		--i;
	}
}

// funkce pro skrytí/zobrazení checkboxů podle systému (nad vodou / pod vodou)
function zobrazSkryj() {
	var zdroj = document.getElementById("system");
	var valueNad = document.getElementById("valueNad");
	var valuePod = document.getElementById("valuePod");
	var krytPod = document.getElementById("krytPod");
	if (zdroj.value == zpusobA[0]) {
		valueNad.style.display = "block";
		valuePod.style.display = "none";
		krytPod.style.display = "none";
	}
	if (zdroj.value == zpusobA[1]) {
		valueNad.style.display = "none";
		valuePod.style.display = "block";
		krytPod.style.display = "block";
	}
}