var xmlHttp;
var dokonceniDiv;
var vstupniPole;
var destinaceVyber;
var tabulkaJmen;
var tabulkaJmenTelo;

function vytvorXMLHttpRequest()
{
	if(window.ActiveXObject)
	{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if(window.XMLHttpRequest)
	{
		xmlHttp = new XMLHttpRequest();
	}
}

function inicializujPromenne()
{
	vstupniPole = document.getElementById("destinace");
	destinaceVyber = document.getElementById("destinaceVyber");
	destinaceVyber.value = "";
	tabulkaJmen = document.getElementById("tabulkaJmen");
	dokonceniDiv = document.getElementById("nabidka");
	tabulkaJmenTelo = document.getElementById("tabulkaJmenTelo");
}

sdiak = "áäčďéěíĺľňóô öŕšťúů üýřžÁÄČĎÉĚÍĹĽŇÓÔ ÖŔŠŤÚŮ ÜÝŘŽ";
bdiak = "aacdeeillnoo orstuu uyrzAACDEEILLNOO ORSTUU UYRZ";
function bezdiak(nazev)
{
  tx = "";
  txt = nazev;
  for(p = 0; p < txt.length; p++)
  {
    if (sdiak.indexOf(txt.charAt(p)) != -1)
    {
      tx += bdiak.charAt(sdiak.indexOf(txt.charAt(p)));
    }
    else tx += txt.charAt(p);
  }
  return tx;
} 

function vyhledejDestinace(jazyk)
{
	inicializujPromenne();
	if(vstupniPole.value.length > 2)
	{
		vytvorXMLHttpRequest();
		var url = "http://www.svetove-hotely.cz/"; 
    if (jazyk=='en') url = "http://www.ht-booking.com/";
    
		url = url + jazyk + "/get_destinace.php?destinace=" + bezdiak(vstupniPole.value);
    xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = zpracujZmenuStavu;
		xmlHttp.send(null);
	}
	else
	{
		vymazDestinace();
	}
}

function zpracujZmenuStavu()
{
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.status == 200)
		{
 			 if(typeof(xmlHttp.responseXML.getElementsByTagName("destinace")[0])!="undefined")
 			 {
          var destinace = xmlHttp.responseXML.getElementsByTagName("destinace")[0].firstChild.data;
          nastavDestinace(xmlHttp.responseXML.getElementsByTagName("destinace"));
       }
       else
       {
    			vymazDestinace();
       }
		}
		else if(xmlHttp.status == 204)
		{
			vymazDestinace();
		}
	}
}

function nastavDestinace(destinace)
{
	vymazDestinace();
	var velikost = destinace.length;
	nastavUmisteni();
	var rada, bunka, txtUzel;
  for(var i = 0; i < velikost; i++)
	{
		var dalsiUzel = destinace[i].firstChild.data;
		var dalsiUzel_value = destinace[i].getAttribute("value");
		rada = document.createElement("tr");
		bunka = document.createElement("td");
		bunka.onmouseout = function() {this.className='mouseOver';};
		bunka.onmouseover = function() {this.className='mouseOut';};
		bunka.setAttribute("bgcolor","#FFFAFA");
		bunka.setAttribute("vyber",dalsiUzel_value);
		bunka.onclick = function() {vyplnDestinaci(this);};
		txtUzel = document.createTextNode(dalsiUzel);
		bunka.appendChild(txtUzel);
		rada.appendChild(bunka);
		tabulkaJmenTelo.appendChild(rada);
	}
}

function nastavUmisteni()
{
	var konec = vstupniPole.offsetWidth;
	var levy = vypoctiUmisteniLevy(vstupniPole);
	var horni = vypoctiUmisteniHorni(vstupniPole) + vstupniPole.offsetHeight;
	//dokonceniDiv.style.border = "black 1px solid";
	//dokonceniDiv.style.left = levy + "px";
	//dokonceniDiv.style.top = horni + "px";
	tabulkaJmen.style.width = konec + "px";
}

function vypoctiUmisteniLevy(pole)
{
	return vypoctiUmisteni(pole, "offsetLeft");
}

function vypoctiUmisteniHorni(pole)
{
	return vypoctiUmisteni(pole, "offsetTop");
}

function vypoctiUmisteni(pole, atribut)
{
	var umisteni = 0;
	while(pole)
	{
		umisteni += pole[atribut];
		pole = pole.offsetParent;
	}
	return umisteni;
}

function vyplnDestinaci(bunka)
{
	vstupniPole.value = bunka.firstChild.nodeValue.substr(0,(bunka.firstChild.nodeValue.length - 3));
	destinaceVyber.value = bunka.getAttribute('vyber');
	vymazDestinace();
}

function vymazDestinace()
{
	var velikost = tabulkaJmenTelo.childNodes.length;
	for(var i = velikost - 1; i >= 0; i--)
	{
		tabulkaJmenTelo.removeChild(tabulkaJmenTelo.childNodes[i]);
	}
	dokonceniDiv.style.border = "none";
}

var vstupniPoleOkoli;
var tabulkaOkoli;

function vytvorXMLHttpRequest()
{
	if(window.ActiveXObject)
	{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if(window.XMLHttpRequest)
	{
		xmlHttp = new XMLHttpRequest();
	}
}

function inicializujPromenneOkoli()
{
	for(i = 0; i < document.getElementById("okoli_distance").length; i++)
	{
		if(document.getElementById("okoli_distance")[i].selected)
		{
			vstupniPoleOkoli = document.getElementById("okoli_distance")[i].value;
		}
	}
	tabulkaOkoli = document.getElementById("okoli");
}

function vyhledejOkoli(jazyk)
{
	inicializujPromenneOkoli();
	//if(vstupniPoleOkoli.value.length > 0)
	{
		vytvorXMLHttpRequest();
		var url = "http://test.svetove-hotely.cz/" + jazyk + "/get_okoli.php?hotel=" + bezdiak(vstupniPoleOkoli);
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = zpracujZmenuStavuOkoli;
		xmlHttp.send(null);
	}
	//else
	{
	//	vymazOkoli();
	}
}

function zpracujZmenuStavuOkoli()
{
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.status == 200)
		{
			nastavOkoli(xmlHttp.responseXML.getElementsByTagName("okoli"));
		}
		else if(xmlHttp.status == 204)
		{
			vymazOkoli();
		}
	}
}

function nastavOkoli(okoli)
{
	vymazOkoli();
	var velikost = okoli.length;
	var rada, bunka, txtUzel;
	for(var i = 0; i < velikost; i++)
	{
		var dalsiUzel = okoli[i].firstChild.data;
		var dalsiUzel_value = okoli[i].getAttribute("value");
		rada = document.createElement("li");
		bunka = document.createElement("a");
		bunka.setAttribute("href",dalsiUzel_value);
		txtUzel = document.createTextNode(dalsiUzel);
		bunka.appendChild(txtUzel);
		rada.appendChild(bunka);
		tabulkaOkoli.appendChild(rada);
	}
}

function vymazOkoli()
{
	var velikost = tabulkaOkoli.childNodes.length;
	for(var i = velikost - 1; i >= 0; i--)
	{
		tabulkaOkoli.removeChild(tabulkaOkoli.childNodes[i]);
	}
}

function inicializujPromenneHotely()
{
	vstupniPole = document.getElementById("destinaceHotely");
	destinaceVyber = document.getElementById("destinaceHotelyVyber");
	destinaceVyber.value = "";
	tabulkaJmen = document.getElementById("tabulkaJmenHotely");
	dokonceniDiv = document.getElementById("nabidkaHotely");
	tabulkaJmenTelo = document.getElementById("tabulkaJmenTeloHotely");
}

function vyhledejDestinaceHotely(jazyk)
{
	inicializujPromenneHotely();
	if(vstupniPole.value.length > 0)
	{
		vytvorXMLHttpRequest();
		var url = "http://test.svetove-hotely.cz/" + jazyk + "/get_hotely.php?hotel=" + bezdiak(vstupniPole.value);
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = zpracujZmenuStavuHotely;
		xmlHttp.send(null);
	}
	else
	{
		vymazDestinace();
	}
}

function zpracujZmenuStavuHotely()
{
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.status == 200)
		{
 			 if(typeof(xmlHttp.responseXML.getElementsByTagName("destinace")[0])!="undefined")
 			 {
          var destinace = xmlHttp.responseXML.getElementsByTagName("destinace")[0].firstChild.data;
          nastavDestinaceHotely(xmlHttp.responseXML.getElementsByTagName("destinace"));
       }
       else
       {
    			vymazDestinaceHotely();
       }
		}
		else if(xmlHttp.status == 204)
		{
			vymazDestinaceHotely();
		}
	}
}

function nastavDestinaceHotely(destinace)
{
	vymazDestinaceHotely();
	var velikost = destinace.length;
	nastavUmisteniHotely();
	var rada, bunka, txtUzel;
	for(var i = 0; i < velikost; i++)
	{
		var dalsiUzel = destinace[i].firstChild.data;
		var dalsiUzel_value = destinace[i].getAttribute("value");
		rada = document.createElement("tr");
		bunka = document.createElement("td");
		bunka.onmouseout = function() {this.className='mouseOver';};
		bunka.onmouseover = function() {this.className='mouseOut';};
		bunka.setAttribute("bgcolor","#FFFAFA");
		bunka.setAttribute("vyber",dalsiUzel_value);
		bunka.onclick = function() {vyplnDestinaciHotely(this);};
		txtUzel = document.createTextNode(dalsiUzel);
		bunka.appendChild(txtUzel);
		rada.appendChild(bunka);
		tabulkaJmenTelo.appendChild(rada);
	}
}

function nastavUmisteniHotely()
{
	var konec = vstupniPole.offsetWidth;
	var levy = vypoctiUmisteniLevyHotely(vstupniPole);
	var horni = vypoctiUmisteniHorniHotely(vstupniPole) + vstupniPole.offsetHeight;
	//dokonceniDiv.style.border = "black 1px solid";
	dokonceniDiv.style.left = levy + "px";
	dokonceniDiv.style.top = horni + "px";
	tabulkaJmen.style.width = konec + "px";
}

function vypoctiUmisteniLevyHotely(pole)
{
	return vypoctiUmisteniHotely(pole, "offsetLeft");
}

function vypoctiUmisteniHorniHotely(pole)
{
	return vypoctiUmisteniHotely(pole, "offsetTop");
}

function vypoctiUmisteniHotely(pole, atribut)
{
	var umisteni = 0;
	while(pole)
	{
		umisteni += pole[atribut];
		pole = pole.offsetParent;
	}
	return umisteni;
}

function vyplnDestinaciHotely(bunka)
{
	vstupniPole.value = bunka.firstChild.nodeValue.substr(0,(bunka.firstChild.nodeValue.length - 3));
	destinaceVyber.value = bunka.getAttribute('vyber');
	vymazDestinaceHotely();
}

function vymazDestinaceHotely()
{
	var velikost = tabulkaJmenTelo.childNodes.length;
	for(var i = velikost - 1; i >= 0; i--)
	{
		tabulkaJmenTelo.removeChild(tabulkaJmenTelo.childNodes[i]);
	}
	dokonceniDiv.style.border = "none";
}
