// 사이트업 전용 jQuery 프로그램
$(function() {
// gnb, lnb 마크업 추가
$('.ABA-gnb a').append('');
$('.ABA-lnb-box a').append('');
$('.ABA-head-lnb').append('
');
$('.ABA-body-lnb').after('');
$('.ABA-lnb').before('').after('');
$('.ABA-lnb-sub').before('').after('');
$('.ABA-gnb > li > div > ul').before('').after('');
$('.ABA-gnb-sub-1 > ul > li > ul').wrap('').before('').after('');
// gnb
var gnb_wrap = $('.ABA-gnb-wrap');
var gnb_wrap_width = gnb_wrap.width();
var gnb_li = $('.ABA-gnb > li'), gnb_sub_1 = $('.ABA-gnb-sub-1'), gnb = gnb_li.parent();
var gnb_width = gnb.width();
var gnb_li_all = $('div.ABA-gnb-sub-1 li');
var gnb_sub_2 = $('div.ABA-gnb-sub-2');
var gnb_sub_2_ul = $('ul.ABA-gnb-sub-2-ul');
var gnb_v = 'N', gnb_s = 'N', gnb_w = 'N', fix_1 = 'N', fix_2 = fix_leave = 'N';
var current_gnb = $('.AB-current-gnb');
var current_gnb_sub_1 = gnb.find('.AB-current-gnb>.ABA-gnb-sub-1');
if (gnb_wrap.hasClass('GNB-v')) gnb_v = 'Y';
if (gnb_wrap.hasClass('GNB-s')) gnb_s = 'Y';
if (gnb_wrap.hasClass('GNB-w')) gnb_w = 'Y';
if (gnb_wrap.hasClass('fix-1')) fix_1 = 'Y';
if (gnb_wrap.hasClass('fix-2')) fix_2 = 'Y';
if (gnb_wrap.hasClass('fix-leave')) fix_leave = 'Y';
if (browser_type == 'IE6') gnb_s = 'N';
gnb_sub_2_ul.css('display', 'block'); // IE 에서 보였다 사라지는 현상을 없애기 위해 style.css 파일에서 display:none 해 놓은 것을 ABA-gnb-sub-2 를 hidden 으로 감싼 후에 block 처리 함.
// GNB 메뉴 위치 설정
var zidx = 1000;
var chg_left = 0;
gnb_li.each(function() { // GNB 개수 만큼
var this_gnb_sub_1 = $('div', $(this)).eq(0);
var this_gnb_sub_1_width = this_gnb_sub_1.width();
var this_left = $(this).position().left;
if (this_left + this_gnb_sub_1_width >= gnb_width) { // GNB 좌측위치 + GNB 서브 가로폭 >= GNB 가로폭 (GNB 서브메뉴가 GNB 우측 영역을 벗어나는 경우)
var xy = this_left + this_gnb_sub_1_width - gnb_width; // 우측 끝 선에 맞춤
this_gnb_sub_1.css('left', this_left-xy-5);
} else { // 벗어나지 않는 경우
if (gnb_w == 'N') { // 일반 gnb-sub
this_gnb_sub_1.css('left', this_left); // 상위 li left 에 맞춤
} else { // 와이드 gnb-sub
if (chg_left == 0) chg_left = this_left; // 겹치지 않는 경우 상위 li 에 맞춤
this_gnb_sub_1.css('left', Math.max(chg_left, this_left)); // 겹치는 경우 겹치지 않도록 조정된 left 에 맞춤
if (this_gnb_sub_1_width != null || this_gnb_sub_1_width > $(this).width()) chg_left += this_gnb_sub_1_width; // 이전 ul width 값 만큼 더함
else chg_left = 0; // 이전 ul 이 없거나 작으면 0 으로 세팅하여 다음 번 루틴 때 상위 li left 값 배정
}
}
this_gnb_sub_1.css('z-index', zidx);
zidx--;
});
if (gnb_v == 'Y') { // 수직으로 펼쳐지는 GNB인 경우
var parent_gnb_sub_2; // 서브2차 노출 위치 설정
gnb_sub_2.each(function() {
parent_gnb_sub_2 = $(this).parents('div.ABA-gnb-sub-1');
$(this).css('left', parent_gnb_sub_2.width());
$(this).css('top', '0');
});
gnb.find('div[class*=ABA-gnb-sub]').addClass('AB-live-menu'); // 펼쳐질 서브메뉴(ul) 들에 클래스 주입, 이미 펼쳐진 서브메뉴는 제외
} else { // 수평으로 펼쳐지는 GNB인 경우
current_gnb_sub_1.removeClass('AB-hidden').addClass('AB-show');
gnb.find('div[class*=ABA-gnb-sub]:not(.AB-show)').addClass('AB-live-menu'); // 펼쳐질 서브메뉴(ul) 들에 클래스 주입, 이미 펼쳐진 서브메뉴는 제외
}
// 마우스 오버/아웃시 메뉴노출 설정
var gnb_a_all = gnb.find('li>a');
if (gnb_s == 'Y') { // 슬라이드 메뉴인 경우
gnb_a_all.mouseover(m_over_slide).focus(m_over_slide); // 각 메뉴의 링크에 마우스를 올렸을 때 m_over_slide 함수 호출
gnb.mouseleave(function() { // gnb 영역에서 마우스가 벗어났을 때
if (gnb_v == 'Y') gnb.find('div[class*=ABA-gnb-sub]').hide('fast').addClass('AB-live-menu');
else gnb.find('div[class*=ABA-gnb-sub]:not(.AB-show)').hide('fast').addClass('AB-live-menu');
if (gnb_v != 'Y' && current_gnb_sub_1.hasClass('AB-show')) current_gnb_sub_1.show('fast').removeClass('AB-live-menu');
if (gnb_w == 'Y') $('.AB-wide-gnb-sub').hide('fast');
});
} else {
gnb_a_all.mouseover(m_over_display).focus(m_over_display);
gnb.mouseleave(function() {
if (gnb_v == 'Y') gnb.find('div').css('display', 'none').addClass('AB-live-menu');
else gnb.find('div[class*=ABA-gnb-sub]:not(.AB-show)').css('display', 'none').addClass('AB-live-menu');
if (gnb_v != 'Y' && current_gnb_sub_1.hasClass('AB-show')) current_gnb_sub_1.css('display', 'block').removeClass('AB-live-menu');
if (gnb_w == 'Y') $('.AB-wide-gnb-sub').css('display', 'none');
});
}
gnb_li.mouseover(function() { // 마우스오버시
current_gnb.addClass('TCGNB'); // 현재 메뉴 복원 표시 달기
if (fix_leave != 'Y') current_gnb.removeClass('AB-current-gnb'); // 현재 메뉴 표시 제거
$(this).addClass('AB-current-gnb'); // 오버된 메뉴에 현재 메뉴 표시
});
gnb_li.click(function() { // AJAX="Y" 활성시 필요
$('.TCGNB').removeClass('TCGNB');
$(this).addClass('TCGNB');
if (fix_leave != 'Y') $('.AB-current-gnb').removeClass('AB-current-gnb');
$(this).addClass('AB-current-gnb');
});
gnb_li.mouseleave(function() { // 마우스 아웃시
if ($(this).hasClass('TCGNB')) return; // 현재 메뉴인 경우 표시 변경 없음
$(this).removeClass('AB-current-gnb'); // 현재 메뉴 표시 제거
current_gnb = $('.TCGNB'); // 복원 표시된 메뉴 찾기
current_gnb.addClass('AB-current-gnb'); // 현재 메뉴 복원
current_gnb.removeClass('TCGNB'); // 복원표시 제거
});
// lnb
var lnb_li = $('.ABA-lnb > li'), lnb_sub = $('.ABA-lnb-sub');
lnb_li.mouseover(function() {
$('ul', $(this)).eq(0).show('fast');
});
lnb_li.click(function() { // AJAX="Y" 활성시 필요
$('.AB-current-lnb').removeClass('AB-current-lnb');
$(this).addClass('AB-current-lnb');
});
function m_over_slide(){
var gnb_a = $(this);
var parent_ul = gnb_a.parent('li').parent('ul');
var next_gnb_sub = gnb_a.next('div[class*=ABA-gnb-sub]');
if (gnb_w != 'Y') {
if (next_gnb_sub.hasClass('AB-live-menu')) {
if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').hide('fast').addClass('AB-live-menu');
next_gnb_sub.show('fast').removeClass('AB-live-menu');
} else if (!next_gnb_sub.length) {
if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').hide('fast').addClass('AB-live-menu');
}
} else {
if (parent_ul.hasClass('ABA-gnb')) {
$('.AB-wide-gnb-sub').show('fast');
gnb_sub_1.show('fast');
} else if (parent_ul.children().children('div[class*=ABA-gnb-sub]').length > 0) {
if (next_gnb_sub.css('display') != 'block') {
gnb_sub_2.hide('fast');
next_gnb_sub.show('fast');
}
}
}
}
function m_over_display(){
var gnb_a = $(this);
var parent_ul = gnb_a.parent('li').parent('ul');
var next_gnb_sub = gnb_a.next('div[class*=ABA-gnb-sub]');
if (gnb_w != 'Y') {
if (next_gnb_sub.hasClass('AB-live-menu')) {
if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').css('display', 'none').addClass('AB-live-menu');
next_gnb_sub.css('display', 'block').removeClass('AB-live-menu');
} else if (!next_gnb_sub.length) {
if (fix_leave != 'Y') parent_ul.children().children('div[class*=ABA-gnb-sub]').css('display', 'none').addClass('AB-live-menu');
}
} else {
if (parent_ul.hasClass('ABA-gnb')) {
$('.AB-wide-gnb-sub').css('display', 'block');
gnb_sub_1.css('display', 'block');
} else if (parent_ul.children().children('div[class*=ABA-gnb-sub]').length > 0) {
if (next_gnb_sub.css('display') != 'block') {
gnb_sub_2.css('display', 'none');
next_gnb_sub.css('display', 'block');
}
}
}
}
// 와이드 gnb 서브인 경우 마크업 추가, 본 위치 유지
if (gnb_w == 'Y') {
var wide_gnb_sub = gnb_li.find('div.ABA-gnb-sub-1').eq(0);
wide_gnb_sub.wrap('');
gnb_sub_2.mouseleave(function() { $(this).hide('fast'); });
}
// 메뉴고정 옵션 처리
if (fix_1 == 'Y') {
gnb_sub_1.removeClass('AB-hidden').addClass('AB-show');
gnb.unbind("mouseleave");
gnb_li.unbind("mouseover").unbind("mouseleave");
$('.GNB-a').unbind("mouseover").unbind("focus");
}
if (fix_2 == 'Y') {
gnb_sub_2.removeClass('AB-hidden').addClass('AB-show');
gnb.unbind("mouseleave");
gnb_sub_1.find('li>a').unbind("mouseover").unbind("focus");
}
// 새글등록버튼 클릭 시
$('.btn_new_article').css('cursor', 'pointer');
$('.btn_new_article').click(
function() {
$('#global_dialog').attr('title', "새 글을 등록할 코너를 선택하세요");
$('#global_dialog').load('insiter.php?design_file=article_new_pop.php').dialog(
{
modal: true,
width:400,
height:500
/*buttons: [
{
text: "Ok",
click: function() { $(this).dialog("close"); }
}
]*/
}
);
}
);
});