<!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>Battery</h1>
    <div id="info">
        <b>Status:</b> <span id="battery_status"></span><br>
        Level: <span id="level"></span><br/>
        Plugged: <span id="isPlugged"></span><br/>
        Low: <span id="low"></span><br/>
        Critical: <span id="crit"></span><br/>
    </div>
    <h2>Action</h2>
    <div class="btn large addBattery">Add "batterystatus" listener</div>
    <div class="btn large removeBattery">Remove "batterystatus" listener</div>
    <div class="btn large addLow">Add "batterylow" listener</div>
    <div class="btn large removeLow">Remove "batterylow" listener</div>
    <div class="btn large addCritical">Add "batterycritical" listener</div>
    <div class="btn large removeCritical">Remove "batterycritical" listener</div>
    <h2> </h2><div class="backBtn">Back</div>
  </body>
</html>      
