hs.position = function(el)   { 
   var parent = el;    
   var p = { x: parent.offsetLeft, y: parent.offsetTop }; 
    
   // START IMAGEMAP MOD 
   if (parent.tagName.match(/area/i)) { 
      var imgs = document.getElementsByTagName('IMG'); 
      for (i = 0; i < imgs.length; i++) { 
         try { 
            if (imgs[i].getAttribute('usemap').split('#')[1] == parent.parentNode.name) { 
               parent = imgs[i]; 
               break; 
            } 
         } catch (e) {} 
      } 
   } 
   // END IMAGEMAP MOD 

   while (parent.offsetParent)   { 
      parent = parent.offsetParent; 
      p.x += parent.offsetLeft; 
      p.y += parent.offsetTop; 
      if (parent != document.body && parent != document.documentElement) { 
         p.x -= parent.scrollLeft; 
         p.y -= parent.scrollTop; 
      } 
   } 
   return p; 
}