// Postioning and show/hide parts of xbdhtml.js

// MODIFIED by JLa : mac added, used in  getEltPageTop() and ie copied from big sniffer
function Is ()
{
    var agt=navigator.userAgent.toLowerCase()
    this.mac   = (agt.indexOf("mac") != -1)
    this.major = stringToNumber(navigator.appVersion)
    this.minor = parseFloat(navigator.appVersion)
    this.nav  = ((agt.indexOf('mozilla')!=-1) && ((agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1)))
    this.nav2 = (this.nav && (this.major == 2))
    this.nav3 = (this.nav && (this.major == 3))
    this.nav4 = (this.nav && (this.major == 4))
  	this.nav5 =	(this.nav && (this.major == 5))
  	this.nav6 = (this.nav && (this.major == 5))
  	this.gecko = (this.nav && (this.major >= 5))
    this.ie   = (agt.indexOf("msie") != -1)
    this.ie3  = (this.ie && (this.major < 4))
    this.ie4  = (this.ie && (this.major == 4) && (agt.indexOf("msie 4")!=-1))
    this.ie4up  = (this.ie && (this.major >= 4))
    this.ie5  = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.")!=-1))
    this.ie5up = (this.ie && !this.ie3 && !this.ie4)
    this.ie6  = (this.ie && (this.major == 4) && (agt.indexOf("msie 6.")!=-1))
    this.opera = (agt.indexOf("opera") != -1)
    this.nav4up = this.nav && (this.major >= 4)
    this.ie4up  = this.ie  && (this.major >= 4)
}

var is = new Is();

function stringToNumber(s)
{
        return parseInt(('0' + s), 10)
}

function getElt () 
{ if (is.nav4)
  {
    var currentLayer = document.layers[getElt.arguments[0]];
    for (var i=1; i<getElt.arguments.length && currentLayer; i++)
    {   currentLayer = currentLayer.document.layers[getElt.arguments[i]];
    }
    return currentLayer;
  } 
  else if(document.getElementById && document.getElementsByName)
  { 
    var name = getElt.arguments[getElt.arguments.length-1];
    if(document.getElementById(name))                      //First try to find by id
       return document.getElementById(name);
    else if (document.getElementsByName(name))             //Then if that fails by name
	   return document.getElementsByName(name)[0];
  }
  else if (is.ie4up) {
    var elt = eval('document.all.' + getElt.arguments[getElt.arguments.length-1]);
    return(elt);
  }

}

function setEltVisibility (elt, value)
{  if (is.nav4) elt.visibility = value;
   else if (elt.style) elt.style.visibility = value;
}

function showElt(elt)
{
	setEltVisibility(elt,'visible');
}

function hideElt(elt)
{
	setEltVisibility(elt, 'hidden');
}

function getEltPageLeft(elt) {
  var x;

  if (is.nav4) {
    //return elt.pageX;
    // MODIFIED JLa: get .x if there is no .pageX
    return (elt.pageX)? elt.pageX : elt.x;
  }
  if (is.ie4up) {
    x = 0;
    while (elt.offsetParent != null) {
      x += elt.offsetLeft;
      elt = elt.offsetParent;
    }
    x += elt.offsetLeft;
    return x;
  }
  if (is.gecko) {
    x = 0;
    while (elt.offsetParent != null) {
      x += elt.offsetLeft;
      elt = elt.offsetParent;
    }
    x += elt.offsetLeft;
    return x;
  }
  return -1;
}

function getEltPageTop(elt) {
  var y = 0;

  if (is.nav4)
    //return elt.pageY;
    // MODIFIED JLa: get .y if there is no .pageY
    return (elt.pageY)? elt.pageY : elt.y;
  if (is.ie4up) {
    while (elt.offsetParent != null) {
      y += elt.offsetTop;
      elt = elt.offsetParent;
    }
    y += elt.offsetTop;
    return y;
  }

  if (is.mac && is.ie5)
  {
    y += stringToNumber(document.body.currentStyle.marginTop);
  }

  if (is.gecko) {
    while (elt.offsetParent != null) {
      y += elt.offsetTop;
      elt = elt.offsetParent;
    }
    y += elt.offsetTop;
    return y;
  }
  return -1;
}

function setEltLeft (elt, x) {
  if (is.nav4)     elt.left=x;
  else if (is.ie4up) elt.style.pixelLeft=x;
  else if (is.gecko) elt.style.left = (x + "px");
}

function getEltLeft (elt) {
  if (is.nav4)     return (elt.left);
  else if (is.ie4up) return (elt.style.pixelLeft);
  else if (is.gecko) return stringToNumber(elt.style.left);
}

function setEltTop (elt, y) 
{ if (is.nav4)     elt.top=y;
  else if (is.ie4up) elt.style.pixelTop=y;
  else if (is.gecko) elt.style.top= (y + "px");
}

function getEltTop (elt) 
{ if (is.nav4)     return (elt.top);
  else if (is.ie4up) return (elt.style.pixelTop);
  else if (is.gecko) return stringToNumber(elt.style.top);
}


