function getWidth(element)
{
  var width;
  
  if (element.offsetWidth)
    width = element.offsetWidth;
  else if (element.clientWidth)
    width = element.clientWidth;
  else
    width = element.scrollWidth;  
    
  width = parseInt(width);
  if (isNaN(width))
    return 0;
  else
    return width;
}


function getHeight(element)
{
  var height;
  
  if (element.offsetHeight)
    height = element.offsetHeight;
  else if (element.clientHeight)
    height = element.clientHeight;
  else
    height = element.scrollHeight;  
    
  height = parseInt(height);
  
  if (isNaN(height))
    return 0;
  else
    return height;
}
function getLeft(element)
{
  var curLeft = 0;

  if (element.offsetParent)
  {
    while (element.offsetParent)
    {
      curLeft += element.offsetLeft;
      element = element.offsetParent;
    }
  }
  else if (element.x)
    curLeft = element.x;
  
  return curLeft;
}
function getTop(element)
{
  var curTop = 0;
  if (element.offsetParent)
  {
    while (element.offsetParent)
    {

      curTop += element.offsetTop;
      element = element.offsetParent;
    }
  }
  else if (element.y)
    curTop = element.y;
  
  return curTop;
}


function getRightAlignOffset(element, target) 
{
  var offset = getLeft(target);
  offset += getWidth(target);
  offset -= getWidth(element);
  return offset;
}

function getStringWidth(string)
{
  if (string == '')
    return 0;
    
  var div = createHiddenDiv();
  div.innerHTML = string;
  
  return getWidth(div);
}

function getWindowWidth()
{
  if (window.innerWidth)
    return window.innerWidth;
  else if (document.documentElement && document.documentElement.clientWidth)
    return document.documentElement.clientWidth;
  else if (document.body && document.body.clientWidth)
    return document.body.clientWidth;
  else
    return -1;
}


function createHiddenDiv()
{

  var div = getElement('hiddenDiv');
  if (div == null)
  {
    div = document.createElement('div');
    div.style.position = "absolute";
    div.style.left = -10000;
    div.id = 'hiddenDiv';
    div.style.padding = '0px';
    div.style.margin = '0px';
    document.body.appendChild(div);
  }
    
  return div;
}
