adyen-skinbuilder 0.2.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +3 -4
- data/.travis.yml +5 -0
- data/CHANGELOG.md +22 -0
- data/Gemfile.lock +51 -7
- data/LICENSE +3 -3
- data/README.markdown +83 -24
- data/Rakefile +6 -0
- data/adyen-skinbuilder.gemspec +12 -11
- data/bin/adyen-skinbuilder +28 -3
- data/lib/adyen-skinbuilder.rb +1 -4
- data/lib/adyen-skinbuilder/helper/adyen.rb +29 -0
- data/lib/adyen-skinbuilder/helper/render.rb +32 -0
- data/lib/adyen-skinbuilder/server.rb +112 -58
- data/lib/adyen-skinbuilder/server/views/_adyen_form.html.erb +37 -0
- data/{adyen/main_content.html → lib/adyen-skinbuilder/server/views/_adyen_payment_fields.html.erb} +534 -530
- data/lib/adyen-skinbuilder/server/views/css/reset.css +306 -0
- data/lib/adyen-skinbuilder/server/views/img/icons/error.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK1.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK10.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK2.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK3.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK4.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK5.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK6.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK7.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK8.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANK9.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANKCANCELLED.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANKPENDING.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/TESTBANKREFUSED.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/amex_small.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/card.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/ideal.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/mc_small.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/unknown_small.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/vias_small.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/visa.png +0 -0
- data/lib/adyen-skinbuilder/server/views/img/pm/visa_small.png +0 -0
- data/lib/adyen-skinbuilder/server/views/index.html.erb +118 -0
- data/lib/adyen-skinbuilder/server/views/js/default.js +385 -0
- data/lib/adyen-skinbuilder/server/views/layout.html.erb +33 -0
- data/lib/adyen-skinbuilder/server/views/skeleton.html +56 -0
- data/lib/adyen-skinbuilder/server/views/skin.html.erb +18 -0
- data/lib/adyen-skinbuilder/version.rb +1 -1
- data/lib/hash.rb +15 -0
- data/spec/fixtures/example.zip +0 -0
- data/spec/fixtures/skins/DV3tf95f/inc/order_data.txt +1 -0
- data/spec/fixtures/skins/JH0815/css/screen.css +262 -0
- data/spec/fixtures/skins/JH0815/skin.html.erb +13 -0
- data/spec/lib/adyen-skinbuilder/server_spec.rb +166 -38
- data/spec/spec_helper.rb +2 -2
- metadata +109 -31
- data/adyen/skeleton.html +0 -70
- data/lib/adyen-skinbuilder/launcher.rb +0 -40
- data/lib/adyen-skinbuilder/railtie.rb +0 -9
- data/lib/adyen-skinbuilder/tasks/skin.rake +0 -65
@@ -0,0 +1,37 @@
|
|
1
|
+
<!-- ### -->
|
2
|
+
|
3
|
+
<form id="pageform" action="" method="post" onsubmit="return formValidate(this);">
|
4
|
+
<script type="text/javascript">
|
5
|
+
//<![CDATA[
|
6
|
+
if (notNull(document.getElementById('pageform'))) {
|
7
|
+
document.getElementById('pageform').setAttribute("autocomplete","off");
|
8
|
+
}
|
9
|
+
//]]>
|
10
|
+
</script>
|
11
|
+
<div id="content">
|
12
|
+
<div id="pmcontent">
|
13
|
+
|
14
|
+
<!-- ### inc/pmheader -->
|
15
|
+
|
16
|
+
<%= adyen_payment_fields(&block) %>
|
17
|
+
|
18
|
+
<!-- ### -->
|
19
|
+
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
<div id="foot">
|
23
|
+
<div id="footc">
|
24
|
+
<div id="nextstep">
|
25
|
+
<div id="nextstepc">Next Step Text</div>
|
26
|
+
</div>
|
27
|
+
<div id="footerb1div">
|
28
|
+
<input onclick="" type="submit" id="mainSubmit" value="continue" class="footerB nextB" />
|
29
|
+
</div>
|
30
|
+
<div id="footerb2div">
|
31
|
+
<input onclick="" type="button" id="mainBack" value="previous" class="footerB backB" />
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</form>
|
36
|
+
|
37
|
+
<!-- ### inc/cfooter -->
|
data/{adyen/main_content.html → lib/adyen-skinbuilder/server/views/_adyen_payment_fields.html.erb}
RENAMED
@@ -1,3 +1,5 @@
|
|
1
|
+
<!-- ### -->
|
2
|
+
|
1
3
|
<script type="text/javascript">
|
2
4
|
//<![CDATA[
|
3
5
|
/* Form validation */
|
@@ -7,73 +9,73 @@
|
|
7
9
|
var errorAreas = new Array();
|
8
10
|
var validationFunctions = new Array();
|
9
11
|
var details = new Array();
|
10
|
-
|
12
|
+
|
11
13
|
errorMessages["default"] = new Array();
|
12
14
|
requiredFields["default"] = new Array();
|
13
15
|
|
14
16
|
var maySubmitOnlyOnce=true;
|
15
|
-
|
17
|
+
|
16
18
|
requiredFields["default"].push("brandCode");
|
17
19
|
errorMessages["default"]["brandCode"] = "Please enter your payment details";
|
18
20
|
errorMessages["default"]["submitonce"] = "Your request is being processed, please wait....";
|
19
|
-
|
21
|
+
|
20
22
|
var locked = false;
|
21
23
|
var _valFunc = new function() {};
|
22
|
-
|
24
|
+
|
23
25
|
var displayAmountExtras = new Object();
|
24
|
-
|
26
|
+
|
25
27
|
function show(detail, actionURL, group, brandCode) {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
28
|
+
|
29
|
+
if(config["pmmanimation"] != 1) {
|
30
|
+
if(locked) { return false; }
|
31
|
+
locked = true;
|
32
|
+
setTimeout('locked=false',1000);
|
33
|
+
}
|
34
|
+
|
35
|
+
document.forms["pageform"].action=actionURL;
|
36
|
+
document.forms["pageform"].onsubmit=null;
|
37
|
+
|
38
|
+
if(document.forms["pageform"].addEventListener) {
|
39
|
+
document.forms["pageform"].removeEventListener('submit',_valFunc ,false);
|
40
|
+
document.forms["pageform"].addEventListener('submit',_valFunc = function(e) {
|
41
|
+
result = formValidate(document.forms["pageform"] ,group);
|
42
|
+
if(result == false) {
|
43
|
+
e=e||event;
|
44
|
+
e.preventDefault? e.preventDefault() : e.returnValue = false;
|
45
|
+
}
|
46
|
+
},false);
|
47
|
+
} else {
|
48
|
+
document.forms["pageform"].detachEvent('onsubmit',_valFunc);
|
49
|
+
document.forms["pageform"].attachEvent('onsubmit',_valFunc = function(e) {
|
50
|
+
result = formValidate(document.forms["pageform"] ,group);
|
51
|
+
if(result == false) {
|
52
|
+
e=e||event;
|
53
|
+
e.preventDefault? e.preventDefault() : e.returnValue = false;
|
54
|
+
}
|
55
|
+
});
|
56
|
+
}
|
57
|
+
|
58
|
+
document.forms["pageform"]["brandCode"].value=brandCode;
|
59
|
+
document.getElementById('extraCostAmount').innerHTML = displayAmountExtras[group];
|
60
|
+
|
61
|
+
if(detail != "") {
|
62
|
+
detail.slideit();
|
63
|
+
for (i = 0; i < details.length; i++) {
|
64
|
+
if (details[i].divId != detail.divId) {
|
65
|
+
details[i].slideup();
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
return false;
|
68
70
|
}
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
addOnLoad(preventEnterSubmit);
|
76
|
+
|
77
|
+
|
78
|
+
|
77
79
|
//]]>
|
78
80
|
</script>
|
79
81
|
<script type="text/javascript" src="https://test.adyen.com/hpp/js/animatedcollapse.js"></script>
|
@@ -85,7 +87,7 @@
|
|
85
87
|
<div id="orderDataWrapper">
|
86
88
|
<div id="orderDataHeader">Order Details</div>
|
87
89
|
<div id="orderData">
|
88
|
-
|
90
|
+
<%= render_file "order_data" %>
|
89
91
|
</div>
|
90
92
|
</div>
|
91
93
|
<div id="displayAmount">
|
@@ -94,10 +96,10 @@
|
|
94
96
|
|
95
97
|
<ul id="paymentMethods">
|
96
98
|
<li style="list-style-type: none;">
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
99
|
+
<input type="submit" name="brandName" value="VISA" class="imgB pmB pmBvisa" onclick="return show(collapsevisa, 'completeCard.shtml', 'card', 'visa');" />
|
100
|
+
<span id="pmmextracosts-visa" class="pmmextracosts"></span><span id="pmvisadescription" class="pmmdescription"></span>
|
101
|
+
<div id="pmmdetails-visa" class="pmmdetails">
|
102
|
+
<script type="text/javascript">
|
101
103
|
//<![CDATA[
|
102
104
|
/* Form validation */
|
103
105
|
requiredFields["card"] = new Array();
|
@@ -112,321 +114,321 @@
|
|
112
114
|
errorMessages["card"]["expiryYear"] = "Expiry Year missing";
|
113
115
|
errorMessages["card"]["cvcCode"] = "CVC/CVV/CID missing";
|
114
116
|
errorMessages["card"]["generic"] = "Please enter your card details";
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
117
|
+
|
118
|
+
|
119
|
+
var cvcinfo = new Array();
|
120
|
+
cvcinfo["mc"] = "<h3>What is CVC?</h3>" +
|
121
|
+
"<p><img style=\"margin-right: 5px\" class=\"fl\" src=\"/hpp/img/CVC_mini.jpg\" alt=\"CVC location\" />" +
|
122
|
+
"The Card Validation Code (CVC) is an <i>additional</i> " +
|
123
|
+
"three-digit security code that is printed (not embossed) on the back " +
|
124
|
+
"of your card.</p>" +
|
125
|
+
"<p>The CVC is an extra security measure to ensure that you are in possession of the card.</p><br style=\"clear: both\" />";
|
126
|
+
cvcinfo["visa"] = "<h3>What is CVV?</h3>" +
|
127
|
+
"<p><img style=\"margin-right: 5px\" class=\"fl\" src=\"/hpp/img/CVV_mini.jpg\" alt=\"CVV location\" />" +
|
128
|
+
"The Card Verification Value (CVV) is an <i>additional</i> " +
|
129
|
+
"three-digit security code that is printed (not embossed) on the back " +
|
130
|
+
"of your card.</p>" +
|
131
|
+
"<p>The CVV is an extra security measure to ensure that you are in possession of the card.</p><br style=\"clear: both\" />";
|
132
|
+
cvcinfo["amex"] = "<h3>What is CID?</h3>" +
|
133
|
+
"<p><img style=\"margin-right: 5px\" class=\"fl\" src=\"/hpp/img/CID_mini.jpg\" alt=\"CID location\" />" +
|
134
|
+
"The Card IDentification (CID) is an <i>additional</i> " +
|
135
|
+
"four-digit security code that is printed (not embossed) on the front " +
|
136
|
+
"of your card.</p>" +
|
137
|
+
"<p>The CID is an extra security measure to ensure that you are in possession of the card.</p><br style=\"clear: both\" />";
|
138
|
+
cvcinfo["card"] = "<h3>What is CVC/CVV/CID?</h3>" +
|
139
|
+
"<p>The Card Security Code (CVC/CVV/CID) is an <i>additional</i> " +
|
140
|
+
"three or four digit security code that is printed (not embossed) on the front or the back " +
|
141
|
+
"of your card.</p>" +
|
142
|
+
"<p>The CVC/CVV/CID is an extra security measure to ensure that you are in possession of the card.</p><br style=\"clear: both\" />";
|
143
|
+
|
144
|
+
var card_types = new Array();
|
145
|
+
var card_logos = new Array();
|
146
|
+
var card_displayAmountExtras = new Array();
|
147
|
+
var card_extras = new Array();
|
148
|
+
var previousCardNumber ="";
|
149
|
+
var card_subVariantExtras = new Object();
|
150
|
+
var card_subVariantExtrasPhrase = new Object();
|
151
|
+
var originalExtraCostPhrase = document.getElementById('pmmextracosts-visa').innerHTML;
|
152
|
+
|
153
|
+
card_types.push("visa");
|
154
|
+
card_logos.push("/img/pm/visa");
|
155
|
+
card_displayAmountExtras.push("");
|
156
|
+
card_extras.push("");
|
157
|
+
|
158
|
+
card_subVariantExtras['visacorporate'] = "";
|
159
|
+
card_subVariantExtrasPhrase['visacorporate'] = "";
|
160
|
+
card_subVariantExtras['travelmoney'] = "";
|
161
|
+
card_subVariantExtrasPhrase['travelmoney'] = "";
|
162
|
+
card_subVariantExtras['visabusiness'] = "";
|
163
|
+
card_subVariantExtrasPhrase['visabusiness'] = "";
|
164
|
+
card_subVariantExtras['visacredit'] = "";
|
165
|
+
card_subVariantExtrasPhrase['visacredit'] = "";
|
166
|
+
card_subVariantExtras['visahipotecario'] = "";
|
167
|
+
card_subVariantExtrasPhrase['visahipotecario'] = "";
|
168
|
+
card_subVariantExtras['visapurchasing'] = "";
|
169
|
+
card_subVariantExtrasPhrase['visapurchasing'] = "";
|
170
|
+
card_subVariantExtras['visaclassic'] = "";
|
171
|
+
card_subVariantExtrasPhrase['visaclassic'] = "";
|
172
|
+
card_subVariantExtras['visaplatinum'] = "";
|
173
|
+
card_subVariantExtrasPhrase['visaplatinum'] = "";
|
174
|
+
card_subVariantExtras['visasignature'] = "";
|
175
|
+
card_subVariantExtrasPhrase['visasignature'] = "";
|
176
|
+
card_subVariantExtras['electron'] = "";
|
177
|
+
card_subVariantExtrasPhrase['electron'] = "";
|
178
|
+
card_subVariantExtras['visacommercialcredit'] = "";
|
179
|
+
card_subVariantExtrasPhrase['visacommercialcredit'] = "";
|
180
|
+
card_subVariantExtras['visagold'] = "";
|
181
|
+
card_subVariantExtrasPhrase['visagold'] = "";
|
182
|
+
card_subVariantExtras['visa'] = "";
|
183
|
+
card_subVariantExtrasPhrase['visa'] = "";
|
184
|
+
card_subVariantExtras['visadebit'] = "";
|
185
|
+
card_subVariantExtrasPhrase['visadebit'] = "";
|
186
|
+
|
187
|
+
|
188
|
+
var baseURL = "/hpp/";
|
189
|
+
if(baseURL.indexOf(";jsession") != -1) {
|
190
|
+
baseURL = baseURL.substr(0,baseURL.indexOf(";jsession"));
|
191
|
+
}
|
192
|
+
|
193
|
+
function validateCcNumber(e, dontHideErrorFrame) {
|
194
|
+
cardNumber = (document.getElementById('cardNumber').value);
|
195
|
+
|
196
|
+
if(cardNumber.length <= previousCardNumber.length) {
|
197
|
+
previousCardNumber = cardNumber;
|
198
|
+
if (cardNumber.length == 0) {
|
199
|
+
resetExtraCost();
|
200
|
+
}
|
201
|
+
return;
|
202
|
+
}
|
203
|
+
var l=0;
|
204
|
+
while(l < previousCardNumber.length) {
|
205
|
+
if(cardNumber[l] != previousCardNumber[l]) {
|
206
|
+
previousCardNumber = cardNumber;
|
207
|
+
return;
|
208
|
+
}
|
209
|
+
l++;
|
210
|
+
}
|
211
|
+
|
212
|
+
reg = /\s+/g;
|
213
|
+
cardNumber = cardNumber.replace(reg,'');
|
214
|
+
|
215
|
+
nrOfDigits = cardNumber.length;
|
216
|
+
|
217
|
+
if(nrOfDigits > 19){
|
218
|
+
ccNumberPresentation(false);
|
219
|
+
return;
|
220
|
+
}
|
221
|
+
|
222
|
+
ccNumberPresentation(true,dontHideErrorFrame);
|
223
|
+
|
224
|
+
baseCard = getBaseCard(cardNumber,card_types);
|
225
|
+
if(baseCard != null) {
|
226
|
+
setCardBrand(baseCard, true);
|
227
|
+
} else if(nrOfDigits > 4) {
|
228
|
+
setCardBrand(null, true);
|
229
|
+
ccNumberPresentation(false);
|
230
|
+
} else {
|
231
|
+
setCardBrand(null, false);
|
232
|
+
}
|
233
|
+
|
234
|
+
if (cardNumber.length < 6) {
|
235
|
+
setExtraCost(baseCard, null);
|
236
|
+
} else if (cardNumber.length == 6 || cardNumber.length == 9 || cardNumber.length == 12){
|
237
|
+
_.X("/hpp/binLookup.shtml",function(d,r){
|
238
|
+
if(r.status != 200 || d.indexOf('"result"') == -1) return false;
|
239
|
+
var response=eval("("+d+")");
|
240
|
+
|
241
|
+
if(typeof(response.result)=='undefined') return false;
|
242
|
+
|
243
|
+
if (response.result == 0) {
|
244
|
+
lookedUpCardType = response.cardType;
|
245
|
+
} else {
|
246
|
+
lookedUpCardType = null;
|
247
|
+
}
|
248
|
+
setExtraCost(baseCard, lookedUpCardType);
|
249
|
+
|
250
|
+
return true;
|
251
|
+
}, 'bin='+cardNumber+'&'+_.Q(_.G("pageform")));
|
252
|
+
}
|
253
|
+
|
254
|
+
//show value with white space after four numbers
|
255
|
+
result = cardNumber.replace(/(\d{4})/g, '$1 ');
|
256
|
+
result = result.replace(/\s+$/, ''); //remove trailing spaces
|
257
|
+
|
258
|
+
previousCardNumber = result;
|
259
|
+
document.getElementById('cardNumber').value = result;
|
260
|
+
}
|
261
|
+
|
262
|
+
function setExtraCost(selectedCard, lookedUpCard) {
|
263
|
+
var extraCostDisplayed = false;
|
264
|
+
if (lookedUpCard != null && card_subVariantExtras[lookedUpCard] != null) {
|
265
|
+
document.getElementById('extraCostAmount').innerHTML = card_subVariantExtras[lookedUpCard];
|
266
|
+
displayAmountExtras['card'] = card_subVariantExtras[lookedUpCard];
|
267
|
+
document.getElementById('pmmextracosts-visa').innerHTML = card_subVariantExtrasPhrase[lookedUpCard];
|
268
|
+
extraCostDisplayed = true;
|
269
|
+
} else {
|
270
|
+
for(var i = 0; i < card_types.length; ++i) {
|
271
|
+
if(selectedCard != null && card_types[i] == selectedCard.cardtype && card_subVariantExtras[selectedCard.cardtype] != null) {
|
272
|
+
document.getElementById('extraCostAmount').innerHTML = card_subVariantExtras[selectedCard.cardtype];
|
273
|
+
displayAmountExtras['card'] = card_subVariantExtras[selectedCard.cardtype];
|
274
|
+
document.getElementById('pmmextracosts-visa').innerHTML = card_subVariantExtrasPhrase[selectedCard.cardtype];
|
275
|
+
extraCostDisplayed = true;
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}
|
279
|
+
|
280
|
+
if (!extraCostDisplayed) {
|
281
|
+
resetExtraCost();
|
282
|
+
}
|
283
|
+
}
|
284
|
+
|
285
|
+
function resetExtraCost() {
|
286
|
+
displayAmountExtras['card'] = "";
|
287
|
+
document.getElementById('extraCostAmount').innerHTML = "";
|
288
|
+
document.getElementById('pmmextracosts-visa').innerHTML = originalExtraCostPhrase;
|
289
|
+
}
|
290
|
+
|
291
|
+
function setCardBrand(selectedCard, greyInactive) {
|
292
|
+
|
293
|
+
for(var i = 0; i < card_types.length; ++i) {
|
294
|
+
var imageId = "cclogo" + i;
|
295
|
+
if(selectedCard != null && card_types[i] == selectedCard.cardtype) {
|
296
|
+
document.getElementById(imageId).src=baseURL + card_logos[i] + "_small.png";
|
297
|
+
} else {
|
298
|
+
if(greyInactive) {
|
299
|
+
document.getElementById(imageId).src=baseURL + card_logos[i] + "_small_grey.png";
|
300
|
+
} else {
|
301
|
+
document.getElementById(imageId).src=baseURL + card_logos[i] + "_small.png";
|
302
|
+
}
|
303
|
+
}
|
304
|
+
document.getElementById(imageId).style.display="inline";
|
305
|
+
}
|
306
|
+
if(selectedCard != null) {
|
307
|
+
if(selectedCard.cardtype == "amex") {
|
308
|
+
document.getElementById("cvcCode").maxLength = 4;
|
309
|
+
document.getElementById('cvcName').innerHTML = "CID";
|
310
|
+
document.getElementById('cvcWhatIs').innerHTML = "What is CID?";
|
311
|
+
document.getElementById('cvcFrame').innerHTML = cvcinfo["amex"];
|
312
|
+
showDebitCardFields("none");
|
313
|
+
} else if (selectedCard.cardtype == "visa" || selectedCard.cardtype == "electron") {
|
314
|
+
document.getElementById("cvcCode").maxLength = 3;
|
315
|
+
document.getElementById('cvcName').innerHTML = "CVV";
|
316
|
+
document.getElementById('cvcWhatIs').innerHTML = "What is CVV?";
|
317
|
+
document.getElementById('cvcFrame').innerHTML = cvcinfo["visa"];
|
318
|
+
showDebitCardFields("none");
|
319
|
+
} else if (selectedCard.cardtype == "mc" || selectedCard.cardtype == "maestro" || selectedCard.cardtype == "maestrouk" || selectedCard.cardtype == "solo" ) {
|
320
|
+
document.getElementById("cvcCode").maxLength = 3;
|
321
|
+
document.getElementById('cvcName').innerHTML = "CVC";
|
322
|
+
document.getElementById('cvcWhatIs').innerHTML = "What is CVC?";
|
323
|
+
document.getElementById('cvcFrame').innerHTML = cvcinfo["mc"];
|
324
|
+
if(selectedCard.cardtype == "maestrouk" || selectedCard.cardtype == "solo") {
|
325
|
+
showDebitCardFields(cssTr);
|
326
|
+
} else {
|
327
|
+
showDebitCardFields("none");
|
328
|
+
}
|
329
|
+
} else {
|
330
|
+
document.getElementById("cvcCode").maxLength = 3;
|
331
|
+
document.getElementById('cvcName').innerHTML = "CVC";
|
332
|
+
document.getElementById('cvcWhatIs').innerHTML = "What is CVC?";
|
333
|
+
document.getElementById('cvcFrame').innerHTML = cvcinfo["card"];
|
334
|
+
showDebitCardFields("none");
|
335
|
+
}
|
336
|
+
}
|
337
|
+
}
|
338
|
+
|
339
|
+
function showDebitCardFields(show) {
|
340
|
+
document.getElementById('cardIssueNumber').style.display = show;
|
341
|
+
document.getElementById('cardStartDate').style.display = show;
|
342
|
+
document.getElementById('pmmdetails-visa').style.height = document.getElementById('pmmdetails-visa').scrollHeight + "px";
|
343
|
+
collapsevisa._getheight(true);
|
344
|
+
}
|
345
|
+
|
346
|
+
function ccNumberPresentation(valid, dontHideErrorFrame){
|
347
|
+
var errors = new Array();
|
348
|
+
errors.push("cardNumber");
|
349
|
+
if(valid){
|
350
|
+
clearErrors(errors, dontHideErrorFrame);
|
351
|
+
}
|
352
|
+
else{
|
353
|
+
markErrorFields(errors);
|
354
|
+
}
|
355
|
+
}
|
356
|
+
|
357
|
+
function blockNonNumbers(e) {
|
358
|
+
var key;
|
359
|
+
var isCtrl = false;
|
360
|
+
var keychar;
|
361
|
+
var reg;
|
362
|
+
|
363
|
+
if(window.event) {
|
364
|
+
key = e.keyCode;
|
365
|
+
isCtrl = window.event.ctrlKey
|
366
|
+
}
|
367
|
+
else if(e.which) {
|
368
|
+
key = e.which;
|
369
|
+
isCtrl = e.ctrlKey;
|
370
|
+
}
|
371
|
+
|
372
|
+
if (isNaN(key)) return true;
|
373
|
+
|
374
|
+
keychar = String.fromCharCode(key);
|
375
|
+
|
376
|
+
// check for backspace or delete, or if Ctrl was pressed
|
377
|
+
if (key == 8 || isCtrl) {
|
378
|
+
return true;
|
379
|
+
}
|
380
|
+
|
381
|
+
reg = /[\d ]/;
|
382
|
+
|
383
|
+
return reg.test(keychar);
|
384
|
+
}
|
385
|
+
|
386
|
+
validationFunctions
|
387
|
+
function doCCCheck(){
|
388
|
+
cardNumber = (document.getElementById('cardNumber').value);
|
389
|
+
reg = /\s+/g;
|
390
|
+
cardNumber = cardNumber.replace(reg,'');
|
391
|
+
if(!luhnCheck(cardNumber))
|
392
|
+
ccNumberPresentation(false);
|
393
|
+
else
|
394
|
+
ccNumberPresentation(true);
|
395
|
+
}
|
396
|
+
|
397
|
+
validationFunctions["card"] = new Array();
|
398
|
+
validationFunctions["card"]["cardNumber"] = function (cardNumberField) {
|
399
|
+
cardNumber = cardNumberField.value;
|
400
|
+
reg = /\s+/g;
|
401
|
+
cardNumber = cardNumber.replace(reg,'');
|
402
|
+
if(cardNumber == "" || luhnCheck(cardNumber)){
|
403
|
+
return true;
|
404
|
+
}
|
405
|
+
return false;
|
406
|
+
}
|
407
|
+
|
408
|
+
|
409
|
+
|
408
410
|
//]]>
|
409
411
|
</script>
|
410
412
|
|
411
413
|
<table class="basetable">
|
412
414
|
<tr>
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
415
|
+
<td class="mid"><div id="cclogoheader" style="display: none">Card Type</div></td>
|
416
|
+
<td class="mid">
|
417
|
+
<div style="height: 25px" id="cclogo">
|
418
|
+
<img alt="" id="cclogo0" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
419
|
+
<img alt="" id="cclogo1" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
420
|
+
<img alt="" id="cclogo2" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
421
|
+
<img alt="" id="cclogo3" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
422
|
+
<img alt="" id="cclogo4" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
423
|
+
<img alt="" id="cclogo5" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
424
|
+
<img alt="" id="cclogo6" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
425
|
+
<img alt="" id="cclogo7" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
426
|
+
<img alt="" id="cclogo8" style="display: none" class="mid" src="/hpp/img/pm/unknown_small.png" />
|
427
|
+
<script type="text/javascript">
|
428
|
+
setCardBrand(null, false);
|
429
|
+
</script>
|
430
|
+
</div>
|
431
|
+
</td>
|
430
432
|
</tr>
|
431
433
|
<tr id="cardNumberTr">
|
432
434
|
<td><div>Card number</div></td>
|
@@ -458,14 +460,14 @@
|
|
458
460
|
<option value="11">11</option>
|
459
461
|
<option value="12">12</option>
|
460
462
|
</select>
|
461
|
-
/
|
463
|
+
/
|
462
464
|
<select class="inputField" name="startYear" id="startYear" size="1">
|
463
465
|
<option value="*"></option>
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
466
|
+
<option value="2011">2011</option>
|
467
|
+
<option value="2010">2010</option>
|
468
|
+
<option value="2009">2009</option>
|
469
|
+
<option value="2008">2008</option>
|
470
|
+
<option value="2007">2007</option>
|
469
471
|
<option value="2006">2006</option>
|
470
472
|
<option value="2005">2005</option>
|
471
473
|
<option value="2004">2004</option>
|
@@ -493,7 +495,7 @@
|
|
493
495
|
<option value="11">11</option>
|
494
496
|
<option value="12">12</option>
|
495
497
|
</select>
|
496
|
-
/
|
498
|
+
/
|
497
499
|
<select class="inputField" name="expiryYear" id="expiryYear" size="1">
|
498
500
|
<option value="*"></option>
|
499
501
|
<option value="2011">2011</option>
|
@@ -508,12 +510,12 @@
|
|
508
510
|
<option value="2020">2020</option>
|
509
511
|
<option value="2021">2021</option>
|
510
512
|
<option value="2022">2022</option>
|
511
|
-
|
512
|
-
|
513
|
-
|
513
|
+
<option value="2023">2023</option>
|
514
|
+
<option value="2024">2024</option>
|
515
|
+
<option value="2025">2025</option>
|
514
516
|
<option value="2026">2026</option>
|
515
517
|
<option value="2027">2027</option>
|
516
|
-
|
518
|
+
</select>
|
517
519
|
</div>
|
518
520
|
</td>
|
519
521
|
</tr>
|
@@ -522,51 +524,51 @@
|
|
522
524
|
<td><div class="fieldDiv"><input class="inputField" type="text" name="cvcCode" value="" id="cvcCode" size="7" maxlength="3" /> <a href="#" onclick="return toggleElement('cvcFrame');"><span id="cvcWhatIs">What is CVC/CVV/CID?</span></a></div></td>
|
523
525
|
</tr>
|
524
526
|
<tr>
|
525
|
-
|
527
|
+
<td colspan="2"><div class="r">
|
526
528
|
<input class="paySubmit paySubmitvisa" type="submit" name="pay" value="Confirm payment" />
|
527
529
|
</div></td>
|
528
530
|
</tr>
|
529
531
|
</table>
|
530
532
|
|
531
533
|
<div class="popupMsg popupMsgOPP " style="display: none;" onclick="return hideElement('cvcFrame');" id="cvcFrame">
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
534
|
+
<h3>What is CVC/CVV/CID?</h3>
|
535
|
+
<p>The Card Security Code (CVC/CVV/CID) is an <i>additional</i>
|
536
|
+
three or four digit security code that is printed (not embossed) on the front or the back
|
537
|
+
of your card.</p>
|
538
|
+
<p>The CVC/CVV/CID is an extra security measure to ensure that you are in possession of the card.</p>
|
537
539
|
</div>
|
538
540
|
|
539
541
|
|
540
542
|
<script type="text/javascript">
|
541
543
|
//<![CDATA[
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
544
|
+
|
545
|
+
// find out what the CSS implementation calls the tr "display" value
|
546
|
+
var cssTr = document.getElementById('cardNumberTr').style.display;
|
547
|
+
|
548
|
+
if(document.getElementById('cardNumber').value.length > 0) {
|
549
|
+
var validateCcNumberTimer = setTimeout('validateCcNumber(null,true)', 2500);
|
550
|
+
}
|
551
|
+
|
550
552
|
//]]>
|
551
553
|
</script>
|
552
|
-
|
554
|
+
|
553
555
|
<script type="text/javascript">
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
556
|
+
var collapsevisa = new animatedcollapse("pmmdetails-visa", 1000, false, false, config["pmmanimation"]==1?false:true);
|
557
|
+
details.push(collapsevisa);
|
558
|
+
|
559
|
+
displayAmountExtras['card'] = "";
|
560
|
+
|
561
|
+
|
562
|
+
if (notNull(document.getElementById('pmmform-visa'))) {
|
563
|
+
document.getElementById('pmmform-visa').setAttribute("autocomplete","off");
|
564
|
+
}
|
563
565
|
</script>
|
564
566
|
</div>
|
565
567
|
</li>
|
566
568
|
|
567
569
|
<li style="list-style-type: none;">
|
568
570
|
<input type="submit" name="brandName" value="Credit Card" class="imgB pmB pmBcard"
|
569
|
-
|
571
|
+
|
570
572
|
onclick="return show(collapsecard, 'completeCard.shtml', 'card', 'vias');"
|
571
573
|
|
572
574
|
/>
|
@@ -594,29 +596,29 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
594
596
|
|
595
597
|
|
596
598
|
var cvcinfo = new Array();
|
597
|
-
cvcinfo["mc"] = "<h3>What is CVC?<\/h3>" +
|
599
|
+
cvcinfo["mc"] = "<h3>What is CVC?<\/h3>" +
|
598
600
|
"<p><img style=\"margin-right: 5px\" class=\"fl\" src=\"/hpp/img/CVC_mini.jpg\" alt=\"CVC location\" />" +
|
599
|
-
"The Card Validation Code (CVC) is an <i>additional<\/i> " +
|
601
|
+
"The Card Validation Code (CVC) is an <i>additional<\/i> " +
|
600
602
|
"three-digit security code that is printed (not embossed) on the back " +
|
601
603
|
"of your card.<\/p>" +
|
602
604
|
"<p>The CVC is an extra security measure to ensure that you are in possession of the card.<\/p><br style=\"clear: both\" />";
|
603
|
-
cvcinfo["visa"] = "<h3>What is CVV?<\/h3>" +
|
605
|
+
cvcinfo["visa"] = "<h3>What is CVV?<\/h3>" +
|
604
606
|
"<p><img style=\"margin-right: 5px\" class=\"fl\" src=\"/hpp/img/CVV_mini.jpg\" alt=\"CVV location\" />" +
|
605
|
-
"The Card Verification Value (CVV) is an <i>additional<\/i> " +
|
607
|
+
"The Card Verification Value (CVV) is an <i>additional<\/i> " +
|
606
608
|
"three-digit security code that is printed (not embossed) on the back " +
|
607
609
|
"of your card.<\/p>" +
|
608
610
|
"<p>The CVV is an extra security measure to ensure that you are in possession of the card.<\/p><br style=\"clear: both\" />";
|
609
|
-
cvcinfo["amex"] = "<h3>What is CID?<\/h3>" +
|
611
|
+
cvcinfo["amex"] = "<h3>What is CID?<\/h3>" +
|
610
612
|
"<p><img style=\"margin-right: 5px\" class=\"fl\" src=\"/hpp/img/CID_mini.jpg\" alt=\"CID location\" />" +
|
611
|
-
"The Card IDentification (CID) is an <i>additional<\/i> " +
|
613
|
+
"The Card IDentification (CID) is an <i>additional<\/i> " +
|
612
614
|
"four-digit security code that is printed (not embossed) on the front " +
|
613
615
|
"of your card.<\/p>" +
|
614
616
|
"<p>The CID is an extra security measure to ensure that you are in possession of the card.<\/p><br style=\"clear: both\" />";
|
615
|
-
cvcinfo["card"] = "<h3>What is CVC\/CVV\/CID?<\/h3>" +
|
616
|
-
"<p>The Card Security Code (CVC\/CVV\/CID) is an <i>additional<\/i> " +
|
617
|
+
cvcinfo["card"] = "<h3>What is CVC\/CVV\/CID?<\/h3>" +
|
618
|
+
"<p>The Card Security Code (CVC\/CVV\/CID) is an <i>additional<\/i> " +
|
617
619
|
"three or four digit security code that is printed (not embossed) on the front or the back " +
|
618
620
|
"of your card.<\/p>" +
|
619
|
-
"<p>The CVC\/CVV\/CID is an extra security measure to ensure that you are in possession of the card.<\/p><br style=\"clear: both\" />";
|
621
|
+
"<p>The CVC\/CVV\/CID is an extra security measure to ensure that you are in possession of the card.<\/p><br style=\"clear: both\" />";
|
620
622
|
|
621
623
|
var card_types = new Array();
|
622
624
|
var card_logos = new Array();
|
@@ -626,26 +628,26 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
626
628
|
var card_subVariantExtras = new Object();
|
627
629
|
var card_subVariantExtrasPhrase = new Object();
|
628
630
|
var originalExtraCostPhrase = document.getElementById('pmmextracosts-card').innerHTML;
|
629
|
-
|
631
|
+
|
630
632
|
card_types.push("vias");
|
631
633
|
card_logos.push("/img/pm/vias");
|
632
634
|
card_displayAmountExtras.push("");
|
633
635
|
card_extras.push("");
|
634
|
-
|
636
|
+
|
635
637
|
card_subVariantExtras['vias'] = "";
|
636
638
|
card_subVariantExtrasPhrase['vias'] = "";
|
637
639
|
card_types.push("amex");
|
638
640
|
card_logos.push("/img/pm/amex");
|
639
641
|
card_displayAmountExtras.push("");
|
640
642
|
card_extras.push("");
|
641
|
-
|
643
|
+
|
642
644
|
card_subVariantExtras['amex'] = "";
|
643
645
|
card_subVariantExtrasPhrase['amex'] = "";
|
644
646
|
card_types.push("mc");
|
645
647
|
card_logos.push("/img/pm/mc");
|
646
648
|
card_displayAmountExtras.push("");
|
647
649
|
card_extras.push("");
|
648
|
-
|
650
|
+
|
649
651
|
card_subVariantExtras['mcatm'] = "";
|
650
652
|
card_subVariantExtrasPhrase['mcatm'] = "";
|
651
653
|
card_subVariantExtras['mccredit'] = "";
|
@@ -672,7 +674,7 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
672
674
|
card_logos.push("/img/pm/visa");
|
673
675
|
card_displayAmountExtras.push("");
|
674
676
|
card_extras.push("");
|
675
|
-
|
677
|
+
|
676
678
|
card_subVariantExtras['visacorporate'] = "";
|
677
679
|
card_subVariantExtrasPhrase['visacorporate'] = "";
|
678
680
|
card_subVariantExtras['travelmoney'] = "";
|
@@ -703,16 +705,16 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
703
705
|
card_subVariantExtrasPhrase['visa'] = "";
|
704
706
|
card_subVariantExtras['visadebit'] = "";
|
705
707
|
card_subVariantExtrasPhrase['visadebit'] = "";
|
706
|
-
|
707
|
-
|
708
|
+
|
709
|
+
|
708
710
|
var baseURL = "/hpp/";
|
709
711
|
if(baseURL.indexOf(";jsession") != -1) {
|
710
712
|
baseURL = baseURL.substr(0,baseURL.indexOf(";jsession"));
|
711
713
|
}
|
712
|
-
|
714
|
+
|
713
715
|
function validateCcNumber(e, dontHideErrorFrame) {
|
714
716
|
cardNumber = (document.getElementById('cardNumber').value);
|
715
|
-
|
717
|
+
|
716
718
|
if(cardNumber.length <= previousCardNumber.length) {
|
717
719
|
previousCardNumber = cardNumber;
|
718
720
|
if (cardNumber.length == 0) {
|
@@ -725,22 +727,22 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
725
727
|
if(cardNumber[l] != previousCardNumber[l]) {
|
726
728
|
previousCardNumber = cardNumber;
|
727
729
|
return;
|
728
|
-
}
|
730
|
+
}
|
729
731
|
l++;
|
730
732
|
}
|
731
|
-
|
733
|
+
|
732
734
|
reg = /\s+/g;
|
733
735
|
cardNumber = cardNumber.replace(reg,'');
|
734
|
-
|
736
|
+
|
735
737
|
nrOfDigits = cardNumber.length;
|
736
|
-
|
738
|
+
|
737
739
|
if(nrOfDigits > 19){
|
738
740
|
ccNumberPresentation(false);
|
739
741
|
return;
|
740
742
|
}
|
741
|
-
|
743
|
+
|
742
744
|
ccNumberPresentation(true,dontHideErrorFrame);
|
743
|
-
|
745
|
+
|
744
746
|
baseCard = getBaseCard(cardNumber,card_types);
|
745
747
|
if(baseCard != null) {
|
746
748
|
setCardBrand(baseCard, true);
|
@@ -757,28 +759,28 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
757
759
|
_.X("/hpp/binLookup.shtml",function(d,r){
|
758
760
|
if(r.status != 200 || d.indexOf('"result"') == -1) return false;
|
759
761
|
var response=eval("("+d+")");
|
760
|
-
|
762
|
+
|
761
763
|
if(typeof(response.result)=='undefined') return false;
|
762
|
-
|
764
|
+
|
763
765
|
if (response.result == 0) {
|
764
766
|
lookedUpCardType = response.cardType;
|
765
767
|
} else {
|
766
|
-
lookedUpCardType = null;
|
768
|
+
lookedUpCardType = null;
|
767
769
|
}
|
768
770
|
setExtraCost(baseCard, lookedUpCardType);
|
769
|
-
|
771
|
+
|
770
772
|
return true;
|
771
773
|
}, 'bin='+cardNumber+'&'+_.Q(_.G("pageform")));
|
772
774
|
}
|
773
|
-
|
775
|
+
|
774
776
|
//show value with white space after four numbers
|
775
777
|
result = cardNumber.replace(/(\d{4})/g, '$1 ');
|
776
778
|
result = result.replace(/\s+$/, ''); //remove trailing spaces
|
777
|
-
|
779
|
+
|
778
780
|
previousCardNumber = result;
|
779
781
|
document.getElementById('cardNumber').value = result;
|
780
782
|
}
|
781
|
-
|
783
|
+
|
782
784
|
function setExtraCost(selectedCard, lookedUpCard) {
|
783
785
|
var extraCostDisplayed = false;
|
784
786
|
if (lookedUpCard != null && card_subVariantExtras[lookedUpCard] != null) {
|
@@ -796,18 +798,18 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
796
798
|
}
|
797
799
|
}
|
798
800
|
}
|
799
|
-
|
801
|
+
|
800
802
|
if (!extraCostDisplayed) {
|
801
803
|
resetExtraCost();
|
802
804
|
}
|
803
805
|
}
|
804
|
-
|
806
|
+
|
805
807
|
function resetExtraCost() {
|
806
808
|
displayAmountExtras['card'] = "";
|
807
809
|
document.getElementById('extraCostAmount').innerHTML = "";
|
808
810
|
document.getElementById('pmmextracosts-card').innerHTML = originalExtraCostPhrase;
|
809
811
|
}
|
810
|
-
|
812
|
+
|
811
813
|
function setCardBrand(selectedCard, greyInactive) {
|
812
814
|
|
813
815
|
for(var i = 0; i < card_types.length; ++i) {
|
@@ -844,10 +846,10 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
844
846
|
document.getElementById('cvcName').innerHTML = "CVC";
|
845
847
|
document.getElementById('cvcWhatIs').innerHTML = "What is CVC?";
|
846
848
|
document.getElementById('cvcFrame').innerHTML = cvcinfo["card"];
|
847
|
-
}
|
849
|
+
}
|
848
850
|
}
|
849
851
|
}
|
850
|
-
|
852
|
+
|
851
853
|
function ccNumberPresentation(valid, dontHideErrorFrame){
|
852
854
|
var errors = new Array();
|
853
855
|
errors.push("cardNumber");
|
@@ -858,13 +860,13 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
858
860
|
markErrorFields(errors);
|
859
861
|
}
|
860
862
|
}
|
861
|
-
|
863
|
+
|
862
864
|
function blockNonNumbers(e) {
|
863
865
|
var key;
|
864
866
|
var isCtrl = false;
|
865
867
|
var keychar;
|
866
868
|
var reg;
|
867
|
-
|
869
|
+
|
868
870
|
if(window.event) {
|
869
871
|
key = e.keyCode;
|
870
872
|
isCtrl = window.event.ctrlKey
|
@@ -873,21 +875,21 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
873
875
|
key = e.which;
|
874
876
|
isCtrl = e.ctrlKey;
|
875
877
|
}
|
876
|
-
|
878
|
+
|
877
879
|
if (isNaN(key)) return true;
|
878
|
-
|
880
|
+
|
879
881
|
keychar = String.fromCharCode(key);
|
880
|
-
|
882
|
+
|
881
883
|
// check for backspace or delete, or if Ctrl was pressed
|
882
884
|
if (key == 8 || isCtrl) {
|
883
885
|
return true;
|
884
886
|
}
|
885
|
-
|
887
|
+
|
886
888
|
reg = /[\d ]/;
|
887
|
-
|
889
|
+
|
888
890
|
return reg.test(keychar);
|
889
891
|
}
|
890
|
-
|
892
|
+
|
891
893
|
validationFunctions
|
892
894
|
function doCCCheck(){
|
893
895
|
cardNumber = (document.getElementById('cardNumber').value);
|
@@ -898,7 +900,7 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
898
900
|
else
|
899
901
|
ccNumberPresentation(true);
|
900
902
|
}
|
901
|
-
|
903
|
+
|
902
904
|
validationFunctions["card"] = new Array();
|
903
905
|
validationFunctions["card"]["cardNumber"] = function (cardNumberField) {
|
904
906
|
cardNumber = cardNumberField.value;
|
@@ -910,7 +912,7 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
910
912
|
return false;
|
911
913
|
}
|
912
914
|
|
913
|
-
|
915
|
+
|
914
916
|
|
915
917
|
//]]>
|
916
918
|
</script>
|
@@ -939,9 +941,9 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
939
941
|
</tr>
|
940
942
|
<tr id="cardNumberTr">
|
941
943
|
<td><div>Card Number</div></td>
|
942
|
-
<td><div class="fieldDiv"><input type="text" class="inputField" id="cardNumber"
|
944
|
+
<td><div class="fieldDiv"><input type="text" class="inputField" id="cardNumber"
|
943
945
|
onkeypress="return blockNonNumbers(event)" onkeyup="validateCcNumber(event)" onblur="validateCcNumber(event)" onchange="doCCCheck()"
|
944
|
-
name="cardNumber" value="" size="24" maxlength="23"
|
946
|
+
name="cardNumber" value="" size="24" maxlength="23"
|
945
947
|
/></div></td>
|
946
948
|
|
947
949
|
</tr>
|
@@ -971,7 +973,7 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
971
973
|
|
972
974
|
<option value="12">12</option>
|
973
975
|
</select>
|
974
|
-
/
|
976
|
+
/
|
975
977
|
<select class="inputField" name="expiryYear" id="expiryYear" size="1">
|
976
978
|
<option value="*"> </option>
|
977
979
|
<option value="2011">2011</option>
|
@@ -1037,14 +1039,14 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
1037
1039
|
<script type="text/javascript">
|
1038
1040
|
var collapsecard = new animatedcollapse("pmmdetails-card", 1000, false, false, config["pmmanimation"]==1?false:true);
|
1039
1041
|
details.push(collapsecard);
|
1040
|
-
|
1042
|
+
|
1041
1043
|
displayAmountExtras['card'] = "";
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1044
|
+
|
1045
|
+
|
1046
|
+
|
1047
|
+
|
1046
1048
|
if (notNull(document.getElementById('pmmform-card'))) {
|
1047
|
-
document.getElementById('pmmform-card').setAttribute("autocomplete","off");
|
1049
|
+
document.getElementById('pmmform-card').setAttribute("autocomplete","off");
|
1048
1050
|
}
|
1049
1051
|
</script>
|
1050
1052
|
</div>
|
@@ -1053,7 +1055,7 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
1053
1055
|
<li style="list-style-type: none;">
|
1054
1056
|
|
1055
1057
|
<input type="submit" name="brandName" value="iDEAL" class="imgB pmB pmBideal"
|
1056
|
-
|
1058
|
+
|
1057
1059
|
onclick="return show(collapseideal, 'redirectIdeal.shtml', 'ideal', 'ideal');"
|
1058
1060
|
|
1059
1061
|
/>
|
@@ -1062,7 +1064,7 @@ errorMessages["card"]["generic"] = "Please enter your card details";
|
|
1062
1064
|
|
1063
1065
|
<span id="pmidealdescription" class="pmmdescription"></span>
|
1064
1066
|
<div id="pmmdetails-ideal" class="pmmdetails">
|
1065
|
-
|
1067
|
+
|
1066
1068
|
<script type="text/javascript">
|
1067
1069
|
//<![CDATA[
|
1068
1070
|
/* Form validation */
|
@@ -1087,109 +1089,109 @@ errorMessages["ideal"]["idealIssuerId"] = "U heeft een ongeldige bank gekozen";
|
|
1087
1089
|
|
1088
1090
|
<table class="basetable">
|
1089
1091
|
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1092
|
+
|
1093
|
+
|
1094
|
+
|
1093
1095
|
<tr>
|
1094
1096
|
<td>
|
1095
1097
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK1.png);" value="1121" name="idealIssuer"/>
|
1096
1098
|
</td>
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1099
|
+
|
1100
|
+
|
1101
|
+
|
1100
1102
|
<td class="idealButtonPadding">
|
1101
1103
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK2.png);" value="1151" name="idealIssuer"/>
|
1102
1104
|
</td>
|
1103
1105
|
|
1104
1106
|
</tr>
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1107
|
+
|
1108
|
+
|
1109
|
+
|
1108
1110
|
<tr>
|
1109
1111
|
<td>
|
1110
1112
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK3.png);" value="1152" name="idealIssuer"/>
|
1111
1113
|
</td>
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1114
|
+
|
1115
|
+
|
1116
|
+
|
1115
1117
|
<td class="idealButtonPadding">
|
1116
1118
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK4.png);" value="1153" name="idealIssuer"/>
|
1117
1119
|
</td>
|
1118
1120
|
</tr>
|
1119
1121
|
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1122
|
+
|
1123
|
+
|
1124
|
+
|
1123
1125
|
<tr>
|
1124
1126
|
<td>
|
1125
1127
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK5.png);" value="1154" name="idealIssuer"/>
|
1126
1128
|
</td>
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1129
|
+
|
1130
|
+
|
1131
|
+
|
1130
1132
|
<td class="idealButtonPadding">
|
1131
1133
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK6.png);" value="1155" name="idealIssuer"/>
|
1132
1134
|
</td>
|
1133
1135
|
</tr>
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1136
|
+
|
1137
|
+
|
1138
|
+
|
1137
1139
|
<tr>
|
1138
1140
|
|
1139
1141
|
<td>
|
1140
1142
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK7.png);" value="1156" name="idealIssuer"/>
|
1141
1143
|
</td>
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1144
|
+
|
1145
|
+
|
1146
|
+
|
1145
1147
|
<td class="idealButtonPadding">
|
1146
1148
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK8.png);" value="1157" name="idealIssuer"/>
|
1147
1149
|
</td>
|
1148
1150
|
</tr>
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1151
|
+
|
1152
|
+
|
1153
|
+
|
1152
1154
|
<tr>
|
1153
1155
|
<td>
|
1154
1156
|
|
1155
1157
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK9.png);" value="1158" name="idealIssuer"/>
|
1156
1158
|
</td>
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1159
|
+
|
1160
|
+
|
1161
|
+
|
1160
1162
|
<td class="idealButtonPadding">
|
1161
1163
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANK10.png);" value="1159" name="idealIssuer"/>
|
1162
1164
|
</td>
|
1163
1165
|
</tr>
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1166
|
+
|
1167
|
+
|
1168
|
+
|
1169
|
+
|
1168
1170
|
<tr>
|
1169
1171
|
<td>
|
1170
1172
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANKREFUSED.png);" value="1160" name="idealIssuer"/>
|
1171
1173
|
|
1172
1174
|
</td>
|
1173
|
-
|
1174
|
-
|
1175
|
-
|
1175
|
+
|
1176
|
+
|
1177
|
+
|
1176
1178
|
<td class="idealButtonPadding">
|
1177
1179
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANKPENDING.png);" value="1161" name="idealIssuer"/>
|
1178
1180
|
</td>
|
1179
1181
|
</tr>
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1182
|
+
|
1183
|
+
|
1184
|
+
|
1183
1185
|
<tr>
|
1184
1186
|
<td>
|
1185
1187
|
<input type="submit" class="idealButton" style="background-image: url(/hpp/img/pm/TESTBANKCANCELLED.png);" value="1162" name="idealIssuer"/>
|
1186
1188
|
</td>
|
1187
1189
|
|
1188
|
-
|
1190
|
+
|
1189
1191
|
<td></td>
|
1190
1192
|
</tr>
|
1191
1193
|
</tr>
|
1192
|
-
|
1194
|
+
|
1193
1195
|
<tr>
|
1194
1196
|
<td colspan="2"><div class="fieldDiv">
|
1195
1197
|
<select class="inputField" id="idealIssuerId" name="idealIssuerId">
|
@@ -1212,10 +1214,10 @@ errorMessages["ideal"]["idealIssuerId"] = "U heeft een ongeldige bank gekozen";
|
|
1212
1214
|
|
1213
1215
|
<option value="1162">Test Issuer Cancelled</option>
|
1214
1216
|
</select>
|
1215
|
-
</div></td>
|
1217
|
+
</div></td>
|
1216
1218
|
</tr>
|
1217
1219
|
<tr>
|
1218
|
-
<td colspan="2"><div class="r">
|
1220
|
+
<td colspan="2"><div class="r">
|
1219
1221
|
<input class="paySubmit paySubmitideal" type="submit" name="pay" value="continue" />
|
1220
1222
|
</div></td>
|
1221
1223
|
</tr>
|
@@ -1224,14 +1226,14 @@ errorMessages["ideal"]["idealIssuerId"] = "U heeft een ongeldige bank gekozen";
|
|
1224
1226
|
<script type="text/javascript">
|
1225
1227
|
var collapseideal = new animatedcollapse("pmmdetails-ideal", 1000, false, false, config["pmmanimation"]==1?false:true);
|
1226
1228
|
details.push(collapseideal);
|
1227
|
-
|
1229
|
+
|
1228
1230
|
displayAmountExtras['ideal'] = "";
|
1229
|
-
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1231
|
+
|
1232
|
+
|
1233
|
+
|
1234
|
+
|
1233
1235
|
if (notNull(document.getElementById('pmmform-ideal'))) {
|
1234
|
-
document.getElementById('pmmform-ideal').setAttribute("autocomplete","off");
|
1236
|
+
document.getElementById('pmmform-ideal').setAttribute("autocomplete","off");
|
1235
1237
|
}
|
1236
1238
|
</script>
|
1237
1239
|
</div>
|
@@ -1239,27 +1241,29 @@ errorMessages["ideal"]["idealIssuerId"] = "U heeft een ongeldige bank gekozen";
|
|
1239
1241
|
</ul>
|
1240
1242
|
|
1241
1243
|
<div id="errorFrame" style="display: none;" class="popupMsg errorFrame">
|
1242
|
-
|
1244
|
+
<div id="errorFrameValidationErrors"></div>
|
1243
1245
|
</div>
|
1244
1246
|
<div id="okFrame" style="display: none;" class="popupMsg okFrame">
|
1245
1247
|
<div id="okFrameMessages"></div>
|
1246
1248
|
</div>
|
1247
1249
|
|
1248
1250
|
<input type="text" style="display: none" />
|
1249
|
-
<input type="hidden" name="sig" value="" />
|
1250
|
-
<input type="hidden" name="merchantReference" value="" />
|
1251
|
-
<input type="hidden" name="paymentAmount" value="4320" />
|
1252
|
-
<input type="hidden" name="currencyCode" value="EUR" />
|
1253
|
-
<input type="hidden" name="shipBeforeDate" value="2011-06-03" />
|
1254
|
-
<input type="hidden" name="skinCode" value="Zij12nYa" />
|
1255
|
-
<input type="hidden" name="merchantAccount" value="Test" />
|
1256
|
-
<input type="hidden" name="shopperLocale" value="en" />
|
1257
|
-
<input type="hidden" name="stage" value="pay" />
|
1258
|
-
<input type="hidden" name="sessionId" value="" />
|
1259
|
-
<input type="hidden" name="orderData" value="" />
|
1260
|
-
<input type="hidden" name="sessionValidity" value="" />
|
1261
|
-
<input type="hidden" name="countryCode" value="" />
|
1262
|
-
<input type="hidden" name="shopperEmail" value="test@test.com" />
|
1263
|
-
<input type="hidden" name="allowedMethods" value="visa" />
|
1264
|
-
<input type="hidden" name="originalSession" value="" />
|
1251
|
+
<input type="hidden" name="sig" value="" />
|
1252
|
+
<input type="hidden" name="merchantReference" value="" />
|
1253
|
+
<input type="hidden" name="paymentAmount" value="4320" />
|
1254
|
+
<input type="hidden" name="currencyCode" value="EUR" />
|
1255
|
+
<input type="hidden" name="shipBeforeDate" value="2011-06-03" />
|
1256
|
+
<input type="hidden" name="skinCode" value="Zij12nYa" />
|
1257
|
+
<input type="hidden" name="merchantAccount" value="Test" />
|
1258
|
+
<input type="hidden" name="shopperLocale" value="en" />
|
1259
|
+
<input type="hidden" name="stage" value="pay" />
|
1260
|
+
<input type="hidden" name="sessionId" value="" />
|
1261
|
+
<input type="hidden" name="orderData" value="" />
|
1262
|
+
<input type="hidden" name="sessionValidity" value="" />
|
1263
|
+
<input type="hidden" name="countryCode" value="" />
|
1264
|
+
<input type="hidden" name="shopperEmail" value="test@test.com" />
|
1265
|
+
<input type="hidden" name="allowedMethods" value="visa" />
|
1266
|
+
<input type="hidden" name="originalSession" value="" />
|
1265
1267
|
<input type="hidden" name="referrerURL" value="" />
|
1268
|
+
|
1269
|
+
<!-- ### inc/pmfooter -->
|