
function popup(url, name, width, height)
{
	(window.open(url, name, 'width='+width+',height='+height+',resizable=yes,scrollbars=yes')).focus();
}

function toggleChild(tgt, i)
{
	if (!tgt.childNodes[i]) return false;
	
	if (tgt.childNodes[i].style.display != 'block') {
		tgt.childNodes[i].style.display = 'block';
	} else {
		tgt.childNodes[i].style.display = 'none';
	}
}

function toggleNode(tgt)
{
	if (!tgt) return false;
	
	if (tgt.style.display != 'block') {
		tgt.style.display = 'block';
	} else {
		tgt.style.display = 'none';
	}
}

function showNode(tgt)
{
	if (!tgt) return false;
	tgt.style.display = 'block';
}

function hideNode(tgt, delay)
{
	if (!tgt) return false;	
	if (delay) {
		delay = window.setTimeout('hideById(\''+id+'\')');
	} else {
		tgt.style.display = 'none';
	}
}

function toggleById(id)
{
	tgt = document.getElementById(id);
	toggleNode(tgt);
}

function showById(id)
{
	tgt = document.getElementById(id);
	showNode(tgt);
}

function toggleCheckedByID(id) {
	tgt = document.getElementById(id);
	if(tgt.checked) tgt.checked=false;
	else tgt.checked=true;
}

function hideById(id, delay)
{
	tgt = document.getElementById(id);
	hideNode(tgt, delay);
}

function hasChildren(tgt)
{
	return tgt.childNodes.length > 0;
}

function hideSelf()
{
	this.style.display = 'none';
}

function fadeAndHideSelf()
{
	fade_node(this);
	hideSelf(this);
}

function fade_node(node, step)
{
	if (!node.style.opacity) {
		node.style.opacity = step > 0 ? 0 : 1;
	}
	
	if (node.style.opacity <= 0) {
		removeNode(node);
		return;
	} else if (node.style.opacity > 1) {
		return;
	}
	if (!step) {
		step = -0.1;
	}
	node.style.opacity = parseFloat(node.style.opacity) + parseFloat(step);
	document.fadeTarget = node;
	setTimeout('fade_node(document.fadeTarget, '+step+');', 0);
}

function changeElementHeight(id, newHeight)
{
	tgt = $(id);
	var height = getStyle(tgt, 'height');
	height = height.replace(/px$/, '');
	var j = (height < newHeight ? 1 : -1);
	for (i = height; (height + i) < newHeight; i + j) {
		setTimeout('tgt.style.height = (height + i) + \'px\'', 100);
	}
}

function removeNode(tgt)
{
	tgt.parentNode.removeChild(tgt);
}

function imageExchange(src, tgt)
{
	srcTmp = src.src;
	src.src = document.getElementById(tgt).src;
	document.getElementById(tgt).src = srcTmp;
}

function setImageSrc(id, src)
{
	var img = new Image();
	img.src = src;
	document.getElementById(id).src = src;
}

function disableForm(tgt, disableAll)
{
	for (i = 0; i < tgt.length; i++) {
		if (tgt.elements[i].getAttribute('type') == 'submit' || disableAll) {
			tgt.elements[i].disabled = true;
		}
	}
}

function enableForm(tgt)
{
	for (i = 0; i < tgt.length; i++) {
		tgt.elements[i].disabled = false;
	}
}

function checkFormFields(form)
{
	for (i = 0; i < form.elements.length; i++) {
		if (form.elements[i].value == '' &&
			(  form.elements[i].tagName == 'INPUT'
			|| form.elements[i].tagName == 'TEXTAREA'
			|| form.elements[i].tagName == 'SELECT')) {
			return false;
		}
	}
	return true;
}

function GENERAL_confirm(uri)
{
	requestContent('General', 'Confirm-'+uri);
	return false;
}

function presentElement(id, width, height, noHideOnClick)
{	
	tgt = document.getElementById(id);
	
	if (!tgt) {
		var tgt = document.createElement('div');
		document.body.appendChild(tgt);
		tgt.setAttribute('id', id);
	}
	
	tgt.style.display = 'none';
	
	if (window.innerWidth) {
		posX = (window.innerWidth - width) / 2;
		posY = (window.innerHeight - height) / 2;
	} else {
		posX = (document.body.clientWidth - width) / 2;
		if (document.documentElement.clientHeight > document.body.clientHeight) {
			posY = (document.body.clientHeight - height) / 2;
		} else {
			posY = (document.documentElement.clientHeight - height) / 2;
		}
	}
	if (document.documentElement.scrollTop) {
		posY = posY + document.documentElement.scrollTop;
	} else if (window.pageYOffset) {
		posY = posY + window.pageYOffset;
	}
	
	if (posX < 0) { posX = 0; }
	if (posY < 0) { posY = 0; }
	
	presenter = getPresenter(noHideOnClick);
	//presenter.appendChild(tgt);
	document.presenterContentId = id;
	
	tgt.style.opacity = '1';
	tgt.style.position = 'absolute';
	tgt.style.display = 'block';
	tgt.style.left = posX + 'px';
	tgt.style.top = posY + 'px';
	tgt.style.zIndex = 10010;
	
	document.body.appendChild(presenter);
}

function getPresenter(noHideOnClick)
{
	if (document.getElementById('presenter')) {
		document.getElementById('presenter').parentNode.removeChild(document.getElementById('presenter'));
	}
	
	presenter = document.createElement('div');
	presenter.setAttribute('id', 'presenter');
	presenter.style.zIndex = 10000;
	//if (noHideOnClick == false || noHideOnClick == undefined) {
		presenter.onclick = closePresenter;
	//}
	
	if (window.innerWidth) {
		presenter.style.width = '100%';
		if (window.innerHeight > getStyle(document.body, 'height').replace(/px/, '')) {
			presenter.style.height = window.innerHeight + 'px';
		} else {
			presenter.style.height = getStyle(document.body, 'height');
		}
	} else {
		presenter.style.width = document.documentElement.clientWidth+'px';
		if (document.documentElement.clientHeight > document.body.clientHeight) {
			presenter.style.height = document.documentElement.clientHeight + 'px';
		} else {
			presenter.style.height = document.body.clientHeight + 'px';
		}
	}
	
	presenter.style.opacity = '0.5';
	presenter.style.backgroundColor = 'rgb(0, 0, 0)';
	presenter.style.position = 'absolute';
	presenter.style.top = '0';
	presenter.style.left = '0';
	
	return presenter;
}

function closePresenter(tgt)
{
	/*if (tgt) {
		hideNode(tgt);
	}*/
	if (document.presenterContentId) {
		hideById(document.presenterContentId);
	}
	if (document.getElementById('presenter')) {
		document.getElementById('presenter').parentNode.removeChild(document.getElementById('presenter'));
	}
}

function appendValue(tgt, str)
{
	if (document.getElementById(tgt)) {
		document.getElementById(tgt).value = document.getElementById(tgt).value + str;
	}
}

function $(name)
{
	return document.getElementById(name);
}

function getStyle(oElm, strCssRule){
    var strValue = "";
    if(document.defaultView && document.defaultView.getComputedStyle){
        strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
    }
    else if(oElm.currentStyle){
        strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
            return p1.toUpperCase();
        });
        strValue = oElm.currentStyle[strCssRule];
    }
    return strValue;
}
