(function(global, YNCC){ 'use strict'; var _defaultEasing = 'easeInOutQuart', _$header, _$lnb, _$gnb, _$gnbBreakPoint, _winH, _winMinH=800, _html = document.documentElement, _winTitle = ''; YNCC.anicase = YNCC.anicase || null; var _bodyscroll = function(){ return window.navigator.userAgent.match(/(chrome|safari)/gi) ? document.body : _html; }(); var _menuHover, _menuOut, _menuOutDelay, _menuClear, _menuUpTime = 100, _menuDownTime = 300; _menuClear = function(){ clearTimeout(this._menuoutId); }; _menuHover = function($el, active_cname, sub_cname, $otherEl, e){ var isGnb = this.isGnb; _menuClear.call(this); if(isGnb && !_$header.is(".hover")) _$header.addClass("hover"); var atarget = e.target.nodeName==="A"||e.target.nodeName==="BUTTON" ? e.target : e.currentTarget; var $a = $(atarget), $next = $a.next(), $parent = $a.parent(); if($next.is("."+sub_cname)){ $next.css("z-index",2).each(function(){ if(!isGnb) $(this).slideDown(_menuDownTime); }); } $parent.addClass(active_cname).siblings('.'+active_cname).removeClass(active_cname).find("."+sub_cname).css("z-index",1).each(function(){ if(!isGnb) $(this).slideUp(_menuUpTime); }); if(isGnb && $a.is(".lv1a") && this.$activeEle !== $parent){ this.$activeEle = $parent; } if($otherEl) $otherEl.trigger("mouseleave.menuevent"); }; _menuOut = function($el, active_cname, sub_cname, e){ var _this = this; var isGnb = this.isGnb; $el.find("."+active_cname).removeClass(active_cname).find("."+sub_cname).css("z-index",1).each(function(){ if(!isGnb) $(this).slideUp(_menuUpTime); }); if(isGnb && _$header.is(".hover")) _$header.removeClass("hover"); if(this.$activeReset){ this.$activeReset.addClass(active_cname); this.$activeEle = null; }else{ this.$activeEle = null; } e.preventDefault(); }; _menuOutDelay = function($el, active_cname, sub_cname, e){ _menuClear.call(this); this._menuoutId = global.setTimeout($.proxy(_menuOut, this, $el, active_cname, sub_cname, e), 200); }; var _YNCClayout = function($wrap) { var _gnb, _etcmenu; _gnb = function($el){ var active_cname = "active", sub_cname = "sub"; this.$activeReset = $el.find("."+active_cname); if(this.$activeReset.length>0){ this.$activeEle = this.$activeReset.first(); }else{ this.$activeReset = null; } var _firstLv1, _maxLv1, _$lv1 = $el.find(".lv1"); _$lv1.each(function(iii){ if(iii===0){ _firstLv1 = $.$(this).offset().left; _maxLv1 = _firstLv1+$el.width()-100; } }); $el.on("mouseleave.menuevent focusout.menuevent", $.proxy(_menuOutDelay, this, $el, active_cname, sub_cname)) .on("mouseover.menuevent", $.proxy(_menuClear, this)) .on("mouseenter.menuevent focusin.menuevent", "a", $.proxy(_menuHover, this, $el, active_cname, sub_cname, null)); }; _gnb.prototype = { $activeReset : null, $activeEle : null, isGnb : true }; _etcmenu = function($el){ var active_cname = "active", sub_cname = "sub"; $el.on("mouseleave.menuevent focusout.menuevent", $.proxy(_menuOutDelay, this, $el, active_cname, sub_cname)) .on("mouseenter.menuevent focusin.menuevent", "a, button", $.proxy(_menuHover, this, $el, active_cname, sub_cname, _$gnb)); }; return $.each($wrap, function(){ _$gnb = _$header.find("#gnb"); new _gnb(_$gnb); new _etcmenu($("#lnb .nav")); new _etcmenu($("#lnb .etc")); }); }; var _breakPoint = [0,0,0]; var _winclick = function(e){ var target = e.target.nodeName==="A"||e.target.nodeName==="BUTTON" ? e.target : e.currentTarget, type, func, rel; target.getAttribute("href") && (target.getAttribute("href") === "#" || target.getAttribute("href") === "#none") && e.preventDefault(); type = target.getAttribute("data-type"); func = target.getAttribute("data-func"); rel = target.getAttribute("data-rel"); }; /* @ready */ $(document).ready(function(){ if(YNCC.anicase==="history") _history.init(); if(YNCC.anicase==="main") _main.init(); _$header = $("#header"); _$gnb = _$header.find("#gnb"); _$lnb = $("#lnb"); _$gnbBreakPoint = $("#breakPoint"); if(_$header.length===0) _$header = null; if(_$gnb.length===0) _$gnb = null; if(_$lnb.length===0) _$lnb = null; if(_$gnbBreakPoint.length===0) _$gnbBreakPoint = null; var _bodyClickButtonA = _winclick; $("body").on("click.linkHandler", "a, button, area", _winclick); if(_$header){ _YNCClayout(_$header); var headerHeight = 88; if(_$gnbBreakPoint){ }else{ } } }); })(this, this.YNCC = this.YNCC || {});