<!--
@license
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->

<script>

  window.addEventListener('load', function() {
    Polymer.ImportStatus._importsLoaded();
  });

  Polymer.ImportStatus = {

    _ready: false,

    _callbacks: [],

    whenReady: function(cb) {
      if (window.HTMLImports && !HTMLImports.useNative) {
        HTMLImports.whenReady(cb);
      } else {
        if (this._ready) {
          cb();
        } else {
          this._callbacks.push(cb);
        }
      }
    },

    _importsLoaded: function() {
      this._ready = true;
      this._callbacks.forEach(function(cb) {
        cb();
      });
    }
  };

</script>
<!--
@license
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->

<script>

  window.addEventListener('load', function() {
    Polymer.ImportStatus._importsLoaded();
  });

  if (window.HTMLImports) {
    HTMLImports.whenReady(function() {
      Polymer.ImportStatus._importsLoaded();
    });
  }

  Polymer.ImportStatus = {

    _ready: false,

    _callbacks: [],

    whenLoaded: function(cb) {
      if (this._ready) {
        cb();
      } else {
        this._callbacks.push(cb);
      }
    },

    _importsLoaded: function() {
      this._ready = true;
      this._callbacks.forEach(function(cb) {
        cb();
      });
      this._callbacks = [];
    }
  };

</script>
Use HTMLImports when available with window.load as backstop.
Use HTMLImports when available with window.load as backstop.
