<!doctype html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>JS_APPLICATION generated by emscripten</title>
    <style>
      body {margin:0px; padding:0px;}
      .emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; }
      textarea.emscripten { font-family: monospace; width: 80%; }
      div.emscripten { text-align: center; }
      /* the canvas *must not* have any border or padding, or mouse coords will be wrong */
      canvas.emscripten { border: 0px none; }
      #home { position:absolute; width:100%; height:100%; background:#FFF; color: rgb(103, 116, 120); font-family: Tahoma,Arial,sans-serif;}
      #home a{color: rgb(103, 116, 120);}
      #home h1{ text-align:center; padding: 10px; border-radius: 5px 5px 5px 5px; border: 1px solid; background: none repeat scroll 0% 0% rgb(246, 253, 255); border-color: rgb(218, 239, 245); width:250px; margin:10px auto}
      #home div{padding: 10px; border-radius: 5px 5px 5px 5px; border: 1px solid; background: none repeat scroll 0% 0% rgb(246, 253, 255); border-color: rgb(218, 239, 245); width:250px; margin:10px auto}
      #home .error{display: none;}
      #info, #options{padding: 10px; border-radius: 5px 5px 5px 5px; border: 1px solid; background: none repeat scroll 0% 0% rgb(246, 253, 255); border-color: rgb(218, 239, 245); width:600px; margin:10px auto}
      #home img{ display: block; margin: 30px auto; }
      #home h2{ font-size:24px; text-shadow:	rgb(255, 255, 255) 0px 1px 0px; margin:0px;}
      #home h3{ font-size:12px; text-shadow:	rgb(255, 255, 255) 0px 1px 0px; margin:0px;}
      #home a{ background:rgb(224, 248, 255); border:rgb(195, 242, 255) 1px solid; color:rgb(76, 116, 127); font-size:18px; margin:10px auto 0px auto; border-radius: 5px 5px 5px 5px; padding:3px; text-align:center; text-decoration:none;}
      #home div.error{ border:rgb(255, 226, 195); background:rgb(255, 240, 224); }
      #home .launchButton{ display:none; }
      #home .launchButtonDisabled{ display:block; background:#DDD; border-color:#666; color:#666; }
    </style>
  </head>
  <body>
    <div id="home">
      <img src="cocos2dx.png" alt="Cocos2d-x" />
      <h1>JS_APPLICATION</h1>
      <div class="emscripten">
        <progress value="0" max="100" id="progress" hidden=1></progress><br />
        <span id="status">Downloading...</span>
      </div>
      <div id="webglerror" class="error">
          <h2>WebGL Error</h2>
          <h3>WebGL is not supported by your browser.</h3>
      </div>
      <div id="highres" class="res">
          <h2>IPad HD quality</h2>
          <h3>2048×1536px</h3>
          <a class="launchButtonDisabled">Not ready yet</a>
          <a class="launchButton" href="#" onclick="runApplication(2048, 1536);">GO!</a>
      </div>
      <div id="medres" class="res">
          <h2>IPad quality</h2>
          <h3>1024×768px</h3>
          <a class="launchButtonDisabled">Not ready yet</a>
          <a class="launchButton" href="#" onclick="runApplication(1024, 768);">GO!</a>
      </div>
      <div id="lowres" class="res">
          <h2>IPhone quality</h2>
          <h3>480×320px</h3>
          <a class="launchButtonDisabled">Not ready yet</a>
          <a class="launchButton" href="#" onclick="runApplication(480, 320);">GO!</a>
      </div>      
      <div id="resizeblock" class="res">
          <input type="checkbox" id="resize" checked="checked" /> 
          <label for="resize">Auto-resize</label>
      </div>
    </div>
    <div class="emscripten_border">
      <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
    </div>
    <div class="emscripten" id="options">
      <input type="checkbox" id="resize">Resize canvas
      <input type="checkbox" id="pointerLock" checked>Lock/hide mouse pointer
      &nbsp;&nbsp;&nbsp;
      <input type="button" value="Fullscreen" onclick="Module.requestFullScreen(document.getElementById('pointerLock').checked, 
                                                                                document.getElementById('resize').checked)">
    </div>
   
    <textarea class="emscripten" id="output" rows="8"></textarea>
    <script type='text/javascript'>
      // connect to canvas
      var resWidth = 0;
      var resHeight = 0;
      var ratio = 1;
      
      var Module = {
        preRun: [],
        postRun: [],
        print: (function() {
          var element = document.getElementById('output');
          element.value = ''; // clear browser cache
          return function(text) {
            text = Array.prototype.slice.call(arguments).join(' ');
            element.value += text + "\n";
            element.scrollTop = 99999; // focus on bottom
          };
        })(),
        printErr: function(text) {
          text = Array.prototype.slice.call(arguments).join(' ');
          if (0) { // XXX disabled for safety typeof dump == 'function') {
            dump(text + '\n'); // fast, straight to the real console
          } else {
            console.log(text);
          }
        },
        canvas: document.getElementById('canvas'),
        setStatus: function(text) {
          if (Module.setStatus.interval) clearInterval(Module.setStatus.interval);
          var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
          var statusElement = document.getElementById('status');
          var progressElement = document.getElementById('progress');
          if (m) {
            text = m[1];
            progressElement.value = parseInt(m[2])*100;
            progressElement.max = parseInt(m[4])*100;
            progressElement.hidden = false;
          } else {
            progressElement.value = progressElement.max;
            //progressElement.value = null;
            //progressElement.max = null;
            //progressElement.hidden = true;
            //statusElement.hidden = true;
          }
          statusElement.innerHTML = text;
        },
        totalDependencies: 0,
        monitorRunDependencies: function(left) {
          this.totalDependencies = Math.max(this.totalDependencies, left);
          if(left) 
            Module.setStatus('Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')');
          else if(this.totalDependencies > 1) {
            Module.setStatus('All downloads completed');
            onResourcesLoaded();
          }
        }
      };
      
      function loadScript(filename){
        Module.setStatus('Downloading... ' + filename); 
        var fileref=document.createElement('script')
        fileref.setAttribute("type","text/javascript")
        fileref.setAttribute("src", filename);
        if (typeof fileref != "undefined")
          document.getElementsByTagName("head")[0].appendChild(fileref)
      }      

      function runApplication(width, height){
        var w = window,
            d = document,
            e = d.documentElement,
            g = d.getElementsByTagName('body')[0],
            ww = w.innerWidth || e.clientWidth || g.clientWidth,
            wh = w.innerHeight|| e.clientHeight|| g.clientHeight;
        if(width && height && (width > ww || height > wh) && document.getElementById("resize").checked)
          ratio = Math.min(ww/width, wh/height);
         
        resWidth = width;
        resHeight = height;
        document.getElementById('canvas').style.width = resWidth * ratio;
        document.getElementById('canvas').style.height = resHeight * ratio;
        document.getElementById('home').style.visibility = 'hidden';
        Module.callMain([resWidth, resHeight, ratio]);
      }

      function onResourcesLoaded(){
        var buttons = document.getElementsByClassName("launchButton");
        Array.prototype.forEach.call(buttons, function(button) { button.style.display = 'block'; });

        var buttonsDisabled = document.getElementsByClassName("launchButtonDisabled");
        Array.prototype.forEach.call(buttonsDisabled, function(button) { button.style.display = 'none'; });
      }
            
      function onDocumentLoaded(){
        if(!window.WebGLRenderingContext){
          document.getElementById("webglerror").style.display = 'block';
          return;
        }
        loadScript("JS_APPLICATION.js");
        loadScript("JS_APPLICATION.data.js");
      }

      onDocumentLoaded();
    </script>
  </body>
</html>