/**
 * Funkce, ktera zjisti zda-li je zadana promnena objekt 
 *
 * @param what - polozka pro zjisteni
 */
function isObject( what )
{
	return (typeof what == 'object');
}


/**
 * Funkce pro vytvoreni selectu. jako parametr se predava objekt, ktery plni funkci asociativniho
 * pole. Pole muze byt dvojrozmerne Pak je prvni uroven brana jako OptGroup. 
 *
 * Pokud je v puvodnim selectu vybrana polozka a v novem je stejna (stejne value) tak se vybere
 *
 * @param select - jaky select se ma pouzit (jedna se o JQuery element)
 * @param data - jedno nebo dvou rozmerne asociativni pole (objekt)
 */
function createSelect(select, data)
{
	var kategorie_select = $('option:selected', select).val();
	select.empty();
	
	//projiti kategorii
	for ( zakladni in data )
	{
		var polozky = data[zakladni];
		if ( isObject( polozky ) )
		{ //polozka je objekt a proto se jedna o skupinu
			var optgroup = document.createElement("optgroup");
			optgroup.label = zakladni;

			//projiti polozek
			for ( polozka in polozky )
			{
				var option = document.createElement("option");
				option.value = polozka;
				option.appendChild(document.createTextNode(polozky[polozka]));
				option.selected = kategorie_select == polozka;
				optgroup.appendChild(option);
			}
			select.append(optgroup)
		}
		else 
		{ //polozka neni objekt ==> je to rovnou polozka 
			var option = document.createElement("option");
			option.value = zakladni;
			option.appendChild(document.createTextNode(polozky));
			option.selected = kategorie_select == zakladni;
			select.append(option);
		}
	}
	
}

