PageSourceSearch

https://oneulbamn.com/app/javascript/js/common.js?v=a49a47b907ad285bdb06

js oneulbamn.com collected 2026-09-24 12:07:17 UTC 27,047 bytes, 773 lines download raw bytes

1   if	(typeof L10n != 'object')
2	   document.write('<script type="text/javascript" src="/data/js/language/L10n_KR.js"></script>');
3
4   // 함수부만 따로 호출
5   document.write('<script type="text/javascript" src="/app/javascript/js/common-function.js?dummy=20210713191300"></script>');
6
7   window.Firstmall = window.Firstmall || {};
8
9   $(function(){
10	   try {
11		   var target = $(window);
12		   var target_events = [];
13		   var callback = function(e) {
14			   if(['input', 'textarea', 'select'].indexOf(e.target.tagName.toLowerCase()) === -1 && !e.target.isContentEditable) e.preventDefault();
15			   else e.stopPropagation();
16		   };
17
18		   if(Firstmall.Config.Security.PreventDrag) target_events.push('selectstart');
19		   if(Firstmall.Config.Security.PreventContextMenu)
20		   {
21			   target_events.push('contextmenu');
22			   $('body').css('-webkit-touch-callout','none');
23		   }
24		   target.on(target_events.join(' '), callback);
25	   } catch(ex) {
26		   if(ex instanceof TypeError) 1;/* jQuery 1 related exception($(window).on is not exists) */
27		   else console.log('An exception occured while set contextmenu prevent event: ', ex);
28	   }
29   });
30
31   $(function(){
32	   var cartVersion = $('input[name=cart_version]').val(); //18-05-03 카트 스킨 버전 gcns jhs add
33	   /* 스타일적용 */
34	   apply_input_style();
35
36	   // jstree 객체를 사용하는 페이지에서는 jQuery 구버전을 사용하므로 on 함수가 없어 예외 처리
37	   if(typeof $.jstree !== "object") {
38		 //상품디스플레이의 동영상클릭시 -> 동영상자동실행설정되어있어야함
39		 $(document).on('click', ".goodsDisplayVideoWrap", function() {
40			 $(this).find("img").addClass("hide");
41			 $(this).find(".thumbnailvideo").hide();
42			 $(this).find(".mobilethumbnailvideo").hide();
43			 $(this).find("iframe").removeClass("hide");
44			 $(this).find("embed").removeClass("hide");
45
46			var iframe = $(this).find("iframe");
47			iframe.attr('src', iframe.attr('data-src'));
48		 });
49
50		 //동영상넣기의 동영상클릭시-> 동영상자동실행설정되어있어야함
51		 $(document).on('click', ".DisplayVideoWrap", function() {
52			 $(this).find("img").addClass("hide");
53			 $(this).find(".thumbnailvideo").hide();
54			 $(this).find(".mobilethumbnailvideo").hide();
55			 $(this).find("iframe").removeClass("hide");
56			 $(this).find("embed").removeClass("hide");
57
58			var iframe = $(this).find("iframe");
59			iframe.attr('src', iframe.attr('data-src'));
60		 });
61	   }
62
63	   //18-05-03 gcns jhs add 장바구니 개선
64	   if(cartVersion >= 3){
65		   if (typeof gl_operation_type != 'undefined' && gl_operation_type == 'light') { // 반응형스킨
66			   // 전체 선택
67			   $('.btn_select_all').attr('checked',true);
68			   $("form#cart_form .btn_select_all").change(function() {
69				   if($(this).is(":checked")){
70					   $("form#cart_form input[name='cart_option_seq[]']").each(function(){
71						   $(this).attr("checked",true);
72					   });
73					   cnt = $("form#cart_form input[name='cart_option_seq[]']").length;
74				   }else{
75					   $("form#cart_form input[name='cart_option_seq[]']").each(function(){
76						   $(this).removeAttr("checked");
77					   });
78				   }
79			   });
80			   $("form#cart_form .btn_select_all").change();
81
82			   $('input[name*="cart_option_seq[]"]').live('click',function(){
83				   checkBoxCheck();
84				   setPriceInfoCheck();
85			   });
86		   } else if(gl_set_mode == 'mobile'){ // 전용스킨-모바일
87			   // 전체 선택
88			   $('.btn_select_all').attr('checked',true);
89			   $("form#cart_form .btn_select_all").change(function() {
90				   if($(this).is(":checked")){
91					   $("form#cart_form input[name='cart_option_seq[]']").each(function(){
92						   /**
93						   * 20210408 : kjw
94						   * 배송 가능 상품 여부에 따른 테두리 색상 변경로직 추가
95						   */
96						   var ship_possible_flag = $("input[name='ship_possible["+$(this).val()+"]']").val();
97						   $(this).attr("checked",true);
98						   $(this).closest("div").addClass("ez-checkbox-on");
99						   if(ship_possible_flag == "N") {
100							   $("#cart_goods_" + $(this).val()).css('outline','2px solid #F15F5F');
101						   } else {
102							   $("#cart_goods_" + $(this).val()).css('outline','2px solid #769dff');
103						   }
104					   });
105					   cnt = $("form#cart_form input[name='cart_option_seq[]']").length;
106				   }else{
107					   $("form#cart_form input[name='cart_option_seq[]']").each(function(){
108						   $(this).removeAttr("checked");
109						   $(this).closest("div").removeClass("ez-checkbox-on");
110					   });
111
112					   $(".cart_goods").css('outline','');
113				   }
114			   });
115			   $("form#cart_form .btn_select_all").change();
116
117			   $('input[name*="cart_option_seq[]"]').live('click',function(){
118				   checkBoxCheck();
119				   setPriceInfoCheck();
120			   });
121		   } else{ // 전용스킨-pc
122			   $('.chk_select_all').attr('checked',true);
123			   var chkSt = $('.chk_select_all').is(":checked");
124			   checked_all_order(chkSt);
125			   //setPriceInfo();
126
127			   $('input[name*="cart_option_seq[]"]').live('click',function(){
128				   checkBoxCheck();
129				   setPriceInfoCheck();
130			   });
131		   }
132	   }
133	   //18-05-03 gcns jhs add 장바구니 개선
134
135   });
136
137   $(window).load(function() {
138	   /* 스타일적용 */
139	   chk_small_goods_image();
140   });
141
142   String.prototype.replaceAll = function (str1,str2){
143	   var str	= this;
144	   var result   = str.replace(eval("/"+str1+"/gi"),str2);
145	   return result;
146   }
147
148   //통계서버로 통계데이터 전달 사용안함
149   function statistics_firstmall(act,goods_seq,order_seq,review_point)
150   {
151	   return;
152	   /*
153	   var url = '/_firstmallplus/statistics';
154	   var allFormValues = "act="+act+"&goods_seq="+goods_seq;
155	   if( order_seq ) allFormValues += "&order_seq="+order_seq;
156	   if( review_point ) allFormValues += "&review_point="+review_point;
157
158	   if(act == 'order' && !order_seq) return false;
159	   if(act == 'review' && !review_point) return false;
160	   if(!goods_seq) return false;
161	   $.ajax({
162		   cache:false,
163		   timeout:1000,
164		   type:"POST",
165		   url:url,
166		   data:allFormValues,
167		   error:function(){},
168		   success:function(response){}
169	   });
170	   return true;
171	   */
172   }
173
174   // 사은품 지급 조건 상세 2015-05-14 pjm
175   $(".gift_log").bind('click', function(){
176	   $.ajax({
177		   type: "post",
178		   url: "./gift_use_log",
179		   data: "order_seq="+$(this).attr('order_seq')+"&item_seq="+$(this).attr('item_seq'),
180		   success: function(result){
181			   if	(result){
182				   $("#gift_use_lay").html(result);
183				   //사은품 이벤트 정보
184				   openDialog(getAlert('mo023'), "gift_use_lay", {"width":"450","height":"250"});
185			   }
186		   }
187	   });
188   });
189
190
191   //문자열 바이트 체크(utf-8도 가능)
192   String.prototype.byteLength = function(mode){
193	   mode	= (!mode) ? 'euc-kr' : mode;
194	   text	= this;
195	   byte	= 0;
196	   switch(mode){
197		   case	'utf-8' :
198			   for(byte=i=0;char=text.charCodeAt(i++);byte+=char>>11?3:char>>7?2:1);
199			   break;
200
201		   default :
202			   for(byte=i=0;char=text.charCodeAt(i++);byte+=char>>7?2:1);
203
204	   }
205	   return byte
206   };
207
208
209   /*
210	* form RSA 암호화 프로세스
211	*  - form 내에 file이 있을 경우 기존 프로세스에서도 file 데이터 전송은 동작하지 않았음.
212	* 확인된 submit 예외 사항
213	* - front script 레벨에서 form을 생성한 후 body에 추가하지 않고 submit
214	*  -> 이 경우는 https://www.w3.org/TR/html5/forms.html#constraints 4.10.22.3 를 위반하여 일부 브라우저에서 submit이 발생하지 않음.
215	* - ajax나 iframe을 통해 새로운 페이지를 생성한 후 document.sslForm.submit() 를 통해 submit
216	*  -> DOM 객체로 submit 호출과 동일
217	* - 스크립트 호출과 바인딩이 이루어지기 전 $(document).ready() 와 동시에 submit
218	*/
219   // RSA 전역 변수 선언
220   var getPublicKeyUrl = ["/ssl/getRSAPublicKey","/RSA/ssl/getRSAPublicKey"];
221   var handshakeUrl = ["/ssl/getRSAHandShake","/RSA/ssl/getRSAHandShake"];
222   var arrCheckActions = ["/ssl/relayRsa?action=", "/RSA/ssl/setRSAReturnPost/"];
223   var jcryptionReloadDelayTime = 500;	// 0.5 초 후 다시 리로드, 지연 발생 시 1초씩 증가
224   var sGlSessionKey	= '';
225   var sGlAction		= '';
226
227   // 동적 스크립트 호출
228   $.loadScript = function (url, callback) {$.ajax({url: url,dataType: 'script',success: callback,async: true});}
229   $(window).load(function(){
230	   // order_price_calculate 주문서 계산 함수에서 ssl 통신을 이용하고 있지 않고 현재 페이지가 주문서 작성 페이지라면 ssl_url로 치환
231	   if( window.location.pathname.indexOf('/order/settle') > -1
232			   && order_price_calculate.toString().indexOf("/common/ssl_action")==-1){
233		   order_price_calculate = function () {
234			   var f = $("form#orderFrm");
235			   action = "/order/calculate?mode="+gl_mode;
236			   // ssl 적용
237			   $.ajax({
238				   async: false,
239				   'url'		: '/common/ssl_action',
240				   'data'		: {'action':action},
241				   'type'		: 'get',
242				   'dataType'	: 'html',
243				   'success'	: function(res) {
244					   action = res;
245				   }
246			   });
247			   f.attr("action",action);
248			   f.attr("target","actionFrame");
249			   // jCryption 재적용 스킨의 orderFrm 에 ssl 링크가 없기에 js 영역에서 재선언
250			   moduleJcryption.resetJcryptionSubmit(f[0]);
251			   f.submit();
252		   };
253	   }
254
255	   // jquery 버전이 1.7 이하 일경우 관리자에서 사용중이므로 https 강화를 제외한다.
256	   if($().jquery >= "1.7"){
257		   $.loadScript("/app/javascript/plugin/jcryption/jquery.jcryption.3.1.0_custom.js", function(){
258			   initJcryption();
259		   });
260	   }
261	   // ajax 호출 후 새로 생성된 form에도 적용
262	   $(document).ajaxComplete(function() {
263		   // 모든 폼 엘리먼트에 이벤트를 바인딩 한다
264		   $("body form").each(function (){
265			   var domEl = this;
266			   moduleJcryption.convertJcryptionSubmit(domEl);
267		   });
268	   });
269   });
270   // 암호화 적용 기능 모듈화
271   var moduleJcryption = {
272	   // 폼에서 프로토콜을 포함한 host name을 얻는다.
273	   getHostNameFromForm : function (formObj) {
274		   var formActionUrl = formObj.attr("action");
275		   return moduleJcryption.getHostNameFromUrl(formActionUrl);
276	   }
277	   , getHostNameFromUrl : function (url){
278		   var arr = url.split("/");
279		   var result = arr[0]+"//"+arr[2];
280		   return result;
281	   }
282	   // SSL 적용 폼인지 여부 확인
283	   , checkSSLForm : function (formObj){
284		   var formActionUrl = formObj.attr("action");
285		   if(formActionUrl){
286			   for(var i in arrCheckActions){
287				   if(formActionUrl.indexOf(arrCheckActions[i])>-1){
288					   return i;
289				   }
290			   }
291		   }
292		   return -1;
293	   }
294	   // 이벤트가 바인드 된 폼인지 확인
295	   , checkBindEventForm : function (formObj){
296		   var data = (formObj.data("jCryptionInit") === true);
297		   if(data){
298			   return true;
299		   }
300		   return false;
301	   }
302	   // 이벤트가 치환된 된 폼인지 확인
303	   , checkBindEventJcryptionForm : function (formObj){
304		   var data = (formObj.data("jCryptionAlready") === true);
305		   if(data){
306			   return true;
307		   }
308		   return false;
309	   }
310	   // 속성을 확인한다
311	   , getAttributes : function ( $node ) {
312		   var attrs = {};
313		   $.each( $node[0].attributes, function ( index, attribute ) {
314			   attrs[attribute.name] = attribute.value;
315		   } );
316
317		   return attrs;
318	   }
319	   , destroyJcryptionSubmit : function(domEl){
320		   $(domEl).data("jCryptionInit",false);
321		   $(domEl).data("jCryptionAlready",false);
322		   $(domEl).off("submit");
323	   }
324	   , resetJcryptionSubmit : function(domEl){
325		   moduleJcryption.destroyJcryptionSubmit(domEl);
326		   moduleJcryption.convertJcryptionSubmit(domEl);
327	   }
328	   , convertJcryptionSubmit : function(domEl){
329		   // 이미 치환된 폼은 중복 치환하지 않음.
330		   if(moduleJcryption.checkBindEventJcryptionForm($(domEl))){
331			   // console.log("already submit convert ", $(domEl));
332		   }else{
333			   // console.log("submit convert event binding!", $(domEl));
334			   $(domEl).data("jCryptionAlready",true);
335			   // URL 이 SSL 적용 폼인지 확인
336			   // console.log($(domEl),$(domEl).attr("action"),moduleJcryption.checkSSLForm($(domEl)));
337			   if(moduleJcryption.checkSSLForm($(domEl))>-1){
338				   // 기본 dom 객체를 우선 치환한 후 jquery 객체 submit 이벤트 바인딩.
339				   // jquery객체 서브밋이 발생한다면 preventDefault 로 인해 dom객체의 서브밋은 발생하지 않음.
340				   domEl.submit = function (event){
341					   // console.log("DOM el submit");
342					   moduleJcryption.convertSubmit(domEl);
343				   };
344				   // validate 플러그인이 적용되어 있을 시 별도의 submithandle를 이용하므로 jquery 객체 바인딩 제외
345				   if(typeof $(domEl).data("validator") !== "undefined"){
346				   }else{
347					   $(domEl).on("submit", function(event){
348						   // console.log("jquery el submit");
349						   event.preventDefault();
350						   moduleJcryption.convertSubmit(domEl);
351					   });
352				   }
353			   }
354		   }
355	   }
356	   // 세션키 유지를 위한 action url 추가
357	   , convertActionUrl : function ($formEl){
358		   // console.log("convertActionUrl!", $formEl);
359		   var action			= $formEl.attr("action");
360		   var sessionKey		= $.jCryption.getAESSessionKey($formEl);
361		   var actionDomain	= moduleJcryption.getHostNameFromForm($formEl);
362		   var domain			= window.location.hostname;
363		   if( domain.indexOf("m.") == 0 ){
364			   domain			= domain.replace("m.","");
365		   }
366		   if( actionDomain.indexOf(domain) == -1 && moduleJcryption.checkSSLForm($formEl) > -1 && action.indexOf(sessionKey) == -1 ){
367			   action			= action + "/" + sessionKey;
368		   }
369
370		   // firstmall ssl 사용시
371		   var thisRegex = new RegExp('gabiafreemall');
372		   if(	thisRegex.test(action) ){
373			   var aPath		= action.split("/");
374			   sGlAction		= aPath[6].replace("-", "+");
375			   sGlAction		= sGlAction.replace("_", "/");
376			   sGlAction		= window.atob(sGlAction);
377			   action			= sGlAction;
378		   }else{
379			   sGlAction		= '';
380		   }
381		   $formEl.attr("action", action);
382	   }
383	   // 암호화 서브밋 처리
384	   , convertSubmit : function(thisDom){
385		   var $formEl = $(thisDom);
386		   // submit 전용 폼인지 체크
387		   if(moduleJcryption.checkBindEventForm($formEl)){
388			   // console.log("already!", $formEl);
389			   moduleJcryption.convertActionUrl($formEl);
390			   return true;
391		   }else{
392			   // SSL 적용폼인지 체크
393			   if(moduleJcryption.checkSSLForm($formEl)>-1){
394				   // 스크립트가 로드되었는지 체크
395				   if(typeof $.jCryption === "function"){
396					   // rsa 폼 삭제
397					   $(".rsaForm").remove();
398
399					   // 암호화 적용
400					   var AESEncryptionKey = $.jCryption.getAESEncryptionKey($formEl);
401					   // console.log(AESEncryptionKey);
402					   var hostName = moduleJcryption.getHostNameFromForm($formEl);
403
404					   var $submitElement = $formEl.find(":input:submit");
405					   var $encryptedElement = $("<input />",{
406						 type:'hidden',
407						 name:'jCryption'
408					   });
409
410					   // 암호화 submit 전용 form
411					   var $submitRSAForm = $("<form class='rsaForm'/>");
412					   var formAttrs = moduleJcryption.getAttributes($formEl);
413					   for (var i in formAttrs){
414						   if(i!="id" && i!="name"){
415							   $submitRSAForm.attr(i,formAttrs[i]);
416						   }
417					   }
418					   var remakeHandshakeUrl = handshakeUrl[moduleJcryption.checkSSLForm($formEl)];
419					   if(moduleJcryption.checkSSLForm($formEl)!=0){
420						   remakeHandshakeUrl = remakeHandshakeUrl+"/"+$.jCryption.getAESSessionKey($submitRSAForm);
421					   }
422
423					   $.jCryption.authenticate(
424						   AESEncryptionKey,
425						   hostName+getPublicKeyUrl[moduleJcryption.checkSSLForm($formEl)],
426						   hostName+remakeHandshakeUrl,
427						   function(AESEncryptionKey) {
428							   var toEncrypt = $formEl.serialize();
429							   // console.log(toEncrypt);
430							   // console.log($formEl);
431							   if ($submitElement.is(":submit")) {
432								   toEncrypt = toEncrypt + "&" + $submitElement.attr("name") + "=" + $submitElement.val();
433							   }
434							   $encryptedElement.val($.jCryption.encrypt(toEncrypt, AESEncryptionKey));
435							   // console.log($submitRSAForm.html());
436							   $submitRSAForm.append($encryptedElement);
437							   $("body").append($submitRSAForm);
438							   $submitRSAForm.data("jCryptionInit",true);
439							   moduleJcryption.convertActionUrl($submitRSAForm);
440							   if(sGlAction){
441								   var $encryptionKeyElement = $("<input />",{
442									   type:'hidden',
443									   name:'encryptionKey',
444									   value:AESEncryptionKey
445								   });
446								   $submitRSAForm.append($encryptionKeyElement);
447							   }
448							   $submitRSAForm.submit();
449						   },
450						   function() {
451							   // Authentication with AES Failed ... sending form without protection
452							   confirm("Authentication with Server failed, are you sure you want to submit this form unencrypted?", function() {
453								   $formEl.submit();
454							   });
455						   }
456					   );
457				   }else{
458					   var delayTime = jcryptionReloadDelayTime;
459					   console.log("필수 스크립트가 로드되지 않았습니다. "+(delayTime/1000)+"초 후 다시 시도합니다.");
460					   setTimeout(function(){
461						   console.log($formEl,"리로드"+delayTime);
462						   moduleJcryption.resetJcryptionSubmit(thisDom);
463						   $formEl.submit();
464					   }, delayTime);
465					   jcryptionReloadDelayTime += 1000;	// 1초씩 증가
466					   // $formEl.submit();
467				   }
468				   return false;
469			   }else{
470				   return true;
471			   }
472		   }
473	   }
474   };
475
476   // 암호화 적용
477   var initJcryption = function(){
478	   // 모든 폼 엘리먼트에 이벤트를 바인딩 한다
479	   $("body form").each(function (){
480		   var domEl = this;
481		   moduleJcryption.convertJcryptionSubmit(domEl);
482	   });
483
484	   // 아이디 체크의 경우 SSL 통신이 없었으므로 강제로 적용
485	   function setupJoinMemberPageCheckId(){
486		   var url = location.href;
487		   var tmp_url = url.split("?");
488		   var domain = moduleJcryption.getHostNameFromUrl(tmp_url[0]);
489		   var sub_url = tmp_url[0].replace(domain,"");
490
491		   // 회원가입페이지 일 경우
492		   if(sub_url=="/member/register"){
493
494			   // 현재 회원가입 폼의 action 을 통해 유료/무료 SSL을 확인한다.
495			   var registFrmAction = $("#registFrm").attr("action");
496			   var registFrmHost = moduleJcryption.getHostNameFromUrl(registFrmAction);
497			   if(registFrmHost.indexOf("http")>-1){
498				   var sslSubUrlIndex = 0;
499				   if(registFrmHost == "https://ssl.gabiafreemall.com"){
500					   sslSubUrlIndex = 1;
501				   }
502				   var idCheckFormUrl = registFrmHost+arrCheckActions[sslSubUrlIndex];
503
504				   var idCheckCallbackUrl = domain+"/member/"+"../member_process/id_chk";
505				   var encodeIdCheckCallbackUrl = Base64.encode(idCheckCallbackUrl);
506				   encodeIdCheckCallbackUrl = encodeIdCheckCallbackUrl.replace(/[\+]/g,"-");
507				   encodeIdCheckCallbackUrl = encodeIdCheckCallbackUrl.replace(/[\/]/g,"_");
508				   var idCheckFormAction = idCheckFormUrl+encodeIdCheckCallbackUrl;
509
510				   $("input[name='userid']").unbind("blur");
511				   $("input[name='userid']").blur(function() {
512
513					   if($(this).val()){
514						   // rsa 폼 삭제
515						   $("#idchkform").remove();
516						   $(".rsaForm").remove();
517						   $formEl = $("<form id='idchkform' method='post' target='actionFrame' action='"+idCheckFormAction+"'/>");
518						   var idval = $("<input type='hidden' name='userid' value='"+$(this).val()+"'>");
519						   $formEl.append(idval);
520						   $("body").append($formEl);
521
522						   // 암호화 적용
523						   var AESEncryptionKey = $.jCryption.getAESEncryptionKey($formEl);
524						   // console.log(AESEncryptionKey);
525						   var hostName = moduleJcryption.getHostNameFromForm($formEl);
526
527						   var $submitElement = $formEl.find(":input:submit");
528						   var $encryptedElement = $("<input />",{
529							 type:'hidden',
530							 name:'jCryption'
531						   });
532
533						   // 암호화 submit 전용 form
534						   var $submitRSAForm = $("<form class='rsaForm'/>");
535						   var formAttrs = moduleJcryption.getAttributes($formEl);
536						   for (var i in formAttrs){
537							   if(i!="id" && i!="name"){
538								   $submitRSAForm.attr(i,formAttrs[i]);
539							   }
540						   }
541						   var remakeHandshakeUrl = handshakeUrl[moduleJcryption.checkSSLForm($formEl)];
542						   if(moduleJcryption.checkSSLForm($formEl)!=0){
543							   remakeHandshakeUrl = remakeHandshakeUrl+"/"+$.jCryption.getAESSessionKey($submitRSAForm);
544						   }
545
546						   $.jCryption.authenticate(
547							   AESEncryptionKey,
548							   hostName+getPublicKeyUrl[moduleJcryption.checkSSLForm($formEl)],
549							   hostName+remakeHandshakeUrl,
550							   function(AESEncryptionKey) {
551								   var toEncrypt = $formEl.serialize();
552								   // console.log(toEncrypt);
553								   // console.log($formEl);
554								   if ($submitElement.is(":submit")) {
555									   toEncrypt = toEncrypt + "&" + $submitElement.attr("name") + "=" + $submitElement.val();
556								   }
557								   $encryptedElement.val($.jCryption.encrypt(toEncrypt, AESEncryptionKey));
558								   // console.log($submitRSAForm);
559								   $submitRSAForm.append($encryptedElement);
560								   $("body").append($submitRSAForm);
561								   $submitRSAForm.data("jCryptionInit",true);
562								   moduleJcryption.convertActionUrl($submitRSAForm);
563								   $submitRSAForm.submit();
564							   },
565							   function() {
566								   // Authentication with AES Failed ... sending form without protection
567								   confirm("Authentication with Server failed, are you sure you want to submit this form unencrypted?", function() {
568									   $formEl.submit();
569								   });
570							   }
571						   );
572
573					   }
574				   });
575			   }
576		   }
577	   }
578	   setupJoinMemberPageCheckId();
579   }
580   function callbackIdChk(json){
581	   var response = $.parseJSON(json);
582	   var text = response.return_result;
583	   var userid = response.userid;
584	   $("#id_info").html(text);
585	   $("input[name='userid']").val(userid);
586   }
587
588   // 크로스도메인 용 iframe 리사이징
589   $(document).ready(function(){
590	   // console.log($("iframe").height());
591	   var message_frame_resize = function (event) {
592		   if (event.origin !== "https://"+window.location.hostname) {
593			   return;
594		   }
595		   var iframe = document.getElementById(event.data.id);
596		   if (iframe) {
597			   iframe.style.height = event.data.height + "px";
598		   }
599	   };
600	   if (window.addEventListener) {
601		   window.addEventListener("message", message_frame_resize, false);
602	   } else if (window.attachEvent) {
603		   window.attachEvent("onmessage", message_frame_resize);
604	   }
605   });
606
607
608
609// 비밀번호 규칙 체크
610function init_check_password_validation(obj){
611	obj.off("focusout");
612	obj.on("focusout", function(){
613		call_check_password_validation($(this));
614	});
615}
616
617function init_check_password_validation_data(data, password){
618
619	var jsonObj = [];
620
621	jsonObj.push({
622		name: 'password',
623		value: password
624	});
625
626	for(i=0;i<data.length; i++){
627
628		var formEl = data[i].name;
629
630		if(formEl.match(/^(mtype)/)){
631			jsonObj.push({
632				name: 'mtype',
633				value: data[i].value
634			});
635		}else if(formEl.match(/^(member_|info_|provider_|manager_)*(seq)/)){
636			jsonObj.push({
637				name: 'seq',
638				value: data[i].value
639			});
640		}
641		else if(formEl.match(/^(?!.*cell).*(phone)/) && formEl != 'mphone' && formEl != 'info_phone'){	// 관리자&입점사 제외
642			if(formEl.match(/\W/)){
643				jsonObj.push({
644					name: 'phone[]',
645					value: data[i].value
646				});
647			}else {
648				jsonObj.push({
649					name: 'phone',
650					value: data[i].value
651				});
652			}
653		}else if(formEl.match(/^\w*(cellphone)/) && formEl != 'mcellphone'){	// 관리자&입점사 제외
654			if(formEl.match(/\W/)){
655				jsonObj.push({
656					name: 'cellphone[]',
657					value: data[i].value
658				});
659			}else {
660				jsonObj.push({
661					name: 'cellphone',
662					value: data[i].value
663				});
664			}
665		}else if(formEl.match(/^\w*(birthday)/)){
666			jsonObj.push({
667				name: 'birthday',
668				value: data[i].value
669			});
670		}
671	}
672
673	return jsonObj;
674}
675
676function call_check_password_validation(obj){
677	var action = "/common/check_password_validation";
678
679	var password = obj.val();
680	var form = obj.closest("form");
681	if (form.length == 0) {
682		form = $("form[name=registFrm]");
683	}
684
685	// 실명인증이나 기타 사유에 의해 데이터가 disabled 되어있을 경우
686	// 정상적으로 데이터를 serialize 하지 못 하므로 disabled 속성을 임시 제거
687	form.find(":disabled").each(function () {
688		$(this).attr("disabled", false);
689		// 제거 후 다시 원복을 위해 임의 데이터 지정
690		$(this).attr("data-passcheck-disabled", '1');
691	});
692
693	// 폼 데이터 저장
694	var data = form.serializeArray();
695
696	// 다시 disabled 처리
697	form.find("[data-passcheck-disabled]").each(function () {
698		$(this).attr("disabled", true);
699		$(this).removeAttr("data-passcheck-disabled");
700	});
701
702	jsonObj = init_check_password_validation_data(data, password);
703	if(typeof password !== 'undefined' && password != ''){
704		$.ajax({
705			type: "post",
706			async: false,
707			url: action,
708			data: jsonObj,
709			success: function(result){
710				try{
711					result = JSON.parse(result);
712					draw_check_password_validation(obj, result.alert_code);
713				}catch(e){
714					init_draw_check_password_validation(obj);
715					obj.parent().find(".password_alert_msg").html(result);
716				}
717			}
718		});
719	}
720}
721function draw_check_password_validation(obj, alert_code){
722	init_draw_check_password_validation(obj);
723	var msg = '';
724	if(alert_code != ''){
725		msg = getAlert(alert_code);
726	}
727	if(msg){
728		obj.parent().find(".password_alert_msg").html(msg);
729	}else{
730		obj.parent().find(".password_alert_msg").remove();
731	}
732}
733function init_draw_check_password_validation(obj){
734	if(obj.parent().find(".password_alert_msg").length == 0){
735		var password_alert_msg = $('<div class="password_alert_msg" style="color:red;"></div>');
736		obj.parent().append(password_alert_msg);
737	}
738}
739
740
741$(window).load(function() {
742	$(".class_check_password_validation").each(function(){
743		init_check_password_validation($(this));
744	});
745});
746
747
748// $(document).ready(function(){
749// 	$(".btn-location").click(function(){
750// 		event.preventDefault();
751// 		$(".area_nav .tabs").html('');
752// 		$(".link_area").trigger('click');
753//
754// 		var category_num  = $(this).data("categorynum") ? $(this).data("categorynum") : 0;
755// 		var theme_num = $(this).data("theme") ? $(this).data("theme") : 0;
756//
757// 		$.ajax({
758// 			type : "POST",            // HTTP method type(GET, POST) 형식이다.
759// 			url : "/service/location_list_",      // 컨트롤러에서 대기중인 URL 주소이다.
760// 			data : {
761// 				category_num : $(this).data("categorynum") ? $(this).data("categorynum") : 0,
762// 			},
763// 			success : function(res){
764// 				console.log(theme_num);
765// 				location_callback(res, category_num, null, theme_num);
766// 				loadingStop($("#ajaxLoadingLayer"));
767// 			},
768// 			error : function(XMLHttpRequest, textStatus, errorThrown){ // 비동기 통신이 실패할경우 error 콜백으로 들어옵니다.
769// 				alert("지역정보를 불러올 수 없습니다. 관리자에게 문의 하세요");
770// 			}
771// 		});
772// 	});
773// });

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.