/**
 * Funkce skryje firstBox a zobrazi secondBox
 * @param forHide identifikuje element, co se ma skryt
 * @param forShow identifikuje element, co se ma zobrazit
 */
function showBox(forHide, forShow) {
	document.getElementById(forHide).style.display = 'none';
	document.getElementById(forShow).style.display = '';
		
	return true;
}

// ======================================
// ===  Funcke pro praci s checkboxy  ===
// ======================================

/**
 * Funkce pro oznaceni/odznaceni vsech checkboxu ve formulari pomoci ridiciho checkboxu. 
 * Provede oznaceni/odznaceni pro vsechny checkboxy ve stejnem formulari, ktere maji jmeno shodne se vstupnim parametrem.
 * @param theElement Checkbox pro oznaceni/odznaceni vsech checkboxu.
 * @param updateName retezec s nazvem checkboxu, ktere se maji odznacit/oznacit
 *			pokud tento parametr neni specifikovany, provede se od/oznaceni VSECH checkboxu ve formulari
 */
function checkUncheckAll(theElement, updateName) {
	// ziskame formular z checkboxu
	var theForm = theElement.form;
	// var z = 0;
	
	// zmenime oznaceni vsech checkboxu, aby bylo totozne s ridicim checkboxem
	for(z = 0; z < theForm.length; z++) {
		if((theForm[z].type == 'checkbox') && (theForm[z].name != theElement.name)) {
			// Nasli jsme ve formulari checkbox.
			// Pokud neni specifikovane updateName, provedeme zmenu v checkboxu. (menime vsecky checkboxy)
			// Pokud je specifikovane updateName a pri tom ten checkbox ve formulari ma toto jmeno, tak nad nim provedeme zmenu.
			// Pokud nenastala zadna z predchozich variant, tak nic nemenime.
			// (Slo by to dat do jednoho ifu nahoru, ale pro prehlednost jsme to takto rozdelili.)
			if((! updateName) || (theForm[z].name == updateName)) {
				theForm[z].checked = theElement.checked;
			}
		}
	}
}

// =========================================
// ===  Funcke pro praci se select boxy  ===
// =========================================

/**
 * Funkce zjisti, zda dana hodnota je soucasti selectboxu s danym id
 * @param selectBoxId id select boxu, ve kterem mame hodnotu vyhledat
 * @param needle hodnota, ktere chceme proverit
 * @return Vraci na vystup true, pokud je dana hodnota soucasti selectboxu, jinak false.
 */
function selectContain(selectBoxId, needle) {
	var exists = false;
	var selectBox = document.getElementById(selectBoxId);
	if (selectBox) {
		var optionList = selectBox.options;
		for (i = 0; i < optionList.length; i++) {
			var optionElement = optionList[i];
			if (optionElement.value == needle) {
				exists = true;
				break;
			}
		}
	}
	return exists;
}

/**
 * Funkce se pokusi nastavit hodnotu do daneho selectBoxu
 * @param selectBoxId id selectBoxu, do ktereho chceme nastavit hodnotu
 * @param value hodnota co chceme nastavit
 * @param defaultValue hodnota, ktera se ma nastavit do boxu v pripade, ze puvodno hodnota neni v select boxu k dispozici
 */
function setValueIntoSelect(selectBoxId, value, defaultValue) {
	var selectBox = document.getElementById(selectBoxId);
	if (selectBox) {
		if (selectContain(selectBoxId, value)) {
			selectBox.value = value;
		} else {
			selectBox.value = defaultValue;
		}
	}
}
