Addrexx_AddressValidation - Version 1.1.7

Version Notes

This extension has been in use with community and enterprise customers since November, 2012.

Download this release

Release Info

Developer Joseph De La Cruz
Extension Addrexx_AddressValidation
Version 1.1.7
Comparing to
See all releases


Code changes from version 1.1.6 to 1.1.7

app/code/local/Addrexx/Helper/Data.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+ class Addrexx_AddSQL_Helper_Data extends Mage_Core_Helper_Abstract
3
+ {
4
+ }
5
+
app/code/local/Addrexx/Model/System/Config/Source/Dropdown/Values.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Addrexx_Backend_Model_System_Config_Source_Dropdown_Values
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ return array(
8
+ array(
9
+ 'value' => 'key1',
10
+ 'label' => 'Value 1',
11
+ ),
12
+ array(
13
+ 'value' => 'key2',
14
+ 'label' => 'Value 2',
15
+ ),
16
+ );
17
+ }
18
+ }
app/code/local/Addrexx/etc/adminhtml.xml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <admin>
6
+ <children>
7
+ <system>
8
+ <children>
9
+ <config>
10
+ <children>
11
+ <tab1>
12
+ <title>Tab #1</title> <!-- Used in resources tree -->
13
+ </tab1>
14
+ </children>
15
+ </config>
16
+ </children>
17
+ </system>
18
+ </children>
19
+ </admin>
20
+ </resources>
21
+ </acl>
22
+ </config>
app/code/local/Addrexx/etc/config.xml ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Addrexx>
5
+ <version>1.0.0</version>
6
+ </Addrexx>
7
+ </modules>
8
+ <frontend>
9
+ <layout>
10
+ <updates>
11
+ <addrexx_frontend module="addrexx_frontend">
12
+ <file>addrexx_frontend.xml</file>
13
+ </addrexx_frontend>
14
+ </updates>
15
+ </layout>
16
+ </frontend>
17
+ <adminhtml>
18
+ <layout>
19
+ <updates>
20
+ <addrexx_backend module="Addrexx_Backend">
21
+ <file>addrexx_backend.xml</file>
22
+ </addrexx_backend>
23
+ </updates>
24
+ </layout>
25
+ </adminhtml>
26
+ <global>
27
+ <helpers>
28
+ <addsql>
29
+ <class>Addrexx_Helper</class>
30
+ </addsql>
31
+ </helpers>
32
+ <resources>
33
+ <addsql_setup>
34
+ <setup>
35
+ <module>Addrexx</module>
36
+ </setup>
37
+ <connection>
38
+ <use>core_setup</use>
39
+ </connection>
40
+ </addsql_setup>
41
+ <addsql_write>
42
+ <connection>
43
+ <use>core_write</use>
44
+ </connection>
45
+ </addsql_write>
46
+ <addsql_read>
47
+ <connection>
48
+ <use>core_read</use>
49
+ </connection>
50
+ </addsql_read>
51
+ </resources>
52
+ <models>
53
+ <addrexx>
54
+ <class>Addrexx_Model</class>
55
+ </addrexx>
56
+ </models>
57
+ </global>
58
+ <default>
59
+ <tab1>
60
+ <general>
61
+ <access_token_frontend>xxxx-yyyy-1234-5678</access_token_frontend>
62
+ <access_token_admin>xxxx-yyyy-1234-5678</access_token_admin>
63
+ <active_frontend>0</active_frontend>
64
+ <active_admin>0</active_admin>
65
+ <pobox>0</pobox>
66
+ <names>1</names>
67
+ <zip4>0</zip4>
68
+ <url>www.bigfeet.com</url>
69
+ </general>
70
+ </tab1>
71
+ </default>
72
+ </config>
app/code/local/Addrexx/etc/system.xml ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <myconf translate="label">
5
+ <label>Addrexx</label>
6
+ <sort_order>150</sort_order>
7
+ </myconf>
8
+ </tabs>
9
+ <sections>
10
+ <tab1 translate="label" module="adminhtml">
11
+ <label>Setup</label>
12
+ <tab>myconf</tab>
13
+ <sort_order>10</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
+ <groups>
18
+ <general translate="label comment">
19
+ <label>General</label>
20
+ <sort_order>50</sort_order>
21
+ <show_in_default>1</show_in_default>
22
+ <show_in_website>1</show_in_website>
23
+ <show_in_store>1</show_in_store>
24
+ <comment><![CDATA[<strong>Addrexx Activation</strong></em>.<br /><br />Need help with anything? <a href="http://www.addrexx.com/contact.html" target="_blank">Don't hesitate to contact us if you have any questions.</a><br /><br />Please contact us to activate your subscription and receive your access tokens. <a href="http://www.addrexx.com/contact.html" target="_blank">Click here to turn on your subscription.</a><br />]]></comment>
25
+ <fields>
26
+ <heading_example translate="label">
27
+ <label>Access Tokens</label>
28
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
29
+ <sort_order>5</sort_order>
30
+ <show_in_default>1</show_in_default>
31
+ <show_in_website>1</show_in_website>
32
+ <show_in_store>0</show_in_store>
33
+ </heading_example>
34
+ <heading_example translate="label">
35
+ <label>Addrexx Options</label>
36
+ <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
37
+ <sort_order>10</sort_order>
38
+ <show_in_default>1</show_in_default>
39
+ <show_in_website>1</show_in_website>
40
+ <show_in_store>0</show_in_store>
41
+ </heading_example>
42
+ <access_token_frontend translate="label">
43
+ <label>Access Token - Frontend</label>
44
+ <frontend_type>text</frontend_type>
45
+ <sort_order>6</sort_order>
46
+ <show_in_default>1</show_in_default>
47
+ <show_in_website>1</show_in_website>
48
+ <show_in_store>0</show_in_store>
49
+ <comment>Your access token provided by Addrexx. </comment>
50
+ </access_token_frontend>
51
+ <access_token_admin translate="label">
52
+ <label>Access Token - Admin Panel</label>
53
+ <frontend_type>text</frontend_type>
54
+ <sort_order>7</sort_order>
55
+ <show_in_default>1</show_in_default>
56
+ <show_in_website>1</show_in_website>
57
+ <show_in_store>0</show_in_store>
58
+ <comment>Your access token provided by Addrexx. </comment>
59
+ </access_token_admin>
60
+ <active_admin translate="label comment">
61
+ <label>Backend - Enable/Disable</label>
62
+ <frontend_type>select</frontend_type>
63
+ <sort_order>12</sort_order>
64
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
65
+ <show_in_default>1</show_in_default>
66
+ <show_in_website>1</show_in_website>
67
+ <show_in_store>1</show_in_store>
68
+ <comment>Please do not activate until you have received your access token.</comment>
69
+ </active_admin>
70
+ <active_frontend translate="label comment">
71
+ <label>Frontend - Enable/Disable</label>
72
+ <frontend_type>select</frontend_type>
73
+ <sort_order>13</sort_order>
74
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
75
+ <show_in_default>1</show_in_default>
76
+ <show_in_website>1</show_in_website>
77
+ <show_in_store>1</show_in_store>
78
+ <comment>Please do not activate until you have received your access token.</comment>
79
+ </active_frontend>
80
+ <url translate="label comment">
81
+ <label>Website Url</label>
82
+ <comment>For example - www.bigfeet.com</comment>
83
+ <frontend_type>text</frontend_type>
84
+ <sort_order>15</sort_order>
85
+ <show_in_default>1</show_in_default>
86
+ <show_in_website>1</show_in_website>
87
+ <show_in_store>1</show_in_store>
88
+ </url>
89
+ <pobox translate="label comment">
90
+ <label>Restrict PO Box</label>
91
+ <comment>Does your store ship to PO Boxes</comment>
92
+ <frontend_type>select</frontend_type>
93
+ <sort_order>16</sort_order>
94
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
95
+ <show_in_default>1</show_in_default>
96
+ <show_in_website>1</show_in_website>
97
+ <show_in_store>1</show_in_store>
98
+ </pobox>
99
+ <names translate="label comment">
100
+ <label>Autocomplete Names</label>
101
+ <comment>Enable autocomplete on names</comment>
102
+ <frontend_type>select</frontend_type>
103
+ <sort_order>18</sort_order>
104
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
105
+ <show_in_default>1</show_in_default>
106
+ <show_in_website>1</show_in_website>
107
+ <show_in_store>1</show_in_store>
108
+ </names>
109
+ <zip4 translate="label comment">
110
+ <label>Append Zip+4</label>
111
+ <comment>Append Zip+4 to Zip Code</comment>
112
+ <frontend_type>select</frontend_type>
113
+ <sort_order>19</sort_order>
114
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
115
+ <show_in_default>1</show_in_default>
116
+ <show_in_website>1</show_in_website>
117
+ <show_in_store>1</show_in_store>
118
+ </zip4>
119
+ </fields>
120
+ </general>
121
+ </groups>
122
+ </tab1>
123
+ </sections>
124
+ </config>
app/code/local/Addrexx/sql/addsql_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+ $installer->startSetup();
4
+ $sql=<<<SQLTEXT
5
+ UPDATE customer_eav_attribute
6
+ LEFT JOIN eav_attribute ON
7
+ eav_attribute.attribute_id = customer_eav_attribute.attribute_id
8
+ SET customer_eav_attribute.sort_order = 110
9
+ WHERE eav_attribute.attribute_code = 'street';
10
+
11
+ UPDATE customer_eav_attribute
12
+ LEFT JOIN eav_attribute ON
13
+ eav_attribute.attribute_id = customer_eav_attribute.attribute_id
14
+ SET customer_eav_attribute.sort_order = 100
15
+ WHERE eav_attribute.attribute_code = 'region';
16
+
17
+ UPDATE customer_eav_attribute
18
+ LEFT JOIN eav_attribute ON
19
+ eav_attribute.attribute_id = customer_eav_attribute.attribute_id
20
+ SET customer_eav_attribute.sort_order = 100
21
+ WHERE eav_attribute.attribute_code = 'region_id';
22
+
23
+ UPDATE customer_eav_attribute
24
+ LEFT JOIN eav_attribute ON
25
+ eav_attribute.attribute_id = customer_eav_attribute.attribute_id
26
+ SET customer_eav_attribute.sort_order = 90
27
+ WHERE eav_attribute.attribute_code = 'city';
28
+
29
+ UPDATE customer_eav_attribute
30
+ LEFT JOIN eav_attribute ON
31
+ eav_attribute.attribute_id = customer_eav_attribute.attribute_id
32
+ SET customer_eav_attribute.sort_order = 80
33
+ WHERE eav_attribute.attribute_code = 'postcode';
34
+
35
+ UPDATE customer_eav_attribute
36
+ LEFT JOIN eav_attribute ON
37
+ eav_attribute.attribute_id = customer_eav_attribute.attribute_id
38
+ SET customer_eav_attribute.sort_order = 70
39
+ WHERE eav_attribute.attribute_code = 'country_id';
40
+ SQLTEXT;
41
+
42
+ $installer->run($sql);
43
+ //demo
44
+ //Mage::getModel('core/url_rewrite')->setId(null);
45
+ //demo
46
+ $installer->endSetup();
47
+
app/design/adminhtml/default/default/template/addrexx/common_config.phtml CHANGED
@@ -1,19 +1,18 @@
1
  <?php
2
  $conf = Mage::getStoreConfig('general');
3
  $conf3 = Mage::getStoreConfig('tab1');
4
- echo("<script>console.log('PHP:');</script>");
5
- echo("<script>console.log($conf);</script>");
6
  $activeFrontend = ($conf3['general']['active_frontend']);
7
  $activeAdmin = ($conf3['general']['active_admin']);
 
8
  $url = ($conf3['general']['url']);
9
  $poX = ($conf3['general']['pobox']);
10
  $nameX = ($conf3['general']['names']);
11
  $zipX = ($conf3['general']['zip4']);
12
  $accessTokenFrontend = ($conf3['general']['access_token_frontend']);
13
  $accessTokenAdmin = ($conf3['general']['access_token_admin']);
14
-
15
  ?>
16
  <script type="text/javascript">
 
17
  activeFrontend = "<?= $activeFrontend ?>";
18
  activeAdmin = "<?= $activeAdmin ?>";
19
  url = "<?= $url ?>";
@@ -22,460 +21,24 @@ $accessTokenAdmin = ($conf3['general']['access_token_admin']);
22
  zipPlusFour = "<?= $zipX ?>";
23
  accessTokenFrontend = "<?= $accessTokenFrontend ?>";
24
  accessTokenAdmin = "<?= $accessTokenAdmin ?>";
25
- console.log(activeFrontend);
26
- var ww = location.hostname;
27
- console.log(ww);
28
- ww = ww.replace("www.","");
29
- ww = ww.replace(/-/g,""); //remove dashes since function can't have them
30
- var _DemoURL = "https://s3.amazonaws.com/xxredda";
31
- var v = new Date().getMilliseconds();
32
- console.log(ww);
33
- function loadjscssfile(n) {
34
- var t = document.createElement("link");
35
- t.setAttribute("rel", "stylesheet"),
36
- t.setAttribute("type", "text/css"),
37
- t.setAttribute("href", n),
38
- document.getElementsByTagName("head")[0].appendChild(t)
39
- }
40
-
41
- (function (n, t) {
42
- function u(n) {
43
- l[l.length] = n
44
- }
45
- function p(n) {
46
- h.className = h.className.replace(RegExp("\\b" + n + "\\b"), "")
47
- }
48
- function a(n, t) {
49
- for (var i = 0, r = n.length; i < r; i++)
50
- t.call(n, n[i], i)
51
- }
52
- function w() {
53
- var t,
54
- r,
55
- e;
56
- h.className = h.className.replace(/ (w-|eq-|gt-|gte-|lt-|lte-|portrait|no-portrait|landscape|no-landscape)\d+/g, ""),
57
- t = n.innerWidth || h.clientWidth,
58
- r = n.outerWidth || n.screen.width,
59
- f.screen.innerWidth = t,
60
- f.screen.outerWidth = r,
61
- u("w-" + t),
62
- a(i.screens, function (n) {
63
- t > n ? (i.screensCss.gt && u("gt-" + n), i.screensCss.gte && u("gte-" + n)) : t < n ? (i.screensCss.lt && u("lt-" + n), i.screensCss.lte && u("lte-" + n)) : t === n && (i.screensCss.lte && u("lte-" + n), i.screensCss.eq && u("e-q" + n), i.screensCss.gte && u("gte-" + n))
64
- }),
65
- r = n.innerHeight || h.clientHeight,
66
- e = n.outerHeight || n.screen.height,
67
- f.screen.innerHeight = r,
68
- f.screen.outerHeight = e,
69
- f.feature("portrait", r > t),
70
- f.feature("landscape", r < t)
71
- }
72
- function b() {
73
- n.clearTimeout(y),
74
- y = n.setTimeout(w, 100)
75
- }
76
- var v = n.document,
77
- e = n.navigator,
78
- g = n.location,
79
- h = v.documentElement,
80
- l = [],
81
- i = {
82
- screens : [240, 320, 480, 640, 768, 800, 1024, 1280, 1440, 1680, 1920],
83
- screensCss : {
84
- gt : !0,
85
- gte : !1,
86
- lt : !0,
87
- lte : !1,
88
- eq : !1
89
- },
90
- browsers : [{
91
- ie : {
92
- min : 6,
93
- max : 10
94
- }
95
- }
96
- ],
97
- browserCss : {
98
- gt : !0,
99
- gte : !1,
100
- lt : !0,
101
- lte : !1,
102
- eq : !0
103
- },
104
- section : "-section",
105
- page : "-page",
106
- head : "head"
107
- },
108
- r,
109
- f,
110
- c,
111
- k,
112
- o,
113
- d,
114
- s,
115
- y;
116
- if (n.head_conf)
117
- for (r in n.head_conf)
118
- n.head_conf[r] !== t && (i[r] = n.head_conf[r]);
119
- f = n[i.head] = function () {
120
- f.ready.apply(null, arguments)
121
- },
122
- f.feature = function (n, t, i) {
123
- return n ? ("[object Function]" === Object.prototype.toString.call(t) && (t = t.call()), u((t ? "" : "no-") + n), f[n] = !!t, i || (p("no-" + n), p(n), f.feature()), f) : (h.className += " " + l.join(" "), l = [], f)
124
- },
125
- f.feature("js", !0),
126
- r = e.userAgent.toLowerCase(),
127
- e = /mobile|midp/.test(r),
128
- f.feature("mobile", e, !0),
129
- f.feature("desktop", !e, !0),
130
- r = /(chrome|firefox)[ \/]([\w.]+)/.exec(r) || /(iphone|ipad|ipod)(?:.*version)?[ \/]([\w.]+)/.exec(r) || /(android)(?:.*version)?[ \/]([\w.]+)/.exec(r) || /(webkit|opera)(?:.*version)?[ \/]([\w.]+)/.exec(r) || /(msie) ([\w.]+)/.exec(r) || [],
131
- e = r[1],
132
- r = parseFloat(r[2]);
133
- switch (e) {
134
- case "msie":
135
- e = "ie",
136
- r = v.documentMode || r;
137
- break;
138
- case "firefox":
139
- e = "ff";
140
- break;
141
- case "ipod":
142
- case "ipad":
143
- case "iphone":
144
- e = "ios";
145
- break;
146
- case "webkit":
147
- e = "safari"
148
- }
149
- for (f.browser = {
150
- name : e,
151
- version : r
152
- }, f.browser[e] = !0, c = 0, k = i.browsers.length; c < k; c++)
153
- for (o in i.browsers[c])
154
- if (e === o)
155
- for (u(o), d = i.browsers[c][o].max, s = i.browsers[c][o].min; s <= d; s++)
156
- r > s ? (i.browserCss.gt && u("gt-" + o + s), i.browserCss.gte && u("gte-" + o + s)) : r < s ? (i.browserCss.lt && u("lt-" + o + s), i.browserCss.lte && u("lte-" + o + s)) : r === s && (i.browserCss.lte && u("lte-" + o + s), i.browserCss.eq && u("eq-" + o + s), i.browserCss.gte && u("gte-" + o + s));
157
- else
158
- u("no-" + o);
159
- "ie" === e && 9 > r && a("abbr article aside audio canvas details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" "), function (n) {
160
- v.createElement(n)
161
- }),
162
- a(g.pathname.split("/"), function (n, r) {
163
- if (2 < this.length && this[r + 1] !== t)
164
- r && u(this.slice(1, r + 1).join("-").toLowerCase() + i.section);
165
- else {
166
- var f = n || "index",
167
- e = f.indexOf(".");
168
- 0 < e && (f = f.substring(0, e)),
169
- h.id = f.toLowerCase() + i.page,
170
- r || u("root" + i.section)
171
- }
172
- }),
173
- f.screen = {
174
- height : n.screen.height,
175
- width : n.screen.width
176
- },
177
- w(),
178
- y = 0,
179
- n.addEventListener ? n.addEventListener("resize", b, !1) : n.attachEvent("onresize", b)
180
- })(window), function (n, t) {
181
- function r(n) {
182
- var u = n.charAt(0).toUpperCase() + n.substr(1),
183
- n = (n + " " + h.join(u + " ") + u).split(" "),
184
- r;
185
- n : {
186
- for (r in n)
187
- if (i[n[r]] !== t) {
188
- r = !0;
189
- break n
190
- }
191
- r = !1
192
- }
193
- return !!r
194
- }
195
- var o = n.document.createElement("i"),
196
- i = o.style,
197
- s = " -o- -moz- -ms- -webkit- -khtml- ".split(" "),
198
- h = ["Webkit", "Moz", "O", "ms", "Khtml"],
199
- u = n[n.head_conf && n.head_conf.head || "head"],
200
- e = {
201
- gradient : function () {
202
- return i.cssText = ("background-image:" + s.join("gradient(linear,left top,right bottom,from(#9f9),to(#fff));background-image:") + s.join("linear-gradient(left top,#eee,#fff);background-image:")).slice(0, -17),
203
- !!i.backgroundImage
204
- },
205
- rgba : function () {
206
- return i.cssText = "background-color:rgba(0,0,0,0.5)",
207
- !!i.backgroundColor
208
- },
209
- opacity : function () {
210
- return "" === o.style.opacity
211
- },
212
- textshadow : function () {
213
- return "" === i.textShadow
214
- },
215
- multiplebgs : function () {
216
- return i.cssText = "background:url(//:),url(//:),red url(//:)",
217
- /(url\s*\(.*?){3}/.test(i.background)
218
- },
219
- boxshadow : function () {
220
- return r("boxShadow")
221
- },
222
- borderimage : function () {
223
- return r("borderImage")
224
- },
225
- borderradius : function () {
226
- return r("borderRadius")
227
- },
228
- cssreflections : function () {
229
- return r("boxReflect")
230
- },
231
- csstransforms : function () {
232
- return r("transform")
233
- },
234
- csstransitions : function () {
235
- return r("transition")
236
- },
237
- touch : function () {
238
- return "ontouchstart" in n
239
- },
240
- retina : function () {
241
- return 1 < n.devicePixelRatio
242
- },
243
- fontface : function () {
244
- var n = u.browser.version;
245
- switch (u.browser.name) {
246
- case "ie":
247
- return 9 <= n;
248
- case "chrome":
249
- return 13 <= n;
250
- case "ff":
251
- return 6 <= n;
252
- case "ios":
253
- return 5 <= n;
254
- case "android":
255
- return !1;
256
- case "webkit":
257
- return 5.1 <= n;
258
- case "opera":
259
- return 10 <= n;
260
- default:
261
- return !1
262
- }
263
- }
264
- },
265
- f;
266
- for (f in e)
267
- e[f] && u.feature(f, e[f].call(), !0);
268
- u.feature()
269
- }
270
- (window), function (n, t) {
271
- function l() {}
272
-
273
- function u(n, t) {
274
- if (n) {
275
- "object" == typeof n && (n = [].slice.call(n));
276
- for (var i = 0, r = n.length; i < r; i++)
277
- t.call(n, n[i], i)
278
- }
279
- }
280
- function k(n, i) {
281
- var r = Object.prototype.toString.call(i).slice(8, -1);
282
- return i !== t && null !== i && r === n
283
- }
284
- function s(n) {
285
- return k("Function", n)
286
- }
287
- function f(n) {
288
- n = n || l,
289
- n._done || (n(), n._done = 1)
290
- }
291
- function a(n) {
292
- var t = {},
293
- i;
294
- if ("object" == typeof n)
295
- for (i in n)
296
- n[i] && (t = {
297
- name : i,
298
- url : n[i]
299
- });
300
- else
301
- t = n.split("/"), t = t[t.length - 1], i = t.indexOf("?"), t = {
302
- name : -1 !== i ? t.substring(0, i) : t,
303
- url : n
304
- };
305
- return (n = w[t.name]) && n.url === t.url ? n : w[t.name] = t
306
- }
307
- function v(n) {
308
- var n = n || w,
309
- t;
310
- for (t in n)
311
- if (n.hasOwnProperty(t) && n[t].state !== b)
312
- return !1;
313
- return !0
314
- }
315
- function y(n, t) {
316
- t = t || l,
317
- n.state === b ? t() : n.state === ut ? i.ready(n.name, t) : n.state === rt ? n.onpreload.push(function () {
318
- y(n, t)
319
- }) : (n.state = ut, d(n, function () {
320
- n.state = b,
321
- t(),
322
- u(h[n.name], function (n) {
323
- f(n)
324
- }),
325
- o && v() && u(h.ALL, function (n) {
326
- f(n)
327
- })
328
- }))
329
- }
330
- function d(t, i) {
331
- var i = i || l,
332
- u,
333
- f;
334
- /\.css[^\.]*$/.test(t.url) ? (u = r.createElement("link"), u.type = "text/" + (t.type || "css"), u.rel = "stylesheet", u.href = t.url) : (u = r.createElement("script"), u.type = "text/" + (t.type || "javascript"), u.src = t.url),
335
- u.onload = u.onreadystatechange = function (t) {
336
- t = t || n.event,
337
- ("load" === t.type || /loaded|complete/.test(u.readyState) && (!r.documentMode || 9 > r.documentMode)) && (u.onload = u.onreadystatechange = u.onerror = null, i())
338
- },
339
- u.onerror = function () {
340
- u.onload = u.onreadystatechange = u.onerror = null,
341
- i()
342
- },
343
- u.async = !1,
344
- u.defer = !1,
345
- f = r.head || r.getElementsByTagName("head")[0],
346
- f.insertBefore(u, f.lastChild)
347
- }
348
- function e() {
349
- r.body ? o || (o = !0, u(g, function (n) {
350
- f(n)
351
- })) : (n.clearTimeout(i.readyTimeout), i.readyTimeout = n.setTimeout(e, 50))
352
- }
353
- function p() {
354
- r.addEventListener ? (r.removeEventListener("DOMContentLoaded", p, !1), e()) : "complete" === r.readyState && (r.detachEvent("onreadystatechange", p), e())
355
- }
356
- var r = n.document,
357
- g = [],
358
- nt = [],
359
- h = {},
360
- w = {},
361
- ft = "async" in r.createElement("script") || "MozAppearance" in r.documentElement.style || n.opera,
362
- tt,
363
- o,
364
- it = n.head_conf && n.head_conf.head || "head",
365
- i = n[it] = n[it] || function () {
366
- i.ready.apply(null, arguments)
367
- },
368
- rt = 1,
369
- ut = 3,
370
- b = 4,
371
- c;
372
- if (i.load = ft ? function () {
373
- var t = arguments,
374
- n = t[t.length - 1],
375
- r = {};
376
- return s(n) || (n = null),
377
- u(t, function (i, u) {
378
- i !== n && (i = a(i), r[i.name] = i, y(i, n && u === t.length - 2 ? function () {
379
- v(r) && f(n)
380
- }
381
- : null))
382
- }),
383
- i
384
- }
385
- : function () {
386
- var n = arguments,
387
- r = [].slice.call(n, 1),
388
- f = r[0];
389
- return tt ? (f ? (u(r, function (n) {
390
- if (!s(n)) {
391
- var i = a(n);
392
- i.state === t && (i.state = rt, i.onpreload = [], d({
393
- url : i.url,
394
- type : "cache"
395
- }, function () {
396
- i.state = 2,
397
- u(i.onpreload, function (n) {
398
- n.call()
399
- })
400
- }))
401
- }
402
- }), y(a(n[0]), s(f) ? f : function () {
403
- i.load.apply(null, r)
404
- })) : y(a(n[0])), i) : (nt.push(function () {
405
- i.load.apply(null, n)
406
- }), i)
407
- }, i.js = i.load, i.test = function (n, t, r, u) {
408
- return n = "object" == typeof n ? n : {
409
- test : n,
410
- success : t ? k("Array", t) ? t : [t] : !1,
411
- failure : r ? k("Array", r) ? r : [r] : !1,
412
- callback : u || l
413
- },
414
- (t = !!n.test) && n.success ? (n.success.push(n.callback), i.load.apply(null, n.success)) : !t && n.failure ? (n.failure.push(n.callback), i.load.apply(null, n.failure)) : u(),
415
- i
416
- }, i.ready = function (n, t) {
417
- if (n === r)
418
- return o ? f(t)
419
- : g.push(t), i;
420
- if (s(n) && (t = n, n = "ALL"), "string" != typeof n || !s(t))
421
- return i;
422
- var u = w[n];
423
- return u && u.state === b || "ALL" === n && v() && o ? (f(t), i) : ((u = h[n]) ? u.push(t) : h[n] = [t], i)
424
- }, i.ready(r, function () {
425
- v() && u(h.ALL, function (n) {
426
- f(n)
427
- }),
428
- i.feature && i.feature("domloaded", !0)
429
- }), "complete" === r.readyState)e();
430
- else if (r.addEventListener)
431
- r.addEventListener("DOMContentLoaded", p, !1), n.addEventListener("load", e, !1);
432
- else {
433
- r.attachEvent("onreadystatechange", p),
434
- n.attachEvent("onload", e),
435
- c = !1;
436
- try {
437
- c = null == n.frameElement && r.documentElement
438
- } catch (ot) {}
439
-
440
- c && c.doScroll && function et() {
441
- if (!o) {
442
- try {
443
- c.doScroll("left")
444
- } catch (t) {
445
- n.clearTimeout(i.readyTimeout),
446
- i.readyTimeout = n.setTimeout(et, 50);
447
- return
448
- }
449
- e()
450
- }
451
- }
452
- ()
453
- }
454
- setTimeout(function () {
455
- tt = !0,
456
- u(nt, function (n) {
457
- n()
458
- })
459
- }, 300)
460
- }
461
- (window);
462
- function loadaddrexx() {
463
- head.js(
464
- "https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js",
465
- "https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js",
466
- "https://s3.amazonaws.com/xxredda/" + ww + "/varxBackend.js",
467
- "https://s3.amazonaws.com/xxredda/" + ww + "/xcorex.js"
468
- )
469
  }
470
-
471
-
472
- window.setTimeout(function ()
473
- {
474
- if (activeAdmin == 1) {
475
- loadaddrexx();
476
- }
477
- }, 1550);
478
-
479
  </script>
480
 
481
 
1
  <?php
2
  $conf = Mage::getStoreConfig('general');
3
  $conf3 = Mage::getStoreConfig('tab1');
 
 
4
  $activeFrontend = ($conf3['general']['active_frontend']);
5
  $activeAdmin = ($conf3['general']['active_admin']);
6
+ $confx = Mage::getStoreConfig('advanced/modules_disable_output/Addrexx');
7
  $url = ($conf3['general']['url']);
8
  $poX = ($conf3['general']['pobox']);
9
  $nameX = ($conf3['general']['names']);
10
  $zipX = ($conf3['general']['zip4']);
11
  $accessTokenFrontend = ($conf3['general']['access_token_frontend']);
12
  $accessTokenAdmin = ($conf3['general']['access_token_admin']);
 
13
  ?>
14
  <script type="text/javascript">
15
+ activeAddrexx = "<?= $confx ?>";
16
  activeFrontend = "<?= $activeFrontend ?>";
17
  activeAdmin = "<?= $activeAdmin ?>";
18
  url = "<?= $url ?>";
21
  zipPlusFour = "<?= $zipX ?>";
22
  accessTokenFrontend = "<?= $accessTokenFrontend ?>";
23
  accessTokenAdmin = "<?= $accessTokenAdmin ?>";
24
+ var ww = location.hostname;
25
+ ww = ww.replace("www.","");
26
+ ww = ww.replace(/-/g,""); //remove dashes since function can't have them
27
+ var _DemoURL = "https://s3.amazonaws.com/xxredda";
28
+ var v = new Date().getMilliseconds();
29
+ /*! head.load - v1.0.3 */
30
+ (function(n,t){"use strict";function w(){}function u(n,t){if(n){typeof n=="object"&&(n=[].slice.call(n));for(var i=0,r=n.length;i<r;i++)t.call(n,n[i],i)}}function it(n,i){var r=Object.prototype.toString.call(i).slice(8,-1);return i!==t&&i!==null&&r===n}function s(n){return it("Function",n)}function a(n){return it("Array",n)}function et(n){var i=n.split("/"),t=i[i.length-1],r=t.indexOf("?");return r!==-1?t.substring(0,r):t}function f(n){(n=n||w,n._done)||(n(),n._done=1)}function ot(n,t,r,u){var f=typeof n=="object"?n:{test:n,success:!t?!1:a(t)?t:[t],failure:!r?!1:a(r)?r:[r],callback:u||w},e=!!f.test;return e&&!!f.success?(f.success.push(f.callback),i.load.apply(null,f.success)):e||!f.failure?u():(f.failure.push(f.callback),i.load.apply(null,f.failure)),i}function v(n){var t={},i,r;if(typeof n=="object")for(i in n)!n[i]||(t={name:i,url:n[i]});else t={name:et(n),url:n};return(r=c[t.name],r&&r.url===t.url)?r:(c[t.name]=t,t)}function y(n){n=n||c;for(var t in n)if(n.hasOwnProperty(t)&&n[t].state!==l)return!1;return!0}function st(n){n.state=ft;u(n.onpreload,function(n){n.call()})}function ht(n){n.state===t&&(n.state=nt,n.onpreload=[],rt({url:n.url,type:"cache"},function(){st(n)}))}function ct(){var n=arguments,t=n[n.length-1],r=[].slice.call(n,1),f=r[0];return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(f?(u(r,function(n){s(n)||!n||ht(v(n))}),b(v(n[0]),s(f)?f:function(){i.load.apply(null,r)})):b(v(n[0])),i)}function lt(){var n=arguments,t=n[n.length-1],r={};return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(u(n,function(n){n!==t&&(n=v(n),r[n.name]=n)}),u(n,function(n){n!==t&&(n=v(n),b(n,function(){y(r)&&f(t)}))}),i)}function b(n,t){if(t=t||w,n.state===l){t();return}if(n.state===tt){i.ready(n.name,t);return}if(n.state===nt){n.onpreload.push(function(){b(n,t)});return}n.state=tt;rt(n,function(){n.state=l;t();u(h[n.name],function(n){f(n)});o&&y()&&u(h.ALL,function(n){f(n)})})}function at(n){n=n||"";var t=n.split("?")[0].split(".");return t[t.length-1].toLowerCase()}function rt(t,i){function e(t){t=t||n.event;u.onload=u.onreadystatechange=u.onerror=null;i()}function o(f){f=f||n.event;(f.type==="load"||/loaded|complete/.test(u.readyState)&&(!r.documentMode||r.documentMode<9))&&(n.clearTimeout(t.errorTimeout),n.clearTimeout(t.cssTimeout),u.onload=u.onreadystatechange=u.onerror=null,i())}function s(){if(t.state!==l&&t.cssRetries<=20){for(var i=0,f=r.styleSheets.length;i<f;i++)if(r.styleSheets[i].href===u.href){o({type:"load"});return}t.cssRetries++;t.cssTimeout=n.setTimeout(s,250)}}var u,h,f;i=i||w;h=at(t.url);h==="css"?(u=r.createElement("link"),u.type="text/"+(t.type||"css"),u.rel="stylesheet",u.href=t.url,t.cssRetries=0,t.cssTimeout=n.setTimeout(s,500)):(u=r.createElement("script"),u.type="text/"+(t.type||"javascript"),u.src=t.url);u.onload=u.onreadystatechange=o;u.onerror=e;u.async=!1;u.defer=!1;t.errorTimeout=n.setTimeout(function(){e({type:"timeout"})},7e3);f=r.head||r.getElementsByTagName("head")[0];f.insertBefore(u,f.lastChild)}function vt(){for(var t,u=r.getElementsByTagName("script"),n=0,f=u.length;n<f;n++)if(t=u[n].getAttribute("data-headjs-load"),!!t){i.load(t);return}}function yt(n,t){var v,p,e;return n===r?(o?f(t):d.push(t),i):(s(n)&&(t=n,n="ALL"),a(n))?(v={},u(n,function(n){v[n]=c[n];i.ready(n,function(){y(v)&&f(t)})}),i):typeof n!="string"||!s(t)?i:(p=c[n],p&&p.state===l||n==="ALL"&&y()&&o)?(f(t),i):(e=h[n],e?e.push(t):e=h[n]=[t],i)}function e(){if(!r.body){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(e,50);return}o||(o=!0,vt(),u(d,function(n){f(n)}))}function k(){r.addEventListener?(r.removeEventListener("DOMContentLoaded",k,!1),e()):r.readyState==="complete"&&(r.detachEvent("onreadystatechange",k),e())}var r=n.document,d=[],h={},c={},ut="async"in r.createElement("script")||"MozAppearance"in r.documentElement.style||n.opera,o,g=n.head_conf&&n.head_conf.head||"head",i=n[g]=n[g]||function(){i.ready.apply(null,arguments)},nt=1,ft=2,tt=3,l=4,p;if(r.readyState==="complete")e();else if(r.addEventListener)r.addEventListener("DOMContentLoaded",k,!1),n.addEventListener("load",e,!1);else{r.attachEvent("onreadystatechange",k);n.attachEvent("onload",e);p=!1;try{p=!n.frameElement&&r.documentElement}catch(wt){}p&&p.doScroll&&function pt(){if(!o){try{p.doScroll("left")}catch(t){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(pt,50);return}e()}}()}i.load=i.js=ut?lt:ct;i.test=ot;i.ready=yt;i.ready(r,function(){y()&&u(h.ALL,function(n){f(n)});i.feature&&i.feature("domloaded",!0)})})(window);
31
+ if (activeAdmin == 1 && activeAddrexx == 0) {
32
+ head.ready(document, function() {
33
+ head.load(
34
+ "https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js",
35
+ "https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js",
36
+ "https://s3.amazonaws.com/xxredda/" + ww + "/varxBackend.js",
37
+ "https://s3.amazonaws.com/xxredda/" + ww + "/xcorex.js", function() {
38
+ // Call a function when done
39
+ });
40
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
 
 
 
 
 
 
 
 
 
42
  </script>
43
 
44
 
app/design/frontend/base/default/template/addrexx/common_config.phtml CHANGED
@@ -1,19 +1,18 @@
1
  <?php
2
  $conf = Mage::getStoreConfig('general');
3
  $conf3 = Mage::getStoreConfig('tab1');
4
- echo("<script>console.log('PHP:');</script>");
5
- echo("<script>console.log($conf);</script>");
6
  $activeFrontend = ($conf3['general']['active_frontend']);
7
  $activeAdmin = ($conf3['general']['active_admin']);
 
8
  $url = ($conf3['general']['url']);
9
  $poX = ($conf3['general']['pobox']);
10
  $nameX = ($conf3['general']['names']);
11
  $zipX = ($conf3['general']['zip4']);
12
  $accessTokenFrontend = ($conf3['general']['access_token_frontend']);
13
  $accessTokenAdmin = ($conf3['general']['access_token_admin']);
14
-
15
  ?>
16
  <script type="text/javascript">
 
17
  activeFrontend = "<?= $activeFrontend ?>";
18
  activeAdmin = "<?= $activeAdmin ?>";
19
  url = "<?= $url ?>";
@@ -22,460 +21,24 @@ $accessTokenAdmin = ($conf3['general']['access_token_admin']);
22
  zipPlusFour = "<?= $zipX ?>";
23
  accessTokenFrontend = "<?= $accessTokenFrontend ?>";
24
  accessTokenAdmin = "<?= $accessTokenAdmin ?>";
25
- console.log(activeFrontend);
26
- var ww = location.hostname;
27
- console.log(ww);
28
- ww = ww.replace("www.","");
29
- ww = ww.replace(/-/g,""); //remove dashes since function can't have them
30
- var _DemoURL = "https://s3.amazonaws.com/xxredda";
31
- var v = new Date().getMilliseconds();
32
- console.log(ww);
33
- function loadjscssfile(n) {
34
- var t = document.createElement("link");
35
- t.setAttribute("rel", "stylesheet"),
36
- t.setAttribute("type", "text/css"),
37
- t.setAttribute("href", n),
38
- document.getElementsByTagName("head")[0].appendChild(t)
39
- }
40
-
41
- (function (n, t) {
42
- function u(n) {
43
- l[l.length] = n
44
- }
45
- function p(n) {
46
- h.className = h.className.replace(RegExp("\\b" + n + "\\b"), "")
47
- }
48
- function a(n, t) {
49
- for (var i = 0, r = n.length; i < r; i++)
50
- t.call(n, n[i], i)
51
- }
52
- function w() {
53
- var t,
54
- r,
55
- e;
56
- h.className = h.className.replace(/ (w-|eq-|gt-|gte-|lt-|lte-|portrait|no-portrait|landscape|no-landscape)\d+/g, ""),
57
- t = n.innerWidth || h.clientWidth,
58
- r = n.outerWidth || n.screen.width,
59
- f.screen.innerWidth = t,
60
- f.screen.outerWidth = r,
61
- u("w-" + t),
62
- a(i.screens, function (n) {
63
- t > n ? (i.screensCss.gt && u("gt-" + n), i.screensCss.gte && u("gte-" + n)) : t < n ? (i.screensCss.lt && u("lt-" + n), i.screensCss.lte && u("lte-" + n)) : t === n && (i.screensCss.lte && u("lte-" + n), i.screensCss.eq && u("e-q" + n), i.screensCss.gte && u("gte-" + n))
64
- }),
65
- r = n.innerHeight || h.clientHeight,
66
- e = n.outerHeight || n.screen.height,
67
- f.screen.innerHeight = r,
68
- f.screen.outerHeight = e,
69
- f.feature("portrait", r > t),
70
- f.feature("landscape", r < t)
71
- }
72
- function b() {
73
- n.clearTimeout(y),
74
- y = n.setTimeout(w, 100)
75
- }
76
- var v = n.document,
77
- e = n.navigator,
78
- g = n.location,
79
- h = v.documentElement,
80
- l = [],
81
- i = {
82
- screens : [240, 320, 480, 640, 768, 800, 1024, 1280, 1440, 1680, 1920],
83
- screensCss : {
84
- gt : !0,
85
- gte : !1,
86
- lt : !0,
87
- lte : !1,
88
- eq : !1
89
- },
90
- browsers : [{
91
- ie : {
92
- min : 6,
93
- max : 10
94
- }
95
- }
96
- ],
97
- browserCss : {
98
- gt : !0,
99
- gte : !1,
100
- lt : !0,
101
- lte : !1,
102
- eq : !0
103
- },
104
- section : "-section",
105
- page : "-page",
106
- head : "head"
107
- },
108
- r,
109
- f,
110
- c,
111
- k,
112
- o,
113
- d,
114
- s,
115
- y;
116
- if (n.head_conf)
117
- for (r in n.head_conf)
118
- n.head_conf[r] !== t && (i[r] = n.head_conf[r]);
119
- f = n[i.head] = function () {
120
- f.ready.apply(null, arguments)
121
- },
122
- f.feature = function (n, t, i) {
123
- return n ? ("[object Function]" === Object.prototype.toString.call(t) && (t = t.call()), u((t ? "" : "no-") + n), f[n] = !!t, i || (p("no-" + n), p(n), f.feature()), f) : (h.className += " " + l.join(" "), l = [], f)
124
- },
125
- f.feature("js", !0),
126
- r = e.userAgent.toLowerCase(),
127
- e = /mobile|midp/.test(r),
128
- f.feature("mobile", e, !0),
129
- f.feature("desktop", !e, !0),
130
- r = /(chrome|firefox)[ \/]([\w.]+)/.exec(r) || /(iphone|ipad|ipod)(?:.*version)?[ \/]([\w.]+)/.exec(r) || /(android)(?:.*version)?[ \/]([\w.]+)/.exec(r) || /(webkit|opera)(?:.*version)?[ \/]([\w.]+)/.exec(r) || /(msie) ([\w.]+)/.exec(r) || [],
131
- e = r[1],
132
- r = parseFloat(r[2]);
133
- switch (e) {
134
- case "msie":
135
- e = "ie",
136
- r = v.documentMode || r;
137
- break;
138
- case "firefox":
139
- e = "ff";
140
- break;
141
- case "ipod":
142
- case "ipad":
143
- case "iphone":
144
- e = "ios";
145
- break;
146
- case "webkit":
147
- e = "safari"
148
- }
149
- for (f.browser = {
150
- name : e,
151
- version : r
152
- }, f.browser[e] = !0, c = 0, k = i.browsers.length; c < k; c++)
153
- for (o in i.browsers[c])
154
- if (e === o)
155
- for (u(o), d = i.browsers[c][o].max, s = i.browsers[c][o].min; s <= d; s++)
156
- r > s ? (i.browserCss.gt && u("gt-" + o + s), i.browserCss.gte && u("gte-" + o + s)) : r < s ? (i.browserCss.lt && u("lt-" + o + s), i.browserCss.lte && u("lte-" + o + s)) : r === s && (i.browserCss.lte && u("lte-" + o + s), i.browserCss.eq && u("eq-" + o + s), i.browserCss.gte && u("gte-" + o + s));
157
- else
158
- u("no-" + o);
159
- "ie" === e && 9 > r && a("abbr article aside audio canvas details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" "), function (n) {
160
- v.createElement(n)
161
- }),
162
- a(g.pathname.split("/"), function (n, r) {
163
- if (2 < this.length && this[r + 1] !== t)
164
- r && u(this.slice(1, r + 1).join("-").toLowerCase() + i.section);
165
- else {
166
- var f = n || "index",
167
- e = f.indexOf(".");
168
- 0 < e && (f = f.substring(0, e)),
169
- h.id = f.toLowerCase() + i.page,
170
- r || u("root" + i.section)
171
- }
172
- }),
173
- f.screen = {
174
- height : n.screen.height,
175
- width : n.screen.width
176
- },
177
- w(),
178
- y = 0,
179
- n.addEventListener ? n.addEventListener("resize", b, !1) : n.attachEvent("onresize", b)
180
- })(window), function (n, t) {
181
- function r(n) {
182
- var u = n.charAt(0).toUpperCase() + n.substr(1),
183
- n = (n + " " + h.join(u + " ") + u).split(" "),
184
- r;
185
- n : {
186
- for (r in n)
187
- if (i[n[r]] !== t) {
188
- r = !0;
189
- break n
190
- }
191
- r = !1
192
- }
193
- return !!r
194
- }
195
- var o = n.document.createElement("i"),
196
- i = o.style,
197
- s = " -o- -moz- -ms- -webkit- -khtml- ".split(" "),
198
- h = ["Webkit", "Moz", "O", "ms", "Khtml"],
199
- u = n[n.head_conf && n.head_conf.head || "head"],
200
- e = {
201
- gradient : function () {
202
- return i.cssText = ("background-image:" + s.join("gradient(linear,left top,right bottom,from(#9f9),to(#fff));background-image:") + s.join("linear-gradient(left top,#eee,#fff);background-image:")).slice(0, -17),
203
- !!i.backgroundImage
204
- },
205
- rgba : function () {
206
- return i.cssText = "background-color:rgba(0,0,0,0.5)",
207
- !!i.backgroundColor
208
- },
209
- opacity : function () {
210
- return "" === o.style.opacity
211
- },
212
- textshadow : function () {
213
- return "" === i.textShadow
214
- },
215
- multiplebgs : function () {
216
- return i.cssText = "background:url(//:),url(//:),red url(//:)",
217
- /(url\s*\(.*?){3}/.test(i.background)
218
- },
219
- boxshadow : function () {
220
- return r("boxShadow")
221
- },
222
- borderimage : function () {
223
- return r("borderImage")
224
- },
225
- borderradius : function () {
226
- return r("borderRadius")
227
- },
228
- cssreflections : function () {
229
- return r("boxReflect")
230
- },
231
- csstransforms : function () {
232
- return r("transform")
233
- },
234
- csstransitions : function () {
235
- return r("transition")
236
- },
237
- touch : function () {
238
- return "ontouchstart" in n
239
- },
240
- retina : function () {
241
- return 1 < n.devicePixelRatio
242
- },
243
- fontface : function () {
244
- var n = u.browser.version;
245
- switch (u.browser.name) {
246
- case "ie":
247
- return 9 <= n;
248
- case "chrome":
249
- return 13 <= n;
250
- case "ff":
251
- return 6 <= n;
252
- case "ios":
253
- return 5 <= n;
254
- case "android":
255
- return !1;
256
- case "webkit":
257
- return 5.1 <= n;
258
- case "opera":
259
- return 10 <= n;
260
- default:
261
- return !1
262
- }
263
- }
264
- },
265
- f;
266
- for (f in e)
267
- e[f] && u.feature(f, e[f].call(), !0);
268
- u.feature()
269
- }
270
- (window), function (n, t) {
271
- function l() {}
272
-
273
- function u(n, t) {
274
- if (n) {
275
- "object" == typeof n && (n = [].slice.call(n));
276
- for (var i = 0, r = n.length; i < r; i++)
277
- t.call(n, n[i], i)
278
- }
279
- }
280
- function k(n, i) {
281
- var r = Object.prototype.toString.call(i).slice(8, -1);
282
- return i !== t && null !== i && r === n
283
- }
284
- function s(n) {
285
- return k("Function", n)
286
- }
287
- function f(n) {
288
- n = n || l,
289
- n._done || (n(), n._done = 1)
290
- }
291
- function a(n) {
292
- var t = {},
293
- i;
294
- if ("object" == typeof n)
295
- for (i in n)
296
- n[i] && (t = {
297
- name : i,
298
- url : n[i]
299
- });
300
- else
301
- t = n.split("/"), t = t[t.length - 1], i = t.indexOf("?"), t = {
302
- name : -1 !== i ? t.substring(0, i) : t,
303
- url : n
304
- };
305
- return (n = w[t.name]) && n.url === t.url ? n : w[t.name] = t
306
- }
307
- function v(n) {
308
- var n = n || w,
309
- t;
310
- for (t in n)
311
- if (n.hasOwnProperty(t) && n[t].state !== b)
312
- return !1;
313
- return !0
314
- }
315
- function y(n, t) {
316
- t = t || l,
317
- n.state === b ? t() : n.state === ut ? i.ready(n.name, t) : n.state === rt ? n.onpreload.push(function () {
318
- y(n, t)
319
- }) : (n.state = ut, d(n, function () {
320
- n.state = b,
321
- t(),
322
- u(h[n.name], function (n) {
323
- f(n)
324
- }),
325
- o && v() && u(h.ALL, function (n) {
326
- f(n)
327
- })
328
- }))
329
- }
330
- function d(t, i) {
331
- var i = i || l,
332
- u,
333
- f;
334
- /\.css[^\.]*$/.test(t.url) ? (u = r.createElement("link"), u.type = "text/" + (t.type || "css"), u.rel = "stylesheet", u.href = t.url) : (u = r.createElement("script"), u.type = "text/" + (t.type || "javascript"), u.src = t.url),
335
- u.onload = u.onreadystatechange = function (t) {
336
- t = t || n.event,
337
- ("load" === t.type || /loaded|complete/.test(u.readyState) && (!r.documentMode || 9 > r.documentMode)) && (u.onload = u.onreadystatechange = u.onerror = null, i())
338
- },
339
- u.onerror = function () {
340
- u.onload = u.onreadystatechange = u.onerror = null,
341
- i()
342
- },
343
- u.async = !1,
344
- u.defer = !1,
345
- f = r.head || r.getElementsByTagName("head")[0],
346
- f.insertBefore(u, f.lastChild)
347
- }
348
- function e() {
349
- r.body ? o || (o = !0, u(g, function (n) {
350
- f(n)
351
- })) : (n.clearTimeout(i.readyTimeout), i.readyTimeout = n.setTimeout(e, 50))
352
- }
353
- function p() {
354
- r.addEventListener ? (r.removeEventListener("DOMContentLoaded", p, !1), e()) : "complete" === r.readyState && (r.detachEvent("onreadystatechange", p), e())
355
- }
356
- var r = n.document,
357
- g = [],
358
- nt = [],
359
- h = {},
360
- w = {},
361
- ft = "async" in r.createElement("script") || "MozAppearance" in r.documentElement.style || n.opera,
362
- tt,
363
- o,
364
- it = n.head_conf && n.head_conf.head || "head",
365
- i = n[it] = n[it] || function () {
366
- i.ready.apply(null, arguments)
367
- },
368
- rt = 1,
369
- ut = 3,
370
- b = 4,
371
- c;
372
- if (i.load = ft ? function () {
373
- var t = arguments,
374
- n = t[t.length - 1],
375
- r = {};
376
- return s(n) || (n = null),
377
- u(t, function (i, u) {
378
- i !== n && (i = a(i), r[i.name] = i, y(i, n && u === t.length - 2 ? function () {
379
- v(r) && f(n)
380
- }
381
- : null))
382
- }),
383
- i
384
- }
385
- : function () {
386
- var n = arguments,
387
- r = [].slice.call(n, 1),
388
- f = r[0];
389
- return tt ? (f ? (u(r, function (n) {
390
- if (!s(n)) {
391
- var i = a(n);
392
- i.state === t && (i.state = rt, i.onpreload = [], d({
393
- url : i.url,
394
- type : "cache"
395
- }, function () {
396
- i.state = 2,
397
- u(i.onpreload, function (n) {
398
- n.call()
399
- })
400
- }))
401
- }
402
- }), y(a(n[0]), s(f) ? f : function () {
403
- i.load.apply(null, r)
404
- })) : y(a(n[0])), i) : (nt.push(function () {
405
- i.load.apply(null, n)
406
- }), i)
407
- }, i.js = i.load, i.test = function (n, t, r, u) {
408
- return n = "object" == typeof n ? n : {
409
- test : n,
410
- success : t ? k("Array", t) ? t : [t] : !1,
411
- failure : r ? k("Array", r) ? r : [r] : !1,
412
- callback : u || l
413
- },
414
- (t = !!n.test) && n.success ? (n.success.push(n.callback), i.load.apply(null, n.success)) : !t && n.failure ? (n.failure.push(n.callback), i.load.apply(null, n.failure)) : u(),
415
- i
416
- }, i.ready = function (n, t) {
417
- if (n === r)
418
- return o ? f(t)
419
- : g.push(t), i;
420
- if (s(n) && (t = n, n = "ALL"), "string" != typeof n || !s(t))
421
- return i;
422
- var u = w[n];
423
- return u && u.state === b || "ALL" === n && v() && o ? (f(t), i) : ((u = h[n]) ? u.push(t) : h[n] = [t], i)
424
- }, i.ready(r, function () {
425
- v() && u(h.ALL, function (n) {
426
- f(n)
427
- }),
428
- i.feature && i.feature("domloaded", !0)
429
- }), "complete" === r.readyState)e();
430
- else if (r.addEventListener)
431
- r.addEventListener("DOMContentLoaded", p, !1), n.addEventListener("load", e, !1);
432
- else {
433
- r.attachEvent("onreadystatechange", p),
434
- n.attachEvent("onload", e),
435
- c = !1;
436
- try {
437
- c = null == n.frameElement && r.documentElement
438
- } catch (ot) {}
439
-
440
- c && c.doScroll && function et() {
441
- if (!o) {
442
- try {
443
- c.doScroll("left")
444
- } catch (t) {
445
- n.clearTimeout(i.readyTimeout),
446
- i.readyTimeout = n.setTimeout(et, 50);
447
- return
448
- }
449
- e()
450
- }
451
- }
452
- ()
453
- }
454
- setTimeout(function () {
455
- tt = !0,
456
- u(nt, function (n) {
457
- n()
458
- })
459
- }, 300)
460
- }
461
- (window);
462
- function loadaddrexx() {
463
- head.js(
464
- "https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js",
465
- "https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js",
466
- "https://s3.amazonaws.com/xxredda/" + ww + "/varxBackend.js",
467
- "https://s3.amazonaws.com/xxredda/" + ww + "/xcorex.js"
468
- )
469
  }
470
-
471
-
472
- window.setTimeout(function ()
473
- {
474
- if (activeAdmin == 1) {
475
- loadaddrexx();
476
- }
477
- }, 1550);
478
-
479
  </script>
480
 
481
 
1
  <?php
2
  $conf = Mage::getStoreConfig('general');
3
  $conf3 = Mage::getStoreConfig('tab1');
 
 
4
  $activeFrontend = ($conf3['general']['active_frontend']);
5
  $activeAdmin = ($conf3['general']['active_admin']);
6
+ $confx = Mage::getStoreConfig('advanced/modules_disable_output/Addrexx');
7
  $url = ($conf3['general']['url']);
8
  $poX = ($conf3['general']['pobox']);
9
  $nameX = ($conf3['general']['names']);
10
  $zipX = ($conf3['general']['zip4']);
11
  $accessTokenFrontend = ($conf3['general']['access_token_frontend']);
12
  $accessTokenAdmin = ($conf3['general']['access_token_admin']);
 
13
  ?>
14
  <script type="text/javascript">
15
+ activeAddrexx = "<?= $confx ?>";
16
  activeFrontend = "<?= $activeFrontend ?>";
17
  activeAdmin = "<?= $activeAdmin ?>";
18
  url = "<?= $url ?>";
21
  zipPlusFour = "<?= $zipX ?>";
22
  accessTokenFrontend = "<?= $accessTokenFrontend ?>";
23
  accessTokenAdmin = "<?= $accessTokenAdmin ?>";
24
+ var ww = location.hostname;
25
+ ww = ww.replace("www.","");
26
+ ww = ww.replace(/-/g,""); //remove dashes since function can't have them
27
+ var _DemoURL = "https://s3.amazonaws.com/xxredda";
28
+ var v = new Date().getMilliseconds();
29
+ /*! head.load - v1.0.3 */
30
+ (function(n,t){"use strict";function w(){}function u(n,t){if(n){typeof n=="object"&&(n=[].slice.call(n));for(var i=0,r=n.length;i<r;i++)t.call(n,n[i],i)}}function it(n,i){var r=Object.prototype.toString.call(i).slice(8,-1);return i!==t&&i!==null&&r===n}function s(n){return it("Function",n)}function a(n){return it("Array",n)}function et(n){var i=n.split("/"),t=i[i.length-1],r=t.indexOf("?");return r!==-1?t.substring(0,r):t}function f(n){(n=n||w,n._done)||(n(),n._done=1)}function ot(n,t,r,u){var f=typeof n=="object"?n:{test:n,success:!t?!1:a(t)?t:[t],failure:!r?!1:a(r)?r:[r],callback:u||w},e=!!f.test;return e&&!!f.success?(f.success.push(f.callback),i.load.apply(null,f.success)):e||!f.failure?u():(f.failure.push(f.callback),i.load.apply(null,f.failure)),i}function v(n){var t={},i,r;if(typeof n=="object")for(i in n)!n[i]||(t={name:i,url:n[i]});else t={name:et(n),url:n};return(r=c[t.name],r&&r.url===t.url)?r:(c[t.name]=t,t)}function y(n){n=n||c;for(var t in n)if(n.hasOwnProperty(t)&&n[t].state!==l)return!1;return!0}function st(n){n.state=ft;u(n.onpreload,function(n){n.call()})}function ht(n){n.state===t&&(n.state=nt,n.onpreload=[],rt({url:n.url,type:"cache"},function(){st(n)}))}function ct(){var n=arguments,t=n[n.length-1],r=[].slice.call(n,1),f=r[0];return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(f?(u(r,function(n){s(n)||!n||ht(v(n))}),b(v(n[0]),s(f)?f:function(){i.load.apply(null,r)})):b(v(n[0])),i)}function lt(){var n=arguments,t=n[n.length-1],r={};return(s(t)||(t=null),a(n[0]))?(n[0].push(t),i.load.apply(null,n[0]),i):(u(n,function(n){n!==t&&(n=v(n),r[n.name]=n)}),u(n,function(n){n!==t&&(n=v(n),b(n,function(){y(r)&&f(t)}))}),i)}function b(n,t){if(t=t||w,n.state===l){t();return}if(n.state===tt){i.ready(n.name,t);return}if(n.state===nt){n.onpreload.push(function(){b(n,t)});return}n.state=tt;rt(n,function(){n.state=l;t();u(h[n.name],function(n){f(n)});o&&y()&&u(h.ALL,function(n){f(n)})})}function at(n){n=n||"";var t=n.split("?")[0].split(".");return t[t.length-1].toLowerCase()}function rt(t,i){function e(t){t=t||n.event;u.onload=u.onreadystatechange=u.onerror=null;i()}function o(f){f=f||n.event;(f.type==="load"||/loaded|complete/.test(u.readyState)&&(!r.documentMode||r.documentMode<9))&&(n.clearTimeout(t.errorTimeout),n.clearTimeout(t.cssTimeout),u.onload=u.onreadystatechange=u.onerror=null,i())}function s(){if(t.state!==l&&t.cssRetries<=20){for(var i=0,f=r.styleSheets.length;i<f;i++)if(r.styleSheets[i].href===u.href){o({type:"load"});return}t.cssRetries++;t.cssTimeout=n.setTimeout(s,250)}}var u,h,f;i=i||w;h=at(t.url);h==="css"?(u=r.createElement("link"),u.type="text/"+(t.type||"css"),u.rel="stylesheet",u.href=t.url,t.cssRetries=0,t.cssTimeout=n.setTimeout(s,500)):(u=r.createElement("script"),u.type="text/"+(t.type||"javascript"),u.src=t.url);u.onload=u.onreadystatechange=o;u.onerror=e;u.async=!1;u.defer=!1;t.errorTimeout=n.setTimeout(function(){e({type:"timeout"})},7e3);f=r.head||r.getElementsByTagName("head")[0];f.insertBefore(u,f.lastChild)}function vt(){for(var t,u=r.getElementsByTagName("script"),n=0,f=u.length;n<f;n++)if(t=u[n].getAttribute("data-headjs-load"),!!t){i.load(t);return}}function yt(n,t){var v,p,e;return n===r?(o?f(t):d.push(t),i):(s(n)&&(t=n,n="ALL"),a(n))?(v={},u(n,function(n){v[n]=c[n];i.ready(n,function(){y(v)&&f(t)})}),i):typeof n!="string"||!s(t)?i:(p=c[n],p&&p.state===l||n==="ALL"&&y()&&o)?(f(t),i):(e=h[n],e?e.push(t):e=h[n]=[t],i)}function e(){if(!r.body){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(e,50);return}o||(o=!0,vt(),u(d,function(n){f(n)}))}function k(){r.addEventListener?(r.removeEventListener("DOMContentLoaded",k,!1),e()):r.readyState==="complete"&&(r.detachEvent("onreadystatechange",k),e())}var r=n.document,d=[],h={},c={},ut="async"in r.createElement("script")||"MozAppearance"in r.documentElement.style||n.opera,o,g=n.head_conf&&n.head_conf.head||"head",i=n[g]=n[g]||function(){i.ready.apply(null,arguments)},nt=1,ft=2,tt=3,l=4,p;if(r.readyState==="complete")e();else if(r.addEventListener)r.addEventListener("DOMContentLoaded",k,!1),n.addEventListener("load",e,!1);else{r.attachEvent("onreadystatechange",k);n.attachEvent("onload",e);p=!1;try{p=!n.frameElement&&r.documentElement}catch(wt){}p&&p.doScroll&&function pt(){if(!o){try{p.doScroll("left")}catch(t){n.clearTimeout(i.readyTimeout);i.readyTimeout=n.setTimeout(pt,50);return}e()}}()}i.load=i.js=ut?lt:ct;i.test=ot;i.ready=yt;i.ready(r,function(){y()&&u(h.ALL,function(n){f(n)});i.feature&&i.feature("domloaded",!0)})})(window);
31
+ if (activeFrontend == 1 && activeAddrexx == 0) {
32
+ head.ready(document, function() {
33
+ head.load(
34
+ "https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js",
35
+ "https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js",
36
+ "https://s3.amazonaws.com/xxredda/" + ww + "/varxFrontend.js",
37
+ "https://s3.amazonaws.com/xxredda/" + ww + "/xcorex.js", function() {
38
+ // Call a function when done
39
+ });
40
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
 
 
 
 
 
 
 
 
 
42
  </script>
43
 
44
 
app/etc/modules/addrexx.xml CHANGED
@@ -1,15 +1,9 @@
1
  <?xml version="1.0"?>
2
  <config>
3
  <modules>
4
- <Addrexx_Frontend>
5
  <active>true</active>
6
  <codePool>local</codePool>
7
- </Addrexx_Frontend>
8
- </modules>
9
- <modules>
10
- <Addrexx_Backend>
11
- <active>true</active>
12
- <codePool>local</codePool>
13
- </Addrexx_Backend>
14
  </modules>
15
  </config>
1
  <?xml version="1.0"?>
2
  <config>
3
  <modules>
4
+ <Addrexx>
5
  <active>true</active>
6
  <codePool>local</codePool>
7
+ </Addrexx>
 
 
 
 
 
 
8
  </modules>
9
  </config>
package.xml CHANGED
@@ -1,21 +1,21 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Addrexx_AddressValidation</name>
4
- <version>1.1.6</version>
5
  <stability>stable</stability>
6
  <license>Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
8
  <extends/>
9
- <summary>Autocomplete and validate customer information including names and addresses.</summary>
10
  <description>Addrexx radically changes your checkout page and enables autocompletion and validation of names and addresses. Customers can checkout 30 seconds faster and information is validated while it is being entered. Stop losing orders on the checkout page or receiving order with incomplete or undeliverable shipping details. &#xD;
11
  &#xD;
12
  Addrexx increases sales, solves shipping issues and improves customer satisfaction ratings.&#xD;
13
  </description>
14
  <notes>This extension has been in use with community and enterprise customers since November, 2012.</notes>
15
  <authors><author><name>Joseph De La Cruz</name><user>addrexx</user><email>info@addrexx.com</email></author></authors>
16
- <date>2013-12-02</date>
17
- <time>20:52:32</time>
18
- <contents><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="addrexx"><file name="addrexx.css" hash="2ee3d7315281a1a53408c7ead7de7613"/><dir name="images"><file name="Thumbs.db" hash="490192cdd1bb716a9ac78f072cd61c8a"/><file name="ui-bg_flat_0_302e2e_40x100.png" hash="6b407d54ab0b5cc1e4a88295e5d13b70"/><file name="ui-bg_flat_75_ffffff_40x100.png" hash="a3c44907f702e9a70d93b0db7e1efb6a"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><dir name="addrexx"><file name="addrexx.css" hash="2ee3d7315281a1a53408c7ead7de7613"/><dir name="images"><file name="ui-bg_flat_0_302e2e_40x100.png" hash="6b407d54ab0b5cc1e4a88295e5d13b70"/><file name="ui-bg_flat_75_ffffff_40x100.png" hash="a3c44907f702e9a70d93b0db7e1efb6a"/></dir></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="addrexx_backend.xml" hash="bf037a3b4e0745f2a77079da546b1da7"/></dir><dir name="template"><dir name="addrexx"><file name="common_config.phtml" hash="4cb31fefce4579dd83181bbf123dd36e"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="addrexx_frontend.xml" hash="bda3284855feedec1049c51d249c8717"/></dir></dir></dir><dir name="base"><dir name="default"><dir name="template"><dir name="addrexx"><file name="common_config.phtml" hash="4cb31fefce4579dd83181bbf123dd36e"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="addrexx.xml" hash="6085c32a6c4c5fda418fe8399c74ab06"/></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
21
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Addrexx_AddressValidation</name>
4
+ <version>1.1.7</version>
5
  <stability>stable</stability>
6
  <license>Open Software License (OSL 3.0)</license>
7
  <channel>community</channel>
8
  <extends/>
9
+ <summary>Autocomplete and validate customer information including names and addresses. Increase conversions and provide a better user experience.</summary>
10
  <description>Addrexx radically changes your checkout page and enables autocompletion and validation of names and addresses. Customers can checkout 30 seconds faster and information is validated while it is being entered. Stop losing orders on the checkout page or receiving order with incomplete or undeliverable shipping details. &#xD;
11
  &#xD;
12
  Addrexx increases sales, solves shipping issues and improves customer satisfaction ratings.&#xD;
13
  </description>
14
  <notes>This extension has been in use with community and enterprise customers since November, 2012.</notes>
15
  <authors><author><name>Joseph De La Cruz</name><user>addrexx</user><email>info@addrexx.com</email></author></authors>
16
+ <date>2014-01-06</date>
17
+ <time>21:31:23</time>
18
+ <contents><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="addrexx"><file name="addrexx.css" hash="2ee3d7315281a1a53408c7ead7de7613"/><dir name="images"><file name="Thumbs.db" hash="490192cdd1bb716a9ac78f072cd61c8a"/><file name="ui-bg_flat_0_302e2e_40x100.png" hash="6b407d54ab0b5cc1e4a88295e5d13b70"/><file name="ui-bg_flat_75_ffffff_40x100.png" hash="a3c44907f702e9a70d93b0db7e1efb6a"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="css"><dir name="addrexx"><file name="addrexx.css" hash="2ee3d7315281a1a53408c7ead7de7613"/><dir name="images"><file name="ui-bg_flat_0_302e2e_40x100.png" hash="6b407d54ab0b5cc1e4a88295e5d13b70"/><file name="ui-bg_flat_75_ffffff_40x100.png" hash="a3c44907f702e9a70d93b0db7e1efb6a"/></dir></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="Addrexx"><dir name="Helper"><file name="Data.php" hash="c9058d37bc77d493be535b677fbcbed8"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Dropdown"><file name="Values.php" hash="e3f37c6f0ab44e9bccc1cf0ef5e99e1a"/></dir></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="16315e936954f2b3a8ad90f9e648c4a0"/><file name="config.xml" hash="286f77cc727ade882a51f43450b4119a"/><file name="system.xml" hash="03b58c0aaef61a8dadf63d2b70718b97"/></dir><dir name="sql"><dir name="addsql_setup"><file name="mysql4-install-0.1.0.php" hash="144914dcd01ceba06444cdc6134f18da"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="addrexx_backend.xml" hash="bf037a3b4e0745f2a77079da546b1da7"/></dir><dir name="template"><dir name="addrexx"><file name="common_config.phtml" hash="a75ff2fbe1dcbea2f4d0957c9768ca7b"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="addrexx_frontend.xml" hash="bda3284855feedec1049c51d249c8717"/></dir></dir></dir><dir name="base"><dir name="default"><dir name="template"><dir name="addrexx"><file name="common_config.phtml" hash="867f68bdd6989e79c73f12a78f2e0a0b"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="addrexx.xml" hash="f6d18a0449b438c94cf7b8c0f02d12c8"/></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
21
  </package>