<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>Fill Table Hit Test</title>
  <style>
    body { margin: 0px 0px 0px 0px; }
  </style>
  <script language="JavaScript" type="text/javascript">
    var cellHeight = 20; 
    var logMsg = "";
    var lastSuccess = 0;
    var failed = false;

    if (window.testRunner) {
        testRunner.dumpAsText();
        window.testRunner.waitUntilDone();
    }

    function cellHit(cell) {
      var cellId = 24 * cell.parentNode.rowIndex  + cell.cellIndex;
      lastSuccess = cellId;
    }

    function doTest(cellwidth) {
      var ypos = cellHeight;
      for (var row = 0; row < 24; row++) {
        var xpos = cellwidth;
        for (var col = 0; col < 19; col++) {
          var cellId = 24 * row + col;
          logMsg += "Attempting to hit cell at row: " + row + ", column: " + col + ": ";
          var elem = document.elementFromPoint(xpos, ypos);
          if (elem) elem.onmousemove();
          var success = lastSuccess == cellId;
          if (!success) failed = true;
          logMsg += (success ? "SUCCESS" : "FAIL") + "<br />";
          xpos += cellwidth + 1;
        }
        ypos += cellHeight;
      }
      document.body.innerHTML =(failed ? "FAIL!!!<br/>" : "SUCCESS!!!<br/>") +logMsg;
      if (window.testRunner) {
          window.testRunner.notifyDone();
      }
    }

    function CreateTable(tablewidth, rowcount, colcount) {
      var cellwidth = (tablewidth / colcount) - 1;
      var tablestr = "<table style=\"table-layout:fixed;\" border=\"1\" width=\"" + 
                     tablewidth + "\" cellspacing=\"0\" cellpadding=\"0\">";
      for (var row = 0; row < rowcount; row++) {
        var rowstr = "<tr height=\"20\">";
        for (var col = 0; col < colcount; col++) {
          var cellId = "r" + row + "c" + col;
          var colstr = "<td width=\"" +  cellwidth + "\" id=\"" + cellId + "\" onmousemove=\"cellHit(this)\"></td>";
          rowstr += colstr;
        }
        rowstr += "</tr>";
        
        tablestr += rowstr;
      }
      tablestr += "</table>";
      document.getElementById('tablebox').innerHTML = tablestr;
      doTest(Math.round(cellwidth));
    }
  </script>
</head>

<body onload="CreateTable(500, 50, 20);" >
  <div id="tablebox" style="overflow:hidden; width:500px; height:500px;"></div>
</body>

</html>

