﻿var select_stat;
var select_kraj;
var select_okres;

function stat_changed()
{
	napln_kraj();
	napln_okres();
	vyber_okresy();
}

function kraj_changed()
{
	napln_okres();
	vyber_okresy();
}

function okres_changed()
{
	vyber_okresy();
}

function init_napln()
{
	select_stat=document.getElementById("stat");
	select_kraj=document.getElementById("kraj");
	select_okres=document.getElementById("okres");

	select_stat.onchange=stat_changed;
	select_kraj.onchange=kraj_changed;
	select_okres.onchange=okres_changed;

	for (var a=0;a<mapa_str.cast.length;a++)
		for (var b=0;b<mapa_str.cast[a].kraj.length;b++)
			mapa_str.cast[a].kraj[b].divize=a;

	napln_stat();
	napln_kraj();
	napln_okres();

	var kraj=getNiceUrlParameter(document.location.href,"oblast");
	if (kraj!=null)
		show_mapa_okresy(Number(kraj));
}

function napln_stat()
{
	for (var a=0;a<kontakty_str.stat.length;a++)
		createOption(select_stat,kontakty_str.stat[a].divId,kontakty_str.stat[a].title);
}

function napln_kraj()
{
	var stat_data=kontakty_str.stat[select_stat.selectedIndex].kraj;
	
	selectClear(select_kraj);
	createOption(select_kraj,0,"");

	for (var a=0;a<stat_data.length;a++)
		createOption(select_kraj,stat_data[a].divId,stat_data[a].title);
}

function napln_okres()
{
	var stat_data=kontakty_str.stat[select_stat.selectedIndex].kraj;
	var data;
	if (select_kraj.selectedIndex==0)
		data=stat_data;
	else
	{
		data=new Array();
		data[0]=stat_data[select_kraj.selectedIndex-1];
	}
	
	selectClear(select_okres);
	createOption(select_okres,0,"");

	var sorted_data=new Collection();

	for (var a=0;a<data.length;a++)
		for (var b=0;b<data[a].okres.length;b++)
			sorted_data.Add(data[a].okres[b]);

	sorted_data.Sort(okres_sort);

	var sd_count=sorted_data.Count();
	for (var a=0;a<sd_count;a++)
	{
		var okres=sorted_data.Get(a);
		createOption(select_okres,okres.divId,okres.title);
	}

	/*for (var a=0;a<data.length;a++)
		for (var b=0;b<data[a].okres.length;b++)
			createOption(select_okres,data[a].okres[b].divId,data[a].okres[b].title);*/
}

function okres_sort(first,second)
{
	return strComp(first.title,second.title);
}

function selectClear(select)
{
	while (select.childNodes.length!=0)
		select.removeChild(select.childNodes[0]);
}

function createOption(select,value,text)
{
	var opt=document.createElement("OPTION");
	if (Br.IE)
		select.add(opt);
	else
		select.appendChild(opt);

	opt.value=value;
	opt.text=text;
}

function showElement(id)
{
	var el=document.getElementById(id);
	if (el!=null)
		el.style.display="block";
}

function hideElement(id)
{
	var el=document.getElementById(id);
	if (el!=null)
		el.style.display="none";
}

function vyber_okresy()
{
	hide_okresy_a_divize();

	if ((select_kraj.selectedIndex==0)&&(select_okres.selectedIndex==0))
		return;

	if (select_kraj.selectedIndex!=0)
	{
		var kr=kontakty_str.stat[select_stat.selectedIndex].kraj[select_kraj.selectedIndex-1];
		if (kr.divize!=null)
			showDivize(kr.divize);
	}

	var data;
	if (select_okres.selectedIndex==0)
		data=select_okres.childNodes;
	else
	{
		data=new Array();
		data[0]=new function()
		{
			this.value=select_okres.value;
		}
	}

	for (var a=0;a<data.length;a++)
	{
		var div=document.getElementById("okres"+data[a].value);
		if (div!=null)
			if (div.style!=null)
				div.style.display="block";
	}
}

function show_mapa_okresy(cast)
{
	hide_okresy_a_divize();

	var data=mapa_str.cast[cast].kraj;

	for (var a=0;a<data.length;a++)
		for (var b=0;b<data[a].okres.length;b++)
		{
			var div=document.getElementById("okres"+data[a].okres[b].divId);
			if (div!=null)
				if (div.style!=null)
					div.style.display="block";
		}

	showDivize(cast);
}

function showDivize(divize)
{
	showElement("divize"+divize);
}

function hide_okresy_a_divize()
{
	hideElementChildren("okresy");
	hideElementChildren("divize");
}

function hideElementChildren(id)
{
	var div_okresy=document.getElementById(id);
	for (var a=0;a<div_okresy.childNodes.length;a++)
		if (div_okresy.childNodes[a].style!=null)
			div_okresy.childNodes[a].style.display="none";
}