function getElementLeft(p_elm) {
  var x = 0;
  var elm;

  if(typeof(p_elm) == "object"){
    elm = p_elm;
  } else {
    elm = document.getElementById(p_elm);
  }

  while (elm != null) {
    x+= elm.offsetLeft;
    elm = elm.offsetParent;
  }

  return parseInt(x);
}

function getElementWidth(p_elm){
  var elm;

  if(typeof(p_elm) == "object"){
    elm = p_elm;
  } else {
    elm = document.getElementById(p_elm);
  }
  return parseInt(elm.offsetWidth);
}

function getElementRight(p_elm){
  return getElementLeft(p_elm) + getElementWidth(p_elm);
}

function getElementTop(p_elm) {
  var y = 0;
  var elm;

  if(typeof(p_elm) == "object"){
    elm = p_elm;
  } else {
    elm = document.getElementById(p_elm);
  }

  while (elm != null) {
    y+= elm.offsetTop;
    elm = elm.offsetParent;
  }
  return parseInt(y);
}

function getElementHeight(p_elm){
  var elm;

  if(typeof(p_elm) == "object"){
    elm = p_elm;
  } else {
    elm = document.getElementById(p_elm);
  }
  return parseInt(elm.offsetHeight);
}

function getElementBottom(p_elm){
  return getElementTop(p_elm) + getElementHeight(p_elm);
}

function getElementProperty(p_elm, p_property){
  var elm = null;

  if(typeof(p_elm) == "object"){
    elm = p_elm;
  } else {
    elm = document.getElementById(p_elm);
  }

  if (elm != null){

    if(elm.style){
      elm = elm.style;

        if(elm[p_property]){
	  return elm[p_property];
	} else {
	  return null;
        }

    } else {
      return null;
    }
  }
}

function setElementProperty(p_elm, p_property, p_value){
  var elm = null;

  if(typeof(p_elm) == "object"){
    elm = p_elm;
  } else {
    elm = document.getElementById(p_elm);
  }

  if((elm != null) && (elm.style != null)){
    elm = elm.style;
    elm[ p_property ] = p_value;
  }
}