/*
	Version 1.02
	(c) 2002 insign gmbh
	written by sh,ul,mb,mk
	last change 30.07.2002 [mk]
	
	history:
	1.00	24.07.2002	initial Version
	1.01	26.07.2002	new functions (createLayers & writInLayer) [mk]
	1.02	30.07.2002	new functions (moveLayerTo,moveLayerRel & clipLayerTo) [mk]
*/
function getLayer(name)
{
	if(document.getElementById)
	{
		return document.getElementById(name);
	}
	else if(document.layers)
	{
		if(!document.layers[name]) return false;
		return document.layers[name];
	}
	else if(document.all)
	{
		if(!document.all[name]) return false;
		return document.all[name];
	}
	return false;
}

function getLayerObject(name)
{
	if(document.getElementById)
	{
		return document.getElementById(name).style;
	}
	else if(document.layers)
	{
		if(!document.layers[name]) return false;
		return document.layers[name];
	}
	else if(document.all)
	{
		if(!document.all[name]) return false;
		return document.all[name].style;
	}
	return false;
}

function showLayer(name,notFadeIn)
{
	getLayerObject(name).visibility="visible";
}
       
function hideLayer(name,notFadeIn)
{
    getLayerObject(name).visibility="hidden";
}

function fadeInElement(myObject_, g_fDuration)
{
	myObject_.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration="+g_fDuration+"); progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=100);";
	myObject_.filters[0].apply();
	myObject_.style.visibility="visible";
	myObject_.filters[0].play();	
}

function fadeOutElement(myObject_, g_fDuration)
{
	myObject_.style.filter = "progid:DXImageTransform.Microsoft.Fade(duration="+g_fDuration+"); progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=100);";
	myObject_.filters[0].apply();
	myObject_.style.visibility="hidden";
	myObject_.filters[0].play();	
}

function setXPos(name, xpos)
{
	myLayer = getLayerObject(name);
	myLayer.left=xpos;
}

function setYPos(name, ypos)
{
	myLayer = getLayerObject(name);
	myLayer.top=ypos;
}

function moveLayerTo(name,xPos,yPos)
{
	setXPos(name,xPos);
	setYPos(name,yPos);
}
 
function moveLayerRel(name,xDist,yDist)
{
	setXPos(name, getLeft(name)+xDist);
	setYPos(name, getTop(name)+yDist);
}

function getHeight(name)
{
	myLayer=getLayerObject(name);
	if (myLayer.document && myLayer.document.height)
		return(myLayer.document.height);
	if(myLayer.clip)
		return(myLayer.clip.bottom - myLayer.clip.top);
	if (myLayer.clientHeight)
		return(layer.clientHeight);
	return(0);
}
function getWidth(name)
{
	myLayer=getLayerObject(name);
	if (myLayer.document && myLayer.document.width)
		return(layer.document.width);
	if(myLayer.clip)
		return(layer.clip.right - layer.clip.left);
	if (myLayer.clientWidth)
		return(myLayer.clientWidth);
}

function getLeft(name)
{
	myLayer = getLayerObject(name);
	if (myLayer.left)
		return(myLayer.left);
	if (myLayer.pixelLeft)
		return(myLayer.pixelLeft);
	return(0);
}

function getTop(name)
{
	myLayer = getLayerObject(name);
	if (myLayer.top)
		return(myLayer.top);
	if (myLayer.pixelTop)
		return(myLayer.pixelTop);
	return(0);
}

function getRight(name)
{
	myLayer = getLayerObject(name);
	if (myLayer.left)
		return(myLayer.left + getWidth(layer));
	if (myLayer.pixelLeft)
		return(myLayer.pixelLeft + getWidth(layer));
	return(0);
}

function getBottom(name)
{
	myLayer = getLayerObject(name);
	if (myLayer.top)
		return(myLayer.top + getHeight(layer));
	if (myLayer.pixelTop)
		return(myLayer.pixelTop + getHeight(layer));
	return(0);
}


// tested in ns4.x, ie4.x, ie 6.x, ns6.x
// work NOT in opera 4.x, 5.x, 6.x

function createLyr(id,nestref,left,top,width,height,content,bgColor,visibility,zIndex)
{
	 if (document.body && document.body.insertAdjacentHTML)
	 {
		var str = '\n<DIV id='+id+' style="position:absolute;"><br></DIV>'
		document.body.insertAdjacentHTML("BeforeEnd",str);
		if (nestref) {
			index = nestref.lastIndexOf(".")
			var nestlyr = (index != -1)? nestref.substr(index+1) : nestref
			document.all[nestlyr].insertAdjacentHTML("BeforeEnd",str);
		}
		else 
			document.body.insertAdjacentHTML("BeforeEnd",str)
		lyr=getLayer(id);
	}
	else
	{
		if (document.layers) {
			if (nestref)
				var lyr = eval("document."+nestref+".document."+id+" = new Layer(width, document."+nestref+")");
			else
				var lyr = document.layers[id] = new Layer(width);
		}
		else if(document.createElement && document.body && document.body.appendChild)
		{
			var lyr=document.createElement('DIV');
			lyr.style.position = 'absolute';
			lyr.id=id;
			if(nestref && getLayer(nestref))
				getLayer(nestref).appendChild(lyr);
			else
				document.body.appendChild(lyr);
		}
	}
	if(lyr)
	{
		lyr.name = id;
		if(lyr.style)
			lyr=lyr.style;
		lyr.left=left;
		lyr.top=top;
		lyr.width=width;
		if (height!=null) lyr.clip.height = height;
		if (bgColor!=null) lyr.bgColor = bgColor;// not supported in IE
		lyr.visibility = visibility;
		lyr.zIndex = zIndex;	
		writeInLayer(id,content);
	}
}

// tested in ns4.x, ie4.x, ie 6.x, ns6.x

function writeInLayer(name,content)
{
	myLayer = getLayer(name)
	if (myLayer)
	{
		if(myLayer.innerHTML)
		{
			myLayer.innerHTML = content;
			return;
		}
		else if(myLayer.document)
		{
			myLayer.document.open();
			myLayer.document.write(content);
			myLayer.document.close();
			return;
		}
		else if(myLayer.innerHTML != 'undefined')
		{
			myLayer.innerHTML=content;
			return;
		}
	}
	return false;
}

function clipLayerTo(name,t,r,b,l) {
	myLayer=getLayerObject(name);
	if(document.layers){
		if(t)
			myLayer.clip.top = t;
		if(r)
			myLayer.clip.right = r;
		if(b)
			myLayer.clip.bottom = b;
		if(l)
			myLayer.clip.left = l;
	}
	else if(document.all) 
		myLayer.clip = "rect("+(t?(t+'px'):'auto')+" "+(r?(r+'px'):'auto')+" "+(b?(b+'px'):'auto')+" "+(l?(l+'px'):'auto')+")";
	else
		myLayer.clip = "rect("+(t?(t+'px'):'0px')+" "+(r?(r+'px'):'1500px')+" "+(b?(b+'px'):'1500px')+" "+(l?(l+'px'):'0px')+")";
}

function getImageXfromLeft(imgID)
{
	myImage=document.images[imgID];
	if (myImage)
	{
		if(document.all && document.getElementById)
		{
			xPos = myImage.offsetLeft;
			tempEl = myImage.offsetParent;
   			while (tempEl != null)
   			{
				xPos += tempEl.offsetLeft;
  				tempEl = tempEl.offsetParent;
 			}
 		}
 		else if(myImage.x)
 			xPos=myImage.x;
		if(xPos)
			return xPos;
	}
	return false;
}

function getImageYfromTop(imgID)
{
	myImage=document.images[imgID];
	if (myImage)
	{
		if(document.all && document.getElementById)
		{
			yPos = myImage.offsetTop;
			tempEl = myImage.offsetParent;
   			while (tempEl != null)
   			{
				yPos += tempEl.offsetTop;
  				tempEl = tempEl.offsetParent;
 			}
 		}
 		else if(myImage.y)
 			yPos=myImage.y;
		if(yPos)
			return yPos;
	}
	return false;
}
