window.seedApp = window.seedApp || (function( $ ){
var init = function(){
/* ******************************************************************************************************
old
****************************************************************************************************** */
$.tailFlag = false;
$('a[href="#"], a[href="#none"]').on('click.DefaultClick', false);
$.fn.noop = function(){
return this;
}
/* *
* 메뉴 이동시 실행할 스크립트
* if( $('.pagination').length ){ ... } 와 같이 먼저 스크립트를 적용 할 대상이 있는지 체크 후에 실행
* */
$('.rolling').show();
var createRefreshIcon = (function(){
var pageTitle = $('.page-title-wrap');
$('.page-refresh').remove();
pageTitle.prepend(
$('
')
.addClass(function(){
var returnVal = 'page-refresh';
if( pageTitle.find('.sch-content-wrap').length ){
returnVal += ' static';
}
return returnVal;
})
.append(
$('')
.click(function(){
location.reload();
})
)
);
}());
// 게시판 페이징
var pagination = $('.pagination');
if( pagination.length ){
pagination.each(function( index, el ){
var paginations = $(el);
var itemW = paginations.find('a').eq( 0 ).outerWidth();
var bxOpts = {
'desktop' : {
controls : false,
minSlides: 3,
// 10개
maxSlides: Math.floor( (itemW * 10) / itemW ),
slideWidth: itemW,
slideMargin: 0,
infiniteLoop: false,
adaptiveHeight: true,
pager: false
},
'mobile640' : {
controls : false,
minSlides: 3,
// 5개
maxSlides: Math.floor( (itemW * 5) / itemW ),
slideWidth: itemW,
slideMargin: 0,
infiniteLoop: false,
adaptiveHeight: true,
pager: false
}
};
$(window).on('resize', function(){
var currentWidth = $(window).width();
var currentDivice = currentWidth > 640 ? 'desktop' : 'mobile640';
if( !!paginations.destroySlider ){
paginations.destroySlider();
}
paginations.bxSlider( bxOpts[currentDivice] );
}).resize();
});
}
$('.editor iframe').hide();
if( $('iframe').length ){
function isFullScreen(){
return $('.layout-content').hasClass('siteLayOutSet');
}
// F11 key event
function jf_eventF11( isreload ){
var header = $('.header');
var layoutContent = $('.layout-content').addClass('siteLayOutSet');
var iframe = $('iframe');
// resize event
if( !isreload ){
$(window)
.on('resize.siteLayOutSet', function(){
var iframeH = $(window).height() - (header.height() + layoutContent.find('.layout-title').height() + $('.btn-area').height() + 30);
iframe.height( iframeH );
}).resize();
}
// 현재보이는 아이프레임 외에 나머지 아이프레임에 height 지정
iframe.contents().find('.CodeMirror').addClass('CodeMirror-fullscreen').css('height', 'auto');
}
// ESC key event
function jf_eventEsc(siteLayOutPosition){
var layoutContent = $('.layout-content').removeClass('siteLayOutSet');
var iframe = $('iframe');
// 아이프레임 height 지정 540이 스타일 기본값으로 잡혀있었음..
iframe.height(540);
// 현재보이는 아이프레임 외에 나머지 아이프레임 height 지정
iframe.contents().find('.CodeMirror').removeClass('CodeMirror-fullscreen').removeAttr('style');
// resize event off
$(window).off('resize.siteLayOutSet');
}
window.jf_eventF11 = jf_eventF11;
window.jf_eventEsc = jf_eventEsc;
window.isFullScreen = isFullScreen;
var $firstIframe = $('.editor iframe').first();
if( !$.browser.msie ){
$('.editor').iframeLoaded().done(function(){
$firstIframe.fadeIn(function(){
$('.rolling').hide();
});
});
}else{
$('.rolling').remove();
$firstIframe.show();
}
}
if( $('.bookmark-list-pc > ul > li').length ){
if( $(window).width() > 1024 ){
$('.bookmark-list-pc > ul > li, .sub-category li').css({
'transition':'none',
'-webkit-transition':'none'
});
$('.bookmark-list-pc button').addClass('on');
$('.bookmark-list-pc > ul').addClass('open');
$('.bookmark-list-pc .sub-category ul').addClass('sub-open');
$('.bookmark-list-pc .line01').css('opacity','1');
if( $('.bookmark-list-pc').hasClass('downNupType01') ){ //아래에서 위로 한줄
for( var i = 0; i < $('.downNupType01 > ul > li').length; i++ ){
var top = (Math.floor(i/2)+1)*64;
$('.downNupType01 > ul > li').eq(i).css('top',-top);
}
}else if( $('.bookmark-list-pc').hasClass('downNupType02') ){//아래에서 위로 두줄
for( var i = 0; i < $('.downNupType02 > ul > li').length; i++ ){
var top = (Math.floor(i/2)+1)*64;
if( i%2 == 0 ){
$('.downNupType02 > ul > li').eq(i).css('right',0);
}else{
$('.downNupType02 > ul > li').eq(i).css('right',64);
}
$('.downNupType02 > ul > li').eq(i).css('top',-top);
$('.downNupType02 > .category > li').css('top',-340);
}
}else{
//레이아웃 속성관리
for( var i = 0; i < $('.li-pos > ul > li').length; i++ ){
var top = (Math.floor(i/2)+1)*64;
if( i%2 == 0 ){
$('.li-pos > ul > li').eq(i).css('right',0);
}else{
$('.li-pos > ul > li').eq(i).css('right',64);
}
$('.li-pos > ul > li').eq(i).css('top',top);
}
}
}
}
$(".engNumOnly").css('imeMode', 'disabled');
$(".numOnly").css('imeMode', 'disabled');
$(".engOnly").css('imeMode', 'disabled');
/* 1024이하 */
var currentWidth = $(window).width();
$(window).on('resize.bookmark', function(){
var resizeWidth = $(window).width();
if( currentWidth !== resizeWidth ){
$('.bookmark-list-pc ul li').removeAttr('style');
$('.overlay').removeClass('open');
$('.editor-full-btn').css('display','none');
$('.bookmark-list-pc button').removeClass('on');
$('.bookmark-list-pc > ul').removeClass('open');
$('.bookmark-list-pc > ul').removeClass('open');
$('.bookmark-list-pc .line01').css('opacity','0');
if( resizeWidth >= 1024 ){
$('.editor-full-btn').css('display','block');
}
}
currentWidth = resizeWidth;
});
var colummIdxSaveData = {};
var moreBtnIdx = 0;
$('.more-table-item').off('click').on('click', function( ev ){
moreBtnIdx = $('body .more-table-item').index( this );
if( typeof colummIdxSaveData[moreBtnIdx] !== 'object' ){
colummIdxSaveData[moreBtnIdx] = {};
}
if( $('.colummListBox').length ){
$('.colummListBox').remove();
}
ev.stopPropagation();
var selector = '';
if( $(window).width() <= 1024 && $(window).width() > 640 ){
selector = 'thead .item-tablet-hidden';
}
else if( $(window).width() <= 640 ){
selector = 'thead .item-mobile-hidden, thead .item-tablet-hidden';
}
var $this = $(this),
// 테이블 전체 박스
tableLayout = $this.parents('.more-btn-box').siblings('.table-layout').length ? $this.parents('.more-btn-box').siblings('.table-layout') : $this.parents('.more-btn-box').siblings('.form-wrap').find('.table-layout'),
// 테이블
table = tableLayout.find('table'),
// 저장용
saveData = [],
// 히든 되는 요소 인덱스 저장용
colummIdx = [],
// thead > th
theadTh = table.find( selector ),
// tbody > tr
tbodyTr = table.find('tbody tr'),
// 동적생성될 전체 박스
colummListBox = $('',{'class' : 'colummListBox'}).click(function( ev ){
ev.stopPropagation();
});
// 제목,인덱스 저장
theadTh.each(function( index, elem ){
elem = $(elem);
saveData.push({ title : elem.contents().get(0).nodeValue, colummIdx : elem.index() });
});
if( !tableLayout.find('.colummListBox').length ){
colummListBox.append(
$('
').append(function(){
var fragment = $(document.createDocumentFragment());
for( var i = 0; i < saveData.length; i++ ){
fragment.append(
$('')
.append(function(){
var flag = colummIdxSaveData[moreBtnIdx][saveData[i].colummIdx];
console.log(colummIdxSaveData, moreBtnIdx, saveData[i].colummIdx)
return $('',{
'type' : 'checkbox',
'id' : 'colummIdx-' + saveData[i].colummIdx,
'class' : flag ? 'checkbox width-none checked' : 'checkbox width-none'
}).prop('checked', flag);
})
.append(
$('',{
'for' : 'colummIdx-' + saveData[i].colummIdx,
'text' : saveData[i].title
})
)
);
}
return fragment;
})
);
$this.parent().append( colummListBox );
}
else {
$this.parent().find('.colummListBox').remove();
}
});
$(document).on('change', '.colummListBox input[type="checkbox"]', function(){
if( typeof colummIdxSaveData[moreBtnIdx] !== 'object' ){
colummIdxSaveData[moreBtnIdx] = {};
}
var $this = $(this),
// 해당 컬럼 인덱스
colummIdx = $this.attr('id').split('-')[1];
// 테이블 전체 박스
tableLayout = $this.parents('.more-btn-box').siblings('.table-layout').length ? $this.parents('.more-btn-box').siblings('.table-layout') : $this.parents('.more-btn-box').siblings('.form-wrap').find('.table-layout'),
// 테이블
table = tableLayout.find('table'),
isShowHide = '',
flag = !!colummIdxSaveData[moreBtnIdx][colummIdx];
if( flag ){
isShowHide = 'hide';
// 체크된 데이타 제거
delete colummIdxSaveData[moreBtnIdx][colummIdx];
var size = 0;
for (var key in colummIdxSaveData[moreBtnIdx]) {
if (colummIdxSaveData[moreBtnIdx].hasOwnProperty( key )) {
size++;
}
}
if( !size ){
tableLayout.removeClass('table-fixed');
table.find('th,td,col').removeAttr('style');
table.prepend( $this.parents('.more-btn-box').data('colgroup') );
$this.parents('.more-btn-box').data('colgroup', false);
}
}
else {
tableLayout.addClass('table-fixed');
table.find('th').each(function( i ){
var col = table.find('colgroup').length ? table.find('col').eq( i ) : $this.parents('.more-btn-box').data('colgroup').find('col').eq( i ) ;
var outerW = $(this).outerWidth();
if( !col.hasClass('checkbox') && !col.hasClass('title') ){
if( !$(this).attr('style') ){
outerW += outerW;
}
}
$(this).outerWidth( outerW );
});
if( !$this.parents('.more-btn-box').data('colgroup') ){
$this.parents('.more-btn-box').data('colgroup', table.find('colgroup').detach() );
}
isShowHide = 'show';
// 체크된 데이타 저장
colummIdxSaveData[moreBtnIdx][colummIdx] = $this.prop('checked');
$(window).off('resize.tableFixed').on('resize.tableFixed', function(){
if( $(window).width() >= 1024 ){
tableLayout.removeClass('table-fixed');
table.find('th,td,col').removeAttr('style');
if( $this.parents('.more-btn-box').data('colgroup') ){
table.prepend( $this.parents('.more-btn-box').data('colgroup') );
$this.parents('.more-btn-box').data('colgroup', false);
}
$('.colummListBox').hide();
colummIdxSaveData[moreBtnIdx] = {};
}
});
}
// show and hide
table.find('col').eq( colummIdx )[isShowHide]();
table.find('thead th').eq( colummIdx )[isShowHide]();
table.find('tbody tr').each(function( index, elem ){
elem = $(elem);
elem.find('td').eq( colummIdx )[isShowHide]();
});
$(window).trigger('resize.colspan');
});
$(document).on('click', function(){
$('.colummListBox').hide();
});
//colspan 조절
$(window).on('resize.colspan',function(){
$(".table-layout, .data-table").each(function(){
var colspanLen = $(this).find('th:visible').length;
$(this).find('.no-data-colspan').attr('colspan', colspanLen );
});
}).resize();
$('.item-box input[type="file"]').on('change', function( e ){
if( $(this).attr('data-replacename') ){
return;
}
var label = $(this).next('label'),
labelVal = label.html();
if( !label.length ){
return;
}
var fileName = e.target.value.split( '\\' ).pop();
if( fileName )
label.text( fileName );
else
label.text( labelVal );
});
// input file [?] 버튼
$('.file-info').on('mouseenter', function(){
var parent = $(this).parent();
var position = parent.css('position');
parent
.css('position', /(absolute|fixed)/.test(position) ? position : 'relative')
.append(
$('')
.addClass('file-info-txt')
.text( $(this).text() )
)
;
$('.file-info-txt').css({
left : $(this)[0].offsetLeft - $('.file-info-txt').outerWidth() / 2 + 9,
top : -($('.file-info-txt').outerHeight() + 5)
});
}).on('mouseleave', function(){
var parent = $(this).parent();
parent.find('.file-info-txt').remove();
});
/* ******************************************************************************************************
old
****************************************************************************************************** */
/* ******************************************************************************************************
new
****************************************************************************************************** */
/**
* from https://davidwalsh.name/javascript-debounce-function
*/
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
function browserW(){
return $(window).width() + $.scrollbarWidth();
}
$.fn.noop = function(){
return this;
}
// http://stackoverflow.com/questions/2465158/is-it-possible-to-remove-inline-styles-with-jquery
$.fn.removeStyle=function(style){var search = new RegExp(style + '[^;]+;?', 'g');return this.each(function(){$(this).attr('style', function(i, style){if( !style ) return;return style.replace(search, '');});});};
var TableSet = function(){
var TableCount = 0;
/**
* col엘리먼트에 들어간 "t-hide", "m-hide"클래스를 같은 라인(?)에 있는 th,td에 동일하게 클래스를 넣어줌
*/
;(function(){
;(function setColspan( dataTable ){
dataTable = dataTable || $('.data-table table');
dataTable.each(function( index, elem ){
var noDataCol = $(elem).find('.no-data-colspan');
// continue
if( !noDataCol.length )
{
return true;
}
var colCount = $(elem).find('thead th:visible').length;
noDataCol
.attr('colspan', colCount)
;
})
}());
$('.data-table table')
.each(function(){
var dataTable = $(this),
points = {},
colClass = ['ds-hide', 'm-hide', 't-hide', 'al', 'ac', 'ar', 'nowrap', 'dot'],
isReturn = function(){
var flag = false;
$.each(colClass, function( i, val ){
if( dataTable.find('.'+val).length )
{
flag = true;
}
});
return flag
}
if( !isReturn() || dataTable.find('.no-data-colspan').length ){
return true;
}
// 반복문 도는 김에 columm-box생성 ㅋ.
if( (dataTable.find('col.m-hide').length || dataTable.find('col.t-hide').length) && !dataTable.prev().hasClass('.columm-box') )
{
dataTable
.parent()
.before([
'