PageSourceSearch

https://www.metobr-expo.ru/common/js/check_form.js

js metobr-expo.ru collected 2026-10-02 04:55:13 UTC 9,008 bytes, 354 lines download raw bytes

1
2var prefixes=new Array();
3prefixes["_checked_"]=validate_checked;
4prefixes["_nonempty_"]=validate_nonempty;
5prefixes["_email_"]=validate_email;
6prefixes["_date_"]=validate_date;
7prefixes["_time_"]=validate_time;
8prefixes["_datetime_"]=validate_datetime;
9prefixes["_number_"]=validate_number;
10prefixes["_select_"]=validate_select;
11prefixes["_radio_"]=validate_radio;
12prefixes["_alphastring_"]=validate_alphastring;
13prefixes["_login_"]=validate_login;
14prefixes["_dirname_"]=validate_dirname;
15//marhipov
16prefixes["_nonemptyalt_"]=validate_nonemptyalt;
17prefixes["_nonempchkgroup_"]=validate_nonempchkgroup;
18
19//
20
21warnings=new Array();
22warnings["_nonempty_"]="Íå çàïîëíåíî îáÿçàòåëüíîå ïîëå";
23warnings["_email_"]="Íåâåðíûé ôîðìàò email";
24warnings["_date_"]="Íåâåðíûé ôîðìàò äàòû(DD.MM.YYYY)";
25warnings["_time_"]="Íåâåðíûé ôîðìàò âðåìåíè(HH:MM)";
26warnings["_datetime_"]="Íåâåðíûé ôîðìàò äàòû è âðåìåíè(DD.MM.YYYY HH:MM)";
27warnings["_number_"]="Íåâåðíûé ôîðìàò ÷èñëà";
28warnings["_select_"]="Íå âûáðàíî ïîëå";
29warnings["_radio_"]="Íå âûáðàíî ïîëå";
30warnings["_alphastring_"]="Íåâåðíûé ôîðìàò(ñòðîêà èç ëàòèíñêèõ áóêâ)";
31warnings["_login_"]="Íåâåðíûé ôîðìàò(ñòðîêà èç öèôð èëè ëàòèíñêèõ áóêâ áåç ïðîáåëîâ)";
32//marhipov
33warnings["_nonemptyalt_"]="Íå çàïîëíåíî îáÿçàòåëüíîå ïîëå";
34warnings["_checked_"]="Íå çàïîëíåíî îáÿçàòåëüíîå ïîëå";
35warnings["_nonempchkgroup_"]="Íå çàïîëíåíî îáÿçàòåëüíîå ïîëå";
36//
37warnings["_dirname_"]="Íåâåðíûé ôîðìàò íàçâàíèÿ äèðåêòîðèè (ñòðîêà èç ëàòèíñêèõ áóêâ áåç ïðîáåëîâ)";
38
39var checked_fields=new Array();
40var GetPrefixPos=0;
41var f;
42
43function CheckMandatoryFields(form) {
44	f=document.forms[form];
45	var prefix;
46	var c;
47	var i;
48	var flag=true;
49	var element_name;
50	var item;
51	var form_length=f.elements.length;
52
53	for(c=0;c<form_length;c++) {
54		item=f.elements[c];
55		element_name=item.name;
56		if(typeof  element_name == "undefined")
57			{
58				element_name = "";
59			}
60		while((prefix=getNextPrefix(element_name))!="" && !item.disabled) {
61			if(!(prefixes[prefix](item))) {
62				alert(warnings[prefix]);
63				// marhipov Ìîäèôèöèðîâàíî äëÿ óñòðàíåíèÿ îøèáêè ïðè îòïðàâêå ôîðìû ñî ñêðûòûìè ïîëÿìè
64				var digits=f.elements[c].name.match("\\d+$");
65				if(!f.elements.check_form_langs)
66					f.elements[c].focus();
67				else
68					{
69					if(f.elements.check_form_langs.value=="" || (!f.elements.check_form_langs.value.match("_"+digits+"_")))
70						f.elements[c].focus();
71					}
72				//
73				GetPrefixPos=0;
74				return false;
75			}
76		}
77	}
78	
79	while(flag) {
80		flag=false;
81		for(c=0;c<form_length;c++) {
82			element_name=f.elements[c].name;
83			if(typeof  element_name == "undefined")
84			{
85				element_name = "";
86			}
87			for(prefix in prefixes) {
88				if(element_name.substring(0,prefix.length)==prefix) {
89					f.elements[c].name=element_name.substring(prefix.length,element_name.length);
90					flag=true;
91				}
92			}
93		}
94	}
95	createObject();
96	return true;
97}
98
99function getNextPrefix(name) {
100	var prefix;
101	for(prefix in prefixes) {
102		if(name.substring(GetPrefixPos,GetPrefixPos+prefix.length)==prefix) {
103			GetPrefixPos+=prefix.length;
104			return prefix;
105		}
106	}
107	GetPrefixPos=0;
108	prefix="";
109	return prefix;
110}
111
112//marhipov
113function validate_nonemptyalt(obj) {
114	var name=obj.name;
115	var new_name,i;
116	new_name='f'+name.match(/\d+a\d+$/);
117	for(i=0;i<f.elements.length;i++)
118		if(f.elements[i].name==new_name || f.elements[i].name=="_radio_"+new_name)
119			if(f.elements[i].value=='alt' && f.elements[i].checked=='1' && obj.value=='')
120				return false;
121	return true;
122}
123
124function validate_nonempchkgroup(obj){
125	var anyonecheck = false;
126	var name=obj.name;
127	var new_name,i;
128	new_name='f'+name.match(/\d+a\d+$/);
129	console.log(obj);
130	for(i=0;i<f.elements.length;i++)
131		if(f.elements[i].name.indexOf(new_name) !== -1)
132		{	
133			if(f.elements[i].checked=='1' || obj.value!='')
134			{
135				anyonecheck = true;
136			}
137		}
138		if(anyonecheck)
139			return true;
140		else
141			return false;
142}
143//
144function validate_checked(obj)
145{
146	if(obj.checked)
147		return true;
148	else
149		return false;
150}
151function validate_email(obj) {
152	var i;
153	var val=obj.value;
154	var state=0;
155	if(val=="") return true;
156	
157	var re;
158	re = /^[\w\.-]+@[\w\.-]+\.\w\w+$/;
159	if ( !obj.value.match(re) ) return false;
160	return true;
161}
162			
163function validate_date(obj) {
164	var i,state=0;
165	var val=obj.value;
166	var dd="",mm="",yyyy="";
167	if(val=="") return true;
168	for(i=0;i<val.length;i++) {
169		switch(state) {
170			case 0:
171				if(val.charAt(i)==".") state=1;
172				else if("0123456789".indexOf(val.charAt(i))==-1) return false;
173				else dd+=val.charAt(i);
174				break;
175			case 1:
176				if(val.charAt(i)==".") state=2;
177				else if("0123456789".indexOf(val.charAt(i))==-1) return false;
178				else mm+=val.charAt(i);
179				break;
180			case 2:
181				if("0123456789".indexOf(val.charAt(i))==-1) return false;
182				else yyyy+=val.charAt(i);
183		}
184	}
185	if(state!=2) return false;
186	if(isNaN(parseInt(dd)) || isNaN(parseInt(mm)) || isNaN(parseInt(yyyy))) return false;
187	if(dd.length != 2 || mm.length !=2 || yyyy.length != 4) return false;
188	if(parseInt(dd) < 0 || parseInt(mm) < 0 || parseInt(dd) > 31 || parseInt(mm) > 12) return false;
189	return true;
190}
191
192function validate_time(obj) {
193	var i,state=0;
194	var val=obj.value;
195	var hh="",mi="";
196	if(val=="") return true;
197	for(i=0;i<val.length;i++) {
198		switch(state) {
199			case 0:
200				if(val.charAt(i)==":") state=1;
201				else if("0123456789".indexOf(val.charAt(i))==-1) return false;
202				else hh+=val.charAt(i);
203				break;
204			case 1:
205				if("0123456789".indexOf(val.charAt(i))==-1) return false;
206				else mi+=val.charAt(i);
207		}
208	}
209	if(state!=1) return false;
210	if(isNaN(parseInt(hh)) || isNaN(parseInt(mi))) return false;
211//marhipov
212	if(hh.length != 2 || mi.length !=2) return false;
213//
214	if(parseInt(hh)>23 || parseInt(mi)<0 || parseInt(mi)>59 || parseInt(mi)<0) return false;
215	return true;
216}
217
218
219function validate_datetime(obj) {
220	var i,state=0;
221	var val=obj.value;
222	var dd="",mm="",yyyy="",hh="",mi="";
223	if(val=="") return true;
224	for(i=0;i<val.length;i++) {
225		switch(state) {
226			case 0:
227				if(val.charAt(i)==".") state=1;
228				else if("0123456789".indexOf(val.charAt(i))==-1) return false;
229				else dd+=val.charAt(i);
230				break;
231			case 1:
232				if(val.charAt(i)==".") state=2;
233				else if("0123456789".indexOf(val.charAt(i))==-1) return false;
234				else mm+=val.charAt(i);
235				break;
236			case 2:
237				if(val.charAt(i)==" ") state=3;
238				else if("0123456789".indexOf(val.charAt(i))==-1) return false;
239				else yyyy+=val.charAt(i);
240				break;
241			case 3:
242				if(val.charAt(i)==":") state=4;
243				else if("0123456789".indexOf(val.charAt(i))==-1) return false;
244				else hh+=val.charAt(i);
245				break;
246			case 4:
247				if("0123456789".indexOf(val.charAt(i))==-1) return false;
248				else mi+=val.charAt(i);
249		}
250	}
251	if(state!=4) return false;
252	
253	if(isNaN(parseInt(dd)) || isNaN(parseInt(mm)) || isNaN(parseInt(yyyy))) return false;
254	if(parseInt(dd) < 0 || parseInt(mm) < 0 || parseInt(dd) > 31 || parseInt(mm) > 12) return false;
255	if(isNaN(parseInt(hh)) || isNaN(parseInt(mi))) return false;
256//marhipov
257	if(hh.length != 2 || mi.length !=2) return false;
258//
259	if(parseInt(hh)>23 || parseInt(mi)<0 || parseInt(mi)>59 || parseInt(mi)<0) return false;
260	return true;
261}
262
263function validate_nonempty(obj) {
264	var val=obj.value;
265	if(val.replace(/(^\s*)|(\s*$)/g, "")=="") return false;
266	return true;
267}
268
269function validate_number(obj) {
270//Èçìåíèÿ: èñïðàâëåí áàã ïðîâåðêè íà ÷èñëî
271//Äàòà èçìåíåíèÿ: 30.10.2003 17:51
272//Àâòîð: Àðõèïîâ Ìàêñèì è Õîëîäèé Àíäðåé
273
274	if (obj.value == "") return true;
275	var re;
276	re = /^-?\d+[\.,]?\d*$/;
277	if ( !obj.value.match(re) ) return false;
278	return true;
279}
280
281function validate_select(obj) {
282	var val=obj.options[obj.selectedIndex].value;
283	if(val==-1 || val=="") return false;
284	return true;
285}
286
287function validate_radio(obj) {
288	var obj_name=obj.name;
289	obj = f[obj.name];
290	if(checked_fields[obj_name]==true){
291		return true;
292	}
293	var status=false;
294	var obj_length=obj.length;
295	for (var i = 0;i<obj_length; i++){
296   		if (obj[i].checked){
297			status=true;
298		}
299	}
300	if(status){
301		checked_fields[obj_name]=true;
302	}
303	return status;
304}
305
306function validate_alphastring(obj) {
307	var val=obj.value;
308	for(i=0;i<val.length;i++) {
309        	if(!is_alpha(val.charAt(i))&&!is_number(val.charAt(i))&&!is_addsymb(val.charAt(i))) return false;
310	}
311	return true;
312}
313
314function validate_login(obj) {
315	var val=obj.value;
316	for(i=0;i<val.length;i++) {
317        	if(!val.match("^[\\w]+$")) return false;
318//			if(!is_alnum2(val.charAt(i))) return false;
319	}
320	return true;
321}
322
323function validate_dirname(obj) {
324	var val=obj.value;
325	for(i=0;i<val.length;i++) {
326        	if(!is_alnum2(val.charAt(i))) return false;
327	}
328	return true;
329}
330
331function is_alpha(c) {
332	if("qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM".indexOf(c)!=-1) return true;
333	return false;
334}
335
336function is_number(c) {
337	if("0123456789".indexOf(c)!=-1) return true;
338	else return false;
339}
340
341function is_alnum(c) {
342	if(is_alpha(c) || is_number(c)) return true;
343	return false;
344}		
345
346function is_alnum2(c) {
347	if(is_alnum(c) || c=="_" || c=="-" || c==".") return true;
348	return false;
349}		
350
351function is_addsymb(c) {
352	if("_-\.\ ".indexOf(c)!=-1) return true;
353	else return false;
354}

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.