/* <저작권> 본 소스의 일부나 전체의 내용은 어떠한 형태로든 무단 복제를 금하며 다른 매체로의 복제를 위해서는 반드시 WEBCASH(주) 의 사전 동의를 얻어야 합니다. 사전동의 없이 사용 중 본 제품에서 일어난 특정한, 우발적, 비직접적, 필연적인 손실을 책임지지 않습니다. Copyright ⓒ 2003 WEBCASH Co., Ltd. All Rights Reserved. ******************************************************************************** * PROJECT ******************************************************************************** * Project : eB_IB2 (e-biz Internet Banking Component 2) * Subject : COMMON JAVASCRIPT * FileName : wfcb.js * Company : WEBCASH.CO.KR * Team : Web Technology Team * Create Date : 2002-01-01 * Person : Chol-Hun(honeyc@webcash.co.kr) ******************************************************************************** */ /* ----------------------------------------------------------------- - 마지막 input box 에서 엔터키 입력시 자동 submit 각 페이지 맨 밑에 아래 라인을 추가 var SUBMIT_FUNCTION = doSubmit; ----------------------------------------------------------------- */ //<> // 링크 오버시 status 표시 불가 var IS_HIDDEN_LINK = true; // 특수키 기능 제한(Ctrl + R, Ctrl + N, F5) var IS_INT_KEY = true; // 마우스 기능 제한(오른쪽 버튼 무시, drag 무시, //var IS_INT_MOUSE = false; var IS_INT_MOUSE = false; var ADMIN_URL = 'wsm.wooribank.com'; // browser check if (document.getElementById && !document.all){ var isNS = true; var isIE = false; } else { var isIE = true; var isNS = false; } function statusRemove() { window.status=''; return true; } function wfcb_init() { try{ init(); } catch(e) {} } function wfcb_onpaste(event, objKey) { if (objKey == null) objKey = this; event = event || window.event; var clipdata = window.clipboardData.getData("Text"); var datatype = toUpperCase(objKey.getAttribute("datatype")); if (datatype === "N" || datatype === "ACCTNO") clipdata = clipdata.replace(/-/gi,""); objKey.value = clipdata; if (event.preventDefault) event.preventDefault(); if (event.returnValue) event.returnValue = returnValue; return false; } function findXY(event){ event = event || window.event; x = event.screenX; y = event.screenY; } function noBackSpace(){ return false; } //일자 유효 검증 function isValidDate(datestr){ //널인지? if(isEmpty(datestr)){ return null; } //숫자인지? if(!isNum(datestr)){ ERR_MSG = "You must enter the numbers."; return false; } //길이가 8자리? if(datestr.length !== 8){ ERR_MSG = "You must enter 8 digits: year, month and day."; return false; } var yy = Number(datestr.substring(0,4)); var mm = Number(datestr.substring(4,6)); var dd = Number(datestr.substring(6,8)); //월 검증 if( !(mm > 0 && mm < 13) ){ ERR_MSG = "You can only enter between 1 - 12 for month."; return false; } //윤년 검증 var boundDay = ""; if(mm !== 2){ var mon=new Array(31,28,31,30,31,30,31,31,30,31,30,31); boundDay = mon[mm-1]; } else{ if (yy%4 === 0 && yy%100 !== 0 || yy%400 === 0){ boundDay = 29; } else{ boundDay = 28; } } //일 검증 if( (dd <= 0) || (dd > boundDay) ){ ERR_MSG = "Invalid date.\n(There are " + boundDay + " days in " + mm + " of " + yy + ".)"; return false; } return true; } // 년월만 검증 function isValidDateYYYYMM(datestr){ //널인지? if(isEmpty(datestr)){ return null; } //숫자인지? if(!isNum(datestr)){ ERR_MSG = "You must enter the numbers."; return false; } //길이가 8자리? if(datestr.length !== 6){ ERR_MSG = "Enter 6 digits for year and month."; return false; } var yy = Number(datestr.substring(0,4)); var mm = Number(datestr.substring(4,6)); //월 검증 if( !(mm > 0 && mm < 13) ){ ERR_MSG = "You can only enter between 1 - 12 for month."; return false; } return true; } //EMAIL 유효성 검증 function isValidEmail(email){ //널인지? if(isEmpty(email)){ return null; } //올바른 EMAIL 인지 검증 var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/; if (email.search(format) === -1) { ERR_MSG = "Invalid email format."; return false; } return true; } //주민등록번호 유효성 검증 function isValidRegNo(regno){ //널인지? if(isEmpty(regno)){ return null; } // 13자리 숫자인가? -> 주민번호 if((getByteLength(regno) !== 13) || (!isNum(regno)) ) { ERR_MSG = "The Resident Registration number has 13 digits"; return false; } if(regno.substring(6,7) === '7' || regno.substring(6,7) === '8'){ //외국인경우 return true; } //올바른 주민등록번호인지 검증 var ju = regno.substring(0,6); var ju1 = regno.substring(6); juid = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0); for(var i = 0; i<6;i++) juid[i] = ju.substring(i,i+1); for(i=0;i<7;i++) juid[i+6] = ju1.substring(i,i+1); for(var sum = 0, i = 0;i<12;i++) sum += juid[i] * ((i >7) ? (i-6) : (i+2)); var mod = 11 - sum%11; if(mod >= 10) mod -= 10; if(mod !== Number(juid[12])) { ERR_MSG = "Incorrect Resident Registration number"; return false; } else { return true; } } //사업자번호 유효성 검증 function isValidCustNo(strNumb) { //널인지? if(isEmpty(strNumb)){ return null; } // 10자리 숫자인가? if((getByteLength(strNumb) !== 10) || (!isNum(strNumb)) ) { ERR_MSG = "The Business Registration Number has 10 digits."; return false; } sumMod = 0; sumMod += Number(strNumb.substring(0,1)); sumMod += Number(strNumb.substring(1,2)) * 3 % 10; sumMod += Number(strNumb.substring(2,3)) * 7 % 10; sumMod += Number(strNumb.substring(3,4)) * 1 % 10; sumMod += Number(strNumb.substring(4,5)) * 3 % 10; sumMod += Number(strNumb.substring(5,6)) * 7 % 10; sumMod += Number(strNumb.substring(6,7)) * 1 % 10; sumMod += Number(strNumb.substring(7,8)) * 3 % 10; sumMod += Math.floor(Number(strNumb.substring(8,9)) * 5 / 10); sumMod += Number(strNumb.substring(8,9)) * 5 % 10; sumMod += Number(strNumb.substring(9,10)); if (sumMod % 10 != 0) { ERR_MSG = "Incorrect Business Registration Number."; return false; } return true; } //////////////////////////////// // 우리은행 함수 //////////////////////////////// // 우리은행 계좌번호 검증 function isValidAcctNo(acctno){ //널인지? if(isEmpty(acctno)){ return null; } //13자리 숫자인지? if ((getByteLength(acctno) !== 13) || (!isNum(acctno))) { ERR_MSG = "The account number has 13 digits without '-'."; return false; } //계좌번호 검증 --> 일단 생략 /* var sum = 0; var check_digit = acctno.substring(10); for (var idx = 0; idx <=9 ; idx++) { value = acctno.substring(idx,idx+1); if (idx === 0 || idx === 2 || idx === 4 || idx === 6 || idx === 8) { value = value * 1; } else { value = value * 2; } sum = sum + value; } var last = 10 -(sum - (Math.floor(sum/10) * 10)); if (last === 10) last = 0; if (last !== check_digit) { ERR_MSG = "올바르지 않은 계좌번호입니다."; return false; } */ return true; } // 우리은행 고객번호 세팅(9자리) // 앞에 '0'을 채운다 // by ysd 2002-03-28 11:36오전 function fill_cifno(obj){ var temp=""; if(obj.value === null || obj.value.length < 1 ){ alert("Enter the customer number."); obj.focus(); return false; } if(obj.value.length !== 9 ){ for(i=0;i<(9-obj.value.length);i++){ temp +="0"; } obj.value = temp+obj.value; }else{ obj.value = obj.value; } return true; } //행번검증(6자리->10자리) function fill_staffno(obj){ var temp=""; if(obj.value === null || obj.value.length < 1 ){ alert("Enter the bank number."); obj.focus(); return false; } if(obj.value.length < 6 ){ for(i=0;i<(6-obj.value.length);i++){ temp +="0"; } obj.value = temp+obj.value; }else{ obj.value = obj.value; } return true; } //아이디 검증 function isValidUserId(userid){ //널인지? if(isEmpty(userid)){ return null; } if(getByteLength(userid)>10 || getByteLength(userid) < 6 ){ ERR_MSG = "User ID must be a 6 ? 10 digit combination of alphabets and numbers."; return false; } if(isNum(userid)){ ERR_MSG = "ID cannot be comprised of numbers only."; return false; } for(var i=0; i < userid.length; i++) { if ( !(isValidMask(userid.charAt(i),"N") && isValidType(userid.charAt(i),"AN")) ){ return false; } } // for end return true; } //비밀번호 검증 function isValidPassword(pwd){ var alpaBig= "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var alpaSmall= "abcdefghijklmnopqrstuvwxyz"; var num = "01234567890"; //널인지? if(isEmpty(pwd)){ return null; } // 비밀번호는 6자리이상 8자리 이하 .. maxLength=10로 변경 할것 if(getByteLength(pwd)<6 || getByteLength(pwd) > 10 ){ ERR_MSG = "Password must be between 6 - 8 digits."; return false; } if(isNum(pwd)){ ERR_MSG = "Password must have at least one alphabet."; return false; } for(var i=0;i < alpaBig.length - pwd.length+1;i++){ if(alpaBig.substring(i,i+pwd.length) === pwd) { ERR_MSG = "You cannot use the consecutive letters like ABCDEF."; return false; } } if (pwd.indexOf(' ') > -1) { ERR_MSG = "You cannot enter Space."; return false; } for(i=0;i < alpaSmall.length - pwd.length+1;i++){ if(alpaSmall.substring(i,i+pwd.length) === pwd) { ERR_MSG = "You cannot use the consecutive letters like ABCDEF."; return false; } } for(i=1;i < pwd.length;i++){ if(pwd.substring(0,1) !== pwd.substring(i,i+1) ) return true; } ERR_MSG = "You cannot use the same, consecutive characters for password."; return false; } //////////////////////////////////////////////////////////////// // print 관련 //////////////////////////////////////////////////////////////// function printDiv () { window.print(); } function hideDivs () { var divs = document.all.tags('TABLE'); for (var d = 0; d < divs.length; d++) { if (divs[d].getAttribute("height") === "100%") { divs[d].setAttribute("div", "min"); divs[d].height = '10%'; } } } function showDivs () { var divs = document.all.tags('TABLE'); for (var d = 0; d < divs.length; d++) { if (divs[d].getAttribute("div") === "min") { divs[d].height = '100%'; } } } // print 안내 창 function show_printInfo(){ /* if (getCookie('stop') !== 'done') { window.open("/kor/ib/common/msg/pop_prtMsg.jsp","prtInfo","status=no,height=500,width=650,resizable=no,left=10,top=10,scrollbars=yes"); } */ } // 두번 서브밋 방지 코드 var isSubmit = false; //document.onclick = isGo; function set_submit(){ isSubmit = true; //document.body.style.cursor = "wait"; } function reset_submit(){ isSubmit = false; //document.body.style.cursor = "auto"; } // 공통 메뉴 처리 function showRelMenu(){ window.divRelMenu.style.visibility='visible'; } function addMyMenu(myMenuName){ get2post(tempPassForm,"pgm_id="+reqURI+"&pgm_name=" + myMenuName); uf_encNewWin(document.tempPassForm, "/kor/ib/common/msg/addMyMenu.jsp","FrmMyMenu",500,150); removeTempAttribute(tempPassForm); } /* 애플릿그리드 있을 경우 Print 함수 */ function printForm(){ document.Main.setChangePanel('PRINT'); } /* default Print 함수 */ function printDefaultForm(){ window.print(); show_printInfo(); } function saveForm(){ document.Main.setChangePanel('SAVE'); } function goEnglish(){ get2post(sendForm, "contentsUrl=" + goEnglishURL); sendForm.action="/catiE/main/index.jsp"; sendForm.target="contentframe"; sendForm.submit(); } function goHelp(){ window.divHelp.style.visibility='visible'; } function isGo(){ if (isSubmit){ alert("Processing"); event.returnValue = false; } } /*------------------------------------------------------------------------- Spec : 금액을 한글로 표시한다. Parameter : obj(입력받는 필드 Obj), type(화폐단위) Return : String -------------------------------------------------------------------------*/ hanNumber = new Array ('영', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구' ); fourFour = new Array ('일', '만', '억', '조' ); fourDigit = new Array ('일', '십', '백', '천' ); function jsPutHanAmt(obj, type) { var objHan = document.getElementById(obj.name + "_KorAmt"); num = obj.value; str = ""; strr = num.split(","); for (i=0; i=0;i--) { szDigit = num.substring(i,i+1); digit = parseInt(szDigit); if (digit!=0) { if (bPos!=0 && sPos==0) { if (is_start==true) szHan += delimiter; szHan += fourFour[bPos]; // 만, 억 appendFF=false; } if (bPos!=0 && appendFF==true) { if (is_start==true) szHan += delimiter; szHan += fourFour[bPos]; // 만, 억 appendFF=false; } if (sPos!=0) szHan += fourDigit[sPos]; // 십, 백, 천 szHan += hanNumber[digit]; // 일, 이, 삼 is_start=true; } else if (sPos==0 && bPos!=0) appendFF = true; sPos++; if (sPos%4==0) { sPos=0; bPos++; if (bPos>=4) return "(범위초과)"; } } if (is_start==false) { rslt = ''; if( objHan !== null) objHan.innerHTML = rslt + endZValue; } else { rslt = ''; for(i = szHan.length - 1; i >= 0; i--) { rslt += szHan.substring(i, i + 1); } rslt = rslt + endValue; if (type=='2' || type=='3'){ //만단위 rslt = rslt.replace("억만 원","억 원"); rslt = rslt.replace("조만 원","조 원"); } if( objHan !== null) objHan.innerHTML = rslt; } } //////////////////////////////////////////////////////////////// // onkeyup 관련 //////////////////////////////////////////////////////////////// function wfcb_onkeyup(event, objKey) { event = event || window.event; if (event.keyCode === 37 || event.keyCode === 39 || event.keyCode === 9 || event.keyCode === 8 || event.keyCode === 16) return; if (objKey == null) objKey = this; var datatype = toUpperCase(objKey.getAttribute("datatype")); var format = toUpperCase(objKey.getAttribute("format")); var mask = toUpperCase(objKey.getAttribute("mask")); var str = objKey.value; // 한글금액 표시를 위해 추가 // 2003-11-21 by Jeong, Giin var amtType = toUpperCase(objKey.getAttribute("amtType")); // 최대금액 처리를 위해 추가 // 2004-02-24 by Jeong, Giin var amtMax = objKey.getAttribute("amtMax"); if (objKey.getAttribute("uppercase") !== null) objKey.value = objKey.value.toUpperCase(); // 포맷적용 switch(format){ case "CURRENCY" : //999,999,999 if(str === '0'){ // 한글금액 표시를 위해 추가 // 2003-11-21 by Jeong, Giin jsPutHanAmt(objKey, amtType); break; } str = str.replace(/^0*/,'').replace(/,/g,''); // 최대금액 처리를 위해 추가 // 2004-02-24 by Jeong, Giin if (amtMax !== null) { var numStrAmt = parseInt(str); var numAmtMax = parseInt(amtMax); if(numStrAmt > numAmtMax) { alert('The value is bigger than the maximum (' + numAmtMax + ').'); str = amtMax; var strLen = str.length; var retStr = ""; for(var i=0; i -1){ afterNo = str.substring(str.indexOf('.')+1); afterNo = "." + afterNo.replace(/\,/g,'').replace(/\./g,''); preNo = str.substring(0, str.indexOf('.')); } else{ afterNo = ""; preNo = str; } preNo = preNo.replace(/^0*/,'').replace(/,/g,''); if (preNo === "") preNo = "0"; var preNoLen = preNo.length; var retStr = ""; for(var i=0; i 0) { if (objKey.value.length >= maxlength) { //* nextid 가 정의되어 있을 때 해당 객체에 포커스를 준다. try { if (objKey.nextid != null && objKey.nextid != "") { if (objKey.nextid == "__none__") { return ; } document.getElementById(objKey.nextid).focus(); return ; } } catch (ignored) {} var isNext = false; //var elem = document.all; var elem = document.getElementsByTagName("INPUT"); for (var i=0;i