PageSourceSearch

https://dmbaby.net/ind-script/optimizer_user.php?filename=jZA7DgIx…41ac5c1f9720a0716d79d05&t=1598771960&user=T

js dmbaby.net collected 2026-09-28 03:38:36 UTC 44,314 bytes, 1,078 lines download raw bytes

1/**
2 * 상품상세 섬네일 롤링
3 */
4$(document).ready(function(){
5    $.fn.prdImg = function(parm){
6        var index = 0;
7        var target = parm.target;
8        var view = parm.view;
9        var listWrap = target.find('.xans-product-addimage');
10        var limit = listWrap.find('> ul > li').length;
11        var ul = target.find('.xans-product-addimage > ul');
12        var liFirst = target.find('.xans-product-addimage > ul > li:first-child');
13        var liWidth = parseInt(liFirst.width());
14        var liHeight = parseInt(liFirst.height());
15        var blockWidth = liWidth + parseInt(liFirst.css('marginRight')) + parseInt(liFirst.css('marginLeft'));
16        var columWidth = blockWidth * view;
17        var colum = Math.ceil(limit / view);
18
19        var roll = {
20            init : function(){
21                function struct(){
22                    var ulWidth = limit * parseInt(blockWidth);
23                    listWrap.append('<button type="button" class="prev">이전</button>');
24                    listWrap.append('<button type="button" class="next">다음</button>');
25                    ul.css({'position':'absolute', 'left':0, 'top':0, 'width':ulWidth});
26                    listWrap.find('> ul > li').each(function(){
27                        $(this).css({'float':'left'});
28                    });
29                    listWrap.css({'position':'relative', 'height':liHeight});
30
31                    var prev = listWrap.find('.prev');
32                    var next = listWrap.find('.next');
33
34                    prev.click(function(){
35                        if(index > 0){
36                            index --;
37                        }
38                        roll.slide(index);
39                    });
40                    next.click(function(){
41                        if(index < (colum-1) ){
42                            index ++;
43                        } 
44                        roll.slide(index);
45                    });
46                    if(index == 0){
47                        prev.hide();
48                    } else {
49                        prev.show();
50                    }
51                    if(index >= (colum-1)){
52                        next.hide();
53                    } else {
54                        next.show();
55                    }
56                }
57                if(limit > view){
58                    struct();
59                }
60            },
61            slide : function(index){
62                var left = '-' + (index * columWidth) +'px';
63                var prev = listWrap.find('.prev');
64                var next = listWrap.find('.next');
65                if(index == 0){
66                    prev.hide();
67                } else {
68                    prev.show();
69                }
70                if(index >= (colum-1)){
71                    next.hide();
72                } else {
73                    next.show();
74                }
75                ul.stop().animate({'left':left},500);
76            }
77        }
78        roll.init();
79    };
80
81    // 함수호출 : 상품상세 페이지
82    $.fn.prdImg({
83        target : $('.xans-product-image'),
84        view : 5
85    });
86    
87    // 함수호출 : 상품확대보기팝업
88    $.fn.prdImg({
89        target : $('.xans-product-zoom'),
90        view : 5
91    });
92    
93});
94/**
95 * 상품상세 사용후기
96 */
97$(document).ready(function(){
98    $('.xans-product-review a').click(function(e) {
99        e.preventDefault();
100
101        var no = $(this).attr('href').replace(/(\S*)no=(\d+)(\S*)/g, '$2');
102        var $obj = $('#product-review-read_'+no);
103
104        //로드된 엘리먼트 존재 체크
105        if ($obj.length > 0) {
106            if ($obj.css('display') =='none') {
107                $obj.show();
108            } else {
109                $obj.hide();
110            }
111            return;
112        }
113
114        REVIEW.getReadData($(this));
115    });
116});
117
118var PARENT = '';
119
120var OPEN_REVIEW = '';
121
122var REVIEW = {
123    getReadData : function(obj, eType)
124    {
125        if (obj != undefined) {
126            PARENT = obj;
127            var sHref = obj.attr('href');
128            var pNode = obj.parents('tr');
129            var pass_check = '&pass_check=F';
130        } else {
131            var sHref = PARENT.attr('href');
132            var pNode = PARENT.parents('tr');
133            var pass_check = '&pass_check=T';
134        }
135
136        var sQuery = sHref.split('?');
137
138        var sQueryNo = sQuery[1].split('=');
139        if (OPEN_REVIEW == sQueryNo[1]) {
140            $('#product-review-read').remove();
141            OPEN_REVIEW = '';
142            return false;
143        } else {
144            OPEN_REVIEW = sQueryNo[1];
145        }
146
147        $.ajax({
148            url : '/exec/front/board/product/4?'+sQuery[1]+pass_check,
149            dataType: 'json',
150            success: function(data) {
151                $('#product-review-read').remove();
152
153                var sPath = document.location.pathname;
154                var sPattern = /^\/product\/(.+)\/([0-9]+)(\/.*)/;
155                var aMatchResult = sPath.match(sPattern);
156
157                if (aMatchResult) {
158                    var iProductNo = aMatchResult[2];
159                } else {
160                    var iProductNo = getQueryString('product_no');
161                }
162
163                var aHtml = [];
164
165                //읽기 권한 체크
166                if (false === data.read_auth && eType == undefined) {
167                    alert(decodeURIComponent(data.alertMSG));
168
169                    //로그인페이지 이동
170                    if (data.returnUrl != undefined) {
171                        location.replace("/member/login.html?returnUrl=" + data.returnUrl);
172                    }
173                    return false;
174                }
175
176                if (data.is_secret == true) {
177                    // 비밀글 비밀번호 입력 폼
178                    aHtml.push('<form name="SecretForm_4" id="SecretForm_4" class="secretForm">');
179                    aHtml.push('<input type="text" name="a" style="display:none;">');
180                    aHtml.push('<div class="view"><p>비밀번호 <input type="password" id="secure_password" name="secure_password" onkeydown="if (event.keyCode == 13) '+data.action_pass_submit+'"> <input type="button" id="secure_btn" value="확인" onclick="'+data.action_pass_submit+'"></p></div>');
181                    aHtml.push('</form>');
182                } else {
183                    // 글 내용
184                    if (data.read['content_image'] != null) {
185                        var sImg = data.read['content_image'];
186                    } else {
187                        var sImg = '';
188                    }
189
190                    aHtml.push('<div class="view">');
191                    aHtml.push('<p>'+data.read['content']+'</p>');
192                    aHtml.push('<p>'+sImg+'</p>');
193                    aHtml.push('<p class="buttonArea"><span class="gRight">');
194                    if (data.write_auth == true) {
195                        aHtml.push('<a href="/board/product/modify.html?board_act=edit&no='+data.no+'&board_no=4&link_product_no='+iProductNo+'" class="btnNormal">게시글 수정하기</a>');
196                    }
197                    aHtml.push('</span></p>');
198                    aHtml.push('</div>');
199
200                    // 댓글리스트
201                    if (data.comment != undefined && data.comment.length != undefined) {
202                        aHtml.push('<ul class="boardComment">');
203                        for (var i=0; data.comment.length > i; i++) {
204                            //댓글리스트
205                            if (data.comment[i]['comment_reply_css'] == undefined) {
206                                aHtml.push('<li>');
207                                aHtml.push('<strong>'+data.comment[i]['member_icon']+' '+data.comment[i]['comment_name']+'</strong>');
208                                aHtml.push('<span class="gIndent">'+data.comment[i]['comment_write_date']+'</span>');
209                                aHtml.push('<span class="gIndent '+data.use_point+'"><img src="https://img.echosting.cafe24.com/skin/base_ko_KR/board/ico_point'+data.comment[i]['comment_point_count']+'.gif" alt="'+data.comment[i]['comment_point_count']+'점" /></span>');
210                                if (data.comment[i]['comment_reply_display'] == true) {
211                                    aHtml.push('<span class="buttonArea">'+'<a href="#none" onclick="'+data.comment[i]['action_comment_reply']+'" class="btnNormal">댓글</a>'+'</span>');
212                                }
213                                aHtml.push('<p class="comment">'+data.comment[i]['comment_icon_lock']+' '+data.comment[i]['comment_content']+'</p>');
214                                aHtml.push('</li>');
215                            } else {
216                                //댓글의 댓글리스트
217                                aHtml.push('<li class="replyArea">');
218                                aHtml.push('<strong>'+data.comment[i]['member_icon']+' '+data.comment[i]['comment_name']+'</strong>');
219                                aHtml.push('<span class="gIndent">'+data.comment[i]['comment_write_date']+'</span>');
220                                aHtml.push('<p class="comment">'+data.comment[i]['comment_icon_lock']+' '+data.comment[i]['comment_content']+'</p>');
221                                aHtml.push('</li>');
222                            }
223                        }
224                        aHtml.push('</ul>');
225                    }
226
227                    // 댓글쓰기
228                    if (data.comment_write != undefined) {
229                        aHtml.push('<form name="commentWriteForm_4'+data.key+'" id="commentWriteForm_4'+data.key+'">');
230                        aHtml.push('<div class="memoCont">');
231                        aHtml.push('<div class="writer">');
232                        aHtml.push('이름 '+data.comment_write['comment_name']+' 비밀번호 '+data.comment_write['comment_password']);
233                        if (data.comment_write['comment_secret_display'] == true) {
234                            aHtml.push('<span class="gIndent"><label>'+data.comment_write['secure']+'비밀댓글</label></span>');
235                        }
236                        aHtml.push('<span class="gIndent '+data.comment_write['use_point']+'">'+'/<span class="gIndent">평점</span> '+data.comment_write['comment_point']+'</span>');
237                        aHtml.push('<div class="gDouble text">'+data.comment_write['comment']+'<a href="#none" onclick="'+data.comment_write['action_comment_insert']+'" class="btnEmC">확인</a></div>');
238                        aHtml.push('<p class="gSingle '+data.comment_write['use_comment_size']+'">'+data.comment_write['comment_byte']+' / '+data.comment_write['comment_size']+' byte</p>');
239                        aHtml.push('<p class="captcha '+data.comment_write['use_captcha']+'">'+data.comment_write['captcha_image']+data.comment_write['captcha_refresh']+data.comment_write['captcha']+'<img src="https://img.echosting.cafe24.com/skin/base_ko_KR/product/ico_information.gif" alt="" />  왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)</p>');
240                        aHtml.push('</div>');
241                        aHtml.push('</div>');
242                        aHtml.push('</form>');
243                    }
244
245                    // 댓글의 댓글쓰기
246                    if (data.comment_reply != undefined) {
247                        aHtml.push('<form name="commentReplyWriteForm_4'+data.key+'" id="commentReplyWriteForm_4'+data.key+'" style="display:none">');
248                        aHtml.push('<div class="memoCont reply">');
249                        aHtml.push('<div class="writer">');
250                        aHtml.push('이름 '+data.comment_reply['comment_name']+' 비밀번호 '+data.comment_reply['comment_password']);
251                        if (data.comment_reply['comment_secret_display'] == true) {
252                            aHtml.push('<span class="gIndent"><label>'+data.comment_reply['secure']+'비밀댓글</label></span>');
253                        }
254                        aHtml.push('<div class="gDouble text">'+data.comment_reply['comment']+'<a href="#none" onclick="'+data.comment_reply['action_comment_insert']+'" class="btnEmC">확인</a></div>');
255                        aHtml.push('<p class="gSingle '+data.comment_reply['use_comment_size']+'">'+data.comment_reply['comment_byte']+' / '+data.comment_reply['comment_size']+' byte</p>');
256                        aHtml.push('<p class="captcha '+data.comment_reply['use_captcha']+'">'+data.comment_reply['captcha_image']+data.comment_reply['captcha_refresh']+data.comment_reply['captcha']+'<img src="https://img.echosting.cafe24.com/skin/base_ko_KR/product/ico_information.gif" alt="" /> 왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)</p>');
257                        aHtml.push('</div>');
258                        aHtml.push('</div>');
259                        aHtml.push('</form>');
260                    }
261                    // 비밀댓글 확인
262                    if (data.comment_secret != undefined) {
263                        aHtml.push('<form name="commentSecretForm_4'+data.key+'" id="commentSecretForm_4'+data.key+'" class="" style="display:none">');
264                        aHtml.push('<div class="commentSecret">');
265                        aHtml.push('<p>비밀번호 : '+data.comment_secret['secure_password']);
266                        aHtml.push(' <a href="#none" onclick="'+data.comment_secret['action_secret_submit']+'" class="btnNormal">확인</a>');
267                        aHtml.push(' <a href="#none" onclick="'+data.comment_secret['action_secret_cancel']+'" class="btnNormal">취소</a></p>');
268                        aHtml.push('</div>');
269                        aHtml.push('</form>');
270                    }
271                }
272
273                $(pNode).after('<tr id="product-review-read'+data.key+'" class="commentSecretForm"><td colspan="6">'+aHtml.join('')+'</td></tr>');
274
275                // 평점기능 사용안함일 경우 보여지는 td를 조절하기 위한 함수
276                PRODUCT_COMMENT.comment_colspan(pNode);
277
278                if (data.comment_write != undefined && data.comment_write['use_comment_size'] == '') PRODUCT_COMMENT.comment_byte(4, data.key);
279                if (data.comment_reply != undefined && data.comment_write['use_comment_size'] == '') PRODUCT_COMMENT.comment_byte(4, data.key, 'commentReplyWriteForm');
280            }
281        });
282    },
283
284    END : function() {}
285};
286/**
287 * 상품상세 Q&A
288 */
289$(document).ready(function(){
290    $('.xans-product-qna a').click(function(e) {
291        e.preventDefault();
292
293        var no = $(this).attr('href').replace(/(\S*)no=(\d+)(\S*)/g, '$2');
294        var $obj = $('#product-qna-read_'+no);
295
296        //로드된 엘리먼트 존재 체크
297        if ($obj.length > 0) {
298            if ($obj.css('display') =='none') {
299                $obj.show();
300            } else {
301                $obj.hide();
302            }
303            return;
304        }
305
306        QNA.getReadData($(this));
307    });
308});
309
310var PARENT = '';
311
312var OPEN_QNA = '';
313
314var QNA = {
315    getReadData : function(obj, eType)
316    {
317        if (obj != undefined) {
318            PARENT = obj;
319            var sHref = obj.attr('href');
320            var pNode = obj.parents('tr');
321            var pass_check = '&pass_check=F';
322        } else {
323            var sHref = PARENT.attr('href');
324            var pNode = PARENT.parents('tr');
325            var pass_check = '&pass_check=T';
326        }
327
328        var sQuery = sHref.split('?');
329
330        var sQueryNo = sQuery[1].split('=');
331        if (OPEN_QNA == sQueryNo[1]) {
332            $('#product-qna-read').remove();
333            OPEN_QNA = '';
334            return false;
335        } else {
336            OPEN_QNA = sQueryNo[1];
337        }
338
339        $.ajax({
340            url : '/exec/front/board/product/6?'+sQuery[1]+pass_check,
341            dataType: 'json',
342            success: function(data) {
343                $('#product-qna-read').remove();
344
345                var sPath = document.location.pathname;
346                var sPattern = /^\/product\/(.+)\/([0-9]+)(\/.*)/;
347                var aMatchResult = sPath.match(sPattern);
348
349                if (aMatchResult) {
350                    var iProductNo = aMatchResult[2];
351                } else {
352                    var iProductNo = getQueryString('product_no');
353                }
354
355                var aHtml = [];
356
357                //읽기 권한 체크
358                if (false === data.read_auth && eType == undefined) {
359                    alert(decodeURIComponent(data.alertMSG));
360
361                    //로그인페이지 이동
362                    if (data.returnUrl != undefined) {
363                        location.replace("/member/login.html?returnUrl=" + data.returnUrl);
364                    }
365                    return false;
366                }
367
368                if (data.is_secret == true) {
369                    // 비밀글 비밀번호 입력 폼
370                    aHtml.push('<form name="SecretForm_6" id="SecretForm_6" class="secretForm">');
371                    aHtml.push('<input type="text" name="a" style="display:none;">');
372                    aHtml.push('<div class="view"><p>비밀번호 <input type="password" id="secure_password" name="secure_password" onkeydown="if (event.keyCode == 13) '+data.action_pass_submit+'"> <input type="button" id="secure_btn" value="확인" onclick="'+data.action_pass_submit+'"></p></div>');
373                    aHtml.push('</form>');
374                } else {
375                    // 글 내용
376                    if (data.read['content_image'] != null) {
377                        var sImg = data.read['content_image'];
378                    } else {
379                        var sImg = '';
380                    }
381
382                    aHtml.push('<div class="view">');
383                    aHtml.push('<p>'+data.read['content']+'</p>');
384                    aHtml.push('<p>'+sImg+'</p>');
385                    aHtml.push('<p class="buttonArea"><span class="gRight">');
386                    if (data.write_auth == true) {
387                        aHtml.push('<a href="/board/product/modify.html?board_act=edit&no='+data.no+'&board_no=6&link_product_no='+iProductNo+'" class="btnNormal">게시글 수정하기</a>');
388                    }
389                    aHtml.push('</span></p>');
390                    aHtml.push('</div>');
391
392                    // 댓글리스트
393                    if (data.comment != undefined && data.comment.length != undefined) {
394                        aHtml.push('<ul class="boardComment">');
395                        for (var i=0; data.comment.length > i; i++) {
396                            //댓글리스트
397                            if (data.comment[i]['comment_reply_css'] == undefined) {
398                                aHtml.push('<li>');
399                                aHtml.push('<strong>'+data.comment[i]['member_icon']+' '+data.comment[i]['comment_name']+'</strong>');
400                                aHtml.push('<span class="gIndent">'+data.comment[i]['comment_write_date']+'</span>');
401                                aHtml.push('<span class="gIndent '+data.use_point+'"><img src="https://img.echosting.cafe24.com/skin/base_ko_KR/board/ico_point'+data.comment[i]['comment_point_count']+'.gif" alt="'+data.comment[i]['comment_point_count']+'점" /></span>');
402                                if (data.comment[i]['comment_reply_display'] == true) {
403                                    aHtml.push('<span class="buttonArea">'+'<a href="#none" onclick="'+data.comment[i]['action_comment_reply']+'" class="btnNormal">댓글</a>'+'</span>');
404                                }
405                                aHtml.push('<p class="comment">'+data.comment[i]['comment_icon_lock']+' '+data.comment[i]['comment_content']+'</p>');
406                                aHtml.push('</li>');
407                            } else {
408                                //댓글의 댓글리스트
409                                aHtml.push('<li class="replyArea">');
410                                aHtml.push('<strong>'+data.comment[i]['member_icon']+' '+data.comment[i]['comment_name']+'</strong>');
411                                aHtml.push('<span class="gIndent">'+data.comment[i]['comment_write_date']+'</span>');
412                                aHtml.push('<p class="comment">'+data.comment[i]['comment_icon_lock']+' '+data.comment[i]['comment_content']+'</p>');
413                                aHtml.push('</li>');
414                            }
415                        }
416                        aHtml.push('</ul>');
417                    }
418
419                    // 댓글쓰기
420                    if (data.comment_write != undefined) {
421                        aHtml.push('<form name="commentWriteForm_6'+data.key+'" id="commentWriteForm_6'+data.key+'">');
422                        aHtml.push('<div class="memoCont">');
423                        aHtml.push('<div class="writer">');
424                        aHtml.push('이름 '+data.comment_write['comment_name']+' 비밀번호 '+data.comment_write['comment_password']);
425                        if (data.comment_write['comment_secret_display'] == true) {
426                            aHtml.push('<span class="gIndent"><label>'+data.comment_write['secure']+'비밀댓글</label></span>');
427                        }
428                        aHtml.push('<span class="gIndent '+data.comment_write['use_point']+'">'+'/<span class="gIndent">평점</span> '+data.comment_write['comment_point']+'</span>');
429                        aHtml.push('<div class="gDouble text">'+data.comment_write['comment']+'<a href="#none" onclick="'+data.comment_write['action_comment_insert']+'" class="btnEmC">확인</a></div>');
430                        aHtml.push('<p class="gSingle '+data.comment_write['use_comment_size']+'">'+data.comment_write['comment_byte']+' / '+data.comment_write['comment_size']+' byte</p>');
431                        aHtml.push('<p class="captcha '+data.comment_write['use_captcha']+'">'+data.comment_write['captcha_image']+data.comment_write['captcha_refresh']+data.comment_write['captcha']+'<img src="https://img.echosting.cafe24.com/skin/base_ko_KR/product/ico_information.gif" alt="" />  왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)</p>');
432                        aHtml.push('</div>');
433                        aHtml.push('</div>');
434                        aHtml.push('</form>');
435                    }
436
437                    // 댓글의 댓글쓰기
438                    if (data.comment_reply != undefined) {
439                        aHtml.push('<form name="commentReplyWriteForm_6'+data.key+'" id="commentReplyWriteForm_6'+data.key+'" style="display:none">');
440                        aHtml.push('<div class="memoCont reply">');
441                        aHtml.push('<div class="writer">');
442                        aHtml.push('이름 '+data.comment_reply['comment_name']+' 비밀번호 '+data.comment_reply['comment_password']);
443                        if (data.comment_reply['comment_secret_display'] == true) {
444                            aHtml.push('<span class="gIndent"><label>'+data.comment_reply['secure']+'비밀댓글</label></span>');
445                        }
446                        aHtml.push('<div class="gDouble text">'+data.comment_reply['comment']+'<a href="#none" onclick="'+data.comment_reply['action_comment_insert']+'" class="btnEmC">확인</a></div>');
447                        aHtml.push('<p class="gSingle '+data.comment_reply['use_comment_size']+'">'+data.comment_reply['comment_byte']+' / '+data.comment_reply['comment_size']+' byte</p>');
448                        aHtml.push('<p class="captcha '+data.comment_reply['use_captcha']+'">'+data.comment_reply['captcha_image']+data.comment_reply['captcha_refresh']+data.comment_reply['captcha']+'<img src="https://img.echosting.cafe24.com/skin/base_ko_KR/product/ico_information.gif" alt="" /> 왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)</p>');
449                        aHtml.push('</div>');
450                        aHtml.push('</div>');
451                        aHtml.push('</form>');
452                    }
453                    // 비밀댓글 확인
454                    if (data.comment_secret != undefined) {
455                        aHtml.push('<form name="commentSecretForm_6'+data.key+'" id="commentSecretForm_6'+data.key+'" class="commentSecretForm" style="display:none">');
456                        aHtml.push('<div class="commentSecret">');
457                        aHtml.push('<p>비밀번호 : '+data.comment_secret['secure_password']);
458                        aHtml.push(' <a href="#none" onclick="'+data.comment_secret['action_secret_submit']+'" class="btnNormal">확인</a>');
459                        aHtml.push(' <a href="#none" onclick="'+data.comment_secret['action_secret_cancel']+'" class="btnNormal">취소</a></p>');
460                        aHtml.push('</div>');
461                        aHtml.push('</form>');
462                    }
463                }
464
465                $(pNode).after('<tr id="product-qna-read'+data.key+'" class="commentSecretForm"><td colspan="6">'+aHtml.join('')+'</td></tr>');
466
467                // 평점기능 사용안함일 경우 보여지는 td를 조절하기 위한 함수
468                PRODUCT_COMMENT.comment_colspan(pNode);
469
470                if (data.comment_write != undefined && data.comment_write['use_comment_size'] == '') PRODUCT_COMMENT.comment_byte(6, data.key);
471                if (data.comment_reply != undefined && data.comment_write['use_comment_size'] == '') PRODUCT_COMMENT.comment_byte(6, data.key, 'commentReplyWriteForm');
472            }
473        });
474    },
475
476    END : function() {}
477};
478/**
479 * 움직이는 배너 Jquery Plug-in
480 * @author  cafe24
481 */
482
483;(function($){
484
485    $.fn.floatBanner = function(options) {
486        options = $.extend({}, $.fn.floatBanner.defaults , options);
487
488        return this.each(function() {
489            var aPosition = $(this).position();
490            var jbOffset = $(this).offset();
491            var node = this;
492
493            $(window).scroll(function() {
494                var _top = $(document).scrollTop();
495                _top = (aPosition.top < _top) ? _top : aPosition.top;
496
497                setTimeout(function () {
498                    var newinit = $(document).scrollTop();
499
500                    if ( newinit >
500 jbOffset.top ) {
501                        _top -= jbOffset.top;
502                        var container_height = $("#wrap").height();
503                        var quick_height = $(node).height();
504                        var cul = container_height - quick_height;
505                        if(_top > cul){
506                            _top = cul;
507                        }
508                    }else {
509                        _top = 0;
510                    }
511
512                    $(node).stop().animate({top: _top}, options.animate);
513                }, options.delay);
514            });
515        });
516    };
517
518    $.fn.floatBanner.defaults = {
519        'animate'  : 500,
520        'delay'    : 500
521    };
522
523})(jQuery);
524
525/**
526 * 문서 구동후 시작
527 */
528$(document).ready(function(){
529    $('#banner:visible, #quick:visible').floatBanner();
530});
531
532//placeholder
533$(".ePlaceholder input, .ePlaceholder textarea").each(function(i){
534    var placeholderName = $(this).parents().attr('title');
535    $(this).attr("placeholder", placeholderName);
536});
537/* placeholder ie8, ie9 */
538$.fn.extend({
539    placeholder : function() {
540        //IE 8 버전에는 hasPlaceholderSupport() 값이 false를 리턴
541       if (hasPlaceholderSupport() === true) {
542            return this;
543        }
544        //hasPlaceholderSupport() 값이 false 일 경우 아래 코드를 실행
545        return this.each(function(){
546            var findThis = $(this);
547            var sPlaceholder = findThis.attr('placeholder');
548            if ( ! sPlaceholder) {
549               return;
550            }
551            findThis.wrap('<label class="ePlaceholder" />');
552            var sDisplayPlaceHolder = $(this).val() ? ' style="display:none;"' : '';
553            findThis.before('<span' + sDisplayPlaceHolder + '>' + sPlaceholder + '</span>');
554            this.onpropertychange = function(e){
555                e = event || e;
556                if (e.propertyName == 'value') {
557                    $(this).trigger('focusout');
558                }
559            };
560            //공통 class
561            var agent = navigator.userAgent.toLowerCase();
562            if (agent.indexOf("msie") != -1) {
563                $(".ePlaceholder").css({"position":"relative"});
564                $(".ePlaceholder span").css({"position":"absolute", "padding":"0 4px", "color":"#878787"});
565                $(".ePlaceholder label").css({"padding":"0"});
566            } 
567        });
568    }
569});
570  
571$(':input[placeholder]').placeholder(); //placeholder() 함수를 호출
572  
573//클릭하면 placeholder 숨김
574$('body').delegate('.ePlaceholder span', 'click', function(){
575    $(this).hide();
576});
577  
578//input창 포커스 인 일때 placeholder 숨김
579$('body').delegate('.ePlaceholder :input', 'focusin', function(){
580    $(this).prev('span').hide();
581});
582  
583//input창 포커스 아웃 일때 value 가 true 이면 숨김, false 이면 보여짐
584$('body').delegate('.ePlaceholder :input', 'focusout', function(){
585    if (this.value) {
586        $(this).prev('span').hide();
587    } else {
588        $(this).prev('span').show();
589    }
590});
591  
592//input에 placeholder가 지원이 되면 true를 안되면 false를 리턴값으로 던져줌
593function hasPlaceholderSupport() {
594    if ('placeholder' in document.createElement('input')) {
595        return true;
596    } else {
597        return false;
598    }
599}
600
601/**
602 *  썸네일 이미지 엑박일경우 기본값 설정
603 */
604$(window).load(function() {
605    $("img.thumb,img.ThumbImage,img.BigImage").each(function($i,$item){
606        var $img = new Image();
607        $img.onerror = function () {
608                $item.src="//img.echosting.cafe24.com/thumb/img_product_big.gif";
609        }
610        $img.src = this.src;
611    });
612});
613
614//window popup script
615function winPop(url) {
616    window.open(url, "popup", "width=300,height=300,left=10,top=10,resizable=no,scrollbars=no");
617}
618/**
619 * document.location.href split
620 * return array Param
621 */
622function getQueryString(sKey)
623{
624    var sQueryString = document.location.search.substring(1);
625    var aParam       = {};
626
627    if (sQueryString) {
628        var aFields = sQueryString.split("&");
629        var aField  = [];
630        for (var i=0; i<aFields.length; i++) {
631            aField = aFields[i].split('=');
632            aParam[aField[0]] = aField[1];
633        }
634    }
635
636    aParam.page = aParam.page ? aParam.page : 1;
637    return sKey ? aParam[sKey] : aParam;
638};
639
640$(document).ready(function(){
641    // tab
642    $.eTab = function(ul){
643        $(ul).find('a').click(function(){
644            var _li = $(this).parent('li').addClass('selected').siblings().removeClass('selected'),
645                _target = $(this).attr('href'),
646                _siblings = '.' + $(_target).attr('class');
647            $(_target).show().siblings(_siblings).hide();
648            return false
649        });
650    }
651    if ( window.call_eTab ) {
652        call_eTab();
653    };
654});
655
656
657(function($){
658$.fn.extend({
659    center: function() {
660        this.each(function() {
661            var
662                $this = $(this),
663                $w = $(window);
664            $this.css({
665                position: "absolute",
666                top: ~~(($w.height() - $this.outerHeight()) / 2) + $w.scrollTop() + "px",
667                left: ~~(($w.width() - $this.outerWidth()) / 2) + $w.scrollLeft() + "px"
668            });
669        });
670        return this;
671    }
672});
673$(function() {
674    var $container = function(){/*
675<div id="modalContainer">
676    <iframe id="modalContent" scroll="0" scrolling="no" frameBorder="0"></iframe>
677</div>');
678*/}.toString().slice(14,-3);
679    $('body')
680    .append($('<div id="modalBackpanel"></div>'))
681    .append($($container));
682    function closeModal () {
683        $('#modalContainer').hide();
684        $('#modalBackpanel').hide();
685    }
686    $('#modalBackpanel').click(closeModal);
687    zoom = function ($piProductNo, $piCategoryNo, $piDisplayGroup) {
688        var $url = '/product/image_zoom.html?product_no=' + $piProductNo + '&cate_no=' + $piCategoryNo + '&display_group=' + $piDisplayGroup;
689        $('#modalContent').attr('src', $url);
690        $('#modalContent').bind("load",function(){
691            $(".header .close",this.contentWindow.document.body).bind("click", closeModal);
692        });
693        $('#modalBackpanel').css({width:$("body").width(),height:$("body").height(),opacity:.4}).show();
694        $('#modalContainer').center().show();
695    }
696});
697})(jQuery);
698/* tableTheme3 마지막 노드에 last 클래스 추가 */
699$(document).ready(function(){
700    $("thead tr").each(function(index){
701        var len = $(this).children().length;
702        var add = 0;
703        var plus = 0;
704        var jn;
705
706        for(var i=0; i<len; i++){
707            var str = $(this).children().eq(i).attr("class").split(" ");
708            if(str.length > 1){
709                for(j=0; j<str.length; j++){
710                    if(str[j] == "displaynone"){
711                        jn = j;
712                    }
713                }
714            }else{
715                jn = 0;
716            }
717
718            if(str[jn] == "displaynone"){
719                add++;
720            }else{
721                plus = i;
722            }
723        }
724        if(add == 0){ // displaynone이 아닌 경우, 마지막 노드에 클래스 추가
725            $(this).children().eq((len-1)).addClass("last");
726        }else{
727            $(this).children().eq(plus).addClass("last");
728        }
729    });
730
731    $("tbody tr").find("th").each(function(index){
732        $(this).parent().find("td:last-child").addClass("last");
733    });
734
735});
736/**
737 * 카테고리 마우스 오버 이미지
738 * 카테고리 서브 메뉴 출력
739 */
740
741$(document).ready(function(){
742
743    var methods = {
744        aCategory    : [],
745        aSubCategory : {},
746
747        get: function()
748        {
749             $.ajax({
750                url : '/exec/front/Product/SubCategory',
751                dataType: 'json',
752                success: function(aData) {
753
754                    if (aData == null || aData == 'undefined') return;
755                    for (var i=0; i<aData.length; i++)
756                    {
757                        var sParentCateNo = aData[i].parent_cate_no;
758
759                        if (!methods.aSubCategory[sParentCateNo]) {
760                            methods.aSubCategory[sParentCateNo] = [];
761                        }
762
763                        methods.aSubCategory[sParentCateNo].push( aData[i] );
764                    }
765                }
766            });
767        },
768
769        getParam: function(sUrl, sKey) {
770
771            var aUrl         = sUrl.split('?');
772            var sQueryString = aUrl[1];
773            var aParam       = {};
774
775            if (sQueryString) {
776                var aFields = sQueryString.split("&");
777                var aField  = [];
778                for (var i=0; i<aFields.length; i++) {
779                    aField = aFields[i].split('=');
780                    aParam[aField[0]] = aField[1];
781                }
782            }
783            return sKey ? aParam[sKey] : aParam;
784        },
785
786
787        show: function(overNode, iCateNo) {
788
789            if (methods.aSubCategory[iCateNo].length == 0) {
790                return;
791            }
792
793            var aHtml = [];
794            aHtml.push('<ul>');
795            $(methods.aSubCategory[iCateNo]).each(function() {
796                aHtml.push('<li><a href="/'+this.design_page_url+this.param+'">'+this.name+'</a></li>');
797            });
798            aHtml.push('</ul>');
799
800
801            var offset = $(overNode).offset();
802            $('<div class="sub-category"></div>')
803                .appendTo(overNode)
804                .html(aHtml.join(''))
805                .find('li').mouseover(function(e) {
806                    $(this).addClass('over');
807                }).mouseout(function(e) {
808                    $(this).removeClass('over');
809                });
810        },
811
812        close: function() {
813            $('.sub-category').remove();
814        }
815    };
816
817    methods.get();
818
819
820    $('.xans-layout-category li').mouseenter(function(e) {
821          var $this = $(this).addClass('on'),
822            iCateNo = Number(methods.getParam($this.find('a').attr('href'), 'cate_no'));
823
824          if (!iCateNo) {
825               return;
826          }
827
828          methods.show($this, iCateNo);
829     }).mouseleave(function(e) {
830        $(this).removeClass('on');
831
832          methods.close();
833     });
834});
835/**
836* @class
837*   이미지 롤링를 처리 합니다.
838*
839* @example
840*    $.fn.roate.defaults  = {
841*        'duration' : '3000',
842*       'stopButton' : '#stopButton',
843*        'playButton' : '#playButton',
844*        'prevButton' : '#prevButton',
845*        'nextButton' : '#nextButton',
846*        'movement'  : 'left',
847*        'scroll'     : 1,
848*        'autoStart'   : false,
849*        'interval'   : 2000
850*    };
851*
852*/
853
854;(function($){
855
856    $.fn.roate = function( options ) {
857
858        var opts = $.extend( {}, $.fn.roate.defaults, options ),
859            containerBox = [],
860            $this = $(this),
861            defaultWidth, defaultHeight, curentIndex = 0, distance, childLength, isAnimate = false, timer = null;
862
863        var pm = {}
864
865        var _init = function() {
866            _setDefaultSize();
867            _setDistance();
868            _displayOverFlow();
869            _setContainerBox();
870            if(childLength > 1) {
871                _setEventBind();
872            } else {
873                _displayPlayButton();
874            }
875        }
876        , _setDefaultSize = function() {
877            defaultWidth  = opts.defaultWidth || $this.children().eq(0).width();
878            defaultHeight = opts.defaultHeight || $this.children().eq(0).height();
879            childLength   = $this.children().length;
880            if ( opts.movement == 'top' ) {
881                defaultHeight = defaultHeight * parseInt(opts.scroll,10);
882            } else {
883                defaultWidth  = defaultWidth * parseInt(opts.scroll,10);
884                $this.children().css('float','left');
885            }
886        }
887        , _setDistance = function() {
888            if ( opts.movement == 'top') {
889                distance = defaultHeight;
890            } else {
891                distance = defaultWidth;
892            }
893        }
894        , _displayOverFlow = function() {
895            var $wrap = $("<div class='containterWrap'></div>").css({
896                'overflow' : 'hidden',
897                'position' : 'relative',
898                'width' : defaultWidth,
899                'height' : opts.defaultHeight || defaultHeight
900            });
901            $this.wrap( $wrap );
902            $this.css({'position':'absolute', 'left': '0', 'top' : '0' });
903        }
904        , _setContainerBox = function() {
905            $this.children().each(function(i){
906                containerBox[ containerBox.length ] = this;
907            });
908        }
909        , _setEventBind  = function() {
910            $(options.nextButton).bind('click.roate', function(){
911                pm.next();
912            });
913
914            $(options.prevButton).bind('click.roate', function(){
915                pm.prev();
916            });
917
918            $(options.playButton).bind('click.roate', function(){
919                _stopTimer();
920                pm.play();
921            });
922
923            $(options.stopButton).bind('click.roate', function(){
924                pm.stop();
925            });
926            $this.hover( function(){
927                pm.stop();
928            }, function(){
929                _stopTimer();
930                pm.play();
931            });
932        }
933        , _addCurrent = function() {
934            curentIndex++;
935
936            if ( curentIndex >= childLength ) {
937                curentIndex = 0;
938            }
939        }, _minusCurrent = function() {
940            curentIndex--;
941            if ( curentIndex < 0 ) {
942                curentIndex = childLength -1;
943            }
944        }
945        , _isAmimate = function() {
946            if ( isAnimate ) {
947                return true;
948            }
949            isAnimate = true;
950            return false;
951        }, _stopTimer = function(){
952            if ( timer ) {
953                clearInterval( timer );
954                _displayPlayButton();
955            }
956        }, _displayPlayButton = function() {
957            $(opts.playButton).css('display', 'inline');
958            $(opts.stopButton).css('display', 'none');
959        }, _displayStopButton = function() {
960            $(opts.playButton).css('display', 'none');
961            $(opts.stopButton).css('display', 'inline');
962        }, _setOpacity = function ( style ) {
963              if ( opts.opacity ) {
964                style['display'] = 'none';
965                style['opacity'] = 1;
966            }
967            return style;
968        };
969
970        pm.next = function() {
971            this.nextMovement( $(containerBox[ curentIndex ]) );
972        };
973
974        pm.prev = function() {
975            this.prevMovement( $(containerBox[ curentIndex ]) );
976        };
977
978        pm.play = function() {
979            timer = setInterval(function(){ pm.next() }, opts.interval);
980            _displayStopButton();
981        };
982
983        pm.stop = function() {
984            _stopTimer();
985        };
986
987        pm.nextMovement = function ($el) {
988            var moveDistance = $this.offset().left - $el.offset().left - distance;
989
990            if ( _isAmimate() === false ) {
991                var moveType = {},setCss = {}
992                moveType[opts.movement] = moveDistance;
993                if ( opts.opacity) {
994                    moveType['opacity'] = 0;
995                }
996                setCss[opts.movement] = parseInt(moveDistance,10) + parseInt(distance,10);
997                setCss = _setOpacity( setCss );
998                $this.animate(moveType, opts.duration, function(){
999                    $this.children(':last').after($el);
1000                    $this.css(setCss);
1001                    if ( opts.opacity ) {
1002                        $this.fadeIn(opts.duration);
1003                    }
1004                    isAnimate = false;
1005                    _addCurrent();
1006                });
1007            }
1008        }
1009
1010        pm.prevMovement = function ($el) {
1011            var moveDistance = $this.offset().left - $el.offset().left + distance;
1012            if ( _isAmimate() === false ) {
1013                var moveType = {},setCss = {}
1014                moveType[opts.movement] = moveDistance;
1015                if ( opts.opacity ) {
1016                    moveType['opacity'] = 0;
1017                }
1018                setCss[opts.movement] = parseInt(moveDistance,10) - parseInt(distance,10);
1019                setCss = _setOpacity( setCss );
1020                if ( opts.movement == 'top' ) {
1021                    $this.css('top',-defaultHeight);
1022                    moveType[opts.movement] = 0;
1023                    $this.children(':first').before($this.children(':last'));
1024                }
1025                $this.animate(moveType, opts.duration, function(){
1026                    if ( opts.movement == 'left' ) {
1027                        $this.children(':first').before($this.children(':last'));
1028                    }
1029                    $this.css(setCss);
1030                    if ( opts.opacity ) {
1031                        $this.fadeIn(opts.duration);
1032                    }
1033                    _minusCurrent();
1034                    isAnimate = false;
1035                });
1036            }
1037        }
1038
1039        _init();
1040
1041        if ( opts.autoStart && childLength > 1) {
1042            pm.play();
1043        }
1044
1045        return pm;
1046    };
1047
1048    $.fn.roate.defaults  = {
1049        'duration' : '3000',
1050        'stopButton' : '#stopButton',
1051        'playButton' : '#playButton',
1052        'prevButton' : '#prevButton',
1053        'nextButton' : '#nextButton',
1054        'movement'  : 'left',
1055        'scroll'     : 1,
1056        'autoStart'   : 1,
1057        'interval'   : 2000,
1058        'opacity'    : false
1059    };
1060
1061})(jQuery);
1062
1063$(document).ready(function(){
1064    $(".xans-layout-project ul").roate({
1065        'duration' : '1000',
1066        'interval' : 3000,
1067        'stopButton' : '#stopButton-project',
1068        'playButton' : '#playButton-project',
1069        'prevButton' : '#prevButton-project',
1070        'nextButton' : '#nextButton-project',
1071        'defaultWidth':  '180',
1072        'defaultHeight' : '180',
1073        'movement'  : 'top',
1074        'opacity' : false,
1075        'autoStart' : true
1076    });
1077});
1078

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.