function showHeatmapListingInfo(element,listingid,contextPath,period) {
  var div = $("popupElement");
  if(!div.visible()) {
    var offset = $(element).cumulativeOffset();
    var scrollOffset = $(element).cumulativeScrollOffset();
    if(offset[1] - scrollOffset[1] + div.getHeight() + element.getHeight() * 1.5 < getViewPortHeight()) {
      div.setStyle({position:'absolute',top:offset[1] + element.getHeight() * 1.5 +'px',left:offset[0] + 'px'});
    }else {
      div.setStyle({position:'absolute',top:offset[1] - div.getHeight() * 1.1 +'px',left:offset[0] + 'px'});
    }
    div.setOpacity(0.95);
    div.show();
    new Ajax.Updater(div,contextPath + "/listings/ajaxPopup.jsp", {
      parameters:{listingid:listingid,period:period}
    });
  }
}
function isWithin(event, element) {
  var delta = 2; //necessary if the movement of the mouse is slow to be sure to be outside element
  var offset = element.cumulativeOffset();
  var scrollOffset = element.cumulativeScrollOffset();
  return event.clientX - delta > offset[0] - scrollOffset[0] &&
         event.clientX + delta < offset[0] -scrollOffset[0] + element.getWidth()  &&
         event.clientY - delta > offset[1] - scrollOffset[1] &&
         event.clientY + delta< offset[1] - scrollOffset[1] + element.getHeight();
}
function getViewPortHeight() {
  var viewportheight;
 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
  if (typeof window.innerWidth != 'undefined')  {
    viewportheight = window.innerHeight;
  }
    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
  else if (typeof document.documentElement != 'undefined'
          && typeof document.documentElement.clientWidth !=
             'undefined' && document.documentElement.clientWidth != 0)  {
    viewportheight = document.documentElement.clientHeight;
  }
    // older versions of IE
  else  {
    viewportheight = document.getElementsByTagName('body')[0].clientHeight;
  }
  return viewportheight;
}
function hideHeatmapListingInfo(event,element) {
  if(event && isWithin(event,element)) {
  } else {
      $("popupElement").hide();
  }
}