
function findObj(psElementName, poDocument) {
	//**********************************************************************
	//***Función: findObj()
	//***Devuelve el objeto buscado
	//***Parámetros:psElementName - nombre del objeto a buscar
	//**********************************************************************

	var p,i,x;  
	if(!poDocument) poDocument=document; if((p=psElementName.indexOf("?"))>0&&parent.frames.length) {
	poDocument=parent.frames[psElementName.substring(p+1)].document; psElementName=psElementName.substring(0,p);}
	if(!(x=poDocument[psElementName])&&poDocument.all) x=poDocument.all[psElementName];
	else if (!document.layers)  if (!document.all) x=poDocument.getElementById(psElementName);
	for (i=0;!x&&i<poDocument.forms.length;i++) x=poDocument.forms[i][psElementName];
	for(i=0;!x&&poDocument.layers&&i<poDocument.layers.length;i++) x=findObj(psElementName,poDocument.layers[i].document); return x;
}
function createLayer(psName,psPosition,psVisibility,pnX,pnY,poParentLayer){
	//**********************************************************************
	//***Función: createLayer()
	//***Objetivo: crea dinámicamente una capa
	//***Parámetros:psPosition - posicion, "absolute" o "relative"
	//				psVisibility - visibilidad, "visible" o "hiden"
	//				pnX,pnY - posición de la capa
	//				poParentLayer - capa padre (sólo para Netscape 4.x o navegadores que soporten la etiqueta "layer")
	//**********************************************************************
	
	var objLayer
	if (document.layers){
		poParentLayer=poParentLayer || window;
		objLayer=new Layer(0,poParentLayer);
		objLayer.name=psName;
	}
	else if (document.getElementById){
		objLayer=document.createElement("DIV");
		objLayer.name=psName;	
		objLayer.style.visibility=psVisibility;	
		objLayer.style.position=psPosition;	
		document.body.appendChild(objLayer);
	}
	else if (document.all){// si es explorer 4 sólo se pueden crear objetos "img", "area" y "option"
	}
	if (pnX && pnY != null){
		moveLayerTo(objLayer,pnX,pnY);
	}
	return objLayer;

}
function hideLayer(poLayer) {

	//**********************************************************************
	//***Función: hideLayer()
	//***Objetivo: Oculta la capa pasada como parámetro
	//***Parámetros: poLayer - objeto capa a la que hace referencia
	//**********************************************************************
		var oObject=poLayer
		if (oObject.style) {
			oObject=oObject.style;
		}
		oObject.visibility="hidden";
	}
function showLayer(poLayer) {

	//**********************************************************************
	//***Función: showLayer()
	//***Objetivo: muesta la capa pasada como parámetro
	//***Parámetros: poLayer - objeto capa a la que hace referencia
	//**********************************************************************
		var oObject=poLayer
		if (oObject.style) {
			oObject=oObject.style;
		}
		oObject.visibility="visible";
	}

function writeLayer(poObject,psHTML){

	//**********************************************************************
	//***Función: writeLayer()
	//***Objetivo: reescribe una capa (o elemento IE/DOM)
	//***Parámetros: poObject - objeto capa a reescribir
	//***			 psHTML - código HTML con el que se desea reescribir la capa
	//**********************************************************************
	if (!poObject) return;
	if (document.layers){//NS4
			poObject.document.open();
			poObject.document.write("<layer top=\"0\" left=\"0\">");
			poObject.document.write(psHTML);
			poObject.document.write("</layer>");
			poObject.document.close();
	}
	else{//explorer o DOM
		if (typeof(poObject.innerHTML)!="undefined"){//algunos navegadores no lo soportan (no está recogido en el estándar DOM)
			poObject.innerHTML="";//bug en mac
			poObject.innerHTML=psHTML;
			
		}
	}
}
function moveLayerTo(poLayer,pnX,pnY){

	//**********************************************************************
	//***Función: moveLayerTo()
	//***Objetivo: mueve la capa a un punto (coordenadas X,Y)
	//***Parámetros: poLayer - objeto capa a mover
	//***			 pnX - posición x
	//***			 pnY - posición y
	//**********************************************************************
	if (!poLayer) return;
	if (document.layers){//NS4
			poLayer.moveTo(pnX,pnY);
	}
	else{//explorer o DOM
			poLayer.style.top=pnY;
			poLayer.style.left=pnX;
	}
}
function moveLayerBy(poLayer,pnX,pnY){

	//**********************************************************************
	//***Función: moveLayerBy()
	//***Objetivo: desplaza la capa una distancia
	//***Parámetros: poLayer - objeto capa a mover
	//***			 pnX - distancia x
	//***			 pnY - distancia y
	//**********************************************************************
	if (!poLayer) return;
	if (document.layers){//NS4
			poLayer.moveBy(pnX,pnY);
	}
	else{//explorer o DOM
			poLayer.style.top=parseInt(poLayer.style.top)+pnY;
			poLayer.style.left=parseInt(poLayer.style.left)+pnX;
	}
}
function clipLayerTo(poLayer,pnX,pnY){

	//**********************************************************************
	//***Función: moveLayerBy()
	//***Objetivo: desplaza la capa una distancia
	//***Parámetros: poLayer - objeto capa a mover
	//***			 pnX - distancia x
	//***			 pnY - distancia y
	//**********************************************************************
	if (!poLayer) return;
	if (document.layers){//NS4
		poLayer.clip.right=pnX;
		poLayer.clip.bottom=pnY;
	}
	else{//explorer o DOM
		poLayer.style.clip="rect(auto "+pnX+ " "+pnY+" auto)";
	}
}
function fadeOutLayer(poLayer,pnTime) {

	//**********************************************************************
	//***Función: fadeOutLayer()
	//***Objetivo: Hace un fundido de mas a menos de una capa
	//***Parámetros: poLayer - objeto capa a Fundir
	//***			 pnTime - Tiempo de fundido
	//**********************************************************************
	if (!poLayer) return;
	if (document.all){ 
	    poLayer.style.filter="blendTrans(duration="+pnTime+")";
	    poLayer.filters.blendTrans.apply();
	    poLayer.style.visibility="hidden";
	    poLayer.filters.blendTrans.play();
	}
	else{
		hideLayer(poLayer)
	}
}
function fadeInLayer(poLayer,pnTime) {

	//**********************************************************************
	//***Función: fadeInLayer()
	//***Objetivo: Hace un fundido de menos a más de una capa
	//***Parámetros: poLayer - objeto capa a Fundir
	//***			 pnTime - Tiempo de fundido
	//**********************************************************************
	if (!poLayer) return;
	if (document.all){
	    poLayer.style.filter="blendTrans(duration="+pnTime+")";
	   	poLayer.filters.blendTrans.apply();
	    poLayer.style.visibility="visible";
	    poLayer.filters.blendTrans.play();
	}
	else{
		showLayer(poLayer)
	}
}