Add analytics
--- a/busui/about.php
+++ b/busui/about.php
@@ -1,6 +1,6 @@
<?php
include('common.inc.php');
-include_header("About")
+include_header("About","about")
?>
<p>
Busness Time - An ACT bus timetable webapp<br />
--- a/busui/common.inc.php
+++ b/busui/common.inc.php
@@ -30,20 +30,26 @@
return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME'];
}
+function isMetricsOn()
+{
+ return true;
+}
+
function debug($msg) {
if (isDebug()) echo "<!-- $msg -->";
}
function isFastDevice() {
+ $fastDevices = Array("Mozilla/5.0 (X11;", "Mozilla/5.0 (Windows;", "Mozilla/5.0 (iP", "Mozilla/5.0 (Linux; U; Android", "Mozilla/4.0 (compatible; MSIE");
+ $slowDevices = Array("J2ME","MIDP","Opera/","Mozilla/2.0 (compatible;","Mozilla/3.0 (compatible;");
return true;
}
-function include_header($pageTitle, $opendiv = true, $geolocate = false) {
+function include_header($pageTitle, $pageType, $opendiv = true, $geolocate = false) {
echo '
<!DOCTYPE html>
<html>
<head>
- <title>busness time - '.$pageTitle.'</title>
- ';
+ <title>'.$pageTitle.'</title>';
if (isDebug()) echo '<link rel="stylesheet" href="css/jquery-mobile-1.0a3.css" />
<script type="text/javascript" src="js/jquery-1.5.js"></script>
<script type="text/javascript" src="js/jquery-mobile-1.0a3.js"></script>';
@@ -104,19 +110,34 @@
</script> ";
}
-echo '</head>
-<body>
+echo '</head>
+<body>
';
+ if (isMetricsOn()) {
+ require_once('owa/owa_env.php');
+ require_once(OWA_DIR.'owa_php.php');
+ $owa = new owa_php();
+ $owa->setSiteId('bus.lambdacomplex.org');
+ $owa->setPageTitle($pageTitle);
+ $owa->setPageType($pageType);
+ $owa->trackPageView();
+ $owa->placeHelperPageTags();
+ }
+
if ($opendiv) {
echo '<div data-role="page">
-
+ <script>
+$(document).ready(function ()
+{
+ document.title = "'.$pageTitle.'";
+});
+</script>
<div data-role="header">
<h1>'.$pageTitle.'</h1>
</div><!-- /header -->
<div data-role="content"> ';
}
}
-
function include_footer()
{
if ($geolocate && isset($_SESSION['lat'])) {
--- a/busui/feedback.php
+++ b/busui/feedback.php
@@ -1,6 +1,6 @@
<?php
include('common.inc.php');
-include_header("Feedback")
+include_header("Feedback","feedback")
?>
<h3>Add/Move/Delete a Bus Stop Location</h3>
StopID:
--- a/busui/index.php
+++ b/busui/index.php
@@ -1,6 +1,6 @@
<?php
include('common.inc.php');
-include_header("bus.lambdacomplex.org",false, true)
+include_header("bus.lambdacomplex.org","index",false, true)
?>
<div data-role="page">
<div data-role="content">
--- a/busui/layar_api.php
+++ b/busui/layar_api.php
@@ -4,32 +4,40 @@
$output['hotspots'] = Array();
$output['layer'] = "canberrabusstops";
-$url = $APIurl."/json/neareststops?lat={$_REQUEST['lat']}&lon={$_REQUEST['lon']}&limit=5";
+$max_page = 10;
+$max_results = 50;
+$page_start = 0+$_REQUEST['pageKey'];
+$page_end = $max_page+$_REQUEST['pageKey'];
+
+$url = $APIurl."/json/neareststops?lat={$_REQUEST['lat']}&lon={$_REQUEST['lon']}&limit=50";
$contents = json_decode(getPage($url));
debug(print_r($contents,true));
+$stopNum = 0;
foreach ($contents as $row)
{
- $hotspot = Array();
- $hotspot['id'] = $row[0];
- $hotspot['title'] = $row[1];
- $hotspot['type'] = 0;
- $hotspot['lat'] = floor($row[2]*1000000);
- $hotspot['lon'] = floor($row[3]*1000000);
- $hotspot['distance'] = distance($row[2], $row[3], $_REQUEST['lat'], $_REQUEST['lon']);
- if (!isset($_REQUEST['radius']) || $hotspot['distance'] < $_REQUEST['radius']) {
- $hotspot['actions'] = Array(Array("label" => 'Visit Webpage', 'uri' => 'http://bus.lambdacomplex.org/'.'stop.php?stopid='.$row[0]));
- $url = $APIurl."/json/stoptrips?stop=".$row[0]."&time=".midnight_seconds()."&service_period=".service_period();
- $trips = json_decode(getPage($url));
- debug(print_r($trips,true));
- foreach ($trips as $key => $row)
- {
- if ($key > 3) {
- $hotspot['line'.$key+2]= $row[1][1] .' @ ' .midnight_seconds_to_time($row[0]);
+ $stopNum++;
+ if ($stopNum > $page_start && $stopNum <= $page_end) {
+ $hotspot = Array();
+ $hotspot['id'] = $row[0];
+ $hotspot['title'] = $row[1];
+ $hotspot['type'] = 0;
+ $hotspot['lat'] = floor($row[2]*1000000);
+ $hotspot['lon'] = floor($row[3]*1000000);
+ $hotspot['distance'] = distance($row[2], $row[3], $_REQUEST['lat'], $_REQUEST['lon']);
+ if (!isset($_REQUEST['radius']) || $hotspot['distance'] < $_REQUEST['radius']) {
+ $hotspot['actions'] = Array(Array("label" => 'View more trips/information', 'uri' => 'http://bus.lambdacomplex.org/'.'stop.php?stopid='.$row[0]));
+ $url = $APIurl."/json/stoptrips?stop=".$row[0]."&time=".midnight_seconds()."&service_period=".service_period();
+ $trips = json_decode(getPage($url));
+ debug(print_r($trips,true));
+ foreach ($trips as $key => $row)
+ {
+ if ($key < 3) {
+ $hotspot['line'.strval($key+2)]= $row[1][1] .' @ ' .midnight_seconds_to_time($row[0]);
+ }
}
+ if (sizeof($trips) == 0) $hotspot['line2'] = 'No trips in the near future.';
+ $output['hotspots'][] = $hotspot;
}
- if (sizeof($trips) == 0) $hotspot['line2'] = 'No trips in the near future.';
- $hotspot['imageURL'] = null;
- $output['hotspots'][] = $hotspot;
}
}
if (sizeof($hotspot) > 0) {
@@ -39,5 +47,12 @@
$output['errorString'] = 'no results, try increasing range';
$output['errorCode'] = 21;
}
+if ($page_end >= $max_results || sizeof($hotspot) < $max_page) {
+ $output["morePages"] = false;
+ $output["nextPageKey"] = null;
+} else {
+ $output["morePages"] = true;
+ $output["nextPageKey"] = $page_end;
+}
echo json_encode($output);
?>
--- /dev/null
+++ b/busui/owa/Callbacks.inc
@@ -1,1 +1,10 @@
+<?php
+
+/**
+ * Gallery Template Callbacks class placeholder
+ * Needed for fake out the require_once() in Gallery's template class callback method
+ * See OWA Gallery module for the actual callback class
+ */
+
+?>
--- /dev/null
+++ b/busui/owa/action.php
@@ -1,1 +1,48 @@
+<?php
+//
+// Open Web Analytics - An Open Source Web Analytics Framework
+//
+// Copyright 2006 Peter Adams. All rights reserved.
+//
+// Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
+//
+// 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.
+//
+// $Id$
+//
+
+include_once('owa_env.php');
+require_once(OWA_BASE_DIR.'/owa_php.php');
+
+/**
+ * Special HTTP Requests Controler
+ *
+ * @author Peter Adams <peter@openwebanalytics.com>
+ * @copyright Copyright © 2006 Peter Adams <peter@openwebanalytics.com>
+ * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0
+ * @category owa
+ * @package owa
+ * @version $Revision$
+ * @since owa 1.0.0
+ * @depricated
+ */
+
+$owa = new owa_php;
+
+$owa->e->debug('Special action request received by action.php...');
+
+if ( $owa->isEndpointEnabled( basename( __FILE__ ) ) ) {
+
+ // run controller or view and echo page content
+ echo $owa->handleRequestFromURL();
+} else {
+ // unload owa
+ $owa->restInPeace();
+}
+
+?>
--- /dev/null
+++ b/busui/owa/api.php
@@ -1,1 +1,49 @@
+<?php
+//
+// Open Web Analytics - An Open Source Web Analytics Framework
+//
+// Copyright 2006 Peter Adams. All rights reserved.
+//
+// Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
+//
+// 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.
+//
+// $Id$
+//
+
+include_once('owa_env.php');
+require_once(OWA_BASE_DIR.'/owa_php.php');
+
+/**
+ * REST API
+ *
+ * @author Peter Adams <peter@openwebanalytics.com>
+ * @copyright Copyright © 2010 Peter Adams <peter@openwebanalytics.com>
+ * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0
+ * @category owa
+ * @package owa
+ * @version $Revision$
+ * @since owa 1.3.0
+ * @link http://wiki.openwebanalytics.com/index.php?title=REST_API
+ */
+
+// define entry point cnstant
+define('OWA_API', true);
+// invoke OWA
+$owa = new owa_php;
+
+if ( $owa->isEndpointEnabled( basename( __FILE__ ) ) ) {
+
+ // run api command and echo page content
+ echo $owa->handleRequest('', 'base.apiRequest');
+} else {
+ // unload owa
+ $owa->restInPeace();
+}
+
+?>
--- /dev/null
+++ b/busui/owa/cli.php
@@ -1,1 +1,92 @@
+<?php
+//
+// Open Web Analytics - An Open Source Web Analytics Framework
+//
+// Copyright 2006 Peter Adams. All rights reserved.
+//
+// Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
+//
+// 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.
+//
+// $Id$
+//
+
+require_once('owa_env.php');
+require_once(OWA_DIR.'owa_php.php');
+require_once(OWA_BASE_CLASS_DIR.'cliController.php');
+
+/**
+ * OWA Comand Line Interface (CLI)
+ *
+ * @author Peter Adams <peter@openwebanalytics.com>
+ * @copyright Copyright © 2010 Peter Adams <peter@openwebanalytics.com>
+ * @license http://www.gnu.org/copyleft/gpl.html GPL v2.0
+ * @category owa
+ * @package owa
+ * @version $Revision$
+ * @since owa 1.2.1
+ */
+
+define('OWA_CLI', true);
+
+if (!empty($_POST)) {
+ exit();
+} elseif (!empty($_GET)) {
+ exit();
+} elseif (!empty($argv)) {
+ $params = array();
+ // get params from the command line args
+ // $argv is a php super global variable
+
+ for ($i=1; $i<count($argv);$i++)
+ {
+ $it = split("=",$argv[$i]);
+ $params[$it[0]] = $it[1];
+ }
+ unset($params['action']);
+ unset($params['do']);
+
+} else {
+ // No params found
+ exit();
+}
+
+// Initialize owa
+$owa = &new owa_php;
+
+if ( $owa->isEndpointEnabled( basename( __FILE__ ) ) ) {
+
+ // setting CLI mode to true
+ $owa->setSetting('base', 'cli_mode', true);
+ // setting user auth
+ $owa->setCurrentUser('admin', 'cli-user');
+ // run controller or view and echo page content
+ $s = owa_coreAPI::serviceSingleton();
+ $s->loadCliCommands();
+
+ if (array_key_exists('cmd', $params)) {
+
+ $cmd = $s->getCliCommandClass($params['cmd']);
+
+ if ($cmd) {
+ $params['do'] = $cmd;
+ echo $owa->handleRequest($params);
+ } else {
+ echo "Invalid command name.";
+ }
+
+ } else {
+ echo "Missing a command argument.";
+ }
+
+} else {
+ // unload owa
+ $owa->restInPeace();
+}
+
+?>
--- /dev/null
+++ b/busui/owa/conf/countryCodes2Names.php
@@ -1,1 +1,253 @@
-
+<?php
+/**
+ * ISO-3166-1 http://en.wikipedia.org/wiki/ISO_3166-1
+ */
+$countryCode2Name = array (
+ 'AF' => 'Afghanistan',
+ 'AX' => 'Åland Islands',
+ 'AL' => 'Albania',
+ 'DZ' => 'Algeria',
+ 'AS' => 'American Samoa',
+ 'AD' => 'Andorra',
+ 'AO' => 'Angola',
+ 'AI' => 'Anguilla',
+ 'AQ' => 'Antarctica',
+ 'AG' => 'Antigua and Barbuda',
+ 'AR' => 'Argentina',
+ 'AM' => 'Armenia',
+ 'AW' => 'Aruba',
+ 'AU' => 'Australia',
+ 'AT' => 'Austria',
+ 'AZ' => 'Azerbaijan',
+ 'BS' => 'Bahamas',
+ 'BH' => 'Bahrain',
+ 'BD' => 'Bangladesh',
+ 'BB' => 'Barbados',
+ 'BY' => 'Belarus',
+ 'BE' => 'Belgium',
+ 'BZ' => 'Belize',
+ 'BJ' => 'Benin',
+ 'BM' => 'Bermuda',
+ 'BT' => 'Bhutan',
+ 'BO' => 'Bolivia, Plurinational State of',
+ 'BA' => 'Bosnia and Herzegovina',
+ 'BW' => 'Botswana',
+ 'BV' => 'Bouvet Island',
+ 'BR' => 'Brazil',
+ 'IO' => 'British Indian Ocean Territory',
+ 'BN' => 'Brunei Darussalam',
+ 'BG' => 'Bulgaria',
+ 'BF' => 'Burkina Faso',
+ 'BI' => 'Burundi',
+ 'KH' => 'Cambodia',
+ 'CM' => 'Cameroon',
+ 'CA' => 'Canada',
+ 'CV' => 'Cape Verde',
+ 'KY' => 'Cayman Islands',
+ 'CF' => 'Central African Republic',
+ 'TD' => 'Chad',
+ 'CL' => 'Chile',
+ 'CN' => 'China',
+ 'CX' => 'Christmas Island',
+ 'CC' => 'Cocos (Keeling) Islands',
+ 'CO' => 'Colombia',
+ 'KM' => 'Comoros',
+ 'CG' => 'Congo',
+ 'CD' => 'Congo, the Democratic Republic of the',
+ 'CK' => 'Cook Islands',
+ 'CR' => 'Costa Rica',
+ 'CI' => "Côte d'Ivoire",
+ 'HR' => 'Croatia',
+ 'CU' => 'Cuba',
+ 'CY' => 'Cyprus',
+ 'CZ' => 'Czech Republic',
+ 'DK' => 'Denmark',
+ 'DJ' => 'Djibouti',
+ 'DM' => 'Dominica',
+ 'DO' => 'Dominican Republic',
+ 'EC' => 'Ecuador',
+ 'EG' => 'Egypt',
+ 'SV' => 'El Salvador',
+ 'GQ' => 'Equatorial Guinea',
+ 'ER' => 'Eritrea',
+ 'EE' => 'Estonia',
+ 'ET' => 'Ethiopia',
+ 'FK' => 'Falkland Islands (Malvinas)',
+ 'FO' => 'Faroe Islands',
+ 'FJ' => 'Fiji',
+ 'FI' => 'Finland',
+ 'FR' => 'France',
+ 'GF' => 'French Guiana',
+ 'PF' => 'French Polynesia',
+ 'TF' => 'French Southern Territories',
+ 'GA' => 'Gabon',
+ 'GM' => 'Gambia',
+ 'GE' => 'Georgia',
+ 'DE' => 'Germany',
+ 'GH' => 'Ghana',
+ 'GI' => 'Gibraltar',
+ 'GR' => 'Greece',
+ 'GL' => 'Greenland',
+ 'GD' => 'Grenada',
+ 'GP' => 'Guadeloupe',
+ 'GU' => 'Guam',
+ 'GT' => 'Guatemala',
+ 'GG' => 'Guernsey',
+ 'GN' => 'Guinea',
+ 'GW' => 'Guinea-Bissau',
+ 'GY' => 'Guyana',
+ 'HT' => 'Haiti',
+ 'HM' => 'Heard Island and McDonald Islands',
+ 'VA' => 'Holy See (Vatican City State)',
+ 'HN' => 'Honduras',
+ 'HK' => 'Hong Kong',
+ 'HU' => 'Hungary',
+ 'IS' => 'Iceland',
+ 'IN' => 'India',
+ 'ID' => 'Indonesia',
+ 'IR' => 'Iran, Islamic Republic of',
+ 'IQ' => 'Iraq',
+ 'IE' => 'Ireland',
+ 'IM' => 'Isle of Man',
+ 'IL' => 'Israel',
+ 'IT' => 'Italy',
+ 'JM' => 'Jamaica',
+ 'JP' => 'Japan',
+ 'JE' => 'Jersey',
+ 'JO' => 'Jordan',
+ 'KZ' => 'Kazakhstan',
+ 'KE' => 'Kenya',
+ 'KI' => 'Kiribati',
+ 'KP' => "Korea, Democratic People's Republic of",
+ 'KR' => 'Korea, Republic of',
+ 'KW' => 'Kuwait',
+ 'KG' => 'Kyrgyzstan',
+ 'LA' => "Lao People's Democratic Republic",
+ 'LV' => 'Latvia',
+ 'LB' => 'Lebanon',
+ 'LS' => 'Lesotho',
+ 'LR' => 'Liberia',
+ 'LY' => 'Libyan Arab Jamahiriya',
+ 'LI' => 'Liechtenstein',
+ 'LT' => 'Lithuania',
+ 'LU' => 'Luxembourg',
+ 'MO' => 'Macao',
+ 'MK' => 'Macedonia, the former Yugoslav Republic of',
+ 'MG' => 'Madagascar',
+ 'MW' => 'Malawi',
+ 'MY' => 'Malaysia',
+ 'MV' => 'Maldives',
+ 'ML' => 'Mali',
+ 'MT' => 'Malta',
+ 'MH' => 'Marshall Islands',
+ 'MQ' => 'Martinique',
+ 'MR' => 'Mauritania',
+ 'MU' => 'Mauritius',
+ 'YT' => 'Mayotte',
+ 'MX' => 'Mexico',
+ 'FM' => 'Micronesia, Federated States of',
+ 'MD' => 'Moldova, Republic of',
+ 'MC' => 'Monaco',
+ 'MN' => 'Mongolia',
+ 'ME' => 'Montenegro',
+ 'MS' => 'Montserrat',
+ 'MA' => 'Morocco',
+ 'MZ' => 'Mozambique',
+ 'MM' => 'Myanmar',
+ 'NA' => 'Namibia',
+ 'NR' => 'Nauru',
+ 'NP' => 'Nepal',
+ 'NL' => 'Netherlands',
+ 'AN' => 'Netherlands Antilles',
+ 'NC' => 'New Caledonia',
+ 'NZ' => 'New Zealand',
+ 'NI' => 'Nicaragua',
+ 'NE' => 'Niger',
+ 'NG' => 'Nigeria',
+ 'NU' => 'Niue',
+ 'NF' => 'Norfolk Island',
+ 'MP' => 'Northern Mariana Islands',
+ 'NO' => 'Norway',
+ 'OM' => 'Oman',
+ 'PK' => 'Pakistan',
+ 'PW' => 'Palau',
+ 'PS' => 'Palestinian Territory, Occupied',
+ 'PA' => 'Panama',
+ 'PG' => 'Papua New Guinea',
+ 'PY' => 'Paraguay',
+ 'PE' => 'Peru',
+ 'PH' => 'Philippines',
+ 'PN' => 'Pitcairn',
+ 'PL' => 'Poland',
+ 'PT' => 'Portugal',
+ 'PR' => 'Puerto Rico',
+ 'QA' => 'Qatar',
+ 'RE' => 'Réunion',
+ 'RO' => 'Romania',
+ 'RU' => 'Russian Federation',
+ 'RW' => 'Rwanda',
+ 'BL' => 'Saint Barthélemy',
+ 'SH' => 'Saint Helena',
+ 'KN' => 'Saint Kitts and Nevis',
+ 'LC' => 'Saint Lucia',
+ 'MF' => 'Saint Martin (French part)',
+ 'PM' => 'Saint Pierre and Miquelon',
+ 'VC' => 'Saint Vincent and the Grenadines',
+ 'WS' => 'Samoa',
+ 'SM' => 'San Marino',
+ 'ST' => 'Sao Tome and Principe',
+ 'SA' => 'Saudi Arabia',
+ 'SN' => 'Senegal',
+ 'RS' => 'Serbia',
+ 'SC' => 'Seychelles',
+ 'SL' => 'Sierra Leone',
+ 'SG' => 'Singapore',
+ 'SK' => 'Slovakia',
+ 'SI' => 'Slovenia',
+ 'SB' => 'Solomon Islands',
+ 'SO' => 'Somalia',
+ 'ZA' => 'South Africa',
+ 'GS' => 'South Georgia and the South Sandwich Islands',
+ 'ES' => 'Spain',
+ 'LK' => 'Sri Lanka',
+ 'SD' => 'Sudan',
+ 'SR' => 'Suriname',
+ 'SJ' => 'Svalbard and Jan Mayen',
+ 'SZ' => 'Swaziland',
+ 'SE' => 'Sweden',
+ 'CH' => 'Switzerland',
+ 'SY' => 'Syrian Arab Republic',
+ 'TW' => 'Taiwan, Province of China',
+ 'TJ' => 'Tajikistan',
+ 'TZ' => 'Tanzania, United Republic of',
+ 'TH' => 'Thailand',
+ 'TL' => 'Timor-Leste',
+ 'TG' => 'Togo',
+ 'TK' => 'Tokelau',
+ 'TO' => 'Tonga',
+ 'TT' => 'Trinidad and Tobago',
+ 'TN' => 'Tunisia',
+ 'TR' => 'Turkey',
+ 'TM' => 'Turkmenistan',
+ 'TC' => 'Turks and Caicos Islands',
+ 'TV' => 'Tuvalu',
+ 'UG' => 'Uganda',
+ 'UA' => 'Ukraine',
+ 'AE' => 'United Arab Emirates',
+ 'GB' => 'United Kingdom',
+ 'US' => 'United States',
+ 'UM' => 'United States Minor Outlying Islands',
+ 'UY' => 'Uruguay',
+ 'UZ' => 'Uzbekistan',
+ 'VU' => 'Vanuatu',
+ 'VE' => 'Venezuela, Bolivarian Republic of',
+ 'VN' => 'Viet Nam',
+ 'VG' => 'Virgin Islands, British',
+ 'VI' => 'Virgin Islands, U.S.',
+ 'WF' => 'Wallis and Futuna',
+ 'EH' => 'Western Sahara',
+ 'YE' => 'Yemen',
+ 'ZM' => 'Zambia',
+ 'ZW' => 'Zimbabwe'
+);
+?>
--- /dev/null
+++ b/busui/owa/conf/countryNames2Codes.php
@@ -1,1 +1,250 @@
-
+<?php
+$countryName2Code = array(
+ "afghanistan" => 'AF',
+ "Åland islands" => 'AX',
+ "albania" => 'AL',
+ "algeria" => 'DZ',
+ "american samoa" => 'AS',
+ "andorra" => 'AD',
+ "angola" => 'AO',
+ "anguilla" => 'AI',
+ "antarctica" => 'AQ',
+ "antigua and barbuda" => 'AG',
+ "argentina" => 'AR',
+ "armenia" => 'AM',
+ "aruba" => 'AW',
+ "australia" => 'AU',
+ "austria" => 'AT',
+ "azerbaijan" => 'AZ',
+ "bahamas" => 'BS',
+ "bahrain" => 'BH',
+ "bangladesh" => 'BD',
+ "barbados" => 'BB',
+ "belarus" => 'BY',
+ "belgium" => 'BE',
+ "belize" => 'BZ',
+ "benin" => 'BJ',
+ "bermuda" => 'BM',
+ "bhutan" => 'BT',
+ "bolivia, plurinational state of" => 'BO',
+ "bosnia and herzegovina" => 'BA',
+ "botswana" => 'BW',
+ "bouvet island" => 'BV',
+ "brazil" => 'BR',
+ "british indian ocean territory" => 'IO',
+ "brunei darussalam" => 'BN',
+ "bulgaria" => 'BG',
+ "burkina faso" => 'BF',
+ "burundi" => 'BI',
+ "cambodia" => 'KH',
+ "cameroon" => 'CM',
+ "canada" => 'CA',
+ "cape verde" => 'CV',
+ "cayman islands" => 'KY',
+ "central african republic" => 'CF',
+ "chad" => 'TD',
+ "chile" => 'CL',
+ "china" => 'CN',
+ "christmas island" => 'CX',
+ "cocos (keeling) islands" => 'CC',
+ "colombia" => 'CO',
+ "comoros" => 'KM',
+ "congo" => 'CG',
+ "congo, the democratic republic of the" => 'CD',
+ "cook islands" => 'CK',
+ "costa rica" => 'CR',
+ "côte d'ivoire" => 'CI',
+ "croatia" => 'HR',
+ "cuba" => 'CU',
+ "cyprus" => 'CY',
+ "czech republic" => 'CZ',
+ "denmark" => 'DK',
+ "djibouti" => 'DJ',
+ "dominica" => 'DM',
+ "dominican republic" => 'DO',
+ "ecuador" => 'EC',
+ "egypt" => 'EG',
+ "el salvador" => 'SV',
+ "equatorial guinea" => 'GQ',
+ "eritrea" => 'ER',
+ "estonia" => 'EE',
+ "ethiopia" => 'ET',
+ "falkland islands (malvinas)" => 'FK',
+ "faroe islands" => 'FO',
+ "fiji" => 'FJ',
+ "finland" => 'FI',
+ "france" => 'FR',
+ "french guiana" => 'GF',
+ "french polynesia" => 'PF',
+ "french southern territories" => 'TF',
+ "gabon" => 'GA',
+ "gambia" => 'GM',
+ "georgia" => 'GE',
+ "germany" => 'DE',
+ "ghana" => 'GH',
+ "gibraltar" => 'GI',
+ "greece" => 'GR',
+ "greenland" => 'GL',
+ "grenada" => 'GD',
+ "guadeloupe" => 'GP',
+ "guam" => 'GU',
+ "guatemala" => 'GT',
+ "guernsey" => 'GG',
+ "guinea" => 'GN',
+ "guinea-bissau" => 'GW',
+ "guyana" => 'GY',
+ "haiti" => 'HT',
+ "heard island and mcdonald islands" => 'HM',
+ "holy see (vatican city state)" => 'VA',
+ "honduras" => 'HN',
+ "hong kong" => 'HK',
+ "hungary" => 'HU',
+ "iceland" => 'IS',
+ "india" => 'IN',
+ "indonesia" => 'ID',
+ "iran, islamic republic of" => 'IR',
+ "iraq" => 'IQ',
+ "ireland" => 'IE',
+ "isle of man" => 'IM',
+ "israel" => 'IL',
+ "italy" => 'IT',
+ "jamaica" => 'JM',
+ "japan" => 'JP',
+ "jersey" => 'JE',
+ "jordan" => 'JO',
+ "kazakhstan" => 'KZ',
+ "kenya" => 'KE',
+ "kiribati" => 'KI',
+ "korea, democratic people's rep