function rolovaniX() 
{
	var de = document.documentElement;

	return self.pageXOffset ||
		(de && de.scrollLeft) || document.body.scrollLeft;
}

function rolovaniY()
{
	var de = document.documentElement;
	
	return self.pageYOffset || 
		(de && de.scrollTop) || document.body.scrollTop;
}

function vyskaOkna() {
	var de = document.documentElement;

	return self.innerHeight || 
		(de && de.cilentHeight)
		|| document.body.clientHeight;
}

function sirkaOkna() {
	var de = document.documentElement;
	return self.innerWidth || 
		(de && de.clientWidth)
		|| document.body.clientWidth;
}

function vyskaStranky() { return document.body.scrollHeight; }
function sirkaStranky() { return document.body.scrollWidth; }
function pageX(elem)
{
	return elem.offsetParent ?
		elem.offsetLeft + pageX(elem.offsetParent) :
		elem.offsetLeft;
}

function pageY(elem)
{
	return elem.offsetParent ?
		elem.offsetTop + pageY(elem.offsetParent) :
		elem.offsetTop;
}

function parentX(elem)
{
	return elem.parentNode == elem.offsetParent ? 
		elem.offsetLeft:
		pageX(elem) - pageX(elem.parentNode);
}
function parentY(elem)
{
	return elem.parentNode == elem.offsetParent ? 
		elem.offsetTop :
		pageY(elem) - pageY(elem.parentNode);
}

function pozX(elem)
{
	return parseInt(ziskejStyl(elem, "left"));
}
function pozY(elem)
{
	return parseInt(ziskejStyl(elem,"top"));
}

function setX(elem,poz)
{
	elem.style.left = poz + "px";
}
function setY(elem, poz)
{
	elem.style.top = poz + "px";
}

/** css **/
function ziskejStyl(elem, nazev)
{
	if(elem.style && elem.style[nazev]) {
		return elem.style[nazev];
	}
	else if(document.defaultView && document.defaultView.getComputedStyle) {
		nazev = nazev.replace(/([A-Z])/g,"-$1");
		nazev = nazev.toLowerCase();

		var s = document.defaultView.getComputedStyle(elem,"");
		return s && s.getPropertyValue(nazev);
	}
	else if(elem.currentStyle) {
		return elem.currentStyle[nazev];
	}
	else 
		return null;
}

function prenastavCSS(elem, vlastn) {
	var stare = {};

	for (var i in vlastn) {
		stare[i] = elem.style[i];
		elem.style[i] = vlastn[i];
	}

	return stare;
}

function obnovCSS(elem, vlastn) {
	for (var i in vlastn)
		elem.stle[i] = vlastn[i];
}
/*********/

function getWidth(elem)
{
	return parseInt(ziskejStyl(elem,'width'));
}

function getHeight(elem)
{
	return parseInt(ziskejStyl(elem,'height'));
}
function maxHeight(elem)
{
	if(ziskejStyl(elem,'display') != 'none')
		return elem.offsetHeight || getHeight(elem);
	
	var stare = prenastavCSS(elem, {
		display : '',
		visibility : 'hidden',
		position: 'absolute'
	});

	var v = elem.clientHeight || getHeight(elem);

	obnovCSS(elem, stare);
	return v;
}

