Files
dnssash/theme/rd.dnssash/js/custom.js
T
2026-06-11 18:47:38 +09:00

526 lines
17 KiB
JavaScript

var charset = 'UTF-8';
var domain = document.domain;
var is_http = /\s(?:http|https):\/\/\S*(?:\s|$)/g;
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'':(v='hide')?'none':v; }
obj.display=v; }
}
function showhide() { //v3.0
var i,p,v,obj,args=showhide.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v; }
}
// TAB -------------------------------------------------------------------*/
function Chtab(layername,xid,len){
try{
for(i=1;i <= len; i++){
if (i==xid) document.getElementById(layername+i).style.display="block";
else document.getElementById(layername+i).style.display="none";
}
} catch (e) {}
}
function Ch_Class(layername,xid,len,class_name){
try{
for(i=1;i <= len; i++){
if (i==xid) document.getElementById(layername+i).className=class_name;
else document.getElementById(layername+i).className="";
}
} catch (e) {}
}
// 포커싱 -------------------------------------------------------------------*/
function bluring(){
if(event.srcElement.tagName=="A"||event.srcElement.tagName=="IMG") document.body.focus();
}
document.onfocusin=bluring;
// 인풋 비활성화 배경 -------------------------------------------------------------------*/
isDisabled = function (){
for (var i=0; i<this.length; i++){
if(this.item(i).disabled) this.item(i).style.backgroundColor="#e5e5e5";
}
}
window.onload = function (){
var input = document.getElementsByTagName("INPUT");
//isDisabled.apply(input);
}
// 플래시 출력 -------------------------------------------------------------------*/
function get_embed(src,query,width,height,vars)
{
src += '?' + query;
var codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0";
var pluginspage = "http://www.macromedia.com/go/getflashplayer";
if (document.location.protocol == "https:") {
codebase = codebase.replace(/http:/, "https:");
pluginspage = pluginspage.replace(/http:/, "https:");
}
var widthAttr = (width > 0 ? 'width="'+width+'"' : '');
var heightAttr = (height > 0 ? 'height="'+height+'"' : '');
var tag = '';
tag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+codebase+'" '+widthAttr+' '+heightAttr+'>';
tag += '<param name="movie" value="'+src+'"/>';
tag += '<param name="quality" value="high"/>';
tag += '<param name="wmode" value="transparent"/>';
tag += '<param name="bgcolor" value="#FFFFFF"/>';
tag += '<param name="flashvars" value="' + vars + '"/>';
tag += '<embed src="'+src+'" quality="high" wmode="transparent" bgcolor="#FFFFFF" '+widthAttr+' '+heightAttr+' type="application/x-shockwave-flash" pluginspage="'+pluginspage+'" flashvars="' + vars + '"></embed>';
tag += '</object>';
return tag;
}
function embed(src,query,width,height,vars)
{
var tag = get_embed(src,query,width,height,vars);
document.write(tag);
}
// 플래시 활성화 -------------------------------------------------------------------*/
function insertFlash( id, flashUri, vWidth, vHeight, winMode ) {
var _obj_ = "";
_obj_ = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8.0.35.0" width="' + vWidth + '" height="' + vHeight + '" id="' + id + '" align="middle">';
_obj_ += '<param name="allowScriptAccess" value="always" />';
_obj_ += '<param name="movie" value="' + flashUri + '" />';
_obj_ += '<param name="quality" value="high" />';
_obj_ += '<param name="wmode" value="' + winMode + '" /> ';
_obj_ += '<param name="bgcolor" value="#ffffff" /> ';
_obj_ += '<param name="scale" value="exactfit" /> ';
_obj_ += '<embed src="' + flashUri + '" quality="high" wmode="' + winMode + '" bgcolor="#ffffff" width="' + vWidth +'" height="' + vHeight + '" id="' + id + '" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></embed> ';
_obj_ += '</object>';
document.writeln( _obj_ );
}
var addslashes = function(str) {
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\0/g,'\\0');
return str;
}
var stripslashes = function (str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\0/g,'\0');
str=str.replace(/\\\\/g,'\\');
return str;
}
var nl2br = function(str, is_xhtml) {
var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br ' + '/>' : '<br>'; // Adjust comment to avoid issue on phpjs.org display
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}
function length_count(num,filed, max_count) {
var str;
var str_count = 0;
var cut_count = 0;
var max_length = max_count;
var str_length = filed.value.length;
//alert( str_length+"@"+max_length );
for (k=0;k<str_length;k++) {
str = filed.value.charAt(k);
if (escape(str).length > 4) {
str_count += 2;
max_length -= 2;
} else {
// (\r\n은 1byte 처리)
if (escape(str) == '%0A') {
} else {
str_count++;
max_length--;
}
}
if (max_count < str_count) {
alert("글자수가 "+ max_count +" byte 이상은 사용불가능 합니다");
if (escape(str).length > 4) {
str_count -= 2;
max_length += 2;
} else {
str_count--;
max_length++;
}
filed.value = filed.value.substring(0,k);
break;
}
}
max_length=max_count-max_length;
eval("this.span_byte"+num+".innerText = max_length;");
}
//텍스트에어리어 비우기
function OnEnter( field ) { if( field.value == field.defaultValue ) { field.value = ""; } }
var selAll = function(){ // 전체선택
$('.check_all').each(function(){
var sel = $(this).attr('checked');
if(sel=='checked') {
$('.check_all').attr('checked',false);
$("input[name='check_all']").attr('checked',false);
return false;
} else {
$('.check_all').attr('checked',true);
$("input[name='check_all']").attr('checked',true);
return false;
}
});
}
// 이달 마지막날짜
var LastDayOfMonth = function(Year, Month) {
return(new Date((new Date(Year, Month+1,1))-1)).getDate();
}
// 기본 팝업창
var win_open = function(a, b, c, k) {
c = window.open(a, b, "width=" + c + ", height=" + k + ", scrollbars=no, resizable=no, status=no,top=" + (screen.height - 550) / 2 + ",left=" + (screen.width - 640) / 2);
c.focus()
}
// input field 한글/숫자/영문 (onkeyup event)
var field_types = function( sel, type ){
switch(type){
case 'english':
sel.value = sel.value.replace(/^a-zA-z]/g,'');
break;
case 'hangle':
sel.value = sel.value.replace(/[^ㄱ-ㅎ가-횧]/g,'');
break;
case 'number':
sel.value = sel.value.replace(/[^0-9]/g,'');
break;
}
}
var file_download = function(link, file) { // 파일 다운로드
document.location.href = link;
}
var isValidBlank = function(value) {
var pattern = /[\s]/g; ///^\s+|\s+$/g;(/\s/g
return (pattern.test(value)) ? true : false;
}
var CountChar = function( message, limit ){ // 문자 bytes 계산 msg_bytes id 값만 잘 체크하면 됨
var nbytes = 0;
var availMsg = "";
var chk=0;
for (var i=0; i <message.value.length; i++){
ch = message.value.charAt(i);
if(escape(ch).length > 4) {
nbytes += 2;
} else if (ch == '\n') {
if (message.value.charAt(i-1) != '\r') {
nbytes += 1;
}
} else {
nbytes += 1;
}
if (limit*1 >= nbytes*1) {
availMsg += message.value.charAt(i);
}
$('#msg_bytes').html(nbytes*1);
}
if (nbytes*1 > limit*1) { // 바이트를 초과했을경우
alert("[" + availMsg + "] 까지 발송됩니다.");
//message.value = availMsg;
$('#msg_bytes').html(limit*1);
//message.focus();
return;
}
}
var CountCharText = function( message, limit, msg_bytes ){ // text 필드 검사
var nbytes = 0;
var availMsg = "";
var chk=0;
for (var i=0; i <message.value.length; i++){
ch = message.value.charAt(i);
if(escape(ch).length > 4) {
nbytes += 1;
} else if (ch == '\n') {
if (message.value.charAt(i-1) != '\r') {
nbytes += 1;
}
} else {
nbytes += 1;
}
if (limit*1 >= nbytes*1) {
availMsg += message.value.charAt(i);
}
$('#'+msg_bytes).html(nbytes*1);
}
if (nbytes*1 > limit*1) { // 바이트를 초과했을경우
//alert("[" + availMsg + "] 까지 입력 가능합니다.");
$('#'+msg_bytes).html(limit*1);
return;
}
}
jQuery.fn.center = function () { // 가운데 정렬
this.css("position","absolute");
//this.css("top", ((jQuery(window).height() - this.outerHeight()) / 2) + jQuery(window).scrollTop() + "px");
this.css("left", ((jQuery(window).width() - this.outerWidth()) / 2) + jQuery(window).scrollLeft() + "px");
return this;
}
$(function(){
// 숫자만 입력 받기
$('.tnum').keypress(function(event){
//alert(event.which);
if (event.which && (event.which > 47 && event.which < 58 || event.which == 8)) {
} else {
event.preventDefault();
}
});
// 핸드폰 번호만 입력 받기 ('-' 허용)
$('.phone').keypress(function(event){
//alert(event.which);
if (event.which && (event.which > 47 && event.which < 58 || event.which == 8 || event.which == 45)) {
} else {
event.preventDefault();
}
});
// 기본 리스트 전체 체크 ( Check Box )
$("input[name='check_all']").click(function(){
var sel = $(this).attr('checked');
if(sel=='checked') $('.check_all').attr('checked',true);
else $('.check_all').attr('checked',false);
});
$('#start_day').datepicker({dateFormat: 'yy-mm-dd'});
$('#end_day').datepicker({dateFormat: 'yy-mm-dd'});
/* 날짜 선택에 따른 Value Sets */
$('.set_day').click(function(){
var sel_date = $(this).attr('date');
var todate = new Date();
switch(sel_date){
case 'all': $('#start_day, #end_day').val(''); break;
case 'today': $('#start_day, #end_day').datepicker('setDate', 'd'); break;
case 'week': // 이번주
startDate = new Date(todate.getFullYear(), todate.getMonth(), todate.getDate() - todate.getDay());
endDate = new Date(todate.getFullYear(), todate.getMonth(), todate.getDate() - todate.getDay() + 6);
$('#start_day').datepicker('setDate', startDate);
$('#end_day').datepicker('setDate', endDate);
break;
case 'month': // 이번달
startDate = new Date(todate.getFullYear(), todate.getMonth());
endDate = new Date(todate.getFullYear(), todate.getMonth(), LastDayOfMonth(todate.getFullYear(), todate.getMonth()));
$('#start_day').datepicker('setDate', startDate);
$('#end_day').datepicker('setDate', endDate);
break;
case 'yesterday':
$('#start_day').datepicker('setDate', '-1d');
$('#end_day').datepicker('setDate', '-1d');
break;
case '3day':
$('#start_day').datepicker('setDate', '-3d');
$('#end_day').datepicker('setDate', 'd');
break;
case '7day':
$('#start_day').datepicker('setDate', '-7d');
$('#end_day').datepicker('setDate', 'd');
break;
case '15day':
$('#start_day').datepicker('setDate', '-15d');
$('#end_day').datepicker('setDate', 'd');
break;
case '30day':
$('#start_day').datepicker('setDate', '-30d');
$('#end_day').datepicker('setDate', 'd');
break;
case '60day':
$('#start_day').datepicker('setDate', '-60d');
$('#end_day').datepicker('setDate', 'd');
break;
case '90day':
$('#start_day').datepicker('setDate', '-90d');
$('#end_day').datepicker('setDate', 'd');
break;
case '120day':
$('#start_day').datepicker('setDate', '-120d');
$('#end_day').datepicker('setDate', 'd');
break;
}
});
});
$(function(){
$('#login_passwd').keydown(function(event){
if(event.keyCode==13){ // 엔터키 이벤트
member_login();
}
});
});
var member_login = function(){ // 회원 로그인
$('#MemberLoginFrm').submit();
}
var member_logout = function( mb_id ){ // 회원 로그 아웃
if(confirm('로그아웃 하시겠습니까?')){
$.post("/include/regist.php", { mode:'logout_process'}, function(result){
result = $.parseJSON(result);
if(result.msg) alert(result.msg);
if(result.move) location.href = result.move;
});
}
}
var is_members = function( url ){
if( confirm('회원만 접근 가능합니다.\n\n로그인 하시겠습니까?') ){
location.href = "/member/login.php?url=" + url;
return false;
}
}
var bookmarks = function(){ // 즐겨찾기
// $('#favorite').on('click', function(e) {
var bookmarkURL = window.location.href;
var bookmarkTitle = document.title;
var triggerDefault = false;
if (window.sidebar && window.sidebar.addPanel) {
// Firefox version < 23
window.sidebar.addPanel(bookmarkTitle, bookmarkURL, '');
} else if ((window.sidebar && (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)) || (window.opera && window.print)) {
// Firefox version >= 23 and Opera Hotlist
var $this = $(this);
$this.attr('href', bookmarkURL);
$this.attr('title', bookmarkTitle);
$this.attr('rel', 'sidebar');
$this.off(e);
triggerDefault = true;
} else if (window.external && ('AddFavorite' in window.external)) {
// IE Favorite
window.external.AddFavorite(bookmarkURL, bookmarkTitle);
} else {
// WebKit - Safari/Chrome
alert((navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Cmd' : 'Ctrl') + '+D 키를 눌러 즐겨찾기에 등록하실 수 있습니다.');
}
return triggerDefault;
// });
}
function trim(str){
//정규 표현식을 사용하여 화이트스페이스를 빈문자로 전환
str = str.replace(/^\s*/,'').replace(/\s*$/, '');
return str; //변환한 스트링을 리턴.
}
// 쿠키 입력
function set_cookies(name, value, expirehours, domain) {
var today = new Date();
today.setTime(today.getTime() + (60*60*1000*expirehours));
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + today.toGMTString() + ";";
if (domain) {
document.cookie += "domain=" + domain + ";";
}
}
// 쿠키 얻음
function get_cookies(name) {
var find_sw = false;
var start, end;
var i = 0;
for (i=0; i<= document.cookie.length; i++){
start = i;
end = start + name.length;
if(document.cookie.substring(start, end) == name) {
find_sw = true
break
}
}
if (find_sw == true) {
start = end + 1;
end = document.cookie.indexOf(";", start);
if(end < start)
end = document.cookie.length;
return document.cookie.substring(start, end);
}
return "";
}
// 쿠키 지움
function delete_cookies(name) {
var today = new Date();
today.setTime(today.getTime() - 1);
var value = get_cookie(name);
if(value != "")
document.cookie = name + "=" + value + "; path=/; expires=" + today.toGMTString();
}
var font_size = 14;
var font_array = {12:14, 13:16, 14:18, 15:20};
var last_font;
var getFontSize = function () {
var fontSize = parseInt(get_cookies("ck_fontsize")); // 폰트크기 조절
if (isNaN(fontSize)) { fontSize = 14; }
return fontSize;
}
var scroll_up = function(){// 페이지 상단으로 이동
$('html, body').animate({scrollTop:0}, 800);
}
var leadingZeros = function (n, digits) {
var zero = '';
n = n.toString();
if (n.length < digits) {
for (i = 0; i < digits - n.length; i++)
zero += '0';
}
return zero + n;
}
// 삭제 검사 확인
function del(href){
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
var iev = -1;
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
iev = parseFloat(RegExp.$1);
}
// IE6 이하에서 한글깨짐 방지
if (iev != -1 && iev < 7) {
document.location.href = encodeURI(href);
} else {
document.location.href = href;
}
}
}
document.addEventListener('DOMContentLoaded', function() {
const topButton = document.getElementById('topBtn');
if (topButton) {
topButton.addEventListener('click', function() {
window.scrollTo({
top: 0,
behavior: 'smooth' // 부드러운 스크롤 효과
});
});
}
});