PageSourceSearch

https://boxuscience.com/static/js/register.js?SS5

js boxuscience.com collected 2026-10-04 05:21:07 UTC 11,261 bytes, 386 lines download raw bytes

1/*
2	[Discuz!] (C)2001-2099 Comsenz Inc.
3	This is NOT a freeware, use is subject to license terms
4
5	$Id: register.js 33433 2013-06-13 07:36:25Z nemohou $
6	Modified by Valery Votintsev, codersclub.org
7*/
8
9/*vot*/ var lastusername = '', lastpassword = '', lastemail = '', lastinvitecode = '', stmp = new Array(), modifypwd = false, profileTips = lng['leave_blank_old_pass'];
10
11function errormessage(id, msg) {
12	if($(id)) {
13		try{
14			showInputTip();
15		} catch (e) {}
16		msg = !msg ? '' : msg;
17		if($('tip_' + id)) {
18			if(msg == 'succeed') {
19				msg = '';
20				$('tip_' + id).parentNode.className = $('tip_' + id).parentNode.className.replace(/ p_right/, '');
21				$('tip_' + id).parentNode.className += ' p_right';
22			} else if(msg !== '') {
23				$('tip_' + id).parentNode.className = $('tip_' + id).parentNode.className.replace(/ p_right/, '');
24			}
25		}
26		if($('chk_' + id)) {
27			$('chk_' + id).innerHTML = msg;
28		}
29		$(id).className = $(id).className.replace(/ er/, '');
30		$(id).className += !msg ? '' : ' er';
31	}
32}
33
34function addFormEvent(formid, focus){
35	var si = 0;
36	var formNode = $(formid).getElementsByTagName('input');
37	for(i = 0;i < formNode.length;i++) {
38		if(formNode[i].name == '') {
39			formNode[i].name = formNode[i].id;
40			stmp[si] = i;
41			si++;
42		}
43		if(formNode[i].type == 'text' || formNode[i].type == 'password'){
44			formNode[i].onfocus = function(){
45				showInputTip(!this.id ? this.name : this.id);
46			}
47		}
48	}
49	if(!si) {
50		return;
51	}
52	formNode[stmp[0]].onblur = function () {
53		checkusername(formNode[stmp[0]].id);
54	};
55	checkPwdComplexity(formNode[stmp[1]], formNode[stmp[2]]);
56	try {
57		if(!ignoreEmail) {
58			addMailEvent(formNode[stmp[3]]);
59		}
60	} catch(e) {}
61
62	try {
63		if(focus) {
64			$('invitecode').focus();
65		} else {
66			formNode[stmp[0]].focus();
67		}
68	} catch(e) {}
69}
70
71function checkPwdComplexity(firstObj, secondObj, modify) {
72	modifypwd = modify || false;
73	firstObj.onblur = function () {
74		if(firstObj.value == '') {
75/*vot*/			var pwmsg = !modifypwd ? lng['password_fill'] : profileTips;
76			if(pwlength > 0) {
77/*vot*/				pwmsg += lng['length_min']+pwlength+lng['chars'];
78			}
79			errormessage(firstObj.id, pwmsg);
80		}else{
81			errormessage(firstObj.id, !modifypwd ? 'succeed' : '');
82		}
83		checkpassword(firstObj.id, secondObj.id);
84	};
85	firstObj.onkeyup = function () {
86		if(pwlength == 0 || $(firstObj.id).value.length >= pwlength) {
87/*vot*/			var passlevels = new Array('',lng['pw_weak'],lng['pw_middle'],lng['pw_strong']);
88			var passlevel = checkstrongpw(firstObj.id);
89/*vot*/			errormessage(firstObj.id, '<span class="passlevel passlevel'+passlevel+'">' + lng['password_strength'] + passlevels[passlevel]+'</span>');
90		}
91	};
92	secondObj.onblur = function () {
93		if(secondObj.value == '') {
94/*vot*/			errormessage(secondObj.id, !modifypwd ? lng['password_again'] : profileTips);
95		}
96		checkpassword(firstObj.id, secondObj.id);
97	};
98}
99
100function addMailEvent(mailObj) {
101
102	mailObj.onclick = function (event) {
103		emailMenu(event, mailObj.id);
104	};
105	mailObj.onkeyup = function (event) {
106		emailMenu(event, mailObj.id);
107	};
108	mailObj.onkeydown = function (event) {
109		emailMenuOp(4, event, mailObj.id);
110	};
111	mailObj.onblur = function () {
112		if(mailObj.value == '') {
113/*vot*/			errormessage(mailObj.id, lng['email_fill']);
114		}
115		emailMenuOp(3, null, mailObj.id);
116	};
117	stmp['email'] = mailObj.id;
118}
119function checkstrongpw(id) {
120	var passlevel = 0;
121	if($(id).value.match(/\d+/g)) {
122		passlevel ++;
123	}
124	if($(id).value.match(/[a-z]+/ig)) {
125		passlevel ++;
126	}
127	if($(id).value.match(/[^a-z0-9]+/ig)) {
128		passlevel ++;
129	}
130	return passlevel;
131}
132function showInputTip(id) {
133	var p_tips = $('registerform').getElementsByTagName('i');
134	for(i = 0;i < p_tips.length;i++){
135		if(p_tips[i].className == 'p_tip'){
136			p_tips[i].style.display = 'none';
137		}
138	}
139	if($('tip_' + id)) {
140		$('tip_' + id).style.display = 'block';
141	}
142}
143
144function showbirthday(){
145	var el = $('birthday');
146	var birthday = el.value;
147	el.length=0;
148/*vot*/	el.options.add(new Option(lng['day'], ''));
149	for(var i=0;i<28;i++){
150		el.options.add(new Option(i+1, i+1));
151	}
152	if($('birthmonth').value!="2"){
153		el.options.add(new Option(29, 29));
154		el.options.add(new Option(30, 30));
155		switch($('birthmonth').value){
156			case "1":
157			case "3":
158			case "5":
159			case "7":
160			case "8":
161			case "10":
162			case "12":{
163				el.options.add(new Option(31, 31));
164			}
165		}
166	} else if($('birthyear').value!="") {
167		var nbirthyear=$('birthyear').value;
168		if(nbirthyear%400==0 || (nbirthyear%4==0 && nbirthyear%100!=0)) el.options.add(new Option(29, 29));
169	}
170	el.value = birthday;
171}
172
173function trim(str) {
174	return str.replace(/^\s*(.*?)[\s\n]*$/g, '$1');
175}
176
177/*vot*/ var emailMenuST = null, emailMenui = 0; // emaildomains MOVED to lang_js.js
178function emailMenuOp(op, e, id) {
179	if(op == 3 && BROWSER.ie && BROWSER.ie < 7) {
180		checkemail(id);
181	}
182	if(!$('emailmore_menu')) {
183		return;
184	}
185	if(op == 1) {
186		$('emailmore_menu').style.display = 'none';
187	} else if(op == 2) {
188		showMenu({'ctrlid':'emailmore','pos': '13!'});
189	} else if(op == 3) {
190		emailMenuST = setTimeout(function () {
191			emailMenuOp(1, id);
192			checkemail(id);
193		}, 500);
194	} else if(op == 4) {
195	       	e = e ? e : window.event;
196                var obj = $(id);
197        	if(e.keyCode == 13) {
198                        var v = obj.value.indexOf('@') != -1 ? obj.value.substring(0, obj.value.indexOf('@')) : obj.value;
199                        obj.value = v + '@' + emaildomains[emailMenui];
200                        doane(e);
201        	}
202	} else if(op == 5) {
203                var as = $('emailmore_menu').getElementsByTagName('a');
204                for(i = 0;i < as.length;i++){
205                        as[i].className = '';
206                }
207	}
208}
209
210function emailMenu(e, id) {
211	if(BROWSER.ie && BROWSER.ie < 7) {
212		return;
213	}
214	e = e ? e : window.event;
215        var obj = $(id);
216	if(obj.value.indexOf('@') != -1) {
217		$('emailmore_menu').style.display = 'none';
218		return;
219	}
220	var value = e.keyCode;
221	var v = obj.value;
222	if(!obj.value.length) {
223		emailMenuOp(1);
224		return;
225	}
226
227        if(value == 40) {
228		emailMenui++;
229		if(emailMenui >= emaildomains.length) {
230			emailMenui = 0;
231		}
232	} else if(value == 38) {
233		emailMenui--;
234		if(emailMenui < 0) {
235			emailMenui = emaildomains.length - 1;
236		}
237	} else if(value == 13) {
238  		$('emailmore_menu').style.display = 'none';
239  		return;
240 	}
241        if(!$('emailmore_menu')) {
242		menu = document.createElement('div');
243		menu.id = 'emailmore_menu';
244		menu.style.display = 'none';
245		menu.className = 'p_pop';
246		menu.setAttribute('disautofocus', true);
247		$('append_parent').appendChild(menu);
248	}
249	var s = '<ul>';
250	for(var i = 0; i < emaildomains.length; i++) {
251		s += '<li><a href="javascript:;" onmouseover="emailMenuOp(5)" ' + (emailMenui == i ? 'class="a" ' : '') + 'onclick="$(stmp[\'email\']).value=this.innerHTML;display(\'emailmore_menu\');checkemail(stmp[\'email\']);">' + v + '@' + emaildomains[i] + '</a></li>';
252	}
253	s += '</ul>';
254	$('emailmore_menu').innerHTML = s;
255	emailMenuOp(2);
256}
257
258function checksubmit() {
259	var p_chks = $('registerform').getElementsByTagName('kbd');
260	for(i = 0;i < p_chks.length;i++){
261		if(p_chks[i].className == 'p_chk'){
262			p_chks[i].innerHTML = '';
263		}
264	}
265	ajaxpost('registerform', 'returnmessage4', 'returnmessage4', 'onerror');
266	return;
267}
268
269function checkusername(id) {
270	errormessage(id);
271	var username = trim($(id).value);
272	if($('tip_' + id).parentNode.className.match(/ p_right/) && (username == '' || username == lastusername)) {
273		return;
274	} else {
275		lastusername = username;
276	}
277	if(username.match(/<|"/ig)) {
278/*vot*/		errormessage(id, lng['username_invalid']);
279		return;
280	}
281//vot	var unlen = username.replace(/[^\x00-\xff]/g, "**").length;
282/*vot*/	var unlen = username.length;
283/*vot*/	var utf8len = utf8length(username);
284
285/*vot*/	if(unlen < 2) {
286/*vot*/		errormessage(id, lng['username_short']);
287		return;
288/*vot*/	} else if(unlen > 15) {
289		errormessage(id, lng['username_long']);
290		return;
291/*vot*/	} else if(utf8len > 64) { // Max DB Field Length in bytes
292/*vot*/		errormessage(id, lng['username_long']);
293/*vot*/		return;
294	}
295	var x = new Ajax();
296	$('tip_' + id).parentNode.className = $('tip_' + id).parentNode.className.replace(/ p_right/, '');
297	x.get('forum.php?mod=ajax&inajax=yes&infloat=register&handlekey=register&ajaxmenu=1&action=checkusername&username=' + (BROWSER.ie && document.charset == 'utf-8' ? encodeURIComponent(username) : username.replace(/%/g, '%25').replace(/#/g, '%23')), function(s) {
298		errormessage(id, s);
299	});
300}
301
302function checkpassword(id1, id2) {
303	if(!$(id1).value && !$(id2).value) {
304		return;
305	}
306	if(pwlength > 0) {
307		if($(id1).value.length < pwlength) {
308/*vot*/			errormessage(id1, lng['pass_short']+pwlength+lng['chars']);
309			return;
310		}
311	}
312	if(strongpw) {
313		var strongpw_error = false, j = 0;
314		var strongpw_str = new Array();
315		for(var i in strongpw) {
316			if(strongpw[i] === 1 && !$(id1).value.match(/\d+/g)) {
317				strongpw_error = true;
318/*vot*/				strongpw_str[j] = lng['digital'];
319				j++;
320			}
321			if(strongpw[i] === 2 && !$(id1).value.match(/[a-z]+/g)) {
322				strongpw_error = true;
323/*vot*/				strongpw_str[j] = lng['lowercase'];
324				j++;
325			}
326			if(strongpw[i] === 3 && !$(id1).value.match(/[A-Z]+/g)) {
327				strongpw_error = true;
328/*vot*/				strongpw_str[j] = lng['capitals'];
329				j++;
330			}
331			if(strongpw[i] === 4 && !$(id1).value.match(/[^A-Za-z0-9]+/g)) {
332				strongpw_error = true;
333/*vot*/				strongpw_str[j] = lng['specials'];
334				j++;
335			}
336		}
337		if(strongpw_error) {
338/*vot*/			errormessage(id1, lng['pw_weak_info']+strongpw_str.join(', '));
339			return;
340		}
341	}
342	errormessage(id2);
343	if($(id1).value != $(id2).value) {
344/*vot*/		errormessage(id2, lng['passwords_not_equal']);
345	} else {
346		errormessage(id2, !modifypwd ? 'succeed' : '');
347	}
348}
349
350function checkemail(id) {
351	errormessage(id);
352	var email = trim($(id).value);
353	if($(id).parentNode.className.match(/ p_right/) && (email == '' || email == lastemail)) {
354		return;
355	} else {
356		lastemail = email;
357	}
358	if(email.match(/<|"/ig)) {
359/*vot*/		errormessage(id, lng['email_invalid']);
360		return;
361	}
362	var x = new Ajax();
363	$('tip_' + id).parentNode.className = $('tip_' + id).parentNode.className.replace(/ p_right/, '');
364	x.get('forum.php?mod=ajax&inajax=yes&infloat=register&handlekey=register&ajaxmenu=1&action=checkemail&email=' + email, function(s) {
365		errormessage(id, s);
366	});
367}
368
369function checkinvite() {
370	errormessage('invitecode');
371	var invitecode = trim($('invitecode').value);
372	if(invitecode == '' || invitecode == lastinvitecode) {
373		return;
374	} else {
375		lastinvitecode = invitecode;
376	}
377	if(invitecode.match(/<|"/ig)) {
378/*vot*/		errormessage('invitecode', lng['invite_code_invalid']);
379		return;
380	}
381	var x = new Ajax();
382	$('tip_invitecode').parentNode.className = $('tip_invitecode').parentNode.className.replace(/ p_right/, '');
383	x.get('forum.php?mod=ajax&inajax=yes&infloat=register&handlekey=register&ajaxmenu=1&action=checkinvitecode&invitecode=' + invitecode, function(s) {
384		errormessage('invitecode', s);
385	});
386}

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.