<!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="../../../../closure-library/closure/goog/base.js"></script>
<script>
  goog.require('goog.proto2.Message');
</script>
<script src="phonemetadata.pb.js"></script>
<script src="phonenumber.pb.js"></script>
<script src="metadata.js"></script>
<script src="shortnumbermetadata.js"></script>
<script src="phonenumberutil.js"></script>
<script src="asyoutypeformatter.js"></script>
<script src="shortnumberinfo.js"></script>
<script src="demo.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>
