/** * Define Global Variable */ try { var upperObj = this.parent.document; // Parent Document } catch(e) {} try { var rootObj = this.parent.top.document; // Root Document } catch(e) {} try { var root = this.parent.top; // Root Element } catch(e) {} try { var selfObj = this.document; // Self Document } catch(e) {} /** * remove dot line when tag a, tag img is focused */ document.onfocus = function () { var obj = window.event.srcElement; if ((obj.tagName == 'A') || (obj.tagName == 'IMG')) { obj.blur(); } } /** * This method remove Html element (for IE Leak) * - 객체 삭제 * @param * @public */ function discardElement(element) { var garbageBin = document.getElementById('IELeakGarbageBin'); if (!garbageBin) { garbageBin = document.createElement('DIV'); garbageBin.id = 'IELeakGarbageBin'; garbageBin.style.display = 'none'; document.body.appendChild(garbageBin); } // move the element to the garbage bin garbageBin.appendChild(element); garbageBin.innerHTML = ''; } /** * When onFocus event of the date inputbox occured, formatting string * - input 박스 포커스 이벤트 발생시 날짜 구분자 제거 * @format yyyy-mm-dd * @param * @public */ function onDateFocus(){ var s = window.event.srcElement.value; s = s.replace(/ /g, ""); s = s.replace(/-/g, ""); window.event.srcElement.value = s; window.event.srcElement.select(); } /** * When onBlur event of the date inputbox occured, check the date string format * - input 박스에 blur 이벤트 발생시 날짜 구분자 추가 * @param * @public */ function onDateBlur(){ var err = 0; var s = window.event.srcElement.value; s = s.replace(/ /g, ""); s = s.replace(/-/g, ""); window.event.srcElement.value = s; if(s.length == 8){ for(var i = 0; i < s.length; i++) { if(!('0' <= s.charAt(i) && s.charAt(i) <= '9')) { alert("The string include invaild charactor, Input digits"); window.event.srcElement.focus(); return false; } } y = s.substring(0, 4); // year m = s.substring(4, 6); // month d = s.substring(6, 8); // day if(y < 1800 || y > 9999) err = 1; if(m < 1 || m > 12) err = 1; if(d<1 || d>31) err=1; if(m == 4 || m == 6 || m == 9 || m == 11) { if(d == 31) err = 1; } if(m == 2){ var g = parseInt(y / 4,10); if(isNaN(g)) err = 1; if(d > 29) err = 1; if(d == 29 && ((y / 4) != parseInt(y / 4,10))) err = 1; } if(err == 1) { alert("Invalid Date, Correct the inputed value"); window.event.srcElement.focus(); return false; } s = y + "-" + m + "-" + d; window.event.srcElement.value = s; return true; } if(s.length != 0){ alert("Invalid Date, Correct the inputed value"); window.event.srcElement.focus(); return false; } return true; } function onDateFormatChanage(arg){ var err = 0; var s = arg; s = s.replace(/ /g, ""); s = s.replace(/-/g, ""); window.event.srcElement.value = s; if(s.length == 8){ for(var i = 0; i < s.length; i++) { if(!('0' <= s.charAt(i) && s.charAt(i) <= '9')) { alert("The string include invaild charactor, Input digits"); //window.event.srcElement.focus(); return s; } } y = s.substring(0, 4); // year m = s.substring(4, 6); // month d = s.substring(6, 8); // day if(y < 1800 || y > 9999) err = 1; if(m < 1 || m > 12) err = 1; if(d<1 || d>31) err=1; if(m == 4 || m == 6 || m == 9 || m == 11) { if(d == 31) err = 1; } if(m == 2){ var g = parseInt(y / 4,10); if(isNaN(g)) err = 1; if(d > 29) err = 1; if(d == 29 && ((y / 4) != parseInt(y / 4,10))) err = 1; } if(err == 1) { alert("Invalid Date, Correct the inputed value"); //window.event.srcElement.focus(); return s; } s = y + "-" + m + "-" + d; window.event.srcElement.value = s; return s; } if(s.length != 0){ alert("Invalid Date, Correct the inputed value"); window.event.srcElement.focus(); return false; } return true; } /** * This method delete the left blank space of string * - 문자열의 왼쪽 공백 제거 * @param String str * @public * @return * ltrim(' s t ring ') = 's t ring ' */ function ltrim(str){ var s=new String(str); if(s.substr(0,1) == " ") return ltrim(s.substr(1)); else return s; } /** * This method delete the right blank space of string * - 문자열의 오른쪽 공백 제거 * @param String str * @public * @return * rtrim(' s t ring ') = ' s t ring' */ function rtrim(str){ var s=new String(str); if(s.substr(s.length-1,1) == " ") return rtrim(s.substring(0, s.length-1)) else return s; } /** * This method delete the right/left blank space of string * - 문자열의 좌/우측 공백제거 * @param String str * @public * @return * trim(' s t ring ') = 's t ring' */ function trim(str){ return ltrim(rtrim(str)); } /** * This method delete the all blank space of string * - 문자열의 전체 공백 제거 * @param String str * @public * @returnF * alltrim(' s t ring ') = 'string' */ function alltrim(str) { for(; str.indexOf(" ") != -1 ;){ str = str.replace(" ",""); } return str; } /** * This method calculate the interval of two date values * - 두 일자 사이의 간격 계산 * @param String dateFrom, String dateTo * @public * @return * return the interval 'date' of two date values * @exception */ function getIntervalOfDate(dateFrom, dateTo) { fromtime = dateFrom.replace(/[^0-9]/g, ""); totime = dateTo.replace(/[^0-9]/g, ""); for ( var i =0; i < 8; i++ ) { if((fromtime.charAt(i) == '.') || (fromtime.charAt(i) ==',')) return false; if((totime.charAt(i) =='.') || (fromtime.charAt(i) == ',')) return false; } if ( fromtime.length != 8 || totime.length != 8 ) { return false; } var year = fromtime.substring(0,4); var month = fromtime.substring(4,6); var day = fromtime.substring(6,8); var year2 = totime.substring(0,4); var month2 = totime.substring(4,6); var day2 = totime.substring(6,8); if(isNaN(year) || isNaN(month) || isNaN(day)) return false; if(isNaN(year2) || isNaN(month2) || isNaN(day2)) return false; if((year <= 0) || (year2 <= 0)) return false; if((month <= 0 || month > 12) || (month2 <= 0 || month2 > 12)) return false; var strFromYear = fromtime.substring(0,4); var strFromMonth = fromtime.substring(4,6); var strFromDay = fromtime.substring(6,8); var strToYear = totime.substring(0,4); var strToMonth = totime.substring(4,6); var strToDay = totime.substring(6,8); var from_time = new Date(strFromYear,Number(strFromMonth)-1,strFromDay); var to_time = new Date(strToYear,Number(strToMonth)-1,strToDay); var fmillsec = from_time.getTime(); var tmillsec = to_time.getTime(); var resultday = (tmillsec - fmillsec)/(1000*60*60*24); return resultday; } /** * This method calculate the interval of two month values * - 입력된 두날짜의 월을 기준으로 간격을 반환(단위 : 일) * @param String dateFrom, String dateTo * @public * @return * return the interval 'date' of two Month values * @exception */ function getIntervalOfMonth(dateFrom, dateTo) { fromtime = dateFrom.replace(/[^0-9]/g, ""); totime = dateTo.replace(/[^0-9]/g, ""); for ( var i =0; i < 6; i++ ) { if((fromtime.charAt(i) == '.') || (fromtime.charAt(i) ==',')) return false; if((totime.charAt(i) =='.') || (totime.charAt(i) == ',')) return false; } if ( fromtime.length != 6 || totime.length !=6 ) { return false; } var year = fromtime.substring(0,4); var month = fromtime.substring(4,6); var year2 = totime.substring(0,4); var month2 = totime.substring(4,6); if(isNaN(year) || isNaN(month)) return false; if(isNaN(year2) || isNaN(month2)) return false; if((year <= 0) || (year2 <= 0)) return false; if(month <= 0 || month > 12) return false; if(month2 <= 0 || month2 > 12) return false; var strFromYear = fromtime.substring(0,4); var strFromMonth = fromtime.substring(4,6); var strToYear = totime.substring(0,4); var strToMonth = totime.substring(4,6); var from_time = new Date(strFromYear,strFromMonth-1); var to_time = new Date(strToYear,strToMonth-1); var fmillsec = from_time.getTime(); var tmillsec = to_time.getTime(); var resultday = (tmillsec - fmillsec)/(1000*60*60*24); var absresult = Math.abs(resultday); return absresult; } /** * This method add day * - 날짜에 특정 일수를 더하거나 뺀 일자를 반환 * example : getAddDay('20070801', 2) * @param String Sdate, String addDay(2, 3, -4) * @public * @return * return added day * @exception */ function getAddDay(dayfrom, addDay){ Sdate = dayfrom.replace(/[^0-9]/g, ""); if(Sdate.length == 0) return Sdate; if(Sdate.length != 8) return Sdate; if(addDay.length == 0) return Sdate; if(isNaN(addDay)) return Sdate; var SdateY = eval( Sdate.substring(0,4) ); var SdateM = eval( Sdate.substring(4,6) ); var SdateD = eval( Sdate.substring(6,8) ); var dd = new Date(SdateY,SdateM-1,SdateD + eval(addDay) ); var retM = dd.getMonth()+1; var retD = dd.getDate(); if(parseInt(retM,10) < 10) retM = "0"+retM; if(parseInt(retD,10) < 10) retD = "0"+retD; return dd.getFullYear() + "" + retM + "" + retD ; } /** * This method add Month * - 입력된 일자에 특정 월을 더한 일을 반환 * example : getAddMonth('20070801', 2) * @param String Sdate, String addMonth(2, 3, -4) * @public * @return * return added day * @exception */ function getAddMonth(monthfrom, addMonth){ Sdate = monthfrom.replace(/[^0-9]/g, ""); if(Sdate.length == 0) return Sdate; if(Sdate.length != 8) return Sdate; if(addMonth.length == 0) return Sdate; if(isNaN(addMonth)) return Sdate; var SdateY = eval( Sdate.substring(0,4) ); var SdateM = eval( Sdate.substring(4,6) ); var SdateD = eval( Sdate.substring(6,8) ); var dd = new Date(SdateY,SdateM-1+ eval(addMonth), SdateD ); var retM = dd.getMonth()+1; var retD = dd.getDate(); if(parseInt(retM,10) < 10) retM = "0"+retM; if(parseInt(retD,10) < 10) retD = "0"+retD; return dd.getFullYear() + "" + retM + "" + retD ; } /** * This method check the vaild email address * - 이메일 유효성 검사 * @param String el * @public * @return * the email address is valid, return true else false * @exception */ function isValidEmail(el) { var pattern = "/^[-!#$%&\'*+\\./0-9=?A-Z^_a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_a-z{|}~]+$/"; return (pattern.test(el)) ? true : false; } /** * This method check that the inputed value is alphabetic/numeric code * - 입력된 문자의 ASCII 여부 확인 (영문, 숫자, 공백) * @param String el * @public * @return * if the inputed value is alphabetic/numeric code then return true else return false * @exception */ function isValidAscii(el) { var pattern = /[^ a-z0-9A-Z]/; return (pattern.test(el)) ? false : true; } /** * This method check the null value of String * - 문자변수가 공백인지 확인 * @param String str * @public * @return * if the inputed value is null then return true else return false * @exception */ function isEmpty(str) { return (alltrim(str) == "") ? true : false; } /** * This method get value of the html form element * - 폼 필드의 값을 반환 (체크박스, 셀렉트, 라디오 버튼) * @param html form input element - field * input type : text, checkbox, radio * select * @public * @return * return of the value input field * @exception */ function getHtmlFormFieldValue(field) { if(field.type == 'checkbox') { if(field.checked) return 'Y'; else return 'N'; } else if(field.type == 'select-one') { if(field.length > 0) { for(var i = 0; i < field.length; i ++) { if(field.options[i].selected) return field.options[i].value; } return ' '; } } else if(field.length > 0) { if(field[0].type == 'radio') { for(var i = 0; i < field.length; i ++) { if(field[i].checked) return field[i].value; } return ' '; } } return field.value; } /** * This method get value of the select-option * - 셀랙트 필드의 선택 값을 입력 * @param Object select-option, String val * @public */ function setSelectValue(fSelect, fVal) { fSelect = eval(fSelect); for (var i=0; i < fSelect.length; i++) { if (fSelect[i].value == fVal) { fSelect.selectedIndex = i; } } } /** * This method get value of the checkbox, radio * - 체크 박스, 라디오 박스의 값을 입력 * @param Object checkbox, radio, String val, Integer K * @public */ function setCheckRadioValue(fRadio, fVal, k) { fRadio = eval(fRadio); for ( var j=0; j<(k-1); j++ ) { if (fRadio[j].value == fVal) { fRadio[j].checked = "1"; } } } /** * This method set value of the html form element * - 폼 필드의 값을 입력 * @param html form input element - field input type : text, checkbox, radio, select * String fVal * @public * @return * return of the value input field * @exception */ function setHtmlFormFieldValue(fName, fVal) { var oName; fName = eval(fName); if((fName.type == "text") || (fName.type == "textarea") || (fName.type == "hidden") || (fName.type == "password")) { fName.value = fVal; } else if (fName.type == "select-one") { setSelectValue(fName, fVal); } else if ((fName.type == "button") || (fName.type == "submit") || (fName.type == "reset") ) { fName.value = "error"; } else if (fName.type == "checkbox") { if (fVal == 'Y') { fName.checked = true; } else { fName.checked = false; } } else if (fName[0].type == "radio") { var k = 0; for ( var i in fName ) { k = k + 1; } setCheckRadioValue(fName, fVal, k); } } /** * This method remove delimeter * - 문자열에서 특정 문자를 제거한 문자열 반환 * @param String str, String delimeter * @public * @return * return of the value input field * @exception */ function removedelimeter(str, delimeter) { var tmp = ""; for (var i=0; i1) for(var i=0; i0 && i1>0) s_new += ","; for(var j=0; j 0) s_new += ","; s_new += s.charAt(i2); s_new += s.charAt(i2+1); s_new += s.charAt(i2+2); i2 += 3; } if(yumu=='1') s_new=s_sign+s_new+'.'+temp[1]; else s_new=s_sign+s_new; window.event.srcElement.value=s_new; return s_new; } /** * This method delete ',' when focus into input box * - input 폼을 통화단위로 사용시 ',' 를 제거 (onFocus) 이벤트시 사용 * - Currency * @param * @public */ function onCurrencyFocus() { var s=window.event.srcElement.value; s=s.replace(/[,]/g, ""); window.event.srcElement.value=s; window.event.srcElement.select(); } /** * This method inset ',' into String * - 입력된 수를 통화 반위로 변경 반환 * - Currency * @param * - int amt : 수 * @return * - String : 통화 * @public */ function setNumbetToCurrency(amt) { var s=amt.toString(); s=s.replace(/[^0-9]/g, ""); if(s.length == 0) return s; var s_new = "", s_sign=""; if(s.charAt(1) == '-') { s_sign="-"; s=s.substring(1); } var ilen=s.length; var i1=parseInt(ilen/3,10); var i2=ilen%3; for(var i=0; i0 && i1>0) s_new += ","; for(var j=0; j0) s_new += ","; s_new += s.charAt(i2); s_new += s.charAt(i2+1); s_new += s.charAt(i2+2); i2 += 3; } s_new=s_sign+s_new; return s_new; } /** * This method delete ',' from String * - 입력된 통화단위 문자열을 수로 반환 * - Currency * @param * - String str : 통화 * - String return : 수 * @public */ function setCurrencyToNumber(str) { var s = str.replace(/[^0-9]/g, ""); return s; } function returnCodeTip(cd, nm, cdfield, nmfield) { selfObj.getElementById(cdfield).value = cd; selfObj.getElementById(nmfield).value = nm; if (null != selfObj.getElementById('DHTMLSuite_ajax_tooltipObj')) { discardElement(selfObj.getElementById('DHTMLSuite_ajax_tooltipObj')); } } /** * This method find code value (common component) * - search database by parameter * - 공통 코드 조회 * @param * @usage * @public */ function onCodeSearch(sqlId, codeField, nameField, title, codeTitle, nameTitle) { var s = document.getElementById(codeField).value; if (null == s) { s = ''; } var url = '/hd/jsp/app/app00300/app00300.jsp?title=' + title + '&sqlid=' + sqlId + '&code=' + s + '&codefield=' + codeField + '&namefield=' + nameField + '&codetitle=' + codeTitle + '&nametitle=' + nameTitle; var tooltipObj = new DHTMLSuite.dynamicTooltip(); tooltipObj.displayTooltip(url, window.event.srcElement); var obj = document.getElementById('DHTMLSuite_ajax_tooltip_content'); obj.style.width = '263px'; obj.style.height = '157px'; var bodyobj = this.document.getElementsByTagName('body'); var bodywidth = bodyobj[0].clientWidth; var bodyheight = bodyobj[0].clientHeight; var tipobj = document.getElementById('DHTMLSuite_ajax_tooltipObj'); var objwidth = parseInt(tipobj.style.left.replace(/[px]/g, ''),10) + parseInt(obj.style.width.replace(/[px]/g, ''),10); if (objwidth > bodywidth) { tipobj.style.left = (bodywidth - parseInt(obj.style.width.replace(/[px]/g, ''),10) - 30) + 'px'; tipobj.style.top = (parseInt(tipobj.style.top.replace(/[px]/g, ''),10) + 17) + 'px'; } else { } var tipObj = selfObj.getElementById('DHTMLSuite_ajax_tooltipObj'); tipObj.style.display = 'block'; } /** * This method return the checked number of data grid and update the job type * - 그리드에 체크박스된 체크된 숫자 및 job_type 업데이트 * @param document.form - form * @usage * if use modal then doCheckCount(form); * @public */ function doCheckCount(form){ var check_count = 0; if(form){ // if not array, one element exist (배열이 아니고 하나만 존재하다면) var chk_obj = form.chk_confirm; var job_obj = form.job_type; if(chk_obj){ if(chk_obj.length){ for(var i = 0; i < chk_obj.length; i++){ if(chk_obj[i].checked) { check_count++; job_obj[i].value = "P"; } else{ job_obj[i].value = "S"; } } } else { if(chk_obj.checked){ check_count++; job_obj.value = "P"; } else{ job_obj.value = "S"; } } } } return check_count; } function getReplaceInputValue(elname){ var returnValue = ""; if (elname.className == "number") { returnValue = elname.value.replace(/\,/g, ""); } else if (elname.className == "date") { returnValue = elname.value.replace(/\-/g, ""); } else { returnValue = elname.value; } return returnValue; } function getNotDate(){ var dateStr = ""; var now = new Date(); var year = now.getYear(); var date = now.getDate(); var month = now.getMonth()+1; var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); dateStr = year; dateStr += "/" + month; dateStr += ((date<10) ? "/0" : "/") + date; dateStr += " "+hours; dateStr += ((minutes<10) ? ":0" : ":") + minutes; dateStr += ((seconds<10) ? ":0" : ":") + seconds; return dateStr; } function getProcessResult(rootElement, elementName) { var success = "success"; var valueElements = rootElement.getElementsByTagName(elementName); var result = new Array(); for (var i = 0; i < valueElements.length; i++) { var valueElement = valueElements[i]; if (valueElement != null && valueElement.firstChild != null) { result[i] = valueElement.firstChild.nodeValue; if (valueElement.firstChild.nodeValue != 'OK'){ success = "false"; } result = valueElement.firstChild.nodeValue; } } if (success == "false"){ var logDate = getNotDate(); //alert('The error occurred. Please check the log tab.'); //sendLogMessage("["+logDate+"] "+result); fncResultMsg(result); return ; } else{ //alert("OK"); //var msg = "정상적으로 처리되었습니다."; fncResultMsg(result); return ; } } function getDate() { return root.getDate(); } function getTime() { return root.getTime(); } function round(num, position, base){ if ( position == 1 ){ if ( base == "f" ){ return Math.round(num); }else{ return Math.round(num / 10) * 10; } }else if(position > 0){ var cipher = '1'; for(var i=0; i < position; i++ ) cipher = cipher + '0'; var no = number(cipher); if(base == "f"){ return Math.round(num * no) / no; }else{ return Math.round(num / no) * no; } }else{ return false; } } function getNumToKor(num){ var resultStr = ''; if(num != ""){ var i, j=0, k=0; var han1 = new Array("","일","이","삼","사","오","육","칠","팔","구"); var han2 = new Array("","만 ","억 ","조 ","경 ","해 ","시 ","양 ","구 ","간 "); var han3 = new Array("","십","백","천"); var result="", hangul = num + "", pm = ""; var str = new Array(), str2=""; var strTmp = new Array(); if(parseInt(num,10)==0) resultStr = "영"; //입력된 숫자가 0일 경우 처리 if(hangul.substring(0,1) == "-"){ //음수 처리 pm = "마이너스 "; hangul = hangul.substring(1, hangul.length); } if(hangul.length > han2.length*4) resultStr ="too much number"; //범위를 넘는 숫자 처리 자리수 배열 han2에 자리수 단위만 추가하면 범위가 늘어남. for(i=hangul.length; i > 0; i=i-4){ str[j] = hangul.substring(i-4,i); //4자리씩 끊는다. for(k=str[j].length;k>0;k--){ strTmp[k] = (str[j].substring(k-1,k))?str[j].substring(k-1,k):""; strTmp[k] = han1[parseInt(strTmp[k],10)]; if(strTmp[k]) strTmp[k] += han3[str[j].length-k]; str2 = strTmp[k] + str2; } str[j] = str2; if(str[j]) result = str[j]+han2[j]+result; //4자리마다 한칸씩 띄워서 보여주는 부분. 우선은 주석처리 //result = (str[j])? " "+str[j]+han2[j]+result : " " + result; j++; str2 = ""; } resultStr = "( " + pm + result + " 원 )"; //부호 + 숫자값 }else{ resultStr = ''; } return resultStr; } function getNumToChina(num){ var resultStr = ''; var yuan = 0; var maho = 0; var mahoTemp = 0; var fun = 0; var yuanResult = ''; var mahoResult = ''; var funResult = ''; if(num != ""){ var commanInd = num.indexOf("."); if (commanInd > -1){ yuan = num.substring(0,commanInd); mahoTemp = num.substring(commanInd+1,num.length); if(mahoTemp.length == 2){ maho = mahoTemp.substring(0,1); fun = mahoTemp.substring(1,2); }else{ maho = mahoTemp; } }else{ yuan = num; } var china1 = new Array("","壹","貳","叁","肆","伍","陆","柒","捌","玖"); var china2 = new Array("","万","亿"); var china3 = new Array("","拾","佰","仟"); if (yuan > 0){ var i, j=0, k=0; var result="", china = yuan + "", pm = ""; var str = new Array(), str2=""; var strTmp = new Array(); if(parseInt(yuan,10)==0) yuanResult = ""; //입력된 숫자가 0일 경우 처리 if(china.substring(0,1) == "-"){ //음수 처리 pm = "-"; china = china.substring(1, china.length); } if(china.length > china2.length*4) resultStr ="too much number"; //범위를 넘는 숫자 처리 자리수 배열 china2에 자리수 단위만 추가하면 범위가 늘어남. for(i=china.length; i > 0; i=i-4){ str[j] = china.substring(i-4,i); //4자리씩 끊는다. for(k=str[j].length;k>0;k--){ strTmp[k] = (str[j].substring(k-1,k))?str[j].substring(k-1,k):""; strTmp[k] = china1[parseInt(strTmp[k],10)]; if(strTmp[k]) strTmp[k] += china3[str[j].length-k]; str2 = strTmp[k] + str2; } str[j] = str2; if(str[j]) result = str[j]+china2[j]+result; j++; str2 = ""; } yuanResult = pm + result + "圆"; //숫자값 } if (maho > -1){ if(parseInt(maho,10)==0){ mahoResult = ""; }else{ mahoResult = china1[parseInt(maho,10)]+ "角"; //숫자값 } } if (fun > -1){ if(parseInt(fun,10)==0){ funResult = ""; }else{ funResult = china1[parseInt(fun,10)]+ "分"; //숫자값 } } resultStr = yuanResult + mahoResult + funResult; }else{ resultStr = ''; } return resultStr; } function checkInvoiceNumber(invoiceNumber) { if (invoiceNumber.length != 10 && invoiceNumber.length != 12) { return false; } if(invoiceNumber.length == 10) { var invNumber = parseInt(invoiceNumber.substring(0, 9),10); var chkDigit = parseInt(invoiceNumber.charAt(9),10); var tmpDigit = invNumber % 7; if (chkDigit != tmpDigit) { return false; } return true; } else { var invNumber = invoiceNumber.substring(0, invoiceNumber.length-1); var chkDigit = parseInt(invoiceNumber.charAt(invoiceNumber.length-1),10); var len = invNumber.length; var cut = Math.floor(invNumber.length/2); var inv_1 = parseInt(invNumber.substring(0,cut),10); var inv_2 = parseInt(invNumber.substring(cut,len),10); var result = (((inv_1 % 7) * Math.pow(10, (len-cut)))+ inv_2) % 7; if (chkDigit != result) { return false; } return true; } } /** * This method check that the inputed value is digit * input 박스에 숫자만 입력 가능하게 할 경우 * @param * @public * @return * If the inputed value is digits then return ture else return false * @description * */ function onKeyDigit() { var key = event.keyCode; if (!((key >= 48) && (key <= 57) ||(key == 46))) { event.returnValue = false; } } /** * This method check that the inputed value is Alphabet/Digit, Space * - input 박스에 숫자, 영어, 공백 만 입력 가능하게 할 경우 * @param * @public * @return * If the inputed value is digits then return ture else return false * @description * */ function onKeyAscii() { var key = event.keyCode; if (!(((key >= 48) && (key <= 57)) || ((key >= 65) && (key <= 90)) || ((key >= 97) && (key <= 122)) || (key == 32) || (key == 95))) { event.returnValue = false; } } /** * This method calculate length of String (Byte) * - 문자열의 byte 수 리턴 * @param String str * @public * @return * return length of String(byte) * @exception */ function getByteLength(str) { /* var encoding * if the page character set is unicode(UTF-8) then encoding value is 2 * if the page character set is euckr(KS5601/MS949) then encoding value is 1 */ var encoding = 2; return(str.length + (((escape(str)+"%u").match(/%u/g).length - 1) * encoding)); } /** * This method restric string length of the input field * - input 박스의 입력 글자 길이 제한 (onBlur 이벤트에 사용) * @param int restrictLength (byte) - 글자제한 길이 (단위 byte) * String logMessage - 글자초과시 경고문 * @usage * * @public */ function onRestrictByteLength(restrictLength, logMessage) { var obj = window.event.srcElement; var str = obj.value; var strLength = getByteLength(str); if (strLength > restrictLength) { obj.value = getRestrictByteLength(str, restrictLength); if (logMessage) { sendLogMessage(logMessage); } } } /** * This method return the resticted length of String * @param String str * int restrictLength - 글자 제한 길이 * @return * return the resticted length of String * @public */ function getRestrictByteLength(str, restrictLength) { var strLength = getByteLength(str); var charT = ''; var charTLength = 0; var tempString = ''; var returnString = ''; if (strLength > restrictLength) { for (i = 0; i < str.length; i++) { charT = str.charAt(i); if (getByteLength(tempString + charT) <= restrictLength) { tempString = tempString + charT; } else { break; } } } return tempString; } //개체의 색 function focusColor(obj,color) { obj.style.backgroundColor=color; } /** * this method open the popup window that query user's sql * @param * Array String arrGetfield - query's condition field name : ['code', 'name'] * String arrPutfield - the input field's name that the returned value of query is inserted * String sqlId - user query's path * String condsql - query's input variable name * String label - popup window's name * String cells - table's header name of the popup window * String sqlfield - selected field name in query */ function getSqlSearch(arrGetfield, arrPutfield, sqlId, condsql, sqlfield, label, cells) { var value = ""; for (i = 0; i < arrGetfield.length; i++) { value = value + getHtmlFormFieldValue(document.getElementById(arrGetfield[i])); if (i != (arrGetfield.length - 1)) { value = value + ","; } } var countSqlfield = sqlfield.match(/[,]/g).length + 1; var width = countSqlfield * 80; var url = " /hd/jsp/app/app00300/app00301.jsp?getfield=" + arrGetfield + "&putfield=" + arrPutfield + "&value=" + value + "&sqlid=" + sqlId + "&condsql=" + condsql +"&label=" + label + "&cells=" + cells + "&sqlfield=" + sqlfield + "&width=" + width; var tipCodeObj = new DHTMLSuite.dynamicTooltip(); tipCodeObj.displayTooltip(url, window.event.srcElement); var obj = document.getElementById('DHTMLSuite_ajax_tooltip_content'); obj.style.width = '263px'; obj.style.height = '159px'; var bodyobj = this.document.getElementsByTagName('body'); var bodywidth = bodyobj[0].clientWidth; var bodyheight = bodyobj[0].clientHeight; var tipobj = document.getElementById('DHTMLSuite_ajax_tooltipObj'); var objwidth = parseInt(tipobj.style.left.replace(/[px]/g, ''),10) + parseInt(obj.style.width.replace(/[px]/g, ''),10); if (objwidth > bodywidth) { tipobj.style.left = (bodywidth - parseInt(obj.style.width.replace(/[px]/g, ''),10) - 30) + 'px'; tipobj.style.top = (parseInt(tipobj.style.top.replace(/[px]/g, ''),10) + 17) + 'px'; } else { } var tipObj = selfObj.getElementById('DHTMLSuite_ajax_tooltipObj'); tipObj.style.display = 'block'; } function returnCode(arrfield, arrvalue) { for (i = 0; i < arrfield.length; i++) { if (null == arrvalue) { selfObj.getElementById(arrfield[i]).value = ''; } else { selfObj.getElementById(arrfield[i]).value = trim(arrvalue[i]); } } if (null != selfObj.getElementById('DHTMLSuite_ajax_tooltipObj')) { discardElement(selfObj.getElementById('DHTMLSuite_ajax_tooltipObj')); } } function setValue(rootElement, elementName) { var valueElement = rootElement.getElementsByTagName(elementName.toUpperCase())[0]; if(valueElement != null && valueElement.firstChild != null) { document.getElementById(elementName).value = valueElement.firstChild.nodeValue; } else { document.getElementById(elementName).value = ''; } } function openPreviewWindow(url) { var name = ""; if(arguments[1] && arguments[1]!="") { name = arguments[1]; } return open(url,name,'width=1024,height=768, status=yes, toolbar=no, menubar=no, location=no, scrollbars=auto, resizable=yes',true); } function openPopupWindow() { var url = (jsNull(arguments[0]) ? "" : arguments[0]); var winName = (jsNull(arguments[1]) ? "" : arguments[1]); var width = (jsNull(arguments[2]) ? 550: arguments[2]); var height = (jsNull(arguments[3]) ? 450: arguments[3]); var left = (screen.availWidth / 2) - (width / 2); var top = (screen.availHeight / 2) - (height / 2); if(url=="") { return; } else { return open(url,winName,'left='+ left +'px ,top='+ top +'px ,width='+ width +',height='+ height +', status=no, toolbar=no, menubar=no, location=no, scrollbars=no, resizable=no',true); } } function openPopupWindow2() { var url = (jsNull(arguments[0]) ? "" : arguments[0]); var winName = (jsNull(arguments[1]) ? "" : arguments[1]); var width = (jsNull(arguments[2]) ? 550: arguments[2]); var height = (jsNull(arguments[3]) ? 450: arguments[3]); var left = (screen.availWidth / 2) - (width / 2); var top = (screen.availHeight / 2) - (height / 2); if(url=="") { return; } else { return open(url,winName,'left='+ left +'px ,top='+ top +'px ,width='+ width +',height='+ height +', status=yes, toolbar=no, menubar=no, location=no, scrollbars=yes, resizable=no',true); } } function getItemInfo(elItemCd, elItemNm) { var url = '/hd/jsp/app/app00300/app00302.jsp?elcd=' + elItemCd + '&elnm=' + elItemNm + '&row=0'; openPopupWindow(url); } function getTableItemInfo(elItemCd, elItemNm) { var eventobj = window.window.event.srcElement; var tdobj = eventobj.parentNode; var trobj = tdobj.parentNode; var url = '/hd/jsp/app/app00300/app00302.jsp?elcd=' + elItemCd + '&elnm=' + elItemNm + '&row=' + trobj.rowIndex ; openPopupWindow(url); } function getTablePackageItemInfo(elItemCd, elItemNm) { var eventobj = window.window.event.srcElement; var tdobj = eventobj.parentNode; var trobj = tdobj.parentNode; var url = '/hd/jsp/app/app00300/app00309.jsp?elcd=' + elItemCd + '&elnm=' + elItemNm + '&row=' + trobj.rowIndex ; openPopupWindow(url); } function getTableItemInfos(elItemCd, elItemNm, elPackCd, elBoxInPallet, elCaseInBox, elEaInCase) { var eventobj = window.window.event.srcElement; var tdobj = eventobj.parentNode; var trobj = tdobj.parentNode; var url = '/hd/jsp/app/app00300/app00306.jsp?elItemCd=' + elItemCd + '&elItemNm=' + elItemNm + '&elPackCd=' + elPackCd + '&elBoxInPallet=' + elBoxInPallet + '&elCaseInBox=' + elCaseInBox + '&elEaInCase=' + elEaInCase + '&row=' + trobj.rowIndex ; openPopupWindow(url); } function getLocationCode(elLocationCd,elZoneCd,elZoneNm) { var url = '/hd/jsp/app/app00300/app00304.jsp?elLocCd=' + elLocationCd + '&elZoneCd=' + elZoneCd + '&elZoneNm=' + elZoneNm + '&row=0'; openPopupWindow(url); } function getTableLocationCode(elLocationCd, elZoneCd, elZoneNm) { var eventobj = window.window.event.srcElement; var tdobj = eventobj.parentNode; var trobj = tdobj.parentNode; var url = '/hd/jsp/app/app00300/app00304.jsp?elLocCd=' + elLocationCd + '&elZoneCd=' + elZoneCd + '&elZoneNm=' + elZoneNm + '&row=' + trobj.rowIndex ; openPopupWindow(url); } function getInvInfo(elCarrierCd, elCarrierNm, elInvNo, elOrderNo, elPickYmdFrom, elPickYmdTo, elSnperNm, elRecvNm, storer_cd, carrier_cd, inv_no, order_no, pick_ymd_from, pick_ymd_to, snper_nm, recv_nm) { var url = '/hd/jsp/app/app00300/app00308.jsp?elCarrierCd=' + elCarrierCd + '&elCarrierNm=' + elCarrierNm + '&elInvNo=' + elInvNo + '&elOrderNo=' + elOrderNo + '&elPickYmdFrom=' + elPickYmdFrom + '&elPickYmdTo=' + elPickYmdTo + '&elSnperNm=' + elSnperNm + '&elRecvNm=' + elRecvNm + '&storer_cd=' + storer_cd + '&carrier_cd=' + carrier_cd + '&inv_no=' + inv_no + '&order_no=' + order_no + '&pick_ymd_from=' + pick_ymd_from + '&pick_ymd_to=' + pick_ymd_to + '&snper_nm=' + snper_nm + '&recv_nm=' + recv_nm + '&row=0'; openPopupWindow(url); } function getTableSectionCode(centerCd, elSectionCd, elSectionNm) { var eventobj = window.window.event.srcElement; var tdobj = eventobj.parentNode; var trobj = tdobj.parentNode; var url = '/hd/jsp/app/app00300/app00310.jsp?elSectionCd=' + elSectionCd + '&elSectionNm=' + elSectionNm + '¢er_cd=' + centerCd + '&row=' + trobj.rowIndex ; openPopupWindow(url); } /* cjyang Define Start*/ /* 공통코드를 가져오기 위해 실행되는 Function * arg_dataSet은 반드시 form객체로 넘긴다. * arg는 찾고자 하는 코드의 구분값 */ function commonCode(arg_dataSet, arg, arg_allfalg){ var action = "/hd/jsp/common/response.jsp?com.hd.framework.handler.class.name=com.hd.common.LovHandlers"; var param = "&pat_cd="+arg; arg_dataSet.DataID = action+param; arg_dataSet.Reset(); if(arg_allfalg=="Y"){ arg_dataSet.InsertRow(1); arg_dataSet.NameValue(1,"code")="00"; arg_dataSet.NameValue(1,"value")="전체"; } } /* Modal창을 실행하기 위한 공통 script */ function _openPopup(tUrl, iParam, dialogWidth, dialogHeight) { dialogWidth = (dialogWidth == null ? 400: dialogWidth); dialogHeight = (dialogHeight == null ? 400: dialogHeight); return window.showModalDialog(tUrl, iParam, "dialogWidth:" + dialogWidth + "px;dialogHeight:" + dialogHeight + "px;center:yes;scroll:auto;status:no;"); } function fncSearchCode(arg_target, arg_colcnt, arg_searchValue, arg_searchAttribute1, arg_searchAttribute2, arg_searchAttribute3, arg_searchAttribute4, arg_searchAttribute5, arg_button){ var tUrl = "/hd/jsp/common/com_searchpopup.jsp"; var iParam = new Object(); iParam.target = arg_target; iParam.searchColumns = arg_colcnt; iParam.searchValue = arg_searchValue; //검색조건 iParam.button = arg_button; //버튼 iParam.searchAttribute1 = arg_searchAttribute1; //대리점 브랜드 구분자 iParam.searchAttribute2 = arg_searchAttribute2;//arg_searchAttribute2; //대리점 검색조건 iParam.searchAttribute3 = arg_searchAttribute3; //브랜드 검색조건 iParam.searchAttribute4 = arg_searchAttribute4; iParam.searchAttribute5 = arg_searchAttribute5; return _openPopup(tUrl, iParam, iParam.divWidth, iParam.divHeight); } function fncResultMsg(arg){ try { top.sendLogMessage(arg); } catch(e) { try { parent.parent.sendLogMessage(arg); } catch(e) { try { parent.sendLogMessage(arg); } catch(e) { try { sendLogMessage(arg); } catch(e) { try { opener.top.sendLogMessage(arg); } catch(e) { try { opener.parent.parent.sendLogMessage(arg); } catch(e) { try { opener.parent.sendLogMessage(arg); } catch(e) { try { opener.sendLogMessage(arg); } catch(e) { alert(arg); } } } } } } } } /* var topPage = top.document; var logPage = topPage.frames[5].document; var logObj = logPage.getElementById("logMsg"); var logMsg = "" + arg + ""; logObj.innerHTML=logMsg; //logPage.scripts.downScroll();*/ } function fncResultMsg2(arg){ try { top.sendLogMessage(arg); } catch(e) { try { parent.parent.sendLogMessage(arg); } catch(e) { try { parent.sendLogMessage(arg); } catch(e) { try { sendLogMessage(arg); } catch(e) { try { opener.top.sendLogMessage(arg); } catch(e) { try { opener.parent.parent.sendLogMessage(arg); } catch(e) { try { opener.parent.sendLogMessage(arg); } catch(e) { try { opener.sendLogMessage(arg); } catch(e) { alert(arg); } } } } } } } } /* var topPage = top.document; var logPage = topPage.frames[5].document; var logObj = logPage.getElementById("logMsg"); var logMsg = "
" + arg + "
"; logObj.innerHTML+=logMsg; //logPage.scripts.downScroll();*/ } function fncResultMsgInit(){ try { top.sendLogMessage(''); } catch(e) { try { parent.parent.sendLogMessage(''); } catch(e) { try { parent.sendLogMessage(''); } catch(e) { try { sendLogMessage(''); } catch(e) { try { opener.top.sendLogMessage(''); } catch(e) { try { opener.parent.parent.sendLogMessage(''); } catch(e) { try { opener.parent.sendLogMessage(''); } catch(e) { try { opener.sendLogMessage(''); } catch(e) { return; } } } } } } } } /* var topPage = top.document; var logPage = topPage.frames[5].document; var logObj = logPage.getElementById("logMsg"); var logMsg = "" + ""; logObj.innerHTML=logMsg; //logPage.scripts.downScroll(); */ } function getSearchBoxHeight(arg){ var rValue; if(ieVerCheck()){ rValue = (24*arg) + 42; }else{ rValue = (27*arg) + 46; } return rValue; } function getBoxHeightVer(arg1, arg2){ // arg1:IE7,arg2:IE6 var rValue; if(ieVerCheck()){ rValue = arg1; }else{ rValue = arg2; } return rValue; } function ieVerCheck(){ var ieVer = navigator.appVersion; var ie = false; if(ieVer.indexOf("MSIE 7")>=0 || ieVer.indexOf("MSIE 8")>=0){ ie = true; } return ie } /* cjyang Define End*/ function ChkInv(inv_no){ if(alltrim(inv_no).length == 10){ if(inv_no.substring(0,2) >= 50 || inv_no.substring(0,2) >= 60){ return true; } } return checkInvoiceNumber(inv_no); } function ChkAmtQtyNumberField(arg){//금액이 숫자만 입력되었는지 체크함. var formatArray = new Array("0","1","2","3","4","5","6","7","8","9",","); var forCharLength = arg.length; var forArrayLength = formatArray.length; var tmpChar=""; var chkCnt = 0; for(var i=0; i1) for(var i=0; i0 && i1>0) s_new += ","; for(var j=0; j 0) s_new += ","; s_new += s.charAt(i2); s_new += s.charAt(i2+1); s_new += s.charAt(i2+2); i2 += 3; } if(yumu=='1') s_new=s_sign+s_new+'.'+temp[1]; else s_new=s_sign+s_new; window.event.srcElement.value=s_new; return s_new; } /* 콤마제거함수 */ function noComma() { var s=window.event.srcElement.value s=s.replace(/ /g, "") s=s.replace(/,/g, "") window.event.srcElement.value=s; window.event.srcElement.select(); } /* 콤마삽입함수-파라미터 1개 */ function toComma2(amt) { var s=amt.toString(); s=s.replace(/ /g, ""); if(s.length == 0) return s; var s_new = "", s_sign=""; if(s.charAt(1) == '-') { s_sign="-"; s=s.substring(1); } var ilen=s.length; var i1=parseInt(ilen/3,10); var i2=ilen%3; for(var i=0; i0 && i1>0) s_new += ","; for(var j=0; j0) s_new += ","; s_new += s.charAt(i2); s_new += s.charAt(i2+1); s_new += s.charAt(i2+2); i2 += 3; } s_new=s_sign+s_new; return s_new; } /* 콤마제거함수-파라미터 1개 */ function noComma2(amt) { var s=amt; s=s.replace(/ /g, ""); s=s.replace(/,/g, ""); if(s=="" && s.length==0) s="0"; return s; } /* 마우스 오른쪽 버튼 막기 */ document.oncontextmenu = function () { try { if(CookieUtil.getCookie("debug")!="TRUE"){ return false; } } catch(e) { return false; } } document.onkeydown = function() { try { if(event.keyCode=="113") { //F2 var page = null; var tmpPage = null; var sheet = null; var tmpSheet = null; try { onHelp(); } catch(e) { try { page = parent.top.tabframe.getActivePageIFrame(); tmpPage = eval("top.document."+ page.id); tmpPage.onHelp(); } catch(e) { try { sheet = tmpPage.tabFrame.getActiveSheet(); tmpSheet = eval("top.document."+ page.id +"."+ sheet.id); tmpSheet.onHelp(); } catch(e) { openHelp(); //기본도움말 페이지 //alert("현재페이지에는 도움말이 없습니다."); } } } event.returnValue = false; event.keyCode = 0; return false; } if(CookieUtil.getCookie("debug")!="TRUE" && event.keyCode==116) { event.returnValue = false; event.keyCode = 0; return false; } } catch(e) { event.returnValue = false; event.keyCode = 0; return false; } } function onKeyCancel() { event.returnValue = false; } function onReflashCancel() { event.returnValue = false; event.keyCode = 0; return false; } /*사업자번호에서 Focus가 옮겨질때 mmmmmmmmmm을 mmm-mm-mmmmm으로 변환한다. 오류도 병행한다.*/ function onBizerBlur(){ fncResultMsgInit(); var saupno=window.event.srcElement.value; window.event.srcElement.value = saupno; if (saupno.length != 0) { var sum=0; var chkvalue = new Array(9); var epno = new Array(10); chkvalue[1] = 1; chkvalue[2] = 3; chkvalue[3] = 7; chkvalue[4] = 1; chkvalue[5] = 3; chkvalue[6] = 7; chkvalue[7] = 1; chkvalue[8] = 3; chkvalue[9] = 5; for (var i=1; i<=10; i++) epno[i] = parseInt(saupno.charAt(i-1),10); for (var i=1; i<=9; i++) sum += epno[i] * chkvalue[i]; sum = sum + ((epno[9]*5) / 10) - (((epno[9]*5)%10)/10); var chk = sum%10; if (chk!=0) chk = 10-chk; if (chk != epno[10]) { fncResultMsg(MessageUtil.getMessage("EU0027")); //alert(MessageUtil.getMessage("EU1037")); window.event.srcElement.focus(); return; } saupno=saupno.substring(0,3)+"-"+saupno.substring(3,5)+"-"+saupno.substring(5,10); window.event.srcElement.value = saupno; } } /*사업자번호에 Focus가 왔을 때 mmm-mm-mmmmm를 mmmmmmmmmm으로 변경 */ function onBizerFocus(){ var s=window.event.srcElement.value s=s.replace(/ /g, "") s=s.replace(/-/g, "") window.event.srcElement.value = s } /*사업자번호값을 보내주면 mmmmmmmmmm을 mmm-mm-mmmmm으로 변환한다. 오류도 병행한다.*/ function onBizer(arg){ fncResultMsgInit(); var saupno=arg; if (saupno.length != 0) { var sum=0; var chkvalue = new Array(9); var epno = new Array(10); chkvalue[1] = 1; chkvalue[2] = 3; chkvalue[3] = 7; chkvalue[4] = 1; chkvalue[5] = 3; chkvalue[6] = 7; chkvalue[7] = 1; chkvalue[8] = 3; chkvalue[9] = 5; for (var i=1; i<=10; i++) epno[i] = parseInt(saupno.charAt(i-1),10); for (var i=1; i<=9; i++) sum += epno[i] * chkvalue[i]; sum = sum + ((epno[9]*5) / 10) - (((epno[9]*5)%10)/10); var chk = sum%10; if (chk!=0) chk = 10-chk; if (chk != epno[10]) { fncResultMsg(MessageUtil.getMessage("EU0027")); //alert(MessageUtil.getMessage("EU1037")); //window.event.srcElement.focus(); return false; } saupno=saupno.substring(0,3)+"-"+saupno.substring(3,5)+"-"+saupno.substring(5,10); return saupno; } return true; } // 메일주소 체크 function Email_check() { fncResultMsgInit(); var str=window.event.srcElement.value; if (str.length!=0) { if( str.indexOf("@") != -1 && str.indexOf(".") != -1 ) { return true; }else{ fncResultMsg(MessageUtil.getMessage("EU0100")); //alert(MessageUtil.getMessage("EU1038")); } } } // 운송장 번호 xx-xxxx-xxxx 또는 xxxx-xxxx-xxxx 로 변경 function invNoFormatChange(arg){ var cArg = jsReplace(arg,"-",""); if(!jsNumeric3(cArg) || (cArg.length!=10 && cArg.length!=12)){ fncResultMsg(MessageUtil.getMessage("EU1033")); return arg; }else{ if(cArg.length==10) { return (cArg.substring(0,2) +"-"+ cArg.substring(2,6) +"-"+ cArg.substring(6,10)); } else if(cArg.length==12) { return (cArg.substring(0,4) +"-"+ cArg.substring(4,8) +"-"+ cArg.substring(8,12)); } else { return arg; } } } /* '************************************************************************ ' [최초 작성자] 허은성 ' [최초 작성일] 2008-10-01 ' [메뉴및 용도] XML 다국어 메세지 ' [주 의 사 항] ' [특 이 사 항] ' [수 정 사 항] '************************************************************************ */ var MessageUtil = { getMessage: function(key) { var returnText = key; var parameter = new Parameter(); parameter.setUrl("/hd/jsp/common/message.jsp"); parameter.set("key", key); new HttpRequest({ parameters: parameter.toString(), asynchronous: false, onSuccess: function(request) { returnText = new HttpResponse(request).getTextResponse().replace(/(^\s*)|(\s*$)/g,""); } }); return returnText; } }; /* '************************************************************************ ' [최초 작성자] 허은성 ' [최초 작성일] 2008-10-14 ' [메뉴및 용도] Print용 객체 ' [주 의 사 항] ' [특 이 사 항] ' [수 정 사 항] '************************************************************************ */ var PrintUtil = { init: function() { var elID = "DIV_PRINT"; var elFrameID = "IFM_PRINT"; if(!jsNull(arguments[0])) { elID += ("_"+ arguments[0]); elFrameID += ("_"+ arguments[0]); } var el = document.createElement("div"); el.id = elID; el.style.width = "100%"; var elframe; if(!HytossUI) { document.write(''); } if (HytossUI.core.isMSIE) { elframe = document.createElement('