PageSourceSearch

https://boxofficeindia.com/js/validator.js

js boxofficeindia.com collected 2026-09-24 22:48:41 UTC 30,813 bytes, 1,275 lines download raw bytes

1/*
2    -------------------------------------------------------------------------
3    JavaScript Form Validator (gen_validatorv4.js)
4    Version 4.0
5    Copyright (C) 2003-2011 JavaScript-Coder.com. All rights reserved.
6    You can freely use this script in your Web pages.
7    You may adapt this script for your own needs, provided these opening credit
8    lines are kept intact.
9        
10    The Form validation script is distributed free from JavaScript-Coder.com
11    For updates, please visit:
12    http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
13
14    Questions & comments please send to form.val (at) javascript-coder.com
15    -------------------------------------------------------------------------  
16*/
17
18function Validator(frmname)
19{
20    this.validate_on_killfocus = false;
21    this.formobj = document.forms[frmname];
22    if (!this.formobj)
23    {
24        alert("Error: couldnot get Form object " + frmname);
25        return;
26    }
27    if (this.formobj.onsubmit)
28    {
29        this.formobj.old_onsubmit = this.formobj.onsubmit;
30        this.formobj.onsubmit = null;
31    }
32    else
33    {
34        this.formobj.old_onsubmit = null;
35    }
36    this.formobj._sfm_form_name = frmname;
37
38    this.formobj.onsubmit = form_submit_handler;
39    this.addValidation = add_validation;
40
41    this.formobj.addnlvalidations = new Array();
42    this.addAddnlValidationFunction = add_addnl_vfunction;
43    this.formobj.runAddnlValidations = run_addnl_validations;
44    this.setAddnlValidationFunction = set_addnl_vfunction;//for backward compatibility
45
46
47    this.clearAllValidations = clear_all_validations;
48    this.focus_disable_validations = false;
49
50    document.error_disp_handler = new sfm_ErrorDisplayHandler();
51
52    this.EnableOnPageErrorDisplay = validator_enable_OPED;
53    this.EnableOnPageErrorDisplaySingleBox = validator_enable_OPED_SB;
54
55    this.show_errors_together = false;
56    this.EnableMsgsTogether = sfm_enable_show_msgs_together;
57    document.set_focus_onerror = true;
58    this.EnableFocusOnError = sfm_validator_enable_focus;
59
60    this.formobj.error_display_loc = 'right';
61    this.SetMessageDisplayPos = sfm_validator_message_disp_pos;
62
63    this.formobj.DisableValidations = sfm_disable_validations;
64    this.formobj.validatorobj = this;
65}
66
67
68function sfm_validator_enable_focus(enable)
69{
70    document.set_focus_onerror = enable;
71}
72
73function add_addnl_vfunction()
74{
75    var proc =
76    {
77    };
78    proc.func = arguments[0];
79    proc.arguments = [];
80
81    for (var i = 1; i < arguments.length; i++)
82    {
83        proc.arguments.push(arguments[i]);
84    }
85    this.formobj.addnlvalidations.push(proc);
86}
87
88function set_addnl_vfunction(functionname)
89{
90    if(functionname.constructor == String)
91    {
92        alert("Pass the function name like this: validator.setAddnlValidationFunction(DoCustomValidation)\n "+
93            "rather than passing the function name as string");
94        return;
95    }
96    this.addAddnlValidationFunction(functionname);
97}
98
99function run_addnl_validations()
100{
101    var ret = true;
102    for (var f = 0; f < this.addnlvalidations.length; f++)
103    {
104        var proc = this.addnlvalidations[f];
105        var args = proc.arguments || [];
106        if (!proc.func.apply(null, args))
107        {
108            ret = false;
109        }
110    }
111    return ret;
112}
113
114function sfm_set_focus(objInput)
115{
116    if (document.set_focus_onerror)
117    {
118        if (!objInput.disabled && objInput.type != 'hidden')
119        {
120            objInput.focus();
121        }
122    }
123}
124
125function sfm_disable_validations()
126{
127    if (this.old_onsubmit)
128    {
129        this.onsubmit = this.old_onsubmit;
130    }
131    else
132    {
133        this.onsubmit = null;
134    }
135}
136
137function sfm_enable_show_msgs_together()
138{
139    this.show_errors_together = true;
140    this.formobj.show_errors_together = true;
141}
142
143function sfm_validator_message_disp_pos(pos)
144{
145    this.formobj.error_display_loc = pos;
146}
147
148function clear_all_validations()
149{
150    for (var itr = 0; itr < this.formobj.elements.length; itr++)
151    {
152        this.formobj.elements[itr].validationset = null;
153    }
154}
155
156function form_submit_handler()
157{
158    var bRet = true;
159    document.error_disp_handler.clear_msgs();
160    for (var itr = 0; itr < this.elements.length; itr++)
161    {
162        if (this.elements[itr].validationset && !this.elements[itr].validationset.validate())
163        {
164            bRet = false;
165        }
166        if (!bRet && !this.show_errors_together)
167        {
168            break;
169        }
170    }
171
172    if (this.show_errors_together || bRet && !this.show_errors_together)
173    {
174        if (!this.runAddnlValidations())
175        {
176            bRet = false;
177        }
178    }
179    if (!bRet)
180    {
181        document.error_disp_handler.FinalShowMsg();
182        return false;
183    }
184    return true;
185}
186
187function add_validation(itemname, descriptor, errstr)
188{
189    var condition = null;
190    if (arguments.length > 3)
191    {
192        condition = arguments[3];
193    }
194    if (!this.formobj)
195    {
196        alert("Error: The form object is not set properly");
197        return;
198    } //if
199    var itemobj = this.formobj[itemname];
200
201    if (itemobj.length && isNaN(itemobj.selectedIndex))
202    //for radio button; don't do for 'select' item
203    {
204        itemobj = itemobj[0];
205    }
206    if (!itemobj)
207    {
208        alert("Error: Couldnot get the input object named: " + itemname);
209        return;
210    }
211    if (true == this.validate_on_killfocus)
212    {
213        itemobj.onblur = handle_item_on_killfocus;
214    }
215    if (!itemobj.validationset)
216    {
217        itemobj.validationset = new ValidationSet(itemobj, this.show_errors_together);
218    }
219    itemobj.validationset.add(descriptor, errstr, condition);
220    itemobj.validatorobj = this;
221}
222
223function handle_item_on_killfocus()
224{
225    if (this.validatorobj.focus_disable_validations == true)
226    {
227        /*  
228        To avoid repeated looping message boxes
229        */
230        this.validatorobj.focus_disable_validations = false;
231        return false;
232    }
233
234    if (null != this.validationset)
235    {
236        document.error_disp_handler.clear_msgs();
237        if (false == this.validationset.validate())
238        {
239            document.error_disp_handler.FinalShowMsg();
240            return false;
241        }
242    }
243}
244
245function validator_enable_OPED()
246{
247    document.error_disp_handler.EnableOnPageDisplay(false);
248}
249
250function validator_enable_OPED_SB()
251{
252    document.error_disp_handler.EnableOnPageDisplay(true);
253}
254
255function sfm_ErrorDisplayHandler()
256{
257    this.msgdisplay = new AlertMsgDisplayer();
258    this.EnableOnPageDisplay = edh_EnableOnPageDisplay;
259    this.ShowMsg = edh_ShowMsg;
260    this.FinalShowMsg = edh_FinalShowMsg;
261    this.all_msgs = new Array();
262    this.clear_msgs = edh_clear_msgs;
263}
264
265function edh_clear_msgs()
266{
267    this.msgdisplay.clearmsg(this.all_msgs);
268    this.all_msgs = new Array();
269}
270
271function edh_FinalShowMsg()
272{
273    if (this.all_msgs.length == 0)
274    {
275        return;
276    }
277    this.msgdisplay.showmsg(this.all_msgs);
278}
279
280function edh_EnableOnPageDisplay(single_box)
281{
282    if (true == single_box)
283    {
284        this.msgdisplay = new SingleBoxErrorDisplay();
285    }
286    else
287    {
288        this.msgdisplay = new DivMsgDisplayer();
289    }
290}
291
292function edh_ShowMsg(msg, input_element)
293{
294    var objmsg = new Array();
295    objmsg["input_element"] = input_element;
296    objmsg["msg"] = msg;
297    this.all_msgs.push(objmsg);
298}
299
300function AlertMsgDisplayer()
301{
302    this.showmsg = alert_showmsg;
303    this.clearmsg = alert_clearmsg;
304}
305
306function alert_clearmsg(msgs)
307{
308
309}
310
311function alert_showmsg(msgs)
312{
313    var whole_msg = "";
314    var first_elmnt = null;
315    for (var m = 0; m < msgs.length; m++)
316    {
317        if (null == first_elmnt)
318        {
319            first_elmnt = msgs[m]["input_element"];
320        }
321        whole_msg += msgs[m]["msg"] + "\n";
322    }
323
324    alert(whole_msg);
325
326    if (null != first_elmnt)
327    {
328        sfm_set_focus(first_elmnt);
329    }
330}
331
332function sfm_show_error_msg(msg, input_elmt)
333{
334    document.error_disp_handler.ShowMsg(msg, input_elmt);
335}
336
337function SingleBoxErrorDisplay()
338{
339    this.showmsg = sb_div_showmsg;
340    this.clearmsg = sb_div_clearmsg;
341}
342
343function sb_div_clearmsg(msgs)
344{
345    var divname = form_error_div_name(msgs);
346    sfm_show_div_msg(divname, "");
347}
348
349function sb_div_showmsg(msgs)
350{
351    var whole_msg = "<ul>\n";
352    for (var m = 0; m < msgs.length; m++)
353    {
354        whole_msg += "<li>" + msgs[m]["msg"] + "</li>\n";
355    }
356    whole_msg += "</ul>";
357    var divname = form_error_div_name(msgs);
358    var anc_name = divname + "_loc";
359    whole_msg = "<a name='" + anc_name + "' >" + whole_msg;
360
361    sfm_show_div_msg(divname, whole_msg);
362
363    window.location.hash = anc_name;
364}
365
366function form_error_div_name(msgs)
367{
368    var input_element = null;
369
370    for (var m in msgs)
371    {
372        input_element = msgs[m]["input_element"];
373        if (input_element)
374        {
375            break;
376        }
377    }
378
379    var divname = "";
380    if (input_element)
381    {
382        divname = input_element.form._sfm_form_name + "_errorloc";
383    }
384
385    return divname;
386}
387
388function sfm_show_div_msg(divname,msgstring)
389{
390   if(divname.length<=0) return false;
391
392   if(document.layers)
393   {
394      divlayer = document.layers[divname];
395        if(!divlayer){return;}
396      divlayer.document.open();
397      divlayer.document.write(msgstring);
398      divlayer.document.close();
399   }
400   else
401   if(document.all)
402   {
403      divlayer = document.all[divname];
404        if(!divlayer){return;}
405      divlayer.innerHTML=msgstring;
406   }
407   else
408   if(document.getElementById)
409   {
410      divlayer = document.getElementById(divname);
411        if(!divlayer){return;}
412      divlayer.innerHTML =msgstring;
413   }
414   divlayer.style.visibility="visible";   
415   return false;
416}
417
418function DivMsgDisplayer()
419{
420    this.showmsg = div_showmsg;
421    this.clearmsg = div_clearmsg;
422}
423
424function div_clearmsg(msgs)
425{
426    for (var m in msgs)
427    {
428        var divname = element_div_name(msgs[m]["input_element"]);
429        show_div_msg(divname, "");
430    }
431}
432
433function element_div_name(input_element)
434{
435    var divname = input_element.form._sfm_form_name + "_" + input_element.name + "_errorloc";
436
437    divname = divname.replace(/[\[\]]/gi, "");
438
439    return divname;
440}
441
442function div_showmsg(msgs)
443{
444    var whole_msg;
445    var first_elmnt = null;
446    for (var m in msgs)
447    {
448        if (null == first_elmnt)
449        {
450            first_elmnt = msgs[m]["input_element"];
451        }
452        var divname = element_div_name(msgs[m]["input_element"]);
453        show_div_msg(divname, msgs[m]["msg"]);
454    }
455    if (null != first_elmnt)
456    {
457        sfm_set_focus(first_elmnt);
458    }
459}
460
461function show_div_msg(divname, msgstring)
462{
463    if (divname.length <= 0) return false;
464
465    if (document.layers)
466    {
467        divlayer = document.layers[divname];
468        if (!divlayer)
469        {
470            return;
471        }
472        divlayer.document.open();
473        divlayer.document.write(msgstring);
474        divlayer.document.close();
475    }
476    else if (document.all)
477    {
478        divlayer = document.all[divname];
479        if (!divlayer)
480        {
481            return;
482        }
483        divlayer.innerHTML = msgstring;
484    }
485    else if (document.getElementById)
486    {
487        divlayer = document.getElementById(divname);
488        if (!divlayer)
489        {
490            return;
491        }
492        divlayer.innerHTML = msgstring;
493    }
494    divlayer.style.visibility = "visible";
495}
496
497function ValidationDesc(inputitem, desc, error, condition)
498{
499    this.desc = desc;
500    this.error = error;
501    this.itemobj = inputitem;
502    this.condition = condition;
503    this.validate = vdesc_validate;
504}
505
506function vdesc_validate()
507{
508    if (this.condition != null)
509    {
510        if (!eval(this.condition))
511        {
512            return true;
513        }
514    }
515    if (!validateInput(this.desc, this.itemobj, this.error))
516    {
517        this.itemobj.validatorobj.focus_disable_validations = true;
518        sfm_set_focus(this.itemobj);
519        return false;
520    }
521
522    return true;
523}
524
525function ValidationSet(inputitem, msgs_together)
526{
527    this.vSet = new Array();
528    this.add = add_validationdesc;
529    this.validate = vset_validate;
530    this.itemobj = inputitem;
531    this.msgs_together = msgs_together;
532}
533
534function add_validationdesc(desc, error, condition)
535{
536    this.vSet[this.vSet.length] =
537    new ValidationDesc(this.itemobj, desc, error, condition);
538}
539
540function vset_validate()
541{
542    var bRet = true;
543    for (var itr = 0; itr < this.vSet.length; itr++)
544    {
545        bRet = bRet && this.vSet[itr].validate();
546        if (!bRet && !this.msgs_together)
547        {
548            break;
549        }
550    }
551    return bRet;
552}
553
554/*  checks the validity of an email address entered 
555*   returns true or false 
556*/
557function validateEmail(email)
558{
559    var splitted = email.match("^(.+)@(.+)$");
560    if (splitted == null) return false;
561    if (splitted[1] != null)
562    {
563        var regexp_user = /^\"?[\w-_\.]*\"?$/;
564        if (splitted[1].match(regexp_user) == null) return false;
565    }
566    if (splitted[2] != null)
567    {
568        var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/;
569        if (splitted[2].match(regexp_domain) == null)
570        {
571            var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
572            if (splitted[2].match(regexp_ip) == null) return false;
573        } // if
574        return true;
575    }
576    return false;
577}
578
579function TestComparison(objValue, strCompareElement, strvalidator, strError)
580{
581    var bRet = true;
582    var objCompare = null;
583    if (!objValue.form)
584    {
585        sfm_show_error_msg("Error: No Form object!", objValue);
586        return false
587    }
588    objCompare = objValue.form.elements[strCompareElement];
589    if (!objCompare)
590    {
591        sfm_show_error_msg("Error: Element with name" + strCompareElement + " not found !", objValue);
592        return false;
593    }
594
595    var objval_value = objValue.value;
596    var objcomp_value = objCompare.value;
597
598    if (strvalidator != "eqelmnt" && strvalidator != "neelmnt")
599    {
600        objval_value = objval_value.replace(/\,/g, "");
601        objcomp_value = objcomp_value.replace(/\,/g, "");
602
603        if (isNaN(objval_value))
604        {
605            sfm_show_error_msg(objValue.name + ": Should be a number ", objValue);
606            return false;
607        } //if 
608        if (isNaN(objcomp_value))
609        {
610            sfm_show_error_msg(objCompare.name + ": Should be a number ", objCompare);
611            return false;
612        } //if    
613    } //if
614    var cmpstr = "";
615    switch (strvalidator)
616    {
617    case "eqelmnt":
618        {
619            if (objval_value != objcomp_value)
620            {
621                cmpstr = " should be equal to ";
622                bRet = false;
623            } //if
624            break;
625        } //case
626    case "ltelmnt":
627        {
628            if (eval(objval_value) >= eval(objcomp_value))
629            {
630                cmpstr = " should be less than ";
631                bRet = false;
632            }
633            break;
634        } //case
635    case "leelmnt":
636        {
637            if (eval(objval_value) > eval(objcomp_value))
638            {
639                cmpstr = " should be less than or equal to";
640                bRet = false;
641            }
642            break;
643        } //case     
644    case "gtelmnt":
645        {
646            if (eval(objval_value) <= eval(objcomp_value))
647            {
648                cmpstr = " should be greater than";
649                bRet = false;
650            }
651            break;
652        } //case
653    case "geelmnt":
654        {
655            if (eval(objval_value) < eval(objcomp_value))
656            {
657                cmpstr = " should be greater than or equal to";
658                bRet = false;
659            }
660            break;
661        } //case
662    case "neelmnt":
663        {
664            if (objval_value.length > 0 && objcomp_value.length > 0 && objval_value == objcomp_value)
665
666            {
667                cmpstr = " should be different from ";
668                bRet = false;
669            } //if
670            break;
671        }
672    } //switch
673    if (bRet == false)
674    {
675        if (!strError || strError.length == 0)
676        {
677            strError = objValue.name + cmpstr + objCompare.name;
678        } //if
679        sfm_show_error_msg(strError, objValue);
680    } //if
681    return bRet;
682}
683
684function TestSelMin(objValue, strMinSel, strError)
685{
686    var bret = true;
687    var objcheck = objValue.form.elements[objValue.name];
688    var chkcount = 0;
689    if (objcheck.length)
690    {
691        for (var c = 0; c < objcheck.length; c++)
692        {
693            if (objcheck[c].checked == "1")
694            {
695                chkcount++;
696            } //if
697        } //for
698    }
699    else
700    {
701        chkcount = (objcheck.checked == "1") ? 1 : 0;
702    }
703    var minsel = eval(strMinSel);
704    if (chkcount < minsel)
705    {
706        if (!strError || strError.length == 0)
707        {
708            strError = "Please Select atleast" + minsel + " check boxes for" + objValue.name;
709        } //if                                                               
710        sfm_show_error_msg(strError, objValue);
711        bret = false;
712    }
713    return bret;
714}
715
716function TestSelMax(objValue, strMaxSel, strError)
717{
718    var bret = true;
719    var objcheck = objValue.form.elements[objValue.name];
720    var chkcount = 0;
721    if (objcheck.length)
722    {
723        for (var c = 0; c < objcheck.length; c++)
724        {
725            if (objcheck[c].checked == "1")
726            {
727                chkcount++;
728            } //if
729        } //for
730    }
731    else
732    {
733        chkcount = (objcheck.checked == "1") ? 1 : 0;
734    }
735    var maxsel = eval(strMaxSel);
736    if (chkcount > maxsel)
737    {
738        if (!strError || strError.length == 0)
739        {
740            strError = "Please Select atmost " + maxsel + " check boxes for" + objValue.name;
741        } //if                                                               
742        sfm_show_error_msg(strError, objValue);
743        bret = false;
744    }
745    return bret;
746}
747
748function IsCheckSelected(objValue, chkValue)
749{
750    var selected = false;
751    var objcheck = objValue.form.elements[objValue.name];
752    if (objcheck.length)
753    {
754        var idxchk = -1;
755        for (var c = 0; c < objcheck.length; c++)
756        {
757            if (objcheck[c].value == chkValue)
758            {
759                idxchk = c;
760                break;
761            } //if
762        } //for
763        if (idxchk >= 0)
764        {
765            if (objcheck[idxchk].checked == "1")
766            {
767                selected = true;
768            }
769        } //if
770    }
771    else
772    {
773        if (objValue.checked == "1")
774        {
775            selected = true;
776        } //if
777    } //else  
778    return selected;
779}
780
781function TestDontSelectChk(objValue, chkValue, strError)
782{
783    var pass = true;
784    pass = IsCheckSelected(objValue, chkValue) ? false : true;
785
786    if (pass == false)
787    {
788        if (!strError || strError.length == 0)
789        {
790            strError = "Can't Proceed as you selected " + objValue.name;
791        } //if          
792        sfm_show_error_msg(strError, objValue);
793
794    }
795    return pass;
796}
797
798function TestShouldSelectChk(objValue, chkValue, strError)
799{
800    var pass = true;
801
802    pass = IsCheckSelected(objValue, chkValue) ? true : false;
803
804    if (pass == false)
805    {
806        if (!strError || strError.length == 0)
807        {
808            strError = "You should select" + objValue.name;
809        } //if          
810        sfm_show_error_msg(strError, objValue);
811
812    }
813    return pass;
814}
815
816function TestRequiredInput(objValue, strError)
817{
818    var ret = true;
819    if (VWZ_IsEmpty(objValue.value))
820    {
821        ret = false;
822    } //if 
823    else if (objValue.getcal && !objValue.getcal())
824    {
825        ret = false;
826    }
827
828    if (!ret)
829    {
830        if (!strError || strError.length == 0)
831        {
832            strError = objValue.name + " : Required Field";
833        } //if 
834        sfm_show_error_msg(strError, objValue);
835    }
836    return ret;
837}
838
839function TestFileExtension(objValue, cmdvalue, strError)
840{
841    var ret = false;
842    var found = false;
843
844    if (objValue.value.length <= 0)
845    { //The 'required' validation is not done here
846        return true;
847    }
848
849    var extns = cmdvalue.split(";");
850    for (var i = 0; i < extns.length; i++)
851    {
852        ext = objValue.value.substr(objValue.value.length - extns[i].length, extns[i].length);
853        ext = ext.toLowerCase();
854        if (ext == extns[i])
855        {
856            found = true;
857            break;
858        }
859    }
860    if (!found)
861    {
862        if (!strError || strError.length == 0)
863        {
864            strError = objValue.name + " allowed file extensions are: " + cmdvalue;
865        } //if 
866        sfm_show_error_msg(strError, objValue);
867        ret = false;
868    }
869    else
870    {
871        ret = true;
872    }
873    return ret;
874}
875
876function TestMaxLen(objValue, strMaxLen, strError)
877{
878    var ret = true;
879    if (eval(objValue.value.length) > eval(strMaxLen))
880    {
881        if (!strError || strError.length == 0)
882        {
883            strError = objValue.name + " : " + strMaxLen + " characters maximum ";
884        } //if 
885        sfm_show_error_msg(strError, objValue);
886        ret = false;
887    } //if 
888    return ret;
889}
890
891function TestMinLen(objValue, strMinLen, strError)
892{
893    var ret = true;
894    if (eval(objValue.value.length) < eval(strMinLen))
895    {
896        if (!strError || strError.length == 0)
897        {
898            strError = objValue.name + " : " + strMinLen + " characters minimum  ";
899        } //if               
900        sfm_show_error_msg(strError, objValue);
901        ret = false;
902    } //if 
903    return ret;
904}
905
906function TestInputType(objValue, strRegExp, strError, strDefaultError)
907{
908    var ret = true;
909
910    var charpos = objValue.value.search(strRegExp);
911    if (objValue.value.length > 0 && charpos >= 0)
912    {
913        if (!strError || strError.length == 0)
914        {
915            strError = strDefaultError;
916        } //if 
917        sfm_show_error_msg(strError, objValue);
918        ret = false;
919    } //if 
920    return ret;
921}
922
923function TestEmail(objValue, strError)
924{
925    var ret = true;
926    if (objValue.value.length > 0 && !validateEmail(objValue.value))
927    {
928        if (!strError || strError.length == 0)
929        {
930            strError = objValue.name + ": Enter a valid Email address ";
931        } //if                                               
932        sfm_show_error_msg(strError, objValue);
933        ret = false;
934    } //if 
935    return ret;
936}
937
938function TestLessThan(objValue, strLessThan, strError)
939{
940    var ret = true;
941    var obj_value = objValue.value.replace(/\,/g, "");
942    strLessThan = strLessThan.replace(/\,/g, "");
943
944    if (isNaN(obj_value))
945    {
946        sfm_show_error_msg(objValue.name + ": Should be a number ", objValue);
947        ret = false;
948    } //if 
949    else if (eval(obj_value) >= eval(strLessThan))
950    {
951        if (!strError || strError.length == 0)
952        {
953            strError = objValue.name + " : value should be less than " + strLessThan;
954        } //if               
955        sfm_show_error_msg(strError, objValue);
956        ret = false;
957    } //if   
958    return ret;
959}
960
961function TestGreaterThan(objValue, strGreaterThan, strError)
962{
963    var ret = true;
964    var obj_value = objValue.value.replace(/\,/g, "");
965    strGreaterThan = strGreaterThan.replace(/\,/g, "");
966
967    if (isNaN(obj_value))
968    {
969        sfm_show_error_msg(objValue.name + ": Should be a number ", objValue);
970        ret = false;
971    } //if 
972    else if (eval(obj_value) <= eval(strGreaterThan))
973    {
974        if (!strError || strError.length == 0)
975        {
976            strError = objValue.name + " : value should be greater than " + strGreaterThan;
977        } //if               
978        sfm_show_error_msg(strError, objValue);
979        ret = false;
980    } //if  
981    return ret;
982}
983
984function TestRegExp(objValue, strRegExp, strError)
985{
986    var ret = true;
987    if (objValue.value.length > 0 && !objValue.value.match(strRegExp))
988    {
989        if (!strError || strError.length == 0)
990        {
991            strError = objValue.name + ": Invalid characters found ";
992        } //if                                                               
993        sfm_show_error_msg(strError, objValue);
994        ret = false;
995    } //if 
996    return ret;
997}
998
999function TestDontSelect(objValue, dont_sel_value, strError)
1000{
1001    var ret = true;
1002    if (objValue.value == null)
1003    {
1004        sfm_show_error_msg("Error: dontselect command for non-select Item", objValue);
1005        ret = false;
1006    }
1007    else if (objValue.value == dont_sel_value)
1008    {
1009        if (!strError || strError.length == 0)
1010        {
1011            strError = objValue.name + ": Please Select one option ";
1012        } //if                                                               
1013        sfm_show_error_msg(strError, objValue);
1014        ret = false;
1015    }
1016    return ret;
1017}
1018
1019function TestSelectOneRadio(objValue, strError)
1020{
1021    var objradio = objValue.form.elements[objValue.name];
1022    var one_selected = false;
1023    for (var r = 0; r < objradio.length; r++)
1024    {
1025        if (objradio[r].checked == "1")
1026        {
1027            one_selected = true;
1028            break;
1029        }
1030    }
1031    if (false == one_selected)
1032    {
1033        if (!strError || strError.length == 0)
1034        {
1035            strError = "Please select one option from " + objValue.name;
1036        }
1037        sfm_show_error_msg(strError, objValue);
1038    }
1039    return one_selected;
1040}
1041
1042function TestSelectRadio(objValue, cmdvalue, strError, testselect)
1043{
1044    var objradio = objValue.form.elements[objValue.name];
1045    var selected = false;
1046
1047    for (var r = 0; r < objradio.length; r++)
1048    {
1049        if (objradio[r].value == cmdvalue && objradio[r].checked == "1")
1050        {
1051            selected = true;
1052            break;
1053        }
1054    }
1055    if (testselect == true && false == selected || testselect == false && true == selected)
1056    {
1057        sfm_show_error_msg(strError, objValue);
1058        return false;
1059    }
1060    return true;
1061}
1062
1063
1064//*  Checks each field in a form 
1065
1066
1067function validateInput(strValidateStr, objValue, strError)
1068{
1069
1070    var ret = true;
1071    var epos = strValidateStr.search("=");
1072    var command = "";
1073    var cmdvalue = "";
1074    if (epos >= 0)
1075    {
1076        command = strValidateStr.substring(0, epos);
1077        cmdvalue = strValidateStr.substr(epos + 1);
1078    }
1079    else
1080    {
1081        command = strValidateStr;
1082    }
1083
1084    switch (command)
1085    {
1086    case "req":
1087    case "required":
1088        {
1089            ret = TestRequiredInput(objValue, strError)
1090            break;
1091        }
1092    case "maxlength":
1093    case "maxlen":
1094        {
1095            ret = TestMaxLen(objValue, cmdvalue, strError)
1096            break;
1097        }
1098    case "minlength":
1099    case "minlen":
1100        {
1101            ret = TestMinLen(objValue, cmdvalue, strError)
1102            break;
1103        }
1104    case "alnum":
1105    case "alphanumeric":
1106        {
1107            ret = TestInputType(objValue, "[^A-Za-z0-9]", strError, objValue.name + ": Only alpha-numeric characters allowed ");
1108            break;
1109        }
1110    case "alnum_s":
1111    case "alphanumeric_space":
1112        {
1113            ret = TestInputType(objValue, "[^A-Za-z0-9\\s]", strError, objValue.name + ": Only alpha-numeric characters and space allowed ");
1114            break;
1115        }
1116    case "num":
1117    case "numeric":
1118    case "dec": 
1119    case "decimal": 
1120        {
1121            if (objValue.value.length > 0 && !objValue.value.match(/^[\-\+]?[\d\,]*\.?[\d]*$/))
1122            {
1123                sfm_show_error_msg(strError, objValue);
1124                ret = false;
1125            } //if 
1126            break;
1127        }
1128    case "alphabetic":
1129    case "alpha":
1130        {
1131            ret = TestInputType(objValue, "[^A-Za-z]", strError, objValue.name + ": Only alphabetic characters allowed ");
1132            break;
1133        }
1134    case "alphabetic_space":
1135    case "alpha_s":
1136        {
1137            ret = TestInputType(objValue, "[^A-Za-z\\s]", strError, objValue.name + ": Only alphabetic characters and space allowed ");
1138            break;
1139        }
1140    case "email":
1141        {
1142            ret = TestEmail(objValue, strError);
1143            break;
1144        }
1145    case "lt":
1146    case "lessthan":
1147        {
1148            ret = TestLessThan(objValue, cmdvalue, strError);
1149            break;
1150        }
1151    case "gt":
1152    case "greaterthan":
1153        {
1154            ret = TestGreaterThan(objValue, cmdvalue, strError);
1155            break;
1156        }
1157    case "regexp":
1158        {
1159            ret = TestRegExp(objValue, cmdvalue, strError);
1160            break;
1161        }
1162    case "dontselect":
1163        {
1164            ret = TestDontSelect(objValue, cmdvalue, strError)
1165            break;
1166        }
1167    case "dontselectchk":
1168        {
1169            ret = TestDontSelectChk(objValue, cmdvalue, strError)
1170            break;
1171        }
1172    case "shouldselchk":
1173        {
1174            ret = TestShouldSelectChk(objValue, cmdvalue, strError)
1175            break;
1176        }
1177    case "selmin":
1178        {
1179            ret = TestSelMin(objValue, cmdvalue, strError);
1180            break;
1181        }
1182    case "selmax":
1183        {
1184            ret = TestSelMax(objValue, cmdvalue, strError);
1185            break;
1186        }
1187    case "selone_radio":
1188    case "selone":
1189        {
1190            ret = TestSelectOneRadio(objValue, strError);
1191            break;
1192        }
1193    case "dontselectradio":
1194        {
1195            ret = TestSelectRadio(objValue, cmdvalue, strError, false);
1196            break;
1197        }
1198    case "selectradio":
1199        {
1200            ret = TestSelectRadio(objValue, cmdvalue, strError, true);
1201            break;
1202        }
1203        //Comparisons
1204    case "eqelmnt":
1205    case "ltelmnt":
1206    case "leelmnt":
1207    case "gtelmnt":
1208    case "geelmnt":
1209    case "neelmnt":
1210        {
1211            return TestComparison(objValue, cmdvalue, command, strError);
1212            break;
1213        }
1214    case "req_file":
1215        {
1216            ret = TestRequiredInput(objValue, strError);
1217            break;
1218        }
1219    case "file_extn":
1220        {
1221            ret = TestFileExtension(objValue, cmdvalue, strError);
1222            break;
1223        }
1224
1225    } //switch 
1226    return ret;
1227}
1228
1229function VWZ_IsListItemSelected(listname, value)
1230{
1231    for (var i = 0; i < listname.options.length; i++)
1232    {
1233        if (listname.options[i].selected == true && listname.options[i].value == value)
1234        {
1235            return true;
1236        }
1237    }
1238    return false;
1239}
1240
1241function VWZ_IsChecked(objcheck, value)
1242{
1243    if (objcheck.length)
1244    {
1245        for (var c = 0; c < objcheck.length; c++)
1246        {
1247            if (objcheck[c].checked == "1" && objcheck[c].value == value)
1248            {
1249                return true;
1250            }
1251        }
1252    }
1253    else
1254    {
1255        if (objcheck.checked == "1")
1256        {
1257            return true;
1258        }
1259    }
1260    return false;
1261}
1262
1263function sfm_str_trim(strIn)
1264{
1265    return strIn.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
1266}
1267
1268function VWZ_IsEmpty(value)
1269{
1270    value = sfm_str_trim(value);
1271    return (value.length) == 0 ? true : false;
1272}
1273/*
1274	Copyright (C) 2003-2011 JavaScript-Coder.com . All rights reserved.
1275*/

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.