/* layerutilities.js
 * An attempt to provide a level of abstraction for layer/div
 * operations.
 */

isIE5=navigator.userAgent.indexOf('MSIE 5.')>0;

function getElement(name) {
   // Debug("getElement '" + name + "'");
   if (isIE5) return document.all[name]
   if (document.getElementById) return document.getElementById(name)
   if (document.all) return document.all[name]
   if (document.layers) return document[name]
}

function getDoc(name) {
   if (isIE5) return document.all[name].document
   if (document.getElementById) return document.getElementById(name).ownerDocument
   if (document.all) return document.all[name].document
   if (document.layers) return document[name].document
}

function divWidth(name) {
   // Debug("divWidth '" + name + "'");
  if (isIE5) return document.all[name].offsetWidth
   if (document.getElementById) return document.getElementById(name).offsetWidth
   if (document.all) return document.all[name].offsetWidth
   if (document.layers) return document[name].document.width
}

function divHeight(name) {
   if (isIE5) return document.all[name].offsetHeight
   if (document.getElementById) return document.getElementById(name).offsetHeight
   if (document.all) return document.all[name].offsetHeight
   if (document.layers) return document[name].document.height
}

function getLayer(name) {
   // Debug("getLayer '" + name + "'");
   if (isIE5) return document.all[name].style
   if (document.getElementById) return document.getElementById(name).style
   if (document.all) return document.all[name].style
   if (document.layers) return document[name]
}

function getX(layer) {
   layer=getLayer(layer)
   if (isIE5) return layer.pixelLeft
   if (document.getElementById) return parseInt(layer.left)
   if (document.all) return layer.pixelLeft
   if (document.layers) return layer.x
}

function getY(layer) {
   layer=getLayer(layer)
   if (isIE5) return layer.pixelTop
   if (document.getElementById) return parseInt(layer.top)
   if (document.all) return layer.pixelTop
   if (document.layers) return layer.y
}

function getLanguage() {
   var lang=navigator.userLanguage?navigator.userLanguage:navigator.language
   return lang.substr(0,2)
}

function setClip(layer,x,y,t,r,b,l) {
   layer=getLayer(layer)
   if (isIE5) {
      layer.clip='rect('+t+'px '+r+'px '+b+'px '+l+'px)'
      layer.pixelLeft=x
      layer.pixelTop=y
   } else if (document.getElementById) {
      layer.left=x
      layer.top=y
      layer.clip='rect('+t+' '+r+' '+b+' '+l+')'
   } else if (document.all) {
      layer.clip='rect('+t+'px '+r+'px '+b+'px '+l+'px)'
      layer.pixelLeft=x
      layer.pixelTop=y
      layer.overflow='hidden'
   } else if (document.layers) {
      layer.clip.top=t
      layer.clip.right=r
      layer.clip.bottom=b
      layer.clip.left=l
      layer.moveTo(x,y)
   }
}

function setWidth(layer,w) {
   layer=getLayer(layer)
   if (isIE5)
      layer.posWidth=w
   else if (document.getElementById)
      layer.width=w
   else if (document.all)
      layer.posWidth=w
   else if (layer.clip)
      layer.clip.width=w
}

function output(layer,html) {
   if (isIE5) {
      layer=eval(layer)
      layer.innerHTML=html
   } else if (document.getElementById)
      document.getElementById(layer).innerHTML=html
   else if (document.all) {
      layer=eval(layer)
      layer.innerHTML=html
   } else if (document.layers) {
      var doc=getDoc(layer)
      doc.open()
      doc.writeln(html)
      doc.close()
   }
}

function setXY(layer,x,y) {
   layer=getLayer(layer)
   if (isIE5) {
      layer.pixelLeft=x
      layer.pixelTop=y
   } else if (document.getElementById) {
      layer.left=x
      layer.top=y
   } else if (document.all) {
      layer.pixelLeft=x
      layer.pixelTop=y
   } else if (document.layers)
      layer.moveTo(x,y)
}

function center(layer,y) { setXY(layer,Math.round((width-divWidth(layer)-leftMargin-rightMargin)/2)+leftMargin,y) }

function setCursor(curtype) { if (document.all) document.body.style.cursor=curtype }

function setVisibility(layer,vis) {
   layer=getLayer(layer)
   layer.visibility=(vis?'visible':'hidden')
}

function setOpacity(layer, opacity) {
	layer=getElement(layer);
	if (layer.filters)
		layer.filters.alpha.opacity = opacity;
	else if (layer.style.MozOpacity)
		layer.style.MozOpacity = opacity / 100;
}
