// 전역 변수 var errmsg = ""; var errfld = null; // 필드 검사 function check_field(fld, msg) { if ((fld.value = trim(fld.value)) == "") error_field(fld, msg); else clear_field(fld); return; } // 필드 오류 표시 function error_field(fld, msg) { if (msg != "") errmsg += msg + "\n"; if (!errfld) errfld = fld; fld.style.background = "#BDDEF7"; } // 필드를 깨끗하게 function clear_field(fld) { fld.style.background = "#FFFFFF"; } function trim(s) { var t = ""; var from_pos = to_pos = 0; for (i = 0; i < s.length; i++) { if (s.charAt(i) == ' ') continue; else { from_pos = i; break; } } for (i = s.length; i >= 0; i--) { if (s.charAt(i - 1) == ' ') continue; else { to_pos = i; break; } } t = s.substring(from_pos, to_pos); // alert(from_pos + ',' + to_pos + ',' + t+'.'); return t; } // 자바스크립트로 PHP의 number_format 흉내를 냄 // 숫자에 , 를 출력 function number_format(data) { var tmp = ''; var number = ''; var cutlen = 3; var comma = ','; var i; var sign = data.match(/^[\+\-]/); if (sign) { data = data.replace(/^[\+\-]/, ""); } len = data.length; mod = (len % cutlen); k = cutlen - mod; for (i = 0; i < data.length; i++) { number = number + data.charAt(i); if (i < data.length - 1) { k++; if ((k % cutlen) == 0) { number = number + comma; k = 0; } } } if (sign != null) number = sign + number; return number; } // 새 창 function popup_window(url, winname, opt) { window.open(url, winname, opt); } // 폼메일 창 function popup_formmail(url) { opt = 'scrollbars=yes,width=417,height=385,top=10,left=20'; popup_window(url, "wformmail", opt); } // , 를 없앤다. function no_comma(data) { var tmp = ''; var comma = ','; var i; for (i = 0; i < data.length; i++) { if (data.charAt(i) != comma) tmp += data.charAt(i); } return tmp; } // 삭제 검사 확인 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; } } } // 쿠키 입력 function set_cookie(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_cookie(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 unescape(document.cookie.substring(start, end)); } return ""; } // 쿠키 지움 function delete_cookie(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 last_id = null; function menu(id) { if (id != last_id) { if (last_id != null) document.getElementById(last_id).style.display = "none"; document.getElementById(id).style.display = "block"; last_id = id; } else { document.getElementById(id).style.display = "none"; last_id = null; } } function textarea_decrease(id, row) { if (document.getElementById(id).rows - row > 0) document.getElementById(id).rows -= row; } function textarea_original(id, row) { document.getElementById(id).rows = row; } function textarea_increase(id, row) { document.getElementById(id).rows += row; } // 글숫자 검사 function check_byte(content, target) { var i = 0; var cnt = 0; var ch = ''; var cont = document.getElementById(content).value; for (i = 0; i < cont.length; i++) { ch = cont.charAt(i); if (escape(ch).length > 4) { cnt += 2; } else { cnt += 1; } } // 숫자를 출력 document.getElementById(target).innerHTML = cnt; return cnt; } // 브라우저에서 오브젝트의 왼쪽 좌표 function get_left_pos(obj) { var parentObj = null; var clientObj = obj; //var left = obj.offsetLeft + document.body.clientLeft; var left = obj.offsetLeft; while ((parentObj = clientObj.offsetParent) != null) { left = left + parentObj.offsetLeft; clientObj = parentObj; } return left; } // 브라우저에서 오브젝트의 상단 좌표 function get_top_pos(obj) { var parentObj = null; var clientObj = obj; //var top = obj.offsetTop + document.body.clientTop; var top = obj.offsetTop; while ((parentObj = clientObj.offsetParent) != null) { top = top + parentObj.offsetTop; clientObj = parentObj; } return top; } function flash_movie(src, ids, width, height, wmode) { var wh = ""; if (parseInt(width) && parseInt(height)) wh = " width='" + width + "' height='" + height + "' "; return ""; } function obj_movie(src, ids, width, height, autostart) { var wh = ""; if (parseInt(width) && parseInt(height)) wh = " width='" + width + "' height='" + height + "' "; if (!autostart) autostart = false; return ""; } function doc_write(cont) { document.write(cont); } var win_password_lost = function (href) { window.open(href, "win_password_lost", "left=50, top=50, width=617, height=330, scrollbars=1"); } $(document).ready(function () { $("#login_password_lost, #ol_password_lost").click(function () { win_password_lost(this.href); return false; }); }); /** * 포인트 창 **/ var win_point = function (href) { var new_win = window.open(href, 'win_point', 'left=100,top=100,width=600, height=600, scrollbars=1'); new_win.focus(); } /** * 쪽지 창 **/ var win_memo = function (href) { var new_win = window.open(href, 'win_memo', 'left=100,top=100,width=620,height=500,scrollbars=1'); new_win.focus(); } /** * 메일 창 **/ var win_email = function (href) { var new_win = window.open(href, 'win_email', 'left=100,top=100,width=600,height=580,scrollbars=0'); new_win.focus(); } /** * 자기소개 창 **/ var win_profile = function (href) { var new_win = window.open(href, 'win_profile', 'left=100,top=100,width=620,height=510,scrollbars=1'); new_win.focus(); } /** * 스크랩 창 **/ var win_scrap = function (href) { var new_win = window.open(href, 'win_scrap', 'left=100,top=100,width=600,height=600,scrollbars=1'); new_win.focus(); } /** * 홈페이지 창 **/ var win_homepage = function (href) { var new_win = window.open(href, 'win_homepage', ''); new_win.focus(); } /** * 우편번호 창 **/ var win_zip = function (frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_jibeon) { if (typeof daum === 'undefined') { alert("다음 우편번호 postcode.v2.js 파일이 로드되지 않았습니다."); return false; } var zip_case = 1; //0이면 레이어, 1이면 페이지에 끼워 넣기, 2이면 새창 var complete_fn = function (data) { // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. // 각 주소의 노출 규칙에 따라 주소를 조합한다. // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다. var fullAddr = ''; // 최종 주소 변수 var extraAddr = ''; // 조합형 주소 변수 // 사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다. if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우 fullAddr = data.roadAddress; } else { // 사용자가 지번 주소를 선택했을 경우(J) fullAddr = data.jibunAddress; } // 사용자가 선택한 주소가 도로명 타입일때 조합한다. if (data.userSelectedType === 'R') { //법정동명이 있을 경우 추가한다. if (data.bname !== '') { extraAddr += data.bname; } // 건물명이 있을 경우 추가한다. if (data.buildingName !== '') { extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName); } // 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다. extraAddr = (extraAddr !== '' ? ' (' + extraAddr + ')' : ''); } // 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다. var of = document[frm_name]; of[frm_zip].value = data.zonecode; of[frm_addr1].value = fullAddr; of[frm_addr3].value = extraAddr; if (of[frm_jibeon] !== undefined) { of[frm_jibeon].value = data.userSelectedType; } of[frm_addr2].focus(); }; switch (zip_case) { case 1: //iframe을 이용하여 페이지에 끼워 넣기 var daum_pape_id = 'daum_juso_page' + frm_zip, element_wrap = document.getElementById(daum_pape_id), currentScroll = Math.max(document.body.scrollTop, document.documentElement.scrollTop); if (element_wrap == null) { element_wrap = document.createElement("div"); element_wrap.setAttribute("id", daum_pape_id); element_wrap.style.cssText = 'display:none;border:1px solid;left:0;width:100%;height:300px;margin:5px 0;position:relative;-webkit-overflow-scrolling:touch;'; element_wrap.innerHTML = '접기 버튼'; jQuery('form[name="' + frm_name + '"]').find('input[name="' + frm_addr1 + '"]').before(element_wrap); jQuery("#" + daum_pape_id).off("click", ".close_daum_juso").on("click", ".close_daum_juso", function (e) { e.preventDefault(); jQuery(this).parent().hide(); }); } new daum.Postcode({ oncomplete: function (data) { complete_fn(data); // iframe을 넣은 element를 안보이게 한다. element_wrap.style.display = 'none'; // 우편번호 찾기 화면이 보이기 이전으로 scroll 위치를 되돌린다. document.body.scrollTop = currentScroll; }, // 우편번호 찾기 화면 크기가 조정되었을때 실행할 코드를 작성하는 부분. // iframe을 넣은 element의 높이값을 조정한다. onresize: function (size) { element_wrap.style.height = size.height + "px"; }, width: '100%', height: '100%' }).embed(element_wrap); // iframe을 넣은 element를 보이게 한다. element_wrap.style.display = 'block'; break; case 2: //새창으로 띄우기 new daum.Postcode({ oncomplete: function (data) { complete_fn(data); } }).open(); break; default: //iframe을 이용하여 레이어 띄우기 var rayer_id = 'daum_juso_rayer' + frm_zip, element_layer = document.getElementById(rayer_id); if (element_layer == null) { element_layer = document.createElement("div"); element_layer.setAttribute("id", rayer_id); element_layer.style.cssText = 'display:none;border:5px solid;position:fixed;width:300px;height:460px;left:50%;margin-left:-155px;top:50%;margin-top:-235px;overflow:hidden;-webkit-overflow-scrolling:touch;z-index:10000'; element_layer.innerHTML = '닫기 버튼'; document.body.appendChild(element_layer); jQuery("#" + rayer_id).off("click", ".close_daum_juso").on("click", ".close_daum_juso", function (e) { e.preventDefault(); jQuery(this).parent().hide(); }); } new daum.Postcode({ oncomplete: function (data) { complete_fn(data); // iframe을 넣은 element를 안보이게 한다. element_layer.style.display = 'none'; }, width: '100%', height: '100%' }).embed(element_layer); // iframe을 넣은 element를 보이게 한다. element_layer.style.display = 'block'; } } /** * 새로운 비밀번호 분실 창 : 101123 **/ win_password_lost = function (href) { var new_win = window.open(href, 'win_password_lost', 'width=617, height=330, scrollbars=1'); new_win.focus(); } /** * 설문조사 결과 **/ var win_poll = function (href) { var new_win = window.open(href, 'win_poll', 'width=616, height=500, scrollbars=1'); new_win.focus(); } /** * 스크린리더 미사용자를 위한 스크립트 - 지운아빠 2013-04-22 * alt 값만 갖는 그래픽 링크에 마우스오버 시 title 값 부여, 마우스아웃 시 title 값 제거 **/ $(function () { $('a img').mouseover(function () { $a_img_title = $(this).attr('alt'); $(this).attr('title', $a_img_title); }).mouseout(function () { $(this).attr('title', ''); }); }); /** * 텍스트 리사이즈 **/ function font_resize(id, rmv_class, add_class) { var $el = $("#" + id); $el.removeClass(rmv_class).addClass(add_class); set_cookie("ck_font_resize_rmv_class", rmv_class, 1, g5_cookie_domain); set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain); } /** * 댓글 수정 토큰 **/ function set_comment_token(f) { if (typeof f.token === "undefined") $(f).prepend(''); $.ajax({ url: g5_bbs_url + "/ajax.comment_token.php", type: "GET", dataType: "json", async: false, cache: false, success: function (data, textStatus) { f.token.value = data.token; } }); } $(function () { $(".win_point").click(function () { win_point(this.href); return false; }); $(".win_memo").click(function () { win_memo(this.href); return false; }); $(".win_email").click(function () { win_email(this.href); return false; }); $(".win_scrap").click(function () { win_scrap(this.href); return false; }); $(".win_profile").click(function () { win_profile(this.href); return false; }); $(".win_homepage").click(function () { win_homepage(this.href); return false; }); $(".win_password_lost").click(function () { win_password_lost(this.href); return false; }); /* $(".win_poll").click(function() { win_poll(this.href); return false; }); */ // 사이드뷰 var sv_hide = false; $(".sv_member, .sv_guest").click(function () { $(".sv").removeClass("sv_on"); $(this).closest(".sv_wrap").find(".sv").addClass("sv_on"); }); $(".sv, .sv_wrap").hover( function () { sv_hide = false; }, function () { sv_hide = true; } ); $(".sv_member, .sv_guest").focusin(function () { sv_hide = false; $(".sv").removeClass("sv_on"); $(this).closest(".sv_wrap").find(".sv").addClass("sv_on"); }); $(".sv a").focusin(function () { sv_hide = false; }); $(".sv a").focusout(function () { sv_hide = true; }); // 셀렉트 ul var sel_hide = false; $('.sel_btn').click(function () { $('.sel_ul').removeClass('sel_on'); $(this).siblings('.sel_ul').addClass('sel_on'); }); $(".sel_wrap").hover( function () { sel_hide = false; }, function () { sel_hide = true; } ); $('.sel_a').focusin(function () { sel_hide = false; }); $('.sel_a').focusout(function () { sel_hide = true; }); $(document).click(function () { if (sv_hide) { // 사이드뷰 해제 $(".sv").removeClass("sv_on"); } if (sel_hide) { // 셀렉트 ul 해제 $('.sel_ul').removeClass('sel_on'); } }); $(document).focusin(function () { if (sv_hide) { // 사이드뷰 해제 $(".sv").removeClass("sv_on"); } if (sel_hide) { // 셀렉트 ul 해제 $('.sel_ul').removeClass('sel_on'); } }); $(document).on("keyup change", "textarea#wr_content[maxlength]", function () { var str = $(this).val(); var mx = parseInt($(this).attr("maxlength")); if (str.length > mx) { $(this).val(str.substr(0, mx)); return false; } }); }); function get_write_token(bo_table) { var token = ""; $.ajax({ type: "POST", url: g5_bbs_url + "/write_token.php", data: { bo_table: bo_table }, cache: false, async: false, dataType: "json", success: function (data) { if (data.error) { alert(data.error); if (data.url) document.location.href = data.url; return false; } token = data.token; } }); return token; } $(function () { $(document).on("click", "form[name=fwrite] input:submit, form[name=fwrite] button:submit, form[name=fwrite] input:image", function () { var f = this.form; var bo_table = f.bo_table.value; var token = get_write_token(bo_table); if (!token) { alert("토큰 정보가 올바르지 않습니다."); return false; } var $f = $(f); if (typeof f.token === "undefined") $f.prepend(''); $f.find("input[name=token]").val(token); return true; }); }); function ajax_load(url, obj, list_id, rel_id, etc_value) { var keyword = obj.value; var obj_id = obj.getAttribute('id'); var list_obj = $('#' + list_id + ' .list'); if (typeof (etc_value) == 'undefined') { etc_value = ''; } $.ajax({ type: 'get' , async: true , url: url + "?keyword=" + keyword + "&input_obj=" + obj_id + "&output_obj=" + rel_id + "&list_obj=" + list_id + "&option=" + etc_value , beforeSend: function () { //list_obj.empty(); } , success: function (data) { var response = data.trim(); if (response) { list_obj.html(response); list_obj.focus(); } else { list_obj.empty(); } } , error: function (data, status, err) { } , complete: function () { } }); } function get_ajax_character(obj, list_id, rel_id, etc_value) { var url = g5_url + "/ajax/_search_character.php"; ajax_load(url, obj, list_id, rel_id, etc_value); } function get_ajax_title(obj, list_id, rel_id, etc_value) { var url = g5_url + "/ajax/_search_title.php"; ajax_load(url, obj, list_id, rel_id, etc_value); } function get_ajax_item(obj, list_id, rel_id, etc_value) { var url = g5_url + "/ajax/_search_item.php"; ajax_load(url, obj, list_id, rel_id, etc_value); } function get_ajax_member(obj, list_id, rel_id, etc_value) { var url = g5_url + "/ajax/_search_member.php"; ajax_load(url, obj, list_id, rel_id, etc_value); } function select_item(list_id, in_id, in_value, out_id, out_value) { document.getElementById(in_id).value = in_value; document.getElementById(out_id).value = out_value; $('#' + list_id + ' .list').empty(); return false; }