
var okr_nab = cE('div');
okr_nab.style.display = 'none';
setOpacity(okr_nab, 95);
okr_nab.className = 'okresy_nabidka';
var hideTimer = null;

var reg_req = null;
var kraje = null;
var okresy = null;
var obce = null;



function hide_timer() {
	okr_nab.style.display = 'none';
	if (hideTimer != null) {
		clearTimeout(hideTimer);
		hideTimer = null;
	}
}

function hide_okr_nab() {
	if ((hideTimer == null) && (okr_nab.style.display != 'none')) {
		hideTimer = setTimeout('hide_timer()', 10);
	}
}

function okr_nabClick() {
	changeSelection(this.kod, this.nazev);
	return false;
}

function changeSelection(kod, nazev) {
	kod += '';
	if (kod.match(/^[A-Z]{2}[0-9]{3}$/)) {
		kraje[kod] = typeof kraje[kod] != 'string' ? nazev : null;
		if (kraje[kod] != null) {
			for (var i in okresy)
				if ((i.search(kod) == 0) && (okresy[i] != null))
					okresy[i] = null;
		}
	} else if (kod.match(/^[A-Z]{2}[0-9]{3}[0-9,A-Z]{1}$/)) {
		okresy[kod] = typeof okresy[kod] != 'string' ? nazev : null;
		if (okresy[kod] != null) {
			var nuts3 = kod.substr(0,5);
			if (typeof kraje[nuts3] == 'string')
				kraje[nuts3] = null;
		}
	} else if (kod.match(/^[A-Z]{2}[0-9]{3}[0-9A-Z]{1}[0-9]{6}$/)) {
		obce[kod] = typeof obce[kod] != 'string' ? nazev : null;
	} else if (kod == '0') {
		var found = false;
		for (var i in obce[0])
			if (obce[0][i] == nazev) {
				found = true;
				break
			}
		if (found)
			obce[0].splice(i, 1);
		else
			obce[0][obce[0].length] = nazev;
	} else return false;
	selectionVizSynchronize(kod, nazev);
}

function create_span(kod, nazev) {
	var sp = cE('span');
	var txtNaz = cT(nazev);
	aC(sp, txtNaz);
	sp.kod = kod;
	sp.nazev = nazev;
	sp.onclick = okr_nabClick;
	return sp;
}

function selectionVizSynchronize(kod, nazev) {
	var found = false;
	var kr = gI('sel_kraje');
	var ok = gI('sel_okresy');
	var ob = gI('sel_obce');
	var nolimit = gI('no_limit');
	var i = 0;
	if (kod.match(/^[A-Z]{2}[0-9]{3}$/)) {
		for (i=0; i < kr.childNodes.length; i++) {
			if ((typeof kr.childNodes[i].kod != 'undefined') && (kr.childNodes[i].kod == kod)) {
				found = true;
				break;
			}
		}
		if (found) {
			rC(kr, kr.childNodes[i]);
		} else {
			aC(kr, create_span(kod, nazev));
			i = ok.childNodes.length-1;
			while (i >= 0) {
				if ((typeof(ok.childNodes[i].kod) != 'undefined') && (ok.childNodes[i].kod.search(kod) == 0))
					rC(ok, ok.childNodes[i]);
				i -= 1;
			}
		}
		if (okr_nab.firstChild) {
			if (okr_nab.firstChild.firstChild.kod == kod)
				okr_nab.firstChild.firstChild.className = kraje[kod] != null ? 'sel' : '';
			if (kraje[kod] != null) {
				var obj = okr_nab.lastChild.childNodes;
				for (i=0; i < obj.length; i++)
					if ((typeof(obj[i].firstChild.kod) != 'undefined') && (obj[i].firstChild.kod.search(kod) == 0))
						obj[i].firstChild.className = '';
			}
		}
	} else if (kod.match(/^[A-Z]{2}[0-9]{3}[0-9A-Z]{1}$/)) {
		for (i=0; i < ok.childNodes.length; i++) {
			if ((typeof ok.childNodes[i].kod != 'undefined') && (ok.childNodes[i].kod == kod)) {
				found = true;
				break;
			}
		}
		if (found) {
			rC(ok, ok.childNodes[i]);
		} else {
			aC(ok, create_span(kod,nazev));
			i = kr.childNodes.length-1;
			while (i >= 0) {
				if ((typeof(kr.childNodes[i].kod) != 'undefined') && (kr.childNodes[i].kod == kod.substr(0,5)))
					rC(kr, kr.childNodes[i]);
				i -= 1;
			}
		}
		if (okr_nab.firstChild) {
			if (okr_nab.firstChild.firstChild.kod == kod.substr(0,5))
				okr_nab.firstChild.firstChild.className = '';
			var obj = okr_nab.lastChild.childNodes;
			for (i=0; i < obj.length; i++)
				if ((typeof(obj[i].firstChild.kod) != 'undefined') && (obj[i].firstChild.kod == kod))
					obj[i].firstChild.className = okresy[kod] != null ? 'sel' : '';
		}
	} else if (kod.match(/^[A-Z]{2}[0-9]{3}[0-9A-Z]{1}[0-9]{6}$/)) {
		for (i=0; i < ob.childNodes.length; i++) {
			if ((typeof ob.childNodes[i].kod != 'undefined') && (ob.childNodes[i].kod == kod)) {
				found = true;
				break;
			}
		}
		if (found) {
			rC(ob, ob.childNodes[i]);
		} else {
			aC(ob, create_span(kod, nazev));
		}
	} else if (kod == '0') {
		for (i=0; i < ob.childNodes.length; i++) {
			if ((typeof ob.childNodes[i].nazev != 'undefined') && (ob.childNodes[i].nazev == nazev)) {
				found = true;
				break;
			}
		}
		if (found) {
			rC(ob, ob.childNodes[i]);
		} else {
			aC(ob, create_span(kod,nazev));
		}
	} else return false;
	kr.parentNode.className = kr.childNodes.length == 0 ? '' : 'show';
	ok.parentNode.className = ok.childNodes.length == 0 ? '' : 'show';
	ob.parentNode.className = ob.childNodes.length == 0 ? '' : 'show';

	if ((kr.childNodes.length == 0) && (ok.childNodes.length == 0) && (ob.childNodes.length == 0))
		nolimit.className = '';
	else nolimit.className = 'hide';
}

function click_region(event, nuts3, obj) {
	okr_nab.style.display = 'none';
	while (okr_nab.childNodes.length > 0)
		rC(okr_nab, okr_nab.lastChild);
	var p = cE('p');
	var a = cE('a');
	a.kod = nuts3;
	a.href = '';
	a.nazev = obj.alt;
	a.onclick = okr_nabClick;
	var b = cE('b');
	var naz = cT('celý kraj '+obj.alt);
	if (typeof kraje[nuts3] == 'string')
		a.className = 'sel';
	aC(a, b);
	aC(a, naz);
	aC(p, a);
	var ul = cE('ul');
	var li = cE('li');
	var litxt = cT('načítám data ...');
	aC(li, litxt);
	aC(ul, li)
	aC(okr_nab, p);
	aC(okr_nab, ul);

	var st = getPageScrollTop();
	okr_nab.style.left = (event.clientX+st[0]-10)+'px';
	okr_nab.style.top = (event.clientY+st[1]-10)+'px';
	if ((okr_nab.parentNode == null) || ((okr_nab.parentNode != null) && (okr_nab.parentNode != document.body))) {
		aC(document.body, okr_nab);
	}

	if (reg_req && (reg_req.readyState != 0)) RPCcancel(reg_req);
	reg_req = RPCinit();
	if (!reg_req) return false;

	reg_req.onreadystatechange = function() { reg_getData(reg_req) };
	reg_req.open('POST', baseURL+'/rpc/address.php', true);
	reg_req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	reg_req.send('akce=okresy&kraj='+nuts3);

	okr_nab.style.display = 'block';
	if (hideTimer != null) {
		clearTimeout(hideTimer);
		hideTimer = null;
	}
}

function reg_getData(r) {
	if (r.readyState == 4) {
		try {
			if (r.status && (r.status == 200) && r.responseText) {
				if (r.responseText.replace(' ', '') != '') {
					rC(okr_nab.lastChild,okr_nab.lastChild.firstChild)
					var opts = r.responseText.split('#');
					for (var i = 0; i < opts.length; i++) {
						var ar = opts[i].split('|');
						var el = cE('li');
						var a = cE('a');
						a.href='';
						var atxt = cT('okr. '+ar[1])
						var b = cE('b');
						aC(a, b);
						aC(a, atxt);
						if (typeof okresy[ar[0]] == "string")
							a.className = 'sel';
						a.kod = ar[0];
						a.nazev = ar[1];
						a.onclick = okr_nabClick;
						aC(el, a);
						aC(okr_nab.lastChild, el);
					}
				}
			}
		} catch(e) { }
	}
}

function addButton(id) {
	var obj = gI(id);
	if ((typeof obj != 'undefined') && (typeof obj.kod != 'undefined') && (obj.value.replace(' ','') != ''))
		changeSelection(obj.kod != '' ? obj.kod : 0, obj.value);
}

function addInput(name, value) {
	var inp = cE('input');
	inp.type='hidden';
	inp.name = name;
	inp.value = value;
	return inp;
}

function addLocName(name) {
	var sp = cE('span');
	sp.className='lok nowrap';
	sp.innerHTML = name;
	return sp;
}

function sendForm(obj) {
	var i;
	var cnt = 0;
	for (i in kraje)
		if (typeof kraje[i] == 'string')
			aC(obj, addInput('kr['+(cnt++)+']', i));
	cnt = 0;
	for (i in okresy)
		if (typeof okresy[i] == 'string')
			aC(obj, addInput('okr['+(cnt++)+']', i));
	cnt = 0;
	for (i in obce[0])
		if (typeof obce[0][i] == 'string')
			aC(obj, addInput('ob['+(cnt++)+']', obce[0][i]));
	for (i in obce)
		if (typeof obce[i] == 'string')
			aC(obj, addInput('ob['+(cnt++)+']', i));
}

function init_array(trg, data) {
	var items_arr = data.split('#');
	for (var i = 0; i < items_arr.length; i++) {
		var arr = items_arr[i].split('|');
		if (arr[0] != '0')
			trg[arr[0]] = arr[1];
		else {
			if (typeof trg[0] == 'undefined')
				trg[0] = new Array();
			trg[0][trg[0].length] = arr[1];
		}
	}
}

function init_display() {
	var kr = gI('sel_kraje');
	var ok = gI('sel_okresy');
	var ob = gI('sel_obce');
	var nolimit = gI('no_limit');
	var i;
	for (i in this.kraje)
		if (typeof kraje[i] == 'string') {
			aC(kr, create_span(i, kraje[i]));
		}
	for (i in this.okresy)
		if (typeof okresy[i] == 'string')
			aC(ok, create_span(i, okresy[i]));
	for (i in obce)
		if (typeof obce[i] == 'string')
			aC(ob, create_span(i, obce[i]));
	for (i in obce[0])
		if (typeof obce[0][i] == 'string')
			aC(ob, create_span(0, obce[0][i]));
	var shown = false;
	if (kr.childNodes.length > 0) {
		shown = true;
		kr.parentNode.className = 'show';
	}
	if (ok.childNodes.length > 0) {
		shown = true;
		ok.parentNode.className = 'show';
	}
	if (ob.childNodes.length > 0) {
		shown = true;
		ob.parentNode.className = 'show';
	}
	if (shown) {
		nolimit.className = 'hide';
	}
}

function lokalita_init() {
	kraje = new Array();
	if ((typeof kraje_init != 'undefined') && (kraje_init != ''))
		init_array(kraje, kraje_init);
	okresy = new Array();
	if ((typeof okresy_init != 'undefined') && (okresy_init != ''))
		init_array(okresy, okresy_init);
	obce = new Array();
	if ((typeof obce_init != 'undefined') && (obce_init != ''))
		init_array(obce, obce_init);
	init_display();
}

function search() {
	var frm = gI('search_form');
	var elm = frm.getElementsByTagName('input');

	var del = new Array();
	for (var i = 0; i < elm.length; i++) {
		if (elm[i].name.match(/^kr\[|okr\[|ob\[/))
			del[del.length] = elm[i];
	}
	for (i = 0; i < del.length; i++)
		rC(del[i].parentNode, del[i]);
	del = null;

	var cnt = 0;
	for (i in kraje)
		if (typeof kraje[i] == 'string')
			aC(frm, addInput('kr['+(cnt++)+']', i));
	cnt = 0;
	for (i in okresy)
		if (typeof okresy[i] == 'string')
			aC(frm, addInput('okr['+(cnt++)+']', i));
	cnt = 0;
	for (i in obce[0])
		if (typeof obce[0][i] == 'string')
			aC(obj, addInput('ob['+(cnt++)+']', obce[0][i]));
	for (i in obce)
		if (typeof obce[i] == 'string')
			aC(frm, addInput('ob['+(cnt++)+']', i));

	var but = gI('search_but');
	if (but) {
		but.click();
	}
}

function set_location() {
	var frm = gI('popt_form');
	var elm = frm.getElementsByTagName('input');
	var loc = gI('loc_field');
	loc.innerHTML = '';

	var del = new Array();
	for (var i = 0; i < elm.length; i++) {
		if (elm[i].name.match(/^kr\[|okr\[|ob\[/))
			del[del.length] = elm[i];
	}
	for (i = 0; i < del.length; i++)
		rC(del[i].parentNode, del[i]);
	del = null;

	var cnt = 0;
	kraje_init = '';
	for (i in kraje) {
		if (typeof kraje[i] == 'string') {
			aC(frm, addInput('kr['+(cnt++)+']', i));
			aC(loc, addLocName('kraj '+kraje[i]));
			kraje_init += (kraje_init != '' ? '#' : '')+i+'|'+kraje[i];
		}
	}
	cnt = 0;
	okresy_init = '';
	for (i in okresy) {
		if (typeof okresy[i] == 'string') {
			aC(frm, addInput('okr['+(cnt++)+']', i));
			aC(loc, addLocName('okr. '+okresy[i]));
			okresy_init += (okresy_init != '' ? '#' : '')+i+'|'+okresy[i];
		}
	}
	cnt = 0;
	for (i in obce[0]) {
		if (typeof obce[0][i] == 'string') {
			aC(obj, addInput('ob['+(cnt++)+']', obce[0][i]));
			aC(loc, addLocName(obce[0][i]));
		}
	}
	obce_init = '';
	for (i in obce) {
		if (typeof obce[i] == 'string') {
			aC(frm, addInput('ob['+(cnt++)+']', i));
			aC(loc, addLocName(obce[i]));
			obce_init += (obce_init != '' ? '#' : '')+i+'|'+obce[i];
		}
	}

	if (loc.innerHTML == '') {
		aC(loc, addLocName('bez omezení'));
	}

	Overlay.OVRclose();
}

//WindowOnload(chci_koupit_init);
