<!--

 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.

-->

<!DOCTYPE html>
<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.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>Width: <span id="width">  </span>,   Height: <span id="height"> 
                   </span>, Color Depth: <span id="colorDepth"></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="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="sql/index.html" class="btn large">Web SQL</a>
    <a href="storage/index.html" class="btn large">Local Storage</a>
  </body>
</html>
