<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우 별도의 확인 절차 없이 바로 선택삭제 처리됩니다.</p>
</noscript>
<?php } ?>
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
var f = document.fboardlist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == 'chk_wr_id[]') f.elements[i].checked = sw;
}
}
function fboardlist_submit(f) {
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == 'chk_wr_id[]' && f.elements[i].checked) chk_count++;
}
if (!chk_count) {
alert(document.pressed + '할 게시물을 하나 이상 선택하세요.');
return false;
}
if (document.pressed == '선택복사') { select_copy('copy'); return false; }
if (document.pressed == '선택이동') { select_copy('move'); return false; }
if (document.pressed == '선택삭제') {
if (!confirm('선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다.')) return false;
f.removeAttribute('target');
f.action = g5_bbs_url + '/board_list_update.php';
}
return true;
}
function select_copy(sw) {
var f = document.fboardlist;
window.open('', 'move', 'left=50, top=50, width=500, height=550, scrollbars=1');
f.sw.value = sw;
f.target = 'move';
f.action = g5_bbs_url + '/move.php';
f.submit();
}
</script>
<?php } ?>
<script>
(function(){
function toUrl(base, key, value) {
if (!base) return '';
return base + '&' + key + '=' + encodeURIComponent(value || '');
}
$(function(){
$('#filter_ca2').on('change', function(){ location.href = toUrl($(this).data('base'), 's_ca2', $(this).val()); });
$('#filter_ca3').on('change', function(){ location.href = toUrl($(this).data('base'), 's_ca3', $(this).val()); });
$('#filter_ca4').on('change', function(){ location.href = toUrl($(this).data('base'), 's_ca4', $(this).val()); });
$('[data-href]').on('click', function(){
var href = $(this).attr('data-href');
if (href) location.href = href;
});
$('.backup-card').on('click', function(e){
if ($(e.target).closest('a,button,input,select,label').length) return;
var href = $(this).attr('data-href');
if (href) location.href = href;
});
$('#openNoticeBtn').on('click', function(){ $('#NoticeLayer').fadeIn(120); });
$('#closeNoticeBtn').on('click', function(){ $('#NoticeLayer').fadeOut(120); });
$('#NoticeLayer').on('click', function(e){ if (e.target === this) $(this).fadeOut(120); });
$('#openNoticeWriteBtn').on('click', function(){
var url = $(this).data('url');
if (!url) return;
var w = 980, h = 860;
var left = Math.max(0, (screen.availWidth - w) / 2);
var top = Math.max(0, (screen.availHeight - h) / 2);
window.open(url, 'notice_write_win', 'width='+w+',height='+h+',left='+left+',top='+top+',scrollbars=yes,resizable=yes');
});
$('#openSearchBtn').on('click', function(){ $('#SCH').css('display','flex').hide().fadeIn(120); });
$('#closeSearchBtn').on('click', function(){ $('#SCH').fadeOut(120); });
$('#SCH').on('click', function(e){ if (e.target === this) $(this).fadeOut(120); });
var liveTimer;
$('#live_search').on('input', function(){
clearTimeout(liveTimer);
var keyword = ($(this).val() || '').toLowerCase().trim();
liveTimer = setTimeout(function(){
var visibleCount = 0;
$('#board-list-body .backup-card').each(function(){
var subject = ($(this).data('subject') || '').toString().toLowerCase();
var show = keyword === '' || subject.indexOf(keyword) > -1;
$(this).toggle(show);
if (show) visibleCount++;
});
$('#board-list-body .live-empty-card').remove();
if (visibleCount === 0) {
$('#board-list-body').append('<div class="no-signal live-empty-card">실시간 검색 결과가 없습니다.</div>');
}
}, 120);
});
var panelStateKey = 'backupMemoPanelOpen';
var panelLayoutKey = 'backupMemoPanelLayout';
var $memoPanel = $('#memo_side_panel');
var $memoToggleBtn = $('#memoPanelToggleBtn');
var $memoCardList = $('#memoCardList');
var $memoLayoutToggle = $('#memoLayoutToggle');
function setMemoPanelState(isOpen) {
$memoPanel.toggleClass('open', isOpen).attr('aria-hidden', isOpen ? 'false' : 'true');
$memoToggleBtn.toggleClass('active', isOpen);
try { localStorage.setItem(panelStateKey, isOpen ? '1' : '0'); } catch(e) {}
}
function setMemoLayout(layout) {
if (!$memoCardList.length) return;
var nextLayout = (layout === '2') ? '2' : '1';
$memoCardList.removeClass('layout-1 layout-2').addClass('layout-' + nextLayout);
$memoLayoutToggle.toggleClass('is-layout-2', nextLayout === '2').attr('aria-pressed', nextLayout === '2' ? 'true' : 'false');
try { localStorage.setItem(panelLayoutKey, nextLayout); } catch(e) {}
}
if ($memoPanel.length) {
var savedOpen = false;
var savedLayout = '1';
try { savedOpen = localStorage.getItem(panelStateKey) === '1'; } catch(e) {}
try { savedLayout = localStorage.getItem(panelLayoutKey) || '1'; } catch(e) {}
setMemoPanelState(savedOpen);
setMemoLayout(savedLayout);
$memoToggleBtn.on('click', function(){ setMemoPanelState(!$memoPanel.hasClass('open')); });
$('#memoPanelCloseBtn').on('click', function(){ setMemoPanelState(false); });
$memoLayoutToggle.on('click', function(){ setMemoLayout($memoCardList.hasClass('layout-2') ? '1' : '2'); });
}
});
})();
</script>