PageSourceSearch

https://www.icsa2026.com/inc/js/main.js?ver=2026100210

js icsa2026.com collected 2026-10-02 01:32:21 UTC 26,771 bytes, 731 lines download raw bytes

1
2var Main = {};
3Main.addon = {};
4Main.event = {
5    init :  function(){
6        Main.event.setSliderH();
7    },
8
9    //horizontal
10    setSliderH : function(){
11        var slideres = $("[name='mainSliderH']");
12        slideres.each(function(){
13            var sliderWp    = $(this);
14            var minSlides   = sliderWp.attr("minSlides");
15            var maxSlides   = sliderWp.attr("maxSlides");
16            var speed       = sliderWp.attr("speed");
17            var pause       = sliderWp.attr("pause");
18            var slideWidth  = sliderWp.attr("slideWidth");
19            var pager       = sliderWp.attr("pager");
20
21            if(minSlides == "" || minSlides == null) minSlides = 1;
22            if(maxSlides == "" || maxSlides == null) maxSlides = 1;
23            if(speed == "" || speed == null) speed = 1000;
24            if(pause == "" || pause == null) pause = 1000;
25            if(pager  == "" || pager == null || pager == "undefined") pager = false;
26
27            var options  =
28                {
29                    mode: 'horizontal',
30                    slideWidth: slideWidth,
31                    speed: speed,
32                    pause: pause,
33                    minSlides: minSlides,
34                    maxSlides: maxSlides,
35                    pager: pager,
36                    auto: true,
37                    autoHover: false,
38                    autoControls: false,
39                    controls : false
40                };
41
42            var isNode      = true;
43            var liCnt       = sliderWp.find("ul").find("li").length;
44
45            if(sliderWp.find("ul").find("li") != null){
46                if(minSlides > liCnt) {
47                    isNode = false;
48                }
49            }
50
51            if(isNode == true){
52                var slider      = sliderWp.find("ul").eq(0).bxSlider(options);
53                if(slider != null){
54                    sliderWp.find("[name='btnPre']").on( 'click', function () {
55                        slider.goToPrevSlide();
56                        return false;
57                    } );
58                    sliderWp.find("[name='btnNxt']").on( 'click', function () {
59                        slider.goToNextSlide();
60                        return false;
61                    } );
62                }
63            }
64        });
65    }
66};
67
68//행사관리 월간형
69Main.addon.calevent = {
70    name : "addonEvent",
71    node : {
72        month : ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
73    },
74    init : function(){
75        if($(["name='"+Main.addon.calevent.name+"'"]).length > 0) {
76            var year  = $("[name='"+Main.addon.calevent.name+"_year']").val();
77            $("[name='"+Main.addon.calevent.name+"_nowyear']").text(year);
78
79            var month  = $("[name='"+Main.addon.calevent.name+"_month']").val();
80            $("[name='"+Main.addon.calevent.name+"_nowmonth']").text(Main.addon.calevent.node.month[month * 1]);
81
82            $("[name='" + Main.addon.calevent.name + "_preBtn']").off().click(Main.addon.calevent.pre);
83            $("[name='" + Main.addon.calevent.name + "_nxtBtn']").off().click(Main.addon.calevent.nxt);
84            $("[name='" + Main.addon.calevent.name + "_preBtn']").css("cursor","pointer");
85            $("[name='" + Main.addon.calevent.name + "_nxtBtn']").css("cursor","pointer");
86        }
87    },
88
89    pre : function(){
90        var preYear     = $("[name='"+Main.addon.calevent.name+"_preYear']").val();
91        var preMonth    = $("[name='"+Main.addon.calevent.name+"_preMonth']").val();
92
93        Main.addon.calevent.list(preYear, preMonth);
94    },
95
96    nxt : function(){
97        var nxtYear     = $("[name='"+Main.addon.calevent.name+"_nxtYear']").val();
98        var nxtMonth    = $("[name='"+Main.addon.calevent.name+"_nxtMonth']").val();
99
100        Main.addon.calevent.list(nxtYear, nxtMonth);
101    },
102
103    list : function(year, month){
104        //calendarr
105        $("[name='"+Main.addon.calevent.name+"_html']").children().remove();
106        $.ajax({
107            type:"POST",
108            dataType: "html",
109            async	: false,
110            data:{
111                'pmode': "MainAddon",
112                'smode': 'ajax',
113                'fn': 'EventMinCalendar',
114                'year': year,
115                'month': month
116            },
117            success:function(data){
118                $("[name='"+Main.addon.calevent.name+"_html']").html(data);
119                var year    = $("[name='"+Main.addon.calevent.name+"_html']").find("[name='"+Main.addon.calevent.name+"_year']").val();
120                $("[name='"+Main.addon.calevent.name+"_nowyear']").text(year);
121
122                var month   = $("[name='"+Main.addon.calevent.name+"_html']").find("[name='"+Main.addon.calevent.name+"_month']").val();
123                $("[name='"+Main.addon.calevent.name+"_nowmonth']").text(Main.addon.calevent.node.month[month * 1]);
124            }
125        });
126
127        //item
128        $("[name='"+Main.addon.calevent.name+"_item_html']").remove();
129        $.ajax({
130            type:"POST",
131            dataType: "html",
132            async	: false,
133            data:{
134                'pmode': "MainAddon",
135                'smode': 'ajax',
136                'fn': 'EventMinItem',
137                'year': year,
138                'month': month
139            },
140            success:function(data){
141                let html = `<div class="swiper calSwiper" name="addonEvent_item_html">
142                                <div class="swiper-wrapper">
143                                    ${data}
144                                </div>
145                            </div>`
146
147                // $("[name='"+Main.addon.calevent.name+"_item_html']").html(data);
148
149                $('.calendar').append(html)
150
151                let option = {}
152                if ( $(".calSwiper .swiper-slide").length > 1 ) {
153                    option = {
154                        spaceBetween: 0,
155                        centeredSlides: true,
156                        debugger: true,
157                        loop : true,
158                        loopAdditionalSlides: 1,
159
160                        autoplay: {
161                            delay: 2000,
162                            disableOnInteraction: false,
163                        },
164                    }
165
166                    setClass((String)($(`.calSwiper .swiper-slide:eq(0)`).data('date')).split(','))
167                } else {
168                    option = {
169                        spaceBetween: 0,
170                        centeredSlides: true,
171                        debugger: true,
172                        loop : false,
173                    }
174
175                    setClass((String)($(`.calSwiper .swiper-slide:eq(0)`).data('date')).split(','))
176                }
177
178                var calSwiper = new Swiper(".calSwiper", option);
179                calSwiper.on('transitionEnd', function() {
180                    $('.cal-date a span').each(function() {
181                        setClass((String)($(`.calSwiper .swiper-slide:eq(${calSwiper.activeIndex})`).data('date')).split(','))
182                    })
183                })
184            }
185        });
186    }
187};
188
189//행사관리 주간형
190Main.addon.calevent2 = {
191    name : "addonEvent2",
192    init : function(){
193        if($(["name='"+Main.addon.calevent2.name+"'"]).length > 0) {
194            var year  = $("[name='"+Main.addon.calevent2.name+"_year']").val();
195            $("[name='"+Main.addon.calevent2.name+"_nowyear']").text(year);
196
197            var month  = $("[name='"+Main.addon.calevent2.name+"_month']").val();
198            $("[name='"+Main.addon.calevent2.name+"_nowmonth']").text(month);
199
200            var today  = $("[name='"+Main.addon.calevent2.name+"_today']").val();
201
202            $("[name='" + Main.addon.calevent2.name + "_preBtn']").off().click(Main.addon.calevent2.pre);
203            $("[name='" + Main.addon.calevent2.name + "_nxtBtn']").off().click(Main.addon.calevent2.nxt);
204            $("[name='" + Main.addon.calevent2.name + "_preBtn']").css("cursor","pointer");
205            $("[name='" + Main.addon.calevent2.name + "_nxtBtn']").css("cursor","pointer");
206        }
207    },
208
209    pre : function(){
210        var preYear     = $("[name='"+Main.addon.calevent2.name+"_preYear']").val();
211        var preMonth    = $("[name='"+Main.addon.calevent2.name+"_preMonth']").val();
212		var preWeek		= $("[name='"+Main.addon.calevent2.name+"_preWeek']").val();
213
214        Main.addon.calevent2.list(preYear, preMonth, preWeek);
215    },
216
217    nxt : function(){
218        var nxtYear     = $("[name='"+Main.addon.calevent2.name+"_nxtYear']").val();
219        var nxtMonth    = $("[name='"+Main.addon.calevent2.name+"_nxtMonth']").val();
220		var nxtWeek     = $("[name='"+Main.addon.calevent2.name+"_nxtWeek']").val();
221
222        Main.addon.calevent2.list(nxtYear, nxtMonth, nxtWeek);
223    },
224
225    list : function(year, month, today){
226        //calendarr
227        $("[name='"+Main.addon.calevent2.name+"_html']").children().remove();
228        $.ajax({
229            type:"POST",
230            dataType: "html",
231            async	: false,
232            data:{
233                'pmode': "MainAddon",
234                'smode': 'ajax',
235                'fn': 'EventMinCalendar2',
236                'year': year,
237                'month': month,
238				'today': today
239            },
240            success:function(data){
241                $("[name='"+Main.addon.calevent2.name+"_html']").html(data);
242                //var year    = $("[name='"+Main.addon.calevent2.name+"_html']").find("[name='"+Main.addon.calevent2.name+"_year']").val();
243				var today = new Date($("[name='"+Main.addon.calevent2.name+"_html']").find("[name='"+Main.addon.calevent2.name+"_todaydate']").val());
244				var	year = today.getFullYear();
245                $("[name='"+Main.addon.calevent2.name+"_nowyear']").text(year);
246
247                //var month   = $("[name=' "+Main.addon.calevent2.name+"_html']").find("[name='"+Main.addon.calevent2.name+"_month']").val();
248				var month = String(today.getMonth() + 1).padStart(2, '0');
249                $("[name='"+Main.addon.calevent2.name+"_nowmonth']").text(month);
250            }
251        });
252
253        //item
254        $("[name='"+Main.addon.calevent2.name+"_item_html']").children().remove();
255        $.ajax({
256            type:"POST",
257            dataType: "html",
258            async	: false,
259            data:{
260                'pmode': "MainAddon",
261                'smode': 'ajax',
262                'fn': 'EventMinItem2',
263                'year': year,
264                'month': month,
265                'today': today
266            },
267            success:function(data){
268                let html = `<div class="swiper cal-event" name="addonEvent2_item_html">
269                                <div class="swiper-wrapper">
270                                    ${data}
271                                </div>
272                            </div>`;
273                $('.cal-wrap').append(html);
274
275                let option = {}
276                if ( $(".cal-event .swiper-slide").length > 1 ) {
277                    option = {
278                        spaceBetween: 0,
279                        centeredSlides: true,
280                        debugger: true,
281                        loop : true,
282                        loopAdditionalSlides: 1,
283
284                        autoplay: {
285                            delay: 2000,
286                            disableOnInteraction: false,
287                        },
288                    }
289                } else {
290                    option = {
291                        spaceBetween: 0,
292                        centeredSlides: true,
293                        debugger: true,
294                        loop : false,
295                    }
296                }
297
298                var calSwiper = new Swiper(".cal-event", option);
299            }
300        });
301    }
302};
303
304//게시판
305Main.addon.board = {
306    node : {
307        calbak : null
308    },
309    name : "addonBoard",
310    init : function(){
311        if($(["name='"+Main.addon.board.name+"'"]).length > 0) {
312            $("[name='" + Main.addon.board.name + "_tabBtn']").find("li").on('click mouseover',Main.addon.board.nxt);
313        }
314    },
315
316    nxt : function(){
317        var strPmode     = $(this).attr("strPmode");
318
319        //css
320        $("[name='" + Main.addon.board.name + "_tabBtn']").find("li").removeClass("on");
321        $(this).addClass("on");
322
323        Main.addon.board.list(strPmode);
324        if(typeof Main.addon.board.node.calbak === "function"){
325            Main.addon.board.node.calbak($(this));
326        }
327    },
328
329    list : function(strPmode){
330        $("[name='"+Main.addon.board.name+"_html']").children().remove();
331        $.ajax({
332            type:"POST",
333            dataType: "html",
334            data:{
335                'pmode': "MainAddon",
336                'smode': 'ajax',
337                'fn': 'BoardMinList',
338                'strPmode': strPmode
339            },
340            success:function(data){
341                $("[name='"+Main.addon.board.name+"_html']").html(data);
342                $("[name='"+Main.addon.board.name+"_moreBtn']").attr("href","?pmode="+strPmode);
343            }
344        });
345    }
346};
347
348//로그인
349Main.addon.login = {
350    init : function(){
351        var pmode       = getUrlVar("pmode");
352        if(pmode == "" || pmode == "main"){
353            Main.addon.login.handleLogin();
354        }
355    },
356
357    handleLogin : function(){
358        var form = $('.formLogin');
359
360        form.validate({
361            rules: {
362                loginId: {
363                    required: true
364                },
365                loginPwd: {
366                    required: true
367                },
368                remember: {
369                    required: false
370                }
371            },
372
373            errorPlacement: function(error, element) {
374            },
375
376            invalidHandler: function(event, validator) {
377            },
378
379            highlight: function(element) {
380                $(element).closest('.form-group').addClass('has-error');
381            },
382
383            success: function(label) {
384                label.closest('.form-group').removeClass('has-error');
385                label.remove();
386            },
387
388            submitHandler: function(form) {
389                $.ajax({
390                    type: "POST",
391                    data:$.param({
392                        'smode': 'layout',
393                        'fn': 'loginCheck',
394                        'prevPage': '?'
395                    }) + "&" + $(form).serialize(),
396                    success:function(data){
397                        if(data == "?pmode=signup"){
398                            alert(configLang.L0000000265);
399                            return false;
400                        }
401
402                        if(data) {
403                            if($("input[name=strSubmissionUrl]").val()) ontooLogin();
404                            location.href = data;
405                        } else {
406                            alert(configLang.L0000000038);
407                        }
408                    },
409                    error:function(e){
410                    }
411                });
412            }
413        });
414    }
415};
416
417
418//로그인
419Main.addon.dday = {
420    initDHMS : function(y, m, d, h, yId, mId, dId, hId){    //년,월,일,시, 일ID, 시ID, 분ID, 초ID
421        now             = new Date();
422        dday            = new Date(y ,m ,d ,h ,00 ,00);
423
424        days            = (dday - now) / 1000 / 60 / 60 / 24;
425        daysRound       = Math.floor(days);
426
427        if(Number(daysRound) > 0){
428            hours           = (dday - now) / 1000 / 60 / 60 - (24 * daysRound);
429            hoursRound      = Math.floor(hours);
430            minutes         = (dday - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
431            minutesRound    = Math.floor(minutes);
432            seconds         = (dday - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound);
433            secondsRound    = Math.round(seconds);
434
435            $("#"+yId).text(daysRound);
436            $("#"+mId).text(hoursRound);
437            $("#"+dId).text(minutesRound);
438            $("#"+hId).text(secondsRound);
439
440            timeout = setTimeout(function () {
441                Main.addon.dday.initDHMS(y, m, d, h, yId, mId, dId, hId);
442            }, 1000);
443        }
444    }
445};
446
447//이미지팝업
448Main.addon.imgPop = {
449    init : function(){
450        var pnodes = $("[piType='imgPop']");
451        if(pnodes.length > 0){
452            pnodes.each(function(){
453                Main.addon.imgPop.setLis($(this));
454            });
455        }
456    },
457
458    setLis : function(pnode){
459        var src  = pnode.attr("piSrc");
460        var html = ""
461            + "<div name='imgpopWrap' style='display:none;'>"
462            + "     <div name='imgpopCont' style='display:none;width:800px;border:3px solid #ddd; background-color:#fff;' def='Y'>"
463            + "         <p class='w100p tac fl'>"
464            + "             <img name='imgpopImg' src='"+src+"' style='width:800px;'/>"
465            + "         </p>"
466            + "     </div> "
467            + "</div>";
468        html    = $(html);
469        pnode.append(html);
470
471        pnode.bind('click', function(e) {
472            var node	= $(this);
473            var htm	    = node.find("[name='imgpopWrap']").html();
474            htm     = $(htm);
475            htm.attr("def","N");
476            node.find("[def='N']").remove();
477
478            node.find("[name='imgpopWrap']").append(htm);
479            node.find("[name='imgpopCont']").filter("[def='N']").bPopup({
480                follow: [true, false],
481                transition: 'slideDown'
482            });
483        });
484    }
485};
486
487
488// 메인 하단배너
489Main.addon.sponsBanner  = {
490    init : function(){
491        Main.addon.sponsBanner.setSponsList();
492    },
493
494    setSponsList    : function () {
495
496        $.ajax({
497            type    : 'POST',
498            dataType: 'json',
499            url     : '/api/setSponsLogo/',
500            success : function(data){
501
502                if(data.length > 0){
503                    Main.addon.sponsBanner.addBanner(data);
504                } else {
505                    // console.log("등록된 스폰서 로고가 없습니다.");
506                }
507            }
508
509        });
510    },
511
512    addBanner       : function (data) {
513        var targetID    = "sponsLogoBanner";
514        var type        = $("#"+targetID).attr("type");
515        var title       = $("#"+targetID).attr("bannerTitle");
516        var myIp        = "";
517
518        $.get("https://ipinfo.io", function(response) {
519            myIp		= response.ip;
520        });
521
522        var parm        = {
523            type        : type,
524            data        : data,
525            title       : title
526        };
527
528        if($("#"+targetID).length < 1){
529            if(myIp == "211.198.45.66") {
530                console.log("스폰서로고 배너를 사용하시려면 footer파일에 sponsLogoBanner ID를 가진 Div를 생성해주세요.");
531            }
532            return false;
533        }
534
535        if(type == "" || type == null || typeof type == "undefined"){
536            if(myIp == "211.198.45.66") {
537                console.log("타입을 지정해주세요. ex) type='owl' ");
538            }
539            return false;
540        }
541
542        if(type == "owl" && (title == "" || title == null || typeof title == "undefined")){
543            if(myIp == "211.198.45.66") {
544                console.log("앞에 나올 명칭이 없습니다. ex) 특별회원사");
545            }
546        }
547
548        var html        = Main.addon.sponsBanner.getListHtmlByType(parm);
549
550        $("#"+targetID).html(html);
551
552        // bxslider
553        if(type == "bx"){
554            $('.fsb_slide').bxSlider({
555                mode: 'horizontal',
556                slideWidth: 155,
557                speed: 350,
558                pause: 3000,
559                minSlides: 1,
560                maxSlides: 7,
561                pager: false,
562                auto: true,
563                infiniteLoop:false,
564                autoControls: false
565            })
566        }
567        // owlCarousel
568        else if(type == "owl"){
569            var owl = $('.fsb_slide');
570            owl.owlCarousel({
571                loop:true,
572                autoplay:true,
573                autoplayTimeout:2500,
574                autoplayHoverPause:false,
575                responsive:{
576                    320:{
577                        items:3
578                    },
579                    640:{
580                        items:4
581                    },
582                    800:{
583                        items:5
584                    },
585                    1440:{
586                        items:6
587                    }
588                }
589            });
590
591            $('.fsb_btn.play').on('click', function() {
592                owl.trigger('play.owl.autoplay', [2500]);
593                $(this).addClass("off").removeClass("on");
594                $('.fsb_btn.stop').removeClass("off").addClass("on");
595            });
596            $('.fsb_btn.stop').on('click', function() {
597                owl.trigger('stop.owl.autoplay')
598                $(this).addClass("off").removeClass("on");
599                $('.fsb_btn.play').removeClass("off").addClass("on");
600            });
601        }
602
603        $("[name^='btnSponsView']").click(Main.addon.sponsBanner.updateClickCount);
604    },
605
606    getListHtmlByType   : function (parm) {
607        var o = $.extend({
608            type        : "bx"          // html Type
609            ,data       : ""            // Data
610            ,title      : ""            // 배너 문구
611        },parm || {});
612
613        var type            = o.type;
614        var data            = o.data;
615        var title           = o.title;
616        var html            = "";
617        html                += "";
618
619        if(type == "bx"){
620            html            += "<ul class='fsb_slide'>";
621
622            for(var i=0; i<data.length; i++){
623                html        += "    <li>";
624                html        += "        <a url='"+data[i].strLink+"' target='_blank' name='btnSponsView' intSeq='"+data[i].intSeq+"'>";
625                if(configLang.intSiteSeq=='127'){
626                    html        += "            <img src='/pds/extPds/"+data[i].strPmode+"/"+data[i].strColumn+"/"+data[i].strFileRealName+"'>";
627                }else{
628                    html        += "            <img src='../libs/image.php?f="+data[i].strFileRealName+"'>";
629                }
630                html        += "        </a>";
631                html        += "    </li>";
632            }
633
634            html            += "</ul>";
635        } else if(type == "owl"){
636            html            += "<h2 class='fsb_title'>"+title+"</h2>";
637            html            += "<div class='fsb_slide owl-carousel'>";
638
639            for(var i=0; i<data.length; i++){
640                html        += "    <div class='item'>";
641                html        += "        <a url='"+data[i].strLink+"' target='_blank' name='btnSponsView' intSeq='"+data[i].intSeq+"'>";
642                if(configLang.intSiteSeq=='127'){
643                    html        += "            <img src='/pds/extPds/"+data[i].strPmode+"/"+data[i].strColumn+"/"+data[i].strFileRealName+"'>";
644                }else{
645                    html        += "            <img src='../libs/image.php?f="+data[i].strFileRealName+"'>";
646                }
647                html        += "        </a>";
648                html        += "    </div>";
649            }
650
651            html            += "</div>";
652            html            += "<div class='fsb_control'>";
653            html            += "    <button type='button' class='fsb_btn stop on'><span class='blind'>Stop</span></button>";
654            html            += "    <button type='button' class='fsb_btn play off'><span class='blind'>Play</span></button>";
655            html            += "</div>";
656        }
657
658        return html;
659    },
660
661    // 스폰서별 클릭 수
662    updateClickCount    : function () {
663        var intSeq          = $(this).attr("intSeq");
664        var url             = $(this).attr("url");
665
666        if(intSeq != "" && intSeq != null && typeof intSeq != "undefined"){
667            $.ajax({
668                type    : 'POST',
669                dataType: 'json',
670                url     : '/api/ClickSpons/',
671                data    : {
672                    intSeq : intSeq
673                },
674                success : function(){
675
676                },
677                error: function(data){
678                }
679            });
680        }
681
682        if(url.length > 7){
683            window.open(url);
684        }
685    }
686};
687
688Main.addon.banner = {
689    init : function(){
690        Main.addon.banner.setBannerEvent();
691    },
692
693    setBannerEvent : function() {
694        $('.main, .main-wrap, .bg-main, .c_main, .cont_wrap, .main-container').on('click', '.main_banner', function() {
695            var intSeq          = $(this).attr("intSeq");
696
697            if(intSeq != "" && intSeq != null && typeof intSeq != "undefined"){
698                $.ajax({
699                    type    : 'POST',
700                    dataType: 'json',
701                    url     : '/api/ClickBanners/',
702                    data    : {
703                        intSeq : intSeq
704                    },
705                    success : function(){
706
707                    },
708                    error: function(data){
709                    }
710                });
711            }
712        });
713    }
714}
715
716function ontooLogin()
717{
718    var tmpIframe = "<iframe name='ontooLogin' id='ontooLogin' width=0 height=0 style='display:none;'></iframe>";
719    var action = $("input[name=strSubmissionUrl]").val()+"/html/member/member.login.session.php";
720    var userid = $('input[name=loginId]').val();
721    var userpwd = $('input[name=loginPwd]').val();
722    var tmpForm = "<form name='ontooLoginForm' id='ontooLoginForm' target='ontooLogin' method='post' action='"+action+"'>";
723    tmpForm +="<input type='hidden' name='userid' value='"+userid+"'><input type='hidden' name='userpwd' value='"+userpwd+"'></form>";
724    $('body').append(tmpIframe+tmpForm);
725    $('#ontooLoginForm').submit();
726    sleep(10);
727}
728function sleep(delay) {
729    var start = new Date().getTime();
730    while (new Date().getTime() < start + delay);
731}

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.