var ZPelems;

function initZpristupnenePamatky()
{
	var ZPform = document.forms['pamatky-form'];
	if (!ZPform) return false;
	
	ZPelems = ZPform.elements;
	
	ZPelems['pamatky-kraj'].onchange = zmenOkresy;
	ZPelems['pamatky-okres'].disabled = false;//zaktivneni selectu s okresy
	zmenOkresy();
	
}

/* vraci values vsech vybranych options elementu select v poli */
function getSelectedValues(selectEl)
{
	var values = new Array();
	var x = 0;
	var i;
	var options = selectEl.options;
	for (i=0; i<options.length; i++) {
		if (options[i].selected) {
			values[x] = options[i].value;
			x++;
		}
	}
	return values;
}
/* vraci values vsech defaultne vybranych options elementu select v poli */
function getDefaultSelectedValues(selectEl)
{
	var values = new Array();
	var x = 0;
	var i;
	var options = selectEl.options;
	for (i=0; i<options.length; i++) {
		if (options[i].defaultSelected) {
			values[x] = options[i].value;
			x++;
		}
	}
	return values;
}

/* jako v php */
function inArray(value, array)
{
	var i;
	for(i=0; i<array.length; i++) {
		if (array[i] == value) return true;
	}
	return false;
}

function zmenOkresy()
{
	//nalezeni vsech selected options 
	var kraje_ids = getSelectedValues(ZPelems['pamatky-kraj']);
	if (kraje_ids.length == 0) kraje_ids[0] = 'all';//defaultni je all
	
	var i;
	var x = 0;
	var key;
	var okresy_v_kraji = new Array();
	
	for (i=0; i<kraje_ids.length; i++) {
	
		if (kraje_ids[i]=='all') {//pokud se maji zobrazit vsechny okresy, projedeme vse a ukoncime cyklus
			var x = 0;
			okresy_v_kraji = new Array();
			
			for (key in KRAJE_OKRESY) {
				for (j=0; j<KRAJE_OKRESY[key].length; j++) {
					okresy_v_kraji[x] = KRAJE_OKRESY[key][j];
					x++;
				} 
			}
			break;
		}
		
		key = kraje_ids[i];
		for (j=0; j<KRAJE_OKRESY[key].length; j++) {
			okresy_v_kraji[x] = KRAJE_OKRESY[key][j];
			x++;
		} 
	}
	var childSelect = ZPelems['pamatky-okres'];
	
	var default_selected_ids = getDefaultSelectedValues(childSelect);
	/* odebrani vsech options */
	for(i=(childSelect.length-1); i>0; i--) {
		childSelect.remove(i);
	}
	
	/*pridani vsech options okresu pro dany kraj */
	if(okresy_v_kraji) {
		for(i=0; i<okresy_v_kraji.length; i++) {
			if (!okresy_v_kraji[i]) continue;
			
			var option = document.createElement('option');
			option.value = okresy_v_kraji[i]['id'];
			option.text = okresy_v_kraji[i]['name'];
			if (inArray(option.value, default_selected_ids)) option.selected = true;
			if(document.all) {
				childSelect.add(option);
			} else {
				childSelect.add(option, null);
			}
		}
	}
	if (default_selected_ids.length = 0) childSelect.options[0].selected = true;//vybrani 1 option, tj. "nerozhoduje"
	return false;
}

/* UDALOSTI */
function regEv(el, ev, fn)//registrace udalosti
{
    if (el.attachEvent) {
        return el.attachEvent('on'+ev, fn);
    }
    if (el.addEventListener) {
        el.addEventListener(ev, fn, false);
        return true;
    }
    return false;
}

//vraci element dle id
function gEBI(id)
{
	return document.getElementById(id);
}

// funkce pro pridani option
// optionProps = {
//	value : 'hodnota-atributu-value',
//	text : 'hodnota-atributu-text',
// 	selected : 'true|false', //optional
// }
function addOption (selectObject, optionProps)
{
	var option = document.createElement('option');
	option.value = optionProps.value;
	option.text = optionProps.text;
	if (optionProps.selected) option.selected = true;
	if(document.all) {
		selectObject.add(option);
	} else {
		selectObject.add(option, null);
	}
	return option;
}

//odebrani vsech options v selectu
//vraci pole values vsech vybranych options
function removeOptions (selectObject)
{
	var sel = [];
	for(var i=(selectObject.length-1); i>0; i--) {
		var o = selectObject.options[i];	
		if (o.defaultSelected) {
			sel[sel.length] = o.value;
		}
		selectObject.remove(i);
	}
	return sel;
}

// neco jako in_array - pouze pro ciselne klice
Array.prototype.hasValue = function (value) 
{
	for (var i in this) {
		if (this[i] == value) return true;
	}
	return false;
}

var isExtFilterHidden = true;

function showHideExtendedFilter()
{
	var OR = gEBI('odkaz-rozsir');
	var OO = gEBI('odkaz-oddelovacka');
	if (OR) {
		if (OR.style.display=='none' || isExtFilterHidden) {
			isExtFilterHidden = false;
			if (OR) OR.style.display = 'block';
			if (OO) OO.style.display = 'block';
		} else {
			if (OR) OR.style.display = 'none';
			if (OO) OO.style.display = 'none';
		}
	}
}

/* funkce pro listovani v kalendari */
function calendar(obj, link, pamatka) {
	var mesic = obj.value.substring(0,obj.value.indexOf("/"));
	var rok   = obj.value.substring(obj.value.indexOf("/")+1,obj.value.lastIndexOf("/"));
	var den	 = obj.value.substring(obj.value.lastIndexOf("/")+1,obj.value.length);
	
	var url = link + '?' + (pamatka?'pamatka='+pamatka+'':'') + '&co=akce_udalosti&news[status]=oddo&news[od]=1.'+mesic+'.'+rok+'&news[do]='+den+'.'+mesic+'.'+rok;
	window.location.href = url;

}
