

function xTop(e,iY) {

  if(!(e=xGetElementById(e))) return 0;

  var css=xDef(e.style);

  if(css && xStr(e.style.top)) {

    if(xNum(iY)) e.style.top=iY+'px';

    else {

      iY=parseInt(e.style.top);

      if(isNaN(iY)) iY=0;

    }

  }

  else if(css && xDef(e.style.pixelTop)) {

    if(xNum(iY)) e.style.pixelTop=iY;

    else iY=e.style.pixelTop;

  }

  else if(xDef(e.top)) {

    if(xNum(iY)) e.top=iY;

    else iY=e.top;

  }

  return iY;

}

function xWidth(e,uW) {

  if(!(e=xGetElementById(e))) return 0;

  if (xNum(uW)) { // v3.13.1

    if (uW<0) uW = 0;

    else uW=Math.round(uW);

  }

  else uW=0;

  var css=xDef(e.style);

  if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {

    if(uW) xSetCW(e, uW);

    uW=e.offsetWidth;

  }

  else if(css && xDef(e.style.pixelWidth)) {

    if(uW) e.style.pixelWidth=uW;

    uW=e.style.pixelWidth;

  }

  else if(xDef(e.clip) && xDef(e.clip.right)) {

    if(uW) e.clip.right=uW;

    uW=e.clip.right;

  }

  return uW;

}

function xHeight(e,uH) {

  if(!(e=xGetElementById(e))) return 0;

  if (xNum(uH)) { // v3.13.1

    if (uH<0) uH = 0;

    else uH=Math.round(uH);

  }

  else uH=0;

  var css=xDef(e.style);

  if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {

    if(uH) xSetCH(e, uH);

    uH=e.offsetHeight;

  }

  else if(css && xDef(e.style.pixelHeight)) {

    if(uH) e.style.pixelHeight=uH;

    uH=e.style.pixelHeight;

  }

  else if(xDef(e.clip) && xDef(e.clip.bottom)) {

    if(uH) e.clip.bottom=uH;

    uH=e.clip.bottom;

  }

  return uH;

}

function xLeft(e,iX) {

  if(!(e=xGetElementById(e))) return 0;

  var css=xDef(e.style);

  if (css && xStr(e.style.left)) {

    if(xNum(iX)) e.style.left=iX+'px';

    else {

      iX=parseInt(e.style.left);

      if(isNaN(iX)) iX=0;

    }

  }

  else if(css && xDef(e.style.pixelLeft)) {

    if(xNum(iX)) e.style.pixelLeft=iX;

    else iX=e.style.pixelLeft;

  }

  else if(xDef(e.left)) {

    if(xNum(iX)) e.left=iX;

    else iX=e.left;

  }

  return iX;

}

function xNum(n) {

  return typeof(n)=='number';

}

function xStr(s) {

  return typeof(s)=='string';

}

function xGetElementById(e) {

  if(typeof(e)!='string') return e;

  if(document.getElementById) e=document.getElementById(e);

  else if(document.all) e=document.all[e];

  else if(document.layers) e=xLayer(e);

  else e=null;

  return e;

}

function xParent(e,bNode){

  if (!(e=xGetElementById(e))) return null;

  var p=null;

  if (!bNode && xDef(e.offsetParent)) p=e.offsetParent;

  else if (xDef(e.parentNode)) p=e.parentNode;

  else if (xDef(e.parentElement)) p=e.parentElement;

  else if (xDef(e.parentLayer)){if (e.parentLayer!=window) p=e.parentLayer;}

  return p;

}

function xDef() {

  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}

  return true;

}

function xPageX(e) {

  if (!(e=xGetElementById(e))) return 0;

  if (xDef(e.pageX)) return e.pageX;

  var x = 0;

  while (e) {

    if (xDef(e.offsetLeft)) x += e.offsetLeft;

    e = xParent(e);

  }

  return x;

}

function xPageY(e) {

  if (!(e=xGetElementById(e))) return 0;

  if (xDef(e.pageY)) return e.pageY;

  var y = 0;

  while (e) {

    if (xDef(e.offsetTop)) y += e.offsetTop;

    e = xParent(e);

  }

  return y;

}