PageSourceSearch

https://daisymountainrealestate.com/website/forms/includes/gen_validatorv31.js

js daisymountainrealestate.com collected 2026-10-04 08:01:43 UTC 19,290 bytes, 779 lines download raw bytes

1/*
2  -------------------------------------------------------------------------
3		      JavaScript Form Validator (gen_validatorv31.js)
4              Version 3.1.1
5	Copyright (C) 2003-2008 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*/
17function Validator(frmname)
18{
19  this.formobj=document.forms[frmname];
20	if(!this.formobj)
21	{
22	  alert("Error: couldnot get Form object "+frmname);
23		return;
24	}
25	if(this.formobj.onsubmit)
26	{
27	 this.formobj.old_onsubmit = this.formobj.onsubmit;
28	 this.formobj.onsubmit=null;
29	}
30	else
31	{
32	 this.formobj.old_onsubmit = null;
33	}
34	this.formobj._sfm_form_name=frmname;
35	this.formobj.onsubmit=form_submit_handler;
36	this.addValidation = add_validation;
37	this.setAddnlValidationFunction=set_addnl_vfunction;
38	this.clearAllValidations = clear_all_validations;
39    this.disable_validations = false;//new
40    document.error_disp_handler = new sfm_ErrorDisplayHandler();
41    this.EnableOnPageErrorDisplay=validator_enable_OPED;
42	this.EnableOnPageErrorDisplaySingleBox=validator_enable_OPED_SB;
43    this.show_errors_together=true;
44    this.EnableMsgsTogether=sfm_enable_show_msgs_together;
45}
46function set_addnl_vfunction(functionname)
47{
48  this.formobj.addnlvalidation = functionname;
49}
50function sfm_enable_show_msgs_together()
51{
52    this.show_errors_together=true;
53    this.formobj.show_errors_together=true;
54}
55function clear_all_validations()
56{
57	for(var itr=0;itr < this.formobj.elements.length;itr++)
58	{
59		this.formobj.elements[itr].validationset = null;
60	}
61}
62function form_submit_handler()
63{
64   var bRet = true;
65    document.error_disp_handler.clear_msgs();
66	for(var itr=0;itr < this.elements.length;itr++)
67	{
68		if(this.elements[itr].validationset &&
69	   !this.elements[itr].validationset.validate())
70		{
71		  bRet = false;
72		}
73        if(!bRet && !this.show_errors_together)
74        {
75          break;
76        }
77	}
78    if(!bRet)
79    {
80      document.error_disp_handler.FinalShowMsg();
81      return false;
82    }
83
84	if(this.addnlvalidation)
85	{
86	  str =" var ret = "+this.addnlvalidation+"()";
87	  eval(str);
88    if(!ret) return ret;
89	}
90	return true;
91}
92function add_validation(itemname,descriptor,errstr)
93{
94	var condition = null;
95	if(arguments.length > 3)
96	{
97	 condition = arguments[3]; 
98	}
99  if(!this.formobj)
100	{
101		alert("Error: The form object is not set properly");
102		return;
103	}//if
104	var itemobj = this.formobj[itemname];
105    if(itemobj.length && isNaN(itemobj.selectedIndex) )
106    //for radio button; don't do for 'select' item
107	{
108		itemobj = itemobj[0];
109	}	
110  if(!itemobj)
111	{
112		alert("Error: Couldnot get the input object named: "+itemname);
113		return;
114	}
115	if(!itemobj.validationset)
116	{
117		itemobj.validationset = new ValidationSet(itemobj,this.show_errors_together);
118	}
119	itemobj.validationset.add(descriptor,errstr,condition);
120    itemobj.validatorobj=this;
121}
122function validator_enable_OPED()
123{
124    document.error_disp_handler.EnableOnPageDisplay(false);
125}
126
127function validator_enable_OPED_SB()
128{
129	document.error_disp_handler.EnableOnPageDisplay(true);
130}
131function sfm_ErrorDisplayHandler()
132{
133  this.msgdisplay = new AlertMsgDisplayer();
134  this.EnableOnPageDisplay= edh_EnableOnPageDisplay;
135  this.ShowMsg=edh_ShowMsg;
136  this.FinalShowMsg=edh_FinalShowMsg;
137  this.all_msgs=new Array();
138  this.clear_msgs=edh_clear_msgs;
139}
140function edh_clear_msgs()
141{
142    this.msgdisplay.clearmsg(this.all_msgs);
143    this.all_msgs = new Array();
144}
145function edh_FinalShowMsg()
146{
147    this.msgdisplay.showmsg(this.all_msgs);
148}
149function edh_EnableOnPageDisplay(single_box)
150{
151	if(true == single_box)
152	{
153		this.msgdisplay = new SingleBoxErrorDisplay();
154	}
155	else
156	{
157		this.msgdisplay = new DivMsgDisplayer();		
158	}
159}
160function edh_ShowMsg(msg,input_element)
161{
162	
163   var objmsg = new Array();
164   objmsg["input_element"] = input_element;
165   objmsg["msg"] =  msg;
166   this.all_msgs.push(objmsg);
167}
168function AlertMsgDisplayer()
169{
170  this.showmsg = alert_showmsg;
171  this.clearmsg=alert_clearmsg;
172}
173function alert_clearmsg(msgs)
174{
175
176}
177function alert_showmsg(msgs)
178{
179    var whole_msg="";
180    var first_elmnt=null;
181    for(var m=0;m < msgs.length;m++)
182    {
183        if(null == first_elmnt)
184        {
185            first_elmnt = msgs[m]["input_element"];
186        }
187        whole_msg += msgs[m]["msg"] + "\n";
188    }
189	
190    alert(whole_msg);
191
192    if(null != first_elmnt)
193    {
194        first_elmnt.focus();
195    }
196}
197function sfm_show_error_msg(msg,input_elmt)
198{
199    document.error_disp_handler.ShowMsg(msg,input_elmt);
200}
201function SingleBoxErrorDisplay()
202{
203 this.showmsg=sb_div_showmsg;
204 this.clearmsg=sb_div_clearmsg;
205}
206
207function sb_div_clearmsg(msgs)
208{
209	var divname = form_error_div_name(msgs);
210	show_div_msg(divname,"");
211}
212
213function sb_div_showmsg(msgs)
214{
215	var whole_msg="<ul>\n";
216	for(var m=0;m < msgs.length;m++)
217    {
218        whole_msg += "<li>" + msgs[m]["msg"] + "</li>\n";
219    }
220	whole_msg += "</ul>";
221	var divname = form_error_div_name(msgs);
222	show_div_msg(divname,whole_msg);
223}
224function form_error_div_name(msgs)
225{
226	var input_element= null;
227
228	for(var m in msgs)
229	{
230	 input_element = msgs[m]["input_element"];
231	 if(input_element){break;}
232	}
233
234	var divname ="";
235	if(input_element)
236	{
237	 divname = input_element.form._sfm_form_name + "_errorloc";
238	}
239
240	return divname;
241}
242function DivMsgDisplayer()
243{
244 this.showmsg=div_showmsg;
245 this.clearmsg=div_clearmsg;
246}
247function div_clearmsg(msgs)
248{
249    for(var m in msgs)
250    {
251        var divname = element_div_name(msgs[m]["input_element"]);
252        show_div_msg(divname,"");
253    }
254}
255function element_div_name(input_element)
256{
257  var divname = input_element.form._sfm_form_name + "_" + 
258                   input_element.name + "_errorloc";
259
260  divname = divname.replace(/[\[\]]/gi,"");
261
262  return divname;
263}
264function div_showmsg(msgs)
265{
266    var whole_msg;
267    var first_elmnt=null;
268    for(var m in msgs)
269    {
270        if(null == first_elmnt)
271        {
272            first_elmnt = msgs[m]["input_element"];
273        }
274        var divname = element_div_name(msgs[m]["input_element"]);
275        show_div_msg(divname,msgs[m]["msg"]);
276    }
277    if(null != first_elmnt)
278    {
279        first_elmnt.focus();
280    }
281}
282function show_div_msg(divname,msgstring)
283{
284	if(divname.length<=0) return false;
285
286	if(document.layers)
287	{
288		divlayer = document.layers[divname];
289        if(!divlayer){return;}
290		divlayer.document.open();
291		divlayer.document.write(msgstring);
292		divlayer.document.close();
293	}
294	else
295	if(document.all)
296	{
297		divlayer = document.all[divname];
298        if(!divlayer){return;}
299		divlayer.innerHTML=msgstring;
300	}
301	else
302	if(document.getElementById)
303	{
304		divlayer = document.getElementById(divname);
305        if(!divlayer){return;}
306		divlayer.innerHTML =msgstring;
307	}
308	divlayer.style.visibility="visible";	
309	return false;
310}
311function ValidationDesc(inputitem,desc,error,condition)
312{
313  this.desc=desc;
314	this.error=error;
315	this.itemobj = inputitem;
316	this.condition = condition;
317	this.validate=vdesc_validate;
318}
319function vdesc_validate()
320{
321	if(this.condition != null )
322	{
323		if(!eval(this.condition))
324		{
325			return true;
326		}
327	}
328	if(!validateInput(this.desc,this.itemobj,this.error))
329	{
330		this.itemobj.validatorobj.disable_validations=true;
331		this.itemobj.focus();
332		return false;
333	}
334	return true;
335}
336function ValidationSet(inputitem,msgs_together)
337{
338    this.vSet=new Array();
339	this.add= add_validationdesc;
340	this.validate= vset_validate;
341	this.itemobj = inputitem;
342    this.msgs_together = msgs_together;
343}
344function add_validationdesc(desc,error,condition)
345{
346  this.vSet[this.vSet.length]= 
347  new ValidationDesc(this.itemobj,desc,error,condition);
348}
349function vset_validate()
350{
351    var bRet = true;
352    for(var itr=0;itr<this.vSet.length;itr++)
353    {
354        bRet = bRet && this.vSet[itr].validate();
355        if(!bRet && !this.msgs_together)
356        {
357            break;
358        }
359    }
360    return bRet;
361}
362function validateEmail(email)
363{
364    var splitted = email.match("^(.+)@(.+)$");
365    if(splitted == null) return false;
366    if(splitted[1] != null )
367    {
368      var regexp_user=/^\"?[\w-_\.]*\"?$/;
369      if(splitted[1].match(regexp_user) == null) return false;
370    }
371    if(splitted[2] != null)
372    {
373      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
374      if(splitted[2].match(regexp_domain) == null) 
375      {
376	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
377	    if(splitted[2].match(regexp_ip) == null) return false;
378      }// if
379      return true;
380    }
381return false;
382}
383
384function IsCheckSelected(objValue,chkValue)
385{
386    var selected=false;
387	var objcheck = objValue.form.elements[objValue.name];
388    if(objcheck.length)
389	{
390		var idxchk=-1;
391		for(var c=0;c < objcheck.length;c++)
392		{
393		   if(objcheck[c].value == chkValue)
394		   {
395		     idxchk=c;
396			 break;
397		   }//if
398		}//for
399		if(idxchk>= 0)
400		{
401		  if(objcheck[idxchk].checked=="1")
402		  {
403		    selected=true;
404		  }
405		}//if
406	}
407	else
408	{
409		if(objValue.checked == "1")
410		{
411			selected=true;
412		}//if
413	}//else	
414
415	return selected;
416}
417function TestDontSelectChk(objValue,chkValue,strError)
418{
419	var pass = true;
420	pass = IsCheckSelected(objValue,chkValue)?false:true;
421
422	if(pass==false)
423	{
424     if(!strError || strError.length ==0) 
425        { 
426        	strError = "Can't Proceed as you selected "+objValue.name;  
427        }//if			  
428	  sfm_show_error_msg(strError,objValue);
429	  
430	}
431    return pass;
432}
433function TestShouldSelectChk(objValue,chkValue,strError)
434{
435	var pass = true;
436
437	pass = IsCheckSelected(objValue,chkValue)?true:false;
438
439	if(pass==false)
440	{
441     if(!strError || strError.length ==0) 
442        { 
443        	strError = "You should select "+objValue.name;  
444        }//if			  
445	  sfm_show_error_msg(strError,objValue);
446	  
447	}
448    return pass;
449}
450function TestRequiredInput(objValue,strError)
451{
452 var ret = true;
453 var val = objValue.value;
454 val = val.replace(/^\s+|\s+$/g,"");//trim
455    if(eval(val.length) == 0) 
456    { 
457       if(!strError || strError.length ==0) 
458       { 
459         strError = objValue.name + " : Required Field"; 
460       }//if 
461       sfm_show_error_msg(strError,objValue); 
462       ret=false; 
463    }//if 
464return ret;
465}
466function TestMaxLen(objValue,strMaxLen,strError)
467{
468 var ret = true;
469    if(eval(objValue.value.length) > eval(strMaxLen)) 
470    { 
471      if(!strError || strError.length ==0) 
472      { 
473        strError = objValue.name + " : "+ strMaxLen +" characters maximum "; 
474      }//if 
475      sfm_show_error_msg(strError,objValue); 
476      ret = false; 
477    }//if 
478return ret;
479}
480function TestMinLen(objValue,strMinLen,strError)
481{
482 var ret = true;
483    if(eval(objValue.value.length) <  eval(strMinLen)) 
484    { 
485      if(!strError || strError.length ==0) 
486      { 
487        strError = objValue.name + " : " + strMinLen + " characters minimum  "; 
488      }//if               
489      sfm_show_error_msg(strError,objValue); 
490      ret = false;   
491    }//if 
492return ret;
493}
494function TestInputType(objValue,strRegExp,strError,strDefaultError)
495{
496   var ret = true;
497
498    var charpos = objValue.value.search(strRegExp); 
499    if(objValue.value.length > 0 &&  charpos >= 0) 
500    { 
501     if(!strError || strError.length ==0) 
502      { 
503        strError = strDefaultError;
504      }//if 
505      sfm_show_error_msg(strError,objValue); 
506      ret = false; 
507    }//if 
508 return ret;
509}
510function TestEmail(objValue,strError)
511{
512var ret = true;
513     if(objValue.value.length > 0 && !validateEmail(objValue.value)	 ) 
514     { 
515       if(!strError || strError.length ==0) 
516       { 
517          strError = objValue.name+": Enter a valid Email address "; 
518       }//if                                               
519       sfm_show_error_msg(strError,objValue); 
520       ret = false; 
521     }//if 
522return ret;
523}
524function TestLessThan(objValue,strLessThan,strError)
525{
526var ret = true;
527	  if(isNaN(objValue.value)) 
528	  { 
529	    sfm_show_error_msg(objValue.name +": Should be a number ",objValue); 
530	    ret = false; 
531	  }//if 
532	  else
533	  if(eval(objValue.value) >=  eval(strLessThan)) 
534	  { 
535	    if(!strError || strError.length ==0) 
536	    { 
537	      strError = objValue.name + " : value should be less than "+ strLessThan; 
538	    }//if               
539	    sfm_show_error_msg(strError,objValue); 
540	    ret = false;                 
541	   }//if   
542return ret;          
543}
544function TestGreaterThan(objValue,strGreaterThan,strError)
545{
546var ret = true;
547     if(isNaN(objValue.value)) 
548     { 
549       sfm_show_error_msg(objValue.name+": Should be a number ",objValue); 
550       ret = false; 
551     }//if 
552	 else
553     if(eval(objValue.value) <=  eval(strGreaterThan)) 
554      { 
555        if(!strError || strError.length ==0) 
556        { 
557          strError = objValue.name + " : value should be greater than "+ strGreaterThan; 
558        }//if               
559        sfm_show_error_msg(strError,objValue);  
560        ret = false;
561      }//if  
562return ret;           
563}
564function TestRegExp(objValue,strRegExp,strError)
565{
566var ret = true;
567    if( objValue.value.length > 0 && 
568        !objValue.value.match(strRegExp) ) 
569    { 
570      if(!strError || strError.length ==0) 
571      { 
572        strError = objValue.name+": Invalid characters found "; 
573      }//if                                                               
574      sfm_show_error_msg(strError,objValue); 
575      ret = false;                   
576    }//if 
577return ret;
578}
579function TestDontSelect(objValue,dont_sel_index,strError)
580{
581var ret = true;
582    if(objValue.selectedIndex == null) 
583    { 
584      sfm_show_error_msg("ERROR: dontselect command for non-select Item"); 
585      ret =  false; 
586    } 
587    if(objValue.selectedIndex == eval(dont_sel_index)) 
588    { 
589     if(!strError || strError.length ==0) 
590      { 
591      strError = objValue.name+": Please Select one option "; 
592      }//if                                                               
593      sfm_show_error_msg(strError,objValue); 
594      ret =  false;                                   
595     } 
596return ret;
597}
598function TestSelectOneRadio(objValue,strError)
599{
600	var objradio = objValue.form.elements[objValue.name];
601	var one_selected=false;
602	for(var r=0;r < objradio.length;r++)
603	{
604	  if(objradio[r].checked)
605	  {
606	  	one_selected=true;
607		break;
608	  }
609	}
610	if(false == one_selected)
611	{
612      if(!strError || strError.length ==0) 
613       {
614	    strError = "Please select one option from "+objValue.name;
615	   }	
616	  sfm_show_error_msg(strError,objValue);
617	}
618return one_selected;
619}
620
621function validateInput(strValidateStr,objValue,strError) 
622{ 
623    var ret = true;
624    var epos = strValidateStr.search("="); 
625    var  command  = ""; 
626    var  cmdvalue = ""; 
627    if(epos >= 0) 
628    { 
629     command  = strValidateStr.substring(0,epos); 
630     cmdvalue = strValidateStr.substr(epos+1); 
631    } 
632    else 
633    { 
634     command = strValidateStr; 
635    } 
636    switch(command) 
637    { 
638        case "req": 
639        case "required": 
640         { 
641		   ret = TestRequiredInput(objValue,strError)
642           break;             
643         }//case required 
644        case "maxlength": 
645        case "maxlen": 
646          { 
647			 ret = TestMaxLen(objValue,cmdvalue,strError)
648             break; 
649          }//case maxlen 
650        case "minlength": 
651        case "minlen": 
652           { 
653			 ret = TestMinLen(objValue,cmdvalue,strError)
654             break; 
655            }//case minlen 
656        case "alnum": 
657        case "alphanumeric": 
658           { 
659				ret = TestInputType(objValue,"[^A-Za-z0-9]",strError, 
660						objValue.name+": Only alpha-numeric characters allowed ");
661				break; 
662           }
663        case "alnum_s": 
664        case "alphanumeric_space": 
665           { 
666				ret = TestInputType(objValue,"[^A-Za-z0-9\\s]",strError, 
667						objValue.name+": Only alpha-numeric characters and space allowed ");
668				break; 
669           }		   
670        case "num": 
671        case "numeric": 
672           { 
673                ret = TestInputType(objValue,"[^0-9]",strError, 
674						objValue.name+": Only digits allowed ");
675                break;               
676           }
677        case "dec": 
678        case "decimal": 
679           { 
680                ret = TestInputType(objValue,"[^0-9\.]",strError, 
681						objValue.name+": Only numbers allowed ");
682                break;               
683           }
684        case "alphabetic": 
685        case "alpha": 
686           { 
687                ret = TestInputType(objValue,"[^A-Za-z]",strError, 
688						objValue.name+": Only alphabetic characters allowed ");
689                break; 
690           }
691        case "alphabetic_space": 
692        case "alpha_s": 
693           { 
694                ret = TestInputType(objValue,"[^A-Za-z\\s]",strError, 
695						objValue.name+": Only alphabetic characters and space allowed ");
696                break; 
697           }
698        case "email": 
699          { 
700			   ret = TestEmail(objValue,strError);
701               break; 
702          }
703        case "lt": 
704        case "lessthan": 
705         { 
706    	      ret = TestLessThan(objValue,cmdvalue,strError);
707              break; 
708         }
709        case "gt": 
710        case "greaterthan": 
711         { 
712			ret = TestGreaterThan(objValue,cmdvalue,strError);
713            break; 
714         }//case greaterthan 
715        case "regexp": 
716         { 
717			ret = TestRegExp(objValue,cmdvalue,strError);
718           break; 
719         }
720        case "dontselect": 
721         { 
722			 ret = TestDontSelect(objValue,cmdvalue,strError)
723             break; 
724         }
725		case "dontselectchk":
726		{
727			ret = TestDontSelectChk(objValue,cmdvalue,strError)
728			break;
729		}
730		case "shouldselchk":
731		{
732			ret = TestShouldSelectChk(objValue,cmdvalue,strError)
733			break;
734		}
735		case "selone_radio":
736		{
737			ret = TestSelectOneRadio(objValue,strError);
738		    break;
739		}		 
740    }//switch 
741	return ret;
742}
743function VWZ_IsListItemSelected(listname,value)
744{
745 for(var i=0;i < listname.options.length;i++)
746 {
747  if(listname.options[i].selected == true &&
748   listname.options[i].value == value) 
749   {
750     return true;
751   }
752 }
753 return false;
754}
755function VWZ_IsChecked(objcheck,value)
756{
757 if(objcheck.length)
758 {
759     for(var c=0;c < objcheck.length;c++)
760     {
761       if(objcheck[c].checked == "1" && 
762	     objcheck[c].value == value)
763       {
764        return true; 
765       }
766     }
767 }
768 else
769 {
770  if(objcheck.checked == "1" )
771   {
772    return true; 
773   }    
774 }
775 return false;
776}
777/*
778	Copyright (C) 2003-2008 JavaScript-Coder.com . All rights reserved.
779*/

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.