// JavaScript Document
// Author: RYV

// kontroluje, zda zmáčknutá klávesa je číslice nebo /
// pro kontrolu zadávání datumových polí
function cisliceLomitko() {
	var nKey = event.charCode ?
				event.charCode :
				event.keyCode ?
					event.keyCode :
					event.which ?
						event.which : null;

	// lomítko má kód 47, 48 - 57 jsou číslice, 8 - backspace, 46 - DEL
	return (nKey == 8 || nKey == 46 ||
			((nKey >= 47) && (nKey <= 57)));
}

function cislice(event) {
	// někteří klienti si stěžují, že ve FF jim mazání nefunguje, ani když
	// povolím bakcspace a delete, takže raději nic nekontroluji a mažu pryč
	if (bFF) {
		return true;
	}

	var nKey = event.charCode ?
				event.charCode :
				event.keyCode ?
					event.keyCode :
					event.which ?
						event.which : null;

	// 8 - DEL, 46 - Backspace, 48 - 57 číslice
	return (nKey == 8 || nKey == 46 ||
			((nKey >= 48) && (nKey <= 57)));
}

function disablujEnablujInput2(sId, bDisabluj) {
	// Pro text nastavujeme readonly (klientům se jinak nelíbí, že písmenka
	// jsou moc světlá a blbě se na šedivém pozadí čtou).
	// Select, checkbox ani radiobutton atribut readonly nemají,
	// proto u nich nastavuji atribut disabled
	var sTyp = jQuery(sId).attr("type");

	var sAttr = (sTyp == "text") ?
	                "readOnly" : "disabled";

	if (bDisabluj) { 
		jQuery(sId)
			.attr(sAttr, true)
			.addClass("readonly");
			
		if (jQuery(sId).attr("type") == "checkbox") {
			jQuery(sId).attr("checked", false);
		}
	}
	else {
        jQuery(sId)
			.attr("readonly", "")
			.removeClass("readonly")
			.removeClass("readOnly")
			.attr("disabled", "");
	}
}

function disablujEnablujInput(input, bDisabluj) {
	if (input == null) {
		return;
	}

	if (input.id != null && input.id != "" && input.id != undefined) {
		var sId = "#" + input.id;
		disablujEnablujInput2(sId, bDisabluj);
	}
	else {
		disablujEnablujInputByName(input, bDisabluj);
	}
}

function disablujEnablujInputByName(input, bDisabluj) {
	if (bDisabluj) {
        // není-li select, nastav readonly, jinak disabled
        // (selecty readonly nemají)
	    if (input.options == null) {
	        if (input.type == "checkbox" || input.type == "radio") {
				input.disabled = true;
			}
			else {
				input.readOnly = true;
			}
		}
		else {
			input.disabled = true;
		}

		if (input.className == ""  || input.className == undefined ||
			input.className.indexOf("readonly") == -1 &&
			input.className.indexOf("readOnly") == -1) {
			input.className += " readonly";
		}

		if (input.type == "text" || input.type == "hidden") {
			input.value = "";
		}
		else {
		    if (input.type == "radio" || input.type == "checkbox") {
				input.checked = false;
			}
		}
	}
	else {
	    if (input.type != "hidden") {
	        // není-li select, nastav readonly, jinak disabled
	        // (selecty readonly nemají)
	        if (input.options == null) {
				if (input.type == "checkbox" || input.type == "radio") {
					input.disabled = false;
				}
				else {
					input.readOnly = false;
				}
			}
			else {
				input.disabled = false;
			//    input.readOnly = false;
			}

			do {
				var nIndex1 = input.className.indexOf("readonly");
				var nIndex2 = input.className.indexOf("readOnly");
				var nIndex = (nIndex1 > nIndex2) ?
								nIndex1 : nIndex2;

				if (nIndex > -1) {
    				var sNewClass = (input.className.length > nIndex + 8) ?
										input.className.substring(0, nIndex) +
											input.className.substring(nIndex + 8) :
										input.className.substring(0, nIndex);
					input.className = sNewClass;
				}
			}
			while (nIndex != -1);
		}
	}
}

function disablujEnablujKopirujInput(input1, bDisabluj, input2) {
	disablujEnablujInput(input1, bDisabluj);

	if (bDisabluj) {
		input1.value = input2.value;
	}
}

function clearInputs() { 
	var inputs = document.getElementsByTagName("INPUT");

	for (i = 0; i < inputs.length; i++) {
	    // readonly, hidden a jiné než text mne nezajímají
		if (inputs[i].readonly || inputs[i].hidden ||
			inputs[i].type != "text" || inputs[i].value == '' ||
			inputs[i].value == undefined)
		    continue;

		var sValue = inputs[i].value.trim();
		var bNula = true;

		for (j = 0; j < sValue.length; j++) {
			if (sValue.charAt(j) != "0") {
				bNula = false;
				break;
			}
		}

		if (bNula) {
		    inputs[i].value = "";
		}
	}
}

function clearTextInputs(sId, sHodnota) {
	var input = document.getElementById(sId);
	var sHodnotaInputu = input.value;

	if (sHodnotaInputu == sHodnota)
		input.value = "";
	else
	    input.select();
}

function formatTimeInput(elInput) {
	if (elInput != null) {
		var sHodn = elInput.value;
		var nDelka = sHodn.length;

		if (nDelka > 2) {
		    nZac = nDelka - 2;
			sHodn = sHodn.substr(0, nZac) + ":" + sHodn.substr(nZac);
			elInput.value = sHodn;
		}
	}
}

function vyhazejMezery(elInput) {
	var sNewValue = "";

    for (var i = 0; i < elInput.value.length; i++) {
		if (elInput.value.charAt(i) != " ") {
			sNewValue = sNewValue + elInput.value.charAt(i);
		}
	}

	elInput.value = sNewValue;
}

function formatCisla(elInput) { 
	var sValue = "";
	var sNewValue = "";
	var sDelka = 0;
	var j = 1;
	var sProhlizec = navigator.appVersion;

	// GoogleChrome je tak geniální, že pokud délka
	// čísla s mezerama je větší než maxlength, tak zobrazí
	// jen první maxlength číslic a zbytek ne => honem upaluj pryč.
	// IE a FF při přiřazení hodnoty javascriptem
	// neberou v úvahu maxlength, přiřadí tam vše.
	if (!(bIE || bFF)) {
	    return
	}

	vyhazejMezery(elInput);
	
	sValue = elInput.value;
	sDelka = sValue.length - 1;

	for (var i = sDelka; i >= 0; i--) {
		sNewValue = (j % 3 == 0 && i != 0) ?
		                " " + sValue.charAt(i) + sNewValue:
						sValue.charAt(i) + sNewValue;
		j++;
	}
	
	elInput.value = sNewValue;
}

function getSelectByName(sName) {
	var selects = document.getElementsByTagName("SELECT");
	var select = null;
	
	for (i = 0; i < selects.length; i++) {
		if (selects[i].name == sName) {
			return selects[i];
		}
	}
	
	return null;
}

function getTextInputByName(sName) {
	var inputs = document.getElementsByTagName("INPUT");

	for (i = 0; i < inputs.length; i++) {
		if (inputs[i].name == sName) {
			return inputs[i];
		}
	}

	return null;
}
