<!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>
    <!-- Inject CSP -->
    <script type="text/javascript" src="../csp-incl.js"></script>

    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 -->
    <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="./index.js"></script>      
  </head>
  <body id="stage" class="theme">
  
    <h1>HTML5 Database</h1>   
    <div id="info">
        <b>Results:</b><br>
        <span id="database_results"></span>
    </div>
    <h2>Action</h2>
    <div class="btn large callDatabase0">Create, Add, Read Database (Constant name)</div>
    <div class="btn large readDatabase0">Read Database (Constant name)</div>
    <div class="btn large increaseQuota0">Increase Quota (Constant name)</div>
    <div class="btn large callDatabase1">Create, Add, Read Database (Random Name)</div>
    <div class="btn large readDatabase1">Read Database (Random Name)</div>
    <div class="btn large increaseQuota1">Increase Quota (Random Name)</div>
    <div class="btn large reloadPage">Reload Page</div>
    <h2> </h2><div class="backBtn">Back</div>    
  </body>
</html>      
