<!--

// alert(xxx) zobrazí hlášku
// innerHTML je univerzální (IE+FF)
// když se použije parentNode/childNode a hledá se nějaká element, tak se musí jít nahoru, dokud jej nenajde!
// tempEl.style.cssText = 'left:150px; top:150px;';  // nastavení stylu
// IEonly: window.event.srcElement --- element na kterém byla událost vyvolána :-)

/*
function setClass(tag,className)
{
	tag.className = className;
//	window.event.srcElement.className = className;		nefunguje
//	tag.setAttribute("class",className); // nastavení v IE nefunguje!!!
//	tag.setAttribute("className",className);	//
//	tag.setAttribute((document.all ? 'className' : 'class'), className)

panel.setAttribute("class", "iWindow");

but in IE you have to do this:

panel.setAttribute("className", "iWindow");

}
*/


/***************************************************************************/
function trim(sString)
{
	while (sString.substring(0,1) == ' ')
		sString = sString.substring(1, sString.length);
	while (sString.substring(sString.length-1, sString.length) == ' ')
		sString = sString.substring(0,sString.length-1);
	return sString;
}


function _SetCheck(a_tag,input,checked,check_name)
{
    var pos = input.value.indexOf(check_name);
	if (checked == (pos >= 0)) return;
    if (pos >= 0)
    {
		if (a_tag.className == 'checking16')
			a_tag.style.backgroundPosition = "left -43px";
		else
			a_tag.style.backgroundPosition = "left -28px";

        input.value = input.value.substring(0,pos) + input.value.substring(pos+check_name.length)
    }
    else
    {
		a_tag.style.backgroundPosition = "left 2px";
		input.value = input.value + check_name;
    }
}

function GetCommentedCode(value)
{
	if (value.substring(0,4) != "<!--")
		return value;

	pos = value.indexOf("-->");
	if (pos <= 4) return value;

	return value.substr(4,pos-4);
}

function ChangeCheck(a_tag,input_tag_id,value)
{
// kontrola
    if (a_tag.nodeName != 'A') return Error("ChangeCheck("+a_tag+","+input_tag_id+") ... a_tag.NodeName = "+a_tag.nodeName);
// posílaná proměnná
	if (value == null)
		value = GetCommentedCode(a_tag.innerHTML);
    var input = document.getElementById(input_tag_id);
	if (input == null) return Error("ChangeCheck("+a_tag+","+input_tag_id+") ... input_tag_id nebyl nalezen!!");
    var check_name = "("+value+")";
    var pos = input.value.indexOf(check_name);
	_SetCheck(a_tag,input,pos < 0,check_name);
    return (pos < 0);
}

function _CheckAll(tag,up,input,checked)
{
    if (up) // mám jít nahoru?
    {
        while (tag != null && tag.nodeName != "TABLE")
            tag = tag.parentNode;
        if (tag == null) return false;
    }
// aplikace změny
    if (tag.nodeName == "A")
		_SetCheck(tag,input,checked,"("+GetCommentedCode(tag.innerHTML)+")");
// provedení změny na všechny childy
    tag = tag.firstChild;
    while (tag != null)
    {
        _CheckAll(tag,false,input,checked);
        tag = tag.nextSibling;
    }
}

function ChangeCheckAll(a_tag,input_tag_id)
{
// kontrola
    if (a_tag.nodeName != 'A') return Error("ChangeCheckAll("+a_tag+","+input_tag_id+") ... a_tag.NodeName = "+a_tag.nodeName);
// posílaná proměnná
    var input = document.getElementById(input_tag_id);
	if (input == null) return Error("ChangeCheckAll("+a_tag+","+input_tag_id+") ... a_tag nebyl nalezen!!");
    var check_name = "("+GetCommentedCode(a_tag.innerHTML)+")";
    var pos = input.value.indexOf(check_name);
	var will_check = pos < 0;
	_CheckAll(a_tag,true,input,will_check);
	// musím odvybrat všechny položky
	// musím vybrat všechny položky
    return (pos < 0);
}

function isIE6()
{ // OK
	if (navigator.appName != 'Microsoft Internet Explorer') return false; // není IE
	return navigator.appVersion.indexOf('MSIE 6') >= 0;
}

/***************************************************************************/

function toggleNode(node,yes)
// 2. generace rozbalovadla
{
	if (isIE6()) return false; // toto není schopen IE6 provést!!!! (bez vedlejších efektů)

	if (node.tagName.toLowerCase() == 'a')
	{
		if (yes != null)
			node.style.backgroundPosition = (yes ? "left -26px" : "left 1px");
		else
			node.style.backgroundPosition = (node.style.backgroundPosition == "left -26px" ? "left 1px" : "left -26px");
	}

	while (node != null)
	{
		if (node.tagName && node.tagName.toLowerCase() == 'div') break;
		node = node.parentNode;
	}
	if (node == null) return false;
	var nodeArray = node.childNodes;
	for(i=0; i < nodeArray.length; i++)
	{
		node = nodeArray[i];
		if (node.tagName && node.tagName.toLowerCase() == 'div')
		{
			if (yes != null)
				node.style.display = yes ? 'block' : 'none';
			else
				node.style.display = (node.style.display == 'none') ? 'block' : 'none';
		}
	}
	return true; // pokud je vše ok
}

function toggleAll(yes)
// 2. generace přepínadla
{
	if (isIE6()) return false; // toto není schopen IE6 provést!!!! (bez vedlejších efektů)

	var divMenu = document.getElementById('CatMenu');
	if (divMenu == null) return false;
// přes všechny divy
	var i0,i1;
	for(i0 = 0;i0 < divMenu.childNodes.length;i0++)
	{
		var node0 = divMenu.childNodes[i0];
		if (!node0.tagName) continue;
		if (node0.tagName.toLowerCase() != 'div') continue;
		for(i1 = 0;i1 < node0.childNodes.length;i1++)
		{
			var node1 = node0.childNodes[i1];
			if (!node1.tagName) continue;
			if (node1.tagName.toLowerCase() != 'a') continue;
			if (node1.className.toLowerCase() != 'l1a') continue;
		// super - mám to
			toggleNode(node1,yes);
		}
	}

	return true; // pokud je vše ok
}

function toggleTab(tab)
// 2. generace přepínání záložek - pomocí .style.display = block/none
{
//	if (isIE6()) return false; funguje i v IE6!!
	if (tab == null) return false;
	if (tab.tagName.toLowerCase() == 'a') // povoleno i na vnořeném <a>
		tab = tab.parentNode;

	if (tab.tagName.toLowerCase() != 'div') return false;
	if (tab.className.toLowerCase() != 'pasive') return false;
	if (tab.id == '') return false;
	var no = tab.id.substr(3,1);

	var divs = tab.parentNode.childNodes;
	var i;
	for(i = 0;i < divs.length;i++)
	{
		var node = divs[i];
		if (node.nodeType != 1) continue; // nebere text
		if (node.tagName.toLowerCase() != 'div') continue;
		if (node.id == '') continue;

		var noX = node.id.substr(3,1);
		if (node.className.toLowerCase() == 'active')	// všechny aktivní zhasnu až na vybrané
			node.style.display = (noX == no ? 'block' : 'none');
		else if (node.className.toLowerCase() == 'pasive')
			node.style.display = (noX != no ? 'block' : 'none');
		else if (node.className.toLowerCase() == 'data')
			node.style.display = (noX == no ? 'block' : 'none');
	}
	return true;
}

function standardizeEvent(event)
{
	if (!event.stopPropagation)
		event.stopPropagation = new Function('this.cancelBubble = true');
	if (!event.preventDefault())
		event.preventDefault() = new Function('this.returnValue = true');

	if (typeof event.layerX == 'undefined' && typeof event.offsetX == 'number')
	{
		event.layerX = event.offsetX;
		event.layerY = event.offsetY;
	}

	if (!event.target && event.srcElement)
	{
		event.target = event.srcElement;
		if (event.type == 'onmouseout')
			event.relatedTarget = event.toElement;
		else if (event.type == 'onmouseover')
			event.relatedTarget = event.fromElement;
	}
}

function UpDownClick(tag,event)
{
	standardizeEvent(event);
	X = (event.layerX - tag.OffsetLeft)/tag.OffsetWidth;
	Y = (event.layerY - tag.OffsetTop)/tag.OffsetHeight;
	tag.innerHTML = X+","+Y;
	return;
//	tag.text = 'ahoj';
	if (X < 0.6) return false; // nic se neděje
	var add = 0;
	if (Y < 0.5)
		add = 1
	else
		add = -1;
	var value=parseInt(tag.innerHTML);
	value += add;
	if (value  < 1) value = 1;
	tag.innerHTML = value;
}

function Log(msg)
{
	var dbg_output = document.getElementById("Debug_log");
	if (dbg_output == null) return;
	if (dbg_output.style.display == 'none')
		dbg_output.style.display = 'block';
	dbg_output.innerHTML = dbg_output.innerHTML+msg+"<br>";
}

function Error(msg)
{
	Log("<span style='background-color:red;'><b>ERROR:</b>"+msg+"</span>");
	return false;
}

function DebugClose()
{
	var dbg_output = document.getElementById("Debug_log");
	if (dbg_output == null) return;
	dbg_output.className = 'Debug_log_hidden';
	dbg_output.innerHTML = "";
}

function Copy2(input,postfix)
{
	var dst = document.getElementById(input.name+postfix);
	if (dst == null) return;
	dst.value = input.value;
//	Log("<b>Copy2</b>("+input.name+","+postfix+") "+input.value+" ---> "+dst.value);
}

/*
function CheckedOnly(checkboxname,msg)
{
	if (document.getElementById(checkboxname).className == "checked") return true;
	alert(msg);
	return false;
}
*/
function FindUpChangeClass(begPoint,parentTag,findTag,srcClass,dstClass)
{
//	Log("FindUpChangeClass("+parentTag+","+findTag+","+srcClass+","+dstClass+")");
	var parent = begPoint;
	if (parentTag != "")
	{
		while (parent != null && parent.nodeName != parentTag)
		{
			parent = parent.parentNode;
		}
	}
	if (parent == null)
	{
		return false; // selhalo to
	}
// prověřím všechny childy
	var child = parent.firstChild;
	while (child != null)
	{
		if (child.nodeName == findTag && child.className == srcClass)
		{
			child.className = dstClass;
		}
		FindUpChangeClass(child,'',findTag,srcClass,dstClass);
		child = child.nextSibling;
	}
	return true;
}


function RadioCheck(radio1,value)
// toto kupodivu jede i v IE6 :-)
{
	if (radio1.className == "checked") return false;
	FindUpChangeClass(radio1,"TABLE","A","checked","unchecked");
	radio1.className = "checked";
}

/*
function CheckBoxClick(checkbox,input_id,value)
{
	input_obj = document.getElementById(input_id);
	if (input_obj == null) return false;
	if (checkbox.className == "checked")
	{
		checkbox.className == "unchecked";
	}
	else
	{
		checkbox.className == "checked";
	}
}
*/
function GoToPhase(new_phase)
{
	goto_tag = document.getElementById("goto_phase");
	if (goto_tag == null) return true;
	goto_tag.value = new_phase;
	submit();
	return false;
}

-->
