<!DOCTYPE html>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->


<html>
  <head>
    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,initial-scale=1.0" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Cordova Mobile Spec</title>
	  <link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8">
	  <script type="text/javascript" charset="utf-8" src="cordova-incl.js"></script>
	  <script type="text/javascript" charset="utf-8" src="main.js"></script>

  </head>
  <body onload="init();" id="stage" class="theme">
    <h1>Apache Cordova Tests</h1>
    <div id="info">
        <h4>Platform: <span id="platform">  </span></h4>
        <h4>Version: <span id="version"> </span></h4>
        <h4>UUID: <span id="uuid">  </span></h4>
        <h4>Name: <span id="name"> </span></h4>
        <h4>Model: <span id="model"> </span></h4>
        <h4>Width: <span id="width">  </span>,   Height: <span id="height"> 
                   </span>, Color Depth: <span id="colorDepth"></span></h4>
        <h4>User-Agent: <span id="user-agent"> </span></h4>
     </div>
    <a href="autotest/index.html" class="btn large">Automatic Test</a>
    <a href="accelerometer/index.html" class="btn large">Accelerometer</a>
    <a href="audio/index.html" class="btn large">Audio Play/Record</a>
    <a href="battery/index.html" class="btn large">Battery</a>
    <a href="camera/index.html" class="btn large">Camera</a>
    <a href="compass/index.html" class="btn large">Compass</a>
    <a href="contacts/index.html" class="btn large">Contacts</a>
    <a href="events/index.html" class="btn large">Events</a>
    <a href="location/index.html" class="btn large">Location</a>
    <a href="lazyloadjs/index.html" class="btn large">Lazy Loading of cordova-incl.js</a>
    <a href="misc/index.html" class="btn large">Misc Content</a>
    <a href="network/index.html" class="btn large">Network</a>
    <a href="notification/index.html" class="btn large">Notification</a>
    <a href="splashscreen/index.html" class="btn large">Splashscreen</a>
    <a href="sql/index.html" class="btn large">Web SQL</a>
    <a href="storage/index.html" class="btn large">Local Storage</a>
    <a href="benchmarks/index.html" class="btn large">Benchmarks</a>
    <a href="inappbrowser/index.html" class="btn large">In App Browser</a>
  </body>
</html>
