document.write(''); //---------------------------------------------------------------------------------------------------- //-- 아이디&비밀번호 검사 함수 //---------------------------------------------------------------------------------------------------- // 아이디 유효성검사 - 프로그램 (김기영) function checkID(obj,strNN) { // 아이디의 유효성확인 (자리수, 문자열) // obj - 확인할 object // strNN - 오류시 표시할 문자열 / 값이 없으면 Default 메세지 출력 // return - true or false if(obj.value){ // 문자열 검사 var reg_id = /[-!#$%&'*+./0-9=?A-Z^_a-z{|}~]{6,20}$/; if(!reg_id.test(obj.value)){ alert("아이디는 영문, 숫자, 특수문자 6~20 자 이여야 합니다."); selectAll(obj); return false; } return true; } } // 비밀번호 유효성검사 - 프로그램 (김기영) function checkPW(obj,strNN) { // 비밀번호 유효성확인 (자리수, 문자열) // obj - 확인할 object // strNN - 오류시 표시할 문자열 / 값이 없으면 Default 메세지 출력 // return - true or false if(obj.value){ // 문자열 검사 var reg_id = /[-!#$%&'*+./0-9=?A-Z^_a-z{|}~]{6,20}$/; if(!reg_id.test(obj.value)){ alert("비밀번호는 영문, 숫자, 특수문자 6~20 자 이여야 합니다."); selectAll(obj); return false; } return true; } } // 코드 유효성검사 - 프로그램 (김기영) function checkCode(obj,strNN) { // 코드의 유효성확인 (자리수, 문자열) // obj - 확인할 object // strNN - 오류시 표시할 문자열 / 값이 없으면 Default 메세지 출력 // return - true or false // 자리수 검사 if((obj.value.length < 2) || (obj.value.length > 20)){ if(strNN) alert(strNN); else alert("2~20자의 코드를 입력해 주십시오."); selectAll(obj); return false; } // 문자열 검사 var validstr = "0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var targetstr = obj.value.toUpperCase(); for (i = 0; i < targetstr.length; i++){ if(validstr.indexOf(targetstr.substring(i, i+1)) < 0){ if(strNN) alert(strNN); else alert("숫자 또는 영문자만 가능 합니다."); selectAll(obj); return false; } } return true; } //---------------------------------------------------------------------------------------------------- //-- 화면인쇄함수 //---------------------------------------------------------------------------------------------------- var PrintForHtmlContent; function printDiv () { if (document.all && window.print) { window.onbeforeprint = beforeDivs; window.onafterprint = afterDivs; window.print(); } } function beforeDivs () { if (document.all) { var rng = document.body.createTextRange( ); if (rng!=null) { //alert(rng.htmlText); PrintForHtmlContent = rng.htmlText; rng.pasteHTML("
" + document.all["PrintArea"].innerHTML + "
"); } } } function afterDivs () { if (document.all) { var rng = document.body.createTextRange( ); if (rng!=null) { rng.pasteHTML(PrintForHtmlContent); } } } //---------------------------------------------------------------------- //* 배너 스크롤 class //* 속성 //* type : 스크롤 방향 구분(1:수직 스크롤, 2:수평 스크롤) //* leftRightDirection : 수평 스크롤 방향 구분(1:왼쪽, 2:오른쪽) //* pausemouseover : 마우스 포인터 over 시 스크롤 정지 여부(true:정지, false:정지 안함) //* layerwidth : 스크롤내용이 보여지는 영역 가로 사이즈 //* 사용법 //* var bannerScroll = new BannerScroll(); //* bannerScroll.name = "bs_1"; //* bannerScroll.type = 2; //* bannerScroll.pausemouseover = true; //* bannerScroll.add("배너1"); //* bannerScroll.add("배너2"); //* bannerScroll.add("배너3"); //* bannerScroll.start(); //---------------------------------------------------------------------- function BannerScroll() { this.version = "0.1"; this.name = "bannerScroll"; this.item = new Array(); this.itemcount = 0; this.currentspeed = 0; this.scrollspeed = 20; this.pausedelay = 1000; this.pausemouseover = false; this.stop = false; this.type = 2; this.leftRightDirection = 1; this.layerwidth = 100; this.height = 100; this.width = 100; this.stopHeight = 0; this.add = function() { var text = arguments[0]; this.item[this.itemcount] = text; this.itemcount = this.itemcount + 1; }; this.start = function() { this.display(); this.currentspeed = this.scrollspeed; setTimeout(this.name+'.scroll()',this.currentspeed); }; this.display = function() { document.write('
'); for (var i = 0; i < this.itemcount; i++) { if ( this.type == 1) { document.write('
'); document.write(this.item[i]); document.write('
'); } else if ( this.type == 2 ) { document.write('
'); document.write(this.item[i]); document.write('
'); } } document.write('
'); }; this.scroll = function() { this.currentspeed = this.scrollspeed; if( !this.stop ) { for (i = 0; i < this.itemcount; i++) { obj = document.getElementById(this.name+'item'+i).style; if( this.type == 1 ) { obj.top = (parseInt(obj.top) - 2) + "px"; if( parseInt(obj.top) <= this.height*(-1) ) { obj.top = (this.height * (this.itemcount-1)) + "px"; this.currentspeed = this.pausedelay; } //if ( parseInt(obj.top) == 0 || ( this.stopHeight > 0 && this.stopHeight - parseInt(obj.top) == 0 ) ) } else if ( this.type == 2 ) { if (this.leftRightDirection == 1) { obj.left = (parseInt(obj.left) - 1) + "px"; if ( parseInt(obj.left) <= this.width*(-1) ) { obj.left = (parseInt(obj.left) + (this.width * (this.itemcount))) + "px"; this.currentspeed = this.pausedelay; } } else { obj.left = (parseInt(obj.left) + 1) + "px"; if ( parseInt(obj.left) >= this.layerwidth ) { obj.left = (parseInt(obj.left) - (this.width * (this.itemcount))) + "px"; this.currentspeed = this.pausedelay; } } } } } window.setTimeout(this.name+".scroll()",this.currentspeed); }; this.mouseover = function() { if ( this.pausemouseover ) { this.stop = true; } }; this.mouseout = function () { if ( this.pausemouseover ) { this.stop = false; } }; } function SelectItem(value, text) { this.text = text; this.value = value; this.text = text; this.getValue = function () { return this.value; }; this.getText = function () { return this.text; }; } //---------------------------------------------------------------------- //* 내용 : 체크박스에 할당된 값을 얻는다. //* 같은 이름을 가진 체크박스가 여럿일때 유용하다. //* 입력 : //* formname - form name //* itemname - checkbox name (같은 역할을 하는 것은 같은 이름으로 만든다.) //* idx - value 중의 위치 (value 는 '|' 로 묶여 있다. 이로 구분된 인덱스를 말한다.) default:0 //* needall - check 여부에 관계없이 넣을 것인가. //* false 일 경우 check 된 항목의 값들을 "|" 로 묶어 반환한다. //* true 일 경우 check 되지 않은 항목의 값도 얻는다. (모든 값을 얻고자 할때 사용) //* getfrom - 값을 얻을 아이템의 이름, //* check 된 항목의 값을 checkbox 자체가 아닌 다른 항목의 값에서 얻을 수 있도록 한다. //* null 이거나 '' 일 경우 itemname 을 사용한다. //* exceptdisabled - true 일 경우. disabled 된 항목을 확인 항목에서 제외시킨다. //* 반환 : "|" 로 구분된 지정된(선택된) 항목의 값 //---------------------------------------------------------------------- function getCheckValues(formname,itemname,idx,needall,getfrom,exceptdisabled) { /* '' szCodes - 리턴 값 '' bNeedAll - <- needall '' iIdx - <- idx '' szValue - checkbox 의 값. "|" 로 구분된 항목중 idx 번째의 값 '' szGetFrom - <- getfrom '' bExceptDisabled - <- exceptdisabled */ var szCodes,bNeedAll,iIdx,szValue,szGetFrom,bExceptDisabled; /* '' 변수 초기화 및 입력된 사항을 점검 */ szCodes=''; iIdx=0; if (typeof(idx)!='undefined') iIdx=idx; bNeedAll=false; if (typeof(needall)!='undefined') bNeedAll=needall; szGetFrom=itemname; if (typeof(getfrom)!='undefined') { if (getfrom!=null&&getfrom!='') szGetFrom=getfrom; } bExceptDisabled=false; if (typeof(exceptdisabled)!='undefined') bExceptDisabled=exceptdisabled; if (document.all[formname].elements[itemname]==null) ; else /* '' 항목이 있을 경우 처리한다. */ if (document.all[formname].elements[itemname].length==null) { /* '' checkbox 가 하나일 경우의 처리 */ szValue=(document.all[formname].elements[szGetFrom].value+'||||').split('|')[iIdx+0]; /* '' 값이 없으면 리턴할 것이 없으므로 무시한다. */ if (szValue!='') { /* '' bExceptDisabled 가 true 일 경우 disabled 된 항목은 무시한다. */ if (!bExceptDisabled||!document.all[formname].elements[itemname].disabled) { /* '' bNeedAll 이 true 이면 항상 그렇지 않으면 checked 일 경우 값을 얻는다. */ if (bNeedAll) { szCodes=szValue; } else { if (document.all[formname].elements[itemname].checked) { szCodes=szValue; } } } } } else { /* '' checkbox 가 여럿 일 경우 각 cjeckbox 에 대해 확인을 하고 '' 얻은 값을 "|" 로 묶는다. */ for (var i=0;i0){ //form이 존재하면 삭제 $("#__comMailSendForm").remove(); } var form = $('
'); form.attr('action', url); form.attr('method', 'post'); form.appendTo('body'); var biz = ""; var chk_num = 0; $("[class*='"+clsNm+"']:checked").each(function(){ var tdObj = $(this).parent(); //$(this).closest("td"); var sno = $(this).val(); var nm = tdObj.find("#mbr_nm").val(); var eml = tdObj.find("#mbr_eml").val(); var mail_tgt = sno+"||"+nm+"||"+eml+"||"+bizSno; var tgt = $(""); form.append(tgt); var bizSno = ""; if(tdObj.find("#bizcnst_sno").length > 0){ bizSno = tdObj.find("#bizcnst_sno").val(); biz = $(""); } chk_num++; }); if(chk_num == 0){ alert("선택된 대상이 없습니다."); return false; }else{ form.append(biz); form.submit(); } } /***************************************************************************** * file 확장자 체크 함수 * 체크를 위한 object를 array 형태로 받을 수 있다. * var tgtFile = []; * tgtFile.push({"bizno_bizwrite" : "pdf,jpg,gif,png,ppt,pptx"}); //input[name] : 체크 확장자 * 변수를 안받으면 기본 IMG_에 대한 체크만 하도록 한다. * return true/false *****************************************************************************/ function checkFileExt(tgt_file_array){ var file_return = true; var filename = ""; var ext = ""; //배열로 만든 변수가 있다. if(typeof(tgt_file_array) != 'undefined'){ if(tgt_file_array.length !== 0){ $.each( tgt_file_array, function( i, obj ) { $.each( obj, function( name, chkExtStr ) { //alert( name + ": " + chkExtStr ); var label_nm = ""; var now_tgt = ""; if (name.indexOf('[id')) { now_tgt = $(name); //체크할 대상이 있고, 체크할 확장자 문자열이 있을 때만 체크하자 now_tgt.each(function () { //여러개 파일 인 경우.. if(typeof($(this).val()) != 'undefined' && typeof(chkExtStr) != 'undefined'){ if($(this).val() != ""){ label_nm = $(this).attr("tgt-name"); filename = $(this).val().split('\\').pop(); ext = $(this).val().split('.').pop().toLowerCase(); //alert(filename+" : "+ext+"// "+chkExtStr); if(!chkExtStr.match(ext)){ //포함되어있지않을때 alert(label_nm +'은(는) '+chkExtStr+' 파일만 업로드 할수 있습니다.'); file_return = false; return false; } } } }); } else { label_nm = $("label[for='"+name+"']").text(); now_tgt = $("input[name='"+name+"']").val(); //체크할 대상이 있고, 체크할 확장자 문자열이 있을 때만 체크하자 if(typeof(now_tgt) != 'undefined' && typeof(chkExtStr) != 'undefined'){ filename = now_tgt.split('\\').pop(); ext = now_tgt.split('.').pop().toLowerCase(); //alert(filename+" : "+ext+"// "+chkExtStr); if(!chkExtStr.match(ext)){ //포함되어있지않을때 alert(label_nm +'은(는) '+chkExtStr+' 파일만 업로드 할수 있습니다.'); file_return = false; return false; } } } // var label_nm = $("label[for='"+name+"']").text(); // var now_tgt = $('input[name='+name+']').val(); // //체크할 대상이 있고, 체크할 확장자 문자열이 있을 때만 체크하자 // if(typeof(now_tgt) != 'undefined' && typeof(chkExtStr) != 'undefined'){ // filename = now_tgt.split('\\').pop(); // ext = now_tgt.split('.').pop().toLowerCase(); // //alert(filename+" : "+ext+"// "+chkExtStr); // if(!chkExtStr.match(ext)){ //포함되어있지않을때 // alert(label_nm +'은 '+chkExtStr+' 파일만 업로드 할수 있습니다.'); // file_return = false; // return false; // } // } }); }); } } if(file_return){ //위에서 체크가 정상적으로 끝나고, 기본적인 이미지에 대한 체크도 여기서 하자... //배열 변수가 있든 없든 이미지에 대한 확장자 체크는 기본적으로 하도록 한다. $('input[type=file]').each(function(i){ var tgt_name = $(this).attr("name"); if($(this).val() != "" ){ filename = $(this).val().split('\\').pop(); ext = $(this).val().split('.').pop().toLowerCase(); if(tgt_name.indexOf('IMG_') != -1){ //포함할때는 if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) { alert('이미지 형식은 gif, png, jpg 파일만 업로드 할수 있습니다.'); file_return = false; return false; } } } }); } return file_return; } /***************************************************************************** * 팝업창 *****************************************************************************/ function popUpwindowOpen(route, winnm, top, left, width, height, scrollbars) { /* route : 경로 or 파일명 winnm : 윈도우 이름 top : 새창을 띄울 위쪽 좌표 left : 새창을 띄울 왼쪽 좌표 ex) top=0, left=0 (창을 왼쪽 상단 구석에 고정) width : 창 가로길이 height : 창 세로길이 scrollbars : 스크롤바 유무 [no, yes] */ if (route == null || "".equals(route)) { alert("팝업창이 지정되지 않았습니다"); } if (top == null || "".equals(top)) { top = 100; } if (left == null || "".equals(left)) { left = 100; } if (width == null || "".equals(width)) { width = 500; } if (height == null || "".equals(height)) { height = 500; } if (scrollbars == null || "".equals(scrollbars)) { scrollbars = yes; } var url = encodeURIComponent(window.location.href); if (url.indexOf('?') != -1) { url = url.substring(0, url.indexOf('?')); } if (route.indexOf('?') == -1) { route += '?openerurl=' + url; } else { route += '&openerurl=' + url; } pop[i] = window.open(route, winnm, "top=" + top + ", left=" + left+ ", width=" + width + ", height=" + height + ", scrollbars=" + scrollbars + ""); i++; } /** * 파일명에서 확장자명 추출 * @param filename 파일명 * @returns _fileExt 확장자명 */ function getExtensionOfFilename(filename) { var _fileLen = filename.length; /** * lastIndexOf('.') * 뒤에서부터 '.'의 위치를 찾기위한 함수 * 검색 문자의 위치를 반환한다. * 파일 이름에 '.'이 포함되는 경우가 있기 때문에 lastIndexOf() 사용 */ var _lastDot = filename.lastIndexOf('.')+1; // 확장자 명만 추출한 후 소문자로 변경 var _fileExt = filename.substring(_lastDot, _fileLen).toLowerCase(); return _fileExt; } /********************************************************************* * 다음 지도 api *********************************************************************/ function execDaumPostcode() { daum.postcode .load(function() { new daum.Postcode( { oncomplete : 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); } // 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다. fullAddr += (extraAddr !== '' ? ' (' + extraAddr + ')' : ''); } // 우편번호와 주소 정보를 해당 필드에 넣는다. document.getElementById('ent_postcode').value = data.zonecode; // 5자리 // 새우편번호 사용 document.getElementById('ent_add').value = fullAddr; // 커서를 상세주소 필드로 이동한다. document.getElementById('ent_detail_add') .focus(); } }).open(); }); }