<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    
    <title>Jasmine Spec Runner</title>

    <!-- for each test, generate CSS/LESS link tags -->
    <% scripts.src.forEach(function(fullLessName) {
      var pathParts = fullLessName.split('/');
      var fullCssName = fullLessName.replace(/less/g, 'css');
      var lessName = pathParts[pathParts.length - 1];
      var name = lessName.split('.')[0]; %>
      <!-- the tags to be generated -->
      <link id="original-less:test-less-<%= name %>" title="test-less-<%= name %>" rel="stylesheet/less" type="text/css" href="<%= fullLessName %>">
      <link id="expected-less:test-less-<%= name %>" rel="stylesheet" type="text/css" href="<%= fullCssName %>">
    <% }); %>

    <!-- generate grunt-contrib-jasmine link tags -->
    <% css.forEach(function(style){ %>
      <link rel="stylesheet" type="text/css" href="<%= style %>">
    <% }) %>

    <!-- generate script tags for tests -->
    <% 
    
    var generateScriptTags = function(allScripts) {
        allScripts.forEach(function(script){
            if (script.indexOf('boot.js') > -1) {
                script = '../../test/browser/vendor/boot.js'
            }
            %><script src="<%= script %>"></script> <%
        });
    }; 
    
    generateScriptTags(scripts.polyfills);
    generateScriptTags(scripts.jasmine);
    generateScriptTags(scripts.boot);
    generateScriptTags(scripts.helpers);
    generateScriptTags(scripts.vendor);

    %>

    <!-- generate script tags for tests -->
    <% var toArray = function(scripts) {
        %>[<%
        scripts.forEach(function(scriptUrl, index){
            %>"<%= scriptUrl %>"<%
            if (index !== scripts.length -1) {
                %>,<%
            }
        });
        %>]<%
        }; %>

    <script>

        function loadScript(url,callback){
            var script = document.createElement('script');

            if(document.documentMode === 8){
                script.onreadystatechange = function(){
                    if (script.readyState === 'loaded'){
                        if (callback){callback()};
                    };
                };
            } else {
                script.onload = function(){
                    if (callback){callback()};
                };
            };
            script.src = url;
            document.body.appendChild(script);
        };

            var specs = <% toArray(scripts.specs) %>,
                reporters = <% toArray([].concat(scripts.reporters)) %>,
                runScripts = specs.concat(reporters);
        </script>

       <script>
        window.addEventListener('load', function() {

            function addNextScript() {
                // for sauce, see above. Additional step needed between loading jasmine and loading
                // the js reporter
                if (runScripts.length) {
                    var scriptSrc = runScripts.shift();
                    loadScript(scriptSrc, addNextScript);
                }
                else {
                    // deferred boot function
                    window.DEFER();
                }
            }
            addNextScript();

        });
    </script>
  </head>

  <body>
  <!-- content -->
  </body>
</html>