//// xl.js is x.js with some functions removed

/* x.js
 * version 2.01
 * basic cross-browser dhtml library using object detection
 * Copyright (c) 2002 Michael Foster (mike@cross-browser.com)
 * This library is distributed under the terms of the
 * GNU Lesser General Public License (gnu.org).
*/

//// Core Functions

function xGetElementById(sId) {
  var ele = null;
  if (document.getElementById) ele = document.getElementById(sId);
  else if (document.all) ele = document.all[sId];
  else if (document.layers) ele = nnGetElementById(sId);
  return ele;
}

function nnGetElementById(sId, oParent) {
  var i, layer, found=null;
  if (!oParent) oParent = window;
  for (i = 0; i < oParent.document.layers.length; i++) {
    layer = oParent.document.layers[i];
    if (layer.id == sId) return layer;
    if (layer.document.layers.length) found = nnGetElementById(sId,layer);
    if (found) return found;
  }
  return null;
}

//// Element Functions

// Appearance

function xShow(sId) {
  var ele = xGetElementById(sId);
  if (ele.style) ele.style.visibility = 'visible';
  else if (document.layers) ele.visibility = 'show';
	return null;
}

function xHide(sId) {
  var ele = xGetElementById(sId);
  if (ele.style) ele.style.visibility = 'hidden';
  else if (document.layers) ele.visibility = 'hide';
	return null;
}

function xRemove(sId) {
  var ele = xGetElementById(sId);
  if (ele.style) {
		ele.style.visibility = 'hidden';
		ele.style.display = 'none';
		}
  else if (document.layers) ele.visibility = 'hide';
	return null;
}


function xDisplay(sId) {
  var ele = xGetElementById(sId);
  if (ele.style) {
		ele.style.visibility = 'visible';
		ele.style.display = 'inline';
		}
  else if (document.layers) ele.visibility = 'show';
	return null;
}

function xBackground(sId, sBgColor, sBgImage) {
  var bg = "", ele = xGetElementById(sId);
  if (ele.style) {
    if (arguments.length > 1)
      ele.style.backgroundColor = sBgColor;
    if (arguments.length == 3)
      ele.style.backgroundImage = "url(" + sBgImage + ")";
    bg = ele.style.backgroundColor;
  }
  else if (document.layers) {
    if (arguments.length > 1) ele.bgColor = sBgColor;
    if (arguments.length == 3) ele.background.src = sBgImage;
    bg = ele.bgColor;
  }
  return bg;
}

// Size

function xHeight(sId, uH) {
  var h=0, ele=xGetElementById(sId);
  if (ele.style) {
    if (ele.style.pixelHeight) {
      if (arguments.length==2) ele.style.pixelHeight = uH;
      h = ele.style.pixelHeight;
    }
    else {
      if (arguments.length==2) ele.style.height = uH + "px";
      h = parseInt(ele.style.height);
    }
  }  
  else if (document.layers) {
    h = ele.clip.height;
  }
  return h;
}


//// Window Functions

// Size

function xClientHeight() {
  var h = 0;
  if (window.innerHeight) {
    h = window.innerHeight;
    if (!window.opera && document.width > window.innerWidth) h -= 16;
  }
  else if (document.body) {
    if (document.body.clientHeight) h = document.body.clientHeight;
  }  
  return h;
}

function DisplayMessage(pid) {
	if (xGetElementById(pid).style.display=='none') {
	    xGetElementById(pid).parentElement.style.zIndex = 5;
		xGetElementById(pid).style.display = 'block';
	} else {
		xGetElementById(pid).style.display = 'none';
	}
}


function findPosX(obj) {
	var curleft = 0;
	
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
	}
	
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	
	return curtop;
}

// end xl.js
