/* 에이빌더 전용 jquery 프로그램 */
// 에이빌더 게시판용
var cmt_modify_idx = '';
var cmt_reply_idx = '';
var cmt_delete_idx = '';
var auto_save_interval = null;
// This hotfix makes older versions of jQuery UI drag-and-drop work in IE9
(function($){var a=$.ui.mouse.prototype._mouseMove;$.ui.mouse.prototype._mouseMove=function(b){if($.browser.msie&&document.documentMode>=9){b.button=1};a.apply(this,[b]);}}(jQuery));
$(function() {
// 로딩중표시기
$('').appendTo('body');
// 마우스 좌표 얻음
__mouse_xy = new Array();
$(this).bind('mousemove',function(e) {
__mouse_xy[0] = e.pageX;
__mouse_xy[1] = e.pageY;
__mouse_xy[2] = e.screenX;
__mouse_xy[3] = e.screenY;
});
// 날짜입력상자
now = new Date();
ab_date_picker();
// 드래그객체
$( ".draggable" ).draggable({ scroll: true });
// 버튼 커서모양 변경
$('body').on('mouseover', 'img[id*=_btn_],p[id*=_btn_],span[id*=_btn_],img[id*=-btn-],p[id*=-btn-],span[id*=-btn-]', function(event) { $(this).css('cursor', 'pointer'); } );
// 링크주소 #; 제거/복원
$('body').on('click', 'a', function(event) { if ($(this).attr('href') == '#;' || $(this).attr('href') == '#') $(this).attr('tmp', $(this).attr('href')).removeAttr('href').css('cursor', 'pointer'); });
$('body').on('mouseout', 'a', function(event) { if ($(this).attr('href') == null && $(this).attr('tmp') != null) $(this).attr('href', $(this).attr('tmp')).removeAttr('tmp'); });
// 풀다운 메뉴 마크업 항목 클릭 시 실행
$('body').on('click', 'p[id^=ABP-btn-fdmenu-],span[id^=ABP-btn-fdmenu-],img[id^=ABP-btn-fdmenu-]', function(event) {
var fd_btn_id = $(this).attr('id');
var fd_btn_exp = fd_btn_id.split('-');
var fd_btn_idx = $(this).attr('id').replace('ABP-btn-fdmenu-', '');
var link_tail = '?fd_btn_idx=' + fd_btn_idx;
var link = $(this).attr('link');
if (!link) link = '/tools/full_down_menu.tpl.php' + link_tail;
else link = link + link_tail;
var fd_menu_id = 'ABP-fdmenu-' + fd_btn_idx;
var obj_fd_menu = document.getElementById(fd_menu_id);
$('div[id^=ABP-fdmenu-]').css('display', 'none');
if (!obj_fd_menu) {
$.get(link, {}, function(data) {
if (data == '') return false;
var alert_msg = get_alert_msg_in_result(data);
if (alert_msg == 'null') $('#' + fd_btn_id).after(data);
else after_submit_cancel(alert_msg);
});
} else {
if (obj_fd_menu.style.display == '') obj_fd_menu.style.display = 'none';
else obj_fd_menu.style.display = '';
}
return false;
});
// 풀다운 메뉴 닫기
$('body').on('mouseleave', 'div.ABA-full-down-menu', function(event) { $(this).css('display', 'none'); });
// 클릭한 div 를 감추고 그와 매핑되는 div 를 보여줌
// 사용처 : 상태 변경을 위해 출력값을 즉시수정 버튼들로 변경 할 때 등
$('body').on('click', 'div[id^=AB_dbclick_view_]', function(event) {
var dbclick_idx = $(this).attr('id').substr(Number($(this).attr('id').lastIndexOf('_')) + 1);
$(this).css('display', 'none');
$('div[id^=AB_dbclick_hidden_' + dbclick_idx + ']').css('display','');
});
// 로딩중 표시기 노출
$('body').on('click', '.loading-img', function(event) {
$('#loading_img').css('display', '');
$('#loading_img').center();
});
// 정렬 버튼 클릭시 실행
$('body').on('click', 'a[id^=AB_sort_]', function(event) {
$('#loading_img').css('display', '');
$('#loading_img').css('top', __mouse_xy[1]);
var sort_link = $(this).attr('href');
//document.location.href = sort_link;
//return;
var ajax_area = $(this).attr('ajax_area');
$.get(sort_link, {}, function(data) {
var alert_msg = get_alert_msg_in_result(data);
if (alert_msg == 'null') {
var exp_sort_1 = sort_link.split('&');
for (i=0; i..
$('body').on('click', '*[class^=AB_btn_dialog_]', function(event) {
var load_url;
var size = $(this).attr('rel').split(',');
if ($(this).attr('href') != undefined) {
load_url = $(this).attr('href');
var title;
if (size[2] != undefined) title = size[2];
else title = $(this).attr('title');
$('#global_dialog').load(ajax_url_filter(load_url) + '&AJAX=Y').dialog({
modal: true,
title: title,
width: size[0],
height: size[1]
});
} else {
alert('동적 대화창을 열 수 없는 버튼 입니다.');
}
return false;
});
// ..
$('body').on('change', 'select.AB-popup-img', function(event) {
if ($(this).val() == '') return false;
var dir_file_size = $(this).attr('rel').split(',');
var load_url = dir_file_size[2] + $(this).val() + '/' + dir_file_size[3];
$('#global_dialog').load(load_url).dialog({
modal: true,
title: $(this).attr('title'),
width: dir_file_size[0],
height: dir_file_size[1]
});
return false;
});
// ajax submit
$('body').on('click', '*[id^=AB_btn_submit_]', function(event) {
var submit_idx_array = $(this).attr('id').split('_');
var submit_idx = submit_idx_array[submit_idx_array.length-1];
var form = $('form:has(#AB_btn_submit_' + submit_idx + ')');
var submit_action = form.attr('action');
var submit_function = form.attr('onsubmit');
var after_db_script = form.children('input[name=after_db_script]').val();
form.removeAttr('action', 'onsubmit');
if (submit_function) {
var T_submit_function = submit_function.substring(7);
if (eval(T_submit_function)) {
$('#loading_img').css('display', '');
$('#loading_img').css('top', __mouse_xy[1]);
//alert(form.serialize());
var ajax_area = $(this).attr('ajax_area');
$.post(submit_action, form.serialize(), function(data) {
//alert(data);
var alert_msg = get_alert_msg_in_result(data); // 경고 메시지 있으면 출력
if (alert_msg != 'null') after_submit_cancel(alert_msg);
if (data.indexOf('history.go(') < 0) { // 뒤로 이동 인 경우 load 안함
var move_url;
if (after_db_script == '%SELF%') { // 현재페이지
var exp_href = urldecode(document.location.href).split('#');
if (exp_href[1] != undefined && exp_href[1] != '' && exp_href[1] != ';') move_url = exp_href[1];
else if (exp_href[0] != undefined) move_url = exp_href[0];
else move_url = exp_href;
} else {
move_url = get_move_url_in_result(data); // 이동할 url
}
//alert(move_url);
after_submit_load(move_url, ajax_area);
}
submit_idx = '';
});
}
}
submit_is_ing = 'N';
form.attr('action', submit_action);
form.attr('onsubmit', submit_function);
return false;
});
// 페이지 링크
$('#global_dialog').on('click', 'a[class^=LF_page_link]', function(event) {
$('#global_dialog').load(ajax_url_filter($(this).attr('href')) + '&AJAX=Y');
$(this).attr('href', '#;');
return false;
});
// 다이얼로그 닫기
$('body').on('click', '.close_dialog', function(event) {
$('#global_dialog').dialog('close');
});
// 객체를 화면 정중앙에 배치 (사용법 : 객체.center())
$.fn.center = function () {
this.css("position","absolute");
this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
return this;
}
// 페이지 로딩 후
$(window).load(function() {
});
// ajax 호출 완료 후
$("#AB_contents").ajaxComplete(function() {
ab_date_picker();
});
// 목록에 마우스 올리면 상세내용을 보여주는 플러그인
$.fn.AB_JQG = function(vars) {
var random = vars.random; // 상세 게시물 무작위 노출 또는 첫 게시물로 노출
var speed = vars.speed; // 페이드 속도
var timeout = (vars.playsec != undefined) ? vars.playsec*1000 : 0; // play 시간
var items = this.find('.AB-over');
var this_obj = this;
var current_item_idx;
var m_over = false;
var sto_fn = null;
var change_item = function (set_item_idx) {
if (m_over == true) return;
if (set_item_idx == undefined) set_item_idx = current_item_idx + 1;
if (set_item_idx == items.length) set_item_idx = 0;
current_item_idx = set_item_idx;
items.removeClass('AB-current');
items.eq(set_item_idx).addClass('AB-current');
var idx = items.eq(set_item_idx).attr('idx');
var T_pane_1 = this_obj.find('.AB-pane-1');
var T_pane_2 = this_obj.find('.AB-pane-2');
var T_item_1 = this_obj.find('.AB-item-1-' + idx);
var T_item_2 = this_obj.find('.AB-item-2-' + idx);
T_pane_1.hide().html(T_item_1.html());
T_pane_2.hide().html(T_item_2.html());
if (speed == undefined) {
T_pane_1.show();
T_pane_2.show();
} else {
T_pane_1.fadeIn(speed);
T_pane_2.fadeIn(speed);
}
}
if (items.length > 0) {
if (random != 'Y') current_item_idx = 0;
else current_item_idx = randRange(0, items.length-1);
this.find('.AB-pane-1').html(this.find('div[class^=AB-item-1-]').slice(current_item_idx, current_item_idx+1).html());
this.find('.AB-pane-2').html(this.find('div[class^=AB-item-2-]').slice(current_item_idx, current_item_idx+1).html());
if (timeout > 0) sto_fn = setInterval(change_item, timeout);
else change_item();
this.on('mouseover', '.AB-over', function(event) {
change_item(items.index($(this)));
m_over = true;
});
this.on('mouseout', '.AB-over', function(event) {
if (timeout > 0) {
clearInterval(sto_fn);
sto_fn = setInterval(change_item, timeout);
}
m_over = false;
});
}
};
$('div[id^=AB-jq-gallery-]').each(function(index) { // 갤러리 박스들 만큼 반복
$(this).AB_JQG({
speed : $(this).attr('fade'),
random : $(this).attr('random'),
playsec : $(this).attr('playsec')
});
});
$('body').on('mouseover', 'div.AB-m-o-d', function(event) {
var s_h_name = $(this).attr('childtag');
var toggle_obj = $(this).find(s_h_name);
var p_at = $(this).attr('p-at');
var p_my = $(this).attr('p-my');
var p_collision = $(this).attr('p-collision');
$('.AB-m-o-d ' + s_h_name).css('display', 'none');
toggle_obj.css('display', 'block'); // .position 보다 먼저 실행되어야 함.
toggle_obj.position({ of:$(this),at:p_at,my:p_my,collision:p_collision });
toggle_obj.bind('mouseout', function(event) { $(this).css('display', 'none') });
});
// 아코디언을 자동으로 실행하는 함수
$.fn.AB_ATAC = function(vars) {
if (vars.playsec == undefined) return false;
var random = vars.random; // 무작위 노출 또는 첫 항목으로 노출
var timeout = vars.playsec*1000; // play 시간
var item_title = (vars.item_title == undefined) ? 'h3' : vars.item_title;
var items = this.find(item_title);
if (items.length <= 0) return false;
var this_obj = this;
if (random != 'Y') {
var current_item_idx = 0;
} else {
var current_item_idx = randRange(0, items.length-1);
this_obj.accordion('option', 'active', current_item_idx);
}
var m_over = false;
var sto_fn = null;
var change_item = function (set_item_idx) {
if (m_over == true) return;
if (set_item_idx == undefined) set_item_idx = current_item_idx + 1;
if (set_item_idx == items.length) set_item_idx = 0;
current_item_idx = set_item_idx;
this_obj.accordion("option", "active", set_item_idx);
}
sto_fn = setInterval(change_item, timeout);
this_obj.bind('mouseover', function(event) { m_over = true; });
this_obj.bind('mouseout', function(event) {
clearInterval(sto_fn);
sto_fn = setInterval(change_item, timeout);
m_over = false;
});
};
// jCarouselLite - jQuery plugin to navigate images/any content in a carousel style widget.
// http://gmarwaha.com/jquery/jcarousellite/
$.fn.jCarouselLite = function(o) {
o = $.extend({visible:3,scroll:1,speed:200,auto:null,vertical:false,circular:true,mouseWheel:false,start:0,btnPrev:null,btnNext:null,btnGo:null,easing:null,beforeStart:null,afterEnd:null}, o || {});
return this.each(function() {
var running = false, animCss=o.vertical?"top":"left", sizeCss=o.vertical?"height":"width";
var div = $(this), ul = $("ul", div), tLi = $("li", ul), tl = tLi.size(), v = o.visible;
if (o.circular) { ul.prepend(tLi.slice(tl-v-1+1).clone()).append(tLi.slice(0,v).clone()); o.start += v; }
var li = $("li", ul), itemLength = li.size(), curr = o.start;
div.css("visibility", "visible");
li.css({overflow: "hidden", float: o.vertical ? "none" : "left"});
ul.css({margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1"});
div.css({overflow: "hidden", position: "relative", "z-index": "2", left: "0px"});
var liSize = o.vertical ? height(li) : width(li);
var ulSize = liSize * itemLength;
var divSize = liSize * v;
li.css({width: li.width(), height: li.height()});
ul.css(sizeCss, ulSize+"px").css(animCss, -(curr*liSize));
div.css(sizeCss, divSize+"px");
if (o.btnPrev) $(o.btnPrev).click(function() { return go(curr-o.scroll); });
if (o.btnNext) $(o.btnNext).click(function() { return go(curr+o.scroll); });
if (o.btnGo) $.each(o.btnGo, function(i, val) { $(val).click(function() { return go(o.circular ? o.visible+i : i); }); });
if (o.mouseWheel && div.mousewheel) div.mousewheel(function(e, d) { return d>0 ? go(curr-o.scroll) : go(curr+o.scroll); });
if (o.auto) var carousel_interval = setInterval(function() {go(curr+o.scroll);}, o.auto+o.speed);
function vis() { return li.slice(curr).slice(0,v); };
function go(to) {
if (!running) {
if (o.beforeStart) o.beforeStart.call(this, vis());
if (o.circular) {
if (to<=o.start-v-1) {
ul.css(animCss, -((itemLength-(v*2))*liSize)+"px");
curr = to==o.start-v-1 ? itemLength-(v*2)-1 : itemLength-(v*2)-o.scroll;
} else if (to>=itemLength-v+1) {
ul.css(animCss, -( (v) * liSize ) + "px" );
curr = to==itemLength-v+1 ? v+1 : v+o.scroll;
} else curr = to;
} else {
if (to<0 || to>itemLength-v) return;
else curr = to;
}
running = true;
ul.animate(animCss == "left" ? { left: -(curr*liSize) } : { top: -(curr*liSize) } , o.speed, o.easing, function() {
if (o.afterEnd) o.afterEnd.call(this, vis());
running = false;
});
if (!o.circular) {
$(o.btnPrev + "," + o.btnNext).removeClass("disabled");
$((curr-o.scroll<0 && o.btnPrev) || (curr+o.scroll > itemLength-v && o.btnNext) || [] ).addClass("disabled");
}
}
return false;
};
div.mouseover(function() { clearInterval(carousel_interval); });
div.mouseout(function() { if (o.auto) carousel_interval = setInterval(function() { go(curr+o.scroll); }, o.auto+o.speed); });
});
};
function css(el, prop) { return parseInt($.css(el[0], prop)) || 0; };
function width(el) { return el[0].offsetWidth + css(el, 'marginLeft') + css(el, 'marginRight'); };
function height(el) { return el[0].offsetHeight + css(el, 'marginTop') + css(el, 'marginBottom'); };
// 두개의 div 를 toggle 시키는 함수(쿠키를 이용해서 상태를 저장)
// 각 div 에 ABA-toggle 클래스를 마크업하고 두개의 토글버튼의 a 태그에 btn-toggle 클래스를 마크업
// 형식으로 헤더에서 호출
// 바깥쪽 div 에 지정할 추가 속성 id='quick-consult' toggle-hour='1' a-show='blind' a-hide='blind' a-speed='fast'
// blind, bounce, clip, drop, explode, fold, highlight, puff, pulsate, scale, shake, size, slide
$.fn.ab_toggle = function () {
var toggle_id = 'abc_' + this.attr('id');
var toggle_divs = this.children('.ABA-toggle');
var toggle_div_1 = toggle_divs.eq(0);
var toggle_div_2 = toggle_divs.eq(1);
var toggle_hour = parseInt(this.attr('toggle-hour'));
var toggle_cookie = get_cookie(toggle_id);
var a_show = this.attr('a-show');
var a_hide = this.attr('a-hide');
var a_speed = this.attr('a-speed');
//if (a_show == undefined) a_show = 'blind';
//if (a_hide == undefined) a_hide = 'blind';
//if (a_speed == undefined) a_speed = 'slow';
if (toggle_cookie == '') toggle_cookie = 0; // 보여줄 대상
toggle_divs.eq(toggle_cookie).show(a_show, a_speed);
$('a.btn-toggle', toggle_div_1).bind('click', function(event) {
set_cookie(toggle_id, 1, toggle_hour);
toggle_div_1.hide(a_hide, a_speed, function() { toggle_div_2.show(a_show, a_speed); });
});
$('a.btn-toggle', toggle_div_2).bind('click', function(event) {
set_cookie(toggle_id, 0, toggle_hour);
toggle_div_2.hide(a_hide, a_speed, function() { toggle_div_1.show(a_show, a_speed); });
});
};
// 외부 버튼으로 div, td 등을 toggle 시키는 함수(쿠키를 이용해서 상태를 저장)
// 형식으로 헤더에서 호출
// 버튼에 지정할 추가 속성 class='AB-show-hide-btn' toggle-hour='1' toggle-class='ABA-designer-left' default-view='show' a-show='blind' a-hide='blind' a-speed='fast'
$.fn.ab_toggle_1 = function () {
var toggle_id = 'abc_' + this.attr('id');
var toggle_class = this.attr('toggle-class');
var default_view = this.attr('default-view');
var toggle_obj = $('*.' + toggle_class);
var toggle_hour = parseInt(this.attr('toggle-hour'));
var toggle_cookie = get_cookie(toggle_id);
var a_show = this.attr('a-show');
var a_hide = this.attr('a-hide');
var a_speed = this.attr('a-speed');
//if (a_show == undefined) a_show = 'blind';
//if (a_hide == undefined) a_hide = 'blind';
//if (a_speed == undefined) a_speed = 'slow';
if (default_view != 'show') toggle_obj.css('display', 'none');
if (toggle_cookie == '') toggle_cookie = default_view;
if (toggle_cookie === 'show') toggle_obj.show(a_show, a_speed);
else toggle_obj.hide(a_hide, a_speed);
$(this).bind('click', function(event) {
if (toggle_cookie !== 'show') {
toggle_obj.show(a_show, a_speed);
set_cookie(toggle_id, 'show', toggle_hour);
toggle_cookie = 'show';
} else {
toggle_obj.hide(a_hide, a_speed);
set_cookie(toggle_id, 'hide', toggle_hour);
toggle_cookie = 'hide';
}
});
};
auto_save(); // 임시저장 기능 실행
});
function auto_save() { // 자동 저장으로 지정된 영역 처리
var auto_save_div = $('form .ABA-auto-save');
clearInterval(auto_save_interval);
if (auto_save_div.length === 1) { // 한 페이지에 한개의 영역만 존재해야 함
var form_jq = auto_save_div.parents('form');
var form = form_jq[0];
$.get('/tools/auto_save/load.php', {}, function(dataJson) { // 기존 저장된 파일이 있는지 확인한다.
if (dataJson != '' && dataJson != null) {
if (confirm('임시저장된 내용이 있습니다.\n확인을 누르시면 해당 내용이 복원됩니다.\n\n임시저장된 내용은 게시물이 정상적으로 등록/수정 되면\n자동 삭제됩니다.')) {
var form_jq_serialize = form_jq.serializeArray();
jQuery.each(form_jq_serialize, function(i, field){
if (dataJson[field.name] != undefined && dataJson[field.name] != '') {
var obj = eval('form.' + field.name);
if (obj.type === 'text' || obj.type === 'textarea' || obj.type === 'select-one') obj.value = stripslashes(dataJson[field.name]);
}
});
} else {
$.get('/tools/auto_save/delete.php', {}, function(data) { });
}
}
}, 'json');
auto_save_div.bind('click', function(event) {
var editor_textarea = auto_save_div.find('textarea[id^=oEdit-TC]');
auto_save_interval = setInterval(function() {
$('#loading_img').css('display', '');
$('#loading_img').center();
editor_textarea.each(function(index) { editor_update($(this).attr('id')); }); // editor_update() 는 tools/editor/선택된편집기/view_editor.inc.php 에 정의되어 있음
$.post('/tools/auto_save/save.php', form_jq.serialize(), function(data) { $('#loading_img').css('display', 'none'); });
}, auto_save_div.attr('auto_save_term')*1000);
auto_save_div.unbind('click'); // 클릭 이벤트 해제
});
} else if (auto_save_div.length > 1) {
alert('임시저장 영역은 한 페이지에 한개만 가능합니다.');
}
}
function ab_date_picker() {
// 날짜 선택박스 호출 처리
// AB_datepicker 클래스에 캘린더 배정
// numberOfMonths:3
// minDate:-20, maxDate:"+1M +10D"
// showOn:"button", buttonImage:"/tools/calendar/form_input_type/cal.gif", buttonImageOnly:true
var AB_datepicker = $('.AB_datepicker');
if (AB_datepicker.length > 0) {
AB_datepicker.datepicker({showOtherMonths:true,selectOtherMonths:true,changeMonth: true,changeYear: true});
$('img.ui-datepicker-trigger').attr({ 'style' : 'margin:0 0 4px 2px;' }); // 버튼 여백 조정
$('.ui-datepicker').attr({ 'style' : 'width: 17em; padding: .2em .2em 0; font-size:90%;' });
AB_datepicker.each(function(index) { // 모든 datepicker 만큼 반목
var date_saved_value = $(this).val(); // 기본 값 저장
var date_format = 'yy-mm-dd', time_div = ' ', time_unit = '3';
if ($(this).attr('date_format') != undefined) date_format = $(this).attr('date_format');
if ($(this).attr('time_div') != undefined) time_div = $(this).attr('time_div');
if ($(this).attr('time_unit') != undefined) time_unit = $(this).attr('time_unit');
if ($(this).hasClass("AB_datepicker_time")) { // 입력용 추가클래스(AB_datepicker_time) 지정된 경우
var date_format_full;
if (time_unit >= 3) date_format_full = date_format + time_div + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
else if (time_unit >= 2) date_format_full = date_format + time_div + now.getHours() + ':' + now.getMinutes();
else date_format_full = date_format + time_div + now.getHours();
if (date_saved_value != '') {
var split_date = date_saved_value.split(time_div);
if (split_date[1] == undefined || split_date[1] == '') $(this).datepicker('option', 'dateFormat' , date_format_full);
else $(this).datepicker('option', 'dateFormat' , date_format + time_div + split_date[1]);
} else {
$(this).datepicker('option', 'dateFormat' , date_format_full);
}
} else {
$(this).datepicker('option', 'dateFormat' , date_format);
}
if ($(this).hasClass('AB_datepicker_btn')) { // 입력용 추가클래스(AB_datepicker_time) 지정된 경우
$(this).datepicker('option', 'showOn' , 'button');
$(this).datepicker('option', 'buttonImage' , '/designer/thema/type_1/images/cal.gif');
$(this).datepicker('option', 'buttonImageOnly' , 'true');
$(this).datepicker('option', 'buttonText' , 'calendar');
}
$(this).val(date_saved_value);
});
/*$( "#locale" ).change(function() {
AB_datepicker.datepicker( "option", $.datepicker.regional[ $( this ).val() ] );
});*/
$.datepicker.regional['ko'] = {
closeText: '닫기',
prevText: '이전달',
nextText: '다음달',
currentText: '오늘',
monthNames: ['01월(JAN)','02월(FEB)','03월(MAR)','04월(APR)','05월(MAY)','06월(JUN)','07월(JUL)','08월(AUG)','09월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
monthNamesShort: ['01월','02월','03월','04월','05월','06월','07월','08월','09월','10월','11월','12월'],
dayNames: ['일','월','화','수','목','금','토'],
dayNamesShort: ['일','월','화','수','목','금','토'],
dayNamesMin: ['일','월','화','수','목','금','토'],
weekHeader: 'Wk',
firstDay: 0,
isRTL: false,
showMonthAfterYear: true,
yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['ko']);
}
}
function ajax_url_filter(url) {
var pattern = /&OTSKIN=.+\.php/;
var new_url = url.replace(pattern, '');
return new_url;
}
function submit_direct_ajax(form, action, board, serial_num, target, chg_values, query_string, after_script, after_msg, frm_attr, flag, p_self, return_url) {
if (typeof(form) === 'undefined') {
$('body').append("");
form = document.getElementById('realtime_frm');
}
$('#loading_img').css('display', '');
$('#loading_img').css('top', __mouse_xy[1]);
var chg_names = {}; // 변경할 항목을 담을 연관배열
var chg_vars = chg_values.split(','); // 변경할 항목의 이름과 값을 , 로 구분
for(i=0; i 0) form.children('input[name=board]').val(board);
else chg_names['board'] = board;
if (form.children('input[name=article_num]').length > 0) form.children('input[name=article_num]').val(serial_num);
else chg_names['article_num'] = serial_num;
if (form.children('input[name=Q_STRING]').length > 0) form.children('input[name=Q_STRING]').val(query_string);
else chg_names['Q_STRING'] = query_string;
if (form.children('input[name=after_db_script]').length > 0) form.children('input[name=after_db_script]').val(after_script);
else chg_names['after_db_script'] = after_script;
if (form.children('input[name=after_db_msg]').length > 0) form.children('input[name=after_db_msg]').val(after_msg);
else chg_names['after_db_msg'] = after_msg;
if (form.children('input[name=flag]').length <= 0) chg_names['flag'] = flag;
if (form.children('input[name=P_SELF]').length <= 0) chg_names['P_SELF'] = p_self;
if (form.children('input[name=return_url]').length <= 0) chg_names['return_url'] = return_url;
$.post(action, form.serialize() + '&' + $.param(chg_names), function(data) {
//alert(data);
var alert_msg = get_alert_msg_in_result(data); // 경고 메시지 있으면 출력
if (alert_msg != 'null') after_submit_cancel(alert_msg);
if (data.indexOf('history.go(') < 0) { // 뒤로 이동 인 경우 load 안함
var move_url;
if (after_script == '%SELF%') { // 현재페이지
var exp_href = urldecode(document.location.href).split('#');
if (exp_href[1] != undefined && exp_href[1] != '' && exp_href[1] != ';' && exp_href[1].substring(0, 3) !== 'AB_') move_url = exp_href[1];
else if (exp_href[0] != undefined) move_url = exp_href[0];
else move_url = exp_href;
} else {
move_url = get_move_url_in_result(data); // 이동할 url
}
if (move_url != 'null') after_submit_load(move_url, form.attr('ajax_area'));
}
submit_is_ing = 'N';
});
}
function after_submit_cancel(alert_msg) {
eval(alert_msg);
$('#loading_img').css('display', 'none');
}
function after_submit_load(move_url, ajax_area) {
if (ajax_area == undefined || ajax_area == '' || $('#' + ajax_area).length <= 0) { // ajax 로딩 영역이 지정되지 않은경우
if ($('#AB_contents').length == 1) { // #AB_contents 영역이 지정되어 있으면 ajax 호출
var T_move_url = ajax_url_filter(move_url);
if (T_move_url.indexOf('.php') > 0 && T_move_url.indexOf('?') <= 0) T_move_url = T_move_url + '?';
$('#AB_contents').load(T_move_url + '&AJAX=Y', function() {
//alert(T_move_url + '&AJAX=Y');
$('textarea').autosize();
$('#loading_img').css('display', 'none');
if ($('#global_dialog').css('display') != 'none') $('#global_dialog').dialog('close');
auto_save();
});
} else { // 아니면 새로고침
document.location.href = ajax_url_filter(move_url);
}
} else { // ajax 로딩 영역이 지정된 경우
var ajax_area_wrap = '---' + ajax_area + '---';
if ($('#' + ajax_area_wrap).length <= 0) $('#' + ajax_area).wrap(''); // 지정된 로딩 영역에 ajax 로딩 할 수 있도록 감싸준다.
$('#' + ajax_area_wrap).load(ajax_url_filter(move_url) + ' #' + ajax_area, function() {
$('textarea').autosize();
$('#loading_img').css('display', 'none');
if ($('#global_dialog').css('display') != 'none') $('#global_dialog').dialog('close');
auto_save();
});
}
cmt_modify_idx = cmt_reply_idx = cmt_delete_idx = '';
}
// 게시물 이동 기능에서 게시판과 분류 선택상자에 필요한 함수
function category_load_article_move(obj, next_category_sch_url) {
var board_name = $("#AB_MOD_board_list").attr("value"); // 게시판목록 select의 선택 값
var select_box_name = obj.name; // 이벤트가 발생한 select box 의 이름
var select_value = obj.value; // 이벤트가 발생한 select box 의 선택 값
$(obj).nextAll().remove("[class^=category_select]"); // object의 다음 엘리먼트들 줄 class가 'categorySelect' 로 시작하는 엘리먼트 모두 삭제
if (select_value != '') { // object의 값이 있을 때만 ajax실행
$.get( // 테이블명과 카테고리를 get로 넘겨서 셀렉션을 받아온는 ajax
next_category_sch_url,
{"board_name":board_name, "select_box_name":select_box_name, "select_value":select_value},
function(data) {
$(data).appendTo("#AB_board_list_span"); // 받은 select를 class가 'selects'인 엘리먼트의 자식엘리먼트들 마지막에 삽입
}
);
}
}
// 게시물 등록,수정,삭제등의 처리 후 출력되는 문자열을 처리하는 함수
function get_article_num_in_result(data) {
var result_msg = data.split('=');
T_msg = result_msg[result_msg.length-1];
return T_msg.substring(0, T_msg.length-2);
}
// ajax 피드백 data에서 alert 메시지를 찾는 함수
function get_alert_msg_in_result(data) {
// tag, function, if, else 등 조건 내에 있는 alert 제거
data = data.replace(/<[a-zA-Z]+[^>]*>/gim, '');
data = data.replace(/<\/[a-zA-Z]+[^>]*>/gim, '');
data = data.replace(/function.+\{[^\}]*\}/gim, '');
data = data.replace(/if.+\{[^\}]*\}/gim, '');
data = data.replace(/else.+\{[^\}]*\}/gim, '');
data = data.replace(/\n/gim, '');
// alert 찾기
pattern = /alert\('.+'\)/g;
var alert_msg = pattern.exec(data);
if (alert_msg == null) {
return 'null';
} else {
return alert_msg.toString();
}
}
// ajax 피드백 data에서 meta url 을 찾는 함수
function get_move_url_in_result(data) {
var pattern = /;url=.+'>/g;
var T_move_url = pattern.exec(data);
var start_position;
var end_position;
if (T_move_url != null) {
start_position = 5;
end_position = 2;
} else {
pattern = /\.href='.+'/g;
T_move_url = pattern.exec(data);
start_position = 7;
end_position = 1;
}
if (T_move_url == null) {
return 'null';
} else {
var move_url = T_move_url.toString();
move_url = move_url.substring(start_position, move_url.length - end_position);
move_url = move_url.replace('../', '');
move_url = move_url.replace('./', '');
return move_url;
}
}
// ajax 새로고침 등을 위한 url 얻는 함수
function get_ajax_reload_url(del_ajax) {
//var url_this = urldecode(document.location.href);
var link;
var exp_href = urldecode(document.location.href).split('#'); // urldecode 필수
var pattern = /AJAX=Y/g;
//if (exp_href[1] != undefined && exp_href[1] != '' && exp_href[1] != ';' && exp_href[1].substring(0, 12) != 'AB_cmt_list_') link = exp_href[1];
if (pattern.exec(exp_href[1])) link = exp_href[1];
else if (exp_href[0] != undefined) link = exp_href[0];
else link = exp_href;
if (del_ajax == 'Y') {
var ajax_url = '&AJAX=Y';
link = link.replace(ajax_url, '');
}
var frm_pw = $('input[name=passwd]').attr('value');
if (frm_pw != '') link += '&APT=' + frm_pw;
return link;
}
// 이미지 자동으로 줄이기 (디버깅 시 활용)
function inner_img_resize(obj_class) {
var obj_class = 'ABA-content-box';
$('div[class^=' + obj_class + ']').each(function(index) {
var box_width = $(this).css('width');
var T_width = parseInt(box_width.replace('px', ''));
$(this).find('img').each(function(index) {
if ($(this).attr('width') > T_width) {
$(this).attr('width', T_width);
$(this).removeAttr('height');
}
});
/**/
});
}
/*// ajax 새로고침 등을 위한 url 얻는 함수
function get_ajax_reload_url(del_ajax) {
//var url_this = urldecode(document.location.href);
var link;
var exp_href = urldecode(document.location.href).split('#'); // urldecode 필수
if (exp_href[1] != undefined && exp_href[1] != '' && exp_href[1] != ';') link = exp_href[1];
else if (exp_href[0] != undefined) link = exp_href[0];
else link = exp_href;
var ajax_url = '&AJAX=Y';
if (del_ajax == 'Y') link = link.replace(ajax_url, '');
return link;
}*/
/*$('body').on('change', 'div.addthis_toolbox', 보관용
function(event) {
alert('sdfsdf');
}
);
// select 상자의 선택된 항목의 텍스트 얻기
$('#AB_sell_basic_goods_name').val($(this).find("option:selected").text());
// 코멘트 수정저장 버튼 클릭시 실행
$('body').on('click', input[id^=AB_cmt_btn_submit_MODIFY_], function(event) {
cmt_modify_idx = $(this).attr('id').substr(Number($(this).attr('id').lastIndexOf('_')) + 1);
var form = $('form:has(#AB_cmt_btn_submit_MODIFY_' + cmt_modify_idx + ')');
var submit_function = form.attr('onsubmit');
form.removeAttr('action', 'onsubmit');
submit_function = submit_function.substr(7);
if (eval(submit_function)) {
$.post("/board/article_modify.php", form.serialize(), function(data) {
//alert(data);
var alert_msg = get_alert_msg_in_result(data);
if (alert_msg == 'null') {
$.ajax({
url: 'insiter.php' + location.search + '&AJAX=Y',
async: false,
dataType: 'html',
processData: true,
data: 'html',
success: function(data) {
var ttt = document.getElementById('AB_contents');
//$('#').html(data);
$.getScript('http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4d0f0ba860ac188a', function(ata) {
ttt.innerHTML = data;
}
);
}
});
} else {
eval(alert_msg);
}
cmt_modify_idx = '';
});
}
submit_is_ing = 'N';
return false;
});*/