Statistics
| Branch: | Revision:

m2u-upass-admin / WebContent / WEB-INF / validator-custom-rules.xml @ 71:e268a6198394

History | View | Annotate | Download (221 KB)

1
<!DOCTYPE form-validation PUBLIC
2

3
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
4
          "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
5

    
6
<form-validation>
7

    
8
        <global>
9
                <!-- Check minimum age allowed -->
10
                <!-- To be use on day field ONLY -->
11
                <validator name="minAge"
12
                        classname="com.ib.ibss.validator.CommonRules"
13
                    method="validateMinAge"
14
                    methodParams="java.lang.Object,
15
                                  org.apache.commons.validator.ValidatorAction,
16
                                  org.apache.commons.validator.Field,
17
                                  org.apache.struts.action.ActionErrors,
18
                                  javax.servlet.http.HttpServletRequest"
19
                   depends=""
20
                   msg="errors.minAge">
21

    
22
                <javascript><![CDATA[
23
                    function validateMinAge (form)
24
                    {
25
                                var overAllValid = true;
26
                var isValid = true;
27
                        var focusField = null;
28
                        var i = 0;
29
                        var fields = new Array();
30
                        oMinAge = new minAge ();
31

    
32
                        var currentDate = new Date ();
33
                        var currentDay = currentDate.getDate ();
34
                        var currentMonth = currentDate.getMonth () + 1;
35
                        var currentYear = currentDate.getFullYear ();
36

    
37
                        for (x in oMinAge)
38
                        {
39
                                isValid = true;
40
                                var field = form[oMinAge[x][0]];
41
                                var fieldName = oMinAge[x][0];
42
                            var monthName = oMinAge[x][2]("minAgeMonthField");
43
                                        var yearName = oMinAge[x][2]("minAgeYearField");
44
                                        var minAgeValue = parseInt(oMinAge[x][2]("minAgeValue"));
45
                            var msg = '';
46

    
47
                                        var fieldNames = new Array();
48
                                        var fieldValues = new Array();
49

    
50
                                        fieldNames[0] = field.name;
51
                        fieldNames[1] = monthName;
52
                        fieldNames[2] = yearName;
53

    
54
                                        for (var j = 0; j < fieldNames.length; j++)
55
                                        {
56
                                                if (form[fieldNames[j]].type == 'text')
57
                                                {
58
                                                        fieldValues[j] = form[fieldNames[j]].value;
59
                                                }
60
                                                else if (form[fieldNames[j]].type == 'select-one')
61
                                                {
62
                                                        var isChecked = -1;
63

    
64
                                                        var si = form[fieldNames[j]].selectedIndex;
65

    
66
                                                    if (si > 0)
67
                                                    {
68
                                                            fieldValues[j] = form[fieldNames[j]].options[si].value;
69
                                                    }
70
                                                    else
71
                                                    {
72
                                                            fieldValues[j] = '';
73
                                                    }
74
                                                }
75
                                        }
76

    
77
                                        dayValue = fieldValues[0];
78
                                        monthValue = fieldValues[1];
79
                                        yearValue = fieldValues[2];
80

    
81
                                        if (dayValue.slice(0, 1) == "0" && dayValue.length == 2)
82
                                        {
83
                                                dayValue = dayValue.slice(1, 2);
84
                                        }
85

    
86
                                        if (monthValue.slice(0, 1) == "0" && monthValue.length == 2)
87
                                        {
88
                                                monthValue = monthValue.slice(1, 2);
89
                                        }
90

    
91
                                        dayValue = parseInt(dayValue);
92
                                        monthValue = parseInt(monthValue);
93
                                        yearValue = parseInt(yearValue);
94

    
95
                                        if ((currentYear - yearValue) < minAgeValue)
96
                                        {
97
                                                isValid = false;
98
                                        }
99
                                        else if ((currentYear - yearValue) == minAgeValue)
100
                                        {
101
                                                if (monthValue > currentMonth)
102
                                                {
103
                                                        isValid = false;
104
                                                }
105
                                                else if (monthValue == currentMonth)
106
                                                {
107
                                                        if (dayValue > currentDay)
108
                                                        {
109
                                                                isValid = false;
110
                                                        }
111
                                                }
112
                                        }
113

    
114
                                        if (!isValid)
115
                    {
116
                                if (i == 0)
117
                                                {
118
                                                        focusField = field;
119
                                                }
120

    
121
                                                fields[i++] = oMinAge[x][1];
122
                                                msg = oMinAge[x][1];
123
                                                overAllValid = isValid = false;
124
                    }
125

    
126
                    errorMessageHandler (isValid, field.name, msg);
127
                        }
128

    
129
                if (fields.length > 0) {
130
                   focusField.focus();
131
                   //alert(fields.join('\n'));
132
                }
133

    
134
                        return overAllValid;
135
                        }
136
                ]]></javascript>
137

    
138
                </validator>
139

    
140
                <!-- Check if value is the same with value found in hidden field '<currentFieldName>MatchValueDyna' -->
141
                <validator name="matchValueDyna"
142
                        classname="com.ib.ibss.validator.CommonRules"
143
                    method="validateMatchValueDyna"
144
                    methodParams="java.lang.Object,
145
                                  org.apache.commons.validator.ValidatorAction,
146
                                  org.apache.commons.validator.Field,
147
                                  org.apache.struts.action.ActionErrors,
148
                                  javax.servlet.http.HttpServletRequest"
149
                   depends=""
150
                   msg="errors.matchValueDyna">
151

    
152
                <javascript><![CDATA[
153
                    function validateMatchValueDyna (form)
154
                    {
155
                                var overAllValid = true;
156
                var isValid = true;
157
                        var focusField = null;
158
                        var i = 0;
159
                        var fields = new Array();
160
                        oMatchValueDyna = new matchValueDyna ();
161

    
162
                        for (x in oMatchValueDyna)
163
                        {
164
                                isValid = true;
165
                                var fieldName = oMatchValueDyna[x][0];
166
                            var field = form[fieldName];
167
                            var hiddenName = fieldName + "MatchValueDyna";
168
                            var value = '';
169
                            var value2 = '';
170

    
171
                            var msg = '';
172

    
173
                    if (field.type == 'text')
174
                    {
175
                        value = field.value;
176
                    }
177

    
178
                    if (form[hiddenName].type == 'hidden')
179
                    {
180
                            value2 = form[hiddenName].value;
181
                    }
182

    
183
                    if (value != value2)
184
                    {
185
                                if (i == 0)
186
                                                {
187
                                                        focusField = field;
188
                                                }
189

    
190
                                                fields[i++] = oMatchValueDyna[x][1];
191
                                                msg = oMatchValueDyna[x][1];
192
                                                overAllValid = isValid = false;
193
                    }
194

    
195
                                        errorMessageHandler (isValid, field.name, msg);
196
                        }
197

    
198
                if (fields.length > 0) {
199
                   focusField.focus();
200
                   //alert(fields.join('\n'));
201
                }
202

    
203
                        return overAllValid;
204
                        }
205
                ]]></javascript>
206

    
207
                </validator>
208

    
209

    
210
                <!-- Check if value entered is more than allowed minimum limit defined by hidden field name '<currentFieldName>MinValueDyna' -->
211
                <validator name="minValueDyna"
212
                        classname="com.ib.ibss.validator.CommonRules"
213
                    method="validateMinValueDyna"
214
                    methodParams="java.lang.Object,
215
                                  org.apache.commons.validator.ValidatorAction,
216
                                  org.apache.commons.validator.Field,
217
                                  org.apache.struts.action.ActionErrors,
218
                                  javax.servlet.http.HttpServletRequest"
219
                   depends=""
220
                   msg="errors.minValueDyna">
221

    
222
                <javascript><![CDATA[
223
                    function validateMinValueDyna (form)
224
                    {
225
                                var overAllValid = true;
226
                var isValid = true;
227
                        var focusField = null;
228
                        var i = 0;
229
                        var fields = new Array();
230
                        oMinValueDyna = new minValueDyna ();
231

    
232
                        for (x in oMinValueDyna)
233
                        {
234
                                isValid = true;
235
                                var fieldName = oMinValueDyna[x][0];
236
                            var field = form[fieldName];
237
                            var hiddenName = fieldName + "MinValueDyna";
238
                            var valueSize = '';
239
                            var minSize = '';
240

    
241
                            var msg = '';
242

    
243
                    if (field.type == 'text')
244
                    {
245
                        value = field.value;
246
                        valueSize = value1.length;
247
                    }
248

    
249
                    if (form[hiddenName].type == 'hidden')
250
                    {
251
                            minSize = form[hiddenName].value;
252
                    }
253

    
254
                                        if (valueSize != '' && minSize != '')
255
                                        {
256
                            if (value < minSize)
257
                            {
258
                                        if (i == 0)
259
                                                        {
260
                                                                focusField = field;
261
                                                        }
262

    
263
                                                        fields[i++] = oMinValueDyna[x][1];
264
                                                        msg = oMinValueDyna[x][1];
265
                                                        overAllValid = isValid = false;
266
                            }
267
                                        }
268

    
269
                                        errorMessageHandler (isValid, field.name, msg);
270
                        }
271

    
272
                if (fields.length > 0) {
273
                   focusField.focus();
274
                   //alert(fields.join('\n'));
275
                }
276

    
277
                        return overAllValid;
278
                        }
279
                ]]></javascript>
280

    
281
                </validator>
282

    
283

    
284
                <!-- Check if value entered is less than maximum allowed limit given by hidden field '<currentFieldName>MaxValueDyna' -->
285
                <validator name="maxValueDyna"
286
                        classname="com.ib.ibss.validator.CommonRules"
287
                    method="validateMaxValueDyna"
288
                    methodParams="java.lang.Object,
289
                                  org.apache.commons.validator.ValidatorAction,
290
                                  org.apache.commons.validator.Field,
291
                                  org.apache.struts.action.ActionErrors,
292
                                  javax.servlet.http.HttpServletRequest"
293
                   depends=""
294
                   msg="errors.maxValueDyna">
295

    
296
                <javascript><![CDATA[
297
                    function validateMaxValueDyna (form)
298
                    {
299
                                var overAllValid = true;
300
                var isValid = true;
301
                        var focusField = null;
302
                        var i = 0;
303
                        var fields = new Array();
304
                        oMaxValueDyna = new maxValueDyna ();
305

    
306
                        for (x in oMaxValueDyna)
307
                        {
308
                                isValid = true;
309
                                var fieldName = oMaxValueDyna[x][0];
310
                            var field = form[fieldName];
311
                            var hiddenName = fieldName + "MaxValueDyna";
312
                            var value = '';
313
                            var maxSize = '';
314

    
315
                            var msg = '';
316

    
317
                    if (field.type == 'text')
318
                    {
319
                        value = field.value;
320
                        valueSize = value1.length;
321
                    }
322

    
323
                    if (form[hiddenName].type == 'hidden')
324
                    {
325
                            maxSize = form[hiddenName].value;
326
                    }
327

    
328
                                        if (valueSize != '' && maxSize != '')
329
                                        {
330
                                                if (valueSize > maxSize)
331
                            {
332
                                        if (i == 0)
333
                                                        {
334
                                                                focusField = field;
335
                                                        }
336

    
337
                                                        fields[i++] = oMaxValueDyna[x][1];
338
                                                        msg = oMaxValueDyna[x][1];
339
                                                        overAllValid = isValid = false;
340
                            }
341
                                        }
342

    
343
                                        errorMessageHandler (isValid, field.name, msg);
344
                        }
345

    
346
                if (fields.length > 0) {
347
                   focusField.focus();
348
                   //alert(fields.join('\n'));
349
                }
350

    
351
                        return overAllValid;
352
                        }
353
                ]]></javascript>
354

    
355
                </validator>
356

    
357

    
358
                <!-- Check if value size matches value gien from a hidden field called '<currentFieldName>MatchLengthDyna' -->
359
                <validator name="matchLengthDyna"
360
                        classname="com.ib.ibss.validator.CommonRules"
361
                    method="validateMatchLengthDyna"
362
                    methodParams="java.lang.Object,
363
                                  org.apache.commons.validator.ValidatorAction,
364
                                  org.apache.commons.validator.Field,
365
                                  org.apache.struts.action.ActionErrors,
366
                                  javax.servlet.http.HttpServletRequest"
367
                   depends=""
368
                   msg="errors.matchLengthDyna">
369

    
370
                <javascript><![CDATA[
371
                    function validateMatchLengthDyna (form)
372
                    {
373
                                var overAllValid = true;
374
                var isValid = true;
375
                        var focusField = null;
376
                        var i = 0;
377
                        var fields = new Array();
378
                        oMatchLengthDyna = new matchLengthDyna ();
379

    
380
                        for (x in oMatchLengthDyna)
381
                        {
382
                                isValid = true;
383
                                var fieldName = oMatchLengthDyna[x][0];
384
                            var field = form[fieldName];
385
                            var hiddenName = fieldName + "MatchLengthDyna";
386
                            var value = '';
387
                            var matchSize = '';
388
                            var valueSize = ''
389

    
390
                            var msg = '';
391

    
392
                    if (field.type == 'text')
393
                    {
394
                        value = field.value;
395
                        valueSize = value.length;
396
                    }
397

    
398
                    if (form[hiddenName].type == 'hidden')
399
                    {
400
                            matchSize = form[hiddenName].value;
401
                    }
402

    
403
                                        if (valueSize != '' && matchSize != '')
404
                                        {
405
                                                if (valueSize != matchSize)
406
                            {
407
                                        if (i == 0)
408
                                                        {
409
                                                                focusField = field;
410
                                                        }
411

    
412
                                                        fields[i++] = oMatchLengthDyna[x][1];
413
                                                        msg = oMatchLengthDyna[x][1];
414
                                                        overAllValid = isValid = false;
415
                            }
416
                                        }
417

    
418
                                        errorMessageHandler (isValid, field.name, msg);
419
                        }
420

    
421
                if (fields.length > 0) {
422
                   focusField.focus();
423
                   //alert(fields.join('\n'));
424
                }
425

    
426
                        return overAllValid;
427
                        }
428
                ]]></javascript>
429

    
430
                </validator>
431

    
432
                <!-- Compare two values if they are matched -->
433
                <validator name="matchIf"
434
                        classname="com.ib.ibss.validator.CommonRules"
435
                    method="validateMatchIf"
436
                    methodParams="java.lang.Object,
437
                                  org.apache.commons.validator.ValidatorAction,
438
                                  org.apache.commons.validator.Field,
439
                                  org.apache.struts.action.ActionErrors,
440
                                  javax.servlet.http.HttpServletRequest"
441
                   depends=""
442
                   msg="errors.matchIf">
443

    
444
                <javascript><![CDATA[
445
                    function validateMatchIf (form)
446
                    {
447
                                var overAllValid = true;
448
                var isValid = true;
449
                        var focusField = null;
450
                        var i = 0;
451
                        var fields = new Array();
452
                        oMatchIf = new matchIf ();
453

    
454
                        for (x in oMatchIf)
455
                        {
456
                                isValid = true;
457
                            var field1 = form[oMatchIf[x][0]];
458
                            var field1Name = oMatchIf[x][0];
459
                            var matchValue1 = oMatchIf[x][2]("matchIfValue1");
460
                            var field2 = oMatchIf[x][2]("matchIfField2");
461
                            var matchValue2 = oMatchIf[x][2]("matchIfValue2");
462
                            var value1 = '';
463
                            var value2 = '';
464

    
465
                            var msg = '';
466

    
467
                    if (field1.type == 'select-one')
468
                    {
469
                        var si1 = field1.selectedIndex;
470
                        value1 = field1.options[si1].value;
471
                    }
472
                    else if (field1.type == 'text')
473
                    {
474
                        value1 = field1.value;
475
                    }
476
                    else if (field1[0].type == 'radio')
477
                    {
478
                                                for (loop = 0; loop < field1.length; loop++)
479
                                                {
480
                                                        if (field1[loop].checked) {
481
                                                                value1 = field1[loop].value;
482
                                                                field1 = field1[0];
483
                                                                break;
484
                                                        }
485
                                                }
486
                    }
487

    
488
                    if (form[field2].type == 'select-one')
489
                    {
490
                        var si2 = form[field2].selectedIndex;
491
                        value2 = form[field2].options[si2].value;
492
                    }
493
                    else if (form[field2].type == 'text')
494
                    {
495
                        value2 = form[field2].value;
496
                    }
497
                    else if (form[field2][0].type == 'radio')
498
                    {
499
                                                for (loop = 0; loop < form[field2].length; loop++)
500
                                                {
501
                                                        if (form[field2][loop].checked) {
502
                                                                value2 = form[field2][loop].value;
503
                                                                break;
504
                                                        }
505
                                                }
506
                    }
507

    
508
                                        value1 = "'" + value1 + "'";
509
                    value2 = "'" + value2 + "'";
510
                    matchValue1 = "'" + matchValue1 + "'";
511
                    matchValue2 = "'" + matchValue2 + "'";
512

    
513
                    if (eval (value1 + "==" + matchValue1))
514
                    {
515
                            if (eval (value2 + "!=" + matchValue2))
516
                            {
517
                                    if (i == 0)
518
                                                        {
519
                                                                focusField = field1;
520
                                                        }
521

    
522
                                                        fields[i++] = oMatchIf[x][1];
523
                                                        msg = oMatchIf[x][1];
524
                                                        overAllValid = isValid = false;
525
                            }
526
                    }
527

    
528
                                        errorMessageHandler (isValid, field1Name, msg);
529
                        }
530

    
531
                if (fields.length > 0) {
532
                   focusField.focus();
533
                   //alert(fields.join('\n'));
534
                }
535

    
536
                        return overAllValid;
537
                        }
538
                ]]></javascript>
539

    
540
                </validator>
541

    
542

    
543
                <!-- Check IC number is valid base on gender-->
544
                <!-- Use on IC field ONLY -->
545
                <validator name="icNumberGender"
546
                        classname="com.ib.ibss.validator.CommonRules"
547
                    method="validateICNumberGender"
548
                    methodParams="java.lang.Object,
549
                                  org.apache.commons.validator.ValidatorAction,
550
                                  org.apache.commons.validator.Field,
551
                                  org.apache.struts.action.ActionErrors,
552
                                  javax.servlet.http.HttpServletRequest"
553
                   depends=""
554
                   msg="errors.icGender">
555

    
556
                <javascript><![CDATA[
557
                    function validateICNumberGender (form)
558
                    {
559
                                var overAllValid = true;
560
                var isValid = true;
561
                        var focusField = null;
562
                        var i = 0;
563
                        var fields = new Array();
564
                        oICGender = new icNumberGender ();
565

    
566
                        for (x in oICGender)
567
                        {
568
                                isValid = true;
569
                            var field = form[oICGender[x][0]];
570
                            var genderField = oICGender[x][2]("icNumberGenderField");
571
                            var msg = '';
572

    
573
                                        var icGender = '';
574
                                        var gender = '';
575

    
576
                    if (field.type == 'select-one')
577
                    {
578
                        var si1 = field.selectedIndex;
579
                        icGender = field.options[si1].value;
580
                    }
581
                    else if (field.type == 'text' || field.type == 'hidden')
582
                    {
583
                        icGender = field.value;
584
                    }
585

    
586
                    if (icGender.length > 0)
587
                    {
588
                            if (form[genderField].type == 'select-one')
589
                            {
590
                                var si2 = form[genderField].selectedIndex;
591
                                gender = form[genderField].options[si2].value;
592
                            }
593
                            /*
594
                            else if (form[genderField][0].type == 'radio')
595
                            {
596
                                    var length = form[genderField].length;
597

    
598
                                    for(var i = 0; i < length; i++)
599
                                    {
600
                                                                if(form[genderField].checked)
601
                                                                {
602
                                                                        gender = form[genderField].value;
603
                                                                }
604
                                                        }
605
                            }
606
                            */
607
                            else if (form[genderField].type == 'hidden')
608
                            {
609
                                    gender = form[genderField].value;
610
                            }
611

    
612
                            gender = gender.slice (0, 1);
613

    
614
                                                icGender = icGender.slice (11, 12);
615

    
616
                                                if ((parseInt (icGender % 2) == 0 && gender != 'F') || (parseInt (icGender % 2) != 0 && gender != 'M'))
617
                                                {
618
                                                        if (i == 0)
619
                                                        {
620
                                                                focusField = field;
621
                                                        }
622

    
623
                                                        fields[i++] = oICGender[x][1];
624
                                                        msg = oICGender[x][1];
625
                                                        overAllValid = isValid = false;
626
                                                }
627

    
628
                                                errorMessageHandler (isValid, field.name, msg);
629
                    }
630
                        }
631

    
632
                if (fields.length > 0) {
633
                   focusField.focus();
634
                   //alert(fields.join('\n'));
635
                }
636

    
637
                        return overAllValid;
638
                        }
639
                ]]></javascript>
640

    
641
                </validator>
642

    
643

    
644
                <!-- Check IC number is valid base on DOB-->
645
                <!-- Use on IC field ONLY -->
646
                <validator name="icNumberDOB"
647
                        classname="com.ib.ibss.validator.CommonRules"
648
                    method="validateICNumberDOB"
649
                    methodParams="java.lang.Object,
650
                                  org.apache.commons.validator.ValidatorAction,
651
                                  org.apache.commons.validator.Field,
652
                                  org.apache.struts.action.ActionErrors,
653
                                  javax.servlet.http.HttpServletRequest"
654
                   depends=""
655
                   msg="errors.icDOB">
656

    
657
                <javascript><![CDATA[
658
                    function validateICNumberDOB (form)
659
                    {
660
                                var overAllValid = true;
661
                var isValid = true;
662
                        var focusField = null;
663
                        var i = 0;
664
                        var fields = new Array();
665
                        oICDOB = new icNumberDOB ();
666

    
667
                        for (x in oICDOB)
668
                        {
669
                                isValid = true;
670
                            var field = form[oICDOB[x][0]];
671
                            var dobDayField = oICDOB[x][2]("icNumberDOBDayField");
672
                                        var dobMonthField = oICDOB[x][2]("icNumberDOBMonthField");
673
                                        var dobYearField = oICDOB[x][2]("icNumberDOBYearField");
674

    
675
                                        var msg = '';
676

    
677
                                        var icDOB = '';
678
                                        var dobDay = '';
679
                                        var dobMonth = '';
680
                                        var dobYear = '';
681

    
682
                    if (field.type == 'select-one')
683
                    {
684
                        var si1 = field.selectedIndex;
685
                        icDOB = field.options[si1].value;
686
                    }
687
                    else if (field.type == 'text')
688
                    {
689
                        icDOB = field.value;
690
                    }
691

    
692
                    if (icDOB.length > 0)
693
                    {
694
                            if (form[dobDayField].type == 'select-one')
695
                            {
696
                                var si2 = form[dobDayField].selectedIndex;
697
                                dobDay = form[dobDayField].options[si2].value;
698
                            }
699
                            else if (form[dobDayField].type == 'text')
700
                            {
701
                                dobDay = form[dobDayField].value;
702
                            }
703

    
704
                            if (form[dobMonthField].type == 'select-one')
705
                            {
706
                                var si3 = form[dobMonthField].selectedIndex;
707
                                dobMonth = form[dobMonthField].options[si3].value;
708
                            }
709
                            else if (form[dobMonthField].type == 'text')
710
                            {
711
                                dobMonth = form[dobMonthField].value;
712
                            }
713

    
714
                            if (form[dobYearField].type == 'select-one')
715
                            {
716
                                var si4 = form[dobYearField].selectedIndex;
717
                                dobYear = form[dobYearField].options[si4].value.slice (2,4);
718
                            }
719
                            else if (form[dobYearField].type == 'text')
720
                            {
721
                                dobYear = form[dobYearField].value.slice (2,4);
722
                            }
723

    
724
                                                var icYear = icDOB.slice (0,2);
725
                                                var icMonth = icDOB.slice (2,4);
726
                                                var icDay = icDOB.slice (4,6);
727

    
728
                                                if (dobDay.slice(0,1) == "0" && dobDay.length == 2)
729
                                                {
730
                                                        dobDay = dobDay.slice (1,2);
731
                                                }
732

    
733
                                                if (dobMonth.slice(0,1) == "0" && dobMonth.length == 2)
734
                                                {
735
                                                        dobMonth = dobMonth.slice (1,2);
736
                                                }
737

    
738
                                                if (icDay.slice(0,1) == "0" && icDay.length == 2)
739
                                                {
740
                                                        icDay = icDay.slice (1,2);
741
                                                }
742

    
743
                                                if (icMonth.slice(0,1) == "0" && icMonth.length == 2)
744
                                                {
745
                                                        icMonth = icMonth.slice (1,2);
746
                                                }
747

    
748
                                                if ((icYear != dobYear) || (icMonth != dobMonth) || (icDay != dobDay))
749
                                                {
750
                                                        if (i == 0)
751
                                                        {
752
                                                                focusField = field;
753
                                                        }
754
                                                        fields[i++] = oICDOB[x][1];
755
                                                        msg = oICDOB[x][1];
756
                                                        overAllValid = isValid = false;
757
                                                }
758

    
759
                                                errorMessageHandler (isValid, field.name, msg);
760
                    }
761
                        }
762

    
763
                if (fields.length > 0) {
764
                   focusField.focus();
765
                   //alert(fields.join('\n'));
766
                }
767

    
768
                        return overAllValid;
769
                        }
770
                ]]></javascript>
771

    
772
                </validator>
773

    
774

    
775
                <!-- Check if date is after a certain date -->
776
                <!-- Use on day field ONLY -->
777
                <validator name="futureDate3"
778
                        classname="com.ib.ibss.validator.CommonRules"
779
                    method="validateFutureDate3"
780
                    methodParams="java.lang.Object,
781
                                  org.apache.commons.validator.ValidatorAction,
782
                                  org.apache.commons.validator.Field,
783
                                  org.apache.struts.action.ActionErrors,
784
                                  javax.servlet.http.HttpServletRequest"
785
                   depends=""
786
                   msg="errors.futureDate3">
787

    
788
                <javascript><![CDATA[
789
                    function validateFutureDate3 (form)
790
                    {
791
                                var overAllValid = true;
792
                var isValid = true;
793
                        var focusField = null;
794
                        var i = 0;
795
                        var fields = new Array();
796
                        oFutureDate3= new futureDate3 ();
797

    
798
                        for (x in oFutureDate3)
799
                        {
800
                                isValid = true;
801
                            var field = form[oFutureDate3[x][0]];
802
                            var monthName = oFutureDate3[x][2]("futureDate3MonthField");
803
                                        var yearName = oFutureDate3[x][2]("futureDate3YearField");
804
                                        var compareDate = oFutureDate3[x][2]("futureDate3CompareDateField");
805
                        var dayValue = 0;
806
                        var monthValue = 0;
807
                        var yearValue = 0;
808
                        var compareDateValue = 0;
809
                        var compareDayValue = 0;
810
                        var compareMonthValue = 0;
811
                        var compareYearValue = 0;
812
                        var isLeapYear = false;
813
                                        var maxDays = 0;
814
                                        var msg = '';
815
                                        var name = '';
816
                                        var minYear = 1900;
817

    
818
                                        var fieldNames = new Array();
819
                                        var fieldValues = new Array();
820
                                        var compareNames = new Array();
821
                                        var compareValues = new Array();
822

    
823
                                        fieldNames[0] = field.name;
824
                        fieldNames[1] = monthName;
825
                        fieldNames[2] = yearName;
826

    
827
                                        for (var j = 0; j < fieldNames.length; j++)
828
                                        {
829
                                                if (form[fieldNames[j]].type == 'text' ||
830
                                                        form[fieldNames[j]].type == 'hidden')
831
                                                {
832
                                                        fieldValues[j] = form[fieldNames[j]].value;
833
                                                }
834
                                                else if (form[fieldNames[j]].type == 'select-one')
835
                                                {
836
                                                        var isChecked = -1;
837

    
838
                                                        var si = form[fieldNames[j]].selectedIndex;
839

    
840
                                                    if (si > 0)
841
                                                    {
842
                                                            fieldValues[j] = form[fieldNames[j]].options[si].value;
843
                                                    }
844
                                                    else
845
                                                    {
846
                                                            fieldValues[j] = '';
847
                                                    }
848
                                                }
849
                                        }
850

    
851
                                        if (form[compareDate].type == 'text' ||
852
                                                form[compareDate].type == 'hidden')
853
                                        {
854
                                                compareDateValue = form[compareDate].value;
855
                                        }
856
                                        else if (form[compareDate].type == 'select-one')
857
                                        {
858
                                                var isChecked = -1;
859

    
860
                                                var si = form[compareDate].selectedIndex;
861

    
862
                                            if (si > 0)
863
                                            {
864
                                                    compareDateValue = form[compareDate].options[si].value;
865
                                            }
866
                                            else
867
                                            {
868
                                                    compareDateValue = '';
869
                                            }
870
                                        }
871

    
872
                                        dayValue = fieldValues[0];
873
                                        monthValue = fieldValues[1];
874
                                        yearValue = fieldValues[2];
875

    
876
                                        compareDateValue = compareDateValue.slice (0, 8);
877

    
878
                                        compareDayValue = compareDateValue.slice (6, 8);
879
                                        compareMonthValue = compareDateValue.slice (4, 6);
880
                                        compareYearValue = compareDateValue.slice (0, 4);
881

    
882
                                        if (dayValue.slice(0, 1) == "0" && dayValue.length == 2)
883
                                        {
884
                                                dayValue = dayValue.slice(1, 2);
885
                                        }
886

    
887
                                        if (monthValue.slice(0, 1) == "0" && monthValue.length == 2)
888
                                        {
889
                                                monthValue = monthValue.slice(1, 2);
890
                                        }
891

    
892
                                        if (compareDayValue.slice(0, 1) == "0" && compareDayValue.length == 2)
893
                                        {
894
                                                compareDayValue = compareDayValue.slice(1, 2);
895
                                        }
896

    
897
                                        if (compareMonthValue.slice(0, 1) == "0" && compareMonthValue.length == 2)
898
                                        {
899
                                                compareMonthValue = compareMonthValue.slice(1, 2);
900
                                        }
901

    
902
                                        dayValue = parseInt(dayValue);
903
                                        monthValue = parseInt(monthValue);
904
                                        yearValue = parseInt(yearValue);
905

    
906
                                        compareDayValue = parseInt(compareDayValue);
907
                                        compareMonthValue = parseInt(compareMonthValue);
908
                                        compareYearValue = parseInt(compareYearValue);
909

    
910
                                        if (!isNaN(dayValue) && !isNaN(monthValue) && !isNaN(yearValue))
911
                                        {
912
                                                if (yearValue < compareYearValue)
913
                                                {
914
                                                        isValid = false;
915
                                                }
916
                                                else if (yearValue == compareYearValue)
917
                                                {
918
                                                        if (monthValue < compareMonthValue)
919
                                                        {
920
                                                                isValid = false;
921
                                                        }
922
                                                        else if (monthValue == compareMonthValue)
923
                                                        {
924
                                                                if (dayValue<=compareDayValue)
925
                                                                {
926
                                                                        isValid = false;
927
                                                                }
928
                                                        }
929
                                                }
930
                                        }
931

    
932

    
933
                                        if (!isValid)
934
                                        {
935
                                                if (i == 0)
936
                                                {
937
                                                        focusField = field;
938
                                                }
939
                                                fields[i++] = oFutureDate3[x][1];
940
                                                msg = oFutureDate3[x][1];
941
                                                overAllValid = isValid = false;
942
                                        }
943

    
944
                                        errorMessageHandler (isValid, field.name, msg);
945
                        }
946

    
947
                if (fields.length > 0) {
948
                   focusField.focus();
949
                   //alert(fields.join('\n'));
950
                }
951

    
952
                        return overAllValid;
953
                        }
954
                ]]></javascript>
955

    
956
                </validator>
957

    
958
                <!-- Check if date is after a certain date -->
959
                <!-- Use on day field ONLY -->
960
                <validator name="futureDate2"
961
                        classname="com.ib.ibss.validator.CommonRules"
962
                    method="validateFutureDate2"
963
                    methodParams="java.lang.Object,
964
                                  org.apache.commons.validator.ValidatorAction,
965
                                  org.apache.commons.validator.Field,
966
                                  org.apache.struts.action.ActionErrors,
967
                                  javax.servlet.http.HttpServletRequest"
968
                   depends=""
969
                   msg="errors.futureDate2">
970

    
971
                <javascript><![CDATA[
972
                    function validateFutureDate2 (form)
973
                    {
974
                                var overAllValid = true;
975
                var isValid = true;
976
                        var focusField = null;
977
                        var i = 0;
978
                        var fields = new Array();
979
                        oFutureDate2 = new futureDate2 ();
980

    
981
                        for (x in oFutureDate2)
982
                        {
983
                                isValid = true;
984
                            var field = form[oFutureDate2[x][0]];
985
                            var monthName = oFutureDate2[x][2]("futureDate2MonthField");
986
                                        var yearName = oFutureDate2[x][2]("futureDate2YearField");
987
                                        var compareDay = oFutureDate2[x][2]("futureDate2CompareDayField");
988
                                        var compareMonth = oFutureDate2[x][2]("futureDate2CompareMonthField");
989
                                        var compareYear = oFutureDate2[x][2]("futureDate2CompareYearField");
990
                        var dayValue = 0;
991
                        var monthValue = 0;
992
                        var yearValue = 0;
993
                        var compareDayValue = 0;
994
                        var compareMonthValue = 0;
995
                        var compareYearValue = 0;
996
                        var isLeapYear = false;
997
                                        var maxDays = 0;
998
                                        var msg = '';
999
                                        var name = '';
1000
                                        var minYear = 1900;
1001

    
1002
                                        var fieldNames = new Array();
1003
                                        var fieldValues = new Array();
1004
                                        var compareNames = new Array();
1005
                                        var compareValues = new Array();
1006

    
1007
                                        fieldNames[0] = field.name;
1008
                        fieldNames[1] = monthName;
1009
                        fieldNames[2] = yearName;
1010

    
1011
                        compareNames[0] = compareDay;
1012
                        compareNames[1] = compareMonth;
1013
                        compareNames[2] = compareYear;
1014

    
1015
                                        for (var j = 0; j < fieldNames.length; j++)
1016
                                        {
1017
                                                if (form[fieldNames[j]].type == 'text' ||
1018
                                                        form[fieldNames[j]].type == 'hidden')
1019
                                                {
1020
                                                        fieldValues[j] = form[fieldNames[j]].value;
1021
                                                }
1022
                                                else if (form[fieldNames[j]].type == 'select-one')
1023
                                                {
1024
                                                        var isChecked = -1;
1025

    
1026
                                                        var si = form[fieldNames[j]].selectedIndex;
1027

    
1028
                                                    if (si > 0)
1029
                                                    {
1030
                                                            fieldValues[j] = form[fieldNames[j]].options[si].value;
1031
                                                    }
1032
                                                    else
1033
                                                    {
1034
                                                            fieldValues[j] = '';
1035
                                                    }
1036
                                                }
1037
                                        }
1038

    
1039
                                        for (var k = 0; k < compareNames.length; k++)
1040
                                        {
1041
                                                if (form[compareNames[k]].type == 'text' ||
1042
                                                        form[fieldNames[j]].type == 'hidden')
1043
                                                {
1044
                                                        compareValues[k] = form[compareNames[k]].value;
1045
                                                }
1046
                                                else if (form[compareNames[k]].type == 'select-one')
1047
                                                {
1048
                                                        var isChecked = -1;
1049

    
1050
                                                        var si = form[compareNames[k]].selectedIndex;
1051

    
1052
                                                    if (si > 0)
1053
                                                    {
1054
                                                            compareValues[k] = form[compareNames[k]].options[si].value;
1055
                                                    }
1056
                                                    else
1057
                                                    {
1058
                                                            compareValues[k] = '';
1059
                                                    }
1060
                                                }
1061
                                        }
1062

    
1063
                                        dayValue = fieldValues[0];
1064
                                        monthValue = fieldValues[1];
1065
                                        yearValue = fieldValues[2];
1066

    
1067
                                        compareDayValue = compareValues[0];
1068
                                        compareMonthValue = compareValues[1];
1069
                                        compareYearValue = compareValues[2];
1070

    
1071
                                        if (dayValue.slice(0, 1) == "0" && dayValue.length == 2)
1072
                                        {
1073
                                                dayValue = dayValue.slice(1, 2);
1074
                                        }
1075

    
1076
                                        if (monthValue.slice(0, 1) == "0" && monthValue.length == 2)
1077
                                        {
1078
                                                monthValue = monthValue.slice(1, 2);
1079
                                        }
1080

    
1081
                                        if (compareDayValue.slice(0, 1) == "0" && compareDayValue.length == 2)
1082
                                        {
1083
                                                compareDayValue = compareDayValue.slice(1, 2);
1084
                                        }
1085

    
1086
                                        if (compareMonthValue.slice(0, 1) == "0" && compareMonthValue.length == 2)
1087
                                        {
1088
                                                compareMonthValue = compareMonthValue.slice(1, 2);
1089
                                        }
1090

    
1091
                                        dayValue = parseInt(dayValue);
1092
                                        monthValue = parseInt(monthValue);
1093
                                        yearValue = parseInt(yearValue);
1094

    
1095
                                        compareDayValue = parseInt(compareDayValue);
1096
                                        compareMonthValue = parseInt(compareMonthValue);
1097
                                        compareYearValue = parseInt(compareYearValue);
1098

    
1099
                                        if (!isNaN(dayValue) && !isNaN(monthValue) && !isNaN(yearValue))
1100
                                        {
1101
                                                if (yearValue < compareYearValue)
1102
                                                {
1103
                                                        isValid = false;
1104
                                                }
1105
                                                else if (yearValue == compareYearValue)
1106
                                                {
1107
                                                        if (monthValue < compareMonthValue)
1108
                                                        {
1109
                                                                isValid = false;
1110
                                                        }
1111
                                                        else if (monthValue == compareMonthValue)
1112
                                                        {
1113
                                                                if (dayValue<=compareDayValue)
1114
                                                                {
1115
                                                                        isValid = false;
1116
                                                                }
1117
                                                        }
1118
                                                }
1119
                                        }
1120

    
1121
                                        if (!isValid)
1122
                                        {
1123
                                                if (i == 0)
1124
                                                {
1125
                                                        focusField = field;
1126
                                                }
1127
                                                fields[i++] = oFutureDate2[x][1];
1128
                                                msg = oFutureDate2[x][1];
1129
                                                overAllValid = isValid = false;
1130
                                        }
1131

    
1132
                                        errorMessageHandler (isValid, field.name, msg);
1133
                        }
1134

    
1135
                if (fields.length > 0) {
1136
                   focusField.focus();
1137
                   //alert(fields.join('\n'));
1138
                }
1139

    
1140
                        return overAllValid;
1141
                        }
1142
                ]]></javascript>
1143

    
1144
                </validator>
1145

    
1146
                <!-- Check if date is after current date -->
1147
                <!-- Use on day field ONLY -->
1148
                <validator name="futureDate"
1149
                        classname="com.ib.ibss.validator.CommonRules"
1150
                    method="validateFutureDate"
1151
                    methodParams="java.lang.Object,
1152
                                  org.apache.commons.validator.ValidatorAction,
1153
                                  org.apache.commons.validator.Field,
1154
                                  org.apache.struts.action.ActionErrors,
1155
                                  javax.servlet.http.HttpServletRequest"
1156
                   depends=""
1157
                   msg="errors.futureDate">
1158

    
1159
                <javascript><![CDATA[
1160
                    function validateFutureDate (form)
1161
                    {
1162
                                var overAllValid = true;
1163
                var isValid = true;
1164
                        var focusField = null;
1165
                        var i = 0;
1166
                        var fields = new Array();
1167
                        oFutureDate = new futureDate ();
1168

    
1169
                        var currentDate = new Date ();
1170
                        var currentDay = currentDate.getDate ();
1171
                        var currentMonth = currentDate.getMonth () + 1;
1172
                        var currentYear = currentDate.getFullYear ();
1173

    
1174
                        for (x in oFutureDate)
1175
                        {
1176
                                isValid = true;
1177
                            var field = form[oFutureDate[x][0]];
1178
                            var monthName = oFutureDate[x][2]("futureDateMonthField");
1179
                                        var yearName = oFutureDate[x][2]("futureDateYearField");
1180
                        var dayValue = 0;
1181
                        var monthValue = 0;
1182
                        var yearValue = 0;
1183
                        var isLeapYear = false;
1184
                                        var maxDays = 0;
1185
                                        var msg = '';
1186
                                        var name = '';
1187
                                        var minYear = 1900;
1188

    
1189
                                        var fieldNames = new Array();
1190
                                        var fieldValues = new Array();
1191

    
1192
                                        fieldNames[0] = field.name;
1193
                        fieldNames[1] = monthName;
1194
                        fieldNames[2] = yearName;
1195

    
1196
                                        for (var j = 0; j < fieldNames.length; j++)
1197
                                        {
1198
                                                if (form[fieldNames[j]].type == 'text' ||
1199
                                                        form[fieldNames[j]].type == 'hidden')
1200
                                                {
1201
                                                        fieldValues[j] = form[fieldNames[j]].value;
1202
                                                }
1203
                                                else if (form[fieldNames[j]].type == 'select-one')
1204
                                                {
1205
                                                        var isChecked = -1;
1206

    
1207
                                                        var si = form[fieldNames[j]].selectedIndex;
1208

    
1209
                                                    if (si > 0)
1210
                                                    {
1211
                                                            fieldValues[j] = form[fieldNames[j]].options[si].value;
1212
                                                    }
1213
                                                    else
1214
                                                    {
1215
                                                            fieldValues[j] = '';
1216
                                                    }
1217
                                                }
1218
                                        }
1219

    
1220
                                        dayValue = fieldValues[0];
1221
                                        monthValue = fieldValues[1];
1222
                                        yearValue = fieldValues[2];
1223

    
1224
                                        if (dayValue.slice(0, 1) == "0" && dayValue.length == 2)
1225
                                        {
1226
                                                dayValue = dayValue.slice(1, 2);
1227
                                        }
1228

    
1229
                                        if (monthValue.slice(0, 1) == "0" && monthValue.length == 2)
1230
                                        {
1231
                                                monthValue = monthValue.slice(1, 2);
1232
                                        }
1233

    
1234
                                        dayValue = parseInt(dayValue);
1235
                                        monthValue = parseInt(monthValue);
1236
                                        yearValue = parseInt(yearValue);
1237

    
1238
                                        if (!isNaN(dayValue) && !isNaN(monthValue) && !isNaN(yearValue))
1239
                                        {
1240
                                                if (yearValue < currentYear)
1241
                                                {
1242
                                                        isValid = false;
1243
                                                }
1244
                                                else if (yearValue ==  currentYear)
1245
                                                {
1246
                                                        if (monthValue < currentMonth)
1247
                                                        {
1248
                                                                isValid = false;
1249
                                                        }
1250
                                                        else if (monthValue == currentMonth)
1251
                                                        {
1252
                                                                if (dayValue<=currentDay)
1253
                                                                {
1254
                                                                        isValid = false;
1255
                                                                }
1256
                                                        }
1257
                                                }
1258
                                        }
1259

    
1260
                                        if (!isValid)
1261
                                        {
1262
                                                if (i == 0)
1263
                                                {
1264
                                                        focusField = field;
1265
                                                }
1266
                                                fields[i++] = oFutureDate[x][1];
1267
                                                msg = oFutureDate[x][1];
1268
                                                overAllValid = isValid = false;
1269
                                        }
1270

    
1271
                                        errorMessageHandler (isValid, field.name, msg);
1272
                        }
1273

    
1274
                if (fields.length > 0) {
1275
                   focusField.focus();
1276
                   //alert(fields.join('\n'));
1277
                }
1278

    
1279
                        return overAllValid;
1280
                        }
1281
                ]]></javascript>
1282

    
1283
                </validator>
1284

    
1285

    
1286
                <!-- Check if Credit Card Expiry Date is after current date (based on month and year). If expired, throw an error -->
1287
                <!-- Use on MONTH field ONLY -->
1288
                <validator name="creditCardExpiryDate"
1289
                        classname="com.ib.ibss.validator.CommonRules"
1290
                    method="validateCreditCardExpiryDate"
1291
                    methodParams="java.lang.Object,
1292
                                  org.apache.commons.validator.ValidatorAction,
1293
                                  org.apache.commons.validator.Field,
1294
                                  org.apache.struts.action.ActionErrors,
1295
                                  javax.servlet.http.HttpServletRequest"
1296
                   depends=""
1297
                   msg="errors.creditCardExpiryDate">
1298

    
1299
                <javascript><![CDATA[
1300
                    function validateCreditCardExpiryDate (form)
1301
                    {
1302
                                var overAllValid = true;
1303
                var isValid = true;
1304
                        var focusField = null;
1305
                        var i = 0;
1306
                        var fields = new Array();
1307
                        oCreditCardExpiryDate = new creditCardExpiryDate ();
1308

    
1309
                        var currentDate = new Date ();
1310
                        var currentMonth = currentDate.getMonth () + 1;
1311
                        var currentYear = currentDate.getFullYear ();
1312

    
1313
                        for (x in oCreditCardExpiryDate)
1314
                        {
1315
                                isValid = true;
1316
                            var field = form[oCreditCardExpiryDate[x][0]];
1317
                                        var yearName = oCreditCardExpiryDate[x][2]("creditCardExpiryDateYearField");
1318
                        var monthValue = 0;
1319
                        var yearValue = 0;
1320
                        var isLeapYear = false;
1321
                                        var msg = '';
1322
                                        var name = '';
1323
                                        var minYear = 1900;
1324

    
1325
                                        var fieldNames = new Array();
1326
                                        var fieldValues = new Array();
1327

    
1328
                                        fieldNames[0] = field.name;
1329
                        fieldNames[1] = yearName;
1330

    
1331
                                        for (var j = 0; j < fieldNames.length; j++)
1332
                                        {
1333
                                                if (form[fieldNames[j]].type == 'text' ||
1334
                                                        form[fieldNames[j]].type == 'hidden')
1335
                                                {
1336
                                                        fieldValues[j] = form[fieldNames[j]].value;
1337
                                                }
1338
                                                else if (form[fieldNames[j]].type == 'select-one')
1339
                                                {
1340
                                                        var isChecked = -1;
1341

    
1342
                                                        var si = form[fieldNames[j]].selectedIndex;
1343

    
1344
                                                    if (si > 0)
1345
                                                    {
1346
                                                            fieldValues[j] = form[fieldNames[j]].options[si].value;
1347
                                                    }
1348
                                                    else
1349
                                                    {
1350
                                                            fieldValues[j] = '';
1351
                                                    }
1352
                                                }
1353
                                        }
1354

    
1355
                                        monthValue = fieldValues[0];
1356
                                        yearValue = fieldValues[1];
1357

    
1358
                                        if (monthValue.slice(0, 1) == "0" && monthValue.length == 2)
1359
                                        {
1360
                                                monthValue = monthValue.slice(1, 2);
1361
                                        }
1362

    
1363
                                        monthValue = parseInt(monthValue);
1364
                                        yearValue = parseInt(yearValue);
1365

    
1366
                                        if (!isNaN(monthValue) && !isNaN(yearValue))
1367
                                        {
1368
                                                if (yearValue < currentYear)
1369
                                                {
1370
                                                        isValid = false;
1371
                                                }
1372
                                                else if (monthValue < currentMonth && yearValue == currentYear)
1373
                                                {
1374
                                                        isValid = false;
1375
                                                }
1376
                                        }
1377

    
1378
                                        if (!isValid)
1379
                                        {
1380
                                                if (i == 0)
1381
                                                {
1382
                                                        focusField = field;
1383
                                                }
1384
                                                fields[i++] = oCreditCardExpiryDate;
1385
                                                msg = oCreditCardExpiryDate[x][1];
1386
                                                overAllValid = isValid = false;
1387
                                        }
1388

    
1389
                                        errorMessageHandler (isValid, field.name, msg);
1390
                        }
1391

    
1392
                if (fields.length > 0) {
1393
                   focusField.focus();
1394
                   //alert(fields.join('\n'));
1395
                }
1396

    
1397
                        return overAllValid;
1398
                        }
1399
                ]]></javascript>
1400

    
1401
                </validator>
1402

    
1403

    
1404
                <!-- Check if date is valid for three input fields; day, month and year -->
1405
                <!-- Use on day field ONLY -->
1406
                <validator name="date2"
1407
                        classname="com.ib.ibss.validator.CommonRules"
1408
                    method="validateDate2"
1409
                    methodParams="java.lang.Object,
1410
                                  org.apache.commons.validator.ValidatorAction,
1411
                                  org.apache.commons.validator.Field,
1412
                                  org.apache.struts.action.ActionErrors,
1413
                                  javax.servlet.http.HttpServletRequest"
1414
                   depends=""
1415
                   msg="errors.date2">
1416

    
1417
                <javascript><![CDATA[
1418
                    function validateDate2 (form)
1419
                    {
1420
                                var overAllValid = true;
1421
                var isValid = true;
1422
                        var focusField = null;
1423
                        var i = 0;
1424
                        var fields = new Array();
1425
                        oDate2 = new date2 ();
1426

    
1427
                        for (x in oDate2)
1428
                        {
1429
                                isValid = true;
1430
                            var field = form[oDate2[x][0]];
1431
                            var monthName = oDate2[x][2]("date2MonthField");
1432
                                        var yearName = oDate2[x][2]("date2YearField");
1433
                        var dayValue = "";
1434
                        var monthValue = "";
1435
                        var yearValue = "";
1436
                        var isLeapYear = false;
1437
                                        var maxDays = 0;
1438
                                        var msg = '';
1439
                                        var name = '';
1440
                                        var minYear = 1900;
1441

    
1442
                                        var fieldNames = new Array();
1443
                                        var fieldValues = new Array();
1444

    
1445
                                        fieldNames[0] = field.name;
1446
                        fieldNames[1] = monthName;
1447
                        fieldNames[2] = yearName;
1448

    
1449
                                        for (var j = 0; j < fieldNames.length; j++)
1450
                                        {
1451
                                                if (form[fieldNames[j]].type == 'text')
1452
                                                {
1453
                                                        fieldValues[j] = form[fieldNames[j]].value;
1454
                                                }
1455
                                                else if (form[fieldNames[j]].type == 'select-one')
1456
                                                {
1457
                                                        var isChecked = -1;
1458

    
1459
                                                        var si = form[fieldNames[j]].selectedIndex;
1460

    
1461
                                                    if (si > 0)
1462
                                                    {
1463
                                                            fieldValues[j] = form[fieldNames[j]].options[si].value;
1464
                                                    }
1465
                                                    else
1466
                                                    {
1467
                                                            fieldValues[j] = '';
1468
                                                    }
1469
                                                }
1470
                                        }
1471

    
1472
                                        dayValue = fieldValues[0];
1473
                                        monthValue = fieldValues[1];
1474
                                        yearValue = fieldValues[2];
1475

    
1476
                                        if (dayValue.slice(0, 1) == "0" && dayValue.length == 2)
1477
                                        {
1478
                                                dayValue = dayValue.slice(1, 2);
1479
                                        }
1480

    
1481
                                        if (monthValue.slice(0, 1) == "0" && monthValue.length == 2)
1482
                                        {
1483
                                                monthValue = monthValue.slice(1, 2);
1484
                                        }
1485

    
1486
                                        dayValue = parseInt(dayValue);
1487
                                        monthValue = parseInt(monthValue);
1488
                                        yearValue = parseInt(yearValue);
1489

    
1490
                                        if (monthValue == 2)
1491
                                        {
1492
                                                if(yearValue % 4 == 0)
1493
                                                {
1494
                                                        if(yearValue % 100 != 0)
1495
                                                        {
1496
                                                                maxDays = 29;
1497
                                                        }
1498
                                                        else
1499
                                                        {
1500
                                                                if(yearValue % 400 == 0)
1501
                                                                {
1502
                                                                        maxDays = 29;
1503
                                                                }
1504
                                                                else
1505
                                                                {
1506
                                                                        maxDays = 28;
1507
                                                                }
1508
                                                        }
1509
                                                }
1510
                                                else
1511
                                                {
1512
                                                        maxDays = 28;
1513
                                                }
1514
                                        }
1515
                                        else if (monthValue == 4 || monthValue == 6 || monthValue == 9 || monthValue == 11)
1516
                                        {
1517
                                                maxDays = 30;
1518
                                        }
1519
                                        else
1520
                                        {
1521
                                                maxDays = 31;
1522
                                        }
1523

    
1524
                                        if (dayValue <= 0 || dayValue > maxDays || monthValue <= 0 || monthValue > 12 || yearValue <= minYear)
1525
                                        {
1526
                                                if (i == 0)
1527
                                                {
1528
                                                        focusField = field;
1529
                                                }
1530
                                                fields[i++] = oDate2[x][1];
1531
                                                msg = oDate2[x][1];
1532
                                                overAllValid = isValid = false;
1533
                                        }
1534

    
1535
                                        errorMessageHandler (isValid, field.name, msg);
1536
                        }
1537

    
1538
                if (fields.length > 0) {
1539
                   focusField.focus();
1540
                   //alert(fields.join('\n'));
1541
                }
1542

    
1543
                        return overAllValid;
1544
                        }
1545
                ]]></javascript>
1546

    
1547
                </validator>
1548

    
1549

    
1550
                <!-- cater password field -->
1551
                <!-- NO BACK-END -->
1552
                <!-- Can use minLength rule -->
1553
                <!--
1554
                <validator name="minlengthpassword"
1555
            classname="org.apache.struts.validator.CommonRules"
1556
            method="validateMinLengthPassword"
1557
                 methodParams="java.lang.Object,
1558
                       org.apache.commons.validator.ValidatorAction,
1559
                       org.apache.commons.validator.Field,
1560
                       org.apache.struts.action.ActionErrors,
1561
                       javax.servlet.http.HttpServletRequest"
1562
            depends=""
1563
            msg="errors.minlength">
1564

1565
         <javascript><![CDATA[
1566
            function validateMinLengthPassword(form) {
1567
                var overAllValid = true;
1568
                var isValid = true;
1569
                var focusField = null;
1570
                var i = 0;
1571
                var fields = new Array();
1572
                oMinLengthPassword = new minlengthpassword();
1573
                for (x in oMinLengthPassword) {
1574
                        isValid = true;
1575
                    var field = form[oMinLengthPassword[x][0]];
1576
                                        var msg = '';
1577
                    if (field.type == 'password') {
1578

1579
                        var iMin = parseInt(oMinLengthPassword[x][2]("minlengthpassword"));
1580
                        if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
1581
                            if (i == 0) {
1582
                                focusField = field;
1583
                            }
1584
                            fields[i++] = oMinLengthPassword[x][1];
1585
                            msg = oMinLengthPassword[x][1];
1586
                            overAllValid = isValid = false;
1587
                        }
1588
                    }
1589

1590
                    document.getElementById(field.name + 'Error').innerHTML = msg;
1591
                }
1592
                if (fields.length > 0) {
1593
                   focusField.focus();
1594
                   //alert(fields.join('\n'));
1595
                }
1596
                return overAllValid;
1597
            }]]>
1598
         </javascript>
1599

1600
        </validator>
1601
                -->
1602

    
1603

    
1604
                <!-- Check if field is required based on user input on other fields -->
1605
                <validator name="requiredif2"
1606
                        classname="com.ib.ibss.validator.CommonRules"
1607
                    method="validateRequiredIf2"
1608
                    methodParams="java.lang.Object,
1609
                                  org.apache.commons.validator.ValidatorAction,
1610
                                  org.apache.commons.validator.Field,
1611
                                  org.apache.struts.action.ActionErrors,
1612
                                  javax.servlet.http.HttpServletRequest"
1613
                   depends=""
1614
                   msg="errors.required">
1615

    
1616
                <javascript><![CDATA[
1617
                    function validateRequiredIf2 (form)
1618
                    {
1619

    
1620
                                var overAllValid = true;
1621
                                var isValid = true;
1622
                        var focusField = null;
1623
                        var i = 0;
1624
                var value = '';
1625
                        var fields = new Array();
1626
                        oRequiredIf2 = new requiredif2 ();
1627

    
1628
                        for (x in oRequiredIf2)
1629
                        {
1630
                                isValid = true;
1631
                                isConditionValid = true;
1632
                                var field = form[oRequiredIf2[x][0]];
1633
                                var evalStr = '';
1634
                                msg = '';
1635

    
1636
                                        var fieldName1                 = oRequiredIf2[x][2]("requiredIfField1");
1637
                                        var fieldValue1         = oRequiredIf2[x][2]("requiredIfValue1");
1638
                                        var fieldCompare1         = oRequiredIf2[x][2]("requiredIfCompare1");
1639
                                        var fieldName2                 = oRequiredIf2[x][2]("requiredIfField2");
1640
                                        var fieldValue2         = oRequiredIf2[x][2]("requiredIfValue2");
1641
                                        var fieldCompare2         = oRequiredIf2[x][2]("requiredIfCompare2");
1642
                                        var fieldName3                 = oRequiredIf2[x][2]("requiredIfField3");
1643
                                        var fieldValue3         = oRequiredIf2[x][2]("requiredIfValue3");
1644
                                        var fieldCompare3         = oRequiredIf2[x][2]("requiredIfCompare3");
1645
                                        var fieldName4                 = oRequiredIf2[x][2]("requiredIfField4");
1646
                                        var fieldValue4         = oRequiredIf2[x][2]("requiredIfValue4");
1647
                                        var fieldCompare4         = oRequiredIf2[x][2]("requiredIfCompare4");
1648
                                        var fieldName5                 = oRequiredIf2[x][2]("requiredIfField5");
1649
                                        var fieldValue5         = oRequiredIf2[x][2]("requiredIfValue5");
1650
                                        var fieldCompare5         = oRequiredIf2[x][2]("requiredIfCompare5");
1651
                                        var fieldName6                 = oRequiredIf2[x][2]("requiredIfField6");
1652
                                        var fieldValue6         = oRequiredIf2[x][2]("requiredIfValue6");
1653
                                        var fieldCompare6         = oRequiredIf2[x][2]("requiredIfCompare6");
1654
                                        var fieldName7                 = oRequiredIf2[x][2]("requiredIfField7");
1655
                                        var fieldValue7         = oRequiredIf2[x][2]("requiredIfValue7");
1656
                                        var fieldCompare7         = oRequiredIf2[x][2]("requiredIfCompare7");
1657
                                        var fieldName8                 = oRequiredIf2[x][2]("requiredIfField8");
1658
                                        var fieldValue8         = oRequiredIf2[x][2]("requiredIfValue8");
1659
                                        var fieldCompare8         = oRequiredIf2[x][2]("requiredIfCompare8");
1660
                                        var fieldName9                 = oRequiredIf2[x][2]("requiredIfField9");
1661
                                        var fieldValue9         = oRequiredIf2[x][2]("requiredIfValue9");
1662
                                        var fieldCompare9         = oRequiredIf2[x][2]("requiredIfCompare9");
1663
                                        var fieldName10         = oRequiredIf2[x][2]("requiredIfField10");
1664
                                        var fieldValue10         = oRequiredIf2[x][2]("requiredIfValue10");
1665
                                        var fieldCompare10         = oRequiredIf2[x][2]("requiredIfCompare10");
1666
                                        var fieldName11         = oRequiredIf2[x][2]("requiredIfField11");
1667
                                        var fieldValue11         = oRequiredIf2[x][2]("requiredIfValue11");
1668
                                        var fieldCompare11         = oRequiredIf2[x][2]("requiredIfCompare11");
1669
                                        var fieldName12         = oRequiredIf2[x][2]("requiredIfField12");
1670
                                        var fieldValue12         = oRequiredIf2[x][2]("requiredIfValue12");
1671
                                        var fieldCompare12         = oRequiredIf2[x][2]("requiredIfCompare12");
1672
                                        var fieldName13         = oRequiredIf2[x][2]("requiredIfField13");
1673
                                        var fieldValue13         = oRequiredIf2[x][2]("requiredIfValue13");
1674
                                        var fieldCompare13         = oRequiredIf2[x][2]("requiredIfCompare13");
1675
                                        var fieldName14         = oRequiredIf2[x][2]("requiredIfField14");
1676
                                        var fieldValue14         = oRequiredIf2[x][2]("requiredIfValue14");
1677
                                        var fieldCompare14         = oRequiredIf2[x][2]("requiredIfCompare14");
1678
                                        var fieldName15         = oRequiredIf2[x][2]("requiredIfField15");
1679
                                        var fieldValue15         = oRequiredIf2[x][2]("requiredIfValue15");
1680
                                        var fieldCompare15         = oRequiredIf2[x][2]("requiredIfCompare15");
1681
                                        var fieldName16         = oRequiredIf2[x][2]("requiredIfField16");
1682
                                        var fieldValue16         = oRequiredIf2[x][2]("requiredIfValue16");
1683
                                        var fieldCompare16         = oRequiredIf2[x][2]("requiredIfCompare16");
1684
                                        var fieldName17         = oRequiredIf2[x][2]("requiredIfField17");
1685
                                        var fieldValue17         = oRequiredIf2[x][2]("requiredIfValue17");
1686
                                        var fieldCompare17         = oRequiredIf2[x][2]("requiredIfCompare17");
1687
                                        var fieldName18         = oRequiredIf2[x][2]("requiredIfField18");
1688
                                        var fieldValue18         = oRequiredIf2[x][2]("requiredIfValue18");
1689
                                        var fieldCompare18         = oRequiredIf2[x][2]("requiredIfCompare18");
1690
                                        var fieldName19                = oRequiredIf2[x][2]("requiredIfField19");
1691
                                        var fieldValue19         = oRequiredIf2[x][2]("requiredIfValue19");
1692
                                        var fieldCompare19         = oRequiredIf2[x][2]("requiredIfCompare19");
1693
                                        var fieldName20         = oRequiredIf2[x][2]("requiredIfField20");
1694
                                        var fieldValue20         = oRequiredIf2[x][2]("requiredIfValue20");
1695
                                        var fieldCompare20         = oRequiredIf2[x][2]("requiredIfCompare20");
1696

    
1697
                                        var operator1 = oRequiredIf2[x][2]("operator");
1698

    
1699
                                        if (operator1 == "undefined" || operator1 == undefined)
1700
                                        {
1701
                                                operator1 = oRequiredIf2[x][2]("operator1");
1702
                                        }
1703

    
1704
                                        var operator2                 = oRequiredIf2[x][2]("operator2");
1705
                                        var operator3                 = oRequiredIf2[x][2]("operator3");
1706
                                        var operator4                 = oRequiredIf2[x][2]("operator4");
1707
                                        var operator5                 = oRequiredIf2[x][2]("operator5");
1708
                                        var operator6                 = oRequiredIf2[x][2]("operator6");
1709
                                        var operator7                 = oRequiredIf2[x][2]("operator7");
1710
                                        var operator8                 = oRequiredIf2[x][2]("operator8");
1711
                                        var operator9                 = oRequiredIf2[x][2]("operator9");
1712
                                        var operator10                 = oRequiredIf2[x][2]("operator10");
1713
                                        var operator11                 = oRequiredIf2[x][2]("operator11");
1714
                                        var operator12                 = oRequiredIf2[x][2]("operator12");
1715
                                        var operator13                = oRequiredIf2[x][2]("operator13");
1716
                                        var operator14                 = oRequiredIf2[x][2]("operator14");
1717
                                        var operator15                 = oRequiredIf2[x][2]("operator15");
1718
                                        var operator16                 = oRequiredIf2[x][2]("operator16");
1719
                                        var operator17                 = oRequiredIf2[x][2]("operator17");
1720
                                        var operator18                 = oRequiredIf2[x][2]("operator18");
1721
                                        var operator19                 = oRequiredIf2[x][2]("operator19");
1722

    
1723
                                        var operators = new Array ();
1724
                                        var fieldNames = new Array ();
1725
                                        var fieldValues = new Array ();
1726
                                        var fieldCompares = new Array ();
1727
                                        var fieldCompareValues = new Array ();
1728

    
1729
                                        var operatorsIndex = 0;
1730

    
1731
                                        fieldNames[0] = fieldName1;
1732
                                        fieldCompareValues[0] = "'" + fieldValue1 + "'";
1733
                                        fieldCompares[0] = fieldCompare1;
1734

    
1735
                                        for (var operatorsLoop = 1; operatorsLoop <= 19; operatorsLoop++)
1736
                                        {
1737
                                                if (eval ("operator" + operatorsLoop) != undefined)
1738
                                                {
1739
                                                        operators[operatorsIndex] = eval ("operator" + operatorsLoop);
1740

    
1741
                                                        switch (eval ("operators[" + operatorsIndex + "]"))
1742
                                                        {
1743
                                                                case "AND":
1744
                                                                        operators[operatorsIndex] = "&&";
1745
                                                                        break;
1746
                                                                case "OR":
1747
                                                                        operators[operatorsIndex] = "||";
1748
                                                                        break;
1749
                                                                default:
1750
                                                                        operators[operatorsIndex] = null;
1751
                                                        }
1752

    
1753
                                                        var fieldNumber= operatorsLoop + 1;
1754

    
1755
                                                        fieldNames[operatorsLoop] = eval ("fieldName" + fieldNumber);
1756
                                                        fieldCompareValues[operatorsLoop] = "'" + eval ("fieldValue" + fieldNumber) + "'";
1757
                                                        fieldCompares[operatorsLoop] = eval ("fieldCompare" + fieldNumber);
1758

    
1759
                                                        operatorsIndex++;
1760
                                                }
1761
                                                else
1762
                                                {
1763
                                                        break;
1764
                                                }
1765
                                        }
1766

    
1767
                                        for (var j = 0; j < fieldNames.length; j++)
1768
                                        {
1769
                                                var isValid = true;
1770
                                                var isChecked = -1;
1771

    
1772
                            if (form[fieldNames[j]].type == 'text' ||
1773
                                form[fieldNames[j]].type == 'textarea' ||
1774
                                form[fieldNames[j]].type == 'file' ||
1775
                                form[fieldNames[j]].type == 'select-one' ||
1776
                                form[fieldNames[j]].type == 'hidden' ||
1777
                                form[fieldNames[j]].type == 'password')
1778
                                                {
1779

    
1780
                                                        if (form[fieldNames[j]].type == 'select-one')
1781
                                                        {
1782
                                                                var si = form[fieldNames[j]].selectedIndex;
1783

    
1784
                                                            if (si >= 0)
1785
                                                            {
1786
                                                                    fieldValues[j] = "'" + form[fieldNames[j]].options[si].value + "'";
1787
                                                            }
1788
                                                            else {
1789
                                                                    fieldValues[j] = "''";
1790
                                                            }
1791
                                                        }
1792
                                                         else
1793
                                                        {
1794
                                                                if (form[fieldNames[j]].value.length > 0)
1795
                                                                {
1796
                                                                        if(!isNaN(parseFloat(form[fieldNames[j]].value )))
1797
                                                                        {
1798
                                                                          fieldValues[j] = form[fieldNames[j]].value ;
1799
                                                                        }
1800
                                                                        else
1801
                                                                        {
1802
                                                                          fieldValues[j] = "'" + form[fieldNames[j]].value + "'";
1803
                                                                        }
1804
                                                                }
1805
                                                                else
1806
                                                                {
1807
                                                                        fieldValues[j] = "''";
1808
                                                                }
1809

    
1810
                                                        }
1811
                                                }
1812
                                               else if (form[fieldNames[j]].length > 0 && (form[fieldNames[j]][0].type == 'radio' ||
1813
                                        form[fieldNames[j]][0].type == 'checkbox'))
1814
                                                {
1815
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
1816
                                                        {
1817
                                                                if (form[fieldNames[j]][loop].checked)
1818
                                                                {
1819
                                                                        isChecked=loop;
1820
                                                                        break;
1821
                                                                }
1822
                                                        }
1823

    
1824
                                                        if (isChecked > -1)
1825
                                                        {
1826
                                                                fieldValues[j] = "'" + form[fieldNames[j]][loop].value + "'";
1827
                                                        }
1828
                                                        else
1829
                                                        {
1830
                                                                fieldValues[j] = "''";
1831
                                                        }
1832
                                    }
1833
                                    else if (form[fieldNames[j]].type == 'radio' ||
1834
                                            form[fieldNames[j]].type == 'checkbox')
1835
                                    {
1836
                                                        if (form[fieldNames[j]].checked)
1837
                                                        {
1838
                                                                fieldValues[j] = "'" + form[fieldNames[j]].value + "'";
1839
                                                        }
1840
                                                        else
1841
                                                        {
1842
                                                                fieldValues[j] = "''";
1843
                                                        }
1844
                                    }
1845
                                        }
1846

    
1847
                                        for (var fieldComparesLoop = 0; fieldComparesLoop < fieldCompares.length; fieldComparesLoop++)
1848
                                        {
1849
                                                switch (eval ("fieldCompares[" + fieldComparesLoop + "]"))
1850
                                                {
1851
                                                        case "EQUALS":
1852
                                                                fieldCompares[fieldComparesLoop] = "==";
1853
                                                                break;
1854
                                                        case "NOTEQUALS":
1855
                                                                fieldCompares[fieldComparesLoop] = "!=";
1856
                                                                break;
1857
                                                        case "GREATER":
1858
                                                                fieldCompares[fieldComparesLoop] = ">";
1859
                                                                break;
1860
                                                        case "EQUALSORGRATER":
1861
                                                                fieldCompares[fieldComparesLoop] = ">=";
1862
                                                                break;
1863
                                                        case "LESS":
1864
                                                                fieldCompares[fieldComparesLoop] = "<";
1865
                                                                break;
1866
                                                        case "EQUALSORLESS":
1867
                                                                fieldCompares[fieldComparesLoop] = "<=";
1868
                                                                break;
1869
                                                        default:
1870
                                                                fieldCompares[fieldComparesLoop] = null;
1871
                                                }
1872
                                        }
1873

    
1874
                                        evalStr = "(" + fieldValues[0] + fieldCompares[0] + fieldCompareValues[0] + ")";
1875

    
1876
                                        if (operators.length != 0)
1877
                                        {
1878
                                                for (var conditionalLoop = 0; conditionalLoop < operators.length; conditionalLoop++)
1879
                                                {
1880
                                                        var skipByOne = conditionalLoop + 1;
1881

    
1882
                                                        evalStr +=  " " + operators[conditionalLoop] + " (" + fieldValues[skipByOne] + fieldCompares[skipByOne] + fieldCompareValues[skipByOne] + ")";
1883
                                                }
1884
                                        }
1885

    
1886
                                        if (eval (evalStr) != undefined)
1887
                                        {
1888
                                                isConditionValid = eval (evalStr);
1889

    
1890
                                                if (isConditionValid)
1891
                                                {
1892
                                                        isValid = validateConditionalRequired (field);
1893
                                                }
1894
                                        }
1895

    
1896
                                        if (!isValid)
1897
                                        {
1898
                                                if (i == 0)
1899
                                                {
1900
                                                        focusField = field;
1901
                                                }
1902

    
1903
                                                fields[i++] = oRequiredIf2[x][1];
1904
                                                msg = oRequiredIf2[x][1];
1905
                                                overAllValid = isValid = false;
1906
                    }
1907

    
1908
                                        errorMessageHandler (isValid, field.name, msg);
1909
                        }
1910

    
1911
                        if (fields.length > 0)
1912
                        {
1913
                            focusField.focus();
1914
                            //alert(fields.join('\n'));
1915
                        }
1916

    
1917
                        return overAllValid;
1918
                        }
1919

    
1920
                ]]></javascript>
1921

    
1922
                </validator>
1923

    
1924

    
1925
                <!-- Updated requiredif2 rule, corrects unexpected behaviour in original -->
1926
                <validator name="requiredif2Update"
1927
                        classname="com.ib.ibss.validator.CommonRules"
1928
                    method="validateRequiredIf2Update"
1929
                    methodParams="java.lang.Object,
1930
                                  org.apache.commons.validator.ValidatorAction,
1931
                                  org.apache.commons.validator.Field,
1932
                                  org.apache.struts.action.ActionErrors,
1933
                                  javax.servlet.http.HttpServletRequest"
1934
                   depends=""
1935
                   msg="errors.required">
1936

    
1937
                <javascript><![CDATA[
1938
                    function validateRequiredIf2Update (form)
1939
                    {
1940

    
1941
                                var overAllValid = true;
1942
                                var isValid = true;
1943
                        var focusField = null;
1944
                        var i = 0;
1945
                var value = '';
1946
                        var fields = new Array();
1947
                        oRequiredIf2Update = new requiredif2Update ();
1948

    
1949
                        for (x in oRequiredIf2Update)
1950
                        {
1951
                                isValid = true;
1952
                                isConditionValid = true;
1953
                                var field = form[oRequiredIf2Update[x][0]];
1954
                                var evalStr = '';
1955
                                msg = '';
1956

    
1957
                                        var fieldName1                 = oRequiredIf2Update[x][2]("requiredIfField1");
1958
                                        var fieldValue1         = oRequiredIf2Update[x][2]("requiredIfValue1");
1959
                                        var fieldCompare1         = oRequiredIf2Update[x][2]("requiredIfCompare1");
1960
                                        var fieldName2                 = oRequiredIf2Update[x][2]("requiredIfField2");
1961
                                        var fieldValue2         = oRequiredIf2Update[x][2]("requiredIfValue2");
1962
                                        var fieldCompare2         = oRequiredIf2Update[x][2]("requiredIfCompare2");
1963
                                        var fieldName3                 = oRequiredIf2Update[x][2]("requiredIfField3");
1964
                                        var fieldValue3         = oRequiredIf2Update[x][2]("requiredIfValue3");
1965
                                        var fieldCompare3         = oRequiredIf2Update[x][2]("requiredIfCompare3");
1966
                                        var fieldName4                 = oRequiredIf2Update[x][2]("requiredIfField4");
1967
                                        var fieldValue4         = oRequiredIf2Update[x][2]("requiredIfValue4");
1968
                                        var fieldCompare4         = oRequiredIf2Update[x][2]("requiredIfCompare4");
1969
                                        var fieldName5                 = oRequiredIf2Update[x][2]("requiredIfField5");
1970
                                        var fieldValue5         = oRequiredIf2Update[x][2]("requiredIfValue5");
1971
                                        var fieldCompare5         = oRequiredIf2Update[x][2]("requiredIfCompare5");
1972
                                        var fieldName6                 = oRequiredIf2Update[x][2]("requiredIfField6");
1973
                                        var fieldValue6         = oRequiredIf2Update[x][2]("requiredIfValue6");
1974
                                        var fieldCompare6         = oRequiredIf2Update[x][2]("requiredIfCompare6");
1975
                                        var fieldName7                 = oRequiredIf2Update[x][2]("requiredIfField7");
1976
                                        var fieldValue7         = oRequiredIf2Update[x][2]("requiredIfValue7");
1977
                                        var fieldCompare7         = oRequiredIf2Update[x][2]("requiredIfCompare7");
1978
                                        var fieldName8                 = oRequiredIf2Update[x][2]("requiredIfField8");
1979
                                        var fieldValue8         = oRequiredIf2Update[x][2]("requiredIfValue8");
1980
                                        var fieldCompare8         = oRequiredIf2Update[x][2]("requiredIfCompare8");
1981
                                        var fieldName9                 = oRequiredIf2Update[x][2]("requiredIfField9");
1982
                                        var fieldValue9         = oRequiredIf2Update[x][2]("requiredIfValue9");
1983
                                        var fieldCompare9         = oRequiredIf2Update[x][2]("requiredIfCompare9");
1984
                                        var fieldName10         = oRequiredIf2Update[x][2]("requiredIfField10");
1985
                                        var fieldValue10         = oRequiredIf2Update[x][2]("requiredIfValue10");
1986
                                        var fieldCompare10         = oRequiredIf2Update[x][2]("requiredIfCompare10");
1987
                                        var fieldName11         = oRequiredIf2Update[x][2]("requiredIfField11");
1988
                                        var fieldValue11         = oRequiredIf2Update[x][2]("requiredIfValue11");
1989
                                        var fieldCompare11         = oRequiredIf2Update[x][2]("requiredIfCompare11");
1990
                                        var fieldName12         = oRequiredIf2Update[x][2]("requiredIfField12");
1991
                                        var fieldValue12         = oRequiredIf2Update[x][2]("requiredIfValue12");
1992
                                        var fieldCompare12         = oRequiredIf2Update[x][2]("requiredIfCompare12");
1993
                                        var fieldName13         = oRequiredIf2Update[x][2]("requiredIfField13");
1994
                                        var fieldValue13         = oRequiredIf2Update[x][2]("requiredIfValue13");
1995
                                        var fieldCompare13         = oRequiredIf2Update[x][2]("requiredIfCompare13");
1996
                                        var fieldName14         = oRequiredIf2Update[x][2]("requiredIfField14");
1997
                                        var fieldValue14         = oRequiredIf2Update[x][2]("requiredIfValue14");
1998
                                        var fieldCompare14         = oRequiredIf2Update[x][2]("requiredIfCompare14");
1999
                                        var fieldName15         = oRequiredIf2Update[x][2]("requiredIfField15");
2000
                                        var fieldValue15         = oRequiredIf2Update[x][2]("requiredIfValue15");
2001
                                        var fieldCompare15         = oRequiredIf2Update[x][2]("requiredIfCompare15");
2002
                                        var fieldName16         = oRequiredIf2Update[x][2]("requiredIfField16");
2003
                                        var fieldValue16         = oRequiredIf2Update[x][2]("requiredIfValue16");
2004
                                        var fieldCompare16         = oRequiredIf2Update[x][2]("requiredIfCompare16");
2005
                                        var fieldName17         = oRequiredIf2Update[x][2]("requiredIfField17");
2006
                                        var fieldValue17         = oRequiredIf2Update[x][2]("requiredIfValue17");
2007
                                        var fieldCompare17         = oRequiredIf2Update[x][2]("requiredIfCompare17");
2008
                                        var fieldName18         = oRequiredIf2Update[x][2]("requiredIfField18");
2009
                                        var fieldValue18         = oRequiredIf2Update[x][2]("requiredIfValue18");
2010
                                        var fieldCompare18         = oRequiredIf2Update[x][2]("requiredIfCompare18");
2011
                                        var fieldName19                = oRequiredIf2Update[x][2]("requiredIfField19");
2012
                                        var fieldValue19         = oRequiredIf2Update[x][2]("requiredIfValue19");
2013
                                        var fieldCompare19         = oRequiredIf2Update[x][2]("requiredIfCompare19");
2014
                                        var fieldName20         = oRequiredIf2Update[x][2]("requiredIfField20");
2015
                                        var fieldValue20         = oRequiredIf2Update[x][2]("requiredIfValue20");
2016
                                        var fieldCompare20         = oRequiredIf2Update[x][2]("requiredIfCompare20");
2017

    
2018
                                        var operator1 = oRequiredIf2Update[x][2]("operator");
2019

    
2020
                                        if (operator1 == "undefined" || operator1 == undefined)
2021
                                        {
2022
                                                operator1 = oRequiredIf2Update[x][2]("operator1");
2023
                                        }
2024

    
2025
                                        var operator2                 = oRequiredIf2Update[x][2]("operator2");
2026
                                        var operator3                 = oRequiredIf2Update[x][2]("operator3");
2027
                                        var operator4                 = oRequiredIf2Update[x][2]("operator4");
2028
                                        var operator5                 = oRequiredIf2Update[x][2]("operator5");
2029
                                        var operator6                 = oRequiredIf2Update[x][2]("operator6");
2030
                                        var operator7                 = oRequiredIf2Update[x][2]("operator7");
2031
                                        var operator8                 = oRequiredIf2Update[x][2]("operator8");
2032
                                        var operator9                 = oRequiredIf2Update[x][2]("operator9");
2033
                                        var operator10                 = oRequiredIf2Update[x][2]("operator10");
2034
                                        var operator11                 = oRequiredIf2Update[x][2]("operator11");
2035
                                        var operator12                 = oRequiredIf2Update[x][2]("operator12");
2036
                                        var operator13                = oRequiredIf2Update[x][2]("operator13");
2037
                                        var operator14                 = oRequiredIf2Update[x][2]("operator14");
2038
                                        var operator15                 = oRequiredIf2Update[x][2]("operator15");
2039
                                        var operator16                 = oRequiredIf2Update[x][2]("operator16");
2040
                                        var operator17                 = oRequiredIf2Update[x][2]("operator17");
2041
                                        var operator18                 = oRequiredIf2Update[x][2]("operator18");
2042
                                        var operator19                 = oRequiredIf2Update[x][2]("operator19");
2043

    
2044
                                        var operators = new Array ();
2045
                                        var fieldNames = new Array ();
2046
                                        var fieldValues = new Array ();
2047
                                        var fieldCompares = new Array ();
2048
                                        var fieldCompareValues = new Array ();
2049

    
2050
                                        var operatorsIndex = 0;
2051

    
2052
                                        fieldNames[0] = fieldName1;
2053
                                        fieldCompareValues[0] = "'" + fieldValue1 + "'";
2054
                                        fieldCompares[0] = fieldCompare1;
2055

    
2056
                                        for (var operatorsLoop = 1; operatorsLoop <= 19; operatorsLoop++)
2057
                                        {
2058
                                                if (eval ("operator" + operatorsLoop) != undefined)
2059
                                                {
2060
                                                        operators[operatorsIndex] = eval ("operator" + operatorsLoop);
2061

    
2062
                                                        switch (eval ("operators[" + operatorsIndex + "]"))
2063
                                                        {
2064
                                                                case "AND":
2065
                                                                        operators[operatorsIndex] = "&&";
2066
                                                                        break;
2067
                                                                case "OR":
2068
                                                                        operators[operatorsIndex] = "||";
2069
                                                                        break;
2070
                                                                default:
2071
                                                                        operators[operatorsIndex] = null;
2072
                                                        }
2073

    
2074
                                                        var fieldNumber= operatorsLoop + 1;
2075

    
2076
                                                        fieldNames[operatorsLoop] = eval ("fieldName" + fieldNumber);
2077
                                                        fieldCompareValues[operatorsLoop] = "'" + eval ("fieldValue" + fieldNumber) + "'";
2078
                                                        fieldCompares[operatorsLoop] = eval ("fieldCompare" + fieldNumber);
2079

    
2080
                                                        operatorsIndex++;
2081
                                                }
2082
                                                else
2083
                                                {
2084
                                                        break;
2085
                                                }
2086
                                        }
2087

    
2088
                                        for (var j = 0; j < fieldNames.length; j++)
2089
                                        {
2090
                                                var isValid = true;
2091
                                                var isChecked = -1;
2092

    
2093
                            if (form[fieldNames[j]].type == 'text' ||
2094
                                form[fieldNames[j]].type == 'textarea' ||
2095
                                form[fieldNames[j]].type == 'file' ||
2096
                                form[fieldNames[j]].type == 'select-one' ||
2097
                                form[fieldNames[j]].type == 'hidden' ||
2098
                                form[fieldNames[j]].type == 'password')
2099
                                                {
2100

    
2101
                                                        if (form[fieldNames[j]].type == 'select-one')
2102
                                                        {
2103
                                                                var si = form[fieldNames[j]].selectedIndex;
2104

    
2105
                                                            if (si >= 0)
2106
                                                            {
2107
                                                                    fieldValues[j] = "'" + form[fieldNames[j]].options[si].value + "'";
2108
                                                            }
2109
                                                            else {
2110
                                                                    fieldValues[j] = "''";
2111
                                                            }
2112
                                                        }
2113
                                                         else
2114
                                                        {
2115
                                                                if (form[fieldNames[j]].value.length > 0)
2116
                                                                {
2117
                                                                        if(!isNaN(parseFloat(form[fieldNames[j]].value )))
2118
                                                                        {
2119
                                                                          fieldValues[j] = form[fieldNames[j]].value ;
2120
                                                                        }
2121
                                                                        else
2122
                                                                        {
2123
                                                                          fieldValues[j] = "'" + form[fieldNames[j]].value + "'";
2124
                                                                        }
2125
                                                                }
2126
                                                                else
2127
                                                                {
2128
                                                                        fieldValues[j] = "''";
2129
                                                                }
2130

    
2131
                                                        }
2132
                                                }
2133
                                               else if (form[fieldNames[j]].length > 0 && (form[fieldNames[j]][0].type == 'radio' ||
2134
                                        form[fieldNames[j]][0].type == 'checkbox'))
2135
                                                {
2136
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
2137
                                                        {
2138
                                                                if (form[fieldNames[j]][loop].checked)
2139
                                                                {
2140
                                                                        isChecked=loop;
2141
                                                                        break;
2142
                                                                }
2143
                                                        }
2144

    
2145
                                                        if (isChecked > -1)
2146
                                                        {
2147
                                                                fieldValues[j] = "'" + form[fieldNames[j]][loop].value + "'";
2148
                                                        }
2149
                                                        else
2150
                                                        {
2151
                                                                fieldValues[j] = "''";
2152
                                                        }
2153
                                    }
2154
                                    else if (form[fieldNames[j]].type == 'radio' ||
2155
                                            form[fieldNames[j]].type == 'checkbox')
2156
                                    {
2157
                                                        if (form[fieldNames[j]].checked)
2158
                                                        {
2159
                                                                fieldValues[j] = "'" + form[fieldNames[j]].value + "'";
2160
                                                        }
2161
                                                        else
2162
                                                        {
2163
                                                                fieldValues[j] = "''";
2164
                                                        }
2165
                                    }
2166
                                        }
2167

    
2168
                                        for (var fieldComparesLoop = 0; fieldComparesLoop < fieldCompares.length; fieldComparesLoop++)
2169
                                        {
2170
                                                switch (eval ("fieldCompares[" + fieldComparesLoop + "]"))
2171
                                                {
2172
                                                        case "EQUALS":
2173
                                                                fieldCompares[fieldComparesLoop] = "==";
2174
                                                                break;
2175
                                                        case "NOTEQUALS":
2176
                                                                fieldCompares[fieldComparesLoop] = "!=";
2177
                                                                break;
2178
                                                        case "GREATER":
2179
                                                                fieldCompares[fieldComparesLoop] = ">";
2180
                                                                break;
2181
                                                        case "EQUALSORGRATER":
2182
                                                                fieldCompares[fieldComparesLoop] = ">=";
2183
                                                                break;
2184
                                                        case "LESS":
2185
                                                                fieldCompares[fieldComparesLoop] = "<";
2186
                                                                break;
2187
                                                        case "EQUALSORLESS":
2188
                                                                fieldCompares[fieldComparesLoop] = "<=";
2189
                                                                break;
2190
                                                        default:
2191
                                                                fieldCompares[fieldComparesLoop] = null;
2192
                                                }
2193
                                        }
2194

    
2195
                                        evalStr = "(" + fieldValues[0] + fieldCompares[0] + fieldCompareValues[0] + ")";
2196

    
2197
                                        if (operators.length != 0)
2198
                                        {
2199
                                                for (var conditionalLoop = 0; conditionalLoop < operators.length; conditionalLoop++)
2200
                                                {
2201
                                                        var skipByOne = conditionalLoop + 1;
2202

    
2203
                                                        evalStr +=  " " + operators[conditionalLoop] + " (" + fieldValues[skipByOne] + fieldCompares[skipByOne] + fieldCompareValues[skipByOne] + ")";
2204
                                                }
2205
                                        }
2206

    
2207
                                        if (eval (evalStr) != undefined)
2208
                                        {
2209
                                                isConditionValid = eval (evalStr);
2210

    
2211
                                                if (isConditionValid)
2212
                                                {
2213
                                                        isValid = validateConditionalRequired (field);
2214
                                                }
2215
                                        }
2216

    
2217
                                        if (!isValid)
2218
                                        {
2219
                                                if (i == 0)
2220
                                                {
2221
                                                        focusField = field;
2222
                                                }
2223

    
2224
                                                fields[i++] = oRequiredIf2Update[x][1];
2225
                                                msg = oRequiredIf2Update[x][1];
2226
                                                overAllValid = isValid = false;
2227
                    }
2228

    
2229
                                        errorMessageHandler (isValid, field.name, msg);
2230
                        }
2231

    
2232
                        if (fields.length > 0)
2233
                        {
2234
                            focusField.focus();
2235
                            //alert(fields.join('\n'));
2236
                        }
2237

    
2238
                        return overAllValid;
2239
                        }
2240

    
2241
                ]]></javascript>
2242

    
2243
                </validator>
2244

    
2245
                <!-- Check if field is required based on user input on other fields -->
2246
                <!-- NO BACK-END; implementation unsure -->
2247
                <validator name="requiredif4"
2248
                        classname="com.ib.ibss.validator.CommonRules"
2249
                    method="validateRequiredIf4"
2250
                    methodParams="java.lang.Object,
2251
                                  org.apache.commons.validator.ValidatorAction,
2252
                                  org.apache.commons.validator.Field,
2253
                                  org.apache.struts.action.ActionErrors,
2254
                                  javax.servlet.http.HttpServletRequest"
2255
                   depends=""
2256
                   msg="errors.required">
2257

    
2258
                <javascript><![CDATA[
2259
                        function validateRequiredIf4 (form)
2260
                    {
2261
                                var overAllValid = true;
2262
                                var isValid = true;
2263
                        var focusField = null;
2264
                        var i = 0;
2265
                var value = '';
2266
                        var fields = new Array();
2267
                        oRequiredIf2 = new requiredif4 ();
2268

    
2269
                        for (x in oRequiredIf2)
2270
                        {
2271
                                isValid = true;
2272
                                isConditionValid = true;
2273
                                var field = form[oRequiredIf2[x][0]];
2274
                                var evalStr = '';
2275
                                msg = '';
2276

    
2277
                                        var fieldName1                 = oRequiredIf2[x][2]("requiredIfField1");
2278
                                        var fieldValue1         = oRequiredIf2[x][2]("requiredIfValue1");
2279
                                        var fieldCompare1         = oRequiredIf2[x][2]("requiredIfCompare1");
2280
                                        var fieldName2                 = oRequiredIf2[x][2]("requiredIfField2");
2281
                                        var fieldValue2         = oRequiredIf2[x][2]("requiredIfValue2");
2282
                                        var fieldCompare2         = oRequiredIf2[x][2]("requiredIfCompare2");
2283
                                        var fieldName3                 = oRequiredIf2[x][2]("requiredIfField3");
2284
                                        var fieldValue3         = oRequiredIf2[x][2]("requiredIfValue3");
2285
                                        var fieldCompare3         = oRequiredIf2[x][2]("requiredIfCompare3");
2286
                                        var fieldName4                 = oRequiredIf2[x][2]("requiredIfField4");
2287
                                        var fieldValue4         = oRequiredIf2[x][2]("requiredIfValue4");
2288
                                        var fieldCompare4         = oRequiredIf2[x][2]("requiredIfCompare4");
2289
                                        var fieldName5                 = oRequiredIf2[x][2]("requiredIfField5");
2290
                                        var fieldValue5         = oRequiredIf2[x][2]("requiredIfValue5");
2291
                                        var fieldCompare5         = oRequiredIf2[x][2]("requiredIfCompare5");
2292
                                        var fieldName6                 = oRequiredIf2[x][2]("requiredIfField6");
2293
                                        var fieldValue6         = oRequiredIf2[x][2]("requiredIfValue6");
2294
                                        var fieldCompare6         = oRequiredIf2[x][2]("requiredIfCompare6");
2295
                                        var fieldName7                 = oRequiredIf2[x][2]("requiredIfField7");
2296
                                        var fieldValue7         = oRequiredIf2[x][2]("requiredIfValue7");
2297
                                        var fieldCompare7         = oRequiredIf2[x][2]("requiredIfCompare7");
2298
                                        var fieldName8                 = oRequiredIf2[x][2]("requiredIfField8");
2299
                                        var fieldValue8         = oRequiredIf2[x][2]("requiredIfValue8");
2300
                                        var fieldCompare8         = oRequiredIf2[x][2]("requiredIfCompare8");
2301
                                        var fieldName9                 = oRequiredIf2[x][2]("requiredIfField9");
2302
                                        var fieldValue9         = oRequiredIf2[x][2]("requiredIfValue9");
2303
                                        var fieldCompare9         = oRequiredIf2[x][2]("requiredIfCompare9");
2304
                                        var fieldName10         = oRequiredIf2[x][2]("requiredIfField10");
2305
                                        var fieldValue10         = oRequiredIf2[x][2]("requiredIfValue10");
2306
                                        var fieldCompare10         = oRequiredIf2[x][2]("requiredIfCompare10");
2307
                                        var fieldName11         = oRequiredIf2[x][2]("requiredIfField11");
2308
                                        var fieldValue11         = oRequiredIf2[x][2]("requiredIfValue11");
2309
                                        var fieldCompare11         = oRequiredIf2[x][2]("requiredIfCompare11");
2310
                                        var fieldName12         = oRequiredIf2[x][2]("requiredIfField12");
2311
                                        var fieldValue12         = oRequiredIf2[x][2]("requiredIfValue12");
2312
                                        var fieldCompare12         = oRequiredIf2[x][2]("requiredIfCompare12");
2313
                                        var fieldName13         = oRequiredIf2[x][2]("requiredIfField13");
2314
                                        var fieldValue13         = oRequiredIf2[x][2]("requiredIfValue13");
2315
                                        var fieldCompare13         = oRequiredIf2[x][2]("requiredIfCompare13");
2316
                                        var fieldName14         = oRequiredIf2[x][2]("requiredIfField14");
2317
                                        var fieldValue14         = oRequiredIf2[x][2]("requiredIfValue14");
2318
                                        var fieldCompare14         = oRequiredIf2[x][2]("requiredIfCompare14");
2319
                                        var fieldName15         = oRequiredIf2[x][2]("requiredIfField15");
2320
                                        var fieldValue15         = oRequiredIf2[x][2]("requiredIfValue15");
2321
                                        var fieldCompare15         = oRequiredIf2[x][2]("requiredIfCompare15");
2322
                                        var fieldName16         = oRequiredIf2[x][2]("requiredIfField16");
2323
                                        var fieldValue16         = oRequiredIf2[x][2]("requiredIfValue16");
2324
                                        var fieldCompare16         = oRequiredIf2[x][2]("requiredIfCompare16");
2325
                                        var fieldName17         = oRequiredIf2[x][2]("requiredIfField17");
2326
                                        var fieldValue17         = oRequiredIf2[x][2]("requiredIfValue17");
2327
                                        var fieldCompare17         = oRequiredIf2[x][2]("requiredIfCompare17");
2328
                                        var fieldName18         = oRequiredIf2[x][2]("requiredIfField18");
2329
                                        var fieldValue18         = oRequiredIf2[x][2]("requiredIfValue18");
2330
                                        var fieldCompare18         = oRequiredIf2[x][2]("requiredIfCompare18");
2331
                                        var fieldName19                = oRequiredIf2[x][2]("requiredIfField19");
2332
                                        var fieldValue19         = oRequiredIf2[x][2]("requiredIfValue19");
2333
                                        var fieldCompare19         = oRequiredIf2[x][2]("requiredIfCompare19");
2334
                                        var fieldName20         = oRequiredIf2[x][2]("requiredIfField20");
2335
                                        var fieldValue20         = oRequiredIf2[x][2]("requiredIfValue20");
2336
                                        var fieldCompare20         = oRequiredIf2[x][2]("requiredIfCompare20");
2337

    
2338
                                        var operator1 = oRequiredIf2[x][2]("operator");
2339

    
2340
                                        if (operator1 == "undefined" || operator1 == undefined)
2341
                                        {
2342
                                                operator1 = oRequiredIf2[x][2]("operator1");
2343
                                        }
2344

    
2345
                                        var operator2                 = oRequiredIf2[x][2]("operator2");
2346
                                        var operator3                 = oRequiredIf2[x][2]("operator3");
2347
                                        var operator4                 = oRequiredIf2[x][2]("operator4");
2348
                                        var operator5                 = oRequiredIf2[x][2]("operator5");
2349
                                        var operator6                 = oRequiredIf2[x][2]("operator6");
2350
                                        var operator7                 = oRequiredIf2[x][2]("operator7");
2351
                                        var operator8                 = oRequiredIf2[x][2]("operator8");
2352
                                        var operator9                 = oRequiredIf2[x][2]("operator9");
2353
                                        var operator10                 = oRequiredIf2[x][2]("operator10");
2354
                                        var operator11                 = oRequiredIf2[x][2]("operator11");
2355
                                        var operator12                 = oRequiredIf2[x][2]("operator12");
2356
                                        var operator13                = oRequiredIf2[x][2]("operator13");
2357
                                        var operator14                 = oRequiredIf2[x][2]("operator14");
2358
                                        var operator15                 = oRequiredIf2[x][2]("operator15");
2359
                                        var operator16                 = oRequiredIf2[x][2]("operator16");
2360
                                        var operator17                 = oRequiredIf2[x][2]("operator17");
2361
                                        var operator18                 = oRequiredIf2[x][2]("operator18");
2362
                                        var operator19                 = oRequiredIf2[x][2]("operator19");
2363

    
2364
                                        var operators = new Array ();
2365
                                        var fieldNames = new Array ();
2366
                                        var fieldValues = new Array ();
2367
                                        var fieldCompares = new Array ();
2368
                                        var fieldCompareValues = new Array ();
2369

    
2370
                                        var operatorsIndex = 0;
2371

    
2372
                                        fieldNames[0] = fieldName1;
2373
                                        fieldCompareValues[0] = "'" + fieldValue1 + "'";
2374
                                        fieldCompares[0] = fieldCompare1;
2375

    
2376
                                        for (var operatorsLoop = 1; operatorsLoop <= 19; operatorsLoop++)
2377
                                        {
2378
                                                if (eval ("operator" + operatorsLoop) != undefined)
2379
                                                {
2380
                                                        operators[operatorsIndex] = eval ("operator" + operatorsLoop);
2381

    
2382
                                                        switch (eval ("operators[" + operatorsIndex + "]"))
2383
                                                        {
2384
                                                                case "AND":
2385
                                                                        operators[operatorsIndex] = "&&";
2386
                                                                        break;
2387
                                                                case "OR":
2388
                                                                        operators[operatorsIndex] = "||";
2389
                                                                        break;
2390
                                                                default:
2391
                                                                        operators[operatorsIndex] = null;
2392
                                                        }
2393

    
2394
                                                        var fieldNumber= operatorsLoop + 1;
2395

    
2396
                                                        fieldNames[operatorsLoop] = eval ("fieldName" + fieldNumber);
2397
                                                        fieldCompareValues[operatorsLoop] = "'" + eval ("fieldValue" + fieldNumber) + "'";
2398
                                                        fieldCompares[operatorsLoop] = eval ("fieldCompare" + fieldNumber);
2399

    
2400
                                                        operatorsIndex++;
2401
                                                }
2402
                                                else
2403
                                                {
2404
                                                        break;
2405
                                                }
2406
                                        }
2407

    
2408
                                        for (var j = 0; j < fieldNames.length; j++)
2409
                                        {
2410
                                                var isValid = true;
2411
                                                var isChecked = -1;
2412

    
2413
                            if (form[fieldNames[j]].type == 'text' ||
2414
                                form[fieldNames[j]].type == 'textarea' ||
2415
                                form[fieldNames[j]].type == 'file' ||
2416
                                form[fieldNames[j]].type == 'select-one' ||
2417
                                form[fieldNames[j]].type == 'hidden' ||
2418
                                form[fieldNames[j]].type == 'password')
2419
                                                {
2420

    
2421
                                                        if (form[fieldNames[j]].type == 'select-one')
2422
                                                        {
2423
                                                                var si = form[fieldNames[j]].selectedIndex;
2424

    
2425
                                                            if (si >= 0)
2426
                                                            {
2427
                                                                    fieldValues[j] = "'" + form[fieldNames[j]].options[si].value + "'";
2428
                                                            }
2429
                                                            else {
2430
                                                                    fieldValues[j] = "''";
2431
                                                            }
2432
                                                        }
2433
                                                         else
2434
                                                        {
2435
                                                                if (form[fieldNames[j]].value.length > 0)
2436
                                                                {
2437
                                                                        if(!isNaN(parseFloat(form[fieldNames[j]].value )))
2438
                                                                        {
2439
                                                                          fieldValues[j] = form[fieldNames[j]].value ;
2440
                                                                        }
2441
                                                                        else
2442
                                                                        {
2443
                                                                          fieldValues[j] = "'" + form[fieldNames[j]].value + "'";
2444
                                                                        }
2445
                                                                }
2446
                                                                else
2447
                                                                {
2448
                                                                        fieldValues[j] = "''";
2449
                                                                }
2450

    
2451
                                                        }
2452
                                                }
2453
                                               else if (form[fieldNames[j]].length > 0 && (form[fieldNames[j]][0].type == 'radio' ||
2454
                                        form[fieldNames[j]][0].type == 'checkbox'))
2455
                                                {
2456
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
2457
                                                        {
2458
                                                                if (form[fieldNames[j]][loop].checked)
2459
                                                                {
2460
                                                                        isChecked=loop;
2461
                                                                        break;
2462
                                                                }
2463
                                                        }
2464

    
2465
                                                        if (isChecked > -1)
2466
                                                        {
2467
                                                                fieldValues[j] = "'" + form[fieldNames[j]][loop].value + "'";
2468
                                                        }
2469
                                                        else
2470
                                                        {
2471
                                                                fieldValues[j] = "''";
2472
                                                        }
2473
                                    }
2474
                                    else if (form[fieldNames[j]].type == 'radio' ||
2475
                                            form[fieldNames[j]].type == 'checkbox')
2476
                                    {
2477
                                                        if (form[fieldNames[j]].checked)
2478
                                                        {
2479
                                                                fieldValues[j] = "'" + form[fieldNames[j]].value + "'";
2480
                                                        }
2481
                                                        else
2482
                                                        {
2483
                                                                fieldValues[j] = "''";
2484
                                                        }
2485
                                    }
2486
                                        }
2487

    
2488
                                        for (var fieldComparesLoop = 0; fieldComparesLoop < fieldCompares.length; fieldComparesLoop++)
2489
                                        {
2490
                                                switch (eval ("fieldCompares[" + fieldComparesLoop + "]"))
2491
                                                {
2492
                                                        case "EQUALS":
2493
                                                                fieldCompares[fieldComparesLoop] = "==";
2494
                                                                break;
2495
                                                        case "NOTEQUALS":
2496
                                                                fieldCompares[fieldComparesLoop] = "!=";
2497
                                                                break;
2498
                                                        case "GREATER":
2499
                                                                fieldCompares[fieldComparesLoop] = ">";
2500
                                                                break;
2501
                                                        case "EQUALSORGRATER":
2502
                                                                fieldCompares[fieldComparesLoop] = ">=";
2503
                                                                break;
2504
                                                        case "LESS":
2505
                                                                fieldCompares[fieldComparesLoop] = "<";
2506
                                                                break;
2507
                                                        case "EQUALSORLESS":
2508
                                                                fieldCompares[fieldComparesLoop] = "<=";
2509
                                                                break;
2510
                                                        default:
2511
                                                                fieldCompares[fieldComparesLoop] = null;
2512
                                                }
2513
                                        }
2514

    
2515
                                        evalStr = "(" + fieldValues[0] + fieldCompares[0] + fieldCompareValues[0] + ")";
2516

    
2517
                                        if (operators.length != 0)
2518
                                        {
2519
                                                for (var conditionalLoop = 0; conditionalLoop < operators.length; conditionalLoop++)
2520
                                                {
2521
                                                        var skipByOne = conditionalLoop + 1;
2522

    
2523
                                                        evalStr +=  " " + operators[conditionalLoop] + " (" + fieldValues[skipByOne] + fieldCompares[skipByOne] + fieldCompareValues[skipByOne] + ")";
2524
                                                }
2525
                                        }
2526

    
2527
                                        if (eval (evalStr) != undefined)
2528
                                        {
2529
                                                isConditionValid = eval (evalStr);
2530

    
2531
                                                if (isConditionValid)
2532
                                                {
2533
                                                        isValid = validateConditionalRequired (field);
2534
                                                }
2535
                                        }
2536

    
2537
                                        if (!isValid)
2538
                                        {
2539
                                                if (i == 0)
2540
                                                {
2541
                                                        focusField = field;
2542
                                                }
2543

    
2544
                                                fields[i++] = oRequiredIf2[x][1];
2545
                                                msg = oRequiredIf2[x][1];
2546
                                                overAllValid = isValid = false;
2547
                    }
2548

    
2549
                                        errorMessageHandler (isValid, field.name, msg);
2550
                        }
2551

    
2552
                        if (fields.length > 0)
2553
                        {
2554
                            focusField.focus();
2555
                            //alert(fields.join('\n'));
2556
                        }
2557

    
2558
                        return overAllValid;
2559
                        }
2560
                ]]></javascript>
2561

    
2562
                </validator>
2563

    
2564

    
2565
                <!-- Check if field is required based on user input on other fields -->
2566
                <!-- NO BACK-END; implementation unsure -->
2567
                <!-- To be dropped -->
2568
                <validator name="requiredif3"
2569
                        classname="com.ib.ibss.validator.CommonRules"
2570
                    method="validateRequiredIf3"
2571
                    methodParams="java.lang.Object,
2572
                                  org.apache.commons.validator.ValidatorAction,
2573
                                  org.apache.commons.validator.Field,
2574
                                  org.apache.struts.action.ActionErrors,
2575
                                  javax.servlet.http.HttpServletRequest"
2576
                   depends="conditionalRequired"
2577
                   msg="errors.required">
2578

    
2579
                <javascript><![CDATA[
2580

    
2581
                function validateRequiredIf3 (form)
2582
                    {
2583

    
2584
                                var overAllValid = true;
2585
                                var isValid = true;
2586
                        var focusField = null;
2587
                        var i = 0;
2588
                var value = '';
2589
                        var fields = new Array();
2590
                        oRequiredif3 = new requiredif3 ();
2591
                        var msg;
2592
                        var tempObj;
2593

    
2594

    
2595
                        for (x in oRequiredif3)
2596
                        {
2597
                                        isValid = true;
2598
                                        isConditionValid = true;
2599
                                        var field = form[oRequiredif3[x][0]];
2600
                                        msg = '';
2601

    
2602
                                        var fieldNames=new Array();
2603
                                        var fieldCompare=new Array();
2604
                                        var fieldValueReq=new Array();
2605

    
2606
                                        var operator=new Array();
2607

    
2608
                                        var condition=new Array();
2609

    
2610

    
2611
                                        for(var j=1;j<20;j++){
2612

    
2613
                                                        tempObj=oRequiredif3[x][2]("requiredIfField"+j);
2614
                                                        if(tempObj!=undefined){
2615
                                                              fieldNames.push(tempObj);
2616
                                                              tempObj=oRequiredif3[x][2]("requiredIfCompare"+j);
2617
                                                              fieldCompare.push(tempObj);
2618
                                                              tempObj=oRequiredif3[x][2]("requiredIfValue"+j);
2619
                                                              fieldValueReq.push(tempObj);
2620
                                                }
2621
                                                tempObj=oRequiredif3[x][2]("operator"+j);
2622
                                                if(tempObj!=undefined){
2623
                                                              operator.push(tempObj);
2624
                                                }
2625

    
2626
                                        }
2627

    
2628

    
2629
                                        for (var  = 0; j < fieldNames.length; j++)
2630
                                        {
2631
                                                var  = true;
2632
                                                var  = -1;
2633
                                                var ;
2634

    
2635

    
2636

    
2637
                            if (   form[fieldNames[j]].type == 'text' ||
2638
                                   form[fieldNames[j]].type == 'textarea' ||
2639
                                   form[fieldNames[j]].type == 'file' ||
2640
                                   form[fieldNames[j]].type == 'select-one' ||
2641
                                   form[fieldNames[j]].type == 'password'              )
2642
                                                {
2643

    
2644
                                                        if (form[fieldNames[j]].type == 'select-one')
2645
                                                        {
2646

    
2647
                                                                var  = form[fieldNames[j]].selectedIndex;
2648

    
2649
                                                            if (si = 0)
2650
                                                            {
2651
                                                                    fieldValue=form[fieldNames[j]].options[si].value;
2652

    
2653
                                                            }
2654
                                                            else {
2655
                                                                 fieldValue = '';
2656
                                                            }
2657
                                                        }
2658
                                                         else
2659
                                                        {
2660

    
2661
                                                                if (form[fieldNames[j]].value.length  0)
2662
                                                                {
2663
                                                                        fieldValue =form[ fieldNames[j] ].value;
2664
                                                                }
2665
                                                                else
2666
                                                                {
2667
                                                                         fieldValue  = '';
2668
                                                                }
2669

    
2670
                                                        }
2671

    
2672
                                                }
2673
                                               else  ( form[fieldNames[j]].length  0
2674
                                                    && (form[fieldNames[j]][0].type == 'radio'
2675
                                                    ||form[fieldNames[j]][0].type == 'checkbox')                     )
2676
                                                {
2677
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
2678
                                                        {
2679
                                                                if (form[fieldNames[j]][loop].checked)
2680
                                                                {
2681
                                                                        isChecked=loop;
2682
                                                                        break;
2683
                                                                }
2684
                                                        }
2685

    
2686
                                                        if (isChecked  -1)
2687
                                                        {
2688

    
2689
                                                                 fieldValue  =  form[fieldNames[j]][loop].value;
2690

    
2691
                                                        }
2692
                                                        else
2693
                                                        {
2694

    
2695
                                                                 fieldValue  = '';
2696
                                                        }
2697
                                    }
2698
                                    else  (form[fieldNames[j]].type == 'radio' ||
2699
                                            form[fieldNames[j]].type == 'checkbox')
2700
                                    {
2701
                                                        if (form[fieldNames[j]].checked)
2702
                                                        {
2703

    
2704
                                                                 fieldValue  = form[fieldNames[j]].value;
2705
                                                        }
2706
                                                        else
2707
                                                        {
2708

    
2709
                                                                 fieldValue = '';
2710
                                                        }
2711
                                    }
2712

    
2713
                                        switch (fieldCompare[j])
2714
                                        {
2715
                                                case "EQUALS":
2716
                                                         = '==';
2717
                                                        break;
2718
                                                case "NOTEQUALS":
2719
                                                         = '!=';
2720
                                                        break;
2721
                                                case "GREATER":
2722
                                                         = '>';
2723
                                                        break;
2724
                                                case "EQUALSORGRATER":
2725
                                                        fieldCompare1 = '>=';
2726
                                                        break;
2727
                                                case "LESS":
2728
                                                        fieldCompare1 = '<';
2729
                                                        break;
2730
                                                case "EQUALSORLESS":
2731
                                                        fieldCompare1 = '<=';
2732
                                                        break;
2733
                                                default:
2734
                                                        fieldCompare1 = '';
2735
                                        }
2736

    
2737
                                        if(       new String(fieldValue).length<=0  ){
2738
                                                fieldValue=null;
2739
                                        }else if(    fieldValue==''         ){
2740
                                                fieldValue=null;
2741
                                        }else{
2742
                                                fieldValue="'"+fieldValue+"'";
2743
                                        }
2744

    
2745
                                        if(    new String(fieldValueReq[j]).length<=0  ){
2746
                                               fieldValueReq[j]=null;
2747
                                        }else if(    fieldValueReq[j]==''         ){
2748
                                               fieldValueReq[j]=null;
2749
                                        }else{
2750
                                               fieldValueReq[j]="'"+fieldValueReq[j]+"'";
2751
                                        }
2752

    
2753
                     condition[j]=fieldValue+fieldCompare1+fieldValueReq[j];
2754

    
2755
                                        }
2756

    
2757
                   var op0=operator[0];
2758
                   var op1=operator[1];
2759
                   var op2=operator[2];
2760
                   var op3=operator[3];
2761
                   var op4=operator[4];
2762
                   var op5=operator[5];
2763
                   var op6=operator[6];
2764
                   var op7=operator[7];
2765
                   var op8=operator[8];
2766
                   var op9=operator[9];
2767
                   var op10=operator[10];
2768
                   var op11=operator[11];
2769
                   var op12=operator[12];
2770
                   var op13=operator[13];
2771
                   var op14=operator[14];
2772
                   var op15=operator[15];
2773
                   var op16=operator[16];
2774
                   var op17=operator[17];
2775
                   var op18=operator[18];
2776
                   var op19=operator[19];
2777

    
2778

    
2779
                    var AllCond='';
2780
                    var i=0;
2781
                                        for (var j = 0; j < condition.length; j++)
2782
                                        {
2783
                              if(j!=0){
2784
                                                                    var pos=j-1;
2785

    
2786
                                                                        var curOp=eval("operator["+pos+"]");
2787

    
2788
                                    switch (pos)
2789
                                                                        {
2790

    
2791
                                                                                case 0:
2792
                                                                                        curOp = op0;
2793
                                                                                        break;
2794
                                                                                case 1:
2795
                                                                                        curOp =op1 ;
2796
                                                                                        break;
2797
                                                                            case 2:
2798
                                                                                        curOp =op2;
2799
                                                                                        break;
2800
                                                                                case 3:
2801
                                                                                        curOp = op3 ;
2802
                                                                                        break;
2803
                                                                           case 4:
2804
                                                                                        curOp = op4;
2805
                                                                                        break;
2806
                                                                                case 5:
2807
                                                                                        curOp = op5 ;
2808
                                                                                        break;
2809
                                                                                case 6:
2810
                                                                                        curOp = op6 ;
2811
                                                                                        break;
2812
                                                                            case 7:
2813
                                                                                        curOp = op7;
2814
                                                                                        break;
2815
                                                                                case 8:
2816
                                                                                        curOp = op8 ;
2817
                                                                                        break;
2818
                                                                           case 9:
2819
                                                                                        curOp = op9;
2820
                                                                                        break;
2821
                                                                                case 10:
2822
                                                                                        curOp = op10;
2823
                                                                                        break;
2824
                                                                                case 11:
2825
                                                                                        curOp =op11 ;
2826
                                                                                        break;
2827
                                                                            case 12:
2828
                                                                                        curOp =op12;
2829
                                                                                        break;
2830
                                                                                case 13:
2831
                                                                                        curOp = op13 ;
2832
                                                                                        break;
2833
                                                                           case 14:
2834
                                                                                        curOp = op14;
2835
                                                                                        break;
2836
                                                                                case 15:
2837
                                                                                        curOp = op15 ;
2838
                                                                                        break;
2839
                                                                                case 16:
2840
                                                                                        curOp = op16 ;
2841
                                                                                        break;
2842
                                                                            case 17:
2843
                                                                                        curOp = op17;
2844
                                                                                        break;
2845
                                                                                case 18:
2846
                                                                                        curOp = op18 ;
2847
                                                                                        break;
2848
                                                                           case 19:
2849
                                                                                        curOp = op19;
2850
                                                                                        break;
2851
                                                                                default:
2852
                                                                                        curOp = "";
2853
                                                                        }
2854

    
2855

    
2856
                                                    switch (curOp)
2857
                                                                        {
2858
                                                                                case "AND":
2859
                                                                                        operator = "&&";
2860
                                                                                        break;
2861
                                                                                case "OR":
2862
                                                                                        operator = "||";
2863
                                                                                        break;
2864
                                                                                default:
2865
                                                                                        operator = "";
2866
                                                                        }
2867

    
2868
                                  AllCond+=operator+"  ";
2869

    
2870
                              }
2871

    
2872
                              AllCond+=condition[j]+"  ";
2873

    
2874
                     }
2875

    
2876

    
2877
//alert(AllCond);//test on display condition which built
2878

    
2879
                                        if (eval(AllCond))
2880
                                        {
2881
                                                if (i == 0)
2882
                                                {
2883
                                                        focusField = field;
2884
                                                }
2885

    
2886
                                                msg = oRequiredif3[x][1];
2887
                                                overAllValid  =isValid= false;
2888
                            i+=1;
2889
                    }
2890

    
2891
                                    if( null!=focusField ){
2892
                      focusField.focus();
2893
                    }
2894

    
2895
                      errorMessageHandler (isValid, field.name, msg)
2896

    
2897
                        }
2898
                        return overAllValid;
2899

    
2900

    
2901
}
2902

    
2903
                ]]></javascript>
2904

    
2905
                </validator>
2906

    
2907

    
2908
                <!-- Check if either current field or specified field is filled, but not both -->
2909
                <validator name="either"
2910
                        classname="com.ib.ibss.validator.CommonRules"
2911
                    method="validateEither"
2912
                    methodParams="java.lang.Object,
2913
                                  org.apache.commons.validator.ValidatorAction,
2914
                                  org.apache.commons.validator.Field,
2915
                                  org.apache.struts.action.ActionErrors,
2916
                                  javax.servlet.http.HttpServletRequest"
2917
                   depends=""
2918
                   msg="errors.either">
2919

    
2920
                <javascript><![CDATA[
2921
                    function validateEither (form)
2922
                    {
2923
                                var overAllValid = true;
2924
                var isValid = true;
2925
                        var focusField = null;
2926
                        var i = 0;
2927
                        var fields = new Array();
2928
                        oEither = new either ();
2929

    
2930
                        for (x in oEither)
2931
                        {
2932
                                isValid = true;
2933
                                var field = form[oEither[x][0]];
2934
                                msg = '';
2935
                                        var fieldName1 = oEither[x][2]("eitherField");
2936

    
2937
                                        var fieldNames = new Array();
2938
                                        var fieldValues = new Array();
2939

    
2940
                                        fieldNames[0] = field.name;
2941
                                        fieldNames[1] = fieldName1;
2942

    
2943
                                        for (var j = 0; j < fieldNames.length; j++)
2944
                                        {
2945
                                var isValid = true;
2946
                                                var isChecked = -1;
2947

    
2948
                            if (form[fieldNames[j]].type == 'text' ||
2949
                                form[fieldNames[j]].type == 'textarea' ||
2950
                                form[fieldNames[j]].type == 'file' ||
2951
                                form[fieldNames[j]].type == 'select-one' ||
2952
                                form[fieldNames[j]].type == 'password')
2953
                                                {
2954

    
2955
                                                        if (form[fieldNames[j]].type == 'select-one')
2956
                                                        {
2957
                                                                var si = form[fieldNames[j]].selectedIndex;
2958

    
2959
                                                            if (si > 0)
2960
                                                            {
2961
                                                                    fieldValues[j] = form[fieldNames[j]].options[si].value;
2962
                                                            }
2963
                                                            else {
2964
                                                                    fieldValues[j] = '';
2965
                                                            }
2966
                                                        } else
2967
                                                        {
2968
                                                                if (form[fieldNames[j]].value.length > 0)
2969
                                                                {
2970
                                                                        fieldValues[j] = form[fieldNames[j]].value;
2971
                                                                }
2972
                                                                else
2973
                                                                {
2974
                                                                        fieldValues[j] = '';
2975
                                                                }
2976

    
2977
                                                        }
2978
                                                }
2979
                                               else if (form[fieldNames[j]].length > 0 && (form[fieldNames[j]][0].type == 'radio' ||
2980
                                        form[fieldNames[j]][0].type == 'checkbox'))
2981
                                                {
2982
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
2983
                                                        {
2984
                                                                if (form[fieldNames[j]][loop].checked)
2985
                                                                {
2986
                                                                        isChecked=loop;
2987
                                                                        break;
2988
                                                                }
2989
                                                        }
2990

    
2991
                                                        if (isChecked > -1)
2992
                                                        {
2993
                                                                fieldValues[j] = form[fieldNames[j]][loop].value;
2994
                                                        }
2995
                                                        else
2996
                                                        {
2997
                                                                fieldValues[j] = '';
2998
                                                        }
2999
                                    }
3000
                                    else if (form[fieldNames[j]].type == 'radio' ||
3001
                                            form[fieldNames[j]].type == 'checkbox')
3002
                                    {
3003
                                                        name = form[fieldNames[j]].name;
3004

    
3005
                                                        if (form[fieldNames[j]].checked)
3006
                                                        {
3007
                                                                fieldValues[j] = form[fieldNames[j]].value;
3008
                                                        }
3009
                                                        else
3010
                                                        {
3011
                                                                fieldValues[j] = '';
3012
                                                        }
3013
                                    }
3014
                                        }
3015

    
3016
                                        if ((fieldValues[0].length == 0 && fieldValues[1].length == 0) ||
3017
                                                (fieldValues[0].length > 0 && fieldValues[1].length > 0))
3018
                                        {
3019
                                                if (i == 0)
3020
                                                {
3021
                                                        focusField = field;
3022
                                                }
3023
                                                fields[i++] = oEither[x][1];
3024
                                                msg = oEither[x][1];
3025
                                                overAllValid = isValid = false;
3026
                                        }
3027

    
3028
                                        errorMessageHandler (isValid, field.name, msg);
3029
                        }
3030

    
3031
                        if (fields.length > 0)
3032
                        {
3033
                            focusField.focus();
3034
                            //alert(fields.join('\n'));
3035
                        }
3036

    
3037
                        return overAllValid;
3038
                        }
3039
                ]]></javascript>
3040

    
3041
                </validator>
3042

    
3043

    
3044
                <!-- Check if at least 1 field is filled, either current field or specified field is filled, can be both fiels be filled-->
3045
                <validator name="either2"
3046
                        classname="com.ib.ibss.validator.CommonRules"
3047
                    method="validateEither2"
3048
                    methodParams="java.lang.Object,
3049
                                  org.apache.commons.validator.ValidatorAction,
3050
                                  org.apache.commons.validator.Field,
3051
                                  org.apache.struts.action.ActionErrors,
3052
                                  javax.servlet.http.HttpServletRequest"
3053
                   depends=""
3054
                   msg="errors.either2">
3055

    
3056
                <javascript><![CDATA[
3057
                    function validateEither2 (form)
3058
                    {
3059
                                var overAllValid = true;
3060
                var isValid = true;
3061
                        var focusField = null;
3062
                        var i = 0;
3063
                        var fields = new Array();
3064
                        oEither2 = new either2 ();
3065

    
3066
                        for (x in oEither2)
3067
                        {
3068
                                isValid = true;
3069
                                var field = form[oEither2[x][0]];
3070
                                msg = '';
3071
                                        var fieldName1 = oEither2[x][2]("either2Field");
3072

    
3073
                                        var fieldNames = new Array();
3074
                                        var fieldValues = new Array();
3075

    
3076
                                        fieldNames[0] = field.name;
3077
                                        fieldNames[1] = fieldName1;
3078

    
3079
                                        for (var j = 0; j < fieldNames.length; j++)
3080
                                        {
3081
                                var isValid = true;
3082
                                                var isChecked = -1;
3083

    
3084
                            if (form[fieldNames[j]].type == 'text' ||
3085
                                form[fieldNames[j]].type == 'textarea' ||
3086
                                form[fieldNames[j]].type == 'file' ||
3087
                                form[fieldNames[j]].type == 'select-one' ||
3088
                                 form[fieldNames[j]].type == 'hidden' ||
3089
                                form[fieldNames[j]].type == 'password')
3090
                                                {
3091
                                                        if (form[fieldNames[j]].type == 'select-one')
3092
                                                        {
3093
                                                                var si = form[fieldNames[j]].selectedIndex;
3094

    
3095
                                                            if (si > 0)
3096
                                                            {
3097
                                                                    fieldValues[j] = form[fieldNames[j]].options[si].value;
3098
                                                            }
3099
                                                            else
3100
                                                            {
3101
                                                                    fieldValues[j] = '';
3102
                                                            }
3103
                                                        }
3104
                                                        else
3105
                                                        {
3106
                                                                if (form[fieldNames[j]].value.length > 0)
3107
                                                                {
3108
                                                                        fieldValues[j] = form[fieldNames[j]].value;
3109
                                                                }
3110
                                                                else
3111
                                                                {
3112
                                                                        fieldValues[j] = '';
3113
                                                                }
3114

    
3115
                                                        }
3116
                                                }
3117
                                               else if (form[fieldNames[j]].length > 0 && (form[fieldNames[j]][0].type == 'radio' ||
3118
                                        form[fieldNames[j]][0].type == 'checkbox'))
3119
                                                {
3120
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
3121
                                                        {
3122
                                                                if (form[fieldNames[j]][loop].checked)
3123
                                                                {
3124
                                                                        isChecked=loop;
3125
                                                                        break;
3126
                                                                }
3127
                                                        }
3128

    
3129
                                                        if (isChecked > -1)
3130
                                                        {
3131
                                                                fieldValues[j] = form[fieldNames[j]][loop].value;
3132
                                                        }
3133
                                                        else
3134
                                                        {
3135
                                                                fieldValues[j] = '';
3136
                                                        }
3137
                                    }
3138
                                    else if (form[fieldNames[j]].type == 'radio' ||
3139
                                            form[fieldNames[j]].type == 'checkbox')
3140
                                    {
3141
                                                        name = form[fieldNames[j]].name;
3142

    
3143
                                                        if (form[fieldNames[j]].checked)
3144
                                                        {
3145
                                                                fieldValues[j] = form[fieldNames[j]].value;
3146
                                                        }
3147
                                                        else
3148
                                                        {
3149
                                                                fieldValues[j] = '';
3150
                                                        }
3151
                                    }
3152
                                        }
3153

    
3154
                                        if ((fieldValues[0].length == 0 && fieldValues[1].length == 0))
3155
                                        {
3156
                                                if (i == 0)
3157
                                                {
3158
                                                        focusField = field;
3159
                                                }
3160
                                                fields[i++] = oEither2[x][1];
3161
                                                msg = oEither2[x][1];
3162
                                                overAllValid = isValid = false;
3163
                                        }
3164

    
3165
                                        errorMessageHandler (isValid, field.name, msg);
3166
                        }
3167

    
3168
                        if (fields.length > 0)
3169
                        {
3170
                            focusField.focus();
3171
                            //alert(fields.join('\n'));
3172
                        }
3173

    
3174
                        return overAllValid;
3175
                        }
3176
                ]]></javascript>
3177

    
3178
                </validator>
3179

    
3180
                <!-- Check if at least 1 field is filled, either current field or specified field is filled, can be 3 fields be filled-->
3181
                <validator name="either3"
3182
                        classname="com.ib.ibss.validator.CommonRules"
3183
                    method="validateEither3"
3184
                    methodParams="java.lang.Object,
3185
                                  org.apache.commons.validator.ValidatorAction,
3186
                                  org.apache.commons.validator.Field,
3187
                                  org.apache.struts.action.ActionErrors,
3188
                                  javax.servlet.http.HttpServletRequest"
3189
                   depends=""
3190
                   msg="errors.either3">
3191

    
3192
                <javascript><![CDATA[
3193
                    function validateEither3 (form)
3194
                    {
3195
                                var overAllValid = true;
3196
                var isValid = true;
3197
                        var focusField = null;
3198
                        var i = 0;
3199
                        var fields = new Array();
3200
                        oEither3 = new either3 ();
3201

    
3202
                        for (x in oEither3)
3203
                        {
3204
                                isValid = true;
3205
                                var field = form[oEither3[x][0]];
3206
                                msg = '';
3207
                                        var fieldName1 = oEither3[x][2]("either3Field");
3208
                                        var fieldName2 = oEither3[x][2]("either3Field2");
3209

    
3210
                                        var fieldNames = new Array();
3211
                                        var fieldValues = new Array();
3212

    
3213
                                        fieldNames[0] = field.name;
3214
                                        fieldNames[1] = fieldName1;
3215
                                        fieldNames[2] = fieldName2;
3216

    
3217
                                        for (var j = 0; j < fieldNames.length; j++)
3218
                                        {
3219
                                var isValid = true;
3220
                                                var isChecked = -1;
3221

    
3222
                            if (form[fieldNames[j]].type == 'text' ||
3223
                                form[fieldNames[j]].type == 'textarea' ||
3224
                                form[fieldNames[j]].type == 'file' ||
3225
                                form[fieldNames[j]].type == 'select-one' ||
3226
                                form[fieldNames[j]].type == 'password')
3227
                                                {
3228

    
3229
                                                        if (form[fieldNames[j]].type == 'select-one')
3230
                                                        {
3231
                                                                var si = form[fieldNames[j]].selectedIndex;
3232

    
3233
                                                            if (si > 0)
3234
                                                            {
3235
                                                                    fieldValues[j] = form[fieldNames[j]].options[si].value;
3236
                                                            }
3237
                                                            else
3238
                                                            {
3239
                                                                    fieldValues[j] = '';
3240
                                                            }
3241
                                                        }
3242
                                                        else
3243
                                                        {
3244
                                                                if (form[fieldNames[j]].value.length > 0)
3245
                                                                {
3246
                                                                        fieldValues[j] = form[fieldNames[j]].value;
3247
                                                                }
3248
                                                                else
3249
                                                                {
3250
                                                                        fieldValues[j] = '';
3251
                                                                }
3252

    
3253
                                                        }
3254
                                                }
3255
                                               else if (form[fieldNames[j]].length > 0 && (form[fieldNames[j]][0].type == 'radio' ||
3256
                                        form[fieldNames[j]][0].type == 'checkbox'))
3257
                                                {
3258
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
3259
                                                        {
3260
                                                                if (form[fieldNames[j]][loop].checked)
3261
                                                                {
3262
                                                                        isChecked=loop;
3263
                                                                        break;
3264
                                                                }
3265
                                                        }
3266

    
3267
                                                        if (isChecked > -1)
3268
                                                        {
3269
                                                                fieldValues[j] = form[fieldNames[j]][loop].value;
3270
                                                        }
3271
                                                        else
3272
                                                        {
3273
                                                                fieldValues[j] = '';
3274
                                                        }
3275
                                    }
3276
                                    else if (form[fieldNames[j]].type == 'radio' ||
3277
                                            form[fieldNames[j]].type == 'checkbox')
3278
                                    {
3279
                                                        name = form[fieldNames[j]].name;
3280

    
3281
                                                        if (form[fieldNames[j]].checked)
3282
                                                        {
3283
                                                                fieldValues[j] = form[fieldNames[j]].value;
3284
                                                        }
3285
                                                        else
3286
                                                        {
3287
                                                                fieldValues[j] = '';
3288
                                                        }
3289
                                    }
3290
                                        }
3291

    
3292
                                        if ((fieldValues[0].length == 0 && fieldValues[1].length == 0 && fieldValues[2].length == 0))
3293
                                        {
3294
                                                if (i == 0)
3295
                                                {
3296
                                                        focusField = field;
3297
                                                }
3298
                                                fields[i++] = oEither3[x][1];
3299
                                                msg = oEither3[x][1];
3300
                                                overAllValid = isValid = false;
3301
                                        }
3302

    
3303
                                        errorMessageHandler (isValid, field.name, msg);
3304
                        }
3305

    
3306
                        if (fields.length > 0)
3307
                        {
3308
                            focusField.focus();
3309
                            //alert(fields.join('\n'));
3310
                        }
3311

    
3312
                        return overAllValid;
3313
                        }
3314
                ]]></javascript>
3315

    
3316
                </validator>
3317

    
3318
                <!-- Check if at least 1 field is filled, either current field or specified field is filled, can be 5 fields be filled-->
3319
                <validator name="eitherDyna"
3320
                        classname="com.ib.ibss.validator.CommonRules"
3321
                    method="validateEitherDyna"
3322
                    methodParams="java.lang.Object,
3323
                                  org.apache.commons.validator.ValidatorAction,
3324
                                  org.apache.commons.validator.Field,
3325
                                  org.apache.struts.action.ActionErrors,
3326
                                  javax.servlet.http.HttpServletRequest"
3327
                   depends=""
3328
                   msg="errors.eitherDyna">
3329

    
3330
                <javascript><![CDATA[
3331
                    function validateEitherDyna (form)
3332
                    {
3333
                                var overAllValid = true;
3334
                var isValid = true;
3335
                        var focusField = null;
3336
                        var i = 0;
3337
                        var fields = new Array();
3338
                        oEitherDyna= new eitherDyna ();
3339

    
3340
                        for (x in oEitherDyna)
3341
                        {
3342
                                isValid = true;
3343
                                var field = form[oEitherDyna[x][0]];
3344
                                msg = '';
3345
                                var fieldNames = new Array();
3346
                                       var fieldValues = new Array();
3347
                                       var valueFound = false;
3348
                                       var counter = 0;
3349

    
3350
                                for (var z = 1; z <= 1000; z++)
3351
                                {
3352
                                        if (z == 1)
3353
                                        {
3354
                                                fieldNames[0] = field.name;
3355
                                                counter++;
3356
                                        }
3357

    
3358
                                                var tempProperty  = "eitherDynaField" + z + "";
3359
                                                var tempValue = oEitherDyna[x][2](tempProperty);
3360

    
3361
                                                if (tempValue != "" && tempValue != undefined)
3362
                                                {
3363
                                                        fieldNames[counter] = oEitherDyna[x][2]("eitherDynaField" + z);
3364
                                                        counter++;
3365
                                                }
3366
                                                else
3367
                                                {
3368
                                                        break;
3369
                                                }
3370
                                }
3371

    
3372
                                        for (var j = 0; j < fieldNames.length; j++)
3373
                                        {
3374
                                var isValid = true;
3375
                                                var isChecked = -1;
3376

    
3377
                            if (form[fieldNames[j]].type == 'text' ||
3378
                                form[fieldNames[j]].type == 'textarea' ||
3379
                                form[fieldNames[j]].type == 'file' ||
3380
                                form[fieldNames[j]].type == 'select-one' ||
3381
                                form[fieldNames[j]].type == 'password')
3382
                                                {
3383

    
3384
                                                        if (form[fieldNames[j]].type == 'select-one')
3385
                                                        {
3386
                                                                var si = form[fieldNames[j]].selectedIndex;
3387

    
3388
                                                            if (si > 0)
3389
                                                            {
3390
                                                                    fieldValues[j] = form[fieldNames[j]].options[si].value;
3391
                                                            }
3392
                                                            else
3393
                                                            {
3394
                                                                    fieldValues[j] = '';
3395
                                                            }
3396
                                                        }
3397
                                                        else
3398
                                                        {
3399
                                                                if (form[fieldNames[j]].value.length > 0)
3400
                                                                {
3401
                                                                        fieldValues[j] = form[fieldNames[j]].value;
3402
                                                                }
3403
                                                                else
3404
                                                                {
3405
                                                                        fieldValues[j] = '';
3406
                                                                }
3407

    
3408
                                                        }
3409
                                                }
3410
                                               else if (form[fieldNames[j]].length > 0 && (form[fieldNames[j]][0].type == 'radio' ||
3411
                                        form[fieldNames[j]][0].type == 'checkbox'))
3412
                                                {
3413
                                                        for (loop = 0; loop < form[fieldNames[j]].length; loop++)
3414
                                                        {
3415
                                                                if (form[fieldNames[j]][loop].checked)
3416
                                                                {
3417
                                                                        isChecked=loop;
3418
                                                                        break;
3419
                                                                }
3420
                                                        }
3421

    
3422
                                                        if (isChecked > -1)
3423
                                                        {
3424
                                                                fieldValues[j] = form[fieldNames[j]][loop].value;
3425
                                                        }
3426
                                                        else
3427
                                                        {
3428
                                                                fieldValues[j] = '';
3429
                                                        }
3430
                                    }
3431
                                    else if (form[fieldNames[j]].type == 'radio' ||
3432
                                            form[fieldNames[j]].type == 'checkbox')
3433
                                    {
3434
                                                        name = form[fieldNames[j]].name;
3435

    
3436
                                                        if (form[fieldNames[j]].checked)
3437
                                                        {
3438
                                                                fieldValues[j] = form[fieldNames[j]].value;
3439
                                                        }
3440
                                                        else
3441
                                                        {
3442
                                                                fieldValues[j] = '';
3443
                                                        }
3444
                                    }
3445
                                        }
3446

    
3447
                                        for (var g = 0; g < fieldValues.length; g++)
3448
                                        {
3449
                                                if (fieldValues[g].length != 0)
3450
                                                {
3451
                                                        valueFound = true;
3452
                                                        break;
3453
                                                }
3454
                                        }
3455

    
3456
                                        if (!valueFound)
3457
                                        {
3458
                                                if (i == 0)
3459
                                                {
3460
                                                        focusField = field;
3461
                                                }
3462
                                                fields[i++] = oEitherDyna[x][1];
3463
                                                msg = oEitherDyna[x][1];
3464
                                                overAllValid = isValid = false;
3465
                                        }
3466

    
3467
                                        errorMessageHandler (isValid, field.name, msg);
3468
                        }
3469

    
3470
                        if (fields.length > 0)
3471
                        {
3472
                            focusField.focus();
3473
                            //alert(fields.join('\n'));
3474
                        }
3475

    
3476
                        return overAllValid;
3477
                        }
3478
                ]]></javascript>
3479

    
3480
                </validator>
3481

    
3482
                <!-- Check if checkbox/radio button is selected -->
3483
                <validator name="required2"
3484
                        classname="com.ib.ibss.validator.CommonRules"
3485
                    method="validateRequired2"
3486
                    methodParams="java.lang.Object,
3487
                                  org.apache.commons.validator.ValidatorAction,
3488
                                  org.apache.commons.validator.Field,
3489
                                  org.apache.struts.action.ActionErrors,
3490
                                  javax.servlet.http.HttpServletRequest"
3491
                   depends=""
3492
                   msg="errors.required2">
3493

    
3494
                <javascript><![CDATA[
3495
                    function validateRequired2 (form)
3496
                    {
3497
                                var overAllValid = true;
3498
                var isValid = true;
3499
                        var focusField = null;
3500
                        var i = 0;
3501
                        var fields = new Array();
3502
                        oRequired2 = new required2 ();
3503

    
3504
                        for (x in oRequired2)
3505
                        {
3506
                            isValid = true;
3507
                            var field = form[oRequired2[x][0]];
3508
                                        var msg = '';
3509
                                        var name = '';
3510
                        var isChecked = -1;
3511

    
3512
                            if (field.length > 0 && (field[0].type == 'radio' ||
3513
                                field[0].type == 'checkbox'))
3514
                                        {
3515
                                                name = field[0].name;
3516

    
3517
                                                for (loop = 0; loop < field.length; loop++)
3518
                                                {
3519
                                                        if (field[loop].checked) {
3520
                                                                isChecked=loop;
3521
                                                                break;
3522
                                                        }
3523
                                                }
3524

    
3525
                                                if (isChecked < 0)
3526
                                                {
3527
                                                        if (i == 0)
3528
                                                        {
3529
                                                                focusField = field[0];
3530
                                                        }
3531
                                                        fields[i++] = oRequired2[x][1];
3532
                                                        msg = oRequired2[x][1];
3533
                                                        overAllValid = isValid = false;
3534
                                                        field = field[0];
3535
                                                }
3536
                            }
3537
                            else if (field.type == 'radio' ||
3538
                                    field.type == 'checkbox')
3539
                            {
3540
                                                name = field.name;
3541

    
3542
                                                if (field.checked)
3543
                                                {
3544
                                                        isChecked=1;
3545
                                                }
3546

    
3547
                                                if (isChecked < 0)
3548
                                                {
3549
                                                        if (i == 0)
3550
                                                        {
3551
                                                                focusField = field;
3552
                                                        }
3553
                                                        fields[i++] = oRequired2[x][1];
3554
                                                        msg = oRequired2[x][1];
3555
                                                        overAllValid = isValid = false;
3556
                                                }
3557
                            }
3558

    
3559
                                errorMessageHandler (isValid, name, msg);
3560
                        }
3561

    
3562
                        if (fields.length > 0)
3563
                        {
3564
                            focusField.focus();
3565
                            //alert(fields.join('\n'));
3566
                        }
3567

    
3568
                        return overAllValid;
3569
                        }
3570
                ]]></javascript>
3571

    
3572
                </validator>
3573

    
3574
                <!-- only for  drop down list button ,if selected index is 0 0r value is empty string return error -->
3575
      <validator name="required3"
3576
            classname="com.ib.ibss.validator.CommonRules"
3577
               method="validateRequired3"
3578
         methodParams="java.lang.Object,
3579
                       org.apache.commons.validator.ValidatorAction,
3580
                       org.apache.commons.validator.Field,
3581
                       org.apache.struts.action.ActionErrors,
3582
                       javax.servlet.http.HttpServletRequest"
3583
                  msg="errors.required">
3584

    
3585
         <javascript><![CDATA[
3586
            function validateRequired3(form) {
3587
                var overAllValid = true;
3588
                var isValid = true;
3589
                var focusField = null;
3590
                var i = 0;
3591
                var fields = new Array();
3592
                oRequired = new required3();
3593
                for (x in oRequired) {
3594
                        isValid = true;
3595
                        var field = form[oRequired[x][0]];
3596
                                        var msg = '';
3597

    
3598
                    if (  field.type == 'select-one'  ) {
3599

    
3600
                        var value = '';
3601
                                                if (field.type == "select-one") {
3602
                                                        var si = field.selectedIndex;
3603
                                                        if(si>0){
3604
                                                         value = field.options[si].value;
3605
                                                        }
3606
                                                }
3607

    
3608
                        if (trim(value).length == 0) {
3609

    
3610
                                if (i == 0) {
3611
                                    focusField = field;
3612
                                }
3613
                                fields[i++] = oRequired[x][1];
3614
                                msg = oRequired[x][1];
3615
                                overAllValid = isValid = false;
3616
                        }
3617

    
3618
                                                errorMessageHandler (isValid, field.name, msg);
3619
                    }
3620
                }
3621
                if (fields.length > 0) {
3622
                   focusField.focus();
3623
                   //alert(fields.join('\n'));
3624
                }
3625
                return overAllValid;
3626
            }
3627
            ]]>
3628
         </javascript>
3629

    
3630
      </validator>
3631

    
3632

    
3633
                <!-- Check if value is alphabet -->
3634
                <validator name="alphabet"
3635
                        classname="com.ib.ibss.validator.CommonRules"
3636
                    method="validateAlphabet"
3637
                    methodParams="java.lang.Object,
3638
                                  org.apache.commons.validator.ValidatorAction,
3639
                                  org.apache.commons.validator.Field,
3640
                                  org.apache.struts.action.ActionErrors,
3641
                                  javax.servlet.http.HttpServletRequest"
3642
                   depends=""
3643
                   msg="errors.alphabet">
3644

    
3645
                <javascript><![CDATA[
3646
                    function validateAlphabet (form)
3647
                    {
3648
                                var overAllValid = true;
3649
                var isValid = true;
3650
                        var focusField = null;
3651
                        var i = 0;
3652
                        var fields = new Array();
3653
                        oAlphabet = new alphabet ();
3654

    
3655
                        for (x in oAlphabet)
3656
                        {
3657
                            isValid = true;
3658
                            var field = form[oAlphabet[x][0]];
3659
                                        var msg = '';
3660

    
3661
                            if (field.type == 'text' ||
3662
                                field.type == 'textarea')
3663
                                        {
3664
                                                var value = field.value;
3665
                                var len = value.length;
3666

    
3667
                                                if (len > 0)
3668
                                                {
3669
                                                        for (j = 0; j < len; j++)
3670
                                                        {
3671
                                                            code = value.charCodeAt(j);
3672
                                                            if ( !( (code >= 65 && code <= 90) ||
3673
                                                                            (code >= 97 && code <= 122) ))
3674
                                                                   {
3675
                                                                        if (i == 0)
3676
                                                {
3677
                                                    focusField = field;
3678
                                                }
3679

    
3680
                                                fields[i++] = oAlphabet[x][1];
3681
                                                msg = oAlphabet[x][1];
3682
                                                overAllValid = isValid = false;
3683
                                                                }
3684

    
3685
                                                                errorMessageHandler (isValid, field.name, msg);
3686
                                                        }
3687
                                                }
3688
                            }
3689
                        }
3690

    
3691
                        if (fields.length > 0)
3692
                        {
3693
                            focusField.focus();
3694
                            //alert(fields.join('\n'));
3695
                        }
3696

    
3697
                        return overAllValid;
3698
                        }
3699
                ]]></javascript>
3700

    
3701
                </validator>
3702
                
3703
                <!-- Check if value is alphabet or have spaces only, cannot include special characters and numbers -->
3704
                <validator name="alphabetSpace"
3705
                        classname="com.ib.ibss.validator.CommonRules"
3706
                    method="validateAlphabetSpace"
3707
                    methodParams="java.lang.Object,
3708
                                  org.apache.commons.validator.ValidatorAction,
3709
                                  org.apache.commons.validator.Field,
3710
                                  org.apache.struts.action.ActionErrors,
3711
                                  javax.servlet.http.HttpServletRequest"
3712
                   depends=""
3713
                   msg="errors.alphabet">
3714

    
3715
                <javascript><![CDATA[
3716
                    function validateAlphabetSpace (form)
3717
                    {
3718
                                var overAllValid = true;
3719
                var isValid = true;
3720
                        var focusField = null;
3721
                        var i = 0;
3722
                        var fields = new Array();
3723
                        oAlphabetSpace = new alphabetSpace
3724

    
3725
                        for (x in oAlphabetSpace
3726
                        {
3727
                            isValid = true;
3728
                            var field = form[oAlphabetSpace[x][0]];
3729
                            var msg = '';
3730

    
3731
                            if (field.type == 'text' ||
3732
                                field.type == 'textarea')
3733
                                        {
3734
                                var value = field.value;
3735
                                var len = value.length;
3736

    
3737
                                                if (len > 0)
3738
                                                {
3739
                                                        for (j = 0; j < len; j++)
3740
                                                        {
3741
                                                            code = value.charCodeAt(j);
3742

    
3743
                                                            if ( !( code == 32 ||
3744
                                                                               (code >= 65 && code <= 90) ||
3745
                                                                               (code >= 97 && code <= 122) ))
3746
                                                                   {
3747
                                                                        if (i == 0)
3748
                                                {
3749
                                                    focusField = field;
3750
                                                }
3751

    
3752
                                                fields[i++] = oAlphabetSpace[x][1];
3753
                                                msg = oAlphabetSpace[x][1];
3754
                                                overAllValid = isValid = false;
3755
                                                                }
3756

    
3757
                                                                errorMessageHandler (isValid, field.name, msg);
3758
                                                        }
3759
                                                }
3760
                            }
3761
                        }
3762

    
3763
                        if (fields.length > 0)
3764
                        {
3765
                            focusField.focus();
3766
                            //alert(fields.join('\n'));
3767
                        }
3768

    
3769
                        return overAllValid;
3770
                        }
3771
                ]]></javascript>
3772

    
3773
                </validator>
3774

    
3775

    
3776
                <!-- Check if value is numeric -->
3777
                <validator name="numeric"
3778
                        classname="com.ib.ibss.validator.CommonRules"
3779
                    method="validateNumeric"
3780
                    methodParams="java.lang.Object,
3781
                                  org.apache.commons.validator.ValidatorAction,
3782
                                  org.apache.commons.validator.Field,
3783
                                  org.apache.struts.action.ActionErrors,
3784
                                  javax.servlet.http.HttpServletRequest"
3785
                   depends=""
3786
                   msg="errors.numeric">
3787

    
3788
                <javascript><![CDATA[
3789
                    function validateNumeric (form)
3790
                    {
3791
                                var overAllValid = true;
3792
                var isValid = true;
3793
                        var focusField = null;
3794
                        var i = 0;
3795
                        var fields = new Array();
3796
                        oNumeric = new numeric();
3797

    
3798
                        for (x in oNumeric)
3799
                        {
3800
                                isValid = true;
3801
                            var field = form[oNumeric[x][0]];
3802
                            var msg = '';
3803

    
3804
                            if (field.type == 'text' ||
3805
                                field.type == 'textarea' ||
3806
                                field.type == 'password')
3807
                                        {
3808
                                var value = field.value;
3809
                                var len = value.length;
3810

    
3811
                                                if (len > 0)
3812
                                                {
3813
                                                        for (j = 0; j < len; j++)
3814
                                                        {
3815
                                                            code = value.charCodeAt(j);
3816
                                                            if (!(code >= 48 && code <= 57))
3817
                                                                   {
3818
                                                                        if (i == 0)
3819
                                                {
3820
                                                    focusField = field;
3821
                                                }
3822

    
3823
                                                fields[i++] = oNumeric[x][1];
3824
                                                msg = oNumeric[x][1];
3825
                                                overAllValid = isValid = false;
3826
                                                                }
3827

    
3828
                                                                errorMessageHandler (isValid, field.name, msg);
3829
                                                        }
3830
                                                }
3831
                            }
3832
                        }
3833

    
3834
                        if (fields.length > 0)
3835
                        {
3836
                            focusField.focus();
3837
                            //alert(fields.join('\n'));
3838
                        }
3839

    
3840
                        return overAllValid;
3841
                        }
3842
                ]]></javascript>
3843

    
3844
                </validator>
3845

    
3846

    
3847
                <!-- Check if value is aplhanumeric -->
3848
                <validator name="alphaNumeric"
3849
                        classname="com.ib.ibss.validator.CommonRules"
3850
                    method="validateAlphaNumeric"
3851
                    methodParams="java.lang.Object,
3852
                                  org.apache.commons.validator.ValidatorAction,
3853
                                  org.apache.commons.validator.Field,
3854
                                  org.apache.struts.action.ActionErrors,
3855
                                  javax.servlet.http.HttpServletRequest"
3856
                   depends=""
3857
                   msg="errors.alphaNumeric">
3858

    
3859
                <javascript><![CDATA[
3860
                    function validateAlphaNumeric (form)
3861
                    {
3862
                                var overAllValid = true;
3863
                var isValid = true;
3864
                        var focusField = null;
3865
                        var i = 0;
3866
                        var fields = new Array();
3867
                        oAlphaNumeric = new alphaNumeric();
3868

    
3869
                        for (x in oAlphaNumeric)
3870
                        {
3871
                            isValid = true;
3872
                            var field = form[oAlphaNumeric[x][0]];
3873
                            var msg = '';
3874

    
3875
                            if (field.type == 'text' ||
3876
                                field.type == 'textarea')
3877
                                        {
3878
                                var value = field.value;
3879
                                var len = value.length;
3880

    
3881
                                                if (len > 0)
3882
                                                {
3883
                                                        for (j = 0; j < len; j++)
3884
                                                        {
3885
                                                            code = value.charCodeAt(j);
3886

    
3887
                                                            if ( !( (code >= 48 && code <= 57) ||
3888
                                                                               (code >= 65 && code <= 90) ||
3889
                                                                               (code >= 97 && code <= 122) ))
3890
                                                                   {
3891
                                                                        if (i == 0)
3892
                                                {
3893
                                                    focusField = field;
3894
                                                }
3895

    
3896
                                                fields[i++] = oAlphaNumeric[x][1];
3897
                                                msg = oAlphaNumeric[x][1];
3898
                                                overAllValid = isValid = false;
3899
                                                                }
3900

    
3901
                                                                errorMessageHandler (isValid, field.name, msg);
3902
                                                        }
3903
                                                }
3904
                            }
3905
                        }
3906

    
3907
                        if (fields.length > 0)
3908
                        {
3909
                            focusField.focus();
3910
                            //alert(fields.join('\n'));
3911
                        }
3912

    
3913
                        return overAllValid;
3914
                        }
3915
                ]]></javascript>
3916

    
3917
                </validator>
3918

    
3919

    
3920
                <!-- Check if value is aplhanumeric or have spaces -->
3921
                <validator name="alphaNumericSpace"
3922
                        classname="com.ib.ibss.validator.CommonRules"
3923
                    method="validateAlphaNumericSpace"
3924
                    methodParams="java.lang.Object,
3925
                                  org.apache.commons.validator.ValidatorAction,
3926
                                  org.apache.commons.validator.Field,
3927
                                  org.apache.struts.action.ActionErrors,
3928
                                  javax.servlet.http.HttpServletRequest"
3929
                   depends=""
3930
                   msg="errors.alphaNumericSpace">
3931

    
3932
                <javascript><![CDATA[
3933
                    function validateAlphaNumericSpace (form)
3934
                    {
3935
                                var overAllValid = true;
3936
                var isValid = true;
3937
                        var focusField = null;
3938
                        var i = 0;
3939
                        var fields = new Array();
3940
                        oAlphaNumericSpace = new alphaNumericSpace();
3941

    
3942
                        for (x in oAlphaNumericSpace)
3943
                        {
3944
                            isValid = true;
3945
                            var field = form[oAlphaNumericSpace[x][0]];
3946
                            var msg = '';
3947

    
3948
                            if (field.type == 'text' ||
3949
                                field.type == 'textarea')
3950
                                        {
3951
                                var value = field.value;
3952
                                var len = value.length;
3953

    
3954
                                                if (len > 0)
3955
                                                {
3956
                                                        for (j = 0; j < len; j++)
3957
                                                        {
3958
                                                            code = value.charCodeAt(j);
3959

    
3960
                                                            if ( !( code == 32 ||
3961
                                                                                 (code >= 48 && code <= 57) ||
3962
                                                                               (code >= 65 && code <= 90) ||
3963
                                                                               (code >= 97 && code <= 122) ))
3964
                                                                   {
3965
                                                                        if (i == 0)
3966
                                                {
3967
                                                    focusField = field;
3968
                                                }
3969

    
3970
                                                fields[i++] = oAlphaNumericSpace[x][1];
3971
                                                msg = oAlphaNumericSpace[x][1];
3972
                                                overAllValid = isValid = false;
3973
                                                                }
3974

    
3975
                                                                errorMessageHandler (isValid, field.name, msg);
3976
                                                        }
3977
                                                }
3978
                            }
3979
                        }
3980

    
3981
                        if (fields.length > 0)
3982
                        {
3983
                            focusField.focus();
3984
                            //alert(fields.join('\n'));
3985
                        }
3986

    
3987
                        return overAllValid;
3988
                        }
3989
                ]]></javascript>
3990

    
3991
                </validator>
3992

    
3993
        <!-- Check if value is aplhanumeric or have dash, underscore and DOt-->
3994
                <validator name="alphaNumericDashDotUnderScore"
3995
                        classname="com.ib.ibss.validator.CommonRules"
3996
                    method="validateAlphaNumericDashDotUnderScore"
3997
                    methodParams="java.lang.Object,
3998
                                  org.apache.commons.validator.ValidatorAction,
3999
                                  org.apache.commons.validator.Field,
4000
                                  org.apache.struts.action.ActionErrors,
4001
                                  javax.servlet.http.HttpServletRequest"
4002
                   depends=""
4003
                   msg="errors.alphaNumericDashDotUnderScore">
4004

    
4005
                <javascript><![CDATA[
4006
                    function validateAlphaNumericDashDotUnderScore (form)
4007
                    {
4008
                                var overAllValid = true;
4009
                var isValid = true;
4010
                        var focusField = null;
4011
                        var i = 0;
4012
                        var fields = new Array();
4013
                        oAlphaNumericDashDotUnderScore = new alphaNumericDashDotUnderScore();
4014

    
4015
                        for (x in oAlphaNumericSpace)
4016
                        {
4017
                            isValid = true;
4018
                            var field = form[oAlphaNumericDashDotUnderScore[x][0]];
4019
                            var msg = '';
4020

    
4021
                            if (field.type == 'text' ||
4022
                                field.type == 'textarea')
4023
                                        {
4024
                                var value = field.value;
4025
                                var len = value.length;
4026

    
4027
                                                if (len > 0)
4028
                                                {
4029
                                                        for (j = 0; j < len; j++)
4030
                                                        {
4031
                                                            code = value.charCodeAt(j);
4032

    
4033
                                                            if ( !( code == 95 ||
4034
                                                                                 (code >= 48 && code <= 57) ||
4035
                                                                               (code >= 65 && code <= 90) ||
4036
                                                                               (code >= 97 && code <= 122) || (code >= 45 && code <= 46) ))
4037
                                                                   {
4038
                                                                        if (i == 0)
4039
                                                {
4040
                                                    focusField = field;
4041
                                                }
4042

    
4043
                                                fields[i++] = oAlphaNumericDashDotUnderScore[x][1];
4044
                                                msg = oAlphaNumericDashDotUnderScore[x][1];
4045
                                                overAllValid = isValid = false;
4046
                                                                }
4047

    
4048
                                                                errorMessageHandler (isValid, field.name, msg);
4049
                                                        }
4050
                                                }
4051
                            }
4052
                        }
4053

    
4054
                        if (fields.length > 0)
4055
                        {
4056
                            focusField.focus();
4057
                            //alert(fields.join('\n'));
4058
                        }
4059

    
4060
                        return overAllValid;
4061
                        }
4062
                ]]></javascript>
4063

    
4064
                </validator>
4065

    
4066
                <!-- Check if value is aplhanumeric symbol -->
4067
                <validator name="alphaNumericSymbol"
4068
                        classname="com.ib.ibss.validator.CommonRules"
4069
                    method="validateAlphaNumericSymbol"
4070
                    methodParams="java.lang.Object,
4071
                                  org.apache.commons.validator.ValidatorAction,
4072
                                  org.apache.commons.validator.Field,
4073
                                  org.apache.struts.action.ActionErrors,
4074
                                  javax.servlet.http.HttpServletRequest"
4075
                   depends=""
4076
                   msg="errors.alphaNumericSymbol">
4077

    
4078
                <javascript><![CDATA[
4079
                    function validateAlphaNumericSymbol (form)
4080
                    {
4081
                                var overAllValid = true;
4082
                var isValid = true;
4083
                        var focusField = null;
4084
                        var i = 0;
4085
                        var fields = new Array();
4086
                        oAlphaNumericSymbol = new alphaNumericSymbol();
4087

    
4088
                        for (x in oAlphaNumericSymbol)
4089
                        {
4090
                            isValid = true;
4091
                            var field = form[oAlphaNumericSymbol[x][0]];
4092
                            var msg = '';
4093

    
4094
                            if (field.type == 'text' ||
4095
                                field.type == 'textarea' ||
4096
                                field.type == 'password')
4097
                                        {
4098
                                var value = field.value;
4099
                                                var len = value.length;
4100

    
4101
                                                if (len > 0)
4102
                                                {
4103
                                                        for (j = 0; j < len; j++)
4104
                                                        {
4105
                                                                code = value.charCodeAt(j);
4106

    
4107
                                                            if ( !(code >= 33 && code <= 126))
4108
                                                                   {
4109
                                                                        if (i == 0)
4110
                                                {
4111
                                                    focusField = field;
4112
                                                }
4113

    
4114
                                                fields[i++] = oAlphaNumericSymbol[x][1];
4115
                                                msg = oAlphaNumericSymbol[x][1];
4116
                                                overAllValid = isValid = false;
4117
                                                                }
4118

    
4119
                                                                errorMessageHandler (isValid, field.name, msg);
4120
                                                        }
4121
                                                }
4122
                            }
4123
                        }
4124

    
4125
                        if (fields.length > 0)
4126
                        {
4127
                            focusField.focus();
4128
                            //alert(fields.join('\n'));
4129
                        }
4130

    
4131
                        return overAllValid;
4132
                        }
4133
                ]]></javascript>
4134

    
4135
                </validator>
4136

    
4137
<!-- Check if value is aplhanumeric symbol -->
4138
                <validator name="alphaNumericSymbolSpace"
4139
                        classname="com.ib.ibss.validator.CommonRules"
4140
                    method="validateAlphaNumericSymbolSpace"
4141
                    methodParams="java.lang.Object,
4142
                                  org.apache.commons.validator.ValidatorAction,
4143
                                  org.apache.commons.validator.Field,
4144
                                  org.apache.struts.action.ActionErrors,
4145
                                  javax.servlet.http.HttpServletRequest"
4146
                   depends=""
4147
                   msg="errors.alphaNumericSymbol">
4148

    
4149
                <javascript><![CDATA[
4150
                    function validateAlphaNumericSymbolSpace (form)
4151
                    {
4152
                                var overAllValid = true;
4153
                var isValid = true;
4154
                        var focusField = null;
4155
                        var i = 0;
4156
                        var fields = new Array();
4157
                        oAlphaNumericSymbol = new alphaNumericSymbol();
4158

    
4159
                        for (x in oAlphaNumericSymbol)
4160
                        {
4161
                            isValid = true;
4162
                            var field = form[oAlphaNumericSymbol[x][0]];
4163
                            var msg = '';
4164

    
4165
                            if (field.type == 'text' ||
4166
                                field.type == 'textarea' ||
4167
                                field.type == 'password')
4168
                                        {
4169
                                var value = field.value;
4170
                                                var len = value.length;
4171

    
4172
                                                if (len > 0)
4173
                                                {
4174
                                                        for (j = 0; j < len; j++)
4175
                                                        {
4176
                                                                code = value.charCodeAt(j);
4177

    
4178
                                                            if ( !(code >= 32 && code <= 126))
4179
                                                                   {
4180
                                                                        if (i == 0)
4181
                                                {
4182
                                                    focusField = field;
4183
                                                }
4184

    
4185
                                                fields[i++] = oAlphaNumericSymbol[x][1];
4186
                                                msg = oAlphaNumericSymbol[x][1];
4187
                                                overAllValid = isValid = false;
4188
                                                                }
4189

    
4190
                                                                errorMessageHandler (isValid, field.name, msg);
4191
                                                        }
4192
                                                }
4193
                            }
4194
                        }
4195

    
4196
                        if (fields.length > 0)
4197
                        {
4198
                            focusField.focus();
4199
                            //alert(fields.join('\n'));
4200
                        }
4201

    
4202
                        return overAllValid;
4203
                        }
4204
                ]]></javascript>
4205

    
4206
                </validator>
4207
                
4208
                
4209
                <!-- Check if value has XSS special chracters -->
4210
                <validator name="XSSFilter"
4211
                        classname="com.ib.ibss.validator.CommonRules"
4212
                    method="validateXSSFilter"
4213
                    methodParams="java.lang.Object,
4214
                                  org.apache.commons.validator.ValidatorAction,
4215
                                  org.apache.commons.validator.Field,
4216
                                  org.apache.struts.action.ActionErrors,
4217
                                  javax.servlet.http.HttpServletRequest"
4218
                   depends=""
4219
                   msg="errors.XSSFilter">
4220

    
4221
                <javascript><![CDATA[
4222
                    function validateXSSFilter (form)
4223
                    {
4224
                                var overAllValid = true;
4225
                var isValid = true;
4226
                        var focusField = null;
4227
                        var i = 0;
4228
                        var fields = new Array();
4229
                        oSpecialCharacters = new specialCharacters();
4230

    
4231
                        for (x in oSpecialCharacters)
4232
                        {
4233
                            isValid = true;
4234
                            var field = form[oSpecialCharacters[x][0]];
4235
                                        var msg = '';
4236

    
4237
                            if (field.type == 'text' ||
4238
                                field.type == 'textarea')
4239
                                        {
4240
                                var value = field.value;
4241
                                                var len = value.length;
4242

    
4243
                                                if (len > 0)
4244
                                                {
4245
                                                        for (j = 0; j < len; j++)
4246
                                                        {
4247
                                                                code = value.charCodeAt(j);
4248

    
4249
                                                                if ( (code == 34 ||code == 37 || code == 38 || code == 39 || code == 43
4250
                                                                                code == 47  || code == 59 || code == 60 || code == 62 ) )) 
4251
                                                                {
4252
                                                                        if (i == 0)
4253
                                                {
4254
                                                    focusField = field;
4255
                                                }
4256

    
4257
                                                fields[i++] = oSpecialCharacters[x][1];
4258
                                                msg = oSpecialCharacters[x][1];
4259
                                                overAllValid = isValid = false;
4260
                                                                }
4261

    
4262
                                                                errorMessageHandler (isValid, field.name, msg);
4263
                                                        }
4264
                                                }
4265
                            }
4266
                        }
4267

    
4268
                        if (fields.length > 0)
4269
                        {
4270
                            focusField.focus();
4271
                            //alert(fields.join('\n'));
4272
                        }
4273

    
4274
                        return overAllValid;
4275
                        }
4276
                ]]></javascript>
4277

    
4278
                </validator>
4279
                
4280
                <!-- Check if value has all special chracters -->
4281
                <validator name="specialCharacters"
4282
                        classname="com.ib.ibss.validator.CommonRules"
4283
                    method="validateSpecialCharacters"
4284
                    methodParams="java.lang.Object,
4285
                                  org.apache.commons.validator.ValidatorAction,
4286
                                  org.apache.commons.validator.Field,
4287
                                  org.apache.struts.action.ActionErrors,
4288
                                  javax.servlet.http.HttpServletRequest"
4289
                   depends=""
4290
                   msg="errors.specialCharacters">
4291

    
4292
                <javascript><![CDATA[
4293
                    function validateSpecialCharacters (form)
4294
                    {
4295
                                var overAllValid = true;
4296
                var isValid = true;
4297
                        var focusField = null;
4298
                        var i = 0;
4299
                        var fields = new Array();
4300
                        oSpecialCharacters = new specialCharacters();
4301

    
4302
                        for (x in oSpecialCharacters)
4303
                        {
4304
                            isValid = true;
4305
                            var field = form[oSpecialCharacters[x][0]];
4306
                                        var msg = '';
4307

    
4308
                            if (field.type == 'text' ||
4309
                                field.type == 'textarea')
4310
                                        {
4311
                                var value = field.value;
4312
                                                var len = value.length;
4313

    
4314
                                                if (len > 0)
4315
                                                {
4316
                                                        for (j = 0; j < len; j++)
4317
                                                        {
4318
                                                                code = value.charCodeAt(j);
4319

    
4320
                                                                if ( !( code == 32 ||
4321
                                                                                code == 64 ||
4322
                                                                                code == 145 ||
4323
                                                                                (code >= 38 && code <= 39) || 
4324
                                                                                (code >= 45 && code <= 59) || 
4325
                                                                                (code >= 65 && code <= 90) ||
4326
                                                                                (code >= 97 && code <= 122) )) 
4327
                                                                {
4328
                                                                        if (i == 0)
4329
                                                {
4330
                                                    focusField = field;
4331
                                                }
4332

    
4333
                                                fields[i++] = oSpecialCharacters[x][1];
4334
                                                msg = oSpecialCharacters[x][1];
4335
                                                overAllValid = isValid = false;
4336
                                                                }
4337

    
4338
                                                                errorMessageHandler (isValid, field.name, msg);
4339
                                                        }
4340
                                                }
4341
                            }
4342
                        }
4343

    
4344
                        if (fields.length > 0)
4345
                        {
4346
                            focusField.focus();
4347
                            //alert(fields.join('\n'));
4348
                        }
4349

    
4350
                        return overAllValid;
4351
                        }
4352
                ]]></javascript>
4353

    
4354
                </validator>
4355

    
4356
                <!-- Check if value is a valid character, no special character except <space> and underscore bar -->
4357
                <validator name="specialCharacters2"
4358
                        classname="com.ib.ibss.validator.CommonRules"
4359
                    method="validateSpecialCharacters2"
4360
                    methodParams="java.lang.Object,
4361
                                  org.apache.commons.validator.ValidatorAction,
4362
                                  org.apache.commons.validator.Field,
4363
                                  org.apache.struts.action.ActionErrors,
4364
                                  javax.servlet.http.HttpServletRequest"
4365
                   depends=""
4366
                   msg="errors.specialCharacters2">
4367

    
4368
                <javascript><![CDATA[
4369
                    function validateSpecialCharacters2 (form)
4370
                    {
4371
                                var overAllValid = true;
4372
                var isValid = true;
4373
                        var focusField = null;
4374
                        var i = 0;
4375
                        var fields = new Array();
4376
                        oSpecialCharacters = new specialCharacters2();
4377

    
4378
                        for (x in oSpecialCharacters)
4379
                        {
4380
                            isValid = true;
4381
                            var field = form[oSpecialCharacters[x][0]];
4382
                                        var msg = '';
4383

    
4384
                            if (field.type == 'text' ||
4385
                                field.type == 'textarea')
4386
                                        {
4387
                                var value = field.value;
4388
                                                var len = value.length;
4389
                                                var allSpaces = true;
4390

    
4391
                                                if (len > 0)
4392
                                                {
4393
                                                        for (j = 0; j < len; j++)
4394
                                                        {
4395
                                                                code = value.charCodeAt(j);
4396

    
4397
                                                                if ( !( code == 32 ||
4398
                                                                                code == 95 ||
4399
                                                                                (code >= 48 && code <= 57) ||
4400
                                                                                (code >= 65 && code <= 90) ||
4401
                                                                                (code >= 97 && code <= 122) ))
4402
                                                                {
4403
                                                                        if (i == 0)
4404
                                                {
4405
                                                    focusField = field;
4406
                                                }
4407

    
4408
                                                fields[i++] = oSpecialCharacters[x][1];
4409
                                                msg = oSpecialCharacters[x][1];
4410
                                                overAllValid = isValid = false;
4411
                                                                }
4412

    
4413
                                                                errorMessageHandler (isValid, field.name, msg);
4414
                                                        }
4415
                                                }
4416
                            }
4417
                        }
4418

    
4419
                        if (fields.length > 0)
4420
                        {
4421
                            focusField.focus();
4422
                            //alert(fields.join('\n'));
4423
                        }
4424

    
4425
                        return overAllValid;
4426
                        }
4427
                ]]></javascript>
4428

    
4429
                </validator>
4430

    
4431

    
4432
                <!-- Check if value is a valid character, no special character except underscore bar -->
4433
                <validator name="specialCharacters3"
4434
                        classname="com.ib.ibss.validator.CommonRules"
4435
                    method="validateSpecialCharacters3"
4436
                    methodParams="java.lang.Object,
4437
                                  org.apache.commons.validator.ValidatorAction,
4438
                                  org.apache.commons.validator.Field,
4439
                                  org.apache.struts.action.ActionErrors,
4440
                                  javax.servlet.http.HttpServletRequest"
4441
                   depends=""
4442
                   msg="errors.specialCharacters3">
4443

    
4444
                <javascript><![CDATA[
4445
                    function validateSpecialCharacters3 (form)
4446
                    {
4447
                                var overAllValid = true;
4448
                var isValid = true;
4449
                        var focusField = null;
4450
                        var i = 0;
4451
                        var fields = new Array();
4452
                        oSpecialCharacters = new specialCharacters3();
4453

    
4454
                        for (x in oSpecialCharacters)
4455
                        {
4456
                            isValid = true;
4457
                            var field = form[oSpecialCharacters[x][0]];
4458
                                        var msg = '';
4459

    
4460
                            if (field.type == 'text' ||
4461
                                field.type == 'textarea')
4462
                                        {
4463
                                var value = field.value;
4464
                                                var len = value.length;
4465
                                                var allSpaces = true;
4466

    
4467
                                                if (len > 0)
4468
                                                {
4469
                                                        for (j = 0; j < len; j++)
4470
                                                        {
4471
                                                                code = value.charCodeAt(j);
4472

    
4473
                                                                if ( !( code == 95 ||
4474
                                                                                (code >= 48 && code <= 57) ||
4475
                                                                                (code >= 65 && code <= 90) ||
4476
                                                                                (code >= 97 && code <= 122) ))
4477
                                                                {
4478
                                                                        if (i == 0)
4479
                                                {
4480
                                                    focusField = field;
4481
                                                }
4482

    
4483
                                                fields[i++] = oSpecialCharacters[x][1];
4484
                                                msg = oSpecialCharacters[x][1];
4485
                                                overAllValid = isValid = false;
4486
                                                                }
4487

    
4488
                                                                errorMessageHandler (isValid, field.name, msg);
4489
                                                        }
4490
                                                }
4491
                            }
4492
                        }
4493

    
4494
                        if (fields.length > 0)
4495
                        {
4496
                            focusField.focus();
4497
                            //alert(fields.join('\n'));
4498
                        }
4499

    
4500
                        return overAllValid;
4501
                        }
4502
                ]]></javascript>
4503

    
4504
                </validator>
4505

    
4506

    
4507
                <!-- Check if value is in special code format -->
4508
                <validator name="specialCode"
4509
                        classname="com.ib.ibss.validator.CommonRules"
4510
                    method="validateSpecialCode"
4511
                    methodParams="java.lang.Object,
4512
                                  org.apache.commons.validator.ValidatorAction,
4513
                                  org.apache.commons.validator.Field,
4514
                                  org.apache.struts.action.ActionErrors,
4515
                                  javax.servlet.http.HttpServletRequest"
4516
                   depends=""
4517
                   msg="errors.specialCode">
4518

    
4519
                <javascript><![CDATA[
4520
                    function validateSpecialCode (form)
4521
                    {
4522
                                var overAllValid = true;
4523
                var isValid = true;
4524
                        var focusField = null;
4525
                        var i = 0;
4526
                        var fields = new Array();
4527
                        oSpecialCode = new specialCode();
4528

    
4529
                        for (x in oSpecialCode)
4530
                        {
4531
                            isValid = true;
4532
                            var field = form[oSpecialCode[x][0]];
4533
                                        var msg = '';
4534

    
4535
                            if (field.type == 'text' ||
4536
                                field.type == 'textarea')
4537
                                        {
4538
                                var value = field.value;
4539
                                                var len = value.length;
4540

    
4541
                                                if (len > 0)
4542
                                                {
4543
                                                        for (j = 0; j < len; j++)
4544
                                                        {
4545
                                                                code = value.charCodeAt(j);
4546
                                                                   if ( !( code == 32 ||
4547
                                                                                   code == 45 ||
4548
                                                                                   code == 47 ||
4549
                                                                                   code == 64 ||
4550
                                                                                   code == 145 ||
4551
                                                                                   (code >= 38 && code <= 39) ||
4552
                                                                                   (code >= 65 && code <= 90) ||
4553
                                                                                   (code >= 97 && code <= 122) ))
4554
                                                                   {
4555
                                                                        if (i == 0)
4556
                                                {
4557
                                                    focusField = field;
4558
                                                }
4559

    
4560
                                                fields[i++] = oSpecialCode[x][1];
4561
                                                msg = oSpecialCode[x][1];
4562
                                                overAllValid = isValid = false;
4563
                                                                }
4564

    
4565
                                                                errorMessageHandler (isValid, field.name, msg);
4566
                                                        }
4567
                                                }
4568
                            }
4569
                        }
4570

    
4571
                        if (fields.length > 0)
4572
                        {
4573
                            focusField.focus();
4574
                            //alert(fields.join('\n'));
4575
                        }
4576

    
4577
                        return overAllValid;
4578
                        }
4579
                ]]></javascript>
4580

    
4581
                </validator>
4582

    
4583

    
4584
                <!-- Check if value is a 'sound' password -->
4585
                <validator name="password"
4586
                        classname="com.ib.ibss.validator.CommonRules"
4587
                    method="validatePassword"
4588
                    methodParams="java.lang.Object,
4589
                                  org.apache.commons.validator.ValidatorAction,
4590
                                  org.apache.commons.validator.Field,
4591
                                  org.apache.struts.action.ActionErrors,
4592
                                  javax.servlet.http.HttpServletRequest"
4593
                   depends=""
4594
                   msg="errors.password">
4595

    
4596
                <javascript><![CDATA[
4597
                    function validatePassword (form)
4598
                    {
4599
                                var overAllValid = true;
4600
                var isValid = true;
4601
                        var focusField = null;
4602
                        var i = 0;
4603
                        var fields = new Array();
4604
                        oPassword = new password();
4605

    
4606
                        for (x in oPassword)
4607
                        {
4608
                            isValid = true;
4609
                            var field = form[oPassword[x][0]];
4610
                                        var msg = '';
4611

    
4612
                            if (field.type == 'text' ||
4613
                                field.type == 'textarea' ||
4614
                                field.type == 'password')
4615
                                        {
4616
                                var value = field.value;
4617

    
4618
                                                len = value.length;
4619

    
4620
                                                var foundNumeric = false;
4621
                                                var foundAlphabet = false;
4622
                                                var badInputchar = false;
4623

    
4624
                                                if (len > 0)
4625
                                                {
4626
                                                        for (j = 0; j < len; j++)
4627
                                                        {
4628
                                                                code = value.charCodeAt(j);
4629

    
4630
                                                            if ((code >= 65 && code <= 90) ||
4631
                                                                    (code >= 97 && code <= 122) )
4632
                                                                   {
4633
                                                                        foundAlphabet = true;
4634
                                                                   }
4635
                                                                   if ((code >= 48 && code <= 57))
4636
                                                                   {
4637
                                                                           foundNumeric = true;
4638
                                                                   }
4639
                                                                   // Filter char [\"<>'%;&+]
4640
                                                                   if (code >= 91 && code <= 93 || 
4641
                                                                           code == 34 ||
4642
                                                                           code == 60 ||
4643
                                                                           code == 62 ||
4644
                                                                           code == 39 ||
4645
                                                                           code == 37 ||
4646
                                                                           code == 59 ||
4647
                                                                           code == 38 ||
4648
                                                                           code == 43
4649
                                                                           )
4650
                                                                   {
4651
                                                                           badInputchar = true;
4652
                                                                   }
4653
                                                        }
4654

    
4655
                                                        if ( !foundAlphabet || !foundNumeric || badInputchar)
4656
                                                        {
4657
                                                                if (i == 0)
4658
                                        {
4659
                                            focusField = field;
4660
                                        }
4661

    
4662
                                        fields[i++] = oPassword[x][1];
4663
                                        msg = oPassword[x][1];
4664
                                        overAllValid = isValid = false;
4665
                                                        }
4666

    
4667
                                                        errorMessageHandler (isValid, field.name, msg);
4668
                                                }
4669
                            }
4670
                        }
4671

    
4672
                        if (fields.length > 0)
4673
                        {
4674
                            focusField.focus();
4675
                            //alert(fields.join('\n'));
4676
                        }
4677

    
4678
                        return overAllValid;
4679
                        }
4680
                ]]></javascript>
4681

    
4682
                </validator>
4683

    
4684

    
4685
                <!-- Check if value is a valid home/office address -->
4686
                <validator name="address"
4687
                        classname="com.ib.ibss.validator.CommonRules"
4688
                    method="validateAddress"
4689
                    methodParams="java.lang.Object,
4690
                                  org.apache.commons.validator.ValidatorAction,
4691
                                  org.apache.commons.validator.Field,
4692
                                  org.apache.struts.action.ActionErrors,
4693
                                  javax.servlet.http.HttpServletRequest"
4694
                   depends=""
4695
                   msg="errors.address">
4696

    
4697
                <javascript><![CDATA[
4698
                    function validateAddress (form)
4699
                    {
4700
                                var overAllValid = true;
4701
                var isValid = true;
4702
                        var focusField = null;
4703
                        var i = 0;
4704
                        var fields = new Array();
4705
                        oAddress = new address();
4706

    
4707
                        for (x in oAddress)
4708
                        {
4709
                            isValid = true;
4710
                            var field = form[oAddress[x][0]];
4711
                            var msg = '';
4712

    
4713
                            if (field.type == 'text' ||
4714
                                field.type == 'textarea')
4715
                                        {
4716
                                var value = field.value;
4717
                                                var len = value.length;
4718

    
4719
                                                if (len > 0 )
4720
                                                {
4721
                                                        for (j = 0; j < len; j++)
4722
                                                        {
4723
                                                                code = value.charCodeAt(j);
4724

    
4725
                                                            if ( !( code == 32 ||
4726
                                                                            code == 35 ||
4727
                                                                            code == 39 ||
4728
                                                                                 (code >= 44 && code <= 47) ||
4729
                                                                               (code >= 48 && code <= 57) ||
4730
                                                                               (code >= 65 && code <= 90) ||
4731
                                                                               (code >= 97 && code <= 122) ))
4732
                                                                   {
4733
                                                                        if (i == 0)
4734
                                                {
4735
                                                    focusField = field;
4736
                                                }
4737

    
4738
                                                fields[i++] = oAddress[x][1];
4739
                                                msg = oAddress[x][1];
4740
                                                overAllValid = isValid = false;
4741
                                                                }
4742

    
4743
                                                                errorMessageHandler (isValid, field.name, msg);
4744
                                                        }
4745
                                                }
4746
                            }
4747
                        }
4748

    
4749
                        if (fields.length > 0)
4750
                        {
4751
                            focusField.focus();
4752
                            //alert(fields.join('\n'));
4753
                        }
4754

    
4755
                        return overAllValid;
4756
                        }
4757
                ]]></javascript>
4758

    
4759
                </validator>
4760

    
4761

    
4762
                <!-- Check if value is a valid character, no special character except ,'()+-./:? -->
4763
                <validator name="swiftChar"
4764
                        classname="com.ib.ibss.validator.CommonRules"
4765
                    method="validateSwiftChar"
4766
                    methodParams="java.lang.Object,
4767
                                  org.apache.commons.validator.ValidatorAction,
4768
                                  org.apache.commons.validator.Field,
4769
                                  org.apache.struts.action.ActionErrors,
4770
                                  javax.servlet.http.HttpServletRequest"
4771
                   depends=""
4772
                   msg="errors.swiftChar">
4773

    
4774
                <javascript><![CDATA[
4775
                    function validateSwiftChar (form)
4776
                    {
4777
                                var overAllValid = true;
4778
                var isValid = true;
4779
                        var focusField = null;
4780
                        var i = 0;
4781
                        var fields = new Array();
4782
                        oSwiftChar = new swiftChar();
4783

    
4784
                        for (x in oSwiftChar)
4785
                        {
4786
                            isValid = true;
4787
                            var field = form[oSwiftChar[x][0]];
4788
                            var msg = '';
4789

    
4790
                            if (field.type == 'text' ||
4791
                                field.type == 'textarea')
4792
                                        {
4793
                                var value = field.value;
4794
                                                var len = value.length;
4795

    
4796
                                                if (len > 0 )
4797
                                                {
4798
                                                        for (j = 0; j < len; j++)
4799
                                                        {
4800
                                                                code = value.charCodeAt(j);
4801

    
4802
                                                            if ( !( code == 32 ||
4803
                                                                            (code >= 39 && code <= 41) ||
4804
                                                                            (code >= 43 && code <= 47) ||
4805
                                                                                 (code >= 48 && code <= 57) ||
4806
                                                                               code == 58 ||
4807
                                                                               code == 63 ||
4808
                                                                               (code >= 65 && code <= 90) ||
4809
                                                                               (code >= 97 && code <= 122) ))
4810
                                                                   {
4811
                                                                        if (i == 0)
4812
                                                {
4813
                                                    focusField = field;
4814
                                                }
4815

    
4816
                                                fields[i++] = oSwiftChar[x][1];
4817
                                                msg = oSwiftChar[x][1];
4818
                                                overAllValid = isValid = false;
4819
                                                                }
4820

    
4821
                                                                errorMessageHandler (isValid, field.name, msg);
4822
                                                        }
4823
                                                }
4824
                            }
4825
                        }
4826

    
4827
                        if (fields.length > 0)
4828
                        {
4829
                            focusField.focus();
4830
                            //alert(fields.join('\n'));
4831
                        }
4832

    
4833
                        return overAllValid;
4834
                        }
4835
                ]]></javascript>
4836

    
4837
                </validator>
4838

    
4839

    
4840
                <!-- Check if two values are not the same -->
4841
                <!-- Changed variable 'secondProperty' to 'notMatchField'  -->
4842
              <validator name="notMatch"
4843
                        classname="com.ib.ibss.validator.CommonRules"
4844
                    method="validateNotMatch"
4845
                    methodParams="java.lang.Object,
4846
                                  org.apache.commons.validator.ValidatorAction,
4847
                                  org.apache.commons.validator.Field,
4848
                                  org.apache.struts.action.ActionErrors,
4849
                                  javax.servlet.http.HttpServletRequest"
4850
                   depends="required"
4851
                   msg="errors.notMatch">
4852

    
4853
                        <javascript><![CDATA[
4854
                        function validateNotMatch (form)
4855
                        {
4856
                                        var overAllValid = true;
4857
                var isValid = true;
4858
                            var focusField = null;
4859
                            var i = 0;
4860
                            var fields = new Array();
4861
                            oNotMatch = new notMatch();
4862

    
4863
                            for (x in oNotMatch)
4864
                            {
4865
                                isValid = true;
4866
                                var field = form[oNotMatch[x][0]];
4867
                                var secondField = form[oNotMatch[x][2]("notMatchField")];
4868
                                var msg = '';
4869

    
4870
                                if (field.type == 'text' ||
4871
                                    field.type == 'textarea' ||
4872
                                    field.type == 'select-one' ||
4873
                                    field.type == 'password')
4874
                                                {
4875
                                    var value = '';
4876
                                    var secondValue = '';
4877

    
4878
                                    if (field.type == 'select-one')
4879
                                    {
4880
                                        var si1 = field.selectedIndex;
4881
                                        value = field.options[si1].value;
4882
                                    }
4883
                                    else
4884
                                    {
4885
                                        value = field.value;
4886
                                    }
4887

    
4888
                                    if (secondField.type == 'text' ||
4889
                                            secondField.type == 'textarea' ||
4890
                                            secondField.type == 'select-one' ||
4891
                                            secondField.type == 'password' ||
4892
                                            secondField.type == 'hidden')
4893
                                                        {
4894
                                            if (secondField.type == 'select-one')
4895
                                            {
4896
                                                var si = secondField.selectedIndex;
4897
                                                secondValue = secondField.options[si].value;
4898
                                            }
4899
                                            else
4900
                                            {
4901
                                                secondValue = secondField.value;
4902
                                            }
4903
                                                        }
4904

    
4905
                                    if (value == secondValue)
4906
                                    {
4907
                                        if (i == 0)
4908
                                        {
4909
                                            focusField = field;
4910
                                        }
4911

    
4912
                                        fields[i++] = oNotMatch[x][1];
4913
                                        msg = oNotMatch[x][1];
4914
                                        overAllValid = isValid = false;
4915
                                    }
4916

    
4917
                                                        errorMessageHandler (isValid, field.name, msg);
4918
                                }
4919
                            }
4920

    
4921
                            if (fields.length > 0)
4922
                            {
4923
                                focusField.focus();
4924
                                //alert(fields.join('\n'));
4925
                            }
4926

    
4927
                            return overAllValid;
4928
                                }
4929
                        ]]></javascript>
4930

    
4931
                </validator>
4932

    
4933

    
4934
                <!-- Check if three values are not the same -->
4935
                <!-- Changed variable 'secondProperty' to 'notMatchField'  -->
4936
              <validator name="notMatch2"
4937
                        classname="com.ib.ibss.validator.CommonRules"
4938
                    method="validateNotMatch2"
4939
                    methodParams="java.lang.Object,
4940
                                  org.apache.commons.validator.ValidatorAction,
4941
                                  org.apache.commons.validator.Field,
4942
                                  org.apache.struts.action.ActionErrors,
4943
                                  javax.servlet.http.HttpServletRequest"
4944
                   depends="required"
4945
                   msg="errors.notMatch2">
4946

    
4947
                        <javascript><![CDATA[
4948
                        function validateNotMatch2 (form)
4949
                        {
4950
                                        var overAllValid = true;
4951
                        var isValid = true;
4952
                            var focusField = null;
4953
                            var i = 0;
4954
                            var fields = new Array();
4955
                            oNotMatch2 = new notMatch2();
4956

    
4957
                            for (x in oNotMatch2)
4958
                            {
4959
                                isValid = true;
4960
                                var field = form[oNotMatch2[x][0]];
4961
                                var secondField = form[oNotMatch2[x][2]("notMatchField")];
4962
                                var thirdField = form[oNotMatch2[x][2]("notMatchField3")];
4963
                                var msg = '';
4964

    
4965
                                if (field.type == 'text' ||
4966
                                    field.type == 'textarea' ||
4967
                                    field.type == 'select-one' ||
4968
                                    field.type == 'password')
4969
                                                {
4970
                                    var value = '';
4971
                                    var secondValue = '';
4972
                                    var thirdValue = '';
4973

    
4974
                                    if (field.type == 'select-one')
4975
                                    {
4976
                                        var si1 = field.selectedIndex;
4977
                                        value = field.options[si1].value;
4978
                                    }
4979
                                    else
4980
                                    {
4981
                                        value = field.value;
4982
                                    }
4983

    
4984
                                    if (secondField.type == 'text' ||
4985
                                            secondField.type == 'textarea' ||
4986
                                            secondField.type == 'select-one' ||
4987
                                            secondField.type == 'password' ||
4988
                                            secondField.type == 'hidden')
4989
                                                        {
4990
                                            if (secondField.type == 'select-one')
4991
                                            {
4992
                                                var si = secondField.selectedIndex;
4993
                                                secondValue = secondField.options[si].value;
4994
                                            }
4995
                                            else
4996
                                            {
4997
                                                secondValue = secondField.value;
4998
                                            }
4999
                                                        }
5000

    
5001
                                    if (thirdField.type == 'text' ||
5002
                                            thirdField.type == 'textarea' ||
5003
                                            thirdField.type == 'select-one' ||
5004
                                            thirdField.type == 'password' ||
5005
                                            thirdField.type == 'hidden')
5006
                                                        {
5007
                                            if (thirdField.type == 'select-one')
5008
                                            {
5009
                                                var si3 = thirdField.selectedIndex;
5010
                                                thirdValue = thirdField.options[si3].value;
5011
                                            }
5012
                                            else
5013
                                            {
5014
                                                thirdValue = thirdField.value;
5015
                                            }
5016
                                                        }
5017

    
5018
                                    if (value == secondValue || secondValue == thirdValue || thirdValue == value)
5019
                                    {
5020
                                        if (i == 0)
5021
                                        {
5022
                                            focusField = field;
5023
                                        }
5024

    
5025
                                        fields[i++] = oNotMatch2[x][1];
5026
                                        msg = oNotMatch2[x][1];
5027
                                        overAllValid = isValid = false;
5028
                                    }
5029

    
5030
                                                        errorMessageHandler (isValid, field.name, msg);
5031
                                }
5032
                            }
5033

    
5034
                            if (fields.length > 0)
5035
                            {
5036
                                focusField.focus();
5037
                                //alert(fields.join('\n'));
5038
                            }
5039

    
5040
                            return overAllValid;
5041
                                }
5042
                        ]]></javascript>
5043

    
5044
                </validator>
5045

    
5046
                <!-- Check if value is in proper currency format -->
5047
                <validator name="currency"
5048
                        classname="com.ib.ibss.validator.CommonRules"
5049
                    method="validateCurrency"
5050
                    methodParams="java.lang.Object,
5051
                                  org.apache.commons.validator.ValidatorAction,
5052
                                  org.apache.commons.validator.Field,
5053
                                  org.apache.struts.action.ActionErrors,
5054
                                  javax.servlet.http.HttpServletRequest"
5055
                   depends=""
5056
                   msg="errors.currency">
5057

    
5058
                <javascript><![CDATA[
5059
                function validateCurrency (form)
5060
                {
5061
                                var overAllValid = true;
5062
                var isValid = true;
5063
                    var focusField = null;
5064
                    var i = 0;
5065
                    var fields = new Array();
5066
                                oCurrency = new currency();
5067

    
5068

    
5069
                    for (x in oCurrency)
5070
                    {
5071
                        isValid = true;
5072
                        var field = form[oCurrency[x][0]];
5073
                        var msg = '';
5074

    
5075
                        if (field.type == 'text' ||
5076
                            field.type == 'textarea')
5077
                                        {
5078
                            var value;
5079
                            value = field.value;
5080

    
5081
                                                var indexOfDot = value.indexOf(".", 0);
5082

    
5083
                                                if (indexOfDot != -1)
5084
                                                {
5085
                                                        var currencyRE = /^\d+\.\d{1,2}$/;
5086

    
5087
                                                        if ( !(currencyRE.test(value)))
5088
                                                           {
5089
                                                                if (i == 0)
5090
                                        {
5091
                                            focusField = field;
5092
                                        }
5093

    
5094
                                        fields[i++] = oCurrency[x][1];
5095
                                        msg = oCurrency[x][1];
5096
                                        overAllValid = isValid = false;
5097
                                                        }
5098
                                                }
5099
                                                else
5100
                                                {
5101
                                                        var currencyRE = /^\d{0,99}$/;
5102

    
5103
                                                        if ( !(currencyRE.test(value)))
5104
                                                           {
5105
                                                                if (i == 0)
5106
                                        {
5107
                                            focusField = field;
5108
                                        }
5109

    
5110
                                        fields[i++] = oCurrency[x][1];
5111
                                        msg = oCurrency[x][1];
5112
                                        overAllValid = isValid = false;
5113
                                                        }
5114
                                                }
5115

    
5116
                                                errorMessageHandler (isValid, field.name, msg);
5117
                        }
5118
                    }
5119

    
5120
                    if (fields.length > 0)
5121
                    {
5122
                        focusField.focus();
5123
                        //alert(fields.join('\n'));
5124
                    }
5125

    
5126
                    return overAllValid;
5127
                        }
5128
                ]]></javascript>
5129

    
5130
                </validator>
5131
        <!-- Check if value is in proper percentage format -->
5132
                <validator name="percentage"
5133
                        classname="com.ib.ibss.validator.CommonRules"
5134
                    method="validateCurrency"
5135
                    methodParams="java.lang.Object,
5136
                                  org.apache.commons.validator.ValidatorAction,
5137
                                  org.apache.commons.validator.Field,
5138
                                  org.apache.struts.action.ActionErrors,
5139
                                  javax.servlet.http.HttpServletRequest"
5140
                   depends=""
5141
                   msg="errors.percentage">
5142

    
5143
                <javascript><![CDATA[
5144
                function validateCurrency (form)
5145
                {
5146
                                var overAllValid = true;
5147
                var isValid = true;
5148
                    var focusField = null;
5149
                    var i = 0;
5150
                    var fields = new Array();
5151
                                oCurrency = new currency();
5152

    
5153

    
5154
                    for (x in oCurrency)
5155
                    {
5156
                        isValid = true;
5157
                        var field = form[oCurrency[x][0]];
5158
                        var msg = '';
5159

    
5160
                        if (field.type == 'text' ||
5161
                            field.type == 'textarea')
5162
                                        {
5163
                            var value;
5164
                            value = field.value;
5165

    
5166
                                                var indexOfDot = value.indexOf(".", 0);
5167

    
5168
                                                if (indexOfDot != -1)
5169
                                                {
5170
                                                        var currencyRE = /^\d+\.\d{1,2}$/;
5171

    
5172
                                                        if ( !(currencyRE.test(value)))
5173
                                                           {
5174
                                                                if (i == 0)
5175
                                        {
5176
                                            focusField = field;
5177
                                        }
5178

    
5179
                                        fields[i++] = oCurrency[x][1];
5180
                                        msg = oCurrency[x][1];
5181
                                        overAllValid = isValid = false;
5182
                                                        }
5183
                                                }
5184
                                                else
5185
                                                {
5186
                                                        var currencyRE = /^\d{0,99}$/;
5187

    
5188
                                                        if ( !(currencyRE.test(value)))
5189
                                                           {
5190
                                                                if (i == 0)
5191
                                        {
5192
                                            focusField = field;
5193
                                        }
5194

    
5195
                                        fields[i++] = oCurrency[x][1];
5196
                                        msg = oCurrency[x][1];
5197
                                        overAllValid = isValid = false;
5198
                                                        }
5199
                                                }
5200

    
5201
                                                errorMessageHandler (isValid, field.name, msg);
5202
                        }
5203
                    }
5204

    
5205
                    if (fields.length > 0)
5206
                    {
5207
                        focusField.focus();
5208
                        //alert(fields.join('\n'));
5209
                    }
5210

    
5211
                    return overAllValid;
5212
                        }
5213
                ]]></javascript>
5214

    
5215
                </validator>
5216

    
5217
                <!-- Check if value is in proper credit card format -->
5218
                <!-- Error messages hard coded in English; no support for multi lingual -->
5219
                <validator name="creditCard"
5220
                        classname="com.ib.ibss.validator.CommonRules"
5221
                    method="validateCreditCard"
5222
                    methodParams="java.lang.Object,
5223
                                  org.apache.commons.validator.ValidatorAction,
5224
                                  org.apache.commons.validator.Field,
5225
                                  org.apache.struts.action.ActionErrors,
5226
                                  javax.servlet.http.HttpServletRequest"
5227
                   depends=""
5228
                   msg="errors.creditCard">
5229

    
5230
                <javascript><![CDATA[
5231
                function validateCreditCard (form)
5232
                {
5233
                                var overAllValid = true;
5234
                var isValid = true;
5235
                                var isValidNumber = true;
5236
                                var errorMessages = new Array();
5237
                                var msg = '';
5238
                    var focusField = null;
5239
                    var i = 0;
5240
                    var fields = new Array();
5241
                                oCreditCard= new creditCard();
5242

    
5243
                                errorMessages[0] = "Credit card number and brand do not match.";
5244
                                errorMessages[1] = "American Express credit card number must be in 15 digits.";
5245
                                errorMessages[2] = "Credit card number must be 16 digits.";
5246
                                errorMessages[3] = "Only Maybank American Express is accepted at this moment.";
5247
                                errorMessages[4] = "This credit card cannot be used at Maybank2u.com. Please enter another credit card.";
5248
                                errorMessages[5] = "Sorry, credit card type is currently not supported.";
5249

    
5250
                    for (x in oCreditCard)
5251
                    {
5252
                        isValid = true;
5253
                        var field = form[oCreditCard[x][0]];
5254
                        var creditCardType = form[oCreditCard[x][2]("creditCardType")];
5255
                        var msg = '';
5256

    
5257
                        var value = field.value;
5258

    
5259
                        if (creditCardType.type == 'select-one' ||
5260
                            creditCardType.type == 'radio')
5261
                                        {
5262
                            var creditCardTypeValue;
5263

    
5264
                            if (creditCardType.type == 'select-one')
5265
                            {
5266
                                var si = creditCardType.selectedIndex;
5267
                                creditCardTypeValue = creditCardType.options[si].value;
5268
                            }
5269
                            else
5270
                            {
5271
                                creditCardTypeValue = creditCardType.value;
5272
                            }
5273

    
5274
                            // Visa Card (38)
5275
                            if (creditCardTypeValue == "Visa" || creditCardTypeValue == "38")
5276
                            {
5277
                                if ((value.length == 16) || (value.length == 13))
5278
                                {
5279
                                        if (value.substring (0, 1) == "4")
5280
                                        {
5281
                                                                        isValidNumber = true;
5282
                                        }
5283
                                        else
5284
                                        {
5285
                                                msg = errorMessages[0];
5286
                                                isValidNumber = false;
5287
                                        }
5288
                                }
5289
                                else
5290
                                {
5291
                                                                msg = errorMessages[2];
5292
                                        isValidNumber = false;
5293
                                }
5294
                            }
5295
                            // Master Card (39)
5296
                            else if (creditCardTypeValue == "MasterCard" || creditCardTypeValue == "39")
5297
                            {
5298
                                if (value.length == 16)
5299
                                {
5300
                                        if ( (value.substring (0, 2) >= "51") &&
5301
                                                (value.substring (0, 2) <= "55") &&
5302
                                                (value.substring (0, 6) != "540558"))
5303
                                        {
5304
                                                                        isValidNumber = true;
5305
                                        }
5306
                                        else if (value.substring (0, 6) == "540558")
5307
                                        {
5308
                                                msg = errorMessages[4];
5309
                                                isValidNumber = false;
5310
                                        }
5311
                                        else
5312
                                        {
5313
                                                msg = errorMessages[0];
5314
                                                isValidNumber = false;
5315
                                        }
5316
                                }
5317
                                else
5318
                                {
5319
                                        msg = errorMessages[2];
5320
                                        isValidNumber = false;
5321
                                }
5322
                            }
5323
                            // Amercian Express Card
5324
                            else if (creditCardTypeValue == "AmericanExpress" || creditCardTypeValue == "40")
5325
                            {
5326
                                if (value.length == 15)
5327
                                {
5328
                                        if ( (value.substring (0, 2) == "37") ||
5329
                                                (value.substring (0, 2) == "34"))
5330
                                        {
5331
                                                                        if (value.substring (0, 5) == "37918"){
5332
                                                                                isValidNumber = true;
5333
                                                                        }
5334
                                                                        else
5335
                                                                        {
5336
                                                                                msg = errorMessages[3];
5337
                                                        isValidNumber = false;
5338
                                                                        }
5339
                                        }
5340
                                        else
5341
                                        {
5342
                                                msg = errorMessages[0];
5343
                                                isValidNumber = false;
5344
                                        }
5345
                                }
5346
                                else
5347
                                {
5348
                                        msg = errorMessages[1];
5349
                                        isValidNumber = false;
5350
                                }
5351
                            }
5352
                            // Discover Card
5353
                            else if (creditCardTypeValue == "Discover")
5354
                            {
5355
                                if (value.length == 16)
5356
                                {
5357
                                        if (value.substring (0, 4) == "6011")
5358
                                        {
5359
                                                                        isValidNumber = true;
5360
                                        }
5361
                                        else
5362
                                        {
5363
                                                msg = errorMessages[0];
5364
                                                isValidNumber = false;
5365
                                        }
5366
                                }
5367
                                else
5368
                                {
5369
                                        msg = errorMessages[1];
5370
                                        isValidNumber = false;
5371
                                }
5372
                            }
5373
                            else
5374
                            {
5375
                                msg = errorMessages[5];
5376
                                                         isValidNumber = false;
5377
                            }
5378

    
5379
                        if (!isValidNumber)
5380
                        {
5381
                                if (i == 0)
5382
                                {
5383
                                    focusField = field;
5384
                                }
5385

    
5386
                                fields[i++] = oCreditCard[x][1];
5387

    
5388
                                if (msg == '')
5389
                                {
5390
                                                                msg = oNotMatch[x][1];
5391
                                }
5392

    
5393
                                overAllValid = isValid = false;
5394
                       }
5395

    
5396
                                   errorMessageHandler (isValid, field.name, msg);
5397
                        }
5398
                    }
5399

    
5400
                    if (fields.length > 0)
5401
                    {
5402
                        focusField.focus();
5403
                        //alert(fields.join('\n'));
5404
                    }
5405

    
5406
                    return overAllValid;
5407
                        }
5408
                ]]></javascript>
5409

    
5410
                </validator>
5411

    
5412

    
5413
                <!-- Check if value is in proper credit card format -->
5414
                <validator name="creditCardMod10"
5415
                        classname="com.ib.ibss.validator.CommonRules"
5416
                    method="validateCreditCardMod10"
5417
                    methodParams="java.lang.Object,
5418
                                  org.apache.commons.validator.ValidatorAction,
5419
                                  org.apache.commons.validator.Field,
5420
                                  org.apache.struts.action.ActionErrors,
5421
                                  javax.servlet.http.HttpServletRequest"
5422
                   depends="creditCard"
5423
                   msg="errors.creditCardMod10">
5424

    
5425
                <javascript><![CDATA[
5426
                function validateCreditCardMod10 (form)
5427
                {
5428
                                var overAllValid = true;
5429
                var isValid = true;
5430
                                var checkSum = 0;
5431
                    var focusField = null;
5432
                    var i = 0;
5433
                    var fields = new Array();
5434
                                oCreditCardMod10 = new creditCardMod10();
5435

    
5436
                    for (x in oCreditCardMod10)
5437
                    {
5438
                        isValid = true;
5439
                        var field = form[oCreditCardMod10[x][0]];
5440
                        var msg = '';
5441

    
5442
                        if (field.type == 'text' ||
5443
                            field.type == 'text-area')
5444
                                        {
5445
                            var value = field.value;
5446
                            var len = value.length
5447

    
5448
                        for (j = 1; j <= len; j++)
5449
                        {
5450
                                var currentDigit = value.charAt(len - j);
5451

    
5452
                                                        if (j % 2 == 0)
5453
                                                        {
5454
                                                                var workDigit = currentDigit * 2;
5455

    
5456
                                                                if (workDigit > 9)
5457
                                                                {
5458
                                                        checkSum += (1 - 0);
5459
                                                        checkSum += (workDigit % 10) - 0;
5460
                                                                }
5461
                                                                else
5462
                                                                {
5463
                                                                        checkSum += (workDigit - 0);
5464
                                                                }
5465
                                                        }
5466
                                                        else {
5467
                                                                checkSum += (currentDigit - 0);
5468
                                                        }
5469
                        }
5470

    
5471
                        if (!(checkSum % 10 == 0))
5472
                        {
5473
                                if (i == 0)
5474
                                {
5475
                                    focusField = field;
5476
                                }
5477

    
5478
                                fields[i++] = oCreditCardMod10[x][1];
5479
                                msg = oCreditCardMod10[x][1];
5480
                                overAllValid = isValid = false;
5481
                        }
5482

    
5483
                                                errorMessageHandler (isValid, field.name, msg);
5484
                        }
5485
                    }
5486

    
5487
                        if (fields.length > 0)
5488
                        {
5489
                            focusField.focus();
5490
                            //alert(fields.join('\n'));
5491
                        }
5492

    
5493
                        return overAllValid;
5494
                        }
5495
                ]]></javascript>
5496

    
5497
                </validator>
5498

    
5499

    
5500
                <!-- Check if date value is before end date -->
5501
                <validator name="dateBefore"
5502
                        classname="com.ib.ibss.validator.CommonRules"
5503
                    method="validateDateBefore"
5504
                    methodParams="java.lang.Object,
5505
                                  org.apache.commons.validator.ValidatorAction,
5506
                                  org.apache.commons.validator.Field,
5507
                                  org.apache.struts.action.ActionErrors,
5508
                                  javax.servlet.http.HttpServletRequest"
5509
                   depends="date"
5510
                   msg="errors.dateBefore">
5511

    
5512
                <javascript><![CDATA[
5513
                function validateDateBefore (form)
5514
                {
5515
                                var overAllValid = true;
5516
                var isValid = true;
5517
                    var focusField = null;
5518
                    var i = 0;
5519
                    var fields = new Array();
5520
                                oDateBefore = new dateBefore();
5521

    
5522
                    for (x in oDateBefore)
5523
                    {
5524
                        isValid = true;
5525
                        var field = form[oDateBefore[x][0]];
5526
                        var secondField = form[oDateBefore[x][2]("dateBeforeEndDate")];
5527
                        var msg = '';
5528

    
5529
                        if (field.type == 'text' ||
5530
                            field.type == 'text-area' ||
5531
                            field.type == 'select-one')
5532
                                        {
5533
                            var value = '';
5534
                            var secondValue = '';
5535

    
5536
                            if (field.type == 'select-one') {
5537
                                                        var si = field.selectedIndex;
5538
                                                        value = field.options[si].value;
5539
                            }
5540
                            else
5541
                            {
5542
                                                        value = field.value;
5543
                            }
5544

    
5545
                            if (secondField.type == 'text' ||
5546
                                    secondField.type == 'text-area' ||
5547
                                    secondField.type == 'select-one')
5548
                                                {
5549
                                    if (secondField.type == 'select-one') {
5550
                                                                var si = secondField.selectedIndex;
5551
                                                                secondValue = secondField.options[si].value;
5552
                                    }
5553
                                    else
5554
                                    {
5555
                                                                secondValue = secondField.value;
5556
                                    }
5557
                                                }
5558

    
5559
                                                if (!(Date.parse(value) < Date.parse(secondValue)))
5560
                                                {
5561
                                                        if (i == 0)
5562
                                                        {
5563
                                                                focusField = field;
5564
                                                        }
5565

    
5566
                                                        fields[i++] = oDateBefore[x][1];
5567
                                                        msg = oDateBefore[x][1];
5568
                                                        overAllValid = isValid = false;
5569
                                                }
5570

    
5571
                                                errorMessageHandler (isValid, field.name, msg);
5572
                        }
5573
                    }
5574

    
5575
                        if (fields.length > 0)
5576
                        {
5577
                            focusField.focus();
5578
                            //alert(fields.join('\n'));
5579
                        }
5580

    
5581
                        return overAllValid;
5582
                        }
5583
                ]]></javascript>
5584

    
5585
                </validator>
5586

    
5587

    
5588
                <!-- Check if account value is valid -->
5589
                <validator name="account"
5590
                        classname="com.ib.ibss.validator.CommonRules"
5591
                    method="validateAccount"
5592
                    methodParams="java.lang.Object,
5593
                                  org.apache.commons.validator.ValidatorAction,
5594
                                  org.apache.commons.validator.Field,
5595
                                  org.apache.struts.action.ActionErrors,
5596
                                  javax.servlet.http.HttpServletRequest"
5597
                   depends=""
5598
                   msg="errors.account">
5599

    
5600
                <javascript><![CDATA[
5601
                function validateAccount (form)
5602
                {
5603
                                var overAllValid = true;
5604
                var isValid = true;
5605
                                var isValidAccount = true;
5606
                    var focusField = null;
5607
                    var i = 0;
5608
                    var fields = new Array();
5609
                                oAccount = new account();
5610

    
5611
                    for (x in oAccount)
5612
                    {
5613
                        isValid = true;
5614
                        var field = form[oAccount[x][0]];
5615
                        msg = '';
5616

    
5617
                        if (field.type == 'text' ||
5618
                            field.type == 'text-area')
5619
                                        {
5620
                            var value = field.value;
5621

    
5622
                                                if (value.length > 0)
5623
                                                {
5624
                                    var j = 7;
5625
                                    var N = 0;
5626
                                    var total = 0;
5627

    
5628
                                                        for(k = 0; k < 11; k++)
5629
                                                        {
5630
                                                                N = parseInt(value.slice(k, k + 1)) * j;
5631
                                                                j--;
5632

    
5633
                                                                if (j == 1)
5634
                                                                {
5635
                                                                        j = 7;
5636
                                                                }
5637

    
5638
                                                                if (N >= 10)
5639
                                                                {
5640
                                                                        var stringN = N.toString();
5641
                                                                      N = parseInt(stringN.slice(0,1)) + parseInt(stringN.slice (1,2));
5642

    
5643
                                                                      if(N >= 10)
5644
                                                                  {
5645
                                                                          N = N - 10;
5646
                                                                  }
5647
                                                                }
5648

    
5649
                                                                total += N;
5650
                                                        }
5651

    
5652

    
5653
                                                        N = total % 10;
5654
                                                        if(N != 0)
5655
                                                        {
5656
                                                                N= 10 - N;
5657
                                                        }
5658

    
5659
                                                        if(!(N == parseInt(value.slice(11))))
5660
                                                        {
5661
                                                                if (i == 0)
5662
                                                                {
5663
                                                                        focusField = field;
5664
                                                                }
5665

    
5666
                                                                fields[i++] = oAccount[x][1];
5667
                                                                msg = oAccount[x][1];
5668
                                                                overAllValid = isValid = false;
5669
                                                        }
5670

    
5671
                                                        errorMessageHandler (isValid, field.name, msg);
5672
                                                }
5673
                        }
5674
                    }
5675

    
5676
                        if (fields.length > 0)
5677
                        {
5678
                            focusField.focus();
5679
                            //alert(fields.join('\n'));
5680
                        }
5681

    
5682
                        return overAllValid;
5683
                        }
5684
                ]]></javascript>
5685

    
5686
                </validator>
5687

    
5688

    
5689
                <!-- Check for a specific length. Can use minLength rule and set text field size to be of maximum value -->
5690
                <!-- Set minLength minimum value to text field size -->
5691
                <validator name="matchLength"
5692
                        classname="com.ib.ibss.validator.CommonRules"
5693
                    method="validateMatchLength"
5694
                    methodParams="java.lang.Object,
5695
                                  org.apache.commons.validator.ValidatorAction,
5696
                                  org.apache.commons.validator.Field,
5697
                                  org.apache.struts.action.ActionErrors,
5698
                                  javax.servlet.http.HttpServletRequest"
5699
                   depends=""
5700
                   msg="errors.matchLength">
5701

    
5702
                        <javascript><![CDATA[
5703
           function validateMatchLength(form)
5704
            {
5705
                var overAllValid = true;
5706
                var isValid = true;
5707
                var focusField = null;
5708
                var i = 0;
5709
                var fields = new Array();
5710
                oMatchLength = new matchLength();
5711

    
5712
                for (x in oMatchLength)
5713
                {
5714
                    isValid = true;
5715
                    var field = form[oMatchLength[x][0]];
5716
                    var iLength = parseInt(oMatchLength[x][2]("matchLengthSize"));
5717
                    var bRequiredCondition = false;
5718
                                        var msg = '';
5719

    
5720
                    var bTemp=  oMatchLength[x][2]("matchLengthRequiredCondition");
5721

    
5722
                    if(  "true" == bTemp  )
5723
                    {
5724
                        bRequiredCondition=true;
5725
                    }
5726

    
5727
                    if (field.type == 'text' ||
5728
                        field.type == 'textarea' ||
5729
                        field.type == 'password')
5730
                    {
5731
                            var value=field.value;
5732

    
5733
                            if(bRequiredCondition)
5734
                            {
5735
                              if (trim(value).length != 0)
5736
                              {
5737
                                if (value.length != iLength)
5738
                                {
5739
                                    if (i == 0)
5740
                                    {
5741
                                        focusField = field;
5742
                                    }
5743

    
5744
                                    fields[i++] = oMatchLength[x][1];
5745
                                    msg = oMatchLength[x][1];
5746
                                    overAllValid = isValid = false;
5747
                                }
5748

    
5749
                              }
5750
                            }
5751
                            else
5752
                            {
5753
                                if (value.length != iLength)
5754
                                {
5755
                                    if (i == 0)
5756
                                    {
5757
                                        focusField = field;
5758
                                    }
5759

    
5760
                                    fields[i++] = oMatchLength[x][1];
5761
                                    msg = oMatchLength[x][1];
5762
                                    overAllValid = isValid = false;
5763
                                }
5764
                            }
5765

    
5766
                                                errorMessageHandler (isValid, field.name, msg);
5767
                    }
5768
                }
5769

    
5770
                if (fields.length > 0)
5771
                {
5772
                   focusField.focus();
5773
                   //alert(fields.join('\n'));
5774
                }
5775

    
5776
                return overAllValid;
5777
            }]]></javascript>
5778
      </validator>
5779

    
5780
                <!-- Check if two values are the same -->
5781
              <validator name="match"
5782
                        classname="com.ib.ibss.validator.CommonRules"
5783
                    method="validateMatch"
5784
                    methodParams="java.lang.Object,
5785
                                  org.apache.commons.validator.ValidatorAction,
5786
                                  org.apache.commons.validator.Field,
5787
                                  org.apache.struts.action.ActionErrors,
5788
                                  javax.servlet.http.HttpServletRequest"
5789
                   depends="required"
5790
                   msg="errors.match">
5791

    
5792
                        <javascript><![CDATA[
5793
                        function validateMatch (form)
5794
                        {
5795
                                        var overAllValid = true;
5796
                        var isValid = true;
5797
                            var focusField = null;
5798
                            var i = 0;
5799
                            var fields = new Array();
5800
                            oMatch = new match();
5801

    
5802
                            for (x in oMatch)
5803
                            {
5804
                                    isValid = true;
5805
                                var field = form[oMatch[x][0]];
5806
                                var secondField = form[oMatch[x][2]("matchField")];
5807
                                var msg = '';
5808

    
5809
                                if (field.type == 'text' ||
5810
                                    field.type == 'textarea' ||
5811
                                    field.type == 'select-one' ||
5812
                                    field.type == 'password')
5813
                                                {
5814
                                    var value = '';
5815
                                    var secondValue = '';
5816

    
5817
                                    if (field.type == 'select-one')
5818
                                    {
5819
                                        var si1 = field.selectedIndex;
5820
                                        value = field.options[si1].value;
5821
                                    }
5822
                                    else
5823
                                    {
5824
                                        value = field.value;
5825
                                    }
5826

    
5827
                                    if (secondField.type == 'text' ||
5828
                                            secondField.type == 'textarea' ||
5829
                                            secondField.type == 'select-one' ||
5830
                                            secondField.type == 'password' ||
5831
                                            secondField.type == 'hidden')
5832
                                                        {
5833
                                            if (secondField.type == 'select-one')
5834
                                            {
5835
                                                var si = secondField.selectedIndex;
5836
                                                secondValue = secondField.options[si].value;
5837
                                            }
5838
                                            else
5839
                                            {
5840
                                                secondValue = secondField.value;
5841
                                            }
5842
                                                        }
5843

    
5844
                                    if (value != secondValue)
5845
                                    {
5846
                                        if (i == 0)
5847
                                        {
5848
                                            focusField = field;
5849
                                        }
5850

    
5851
                                        fields[i++] = oMatch[x][1];
5852
                                        msg = oMatch[x][1];
5853
                                        overAllValid = isValid = false;
5854
                                    }
5855

    
5856
                                    errorMessageHandler (isValid, field.name, msg);
5857
                                }
5858
                            }
5859

    
5860
                            if (fields.length > 0)
5861
                            {
5862
                                focusField.focus();
5863
                                //alert(fields.join('\n'));
5864
                            }
5865

    
5866
                            return overAllValid;
5867
                                }
5868
                        ]]></javascript>
5869

    
5870
                </validator>
5871

    
5872
                <!-- Check if two values are the same -->
5873
              <validator name="matchValue"
5874
                        classname="com.ib.ibss.validator.CommonRules"
5875
                    method="validateMatchValue"
5876
                    methodParams="java.lang.Object,
5877
                                  org.apache.commons.validator.ValidatorAction,
5878
                                  org.apache.commons.validator.Field,
5879
                                  org.apache.struts.action.ActionErrors,
5880
                                  javax.servlet.http.HttpServletRequest"
5881
                   depends="required"
5882
                   msg="errors.matchValue">
5883

    
5884
                        <javascript><![CDATA[
5885
                        function validateMatchValue (form)
5886
                        {
5887
                                        var overAllValid = true;
5888
                        var isValid = true;
5889
                            var focusField = null;
5890
                            var i = 0;
5891
                            var fields = new Array();
5892
                            oMatchValue = new matchValue ();
5893

    
5894
                            for (x in oMatchValue)
5895
                            {
5896
                                    var name = '';
5897
                                    var value = '';
5898
                                    var getValue = false;
5899
                                    isValid = true;
5900
                                    var field = form[oMatchValue[x][0]];
5901
                                var compareValue = oMatchValue[x][2]("matchValueValue");
5902
                                var msg = '';
5903

    
5904
                                if (field.type == 'text' ||
5905
                                    field.type == 'textarea' ||
5906
                                    field.type == 'select-one' ||
5907
                                    field.type == 'password')
5908
                                                {
5909
                                    if (field.type == 'select-one')
5910
                                    {
5911
                                        var si1 = field.selectedIndex;
5912
                                        value = field.options[si1].value;
5913
                                        getValue = true;
5914
                                    }
5915
                                    else
5916
                                    {
5917
                                        value = field.value;
5918
                                        getValue = true;
5919
                                    }
5920
                                }
5921
                                       else if (field.length > 0 && (field[0].type == 'radio' ||
5922
                                field[0].type == 'checkbox'))
5923
                                                {
5924
                                                        name = field[0].name;
5925

    
5926
                                                        for (loop = 0; loop < field.length; loop++)
5927
                                                        {
5928
                                                                if (field[loop].checked) {
5929
                                                                        value = field[loop].value;
5930
                                                                        getValue = true;
5931
                                                                        break;
5932
                                                                }
5933
                                                        }
5934
                                    }
5935
                                    else if (field.type == 'radio' ||
5936
                                            field.type == 'checkbox')
5937
                                    {
5938
                                                        name = field.name;
5939

    
5940
                                                        if (field.checked)
5941
                                                        {
5942
                                                                value = field.value;
5943
                                                                getValue = true;
5944
                                                                break;
5945
                                                        }
5946
                                    }
5947

    
5948
                                    value = "'" + value + "'";
5949
                                    compareValue = "'" + compareValue + "'";
5950

    
5951
                                    if(getValue)
5952
                                    {
5953
                                            if (!eval(value + "==" + compareValue))
5954
                                            {
5955
                                                    if (i == 0)
5956
                                        {
5957
                                            focusField = field;
5958
                                        }
5959

    
5960
                                                    fields[i++] = oMatchValue[x][1];
5961
                                        msg = oMatchValue[x][1];
5962
                                        overAllValid = isValid = false;
5963
                                                        }
5964

    
5965
                                                        errorMessageHandler (isValid, name, msg);
5966
                                    }
5967
                            }
5968

    
5969
                            if (fields.length > 0)
5970
                            {
5971
                                //focusField.focus();
5972
                                //alert(fields.join('\n'));
5973
                            }
5974

    
5975
                            return overAllValid;
5976
                                }
5977
                        ]]></javascript>
5978

    
5979
                </validator>
5980

    
5981
                <!-- Check if value is a valid character, no special character except ,'()+-./:? -->
5982
                <validator name="firstChar"
5983
                        classname="com.ib.ibss.validator.CommonRules"
5984
                    method="validateFirstChar"
5985
                    methodParams="java.lang.Object,
5986
                                  org.apache.commons.validator.ValidatorAction,
5987
                                  org.apache.commons.validator.Field,
5988
                                  org.apache.struts.action.ActionErrors,
5989
                                  javax.servlet.http.HttpServletRequest"
5990
                   depends=""
5991
                   msg="errors.firstChar">
5992

    
5993
                <javascript><![CDATA[
5994
                    function validateFirstChar (form)
5995
                    {
5996
                                var overAllValid = true;
5997
                var isValid = true;
5998
                        var focusField = null;
5999
                        var i = 0;
6000
                        var fields = new Array();
6001
                        oFirstChar = new firstChar();
6002

    
6003
                        for (x in oFirstChar)
6004
                        {
6005
                            isValid = true;
6006
                            var field = form[oFirstChar[x][0]];
6007
                            var msg = '';
6008

    
6009
                            if (field.type == 'text' ||
6010
                                field.type == 'textarea')
6011
                                        {
6012
                                                focusField = field;
6013
                                var value = field.value;
6014
                                                var len = value.length;
6015

    
6016
                                                if (len > 0 )
6017
                                                {
6018
                                                        code = value.charCodeAt(0);
6019

    
6020
                                                    if ( code == 32 ||
6021
                                                                    (code >= 39 && code <= 41) ||
6022
                                                                    (code >= 43 && code <= 47) ||
6023
                                                                       code == 58 ||
6024
                                                                       code == 63)
6025
                                                           {
6026
                                        fields[i++] = oFirstChar[x][1];
6027
                                        msg = oFirstChar[x][1];
6028
                                        overAllValid = isValid = false;
6029
                                                        }
6030

    
6031
                                                        errorMessageHandler (isValid, field.name, msg);
6032
                                                }
6033
                            }
6034
                        }
6035

    
6036
                        if (fields.length > 0)
6037
                        {
6038
                            focusField.focus();
6039
                            //alert(fields.join('\n'));
6040
                        }
6041

    
6042
                        return overAllValid;
6043
                        }
6044
                ]]></javascript>
6045

    
6046
                </validator>
6047

    
6048
                <!-- Check if value is numeric greater than zero -->
6049
                <validator name="numericGtZero"
6050
                        classname="com.ib.ibss.validator.CommonRules"
6051
                    method="validateNumericGtZero"
6052
                    methodParams="java.lang.Object,
6053
                                  org.apache.commons.validator.ValidatorAction,
6054
                                  org.apache.commons.validator.Field,
6055
                                  org.apache.struts.action.ActionErrors,
6056
                                  javax.servlet.http.HttpServletRequest"
6057
                   depends="numeric"
6058
                   msg="errors.numericGtZero">
6059

    
6060
                <javascript><![CDATA[
6061
                    function validateNumericGtZero (form)
6062
                    {
6063
                                var overAllValid = true;
6064
                var isValid = true;
6065
                        var focusField = null;
6066
                        var i = 0;
6067
                        var fields = new Array();
6068
                        oNumericGtZero = new numericGtZero();
6069

    
6070
                        for (x in oNumericGtZero)
6071
                        {
6072
                                isValid = true;
6073
                            var field = form[oNumericGtZero[x][0]];
6074
                            var msg = '';
6075

    
6076
                            if (field.type == 'text' ||
6077
                                field.type == 'textarea' ||
6078
                                field.type == 'password')
6079
                                        {
6080
                                var value = field.value;
6081
                                var len = value.length;
6082

    
6083
                                                focusField = field;
6084
                                                if (value == 0)
6085
                                                {
6086
                                                        fields[i++] = oNumericGtZero[x][1];
6087
                                msg = oNumericGtZero[x][1];
6088
                                overAllValid = isValid = false;
6089
                                                }
6090
                                                errorMessageHandler (isValid, field.name, msg);
6091

    
6092
                            }
6093
                        }
6094

    
6095
                        if (fields.length > 0)
6096
                        {
6097
                            focusField.focus();
6098
                            //alert(fields.join('\n'));
6099
                        }
6100

    
6101
                        return overAllValid;
6102
                        }
6103
                ]]></javascript>
6104

    
6105
                </validator>
6106

    
6107
                <!-- Check if email is valid -->
6108
                <validator name="email2"
6109
                        classname="com.ib.ibss.validator.CommonRules"
6110
                    method="validateEmail2"
6111
                    methodParams="java.lang.Object,
6112
                                  org.apache.commons.validator.ValidatorAction,
6113
                                  org.apache.commons.validator.Field,
6114
                                  org.apache.struts.action.ActionErrors,
6115
                                  javax.servlet.http.HttpServletRequest"
6116
                   depends=""
6117
                   msg="errors.email2">
6118

    
6119
                <javascript><![CDATA[
6120
                    function validateEmail2 (form)
6121
                    {
6122
                            var overAllValid = true;
6123
                var isValid = true;
6124
                        var focusField = null;
6125
                        var i = 0;
6126
                        var fields = new Array();
6127
                        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
6128
                        oEmail2 = new email2();
6129

    
6130
                        for (x in oEmail2)
6131
                        {
6132
                                isValid = true;
6133
                            var field = form[oEmail2[x][0]];
6134
                            var msg = '';
6135

    
6136
                            if (field.type == 'text')
6137
                                        {
6138
                                var value = field.value;
6139
                                if (value.length == 0)
6140
                                {
6141
                                        return true;
6142
                                }
6143
                                                focusField = field;
6144

    
6145
                                           if(reg.test(value) == false)
6146
                                           {
6147
                                                        fields[i++] = oEmail2[x][1];
6148
                                msg = oEmail2[x][1];
6149
                                overAllValid = isValid = false;
6150

    
6151
                                errorMessageHandler (isValid, field.name, msg);
6152
                                           }
6153
                            }
6154
                        }
6155

    
6156
                        if (fields.length > 0)
6157
                        {
6158
                            focusField.focus();
6159
                            //alert(fields.join('\n'));
6160
                        }
6161

    
6162
                        return overAllValid;
6163
                        }
6164
                ]]></javascript>
6165

    
6166
                </validator>
6167

    
6168
                <!-- Check if year is not less than current year and is not greater than 10 years from current year-->
6169
                <validator name="yearRange"
6170
                        classname="com.ib.ibss.validator.CommonRules"
6171
                    method="validateYearRange"
6172
                    methodParams="java.lang.Object,
6173
                                  org.apache.commons.validator.ValidatorAction,
6174
                                  org.apache.commons.validator.Field,
6175
                                  org.apache.struts.action.ActionErrors,
6176
                                  javax.servlet.http.HttpServletRequest"
6177
                   depends=""
6178
                   msg="errors.yearRange">
6179

    
6180
                <javascript><![CDATA[
6181
                    function validateYearRange (form)
6182
                    {
6183
                                var overAllValid = true;
6184
                var isValid = true;
6185
                        var focusField = null;
6186
                        var i = 0;
6187
                        var fields = new Array();
6188
                        oYearRange = new yearRange ();
6189

    
6190
                                var currentDate = new Date ();
6191
                        var currentYear = currentDate.getFullYear ();
6192

    
6193
                        for (x in oYearRange)
6194
                        {
6195
                                isValid = true;
6196
                            var field = form[oYearRange[x][0]];
6197
                            var msg = '';
6198

    
6199
                            if (field.type == 'text' ||
6200
                                field.type == 'textarea' ||
6201
                                field.type == 'password')
6202
                                        {
6203
                                var value = field.value;
6204

    
6205
                                                if (!isNaN(value) && value != '')
6206
                                                {
6207
                                                    if (!(value >= currentYear && value < (currentYear + 10) ))
6208
                                                           {
6209
                                                                isValid = false;
6210
                                                        }
6211
                                                }
6212

    
6213
                                                if (!isValid)
6214
                                                {
6215
                                                        if (i == 0)
6216
                                                        {
6217
                                                                focusField = field;
6218
                                                        }
6219
                                                        fields[i++] = oYearRange[x][1];
6220
                                                        msg = oYearRange[x][1];
6221
                                                        overAllValid = isValid = false;
6222
                                                }
6223

    
6224
                                                errorMessageHandler (isValid, field.name, msg);
6225

    
6226
                            }
6227
                        }
6228

    
6229
                        if (fields.length > 0)
6230
                        {
6231
                            focusField.focus();
6232
                            //alert(fields.join('\n'));
6233
                        }
6234

    
6235
                        return overAllValid;
6236
                        }
6237
           ]]></javascript>
6238

    
6239
                </validator>
6240

    
6241
                <validator name="requiredDynamicLabel"
6242
            classname="com.ib.ibss.validator.CommonRules"
6243
               method="validateRequiredDynamicLabel"
6244
         methodParams="java.lang.Object,
6245
                       org.apache.commons.validator.ValidatorAction,
6246
                       org.apache.commons.validator.Field,
6247
                       org.apache.struts.action.ActionErrors,
6248
                       javax.servlet.http.HttpServletRequest"
6249
                   depends=""
6250
                  msg="errors.required">
6251

    
6252
         <javascript><![CDATA[
6253
            function validateRequiredDynamicLabel (form)
6254
            {
6255
                var overAllValid = true;
6256
                var isValid = true;
6257
                var focusField = null;
6258
                var i = 0;
6259
                var fields = new Array();
6260
                oRequired = new requiredDynamicLabel();
6261
                for (x in oRequired) {
6262
                        isValid = true;
6263
                        var field = form[oRequired[x][0]];
6264
                                        var msg = '';
6265
                                        var hiddenName = '';
6266
                                        var errorMessage = '';
6267

    
6268
                    if (field.type == 'text' ||
6269
                        field.type == 'textarea' ||
6270
                        field.type == 'file' ||
6271
                        field.type == 'select-one' ||
6272
                        field.type == 'radio' ||
6273
                        field.type == 'password') {
6274

    
6275
                        var value = '';
6276
                                                // get field's value
6277
                                                if (field.type == "select-one") {
6278
                                                        var si = field.selectedIndex;
6279
                                                        value = field.options[si].value;
6280
                                                } else {
6281
                                                        value = field.value;
6282
                                                }
6283

    
6284
                        if (trim(value).length == 0) {
6285

    
6286
                                if (i == 0) {
6287
                                    focusField = field;
6288
                                }
6289
                                fields[i++] = oRequired[x][1];
6290
                                msg = oRequired[x][1];
6291
                                overAllValid = isValid = false;
6292

    
6293
                                hiddenName = field.name + 'ErrorMessageRequired';
6294
                                try
6295
                                {
6296
                                        errorMessage = form[hiddenName].value;
6297
                                }
6298
                                catch (err)
6299
                                {
6300
                                        errorMessage = msg;
6301
                                }
6302

    
6303

    
6304
                        }
6305

    
6306
                                                errorMessageHandler (isValid, field.name, errorMessage);
6307
                    }
6308
                }
6309
                if (fields.length > 0) {
6310
                   focusField.focus();
6311
                   //alert(fields.join('\n'));
6312
                }
6313
                return overAllValid;
6314
            }
6315
            ]]>
6316
         </javascript>
6317

    
6318
      </validator>
6319

    
6320
      <validator name="alphaNumericDynamicLabel"
6321
                        classname="com.ib.ibss.validator.CommonRules"
6322
                    method="validateAlphaNumericDynamicLabel"
6323
                    methodParams="java.lang.Object,
6324
                                  org.apache.commons.validator.ValidatorAction,
6325
                                  org.apache.commons.validator.Field,
6326
                                  org.apache.struts.action.ActionErrors,
6327
                                  javax.servlet.http.HttpServletRequest"
6328
                   depends=""
6329
                   msg="errors.alphaNumeric">
6330

    
6331
                <javascript><![CDATA[
6332
                    function validateAlphaNumericDynamicLabel (form)
6333
                    {
6334
                                var overAllValid = true;
6335
                var isValid = true;
6336
                        var focusField = null;
6337
                        var i = 0;
6338
                        var fields = new Array();
6339
                        oAlphaNumeric = new alphaNumericDynamicLabel();
6340

    
6341
                        for (x in oAlphaNumeric)
6342
                        {
6343
                            isValid = true;
6344
                            var field = form[oAlphaNumeric[x][0]];
6345
                            var msg = '';
6346
                            var hiddenName = '';
6347
                                        var errorMessage = '';
6348

    
6349
                            if (field.type == 'text' ||
6350
                                field.type == 'textarea')
6351
                                        {
6352
                                var value = field.value;
6353
                                var len = value.length;
6354

    
6355
                                                if (len > 0)
6356
                                                {
6357
                                                        for (j = 0; j < len; j++)
6358
                                                        {
6359
                                                            code = value.charCodeAt(j);
6360

    
6361
                                                            if ( !( code == 95 ||
6362
                                                                            code == 46 ||
6363
                                                                                 (code >= 48 && code <= 57) ||
6364
                                                                               (code >= 65 && code <= 90) ||
6365
                                                                               (code >= 97 && code <= 122) ))
6366
                                                                   {
6367
                                                                        if (i == 0)
6368
                                                {
6369
                                                    focusField = field;
6370
                                                }
6371

    
6372
                                                fields[i++] = oAlphaNumeric[x][1];
6373
                                                msg = oAlphaNumeric[x][1];
6374
                                                overAllValid = isValid = false;
6375

    
6376
                                                hiddenName = field.name + 'ErrorMessageAlphaNumeric';
6377
                                                                        errorMessage = form[hiddenName].value;
6378
                                                                }
6379

    
6380
                                                                errorMessageHandler (isValid, field.name, errorMessage);
6381
                                                        }
6382
                                                }
6383
                            }
6384
                        }
6385

    
6386
                        if (fields.length > 0)
6387
                        {
6388
                            focusField.focus();
6389
                            //alert(fields.join('\n'));
6390
                        }
6391

    
6392
                        return overAllValid;
6393
                        }
6394
                ]]></javascript>
6395

    
6396
                </validator>
6397

    
6398
                <validator name="numericDynamicLabel"
6399
                        classname="com.ib.ibss.validator.CommonRules"
6400
                    method="validateNumericDynamicLabel"
6401
                    methodParams="java.lang.Object,
6402
                                  org.apache.commons.validator.ValidatorAction,
6403
                                  org.apache.commons.validator.Field,
6404
                                  org.apache.struts.action.ActionErrors,
6405
                                  javax.servlet.http.HttpServletRequest"
6406
                   depends=""
6407
                   msg="errors.numeric">
6408

    
6409
                <javascript><![CDATA[
6410
                    function validateNumericDynamicLabel (form)
6411
                    {
6412
                                var overAllValid = true;
6413
                var isValid = true;
6414
                        var focusField = null;
6415
                        var i = 0;
6416
                        var fields = new Array();
6417
                        oNumeric = new numericDynamicLabel();
6418

    
6419
                        for (x in oNumeric)
6420
                        {
6421
                                isValid = true;
6422
                            var field = form[oNumeric[x][0]];
6423
                            var msg = '';
6424
                            var hiddenName = '';
6425
                                        var errorMessage = '';
6426

    
6427
                            if (field.type == 'text' ||
6428
                                field.type == 'textarea' ||
6429
                                field.type == 'password')
6430
                                        {
6431
                                var value = field.value;
6432
                                var len = value.length;
6433

    
6434
                                                if (len > 0)
6435
                                                {
6436
                                                        for (j = 0; j < len; j++)
6437
                                                        {
6438
                                                            code = value.charCodeAt(j);
6439
                                                            if (!(code >= 48 && code <= 57))
6440
                                                                   {
6441
                                                                        if (i == 0)
6442
                                                {
6443
                                                    focusField = field;
6444
                                                }
6445

    
6446
                                                fields[i++] = oNumeric[x][1];
6447
                                                msg = oNumeric[x][1];
6448
                                                overAllValid = isValid = false;
6449

    
6450
                                                                        hiddenName = field.name + 'ErrorMessageNumeric';
6451
                                                                        errorMessage = form[hiddenName].value;
6452
                                                                }
6453

    
6454
                                                                errorMessageHandler (isValid, field.name, errorMessage);
6455
                                                        }
6456
                                                }
6457
                            }
6458
                        }
6459

    
6460
                        if (fields.length > 0)
6461
                        {
6462
                            focusField.focus();
6463
                            //alert(fields.join('\n'));
6464
                        }
6465

    
6466
                        return overAllValid;
6467
                        }
6468
                ]]></javascript>
6469

    
6470
                </validator>
6471

    
6472

    
6473
                <validator name="noAlphabet"
6474
                        classname="com.ib.ibss.validator.CommonRules"
6475
                    method="validateNoAlphabet"
6476
                    methodParams="java.lang.Object,
6477
                                  org.apache.commons.validator.ValidatorAction,
6478
                                  org.apache.commons.validator.Field,
6479
                                  org.apache.struts.action.ActionErrors,
6480
                                  javax.servlet.http.HttpServletRequest"
6481
                   depends=""
6482
                   msg="errors.must.contain.alphabet">
6483

    
6484
                <javascript><![CDATA[
6485
                    function validateNoAlphabet (form)
6486
                    {
6487
                                var overAllValid = true;
6488
                var isValid = true;
6489
                        var focusField = null;
6490
                        var i = 0;
6491
                        var fields = new Array();
6492
                        oNoAlphabet = new noAlphabet();
6493

    
6494
                        for (x in oNoAlphabet)
6495
                        {
6496
                                isValid = true;
6497
                            var field = form[oNoAlphabet[x][0]];
6498
                                        var msg = '';
6499
                                        var isNoAlphabet = true;
6500

    
6501
                            if (field.type == 'text' ||
6502
                                field.type == 'textarea')
6503
                                        {
6504
                                var value = field.value;
6505
                                                var len = value.length;
6506

    
6507
                                                if (len > 0)
6508
                                                {
6509
                                                        for (j = 0; j < len; j++)
6510
                                                        {
6511
                                                                code = value.charCodeAt(j);
6512

    
6513
                                                                if ((code >= 65 && code <= 90) || (code >= 97 && code <= 122))
6514
                                                                {
6515
                                                                        isNoAlphabet = false;
6516
                                                                }
6517
                                                        }
6518

    
6519
                                                        if (isNoAlphabet)
6520
                                                        {
6521
                                                                if (i == 0)
6522
                                        {
6523
                                                focusField = field;
6524
                                        }
6525

    
6526
                                        fields[i++] = oNoAlphabet[x][1];
6527
                                        msg = oNoAlphabet[x][1];
6528
                                        overAllValid = isValid = false;
6529
                                                        }
6530

    
6531
                                                        errorMessageHandler (isValid, field.name, msg);
6532
                                                }
6533
                            }
6534
                        }
6535

    
6536
                        if (fields.length > 0)
6537
                        {
6538
                            focusField.focus();
6539
                            //alert(fields.join('\n'));
6540
                        }
6541

    
6542
                        return overAllValid;
6543
                        }
6544
                ]]></javascript>
6545

    
6546
                </validator>
6547
                
6548
                <!-- Check if value to only accept numeric and slash / -->
6549
                <!-- Used specifically to validate date -->
6550
                <validator name="numericSlash"
6551
                        classname="com.ib.ibss.validator.CommonRules"
6552
                    method="validateNumericSlash"
6553
                    methodParams="java.lang.Object,
6554
                                  org.apache.commons.validator.ValidatorAction,
6555
                                  org.apache.commons.validator.Field,
6556
                                  org.apache.struts.action.ActionErrors,
6557
                                  javax.servlet.http.HttpServletRequest"
6558
                   depends=""
6559
                   msg="errors.numericSlash">
6560

    
6561
                <javascript><![CDATA[
6562
                    function validateNumericSlash (form)
6563
                    {
6564
                                var overAllValid = true;
6565
                var isValid = true;
6566
                        var focusField = null;
6567
                        var i = 0;
6568
                        var fields = new Array();
6569
                        oSpecialCharacters = new numericSlash();
6570

    
6571
                        for (x in oSpecialCharacters)
6572
                        {
6573
                            isValid = true;
6574
                            var field = form[oSpecialCharacters[x][0]];
6575
                                        var msg = '';
6576

    
6577
                            if (field.type == 'text' ||
6578
                                field.type == 'textarea')
6579
                                        {
6580
                                var value = field.value;
6581
                                                var len = value.length;
6582
                                                var allSpaces = true;
6583

    
6584
                                                if (len > 0)
6585
                                                {
6586
                                                        for (j = 0; j < len; j++)
6587
                                                        {
6588
                                                                code = value.charCodeAt(j);
6589

    
6590
                                                                if ( !( code == 47 ||                                                                                                                                                         
6591
                                                                        (code >= 48 && code <= 57)))
6592
                                                                {
6593
                                                                        if (i == 0)
6594
                                                {
6595
                                                    focusField = field;
6596
                                                }
6597

    
6598
                                                fields[i++] = oSpecialCharacters[x][1];
6599
                                                msg = oSpecialCharacters[x][1];
6600
                                                overAllValid = isValid = false;
6601
                                                                }
6602

    
6603
                                                                errorMessageHandler (isValid, field.name, msg);
6604
                                                        }
6605
                                                }
6606
                            }
6607
                        }
6608

    
6609
                        if (fields.length > 0)
6610
                        {
6611
                            focusField.focus();
6612
                            //alert(fields.join('\n'));
6613
                        }
6614

    
6615
                        return overAllValid;
6616
                        }
6617
                ]]></javascript>
6618

    
6619
                </validator>
6620
                
6621
                <validator name="numericComma"
6622
                        classname="com.ib.ibss.validator.CommonRules"
6623
                    method="validateNumericComma"
6624
                    methodParams="java.lang.Object,
6625
                                  org.apache.commons.validator.ValidatorAction,
6626
                                  org.apache.commons.validator.Field,
6627
                                  org.apache.struts.action.ActionErrors,
6628
                                  javax.servlet.http.HttpServletRequest"
6629
                   depends=""
6630
                   msg="errors.numericComma">
6631

    
6632
                <javascript><![CDATA[
6633
                    function validateNumericComma (form)
6634
                    {
6635
                                var overAllValid = true;
6636
                var isValid = true;
6637
                        var focusField = null;
6638
                        var i = 0;
6639
                        var fields = new Array();
6640
                        oSpecialCharacters = new numericComma();
6641

    
6642
                        for (x in oSpecialCharacters)
6643
                        {
6644
                            isValid = true;
6645
                            var field = form[oSpecialCharacters[x][0]];
6646
                                        var msg = '';
6647

    
6648
                            if (field.type == 'text' ||
6649
                                field.type == 'textarea')
6650
                                        {
6651
                                var value = field.value;
6652
                                                var len = value.length;
6653
                                                var allSpaces = true;
6654

    
6655
                                                if (len > 0)
6656
                                                {
6657
                                                        for (j = 0; j < len; j++)
6658
                                                        {
6659
                                                                code = value.charCodeAt(j);
6660

    
6661
                                                                if ( !( code == 44 ||                                                                                                                                                         
6662
                                                                        (code >= 48 && code <= 57)))
6663
                                                                {
6664
                                                                        if (i == 0)
6665
                                                {
6666
                                                    focusField = field;
6667
                                                }
6668

    
6669
                                                fields[i++] = oSpecialCharacters[x][1];
6670
                                                msg = oSpecialCharacters[x][1];
6671
                                                overAllValid = isValid = false;
6672
                                                                }
6673

    
6674
                                                                errorMessageHandler (isValid, field.name, msg);
6675
                                                        }
6676
                                                }
6677
                            }
6678
                        }
6679

    
6680
                        if (fields.length > 0)
6681
                        {
6682
                            focusField.focus();
6683
                            //alert(fields.join('\n'));
6684
                        }
6685

    
6686
                        return overAllValid;
6687
                        }
6688
                ]]></javascript>
6689

    
6690
                </validator>
6691
                
6692
                <validator name="numericDashOrComma"
6693
                        classname="com.ib.ibss.validator.CommonRules"
6694
                    method="validateNumericDashOrComma"
6695
                    methodParams="java.lang.Object,
6696
                                  org.apache.commons.validator.ValidatorAction,
6697
                                  org.apache.commons.validator.Field,
6698
                                  org.apache.struts.action.ActionErrors,
6699
                                  javax.servlet.http.HttpServletRequest"
6700
                   depends=""
6701
                   msg="errors.numericDashOrComma">
6702

    
6703
                <javascript><![CDATA[
6704
                    function validateNumericDashOrComma (form)
6705
                    {
6706
                                var overAllValid = true;
6707
                var isValid = true;
6708
                        var focusField = null;
6709
                        var i = 0;
6710
                        var fields = new Array();
6711
                        oSpecialCharacters = new numericDashOrComma();
6712

    
6713
                        for (x in oSpecialCharacters)
6714
                        {
6715
                            isValid = true;
6716
                            var field = form[oSpecialCharacters[x][0]];
6717
                                        var msg = '';
6718

    
6719
                            if (field.type == 'text' ||
6720
                                field.type == 'textarea')
6721
                                        {
6722
                                var value = field.value;
6723
                                                var len = value.length;
6724
                                                var allSpaces = true;
6725

    
6726
                                                if (len > 0)
6727
                                                {
6728
                                                        for (j = 0; j < len; j++)
6729
                                                        {
6730
                                                                code = value.charCodeAt(j);
6731

    
6732
                                                                if ( !(code == 44 || code == 45 ||                                                                                                                                                         
6733
                                                                        (code >= 48 && code <= 57)))
6734
                                                                {
6735
                                                                        if (i == 0)
6736
                                                {
6737
                                                    focusField = field;
6738
                                                }
6739

    
6740
                                                fields[i++] = oSpecialCharacters[x][1];
6741
                                                msg = oSpecialCharacters[x][1];
6742
                                                overAllValid = isValid = false;
6743
                                                                }
6744

    
6745
                                                                errorMessageHandler (isValid, field.name, msg);
6746
                                                        }
6747
                                                }
6748
                            }
6749
                        }
6750

    
6751
                        if (fields.length > 0)
6752
                        {
6753
                            focusField.focus();
6754
                            //alert(fields.join('\n'));
6755
                        }
6756

    
6757
                        return overAllValid;
6758
                        }
6759
                ]]></javascript>
6760

    
6761
                </validator>
6762
                
6763
                
6764
                <!-- Check if value is aplhanumeric or have spaces or Bracket '()' -->
6765
                <validator name="alphaNumericSpaceAndBracket"
6766
                        classname="com.ib.ibss.validator.CommonRules"
6767
                    method="validateAlphaNumericSpaceAndBracket"
6768
                    methodParams="java.lang.Object,
6769
                                  org.apache.commons.validator.ValidatorAction,
6770
                                  org.apache.commons.validator.Field,
6771
                                  org.apache.struts.action.ActionErrors,
6772
                                  javax.servlet.http.HttpServletRequest"
6773
                   depends=""
6774
                   msg="errors.alphaNumericSpaceAndBracket">
6775

    
6776
                <javascript><![CDATA[
6777
                    function validateAlphaNumericSpace (form)
6778
                    {
6779
                                var overAllValid = true;
6780
                var isValid = true;
6781
                        var focusField = null;
6782
                        var i = 0;
6783
                        var fields = new Array();
6784
                        oAlphaNumericSpace = new alphaNumericSpace();
6785

    
6786
                        for (x in oAlphaNumericSpace)
6787
                        {
6788
                            isValid = true;
6789
                            var field = form[oAlphaNumericSpace[x][0]];
6790
                            var msg = '';
6791

    
6792
                            if (field.type == 'text' ||
6793
                                field.type == 'textarea')
6794
                                        {
6795
                                var value = field.value;
6796
                                var len = value.length;
6797

    
6798
                                                if (len > 0)
6799
                                                {
6800
                                                        for (j = 0; j < len; j++)
6801
                                                        {
6802
                                                            code = value.charCodeAt(j);
6803

    
6804
                                                            if ( !( code == 32 ||
6805
                                                                            code == 40 ||
6806
                                                                            code == 41 ||
6807
                                                                                 (code >= 48 && code <= 57) ||
6808
                                                                               (code >= 65 && code <= 90) ||
6809
                                                                               (code >= 97 && code <= 122) ))
6810
                                                                   {
6811
                                                                        if (i == 0)
6812
                                                {
6813
                                                    focusField = field;
6814
                                                }
6815

    
6816
                                                fields[i++] = oAlphaNumericSpace[x][1];
6817
                                                msg = oAlphaNumericSpace[x][1];
6818
                                                overAllValid = isValid = false;
6819
                                                                }
6820

    
6821
                                                                errorMessageHandler (isValid, field.name, msg);
6822
                                                        }
6823
                                                }
6824
                            }
6825
                        }
6826

    
6827
                        if (fields.length > 0)
6828
                        {
6829
                            focusField.focus();
6830
                            //alert(fields.join('\n'));
6831
                        }
6832

    
6833
                        return overAllValid;
6834
                        }
6835
                ]]></javascript>
6836

    
6837
                </validator>
6838
                <!-- Check if two values are not the same -->
6839
                <!-- Changed variable 'secondProperty' to 'notMatchField'  -->
6840
              <validator name="notMatch3"
6841
                        classname="com.ib.ibss.validator.CommonRules"
6842
                    method="validateNotMatch3"
6843
                    methodParams="java.lang.Object,
6844
                                  org.apache.commons.validator.ValidatorAction,
6845
                                  org.apache.commons.validator.Field,
6846
                                  org.apache.struts.action.ActionErrors,
6847
                                  javax.servlet.http.HttpServletRequest"
6848
                   msg="errors.notMatch">
6849

    
6850
                        <javascript><![CDATA[
6851
                        function validateNotMatch (form)
6852
                        {
6853
                                        var overAllValid = true;
6854
                var isValid = true;
6855
                            var focusField = null;
6856
                            var i = 0;
6857
                            var fields = new Array();
6858
                            oNotMatch = new notMatch();
6859

    
6860
                            for (x in oNotMatch)
6861
                            {
6862
                                isValid = true;
6863
                                var field = form[oNotMatch[x][0]];
6864
                                var secondField = form[oNotMatch[x][2]("notMatchField")];
6865
                                var msg = '';
6866

    
6867
                                if (field.type == 'text' ||
6868
                                    field.type == 'textarea' ||
6869
                                    field.type == 'select-one' ||
6870
                                    field.type == 'password')
6871
                                                {
6872
                                    var value = '';
6873
                                    var secondValue = '';
6874

    
6875
                                    if (field.type == 'select-one')
6876
                                    {
6877
                                        var si1 = field.selectedIndex;
6878
                                        value = field.options[si1].value;
6879
                                    }
6880
                                    else
6881
                                    {
6882
                                        value = field.value;
6883
                                    }
6884

    
6885
                                    if (secondField.type == 'text' ||
6886
                                            secondField.type == 'textarea' ||
6887
                                            secondField.type == 'select-one' ||
6888
                                            secondField.type == 'password' ||
6889
                                            secondField.type == 'hidden')
6890
                                                        {
6891
                                            if (secondField.type == 'select-one')
6892
                                            {
6893
                                                var si = secondField.selectedIndex;
6894
                                                secondValue = secondField.options[si].value;
6895
                                            }
6896
                                            else
6897
                                            {
6898
                                                secondValue = secondField.value;
6899
                                            }
6900
                                                        }
6901

    
6902
                                    if (value == secondValue)
6903
                                    {
6904
                                        if (i == 0)
6905
                                        {
6906
                                            focusField = field;
6907
                                        }
6908

    
6909
                                        fields[i++] = oNotMatch[x][1];
6910
                                        msg = oNotMatch[x][1];
6911
                                        overAllValid = isValid = false;
6912
                                    }
6913

    
6914
                                                        errorMessageHandler (isValid, field.name, msg);
6915
                                }
6916
                            }
6917

    
6918
                            if (fields.length > 0)
6919
                            {
6920
                                focusField.focus();
6921
                                //alert(fields.join('\n'));
6922
                            }
6923

    
6924
                            return overAllValid;
6925
                                }
6926
                        ]]></javascript>
6927

    
6928
                </validator>
6929

    
6930
                <validator name="noScript"
6931
                        classname="com.ib.ibss.validator.CommonRules"
6932
                    method="validateNoScript"
6933
                    methodParams="java.lang.Object,
6934
                                  org.apache.commons.validator.ValidatorAction,
6935
                                  org.apache.commons.validator.Field,
6936
                                  org.apache.struts.action.ActionErrors,
6937
                                  javax.servlet.http.HttpServletRequest"
6938
                   depends=""
6939
                   msg="errors.no.script">
6940
                </validator>
6941
                
6942
                <validator 
6943
                        name="moneyNoDecimal"
6944
                        classname="com.ib.ibss.validator.CommonRules"
6945
                    method="verifyMoneyFormatWithoutDecimal"
6946
                    methodParams="java.lang.Object,
6947
                                  org.apache.commons.validator.ValidatorAction,
6948
                                  org.apache.commons.validator.Field,
6949
                                  org.apache.struts.action.ActionErrors,
6950
                                  javax.servlet.http.HttpServletRequest"
6951
                   depends=""
6952
                   msg="errors.money.format"/>
6953
                
6954
                <validator 
6955
                        name="greaterThan"
6956
                        classname="com.ib.ibss.validator.CommonRules"
6957
                    method="verifyGreaterThan"
6958
                    methodParams="java.lang.Object,
6959
                                  org.apache.commons.validator.ValidatorAction,
6960
                                  org.apache.commons.validator.Field,
6961
                                  org.apache.struts.action.ActionErrors,
6962
                                  javax.servlet.http.HttpServletRequest"
6963
                   depends=""
6964
                   msg="errors.greater.than"/>
6965
                   
6966
                   <validator 
6967
                        name="greaterThan2"
6968
                        classname="com.ib.ibss.validator.CommonRules"
6969
                    method="verifyGreaterThan2"
6970
                    methodParams="java.lang.Object,
6971
                                  org.apache.commons.validator.ValidatorAction,
6972
                                  org.apache.commons.validator.Field,
6973
                                  org.apache.struts.action.ActionErrors,
6974
                                  javax.servlet.http.HttpServletRequest"
6975
                   depends=""
6976
                   msg="errors.greater.than"/>
6977
                   
6978
                   
6979
                <!-- Check if value is in proper currency format (15,2) -->
6980
                <validator name="currency15_2"
6981
                        classname="com.ib.ibss.validator.CommonRules"
6982
                    method="validateCurrency15_2"
6983
                    methodParams="java.lang.Object,
6984
                                  org.apache.commons.validator.ValidatorAction,
6985
                                  org.apache.commons.validator.Field,
6986
                                  org.apache.struts.action.ActionErrors,
6987
                                  javax.servlet.http.HttpServletRequest"
6988
                   depends=""
6989
                   msg="errors.currency">
6990

    
6991
                <javascript><![CDATA[
6992
                function validateCurrency15_2 (form)
6993
                {
6994
                                var overAllValid = true;
6995
                var isValid = true;
6996
                    var focusField = null;
6997
                    var i = 0;
6998
                    var fields = new Array();
6999
                                oCurrency = new currency();
7000

    
7001

    
7002
                    for (x in oCurrency)
7003
                    {
7004
                        isValid = true;
7005
                        var field = form[oCurrency[x][0]];
7006
                        var msg = '';
7007

    
7008
                        if (field.type == 'text' ||
7009
                            field.type == 'textarea')
7010
                                        {
7011
                            var value;
7012
                            value = field.value;
7013

    
7014
                                                var currencyRE = /^\d{1,13}{\.\d{1,2}?$/;
7015

    
7016
                                                if ( !(currencyRE.test(value)))
7017
                                                   {
7018
                                                        if (i == 0)
7019
                                {
7020
                                    focusField = field;
7021
                                }
7022

    
7023
                                fields[i++] = oCurrency[x][1];
7024
                                msg = oCurrency[x][1];
7025
                                overAllValid = isValid = false;
7026
                                                }
7027

    
7028
                                                errorMessageHandler (isValid, field.name, msg);
7029
                        }
7030
                    }
7031

    
7032
                    if (fields.length > 0)
7033
                    {
7034
                        focusField.focus();
7035
                        //alert(fields.join('\n'));
7036
                    }
7037

    
7038
                    return overAllValid;
7039
                        }
7040
                ]]></javascript>
7041
                </validator>
7042
                
7043
                <validator name="notMatchNotRequired"
7044
                        classname="com.ib.ibss.validator.CommonRules"
7045
                    method="validateNotMatch"
7046
                    methodParams="java.lang.Object,
7047
                                  org.apache.commons.validator.ValidatorAction,
7048
                                  org.apache.commons.validator.Field,
7049
                                  org.apache.struts.action.ActionErrors,
7050
                                  javax.servlet.http.HttpServletRequest"
7051
                   depends=""
7052
                   msg="errors.notMatch">
7053

    
7054
                        <javascript><![CDATA[
7055
                        function validateNotMatch (form)
7056
                        {
7057
                                        var overAllValid = true;
7058
                var isValid = true;
7059
                            var focusField = null;
7060
                            var i = 0;
7061
                            var fields = new Array();
7062
                            oNotMatch = new notMatch();
7063

    
7064
                            for (x in oNotMatch)
7065
                            {
7066
                                isValid = true;
7067
                                var field = form[oNotMatch[x][0]];
7068
                                var secondField = form[oNotMatch[x][2]("notMatchField")];
7069
                                var msg = '';
7070

    
7071
                                if (field.type == 'text' ||
7072
                                    field.type == 'textarea' ||
7073
                                    field.type == 'select-one' ||
7074
                                    field.type == 'password')
7075
                                                {
7076
                                    var value = '';
7077
                                    var secondValue = '';
7078

    
7079
                                    if (field.type == 'select-one')
7080
                                    {
7081
                                        var si1 = field.selectedIndex;
7082
                                        value = field.options[si1].value;
7083
                                    }
7084
                                    else
7085
                                    {
7086
                                        value = field.value;
7087
                                    }
7088

    
7089
                                    if (secondField.type == 'text' ||
7090
                                            secondField.type == 'textarea' ||
7091
                                            secondField.type == 'select-one' ||
7092
                                            secondField.type == 'password' ||
7093
                                            secondField.type == 'hidden')
7094
                                                        {
7095
                                            if (secondField.type == 'select-one')
7096
                                            {
7097
                                                var si = secondField.selectedIndex;
7098
                                                secondValue = secondField.options[si].value;
7099
                                            }
7100
                                            else
7101
                                            {
7102
                                                secondValue = secondField.value;
7103
                                            }
7104
                                                        }
7105

    
7106
                                    if (value == secondValue)
7107
                                    {
7108
                                        if (i == 0)
7109
                                        {
7110
                                            focusField = field;
7111
                                        }
7112

    
7113
                                        fields[i++] = oNotMatch[x][1];
7114
                                        msg = oNotMatch[x][1];
7115
                                        overAllValid = isValid = false;
7116
                                    }
7117

    
7118
                                                        errorMessageHandler (isValid, field.name, msg);
7119
                                }
7120
                            }
7121

    
7122
                            if (fields.length > 0)
7123
                            {
7124
                                focusField.focus();
7125
                                //alert(fields.join('\n'));
7126
                            }
7127

    
7128
                            return overAllValid;
7129
                                }
7130
                        ]]></javascript>
7131

    
7132
                </validator>
7133
                
7134
                <!-- Check if email is valid -->
7135
                <validator name="ratio"
7136
                        classname="com.ib.ibss.validator.CommonRules"
7137
                    method="validateRatio"
7138
                    methodParams="java.lang.Object,
7139
                                  org.apache.commons.validator.ValidatorAction,
7140
                                  org.apache.commons.validator.Field,
7141
                                  org.apache.struts.action.ActionErrors,
7142
                                  javax.servlet.http.HttpServletRequest"
7143
                   depends=""
7144
                   msg="errors.ratio">
7145
                </validator>
7146
                
7147
                
7148
                <!-- Check if value is alphanumeric or have spaces, alias, slash, period -->
7149
                <validator name="BIBCPName"
7150
                        classname="com.ib.ibss.validator.CommonRules"
7151
                    method="validateBIBCPName"
7152
                    methodParams="java.lang.Object,
7153
                                  org.apache.commons.validator.ValidatorAction,
7154
                                  org.apache.commons.validator.Field,
7155
                                  org.apache.struts.action.ActionErrors,
7156
                                  javax.servlet.http.HttpServletRequest"
7157
                   depends=""
7158
                   msg="errors.name.format">
7159

    
7160
                <javascript><![CDATA[
7161
                    function validateAlphaNumericSpace (form)
7162
                    {
7163
                                var overAllValid = true;
7164
                var isValid = true;
7165
                        var focusField = null;
7166
                        var i = 0;
7167
                        var fields = new Array();
7168
                        oBIBCPName = new BIBCPName();
7169

    
7170
                        for (x in oAlphaNumericSpace)
7171
                        {
7172
                            isValid = true;
7173
                            var field = form[oBIBCPName[x][0]];
7174
                            var msg = '';
7175

    
7176
                            if (field.type == 'text' ||
7177
                                field.type == 'textarea')
7178
                                        {
7179
                                var value = field.value;
7180
                                var len = value.length;
7181

    
7182
                                                if (len > 0)
7183
                                                {
7184
                                                        for (j = 0; j < len; j++)
7185
                                                        {
7186
                                                            code = value.charCodeAt(j);
7187

    
7188
                                                            if ( !( code == 32 || 
7189
                                                                                 (code >= 46 && code <= 57) ||
7190
                                                                               (code >= 64 && code <= 90) ||
7191
                                                                               (code >= 97 && code <= 122) ))
7192
                                                                   {
7193
                                                                        if (i == 0)
7194
                                                {
7195
                                                    focusField = field;
7196
                                                }
7197

    
7198
                                                fields[i++] = oBIBCPName[x][1];
7199
                                                msg = oBIBCPName[x][1];
7200
                                                overAllValid = isValid = false;
7201
                                                                }
7202

    
7203
                                                                errorMessageHandler (isValid, field.name, msg);
7204
                                                        }
7205
                                                }
7206
                            }
7207
                        }
7208

    
7209
                        if (fields.length > 0)
7210
                        {
7211
                            focusField.focus();
7212
                            //alert(fields.join('\n'));
7213
                        }
7214

    
7215
                        return overAllValid;
7216
                        }
7217
                ]]></javascript>
7218

    
7219
                </validator>
7220
                   <validator name="minlengthNum"
7221
            classname="org.apache.struts.validator.FieldChecks"
7222
               method="validateMinLength"
7223
         methodParams="java.lang.Object,
7224
                       org.apache.commons.validator.ValidatorAction,
7225
                       org.apache.commons.validator.Field,
7226
                       org.apache.struts.action.ActionErrors,
7227
                       javax.servlet.http.HttpServletRequest"
7228
              depends=""
7229
                  msg="errors.minlengthNum">
7230

    
7231
         <javascript><![CDATA[
7232
            function validateMinLength(form) {
7233
                var bValid = true;
7234
                var focusField = null;
7235
                var i = 0;
7236
                var fields = new Array();
7237
                oMinLength = new minlength();
7238
                for (x in oMinLength) {
7239
                    if (form[oMinLength[x][0]].type == 'text' ||
7240
                        form[oMinLength[x][0]].type == 'textarea') {
7241
                        var iMin = parseInt(oMinLength[x][2]("minlength"));
7242
                        if (form[oMinLength[x][0]].value.length < iMin) {
7243
                            if (i == 0) {
7244
                                focusField = form[oMinLength[x][0]];
7245
                            }
7246
                            fields[i++] = oMinLength[x][1];
7247
                            bValid = false;
7248
                        }
7249
                    }
7250
                }
7251
                if (fields.length > 0) {
7252
                   focusField.focus();
7253
                   alert(fields.join('\n'));
7254
                }
7255
                return bValid;
7256
            }]]>
7257
         </javascript>
7258

    
7259
      </validator>
7260
      
7261
                <validator name="time24hoursFormat"
7262
                           classname="com.ib.ibss.validator.CommonRules"
7263
                           method="validateTimeFormat"
7264
                                   methodParams="java.lang.Object,
7265
                                  org.apache.commons.validator.ValidatorAction,
7266
                                  org.apache.commons.validator.Field,
7267
                                  org.apache.struts.action.ActionErrors,
7268
                                  javax.servlet.http.HttpServletRequest"
7269
                           depends=""
7270
                           msg="error.invalid.24hours.time.format">
7271
                </validator>
7272
                
7273
                <!-- Check if value is aplhanumeric or have spaces -->
7274
                <validator name="alphaNumericDashSpace"
7275
                        classname="com.ib.ibss.validator.CommonRules"
7276
                    method="validateAlphaNumericDashSpace"
7277
                    methodParams="java.lang.Object,
7278
                                  org.apache.commons.validator.ValidatorAction,
7279
                                  org.apache.commons.validator.Field,
7280
                                  org.apache.struts.action.ActionErrors,
7281
                                  javax.servlet.http.HttpServletRequest"
7282
                   depends=""
7283
                   msg="errors.alphaNumericDashSpace">
7284

    
7285
                <javascript><![CDATA[
7286
                    function validateAlphaNumericSpace (form)
7287
                    {
7288
                                var overAllValid = true;
7289
                var isValid = true;
7290
                        var focusField = null;
7291
                        var i = 0;
7292
                        var fields = new Array();
7293
                        oAlphaNumericSpace = new alphaNumericSpace();
7294

    
7295
                        for (x in oAlphaNumericSpace)
7296
                        {
7297
                            isValid = true;
7298
                            var field = form[oAlphaNumericSpace[x][0]];
7299
                            var msg = '';
7300

    
7301
                            if (field.type == 'text' ||
7302
                                field.type == 'textarea')
7303
                                        {
7304
                                var value = field.value;
7305
                                var len = value.length;
7306

    
7307
                                                if (len > 0)
7308
                                                {
7309
                                                        for (j = 0; j < len; j++)
7310
                                                        {
7311
                                                            code = value.charCodeAt(j);
7312

    
7313
                                                            if ( !( code == 32 || code == 45 ||
7314
                                                                                 (code >= 48 && code <= 57) ||
7315
                                                                               (code >= 65 && code <= 90) ||
7316
                                                                               (code >= 97 && code <= 122) ))
7317
                                                                   {
7318
                                                                        if (i == 0)
7319
                                                {
7320
                                                    focusField = field;
7321
                                                }
7322

    
7323
                                                fields[i++] = oAlphaNumericSpace[x][1];
7324
                                                msg = oAlphaNumericSpace[x][1];
7325
                                                overAllValid = isValid = false;
7326
                                                                }
7327

    
7328
                                                                errorMessageHandler (isValid, field.name, msg);
7329
                                                        }
7330
                                                }
7331
                            }
7332
                        }
7333

    
7334
                        if (fields.length > 0)
7335
                        {
7336
                            focusField.focus();
7337
                            //alert(fields.join('\n'));
7338
                        }
7339

    
7340
                        return overAllValid;
7341
                        }
7342
                ]]></javascript>
7343
                </validator>
7344
                
7345
                <!-- Check if value match with Custoomer full name requirement -->
7346
                <validator name="customerFullNameVal"
7347
                        classname="com.ib.ibss.validator.CommonRules"
7348
                    method="validateCustomerFullName"
7349
                    methodParams="java.lang.Object,
7350
                                  org.apache.commons.validator.ValidatorAction,
7351
                                  org.apache.commons.validator.Field,
7352
                                  org.apache.struts.action.ActionErrors,
7353
                                  javax.servlet.http.HttpServletRequest"
7354
                   depends=""
7355
                   msg="errors.customerFullNameVal">
7356

    
7357
                <javascript><![CDATA[
7358
                    function validateSpecialCharacters (form)
7359
                    {
7360
                                var overAllValid = true;
7361
                var isValid = true;
7362
                        var focusField = null;
7363
                        var i = 0;
7364
                        var fields = new Array();
7365
                        oSpecialCharacters = new specialCharacters();
7366

    
7367
                        for (x in oSpecialCharacters)
7368
                        {
7369
                            isValid = true;
7370
                            var field = form[oSpecialCharacters[x][0]];
7371
                                        var msg = '';
7372

    
7373
                            if (field.type == 'text' ||
7374
                                field.type == 'textarea')
7375
                                        {
7376
                                var value = field.value;
7377
                                                var len = value.length;
7378

    
7379
                                                if (len > 0)
7380
                                                {
7381
                                                        for (j = 0; j < len; j++)
7382
                                                        {
7383
                                                                code = value.charCodeAt(j);
7384

    
7385
                                                                if (!(code == 32 || 
7386
                                                                                code == 64 || 
7387
                                                                                        code == 46 || code >= 47 ||
7388
                                                                                         (code >= 65 && code <= 90) || 
7389
                                                                                                 (code >= 97 && code <= 122)))
7390
                                                                {
7391
                                                                        if (i == 0)
7392
                                                {
7393
                                                    focusField = field;
7394
                                                }
7395

    
7396
                                                fields[i++] = oSpecialCharacters[x][1];
7397
                                                msg = oSpecialCharacters[x][1];
7398
                                                overAllValid = isValid = false;
7399
                                                                }
7400

    
7401
                                                                errorMessageHandler (isValid, field.name, msg);
7402
                                                        }
7403
                                                }
7404
                            }
7405
                        }
7406

    
7407
                        if (fields.length > 0)
7408
                        {
7409
                            focusField.focus();
7410
                            //alert(fields.join('\n'));
7411
                        }
7412

    
7413
                        return overAllValid;
7414
                        }
7415
                ]]></javascript>
7416

    
7417
                </validator>
7418
        </global>
7419
</form-validation>