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