PageSourceSearch

https://ssomendeco.co.kr/ind-script/optimizer_user.php?filename=jZ…6d6ad1f8a48a322480832f8&t=1717396164&user=T

js ssomendeco.co.kr collected 2026-10-07 20:57:48 UTC 16,369 bytes, 516 lines download raw bytes

1/**
2 * 카테고리 마우스 오버 이미지
3 * 카테고리 서브 메뉴 출력
4 */
5
6$(document).ready(function(){
7
8    var methods = {
9        aCategory    : [],
10        aSubCategory : {},
11
12        get: function()
13        {
14             $.ajax({
15                url : '/exec/front/Product/SubCategory',
16                dataType: 'json',
17                success: function(aData) {
18
19                    if (aData == null || aData == 'undefined') return;
20                    for (var i=0; i<aData.length; i++)
21                    {
22                        var sParentCateNo = aData[i].parent_cate_no;
23
24                        if (!methods.aSubCategory[sParentCateNo]) {
25                            methods.aSubCategory[sParentCateNo] = [];
26                        }
27
28                        methods.aSubCategory[sParentCateNo].push( aData[i] );
29                    }
30                }
31            });
32        },
33
34        getParam: function(sUrl, sKey) {
35
36            var aUrl         = sUrl.split('?');
37            var sQueryString = aUrl[1];
38            var aParam       = {};
39
40            if (sQueryString) {
41                var aFields = sQueryString.split("&");
42                var aField  = [];
43                for (var i=0; i<aFields.length; i++) {
44                    aField = aFields[i].split('=');
45                    aParam[aField[0]] = aField[1];
46                }
47            }
48            return sKey ? aParam[sKey] : aParam;
49        },
50
51        getParamSeo: function(sUrl) {
52            var aUrl         = sUrl.split('/');
53            return aUrl[3] ? aUrl[3] : null;
54        },
55
56        show: function(overNode, iCateNo) {
57
58            if (methods.aSubCategory[iCateNo].length == 0) {
59                return;
60            }
61
62            var aHtml = [];
63            aHtml.push('<ul>');
64            $(methods.aSubCategory[iCateNo]).each(function() {
65                aHtml.push('<li><a href="'+this.link_product_list+'">'+this.name+'</a></li>');
66            });
67            aHtml.push('</ul>');
68
69
70            var offset = $(overNode).offset();
71            $('<div class="sub-category"></div>')
72                .appendTo(overNode)
73                .html(aHtml.join(''))
74                .find('li').mouseover(function(e) {
75                    $(this).addClass('over');
76                }).mouseout(function(e) {
77                    $(this).removeClass('over');
78                });
79        },
80
81        close: function() {
82            $('.sub-category').remove();
83        }
84    };
85
86    methods.get();
87
88
89    $('.xans-layout-category li').mouseenter(function(e) {
90        var $this = $(this).addClass('on'),
91        iCateNo = Number(methods.getParam($this.find('a').attr('href'), 'cate_no'));
92
93        if (!iCateNo) {
94            iCateNo = Number(methods.getParamSeo($this.find('a').attr('href')));
95        }
96
97        if (!iCateNo) {
98           return;
99        }
100
101        methods.show($this, iCateNo);
102     }).mouseleave(function(e) {
103        $(this).removeClass('on');
104
105          methods.close();
106     });
107});
108;
109$(function() {     
110	$(".bs_top_banner .xi-close").click(function(){
111        var bs_topBanner_confirm = confirm("오늘 하루동안 열지않기");
112        
113        function bs_top_banner() {
114            if (bs_topBanner_confirm) {
115                $('.bs_top_banner').removeClass('bs_on');
116                $('.bs_top_banner').addClass('bs_off');
117                $.cookie('bs_top_banner', 'bs_1', { expires:1, path:'/'})
118            };   
119        };        
120                
121        bs_top_banner();
122	});
123    if ($.cookie('bs_top_banner') == 'bs_1') {
124        $('.bs_top_banner').addClass('bs_off');
125    } else {
126        $('.bs_top_banner').addClass('bs_on');      
127    };     
128});
129
130$(document).ready(function() {
131   $(".bsBtnSearchOpen").bind("click", function() {
132      $("html,#header,.bsSearchPageCover").addClass('bsSearchOn');
133   });
134   $(".bsBtnSearchClose").bind("click", function() {
135      $("html,#header,.bsSearchPageCover").removeClass('bsSearchOn');
136   });   
137});
138$(document).ready(function() {
139   function focus() {
140       $(".xans-layout-searchheader input[type=text]").focus()
141   }
142   $(".bsBtnSearchOpen").bind("click", function() {       
143	  setTimeout(focus, 500);
144   });  
145   $(".bsBtnSearchClose").bind("click", function() {       
146	  clearTimeout(focus);
147   });    
148});
149
150
151
152
153// 우측 슬라이딩 메뉴
154$(document).ready(function() {
155    $(".bsBtnSideMenuOpen").click(function () {
156        $("html,#header,.bsSideMenu,.bsSideMenuPageCover").addClass("bsSideMenuOn");
157    });
158    $(".bsBtnSideMenuClose").click(function () {
159        $("html,#header,.bsSideMenu,.bsSideMenuPageCover").removeClass("bsSideMenuOn");
160    });
161});
162
163
164$(document).ready(function(){ 
165
166  $('#bsFixedGotop2 .bs_btn_gotop').click(function(){
167      $("html, body").animate({ scrollTop:0 }, 400);
168      return false;
169  });
170    
171});
172/**
173 * 움직이는 배너 Jquery Plug-in
174 * @author  cafe24
175 */
176
177(function($){
178
179    $.fn.floatBanner = function(options) {
180        options = $.extend({}, $.fn.floatBanner.defaults , options);
181
182        return this.each(function() {
183            var aPosition = $(this).position();
184            var jbOffset = $(this).offset();
185            var node = this;
186
187            $(window).scroll(function() {
188                var _top = $(document).scrollTop();
189                _top = (aPosition.top < _top) ? _top : aPosition.top;
190
191                setTimeout(function () {
192                    var newinit = $(document).scrollTop();
193
194                    if ( newinit > jbOffset.top ) {
195                        _top -= jbOffset.top;
196                        var container_height = $("#wrap").height();
197                        var quick_height = $(node).height();
198                        var cul = container_height - quick_height;
199                        if(_top > cul){
200                            _top = cul;
201                        }
202                    }else {
203                        _top = 0;
204                    }
205
206                    $(node).stop().animate({top: _top}, options.animate);
207                }, options.delay);
208            });
209        });
210    };
211
212    $.fn.floatBanner.defaults = {
213        'animate'  : 500,
214        'delay'    : 500
215    };
216
217})(jQuery);
218
219/**
220 * 문서 구동후 시작
221 */
222$(document).ready(function(){
223    $('#banner:visible, #quick:visible').floatBanner();
224
225    //placeholder
226    $(".ePlaceholder input, .ePlaceholder textarea").each(function(i){
227        var placeholderName = $(this).parents().attr('title');
228        $(this).attr("placeholder", placeholderName);
229    });
230    /* placeholder ie8, ie9 */
231    $.fn.extend({
232        placeholder : function() {
233            //IE 8 버전에는 hasPlaceholderSupport() 값이 false를 리턴
234           if (hasPlaceholderSupport() === true) {
235                return this;
236            }
237            //hasPlaceholderSupport() 값이 false 일 경우 아래 코드를 실행
238            return this.each(function(){
239                var findThis = $(this);
240                var sPlaceholder = findThis.attr('placeholder');
241                if ( ! sPlaceholder) {
242                   return;
243                }
244                findThis.wrap('<label class="ePlaceholder" />');
245                var sDisplayPlaceHolder = $(this).val() ? ' style="display:none;"' : '';
246                findThis.before('<span' + sDisplayPlaceHolder + '>' + sPlaceholder + '</span>');
247                this.onpropertychange = function(e){
248                    e = event || e;
249                    if (e.propertyName == 'value') {
250                        $(this).trigger('focusout');
251                    }
252                };
253                //공통 class
254                var agent = navigator.userAgent.toLowerCase();
255                if (agent.indexOf("msie") != -1) {
256                    $(".ePlaceholder").css({"position":"relative"});
257                    $(".ePlaceholder span").css({"position":"absolute", "padding":"0 4px", "color":"#878787"});
258                    $(".ePlaceholder label").css({"padding":"0"});
259                }
260            });
261        }
262    });
263
264    $(':input[placeholder]').placeholder(); //placeholder() 함수를 호출
265
266    //클릭하면 placeholder 숨김
267    $('body').delegate('.ePlaceholder span', 'click', function(){
268        $(this).hide();
269    });
270
271    //input창 포커스 인 일때 placeholder 숨김
272    $('body').delegate('.ePlaceholder :input', 'focusin', function(){
273        $(this).prev('span').hide();
274    });
275
276    //input창 포커스 아웃 일때 value 가 true 이면 숨김, false 이면 보여짐
277    $('body').delegate('.ePlaceholder :input', 'focusout', function(){
278        if (this.value) {
279            $(this).prev('span').hide();
280        } else {
281            $(this).prev('span').show();
282        }
283    });
284
285    //input에 placeholder가 지원이 되면 true를 안되면 false를 리턴값으로 던져줌
286    function hasPlaceholderSupport() {
287        if ('placeholder' in document.createElement('input')) {
288            return true;
289        } else {
290            return false;
291        }
292    }
293});
294
295/**
296 *  썸네일 이미지 엑박일경우 기본값 설정
297 */
298$(window).load(function() {
299    $("img.thumb,img.ThumbImage,img.BigImage").each(function($i,$item){
300        var $img = new Image();
301        $img.onerror = function () {
302                $item.src="//img.echosting.cafe24.com/thumb/img_product_big.gif";
303        }
304        $img.src = this.src;
305    });
306});
307
308/**
309 *  tooltip
310 */
311$('.eTooltip').each(function(i){
312    $(this).find('.btnClose').attr('tabIndex','-1');
313});
314//tooltip input focus
315$('.eTooltip').find('input').focus(function() {
316    var targetName = returnTagetName(this);
317    targetName.siblings('.ec-base-tooltip').show();
318});
319$('.eTooltip').find('input').focusout(function() {
320    var targetName = returnTagetName(this);
321    targetName.siblings('.ec-base-tooltip').hide();
322});
323function returnTagetName(_this){
324    var ePlacename = $(_this).parent().attr("class");
325    var targetName;
326    if(ePlacename == "ePlaceholder"){ //ePlaceholder 대응
327        targetName = $(_this).parents();
328    }else{
329        targetName = $(_this);
330    }
331    return targetName;
332}
333
334/**
335 *  eTab
336 */
337 $("body").delegate(".eTab a", "click", function(e){
338    // 클릭한 li 에 selected 클래스 추가, 기존 li에 있는 selected 클래스는 삭제.
339    var _li = $(this).parent("li").addClass("selected").siblings().removeClass("selected"),
340    _target = $(this).attr("href"),
341    _siblings = $(_target).attr("class"),
342    _arr = _siblings.split(" "),
343    _classSiblings = "."+_arr[0];
344
345    //클릭한 탭에 해당하는 요소는 활성화, 기존 요소는 비활성화 함.
346    $(_target).show().siblings(_classSiblings).hide();
347
348
349    //preventDefault 는 a 태그 처럼 클릭 이벤트 외에 별도의 브라우저 행동을 막기 위해 사용됨.
350    e.preventDefault();
351});
352
353
354
355//window popup script
356function winPop(url) {
357    window.open(url, "popup", "width=300,height=300,left=10,top=10,resizable=no,scrollbars=no");
358}
359/**
360 * document.location.href split
361 * return array Param
362 */
363function getQueryString(sKey)
364{
365    var sQueryString = document.location.search.substring(1);
366    var aParam       = {};
367
368    if (sQueryString) {
369        var aFields = sQueryString.split("&");
370        var aField  = [];
371        for (var i=0; i<aFields.length; i++) {
372            aField = aFields[i].split('=');
373            aParam[aField[0]] = aField[1];
374        }
375    }
376
377    aParam.page = aParam.page ? aParam.page : 1;
378    return sKey ? aParam[sKey] : aParam;
379};
380
381$(document).ready(function(){
382    // tab
383    $.eTab = function(ul){
384        $(ul).find('a').click(function(){
385            var _li = $(this).parent('li').addClass('selected').siblings().removeClass('selected'),
386                _target = $(this).attr('href'),
387                _siblings = '.' + $(_target).attr('class');
388            $(_target).show().siblings(_siblings).hide();
389            return false
390        });
391    }
392    if ( window.call_eTab ) {
393        call_eTab();
394    };
395});
396(function($){
397$.fn.extend({
398    center: function() {
399        this.each(function() {
400            var
401                $this = $(this),
402                $w = $(window);
403            $this.css({
404                position: "absolute",
405                top: ~~(($w.height() - $this.outerHeight()) / 2) + $w.scrollTop() + "px",
406                left: ~~(($w.width() - $this.outerWidth()) / 2) + $w.scrollLeft() + "px"
407            });
408        });
409        return this;
410    }
411});
412$(function() {
413    var $container = function(){/*
414<div id="modalContainer">
415    <iframe id="modalContent" scroll="0" scrolling="no" frameBorder="0"></iframe>
416</div>');
417*/}.toString().slice(14,-3);
418    $('body')
419    .append($('<div id="modalBackpanel"></div>'))
420    .append($($container));
421    function closeModal () {
422        $('#modalContainer').hide();
423        $('#modalBackpanel').hide();
424    }
425    $('#modalBackpanel').click(closeModal);
426    zoom = function ($piProductNo, $piCategoryNo, $piDisplayGroup) {
427        var $url = '/product/image_zoom.html?product_no=' + $piProductNo + '&cate_no=' + $piCategoryNo + '&display_group=' + $piDisplayGroup;
428        $('#modalContent').attr('src', $url);
429        $('#modalContent').bind("load",function(){
430            $(".header .close",this.contentWindow.document.body).bind("click", closeModal);
431        });
432        $('#modalBackpanel').css({width:$("body").width(),height:$("body").height(),opacity:.4}).show();
433        $('#modalContainer').center().show();
434    }
435});
436})(jQuery);
437/*
438* rwdImageMaps jQuery plugin v1.6
439*
440* Allows image maps to be used in a responsive design by recalculating the area coordinates to match the actual image size on load and window.resize
441*
442* Copyright (c) 2016 Matt Stow
443* https://github.com/stowball/jQuery-rwdImageMaps
444* http://mattstow.com
445* Licensed under the MIT license
446*/
447(function($) { // function 하나에 기존 코드들을 모두 묶어줍니다.
448    var jQuery = $; // $ 뿐만 아니라 jQuery도 사용할 수 있도록 해주기 위한 코드입니다.
449    
450    ;(function(a){a.fn.rwdImageMaps=function(){var c=this;var b=function(){c.each(function(){if(typeof(a(this).attr("usemap"))=="undefined"){return}var e=this,d=a(e);a("<img />").on('load',function(){var g="width",m="height",n=d.attr(g),j=d.attr(m);
450if(!n||!j){var o=new Image();o.src=d.attr("src");if(!n){n=o.width}if(!j){j=o.height}}var f=d.width()/100,k=d.height()/100,i=d.attr("usemap").replace("#",""),l="coords";a('map[name="'+i+'"]').find("area").each(function(){var r=a(this);if(!r.data(l)){r.data(l,r.attr(l))}var q=r.data(l).split(","),p=new Array(q.length);for(var h=0;h<p.length;++h){if(h%2===0){p[h]=parseInt(((q[h]/n)*100)*f)}else{p[h]=parseInt(((q[h]/j)*100)*k)}}r.attr(l,p.toString())})}).attr("src",d.attr("src"))})};a(window).resize(b).trigger("resize");return this}})(jQuery);
451    
452    $(document).ready(function(e) {
453    $('img[usemap]').rwdImageMaps();
454});
455    
456}(jQuery1_11_2)); // function 하나에 기존 코드들을 모두 묶어줍니다.    
457
458
459
460;
461$( function() {
462    setTimeout( function() {
463        $("html").addClass("bsScrollTrigger");
464    }, 0);  
465});
466$(document).ready(function() {
467    $('.bsFade').hover(
468        function(){
469            $(this).find('.bsFadeOver').fadeIn(250);
470        },
471        function(){
472            $(this).find('.bsFadeOver').fadeOut(250);
473        }
474    );
475});
476
477
478function resizeContent() {
479    $height = $(window).height();
480    $('.bsHeight100').height($height);
481}
482
483jQuery_bs(document).ready(function(){
484    resizeContent();
485    $(window).resize(function() {
486        resizeContent();
487    });
488});
489
490function bsDiscountRate() {
491    $('.bsDiscountRate').each(function() {
492        var custom = $(this).attr('data-custom');
493        var price = $(this).attr('data-price'); 
494		var custom = parseInt(custom.replace(/,/g, ''));
495		var price = parseInt(price.replace(/,/g, ''));               
496        var bsDiscount = 100-(price*100/custom);
497        var bsDiscount_rate = Math.round(bsDiscount);       
498        $(this).html(bsDiscount_rate+"%");         
499		if (isNaN(bsDiscount_rate)) {
500			$(this).addClass("bsDiscount_non");
501		}
502		if (bsDiscount_rate==Infinity) {
503			$(this).addClass("bsDiscount_non");
504		}
505		if (bsDiscount_rate==-Infinity) {
506			$(this).addClass("bsDiscount_non");
507		}  
508		$(this).removeAttr('data-custom');
509		$(this).removeAttr('data-price');        
510    });
511};
512
513$(document).ready(function() {
514	bsDiscountRate();
515});
516

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.