function gcCommon_ShowDivInline(id)
{
	gcCommon_ShowDiv(id,'inline');
}
function gcCommon_ShowDivBlock(id)
{
	gcCommon_ShowDiv(id,'block');
}
function gcCommon_ShowDiv(id,display)
{
	var obj;
	if (typeof id == "string") obj = document.getElementById(id); else obj = id;
	obj.style.display = display;
	obj.style.zIndex = 10;
	if (document.all) // IE only: Insert IFrame to cover select-boxes
	{
		var iframe = gcCommon_GetIFrame(obj);
		iframe.style.width = obj.offsetWidth;
		iframe.style.left = obj.offsetLeft;
		iframe.style.top = obj.offsetTop;
		iframe.style.height = obj.offsetHeight;
		iframe.style.zIndex = 5;
		iframe.style.display = 'block';
	}
}

function gcCommon_HideDiv(id)
{
	var obj;
	if (typeof id == "string") obj = document.getElementById(id); else obj = id;

	if (document.all) // IE only
	{
		var iframe = gcCommon_GetIFrame(obj);
		iframe.style.height = '0px';
		iframe.style.display = 'none';
		//Remove all whitespace textnodes to prevent empty lines
		gcCommon_RemoveEmptyTextNodes(iframe.parentNode);
	}
	obj.style.display = 'none';
}

function gcCommon_GetIFrame(obj)
{
	if (obj.id == "") obj.id = "gc_" + Math.round(Math.random()*1000);
	
	var iobj = document.getElementById(obj.id + '_IFRAME');
	if (!iobj)
	{
		obj.insertAdjacentHTML("beforeBegin","<iframe id='" + obj.id + "_IFRAME' src='javascript:false' style='display:none; position:absolute' frameborder='0' scrolling='no'></iframe>");
		iobj = document.getElementById(obj.id + '_IFRAME');
	}
	return iobj;
}

function gcCommon_CheckUnitSyntax(obj)
{
	var v = obj.value;
	if (v == "") return "";
	var UnitPlain = /^\d+$/;
	var UnitPercent = /^\d+%$/;
	var UnitPixel = /^\d+px$/i;
	var ok = (UnitPlain.test(v) || UnitPercent.test(v) || UnitPixel.test(v));
//	if (!ok) obj.focus();
	if (ok) return v; else return "";
}

function gcCommon_RemoveEmptyTextNodes(parent)
{
	for (var i = 0; i<parent.childNodes.length; i++)
	{
		var c = parent.childNodes[i];
		if (c.nodeType == 3 /* text node */ && c.data.replace(/\s/,"") == "") 
			parent.removeChild(c);
	}
}

function gcCommon_GetInnerWidth()
{
	//http://www.quirksmode.org/viewport/compatibility.html
	if (self.innerHeight) // all except Explorer
		return self.innerWidth;
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
		return document.documentElement.clientWidth;
	else if (document.body) // other Explorers
		return document.body.clientWidth;
}

function gcCommon_GetInnerHeight()
{
	//http://www.quirksmode.org/viewport/compatibility.html
	if (self.innerHeight) // all except Explorer
		return self.innerHeight;
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
		return  document.documentElement.clientHeight;
	else if (document.body) // other Explorers
		return document.body.clientHeight;
}

function gcCommon_GetScrollingX()
{
	if (self.pageYOffset) // all except Explorer
		return self.pageXOffset;
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
		return document.documentElement.scrollLeft;
	else if (document.body) // all other Explorers
		return document.body.scrollLeft;
}

function gcCommon_GetScrollingY()
{
	if (self.pageYOffset) // all except Explorer
		return self.pageYOffset;
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
		return document.documentElement.scrollTop;
	else if (document.body) // all other Explorers
		return document.body.scrollTop;
}

function gcCommon_GetAbsOffsetLeft(obj)
{
	if (!obj) return 0;
	return obj.offsetLeft + gcCommon_GetAbsOffsetLeft(obj.offsetParent);
}

function gcCommon_GetAbsOffsetTop(obj)
{
	if (!obj) return 0;
	return obj.offsetTop + gcCommon_GetAbsOffsetTop(obj.offsetParent);
}

function gcCommon_GetRelOffsetLeft(obj,relobj) {
    if (!obj) return 0;
    if (obj == relobj) return 0;
    return obj.offsetLeft + gcCommon_GetRelOffsetLeft(obj.offsetParent,relobj);
}

function gcCommon_GetRelOffsetTop(obj,relobj) {
    if (!obj) return 0;
    if (obj == relobj) return 0;
    return obj.offsetTop + gcCommon_GetRelOffsetTop(obj.offsetParent,relobj);
}

function gcCommon_DisableAHref(obj)
{
	obj.disabled = -1;
	obj.removeAttribute("href");
}
