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.6 |
Comparing to | |
See all releases |
Version 1.1.6
- app/design/adminhtml/default/default/layout/addrexx_backend.xml +43 -0
- app/design/adminhtml/default/default/template/addrexx/common_config.phtml +483 -0
- app/design/frontend/base/default/template/addrexx/common_config.phtml +483 -0
- app/design/frontend/default/default/layout/addrexx_frontend.xml +63 -0
- app/etc/modules/addrexx.xml +15 -0
- package.xml +21 -0
- skin/adminhtml/default/default/css/addrexx/addrexx.css +574 -0
- skin/adminhtml/default/default/css/addrexx/images/Thumbs.db +0 -0
- skin/adminhtml/default/default/css/addrexx/images/ui-bg_flat_0_302e2e_40x100.png +0 -0
- skin/adminhtml/default/default/css/addrexx/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- skin/frontend/default/default/css/addrexx/addrexx.css +574 -0
- skin/frontend/default/default/css/addrexx/images/ui-bg_flat_0_302e2e_40x100.png +0 -0
- skin/frontend/default/default/css/addrexx/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
app/design/adminhtml/default/default/layout/addrexx_backend.xml
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout version="0.1.0">
|
3 |
+
<adminhtml_sales_order_create_index>
|
4 |
+
<reference name="head">
|
5 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
6 |
+
</reference>
|
7 |
+
<reference name="js">
|
8 |
+
<block type="adminhtml/template" name="addrexx_config" template="addrexx/common_config.phtml" />
|
9 |
+
</reference>
|
10 |
+
</adminhtml_sales_order_create_index>
|
11 |
+
<adminhtml_sales_order_index>
|
12 |
+
<reference name="head">
|
13 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
14 |
+
</reference>
|
15 |
+
<reference name="js">
|
16 |
+
<block type="adminhtml/template" name="addrexx_config" template="addrexx/common_config.phtml" />
|
17 |
+
</reference>
|
18 |
+
</adminhtml_sales_order_index>
|
19 |
+
<adminhtml_customer_new_key>
|
20 |
+
<reference name="head">
|
21 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
22 |
+
</reference>
|
23 |
+
<reference name="js">
|
24 |
+
<block type="adminhtml/template" name="addrexx_config" template="addrexx/common_config.phtml" />
|
25 |
+
</reference>
|
26 |
+
</adminhtml_customer_new_key>
|
27 |
+
<adminhtml_customer_new>
|
28 |
+
<reference name="head">
|
29 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
30 |
+
</reference>
|
31 |
+
<reference name="js">
|
32 |
+
<block type="adminhtml/template" name="addrexx_config" template="addrexx/common_config.phtml" />
|
33 |
+
</reference>
|
34 |
+
</adminhtml_customer_new>
|
35 |
+
<adminhtml_customer_edit>
|
36 |
+
<reference name="head">
|
37 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
38 |
+
</reference>
|
39 |
+
<reference name="js">
|
40 |
+
<block type="adminhtml/template" name="addrexx_config" template="addrexx/common_config.phtml" />
|
41 |
+
</reference>
|
42 |
+
</adminhtml_customer_edit>
|
43 |
+
</layout>
|
app/design/adminhtml/default/default/template/addrexx/common_config.phtml
ADDED
@@ -0,0 +1,483 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 ?>";
|
20 |
+
poCheck = "<?= $poX ?>";
|
21 |
+
nameAutocomplete = "<?= $nameX ?>";
|
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 |
+
|
482 |
+
|
483 |
+
|
app/design/frontend/base/default/template/addrexx/common_config.phtml
ADDED
@@ -0,0 +1,483 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 ?>";
|
20 |
+
poCheck = "<?= $poX ?>";
|
21 |
+
nameAutocomplete = "<?= $nameX ?>";
|
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 |
+
|
482 |
+
|
483 |
+
|
app/design/frontend/default/default/layout/addrexx_frontend.xml
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Addrexx
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* @category design
|
9 |
+
* @package default_default
|
10 |
+
* @author Addrexx <info@addrexx.com>
|
11 |
+
*/
|
12 |
+
-->
|
13 |
+
<layout version="0.1.0">
|
14 |
+
<checkout_onepage_index>
|
15 |
+
<reference name="head">
|
16 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
17 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
18 |
+
</reference>
|
19 |
+
</checkout_onepage_index>
|
20 |
+
<onestepcheckout_index_index>
|
21 |
+
<reference name="head">
|
22 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
23 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
24 |
+
</reference>
|
25 |
+
</onestepcheckout_index_index>
|
26 |
+
<onepagecheckout_index_index>
|
27 |
+
<reference name="head">
|
28 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
29 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
30 |
+
</reference>
|
31 |
+
</onepagecheckout_index_index>
|
32 |
+
<customer_address_new>
|
33 |
+
<reference name="head">
|
34 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
35 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
36 |
+
</reference>
|
37 |
+
</customer_address_new>
|
38 |
+
<customer_account_edit>
|
39 |
+
<reference name="head">
|
40 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
41 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
42 |
+
</reference>
|
43 |
+
</customer_account_edit>
|
44 |
+
<checkout_multishipping>
|
45 |
+
<reference name="head">
|
46 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
47 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
48 |
+
</reference>
|
49 |
+
</checkout_multishipping>
|
50 |
+
<customer_account_create>
|
51 |
+
<reference name="head">
|
52 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
53 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
54 |
+
</reference>
|
55 |
+
</customer_account_create>
|
56 |
+
<customer_address_form>
|
57 |
+
<reference name="head">
|
58 |
+
<block type="page/html" name="addrexx_config" template="addrexx/common_config.phtml"/>
|
59 |
+
<action method="addItem"><type>skin_css</type><file>css/addrexx/addrexx.css</file></action>
|
60 |
+
</reference>
|
61 |
+
</customer_address_form>
|
62 |
+
|
63 |
+
</layout>
|
app/etc/modules/addrexx.xml
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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>
|
package.xml
ADDED
@@ -0,0 +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. 
|
11 |
+

|
12 |
+
Addrexx increases sales, solves shipping issues and improves customer satisfaction ratings.
|
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>
|
skin/adminhtml/default/default/css/addrexx/addrexx.css
ADDED
@@ -0,0 +1,574 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|