/**
 * Obtiene la posición absoluta de un elemento html dentro de un documento
 * @param {HTMLElement} elemento del que se quiere obtener la posición
 * 
 * @return Objeto con las coordenadas, para acceder utilizar resultado.top o resultado.left
 */
function getAbsoluteElementPosition(element) {
  if (typeof element == "string")
    element = document.getElementById(element)
    
  if (!element) return { top:0,left:0 };
  
  var y = 0;
  var x = 0;
  while (element.offsetParent) {
    x += element.offsetLeft;
    y += element.offsetTop;
    element = element.offsetParent;
  }
  return {top:y,left:x};
}

/**
 * Obtiene la posición de la parte superior del elemento
 * @param {Object} inputObj
 */
function getTopPos(inputObj){
    var returnValue = inputObj.offsetTop;
    while ((inputObj = inputObj.offsetParent) != null) {
        if (inputObj.tagName != 'HTML') 
            returnValue += inputObj.offsetTop;
    }
    return returnValue;
}

/**
 * Obtiene la posición de la parte izquierda del elemento
 * @param {Object} inputObj
 */
function getLeftPos(inputObj){
    var returnValue = inputObj.offsetLeft;
    while ((inputObj = inputObj.offsetParent) != null) {
        if (inputObj.tagName != 'HTML') 
            returnValue += inputObj.offsetLeft;
    }
    return returnValue;
}

/**
 * Obtiene el scroll total de un elemento (el suyo, y de sus padres)
 * @param {Object} inputObj
 */
function getTopScroll(inputObj){
	var returnValue = 0;
	if(inputObj.scrollTop!=undefined)
		returnValue+= inputObj.scrollTop;
    while ((inputObj = inputObj.parentNode) != null) {    	
        if ((inputObj.tagName != 'HTML')&&(inputObj.scrollTop!=undefined))
            returnValue += inputObj.scrollTop;
    }
    return returnValue;
}
