Version Notes
Stable Release
Download this release
Release Info
| Developer | PCA_Tom |
| Extension | UK_and_International_Address_AutoFill_from_Postcode_Anywhere |
| Version | 1.0.0 |
| Comparing to | |
| See all releases | |
Version 1.0.0
- app/code/community/PostcodeAnywhere/AddressLookup/Helper/Data.php +4 -0
- app/code/community/PostcodeAnywhere/AddressLookup/controllers/IndexController.php +10 -0
- app/code/community/PostcodeAnywhere/AddressLookup/etc/config.xml +59 -0
- app/code/community/PostcodeAnywhere/AddressLookup/etc/system.xml +71 -0
- app/design/frontend/default/default/layout/AddressLookup.xml +270 -0
- app/design/frontend/default/default/layout/GuestAddressLookup.xml +436 -0
- app/design/frontend/default/default/layout/PCAPersistent.xml +62 -0
- app/design/frontend/default/default/template/checkout/onepage/pca_billing.phtml +307 -0
- app/design/frontend/default/default/template/checkout/onepage/pca_shipping.phtml +249 -0
- app/design/frontend/default/default/template/customer/address/pca_edit.phtml +260 -0
- app/design/frontend/default/default/template/customer/address/pca_register.phtml +273 -0
- app/design/frontend/default/default/template/customer/form/pca_register.phtml +278 -0
- app/design/frontend/default/default/template/persistent/checkout/onepage/pca_billing.phtml +305 -0
- app/design/frontend/default/default/template/persistent/customer/form/pca_register.phtml +276 -0
- app/etc/modules/PostcodeAnywhere_AddressLookup.xml +9 -0
- js/PostcodeAnywhere/address.css +26 -0
- js/PostcodeAnywhere/address.js +1615 -0
- package.xml +18 -0
app/code/community/PostcodeAnywhere/AddressLookup/Helper/Data.php
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class PostcodeAnywhere_AddressLookup_Helper_Data extends Mage_Core_Helper_Abstract
|
| 3 |
+
{
|
| 4 |
+
}
|
app/code/community/PostcodeAnywhere/AddressLookup/controllers/IndexController.php
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class PostcodeAnywhere_AddressLookup_IndexController extends Mage_Core_Controller_Front_Action
|
| 4 |
+
{
|
| 5 |
+
public function indexAction() {
|
| 6 |
+
|
| 7 |
+
$this->loadLayout();
|
| 8 |
+
$this->renderLayout();
|
| 9 |
+
}
|
| 10 |
+
}
|
app/code/community/PostcodeAnywhere/AddressLookup/etc/config.xml
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<PostcodeAnywhere_AddressLookup>
|
| 5 |
+
<version>0.0.1</version>
|
| 6 |
+
</PostcodeAnywhere_AddressLookup>
|
| 7 |
+
</modules>
|
| 8 |
+
<global>
|
| 9 |
+
<blocks>
|
| 10 |
+
<AddressLookup>
|
| 11 |
+
<class>PostcodeAnywhere_AddressLookup_Block</class>
|
| 12 |
+
</AddressLookup>
|
| 13 |
+
</blocks>
|
| 14 |
+
<helpers>
|
| 15 |
+
<PostcodeAnywhere_AddressLookup>
|
| 16 |
+
<class>PostcodeAnywhere_AddressLookup_Helper</class>
|
| 17 |
+
</PostcodeAnywhere_AddressLookup>
|
| 18 |
+
</helpers>
|
| 19 |
+
</global>
|
| 20 |
+
<frontend>
|
| 21 |
+
<layout>
|
| 22 |
+
<updates>
|
| 23 |
+
<customer>
|
| 24 |
+
<file>AddressLookup.xml</file>
|
| 25 |
+
</customer>
|
| 26 |
+
<checkout>
|
| 27 |
+
<file>GuestAddressLookup.xml</file>
|
| 28 |
+
</checkout>
|
| 29 |
+
<persistent>
|
| 30 |
+
<file>PCAPersistent.xml</file>
|
| 31 |
+
</persistent>
|
| 32 |
+
</updates>
|
| 33 |
+
</layout>
|
| 34 |
+
</frontend>
|
| 35 |
+
<adminhtml>
|
| 36 |
+
<acl>
|
| 37 |
+
<resources>
|
| 38 |
+
<all>
|
| 39 |
+
<title>Allow Everything</title>
|
| 40 |
+
</all>
|
| 41 |
+
<admin>
|
| 42 |
+
<children>
|
| 43 |
+
<system>
|
| 44 |
+
<children>
|
| 45 |
+
<config>
|
| 46 |
+
<children>
|
| 47 |
+
<PostcodeAnywhere>
|
| 48 |
+
<title>PostcodeAnywhere - All</title>
|
| 49 |
+
</PostcodeAnywhere>
|
| 50 |
+
</children>
|
| 51 |
+
</config>
|
| 52 |
+
</children>
|
| 53 |
+
</system>
|
| 54 |
+
</children>
|
| 55 |
+
</admin>
|
| 56 |
+
</resources>
|
| 57 |
+
</acl>
|
| 58 |
+
</adminhtml>
|
| 59 |
+
</config>
|
app/code/community/PostcodeAnywhere/AddressLookup/etc/system.xml
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<config>
|
| 3 |
+
<tabs>
|
| 4 |
+
<PostcodeAnywhere translate="label" module="PostcodeAnywhere_AddressLookup">
|
| 5 |
+
<label>Postcode Anywhere</label>
|
| 6 |
+
<sort_order>100</sort_order>
|
| 7 |
+
</PostcodeAnywhere>
|
| 8 |
+
</tabs>
|
| 9 |
+
<sections>
|
| 10 |
+
<PostcodeAnywhere translate="label" module="PostcodeAnywhere_AddressLookup">
|
| 11 |
+
<label>Extension Settings</label>
|
| 12 |
+
<tab>PostcodeAnywhere</tab>
|
| 13 |
+
<sort_order>1000</sort_order>
|
| 14 |
+
<show_in_default>1</show_in_default>
|
| 15 |
+
<show_in_website>1</show_in_website>
|
| 16 |
+
<show_in_store>1</show_in_store>
|
| 17 |
+
|
| 18 |
+
<groups>
|
| 19 |
+
<PostcodeAnywhere_group translate="label" module="PostcodeAnywhere_AddressLookup">
|
| 20 |
+
<label>Postcode Anywhere Options</label>
|
| 21 |
+
<frontend_type>text</frontend_type>
|
| 22 |
+
<sort_order>1000</sort_order>
|
| 23 |
+
<show_in_default>1</show_in_default>
|
| 24 |
+
<show_in_website>1</show_in_website>
|
| 25 |
+
<show_in_store>1</show_in_store>
|
| 26 |
+
|
| 27 |
+
<fields>
|
| 28 |
+
<PostcodeAnywhere_key translate="label">
|
| 29 |
+
<label>Website License Key: </label>
|
| 30 |
+
<comment>Enter your Postcode Anywhere key for website lookups.</comment>
|
| 31 |
+
<frontend_type>text</frontend_type>
|
| 32 |
+
<sort_order>10</sort_order>
|
| 33 |
+
<show_in_default>1</show_in_default>
|
| 34 |
+
<show_in_website>1</show_in_website>
|
| 35 |
+
<show_in_store>1</show_in_store>
|
| 36 |
+
</PostcodeAnywhere_key>
|
| 37 |
+
<PostcodeAnywhere_internalkey translate="label">
|
| 38 |
+
<label>Internal License Key: </label>
|
| 39 |
+
<comment>Enter your Postcode Anywhere key for internal lookups.</comment>
|
| 40 |
+
<frontend_type>text</frontend_type>
|
| 41 |
+
<sort_order>20</sort_order>
|
| 42 |
+
<show_in_default>1</show_in_default>
|
| 43 |
+
<show_in_website>1</show_in_website>
|
| 44 |
+
<show_in_store>1</show_in_store>
|
| 45 |
+
</PostcodeAnywhere_internalkey>
|
| 46 |
+
<PostcodeAnywhere_rmdata translate="label">
|
| 47 |
+
<label>Use Royal Mail Data: </label>
|
| 48 |
+
<comment>Use Royal Mail data for UK lookups.</comment>
|
| 49 |
+
<frontend_type>Radios</frontend_type>
|
| 50 |
+
<sort_order>30</sort_order>
|
| 51 |
+
<show_in_default>1</show_in_default>
|
| 52 |
+
<show_in_website>1</show_in_website>
|
| 53 |
+
<show_in_store>1</show_in_store>
|
| 54 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 55 |
+
</PostcodeAnywhere_rmdata>
|
| 56 |
+
<PostcodeAnywhere_enableinternal translate="label">
|
| 57 |
+
<label>Enable Internal Lookups: </label>
|
| 58 |
+
<comment>Use the functionality within the admin panel. Additional setup files required from Postcode Anywhere.</comment>
|
| 59 |
+
<frontend_type>Radios</frontend_type>
|
| 60 |
+
<sort_order>40</sort_order>
|
| 61 |
+
<show_in_default>1</show_in_default>
|
| 62 |
+
<show_in_website>1</show_in_website>
|
| 63 |
+
<show_in_store>1</show_in_store>
|
| 64 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 65 |
+
</PostcodeAnywhere_enableinternal>
|
| 66 |
+
</fields>
|
| 67 |
+
</PostcodeAnywhere_group>
|
| 68 |
+
</groups>
|
| 69 |
+
</PostcodeAnywhere>
|
| 70 |
+
</sections>
|
| 71 |
+
</config>
|
app/design/frontend/default/default/layout/AddressLookup.xml
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package base_default
|
| 24 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 27 |
+
*/
|
| 28 |
+
|
| 29 |
+
Supported layout update handles (action):
|
| 30 |
+
- customer_account_index
|
| 31 |
+
- customer_address_index
|
| 32 |
+
- customer_address_view
|
| 33 |
+
- customer_account_login
|
| 34 |
+
- customer_account_logoutsuccess
|
| 35 |
+
- customer_account_create
|
| 36 |
+
- customer_account_forgotpassword
|
| 37 |
+
- customer_account_confirmation
|
| 38 |
+
- customer_account_edit
|
| 39 |
+
|
| 40 |
+
Supported layout update handles (special):
|
| 41 |
+
- default
|
| 42 |
+
|
| 43 |
+
-->
|
| 44 |
+
<layout version="0.1.0">
|
| 45 |
+
|
| 46 |
+
<!--
|
| 47 |
+
Default layout, loads most of the pages
|
| 48 |
+
-->
|
| 49 |
+
|
| 50 |
+
<default>
|
| 51 |
+
<!-- Mage_Customer -->
|
| 52 |
+
<reference name="top.links">
|
| 53 |
+
<action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action>
|
| 54 |
+
</reference>
|
| 55 |
+
</default>
|
| 56 |
+
|
| 57 |
+
<!--
|
| 58 |
+
Load this update on every page when customer is logged in
|
| 59 |
+
-->
|
| 60 |
+
|
| 61 |
+
<customer_logged_in>
|
| 62 |
+
<reference name="top.links">
|
| 63 |
+
<action method="addLink" translate="label title" module="customer"><label>Log Out</label><url helper="customer/getLogoutUrl"/><title>Log Out</title><prepare/><urlParams/><position>100</position></action>
|
| 64 |
+
</reference>
|
| 65 |
+
</customer_logged_in>
|
| 66 |
+
|
| 67 |
+
<!--
|
| 68 |
+
Load this update on every page when customer is logged out
|
| 69 |
+
-->
|
| 70 |
+
|
| 71 |
+
<customer_logged_out>
|
| 72 |
+
<!---<reference name="right">
|
| 73 |
+
<block type="customer/form_login" name="customer_form_mini_login" before="-" template="customer/form/mini.login.phtml"/>
|
| 74 |
+
</reference>-->
|
| 75 |
+
<reference name="top.links">
|
| 76 |
+
<action method="addLink" translate="label title" module="customer"><label>Log In</label><url helper="customer/getLoginUrl"/><title>Log In</title><prepare/><urlParams/><position>100</position></action>
|
| 77 |
+
</reference>
|
| 78 |
+
<remove name="wishlist_sidebar"></remove>
|
| 79 |
+
<remove name="reorder"></remove>
|
| 80 |
+
</customer_logged_out>
|
| 81 |
+
|
| 82 |
+
<!--
|
| 83 |
+
Layout for customer login page
|
| 84 |
+
-->
|
| 85 |
+
|
| 86 |
+
<customer_account_login translate="label">
|
| 87 |
+
<label>Customer Account Login Form</label>
|
| 88 |
+
<!-- Mage_Customer -->
|
| 89 |
+
<remove name="right"/>
|
| 90 |
+
<remove name="left"/>
|
| 91 |
+
|
| 92 |
+
<reference name="root">
|
| 93 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
| 94 |
+
</reference>
|
| 95 |
+
<reference name="content">
|
| 96 |
+
<block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml"/>
|
| 97 |
+
</reference>
|
| 98 |
+
</customer_account_login>
|
| 99 |
+
|
| 100 |
+
<!--
|
| 101 |
+
Layout for customer log out page
|
| 102 |
+
-->
|
| 103 |
+
|
| 104 |
+
<customer_account_logoutsuccess translate="label">
|
| 105 |
+
<label>Customer Account Logout Success</label>
|
| 106 |
+
<!-- Mage_Customer -->
|
| 107 |
+
<remove name="right"/>
|
| 108 |
+
<remove name="left"/>
|
| 109 |
+
|
| 110 |
+
<reference name="root">
|
| 111 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
| 112 |
+
</reference>
|
| 113 |
+
<reference name="content">
|
| 114 |
+
<block type="core/template" name="customer_logout" template="customer/logout.phtml"/>
|
| 115 |
+
</reference>
|
| 116 |
+
</customer_account_logoutsuccess>
|
| 117 |
+
|
| 118 |
+
<!--
|
| 119 |
+
New customer registration
|
| 120 |
+
-->
|
| 121 |
+
|
| 122 |
+
<customer_account_create translate="label">
|
| 123 |
+
<label>Customer Account Registration Form</label>
|
| 124 |
+
<!-- Mage_Customer -->
|
| 125 |
+
<remove name="right"/>
|
| 126 |
+
<remove name="left"/>
|
| 127 |
+
|
| 128 |
+
<reference name="root">
|
| 129 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
| 130 |
+
</reference>
|
| 131 |
+
<reference name="content">
|
| 132 |
+
<block type="customer/form_register" name="customer_form_register" template="customer/form/pca_register.phtml">
|
| 133 |
+
<block type="page/html_wrapper" name="customer.form.register.fields.before" as="form_fields_before" translate="label">
|
| 134 |
+
<label>Form Fields Before</label>
|
| 135 |
+
</block>
|
| 136 |
+
</block>
|
| 137 |
+
</reference>
|
| 138 |
+
</customer_account_create>
|
| 139 |
+
|
| 140 |
+
<customer_account_forgotpassword translate="label">
|
| 141 |
+
<label>Customer Forgot Password Form</label>
|
| 142 |
+
<remove name="right"/>
|
| 143 |
+
<remove name="left"/>
|
| 144 |
+
|
| 145 |
+
<reference name="root">
|
| 146 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
| 147 |
+
<action method="setHeaderTitle" translate="title" module="customer"><title>Password forgotten</title></action>
|
| 148 |
+
</reference>
|
| 149 |
+
<reference name="content">
|
| 150 |
+
<!--<block type="core/template" name="forgotPassword" template="customer/form/forgotpassword.phtml"/>-->
|
| 151 |
+
<block type="customer/account_forgotpassword" name="forgotPassword" template="customer/form/forgotpassword.phtml"/>
|
| 152 |
+
</reference>
|
| 153 |
+
</customer_account_forgotpassword>
|
| 154 |
+
|
| 155 |
+
<customer_account_confirmation>
|
| 156 |
+
<remove name="right"/>
|
| 157 |
+
<remove name="left"/>
|
| 158 |
+
|
| 159 |
+
<reference name="root">
|
| 160 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
| 161 |
+
<action method="setHeaderTitle" translate="title" module="customer"><title>Send confirmation link</title></action>
|
| 162 |
+
</reference>
|
| 163 |
+
<reference name="content">
|
| 164 |
+
<block type="core/template" name="accountConfirmation" template="customer/form/confirmation.phtml"/>
|
| 165 |
+
</reference>
|
| 166 |
+
</customer_account_confirmation>
|
| 167 |
+
|
| 168 |
+
<customer_account_edit translate="label">
|
| 169 |
+
<label>Customer Account Edit Form</label>
|
| 170 |
+
<update handle="customer_account"/>
|
| 171 |
+
<reference name="root">
|
| 172 |
+
<action method="setHeaderTitle" translate="title" module="customer"><title>Edit Account Info</title></action>
|
| 173 |
+
</reference>
|
| 174 |
+
<reference name="my.account.wrapper">
|
| 175 |
+
<block type="customer/form_edit" name="customer_edit" template="customer/form/edit.phtml"/>
|
| 176 |
+
</reference>
|
| 177 |
+
|
| 178 |
+
<reference name="left">
|
| 179 |
+
<action method="unsetChild"><name>left.permanent.callout</name></action>
|
| 180 |
+
</reference>
|
| 181 |
+
</customer_account_edit>
|
| 182 |
+
|
| 183 |
+
<!--
|
| 184 |
+
Customer account pages, rendered for all tabs in dashboard
|
| 185 |
+
-->
|
| 186 |
+
|
| 187 |
+
<customer_account translate="label">
|
| 188 |
+
<label>Customer My Account (All Pages)</label>
|
| 189 |
+
<!--remove name="catalog.compare.sidebar"/>
|
| 190 |
+
<remove name="sale.reorder.sidebar"/-->
|
| 191 |
+
<!-- Mage_Customer -->
|
| 192 |
+
<reference name="root">
|
| 193 |
+
<action method="setTemplate"><template>page/2columns-left.phtml</template></action>
|
| 194 |
+
</reference>
|
| 195 |
+
|
| 196 |
+
<reference name="content">
|
| 197 |
+
<block type="page/html_wrapper" name="my.account.wrapper" translate="label">
|
| 198 |
+
<label>My Account Wrapper</label>
|
| 199 |
+
<action method="setElementClass"><value>my-account</value></action>
|
| 200 |
+
</block>
|
| 201 |
+
</reference>
|
| 202 |
+
|
| 203 |
+
<reference name="left">
|
| 204 |
+
<block type="customer/account_navigation" name="customer_account_navigation" before="-" template="customer/account/navigation.phtml">
|
| 205 |
+
<action method="addLink" translate="label" module="customer"><name>account</name><path>customer/account/</path><label>Account Dashboard</label></action>
|
| 206 |
+
<action method="addLink" translate="label" module="customer"><name>account_edit</name><path>customer/account/edit/</path><label>Account Information</label></action>
|
| 207 |
+
<action method="addLink" translate="label" module="customer"><name>address_book</name><path>customer/address/</path><label>Address Book</label></action>
|
| 208 |
+
</block>
|
| 209 |
+
<block type="checkout/cart_sidebar" name="cart_sidebar" template="checkout/cart/sidebar.phtml">
|
| 210 |
+
<action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/sidebar/default.phtml</template></action>
|
| 211 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/sidebar/default.phtml</template></action>
|
| 212 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/sidebar/default.phtml</template></action>
|
| 213 |
+
</block>
|
| 214 |
+
<block type="catalog/product_compare_sidebar" name="catalog.compare.sidebar" template="catalog/product/compare/sidebar.phtml"/>
|
| 215 |
+
<block type="sales/reorder_sidebar" name="sale.reorder.sidebar" as="reorder" template="sales/reorder/sidebar.phtml"/>
|
| 216 |
+
<remove name="tags_popular"/>
|
| 217 |
+
|
| 218 |
+
</reference>
|
| 219 |
+
</customer_account>
|
| 220 |
+
|
| 221 |
+
<!--
|
| 222 |
+
Customer account home dashboard layout
|
| 223 |
+
-->
|
| 224 |
+
|
| 225 |
+
<customer_account_index translate="label">
|
| 226 |
+
<label>Customer My Account Dashboard</label>
|
| 227 |
+
<update handle="customer_account"/>
|
| 228 |
+
<!-- Mage_Customer -->
|
| 229 |
+
<reference name="root">
|
| 230 |
+
<action method="setTemplate"><template>page/2columns-left.phtml</template></action>
|
| 231 |
+
</reference>
|
| 232 |
+
<reference name="my.account.wrapper">
|
| 233 |
+
<block type="customer/account_dashboard" name="customer_account_dashboard" template="customer/account/dashboard.phtml">
|
| 234 |
+
<block type="customer/account_dashboard_hello" name="customer_account_dashboard_hello" as="hello" template="customer/account/dashboard/hello.phtml"/>
|
| 235 |
+
<block type="core/template" name="customer_account_dashboard_top" as="top" />
|
| 236 |
+
<block type="customer/account_dashboard_info" name="customer_account_dashboard_info" as="info" template="customer/account/dashboard/info.phtml"/>
|
| 237 |
+
<block type="customer/account_dashboard_newsletter" name="customer_account_dashboard_newsletter" as="newsletter" template="customer/account/dashboard/newsletter.phtml"/>
|
| 238 |
+
<block type="customer/account_dashboard_address" name="customer_account_dashboard_address" as="address" template="customer/account/dashboard/address.phtml"/>
|
| 239 |
+
</block>
|
| 240 |
+
</reference>
|
| 241 |
+
|
| 242 |
+
</customer_account_index>
|
| 243 |
+
|
| 244 |
+
<!--
|
| 245 |
+
Customer account address book
|
| 246 |
+
-->
|
| 247 |
+
|
| 248 |
+
<customer_address_index translate="label">
|
| 249 |
+
<label>Customer My Account Address Book</label>
|
| 250 |
+
<!-- Mage_Customer -->
|
| 251 |
+
<update handle="customer_account"/>
|
| 252 |
+
<reference name="my.account.wrapper">
|
| 253 |
+
<block type="customer/address_book" name="address_book" template="customer/address/book.phtml"/>
|
| 254 |
+
</reference>
|
| 255 |
+
</customer_address_index>
|
| 256 |
+
|
| 257 |
+
<!--
|
| 258 |
+
Customer account address edit page
|
| 259 |
+
-->
|
| 260 |
+
|
| 261 |
+
<customer_address_form translate="label">
|
| 262 |
+
<label>Customer My Account Address Edit Form</label>
|
| 263 |
+
<!-- Mage_Customer -->
|
| 264 |
+
<update handle="customer_account"/>
|
| 265 |
+
<reference name="my.account.wrapper">
|
| 266 |
+
<block type="customer/address_edit" name="customer_address_edit" template="customer/address/pca_edit.phtml"/>
|
| 267 |
+
</reference>
|
| 268 |
+
</customer_address_form>
|
| 269 |
+
|
| 270 |
+
</layout>
|
app/design/frontend/default/default/layout/GuestAddressLookup.xml
ADDED
|
@@ -0,0 +1,436 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package base_default
|
| 24 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
|
| 28 |
+
-->
|
| 29 |
+
<layout version="0.1.0">
|
| 30 |
+
|
| 31 |
+
<!--
|
| 32 |
+
Default layout, loads most of the pages
|
| 33 |
+
-->
|
| 34 |
+
|
| 35 |
+
<default>
|
| 36 |
+
|
| 37 |
+
<!-- Mage_Checkout -->
|
| 38 |
+
<reference name="top.links">
|
| 39 |
+
<block type="checkout/links" name="checkout_cart_link">
|
| 40 |
+
<action method="addCartLink"></action>
|
| 41 |
+
<action method="addCheckoutLink"></action>
|
| 42 |
+
</block>
|
| 43 |
+
</reference>
|
| 44 |
+
<reference name="left">
|
| 45 |
+
<block type="checkout/cart_sidebar" name="cart_sidebar" template="checkout/cart/sidebar.phtml" before="-">
|
| 46 |
+
<action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/sidebar/default.phtml</template></action>
|
| 47 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/sidebar/default.phtml</template></action>
|
| 48 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/sidebar/default.phtml</template></action>
|
| 49 |
+
<block type="core/text_list" name="cart_sidebar.extra_actions" as="extra_actions" translate="label" module="checkout">
|
| 50 |
+
<label>Shopping Cart Sidebar Extra Actions</label>
|
| 51 |
+
</block>
|
| 52 |
+
</block>
|
| 53 |
+
</reference>
|
| 54 |
+
</default>
|
| 55 |
+
|
| 56 |
+
<checkout_cart_index translate="label">
|
| 57 |
+
<label>Shopping Cart</label>
|
| 58 |
+
<remove name="right"/>
|
| 59 |
+
<remove name="left"/>
|
| 60 |
+
<!-- Mage_Checkout -->
|
| 61 |
+
<reference name="root">
|
| 62 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
| 63 |
+
</reference>
|
| 64 |
+
<reference name="content">
|
| 65 |
+
<block type="checkout/cart" name="checkout.cart">
|
| 66 |
+
<action method="setCartTemplate"><value>checkout/cart.phtml</value></action>
|
| 67 |
+
<action method="setEmptyTemplate"><value>checkout/cart/noItems.phtml</value></action>
|
| 68 |
+
<action method="chooseTemplate"/>
|
| 69 |
+
<action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/item/default.phtml</template></action>
|
| 70 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/item/default.phtml</template></action>
|
| 71 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/item/default.phtml</template></action>
|
| 72 |
+
|
| 73 |
+
<block type="core/text_list" name="checkout.cart.top_methods" as="top_methods" translate="label">
|
| 74 |
+
<label>Payment Methods Before Checkout Button</label>
|
| 75 |
+
<block type="checkout/onepage_link" name="checkout.cart.methods.onepage" template="checkout/onepage/link.phtml"/>
|
| 76 |
+
</block>
|
| 77 |
+
|
| 78 |
+
<block type="page/html_wrapper" name="checkout.cart.form.before" as="form_before" translate="label">
|
| 79 |
+
<label>Shopping Cart Form Before</label>
|
| 80 |
+
</block>
|
| 81 |
+
|
| 82 |
+
<block type="core/text_list" name="checkout.cart.methods" as="methods" translate="label">
|
| 83 |
+
<label>Payment Methods After Checkout Button</label>
|
| 84 |
+
<block type="checkout/onepage_link" name="checkout.cart.methods.onepage" template="checkout/onepage/link.phtml"/>
|
| 85 |
+
<block type="checkout/multishipping_link" name="checkout.cart.methods.multishipping" template="checkout/multishipping/link.phtml"/>
|
| 86 |
+
</block>
|
| 87 |
+
|
| 88 |
+
<block type="checkout/cart_coupon" name="checkout.cart.coupon" as="coupon" template="checkout/cart/coupon.phtml"/>
|
| 89 |
+
<block type="checkout/cart_shipping" name="checkout.cart.shipping" as="shipping" template="checkout/cart/shipping.phtml"/>
|
| 90 |
+
<block type="checkout/cart_crosssell" name="checkout.cart.crosssell" as="crosssell" template="checkout/cart/crosssell.phtml"/>
|
| 91 |
+
|
| 92 |
+
<block type="checkout/cart_totals" name="checkout.cart.totals" as="totals" template="checkout/cart/totals.phtml"/>
|
| 93 |
+
</block>
|
| 94 |
+
</reference>
|
| 95 |
+
<block type="core/text_list" name="additional.product.info" translate="label">
|
| 96 |
+
<label>Additional Product Info</label>
|
| 97 |
+
</block>
|
| 98 |
+
</checkout_cart_index>
|
| 99 |
+
|
| 100 |
+
<checkout_cart_configure translate="label">
|
| 101 |
+
<label>Configure Cart Item</label>
|
| 102 |
+
<update handle="catalog_product_view"/>
|
| 103 |
+
<reference name="product.info">
|
| 104 |
+
<block type="checkout/cart_item_configure" name="checkout.cart.item.configure.block"></block>
|
| 105 |
+
</reference>
|
| 106 |
+
</checkout_cart_configure>
|
| 107 |
+
|
| 108 |
+
<!--
|
| 109 |
+
Multi address shipping checkout main layout,
|
| 110 |
+
will be rendered on all checkout pages
|
| 111 |
+
-->
|
| 112 |
+
|
| 113 |
+
<checkout_multishipping translate="label">
|
| 114 |
+
<label>Multishipping Checkout</label>
|
| 115 |
+
<!-- Mage_Checkout -->
|
| 116 |
+
<remove name="right"/>
|
| 117 |
+
<remove name="left"/>
|
| 118 |
+
|
| 119 |
+
<reference name="root">
|
| 120 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
| 121 |
+
</reference>
|
| 122 |
+
<reference name="content">
|
| 123 |
+
<block type="checkout/multishipping_state" name="checkout_state" template="checkout/multishipping/state.phtml"/>
|
| 124 |
+
</reference>
|
| 125 |
+
</checkout_multishipping>
|
| 126 |
+
|
| 127 |
+
<checkout_multishipping_login>
|
| 128 |
+
<update handle="customer_account_login"/>
|
| 129 |
+
</checkout_multishipping_login>
|
| 130 |
+
|
| 131 |
+
<checkout_multishipping_register>
|
| 132 |
+
<update handle="customer_account_create"/>
|
| 133 |
+
</checkout_multishipping_register>
|
| 134 |
+
|
| 135 |
+
<!--
|
| 136 |
+
Multi address shipping checkout selection of address per item page
|
| 137 |
+
-->
|
| 138 |
+
|
| 139 |
+
<checkout_multishipping_address_select translate="label">
|
| 140 |
+
<label>Multishipping Checkout Shipping Address Selection</label>
|
| 141 |
+
<update handle="checkout_multishipping"/>
|
| 142 |
+
<!-- Mage_Checkout -->
|
| 143 |
+
<reference name="content">
|
| 144 |
+
<block type="checkout/multishipping_address_select" name="checkout_address_select" template="checkout/multishipping/address/select.phtml"/>
|
| 145 |
+
</reference>
|
| 146 |
+
</checkout_multishipping_address_select>
|
| 147 |
+
|
| 148 |
+
<checkout_multishipping_address_selectbilling translate="label">
|
| 149 |
+
<label>Multishipping Checkout Billing Address Selection</label>
|
| 150 |
+
<update handle="checkout_multishipping"/>
|
| 151 |
+
<!-- Mage_Checkout -->
|
| 152 |
+
<reference name="content">
|
| 153 |
+
<block type="checkout/multishipping_address_select" name="checkout_address_select" template="checkout/multishipping/address/select.phtml"/>
|
| 154 |
+
</reference>
|
| 155 |
+
</checkout_multishipping_address_selectbilling>
|
| 156 |
+
|
| 157 |
+
|
| 158 |
+
<checkout_multishipping_address_newshipping translate="label">
|
| 159 |
+
<label>Multishipping Checkout Shipping Address Creation</label>
|
| 160 |
+
<update handle="checkout_multishipping"/>
|
| 161 |
+
<update handle="checkout_multishipping_customer_address"/>
|
| 162 |
+
</checkout_multishipping_address_newshipping>
|
| 163 |
+
|
| 164 |
+
<checkout_multishipping_address_newbilling translate="label">
|
| 165 |
+
<label>Multishipping Checkout Billing Address Creation</label>
|
| 166 |
+
<update handle="checkout_multishipping"/>
|
| 167 |
+
<update handle="checkout_multishipping_customer_address"/>
|
| 168 |
+
</checkout_multishipping_address_newbilling>
|
| 169 |
+
|
| 170 |
+
<checkout_multishipping_address_editshipping translate="label">
|
| 171 |
+
<label>Multishipping Checkout Shipping Address Edit Form</label>
|
| 172 |
+
<update handle="checkout_multishipping"/>
|
| 173 |
+
<update handle="checkout_multishipping_customer_address"/>
|
| 174 |
+
</checkout_multishipping_address_editshipping>
|
| 175 |
+
|
| 176 |
+
<checkout_multishipping_address_editaddress>
|
| 177 |
+
<update handle="checkout_multishipping"/>
|
| 178 |
+
<update handle="checkout_multishipping_customer_address"/>
|
| 179 |
+
</checkout_multishipping_address_editaddress>
|
| 180 |
+
|
| 181 |
+
<checkout_multishipping_address_editbilling translate="label">
|
| 182 |
+
<label>Multishipping Checkout Billing Address Edit Form</label>
|
| 183 |
+
<update handle="checkout_multishipping"/>
|
| 184 |
+
<update handle="checkout_multishipping_customer_address"/>
|
| 185 |
+
</checkout_multishipping_address_editbilling>
|
| 186 |
+
|
| 187 |
+
<checkout_multishipping_customer_address translate="label">
|
| 188 |
+
<label>Multishipping Checkout Customer Address Edit Form</label>
|
| 189 |
+
<reference name="content">
|
| 190 |
+
<block type="customer/address_edit" name="customer_address_edit" template="customer/address/pca_edit.phtml"/>
|
| 191 |
+
</reference>
|
| 192 |
+
</checkout_multishipping_customer_address>
|
| 193 |
+
|
| 194 |
+
<!--
|
| 195 |
+
Multi address shipping checkout address page
|
| 196 |
+
-->
|
| 197 |
+
|
| 198 |
+
<checkout_multishipping_addresses translate="label">
|
| 199 |
+
<label>Multishipping Checkout Address (Any) Form</label>
|
| 200 |
+
<update handle="checkout_multishipping"/>
|
| 201 |
+
<!-- Mage_Checkout -->
|
| 202 |
+
<reference name="content">
|
| 203 |
+
<block type="checkout/multishipping_addresses" name="checkout_addresses" template="checkout/multishipping/addresses.phtml">
|
| 204 |
+
<action method="addItemRender"><type>default</type><block>checkout/cart_item_renderer</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 205 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 206 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 207 |
+
</block>
|
| 208 |
+
</reference>
|
| 209 |
+
</checkout_multishipping_addresses>
|
| 210 |
+
|
| 211 |
+
<!--
|
| 212 |
+
Multi address shipping checkout shipping information
|
| 213 |
+
-->
|
| 214 |
+
|
| 215 |
+
<checkout_multishipping_shipping translate="label">
|
| 216 |
+
<label>Multishipping Checkout Shipping Information Step</label>
|
| 217 |
+
<update handle="checkout_multishipping"/>
|
| 218 |
+
<!-- Mage_Checkout -->
|
| 219 |
+
<reference name="content">
|
| 220 |
+
<block type="checkout/multishipping_shipping" name="checkout_shipping" template="checkout/multishipping/shipping.phtml">
|
| 221 |
+
<action method="addItemRender"><type>default</type><block>checkout/cart_item_renderer</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 222 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 223 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 224 |
+
|
| 225 |
+
<block type="checkout/multishipping_billing_items" name="checkout_billing_items" template="checkout/multishipping/billing/items.phtml">
|
| 226 |
+
<action method="addItemRender"><type>default</type><block>checkout/cart_item_renderer</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 227 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 228 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 229 |
+
</block>
|
| 230 |
+
</block>
|
| 231 |
+
</reference>
|
| 232 |
+
</checkout_multishipping_shipping>
|
| 233 |
+
|
| 234 |
+
<!--
|
| 235 |
+
Multi address shipping checkout billing information
|
| 236 |
+
-->
|
| 237 |
+
|
| 238 |
+
<checkout_multishipping_billing translate="label">
|
| 239 |
+
<label>Multishipping Checkout Billing Information Step</label>
|
| 240 |
+
<update handle="checkout_multishipping"/>
|
| 241 |
+
<!-- Mage_Checkout -->
|
| 242 |
+
<reference name="content">
|
| 243 |
+
<block type="checkout/multishipping_billing" name="checkout_billing" template="checkout/multishipping/billing.phtml">
|
| 244 |
+
<action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
|
| 245 |
+
|
| 246 |
+
<!--<block type="checkout/multishipping_billing_items" name="checkout_billing_items" template="checkout/multishipping/billing/items.phtml">
|
| 247 |
+
<action method="addItemRender"><type>default</type><block>checkout/cart_item_renderer</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 248 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 249 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 250 |
+
</block>-->
|
| 251 |
+
|
| 252 |
+
</block>
|
| 253 |
+
</reference>
|
| 254 |
+
</checkout_multishipping_billing>
|
| 255 |
+
|
| 256 |
+
<!--
|
| 257 |
+
Multi address shipping checkout overview
|
| 258 |
+
-->
|
| 259 |
+
|
| 260 |
+
<checkout_multishipping_overview translate="label">
|
| 261 |
+
<label>Multishipping Checkout Overview</label>
|
| 262 |
+
<update handle="checkout_multishipping"/>
|
| 263 |
+
<!-- Mage_Checkout -->
|
| 264 |
+
<reference name="content">
|
| 265 |
+
<block type="checkout/multishipping_overview" name="checkout_overview" template="checkout/multishipping/overview.phtml">
|
| 266 |
+
<action method="addItemRender"><type>default</type><block>checkout/cart_item_renderer</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 267 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 268 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/multishipping/item/default.phtml</template></action>
|
| 269 |
+
<action method="addRowItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/multishipping/overview/item.phtml</template></action>
|
| 270 |
+
<action method="addRowItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/multishipping/overview/item.phtml</template></action>
|
| 271 |
+
<block type="checkout/multishipping_payment_info" name="payment_info">
|
| 272 |
+
<action method="setInfoTemplate"><method></method><template></template></action>
|
| 273 |
+
</block>
|
| 274 |
+
<block type="checkout/agreements" name="checkout.multishipping.agreements" as="agreements" template="checkout/multishipping/agreements.phtml"/>
|
| 275 |
+
<block type="checkout/cart_totals" name="totals" />
|
| 276 |
+
<block type="core/text_list" name="checkout.multishipping.overview.items.after" as="items_after" translate="label">
|
| 277 |
+
<label>Overview Items After</label>
|
| 278 |
+
</block>
|
| 279 |
+
</block>
|
| 280 |
+
</reference>
|
| 281 |
+
</checkout_multishipping_overview>
|
| 282 |
+
|
| 283 |
+
<!--
|
| 284 |
+
Multi address shipping checkout success
|
| 285 |
+
-->
|
| 286 |
+
|
| 287 |
+
<checkout_multishipping_success translate="label">
|
| 288 |
+
<label>Multishipping Checkout Success</label>
|
| 289 |
+
<update handle="checkout_multishipping"/>
|
| 290 |
+
<!-- Mage_Checkout -->
|
| 291 |
+
<reference name="content">
|
| 292 |
+
<block type="checkout/multishipping_success" name="checkout_success" template="checkout/multishipping/success.phtml"/>
|
| 293 |
+
</reference>
|
| 294 |
+
</checkout_multishipping_success>
|
| 295 |
+
|
| 296 |
+
<!--
|
| 297 |
+
One page checkout main layout
|
| 298 |
+
-->
|
| 299 |
+
|
| 300 |
+
<checkout_onepage_index translate="label">
|
| 301 |
+
<label>One Page Checkout</label>
|
| 302 |
+
<!-- Mage_Checkout -->
|
| 303 |
+
<remove name="left"/>
|
| 304 |
+
|
| 305 |
+
<reference name="root">
|
| 306 |
+
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
|
| 307 |
+
</reference>
|
| 308 |
+
<reference name="right">
|
| 309 |
+
<action method="unsetChildren"></action>
|
| 310 |
+
<block type="page/html_wrapper" name="checkout.progress.wrapper" translate="label">
|
| 311 |
+
<label>Checkout Progress Wrapper</label>
|
| 312 |
+
<action method="setElementId"><value>checkout-progress-wrapper</value></action>
|
| 313 |
+
<block type="checkout/onepage_progress" name="checkout.progress" before="-" template="checkout/onepage/progress.phtml"/>
|
| 314 |
+
</block>
|
| 315 |
+
</reference>
|
| 316 |
+
<reference name="content">
|
| 317 |
+
<block type="checkout/onepage" name="checkout.onepage" template="checkout/onepage.phtml">
|
| 318 |
+
<block type="checkout/onepage_login" name="checkout.onepage.login" as="login" template="checkout/onepage/login.phtml">
|
| 319 |
+
<block type="page/html_wrapper" name="checkout.onepage.login.before" as="login_before" translate="label">
|
| 320 |
+
<label>Login/Registration Before</label>
|
| 321 |
+
<action method="setMayBeInvisible"><value>1</value></action>
|
| 322 |
+
</block>
|
| 323 |
+
</block>
|
| 324 |
+
<block type="checkout/onepage_billing" name="checkout.onepage.billing" as="billing" template="checkout/onepage/pca_billing.phtml"/>
|
| 325 |
+
<block type="checkout/onepage_shipping" name="checkout.onepage.shipping" as="shipping" template="checkout/onepage/pca_shipping.phtml"/>
|
| 326 |
+
<block type="checkout/onepage_shipping_method" name="checkout.onepage.shipping_method" as="shipping_method" template="checkout/onepage/shipping_method.phtml">
|
| 327 |
+
<block type="checkout/onepage_shipping_method_available" name="checkout.onepage.shipping_method.available" as="available" template="checkout/onepage/shipping_method/available.phtml"/>
|
| 328 |
+
<block type="checkout/onepage_shipping_method_additional" name="checkout.onepage.shipping_method.additional" as="additional" template="checkout/onepage/shipping_method/additional.phtml"/>
|
| 329 |
+
</block>
|
| 330 |
+
<block type="checkout/onepage_payment" name="checkout.onepage.payment" as="payment" template="checkout/onepage/payment.phtml">
|
| 331 |
+
<block type="checkout/onepage_payment_methods" name="checkout.payment.methods" as="methods" template="checkout/onepage/payment/methods.phtml">
|
| 332 |
+
<action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
|
| 333 |
+
</block>
|
| 334 |
+
</block>
|
| 335 |
+
<block type="checkout/onepage_review" name="checkout.onepage.review" as="review" template="checkout/onepage/review.phtml"/>
|
| 336 |
+
</block>
|
| 337 |
+
</reference>
|
| 338 |
+
</checkout_onepage_index>
|
| 339 |
+
|
| 340 |
+
<!--
|
| 341 |
+
One page checkout progress block
|
| 342 |
+
-->
|
| 343 |
+
|
| 344 |
+
<checkout_onepage_progress>
|
| 345 |
+
<!-- Mage_Checkout -->
|
| 346 |
+
<remove name="right"/>
|
| 347 |
+
<remove name="left"/>
|
| 348 |
+
|
| 349 |
+
<block type="checkout/onepage_progress" name="root" output="toHtml" template="checkout/onepage/progress.phtml">
|
| 350 |
+
<block type="checkout/onepage_payment_info" name="payment_info">
|
| 351 |
+
<action method="setInfoTemplate"><method></method><template></template></action>
|
| 352 |
+
</block>
|
| 353 |
+
</block>
|
| 354 |
+
</checkout_onepage_progress>
|
| 355 |
+
|
| 356 |
+
<!--
|
| 357 |
+
One page checkout payment methods block
|
| 358 |
+
-->
|
| 359 |
+
<checkout_onepage_paymentmethod>
|
| 360 |
+
<remove name="right"/>
|
| 361 |
+
<remove name="left"/>
|
| 362 |
+
|
| 363 |
+
<block type="checkout/onepage_payment_methods" name="root" output="toHtml" template="checkout/onepage/payment/methods.phtml">
|
| 364 |
+
<action method="setMethodFormTemplate"><method>purchaseorder</method><template>payment/form/purchaseorder.phtml</template></action>
|
| 365 |
+
</block>
|
| 366 |
+
</checkout_onepage_paymentmethod>
|
| 367 |
+
|
| 368 |
+
|
| 369 |
+
<!--
|
| 370 |
+
One page checkout shipping methods block
|
| 371 |
+
-->
|
| 372 |
+
|
| 373 |
+
<checkout_onepage_shippingmethod>
|
| 374 |
+
<!-- Mage_Checkout -->
|
| 375 |
+
<remove name="right"/>
|
| 376 |
+
<remove name="left"/>
|
| 377 |
+
|
| 378 |
+
<block type="checkout/onepage_shipping_method_available" name="root" output="toHtml" template="checkout/onepage/shipping_method/available.phtml"/>
|
| 379 |
+
</checkout_onepage_shippingmethod>
|
| 380 |
+
|
| 381 |
+
<checkout_onepage_additional>
|
| 382 |
+
<!-- Mage_Checkout -->
|
| 383 |
+
<remove name="right"/>
|
| 384 |
+
<remove name="left"/>
|
| 385 |
+
|
| 386 |
+
<block type="checkout/onepage_shipping_method_additional" name="root" output="toHtml" template="checkout/onepage/shipping_method/additional.phtml">
|
| 387 |
+
<action method="setDontDisplayContainer"><param>1</param></action>
|
| 388 |
+
</block>
|
| 389 |
+
</checkout_onepage_additional>
|
| 390 |
+
|
| 391 |
+
<!--
|
| 392 |
+
One page checkout order review block
|
| 393 |
+
-->
|
| 394 |
+
|
| 395 |
+
<checkout_onepage_review translate="label">
|
| 396 |
+
<label>One Page Checkout Overview</label>
|
| 397 |
+
<!-- Mage_Checkout -->
|
| 398 |
+
<remove name="right"/>
|
| 399 |
+
<remove name="left"/>
|
| 400 |
+
|
| 401 |
+
<block type="checkout/onepage_review_info" name="root" output="toHtml" template="checkout/onepage/review/info.phtml">
|
| 402 |
+
<action method="addItemRender"><type>default</type><block>checkout/cart_item_renderer</block><template>checkout/onepage/review/item.phtml</template></action>
|
| 403 |
+
<action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/onepage/review/item.phtml</template></action>
|
| 404 |
+
<action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/onepage/review/item.phtml</template></action>
|
| 405 |
+
<block type="checkout/cart_totals" name="checkout.onepage.review.info.totals" as="totals" template="checkout/onepage/review/totals.phtml"/>
|
| 406 |
+
<block type="core/text_list" name="checkout.onepage.review.info.items.before" as="items_before" translate="label">
|
| 407 |
+
<label>Items Before</label>
|
| 408 |
+
</block>
|
| 409 |
+
<block type="core/text_list" name="checkout.onepage.review.info.items.after" as="items_after" translate="label">
|
| 410 |
+
<label>Items After</label>
|
| 411 |
+
</block>
|
| 412 |
+
<block type="checkout/agreements" name="checkout.onepage.agreements" as="agreements" template="checkout/onepage/agreements.phtml"/>
|
| 413 |
+
<block type="core/template" name="checkout.onepage.review.button" as="button" template="checkout/onepage/review/button.phtml"/>
|
| 414 |
+
</block>
|
| 415 |
+
</checkout_onepage_review>
|
| 416 |
+
|
| 417 |
+
<checkout_onepage_success translate="label">
|
| 418 |
+
<label>One Page Checkout Success</label>
|
| 419 |
+
<reference name="root">
|
| 420 |
+
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
|
| 421 |
+
</reference>
|
| 422 |
+
<reference name="content">
|
| 423 |
+
<block type="checkout/onepage_success" name="checkout.success" template="checkout/success.phtml"/>
|
| 424 |
+
</reference>
|
| 425 |
+
</checkout_onepage_success>
|
| 426 |
+
<checkout_onepage_failure translate="label">
|
| 427 |
+
<label>One Page Checkout Failure</label>
|
| 428 |
+
<reference name="root">
|
| 429 |
+
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
|
| 430 |
+
</reference>
|
| 431 |
+
<reference name="content">
|
| 432 |
+
<block type="checkout/onepage_failure" name="checkout.failure" template="checkout/onepage/failure.phtml"/>
|
| 433 |
+
</reference>
|
| 434 |
+
</checkout_onepage_failure>
|
| 435 |
+
<block type="core/list" name="additional.product.info"/>
|
| 436 |
+
</layout>
|
app/design/frontend/default/default/layout/PCAPersistent.xml
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package base_default
|
| 24 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
|
| 28 |
+
-->
|
| 29 |
+
<layout version="0.1.0">
|
| 30 |
+
<customer_account_login>
|
| 31 |
+
<reference name="customer_form_login">
|
| 32 |
+
<action method="setTemplate"><template>persistent/customer/form/login.phtml</template></action>
|
| 33 |
+
<block type="persistent/form_remember" name="persistent.remember.me" template="persistent/remember_me.phtml" />
|
| 34 |
+
<block type="core/template" name="persistent.remember.me.tooltip" template="persistent/remember_me_tooltip.phtml" />
|
| 35 |
+
</reference>
|
| 36 |
+
</customer_account_login>
|
| 37 |
+
|
| 38 |
+
<customer_account_create>
|
| 39 |
+
<reference name="customer_form_register">
|
| 40 |
+
<action method="setTemplate"><template>persistent/customer/form/pca_register.phtml</template></action>
|
| 41 |
+
<block type="persistent/form_remember" name="persistent.remember.me" template="persistent/remember_me.phtml" />
|
| 42 |
+
<block type="core/template" name="persistent.remember.me.tooltip" template="persistent/remember_me_tooltip.phtml" />
|
| 43 |
+
</reference>
|
| 44 |
+
</customer_account_create>
|
| 45 |
+
|
| 46 |
+
<checkout_onepage_index>
|
| 47 |
+
<reference name="checkout.onepage.login">
|
| 48 |
+
<action method="setTemplate"><template>persistent/checkout/onepage/login.phtml</template></action>
|
| 49 |
+
<block type="persistent/form_remember" name="persistent.remember.me" template="persistent/remember_me.phtml" />
|
| 50 |
+
</reference>
|
| 51 |
+
<reference name="checkout.onepage.billing">
|
| 52 |
+
<action method="setTemplate"><template>persistent/checkout/onepage/pca_billing.phtml</template></action>
|
| 53 |
+
<block type="persistent/form_remember" name="persistent.remember.me" template="persistent/remember_me.phtml" />
|
| 54 |
+
<block type="core/template" name="persistent.remember.me.tooltip" template="persistent/remember_me_tooltip.phtml" />
|
| 55 |
+
</reference>
|
| 56 |
+
</checkout_onepage_index>
|
| 57 |
+
<customer_logged_out>
|
| 58 |
+
<reference name="right">
|
| 59 |
+
<block type="sales/reorder_sidebar" name="sale.reorder.sidebar" as="reorder" template="sales/reorder/sidebar.phtml"/>
|
| 60 |
+
</reference>
|
| 61 |
+
</customer_logged_out>
|
| 62 |
+
</layout>
|
app/design/frontend/default/default/template/checkout/onepage/pca_billing.phtml
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
|
| 28 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.js" ></script>
|
| 29 |
+
<link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.css" type="text/css" media="all"/>
|
| 30 |
+
|
| 31 |
+
<style type="text/css">
|
| 32 |
+
label { font:bold 9pt arial;color:#455f70; }
|
| 33 |
+
table { margin:15px;padding:15px;background-color:#ddeffd;border-radius:5px;border:solid 1px #98b4c9; }
|
| 34 |
+
#billing:postcode {width:150px;}
|
| 35 |
+
</style>
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
<form id="co-billing-form" action="">
|
| 41 |
+
<fieldset>
|
| 42 |
+
<ul class="form-list">
|
| 43 |
+
<?php if ($this->customerHasAddresses()): ?>
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
<li class="wide">
|
| 47 |
+
<label for="billing-address-select"><?php echo $this->__('Select a billing address from your address book or enter a new address.') ?></label>
|
| 48 |
+
<div class="input-box">
|
| 49 |
+
<?php echo $this->getAddressesHtmlSelect('billing') ?>
|
| 50 |
+
</div>
|
| 51 |
+
</li>
|
| 52 |
+
<?php endif; ?>
|
| 53 |
+
<li id="billing-new-address-form"<?php if ($this->customerHasAddresses()): ?> style="display:none;"<?php endif; ?>>
|
| 54 |
+
<fieldset>
|
| 55 |
+
<input type="hidden" name="billing[address_id]" value="<?php echo $this->getAddress()->getId() ?>" id="billing:address_id" />
|
| 56 |
+
<ul>
|
| 57 |
+
<li class="fields"><?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getAddress()->getFirstname() ? $this->getAddress() : $this->getQuote()->getCustomer())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?></li>
|
| 58 |
+
<li class="fields">
|
| 59 |
+
<div class="field">
|
| 60 |
+
<label for="billing:company"><?php echo $this->__('Company') ?></label>
|
| 61 |
+
<div class="input-box">
|
| 62 |
+
<input type="text" id="billing:company" name="billing[company]" value="<?php echo $this->htmlEscape($this->getAddress()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
|
| 63 |
+
</div>
|
| 64 |
+
</div>
|
| 65 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
| 66 |
+
<div class="field">
|
| 67 |
+
<label for="billing:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
| 68 |
+
<div class="input-box">
|
| 69 |
+
<input type="text" name="billing[email]" id="billing:email" value="<?php echo $this->htmlEscape($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
| 70 |
+
</div>
|
| 71 |
+
</div> <br /><br /><br />
|
| 72 |
+
<?php endif ?>
|
| 73 |
+
</li> <li class="fields">
|
| 74 |
+
<div class="field">
|
| 75 |
+
<label for="billing:country_id" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
| 76 |
+
<div class="input-box">
|
| 77 |
+
<?php echo $this->getCountryHtmlSelect('billing') ?>
|
| 78 |
+
</div>
|
| 79 |
+
</div>
|
| 80 |
+
</li>
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
<li class="fields">
|
| 84 |
+
<div class="field">
|
| 85 |
+
<label for="billing:postcode" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
| 86 |
+
<div class="input-box">
|
| 87 |
+
<input type="text" style="width: 150px" title=""<?php echo $this->__('Zip/Postal Code') ?>" name="billing[postcode]" id="billing:postcode" value="<?php echo $this->htmlEscape($this->getAddress()->getPostcode()) ?>" class="input-text validate-zip-international required-entry" />
|
| 88 |
+
</div>
|
| 89 |
+
<li class="wide">
|
| 90 |
+
<label for="billing:street1" class="required"><em>*</em><?php echo $this->__('Address') ?></label>
|
| 91 |
+
<div class="input-box">
|
| 92 |
+
<input type="text" title="<?php echo $this->__('Street Address') ?>" name="billing[street][]" id="billing:street1" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet(1)) ?>" class="input-text required-entry" />
|
| 93 |
+
</div>
|
| 94 |
+
</li>
|
| 95 |
+
<?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
|
| 96 |
+
<li class="wide">
|
| 97 |
+
<div class="input-box">
|
| 98 |
+
<input type="text" title="<?php echo $this->__('Street Address %s', $_i) ?>" name="billing[street][]" id="billing:street<?php echo $_i?>" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet($_i)) ?>" class="input-text" />
|
| 99 |
+
</div>
|
| 100 |
+
</li>
|
| 101 |
+
<?php endfor ?>
|
| 102 |
+
<li class="fields">
|
| 103 |
+
<div class="field">
|
| 104 |
+
<label for="billing:city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
| 105 |
+
<div class="input-box">
|
| 106 |
+
<input type="text" title="<?php echo $this->__('City') ?>" name="billing[city]" value="<?php echo $this->htmlEscape($this->getAddress()->getCity()) ?>" class="input-text required-entry" id="billing:city" />
|
| 107 |
+
</div>
|
| 108 |
+
</div>
|
| 109 |
+
<div class="field">
|
| 110 |
+
<label for="billing:region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
| 111 |
+
<div class="input-box">
|
| 112 |
+
<select id="billing:region_id" name="billing[region_id]" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
| 113 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
| 114 |
+
</select>
|
| 115 |
+
<script type="text/javascript">
|
| 116 |
+
//<![CDATA[
|
| 117 |
+
$('billing:region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
|
| 118 |
+
//]]>
|
| 119 |
+
</script>
|
| 120 |
+
<input type="text" id="billing:region" name="billing[region]" value="<?php echo $this->htmlEscape($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
|
| 121 |
+
</div>
|
| 122 |
+
</div>
|
| 123 |
+
</li>
|
| 124 |
+
|
| 125 |
+
|
| 126 |
+
<li class="fields">
|
| 127 |
+
<div class="field">
|
| 128 |
+
<label for="billing:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
| 129 |
+
<div class="input-box">
|
| 130 |
+
<input type="text" name="billing[telephone]" value="<?php echo $this->htmlEscape($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" id="billing:telephone" />
|
| 131 |
+
</div>
|
| 132 |
+
</div>
|
| 133 |
+
<div class="field">
|
| 134 |
+
<label for="billing:fax"><?php echo $this->__('Fax') ?></label>
|
| 135 |
+
<div class="input-box">
|
| 136 |
+
<input type="text" name="billing[fax]" value="<?php echo $this->htmlEscape($this->getAddress()->getFax()) ?>" title="<?php echo $this->__('Fax') ?>" class="input-text" id="billing:fax" />
|
| 137 |
+
</div>
|
| 138 |
+
</div>
|
| 139 |
+
</li>
|
| 140 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
| 141 |
+
|
| 142 |
+
<?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
|
| 143 |
+
<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
|
| 144 |
+
<?php if ($_dob->isEnabled() || $_gender->isEnabled()): ?>
|
| 145 |
+
<li class="fields">
|
| 146 |
+
<?php if ($_dob->isEnabled()): ?>
|
| 147 |
+
<div class="field">
|
| 148 |
+
<?php echo $_dob->setDate($this->getQuote()->getCustomerDob())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
| 149 |
+
</div>
|
| 150 |
+
<?php endif; ?>
|
| 151 |
+
<?php if ($_gender->isEnabled()): ?>
|
| 152 |
+
<div class="field">
|
| 153 |
+
<?php echo $_gender->setGender($this->getQuote()->getCustomerGender())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
| 154 |
+
</div>
|
| 155 |
+
<?php endif ?>
|
| 156 |
+
</li>
|
| 157 |
+
<?php endif ?>
|
| 158 |
+
|
| 159 |
+
<?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
|
| 160 |
+
<?php if ($_taxvat->isEnabled()): ?>
|
| 161 |
+
<li>
|
| 162 |
+
<?php echo $_taxvat->setTaxvat($this->getQuote()->getCustomerTaxvat())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
| 163 |
+
</li>
|
| 164 |
+
<?php endif ?>
|
| 165 |
+
|
| 166 |
+
<li class="fields" id="register-customer-password">
|
| 167 |
+
<div class="field">
|
| 168 |
+
<label for="billing:customer_password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
|
| 169 |
+
<div class="input-box">
|
| 170 |
+
<input type="password" name="billing[customer_password]" id="billing:customer_password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
|
| 171 |
+
</div>
|
| 172 |
+
</div>
|
| 173 |
+
<div class="field">
|
| 174 |
+
<label for="billing:confirm_password" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
|
| 175 |
+
<div class="input-box">
|
| 176 |
+
<input type="password" name="billing[confirm_password]" title="<?php echo $this->__('Confirm Password') ?>" id="billing:confirm_password" class="input-text required-entry validate-cpassword" />
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
</li>
|
| 180 |
+
<?php endif; ?>
|
| 181 |
+
<?php if ($this->isCustomerLoggedIn() && $this->customerHasAddresses()):?>
|
| 182 |
+
<li class="control">
|
| 183 |
+
<input type="checkbox" name="billing[save_in_address_book]" value="1" title="<?php echo $this->__('Save in address book') ?>" id="billing:save_in_address_book" onchange="if(window.shipping) shipping.setSameAsBilling(false);"<?php if ($this->getAddress()->getSaveInAddressBook()):?> checked="checked"<?php endif;?> class="checkbox" /><label for="billing:save_in_address_book"><?php echo $this->__('Save in address book') ?></label>
|
| 184 |
+
</li>
|
| 185 |
+
<?php else:?>
|
| 186 |
+
<li class="no-display"><input type="hidden" name="billing[save_in_address_book]" value="1" /></li>
|
| 187 |
+
<?php endif; ?>
|
| 188 |
+
</ul>
|
| 189 |
+
</fieldset>
|
| 190 |
+
</li>
|
| 191 |
+
<?php if ($this->canShip()): ?>
|
| 192 |
+
<li class="control">
|
| 193 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_yes" value="1"<?php if ($this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to this address') ?>" onclick="$('shipping:same_as_billing').checked = true;" class="radio" /><label for="billing:use_for_shipping_yes"><?php echo $this->__('Ship to this address') ?></label></li>
|
| 194 |
+
<li class="control">
|
| 195 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_no" value="0"<?php if (!$this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to different address') ?>" onclick="$('shipping:same_as_billing').checked = false;" class="radio" /><label for="billing:use_for_shipping_no"><?php echo $this->__('Ship to different address') ?></label>
|
| 196 |
+
</li>
|
| 197 |
+
<?php endif; ?>
|
| 198 |
+
</ul>
|
| 199 |
+
<?php if (!$this->canShip()): ?>
|
| 200 |
+
<input type="hidden" name="billing[use_for_shipping]" value="1" />
|
| 201 |
+
<?php endif; ?>
|
| 202 |
+
<div class="buttons-set" id="billing-buttons-container">
|
| 203 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
| 204 |
+
<button type="button" title="<?php echo $this->__('Continue') ?>" class="button" onclick="billing.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
| 205 |
+
<span class="please-wait" id="billing-please-wait" style="display:none;">
|
| 206 |
+
<img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Loading next step...') ?>" title="<?php echo $this->__('Loading next step...') ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
|
| 207 |
+
</span>
|
| 208 |
+
</div>
|
| 209 |
+
</fieldset>
|
| 210 |
+
</form>
|
| 211 |
+
<script type="text/javascript">
|
| 212 |
+
//<![CDATA[
|
| 213 |
+
var billing = new Billing('co-billing-form', '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', '<?php echo $this->getUrl('checkout/onepage/saveBilling') ?>');
|
| 214 |
+
var billingForm = new VarienForm('co-billing-form');
|
| 215 |
+
|
| 216 |
+
//billingForm.setElementsRelation('billing:country_id', 'billing:region', '<?php echo $this->getUrl('directory/json/childRegion') ?>', '<?php echo $this->__('Select State/Province...') ?>');
|
| 217 |
+
$('billing-address-select') && billing.newAddress(!$('billing-address-select').value);
|
| 218 |
+
|
| 219 |
+
var billingRegionUpdater = new RegionUpdater('billing:country_id', 'billing:region', 'billing:region_id', countryRegions, undefined, 'billing:postcode');
|
| 220 |
+
//]]>
|
| 221 |
+
</script>
|
| 222 |
+
|
| 223 |
+
|
| 224 |
+
|
| 225 |
+
<script type="text/javascript">
|
| 226 |
+
|
| 227 |
+
document.getElementById("billing:postcode").parentNode.appendChild(new pca.Button("Find", search).element);
|
| 228 |
+
|
| 229 |
+
var RoyalMail_Data = true;
|
| 230 |
+
|
| 231 |
+
if(<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_rmdata',Mage::app()->getStore()); ?> == 0)
|
| 232 |
+
{
|
| 233 |
+
RoyalMail_Data = false;
|
| 234 |
+
}
|
| 235 |
+
|
| 236 |
+
|
| 237 |
+
|
| 238 |
+
var _fieldList = [
|
| 239 |
+
{ element: "billing:company", field: "Company" },
|
| 240 |
+
{ element: "billing:street1", field: "Line1" },
|
| 241 |
+
{ element: "billing:street2", field: "Line2" },
|
| 242 |
+
{ element: "billing:city", field: "City" },
|
| 243 |
+
{ element: "billing:region_id", field: "STATENAME" },
|
| 244 |
+
{ element: "billing:region", field: "State" },
|
| 245 |
+
{ element: "billing:postcode", field: "PostalCode" },
|
| 246 |
+
{ element: "billing:country_id", field: "Country" }
|
| 247 |
+
],
|
| 248 |
+
_options = {
|
| 249 |
+
key: '<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_key',Mage::app()->getStore()); ?>',
|
| 250 |
+
dataSourceOptions: { international: true, royalMail: RoyalMail_Data, usps: true }
|
| 251 |
+
};
|
| 252 |
+
_control = new pca.Address(_fieldList, _options);
|
| 253 |
+
|
| 254 |
+
function search() {
|
| 255 |
+
var _line1 = pca.getValue("billing:street1"),
|
| 256 |
+
_city = pca.getValue("billing:city"),
|
| 257 |
+
_state = pca.getValue("billing:region_id"),
|
| 258 |
+
_locality = _city + (_city && _state ? "," : "") + _state,
|
| 259 |
+
_postcode = pca.getValue("billing:postcode"),
|
| 260 |
+
_country = pca.getValue("billing:country_id");
|
| 261 |
+
|
| 262 |
+
_control.search(_line1, _locality, _postcode, _country);
|
| 263 |
+
}
|
| 264 |
+
|
| 265 |
+
function clearFields() {
|
| 266 |
+
_control.clear();
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
|
| 270 |
+
|
| 271 |
+
var _stateData = {
|
| 272 |
+
"USA": { "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas",
|
| 273 |
+
"CA": "California", "CO": "Colorado", "CT": "Connecticut", "DE": "Delaware",
|
| 274 |
+
"DC": "District Of Columbia", "FL": "Florida", "GA": "Georgia", "HI": "Hawaii",
|
| 275 |
+
"ID": "Idaho", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "KS": "Kansas",
|
| 276 |
+
"KY": "Kentucky", "LA": "Louisiana", "ME": "Maine", "MD": "Maryland",
|
| 277 |
+
"MA": "Massachusetts", "MI": "Michigan", "MN": "Minnesota", "MS": "Mississippi",
|
| 278 |
+
"MO": "Missouri", "MT": "Montana", "NE": "Nebraska", "NV": "Nevada",
|
| 279 |
+
"NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NY": "New York",
|
| 280 |
+
"NC": "North Carolina", "ND": "North Dakota", "OH": "Ohio", "OK": "Oklahoma",
|
| 281 |
+
"OR": "Oregon", "PA": "Pennsylvania", "PR": "Puerto Rico", "RI": "Rhode Island",
|
| 282 |
+
"SC": "South Carolina", "SD": "South Dakota", "TN": "Tennessee", "TX": "Texas",
|
| 283 |
+
"UT": "Utah", "VT": "Vermont", "VI": "Virgin Islands", "VA": "Virginia",
|
| 284 |
+
"WA": "Washington", "WV": "West Virginia", "WI": "Wisconsin", "WY": "Wyoming"
|
| 285 |
+
},
|
| 286 |
+
"CAN": { "AB": "Alberta", "BC": "British Columbia", "MB": "Alabama", "NL": "Newfoundland and Labrador",
|
| 287 |
+
"NB": "New Brunswick", "NS": "Nova Scotia", "NT": "Northwest Territories", "NU": "Nunavut",
|
| 288 |
+
"ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan",
|
| 289 |
+
"YT": "Yukon Territory"
|
| 290 |
+
}
|
| 291 |
+
};
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
|
| 295 |
+
_control.listen("select", function (address) {
|
| 296 |
+
if (address.State)
|
| 297 |
+
address.State = ((_stateData[address.CountryCode] || {})[address.State] || address.State);
|
| 298 |
+
pca.setValue("billing:region_id", address.State);
|
| 299 |
+
|
| 300 |
+
});
|
| 301 |
+
|
| 302 |
+
|
| 303 |
+
_control.listen("error", function (error) { alert(error) });
|
| 304 |
+
|
| 305 |
+
|
| 306 |
+
|
| 307 |
+
</script>
|
app/design/frontend/default/default/template/checkout/onepage/pca_shipping.phtml
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.js" ></script>
|
| 28 |
+
<link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.css" type="text/css" media="all"/>
|
| 29 |
+
|
| 30 |
+
<style type="text/css">
|
| 31 |
+
label { font:bold 9pt arial;color:#455f70; }
|
| 32 |
+
table { margin:15px;padding:15px;background-color:#ddeffd;border-radius:5px;border:solid 1px #98b4c9; }
|
| 33 |
+
#shipping:postcode {width:150px;}
|
| 34 |
+
</style>
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
<form action="" id="co-shipping-form">
|
| 38 |
+
<ul class="form-list">
|
| 39 |
+
<?php if ($this->customerHasAddresses()): ?>
|
| 40 |
+
<li class="wide">
|
| 41 |
+
<label for="shipping-address-select"><?php echo $this->__('Select a shipping address from your address book or enter a new address.') ?></label>
|
| 42 |
+
<div class="input-box">
|
| 43 |
+
<?php echo $this->getAddressesHtmlSelect('shipping') ?>
|
| 44 |
+
</div>
|
| 45 |
+
</li>
|
| 46 |
+
<?php endif ?>
|
| 47 |
+
<li id="shipping-new-address-form"<?php if ($this->customerHasAddresses()): ?> style="display:none;"<?php endif ?>>
|
| 48 |
+
<fieldset>
|
| 49 |
+
<input type="hidden" name="shipping[address_id]" value="<?php echo $this->getAddress()->getId() ?>" id="shipping:address_id" />
|
| 50 |
+
<ul>
|
| 51 |
+
<li class="fields"><?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getAddress())->setFieldIdFormat('shipping:%s')->setFieldNameFormat('shipping[%s]')->setFieldParams('onchange="shipping.setSameAsBilling(false)"')->toHtml() ?></li>
|
| 52 |
+
<li class="fields">
|
| 53 |
+
<div class="fields">
|
| 54 |
+
<label for="shipping:company"><?php echo $this->__('Company') ?></label>
|
| 55 |
+
<div class="input-box">
|
| 56 |
+
<input type="text" id="shipping:company" name="shipping[company]" value="<?php echo $this->htmlEscape($this->getAddress()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" onchange="shipping.setSameAsBilling(false);" />
|
| 57 |
+
</div>
|
| 58 |
+
</div>
|
| 59 |
+
<?php if(false): ?>
|
| 60 |
+
<div class="fields">
|
| 61 |
+
<label for="shipping:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
| 62 |
+
<div class="input-box">
|
| 63 |
+
<input type="text" name="shipping[email]" id="shipping:email" value="<?php echo $this->htmlEscape($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
| 64 |
+
</div>
|
| 65 |
+
</div>
|
| 66 |
+
<?php endif ?>
|
| 67 |
+
</li> <li class="fields">
|
| 68 |
+
<div class="field">
|
| 69 |
+
<label for="shipping:country_id" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
| 70 |
+
<div class="input-box">
|
| 71 |
+
<?php echo $this->getCountryHtmlSelect('shipping') ?>
|
| 72 |
+
</div>
|
| 73 |
+
</div>
|
| 74 |
+
</li>
|
| 75 |
+
<li class="fields">
|
| 76 |
+
<div class="field">
|
| 77 |
+
<label for="shipping:postcode" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
| 78 |
+
<div class="input-box">
|
| 79 |
+
<input type="text" style="width: 150px" title=""<?php echo $this->__('Zip/Postal Code') ?>" name="shipping[postcode]" id="shipping:postcode" value="<?php echo $this->htmlEscape($this->getAddress()->getPostcode()) ?>" class="input-text validate-zip-international required-entry" onchange="shipping.setSameAsBilling(false);" />
|
| 80 |
+
</div></div>
|
| 81 |
+
<li class="wide">
|
| 82 |
+
<label for="shipping:street1" class="required"><em>*</em><?php echo $this->__('Address') ?></label>
|
| 83 |
+
<div class="input-box">
|
| 84 |
+
<input type="text" title="<?php echo $this->__('Street Address') ?>" name="shipping[street][]" id="shipping:street1" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet(1)) ?>" class="input-text required-entry" onchange="shipping.setSameAsBilling(false);" />
|
| 85 |
+
</div>
|
| 86 |
+
</li>
|
| 87 |
+
<?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
|
| 88 |
+
<li class="wide">
|
| 89 |
+
<div class="input-box">
|
| 90 |
+
<input type="text" title="<?php echo $this->__('Street Address %s', $_i) ?>" name="shipping[street][]" id="shipping:street<?php echo $_i?>" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet($_i)) ?>" class="input-text" onchange="shipping.setSameAsBilling(false);" />
|
| 91 |
+
</div>
|
| 92 |
+
</li>
|
| 93 |
+
<?php endfor ?>
|
| 94 |
+
<li class="fields">
|
| 95 |
+
<div class="field">
|
| 96 |
+
<label for="shipping:city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
| 97 |
+
<div class="input-box">
|
| 98 |
+
<input type="text" title="<?php echo $this->__('City') ?>" name="shipping[city]" value="<?php echo $this->htmlEscape($this->getAddress()->getCity()) ?>" class="input-text required-entry" id="shipping:city" onchange="shipping.setSameAsBilling(false);" />
|
| 99 |
+
</div>
|
| 100 |
+
</div>
|
| 101 |
+
<div class="field">
|
| 102 |
+
<label for="shipping:region" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
| 103 |
+
<div class="input-box">
|
| 104 |
+
<select id="shipping:region_id" name="shipping[region_id]" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
| 105 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
| 106 |
+
</select>
|
| 107 |
+
<script type="text/javascript">
|
| 108 |
+
//<![CDATA[
|
| 109 |
+
$('shipping:region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
|
| 110 |
+
//]]>
|
| 111 |
+
</script>
|
| 112 |
+
<input type="text" id="shipping:region" name="shipping[region]" value="<?php echo $this->htmlEscape($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
|
| 113 |
+
</div>
|
| 114 |
+
</div>
|
| 115 |
+
</li>
|
| 116 |
+
<li class="fields">
|
| 117 |
+
<div class="field">
|
| 118 |
+
<label for="shipping:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
| 119 |
+
<div class="input-box">
|
| 120 |
+
<input type="text" name="shipping[telephone]" value="<?php echo $this->htmlEscape($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" id="shipping:telephone" onchange="shipping.setSameAsBilling(false);" />
|
| 121 |
+
</div>
|
| 122 |
+
</div>
|
| 123 |
+
<div class="field">
|
| 124 |
+
<label for="shipping:fax"><?php echo $this->__('Fax') ?></label>
|
| 125 |
+
<div class="input-box">
|
| 126 |
+
<input type="text" name="shipping[fax]" value="<?php echo $this->htmlEscape($this->getAddress()->getFax()) ?>" title="<?php echo $this->__('Fax') ?>" class="input-text" id="shipping:fax" onchange="shipping.setSameAsBilling(false);" />
|
| 127 |
+
</div>
|
| 128 |
+
</div>
|
| 129 |
+
</li>
|
| 130 |
+
<?php if ($this->isCustomerLoggedIn() && $this->customerHasAddresses()):?>
|
| 131 |
+
<li class="control">
|
| 132 |
+
<input type="checkbox" name="shipping[save_in_address_book]" value="1" title="<?php echo $this->__('Save in address book') ?>" id="shipping:save_in_address_book" onchange="shipping.setSameAsBilling(false);"<?php if ($this->getAddress()->getSaveInAddressBook()):?> checked="checked"<?php endif;?> class="checkbox" /><label for="shipping:save_in_address_book"><?php echo $this->__('Save in address book') ?></label></li>
|
| 133 |
+
<?php else:?>
|
| 134 |
+
<li class="no-display"><input type="hidden" name="shipping[save_in_address_book]" value="1" /></li>
|
| 135 |
+
<?php endif;?>
|
| 136 |
+
</ul>
|
| 137 |
+
</fieldset>
|
| 138 |
+
</li>
|
| 139 |
+
<li class="control">
|
| 140 |
+
<input type="checkbox" name="shipping[same_as_billing]" id="shipping:same_as_billing" value="1"<?php if($this->getAddress()->getSameAsBilling()): ?> checked="checked"<?php endif; ?> title="<?php echo $this->__('Use Billing Address') ?>" onclick="shipping.setSameAsBilling(this.checked)" class="checkbox" /><label for="shipping:same_as_billing"><?php echo $this->__('Use Billing Address') ?></label>
|
| 141 |
+
</li>
|
| 142 |
+
</ul>
|
| 143 |
+
<div class="buttons-set" id="shipping-buttons-container">
|
| 144 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
| 145 |
+
<p class="back-link"><a href="#" onclick="checkout.back(); return false;"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
| 146 |
+
<button type="button" class="button" title="<?php echo $this->__('Continue') ?>" onclick="shipping.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
| 147 |
+
<span id="shipping-please-wait" class="please-wait" style="display:none;">
|
| 148 |
+
<img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Loading next step...') ?>" title="<?php echo $this->__('Loading next step...') ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
|
| 149 |
+
</span>
|
| 150 |
+
</div>
|
| 151 |
+
</form>
|
| 152 |
+
<script type="text/javascript">
|
| 153 |
+
//<![CDATA[
|
| 154 |
+
var shipping = new Shipping('co-shipping-form', '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', '<?php echo $this->getUrl('checkout/onepage/saveShipping') ?>',
|
| 155 |
+
'<?php echo $this->getUrl('checkout/onepage/shippingMethod') ?>');
|
| 156 |
+
var shippingForm = new VarienForm('co-shipping-form');
|
| 157 |
+
shippingForm.extraChildParams = ' onchange="shipping.setSameAsBilling(false);"';
|
| 158 |
+
//shippingForm.setElementsRelation('shipping:country_id', 'shipping:region', '<?php echo $this->getUrl('directory/json/childRegion') ?>', '<?php echo $this->__('Select State/Province...') ?>');
|
| 159 |
+
$('shipping-address-select') && shipping.newAddress(!$('shipping-address-select').value);
|
| 160 |
+
|
| 161 |
+
var shippingRegionUpdater = new RegionUpdater('shipping:country_id', 'shipping:region', 'shipping:region_id', countryRegions, undefined, 'shipping:postcode');
|
| 162 |
+
//]]>
|
| 163 |
+
</script>
|
| 164 |
+
|
| 165 |
+
|
| 166 |
+
<script type="text/javascript">
|
| 167 |
+
|
| 168 |
+
document.getElementById("shipping:postcode").parentNode.appendChild(new pca.Button("Find", shippingsearch).element);
|
| 169 |
+
|
| 170 |
+
var RoyalMail_Data = true;
|
| 171 |
+
|
| 172 |
+
if(<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_rmdata',Mage::app()->getStore()); ?> == 0)
|
| 173 |
+
{
|
| 174 |
+
RoyalMail_Data = false;
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
var _shippingfieldList = [
|
| 180 |
+
{ element: "shipping:company", field: "Company" },
|
| 181 |
+
{ element: "shipping:street1", field: "Line1" },
|
| 182 |
+
{ element: "shipping:street2", field: "Line2" },
|
| 183 |
+
{ element: "shipping:city", field: "City" },
|
| 184 |
+
{ element: "shipping:region_id", field: "STATENAME" },
|
| 185 |
+
{ element: "shipping:region", field: "State" },
|
| 186 |
+
{ element: "shipping:postcode", field: "PostalCode" },
|
| 187 |
+
{ element: "shipping:country_id", field: "Country" }
|
| 188 |
+
],
|
| 189 |
+
_shippingoptions = {
|
| 190 |
+
key: '<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_key',Mage::app()->getStore()); ?>',
|
| 191 |
+
dataSourceOptions: { international: true, royalMail: RoyalMail_Data, usps: true }
|
| 192 |
+
};
|
| 193 |
+
_shippingcontrol = new pca.Address(_shippingfieldList, _shippingoptions);
|
| 194 |
+
|
| 195 |
+
function shippingsearch() {
|
| 196 |
+
var _shippingline1 = pca.getValue("shipping:street1"),
|
| 197 |
+
_shippingcity = pca.getValue("shipping:city"),
|
| 198 |
+
_shippingstate = pca.getValue("shipping:region_id"),
|
| 199 |
+
_shippinglocality = _shippingcity + (_shippingcity && _shippingstate ? "," : "") + _shippingstate,
|
| 200 |
+
_shippingpostcode = pca.getValue("shipping:postcode"),
|
| 201 |
+
_shippingcountry = pca.getValue("shipping:country_id");
|
| 202 |
+
|
| 203 |
+
_shippingcontrol.search(_shippingline1, _shippinglocality, _shippingpostcode, _shippingcountry);
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
function clearFields() {
|
| 207 |
+
_shippingcontrol.clear();
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
|
| 211 |
+
|
| 212 |
+
|
| 213 |
+
var _stateData = {
|
| 214 |
+
"USA": { "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas",
|
| 215 |
+
"CA": "California", "CO": "Colorado", "CT": "Connecticut", "DE": "Delaware",
|
| 216 |
+
"DC": "District Of Columbia", "FL": "Florida", "GA": "Georgia", "HI": "Hawaii",
|
| 217 |
+
"ID": "Idaho", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "KS": "Kansas",
|
| 218 |
+
"KY": "Kentucky", "LA": "Louisiana", "ME": "Maine", "MD": "Maryland",
|
| 219 |
+
"MA": "Massachusetts", "MI": "Michigan", "MN": "Minnesota", "MS": "Mississippi",
|
| 220 |
+
"MO": "Missouri", "MT": "Montana", "NE": "Nebraska", "NV": "Nevada",
|
| 221 |
+
"NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NY": "New York",
|
| 222 |
+
"NC": "North Carolina", "ND": "North Dakota", "OH": "Ohio", "OK": "Oklahoma",
|
| 223 |
+
"OR": "Oregon", "PA": "Pennsylvania", "PR": "Puerto Rico", "RI": "Rhode Island",
|
| 224 |
+
"SC": "South Carolina", "SD": "South Dakota", "TN": "Tennessee", "TX": "Texas",
|
| 225 |
+
"UT": "Utah", "VT": "Vermont", "VI": "Virgin Islands", "VA": "Virginia",
|
| 226 |
+
"WA": "Washington", "WV": "West Virginia", "WI": "Wisconsin", "WY": "Wyoming"
|
| 227 |
+
},
|
| 228 |
+
"CAN": { "AB": "Alberta", "BC": "British Columbia", "MB": "Alabama", "NL": "Newfoundland and Labrador",
|
| 229 |
+
"NB": "New Brunswick", "NS": "Nova Scotia", "NT": "Northwest Territories", "NU": "Nunavut",
|
| 230 |
+
"ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan",
|
| 231 |
+
"YT": "Yukon Territory"
|
| 232 |
+
}
|
| 233 |
+
};
|
| 234 |
+
|
| 235 |
+
|
| 236 |
+
|
| 237 |
+
_shippingcontrol.listen("select", function (address) {
|
| 238 |
+
if (address.State)
|
| 239 |
+
address.State = ((_stateData[address.CountryCode] || {})[address.State] || address.State);
|
| 240 |
+
pca.setValue("shipping:region_id", address.State);
|
| 241 |
+
|
| 242 |
+
});
|
| 243 |
+
|
| 244 |
+
|
| 245 |
+
_shippingcontrol.listen("error", function (error) { alert(error) });
|
| 246 |
+
|
| 247 |
+
|
| 248 |
+
|
| 249 |
+
</script>
|
app/design/frontend/default/default/template/customer/address/pca_edit.phtml
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.js" ></script>
|
| 28 |
+
<link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.css" type="text/css" media="all"/>
|
| 29 |
+
|
| 30 |
+
<style type="text/css">
|
| 31 |
+
label { font:bold 9pt arial;color:#455f70; }
|
| 32 |
+
table { margin:15px;padding:15px;background-color:#ddeffd;border-radius:5px;border:solid 1px #98b4c9; }
|
| 33 |
+
#zip {width:150px;}
|
| 34 |
+
</style>
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
<?php
|
| 40 |
+
/**
|
| 41 |
+
* Edit customer address template
|
| 42 |
+
*
|
| 43 |
+
* @see Mage_Customer_Block_Address_Edit
|
| 44 |
+
*/
|
| 45 |
+
?>
|
| 46 |
+
<?php if($this->getTitle()): ?>
|
| 47 |
+
<div class="page-title">
|
| 48 |
+
<h1><?php echo $this->getTitle() ?></h1>
|
| 49 |
+
</div>
|
| 50 |
+
<?php endif; ?>
|
| 51 |
+
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
|
| 52 |
+
<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="form-validate">
|
| 53 |
+
<div class="fieldset">
|
| 54 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 55 |
+
<input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" />
|
| 56 |
+
<input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" />
|
| 57 |
+
<h2 class="legend"><?php echo $this->__('Contact Information') ?></h2>
|
| 58 |
+
<ul class="form-list">
|
| 59 |
+
<li class="fields">
|
| 60 |
+
<?php echo $this->getNameBlockHtml() ?>
|
| 61 |
+
</li>
|
| 62 |
+
<li class="wide">
|
| 63 |
+
<label for="company"><?php echo $this->__('Company') ?></label>
|
| 64 |
+
<div class="input-box">
|
| 65 |
+
<input type="text" name="company" id="company" title="<?php echo $this->__('Company') ?>" value="<?php echo $this->htmlEscape($this->getAddress()->getCompany()) ?>" class="input-text" />
|
| 66 |
+
</div>
|
| 67 |
+
</li>
|
| 68 |
+
<li class="fields">
|
| 69 |
+
<div class="field">
|
| 70 |
+
<label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
| 71 |
+
<div class="input-box">
|
| 72 |
+
<input type="text" name="telephone" value="<?php echo $this->htmlEscape($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" id="telephone" />
|
| 73 |
+
</div>
|
| 74 |
+
</div>
|
| 75 |
+
<div class="field">
|
| 76 |
+
<label for="fax"><?php echo $this->__('Fax') ?></label>
|
| 77 |
+
<div class="input-box">
|
| 78 |
+
<input type="text" name="fax" id="fax" title="<?php echo $this->__('Fax') ?>" value="<?php echo $this->htmlEscape($this->getAddress()->getFax()) ?>" class="input-text" />
|
| 79 |
+
</div>
|
| 80 |
+
</div>
|
| 81 |
+
</li>
|
| 82 |
+
</ul>
|
| 83 |
+
</div>
|
| 84 |
+
<div class="fieldset">
|
| 85 |
+
<h2 class="legend"><?php echo $this->__('Address') ?></h2>
|
| 86 |
+
<ul class="form-list">
|
| 87 |
+
<li class="fields">
|
| 88 |
+
<div class="field">
|
| 89 |
+
<label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
| 90 |
+
<div class="input-box">
|
| 91 |
+
<?php echo $this->getCountryHtmlSelect() ?>
|
| 92 |
+
</div>
|
| 93 |
+
</div>
|
| 94 |
+
</li>
|
| 95 |
+
<li class="fields">
|
| 96 |
+
<div class="field">
|
| 97 |
+
<label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
| 98 |
+
<div class="input-box">
|
| 99 |
+
<input type="text" name="postcode" value="<?php echo $this->htmlEscape($this->getAddress()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" />
|
| 100 |
+
</div>
|
| 101 |
+
</div>
|
| 102 |
+
</li>
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
<li class="wide">
|
| 108 |
+
<label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label>
|
| 109 |
+
<div class="input-box">
|
| 110 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" />
|
| 111 |
+
</div>
|
| 112 |
+
</li>
|
| 113 |
+
<?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
|
| 114 |
+
<li class="wide">
|
| 115 |
+
<div class="input-box">
|
| 116 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" />
|
| 117 |
+
</div>
|
| 118 |
+
</li>
|
| 119 |
+
<?php endfor ?>
|
| 120 |
+
<li class="fields">
|
| 121 |
+
<div class="field">
|
| 122 |
+
<label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
| 123 |
+
<div class="input-box">
|
| 124 |
+
<input type="text" name="city" value="<?php echo $this->htmlEscape($this->getAddress()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" />
|
| 125 |
+
</div>
|
| 126 |
+
</div>
|
| 127 |
+
<div class="field">
|
| 128 |
+
<label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
| 129 |
+
<div class="input-box">
|
| 130 |
+
<select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
| 131 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
| 132 |
+
</select>
|
| 133 |
+
<script type="text/javascript">
|
| 134 |
+
//<![CDATA[
|
| 135 |
+
$('region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
|
| 136 |
+
//]]>
|
| 137 |
+
</script>
|
| 138 |
+
<input type="text" id="region" name="region" value="<?php echo $this->htmlEscape($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" />
|
| 139 |
+
</div>
|
| 140 |
+
</div>
|
| 141 |
+
</li>
|
| 142 |
+
|
| 143 |
+
<li<?php if($this->canSetAsDefaultBilling()) echo ' class="control"' ?>>
|
| 144 |
+
<?php if($this->isDefaultBilling()): ?>
|
| 145 |
+
<strong><?php echo $this->__('Default Billing Address') ?></strong>
|
| 146 |
+
<?php elseif($this->canSetAsDefaultBilling()): ?>
|
| 147 |
+
<input type="checkbox" id="primary_billing" name="default_billing" value="1" title="<?php echo $this->__('Use as My Default Billing Address') ?>" class="checkbox" /><label for="primary_billing"><?php echo $this->__('Use as my default billing address') ?></label>
|
| 148 |
+
<?php else: ?>
|
| 149 |
+
<input type="hidden" name="default_billing" value="1" />
|
| 150 |
+
<?php endif; ?>
|
| 151 |
+
</li>
|
| 152 |
+
<li<?php if($this->canSetAsDefaultShipping()) echo ' class="control"' ?>>
|
| 153 |
+
<?php if($this->isDefaultShipping()): ?>
|
| 154 |
+
<strong><?php echo $this->__('Default Shipping Address') ?></strong>
|
| 155 |
+
<?php elseif($this->canSetAsDefaultShipping()): ?>
|
| 156 |
+
<input type="checkbox" id="primary_shipping" name="default_shipping" value="1" title="<?php echo $this->__('Use as My Default Shipping Address') ?>" class="checkbox" /><label for="primary_shipping"><?php echo $this->__('Use as my default shipping address') ?></label>
|
| 157 |
+
<?php else: ?>
|
| 158 |
+
<input type="hidden" name="default_shipping" value="1" />
|
| 159 |
+
<?php endif; ?>
|
| 160 |
+
</li>
|
| 161 |
+
</ul>
|
| 162 |
+
</div>
|
| 163 |
+
<div class="buttons-set">
|
| 164 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
| 165 |
+
<p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
| 166 |
+
<button type="submit" title="<?php echo $this->__('Save Address') ?>" class="button"><span><span><?php echo $this->__('Save Address') ?></span></span></button>
|
| 167 |
+
</div>
|
| 168 |
+
</form>
|
| 169 |
+
<script type="text/javascript">
|
| 170 |
+
//<![CDATA[
|
| 171 |
+
var dataForm = new VarienForm('form-validate', true);
|
| 172 |
+
new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'zip');
|
| 173 |
+
//]]>
|
| 174 |
+
</script>
|
| 175 |
+
|
| 176 |
+
<script type="text/javascript">
|
| 177 |
+
|
| 178 |
+
//document.getElementById("zip").parentNode.appendChild(pca.create("button", { value:"Find", className: "button", onclick: search }));
|
| 179 |
+
|
| 180 |
+
document.getElementById("zip").parentNode.appendChild(new pca.Button("Find", search).element);
|
| 181 |
+
|
| 182 |
+
var RoyalMail_Data = true;
|
| 183 |
+
|
| 184 |
+
if(<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_rmdata',Mage::app()->getStore()); ?> == 0)
|
| 185 |
+
{
|
| 186 |
+
RoyalMail_Data = false;
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
|
| 190 |
+
|
| 191 |
+
var _fieldList = [
|
| 192 |
+
{ element: "company", field: "Company" },
|
| 193 |
+
{ element: "street_1", field: "Line1" },
|
| 194 |
+
{ element: "street_2", field: "Line2" },
|
| 195 |
+
{ element: "city", field: "City" },
|
| 196 |
+
{ element: "region_id", field: "STATENAME" },
|
| 197 |
+
{ element: "region", field: "State" },
|
| 198 |
+
{ element: "zip", field: "PostalCode" },
|
| 199 |
+
{ element: "country", field: "Country" }
|
| 200 |
+
],
|
| 201 |
+
_options = {
|
| 202 |
+
key: '<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_key',Mage::app()->getStore()); ?>',
|
| 203 |
+
dataSourceOptions: { international: true, royalMail: RoyalMail_Data, usps: true }
|
| 204 |
+
};
|
| 205 |
+
_control = new pca.Address(_fieldList, _options);
|
| 206 |
+
|
| 207 |
+
function search() {
|
| 208 |
+
var _line1 = pca.getValue("street_1"),
|
| 209 |
+
_city = pca.getValue("city"),
|
| 210 |
+
_state = pca.getValue("region_id"),
|
| 211 |
+
_locality = _city + (_city && _state ? "," : "") + _state,
|
| 212 |
+
_postcode = pca.getValue("zip"),
|
| 213 |
+
_country = pca.getValue("country");
|
| 214 |
+
|
| 215 |
+
_control.search(_line1, _locality, _postcode, _country);
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
function clearFields() {
|
| 219 |
+
_control.clear();
|
| 220 |
+
}
|
| 221 |
+
|
| 222 |
+
|
| 223 |
+
|
| 224 |
+
var _stateData = {
|
| 225 |
+
"USA": { "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas",
|
| 226 |
+
"CA": "California", "CO": "Colorado", "CT": "Connecticut", "DE": "Delaware",
|
| 227 |
+
"DC": "District Of Columbia", "FL": "Florida", "GA": "Georgia", "HI": "Hawaii",
|
| 228 |
+
"ID": "Idaho", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "KS": "Kansas",
|
| 229 |
+
"KY": "Kentucky", "LA": "Louisiana", "ME": "Maine", "MD": "Maryland",
|
| 230 |
+
"MA": "Massachusetts", "MI": "Michigan", "MN": "Minnesota", "MS": "Mississippi",
|
| 231 |
+
"MO": "Missouri", "MT": "Montana", "NE": "Nebraska", "NV": "Nevada",
|
| 232 |
+
"NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NY": "New York",
|
| 233 |
+
"NC": "North Carolina", "ND": "North Dakota", "OH": "Ohio", "OK": "Oklahoma",
|
| 234 |
+
"OR": "Oregon", "PA": "Pennsylvania", "PR": "Puerto Rico", "RI": "Rhode Island",
|
| 235 |
+
"SC": "South Carolina", "SD": "South Dakota", "TN": "Tennessee", "TX": "Texas",
|
| 236 |
+
"UT": "Utah", "VT": "Vermont", "VI": "Virgin Islands", "VA": "Virginia",
|
| 237 |
+
"WA": "Washington", "WV": "West Virginia", "WI": "Wisconsin", "WY": "Wyoming"
|
| 238 |
+
},
|
| 239 |
+
"CAN": { "AB": "Alberta", "BC": "British Columbia", "MB": "Alabama", "NL": "Newfoundland and Labrador",
|
| 240 |
+
"NB": "New Brunswick", "NS": "Nova Scotia", "NT": "Northwest Territories", "NU": "Nunavut",
|
| 241 |
+
"ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan",
|
| 242 |
+
"YT": "Yukon Territory"
|
| 243 |
+
}
|
| 244 |
+
};
|
| 245 |
+
|
| 246 |
+
|
| 247 |
+
|
| 248 |
+
_control.listen("select", function (address) {
|
| 249 |
+
if (address.State)
|
| 250 |
+
address.State = ((_stateData[address.CountryCode] || {})[address.State] || address.State);
|
| 251 |
+
pca.setValue("region_id", address.State);
|
| 252 |
+
|
| 253 |
+
});
|
| 254 |
+
|
| 255 |
+
|
| 256 |
+
_control.listen("error", function (error) { alert(error) });
|
| 257 |
+
|
| 258 |
+
|
| 259 |
+
|
| 260 |
+
</script>
|
app/design/frontend/default/default/template/customer/address/pca_register.phtml
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.js" ></script>
|
| 28 |
+
<link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.css" type="text/css" media="all"/>
|
| 29 |
+
|
| 30 |
+
<style type="text/css">
|
| 31 |
+
label { font:bold 9pt arial;color:#455f70; }
|
| 32 |
+
table { margin:15px;padding:15px;background-color:#ddeffd;border-radius:5px;border:solid 1px #98b4c9; }
|
| 33 |
+
#zip {width:150px;}
|
| 34 |
+
</style>
|
| 35 |
+
|
| 36 |
+
<?php
|
| 37 |
+
/**
|
| 38 |
+
* Create account form template
|
| 39 |
+
*
|
| 40 |
+
* @see Mage_Customer_Block_Form_Register
|
| 41 |
+
*/
|
| 42 |
+
?>
|
| 43 |
+
<div class="account-create">
|
| 44 |
+
<div class="page-title">
|
| 45 |
+
<h1><?php echo $this->__('Create an Account') ?></h1>
|
| 46 |
+
</div>
|
| 47 |
+
<?php echo $this->getChildHtml('form_fields_before')?>
|
| 48 |
+
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
|
| 49 |
+
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate">
|
| 50 |
+
<div class="fieldset">
|
| 51 |
+
<input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" />
|
| 52 |
+
<input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" />
|
| 53 |
+
<h2 class="legend"><?php echo $this->__('Personal Information') ?></h2>
|
| 54 |
+
<ul class="form-list">
|
| 55 |
+
<li class="fields">
|
| 56 |
+
<?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getFormData())->toHtml() ?>
|
| 57 |
+
</li>
|
| 58 |
+
<li>
|
| 59 |
+
<label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
| 60 |
+
<div class="input-box">
|
| 61 |
+
<input type="text" name="email" id="email_address" value="<?php echo $this->htmlEscape($this->getFormData()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
| 62 |
+
</div>
|
| 63 |
+
</li> <li>
|
| 64 |
+
<label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
| 65 |
+
<div class="input-box">
|
| 66 |
+
<input type="text" name="telephone" id="telephone" value="<?php echo $this->htmlEscape($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" />
|
| 67 |
+
</div>
|
| 68 |
+
</li>
|
| 69 |
+
<?php if ($this->isNewsletterEnabled()): ?>
|
| 70 |
+
<li class="control">
|
| 71 |
+
<div class="input-box">
|
| 72 |
+
<input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" />
|
| 73 |
+
</div>
|
| 74 |
+
<label for="is_subscribed"><?php echo $this->__('Sign Up for Newsletter') ?></label>
|
| 75 |
+
</li>
|
| 76 |
+
<?php endif ?>
|
| 77 |
+
<?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
|
| 78 |
+
<?php if ($_dob->isEnabled()): ?>
|
| 79 |
+
<li><?php echo $_dob->setDate($this->getFormData()->getDob())->toHtml() ?></li>
|
| 80 |
+
<?php endif ?>
|
| 81 |
+
<?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
|
| 82 |
+
<?php if ($_taxvat->isEnabled()): ?>
|
| 83 |
+
<li><?php echo $_taxvat->setTaxvat($this->getFormData()->getTaxvat())->toHtml() ?></li>
|
| 84 |
+
<?php endif ?>
|
| 85 |
+
<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
|
| 86 |
+
<?php if ($_gender->isEnabled()): ?>
|
| 87 |
+
<li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li>
|
| 88 |
+
<?php endif ?>
|
| 89 |
+
</ul>
|
| 90 |
+
</div>
|
| 91 |
+
<?php if($this->getShowAddressFields()): ?>
|
| 92 |
+
<div class="fieldset">
|
| 93 |
+
<input type="hidden" name="create_address" value="1" />
|
| 94 |
+
<h2 class="legend"><?php echo $this->__('Address Information') ?></h2>
|
| 95 |
+
<ul class="form-list">
|
| 96 |
+
<li class="fields"><div class="field">
|
| 97 |
+
<label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
| 98 |
+
<div class="input-box">
|
| 99 |
+
<?php echo $this->getCountryHtmlSelect() ?>
|
| 100 |
+
</div>
|
| 101 |
+
</div> </li> <li>
|
| 102 |
+
<div class="field">
|
| 103 |
+
<label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
| 104 |
+
<div class="input-box">
|
| 105 |
+
<input type="text" name="postcode" style="width:200px;" value="<?php echo $this->htmlEscape($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" />
|
| 106 |
+
</div>
|
| 107 |
+
</div>
|
| 108 |
+
</li>
|
| 109 |
+
<li class="fields">
|
| 110 |
+
<div class="field">
|
| 111 |
+
<label for="company"><?php echo $this->__('Company') ?></label>
|
| 112 |
+
<div class="input-box">
|
| 113 |
+
<input type="text" name="company" id="company" value="<?php echo $this->htmlEscape($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
|
| 114 |
+
</div>
|
| 115 |
+
</div>
|
| 116 |
+
|
| 117 |
+
</li>
|
| 118 |
+
<li class="wide">
|
| 119 |
+
<label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label>
|
| 120 |
+
<div class="input-box">
|
| 121 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" />
|
| 122 |
+
</div>
|
| 123 |
+
</li>
|
| 124 |
+
<?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
|
| 125 |
+
<li class="wide">
|
| 126 |
+
<div class="input-box">
|
| 127 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" />
|
| 128 |
+
</div>
|
| 129 |
+
</li>
|
| 130 |
+
<?php endfor ?>
|
| 131 |
+
<li class="fields">
|
| 132 |
+
<div class="field">
|
| 133 |
+
<label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
| 134 |
+
<div class="input-box">
|
| 135 |
+
<input type="text" name="city" value="<?php echo $this->htmlEscape($this->getFormData()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" />
|
| 136 |
+
</div>
|
| 137 |
+
</div>
|
| 138 |
+
<div class="field">
|
| 139 |
+
<label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
| 140 |
+
<div class="input-box">
|
| 141 |
+
<select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
| 142 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
| 143 |
+
</select>
|
| 144 |
+
<script type="text/javascript">
|
| 145 |
+
//<![CDATA[
|
| 146 |
+
$('region_id').setAttribute('defaultValue', "<?php echo $this->getFormData()->getRegionId() ?>");
|
| 147 |
+
//]]>
|
| 148 |
+
</script>
|
| 149 |
+
<input type="text" id="region" name="region" value="<?php echo $this->htmlEscape($this->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
|
| 150 |
+
</div>
|
| 151 |
+
</div>
|
| 152 |
+
</li>
|
| 153 |
+
</ul>
|
| 154 |
+
<input type="hidden" name="default_billing" value="1" />
|
| 155 |
+
<input type="hidden" name="default_shipping" value="1" />
|
| 156 |
+
</div>
|
| 157 |
+
<?php endif; ?>
|
| 158 |
+
<div class="fieldset">
|
| 159 |
+
<h2 class="legend"><?php echo $this->__('Login Information') ?></h2>
|
| 160 |
+
<ul class="form-list">
|
| 161 |
+
<li class="fields">
|
| 162 |
+
<div class="field">
|
| 163 |
+
<label for="password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
|
| 164 |
+
<div class="input-box">
|
| 165 |
+
<input type="password" name="password" id="password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
|
| 166 |
+
</div>
|
| 167 |
+
</div>
|
| 168 |
+
<div class="field">
|
| 169 |
+
<label for="confirmation" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
|
| 170 |
+
<div class="input-box">
|
| 171 |
+
<input type="password" name="confirmation" title="<?php echo $this->__('Confirm Password') ?>" id="confirmation" class="input-text required-entry validate-cpassword" />
|
| 172 |
+
</div>
|
| 173 |
+
</div>
|
| 174 |
+
</li>
|
| 175 |
+
</ul>
|
| 176 |
+
</div>
|
| 177 |
+
<div class="buttons-set">
|
| 178 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
| 179 |
+
<p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>" class="back-link"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
| 180 |
+
<button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Submit') ?></span></span></button>
|
| 181 |
+
</div>
|
| 182 |
+
</form>
|
| 183 |
+
<script type="text/javascript">
|
| 184 |
+
//<![CDATA[
|
| 185 |
+
var dataForm = new VarienForm('form-validate', true);
|
| 186 |
+
<?php if($this->getShowAddressFields()): ?>
|
| 187 |
+
new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'zip');
|
| 188 |
+
<?php endif; ?>
|
| 189 |
+
//]]>
|
| 190 |
+
|
| 191 |
+
|
| 192 |
+
document.getElementById("zip").parentNode.appendChild(new pca.Button("Find", search).element);
|
| 193 |
+
|
| 194 |
+
var RoyalMail_Data = true;
|
| 195 |
+
|
| 196 |
+
if(<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_rmdata',Mage::app()->getStore()); ?> == 0)
|
| 197 |
+
{
|
| 198 |
+
RoyalMail_Data = false;
|
| 199 |
+
}
|
| 200 |
+
|
| 201 |
+
|
| 202 |
+
|
| 203 |
+
var _fieldList = [
|
| 204 |
+
{ element: "company", field: "Company" },
|
| 205 |
+
{ element: "street_1", field: "Line1" },
|
| 206 |
+
{ element: "street_2", field: "Line2" },
|
| 207 |
+
{ element: "city", field: "City" },
|
| 208 |
+
{ element: "region_id", field: "STATENAME" },
|
| 209 |
+
{ element: "region", field: "State" },
|
| 210 |
+
{ element: "zip", field: "PostalCode" },
|
| 211 |
+
{ element: "country", field: "Country" }
|
| 212 |
+
],
|
| 213 |
+
_options = {
|
| 214 |
+
key: '<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_key',Mage::app()->getStore()); ?>',
|
| 215 |
+
dataSourceOptions: { international: true, royalMail: RoyalMail_Data, usps: true }
|
| 216 |
+
};
|
| 217 |
+
_control = new pca.Address(_fieldList, _options);
|
| 218 |
+
|
| 219 |
+
function search() {
|
| 220 |
+
var _line1 = pca.getValue("street_1"),
|
| 221 |
+
_city = pca.getValue("city"),
|
| 222 |
+
_state = pca.getValue("region_id"),
|
| 223 |
+
_locality = _city + (_city && _state ? "," : "") + _state,
|
| 224 |
+
_postcode = pca.getValue("zip"),
|
| 225 |
+
_country = pca.getValue("country");
|
| 226 |
+
|
| 227 |
+
_control.search(_line1, _locality, _postcode, _country);
|
| 228 |
+
}
|
| 229 |
+
|
| 230 |
+
function clearFields() {
|
| 231 |
+
_control.clear();
|
| 232 |
+
}
|
| 233 |
+
|
| 234 |
+
|
| 235 |
+
|
| 236 |
+
var _stateData = {
|
| 237 |
+
"USA": { "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas",
|
| 238 |
+
"CA": "California", "CO": "Colorado", "CT": "Connecticut", "DE": "Delaware",
|
| 239 |
+
"DC": "District Of Columbia", "FL": "Florida", "GA": "Georgia", "HI": "Hawaii",
|
| 240 |
+
"ID": "Idaho", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "KS": "Kansas",
|
| 241 |
+
"KY": "Kentucky", "LA": "Louisiana", "ME": "Maine", "MD": "Maryland",
|
| 242 |
+
"MA": "Massachusetts", "MI": "Michigan", "MN": "Minnesota", "MS": "Mississippi",
|
| 243 |
+
"MO": "Missouri", "MT": "Montana", "NE": "Nebraska", "NV": "Nevada",
|
| 244 |
+
"NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NY": "New York",
|
| 245 |
+
"NC": "North Carolina", "ND": "North Dakota", "OH": "Ohio", "OK": "Oklahoma",
|
| 246 |
+
"OR": "Oregon", "PA": "Pennsylvania", "PR": "Puerto Rico", "RI": "Rhode Island",
|
| 247 |
+
"SC": "South Carolina", "SD": "South Dakota", "TN": "Tennessee", "TX": "Texas",
|
| 248 |
+
"UT": "Utah", "VT": "Vermont", "VI": "Virgin Islands", "VA": "Virginia",
|
| 249 |
+
"WA": "Washington", "WV": "West Virginia", "WI": "Wisconsin", "WY": "Wyoming"
|
| 250 |
+
},
|
| 251 |
+
"CAN": { "AB": "Alberta", "BC": "British Columbia", "MB": "Alabama", "NL": "Newfoundland and Labrador",
|
| 252 |
+
"NB": "New Brunswick", "NS": "Nova Scotia", "NT": "Northwest Territories", "NU": "Nunavut",
|
| 253 |
+
"ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan",
|
| 254 |
+
"YT": "Yukon Territory"
|
| 255 |
+
}
|
| 256 |
+
};
|
| 257 |
+
|
| 258 |
+
|
| 259 |
+
|
| 260 |
+
_control.listen("select", function (address) {
|
| 261 |
+
if (address.State)
|
| 262 |
+
address.State = ((_stateData[address.CountryCode] || {})[address.State] || address.State);
|
| 263 |
+
pca.setValue("region_id", address.State);
|
| 264 |
+
|
| 265 |
+
});
|
| 266 |
+
|
| 267 |
+
|
| 268 |
+
_control.listen("error", function (error) { alert(error) });
|
| 269 |
+
|
| 270 |
+
|
| 271 |
+
|
| 272 |
+
</script>
|
| 273 |
+
</div>
|
app/design/frontend/default/default/template/customer/form/pca_register.phtml
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.js" ></script>
|
| 28 |
+
<link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.css" type="text/css" media="all"/>
|
| 29 |
+
|
| 30 |
+
<style type="text/css">
|
| 31 |
+
label { font:bold 9pt arial;color:#455f70; }
|
| 32 |
+
table { margin:15px;padding:15px;background-color:#ddeffd;border-radius:5px;border:solid 1px #98b4c9; }
|
| 33 |
+
#zip {width:150px;}
|
| 34 |
+
</style>
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
<?php
|
| 38 |
+
/**
|
| 39 |
+
* Create account form template
|
| 40 |
+
*
|
| 41 |
+
* @see Mage_Customer_Block_Form_Register
|
| 42 |
+
*/
|
| 43 |
+
?>
|
| 44 |
+
<div class="account-create">
|
| 45 |
+
<div class="page-title">
|
| 46 |
+
<h1><?php echo $this->__('Create an Account') ?></h1>
|
| 47 |
+
</div>
|
| 48 |
+
<?php echo $this->getChildHtml('form_fields_before')?>
|
| 49 |
+
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
|
| 50 |
+
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate">
|
| 51 |
+
<div class="fieldset">
|
| 52 |
+
<input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" />
|
| 53 |
+
<input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" />
|
| 54 |
+
<h2 class="legend"><?php echo $this->__('Personal Information') ?></h2>
|
| 55 |
+
<ul class="form-list">
|
| 56 |
+
<li class="fields">
|
| 57 |
+
<?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getFormData())->toHtml() ?>
|
| 58 |
+
</li>
|
| 59 |
+
<li>
|
| 60 |
+
<label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
| 61 |
+
<div class="input-box">
|
| 62 |
+
<input type="text" name="email" id="email_address" value="<?php echo $this->htmlEscape($this->getFormData()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
| 63 |
+
</div>
|
| 64 |
+
</li>
|
| 65 |
+
<?php if ($this->isNewsletterEnabled()): ?>
|
| 66 |
+
<li class="control">
|
| 67 |
+
<div class="input-box">
|
| 68 |
+
<input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" />
|
| 69 |
+
</div>
|
| 70 |
+
<label for="is_subscribed"><?php echo $this->__('Sign Up for Newsletter') ?></label>
|
| 71 |
+
</li>
|
| 72 |
+
<?php endif ?>
|
| 73 |
+
<?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
|
| 74 |
+
<?php if ($_dob->isEnabled()): ?>
|
| 75 |
+
<li><?php echo $_dob->setDate($this->getFormData()->getDob())->toHtml() ?></li>
|
| 76 |
+
<?php endif ?>
|
| 77 |
+
<?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
|
| 78 |
+
<?php if ($_taxvat->isEnabled()): ?>
|
| 79 |
+
<li><?php echo $_taxvat->setTaxvat($this->getFormData()->getTaxvat())->toHtml() ?></li>
|
| 80 |
+
<?php endif ?>
|
| 81 |
+
<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
|
| 82 |
+
<?php if ($_gender->isEnabled()): ?>
|
| 83 |
+
<li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li>
|
| 84 |
+
<?php endif ?>
|
| 85 |
+
</ul>
|
| 86 |
+
</div>
|
| 87 |
+
<?php if($this->getShowAddressFields()): ?>
|
| 88 |
+
<div class="fieldset">
|
| 89 |
+
<input type="hidden" name="create_address" value="1" />
|
| 90 |
+
<h2 class="legend"><?php echo $this->__('Address Information') ?></h2>
|
| 91 |
+
<ul class="form-list">
|
| 92 |
+
<li class="fields">
|
| 93 |
+
<div class="field">
|
| 94 |
+
<label for="company"><?php echo $this->__('Company') ?></label>
|
| 95 |
+
<div class="input-box">
|
| 96 |
+
<input type="text" name="company" id="company" value="<?php echo $this->htmlEscape($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
|
| 97 |
+
</div>
|
| 98 |
+
</div>
|
| 99 |
+
<div class="field">
|
| 100 |
+
<label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
| 101 |
+
<div class="input-box">
|
| 102 |
+
<input type="text" name="telephone" id="telephone" value="<?php echo $this->htmlEscape($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" />
|
| 103 |
+
</div>
|
| 104 |
+
</div>
|
| 105 |
+
</li>
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
|
| 109 |
+
<li class="fields"><div class="field">
|
| 110 |
+
<label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
| 111 |
+
<div class="input-box">
|
| 112 |
+
<?php echo $this->getCountryHtmlSelect() ?>
|
| 113 |
+
</div>
|
| 114 |
+
</div> </li> <li>
|
| 115 |
+
<div class="field">
|
| 116 |
+
<label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
| 117 |
+
<div class="input-box">
|
| 118 |
+
<input type="text" name="postcode" style="width:200px;" value="<?php echo $this->htmlEscape($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" />
|
| 119 |
+
</div>
|
| 120 |
+
</div>
|
| 121 |
+
</li>
|
| 122 |
+
|
| 123 |
+
<li class="wide">
|
| 124 |
+
<label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label>
|
| 125 |
+
<div class="input-box">
|
| 126 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" />
|
| 127 |
+
</div>
|
| 128 |
+
</li>
|
| 129 |
+
<?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
|
| 130 |
+
<li class="wide">
|
| 131 |
+
<div class="input-box">
|
| 132 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" />
|
| 133 |
+
</div>
|
| 134 |
+
</li>
|
| 135 |
+
<?php endfor ?>
|
| 136 |
+
<li class="fields">
|
| 137 |
+
<div class="field">
|
| 138 |
+
<label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
| 139 |
+
<div class="input-box">
|
| 140 |
+
<input type="text" name="city" value="<?php echo $this->htmlEscape($this->getFormData()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" />
|
| 141 |
+
</div>
|
| 142 |
+
</div>
|
| 143 |
+
<div class="field">
|
| 144 |
+
<label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
| 145 |
+
<div class="input-box">
|
| 146 |
+
<select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
| 147 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
| 148 |
+
</select>
|
| 149 |
+
<script type="text/javascript">
|
| 150 |
+
//<![CDATA[
|
| 151 |
+
$('region_id').setAttribute('defaultValue', "<?php echo $this->getFormData()->getRegionId() ?>");
|
| 152 |
+
//]]>
|
| 153 |
+
</script>
|
| 154 |
+
<input type="text" id="region" name="region" value="<?php echo $this->htmlEscape($this->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
|
| 155 |
+
</div>
|
| 156 |
+
</div>
|
| 157 |
+
</li>
|
| 158 |
+
</ul>
|
| 159 |
+
<input type="hidden" name="default_billing" value="1" />
|
| 160 |
+
<input type="hidden" name="default_shipping" value="1" />
|
| 161 |
+
</div>
|
| 162 |
+
<?php endif; ?>
|
| 163 |
+
<div class="fieldset">
|
| 164 |
+
<h2 class="legend"><?php echo $this->__('Login Information') ?></h2>
|
| 165 |
+
<ul class="form-list">
|
| 166 |
+
<li class="fields">
|
| 167 |
+
<div class="field">
|
| 168 |
+
<label for="password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
|
| 169 |
+
<div class="input-box">
|
| 170 |
+
<input type="password" name="password" id="password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
|
| 171 |
+
</div>
|
| 172 |
+
</div>
|
| 173 |
+
<div class="field">
|
| 174 |
+
<label for="confirmation" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
|
| 175 |
+
<div class="input-box">
|
| 176 |
+
<input type="password" name="confirmation" title="<?php echo $this->__('Confirm Password') ?>" id="confirmation" class="input-text required-entry validate-cpassword" />
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
</li>
|
| 180 |
+
</ul>
|
| 181 |
+
</div>
|
| 182 |
+
<div class="buttons-set">
|
| 183 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
| 184 |
+
<p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>" class="back-link"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
| 185 |
+
<button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Submit') ?></span></span></button>
|
| 186 |
+
</div>
|
| 187 |
+
</form>
|
| 188 |
+
<script type="text/javascript">
|
| 189 |
+
//<![CDATA[
|
| 190 |
+
var dataForm = new VarienForm('form-validate', true);
|
| 191 |
+
<?php if($this->getShowAddressFields()): ?>
|
| 192 |
+
new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'zip');
|
| 193 |
+
<?php endif; ?>
|
| 194 |
+
//]]>
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
document.getElementById("zip").parentNode.appendChild(new pca.Button("Find", search).element);
|
| 198 |
+
|
| 199 |
+
var RoyalMail_Data = true;
|
| 200 |
+
|
| 201 |
+
if(<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_rmdata',Mage::app()->getStore()); ?> == 0)
|
| 202 |
+
{
|
| 203 |
+
RoyalMail_Data = false;
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
|
| 207 |
+
|
| 208 |
+
var _fieldList = [
|
| 209 |
+
{ element: "company", field: "Company" },
|
| 210 |
+
{ element: "street_1", field: "Line1" },
|
| 211 |
+
{ element: "street_2", field: "Line2" },
|
| 212 |
+
{ element: "city", field: "City" },
|
| 213 |
+
{ element: "region_id", field: "STATENAME" },
|
| 214 |
+
{ element: "region", field: "State" },
|
| 215 |
+
{ element: "zip", field: "PostalCode" },
|
| 216 |
+
{ element: "country", field: "Country" }
|
| 217 |
+
],
|
| 218 |
+
_options = {
|
| 219 |
+
key: '<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_key',Mage::app()->getStore()); ?>',
|
| 220 |
+
dataSourceOptions: { international: true, royalMail: RoyalMail_Data, usps: true }
|
| 221 |
+
};
|
| 222 |
+
_control = new pca.Address(_fieldList, _options);
|
| 223 |
+
|
| 224 |
+
function search() {
|
| 225 |
+
var _line1 = pca.getValue("street_1"),
|
| 226 |
+
_city = pca.getValue("city"),
|
| 227 |
+
_state = pca.getValue("region_id"),
|
| 228 |
+
_locality = _city + (_city && _state ? "," : "") + _state,
|
| 229 |
+
_postcode = pca.getValue("zip"),
|
| 230 |
+
_country = pca.getValue("country");
|
| 231 |
+
|
| 232 |
+
_control.search(_line1, _locality, _postcode, _country);
|
| 233 |
+
}
|
| 234 |
+
|
| 235 |
+
function clearFields() {
|
| 236 |
+
_control.clear();
|
| 237 |
+
}
|
| 238 |
+
|
| 239 |
+
|
| 240 |
+
|
| 241 |
+
var _stateData = {
|
| 242 |
+
"USA": { "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas",
|
| 243 |
+
"CA": "California", "CO": "Colorado", "CT": "Connecticut", "DE": "Delaware",
|
| 244 |
+
"DC": "District Of Columbia", "FL": "Florida", "GA": "Georgia", "HI": "Hawaii",
|
| 245 |
+
"ID": "Idaho", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "KS": "Kansas",
|
| 246 |
+
"KY": "Kentucky", "LA": "Louisiana", "ME": "Maine", "MD": "Maryland",
|
| 247 |
+
"MA": "Massachusetts", "MI": "Michigan", "MN": "Minnesota", "MS": "Mississippi",
|
| 248 |
+
"MO": "Missouri", "MT": "Montana", "NE": "Nebraska", "NV": "Nevada",
|
| 249 |
+
"NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NY": "New York",
|
| 250 |
+
"NC": "North Carolina", "ND": "North Dakota", "OH": "Ohio", "OK": "Oklahoma",
|
| 251 |
+
"OR": "Oregon", "PA": "Pennsylvania", "PR": "Puerto Rico", "RI": "Rhode Island",
|
| 252 |
+
"SC": "South Carolina", "SD": "South Dakota", "TN": "Tennessee", "TX": "Texas",
|
| 253 |
+
"UT": "Utah", "VT": "Vermont", "VI": "Virgin Islands", "VA": "Virginia",
|
| 254 |
+
"WA": "Washington", "WV": "West Virginia", "WI": "Wisconsin", "WY": "Wyoming"
|
| 255 |
+
},
|
| 256 |
+
"CAN": { "AB": "Alberta", "BC": "British Columbia", "MB": "Alabama", "NL": "Newfoundland and Labrador",
|
| 257 |
+
"NB": "New Brunswick", "NS": "Nova Scotia", "NT": "Northwest Territories", "NU": "Nunavut",
|
| 258 |
+
"ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan",
|
| 259 |
+
"YT": "Yukon Territory"
|
| 260 |
+
}
|
| 261 |
+
};
|
| 262 |
+
|
| 263 |
+
|
| 264 |
+
|
| 265 |
+
_control.listen("select", function (address) {
|
| 266 |
+
if (address.State)
|
| 267 |
+
address.State = ((_stateData[address.CountryCode] || {})[address.State] || address.State);
|
| 268 |
+
pca.setValue("region_id", address.State);
|
| 269 |
+
|
| 270 |
+
});
|
| 271 |
+
|
| 272 |
+
|
| 273 |
+
_control.listen("error", function (error) { alert(error) });
|
| 274 |
+
|
| 275 |
+
|
| 276 |
+
|
| 277 |
+
</script>
|
| 278 |
+
</div>
|
app/design/frontend/default/default/template/persistent/checkout/onepage/pca_billing.phtml
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
|
| 28 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.js" ></script>
|
| 29 |
+
<link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.css" type="text/css" media="all"/>
|
| 30 |
+
|
| 31 |
+
<style type="text/css">
|
| 32 |
+
label { font:bold 9pt arial;color:#455f70; }
|
| 33 |
+
table { margin:15px;padding:15px;background-color:#ddeffd;border-radius:5px;border:solid 1px #98b4c9; }
|
| 34 |
+
#billing:postcode {width:150px;}
|
| 35 |
+
</style>
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
<form id="co-billing-form" action="">
|
| 41 |
+
<fieldset>
|
| 42 |
+
<ul class="form-list">
|
| 43 |
+
<?php if ($this->customerHasAddresses()): ?>
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
<li class="wide">
|
| 47 |
+
<label for="billing-address-select"><?php echo $this->__('Select a billing address from your address book or enter a new address.') ?></label>
|
| 48 |
+
<div class="input-box">
|
| 49 |
+
<?php echo $this->getAddressesHtmlSelect('billing') ?>
|
| 50 |
+
</div>
|
| 51 |
+
</li>
|
| 52 |
+
<?php endif; ?>
|
| 53 |
+
<li id="billing-new-address-form"<?php if ($this->customerHasAddresses()): ?> style="display:none;"<?php endif; ?>>
|
| 54 |
+
<fieldset>
|
| 55 |
+
<input type="hidden" name="billing[address_id]" value="<?php echo $this->getAddress()->getId() ?>" id="billing:address_id" />
|
| 56 |
+
<ul>
|
| 57 |
+
<li class="fields"><?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getAddress()->getFirstname() ? $this->getAddress() : $this->getQuote()->getCustomer())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?></li>
|
| 58 |
+
<li class="fields">
|
| 59 |
+
<div class="field">
|
| 60 |
+
<label for="billing:company"><?php echo $this->__('Company') ?></label>
|
| 61 |
+
<div class="input-box">
|
| 62 |
+
<input type="text" id="billing:company" name="billing[company]" value="<?php echo $this->htmlEscape($this->getAddress()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
|
| 63 |
+
</div>
|
| 64 |
+
</div>
|
| 65 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
| 66 |
+
<div class="field">
|
| 67 |
+
<label for="billing:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
| 68 |
+
<div class="input-box">
|
| 69 |
+
<input type="text" name="billing[email]" id="billing:email" value="<?php echo $this->htmlEscape($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
| 70 |
+
</div>
|
| 71 |
+
</div> <br /><br /><br />
|
| 72 |
+
<?php endif ?>
|
| 73 |
+
</li> <li class="fields">
|
| 74 |
+
<div class="field">
|
| 75 |
+
<label for="billing:country_id" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
| 76 |
+
<div class="input-box">
|
| 77 |
+
<?php echo $this->getCountryHtmlSelect('billing') ?>
|
| 78 |
+
</div>
|
| 79 |
+
</div>
|
| 80 |
+
</li>
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
<li class="fields">
|
| 84 |
+
<div class="field">
|
| 85 |
+
<label for="billing:postcode" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
| 86 |
+
<div class="input-box">
|
| 87 |
+
<input type="text" style="width: 150px" title=""<?php echo $this->__('Zip/Postal Code') ?>" name="billing[postcode]" id="billing:postcode" value="<?php echo $this->htmlEscape($this->getAddress()->getPostcode()) ?>" class="input-text validate-zip-international required-entry" />
|
| 88 |
+
</div>
|
| 89 |
+
<li class="wide">
|
| 90 |
+
<label for="billing:street1" class="required"><em>*</em><?php echo $this->__('Address') ?></label>
|
| 91 |
+
<div class="input-box">
|
| 92 |
+
<input type="text" title="<?php echo $this->__('Street Address') ?>" name="billing[street][]" id="billing:street1" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet(1)) ?>" class="input-text required-entry" />
|
| 93 |
+
</div>
|
| 94 |
+
</li>
|
| 95 |
+
<?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
|
| 96 |
+
<li class="wide">
|
| 97 |
+
<div class="input-box">
|
| 98 |
+
<input type="text" title="<?php echo $this->__('Street Address %s', $_i) ?>" name="billing[street][]" id="billing:street<?php echo $_i?>" value="<?php echo $this->htmlEscape($this->getAddress()->getStreet($_i)) ?>" class="input-text" />
|
| 99 |
+
</div>
|
| 100 |
+
</li>
|
| 101 |
+
<?php endfor ?>
|
| 102 |
+
<li class="fields">
|
| 103 |
+
<div class="field">
|
| 104 |
+
<label for="billing:city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
| 105 |
+
<div class="input-box">
|
| 106 |
+
<input type="text" title="<?php echo $this->__('City') ?>" name="billing[city]" value="<?php echo $this->htmlEscape($this->getAddress()->getCity()) ?>" class="input-text required-entry" id="billing:city" />
|
| 107 |
+
</div>
|
| 108 |
+
</div>
|
| 109 |
+
<div class="field">
|
| 110 |
+
<label for="billing:region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
| 111 |
+
<div class="input-box">
|
| 112 |
+
<select id="billing:region_id" name="billing[region_id]" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
| 113 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
| 114 |
+
</select>
|
| 115 |
+
<script type="text/javascript">
|
| 116 |
+
//<![CDATA[
|
| 117 |
+
$('billing:region_id').setAttribute('defaultValue', "<?php echo $this->getAddress()->getRegionId() ?>");
|
| 118 |
+
//]]>
|
| 119 |
+
</script>
|
| 120 |
+
<input type="text" id="billing:region" name="billing[region]" value="<?php echo $this->htmlEscape($this->getAddress()->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
|
| 121 |
+
</div>
|
| 122 |
+
</div>
|
| 123 |
+
</li>
|
| 124 |
+
|
| 125 |
+
|
| 126 |
+
<li class="fields">
|
| 127 |
+
<div class="field">
|
| 128 |
+
<label for="billing:telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
| 129 |
+
<div class="input-box">
|
| 130 |
+
<input type="text" name="billing[telephone]" value="<?php echo $this->htmlEscape($this->getAddress()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" id="billing:telephone" />
|
| 131 |
+
</div>
|
| 132 |
+
</div>
|
| 133 |
+
<div class="field">
|
| 134 |
+
<label for="billing:fax"><?php echo $this->__('Fax') ?></label>
|
| 135 |
+
<div class="input-box">
|
| 136 |
+
<input type="text" name="billing[fax]" value="<?php echo $this->htmlEscape($this->getAddress()->getFax()) ?>" title="<?php echo $this->__('Fax') ?>" class="input-text" id="billing:fax" />
|
| 137 |
+
</div>
|
| 138 |
+
</div>
|
| 139 |
+
</li>
|
| 140 |
+
<?php if(!$this->isCustomerLoggedIn()): ?>
|
| 141 |
+
|
| 142 |
+
<?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
|
| 143 |
+
<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
|
| 144 |
+
<?php if ($_dob->isEnabled() || $_gender->isEnabled()): ?>
|
| 145 |
+
<li class="fields">
|
| 146 |
+
<?php if ($_dob->isEnabled()): ?>
|
| 147 |
+
<div class="field">
|
| 148 |
+
<?php echo $_dob->setDate($this->getQuote()->getCustomerDob())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
| 149 |
+
</div>
|
| 150 |
+
<?php endif; ?>
|
| 151 |
+
<?php if ($_gender->isEnabled()): ?>
|
| 152 |
+
<div class="field">
|
| 153 |
+
<?php echo $_gender->setGender($this->getQuote()->getCustomerGender())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
| 154 |
+
</div>
|
| 155 |
+
<?php endif ?>
|
| 156 |
+
</li>
|
| 157 |
+
<?php endif ?>
|
| 158 |
+
|
| 159 |
+
<?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
|
| 160 |
+
<?php if ($_taxvat->isEnabled()): ?>
|
| 161 |
+
<li>
|
| 162 |
+
<?php echo $_taxvat->setTaxvat($this->getQuote()->getCustomerTaxvat())->setFieldIdFormat('billing:%s')->setFieldNameFormat('billing[%s]')->toHtml() ?>
|
| 163 |
+
</li>
|
| 164 |
+
<?php endif ?>
|
| 165 |
+
|
| 166 |
+
<li class="fields" id="register-customer-password">
|
| 167 |
+
<div class="field">
|
| 168 |
+
<label for="billing:customer_password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
|
| 169 |
+
<div class="input-box">
|
| 170 |
+
<input type="password" name="billing[customer_password]" id="billing:customer_password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
|
| 171 |
+
</div>
|
| 172 |
+
</div>
|
| 173 |
+
<div class="field">
|
| 174 |
+
<label for="billing:confirm_password" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
|
| 175 |
+
<div class="input-box">
|
| 176 |
+
<input type="password" name="billing[confirm_password]" title="<?php echo $this->__('Confirm Password') ?>" id="billing:confirm_password" class="input-text required-entry validate-cpassword" />
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
</li>
|
| 180 |
+
<?php endif; ?>
|
| 181 |
+
<?php if ($this->isCustomerLoggedIn() && $this->customerHasAddresses()):?>
|
| 182 |
+
<li class="control">
|
| 183 |
+
<input type="checkbox" name="billing[save_in_address_book]" value="1" title="<?php echo $this->__('Save in address book') ?>" id="billing:save_in_address_book" onchange="if(window.shipping) shipping.setSameAsBilling(false);"<?php if ($this->getAddress()->getSaveInAddressBook()):?> checked="checked"<?php endif;?> class="checkbox" /><label for="billing:save_in_address_book"><?php echo $this->__('Save in address book') ?></label>
|
| 184 |
+
</li>
|
| 185 |
+
<?php else:?>
|
| 186 |
+
<li class="no-display"><input type="hidden" name="billing[save_in_address_book]" value="1" /></li>
|
| 187 |
+
<?php endif; ?>
|
| 188 |
+
</ul>
|
| 189 |
+
</fieldset>
|
| 190 |
+
</li>
|
| 191 |
+
<?php if ($this->canShip()): ?>
|
| 192 |
+
<li class="control">
|
| 193 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_yes" value="1"<?php if ($this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to this address') ?>" onclick="$('shipping:same_as_billing').checked = true;" class="radio" /><label for="billing:use_for_shipping_yes"><?php echo $this->__('Ship to this address') ?></label></li>
|
| 194 |
+
<li class="control">
|
| 195 |
+
<input type="radio" name="billing[use_for_shipping]" id="billing:use_for_shipping_no" value="0"<?php if (!$this->isUseBillingAddressForShipping()) {?> checked="checked"<?php }?> title="<?php echo $this->__('Ship to different address') ?>" onclick="$('shipping:same_as_billing').checked = false;" class="radio" /><label for="billing:use_for_shipping_no"><?php echo $this->__('Ship to different address') ?></label>
|
| 196 |
+
</li>
|
| 197 |
+
<?php endif; ?>
|
| 198 |
+
</ul>
|
| 199 |
+
<?php if (!$this->canShip()): ?>
|
| 200 |
+
<input type="hidden" name="billing[use_for_shipping]" value="1" />
|
| 201 |
+
<?php endif; ?>
|
| 202 |
+
<div class="buttons-set" id="billing-buttons-container">
|
| 203 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
| 204 |
+
<button type="button" title="<?php echo $this->__('Continue') ?>" class="button" onclick="billing.save()"><span><span><?php echo $this->__('Continue') ?></span></span></button>
|
| 205 |
+
<span class="please-wait" id="billing-please-wait" style="display:none;">
|
| 206 |
+
<img src="<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif') ?>" alt="<?php echo $this->__('Loading next step...') ?>" title="<?php echo $this->__('Loading next step...') ?>" class="v-middle" /> <?php echo $this->__('Loading next step...') ?>
|
| 207 |
+
</span>
|
| 208 |
+
</div>
|
| 209 |
+
</fieldset>
|
| 210 |
+
</form>
|
| 211 |
+
<script type="text/javascript">
|
| 212 |
+
//<![CDATA[
|
| 213 |
+
var billing = new Billing('co-billing-form', '<?php echo $this->getUrl('checkout/onepage/getAddress') ?>address/', '<?php echo $this->getUrl('checkout/onepage/saveBilling') ?>');
|
| 214 |
+
var billingForm = new VarienForm('co-billing-form');
|
| 215 |
+
|
| 216 |
+
//billingForm.setElementsRelation('billing:country_id', 'billing:region', '<?php echo $this->getUrl('directory/json/childRegion') ?>', '<?php echo $this->__('Select State/Province...') ?>');
|
| 217 |
+
$('billing-address-select') && billing.newAddress(!$('billing-address-select').value);
|
| 218 |
+
|
| 219 |
+
var billingRegionUpdater = new RegionUpdater('billing:country_id', 'billing:region', 'billing:region_id', countryRegions, undefined, 'billing:postcode');
|
| 220 |
+
//]]>
|
| 221 |
+
</script>
|
| 222 |
+
|
| 223 |
+
|
| 224 |
+
|
| 225 |
+
<script type="text/javascript">
|
| 226 |
+
|
| 227 |
+
document.getElementById("billing:postcode").parentNode.appendChild(new pca.Button("Find", search).element);
|
| 228 |
+
|
| 229 |
+
var RoyalMail_Data = true;
|
| 230 |
+
|
| 231 |
+
if(<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_rmdata',Mage::app()->getStore()); ?> == 0)
|
| 232 |
+
{
|
| 233 |
+
RoyalMail_Data = false;
|
| 234 |
+
}
|
| 235 |
+
|
| 236 |
+
|
| 237 |
+
|
| 238 |
+
var _fieldList = [
|
| 239 |
+
{ element: "billing:company", field: "Company" },
|
| 240 |
+
{ element: "billing:street1", field: "Line1" },
|
| 241 |
+
{ element: "billing:street2", field: "Line2" },
|
| 242 |
+
{ element: "billing:city", field: "City" },
|
| 243 |
+
{ element: "billing:region_id", field: "STATENAME" },
|
| 244 |
+
{ element: "billing:region", field: "State" },
|
| 245 |
+
{ element: "billing:postcode", field: "PostalCode" },
|
| 246 |
+
{ element: "billing:country_id", field: "Country" }
|
| 247 |
+
],
|
| 248 |
+
_options = {
|
| 249 |
+
key: '<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_key',Mage::app()->getStore()); ?>',
|
| 250 |
+
dataSourceOptions: { international: true, royalMail: RoyalMail_Data, usps: true }
|
| 251 |
+
};
|
| 252 |
+
_control = new pca.Address(_fieldList, _options);
|
| 253 |
+
|
| 254 |
+
function search() {
|
| 255 |
+
var _line1 = pca.getValue("billing:street1"),
|
| 256 |
+
_city = pca.getValue("billing:city"),
|
| 257 |
+
_state = pca.getValue("billing:region_id"),
|
| 258 |
+
_locality = _city + (_city && _state ? "," : "") + _state,
|
| 259 |
+
_postcode = pca.getValue("billing:postcode"),
|
| 260 |
+
_country = pca.getValue("billing:country_id");
|
| 261 |
+
|
| 262 |
+
_control.search(_line1, _locality, _postcode, _country);
|
| 263 |
+
}
|
| 264 |
+
|
| 265 |
+
function clearFields() {
|
| 266 |
+
_control.clear();
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
|
| 270 |
+
var _stateData = {
|
| 271 |
+
"USA": { "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas",
|
| 272 |
+
"CA": "California", "CO": "Colorado", "CT": "Connecticut", "DE": "Delaware",
|
| 273 |
+
"DC": "District Of Columbia", "FL": "Florida", "GA": "Georgia", "HI": "Hawaii",
|
| 274 |
+
"ID": "Idaho", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "KS": "Kansas",
|
| 275 |
+
"KY": "Kentucky", "LA": "Louisiana", "ME": "Maine", "MD": "Maryland",
|
| 276 |
+
"MA": "Massachusetts", "MI": "Michigan", "MN": "Minnesota", "MS": "Mississippi",
|
| 277 |
+
"MO": "Missouri", "MT": "Montana", "NE": "Nebraska", "NV": "Nevada",
|
| 278 |
+
"NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NY": "New York",
|
| 279 |
+
"NC": "North Carolina", "ND": "North Dakota", "OH": "Ohio", "OK": "Oklahoma",
|
| 280 |
+
"OR": "Oregon", "PA": "Pennsylvania", "PR": "Puerto Rico", "RI": "Rhode Island",
|
| 281 |
+
"SC": "South Carolina", "SD": "South Dakota", "TN": "Tennessee", "TX": "Texas",
|
| 282 |
+
"UT": "Utah", "VT": "Vermont", "VI": "Virgin Islands", "VA": "Virginia",
|
| 283 |
+
"WA": "Washington", "WV": "West Virginia", "WI": "Wisconsin", "WY": "Wyoming"
|
| 284 |
+
},
|
| 285 |
+
"CAN": { "AB": "Alberta", "BC": "British Columbia", "MB": "Alabama", "NL": "Newfoundland and Labrador",
|
| 286 |
+
"NB": "New Brunswick", "NS": "Nova Scotia", "NT": "Northwest Territories", "NU": "Nunavut",
|
| 287 |
+
"ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan",
|
| 288 |
+
"YT": "Yukon Territory"
|
| 289 |
+
}
|
| 290 |
+
};
|
| 291 |
+
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
_control.listen("select", function (address) {
|
| 295 |
+
if (address.State)
|
| 296 |
+
address.State = ((_stateData[address.CountryCode] || {})[address.State] || address.State);
|
| 297 |
+
pca.setValue("billing:region_id", address.State);
|
| 298 |
+
|
| 299 |
+
});
|
| 300 |
+
|
| 301 |
+
|
| 302 |
+
_control.listen("error", function (error) { alert(error) });
|
| 303 |
+
|
| 304 |
+
|
| 305 |
+
</script>
|
app/design/frontend/default/default/template/persistent/customer/form/pca_register.phtml
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package base_default
|
| 23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
<script type="text/javascript" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.js" ></script>
|
| 28 |
+
<link rel="stylesheet" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS); ?>PostcodeAnywhere/address.css" type="text/css" media="all"/>
|
| 29 |
+
|
| 30 |
+
<style type="text/css">
|
| 31 |
+
label { font:bold 9pt arial;color:#455f70; }
|
| 32 |
+
table { margin:15px;padding:15px;background-color:#ddeffd;border-radius:5px;border:solid 1px #98b4c9; }
|
| 33 |
+
#zip {width:150px;}
|
| 34 |
+
</style>
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
<?php
|
| 38 |
+
/**
|
| 39 |
+
* Create account form template
|
| 40 |
+
*
|
| 41 |
+
* @see Mage_Customer_Block_Form_Register
|
| 42 |
+
*/
|
| 43 |
+
?>
|
| 44 |
+
<div class="account-create">
|
| 45 |
+
<div class="page-title">
|
| 46 |
+
<h1><?php echo $this->__('Create an Account') ?></h1>
|
| 47 |
+
</div>
|
| 48 |
+
<?php echo $this->getChildHtml('form_fields_before')?>
|
| 49 |
+
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
|
| 50 |
+
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="form-validate">
|
| 51 |
+
<div class="fieldset">
|
| 52 |
+
<input type="hidden" name="success_url" value="<?php echo $this->getSuccessUrl() ?>" />
|
| 53 |
+
<input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" />
|
| 54 |
+
<h2 class="legend"><?php echo $this->__('Personal Information') ?></h2>
|
| 55 |
+
<ul class="form-list">
|
| 56 |
+
<li class="fields">
|
| 57 |
+
<?php echo $this->getLayout()->createBlock('customer/widget_name')->setObject($this->getFormData())->toHtml() ?>
|
| 58 |
+
</li>
|
| 59 |
+
<li>
|
| 60 |
+
<label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
|
| 61 |
+
<div class="input-box">
|
| 62 |
+
<input type="text" name="email" id="email_address" value="<?php echo $this->htmlEscape($this->getFormData()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
|
| 63 |
+
</div>
|
| 64 |
+
</li>
|
| 65 |
+
<?php if ($this->isNewsletterEnabled()): ?>
|
| 66 |
+
<li class="control">
|
| 67 |
+
<div class="input-box">
|
| 68 |
+
<input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed"<?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" />
|
| 69 |
+
</div>
|
| 70 |
+
<label for="is_subscribed"><?php echo $this->__('Sign Up for Newsletter') ?></label>
|
| 71 |
+
</li>
|
| 72 |
+
<?php endif ?>
|
| 73 |
+
<?php $_dob = $this->getLayout()->createBlock('customer/widget_dob') ?>
|
| 74 |
+
<?php if ($_dob->isEnabled()): ?>
|
| 75 |
+
<li><?php echo $_dob->setDate($this->getFormData()->getDob())->toHtml() ?></li>
|
| 76 |
+
<?php endif ?>
|
| 77 |
+
<?php $_taxvat = $this->getLayout()->createBlock('customer/widget_taxvat') ?>
|
| 78 |
+
<?php if ($_taxvat->isEnabled()): ?>
|
| 79 |
+
<li><?php echo $_taxvat->setTaxvat($this->getFormData()->getTaxvat())->toHtml() ?></li>
|
| 80 |
+
<?php endif ?>
|
| 81 |
+
<?php $_gender = $this->getLayout()->createBlock('customer/widget_gender') ?>
|
| 82 |
+
<?php if ($_gender->isEnabled()): ?>
|
| 83 |
+
<li><?php echo $_gender->setGender($this->getFormData()->getGender())->toHtml() ?></li>
|
| 84 |
+
<?php endif ?>
|
| 85 |
+
</ul>
|
| 86 |
+
</div>
|
| 87 |
+
<?php if($this->getShowAddressFields()): ?>
|
| 88 |
+
<div class="fieldset">
|
| 89 |
+
<input type="hidden" name="create_address" value="1" />
|
| 90 |
+
<h2 class="legend"><?php echo $this->__('Address Information') ?></h2>
|
| 91 |
+
<ul class="form-list">
|
| 92 |
+
<li class="fields">
|
| 93 |
+
<div class="field">
|
| 94 |
+
<label for="company"><?php echo $this->__('Company') ?></label>
|
| 95 |
+
<div class="input-box">
|
| 96 |
+
<input type="text" name="company" id="company" value="<?php echo $this->htmlEscape($this->getFormData()->getCompany()) ?>" title="<?php echo $this->__('Company') ?>" class="input-text" />
|
| 97 |
+
</div>
|
| 98 |
+
</div>
|
| 99 |
+
<div class="field">
|
| 100 |
+
<label for="telephone" class="required"><em>*</em><?php echo $this->__('Telephone') ?></label>
|
| 101 |
+
<div class="input-box">
|
| 102 |
+
<input type="text" name="telephone" id="telephone" value="<?php echo $this->htmlEscape($this->getFormData()->getTelephone()) ?>" title="<?php echo $this->__('Telephone') ?>" class="input-text required-entry" />
|
| 103 |
+
</div>
|
| 104 |
+
</div>
|
| 105 |
+
</li>
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
|
| 109 |
+
<li class="fields"><div class="field">
|
| 110 |
+
<label for="country" class="required"><em>*</em><?php echo $this->__('Country') ?></label>
|
| 111 |
+
<div class="input-box">
|
| 112 |
+
<?php echo $this->getCountryHtmlSelect() ?>
|
| 113 |
+
</div>
|
| 114 |
+
</div> </li> <li>
|
| 115 |
+
<div class="field">
|
| 116 |
+
<label for="zip" class="required"><em>*</em><?php echo $this->__('Zip/Postal Code') ?></label>
|
| 117 |
+
<div class="input-box">
|
| 118 |
+
<input type="text" name="postcode" style="width:200px;" value="<?php echo $this->htmlEscape($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international required-entry" />
|
| 119 |
+
</div>
|
| 120 |
+
</div>
|
| 121 |
+
</li>
|
| 122 |
+
|
| 123 |
+
<li class="wide">
|
| 124 |
+
<label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label>
|
| 125 |
+
<div class="input-box">
|
| 126 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet(1)) ?>" title="<?php echo $this->__('Street Address') ?>" id="street_1" class="input-text required-entry" />
|
| 127 |
+
</div>
|
| 128 |
+
</li>
|
| 129 |
+
<?php for ($_i=2, $_n=$this->helper('customer/address')->getStreetLines(); $_i<=$_n; $_i++): ?>
|
| 130 |
+
<li class="wide">
|
| 131 |
+
<div class="input-box">
|
| 132 |
+
<input type="text" name="street[]" value="<?php echo $this->htmlEscape($this->getFormData()->getStreet($_i)) ?>" title="<?php echo $this->__('Street Address %s', $_i) ?>" id="street_<?php echo $_i?>" class="input-text" />
|
| 133 |
+
</div>
|
| 134 |
+
</li>
|
| 135 |
+
<?php endfor ?>
|
| 136 |
+
<li class="fields">
|
| 137 |
+
<div class="field">
|
| 138 |
+
<label for="city" class="required"><em>*</em><?php echo $this->__('City') ?></label>
|
| 139 |
+
<div class="input-box">
|
| 140 |
+
<input type="text" name="city" value="<?php echo $this->htmlEscape($this->getFormData()->getCity()) ?>" title="<?php echo $this->__('City') ?>" class="input-text required-entry" id="city" />
|
| 141 |
+
</div>
|
| 142 |
+
</div>
|
| 143 |
+
<div class="field">
|
| 144 |
+
<label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
|
| 145 |
+
<div class="input-box">
|
| 146 |
+
<select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select" style="display:none;">
|
| 147 |
+
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
|
| 148 |
+
</select>
|
| 149 |
+
<script type="text/javascript">
|
| 150 |
+
//<![CDATA[
|
| 151 |
+
$('region_id').setAttribute('defaultValue', "<?php echo $this->getFormData()->getRegionId() ?>");
|
| 152 |
+
//]]>
|
| 153 |
+
</script>
|
| 154 |
+
<input type="text" id="region" name="region" value="<?php echo $this->htmlEscape($this->getRegion()) ?>" title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
|
| 155 |
+
</div>
|
| 156 |
+
</div>
|
| 157 |
+
</li>
|
| 158 |
+
</ul>
|
| 159 |
+
<input type="hidden" name="default_billing" value="1" />
|
| 160 |
+
<input type="hidden" name="default_shipping" value="1" />
|
| 161 |
+
</div>
|
| 162 |
+
<?php endif; ?>
|
| 163 |
+
<div class="fieldset">
|
| 164 |
+
<h2 class="legend"><?php echo $this->__('Login Information') ?></h2>
|
| 165 |
+
<ul class="form-list">
|
| 166 |
+
<li class="fields">
|
| 167 |
+
<div class="field">
|
| 168 |
+
<label for="password" class="required"><em>*</em><?php echo $this->__('Password') ?></label>
|
| 169 |
+
<div class="input-box">
|
| 170 |
+
<input type="password" name="password" id="password" title="<?php echo $this->__('Password') ?>" class="input-text required-entry validate-password" />
|
| 171 |
+
</div>
|
| 172 |
+
</div>
|
| 173 |
+
<div class="field">
|
| 174 |
+
<label for="confirmation" class="required"><em>*</em><?php echo $this->__('Confirm Password') ?></label>
|
| 175 |
+
<div class="input-box">
|
| 176 |
+
<input type="password" name="confirmation" title="<?php echo $this->__('Confirm Password') ?>" id="confirmation" class="input-text required-entry validate-cpassword" />
|
| 177 |
+
</div>
|
| 178 |
+
</div>
|
| 179 |
+
</li>
|
| 180 |
+
</ul>
|
| 181 |
+
</div>
|
| 182 |
+
<div class="buttons-set">
|
| 183 |
+
<p class="required"><?php echo $this->__('* Required Fields') ?></p>
|
| 184 |
+
<p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>" class="back-link"><small>« </small><?php echo $this->__('Back') ?></a></p>
|
| 185 |
+
<button type="submit" title="<?php echo $this->__('Submit') ?>" class="button"><span><span><?php echo $this->__('Submit') ?></span></span></button>
|
| 186 |
+
</div>
|
| 187 |
+
</form>
|
| 188 |
+
<script type="text/javascript">
|
| 189 |
+
//<![CDATA[
|
| 190 |
+
var dataForm = new VarienForm('form-validate', true);
|
| 191 |
+
<?php if($this->getShowAddressFields()): ?>
|
| 192 |
+
new RegionUpdater('country', 'region', 'region_id', <?php echo $this->helper('directory')->getRegionJson() ?>, undefined, 'zip');
|
| 193 |
+
<?php endif; ?>
|
| 194 |
+
//]]>
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
document.getElementById("zip").parentNode.appendChild(new pca.Button("Find", search).element);
|
| 198 |
+
|
| 199 |
+
var RoyalMail_Data = true;
|
| 200 |
+
|
| 201 |
+
if(<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_rmdata',Mage::app()->getStore()); ?> == 0)
|
| 202 |
+
{
|
| 203 |
+
RoyalMail_Data = false;
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
|
| 207 |
+
|
| 208 |
+
var _fieldList = [
|
| 209 |
+
{ element: "company", field: "Company" },
|
| 210 |
+
{ element: "street_1", field: "Line1" },
|
| 211 |
+
{ element: "street_2", field: "Line2" },
|
| 212 |
+
{ element: "city", field: "City" },
|
| 213 |
+
{ element: "region_id", field: "STATENAME" },
|
| 214 |
+
{ element: "region", field: "State" },
|
| 215 |
+
{ element: "zip", field: "PostalCode" },
|
| 216 |
+
{ element: "country", field: "Country" }
|
| 217 |
+
],
|
| 218 |
+
_options = {
|
| 219 |
+
key: '<?php echo Mage::getStoreConfig('PostcodeAnywhere/PostcodeAnywhere_group/PostcodeAnywhere_key',Mage::app()->getStore()); ?>',
|
| 220 |
+
dataSourceOptions: { international: true, royalMail: RoyalMail_Data, usps: true }
|
| 221 |
+
};
|
| 222 |
+
_control = new pca.Address(_fieldList, _options);
|
| 223 |
+
|
| 224 |
+
function search() {
|
| 225 |
+
var _line1 = pca.getValue("street_1"),
|
| 226 |
+
_city = pca.getValue("city"),
|
| 227 |
+
_state = pca.getValue("region_id"),
|
| 228 |
+
_locality = _city + (_city && _state ? "," : "") + _state,
|
| 229 |
+
_postcode = pca.getValue("zip"),
|
| 230 |
+
_country = pca.getValue("country");
|
| 231 |
+
|
| 232 |
+
_control.search(_line1, _locality, _postcode, _country);
|
| 233 |
+
}
|
| 234 |
+
|
| 235 |
+
function clearFields() {
|
| 236 |
+
_control.clear();
|
| 237 |
+
}
|
| 238 |
+
|
| 239 |
+
|
| 240 |
+
var _stateData = {
|
| 241 |
+
"USA": { "AL": "Alabama", "AK": "Alaska", "AZ": "Arizona", "AR": "Arkansas",
|
| 242 |
+
"CA": "California", "CO": "Colorado", "CT": "Connecticut", "DE": "Delaware",
|
| 243 |
+
"DC": "District Of Columbia", "FL": "Florida", "GA": "Georgia", "HI": "Hawaii",
|
| 244 |
+
"ID": "Idaho", "IL": "Illinois", "IN": "Indiana", "IA": "Iowa", "KS": "Kansas",
|
| 245 |
+
"KY": "Kentucky", "LA": "Louisiana", "ME": "Maine", "MD": "Maryland",
|
| 246 |
+
"MA": "Massachusetts", "MI": "Michigan", "MN": "Minnesota", "MS": "Mississippi",
|
| 247 |
+
"MO": "Missouri", "MT": "Montana", "NE": "Nebraska", "NV": "Nevada",
|
| 248 |
+
"NH": "New Hampshire", "NJ": "New Jersey", "NM": "New Mexico", "NY": "New York",
|
| 249 |
+
"NC": "North Carolina", "ND": "North Dakota", "OH": "Ohio", "OK": "Oklahoma",
|
| 250 |
+
"OR": "Oregon", "PA": "Pennsylvania", "PR": "Puerto Rico", "RI": "Rhode Island",
|
| 251 |
+
"SC": "South Carolina", "SD": "South Dakota", "TN": "Tennessee", "TX": "Texas",
|
| 252 |
+
"UT": "Utah", "VT": "Vermont", "VI": "Virgin Islands", "VA": "Virginia",
|
| 253 |
+
"WA": "Washington", "WV": "West Virginia", "WI": "Wisconsin", "WY": "Wyoming"
|
| 254 |
+
},
|
| 255 |
+
"CAN": { "AB": "Alberta", "BC": "British Columbia", "MB": "Alabama", "NL": "Newfoundland and Labrador",
|
| 256 |
+
"NB": "New Brunswick", "NS": "Nova Scotia", "NT": "Northwest Territories", "NU": "Nunavut",
|
| 257 |
+
"ON": "Ontario", "PE": "Prince Edward Island", "QC": "Quebec", "SK": "Saskatchewan",
|
| 258 |
+
"YT": "Yukon Territory"
|
| 259 |
+
}
|
| 260 |
+
};
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
|
| 264 |
+
_control.listen("select", function (address) {
|
| 265 |
+
if (address.State)
|
| 266 |
+
address.State = ((_stateData[address.CountryCode] || {})[address.State] || address.State);
|
| 267 |
+
pca.setValue("region_id", address.State);
|
| 268 |
+
|
| 269 |
+
});
|
| 270 |
+
|
| 271 |
+
|
| 272 |
+
_control.listen("error", function (error) { alert(error) });
|
| 273 |
+
|
| 274 |
+
|
| 275 |
+
</script>
|
| 276 |
+
</div>
|
app/etc/modules/PostcodeAnywhere_AddressLookup.xml
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<PostcodeAnywhere_AddressLookup>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
</PostcodeAnywhere_AddressLookup>
|
| 8 |
+
</modules>
|
| 9 |
+
</config>
|
js/PostcodeAnywhere/address.css
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*! Copyright � 2009-2011 Postcode Anywhere (Holdings) Ltd. (http://www.postcodeanywhere.co.uk)
|
| 2 |
+
* Toolkit v1.00
|
| 3 |
+
*/
|
| 4 |
+
|
| 5 |
+
.pcatext { font:9pt arial;color:#455f70; }
|
| 6 |
+
.pcalist { list-style-type:none;list-style-position:outside;margin:0;padding:0;overflow-y:scroll;overflow-x:hidden;background-color:#fff;border:1px solid #000; }
|
| 7 |
+
.pcaautocomplete { margin:0;padding:0;border:0;width:inherit; }
|
| 8 |
+
.pcaautocomplete .pcalist { position:absolute;height:200px;width:auto; }
|
| 9 |
+
.pcamodal { position:absolute; }
|
| 10 |
+
.pcamodal .pcalist { height:250px;width:300px; }
|
| 11 |
+
.pcalistitem { text-align:left;cursor:pointer;margin:0;padding:3px 25px 3px 10px; }
|
| 12 |
+
.pcaselected { background-color:#ddeffd;color:#213d4f; }
|
| 13 |
+
.pcadisableselect {-moz-user-select:none;-webkit-user-select:none;}
|
| 14 |
+
.pcafullscreen { position:fixed;top:0;left:0;height:100%;width:100%; }
|
| 15 |
+
.pcamask { background-color:#000;opacity:.1;filter:alpha(opacity=10); }
|
| 16 |
+
.pcaborder { position:absolute;width:100%;height:100%;top:0;left:0;background-color:#444;border-radius:3px;opacity:.3;filter:alpha(opacity=30); }
|
| 17 |
+
.pcabackground { position:relative;margin:12px;padding:12px;background-color:#ddeffd;border-radius:3px;border:solid 1px #98b4c9; }
|
| 18 |
+
.pcabutton { font-weight:bold;border:1px solid #9fb9d0;border-radius:5px;padding:2px 9px;cursor:pointer; }
|
| 19 |
+
.pcabutton:hover { color:#213d4f; }
|
| 20 |
+
.pcagradient { background:#96cdf6;background:-moz-linear-gradient(top, #96cdf6 0%, #85bae4 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#96cdf6), color-stop(100%,#85bae4));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#96cdf6',endColorstr='#85bae4',GradientType=0); }
|
| 21 |
+
.pcalink { font-weight:bold;cursor:pointer; }
|
| 22 |
+
.pcasidebar { position:fixed;top:0;right:0;margin:0;padding:0;height:100%;width:250px; }
|
| 23 |
+
.pcasidebarlist { margin:0;padding:0;list-style-type:none;list-style-position:outside; }
|
| 24 |
+
.pcadraggable { position:relative;margin:8px;padding:8px;background-color:#ddeffd;border-radius:3px;border:solid 1px #98b4c9;cursor:move; }
|
| 25 |
+
.pcadragselected { border:solid 2px green; }
|
| 26 |
+
.pcadraghover { border:solid 2px red; }
|
js/PostcodeAnywhere/address.js
ADDED
|
@@ -0,0 +1,1615 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*! Copyright © 2009-2011 Postcode Anywhere (Holdings) Ltd. (http://www.postcodeanywhere.co.uk)
|
| 2 |
+
*
|
| 3 |
+
* Address v1.00
|
| 4 |
+
* Component for address lookup integrations.
|
| 5 |
+
*/
|
| 6 |
+
|
| 7 |
+
(function (window, undefined) {
|
| 8 |
+
var _pca = window.pca = window.pca || {},
|
| 9 |
+
_protocol = window.parent.location.protocol == "https:" ? "https:" : "http:",
|
| 10 |
+
_host = "services.postcodeanywhere.co.uk",
|
| 11 |
+
_endpoint = "json2.ws",
|
| 12 |
+
_document = window.document;
|
| 13 |
+
|
| 14 |
+
//Temp store for services repsonses
|
| 15 |
+
_pca.response = "";
|
| 16 |
+
|
| 17 |
+
//Types
|
| 18 |
+
_pca.CountryNameType = { Iso2: "Iso2", Iso3: "Iso3", Name: "Name" };
|
| 19 |
+
_pca.ListType = { Select: "Select", AutoComplete: "AutoComplete", Modal: "Modal" };
|
| 20 |
+
|
| 21 |
+
//Local Data
|
| 22 |
+
_pca.synonyms = [
|
| 23 |
+
{ r: " N ", w: " NORTH " },
|
| 24 |
+
{ r: " NE ", w: " NORTH EAST " },
|
| 25 |
+
{ r: " NORTHEAST ", w: " NORTH EAST " },
|
| 26 |
+
{ r: " NW ", w: " NORTH WEST " },
|
| 27 |
+
{ r: " NORTHWEST ", w: " NORTH WEST " },
|
| 28 |
+
{ r: " S ", w: " SOUTH " },
|
| 29 |
+
{ r: " SE ", w: " SOUTH EAST " },
|
| 30 |
+
{ r: " SOUTHEAST ", w: " SOUTH EAST " },
|
| 31 |
+
{ r: " SW ", w: " SOUTH WEST " },
|
| 32 |
+
{ r: " SOUTHWEST ", w: " SOUTH WEST " },
|
| 33 |
+
{ r: " E ", w: " EAST " },
|
| 34 |
+
{ r: " W ", w: " WEST " },
|
| 35 |
+
{ r: " ST ", w: " SAINT " }
|
| 36 |
+
];
|
| 37 |
+
_pca.diacritics = [
|
| 38 |
+
{ r: /[ÀÁÂÃàáâã]/g, w: "A" },
|
| 39 |
+
{ r: /[Åå]/g, w: "AA" },
|
| 40 |
+
{ r: /[ÆæÄä]/g, w: "AE" },
|
| 41 |
+
{ r: /[Çç]/g, w: "C" },
|
| 42 |
+
{ r: /[Cc]/g, w: "CH" },
|
| 43 |
+
{ r: /[dÐ]/g, w: "DJ" },
|
| 44 |
+
{ r: /[ÈÉÊËèéêë]/g, w: "E" },
|
| 45 |
+
{ r: /[ÌÍÏìíîï]/g, w: "I" },
|
| 46 |
+
{ r: /[Ññ]/g, w: "N" },
|
| 47 |
+
{ r: /[ÒÓÔÕOòóôõo]/g, w: "O" },
|
| 48 |
+
{ r: /[ŒœØøÖö]/g, w: "OE" },
|
| 49 |
+
{ r: /[Šš]/g, w: "SH" },
|
| 50 |
+
{ r: /ß/g, w: "SS" },
|
| 51 |
+
{ r: /[ÙÚÛUùúûu]/g, w: "U" },
|
| 52 |
+
{ r: /[Üü]/g, w: "UE" },
|
| 53 |
+
{ r: /[Üü]/g, w: "Y" },
|
| 54 |
+
{ r: /[ŸÝýÿ]/g, w: "ZH" },
|
| 55 |
+
{ r: /-/g, w: " " },
|
| 56 |
+
{ r: /[.,]/g, w: "" }
|
| 57 |
+
];
|
| 58 |
+
_pca.countries = [
|
| 59 |
+
{ Iso2: "AF", Iso3: "AFG", Name: "Afghanistan" },
|
| 60 |
+
{ Iso2: "AX", Iso3: "ALA", Name: "Åland Islands" },
|
| 61 |
+
{ Iso2: "AL", Iso3: "ALB", Name: "Albania" },
|
| 62 |
+
{ Iso2: "DZ", Iso3: "DZA", Name: "Algeria" },
|
| 63 |
+
{ Iso2: "AS", Iso3: "ASM", Name: "American Samoa" },
|
| 64 |
+
{ Iso2: "AD", Iso3: "AND", Name: "Andorra" },
|
| 65 |
+
{ Iso2: "AO", Iso3: "AGO", Name: "Angola" },
|
| 66 |
+
{ Iso2: "AI", Iso3: "AIA", Name: "Anguilla" },
|
| 67 |
+
{ Iso2: "AQ", Iso3: "ATA", Name: "Antarctica" },
|
| 68 |
+
{ Iso2: "AG", Iso3: "ATG", Name: "Antigua and Barbuda" },
|
| 69 |
+
{ Iso2: "AR", Iso3: "ARG", Name: "Argentina" },
|
| 70 |
+
{ Iso2: "AM", Iso3: "ARM", Name: "Armenia" },
|
| 71 |
+
{ Iso2: "AW", Iso3: "ABW", Name: "Aruba" },
|
| 72 |
+
{ Iso2: "AU", Iso3: "AUS", Name: "Australia" },
|
| 73 |
+
{ Iso2: "AT", Iso3: "AUT", Name: "Austria" },
|
| 74 |
+
{ Iso2: "AZ", Iso3: "AZE", Name: "Azerbaijan" },
|
| 75 |
+
{ Iso2: "BS", Iso3: "BHS", Name: "Bahamas" },
|
| 76 |
+
{ Iso2: "BH", Iso3: "BHR", Name: "Bahrain" },
|
| 77 |
+
{ Iso2: "BD", Iso3: "BGD", Name: "Bangladesh" },
|
| 78 |
+
{ Iso2: "BB", Iso3: "BRB", Name: "Barbados" },
|
| 79 |
+
{ Iso2: "BY", Iso3: "BLR", Name: "Belarus" },
|
| 80 |
+
{ Iso2: "BE", Iso3: "BEL", Name: "Belgium" },
|
| 81 |
+
{ Iso2: "BZ", Iso3: "BLZ", Name: "Belize" },
|
| 82 |
+
{ Iso2: "BJ", Iso3: "BEN", Name: "Benin" },
|
| 83 |
+
{ Iso2: "BM", Iso3: "BMU", Name: "Bermuda" },
|
| 84 |
+
{ Iso2: "BT", Iso3: "BTN", Name: "Bhutan" },
|
| 85 |
+
{ Iso2: "BO", Iso3: "BOL", Name: "Bolivia, Plurinational State Of" },
|
| 86 |
+
{ Iso2: "BQ", Iso3: "BES", Name: "Bonaire, Saint Eustatius and Saba" },
|
| 87 |
+
{ Iso2: "BA", Iso3: "BIH", Name: "Bosnia and Herzegovina" },
|
| 88 |
+
{ Iso2: "BW", Iso3: "BWA", Name: "Botswana" },
|
| 89 |
+
{ Iso2: "BV", Iso3: "BVT", Name: "Bouvet Island" },
|
| 90 |
+
{ Iso2: "BR", Iso3: "BRA", Name: "Brazil" },
|
| 91 |
+
{ Iso2: "IO", Iso3: "IOT", Name: "British Indian Ocean Territory" },
|
| 92 |
+
{ Iso2: "BN", Iso3: "BRN", Name: "Brunei Darussalam" },
|
| 93 |
+
{ Iso2: "BG", Iso3: "BGR", Name: "Bulgaria" },
|
| 94 |
+
{ Iso2: "BF", Iso3: "BFA", Name: "Burkina Faso" },
|
| 95 |
+
{ Iso2: "BI", Iso3: "BDI", Name: "Burundi" },
|
| 96 |
+
{ Iso2: "KH", Iso3: "KHM", Name: "Cambodia" },
|
| 97 |
+
{ Iso2: "CM", Iso3: "CMR", Name: "Cameroon" },
|
| 98 |
+
{ Iso2: "CA", Iso3: "CAN", Name: "Canada" },
|
| 99 |
+
{ Iso2: "CV", Iso3: "CPV", Name: "Cape Verde" },
|
| 100 |
+
{ Iso2: "KY", Iso3: "CYM", Name: "Cayman Islands" },
|
| 101 |
+
{ Iso2: "CF", Iso3: "CAF", Name: "Central African Republic" },
|
| 102 |
+
{ Iso2: "TD", Iso3: "TCD", Name: "Chad" },
|
| 103 |
+
{ Iso2: "CL", Iso3: "CHL", Name: "Chile" },
|
| 104 |
+
{ Iso2: "CN", Iso3: "CHN", Name: "China" },
|
| 105 |
+
{ Iso2: "CX", Iso3: "CXR", Name: "Christmas Island" },
|
| 106 |
+
{ Iso2: "CC", Iso3: "CCK", Name: "Cocos (Keeling) Islands" },
|
| 107 |
+
{ Iso2: "CO", Iso3: "COL", Name: "Colombia" },
|
| 108 |
+
{ Iso2: "KM", Iso3: "COM", Name: "Comoros" },
|
| 109 |
+
{ Iso2: "CG", Iso3: "COG", Name: "Congo" },
|
| 110 |
+
{ Iso2: "CD", Iso3: "COD", Name: "Congo, the Democratic Republic of the" },
|
| 111 |
+
{ Iso2: "CK", Iso3: "COK", Name: "Cook Islands" },
|
| 112 |
+
{ Iso2: "CR", Iso3: "CRI", Name: "Costa Rica" },
|
| 113 |
+
{ Iso2: "CI", Iso3: "CIV", Name: "Côte D\'ivoire" },
|
| 114 |
+
{ Iso2: "HR", Iso3: "HRV", Name: "Croatia" },
|
| 115 |
+
{ Iso2: "CU", Iso3: "CUB", Name: "Cuba" },
|
| 116 |
+
{ Iso2: "CW", Iso3: "CUW", Name: "Curaçao" },
|
| 117 |
+
{ Iso2: "CY", Iso3: "CYP", Name: "Cyprus" },
|
| 118 |
+
{ Iso2: "CZ", Iso3: "CZE", Name: "Czech Republic" },
|
| 119 |
+
{ Iso2: "DK", Iso3: "DNK", Name: "Denmark" },
|
| 120 |
+
{ Iso2: "DJ", Iso3: "DJI", Name: "Djibouti" },
|
| 121 |
+
{ Iso2: "DM", Iso3: "DMA", Name: "Dominica" },
|
| 122 |
+
{ Iso2: "DO", Iso3: "DOM", Name: "Dominican Republic" },
|
| 123 |
+
{ Iso2: "EC", Iso3: "ECU", Name: "Ecuador" },
|
| 124 |
+
{ Iso2: "EG", Iso3: "EGY", Name: "Egypt" },
|
| 125 |
+
{ Iso2: "SV", Iso3: "SLV", Name: "El Salvador" },
|
| 126 |
+
{ Iso2: "GQ", Iso3: "GNQ", Name: "Equatorial Guinea" },
|
| 127 |
+
{ Iso2: "ER", Iso3: "ERI", Name: "Eritrea" },
|
| 128 |
+
{ Iso2: "EE", Iso3: "EST", Name: "Estonia" },
|
| 129 |
+
{ Iso2: "ET", Iso3: "ETH", Name: "Ethiopia" },
|
| 130 |
+
{ Iso2: "FK", Iso3: "FLK", Name: "Falkland Islands (Malvinas)" },
|
| 131 |
+
{ Iso2: "FO", Iso3: "FRO", Name: "Faroe Islands" },
|
| 132 |
+
{ Iso2: "FJ", Iso3: "FJI", Name: "Fiji" },
|
| 133 |
+
{ Iso2: "FI", Iso3: "FIN", Name: "Finland" },
|
| 134 |
+
{ Iso2: "FR", Iso3: "FRA", Name: "France" },
|
| 135 |
+
{ Iso2: "GF", Iso3: "GUF", Name: "French Guiana" },
|
| 136 |
+
{ Iso2: "PF", Iso3: "PYF", Name: "French Polynesia" },
|
| 137 |
+
{ Iso2: "TF", Iso3: "ATF", Name: "French Southern Territories" },
|
| 138 |
+
{ Iso2: "GA", Iso3: "GAB", Name: "Gabon" },
|
| 139 |
+
{ Iso2: "GM", Iso3: "GMB", Name: "Gambia" },
|
| 140 |
+
{ Iso2: "GE", Iso3: "GEO", Name: "Georgia" },
|
| 141 |
+
{ Iso2: "DE", Iso3: "DEU", Name: "Germany" },
|
| 142 |
+
{ Iso2: "GH", Iso3: "GHA", Name: "Ghana" },
|
| 143 |
+
{ Iso2: "GI", Iso3: "GIB", Name: "Gibraltar" },
|
| 144 |
+
{ Iso2: "GR", Iso3: "GRC", Name: "Greece" },
|
| 145 |
+
{ Iso2: "GL", Iso3: "GRL", Name: "Greenland" },
|
| 146 |
+
{ Iso2: "GD", Iso3: "GRD", Name: "Grenada" },
|
| 147 |
+
{ Iso2: "GP", Iso3: "GLP", Name: "Guadeloupe" },
|
| 148 |
+
{ Iso2: "GU", Iso3: "GUM", Name: "Guam" },
|
| 149 |
+
{ Iso2: "GT", Iso3: "GTM", Name: "Guatemala" },
|
| 150 |
+
{ Iso2: "GG", Iso3: "GGY", Name: "Guernsey" },
|
| 151 |
+
{ Iso2: "GN", Iso3: "GIN", Name: "Guinea" },
|
| 152 |
+
{ Iso2: "GW", Iso3: "GNB", Name: "Guinea-Bissau" },
|
| 153 |
+
{ Iso2: "GY", Iso3: "GUY", Name: "Guyana" },
|
| 154 |
+
{ Iso2: "HT", Iso3: "HTI", Name: "Haiti" },
|
| 155 |
+
{ Iso2: "HM", Iso3: "HMD", Name: "Heard Island and Mcdonald Islands" },
|
| 156 |
+
{ Iso2: "VA", Iso3: "VAT", Name: "Holy See (Vatican City State)" },
|
| 157 |
+
{ Iso2: "HN", Iso3: "HND", Name: "Honduras" },
|
| 158 |
+
{ Iso2: "HK", Iso3: "HKG", Name: "Hong Kong" },
|
| 159 |
+
{ Iso2: "HU", Iso3: "HUN", Name: "Hungary" },
|
| 160 |
+
{ Iso2: "IS", Iso3: "ISL", Name: "Iceland" },
|
| 161 |
+
{ Iso2: "IN", Iso3: "IND", Name: "India" },
|
| 162 |
+
{ Iso2: "ID", Iso3: "IDN", Name: "Indonesia" },
|
| 163 |
+
{ Iso2: "IR", Iso3: "IRN", Name: "Iran, Islamic Republic Of" },
|
| 164 |
+
{ Iso2: "IQ", Iso3: "IRQ", Name: "Iraq" },
|
| 165 |
+
{ Iso2: "IE", Iso3: "IRL", Name: "Ireland" },
|
| 166 |
+
{ Iso2: "IM", Iso3: "IMN", Name: "Isle of Man" },
|
| 167 |
+
{ Iso2: "IL", Iso3: "ISR", Name: "Israel" },
|
| 168 |
+
{ Iso2: "IT", Iso3: "ITA", Name: "Italy" },
|
| 169 |
+
{ Iso2: "JM", Iso3: "JAM", Name: "Jamaica" },
|
| 170 |
+
{ Iso2: "JP", Iso3: "JPN", Name: "Japan" },
|
| 171 |
+
{ Iso2: "JE", Iso3: "JEY", Name: "Jersey" },
|
| 172 |
+
{ Iso2: "JO", Iso3: "JOR", Name: "Jordan" },
|
| 173 |
+
{ Iso2: "KZ", Iso3: "KAZ", Name: "Kazakhstan" },
|
| 174 |
+
{ Iso2: "KE", Iso3: "KEN", Name: "Kenya" },
|
| 175 |
+
{ Iso2: "KI", Iso3: "KIR", Name: "Kiribati" },
|
| 176 |
+
{ Iso2: "KP", Iso3: "PRK", Name: "Korea, Democratic People\'s Republic of" },
|
| 177 |
+
{ Iso2: "KR", Iso3: "KOR", Name: "Korea, Republic of" },
|
| 178 |
+
{ Iso2: "KW", Iso3: "KWT", Name: "Kuwait" },
|
| 179 |
+
{ Iso2: "KG", Iso3: "KGZ", Name: "Kyrgyzstan" },
|
| 180 |
+
{ Iso2: "LA", Iso3: "LAO", Name: "Lao people\'s Democratic Republic" },
|
| 181 |
+
{ Iso2: "LV", Iso3: "LVA", Name: "Latvia" },
|
| 182 |
+
{ Iso2: "LB", Iso3: "LBN", Name: "Lebanon" },
|
| 183 |
+
{ Iso2: "LS", Iso3: "LSO", Name: "Lesotho" },
|
| 184 |
+
{ Iso2: "LR", Iso3: "LBR", Name: "Liberia" },
|
| 185 |
+
{ Iso2: "LY", Iso3: "LBY", Name: "Libya" },
|
| 186 |
+
{ Iso2: "LI", Iso3: "LIE", Name: "Liechtenstein" },
|
| 187 |
+
{ Iso2: "LT", Iso3: "LTU", Name: "Lithuania" },
|
| 188 |
+
{ Iso2: "LU", Iso3: "LUX", Name: "Luxembourg" },
|
| 189 |
+
{ Iso2: "MO", Iso3: "MAC", Name: "Macao" },
|
| 190 |
+
{ Iso2: "MK", Iso3: "MKD", Name: "Macedonia, the Former Yugoslav Republic of" },
|
| 191 |
+
{ Iso2: "MG", Iso3: "MDG", Name: "Madagascar" },
|
| 192 |
+
{ Iso2: "MW", Iso3: "MWI", Name: "Malawi" },
|
| 193 |
+
{ Iso2: "MY", Iso3: "MYS", Name: "Malaysia" },
|
| 194 |
+
{ Iso2: "MV", Iso3: "MDV", Name: "Maldives" },
|
| 195 |
+
{ Iso2: "ML", Iso3: "MLI", Name: "Mali" },
|
| 196 |
+
{ Iso2: "MT", Iso3: "MLT", Name: "Malta" },
|
| 197 |
+
{ Iso2: "MH", Iso3: "MHL", Name: "Marshall Islands" },
|
| 198 |
+
{ Iso2: "MQ", Iso3: "MTQ", Name: "Martinique" },
|
| 199 |
+
{ Iso2: "MR", Iso3: "MRT", Name: "Mauritania" },
|
| 200 |
+
{ Iso2: "MU", Iso3: "MUS", Name: "Mauritius" },
|
| 201 |
+
{ Iso2: "YT", Iso3: "MYT", Name: "Mayotte" },
|
| 202 |
+
{ Iso2: "MX", Iso3: "MEX", Name: "Mexico" },
|
| 203 |
+
{ Iso2: "FM", Iso3: "FSM", Name: "Micronesia, Federated States of" },
|
| 204 |
+
{ Iso2: "MD", Iso3: "MDA", Name: "Moldova, Republic of" },
|
| 205 |
+
{ Iso2: "MC", Iso3: "MCO", Name: "Monaco" },
|
| 206 |
+
{ Iso2: "MN", Iso3: "MNG", Name: "Mongolia" },
|
| 207 |
+
{ Iso2: "ME", Iso3: "MNE", Name: "Montenegro" },
|
| 208 |
+
{ Iso2: "MS", Iso3: "MSR", Name: "Montserrat" },
|
| 209 |
+
{ Iso2: "MA", Iso3: "MAR", Name: "Morocco" },
|
| 210 |
+
{ Iso2: "MZ", Iso3: "MOZ", Name: "Mozambique" },
|
| 211 |
+
{ Iso2: "MM", Iso3: "MMR", Name: "Myanmar" },
|
| 212 |
+
{ Iso2: "NA", Iso3: "NAM", Name: "Namibia" },
|
| 213 |
+
{ Iso2: "NR", Iso3: "NRU", Name: "Nauru" },
|
| 214 |
+
{ Iso2: "NP", Iso3: "NPL", Name: "Nepal" },
|
| 215 |
+
{ Iso2: "NL", Iso3: "NLD", Name: "Netherlands" },
|
| 216 |
+
{ Iso2: "NC", Iso3: "NCL", Name: "New Caledonia" },
|
| 217 |
+
{ Iso2: "NZ", Iso3: "NZL", Name: "New Zealand" },
|
| 218 |
+
{ Iso2: "NI", Iso3: "NIC", Name: "Nicaragua" },
|
| 219 |
+
{ Iso2: "NE", Iso3: "NER", Name: "Niger" },
|
| 220 |
+
{ Iso2: "NG", Iso3: "NGA", Name: "Nigeria" },
|
| 221 |
+
{ Iso2: "NU", Iso3: "NIU", Name: "Niue" },
|
| 222 |
+
{ Iso2: "NF", Iso3: "NFK", Name: "Norfolk Island" },
|
| 223 |
+
{ Iso2: "MP", Iso3: "MNP", Name: "Northern Mariana Islands" },
|
| 224 |
+
{ Iso2: "NO", Iso3: "NOR", Name: "Norway" },
|
| 225 |
+
{ Iso2: "OM", Iso3: "OMN", Name: "Oman" },
|
| 226 |
+
{ Iso2: "PK", Iso3: "PAK", Name: "Pakistan" },
|
| 227 |
+
{ Iso2: "PW", Iso3: "PLW", Name: "Palau" },
|
| 228 |
+
{ Iso2: "PS", Iso3: "PSE", Name: "Palestinian Territory, Occupied" },
|
| 229 |
+
{ Iso2: "PA", Iso3: "PAN", Name: "Panama" },
|
| 230 |
+
{ Iso2: "PG", Iso3: "PNG", Name: "Papua New Guinea" },
|
| 231 |
+
{ Iso2: "PY", Iso3: "PRY", Name: "Paraguay" },
|
| 232 |
+
{ Iso2: "PE", Iso3: "PER", Name: "Peru" },
|
| 233 |
+
{ Iso2: "PH", Iso3: "PHL", Name: "Philippines" },
|
| 234 |
+
{ Iso2: "PN", Iso3: "PCN", Name: "Pitcairn" },
|
| 235 |
+
{ Iso2: "PL", Iso3: "POL", Name: "Poland" },
|
| 236 |
+
{ Iso2: "PT", Iso3: "PRT", Name: "Portugal" },
|
| 237 |
+
{ Iso2: "PR", Iso3: "PRI", Name: "Puerto Rico" },
|
| 238 |
+
{ Iso2: "QA", Iso3: "QAT", Name: "Qatar" },
|
| 239 |
+
{ Iso2: "RE", Iso3: "REU", Name: "Réunion" },
|
| 240 |
+
{ Iso2: "RO", Iso3: "ROU", Name: "Romania" },
|
| 241 |
+
{ Iso2: "RU", Iso3: "RUS", Name: "Russian Federation" },
|
| 242 |
+
{ Iso2: "RW", Iso3: "RWA", Name: "Rwanda" },
|
| 243 |
+
{ Iso2: "BL", Iso3: "BLM", Name: "Saint Barthélemy" },
|
| 244 |
+
{ Iso2: "SH", Iso3: "SHN", Name: "Saint Helena, Ascension and Tristan da Cunha" },
|
| 245 |
+
{ Iso2: "KN", Iso3: "KNA", Name: "Saint Kitts and Nevis" },
|
| 246 |
+
{ Iso2: "LC", Iso3: "LCA", Name: "Saint Lucia" },
|
| 247 |
+
{ Iso2: "MF", Iso3: "MAF", Name: "Saint Martin (French part)" },
|
| 248 |
+
{ Iso2: "PM", Iso3: "SPM", Name: "Saint Pierre and Miquelon" },
|
| 249 |
+
{ Iso2: "VC", Iso3: "VCT", Name: "Saint Vincent and the Grenadines" },
|
| 250 |
+
{ Iso2: "WS", Iso3: "WSM", Name: "Samoa" },
|
| 251 |
+
{ Iso2: "SM", Iso3: "SMR", Name: "San Marino" },
|
| 252 |
+
{ Iso2: "ST", Iso3: "STP", Name: "Sao Tome and Principe" },
|
| 253 |
+
{ Iso2: "SA", Iso3: "SAU", Name: "Saudi Arabia" },
|
| 254 |
+
{ Iso2: "SN", Iso3: "SEN", Name: "Senegal" },
|
| 255 |
+
{ Iso2: "RS", Iso3: "SRB", Name: "Serbia" },
|
| 256 |
+
{ Iso2: "SC", Iso3: "SYC", Name: "Seychelles" },
|
| 257 |
+
{ Iso2: "SL", Iso3: "SLE", Name: "Sierra Leone" },
|
| 258 |
+
{ Iso2: "SG", Iso3: "SGP", Name: "Singapore" },
|
| 259 |
+
{ Iso2: "SX", Iso3: "SXM", Name: "Sint Maarten (Dutch part)" },
|
| 260 |
+
{ Iso2: "SK", Iso3: "SVK", Name: "Slovakia" },
|
| 261 |
+
{ Iso2: "SI", Iso3: "SVN", Name: "Slovenia" },
|
| 262 |
+
{ Iso2: "SB", Iso3: "SLB", Name: "Solomon Islands" },
|
| 263 |
+
{ Iso2: "SO", Iso3: "SOM", Name: "Somalia" },
|
| 264 |
+
{ Iso2: "ZA", Iso3: "ZAF", Name: "South Africa" },
|
| 265 |
+
{ Iso2: "GS", Iso3: "SGS", Name: "South Georgia and the South Sandwich Islands" },
|
| 266 |
+
{ Iso2: "SS", Iso3: "SSD", Name: "South Sudan" },
|
| 267 |
+
{ Iso2: "ES", Iso3: "ESP", Name: "Spain" },
|
| 268 |
+
{ Iso2: "LK", Iso3: "LKA", Name: "Sri Lanka" },
|
| 269 |
+
{ Iso2: "SD", Iso3: "SDN", Name: "Sudan" },
|
| 270 |
+
{ Iso2: "SR", Iso3: "SUR", Name: "Suriname" },
|
| 271 |
+
{ Iso2: "SJ", Iso3: "SJM", Name: "Svalbard and Jan Mayen" },
|
| 272 |
+
{ Iso2: "SZ", Iso3: "SWZ", Name: "Swaziland" },
|
| 273 |
+
{ Iso2: "SE", Iso3: "SWE", Name: "Sweden" },
|
| 274 |
+
{ Iso2: "CH", Iso3: "CHE", Name: "Switzerland" },
|
| 275 |
+
{ Iso2: "SY", Iso3: "SYR", Name: "Syrian Arab Republic" },
|
| 276 |
+
{ Iso2: "TW", Iso3: "TWN", Name: "Taiwan, Province Of China" },
|
| 277 |
+
{ Iso2: "TJ", Iso3: "TJK", Name: "Tajikistan" },
|
| 278 |
+
{ Iso2: "TZ", Iso3: "TZA", Name: "Tanzania, United Republic Of" },
|
| 279 |
+
{ Iso2: "TH", Iso3: "THA", Name: "Thailand" },
|
| 280 |
+
{ Iso2: "TL", Iso3: "TLS", Name: "Timor-Leste" },
|
| 281 |
+
{ Iso2: "TG", Iso3: "TGO", Name: "Togo" },
|
| 282 |
+
{ Iso2: "TK", Iso3: "TKL", Name: "Tokelau" },
|
| 283 |
+
{ Iso2: "TO", Iso3: "TON", Name: "Tonga" },
|
| 284 |
+
{ Iso2: "TT", Iso3: "TTO", Name: "Trinidad and Tobago" },
|
| 285 |
+
{ Iso2: "TN", Iso3: "TUN", Name: "Tunisia" },
|
| 286 |
+
{ Iso2: "TR", Iso3: "TUR", Name: "Turkey" },
|
| 287 |
+
{ Iso2: "TM", Iso3: "TKM", Name: "Turkmenistan" },
|
| 288 |
+
{ Iso2: "TC", Iso3: "TCA", Name: "Turks and Caicos Islands" },
|
| 289 |
+
{ Iso2: "TV", Iso3: "TUV", Name: "Tuvalu" },
|
| 290 |
+
{ Iso2: "UG", Iso3: "UGA", Name: "Uganda" },
|
| 291 |
+
{ Iso2: "UA", Iso3: "UKR", Name: "Ukraine" },
|
| 292 |
+
{ Iso2: "AE", Iso3: "ARE", Name: "United Arab Emirates", Alternates: ["UAE"] },
|
| 293 |
+
{ Iso2: "GB", Iso3: "GBR", Name: "United Kingdom", Alternates: ["England", "Wales", "Scotland", "Northern Ireland", "Great Britain", "Britain", "UK"] },
|
| 294 |
+
{ Iso2: "US", Iso3: "USA", Name: "United States", Alternates: ["United States of America", "America"] },
|
| 295 |
+
{ Iso2: "UM", Iso3: "UMI", Name: "United States Minor Outlying Islands" },
|
| 296 |
+
{ Iso2: "UY", Iso3: "URY", Name: "Uruguay" },
|
| 297 |
+
{ Iso2: "UZ", Iso3: "UZB", Name: "Uzbekistan" },
|
| 298 |
+
{ Iso2: "VU", Iso3: "VUT", Name: "Vanuatu" },
|
| 299 |
+
{ Iso2: "VE", Iso3: "VEN", Name: "Venezuela, Bolivarian Republic Of" },
|
| 300 |
+
{ Iso2: "VN", Iso3: "VNM", Name: "Viet Nam" },
|
| 301 |
+
{ Iso2: "VG", Iso3: "VGB", Name: "Virgin Islands, British" },
|
| 302 |
+
{ Iso2: "VI", Iso3: "VIR", Name: "Virgin Islands, U.S." },
|
| 303 |
+
{ Iso2: "WF", Iso3: "WLF", Name: "Wallis and Futuna" },
|
| 304 |
+
{ Iso2: "EH", Iso3: "ESH", Name: "Western Sahara" },
|
| 305 |
+
{ Iso2: "YE", Iso3: "YEM", Name: "Yemen" },
|
| 306 |
+
{ Iso2: "ZM", Iso3: "ZMB", Name: "Zambia" },
|
| 307 |
+
{ Iso2: "ZW", Iso3: "ZWE", Name: "Zimbabwe" }
|
| 308 |
+
];
|
| 309 |
+
|
| 310 |
+
//Simplified service call method takes service name as a string, params as an object, success as callback function(response) and error as callback function(message)
|
| 311 |
+
_pca.fetch = function (service, params, success, error) {
|
| 312 |
+
var _script = _pca.create("script"),
|
| 313 |
+
_head = _document.getElementsByTagName("head")[0],
|
| 314 |
+
_url = _protocol + "//" + _host + "/" + service + "/" + _endpoint,
|
| 315 |
+
_params = "";
|
| 316 |
+
|
| 317 |
+
params = params || {};
|
| 318 |
+
success = success || function () { };
|
| 319 |
+
error = error || function () { };
|
| 320 |
+
|
| 321 |
+
for (var i in params)
|
| 322 |
+
_params += (_params ? "&" : "?") + i + "=" + encodeURIComponent(params[i]);
|
| 323 |
+
|
| 324 |
+
_params += "&CallbackVariable=pca.response";
|
| 325 |
+
|
| 326 |
+
_script.src = _url + _params;
|
| 327 |
+
|
| 328 |
+
_script.onload = _script.onreadystatechange = function () {
|
| 329 |
+
if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") {
|
| 330 |
+
_script.onload = _script.onreadystatechange = null;
|
| 331 |
+
if (_head && _script.parentNode)
|
| 332 |
+
_head.removeChild(_script);
|
| 333 |
+
|
| 334 |
+
//Handle the response
|
| 335 |
+
if (_pca.serviceResponse.length === 1 && _pca.serviceResponse[0].Error !== undefined)
|
| 336 |
+
error(_pca.response[0].Description);
|
| 337 |
+
else
|
| 338 |
+
success(_pca.response);
|
| 339 |
+
}
|
| 340 |
+
}
|
| 341 |
+
|
| 342 |
+
_pca.serviceResponse = "";
|
| 343 |
+
_head.insertBefore(_script, _head.firstChild);
|
| 344 |
+
}
|
| 345 |
+
|
| 346 |
+
_pca.Object = function (source) {
|
| 347 |
+
var _this = source || this;
|
| 348 |
+
|
| 349 |
+
_this.listeners = {};
|
| 350 |
+
|
| 351 |
+
//Listens to a PCA event
|
| 352 |
+
_this.listen = function (event, action) {
|
| 353 |
+
_this.listeners[event] = _this.listeners[event] || [];
|
| 354 |
+
_this.listeners[event].push(action);
|
| 355 |
+
}
|
| 356 |
+
|
| 357 |
+
//Fires an event
|
| 358 |
+
_this.fire = function (event, data) {
|
| 359 |
+
if (_this.listeners[event]) {
|
| 360 |
+
for (var i = 0; i < _this.listeners[event].length; i++)
|
| 361 |
+
_this.listeners[event][i](data);
|
| 362 |
+
}
|
| 363 |
+
}
|
| 364 |
+
|
| 365 |
+
return _this;
|
| 366 |
+
}
|
| 367 |
+
|
| 368 |
+
//A list object to display multiple results and select with filtering and sorting
|
| 369 |
+
_pca.List = function () {
|
| 370 |
+
var _list = new _pca.Object();
|
| 371 |
+
|
| 372 |
+
_list.element = _pca.create("div", { className: "pcalist" });
|
| 373 |
+
_list.defaultClass = "pcalistitem pcadisableselect";
|
| 374 |
+
_list.items = [];
|
| 375 |
+
_list.count = 0;
|
| 376 |
+
_list.selected = null;
|
| 377 |
+
_list.scroll = {
|
| 378 |
+
held: false,
|
| 379 |
+
moved: false,
|
| 380 |
+
origin: 0,
|
| 381 |
+
position: 0,
|
| 382 |
+
x: 0,
|
| 383 |
+
y: 0,
|
| 384 |
+
dx: 0,
|
| 385 |
+
dy: 0
|
| 386 |
+
}
|
| 387 |
+
|
| 388 |
+
//Add a single item to the list
|
| 389 |
+
_list.add = function (data, format, callback) {
|
| 390 |
+
|
| 391 |
+
function addItem(item) {
|
| 392 |
+
var _item = new _pca.Object(),
|
| 393 |
+
_text = _pca.formatLine(item, format);
|
| 394 |
+
|
| 395 |
+
_item.element = _pca.create("li", { innerHTML: _text, className: _list.defaultClass });
|
| 396 |
+
_item.data = item;
|
| 397 |
+
_item.text = _text;
|
| 398 |
+
_item.tag = _pca.formatTag(_text);
|
| 399 |
+
_item.filter = false;
|
| 400 |
+
|
| 401 |
+
_item.select = function () {
|
| 402 |
+
if (!_list.scroll.moved) _list.select(_item.data, callback);
|
| 403 |
+
}
|
| 404 |
+
|
| 405 |
+
_item.highlight = function () {
|
| 406 |
+
_list.highlight(_item.element);
|
| 407 |
+
}
|
| 408 |
+
|
| 409 |
+
_pca.listen(_item.element, "mouseover", _item.highlight);
|
| 410 |
+
_pca.listen(_item.element, "click", _item.select);
|
| 411 |
+
_pca.listen(_item.element, "mousedown", _list.mouseDown);
|
| 412 |
+
|
| 413 |
+
_list.element.appendChild(_item.element);
|
| 414 |
+
_list.items.push(_item);
|
| 415 |
+
|
| 416 |
+
return _item;
|
| 417 |
+
}
|
| 418 |
+
|
| 419 |
+
//If the object is an array then add all of the items, otherwise just add the item
|
| 420 |
+
if (data.constructor == Array) {
|
| 421 |
+
for (var i = 0; i < data.length; i++)
|
| 422 |
+
addItem(data[i]);
|
| 423 |
+
}
|
| 424 |
+
else
|
| 425 |
+
addItem(data);
|
| 426 |
+
|
| 427 |
+
_list.count = _list.element.childNodes.length;
|
| 428 |
+
|
| 429 |
+
return _list;
|
| 430 |
+
}
|
| 431 |
+
|
| 432 |
+
//Clears the list and then populates the item(s)
|
| 433 |
+
_list.populate = function (data, format, callback) {
|
| 434 |
+
_list.clear();
|
| 435 |
+
_list.add(data, format, callback);
|
| 436 |
+
return _list;
|
| 437 |
+
}
|
| 438 |
+
|
| 439 |
+
//Redraws the list, usually done when items have changed, been sorted or filtered
|
| 440 |
+
_list.draw = function () {
|
| 441 |
+
while (_list.element.childNodes.length)
|
| 442 |
+
_list.element.removeChild(_list.element.childNodes[0]);
|
| 443 |
+
|
| 444 |
+
_list.count = 0;
|
| 445 |
+
_list.selectedItem = null;
|
| 446 |
+
|
| 447 |
+
for (var i = 0; i < _list.items.length; i++) {
|
| 448 |
+
if (!_list.items[i].filter) {
|
| 449 |
+
_list.element.appendChild(_list.items[i].element);
|
| 450 |
+
_list.count++;
|
| 451 |
+
}
|
| 452 |
+
}
|
| 453 |
+
|
| 454 |
+
return _list;
|
| 455 |
+
}
|
| 456 |
+
|
| 457 |
+
_list.select = function (item, callback) {
|
| 458 |
+
callback(item);
|
| 459 |
+
|
| 460 |
+
return _list;
|
| 461 |
+
}
|
| 462 |
+
|
| 463 |
+
_list.filter = function (pattern, beginning) {
|
| 464 |
+
var _pattern = _pca.formatTag(pattern);
|
| 465 |
+
|
| 466 |
+
for (var i = 0; i < _list.items.length; i++)
|
| 467 |
+
_list.items[i].filter = beginning ? _list.items[i].tag.substring(0, _pattern.length) != _pattern : ! ~_list.items[i].tag.indexOf(_pattern);
|
| 468 |
+
|
| 469 |
+
_list.fire("filter", pattern);
|
| 470 |
+
|
| 471 |
+
return _list;
|
| 472 |
+
}
|
| 473 |
+
|
| 474 |
+
_list.sort = function (reverse, field) {
|
| 475 |
+
var _field = field || "Text";
|
| 476 |
+
|
| 477 |
+
if (_list[_field])
|
| 478 |
+
_list.items.sort(function (a, b) { return (reverse ? a[_field] > b[_field] : a[_field] < b[_field]) });
|
| 479 |
+
else
|
| 480 |
+
_list.items.sort(function (a, b) { return (reverse ? a.data[_field] > b.data[_field] : a.data[_field] < b.data[_field]) });
|
| 481 |
+
|
| 482 |
+
_list.fire("sort");
|
| 483 |
+
|
| 484 |
+
return _list;
|
| 485 |
+
}
|
| 486 |
+
|
| 487 |
+
_list.clear = function () {
|
| 488 |
+
_list.items = [];
|
| 489 |
+
_list.selectedItem = null;
|
| 490 |
+
|
| 491 |
+
while (_list.element.childNodes.length)
|
| 492 |
+
_list.element.removeChild(_list.element.childNodes[0]);
|
| 493 |
+
|
| 494 |
+
_list.count = 0;
|
| 495 |
+
_list.hide();
|
| 496 |
+
_list.fire("clear");
|
| 497 |
+
|
| 498 |
+
return _list;
|
| 499 |
+
}
|
| 500 |
+
|
| 501 |
+
_list.setScroll = function (position) {
|
| 502 |
+
_list.element.scrollTop = position;
|
| 503 |
+
}
|
| 504 |
+
|
| 505 |
+
//Mouse events
|
| 506 |
+
_list.mouseDown = function (event) {
|
| 507 |
+
var _event = event || window.event;
|
| 508 |
+
|
| 509 |
+
_list.scroll.held = true;
|
| 510 |
+
_list.scroll.moved = false;
|
| 511 |
+
_list.scroll.origin = parseInt(_list.element.scrollTop);
|
| 512 |
+
_list.scroll.y = parseInt(_event.screenY);
|
| 513 |
+
}
|
| 514 |
+
|
| 515 |
+
_list.mouseOut = function () {
|
| 516 |
+
_list.scroll.held = false;
|
| 517 |
+
}
|
| 518 |
+
|
| 519 |
+
_list.mouseUp = function () {
|
| 520 |
+
_list.scroll.held = false;
|
| 521 |
+
}
|
| 522 |
+
|
| 523 |
+
_list.mouseMove = function (event) {
|
| 524 |
+
if (_list.scroll.held) {
|
| 525 |
+
var _event = event || window.event;
|
| 526 |
+
|
| 527 |
+
_list.scroll.dy = _list.scroll.y - parseInt(_event.screenY);
|
| 528 |
+
_list.scroll.position = _list.scroll.origin + _list.scroll.dy;
|
| 529 |
+
_list.setScroll(_list.scroll.position);
|
| 530 |
+
_list.scroll.moved = true;
|
| 531 |
+
_event.returnValue = false;
|
| 532 |
+
}
|
| 533 |
+
}
|
| 534 |
+
|
| 535 |
+
//Touch events
|
| 536 |
+
_list.touchStart = function (event) {
|
| 537 |
+
var _event = event || window.event;
|
| 538 |
+
|
| 539 |
+
_list.scroll.held = true;
|
| 540 |
+
_list.scroll.moved = false;
|
| 541 |
+
_list.scroll.origin = parseInt(_list.scrollTop);
|
| 542 |
+
_list.scroll.y = parseInt(_event.touches[0].pageY);
|
| 543 |
+
}
|
| 544 |
+
|
| 545 |
+
_list.touchEnd = function () {
|
| 546 |
+
_list.scroll.held = false;
|
| 547 |
+
}
|
| 548 |
+
|
| 549 |
+
_list.touchCancel = function () {
|
| 550 |
+
_list.scroll.held = false;
|
| 551 |
+
}
|
| 552 |
+
|
| 553 |
+
_list.touchMove = function (event) {
|
| 554 |
+
if (_list.scroll.held) {
|
| 555 |
+
var _event = event || window.event;
|
| 556 |
+
|
| 557 |
+
//Disable Gecko and Webkit image drag
|
| 558 |
+
if (_event.preventDefault)
|
| 559 |
+
_event.preventDefault();
|
| 560 |
+
|
| 561 |
+
_list.scroll.dy = _list.scroll.y - parseInt(_event.touches[0].pageY);
|
| 562 |
+
_list.scroll.position = _list.scroll.origin + _list.scroll.dy;
|
| 563 |
+
_list.setScroll(_list.scroll.position);
|
| 564 |
+
_list.scroll.moved = true;
|
| 565 |
+
_event.returnValue = false;
|
| 566 |
+
}
|
| 567 |
+
}
|
| 568 |
+
|
| 569 |
+
//Keyboard events
|
| 570 |
+
_list.keySelect = function (key) {
|
| 571 |
+
switch (key) {
|
| 572 |
+
case 40: //Down
|
| 573 |
+
if (!_list.selectedItem)
|
| 574 |
+
_list.selectFirst();
|
| 575 |
+
else
|
| 576 |
+
_list.selectNext();
|
| 577 |
+
return true;
|
| 578 |
+
case 38: //Up
|
| 579 |
+
if (!_list.selectedItem)
|
| 580 |
+
_list.selectLast();
|
| 581 |
+
else
|
| 582 |
+
_list.selectPrevious();
|
| 583 |
+
return true;
|
| 584 |
+
case 13: //Enter/Return
|
| 585 |
+
if (_list.selectedItem) {
|
| 586 |
+
for (var i = 0; i < _list.items.length; i++) {
|
| 587 |
+
if (_list.items[i].element == _list.selectedItem) {
|
| 588 |
+
_list.items[i].select();
|
| 589 |
+
break;
|
| 590 |
+
}
|
| 591 |
+
}
|
| 592 |
+
}
|
| 593 |
+
return true;
|
| 594 |
+
case 27: //Escape
|
| 595 |
+
_list.hide();
|
| 596 |
+
return true;
|
| 597 |
+
}
|
| 598 |
+
|
| 599 |
+
return false;
|
| 600 |
+
}
|
| 601 |
+
|
| 602 |
+
_list.selectFirst = function () {
|
| 603 |
+
if (_list.element.childNodes.length)
|
| 604 |
+
_list.highlight(_list.element.childNodes[0], true);
|
| 605 |
+
}
|
| 606 |
+
|
| 607 |
+
_list.selectLast = function () {
|
| 608 |
+
if (_list.element.childNodes.length)
|
| 609 |
+
_list.highlight(_list.element.childNodes[_list.element.childNodes.length - 1], true);
|
| 610 |
+
}
|
| 611 |
+
|
| 612 |
+
_list.selectNext = function () {
|
| 613 |
+
if (_list.selectedItem && _list.selectedItem.nextSibling)
|
| 614 |
+
_list.highlight(_list.selectedItem.nextSibling, true);
|
| 615 |
+
else
|
| 616 |
+
_list.selectFirst();
|
| 617 |
+
}
|
| 618 |
+
|
| 619 |
+
_list.selectPrevious = function () {
|
| 620 |
+
if (_list.selectedItem && _list.selectedItem.previousSibling)
|
| 621 |
+
_list.highlight(_list.selectedItem.previousSibling, true);
|
| 622 |
+
else
|
| 623 |
+
_list.selectLast();
|
| 624 |
+
}
|
| 625 |
+
|
| 626 |
+
_list.highlight = function (element, scrollTo) {
|
| 627 |
+
if (_list.selectedItem)
|
| 628 |
+
_list.selectedItem.className = _list.defaultClass;
|
| 629 |
+
|
| 630 |
+
element.className = _list.defaultClass + " pcaselected";
|
| 631 |
+
_list.selectedItem = element;
|
| 632 |
+
|
| 633 |
+
if (scrollTo) _list.scrollToItem(element);
|
| 634 |
+
|
| 635 |
+
return _list;
|
| 636 |
+
}
|
| 637 |
+
|
| 638 |
+
_list.scrollToItem = function (element) {
|
| 639 |
+
_list.scroll.position = _list.element.scrollTop;
|
| 640 |
+
|
| 641 |
+
if (element.offsetTop < _list.scroll.position) {
|
| 642 |
+
_list.scroll.position = element.offsetTop;
|
| 643 |
+
_list.setScroll(_list.scroll.position);
|
| 644 |
+
}
|
| 645 |
+
else {
|
| 646 |
+
if (element.offsetTop + element.offsetHeight > _list.scroll.position + _list.element.offsetHeight) {
|
| 647 |
+
_list.scroll.position = element.offsetTop + element.offsetHeight - _list.element.offsetHeight;
|
| 648 |
+
_list.setScroll(_list.scroll.position);
|
| 649 |
+
}
|
| 650 |
+
}
|
| 651 |
+
|
| 652 |
+
return _list;
|
| 653 |
+
}
|
| 654 |
+
|
| 655 |
+
_pca.listen(_document, "mouseup", _list.mouseUp);
|
| 656 |
+
_pca.listen(_document, "mousemove", _list.mouseMove);
|
| 657 |
+
|
| 658 |
+
_pca.listen(_list.element, "touchstart", _list.touchStart);
|
| 659 |
+
_pca.listen(_list.element, "touchmove", _list.touchMove);
|
| 660 |
+
_pca.listen(_list.element, "touchend", _list.touchEnd);
|
| 661 |
+
_pca.listen(_list.element, "touchcancel", _list.touchCancel);
|
| 662 |
+
|
| 663 |
+
return _list;
|
| 664 |
+
}
|
| 665 |
+
|
| 666 |
+
//Creates an autocomplete which filters on the field value
|
| 667 |
+
//Inherits from list
|
| 668 |
+
_pca.AutoComplete = function (field, filterBeginning) {
|
| 669 |
+
var _autocomplete = new _pca.List(),
|
| 670 |
+
_anchor = _pca.create("table", { className: "pcaautocomplete pcatext", cellPadding: 0, cellSpacing: 0 }),
|
| 671 |
+
_chain = [_anchor.insertRow(0).insertCell(0), _anchor.insertRow(1).insertCell(0)];
|
| 672 |
+
|
| 673 |
+
_autocomplete.field = null;
|
| 674 |
+
_autocomplete.visible = false;
|
| 675 |
+
_autocomplete.mouseover = false;
|
| 676 |
+
_autocomplete.focus = false;
|
| 677 |
+
|
| 678 |
+
_autocomplete.anchor = function (field) {
|
| 679 |
+
_autocomplete.field = _pca.getInput(field);
|
| 680 |
+
|
| 681 |
+
_autocomplete.field.parentNode.insertBefore(_anchor, _autocomplete.field);
|
| 682 |
+
_chain[0].appendChild(_autocomplete.field);
|
| 683 |
+
_chain[1].appendChild(_autocomplete.element);
|
| 684 |
+
|
| 685 |
+
_pca.listen(_autocomplete.field, "keyup", _autocomplete.keyup);
|
| 686 |
+
_pca.listen(_autocomplete.field, "focus", _autocomplete.focused);
|
| 687 |
+
_pca.listen(_autocomplete.field, "blur", _autocomplete.blurred);
|
| 688 |
+
|
| 689 |
+
return _autocomplete;
|
| 690 |
+
}
|
| 691 |
+
|
| 692 |
+
_autocomplete.show = function () {
|
| 693 |
+
if (_autocomplete.count) {
|
| 694 |
+
_autocomplete.visible = true;
|
| 695 |
+
_autocomplete.element.style.display = "";
|
| 696 |
+
_autocomplete.setScroll(0);
|
| 697 |
+
}
|
| 698 |
+
return _autocomplete;
|
| 699 |
+
}
|
| 700 |
+
|
| 701 |
+
_autocomplete.hide = function () {
|
| 702 |
+
_autocomplete.visible = false;
|
| 703 |
+
_autocomplete.element.style.display = "none";
|
| 704 |
+
return _autocomplete;
|
| 705 |
+
}
|
| 706 |
+
|
| 707 |
+
_autocomplete.focused = function () {
|
| 708 |
+
_autocomplete.focus = true;
|
| 709 |
+
_autocomplete.show();
|
| 710 |
+
}
|
| 711 |
+
|
| 712 |
+
_autocomplete.blurred = function () {
|
| 713 |
+
_autocomplete.focus = false;
|
| 714 |
+
|
| 715 |
+
if (!_autocomplete.mouseover)
|
| 716 |
+
_autocomplete.hide();
|
| 717 |
+
}
|
| 718 |
+
|
| 719 |
+
_autocomplete.select = function (item, callback) {
|
| 720 |
+
callback(item);
|
| 721 |
+
return _autocomplete;
|
| 722 |
+
}
|
| 723 |
+
|
| 724 |
+
_autocomplete.keyup = function (event) {
|
| 725 |
+
var _key = window.event ? window.event.keyCode : event.which;
|
| 726 |
+
|
| 727 |
+
if (_autocomplete.visible) {
|
| 728 |
+
if (!_autocomplete.keySelect(_key)) {
|
| 729 |
+
_autocomplete.filter(_pca.getValue(_autocomplete.field), filterBeginning).draw();
|
| 730 |
+
if (!_autocomplete.count) _autocomplete.hide();
|
| 731 |
+
_autocomplete.fire("keyup", _key);
|
| 732 |
+
}
|
| 733 |
+
}
|
| 734 |
+
else if (_key == 40) //Key down to show list
|
| 735 |
+
_autocomplete.show();
|
| 736 |
+
else if (_key == 8 || _key == 46) //Backspace or Delete
|
| 737 |
+
_autocomplete.filter(_pca.getValue(_autocomplete.field), filterBeginning).draw().show();
|
| 738 |
+
else
|
| 739 |
+
_autocomplete.fire("keyup", _key);
|
| 740 |
+
}
|
| 741 |
+
|
| 742 |
+
if (field) _autocomplete.anchor(field);
|
| 743 |
+
_pca.listen(_anchor, "mouseover", function () { _autocomplete.mouseover = true });
|
| 744 |
+
_pca.listen(_anchor, "mouseout", function () { _autocomplete.mouseover = false });
|
| 745 |
+
_autocomplete.hide();
|
| 746 |
+
|
| 747 |
+
return _autocomplete;
|
| 748 |
+
}
|
| 749 |
+
|
| 750 |
+
//Creates a modal popup window to display results
|
| 751 |
+
//Inherits from list
|
| 752 |
+
_pca.Modal = function () {
|
| 753 |
+
var _modal = new _pca.List(),
|
| 754 |
+
_mask = _pca.create("div", { className: "pcamask pcafullscreen" }),
|
| 755 |
+
_container = _pca.create("div", { className: "pcamodal pcatext" }),
|
| 756 |
+
_border = _pca.create("div", { className: "pcaborder" }),
|
| 757 |
+
_background = _pca.create("div", { className: "pcabackground" });
|
| 758 |
+
|
| 759 |
+
_modal.visible = false;
|
| 760 |
+
|
| 761 |
+
_modal.show = function () {
|
| 762 |
+
_mask.style.display = "";
|
| 763 |
+
_container.style.display = "";
|
| 764 |
+
_container.visible = true;
|
| 765 |
+
_modal.centre();
|
| 766 |
+
_modal.setScroll(0);
|
| 767 |
+
return _modal;
|
| 768 |
+
}
|
| 769 |
+
|
| 770 |
+
_modal.hide = function () {
|
| 771 |
+
_mask.style.display = "none";
|
| 772 |
+
_container.style.display = "none";
|
| 773 |
+
_container.visible = false;
|
| 774 |
+
return _modal;
|
| 775 |
+
}
|
| 776 |
+
|
| 777 |
+
//position the modal popup in the centre of the window
|
| 778 |
+
_modal.centre = function () {
|
| 779 |
+
_container.style.left = (Math.max(_document.documentElement.clientWidth, _document.body.scrollWidth, _document.body.offsetWidth) / 2) - (_container.offsetWidth / 2) + "px";
|
| 780 |
+
_container.style.top = (Math.max(_document.documentElement.clientHeight, _document.body.scrollHeight, _document.body.offsetHeight) / 2) - (_container.offsetHeight / 2) + "px";
|
| 781 |
+
return _modal;
|
| 782 |
+
}
|
| 783 |
+
|
| 784 |
+
_modal.select = function (item, callback) {
|
| 785 |
+
callback(item);
|
| 786 |
+
return _modal;
|
| 787 |
+
}
|
| 788 |
+
|
| 789 |
+
_document.body.appendChild(_mask);
|
| 790 |
+
_document.body.appendChild(_container);
|
| 791 |
+
_container.appendChild(_border);
|
| 792 |
+
_container.appendChild(_background);
|
| 793 |
+
_background.appendChild(_modal.element);
|
| 794 |
+
|
| 795 |
+
_pca.listen(_mask, "click", _modal.hide);
|
| 796 |
+
_modal.hide();
|
| 797 |
+
|
| 798 |
+
return _modal;
|
| 799 |
+
}
|
| 800 |
+
|
| 801 |
+
//Creates a select list with countries in
|
| 802 |
+
_pca.CountryAutoComplete = function (options) {
|
| 803 |
+
var _countryAutoComplete = new _pca.AutoComplete(options.field, true);
|
| 804 |
+
|
| 805 |
+
_countryAutoComplete.select = function (country) {
|
| 806 |
+
pca.setValue(pca.getInput(_countryAutoComplete.field), country.Name);
|
| 807 |
+
_countryAutoComplete.hide();
|
| 808 |
+
}
|
| 809 |
+
|
| 810 |
+
_countryAutoComplete.populate = function (filter) {
|
| 811 |
+
var _filter = typeof (filter) == "string" && filter ? filter.split(",") : filter || [];
|
| 812 |
+
|
| 813 |
+
if (_filter.length) {
|
| 814 |
+
for (var i = 0; i < _filter.length; i++) {
|
| 815 |
+
for (var c = 0; c < _pca.countries.length; c++) {
|
| 816 |
+
if (_filter[i] == _pca.countries[c].Iso3)
|
| 817 |
+
_countryAutoComplete.add(_pca.countries[c], "{Name}", _countryAutoComplete.select);
|
| 818 |
+
}
|
| 819 |
+
}
|
| 820 |
+
}
|
| 821 |
+
else {
|
| 822 |
+
for (var c = 0; c < _pca.countries.length; c++)
|
| 823 |
+
_countryAutoComplete.add(_pca.countries[c], "{Name}", _countryAutoComplete.select);
|
| 824 |
+
}
|
| 825 |
+
|
| 826 |
+
return _countryAutoComplete;
|
| 827 |
+
}
|
| 828 |
+
|
| 829 |
+
_countryAutoComplete.populate(options.filter);
|
| 830 |
+
|
| 831 |
+
return _countryAutoComplete;
|
| 832 |
+
}
|
| 833 |
+
|
| 834 |
+
//Creates a select list, can be used to select country or address options
|
| 835 |
+
_pca.Select = function () {
|
| 836 |
+
var _select = new _pca.Object();
|
| 837 |
+
|
| 838 |
+
_select.element = _pca.create("select", { className: "pcaselect" });
|
| 839 |
+
_select.callback = typeof callback == 'function' ? callback : function () { };
|
| 840 |
+
|
| 841 |
+
_select.populate = function (data, textFormat, valueFormat) {
|
| 842 |
+
for (var i = 0; i < data.length; i++)
|
| 843 |
+
_select.add(data[i], textFormat, valueFormat);
|
| 844 |
+
|
| 845 |
+
return _select;
|
| 846 |
+
}
|
| 847 |
+
|
| 848 |
+
_select.add = function (item, textFormat, valueFormat) {
|
| 849 |
+
_select.element.options.add(new Option(_pca.formatLine(item, textFormat), _pca.formatLine(item, valueFormat)));
|
| 850 |
+
return _select;
|
| 851 |
+
}
|
| 852 |
+
|
| 853 |
+
_select.clear = function () {
|
| 854 |
+
_select.element.options.length = 0;
|
| 855 |
+
return _select;
|
| 856 |
+
}
|
| 857 |
+
|
| 858 |
+
_select.select = function (value) {
|
| 859 |
+
for (var i = 0; i < _select.element.options.length; i++) {
|
| 860 |
+
if (_select.element.options[i].value == value || _select.element.options[i].text == value) {
|
| 861 |
+
_select.element.selectedIndex = i;
|
| 862 |
+
break;
|
| 863 |
+
}
|
| 864 |
+
}
|
| 865 |
+
|
| 866 |
+
return _select;
|
| 867 |
+
}
|
| 868 |
+
|
| 869 |
+
_select.reset = function () {
|
| 870 |
+
_select.element.selectedIndex = 0;
|
| 871 |
+
return _select;
|
| 872 |
+
}
|
| 873 |
+
|
| 874 |
+
_select.selectedValue = function () {
|
| 875 |
+
return _select.element.options[_select.element.selectedIndex].value;
|
| 876 |
+
}
|
| 877 |
+
|
| 878 |
+
_select.selectedText = function () {
|
| 879 |
+
return _select.element.options[_select.element.selectedIndex].text;
|
| 880 |
+
}
|
| 881 |
+
|
| 882 |
+
_pca.listen(_select.element, 'change', function () { _select.fire("change", _select.selectedValue); });
|
| 883 |
+
|
| 884 |
+
return _select;
|
| 885 |
+
}
|
| 886 |
+
|
| 887 |
+
//Creates a select list with countries in
|
| 888 |
+
_pca.CountrySelect = function (options) {
|
| 889 |
+
var _countrySelect = new _pca.Select();
|
| 890 |
+
|
| 891 |
+
_countrySelect.field = null;
|
| 892 |
+
_countrySelect.format = options.format || _pca.CountryNameType.FullName;
|
| 893 |
+
|
| 894 |
+
_countrySelect.selectedCountry = function () {
|
| 895 |
+
return _pca.getCountry(_countrySelect.selectedValue());
|
| 896 |
+
}
|
| 897 |
+
|
| 898 |
+
_countrySelect.updateField = function () {
|
| 899 |
+
_pca.setValue(_countrySelect.field, _countrySelect.selectedCountry()[_countrySelect.format]);
|
| 900 |
+
|
| 901 |
+
return _countrySelect;
|
| 902 |
+
}
|
| 903 |
+
|
| 904 |
+
_countrySelect.syncCountry = function (value) {
|
| 905 |
+
_countrySelect.select(_pca.getCountry(value).Iso3);
|
| 906 |
+
_countrySelect.updateField();
|
| 907 |
+
|
| 908 |
+
return _countrySelect;
|
| 909 |
+
}
|
| 910 |
+
|
| 911 |
+
_countrySelect.populate = function (filter) {
|
| 912 |
+
var _filter = typeof (filter) == "string" && filter ? filter.split(",") : filter || [];
|
| 913 |
+
|
| 914 |
+
if (_filter.length) {
|
| 915 |
+
for (var i = 0; i < _filter.length; i++) {
|
| 916 |
+
for (var c = 0; c < _pca.countries.length; c++) {
|
| 917 |
+
if (_filter[i] == _pca.countries[c].Iso3)
|
| 918 |
+
_countrySelect.add(_pca.countries[c], "{Name}", "{Iso3}");
|
| 919 |
+
}
|
| 920 |
+
}
|
| 921 |
+
}
|
| 922 |
+
else {
|
| 923 |
+
for (var c = 0; c < _pca.countries.length; c++)
|
| 924 |
+
_countrySelect.add(_pca.countries[c], "{Name}", "{Iso3}");
|
| 925 |
+
}
|
| 926 |
+
|
| 927 |
+
return _countrySelect;
|
| 928 |
+
}
|
| 929 |
+
|
| 930 |
+
_countrySelect.replace = function (field) {
|
| 931 |
+
_countrySelect.field = _pca.getInput(field);
|
| 932 |
+
_countrySelect.field.parentNode.insertBefore(_countrySelect.element, _countrySelect.field);
|
| 933 |
+
_countrySelect.field.style.display = "none";
|
| 934 |
+
|
| 935 |
+
_countrySelect.syncCountry(_pca.getValue(_countrySelect.field))
|
| 936 |
+
|
| 937 |
+
_countrySelect.listen('change', _countrySelect.updateField)
|
| 938 |
+
|
| 939 |
+
return _countrySelect;
|
| 940 |
+
}
|
| 941 |
+
|
| 942 |
+
_countrySelect.populate(options.filter);
|
| 943 |
+
if (options.field) _countrySelect.replace(options.field);
|
| 944 |
+
|
| 945 |
+
return _countrySelect;
|
| 946 |
+
}
|
| 947 |
+
|
| 948 |
+
//Draw an advanced search form with the given fields, calls the callback with the field values
|
| 949 |
+
_pca.Advanced = function (fields, callback) {
|
| 950 |
+
var _form = new _pca.Object();
|
| 951 |
+
|
| 952 |
+
_form.element = _pca.create("div", { className: "pcaform" });
|
| 953 |
+
|
| 954 |
+
//draw fields
|
| 955 |
+
|
| 956 |
+
//add button for search
|
| 957 |
+
}
|
| 958 |
+
|
| 959 |
+
//Draw a confirmation window, calls the callback upon confirmation
|
| 960 |
+
_pca.Confirm = function (html, callback) {
|
| 961 |
+
var _confirm = new _pca.Object();
|
| 962 |
+
|
| 963 |
+
_confirm.element = _pca.create("div", { className: "pcaconfirm" });
|
| 964 |
+
|
| 965 |
+
//draw the html
|
| 966 |
+
|
| 967 |
+
//add button for confirm and cancel
|
| 968 |
+
}
|
| 969 |
+
|
| 970 |
+
//Create a command button
|
| 971 |
+
_pca.Button = function (text, func) {
|
| 972 |
+
var _button = new _pca.Object();
|
| 973 |
+
|
| 974 |
+
_button.element = _pca.create("input", { type: "button", value: text, className: "pcatext pcabutton pcagradient", onclick: func });
|
| 975 |
+
|
| 976 |
+
return _button;
|
| 977 |
+
}
|
| 978 |
+
|
| 979 |
+
//Create a command link
|
| 980 |
+
_pca.Link = function (text, func) {
|
| 981 |
+
var _link = new _pca.Object();
|
| 982 |
+
|
| 983 |
+
_link.element = _pca.create("a", { innerHTML: text, onclick: func, className: "pcatext pcalink" });
|
| 984 |
+
|
| 985 |
+
return _link;
|
| 986 |
+
}
|
| 987 |
+
|
| 988 |
+
//Formats a line by replacing tags in the form {Property} with the corresponding property value or method result from the item object
|
| 989 |
+
_pca.formatLine = function (item, format) {
|
| 990 |
+
return format.replace(/\{(\w+)\}/g, function (m, c) { return (typeof item[c] == 'function' ? item[c]() : item[c]) || ""; });
|
| 991 |
+
}
|
| 992 |
+
|
| 993 |
+
//Formats a line into a simplified tag for filtering
|
| 994 |
+
_pca.formatTag = function (line) {
|
| 995 |
+
return _pca.replaceList(_pca.replaceList((line || "").toUpperCase(), _pca.diacritics), _pca.synonyms);
|
| 996 |
+
}
|
| 997 |
+
|
| 998 |
+
//Performs all replacements in a list
|
| 999 |
+
_pca.replaceList = function (line, list) {
|
| 1000 |
+
for (var i = 0; i < list.length; i++)
|
| 1001 |
+
line = line.replace(list[i].r, list[i].w);
|
| 1002 |
+
return line;
|
| 1003 |
+
}
|
| 1004 |
+
|
| 1005 |
+
//Gets the first words from a string
|
| 1006 |
+
_pca.getText = function (line) {
|
| 1007 |
+
return /[a-zA-Z][a-zA-Z\s]+[a-zA-Z]/.exec(line);
|
| 1008 |
+
}
|
| 1009 |
+
|
| 1010 |
+
//Gets the first number from a string
|
| 1011 |
+
_pca.getNumber = function (line) {
|
| 1012 |
+
return /\d+/.exec(line);
|
| 1013 |
+
}
|
| 1014 |
+
|
| 1015 |
+
//Merges one objects properties into another
|
| 1016 |
+
_pca.merge = function (source, destination) {
|
| 1017 |
+
for (var i in source)
|
| 1018 |
+
if (!destination[i]) destination[i] = source[i];
|
| 1019 |
+
}
|
| 1020 |
+
|
| 1021 |
+
//Gets the country name from
|
| 1022 |
+
_pca.getCountry = function (reference) {
|
| 1023 |
+
if (!reference || typeof reference != 'string')
|
| 1024 |
+
return "";
|
| 1025 |
+
|
| 1026 |
+
reference = reference.toUpperCase();
|
| 1027 |
+
|
| 1028 |
+
for (var i = 0; i < _pca.countries.length; i++) {
|
| 1029 |
+
var country = _pca.countries[i];
|
| 1030 |
+
|
| 1031 |
+
if (reference == country.Iso2.toUpperCase() || reference == country.Iso3.toUpperCase() || reference == country.Name.toUpperCase())
|
| 1032 |
+
return country;
|
| 1033 |
+
else if (country.Alternates) {
|
| 1034 |
+
for (var a = 0; a < country.Alternates.length; a++) {
|
| 1035 |
+
if (reference == country.Alternates[a].toUpperCase())
|
| 1036 |
+
return country;
|
| 1037 |
+
}
|
| 1038 |
+
}
|
| 1039 |
+
}
|
| 1040 |
+
}
|
| 1041 |
+
|
| 1042 |
+
//Find a DOM element from a pca reference
|
| 1043 |
+
_pca.getInput = function (reference, base) {
|
| 1044 |
+
var _tags = ['input', 'textarea', 'select'],
|
| 1045 |
+
_matches = [],
|
| 1046 |
+
_base = base || _document,
|
| 1047 |
+
_exact = null;
|
| 1048 |
+
|
| 1049 |
+
if (!reference || reference == "")
|
| 1050 |
+
return null;
|
| 1051 |
+
|
| 1052 |
+
if (reference.tagName) {
|
| 1053 |
+
for (var t = 0; t < _tags.length; t++) {
|
| 1054 |
+
if (reference.tagName == _tags[t].toUpperCase())
|
| 1055 |
+
return reference;
|
| 1056 |
+
}
|
| 1057 |
+
}
|
| 1058 |
+
|
| 1059 |
+
_exact = _base.getElementById(reference);
|
| 1060 |
+
|
| 1061 |
+
if (_exact)
|
| 1062 |
+
return _exact;
|
| 1063 |
+
|
| 1064 |
+
for (var t = 0; t < _tags.length; t++) {
|
| 1065 |
+
var _fields = _base.getElementsByTagName(_tags[t]);
|
| 1066 |
+
|
| 1067 |
+
for (var f in _fields) {
|
| 1068 |
+
var _id = _fields[f].id || "",
|
| 1069 |
+
_name = _fields[f].name || "";
|
| 1070 |
+
|
| 1071 |
+
if (_fields[f] == reference)
|
| 1072 |
+
return _fields[f];
|
| 1073 |
+
else if (typeof (reference) == 'string' && _id) {
|
| 1074 |
+
if (_id == reference)
|
| 1075 |
+
return _fields[f];
|
| 1076 |
+
|
| 1077 |
+
if (_id.indexOf(reference) > 0)
|
| 1078 |
+
_matches.push(_fields[f]);
|
| 1079 |
+
}
|
| 1080 |
+
else if (typeof (reference) == 'string' && _name) {
|
| 1081 |
+
if (_name == reference)
|
| 1082 |
+
return _fields[f];
|
| 1083 |
+
}
|
| 1084 |
+
}
|
| 1085 |
+
}
|
| 1086 |
+
|
| 1087 |
+
if (_matches.length > 0)
|
| 1088 |
+
return _matches[0];
|
| 1089 |
+
else
|
| 1090 |
+
return null;
|
| 1091 |
+
}
|
| 1092 |
+
|
| 1093 |
+
//Get the value of a DOM element
|
| 1094 |
+
_pca.getValue = function (element) {
|
| 1095 |
+
if (element) {
|
| 1096 |
+
if (!element.tagName)
|
| 1097 |
+
element = _pca.getInput(element);
|
| 1098 |
+
|
| 1099 |
+
if (element.tagName == "INPUT" || element.tagName == "TEXTAREA") {
|
| 1100 |
+
if (element.type == "text" || element.type == "textarea")
|
| 1101 |
+
return element.value;
|
| 1102 |
+
if (element.type == "checkbox")
|
| 1103 |
+
return element.checked;
|
| 1104 |
+
}
|
| 1105 |
+
if (element.tagName == "SELECT")
|
| 1106 |
+
return element.options[element.selectedIndex].value;
|
| 1107 |
+
}
|
| 1108 |
+
|
| 1109 |
+
return "";
|
| 1110 |
+
}
|
| 1111 |
+
|
| 1112 |
+
//Set the value of a DOM element
|
| 1113 |
+
_pca.setValue = function (element, value) {
|
| 1114 |
+
|
| 1115 |
+
_pca.debug(element + " - " + value);
|
| 1116 |
+
|
| 1117 |
+
if (element && (value || value == '')) {
|
| 1118 |
+
if (!element.tagName)
|
| 1119 |
+
element = _pca.getInput(element);
|
| 1120 |
+
|
| 1121 |
+
if (element.tagName == "INPUT" || element.tagName == "TEXTAREA") {
|
| 1122 |
+
if (element.type == "text" || element.type == "textarea")
|
| 1123 |
+
element.value = value;
|
| 1124 |
+
if (element.type == "checkbox")
|
| 1125 |
+
element.checked = ((typeof (value) == "boolean" && value) || value == "True");
|
| 1126 |
+
}
|
| 1127 |
+
if (element.tagName == "SELECT") {
|
| 1128 |
+
for (var s = 0; s < element.options.length; s++) {
|
| 1129 |
+
if (element.options[s].value == value || element.options[s].text == value) {
|
| 1130 |
+
element.selectedIndex = s;
|
| 1131 |
+
break;
|
| 1132 |
+
}
|
| 1133 |
+
}
|
| 1134 |
+
}
|
| 1135 |
+
}
|
| 1136 |
+
}
|
| 1137 |
+
|
| 1138 |
+
//Simple function to create an element
|
| 1139 |
+
_pca.create = function (tag, properties, cssText) {
|
| 1140 |
+
var _elem = _document.createElement(tag)
|
| 1141 |
+
for (var i in properties || {})
|
| 1142 |
+
_elem[i] = properties[i];
|
| 1143 |
+
if (cssText) _elem.style.cssText = cssText;
|
| 1144 |
+
return _elem;
|
| 1145 |
+
}
|
| 1146 |
+
|
| 1147 |
+
//Listens to an event with standard DOM event handling
|
| 1148 |
+
_pca.listen = function (target, event, action) {
|
| 1149 |
+
if (window.addEventListener)
|
| 1150 |
+
target.addEventListener(event, action, false);
|
| 1151 |
+
else
|
| 1152 |
+
target.attachEvent('on' + event, action);
|
| 1153 |
+
}
|
| 1154 |
+
|
| 1155 |
+
//PCA debug messages. Just add a div with an id of "pcadebug"
|
| 1156 |
+
_pca.debug = function (message) {
|
| 1157 |
+
var _degbug = document.getElementById("pcadebug");
|
| 1158 |
+
|
| 1159 |
+
if (_degbug)
|
| 1160 |
+
_degbug.innerHTML = message;
|
| 1161 |
+
}
|
| 1162 |
+
})(window);
|
| 1163 |
+
|
| 1164 |
+
(function (window, undefined) {
|
| 1165 |
+
var _pca = window.pca,
|
| 1166 |
+
_document = window.document;
|
| 1167 |
+
|
| 1168 |
+
_pca.Addresses = _pca.Addresses || [];
|
| 1169 |
+
|
| 1170 |
+
//Main address component
|
| 1171 |
+
_pca.Address = function (fields, options) {
|
| 1172 |
+
var _uid = _pca.Addresses.length,
|
| 1173 |
+
_this = _pca.Addresses[_uid] = new _pca.Object(this);
|
| 1174 |
+
|
| 1175 |
+
//options
|
| 1176 |
+
_this.key = options.key || "";
|
| 1177 |
+
_this.countryFormat = options.countryFormat || _pca.CountryNameType.Name;
|
| 1178 |
+
|
| 1179 |
+
_this.dataSourceOptions = options.dataSourceOptions || {};
|
| 1180 |
+
_this.dataSourceOptions.international = typeof _this.dataSourceOptions.international == 'boolean' ? _this.dataSourceOptions.international : true;
|
| 1181 |
+
_this.dataSourceOptions.royalMail = typeof _this.dataSourceOptions.royalMail == 'boolean' ? _this.dataSourceOptions.royalMail : false;
|
| 1182 |
+
_this.dataSourceOptions.usps = typeof _this.dataSourceOptions.usps == 'boolean' ? _this.dataSourceOptions.usps : false;
|
| 1183 |
+
|
| 1184 |
+
_this.resultsListOptions = options.resultsListOptions || {};
|
| 1185 |
+
_this.resultsListOptions.type = _this.resultsListOptions.type || _pca.ListType.Modal;
|
| 1186 |
+
_this.resultsListOptions.field = _this.resultsListOptions.field || "";
|
| 1187 |
+
|
| 1188 |
+
_this.countryListOptions = options.countryListOptions || {};
|
| 1189 |
+
_this.countryListOptions.type = "Country" + (_this.countryListOptions.type || _pca.ListType.Select);
|
| 1190 |
+
_this.countryListOptions.field = _this.countryListOptions.field || "";
|
| 1191 |
+
_this.countryListOptions.filter = _this.countryListOptions.filter || "";
|
| 1192 |
+
_this.countryListOptions.callback = _this.countryListOptions.callback || function () { };
|
| 1193 |
+
_this.countryListOptions.format = _this.countryFormat;
|
| 1194 |
+
|
| 1195 |
+
//local objects
|
| 1196 |
+
_this.resultsList = null;
|
| 1197 |
+
_this.countryList = null;
|
| 1198 |
+
_this.listeners = {};
|
| 1199 |
+
|
| 1200 |
+
//initialises the control
|
| 1201 |
+
_this.setup = function () {
|
| 1202 |
+
_this.resultsList = new pca[_this.resultsListOptions.type]();
|
| 1203 |
+
|
| 1204 |
+
if (_this.resultsList.anchor && _this.resultsListOptions.field) {
|
| 1205 |
+
_this.resultsList.anchor(_pca.getInput(_this.resultsListOptions.field));
|
| 1206 |
+
_this.resultsList.listen("keyup", _this.checkForBuildingNumber);
|
| 1207 |
+
}
|
| 1208 |
+
|
| 1209 |
+
if (_this.countryListOptions.field)
|
| 1210 |
+
_this.countryList = new _pca[_this.countryListOptions.type](_this.countryListOptions);
|
| 1211 |
+
}
|
| 1212 |
+
|
| 1213 |
+
//Calculate the value of an address line
|
| 1214 |
+
_this.getAddressValue = function (reference, address) {
|
| 1215 |
+
var _addrLine;
|
| 1216 |
+
|
| 1217 |
+
//Formats an address line using the PCA format
|
| 1218 |
+
function formatLine(format, address) {
|
| 1219 |
+
var _formatNumber = parseInt(format.substring(9, 10)),
|
| 1220 |
+
_formatCount = parseInt(format.substring(11, 12)),
|
| 1221 |
+
_seperateCompany = format.length < 15 || !address.Company,
|
| 1222 |
+
_lineCount = 0,
|
| 1223 |
+
_result = "";
|
| 1224 |
+
|
| 1225 |
+
if (!address.Line1)
|
| 1226 |
+
_lineCount = 0
|
| 1227 |
+
else if (!address.Line2)
|
| 1228 |
+
_lineCount = 1
|
| 1229 |
+
else if (!address.Line3)
|
| 1230 |
+
_lineCount = 2
|
| 1231 |
+
else if (!address.Line4)
|
| 1232 |
+
_lineCount = 3
|
| 1233 |
+
else if (!address.Line5)
|
| 1234 |
+
_lineCount = 4
|
| 1235 |
+
else
|
| 1236 |
+
_lineCount = 5;
|
| 1237 |
+
|
| 1238 |
+
if (!_seperateCompany)
|
| 1239 |
+
_lineCount++;
|
| 1240 |
+
|
| 1241 |
+
//work out the current line number and how many address elements should appear on it
|
| 1242 |
+
var _start = Math.floor((_lineCount / _formatCount) * (_formatNumber - 1)) + 1,
|
| 1243 |
+
_lines = (Math.floor((_lineCount / _formatCount) * _formatNumber)) - (_start - 1);
|
| 1244 |
+
|
| 1245 |
+
if (!_seperateCompany)
|
| 1246 |
+
_start--;
|
| 1247 |
+
|
| 1248 |
+
//concatenate the address elements to make the address line
|
| 1249 |
+
for (var a = 0; a < _lines; a++) {
|
| 1250 |
+
if (!(a + _start))
|
| 1251 |
+
_result += address.Company || "";
|
| 1252 |
+
else
|
| 1253 |
+
_result += (_result ? ", " : "") + (address["Line" + (a + _start)] || "");
|
| 1254 |
+
}
|
| 1255 |
+
|
| 1256 |
+
return _result;
|
| 1257 |
+
}
|
| 1258 |
+
|
| 1259 |
+
//Work out which values to use
|
| 1260 |
+
switch (reference.toUpperCase()) {
|
| 1261 |
+
case "ID":
|
| 1262 |
+
case "PAF-ID":
|
| 1263 |
+
case "UDPRN":
|
| 1264 |
+
_addrLine = address.Udprn;
|
| 1265 |
+
break;
|
| 1266 |
+
case "COMPANY":
|
| 1267 |
+
case "PAF-COMPANY":
|
| 1268 |
+
_addrLine = address.Company;
|
| 1269 |
+
break;
|
| 1270 |
+
case "BUILDINGNUMBER":
|
| 1271 |
+
case "PAF-BUILDING-NUMBER":
|
| 1272 |
+
_addrLine = address.BuildingNumber || address.Building;
|
| 1273 |
+
break;
|
| 1274 |
+
case "BUILDINGNAME":
|
| 1275 |
+
case "PAF-BUILDING-NAME":
|
| 1276 |
+
_addrLine = address.BuildingName;
|
| 1277 |
+
break;
|
| 1278 |
+
case "BUILDING":
|
| 1279 |
+
case "PAF-BUILDING":
|
| 1280 |
+
_addrLine = (address.SubBuilding + ' ' + address.BuildingName + ' ' + address.BuildingNumber).replace(/^\s+/, '') || address.Building;
|
| 1281 |
+
break;
|
| 1282 |
+
case "PAF-FLAT":
|
| 1283 |
+
_addrLine = address.SubBuilding;
|
| 1284 |
+
break;
|
| 1285 |
+
case "PAF-BUILDING-NAME-NUMBER":
|
| 1286 |
+
_addrLine = (address.BuildingName + ' ' + address.BuildingNumber).replace(/^\s+/, '') || address.Building;
|
| 1287 |
+
break;
|
| 1288 |
+
case "STREET":
|
| 1289 |
+
_addrLine = address.Description || address.Street || address.PrimaryStreet;
|
| 1290 |
+
break;
|
| 1291 |
+
case "PAF-STREET":
|
| 1292 |
+
_addrLine = (address.SecondaryStreet == "" ? address.PrimaryStreet : (address.SecondaryStreet + ", " + address.PrimaryStreet).replace(/^\s+/, '')) || address.Street;
|
| 1293 |
+
break;
|
| 1294 |
+
case "DISTRICT":
|
| 1295 |
+
case "PAF-DISTRICT":
|
| 1296 |
+
_addrLine = address.DependentLocality || address.District;
|
| 1297 |
+
break;
|
| 1298 |
+
case "CITY":
|
| 1299 |
+
case "TOWN":
|
| 1300 |
+
case "PAF-TOWN":
|
| 1301 |
+
_addrLine = address.City || address.PostTown;
|
| 1302 |
+
break;
|
| 1303 |
+
case "STATE":
|
| 1304 |
+
case "STATECODE":
|
| 1305 |
+
case "COUNTY":
|
| 1306 |
+
case "PAF-COUNTY":
|
| 1307 |
+
_addrLine = address.State || address.StateCode || address.County;
|
| 1308 |
+
break;
|
| 1309 |
+
case "STATENAME":
|
| 1310 |
+
_addrLine = address.State || address.StateName || address.County;
|
| 1311 |
+
break;
|
| 1312 |
+
case "ADMIN":
|
| 1313 |
+
case "ADMINAREA":
|
| 1314 |
+
case "US-COUNTY":
|
| 1315 |
+
_addrLine = address.AdminArea || address.CountyName;
|
| 1316 |
+
break;
|
| 1317 |
+
case "POSTALCODE":
|
| 1318 |
+
case "POSTCODE":
|
| 1319 |
+
case "ZIP":
|
| 1320 |
+
case "ZIP4":
|
| 1321 |
+
case "PAF-POSTCODE":
|
| 1322 |
+
_addrLine = address.PostalCode || address.Postcode || address.Zip;
|
| 1323 |
+
break;
|
| 1324 |
+
case "COUNTRY":
|
| 1325 |
+
case "PAF-COUNTRY":
|
| 1326 |
+
_addrLine = _pca.getCountry(address.CountryIso3 || address.Country || address.CountryName)[_this.countryFormat];
|
| 1327 |
+
break;
|
| 1328 |
+
case "COUNTRYNAME":
|
| 1329 |
+
_addrLine = _pca.getCountry(address.CountryIso3 || address.Country || address.CountryName).Name;
|
| 1330 |
+
break;
|
| 1331 |
+
case "COUNTRYCODE":
|
| 1332 |
+
case "COUNTRYISO3":
|
| 1333 |
+
_addrLine = _pca.getCountry(address.CountryIso3 || address.Country || address.CountryName).Iso3;
|
| 1334 |
+
break;
|
| 1335 |
+
case "COUNTRYISO2":
|
| 1336 |
+
_addrLine = _pca.getCountry(address.CountryIso3 || address.Country || address.CountryName).Iso2;
|
| 1337 |
+
break;
|
| 1338 |
+
default:
|
| 1339 |
+
if (/^PAF-LINE-[\d]-[\d]/.test(reference))
|
| 1340 |
+
_addrLine = formatLine(reference, address);
|
| 1341 |
+
else
|
| 1342 |
+
_addrLine = address[reference];
|
| 1343 |
+
break;
|
| 1344 |
+
}
|
| 1345 |
+
|
| 1346 |
+
return _addrLine;
|
| 1347 |
+
}
|
| 1348 |
+
|
| 1349 |
+
//Adds Line1, Line2 to international address
|
| 1350 |
+
_this.addAddressLines = function (addresses) {
|
| 1351 |
+
for (var i = 0; i < addresses.length; i++) {
|
| 1352 |
+
var address = addresses[i];
|
| 1353 |
+
address.Line1 = address.Description || address.Street;
|
| 1354 |
+
address.Line2 = address.District;
|
| 1355 |
+
}
|
| 1356 |
+
}
|
| 1357 |
+
|
| 1358 |
+
//Waits for a building number to be entered into the street/line1 field
|
| 1359 |
+
_this.checkForBuildingNumber = function () {
|
| 1360 |
+
var _building = /^\d+(?=\s$)/.exec(_pca.getValue(_this.resultsList.field).toString());
|
| 1361 |
+
if (_building) _this.fire("building", _building);
|
| 1362 |
+
}
|
| 1363 |
+
|
| 1364 |
+
//Search using generic find services
|
| 1365 |
+
_this.search = function (line1, locality, postcode, country) {
|
| 1366 |
+
var _line1 = line1 || "",
|
| 1367 |
+
_building = _pca.getNumber(_line1) || "",
|
| 1368 |
+
_street = _pca.getText(_line1) || "",
|
| 1369 |
+
_locality = locality || "",
|
| 1370 |
+
_postcode = postcode || "",
|
| 1371 |
+
_country = _pca.getCountry(country || _pca.getValue(_this.countryList)).Iso3 || "";
|
| 1372 |
+
|
| 1373 |
+
if (_postcode && (!_street || (_country != "GBR" && _country != "USA"))) //Temp fix for lack of international by address
|
| 1374 |
+
_this.searchByPostcode(_country, _postcode, _building);
|
| 1375 |
+
else if ((_street && !(_postcode || _locality)) || (_country != "GBR" && _country != "USA")) //Temp fix for lack of international by address
|
| 1376 |
+
_this.searchByStreet(_country, _street, _building);
|
| 1377 |
+
else if (_line1 && (_postcode || _locality)) {
|
| 1378 |
+
var _terms = [_line1];
|
| 1379 |
+
if (_locality) _terms.push(_locality);
|
| 1380 |
+
if (_postcode) _terms.push(_postcode);
|
| 1381 |
+
_this.searchByAddress(_country, _terms.join(","));
|
| 1382 |
+
}
|
| 1383 |
+
}
|
| 1384 |
+
|
| 1385 |
+
//Searches for a whole address
|
| 1386 |
+
_this.searchByAddress = function (country, address) {
|
| 1387 |
+
var _country = _pca.getCountry(country || _pca.getValue(_this.countryList)).Iso3 || "",
|
| 1388 |
+
_address = address || "";
|
| 1389 |
+
|
| 1390 |
+
function royalMailCleanseResult(response) {
|
| 1391 |
+
if (response.length == 1)
|
| 1392 |
+
_this.select(response[0]);
|
| 1393 |
+
|
| 1394 |
+
_this.resultsList.clear();
|
| 1395 |
+
}
|
| 1396 |
+
|
| 1397 |
+
function uspsAddressResult(response) {
|
| 1398 |
+
if (response.length == 1)
|
| 1399 |
+
_this.select(response[0]);
|
| 1400 |
+
|
| 1401 |
+
_this.resultsList.clear();
|
| 1402 |
+
}
|
| 1403 |
+
|
| 1404 |
+
if (_country == "GBR" && _this.dataSourceOptions.royalMail)
|
| 1405 |
+
_pca.fetch("CleansePlus/Interactive/Cleanse/v1.00", { Key: _this.key, Address: _address }, royalMailCleanseResult);
|
| 1406 |
+
else if (_country == "USA" && _this.dataSourceOptions.usps)
|
| 1407 |
+
_pca.fetch("PostcodeAnywhereInternational/InteractiveUSA/RetrieveByAddress/v1.00", { Key: _this.key, Address: _address }, uspsAddressResult);
|
| 1408 |
+
}
|
| 1409 |
+
|
| 1410 |
+
//Searches for an address by postcode using building information
|
| 1411 |
+
_this.searchByPostcode = function (country, postcode, building) {
|
| 1412 |
+
var _country = _pca.getCountry(country || _pca.getValue(_this.countryList)).Iso3 || "",
|
| 1413 |
+
_postcode = postcode || "",
|
| 1414 |
+
_building = building || "";
|
| 1415 |
+
|
| 1416 |
+
if (_country == "" || _postcode == "")
|
| 1417 |
+
return;
|
| 1418 |
+
|
| 1419 |
+
function internationalSelectStreet(address) {
|
| 1420 |
+
_this.select(address);
|
| 1421 |
+
|
| 1422 |
+
//If the description does not contain building numbers then search for them
|
| 1423 |
+
if (address.Street == address.Description)
|
| 1424 |
+
_this.searchBuildings(address.StreetId, address);
|
| 1425 |
+
else {
|
| 1426 |
+
//Append the Zip+4 if not present
|
| 1427 |
+
if (_country == "USA" && _this.dataSourceOptions.usps && /^[0-9]{5}$/.test(address.PostalCode))
|
| 1428 |
+
_this.searchByAddress(_country, _pca.formatLine(address, "{Description}, {City}, {State}, {PostalCode}"));
|
| 1429 |
+
else
|
| 1430 |
+
_this.resultsList.clear();
|
| 1431 |
+
}
|
| 1432 |
+
}
|
| 1433 |
+
|
| 1434 |
+
function internationalStreetResults(response) {
|
| 1435 |
+
_this.addAddressLines(response);
|
| 1436 |
+
|
| 1437 |
+
if (response.length > 1)
|
| 1438 |
+
_this.resultsList.populate(response, "<b>{Description}</b> {District} {City} {State}", internationalSelectStreet).show();
|
| 1439 |
+
else if (response.length == 1)
|
| 1440 |
+
internationalSelectStreet(response[0]);
|
| 1441 |
+
else
|
| 1442 |
+
_this.resultsList.clear();
|
| 1443 |
+
}
|
| 1444 |
+
|
| 1445 |
+
function royalMailRetrieveResult(response) {
|
| 1446 |
+
_this.select(response[0]);
|
| 1447 |
+
}
|
| 1448 |
+
|
| 1449 |
+
function royalMailSelectBuilding(item) {
|
| 1450 |
+
_pca.fetch("PostcodeAnywhere/Interactive/RetrieveById/v1.20", { Key: _this.key, Id: item.Id }, royalMailRetrieveResult);
|
| 1451 |
+
_this.resultsList.clear();
|
| 1452 |
+
}
|
| 1453 |
+
|
| 1454 |
+
function royalMailStreetResults(response) {
|
| 1455 |
+
if (response.length > 1)
|
| 1456 |
+
_this.resultsList.populate(response, "<b>{StreetAddress}</b> {Place}", royalMailSelectBuilding).sort().draw().show();
|
| 1457 |
+
else if (response.length == 1)
|
| 1458 |
+
royalMailSelectAddress(response[0]);
|
| 1459 |
+
else
|
| 1460 |
+
_this.resultsList.clear();
|
| 1461 |
+
}
|
| 1462 |
+
|
| 1463 |
+
function uspsZipResult(response) {
|
| 1464 |
+
if (response.length > 1)
|
| 1465 |
+
_this.resultsList.populate(response, "<b>{Company} {Line1}</b> {City} {StateCode}", uspsSelectAddress).show();
|
| 1466 |
+
else if (response.length == 1)
|
| 1467 |
+
uspsSelectAddress(response[0]);
|
| 1468 |
+
else
|
| 1469 |
+
_this.resultsList.clear();
|
| 1470 |
+
}
|
| 1471 |
+
|
| 1472 |
+
function uspsSelectAddress(address) {
|
| 1473 |
+
_this.select(address);
|
| 1474 |
+
_this.resultsList.clear();
|
| 1475 |
+
}
|
| 1476 |
+
|
| 1477 |
+
if (_country == "GBR" && _this.dataSourceOptions.royalMail)
|
| 1478 |
+
_pca.fetch("PostcodeAnywhere/Interactive/FindByPostcode/v1.00", { Key: _this.key, Postcode: _postcode }, royalMailStreetResults);
|
| 1479 |
+
else if (_country == "USA" && _this.dataSourceOptions.usps && /[0-9]{5}-[0-9]{4}/.test(_postcode))
|
| 1480 |
+
_pca.fetch("PostcodeAnywhereInternational/InteractiveUSA/RetrieveByZip4/v1.00", { Key: _this.key, Country: _country, Zip4: _postcode }, uspsZipResult);
|
| 1481 |
+
else if (_this.dataSourceOptions.international)
|
| 1482 |
+
_pca.fetch("PostcodeAnywhereInternational/Interactive/RetrieveByPostalCode/v2.10", { Key: _this.key, Country: _country, PostalCode: _postcode, Building: _building }, internationalStreetResults);
|
| 1483 |
+
}
|
| 1484 |
+
|
| 1485 |
+
//Searches for an address by street using building and city information
|
| 1486 |
+
_this.searchByStreet = function (country, street, building) {
|
| 1487 |
+
var _country = _pca.getCountry(country || _pca.getValue(_this.countryList)).Iso3 || "",
|
| 1488 |
+
_street = street || "",
|
| 1489 |
+
_building = building || "";
|
| 1490 |
+
|
| 1491 |
+
if (_country == "" || _street == "")
|
| 1492 |
+
return;
|
| 1493 |
+
|
| 1494 |
+
function internationalSelectStreet(address) {
|
| 1495 |
+
_this.select(address);
|
| 1496 |
+
|
| 1497 |
+
//If the description does not contain building numbers then search for them
|
| 1498 |
+
if (address.Street == address.Description)
|
| 1499 |
+
_this.searchBuildings(address.StreetId, address);
|
| 1500 |
+
else {
|
| 1501 |
+
//Append the Zip+4 if not present
|
| 1502 |
+
if (_country == "USA" && _this.dataSourceOptions.usps && /^[0-9]{5}$/.test(address.PostalCode))
|
| 1503 |
+
_this.searchByAddress(_country, _pca.formatLine(address, "{Description}, {City}, {State}, {PostalCode}"));
|
| 1504 |
+
else
|
| 1505 |
+
_this.resultsList.clear();
|
| 1506 |
+
}
|
| 1507 |
+
}
|
| 1508 |
+
|
| 1509 |
+
function internationalStreetResults(response) {
|
| 1510 |
+
_this.addAddressLines(response);
|
| 1511 |
+
|
| 1512 |
+
if (response.length > 1)
|
| 1513 |
+
_this.resultsList.populate(response, "<b>{Street}</b> {District} {City} {State} {PostalCode}", internationalSelectStreet).show();
|
| 1514 |
+
else if (response.length == 1)
|
| 1515 |
+
internationalSelectStreet(response[0]);
|
| 1516 |
+
else
|
| 1517 |
+
_this.resultsList.clear();
|
| 1518 |
+
}
|
| 1519 |
+
|
| 1520 |
+
function royalMailSelectStreet(address) {
|
| 1521 |
+
_this.searchBuildings(address.StreetId);
|
| 1522 |
+
_this.resultsList.clear();
|
| 1523 |
+
}
|
| 1524 |
+
|
| 1525 |
+
function royalMailStreetResults(response) {
|
| 1526 |
+
if (response.length > 1)
|
| 1527 |
+
_this.resultsList.populate(response, "<b>{Street}</b> {Place}", royalMailSelectStreet).show();
|
| 1528 |
+
else if (response.length == 1)
|
| 1529 |
+
royalMailSelectStreet(response[0]);
|
| 1530 |
+
else
|
| 1531 |
+
_this.resultsList.clear();
|
| 1532 |
+
}
|
| 1533 |
+
|
| 1534 |
+
if (_country == "GBR" && _this.dataSourceOptions.royalMail)
|
| 1535 |
+
_pca.fetch("PostcodeAnywhere/Interactive/FindStreets/v1.00", { Key: _this.key, Street: _street }, royalMailStreetResults);
|
| 1536 |
+
else if (_this.dataSourceOptions.international)
|
| 1537 |
+
_pca.fetch("PostcodeAnywhereInternational/Interactive/RetrieveByStreet/v1.40", { Key: _this.key, Country: _country, Street: _street, Building: _building }, internationalStreetResults);
|
| 1538 |
+
}
|
| 1539 |
+
|
| 1540 |
+
//Gets a list of buildings from a street Id
|
| 1541 |
+
_this.searchBuildings = function (streetId, address) {
|
| 1542 |
+
var _country = (/^\d+\|\d+\|\d+\|\d+$/.test(streetId) ? "GBR" : /^[A-Z]{3}(?=\|)/.exec(streetId).toString()) || "",
|
| 1543 |
+
_address = address || {};
|
| 1544 |
+
|
| 1545 |
+
function internationalSelectBuilding(building) {
|
| 1546 |
+
_pca.merge(_address, building);
|
| 1547 |
+
_this.select(building);
|
| 1548 |
+
_this.resultsList.clear();
|
| 1549 |
+
|
| 1550 |
+
//Append the Zip+4 if not present
|
| 1551 |
+
if (_country == "USA" && _this.dataSourceOptions.usps && /^[0-9]{5}$/.test(building.PostalCode))
|
| 1552 |
+
_this.searchByAddress(_country, _pca.formatLine(building, "{Description}, {City}, {State}, {PostalCode}"));
|
| 1553 |
+
}
|
| 1554 |
+
|
| 1555 |
+
function internationalBuildingResults(response) {
|
| 1556 |
+
_this.addAddressLines(response);
|
| 1557 |
+
|
| 1558 |
+
if (response.length > 1)
|
| 1559 |
+
_this.resultsList.populate(response, "{Description}", internationalSelectBuilding).show();
|
| 1560 |
+
else if (response.length == 1)
|
| 1561 |
+
internationalSelectBuilding(response[0]);
|
| 1562 |
+
else
|
| 1563 |
+
_this.resultsList.clear();
|
| 1564 |
+
}
|
| 1565 |
+
|
| 1566 |
+
function royalMailRetrieveResult(response) {
|
| 1567 |
+
_this.select(response[0]);
|
| 1568 |
+
}
|
| 1569 |
+
|
| 1570 |
+
function royalMailSelectBuilding(item) {
|
| 1571 |
+
_pca.fetch("PostcodeAnywhere/Interactive/RetrieveById/v1.20", { Key: _this.key, Id: item.Id }, royalMailRetrieveResult);
|
| 1572 |
+
_this.resultsList.clear();
|
| 1573 |
+
}
|
| 1574 |
+
|
| 1575 |
+
function royalMailBuildingResults(response) {
|
| 1576 |
+
if (response.length > 1)
|
| 1577 |
+
_this.resultsList.populate(response, "{StreetAddress}", royalMailSelectBuilding).show();
|
| 1578 |
+
else if (response.length == 1)
|
| 1579 |
+
royalMailSelectBuilding(response[0]);
|
| 1580 |
+
else
|
| 1581 |
+
_this.resultsList.clear();
|
| 1582 |
+
}
|
| 1583 |
+
|
| 1584 |
+
if (/^\d\|\d{5}\|\d{4}\|\d/.test(streetId))
|
| 1585 |
+
_pca.fetch("PostcodeAnywhere/Interactive/FindByStreetId/v1.00", { Key: _this.key, StreetId: streetId }, royalMailBuildingResults);
|
| 1586 |
+
else
|
| 1587 |
+
_pca.fetch("PostcodeAnywhereInternational/Interactive/ListBuildings/v1.10", { Key: _this.key, StreetId: streetId }, internationalBuildingResults);
|
| 1588 |
+
}
|
| 1589 |
+
|
| 1590 |
+
//Clears all fields
|
| 1591 |
+
_this.clear = function () {
|
| 1592 |
+
for (var i = 0; i < fields.length; i++)
|
| 1593 |
+
_pca.setValue(_pca.getInput(fields[i].element), '');
|
| 1594 |
+
|
| 1595 |
+
_this.resultsList.clear();
|
| 1596 |
+
|
| 1597 |
+
_this.fire("clear");
|
| 1598 |
+
}
|
| 1599 |
+
|
| 1600 |
+
//Populates the field map with values
|
| 1601 |
+
_this.select = function (address) {
|
| 1602 |
+
for (var i = 0; i < fields.length; i++)
|
| 1603 |
+
_pca.setValue(_pca.getInput(fields[i].element), _this.getAddressValue(fields[i].field, address));
|
| 1604 |
+
|
| 1605 |
+
if (_this.countryList && _this.countryList.syncCountry)
|
| 1606 |
+
_this.countryList.syncCountry(_this.getAddressValue("Country", address));
|
| 1607 |
+
|
| 1608 |
+
_this.fire("select", address);
|
| 1609 |
+
}
|
| 1610 |
+
|
| 1611 |
+
//Run setup
|
| 1612 |
+
_this.setup();
|
| 1613 |
+
}
|
| 1614 |
+
})(window);
|
| 1615 |
+
|
package.xml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>UK_and_International_Address_AutoFill_from_Postcode_Anywhere</name>
|
| 4 |
+
<version>1.0.0</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>UK and International Adderess Auto-Fill from Postcode Anywhere.</summary>
|
| 10 |
+
<description>UK and International Address Auto-Fill from Postcode Anywhere.</description>
|
| 11 |
+
<notes>Stable Release</notes>
|
| 12 |
+
<authors><author><name>PCA_Tom</name><user>PCA_Tom</user><email>tomg@Postcodeanywhere.com</email></author></authors>
|
| 13 |
+
<date>2011-12-14</date>
|
| 14 |
+
<time>11:37:55</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="PostcodeAnywhere"><dir name="AddressLookup"><dir name="controllers"><file name="IndexController.php" hash="c7cf3785ae9017b0a868d4354dc5e0af"/></dir><dir name="etc"><file name="config.xml" hash="c4d0f8eaadf03f9d8e68c4155a7e2b0c"/><file name="system.xml" hash="61fed79d02a7c523e2af8fe488d5be1b"/></dir><dir name="Helper"><file name="Data.php" hash="daa24af2b8e4e27a4a67304f47f04ee0"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="AddressLookup.xml" hash="49a3df0dc7fa4835adf3222399bfcf16"/><file name="GuestAddressLookup.xml" hash="1496bd505cc8259318536eba18aab030"/><file name="PCAPersistent.xml" hash="ca6783de25b5c2a2b919c5a5a7242aff"/></dir><dir name="template"><dir name="checkout"><dir name="onepage"><file name="pca_billing.phtml" hash="02bdf3c2538b6338d4a7b7d96ae5c054"/><file name="pca_shipping.phtml" hash="e3e0e1b20de82f4bcfcedb9a87e9ab13"/></dir></dir><dir name="customer"><dir name="address"><file name="pca_edit.phtml" hash="d2be6cd0730ddf8a9de4134b95eb6432"/><file name="pca_register.phtml" hash="4cdfe4d71d84ee47ebe6bcfa59d56341"/></dir><dir name="form"><file name="pca_register.phtml" hash="4079eff78aeee939e09ac0f1c523de8c"/></dir></dir><dir name="persistent"><dir name="checkout"><dir name="onepage"><file name="pca_billing.phtml" hash="a37906eaca80d48718fdb27ba83d4393"/></dir></dir><dir name="customer"><dir name="form"><file name="pca_register.phtml" hash="004222495fd1bf39e69251c38fea5026"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="PostcodeAnywhere_AddressLookup.xml" hash="25d0ee21fb0785c1a52c8b9966c073a8"/></dir></target><target name="mage"><dir name="js"><dir name="PostcodeAnywhere"><file name="address.css" hash="09ae321e1f77e04a1b8283b70546b9c4"/><file name="address.js" hash="17157992f064c3c639740b8657e7badf"/></dir></dir></target></contents>
|
| 16 |
+
<compatible/>
|
| 17 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
+
</package>
|
