<!doctype html>
<html>
<head>
  <style>
  body {
    margin: 0px;
  }
  div#editmenu {
    position: absolute;
    right: 0;
    z-index: 5;
    background: #eee;
    visibility: hidden;
  }
  body:hover div#editmenu {
    visibility: visible;
  }
  div#editmenu a {
    text-decoration: none;
    padding: 2px;
  }
  div#editmenu a:hover {
    background: #aaa;
  }
  #vizchart {
    position: relative;
    overflow: hidden;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  }
  #vizlog {
    white-space: pre;
  }
  #vizstatus {
    position: absolute;
    z-index: 4;
    width: 100%;
    text-align: center;
    padding-top: 1em;
  }
  #statussub {
    padding-left: 1em;
    color: #aaa;
  }
  .vizstep {
    margin-top: 2em;
    display: none;
  }
  .vizstep .text {
    font-family: mono;
    font-weight: bold;
  }
  .vizstep .grid {
    margin-left: 3em;
    max-height: 10em;
    width: 50%;
    overflow: auto;
  }
  </style>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js"></script>
  <script src="dygraph-combined.js"></script>
  <script src="https://www.google.com/jsapi"></script>
  <script>
  google.load('visualization', '1.0', {
    packages: ['table', 'corechart', 'treemap', 'annotatedtimeline']
  });
  </script>
  <script src="heatgrid.js"></script>
  <script src="render.js"></script>
</head>

<body>

<div id='editmenu'><a id='editlink' href='' target='_top'>edit</a></div>
<div id='vizstatus'>
  <div id='statustext'></div>
  <div id='statussub'></div>
  <div id='vizlog'></div>
</div>
<div id='vizraw'></div>
<div id='vizchart'></div>

<script>
$('#editlink').attr('href', '/edit' + window.location.search);
afterquery.render(window.location.search);
</script>

</body>
</html>
