var ie = document.all ? 1 : 0;
var ns4 = document.layers ? 1 : 0;
var dom = !ie && document.getElementById ? 1 : 0;
var major = parseInt(navigator.appVersion)
var agent = navigator.userAgent.toLowerCase();
var macie4 = ie && major == 4 && agent.indexOf("5.") == -1 && agent.indexOf("mac") != -1;

function setVisible(name, v)
{
  v = v ?  'visible' : 'hidden';
  if(dom) document.getElementById(name).style.visibility = v;
  else if(ie) document.all[name].style.visibility = v;
  else if(ns4) document.layers[name].visibility = v;
}

function Layer(name)
{
  this.name = name;
  this.move = LayerMove;
  this.resize = LayerResize;
  this.setVisible = LayerSetVisible;
  this.setClip = LayerSetClip;
  
  if(dom) {
    this.layer = document.getElementById(this.name);
    var style = window.getComputedStyle(this.layer, null);
    this.width = parseInt(style.getPropertyValue('width'));
    this.height = parseInt(style.getPropertyValue('height'));
    this.images = document.images;
  }
  else if(ie) {
    this.layer = document.all[this.name];
    this.width = this.layer.clientWidth;
    this.height = this.layer.clientHeight;
    this.images = document.images;
  }
  else if(ns4) {
    this.layer = document.layers[this.name];
    this.width = this.layer.clip.width;
    this.height = this.layer.clip.height;
    this.images = this.layer.document.images;
  }
}

function LayerMove(x, y)
{
  if(dom) {
    this.layer.style.left = x + 'px';
    this.layer.style.top = y + 'px';
  }
  else if(ie) {
    this.layer.style.pixelLeft = x;
    this.layer.style.pixelTop = y;
  }
  else if(ns4) {
    this.layer.left = x;
    this.layer.top = y;
  }
}

function LayerResize(w, h)
{
  if(dom || ie) {
    this.layer.style.width = w + 'px';
    this.layer.style.height = h + 'px';
  }
  else {
    this.layer.resize(w, h);
  }
  
  this.width = w;
  this.height = h;
}

function LayerSetVisible(v)
{
  v = v ?  'visible' : 'hidden';
  if(dom || ie) this.layer.style.visibility = v;
  else if(ns4) this.layer.visibility = v;
}

function LayerSetClip(x, y, w, h)
{
  if(dom) {
    this.layer.style.clip = 'rect('+y+'px,'+(x+w)+'px,'+(y+h)+'px,'+x+'px)';
  }
  else if(ie) {
    this.layer.style.clip = 'rect('+y+'px '+(x+w)+'px '+(y+h)+'px '+x+'px)';
  }
  else if(ns4) {
    this.layer.clip.left = x;
    this.layer.clip.top = y;
    this.layer.clip.width = w;
    this.layer.clip.height = h;
  }
}

function anchPosition(name)
{
  var pos = new Object();
  if(ns4) {
    for(var i=0; i<document.anchors.length; ++i) {
      var anchor = document.anchors[i];
      if(anchor.name == 'a' + name) {
        pos.x = anchor.x;
        pos.y = anchor.y;
        break;
      }
    }
  }
  else if(ie) {
    var el = document.all['a'+name];
    pos.x = el.offsetLeft;
    pos.y = el.offsetTop;
    for(el = el.offsetParent; el; el=el.offsetParent) {
      pos.x += el.offsetLeft;
      pos.y += el.offsetTop;
    }
  }
  else if(dom) {
    var el = document.getElementById(name);
    var style = window.getComputedStyle(el, null);
    pos.x = parseInt(style.getPropertyValue('left'));
    pos.y = parseInt(style.getPropertyValue('top'));
  }
  
  return pos;
}

