function nasledujuci( element )
{
	do
	{
		element = element.nextSibling;
	} while (element && element.nodeType !=1);
	return element;
}

function prvyPotomok( element )
{
	element = element.firstChild;
	return element && (element.nodeType != 1 ? nasledujuci(element): element);
}

function rodic( element , level )
{
	level=level || 1;
	for ( var i = 0; i < level; i++ )
	{
		if (element != null ) element = element.parentNode;
	}
	return element;
}

function vytvor( element )
{
	return (document.createElementNS ? document.createElementNS('http://www.w3.org/1999/xhtml', element): document.createElement(element));
}

function id(nazov)
{
	return document.getElementById(nazov);
}

function tag( nazov, rozsah )
{
	return (rozsah || document).getElementsByTagName(nazov);
}


function atribut( element, nazov, hodnota )
{
	if (element==null)
		alert('chyba pri elementoch: '+nazov+ ' -> ' +hodnota);
	if (!nazov || nazov.constructor != String) return '';
	nazov = {'for':'htmlFor', 'class':'className'}[nazov] || nazov;
	if (typeof(hodnota)!=='undefined')
	{
		element[nazov] = hodnota;
		if (element.setAttribute)
		{
			element.setAttribute(nazov,hodnota);
		}
	}
	return element[nazov] || element.getAttribute(nazov) || '';
}

function partial(func) {
	  var args = Array.prototype.slice.call(arguments, 1);
	  return function() {
	    var allArguments = args.concat(Array.prototype.slice.call(arguments));
	    return func.apply(this, allArguments);
	  };
	}

	function addEvent(element, type, handler) {
	if (element.addEventListener) {
		element.addEventListener(type, handler, false);
	} else {
		// assign each event handler a unique ID
		if (typeof(handler.$$guid) == "undefined") handler.$$guid = ++addEvent.guid;
		// create a hash table of event types for the element
		if (!element.events) element.events = {};
		// create a hash table of event handlers for each element/event pair
		var handlers = element.events[type];
		if (!handlers) {
			handlers = element.events[type] = {};
			// store the existing event handler (if there is one)
			if (element["on" + type]) {
				handlers[0] = element["on" + type];
			}
		}
		// store the event handler in the hash table
		handlers[handler.$$guid] = handler;
		// assign a global event handler to do all the work
		element["on" + type] = handleEvent;
	}
};

function handleEvent(event) {
	var returnValue = true;
	// grab the event object (IE uses a global event object)
	event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
	// get a reference to the hash table of event handlers
	var handlers = this.events[event.type];
	// execute each event handler
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) === false) {
			returnValue = false;
		}
	}
	return returnValue;
};

function fixEvent(event) {
	// add W3C standard event methods
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
};
fixEvent.preventDefault = function() {
	this.returnValue = false;
};
fixEvent.stopPropagation = function() {
	this.cancelBubble = true;
};

function odstran( element )
{
	if (element) element.parentNode.removeChild(element);
}


if (typeof XMLHttpRequest == 'undefined' )
{
	XMLHttpRequest = function()
	{
		return new ActiveXObject(navigator.userAgent.indexOf("MSIE 5")>=0 ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP");
	};
}
function myAjax(url,spracovanie,data,method,async,poradie)
{
	if (typeof method=='undefined' || method.toUpperCase()=='POST')
	{
		method='POST';
		meta=method;
	}
	else
	{
		meta=method.toUpperCase();
		method='GET';
	}
	if (typeof async=='undefined')
		async=true;
	if (typeof data=='undefined')
		data=null;
	if (typeof poradie=='undefined')
		poradie=null;
	var xml=new XMLHttpRequest();
	xml.open(method, url, async);
	xml.onreadystatechange = partial(spracovanie,xml,poradie);
	if (meta=='POST')
	{
		xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		if (xml.overrideMimeType)
			xml.setRequestHeader("Connection", "close");
	} else if (meta=='IMG')
	{
		xml.setRequestHeader("Content-Type", "image/jpeg");
	}
	xml.send(data);
}