/** * 문자 공백 제거 * @author * @param * @return string */ String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/gi, ""); } /** * 문자 치환 * @author * @param string str1 : 치환될 문자 * @param string str2 : 치환할 문자 * @return string */ String.prototype.replace_all = function(str1, str2) { var temp_str = ""; if(this.trim() != "" && str1 != str2) { temp_str = this.trim(); while(temp_str.indexOf(str1) > -1) { temp_str = temp_str.replace(str1, str2); } } return temp_str; } /** * OBJECT ID * @author * @param string obj : 대상 OBJECT * @return string */ function object_id(obj) { return document.getElementById(obj); } /** * ID 보이기 * @author * @param string id : 대상 아이디 * @return */ function show_id(id) { document.getElementById(id).style.display='block'; } /** * ID 감추기 * @author * @param string id : 대상 아이디 * @return */ function hide_id(id) { document.getElementById(id).style.display='none'; } /** * 레이어 오픈 * @author * @param string obj : 대상 OBJECT * @param string mode : 레이어 오픈 방식(block, none) * @return */ function open_layer(obj, mode) { obj = object_id(obj); if(mode) { obj.style.display = mode; } else { obj.style.display = (obj.style.display != "none") ? "none" : "block"; } } /** * 더블클릭방지 * @author * @param * @return */ /* FORM ACTION 처리 후 뒤로가기 하면 버튼이 보이지 않는 현상으로 인해 주석 처리 function avoid_double_click() { if($('#avoid_double_click')) { $('#avoid_double_click').html("------- 데이터 처리중입니다. -------"); } } */ /** * 하이픈빼기 * @author * @param string str : 문자열 * @return */ function remove_hyphen(str) { var pattern = /-/gi; return str.replace(pattern, ""); } /** * FORM 유효성 검사 * @author * @param string form_name : FORM 이름 * @return bool */ function check_form(form_name) { var check_result = true; var $obj = $('form[name="' + form_name + '"] *').filter("input, select, textarea"); var obj_count = $obj.length; for(i = 0; i < obj_count; i++) { // 필수항목체크 if($obj.eq(i).hasClass('required')) { if($obj.eq(i).attr('type') == 'checkbox' || $obj.eq(i).attr('type') == 'radio') { if(!check_select($obj.eq(i))) { return false; } } else if($obj.eq(i).attr('type') == 'textarea') { if(!check_text($obj.eq(i))) { return false; } } else { if(!check_text($obj.eq(i))) { return false; } } } // 길이체크 if(!check_length($obj.eq(i))) return false; // 패턴체크 var class_name = $obj.eq(i).attr('className') != null ? $obj.eq(i).attr('className') : $obj.eq(i).attr('class'); if(class_name != null) { var option = class_name.split(' '); for(j=0;j 0) { check_result = true; } if($('input[name=' + field_name + ']:checkbox:checked').length > 0) { check_result = true; } if(!check_result) { msg = "[" + $obj.attr('title') + "] 필수선택사항입니다."; alert(msg); // $obj.val(""); // 2010.07.29 주석처리 (체크박스, 라디오박스 Value를 삭제함) $obj.focus(); return false; } return true; } /** * INPUT * @author * @param string $obj : 대상 OBJECT * @return bool */ function check_text($obj) { text = $obj.val(); //select-multiple일 경우 빈값은 null을 반환한다. if(text == null) { text = ""; } text = text.toString(); // 문자형으로 형변환 text = text.replace(/^\s*|\s*$/g, ''); // \s는 공백을 의미 if(text == "") { msg = "[" + $obj.attr('title') + "] 필수입력사항입니다."; alert(msg); $obj.val(""); $obj.focus(); return false; } return true; } /** * Length * @author * @param string $obj : 대상 OBJECT * @return bool */ function check_length($obj) { var result = true; var minlength = $obj.attr('minlength'); var maxlength = $obj.attr('maxlength'); if($obj.val().length > 0) { if($obj.val().length < minlength) { if(minlength == maxlength) { alert("[" +$obj.attr('title') + '] 항목은 ' + minlength + " 글자를 입력하셔야 합니다."); } else if(maxlength <= 0) { alert("[" +$obj.attr('title') + '] 항목은 ' + minlength + "이상 글자를 입력하셔야 합니다."); } else { alert("[" +$obj.attr('title') + '] 항목은 ' + minlength + " ~ " + maxlength + " 글자를 입력하셔야 합니다."); } $obj.focus(); result = false } if ($obj.val().length > maxlength) { alert("[" +$obj.attr('title') + '] 항목은 ' + maxlength + " 이하 글자를 입력하셔야 합니다."); $obj.focus(); result = false } } return result; } /** * FORM OBJECT PATTERN * @author * @param string $obj : 대상 OBJECT * @param string pattern : PATTERN * @return bool */ function check_pattern($obj, pattern) { var exp_id = /^[a-zA-Z0-9_]{4,20}$/; //4~20자리 (회원아이디) var exp_common_id = /^[a-zA-Z0-9_]{3,20}$/; //3~20자리 (일반아이디) var exp_password = /^[a-zA-Z0-9_-]{4,20}$/; //4~20자리 (비밀번호) var exp_numeric = /^[0-9]+$/; //숫자 var exp_alphabet = /^[a-zA-Z]+$/; //알파벳 var exp_hangul = /[가-힣]/; //한글 var exp_price = /^[0-9_-]+$/; //가격 var exp_email = /^[_a-zA-Z0-9-]+@[._a-zA-Z0-9-]+\.[a-zA-Z]+$/; //이메일 var exp_url = /^(http\:\/\/)*[.a-zA-Z0-9-]+\.[a-zA-Z]+$/; //URL var exp_image = /\.(gif|jpg|jpeg|png)$/; //이미지 허용 확장자 var exp_csv = /\.(csv)$/; //CSV파일 허용 확장자 var exp_xls = /\.(xls)$/; //XLS파일 허용 확장자 var exp_swf = /\.(swf)$/; //SWF파일 허용 확장자 var exp_file = /\.(gif|jpg|jpeg|png|bmp|zip|alz|doc|hwp|xls|csv|ppt|pdf|txt)$/; //파일업로드 허용확장자 text = $obj.val(); text = text.replace(/\s*/, ""); pattern = eval(pattern); if(!pattern.test(text) && text != "") { msg = "[" + $obj.attr('title') + "] 입력형식 오류입니다."; alert(msg); $obj.focus(); return false; } return true; } /** * Byte 체크 * @author * @param string str : 문자열 * @return int */ function check_byte(str) { var length = 0; for(var i = 0; i < str.length; i++) { if(escape(str.charAt(i)).length >= 4) { length += 2; } else { if(escape(str.charAt(i)) != "%0D") length++; } } return length; } /** * 콤마 삽입 * @author * @param string str : 문자열 * @return string */ function add_comma(str) { var temp = ""; var str = String(remove_comma(str)); num_len = str.length; co = 3; while(num_len>0) { num_len = num_len - co; if(num_len<0) { co = num_len + co; num_len = 0; } temp = ","+str.substr(num_len, co)+temp; } return temp.substr(1); } /** * 콤마 제거 * @author * @param string str : 문자열 * @return string */ function remove_comma(str) { var reg = /(,)*/g; str = parseInt(String(str).replace(reg, "")); return (isNaN(str)) ? 0 : str; } /** * 금액 한글변환 * @author * @param string str1 : 문자열 * @return string */ function convert_won(str1) { tmpstr = ''; tmporg = ''; kk = 0; var $tObj = $('input[name=' + str1 + ']'); sObj = $('#' + str1 + '_won'); str = $tObj.attr('value'); tLen = str.length; for(k=0; k0) { switch ((tLen-k)%4) { case 3: tmpstr += '백'; break; case 2: tmpstr += '십'; break; case 0: tmpstr += '천'; break; } } tmpstr = tmpstr.replaceAll('1', '일'); tmpstr = tmpstr.replaceAll('2', '이'); tmpstr = tmpstr.replaceAll('3', '삼'); tmpstr = tmpstr.replaceAll('4', '사'); tmpstr = tmpstr.replaceAll('5', '오'); tmpstr = tmpstr.replaceAll('6', '육'); tmpstr = tmpstr.replaceAll('7', '칠'); tmpstr = tmpstr.replaceAll('8', '팔'); tmpstr = tmpstr.replaceAll('9', '구'); tmpstr = tmpstr.replaceAll('0', ''); /* if((tLen-k)%3 == 1 && k < tLen-1) { tmporg += ','; } */ } } $tObj.attr('value', tmporg); sObj.html(tmpstr + ' 원'); if(tmporg.length == 0) { sObj.html(''); } } /** * 금액 한글변환 * @author * @param int dvn : 금액 자리수 * @param string str : 문자열 * @return string */ function convert_unit(dvn, str) { var tmps = ''; if(dvn == 5) { tmps = '만 '; } else if(dvn == 9) { tmps = '억 '; } else if(dvn == 13) { tmps = '조 '; } else { alert('금액 한글변환이 정상적으로 이루어지지 않았습니다.'); return false; } if(str.length > (dvn+3)) { if(str.substr((str.length-(dvn+3)), 4) == '0000') { tmps = ''; } } return tmps; } /** * 주민등록번호 체크 * @author * @param int jumin1 : 주민등록번호1 * @param int jumin2 : 주민등록번호2 * @return bool */ function check_jumin(jumin1, jumin2) { var jumin = jumin1 + jumin2; fmt = /^\d{6}[1234]\d{6}$/; if(!fmt.test(jumin)) { alert("잘못된 주민등록번호입니다."); return false; } birthYear = (jumin.charAt(6) <= 2) ? '19' : '20'; birthYear += jumin.substr(0, 2); birthMonth = jumin.substr(2, 2) - 1; birthDate = jumin.substr(4, 2); birth = new Date(birthYear, birthMonth, birthDate); if(birth.getYear()%100 != jumin.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate) { alert("잘못된 주민등록번호입니다."); return false; } buf = new Array(13); for(i = 0; i < 13; i++) buf[i] = parseInt(jumin.charAt(i)); multipliers = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; for(i = 0, sum = 0; i < 12; i++) { sum += (buf[i] *= multipliers[i]); } if((11 - (sum % 11)) % 10 != buf[12]) { alert("잘못된 주민등록번호입니다."); return false; } return true; } /** * 문자열 포함 여부 검사 * @author * @param string str1 : 문자열1 * @param string str2 : 문자열2 * @return bool */ function is_instr(str1, str2) { if(str1) { if(str1.indexOf(str2, 0) > -1) { return true; } else { return false; } } } /** * 팝업 함수 * @author * @param string url : 주소 * @param string name : 이름 * @param string option : 옵션 * @return */ function win_open(url, name, option) { var popup = window.open(url, name, option); popup.focus(); } /** * 우편번호찾기 함수 * @author * @param string form : FORM 이름 * @param int zip1 : 우편번호1 * @param int zip2 : 우편번호2 * @param string address : 주소 * @return */ function win_zip(form, zip1, zip2, address) { var option ="width=450, height=500, scrollbars=yes"; var condition = "?"; condition += "form="+form; condition += "&zip1="+zip1; condition += "&zip2="+zip2; condition += "&address="+address; win_open(mf_module_path + "/zip/zip.php"+condition, "win_zip", option); } /** * 날짜형식검색 * @author * @param string from_date : 시작일 * @param string to_date : 종료일 * @param string from_obj : 시작일 element ID * @param string to_obj : 종료일 element ID * @return */ function set_date(from_date, to_date, from_obj, to_obj) { document.getElementById(from_obj).value = (from_date) ? from_date : ""; document.getElementById(to_obj).value = (to_date) ? to_date : ""; } /** * ID 보이기 * @author * @param string id : 보여줄 element ID * @return */ function show_id(id) { document.getElementById(id).style.display = 'block'; } /** * ID 감추기 * @author * @param string id : 숨길 element ID * @return */ function hide_id(id) { document.getElementById(id).style.display = 'none'; } /** * 쿠키 입력 * @author * @param string name : 이름 * @param string value : 값 * @param int expirehours : 만료 시간 * @return */ function set_cookie(name, value, expirehours) { var todayDate = new Date(); // todayDate.setDate( todayDate.getDate() + expiredays ); 일자 todayDate.setTime(todayDate.getTime() + (60 * 60 * 1000 * expirehours)); // 시간 document.cookie = name + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";" } /** * 쿠키 얻음 * @author * @param string name : 이름 * @return */ 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 document.cookie.substring(start, end); } return ""; } /** * 쿠키 지움 * @author * @param string name : 이름 * @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(); } } /** * TEXTAREA 높이 증가 * @author * @param string id : TEXTAREA element ID * @param int row : 증가할 높이 * @return */ function increase_textarea(id, row) { document.getElementById(id).rows += row; } /** * TEXTAREA 높이 감소 * @author * @param string id : TEXTAREA element ID * @param int row : 감소할 높이 * @return */ function decrease_textarea(id, row) { if(document.getElementById(id).rows - row > 0) { document.getElementById(id).rows -= row; } } /** * TEXTAREA 기본 높이 * @author * @param string id : TEXTAREA element ID * @param int row : 기본 높이 * @return */ function original_textarea(id, row) { document.getElementById(id).rows = row; } /** * 즐겨찾기추가 * @author * @param * @return */ function add_favorite() { if(document.all) { window.external.AddFavorite(location.href, $(document).attr('title')); } else { window.sidebar.addPanel($(document).attr('title'), location.href, ''); } } /** * 주소복사 * @author * @param string url : 주소 * @return */ function url_copy(url) { window.clipboardData.setData('Text', url); alert("주소가 복사되었습니다.\n주소창에 Ctrl+V 하시면 복사된 주소가 붙여집니다."); } /** * FLASH_WRITE * @author * @param string url : 주소 * @param string w : 넓이 * @param int h : 높이 * @param string vars : 전달할 변수 * @param string bg : 백그라운드 * @param string win : WMODE * @return */ function flash_write(url, w, h, vars, bg, win) { var id=url.split("/")[url.split("/").length-1].split(".")[0]; // id는 파일명으로 설정 if(vars==null) { vars=''; } if(bg==null) { bg='#FFFFFF'; } if(win==null) { win='transparent'; } // 플래시 코드 정의 var flash_str= " "; flash_str+=" "; flash_str+=" "; flash_str+=" "; flash_str+=" "; flash_str+=" "; flash_str+=" image_width) { image_height = parseFloat(target[i].width / target[i].height); target[i].width = image_width; target[i].height = parseInt(image_width / image_height); target[i].style.cursor = 'pointer'; // 스타일에 적용된 이미지의 폭과 높이를 삭제한다 target[i].style.width = ''; target[i].style.height = ''; } if(border_color) { target[i].style.borderWidth = '1px'; target[i].style.borderStyle = 'solid'; target[i].style.border_color = border_color; } } } } /** * 이미지 팝업 * @author * @param string img : 이미지 element image * @return */ function image_window(img) { var w = img.tmp_width; var h = img.tmp_height; var winl = (screen.width-w) / 2; var wint = (screen.height-h) / 3; if(w >= screen.width) { winl = 0; h = (parseInt)(w * (h / w)); } if(h >= screen.height) { wint = 0; w = (parseInt)(h * (w / h)); } var js_url = "