//api.js

var ns4;
var op5;
var op6;
var agt;
var mac;
var ie;
var mac_ie;

function sniffBrowsers() {
  ns4 = document.layers;
  op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) ||(navigator.userAgent.indexOf("Opera/5")!=-1);
  op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) ||(navigator.userAgent.indexOf("Opera/6")!=-1);
  agt=navigator.userAgent.toLowerCase();
  mac = (agt.indexOf("mac")!=-1);
  ie = (agt.indexOf("msie") != -1);
  mac_ie = mac && ie;
}


function getStyleObject(objectId, doc) {
    if(document.getElementById && document.getElementById(objectId)) {
  return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
  return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
    return getObjNN4(document,objectId);
    } else {
  return false;
    }
}

function changeObjectVisibility(objectId, newVisibility) {
    var styleObject = getStyleObject(objectId, document);
    if(styleObject) {
  styleObject.visibility = newVisibility;
  return true;
    } else {
  return false;
    }
}

function findImage(name, doc) {
  var i, img;
  for (i = 0; i < doc.images.length; i++) {
      if (doc.images[i].name == name) {
      return doc.images[i];
    }
  }
  for (i = 0; i < doc.layers.length; i++) {
      if ((img = findImage(name, doc.layers[i].document)) != null) {
      img.container = doc.layers[i];
      return img;
      }
  }
  return null;
}

function getImage(name) {
  if (document.layers) {
      return findImage(name, document);
  }
  return null;
}

function getObjNN4(obj,name)
{
  var x = obj.layers;
  var foundLayer;
  for (var i=0;i<x.length;i++)
  {
    if (x[i].id == name)
      foundLayer = x[i];
    else if (x[i].layers.length)
      var tmp = getObjNN4(x[i],name);
    if (tmp) foundLayer = tmp;
  }
  return foundLayer;
}

function getElementHeight(Elem) {
  if (ns4) {
    var elem = getObjNN4(document, Elem);
    return elem.clip.height;
  } else {
    var elem;
    if(document.getElementById) {
      var elem = document.getElementById(Elem);
    } else if (document.all){
      var elem = document.all[Elem];
    }
    if (op5) {
      xPos = elem.style.pixelHeight;
    } else {
      xPos = elem.offsetHeight;
    }
    return xPos;
  }
}

function getElementWidth(Elem) {
  if (ns4) {
    var elem = getObjNN4(document, Elem);
    return elem.clip.width;
  } else {
    var elem;
    if(document.getElementById) {
      var elem = document.getElementById(Elem);
    } else if (document.all){
      var elem = document.all[Elem];
    }
    if (op5) {
      xPos = elem.style.pixelWidth;
    } else {
      xPos = elem.offsetWidth;
    }
    return xPos;
  }
}

function getElementLeft(Elem) {
  if (ns4) {
    var elem = getObjNN4(document, Elem);
    return elem.pageX;
  } else {
    var elem;
    if(document.getElementById) {
      var elem = document.getElementById(Elem);
    } else if (document.all){
      var elem = document.all[Elem];
    }
    xPos = elem.offsetLeft;
    tempEl = elem.offsetParent;
      while (tempEl != null) {
        xPos += tempEl.offsetLeft;
        tempEl = tempEl.offsetParent;
      }
    return xPos;
  }
}


function getElementTop(Elem) {
  if (ns4) {
    var elem = getObjNN4(document, Elem);
    return elem.pageY;
  } else {
    if(document.getElementById) {
      var elem = document.getElementById(Elem);
    } else if (document.all) {
      var elem = document.all[Elem];
    }
    yPos = elem.offsetTop;
    tempEl = elem.offsetParent;
    while (tempEl != null) {
        yPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
      }
    return yPos;
  }
}


function getImageLeft(myImage) {
  var x, obj;
  if (document.layers) {
    var img = getImage(myImage);
      if (img.container != null)
      return img.container.pageX + img.x;
    else
      return img.x;
    } else {
    return getElementLeft(myImage);
  }
  return -1;
}

function getImageTop(myImage) {
  var y, obj;
  if (document.layers) {
    var img = getImage(myImage);
    if (img.container != null)
      return img.container.pageY + img.y;
    else
      return img.y;
  } else {
    return getElementTop(myImage);
  }
  return -1;
}

function getImageWidth(myImage) {
  var x, obj;
  if (document.layers) {
    var img = getImage(myImage);
    return img.width;
  } else {
    return getElementWidth(myImage);
  }
  return -1;
}



function getImageHeight(myImage) {
  var y, obj;
  if (document.layers) {
    var img = getImage(myImage);
    return img.height;
  } else {
    return getElementHeight(myImage);
  }
  return -1;
}

function moveXY(myObject, x, y) {
  obj = getStyleObject(myObject)
  if (ns4) {
    obj.top = y;
    obj.left = x;
  } else {
    if (op5) {
      obj.pixelTop = y;
      obj.pixelLeft = x;
    } else {
      obj.top = y + 'px';
      obj.left = x + 'px';
    }
  }
}

function changeClass(Elem, myClass) {
  var elem;
  if(document.getElementById) {
    var elem = document.getElementById(Elem);
  } else if (document.all){
    var elem = document.all[Elem];
  }
  if (op5 || op6) elem.style.className = myClass;
  else elem.className = myClass;
}

function changeBGcolor(myObject, color) {
  if (ns4) {
    var obj = getObjNN4(document, myObject);
    obj.bgColor=color;
  } else {
    var obj = getStyleObject(myObject);
    if (op5) {
      obj.background = color;
    } else {
      obj.backgroundColor = color;
    }
  }
}

function changeImage(target, source) {
  var imageObj;
  //alert(eval(source).src);
  if (ns4) {
    imageObj = getImage(target);
    if (imageObj) imageObj.src = eval(source).src;
  } else {
    imageObj = eval('document.images.' + target);
    if (imageObj) imageObj.src = eval(source).src;
  }
}

