//Funcion que cambia el contenido de una capa
function contenidocapa(id,contenido)
{
 if(document.all)
   document.all(id).innerHTML=contenido;
 else if(document.getElementById)
   document.getElementById(id).innerHTML=contenido;
 else if(document.layers)
 {
   with(document.layers[id])
   {
     document.open();
     document.write(contenido);
     document.close();
   }
 }
}

//Funcion que comprueba si existe una capa
function existir(id)
{
	var existe = false;
		
	if (document.all)
  {
		if (document.all(id)) existe = true;		    
	}
  else if (document.layers)
  {  	
    if (document.layers[id]) existe = true;		    
  }
  else if (document.getElementById)
  {  	
    if (document.getElementById(id)) existe = true;
	}
		
	return existe;
}

//Funcion para mostrar el contenido de la ficha despues de la carga
//valores: si es 0 esta visible y 1 esta oculto
function visibilidadmenu(id,valor)
{	
	//Si existe la capa
	if (existir(id))
	{
		if (document.all)
		{
			if (valor==0) document.all(id).style.visibility="hidden";
		  else document.all(id).style.visibility="visible";
		}
		else if (document.layers)
		{
			if (valor == 0) document.layers[id].visibility="hide";
			else document.layers[id].visibility="show";   
		}
		else if (document.getElementById)
		{
			if (valor==0) document.getElementById(id).style.visibility="hidden";
		  else document.getElementById(id).style.visibility="visible";
		}
	}
}

//Calcula el alto de una capa
function altoCapa(id)
{  
  var alto;
  
  //Si existe la capa
	if (existir(id))
	{      
	  //Se obtiene el alto de la capa 
	  if(document.all)  eval('alto = document.all.'+id+'.scrollHeight')
	  else if(document.layers) eval('alto = document.'+id+'.document.height')
	  else if(document.getElementById) eval('alto = document.getElementById("'+id+'").offsetHeight')  
  }
  
  return alto;
}

//Calcula el ancho de una capa
function anchoCapa(id)
{  
  var ancho;
  
  //Si existe la capa
	if (existir(id))
	{
	  //Se obtiene el ancho de la capa 
	  if(document.all)  eval('ancho = '+id+'.scrollWidth')
	  else if(document.layers) eval('ancho = document.'+id+'.document.width')
	  else if(document.getElementById) eval('ancho = document.getElementById("'+id+'").offsetWidth')
  }
  return ancho;
}

//Función que devuelve las 4 coordenadas de una capa
function coordenadasCapa(id)
{
	//Datos de las capas, donde: [0]=alto0;[1]=alto1;[2]=ancho0;[3]=ancho1;
	/* ancho0		ancho1
			*--------*alto0
			|        |
			*--------*alto1		 			   
	*/
	var datos = new Array(4);
	
	//Crear las medidas de la capa
	if (document.all)
	{		
		//alto0= top de la capa
		datos[0]= parseInt(document.all(id).style.top);
		//alto1= top de la capa + alto de la capa
		datos[1]= datos[0] + altoCapa(id);
		//ancho0= left de la capa
		datos[2]= parseInt(document.all(id).style.left);
		//ancho1= left de la capa + ancho de la capa
		datos[3]= datos[2] + anchoCapa(id);
	}
	else if (document.layers)
	{	
		//alto0= top de la capa		
		datos[0]= parseInt(document.layers[id].top);
		//alto1= top de la capa + alto de la capa		
		datos[1]= datos[0] + altoCapa(id);
		//ancho0= left de la capa
		datos[2]= parseInt(document.layers[id].left);
		//ancho1= left de la capa + ancho de la capa
		datos[3]= datos[2] + anchoCapa(id);
	}
	else if (document.getElementById)
	{		
		//alto0= top de la capa
		datos[0]= parseInt(document.getElementById(id).style.top);
		//alto1= top de la capa + alto de la capa		
		datos[1]= datos[0] + altoCapa(id);
		//ancho0= left de la capa
		datos[2]= parseInt(document.getElementById(id).style.left);
		//ancho1= left de la capa + ancho de la capa
		datos[3]= datos[2] + anchoCapa(id);
	}	
	
	return datos;
}

//Funcion para poner un nuevo left a una capa
function ponerleft(id,valor)
{
	//Si existe la capa
	if (existir(id))
	{
	  if (document.all)
	  {
	    document.all(id).style.left=valor; 
	  }
	  else if (document.layers)
	  {
	    document.layers[id].left=valor;    
	  }
	  else if (document.getElementById)
	  {
	    document.getElementById(id).style.left=valor;    
	  }	
	}
}

//Funcion para poner un nuevo top a una capa
function ponertop(id,valor)
{	
	//Si existe la capa
	if (existir(id))
	{
	  if (document.all)
	  {
	    document.all(id).style.top=valor;
	  }
	  else if (document.layers)
	  {
	    document.layers[id].top=valor;
	  }
	  else if (document.getElementById)
	  {
	    document.getElementById(id).style.top=valor;
	  }	
	}
}

//Funcion para devolver el top actual de una capa
function devolvertop(id)
{
	var topactual;
	
	//Si existe la capa
	if (existir(id))
	{	
	  if (document.all)
	  {
	    topactual = parseInt(document.all(id).style.top);
	  }
	  else if (document.layers)
	  {    
	    topactual = parseInt(document.layers[id].top);
	  }
	  else if (document.getElementById)
	  {    
	    topactual = parseInt(document.getElementById(id).style.top);
	  }
	}
  return topactual;
}

//Funcion para devolver el left actual de una capa
function devolverleft(id)
{
	var leftactual;
	
	//Si existe la capa
	if (existir(id))
	{
	  if (document.all)
	  {
	    leftactual = parseInt(document.all(id).style.left);
	  }
	  else if (document.layers)
	  {    
	    leftactual = parseInt(document.layers[id].left);
	  }
	  else if (document.getElementById)
	  {    
	    leftactual = parseInt(document.getElementById(id).style.left);
	  }
	}
  return leftactual;
}

//Funciones del Clip
//Devuelve un clip para asignar a la propiedad
//En n4.5 se pasan los 4 valores, en el resto se pasa la cadena directamente
function ponerClipeo(id, cliptop, clipleft, clipbottom, clipright)
{
	var clipValores = obtenerValoresClip(id);//cogemos los valores del clip antiguo
	clipValores[0] = cliptop; 		//Variamos Top	del Clip
  clipValores[1] = clipleft; 		//Variamos left	del Clip
	clipValores[2] = clipbottom;		//Variamos Bottom del Clip
	clipValores[3] = clipright;		//Variamos right del Clip

	//para netscape 4.5
	if(document.layers)
	{
	  var clipNuevo= clipValores;
	}
	else
	{
	  // crear un nuevo clip pasandole el array de valores y nos devuelve el nuevo clip en string
	  var clipNuevo = crearClipNuevo(clipValores);
	}
	
	return clipNuevo; // pasamos el nuevo Clip
	
}

//Devuelve los valores de clip en un array
function obtenerValoresClip(id)
{
	var objCapa;

	if (document.all)
	{
		objCapa = document.all(id);
	}
        else if (document.layers)
        {
		objCapa = document.layers[id];
        }
	else if (document.getElementById)
	{
		objCapa = document.getElementById(id);
	}

  //Si es netscape 4.5
  if (document.layers)
  {
  	var clipValores = new Array(4);
    clipValores[0]= objCapa.clip.top;
    clipValores[1]= objCapa.clip.right;
    clipValores[2]= objCapa.clip.bottom;
    clipValores[3]= objCapa.clip.left;
  }
  else
  {
	  var clip = objCapa.style.clip; //cogemos el clip de la capa dada
  	var clipValores = clip.split("rect(")[1].split(" "); //separamos el clip en subcadenas de strings
 	  for (var i=0; i<clipValores.length;i++)
  	  {
		clipValores[i]= parseInt(clipValores[i]) // los valores que nos resultan de esa separacion los pasamos a enteros
	  }
  }

	return clipValores; //pasamos los valores en un array de enteros
}

// Se recibe el array de enteros con los valores del clip, para crear la cadena para ie y n6
function crearClipNuevo(clipValores)
{	
	//vamos creando la estructura: rect((valor)px (valor)px (valor)px (valor)px)
	clipNuevo= "rect(";
 	for (var i=0; i<clipValores.length;i++)
	{
		clipNuevo += clipValores[i] + "px ";
	}
	clipNuevo += ")";
	return clipNuevo; //devolvemos el nuevo clip	
}

//Asigna el valor de clip de la capa
function establecerclip(id,daltosclip)
{	
  //Clipear la capa
  if (document.all)
  {
    document.all(id).style.clip=ponerClipeo(id,daltosclip[0],daltosclip[1],daltosclip[2],daltosclip[3]); 
  }
  else if (document.layers)
  {
    document.layers[id].clip.top=daltosclip[0];
    document.layers[id].clip.right=daltosclip[1];
    document.layers[id].clip.bottom=daltosclip[2];
    document.layers[id].clip.left=daltosclip[3];
  }
  else if (document.getElementById)
  {
    document.getElementById(id).style.clip=ponerClipeo(id,daltosclip[0],daltosclip[1],daltosclip[2],daltosclip[3]);
  }
}

//Funcion para recolocar la capa en su posición actual + unas coordenadas dadas
function recolocar(id,x,y)
{	
	//Si existe la capa
	if (existir(id))
	{
		if (document.all)
		{
			document.all(id).style.left = parseInt(document.all(id).style.left) + x;		
			document.all(id).style.top = parseInt(document.all(id).style.top) + y;			
		}
		else if (document.layers)
		{
			document.layers[id].left = document.layers[id].left + x;
			document.layers[id].top = document.layers[id].top + y;
				
		}
		else if (document.getElementById)
		{
			document.getElementById(id).style.left = parseInt(document.getElementById(id).style.left) + x;
			document.getElementById(id).style.top = parseInt(document.getElementById(id).style.top) + y;	
		}	
	}
}

//Funcion que redimensiona una capa
function redimcapa(ancho,alto)
{  
  if (document.all)
	{
		document.all.carga.style.width=ancho;
  	document.all.carga.style.height=alto;
	}
	else if (document.layers)
	{
		document.layers['carga'].width=ancho;
		document.layers['carga'].height=alto;
			
	}
	else if (document.getElementById)
	{
		document.getElementById('carga').style.width=ancho;
		document.getElementById('carga').style.height=alto;
	}	
}

//Funcion que devuelve el objeto capa
function objetoCapa(id)
{	
	var objeto;
  if (document.all)
	{
		objeto = document.all(id);
	}
	else if (document.layers)
	{
		objeto = document.layers[id];					
	}
	else if (document.getElementById)
	{
		objeto = document.getElementById(id);		
	}
	return objeto;
}

function contenidocapa(id,contenido)
{
	if (existir(id))
	{
		 if(document.all)
		   document.all(id).innerHTML=contenido;
		 else if(document.getElementById)
		   document.getElementById(id).innerHTML=contenido;
		 else if(document.layers)
		 {
		   with(document.layers[id])
		   {
		     document.open();
		     document.write(contenido);
		     document.close();
		   }
		 }
	}
}
