

// Swap de imagenes modo dreamweaver

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}


/*
Obtiene la distancia al borde superior de la pagina de un objeto imagen
imgElem : nombre de la capa
*/
function getTop(imgElem) {
  var yPos = 0;
	var imgMenu = document.images[imgElem];
	if(document.layers)	{yPos = imgMenu.y;}
	else if (imgMenu)	{
		if (document.getElementById) { //W3C DOM
			yPos = eval(imgMenu).offsetTop;
			tempEl = eval(imgMenu).offsetParent;
			while (tempEl != null) {
				yPos += tempEl.offsetTop;
				tempEl = tempEl.offsetParent;
			}
		}
		else { //navigator.appVersion.substr(0,3)=="4.0") //IE4 MAC
      yPos=0;
      obj=imgMenu;
      while (obj.tagName != 'HTML') {
        if (obj.parentNode) obj = obj.parentNode;
        else if (obj.parentElement) obj = obj.parentElement;
        if (obj.tagName.indexOf('T') == 0) {
          yPos += obj.offsetTop
        }
      }
      yPos=yPos+4;
	  }
  }
	return yPos;
}

/*
Obtiene la distancia al borde izquierdo de la pagina de un objeto imagen
imgElem : nombre de la capa
*/
function getLeft(imgElem) {
  var xPos = 0;
	var imgMenu = document.images[imgElem];
	if(document.layers)	{xPos = imgMenu.x;}
	else if (imgMenu)
  {
		if (document.getElementById) {//W3C DOM
			xPos = eval(imgMenu).offsetLeft;
			tempEl = eval(imgMenu).offsetParent;
			while (tempEl != null) {
				xPos += tempEl.offsetLeft;
				tempEl = tempEl.offsetParent;
			}
		}
		else { //navigator.appVersion.substr(0,3)=="4.0") //IE4 MAC
      xPos=0;
      obj=imgMenu;
      while (obj.tagName != 'HTML') {
        if (obj.parentNode) obj = obj.parentNode;
        else if (obj.parentElement) obj = obj.parentElement;
        if (obj.tagName.indexOf('T') == 0) {
          xPos += obj.offsetLeft
        }
      }
      //xPos=xPos+4;
	  }
  }
	return xPos;
}

/*
Ensenya una capa posicionantla relativa a una imatge que es passa, indicant distancia x i y
Si se li passa mes d'una capa, s'ha d'indicar totes les variables per cada una:
- nom de la capa 
- imatge respecte a la que es vol posicionar (r)
- distancia x (dx)
- distancia y (dy)
*/
function showLayerRelative(){
  var i,r,v,dx,dy,obj,args=showLayerRelative.arguments;
  for (i=0; i<(args.length-3); i+=4) {
    if ((obj=MM_findObj(args[i]))!=null) {       
      v='show';r=args[i+1];dx=args[i+2];dy=args[i+3];
      if (obj.style) { obj=obj.style; v='visible'; }
      obj.left=getLeft(r)+dx; obj.top=getTop(r)+dy;
      obj.visibility=v; 
    }
  }
}

/*
Amaga una o mes capes que se li passen per parametre
Si el primer parametre es -1, envia les capes a l'esquerra de la pagina per evitar scroll horitzontal
*/
function hideLayer(){
  var i,v,obj,moveLeft,starti,args=hideLayer.arguments;
  if (args[0]==-1){starti=1;moveLeft=true} else {starti=0;moveLeft=false;}
  for (i=starti; i<(args.length); i++) {
    if ((obj=MM_findObj(args[i]))!=null) {
      v='hide';
      if (obj.style) { obj=obj.style; v='hidden'; }
      obj.visibility=v; 
      if (moveLeft) { obj.left=0; }
    }
  }
}

