
var isNS4=(document.layers) ? 1 : 0;
var isIE4=(document.all)? 1 : 0;
var isMoz=((document.getElementById) && !(isIE4)) ? 1 :0;

function cambiar_imagen (imagen, img)
{
	if (document.images)
	{
		document.images[imagen].src = img.src;
	}
}

function menu_over(fila, color)
{
 	if (!fila.contains(event.fromElement))
	{
		if (isNS4)
		{
			fila.cursor = 'hand';
		}
		if (isIE4||isMoz)
		{
			fila.style.cursor = 'hand';
			fila.bgColor = color;
		}
	}
}
function menu_out(fila, color)
{
	if (!fila.contains(event.toElement))
	{
		fila.style.cursor = 'default';
		fila.bgColor = color;
	}
}
function get_layer(name)
{
	if(isNS4){
		layer=findLayer(name, document);
		//if(layer==null)
		//alert('Pb de layer');
		return layer;
	} else if (isIE4){
		
		//window.status=document.all[name];
		return document.all[name];
	} else if (isMoz) {
		return document.getElementById(name);
	}
	//alert('Pb de noms');
	return null;	
}

function findLayer(name, doc) {
	var i, layer;
	//alert(doc.layers.length);
	for (i = 0; i < doc.layers.length; i++) { 
	layer = doc.layers[i];
	//alert(layer.name);
	if (layer.name == name)
		return layer;
	if (layer.document.layers.length > 0)
		if ((layer = findLayer(name, layer.document)) != null)
	        	return layer;
  	}
  return null;
}

function activar_mouse(function_mouse)
{
	if(isNS4||isMoz)
		document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = function_mouse;
}

function get_mouse(e)
{
	var mouse=new Array();
	mouse.x=0; mouse.y=0;
	if(isNS4||isMoz){
		mouse.x=e.pageX; mouse.y=e.pageY;
	}else if(isIE4){
		mouse.x=event.x+document.body.scrollLeft; mouse.y=event.y+document.body.scrollTop;
	}
	return mouse;
}

function ocultar_layer(layer) 
{
	if(layer==null)
	{
		return;
	}
	if (isNS4)
	{
		layer.visibility = "hide";
	}
	if (isIE4||isMoz)
	{
		layer.style.visibility = "hidden";
	}
}

function mostrar_layer(layer) {
	if(isNS4)
	{
		layer.visibility = "show";
	}
	if(isIE4||isMoz)
	{
		layer.style.visibility = "visible";
	}
}

function contenido_layer(layer,content)
{
	if(isNS4)
	{
		layer.document.write(content);
		layer.document.close();	
	}
	else if(isIE4||isMoz)
	{
		layer.innerHTML=content;
	}
}

function moveLayerTo(layer, x, y) {

  if (isNS4)
    layer.moveTo(x, y);
  if (isIE4) {
    layer.style.left = x;
    layer.style.top  = y;
  }
}

function moveLayerBy(layer, dx, dy) {

  if (isNS4)
    layer.moveBy(dx, dy);
  if (isIE4) {
    layer.style.pixelLeft += dx;
    layer.style.pixelTop  += dy;
  }
}

function getLeft(layer) {

  if (isNS4)
    return(layer.left);
  if (isIE4)
    return(layer.style.pixelLeft);
  return(-1);
}

function getTop(layer) {

  if (isNS4)
    return(layer.top);
  if (isIE4)
    return(layer.style.pixelTop);
  return(-1);
}

function getRight(layer) {

  if (isNS4)
    return(layer.left + getWidth(layer));
  if (isIE4)
    return(layer.style.pixelLeft + getWidth(layer));
  return(-1);
}

function getBottom(layer) {

  if (isNS4)
    return(layer.top + getHeight(layer));
  else if (isIE4)
    return(layer.style.pixelTop + getHeight(layer));
  return(-1);
}

function getPageLeft(layer) {

  if (isNS4)
    return(layer.pageX);
  if (isIE4)
    return(layer.offsetLeft);
  return(-1);
}

function getPageTop(layer) {

  if (isNS4)
    return(layer.pageY);
  if (isIE4)
    return(layer.offsetTop);
  return(-1);
}

function getWidth(layer) {

  if (isNS4) {
    if (layer.document.width)
      return(layer.document.width);
    else
      return(layer.clip.right - layer.clip.left);
  }
  if (isIE4) {
    if (layer.style.pixelWidth)
      return(layer.style.pixelWidth);
    else
      return(layer.clientWidth);
  }
  return(-1);
}

function getHeight(layer) {

  if (isNS4) {
    if (layer.document.height)
      return(layer.document.height);
    else
      return(layer.clip.bottom - layer.clip.top);
  }
  if (isIE4) {
    if (false && layer.style.pixelHeight)
      return(layer.style.pixelHeight);
    else
      return(layer.clientHeight);
  }
  return(-1);
}

function getzIndex(layer) {

  if (isNS4)
    return(layer.zIndex);
  if (isIE4)
    return(layer.style.zIndex);

  return(-1);
}

function setzIndex(layer, z) {

  if (isNS4)
    layer.zIndex = z;
  if (isIE4)
    layer.style.zIndex = z;
}

function move_layer_to(layer, x, y)
{
	//window.status=layer;
	if (isNS4)
		{	
		layer.moveTo(x, y);
		}
	if (isIE4||isMoz){
	//window.status=layer.style;
	layer.style.left = x;
	layer.style.top  = y;
	}
}

//-----------------------------------------------------------------------------
// Layer clipping.
//-----------------------------------------------------------------------------

function clipLayer(layer, clipleft, cliptop, clipright, clipbottom) {

  if (isNS4) {
    layer.clip.left   = clipleft;
    layer.clip.top    = cliptop;
    layer.clip.right  = clipright;
    layer.clip.bottom = clipbottom;
  }
  if (isIE4)
    layer.style.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
}

function getClipLeft(layer) {

  if (isNS4)
    return(layer.clip.left);
  if (isIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(0);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[3]);
  }
  return(-1);
}

function getClipTop(layer) {

  if (isNS4)
    return(layer.clip.top);
  if (isIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(0);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[0]);
  }
  return(-1);
}

function getClipRight(layer) {

  if (isNS4)
    return(layer.clip.right);
  if (isIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(layer.style.pixelWidth);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[1]);
  }
  return(-1);
}

function getClipBottom(layer) {

  if (isNS4)
    return(layer.clip.bottom);
  if (isIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(layer.style.pixelHeight);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[2]);
  }
  return(-1);
}

function getClipWidth(layer) {

  if (isNS4)
    return(layer.clip.width);
  if (isIE4) {
    var str = layer.style.clip;
    if (!str)
      return(layer.style.pixelWidth);

    var clip = getIEClipValues(layer.style.clip);
    return(clip[1] - clip[3]);
  }
  return(-1);
}

function getClipHeight(layer) {

  if (isNS4)
    return(layer.clip.height);
  if (isIE4) {
    var str =  layer.style.clip;
    if (!str)
      return(layer.style.pixelHeight);
    var clip = getIEClipValues(layer.style.clip);
    return(clip[2] - clip[0]);
  }
  return(-1);
}

function getIEClipValues(str) {

  var clip = new Array();
  var i;

  // Parse out the clipping values for IE layers.

  i = str.indexOf("(");
  clip[0] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[1] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[2] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[3] = parseInt(str.substring(i + 1, str.length), 10);
  return(clip);
}

//-----------------------------------------------------------------------------
// Layer scrolling.
//-----------------------------------------------------------------------------

function scrollLayerTo(layer, x, y, bound) {

  dx = getClipLeft(layer) - x;
  dy = getClipTop(layer) - y;
  
  scrollLayerBy(layer, -dx, -dy, bound);
}

function scrollLayerBy(layer, dx, dy, bound) {

  var cl = getClipLeft(layer);
  var ct = getClipTop(layer);
  var cr = getClipRight(layer);
  var cb = getClipBottom(layer);

  if (bound) {
    if (cl + dx < 0)

      dx = -cl;

    else if (cr + dx > getWidth(layer))
      dx = getWidth(layer) - cr;
    if (ct + dy < 0)

      dy = -ct;

    else if (cb + dy > getHeight(layer))
      dy = getHeight(layer) - cb;
  }

  clipLayer(layer, cl + dx, ct + dy, cr + dx, cb + dy);
  moveLayerBy(layer, -dx, -dy);
  
}

//-----------------------------------------------------------------------------
// Layer utilities.
//-----------------------------------------------------------------------------

function getLayer(name) {

  if (isNS4)
    return findLayer(name, document);
  if (isIE4)
    return eval('document.all.' + name);

  return null;
}

function findLayer(name, doc) {

  var i, layer;

  for (i = 0; i < doc.layers.length; i++) {
    layer = doc.layers[i];
    if (layer.name == name)
      return layer;
    if (layer.document.layers.length > 0) {
      layer = findLayer(name, layer.document);
      if (layer != null)
        return layer;
    }
  }

  return null;
}

//-----------------------------------------------------------------------------
// Window and page properties.
//-----------------------------------------------------------------------------

function getWindowWidth() {

  if (isNS4)
    return(window.innerWidth);
  if (isIE4)
    return(document.body.clientWidth);
  return(-1);
}

function getWindowHeight() {

  if (isNS4)
    return(window.innerHeight);
  if (isIE4)
    return(document.body.clientHeight);
  return(-1);
}

function getPageWidth() {

  if (isNS4)
    return(document.width);
  if (isIE4)
    return(document.body.scrollWidth);
  return(-1);
}

function getPageHeight() {

  if (isNS4)
    return(document.height);
  if (isIE4)
    return(document.body.scrollHeight);
  return(-1);
}

function getPageScrollX() {

  if (isNS4 || isMoz)
    return(window.pageXOffset);
  if (isIE4)
    return(document.body.scrollLeft);
  return(-1);
}

function getPageScrollY() {

  if (isNS4 || isMoz)
    return(window.pageYOffset);
  if (isIE4)
    return(document.body.scrollTop);
  return(-1);
}
