<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>SlickGrid Initialization Benchmark</title>
        <link rel="stylesheet" href="../slick.grid.css" type="text/css" media="screen" charset="utf-8" />
        <link rel="stylesheet" href="../css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css" media="screen" charset="utf-8" />
        <link rel="stylesheet" href="../examples/examples.css" type="text/css" media="screen" charset="utf-8" />
    </head>
    <body>
        <script src="http://code.jquery.com/jquery-1.7.2.js"></script>
        <script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
        <script src="../lib/jquery.event.drag-2.2.js"></script>

        <script src="../slick.core.js"></script>
        <script src="../slick.grid.js"></script>
        <script src="../slick.formatters.js"></script>

        <button onclick="bench(false)">Run w/o disposing</button>
        <button onclick="bench(true)">Run w/ disposing</button>

        <hr/>

        <div id="container" style="width:600px;height:100000px;"></div>

        <script>
        function bench(dispose) {
          var startTime = new Date();
          var container = $("#container");
          for (var i = 0; i < 20; i++) {
            var parentEl = $("<div style='width:600px;height:400px;'></div>").appendTo(container);
            var grid = createGrid(parentEl);
            if (dispose) {
              grid.destroy();
              parentEl.remove();
            }
          }
          alert((new Date() - startTime));
        }

        function createGrid(parentEl) {
          var data = [{}, {}, {}];
          var columns = [];
          for (var i = 0; i < 20; i++) {
            columns.push({id: "field" + i, name: "field" + i, field: "field" + i});
          }

          var options = {
            enableCellNavigation: true,
            enableColumnReorder: false
          };

          return new Slick.Grid(parentEl, data, columns, options);
        }
        </script>
    </body>
</html>