PageSourceSearch

http://img.koreatimes.com/2015/js/login_popup.js?v=2026-09-24761

js koreatimes.com collected 2026-09-24 17:37:40 UTC 9,233 bytes, 359 lines download raw bytes

1$(document).ready(function() {
2	$('#login_popup').popup({
3		opacity : 0.3,
4		transition : 'all 0.3s',
5		openelement : '.member .login, .member .join, .info_form .login, .comment_contents',
6		vertical : 'top',
7		scrolllock : true
8	});
9	var timer;
10	$(".member, .popupBox, .info_form").on("click", ".login", function() {
11		//$.ajax({url: "http://service.koreatimes.com/lib/banner_action_direct.php?banner_ad_id=3731"});
12		$(".loginbox").trigger('reset');
13		$('.loginbox, .tab').show();
14		$('.tab li').removeClass("active");
15		$('.tab li.login').addClass("active");
16		$('.joinbox, .findbox, .migrationbox, .alert').hide();
17		$('.alert').empty();
18
19	});
20
21	$(".member, .popupBox").on("click", ".join", function() {
22
23		$(".joinbox").trigger('reset');
24
25		$('.joinbox, .tab').show();
26		$('.tab li').removeClass("active");
27		$('.tab li.join').addClass("active");
28		$('.loginbox, .findbox, .migrationbox, .alert').hide();
29		$('.alert').empty();
30
31	});
32
33	$(".popupBox").on("click", ".find", function() {
34		$(".findbox").trigger('reset');
35		$('.findbox').show();
36		$('.tab li').removeClass("active");
37		$('.loginbox, .joinbox, .migrationbox, .tab, .alert').hide();
38		$('.alert').empty();
39
40	});
41
42	$('.comment_contents').on('click', function() {
43		$(".loginbox").trigger('reset');
44		$('.loginbox, .tab').show();
45		$('.tab li').removeClass("active");
46		$('.tab li.login').addClass("active");
47		$('.joinbox, .findbox, .migrationbox, .alert').hide();
48		$('.alert').empty();
49	});
50
51	function login_Process(e) {//로그인
52		if (e.keyCode == "13" || e.type == "click") {
53
54			var form = $(this).closest('form');
55
56			form.validate({
57				rules : {
58					user_id : {
59						required : true
60					},
61					pwd : {
62						required : true,
63						minlength : 4
64					},
65					firstname : "required",
66					lastname : "required",
67					email : {
68
69						required : true,
70						email : true
71					},
72					g_recaptcha_response : "required"
73
74				},
75
76				messages : {
77					user_id : "아이디를 입력해주세요.",
78					pwd : {
79						required : "비밀번호를 입력해주세요.",
80						minlength : "비밀번호는 4자리 이상입니다."
81					},
82					firstname : "이름을 입력해주세요",
83					lastname : "성을 입력해주세요",
84					email : {
85						required : "이메일 주소를 입력해주세요",
86						email : "정확한 이메일 주소를 입력해주세요"
87					}
88				},
89				errorElement : 'div',
90				errorLabelContainer : '.alert',
91				onfocusout : false,
92				invalidHandler : function(form, validator) {
93					var errors = validator.numberOfInvalids();
94					if (errors) {
95						validator.errorList[0].element.focus();
96					}
97				}
98			});
99
100			if (form.valid()) {
101
102				var datas = form.serializeArray();
103				var need_encrypted = form.find("input[name='encrypted']");
104				// RSA 암호화 여부
105
106				if (need_encrypted.length > 0) {
107					encrypted_datas = {};
108					encrypted_datas['encrypted_datas'] = form_encrypt(form, datas);
109				} else {
110					encrypted_datas = datas;
111				}
112
113				$.ajax({
114					data : encrypted_datas,
115					type : form.attr('method'),
116					url : form.attr('action'),
117					dataType : 'json',
118					beforeSend : function() {
119						$(".popup_loader").show();
120					},
121					complete : function() {
122						$(".popup_loader").hide();
123					},
124					success : function(response) {
125
126						if (response.response == "migration") {
127
128							alert(response.message);
129							form.trigger('reset');
130							$('.migrationbox').show();
131							$('.loginbox, .joinbox, .tab').hide();
132							$('.user_id').val(response.user_id);
133							return false;
134
135						} else if (response.response == "email_need_validate") {
136							if (response.message) {
137								alert(response.message);
138							}
139
140							window.open("https://auth.koreatimes.com/user/email_need_validate?email=" + response.email + "&redirect_url=1", "", "width=600,height=700");
141							window.location.reload(true);
142
143							return true;
144						} else if (response.response == "success") {
145							if (response.message) {
146								alert(response.message);
147							}
148
149							if (response.type) {
150								window.open("https://auth.koreatimes.com/user/welcome?email=" + response.email + "&redirect_url=1", "", "width=600,height=700");
151							}
152							//console.log(response);
153							//setTimeout(() => {
154							window.location.reload(true);
155							//}, 1000)
156
157							return true;
158						}
159
160						alert(response.message);
161						return false;
162
163					},
164					error : function(e) {
165						alert('네트워크 장애입니다. 잠시후 다시 시도해 주십시오.');
166						return false;
167					}
168				});
169
170				return false;
171			}
172
173			return false;
174
175		}
176	}
177	
178	function join_Process(e) {//로그인
179		if (e.keyCode == "13" || e.type == "click") {
180
181			var form = $(this).closest('form');
182
183			form.validate({
184				rules : {
185					user_id : {
186						required : true
187					},
188					pwd : {
189						required : true,
190						minlength : 6
191					},
192					firstname : "required",
193					lastname : "required",
194					email : {
195
196						required : true,
197						email : true
198					},
199					g_recaptcha_response : "required"
200
201				},
202
203				messages : {
204					user_id : "아이디를 입력해주세요.",
205					pwd : {
206						required : "비밀번호를 입력해주세요.",
207						minlength : "비밀번호는 6자리 이상입니다."
208					},
209					firstname : "이름을 입력해주세요",
210					lastname : "성을 입력해주세요",
211					email : {
212						required : "이메일 주소를 입력해주세요",
213						email : "정확한 이메일 주소를 입력해주세요"
214					}
215				},
216				errorElement : 'div',
217				errorLabelContainer : '.alert',
218				onfocusout : false,
219				invalidHandler : function(form, validator) {
220					var errors = validator.numberOfInvalids();
221					if (errors) {
222						validator.errorList[0].element.focus();
223					}
224				}
225			});
226
227			if (form.valid()) {
228
229				var datas = form.serializeArray();
230				var need_encrypted = form.find("input[name='encrypted']");
231				// RSA 암호화 여부
232
233				if (need_encrypted.length > 0) {
234					encrypted_datas = {};
235					encrypted_datas['encrypted_datas'] = form_encrypt(form, datas);
236				} else {
237					encrypted_datas = datas;
238				}
239
240				$.ajax({
241					data : encrypted_datas,
242					type : form.attr('method'),
243					url : form.attr('action'),
244					dataType : 'json',
245					beforeSend : function() {
246						$(".popup_loader").show();
247					},
248					complete : function() {
249						$(".popup_loader").hide();
250					},
251					success : function(response) {
252
253						if (response.response == "migration") {
254
255							alert(response.message);
256							form.trigger('reset');
257							$('.migrationbox').show();
258							$('.loginbox, .joinbox, .tab').hide();
259							$('.user_id').val(response.user_id);
260							return false;
261
262						} else if (response.response == "email_need_validate") {
263							if (response.message) {
264								alert(response.message);
265							}
266
267							window.open("https://auth.koreatimes.com/user/email_need_validate?email=" + response.email + "&redirect_url=1", "", "width=600,height=700");
268							window.location.reload(true);
269
270							return true;
271						} else if (response.response == "success") {
272							if (response.message) {
273								alert(response.message);
274							}
275
276							if (response.type) {
277								window.open("https://auth.koreatimes.com/user/welcome?email=" + response.email + "&redirect_url=1", "", "width=600,height=700");
278							}
279
280							window.location.reload(true);
281
282							return true;
283						}
284
285						alert(response.message);
286						return false;
287
288					},
289					error : function(e) {
290						alert('네트워크 장애입니다. 잠시후 다시 시도해 주십시오.');
291						return false;
292					}
293				});
294
295				return false;
296			}
297
298			return false;
299
300		}
301	}
302
303
304	$('.loginbox, .findbox, .migrationbox').on('click', '.btn', login_Process);
305	$('.loginbox, .findbox, .migrationbox').on('keydown', login_Process);
306	
307	$('.joinbox').on('click', '.btn', join_Process);
308	$('.joinbox').on('keydown', join_Process);
309	
310
311
312	$('.member').on('click', '.logout', function() {//로그아웃
313
314		var form = $(this).closest('form');
315
316		$.ajax({
317			data : form.serialize(),
318			type : form.attr('method'),
319			url : form.attr('action'),
320			success : function(response) {
321
322				if (response == "success") {
323					location.href = '/48th';
324					return true;
325				}
326
327				alert(response);
328				return false;
329
330			},
331			error : function(e) {
332				alert('네트워크 장애입니다. 잠시후 다시 시도해 주십시오.');
333				return false;
334			}
335		});
336
337		return false;
338
339	});
340
341	function form_encrypt(form, datas) {//jhlee_20190718
342		var crypt = new JSEncrypt();
343		crypt.setPrivateKey("MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJJE7xFxVjn7XkpzlkJouZeoi1jGYLJ8wHz78WNsyKe/By/OpZH2DPwFAiTjEr6eI1UNmRAwCiYJhJIH0c3p5kUCAwEAAQ==");
344
345		encryptdatas = {};
346
347		$(datas).each(function(k, v) {
348
349			if (v.name == "encrypted")
350				return true;
351			encryptdatas[v.name] = v.value;
352		});
353
354		encrypted = crypt.encrypt(JSON.stringify(encryptdatas));
355
356		return encrypted;
357	}
358
359});

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.