<!DOCTYPE html>
<html>
<!--
@license
Copyright (C) 2010 The Libphonenumber Authors

Licensed 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.
-->
<!--
  Author: Nikolaos Trogkanis
-->
<head>
<meta charset="utf-8">
<title>Phone Number Parser Demo</title>
<script src="demo-compiled.js"></script>
</head>
<body>

<h2>Phone Number Parser Demo</h2>

<form>
  <p>
  Specify a Phone Number:
  <input type="text" name="phoneNumber" id="phoneNumber" size="25" />
  </p>
  <p>
  Specify a Default Country:
  <input type="text" name="defaultCountry" id="defaultCountry" size="2" />
  (CLDR two-letter region code)
  </p>
  <p>
  Specify a Carrier Code:
  <input type="text" name="carrierCode" id="carrierCode" size="2" />
  (optional, only valid for some countries)
  </p>
  <input type="submit" value="Submit" onclick="return phoneNumberParser();" />
  <input type="reset" value="Reset" />
  <p>
  <textarea id="output" rows="30" cols="80"></textarea>
  </p>
</form>

</body>
</html>
