PageSourceSearch

https://firgi.kr/ind-script/optimizer_user.php?filename=jdA9FoIwDA…0ced83ea2d099451012bb4b&t=1742434787&user=T

js firgi.kr collected 2026-09-26 05:06:08 UTC 41,748 bytes, 1,228 lines download raw bytes

1$(function(){
2	// 할인율 표시
3	discountRate();
4});
5/**
6 * 움직이는 배너 Jquery Plug-in
7 * @author  cafe24
8 */
9
10(function($){
11
12    $.fn.floatBanner = function(options) {
13        options = $.extend({}, $.fn.floatBanner.defaults , options);
14
15        return this.each(function() {
16            var aPosition = $(this).position();
17            var jbOffset = $(this).offset();
18            var node = this;
19
20            $(window).scroll(function() {
21                var _top = $(document).scrollTop();
22                _top = (aPosition.top < _top) ? _top : aPosition.top;
23
24                setTimeout(function () {
25                    var newinit = $(document).scrollTop();
26
27                    if ( newinit > jbOffset.top ) {
28                        _top -= jbOffset.top;
29                        var container_height = $("#wrap").height();
30                        var quick_height = $(node).height();
31                        var cul = container_height - quick_height;
32                        if(_top > cul){
33                            _top = cul;
34                        }
35                    }else {
36                        _top = 0;
37                    }
38
39                    $(node).stop().animate({top: _top}, options.animate);
40                }, options.delay);
41            });
42        });
43    };
44
45    $.fn.floatBanner.defaults = {
46        'animate'  : 500,
47        'delay'    : 500
48    };
49
50})(jQuery);
51
52/**
53 * 문서 구동후 시작
54 */
55$(document).ready(function(){
56    $('#banner:visible, #quick:visible').floatBanner();
57
58    //placeholder
59    $(".ePlaceholder input, .ePlaceholder textarea").each(function(i){
60        var placeholderName = $(this).parents().attr('title');
61        $(this).attr("placeholder", placeholderName);
62    });
63    /* placeholder ie8, ie9 */
64    $.fn.extend({
65        placeholder : function() {
66            //IE 8 버전에는 hasPlaceholderSupport() 값이 false를 리턴
67           if (hasPlaceholderSupport() === true) {
68                return this;
69            }
70            //hasPlaceholderSupport() 값이 false 일 경우 아래 코드를 실행
71            return this.each(function(){
72                var findThis = $(this);
73                var sPlaceholder = findThis.attr('placeholder');
74                if ( ! sPlaceholder) {
75                   return;
76                }
77                findThis.wrap('<label class="ePlaceholder" />');
78                var sDisplayPlaceHolder = $(this).val() ? ' style="display:none;"' : '';
79                findThis.before('<span' + sDisplayPlaceHolder + '>' + sPlaceholder + '</span>');
80                this.onpropertychange = function(e){
81                    e = event || e;
82                    if (e.propertyName == 'value') {
83                        $(this).trigger('focusout');
84                    }
85                };
86                //공통 class
87                var agent = navigator.userAgent.toLowerCase();
88                if (agent.indexOf("msie") != -1) {
89                    $(".ePlaceholder").css({"position":"relative"});
90                    $(".ePlaceholder span").css({"position":"absolute", "padding":"0 4px", "color":"#878787"});
91                    $(".ePlaceholder label").css({"padding":"0"});
92                }
93            });
94        }
95    });
96
97    $(':input[placeholder]').placeholder(); //placeholder() 함수를 호출
98
99    //클릭하면 placeholder 숨김
100    $('body').delegate('.ePlaceholder span', 'click', function(){
101        $(this).hide();
102    });
103
104    //input창 포커스 인 일때 placeholder 숨김
105    $('body').delegate('.ePlaceholder :input', 'focusin', function(){
106        $(this).prev('span').hide();
107    });
108
109    //input창 포커스 아웃 일때 value 가 true 이면 숨김, false 이면 보여짐
110    $('body').delegate('.ePlaceholder :input', 'focusout', function(){
111        if (this.value) {
112            $(this).prev('span').hide();
113        } else {
114            $(this).prev('span').show();
115        }
116    });
117
118    //input에 placeholder가 지원이 되면 true를 안되면 false를 리턴값으로 던져줌
119    function hasPlaceholderSupport() {
120        if ('placeholder' in document.createElement('input')) {
121            return true;
122        } else {
123            return false;
124        }
125    }
126});
127
128/**
129 *  썸네일 이미지 엑박일경우 기본값 설정
130 */
131$(window).load(function() {
132    $("img.thumb,img.ThumbImage,img.BigImage").each(function($i,$item){
133        var $img = new Image();
134        $img.onerror = function () {
135                $item.src="//img.echosting.cafe24.com/thumb/img_product_big.gif";
136        }
137        $img.src = this.src;
138    });
139});
140
141/**
142 *  tooltip
143 */
144$('.eTooltip').each(function(i){
145    $(this).find('.btnClose').attr('tabIndex','-1');
146});
147//tooltip input focus
148$('.eTooltip').find('input').focus(function() {
149    var targetName = returnTagetName(this);
150    targetName.siblings('.ec-base-tooltip').show();
151});
152$('.eTooltip').find('input').focusout(function() {
153    var targetName = returnTagetName(this);
154    targetName.siblings('.ec-base-tooltip').hide();
155});
156function returnTagetName(_this){
157    var ePlacename = $(_this).parent().attr("class");
158    var targetName;
159    if(ePlacename == "ePlaceholder"){ //ePlaceholder 대응
160        targetName = $(_this).parents();
161    }else{
162        targetName = $(_this);
163    }
164    return targetName;
165}
166
167/**
168 *  eTab
169 */
170 $("body").delegate(".eTab a", "click", function(e){
171    // 클릭한 li 에 selected 클래스 추가, 기존 li에 있는 selected 클래스는 삭제.
172    var _li = $(this).parent("li").addClass("selected").siblings().removeClass("selected"),
173    _target = $(this).attr("href"),
174    _siblings = $(_target).attr("class"),
175    _arr = _siblings.split(" "),
176    _classSiblings = "."+_arr[0];
177
178    //클릭한 탭에 해당하는 요소는 활성화, 기존 요소는 비활성화 함.
179    $(_target).show().siblings(_classSiblings).hide();
180
181
182    //preventDefault 는 a 태그 처럼 클릭 이벤트 외에 별도의 브라우저 행동을 막기 위해 사용됨.
183    e.preventDefault();
184});
185
186
187
188//window popup script
189function winPop(url) {
190    window.open(url, "popup", "width=300,height=300,left=10,top=10,resizable=no,scrollbars=no");
191}
192/**
193 * document.location.href split
194 * return array Param
195 */
196function getQueryString(sKey)
197{
198    var sQueryString = document.location.search.substring(1);
199    var aParam       = {};
200
201    if (sQueryString) {
202        var aFields = sQueryString.split("&");
203        var aField  = [];
204        for (var i=0; i<aFields.length; i++) {
205            aField = aFields[i].split('=');
206            aParam[aField[0]] = aField[1];
207        }
208    }
209
210    aParam.page = aParam.page ? aParam.page : 1;
211    return sKey ? aParam[sKey] : aParam;
212};
213
214$(document).ready(function(){
215    // tab
216    $.eTab = function(ul){
217        $(ul).find('a').click(function(){
218            var _li = $(this).parent('li').addClass('selected').siblings().removeClass('selected'),
219                _target = $(this).attr('href'),
220                _siblings = '.' + $(_target).attr('class');
221            $(_target).show().siblings(_siblings).hide();
222            return false
223        });
224    }
225    if ( window.call_eTab ) {
226        call_eTab();
227    };
228});
229
230jQuery11(function(){
231	// 할인율 표시
232	discountRate();
233});
234(function($){
235$.fn.extend({
236    center: function() {
237        this.each(function() {
238            var
239                $this = $(this),
240                $w = $(window);
241            $this.css({
242                position: "absolute",
243                top: ~~(($w.height() - $this.outerHeight()) / 2) + $w.scrollTop() + "px",
244                left: ~~(($w.width() - $this.outerWidth()) / 2) + $w.scrollLeft() + "px"
245            });
246        });
247        return this;
248    }
249});
250$(function() {
251    var $container = function(){/*
252<div id="modalContainer">
253    <iframe id="modalContent" scroll="0" scrolling="no" frameBorder="0"></iframe>
254</div>');
255*/}.toString().slice(14,-3);
256    $('body')
257    .append($('<div id="modalBackpanel"></div>'))
258    .append($($container));
259    function closeModal () {
260        $('#modalContainer').hide();
261        $('#modalBackpanel').hide();
262    }
263    $('#modalBackpanel').click(closeModal);
264    zoom = function ($piProductNo, $piCategoryNo, $piDisplayGroup) {
265        var $url = '/product/image_zoom.html?product_no=' + $piProductNo + '&cate_no=' + $piCategoryNo + '&display_group=' + $piDisplayGroup;
266        $('#modalContent').attr('src', $url);
267        $('#modalContent').bind("load",function(){
268            $(".header .close",this.contentWindow.document.body).bind("click", closeModal);
269        });
270        $('#modalBackpanel').css({width:$("body").width(),height:$("body").height(),opacity:.4}).show();
271        $('#modalContainer').center().show();
272    }
273});
274})(jQuery);
275$(document).ready(function(){
276    if (typeof(EC_SHOP_MULTISHOP_SHIPPING) != "undefined") {
277        var sShippingCountryCode4Cookie = 'shippingCountryCode';
278        var bShippingCountryProc = false;
279
280        // 배송국가 선택 설정이 사용안함이면 숨김
281        if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === false) {
282            $('.xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist').hide();
283            $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption .xans-layout-multishoplistmultioptioncountry').hide();
284        } else {
285            $('.thumb .xans-layout-multishoplistitem').hide();
286            var aShippingCountryCode = document.cookie.match('(^|;) ?'+sShippingCountryCode4Cookie+'=([^;]*)(;|$)');
287            if (typeof(aShippingCountryCode) != 'undefined' && aShippingCountryCode != null && aShippingCountryCode.length > 2) {
288                var sShippingCountryValue = aShippingCountryCode[2];
289            }
290
291            // query string으로 넘어 온 배송국가 값이 있다면, 그 값을 적용함
292            var aHrefCountryValue = decodeURIComponent(location.href).split("/?country=");
293
294            if (aHrefCountryValue.length == 2) {
295                var sShippingCountryValue = aHrefCountryValue[1];
296            }
297
298            // 메인 페이지에서 국가선택을 안한 경우, 그 외의 페이지에서 셋팅된 값이 안 나오는 현상 처리
299            if (location.href.split("/").length != 4 && $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val()) {
300                $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join(""));
301
302                if ($("#f_country").length > 0 && location.href.indexOf("orderform.html") > -1) {
303                    $("#f_country").val($(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val());
304                }
305            }
306            if (typeof(sShippingCountryValue) != "undefined" && sShippingCountryValue != "" && sShippingCountryValue != null) {
307                sShippingCountryValue = sShippingCountryValue.split("#")[0];
308                var bShippingCountryProc = true;
309
310                $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val(sShippingCountryValue);
311                $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join(""));
312                var expires = new Date();
313                expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30일간 쿠키 유지
314                document.cookie = sShippingCountryCode4Cookie+'=' + $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val() +';path=/'+ ';expires=' + expires.toUTCString();
315                if ($("#f_country").length > 0 && location.href.indexOf("orderform.html") > -1) {
316                    $("#f_country").val(sShippingCountryValue).change();;
317                }
318            }
319        }
320        // 언어선택 설정이 사용안함이면 숨김
321        if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingLanguageSelection === false) {
322            $('.xans-layout-multishopshipping .xans-layout-multishopshippinglanguagelist').hide();
323            $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption .xans-layout-multishoplistmultioptionlanguage').hide();
324        } else {
325            $('.thumb .xans-layout-multishoplistitem').hide();
326        }
327
328        // 배송국가 및 언어 설정이 둘 다 사용안함이면 숨김
329        if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShipping === false) {
330            $(".xans-layout-multishopshipping").hide();
331            $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption').hide();
332        } else if (bShippingCountryProc === false && location.href.split("/").length == 4) { // 배송국가 값을 처리한 적이 없고, 메인화면일 때만 선택 레이어를 띄움
333            var sShippingCountryValue = $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val();
334            $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val(sShippingCountryValue);
335            $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join(""));
336            // 배송국가 선택을 사용해야 레이어를 보이게 함
337            if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === true) {
338                $(".xans-layout-multishopshipping").show();
339            }
340        }
341
342        $(".xans-layout-multishopshipping .close").bind("click", function() {
343            $(".xans-layout-multishopshipping").hide();
344        });
345
346        $(".xans-layout-multishopshipping .ec-base-button a").bind("click", function() {
347            var expires = new Date();
348            expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30일간 쿠키 유지
349            document.cookie = sShippingCountryCode4Cookie+'=' + $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val() +';path=/'+ ';expires=' + expires.toUTCString();
350
351            // 도메인 문제로 쿠키로 배송국가 설정이 안 되는 경우를 위해 query string으로 배송국가 값
vendor: 4,732 bytes, lines 351-475
351을 넘김
352            var sQuerySting = (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === false) ? "" : "/?country="+encodeURIComponent($(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val());
353
354            location.href = '//'+$(".xans-layout-multishopshipping .xans-layout-multishopshippinglanguagelist").val()+sQuerySting;
355        });
356        $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a").bind("click", function() {
357            $(".xans-layout-multishopshipping").show();
358        });
359    }
360});
361/*
362 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
363 *
364 * Uses the built in easing capabilities added In jQuery 1.1
365 * to offer multiple easing options
366 *
367 * TERMS OF USE - jQuery Easing
368 *
369 * Open source under the BSD License.
370 *
371 * Copyright 짤 2008 George McGinley Smith
372 * All rights reserved.
373 *
374 * Redistribution and use in source and binary forms, with or without modification,
375 * are permitted provided that the following conditions are met:
376 *
377 * Redistributions of source code must retain the above copyright notice, this list of
378 * conditions and the following disclaimer.
379 * Redistributions in binary form must reproduce the above copyright notice, this list
380 * of conditions and the following disclaimer in the documentation and/or other materials
381 * provided with the distribution.
382 *
383 * Neither the name of the author nor the names of contributors may be used to endorse
384 * or promote products derived from this software without specific prior written permission.
385 *
386 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
387 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
388 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
389 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
390 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
391 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
392 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
393 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
394 * OF THE POSSIBILITY OF SUCH DAMAGE.
395 *
396*/
397
398// t: current time, b: begInnIng value, c: change In value, d: duration
399jQuery.easing['jswing'] = jQuery.easing['swing'];
400
401jQuery.extend( jQuery.easing,
402{
403	def: 'easeOutQuad',
404	swing: function (x, t, b, c, d) {
405		//alert(jQuery.easing.default);
406		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
407	},
408	easeInQuad: function (x, t, b, c, d) {
409		return c*(t/=d)*t + b;
410	},
411	easeOutQuad: function (x, t, b, c, d) {
412		return -c *(t/=d)*(t-2) + b;
413	},
414	easeInOutQuad: function (x, t, b, c, d) {
415		if ((t/=d/2) < 1) return c/2*t*t + b;
416		return -c/2 * ((--t)*(t-2) - 1) + b;
417	},
418	easeInCubic: function (x, t, b, c, d) {
419		return c*(t/=d)*t*t + b;
420	},
421	easeOutCubic: function (x, t, b, c, d) {
422		return c*((t=t/d-1)*t*t + 1) + b;
423	},
424	easeInOutCubic: function (x, t, b, c, d) {
425		if ((t/=d/2) < 1) return c/2*t*t*t + b;
426		return c/2*((t-=2)*t*t + 2) + b;
427	},
428	easeInQuart: function (x, t, b, c, d) {
429		return c*(t/=d)*t*t*t + b;
430	},
431	easeOutQuart: function (x, t, b, c, d) {
432		return -c * ((t=t/d-1)*t*t*t - 1) + b;
433	},
434	easeInOutQuart: function (x, t, b, c, d) {
435		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
436		return -c/2 * ((t-=2)*t*t*t - 2) + b;
437	},
438	easeInQuint: function (x, t, b, c, d) {
439		return c*(t/=d)*t*t*t*t + b;
440	},
441	easeOutQuint: function (x, t, b, c, d) {
442		return c*((t=t/d-1)*t*t*t*t + 1) + b;
443	},
444	easeInOutQuint: function (x, t, b, c, d) {
445		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
446		return c/2*((t-=2)*t*t*t*t + 2) + b;
447	},
448	easeInSine: function (x, t, b, c, d) {
449		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
450	},
451	easeOutSine: function (x, t, b, c, d) {
452		return c * Math.sin(t/d * (Math.PI/2)) + b;
453	},
454	easeInOutSine: function (x, t, b, c, d) {
455		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
456	},
457	easeInExpo: function (x, t, b, c, d) {
458		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
459	},
460	easeOutExpo: function (x, t, b, c, d) {
461		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
462	},
463	easeInOutExpo: function (x, t, b, c, d) {
464		if (t==0) return b;
465		if (t==d) return b+c;
466		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
467		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
468	},
469	easeInCirc: function (x, t, b, c, d) {
470		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
471	},
472	easeOutCirc: function (x, t, b, c, d) {
473		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
474	},
475	easeInOutCirc: function (x, t, b, c, d) {
476		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
477		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
478	},
479	easeInElastic: function (x, t, b, c, d) {
480		var s=1.70158;var p=0;var a=c;
481		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
482		if (a < Math.abs(c)) { a=c; var s=p/4; }
483		else var s = p/(2*Math.PI) * Math.asin (c/a);
484		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
485	},
486	easeOutElastic: function (x, t, b, c, d) {
487		var s=1.70158;var p=0;var a=c;
488		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
489		if (a < Math.abs(c)) { a=c; var s=p/4; }
490		else var s = p/(2*Math.PI) * Math.asin (c/a);
491		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
492	},
493	easeInOutElastic: function (x, t, b, c, d) {
494		var s=1.70158;var p=0;var a=c;
495		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
496		if (a < Math.abs(c)) { a=c; var s=p/4; }
497		else var s = p/(2*Math.PI) * Math.asin (c/a);
498		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
499		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
500	},
501	easeInBack: function (x, t, b, c, d, s) {
502		if (s == undefined) s = 1.70158;
503		return c*(t/=d)*t*((s+1)*t - s) + b;
504	},
505	easeOutBack: function (x, t, b, c, d, s) {
506		if (s == undefined) s = 1.70158;
507		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
508	},
509	easeInOutBack: function (x, t, b, c, d, s) {
510		if (s == undefined) s = 1.70158;
511		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
512		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
513	},
514	easeInBounce: function (x, t, b, c, d) {
515		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
516	},
517	easeOutBounce: function (x, t, b, c, d) {
518		if ((t/=d) < (1/2.75)) {
519			return c*(7.5625*t*t) + b;
520		} else if (t < (2/2.75)) {
521			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
522		} else if (t < (2.5/2.75)) {
523			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
524		} else {
525			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
526		}
527	},
528	easeInOutBounce: function (x, t, b, c, d) {
529		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
530		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
531	}
532});
533
534/*
535 *
536 * TERMS OF USE - EASING EQUATIONS
537 *
538 * Open source under the BSD License.
539 *
540 * Copyright 짤 2001 Robert Penner
541 * All rights reserved.
542 *
543 * Redistribution and use in source and binary forms, with or without modification,
544 * are permitted provided that the following conditions are met:
545 *
546 * Redistributions of source code must retain the above copyright notice, this list of
547 * conditions and the following disclaimer.
548 * Redistributions in binary form must reproduce the above copyright notice, this list
549 * of conditions and the following disclaimer in the documentation and/or other materials
550 * provided with the distribution.
551 *
552 * Neither the name of the author nor the names of contributors may be used to endorse
553 * or promote products derived from this software without specific prior written permission.
554 *
555 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
556 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
557 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
558 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
559 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
560 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
561 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
562 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
563 * OF THE POSSIBILITY OF SUCH DAMAGE.
564 *
565 */
566/**
567* 카테고리
568* 제작 : 웹퍼블릭
569* 버전 : 3.0
570* 최종업데이트 : 2022.09.14
571* 웹퍼블릭에서 개발된 플러그인으로 무단 복제/사용 하실 수 없습니다
572* 주석제거 시 플러그인을 사용하실 수 없습니다.
573*/
574let makeSubCate = (function($){
575	let json;
576	let def = {
577		target : '#category',
578	}
579
580	let init = function(options) {
581		jQuery.extend(def, options);
582		$.ajax({
583			url: '/exec/front/Product/SubCategory',
584			cache: false,
585			dataType: 'json',
586			timeout: 4000,
587			async: false,
588			beforeSend : function() {},
589			error: function(xhr, ajaxOptions, thrownError){
590				return;
591			},
592			success: function(data){
593				/* 디자인보관함 스킨 경로 변경에 따른 상품 url 수정 */
594				$(data).each(function(i,d){
595					if (d.link_product_list.indexOf('/category/') > 0){
596						d.design_page_url = d.link_product_list.substring(0, d.link_product_list.indexOf('/category/')) + '/' + d.design_page_url;
597					}else{
598						d.design_page_url = '/' + d.design_page_url;
599					}
600				}).promise().done(function(){
601					json = data;
602					makeCateMenuHtml();
603					if (def.type == 'sidebar') addEvents();
604				});
605			}
606		});
607	}
608
609	let addEvents = function(){
610		$('.menu_navi .fold, #aside .btnClose, #aside .back-panel').on('click',function () {
611			$('.menu_navi .fold-icon').toggleClass('active');
612			$('#aside').toggleClass('active').promise().done(function(){
613				if ($(this).hasClass('active')){
614					$(this).fadeIn(200);
615					$('html').addClass('gnb-active');
616				}else{
617					$(this).hide();
618					$('html').removeClass('gnb-active');
619				}
620			});
621		});
622
623		$('#aside .toggle-cate').click(function(e){
624			e.preventDefault();
625			const expend_target = $(this).data('expand-target');
626			if ($(`.${expend_target}`).hasClass('active')){
627				$(`.${expend_target}
627`).stop(true,true).slideUp(300,'easeOutQuart');
628				$(`.${expend_target}`).removeClass('active');
629			}else{
630				$(`.${expend_target}`).stop(true,true).slideDown(300,'easeOutQuart');
631				$(`.${expend_target}`).addClass('active');
632			}
633			$(this).closest('li').toggleClass('selected');
634		});
635	}
636
637	// 카테고리 메뉴 기본 html 생성
638	let makeCateMenuHtml = function() {
639		let result_html;
640
641		$(def.target).find('li[data-param]').each(function(seq) {
642			let $target = $(this);
643
644			let depth_one_cate_no = getParamUrl('cate_no',$target.attr('data-param'));
645			if (!depth_one_cate_no) return;
646
647			result_html = makeCateMenuChildList(depth_one_cate_no);
648
649			if (def.type == 'sidebar'){
650				if (result_html){
651					$target.append(result_html);
652				}else{
653					$target.find('.toggle-cate').remove();
654				}
655			}else{
656				// 하위 분류가 없을 경우 하위분류 wrap 영역 제거
657				if (!result_html){
658					$target.find('.sub-category').remove();
659					return;
660				}
661				// 있을 경우 하위 분류 html 추가
662				$target.find('.sub-category').prepend('<div class="sub-category-list sub-left">'+result_html+'</div>');
663			}
664		});
665	}
666
667	// 카테고리 메뉴 하위 분류 생성
668	let makeCateMenuChildList = function(parent_cate_no) {
669		let sub_html = "";
670
671		// 2차 분류
672		if (isChildrenCate(parent_cate_no)) {
673			sub_html += "<ul class='sub02 sub02_"+parent_cate_no+"'>";
674
675			$(json).each(function(i, d2){
676				if (d2.parent_cate_no == parent_cate_no) {
677					let is_sub_03 = false;
678					let arrow_03 = '', btn_expand_03 = '';
679
680					if (isChildrenCate(d2.cate_no)){
681						is_sub_03 = true;
682						arrow_03 = 'arrow';
683						if (def.type == 'sidebar') btn_expand_03 = `<span href="#none" class="toggle-cate view" data-expand-target="sub03_${d2.cate_no}"></span>`;
684					}
685
686					sub_html += '<li class="cate_no_'+d2.cate_no+' '+arrow_03+'"><a href="'+d2.design_page_url+'?cate_no='+d2.cate_no+'">'+d2.name+`</a>${btn_expand_03}`;
687
688					// 3차 분류
689					if (is_sub_03){
690
691						sub_html += "<ul class='sub03 sub03_"+d2.cate_no+"'>";
692
693						$(json).each(function(j, d3){
694
695							if (d3.parent_cate_no == d2.cate_no) {
696								let is_sub_04 = false;
697								let arrow_04 = '', btn_expand_04 = '';
698
699								if (isChildrenCate(d3.cate_no)){
700									is_sub_04 = true;
701									arrow_04 = 'arrow';
702									if (def.type == 'sidebar') btn_expand_04 = `<span href="#none" class="toggle-cate view" data-expand-target="sub04_${d3.cate_no}"></span>`;
703								}
704
705								sub_html += '<li class="cate_no_'+d3.cate_no+' '+arrow_04+'"><a href="'+d2.design_page_url+'?cate_no='+d3.cate_no+'">'+d3.name+`</a>${btn_expand_04}`;
706
707								// 4차 분류
708								if (is_sub_04){
709
710									sub_html += "<ul class='sub04 sub04_"+d3.cate_no+"'>";
711
712									$(json).each(function(m, d4){
713
714										if (d4.parent_cate_no == d3.cate_no){
715											sub_html += '<li class="cate_no_'+d4.cate_no+'"><a href="'+d2.design_page_url+'?cate_no='+d4.cate_no+'">'+d4.name+'</a></li>';
716										}
717									});
718
719									sub_html += '</ul>';
720								}
721								sub_html += '</li>';
722							}
723						});
724
725						sub_html += '</ul>';
726					}
727					sub_html += '</li>';
728				}
729			});
730			sub_html += '</ul>';
731
732			return sub_html;
733		}
734	}
735
736	// 하위 분류 존재 여부 체크
737	let isChildrenCate = function(cate_no) {
738		let result = false;
739		$(json).each(function(i, d){
740			if (d.parent_cate_no == cate_no){
741				result = true;
742			}
743		});
744
745		return result;
746	}
747
748	// URL 파라미터 추출
749	let getParamUrl = function(sKey, url){
750		if (!url) url = location.href;
751		var sQueryString = url.substring(url.indexOf('?')+1);
752		var aParam = {};
753
754		if (sQueryString) {
755			var aFields = sQueryString.split("&");
756			var aField  = [];
757			for (var i=0; i<aFields.length; i++) {
758				aField = aFields[i].split('=');
759				aParam[aField[0]] = aField[1];
760			}
761		}
762
763		aParam.page = aParam.page ? aParam.page : 1;
764		return sKey ? aParam[sKey] : aParam;
765	}
766
767	return {
768		init : function(options){
769			init(options);
770		}
771	}
772})(jQuery11);
773
774$(function(){
775	makeSubCate.init({target : '#category'});
776});
777    if (!String.prototype.includes) {
778        String.prototype.includes = function(search, start) {
779            'use strict';
780
781            if (search instanceof RegExp) {
782                throw TypeError('first argument must not be a RegExp');
783            }
784            if (start === undefined) { start = 0; }
785            return this.indexOf(search, start) !== -1;
786        };
787    }
788/**
789* 제작 : 웹퍼블릭(http://webpublic.co.kr)
790* 웹퍼블릭 개발된 플러그인으로 무단 복제/사용 하실 수 없습니다
791* 주석제거 시 플러그인을 사용하실 수 없습니다.
792*/
793
794$(window).scroll(function(){
795	var scrollTop = parseInt($(this).scrollTop());
796
797	if (!$('#prdDetail').length > 0)
798	{
799		var innerTop = $('#header .cate-wrap').offset().top;
800		if (scrollTop > innerTop){
801			if (!$('#header').hasClass('fixed')) {
802				$('#header').addClass('fixed');
803				var logoWidth = $('#header .cate-wrap .logo-img img').width();
804				$('#header .cate-wrap .logo-img').animate({
805					width:logoWidth,
806					}, 300,
807				function(){
808					$('#header .cate-wrap .logo-img').css('visibility','visible').animate({
809						opacity:1,
810					}, 600);
811				});
812			}
813		}else{
814			if ($('#header').hasClass('fixed')) {
815				$('#header').removeClass('fixed');
816				$('#header .cate-wrap .logo-img').stop().css({
817					width : 0,
818					marginRight : 0,
819					opacity:0,
820					visibility:'hidden',
821				});
822			}
823		}
824	}
825});
826
827$(document).ready(function(){
828
829	copyright();
830
831    // 하단 정보영역 토글
832    /*
833    $('#footer .footer-info').click(function(){
834    	$(this).find('.tlt .bt-').toggleClass('active');
835        jQuery11(this).find('.info').slideToggle('fast').promise().done(function(){
836        	$(window).scrollTop($(document).height());
837        });
838    });*/
839
840    // 검색창 자동완성 끄기
841    $('#keyword').attr('autocomplete','off');
842
843	// 리뷰 그리드 설정
844	if (isReviewGridPage()){
845		if (readCookie('gridTypePC')){
846			$('.gridType dd').each(function(){
847				$(this).removeClass('selected');
848			});
849			$('.gridType dd').each(function(){
850				if ($(this).hasClass('g'+readCookie('gridTypePC'))){
851					$(this).addClass('selected');
852				}
853			});
854
855			var target = $('.gridType').data('target');
856			var grids = ['grid0', 'grid1', 'grid2', 'grid3', 'grid4'];
857			$(target).removeClass(grids.join(' '));
858			$(target).addClass('grid'+readCookie('gridTypePC'));
859		}
860	}
861
862	// 카테고리 경로 재설정
863	$('.cate-override a').each(function(){
864		var _self = $(this);
865		var cateNo = getQueryStringUrl('cate_no',$(this).attr('href'));
866
867		if (cateNo){
868			$.each(setLink,function(i,v){
869				if (parseInt(cateNo) == parseInt(i)){
870					_self.attr('href',v);
871				}
872			});
873		}
874	});
875
876	// 리뷰 경로 재설정
877	$('.boardlink a').each(function(){
878		var href = $(this).attr('href');
879		if (href.indexOf('?') > -1){
880			if (getQueryStringUrl('board_no',href) == '4'){
881				$(this).attr('href', href.replace('/product/', '/review/'));
882			}
883		}else{
884
885		}
886	})
887});
888
889/************************************************************************************************************/
890
891function copyright() {
892	if($("body").size) {
893		if($("body").attr("id") == "popup") { return ; }
894		style = 'padding:5px 10px; font-family:Verdana; font-size:11px; background:#eee; color: #555; border-radius:5px;font-style:italic';
895		console.log('%c ** DESIGNED BY WEBPUBLIC (https://webpublic.co.kr) **', style);
896	}
897}
898
899function getQueryStringUrl(paramName, url) {
900	if (url){
901		var sURL = url;
902	}else{
903		var sURL = window.document.URL.toString();
904	}
905
906	if (sURL.indexOf("?") > 0)
907	{
908		var arrParams = sURL.split("?");
909		var arrURLParams = arrParams[1].split("&");
910		var arrParamNames = new Array(arrURLParams.length);
911		var arrParamValues = new Array(arrURLParams.length);
912		var i = 0;
913
914		for (i=0;i<arrURLParams.length;i++)
915		{
916			var sParam =  arrURLParams[i].split("=");
917			arrParamNames[i] = sParam[0];
918			if (sParam[1] != "")
919				arrParamValues[i] = unescape(sParam[1]);
920			else
921				arrParamValues[i] = "No Value";
922		}
923
924		for (i=0;i<arrURLParams.length;i++)
925		{
926			if(arrParamNames[i] == paramName){
927				return arrParamValues[i];
928			 }
929		}
930
931		return null;
932	}
933};
934
935var getParamUrl = function(sKey, url){
936	if (!url) url = location.href;
937	var sQueryString = url.substring(url.indexOf('?')+1);
938	var aParam = {};
939
940	if (sQueryString) {
941		var aFields = sQueryString.split("&");
942		var aField  = [];
943		for (var i=0; i<aFields.length; i++) {
944			aField = aFields[i].split('=');
945			aParam[aField[0]] = aField[1];
946		}
947	}
948
949	aParam.page = aParam.page ? aParam.page : 1;
950	return sKey ? aParam[sKey] : aParam;
951}
952
953
954function createCookie(name, value, days) {
955	var expires;
956
957	if (days) {
958		var date = new Date();
959		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
960		expires = "; expires=" + date.toGMTString();
961	} else {
962		expires = "";
963	}
964	document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
965}
966
967function readCookie(name) {
968	var nameEQ = escape(name) + "=";
969	var ca = document.cookie.split(';');
970	for (var i = 0; i < ca.length; i++) {
971		var c = ca[i];
972		while (c.charAt(0) === ' ') c = c.substring(1, c.length);
973		if (c.indexOf(nameEQ) === 0) return unescape(c.substring(nameEQ.length, c.length));
974	}
975	return null;
976}
977
978function eraseCookie(name) {
979	createCookie(name, "", -1);
980}
981
982// 할인율
983var discountRate = function(t, name){
984	if (!t) t = '';
985	if (!name) name = '.discount_rate';
986	$(t + ' .custom').each(function(){
987		var price = $(this).text().replace(/[^0-9]/g,'');
988		price = parseFloat(price);
989
990		if (price > 0) $(this).show();
991	});
992
993	$(t + ' ' + name).each(function(){
994		var custom_price = parseInt($(this).attr('data-prod-custom').replace(/[^0-9]/g,''));
995		var prod_price = parseInt($(this).attr('data-prod-price').replace(/[^0-9]/g,''));
996
997		var rate = 0;
998		if (!isNaN(custom_price) && !isNaN(prod_price)) {
999			rate = Math.round((custom_price - prod_price) / custom_price * 100);
1000		}
1001		$(this).text(rate + '');
1002
1003		var $ds = $(this);
1004
1005		$(this).parent().find('.spec li').each(function(){
1006			if ( $(this).find('.title span').text().trim() == '판매가' ){
1007				$(this).append($ds);
1008			}
1009		});
1010		if (rate <= 0 || isNaN(rate)){
1011			$(this).hide();
1012		}else{
1013			$(this).show();
1014		}
1015	});
1016}
1017
1018
1019function pageScroll(d){
1020	if($('html, body').is(':animated')){return};
1021
1022	if (d == 'up') {
1023		$('html, body').stop().animate({scrollTop:0}, 'slow');
1024	} else if (d == 'down') {
1025		var btmTop = $(document).height() - $(window).height();
1026		$('html, body').stop().animate({scrollTop:btmTop}, 'slow');
1027	}
1028}
1029
1030// 상세페이지, 리뷰목록 체크
1031function isReviewGridPage(){
1032	if ($('meta[name="path_role"]').attr('content') == 'PRODUCT_DETAIL'
1033		|| location.pathname.indexOf('/review/list') > -1){
1034		return true;
1035	}else{
1036		return false;
1037	}
1038}
1039
1040jQuery11(document).on('click','.gridType dd a',function(){
1041    var li = $(this).parent();
1042	var item = li.siblings();
1043	var target = $(this).closest('dl').data('target');
1044
1045	if (target){
1046		if ($(target).length == 0) return;
1047	}else{
1048		return;
1049	}
1050
1051	$(item).each(function(){
1052		$(this).removeClass('selected');
1053	});
1054
1055	li.addClass('selected');
1056
1057	var $prdList = $(target);
1058	var grids = ['grid0', 'grid1', 'grid2', 'grid3', 'grid4'];
1059
1060	$prdList.removeClass(grids.join(' '));
1061
1062	if (li.hasClass('g0')){
1063		$prdList.addClass(grids[0]);
1064        if (isReviewGridPage()) createCookie('gridTypePC', 0);
1065	}
1066
1067	if (li.hasClass('g1')){
1068		$prdList.addClass(grids[1]);
1069        if (isReviewGridPage()) createCookie('gridTypePC', 1);
1070	}
1071
1072	if (li.hasClass('g2')){
1073		$prdList.addClass(grids[2]);
1074        if (isReviewGridPage()) createCookie('gridTypePC', 2);
1075	}
1076
1077	if (li.hasClass('g3')){
1078		$prdList.addClass(grids[3]);
1079        if (isReviewGridPage()) createCookie('gridTypePC', 3);
1080	}
1081
1082	if (li.hasClass('g4')){
1083		$prdList.addClass(grids[4]);
1084        if (isReviewGridPage()) createCookie('gridTypePC', 4);
1085	}
1086});
1087
1088
1089/**
1090* 제작 : 웹퍼블릭(http://webpublic.co.kr)
1091* 웹퍼블릭 개발된 플러그인으로 무단 복제/사용 하실 수 없습니다
1092* 주석제거 시 플러그인을 사용하실 수 없습니다.
1093*/
1094
1095jQuery11(function(){
1096    // 활성화 된 카테고리 표시 
1097    var cateNo = getParamUrl('cate_no');
1098    var boardNo = getParamUrl('board_no');
1099    var pathName = location.pathname;
1100
1101    // 메뉴 활성화
1102    if (!cateNo) {
1103        if (location.pathname.indexOf('category') > -1) {
1104            cateNo = location.pathname.substring(location.pathname.indexOf('category'), location.pathname.length).split('/')[2];
1105        }
1106    } 
1107    if (!boardNo){
1108        if (location.pathname.indexOf('board') > -1) {
1109            if (location.pathname.substring(location.pathname.indexOf('board'), location.pathname.length).split('/').length > 0) {
1110                boardNo = location.pathname.substring(location.pathname.indexOf('board'), location.pathname.length).split('/')[2];
1111            }
1112        }
1113
1114        if (location.pathname.indexOf('article') > -1) {
1115            if (location.pathname.substring(location.pathname.indexOf('article'), location.pathname.length).split('/').length > 0) {
1116                boardNo = location.pathname.substring(location.pathname.indexOf('article'), location.pathname.length).split('/')[2];
1117            }
1118        }
1119    }
1120    
1121    var isActive = false;
1122    jQuery11('.cate-wrap .bs').each(function(){
1123        var _this = $(this);
1124        if (cateNo) {
1125            var targetCateNo = getParamUrl('cate_no',$(this).children('a').attr('href'));
1126            if (cateNo == targetCateNo) {
1127                isActive = true;
1128				$(this).addClass('active');
1129            }
1130            // 상세페이지에서는 카테고리 번호 초기화
1131            if($('meta[name=design_html_path]').attr('content')){
1132                if ($('meta[name=design_html_path]').attr('content').indexOf('/product/detail.html') > -1) cateNo = null;
1133            }
1134        }else if (boardNo){
1135            var targetBoardNo = getParamUrl('board_no',$(this).children('a').attr('href'));
1136            if (boardNo == targetBoardNo) {
1137				isActive = true;
1138                $(this).addClass('active');
1139            }
1140        }else{
1141            var targetPathName = $(this).children('a').attr('href');
1142            if (pathName == targetPathName) {
1143                isActive = true;
1144                $(this).addClass('active');
1145            }
1146        }
1147    }).promise().done(function(){
1148        // 메뉴가 비활성화 일 때 다시 한 번 체크
1149        if (!isActive){
1150            jQuery11('.cate-wrap .bs').each(function(){
1151                var _this = $(this);
1152                if (cateNo){
1153                    /*
1154                    // 2차 이하일 경우 제품구매 메뉴 활성화
1155                    var targetPathName = $(this).children('a').attr('href').substring(0,$(this).children('a').attr('href').indexOf('?'));
1156                    if (pathName == targetPathName) {
1157                        $(this).addClass('active');
1158                    }
1159                    */
1160                }else if(boardNo){
1161                    if ($(this).children('a').text() == '커뮤니티'){
1162                        $(this).addClass('active');
1163                    }
1164                    
1165                }else{
1166                    // 상세페이지에서 "제품구매" 메뉴 활성화
1167                    if (pathName.indexOf('/product/detail.html') > -1 || $('meta[name=design_html_path]').attr('content')) {
1168                        if ($('meta[name=design_html_path]').attr('content').indexOf('/product/detail.html') > -1){
1169                            if ($(this).children('a').text().indexOf('제품구매') > -1){
1170                                $(this).addClass('active');
1171                            }
1172                        }
1173                    }
1174                }
1175            });
1176        }
1177    });
1178});
1179$(document).ready(function(){
1180    // 사이드 버튼 스크롤에 방향에 따른 show / hide
1181    var hideLimit = 150;
1182
1183    $(window).scroll(function(){
1184        hasScrolled();
1185    });
1186
1187    function hasScrolled() {
1188        var st = $(window).scrollTop();
1189        if (st > hideLimit){
1190            $('.side-bnr-wrap').addClass('active');
1191        } else {
1192            $('.side-bnr-wrap').removeClass('active');
1193        }
1194    }
1195
1196    hasScrolled();
1197});
1198$(document).ready(function(){
1199    setTimeout(function(){
1200        $('#wrapper').removeClass('loading').css({
1201        	visibility:'visible',
1202            opacity:1,
1203        });
1204        $('.mul13').addClass('inactive');
1205    },0);
1206    
1207    jQuery11(document).on('transitionend','.mul13',function(){
1208        jQuery11(this).remove();
1209    },0);
1210});
1211jQuery11(function(){
1212   var notice_swiper = new Swiper('.main-notice .swiper-container', {
1213        on: {
1214            init: function () {},
1215        },
1216		//direction: 'vertical',
1217		speed : 800,
1218		autoplay : {
1219			delay:4000,
1220		},
1221		loop:true,
1222		slidesPerView: 1,
1223		navigation: {
1224			prevEl: '.main-notice .bt_prev',
1225			nextEl: '.main-notice .bt_next',
1226		},
1227    });
1228});

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.