<html>
<head>
  <title>detail-page-sk demo</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <script src="../../node_modules/native-promise-only/npo.js"></script>
  <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <script src="bower_components/page/page.js"></script>
  <script src="bower_components/d3/d3.js"></script>
  <script src="../common/js/common.js"></script>
  <script src="../js/gold.js"></script>
  <script src="bower_components/sinonjs/sinon.js"></script>
  <script src="testdata.js"></script>
  <script>
    var server = sinon.fakeServer.create();
    server.respondImmediately = true;

    server.respondWith("GET", "/json/details", function(request) {
      var ret = {
        digest: testdata.fiveSearchResults.digests[0],
        commits: testdata.fiveSearchResults.commits
      };
      request.respond(200, {"Content-Type":"application/json"},
        JSON.stringify(ret));
    });

  </script>

  <link rel="import" href="detail-page-sk.html">

</head>
<body>
  <h2>detail-page-sk demo</h2>

  <dom-module id="main-document-element">
    <template>
        <detail-page-sk id="firstDetailsPage"></detail-page-sk>
        <br><br><br><br><br><br>
        <h2>Details when there is are no traces</h2>
        <detail-page-sk id="secondDetailsPage"></detail-page-sk>
    </template>

    <script>
      HTMLImports.whenReady(function () {
        Polymer({
          is: 'main-document-element',

          properties: {
          },

          ready: function() {
          },
        });
      });
    </script>
  </dom-module>

  <!-- Instantite the element defined above -->
  <main-document-element></main-document-element>

  <detail-page-sk></detail-page-sk>
</body>
</html>
