/*
 *   © Marek Mojzík
 *     29.09.2009
 */

var Nastaveni = {
	rychlostNajeti: 17,
	rychlostOdjeti: 8,
	prevodAdresyNaJS: function(adresa, typ)
	{
		// tato funkce generuje adresy na datové skripty z hrefu odkazu
		//return "http://localhost/In-pocasi-new/script/interactive-map/kraj.js.php?id=" + (adresa.match(/\?data=([^&]+)/))[1] + "";
		if (typ == "mesto"){
			return "http://www.in-pocasi.cz/script/interactive-map/mesto.js.php?id=" + (adresa.match(/\?data=([^&]+)/))[1] + "";
		}
		return "http://www.in-pocasi.cz/script/interactive-map/" + (adresa.match(/\?data=([^&]+)/))[1] + ".js";
	}
}


var element = function(id)
{
	return document.getElementById(id);
};

loadScript = function(url, typ)
{
	url = Nastaveni.prevodAdresyNaJS(url, typ);
	var s = document.createElement("script");
	//alert(url);
	s.src = url;
	document.getElementsByTagName("head")[0].appendChild(s);
};

for(var i = 2; i < 4; i++)
{
	document.write('<div id="map-state' + i + '">\
		<a href="/" class="map-zavrit" onclick="return !zavrit();">Zavřít</a>\
	</div>');
}

(function()
{
	var s1 = element("map-state1");
	var area = s1.getElementsByTagName("area");
	var select = document.createElement("select");
	for(var i = 0, a; a = area[i]; i++)
	{
		a.div = document.createElement("div");
		a.div.className = "mapa-cr";
		a.div.style.backgroundPosition = -i * 592 + "px";
		a.stav = 0;
		a.smer = 0;
		s1.appendChild(a.div);
		var animace = function(a)
		{
			a.stav += a.smer;
			if(a.stav > 100 || a.stav < 0)
			{
				a.smer = 0;
				a.stav = Math.max(0, Math.min(100, a.stav));
			}
			try {
			if(typeof a.div.style.opacity != "undefined")
			{
				a.div.style.opacity = a.stav / 100;
			}
			else if(a.div.filters)
			{
				a.div.style.filter = "alpha(opacity=" + a.stav + ")";
			}
			} catch(e){
				a.smer *= 10;
			}
			a.div.style.display = (a.stav == 0) ? "" : "block";
			a.timeout = a.smer && setTimeout(function() { animace(a) }, 50);
		}
		a.onmouseover = a.onfocus = function()
		{
			var a = this;
			a.smer = Nastaveni.rychlostNajeti;
			if(!a.timeout) animace(a);
		};
		a.onmouseout = a.onblur = function()
		{
			var a = this;
			a.smer = -Nastaveni.rychlostOdjeti;
			if(!a.timeout) animace(a);
		};
		a.onclick = function()
		{
			this.option.selected = true;
			this.select.refresh();
			loadScript(this.href, "kraj");
			return false;
		};
		a.select = select;
		a.option = document.createElement("option");
		a.option.value = a.href;
		a.option.text = a.title;
		try
		{
			select.add(a.option);
		}
		catch(e)
		{
			select.add(a.option, null);
		}
	}
	element("map-state2").appendChild(select);
	select.onchange = function()
	{
		loadScript(this.options[this.selectedIndex].value, "kraj");
	};

	var zavoj = document.createElement("div");
	zavoj.className = "zavoj";
	element("map-state3").appendChild(zavoj);

})()
var zavrit0 = function() { return true; };
var zavrit1 = zavrit0;
var zavrit2 = zavrit0;
var zavrit = zavrit0;
var state2 = function(param)
{
	zavrit1();
	element("map-state1").style.display = "none";
	element("map-state2").style.display = "block";
	element("map-state2").style.backgroundImage = "url('/img/" + param.image + ".png')";
	element("map-state3").style.backgroundImage = "url('/img/" + param.image + ".png')";

	var div = document.createElement("div");
	div.className = "map-state2-mesta";
	element("map-state2").appendChild(div);
	var selectMesta = document.createElement("select");
	selectMesta.id = "set-city";

	var select = document.createElement("select");
	var o = document.createElement("option");
	o.text = "Další města";
	o.value = "";
	try
	{
		selectMesta.add(o);
	}
	catch(e)
	{
		selectMesta.add(o, null);
	}
	for(var i = 0, m; m = param.mesta[i]; i++)
	{
		var a = document.createElement("a");
		a.href = m.odkaz;
		a.innerHTML = "<span>" + m.jmeno + "</span><b></b>";
		if(!m.x && !m.y)
		{
			var o = document.createElement("option");
			o.text = m.jmeno;
			o.value = a.href;
			o.a = a;
			try
			{
				selectMesta.add(o);
			}
			catch(e)
			{
				selectMesta.add(o, null);
			}
		}
		else
		{
			a.style.left = m.x + "px";
			a.style.top = m.y + "px";
			a.onclick = function()
			{
				this.option.selected = true;
				this.select.refresh();
				loadScript(this.href, "mesto");
				return false;
			};
			div.appendChild(a);
			a.select = select;
		}
		a.option = document.createElement("option");
		a.option.text = m.jmeno;
		a.option.value = a.href;
		try
		{
			select.add(a.option);
		}
		catch(e)
		{
			select.add(a.option, null);
		}
	}
	element("map-state3").appendChild(select);
	select.onchange = function()
	{
		loadScript(this.options[this.selectedIndex].value, "mesto");
	};
	createPseudoSelect(select);

	if(selectMesta.options.length > 1)
	{
		div.appendChild(selectMesta);
		selectMesta.onchange = function()
		{
			this.options[this.selectedIndex].a.option.selected = true;
			select.refresh();
			loadScript(this.options[this.selectedIndex].value, "mesto");
		};
		createPseudoSelect(selectMesta);
	}


	zavrit1 = function()
	{
		element("map-state1").style.display = "";
		element("map-state2").style.display = "";
		element("map-state2").removeChild(div);
		select.pseudoSelect.parentNode.removeChild(select.pseudoSelect);
		zavrit = zavrit0;
		zavrit1 = zavrit0;
		return true;
	}
	zavrit = zavrit1;
}

state3 = function(param)
{
	zavrit2();
	element("map-state2").style.display = "";
	element("map-state3").style.display = "block";
	element("map-reklama").style.display = "none";

	var div = document.createElement("div");
	div.className = "map-state3-pocasi";
	element("map-state3").appendChild(div);

	var h = ["<table>"], h2 = ["<tr><th class=\"dalsi-dny\">Další dny"];
	h.push("<tr><th class=\"mesto\"><span>" + param.nazev + "</span><th>Ráno<th>Dopoledne<th>Odpoledne<th>Noc");
	for(var i = 0, d; d = param.dny[i]; i++)
	{
		if(i < 2)
		{
			h.push("<tr><th class=\"den\"><b>" + d.den + "</b><br>" + d.teplota);
			for(var j = 0; j < 4; j++) h.push("<td><img src=\"/ikony/" + d.obrazek[j] + ".png\">");
		}
		else
		{
			h.push("<th class=\"dalsi-den\"><b>" + d.den + "</b><br>" + d.teplota);
			h2.push("<td><img src=\"/ikony/" + d.obrazek + ".png\">");
		}
		if(i == 1) h.push("</table><table><tr><th class=\"mesto\">")
	}
	h.push(h2.join(""));
	h.push("</table>");
	div.innerHTML = h.join("");

	zavrit2 = function()
	{
		element("map-state2").style.display = "block";
		element("map-state3").style.display = "";
		element("map-state3").removeChild(div);
		element("map-reklama").style.display = "";
		zavrit = zavrit1;
		zavrit2 = zavrit0;
		return true;
	}
	zavrit = zavrit2;
}
