/**
* alertMsg(ErrCode,ErrMsg) 입력받은 메세지 코드의 메세지를 alert으로 화면에 표시
* @param ErrMsg 앞에 붙일 메세지내용
* @param MsgCode 메세지 코드
* @return N/A
* @histroy 2008.01.15 김정원
*/
function alertMsg(ErrCode,ErrMsg){
if((ErrCode !='')&&(isNumber(ErrCode))){ //에러메시지가 숫자형 인지 확인한다.
if(ErrCode == "50014"){
alert("데이타 로딩시 포멧에 오류가 있읍니다.");
return;
}else if(ErrCode == "50018"){
if((ErrMsg != null)&&(ErrMsg != "")){
// alert(ErrMsg+"은(는) 필수입력항목입니다.");
alert(ErrMsg+" is required.");
}else{
alert("필수입력항목을 모두 입력하십시오.");
}
return;
}else if(ErrCode == "50019"){
alert("KEY값이 중복되었습니다.");
return;
}else if(ErrCode == "50030"){
alert("해당하는 ColumnID를 찾을 수 없읍니다.");
return;
}else{
alert(ErrCode);
return;
}
}
//에러코드의 타입을 구분한다. 1차로 에러 메시지와 코드를 분리한다.
var codeMsgYN;
var defYN;
var msgRead = "";
//2차로 정의된 에러메시지 인지 구분한다.
var defValue = ErrCode.split("_");
if(defValue[1] == null){
defYN = "N";
}else{
defYN = "Y";
}
//정의된 에러 메시지 이면 정의된 항목을 가져와서 리턴한다.
if(defYN == "Y"){
// var read1 = ErrMsg+" "+msg;
// var read2 = msg+" "+ErrMsg;
switch( ErrCode ){
case "NO_UPLOAD" :
// msg = "업로드할 자료가 없습니다.";
msg = "There is no data to upload.";
break;
case "SAVE_OK" :
// msg = "성공적으로 저장되었습니다.";
msg = "Save process is completed.";
break;
case "DELETE_OK" :
// msg = "성공적으로 삭제되었습니다.";
msg = "Process Deleted.";
break;
case "CANCEL_OK" :
// msg = "성공적으로 취소되었습니다.";
msg = "Process Canceled.";
break;
case "PROCESS_OK":
// msg = "성공적으로 처리되었습니다.";
msg = "Process Completed.";
break;
case "NO_ACCEPT":
// msg = "허용하지 않는 문자열 입니다.";
msg = "The code is not available.";
break;
case "AY_CREATE" :
// msg = "기 등록 자료입니다.";
msg = "already registered data.";
break;
case "AY_PROCESS":
// msg = "기 처리 자료입니다.";
msg = "already processed data.";
break;
case "QF_SAVE" :
// msg = "조회후 저장하십시오.";
msg = "Do you want to save?";
break;
case "QF_UPDATE" :
msg = "Do you want to update?";
break;
case "QF_DELETE" :
// msg = "조회후 삭제하십시오.";
msg = "Do you want to delete?";
break;
case "DPKEY_CHK" :
// msg = "기본KEY가 중복되었습니다.";
msg = "Primary key is overlap.";
break;
case "NO_DATA" :
// msg = "조회할 자료가 없습니다.";
msg = "Here's no data to search.";
break;
case "NO_UPDATE" :
// msg = "수정할 자료가 없습니다.";
msg = "There is no data to update.";
break;
case "NO_DELETE" :
// msg = "삭제할 자료가 없습니다.";
msg = "There is no data to delete.";
break;
case "NO_CHG" :
// msg = "변경된 자료가 없습니다.";
msg = "There is no data modified.";
break;
case "NO_SAVE" :
// msg = "저장할 자료가 없습니다.";
msg = "There is no data to save.";
break;
case "CRCODE_ERR":
// msg = "코드생성에 실패했습니다.";
msg = "There is no generated code.";
break;
case "NO_RIGHT" :
// msg = "권한이 없습니다.";
msg = "There is no Athority";
break;
case "EXCEED_LIMIT":
msg = "한도를 초과했습니다.";
break;
case "NOT_EXCEL":
msg = "EXCEL출력 Tab이 아닙니다.";
break;
case "NO_SESSION":
// msg = "세션이 종료되었습니다. 다시로그인해 주십시오.";
msg = "세션이 종료되었습니다. Please, log in.";
break;
case "FT_PROCESS":
msg = "를(을) 먼저 진행하십시오.";
break;
case "MUST_CHK" :
// msg = "(은)는 필수 입력 항목입니다.";
msg = " is required.";
break;
case "VALUE_CHK" :
// msg = "가(이) 없습니다.";
msg = "There is no ";
break;
case "PARAM_CHK" :
// msg = "을(를) 입력하십시오.";
msg = "Please, input ";
break;
case "SELECT_CHK" :
msg = "Please, select ";
break;
case "PRINT_CHK" :
// msg = "출력할데이타가 없습니다 ";
msg = "no data to print.";
break;
case "CHANG_CHK" :
// msg = "수정할수없습니다 ";
msg = "You can not modified.";
break;
case "SUMMARY_CHK" :
// msg = "입력한값의 합계가 큽니다. 다시확인해주세요";
msg = "The summary is larger than limit. Check once more.";
break;
case "IMPOSSIBLE" :
// msg = "";
msg = "Mission Impossible... Please call to system manager.";
break;
case "SUM_INPUT" :
// msg = "입력한값의 합계가 큽니다. 다시확인해주세요 ";
msg = "The summary is larger than limit. Check once more.";
break;
default:
msg = ErrCode;
}
}else{
msg = ErrCode;
}
// alert(ErrMsg+" "+msg);
alert(msg+" "+ErrMsg);
}
/**
* alertMsg(ErrCode,ErrMsg) 입력받은 메세지 코드의 메세지를 alert으로 화면에 표시
* @param ErrMsg 앞에 붙일 메세지내용
* @param ErrCode 뒤에 붙일 메세지내용
* @return N/A
* @histroy 2008.01.21 ZardLover
*/
function alertMsg2(ErrCode,ErrMsg){
if((ErrCode !='')&&(isNumber(ErrCode))){ //에러메시지가 숫자형 인지 확인한다.
if(ErrCode == "50014"){
alert("데이타 로딩시 포멧에 오류가 있읍니다.");
return;
}else if(ErrCode == "50018"){
if((ErrMsg != null)&&(ErrMsg != "")){
// alert(ErrMsg+"은(는) 필수입력항목입니다.");
alert(ErrMsg+" is required.");
}else{
alert("필수입력항목을 모두 입력하십시오.");
}
return;
}else if(ErrCode == "50019"){
alert("KEY값이 중복되었습니다.");
return;
}else if(ErrCode == "50030"){
alert("해당하는 ColumnID를 찾을 수 없읍니다.");
return;
}else{
alert(ErrCode);
return;
}
}
switch( ErrCode ){
case ">=ZERO" :
// msg = "";
msg = "must be greater than or equal to Zero.";
break;
case ">ZERO" :
// msg = "";
msg = "must be greater than Zero.";
break;
case "<=ZERO" :
// msg = "";
msg = "";
break;
default:
msg = ErrCode;
}
alert(ErrMsg + " " + msg);
}
/**
* isNumber(numValue) 숫자 체크 루틴
* @param numValue 숫자
* @return allValid
* @histroy 2008.01.15 김정원
*/
function isNumber(numValue)
{
var checkOK = "-0123456789";
var checkStr = numValue;
var allValid = true;
var decPoints = 0;
var allNum = "";
/* 숫자인가? */
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
return allValid;
}
/**
* MCMS 엑셀다운로드시 헤드에 default로 붙는 값
*/
var HMCS_MSG ="";
//var HMCS_MSG ="Hanwha Material Control System Main Module for Version 1.0 ";
function openWin(url, width, height, scroll) {
var result = "false";
inWidth = width;
inHeight = height;
x = screen.availWidth;
y = screen.availHeight;
xtop = Number((y - inHeight)/2);
xleft = Number((x - inWidth)/2);
window.open(url, "search","top="+xtop+",left="+xleft+",width="+inWidth+",height="+inHeight+",SCROLLBARS=" + scroll);
}
/**
* 객체의 tabIndex를 지정한다.
* 파라미터로 받는 Array개체에 들어 오는 순서대로 tabIndex를 지정한다.
* 사용예)
* var f = document.form1;
* var indexObj = [ f.ccc, f.ddd, f.bbb, f.aaa ];
* setTabIndex(indexObj);
*/
function setTabIndex(indexObj) {
try {
if( indexObj != null && indexObj.length != null ) {
for( var i = 0 ; i < indexObj.length ; i++ ) {
var obj = indexObj[i];
if( obj.length != null ) {
for( var j = 0 ; j < obj.length ; j++ ) {
obj[j].tabIndex = i + 1;
}
}
else {
obj.tabIndex = i + 1;
}
if( i == indexObj.length - 1 ) {
obj.tabStop = true;
}
}
indexObj[0].focus();
}
}
catch(errorObject) {
showErrorDlg("common_js.setTabIndex()", errorObject);
}
}
/**
* 화면에서 help버튼을 클릭할때 도움말 화면을 보여준다.
* 파라미터 ) 화면의 screen명
* 사용예 ) setHelpName("PURRFQList.screen");
*/
function setHelpName(helpName) {
try {
if( document.all['HELP_NAME'] != null ) {
document.all['HELP_NAME'].innerText = helpName;
}
else if( parent.document.all['HELP_NAME'] != null ) {
parent.document.all['HELP_NAME'].innerText = helpName;
}
else if( parent.parent.document.all['HELP_NAME'] != null ) {
parent.parent.document.all['HELP_NAME'].innerText = helpName;
}
else if( parent.parent.parent.document.all['HELP_NAME'] != null ) {
parent.parent.parent.document.all['HELP_NAME'].innerText = helpName;
}
else if( parent.parent.parent.parent.document.all['HELP_NAME'] != null ) {
parent.parent.parent.parent.document.all['HELP_NAME'].innerText = helpName;
}
else if( parent.parent.parent.parent.parent.document.all['HELP_NAME'] != null ) {
parent.parent.parent.parent.parent.document.all['HELP_NAME'].innerText = helpName;
}
} catch(e) {}
}
/**
* ##############################################################################
* Event 관련 function
*/
/**
* 객체에 Event에 지정되어 있는 함수에 Event를 추가한다.
* 사용예) form.input_field.onblur = addEvent( form.input_field.onblur, "calAmt()");
* 설명 ) input_field 에 onblur event에 calAmt() 라는 함수를 추가한다.
*/
function addEvent(objEvent, addFunctionName) {
if( objEvent == null )
objEvent = "";
var eventScript = objEvent + "";
if( eventScript == "" ) {
eventScript = "\n" + addFunctionName + ";" + "\n";
}
else if( eventScript.substring(0, 8) == "function" ) {
var startIndex = eventScript.indexOf("{");
var endIndex = eventScript.lastIndexOf("}");
eventScript = eventScript.substring(startIndex + 1, endIndex - 1);
eventScript += "\n" + addFunctionName + ";" + "\n";
}
else {
eventScript = "";
}
return new Function( eventScript );
}
/**
* 정수 입력필도로 제어
* 사용예)
*/
function useNumberKey() {
if( (event.keyCode < 48) || (event.keyCode > 57) ) {
if((event.keyCode < 96) || (event.keyCode > 105) ){
event.returnValue = false;
}
}
}
/**
* 소숫점 숫자 입력필드로 제어
* 사용예)
*/
function useFloatNumberKey(){
if( ( (event.keyCode < 48) || (event.keyCode > 57) ) && (event.keyCode != 46) ) {
event.returnValue = false;
}
}
/**
* 팝업 원도우 ESC Key로 닫기
* 사용예)> document.onkeydown = closePopupWindow;
*/
function closePopupWindow(e) {
if( event.keyCode == 27 ) {
self.close();
}
return true;
}
/**
* ##############################################################################
* FORM Field Array 관련 function
*/
/**
* Array의 length구하기
* 파라미터)> obj: Array객체
* 사용예)> getObjLength(f.checkbox)
*/
function getObjLength(obj) {
if( obj == null ) {
return 0;
}
else {
return obj.length == null ? 1 : obj.length;
}
}
/**
* index에 해당하는 Object를 리턴
* 파라미터)> obj: Array객체,index: Array 순번
* 사용예)> getObj(f.checkbox,i)
*/
function getObj(obj, index) {
if( obj.length == null ) {
return obj;
}
else {
return obj[index];
}
}
/**
* Array에 들어있는 값과 파라미터 값과 같은 값을 가지고 있는 객체를 리턴
* 파라미터)> obj: Array객체,value: Array안의 값과 비교될 값
* 사용예)> getObjByValue(f.checkbox,'aa')
*/
function getObjByValue(obj, value) {
for( var i = 0 ; i < getObjLength(obj) ; i++ ) {
if( getObj(obj, i).value == value ) {
return getObj(obj, i);
}
}
}
/**
* Array에 파라미터 값을 넣는다.
* 파라미터)> obj: Array객체,value: Array안에 들어갈 값
* 사용예)> setObjValue(f.checkbox,'aa')
*/
function setObjValue(obj, value) {
if( obj.length == null ) {
obj.value = value;
}
else {
for( var i = 0 ; i < obj.length ; i++ ) {
obj[i].value = value;
}
}
}
/**
* 중복되는 Value를 가지는지 여부를 리턴
* 리턴값 : null => 중복값 없음
* Object Array => 중복하는 객체 Array
*/
function getDuplicatedObjValue(obj) {
if( obj.length == null ) {
return null;
}
else {
for( var i = 0 ; i < obj.length ; i++ ) {
for( var j = i + 1 ; j < obj.length ; j++ ) {
if( obj[i].value == obj[j].value ) {
return new Array(obj[i], obj[j]);;
}
}
}
return null;
}
}
/**
* ##############################################################################
* FORM 관련 function
*/
var IS_SUBMIT = false;
function formSubmit( formObject, varShowLayer ) {
var isShowLayer = false;
if( varShowLayer != null && varShowLayer != false ) {
isShowLayer = true;
}
try {
if( isShowLayer ) {
showFormSubmitLayer();
}
//alert("formObject.isSubmit==> "+formObject.isSubmit);
if( formObject.isSubmit == null )
formObject.issubmit = false;
if( !formObject.isSubmit ) {
formObject.issubmit = true;
if( formObject.method.toLowerCase() == "get" )
formObject.action = getDummyUrl(formObject.action);
formObject.submit();
}
else {
setWindowStatus(window, "전송중입니다. 잠시만 기다려 주십시요.", 5);
}
}
catch(errorObject) {
showErrorDlg(errorObject);
}
}
/**
* 전송중 메세지 이미지 레이어 나타나게 함.
*/
function showFormSubmitLayer(){
try {
if( document.all.FormSendLayer != null ) {
var xPos = document.body.clientWidth / 2 + document.body.scrollLeft - 145;
var yPos = document.body.clientHeight / 2 + document.body.scrollTop - 44;
document.all.FormSendLayer.style.posLeft = xPos;
document.all.FormSendLayer.style.posTop = yPos;
document.all.FormSendLayer.style.visibility = "visible";
document.all.FormSendLayer.style.zIndex = 100;
}
}
catch(errorObject) {
showErrorDlg(errorObject);
}
}
/**
* 폼전송시 중복 전송 방지기능 초기화
*/
function resetFormSubmit(){
try {
if( IS_SUBMIT ) {
IS_SUBMIT = false;
window.status = "";
hideFormSubmitLayer();
}
}
catch(errorObject) {
showErrorDlg(errorObject);
}
}
/**
* 전송중 메세지 이미지 레이어 숨김.
*/
function hideFormSubmitLayer() {
try {
if( document.all.FormSendLayer != null ) {
document.all.FormSendLayer.style.visibility = "hidden";
}
}
catch(errorObject) {
showErrorDlg(errorObject);
}
}
/**
* Form안에 속하는 필수항목(Object)들이 모두 입력되었는지를 체크
* return true : 필수 항목이 입력되지 않은 항목이 존재
* return false : 필수 항목이 입력되지 않은 항목이 없음
*/
function doValidFormRequired(formObject) {
var firstValidatedElement = null;
var isExistValidatedElement = false;
var msg = "필수항목을 입력 바랍니다.\n\n항목명 : ";
var ischk = "";
try {
for( var i = 0 ; i < formObject.elements.length ; i++ ) {
var formElement = formObject.elements[i];
var formElementValue = "";
switch(formElement.type) {
case 'text' :
formElementValue = formElement.value;
ischk = doCheckMaxSize(formElement);
break;
case 'hidden' :
case 'password' :
case 'textarea' :
formElementValue = formElement.value;
break;
case 'select-one' :
formElementValue = getSelectedValue(formElement);
break;
case 'radio' :
formElementValue = getCheckedValue(formElement);
break;
case 'checkbox' :
formElementValue = isChecked(formElement);
break;
case 'select-multiple' :
formElementValue = isSelected(formElement);
break;
}
if( formElement.getAttribute("requiredChk") != '' && formElement.getAttribute("required") != null) {
if( formElementValue == "" ){
isExistValidatedElement = true;
msg = "필수항목을 입력 바랍니다.\n\n항목명 : ";
if( formElement.desc == null )
msg += formElement.name;
else
msg += formElement.desc;
alert(msg);
formElement.focus();
return false;
}
}
if(ischk != ""){
msg = "항목의 길이를 확인 바랍니다.\n\n항목명 : ";
isExistValidatedElement = true;
if( firstValidatedElement == null )
firstValidatedElement = formElement;
if( formElement.desc == null )
msg += formElement.name;
else
msg += formElement.desc;
msg += ischk;
alert(msg);
formElement.focus();
return false;
}
}
return true;
}
catch(errorObject) {
showErrorDlg("common_js.doValidFormRequired()", errorObject);
}
}
function doCheckMaxSize(obj){
var max_length = obj.getAttribute("maxlength");
var real_length = doValidLength(obj.value);
var msg = "";
if(real_length > max_length){
msg = "\n => 최대: " + max_length + "\n => 현재: " +real_length;
}
return msg;
}
/**
* 한글, 영문 포함해서 byte수 계산
*/
function doValidLength(str) {
var i = 0;
var li_byte = 0;
var ls_one_char = "";
for(i=0 ; i 4)
li_byte += 3;
else
li_byte += 1;
}
return li_byte;
}
/**
* URL에 "dummy=[날짜 + 시간]"에 파라미터를 붙여서 리턴한다.
*/
function getDummyUrl(url) {
var checkExt = [ ".screen?", ".jsp?" ];
var isExistParameter = false;
for( var i = 0 ; i < checkExt.length ; i++ ) {
if( url.indexOf(checkExt[i]) != -1 ) {
isExistParameter = true;
break;
}
}
if( !isExistParameter )
url = url + "?dummy=" + getDateTime();
else
url = url + "&dummy=" + getDateTime();
return url;
}
/**
* ##############################################################################
* WINDOW 관련 function
*/
function setWindowStatus(win, msg, timeout) {
try {
setTimeout("clearWindowStatus()", (timeout * 1000));
windowObject.status = msg;
}
catch(errorObject) {
}
}
function clearWindowStatus() {
window.status = "";
}
/**
* 윈도우를 띄울때 화면의 중앙에 위치시킨다.
* 파라미터)> url: 주소, windowName: 윈도우 이름, windowWidth: 팝업 윈도우의 가로 크기, windowHeight: 팝업 윈도우의 세로 크기, windowFeatures: 상태값)
* 사용예)> openWindowCenter( getDummyUrl("/cop/COPSPInputNewJipCodeForm.screen?dept_cd="+f.dept_cd.value), "compare_table_view", 410, 270, "toolbar=no,directories=no,status=no,scrollbars=no,resize=no,menubar=no" );
*/
function openWindowCenter(url, windowName, windowWidth, windowHeight, windowFeatures) {
try {
if( windowFeatures == null || windowFeatures == "" )
windowFeatures = "toolbar=no,directories=no,status=no,scrollbars=yes,resize=no,menubar=no";
var xPos = (screen.availWidth - windowWidth) / 2;
var yPos = (screen.availHeight - windowHeight) / 2;
var win = window.open( url , windowName, "top=" + yPos + ",left=" + xPos + ",width=" + windowWidth + ",height=" + windowHeight + "," + windowFeatures);
//win.moveTo(xPos, yPos);
win.focus();
return win;
}
catch(errorObject) {
showErrorDlg("common_js.opwnWindowCenter()", errorObject);
}
}
/**
* ##############################################################################
* 날짜 관련 function
*/
/**
* 년월일 시분초 를 얻는다.
* 사용예)> var timeval = getDateTime();
*/
function getDateTime() {
return getDate() + "" + getTime();
}
/**
* 년월일을 얻는다.
* 사용예)> var timeval = getDate();
*/
function getDate() {
var date = new Date();
var year = date.getYear();
var month = date.getMonth() + 1;
var day = date.getDate();
if( year < 1000 ) {
year += 1900;
}
if( month < 10 ) {
month = "0" + month;
}
if( day < 10 ) {
day = "0" + day;
}
return "" + year + month+ day;
}
/**
* 현재 년을 얻는다.
*/
function get_year()
{
var date = new Date();
var year = date.getYear();
if( year < 1000 )
{
year += 1900;
}
return year ;
}
/**
* 현재 월을 얻는다.
*/
function get_month()
{
var date = new Date();
var month = date.getMonth() + 1;
if( month < 10 ) {
month = "0" + month;
}
return month ;
}
/**
* 현재 일을 얻는다.
*/
function get_day()
{
var date = new Date();
var day = date.getDate();
if( day < 10 ) {
day = "0" + day;
}
return day;
}
/**
* 시분초를 얻는다.
* 사용예)> var timeval = getDate();
*/
function getTime() {
var date = new Date();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
if( hour < 10 )
hour = "0" + hour;
if( minute < 10 )
minute = "0" + minute;
if( second < 10 )
second = "0" + second;
return "" + hour + minute + second;
}
/**
* 날자를 입력받아 입력받은 포맷으로 바꿔준다.
* 사용예)>getFormatDateTime(saveDate, "symbol")
*/
function getFormatDateTime(dateTime, format) {
var KOREAN = [ "년 ", "월 ", "일 ", "시 ", "분 ", "초 " ];
var SYMBOL = [ "-", "-", " ", ":", ":", "" ];
var useArray;
if( format.toUpperCase() == "KOREAN" )
useArray = KOREAN;
else if( format.toUpperCase() == "SYMBOL" )
useArray = SYMBOL;
var str = "";
if( dateTime.length == 8 || dateTime.length == 14 ) {
str += dateTime.substring(0, 4) + useArray[0];
str += dateTime.substring(4, 6) + useArray[1];
str += dateTime.substring(6, 8) + useArray[2];
if( dateTime.length == 14 ) {
str += dateTime.substring( 8, 10) + useArray[3];
str += dateTime.substring(10, 12) + useArray[4];
str += dateTime.substring(12, 14) + useArray[5];
}
}
return str;
}
/**
* 해당 년월의 마지막 일자를 리턴
*/
function getLastDay(year, month) {
var Last_DAY = new Array( 31, // 1?
28, // 2?
31, // 3?
30, // 4?
31, // 5?
30, // 6?
31, // 7?
31, // 8?
30, // 9?
31, // 10?
30, // 11?
31 ); // 12?
// 윤년
var a_leap_year;
if( year % 4 == 0 && year % 100 != 0 )
a_leap_year = true;
else
a_leap_year = false;
if( year % 1000 == 0 )
MONTH = true;
// 2월의 값을 윤년여부에 따라 변환.
Last_DAY[1] = (a_leap_year) ? 29 : 28 ;
return Last_DAY[month];
}
/**
/**
* ##############################################################################
* 문자열 관련 function
*/
/**
* Object의 문자열 byte 길이를 리턴.
* 파라미터)> object: 객체이름
* 사용예)> getObjectByteLength(f.text)
*/
function getObjectByteLength(object) {
var len = 0;
if( object == null || object.value == null )
return 0;
return getByteLength(object.value);
}
/**YMI 2007-09-19 추가
* Object의 문자열 byte 길이를 리턴.
* 파라미터)> str: String 값
* 사용예)> getStringByteLength(str)
*/
function getStringByteLength(object) {
var len = 0;
if( object == null)
return 0;
return getByteLength(object);
}
/**
* 문자열을 입력받아 byte 길이를 리턴.
* 파라미터)> str: 문자열
* 사용예)> getByteLength("우리나라")
*/
function getByteLength(str) {
var len = 0;
for( var i = 0 ; i < str.length ; i++ ) {
var c = escape(str.charAt(i));
if ( c.length == 1 )
len ++;
else if( c.indexOf("%u") != -1 )
len += 2;
else if( c.indexOf("%") != -1 )
len += c.length/3;
}
return len;
}
/**
* 사업자번호를 입력받아 체크
* 파라미터)> str: 사업자번호
* 사용예)> chkVenderNum("123-81-23456")
*/
function chkVenderNum(str) {
var strNumb = str;
if( strNumb.length != 10 ) {
return false;
}
sumMod = 0;
sumMod += parseInt(strNumb.substring(0,1));
sumMod += parseInt(strNumb.substring(1,2)) * 3 % 10;
sumMod += parseInt(strNumb.substring(2,3)) * 7 % 10;
sumMod += parseInt(strNumb.substring(3,4)) * 1 % 10;
sumMod += parseInt(strNumb.substring(4,5)) * 3 % 10;
sumMod += parseInt(strNumb.substring(5,6)) * 7 % 10;
sumMod += parseInt(strNumb.substring(6,7)) * 1 % 10;
sumMod += parseInt(strNumb.substring(7,8)) * 3 % 10;
sumMod += Math.floor(parseInt(strNumb.substring(8,9)) * 5 / 10);
sumMod += parseInt(strNumb.substring(8,9)) * 5 % 10;
sumMod += parseInt(strNumb.substring(9,10));
if( sumMod % 10 != 0 ) {
return false;
}
return true;
}
/**
* 주민등록번호 체크
*/
function chkRegNum(str) {
if( str.length != 13 ) {
return false;
}
var reg_str = str.substring(0, 6) + "-" + str.substring( 6, 13);
var sum = 0;
var mod = 0;
var yearIn = 0;
var monthIn = 0;
var sex = 0;
var dateIn = 0;
for( i = 0 ; i < 13 ; i++ ) {
if( i == 0 )
yearIn += parseInt(reg_str.charAt(i)) * 10;
if( i == 1 )
yearIn += parseInt(reg_str.charAt(i));
if( i == 2 )
monthIn += parseInt(reg_str.charAt(i)) * 10;
if( i == 3 )
monthIn += parseInt(reg_str.charAt(i));
if( i == 4 )
dateIn += parseInt(reg_str.charAt(i)) * 10;
if( i == 5 )
dateIn += parseInt(reg_str.charAt(i));
if( i == 7 )
sex = parseInt(reg_str.charAt(i));
if( i < 6 )
sum += parseInt(reg_str.charAt(i)) * (i + 2);
if( i > 6 && i < 9 )
sum += parseInt(reg_str.charAt(i)) * (i + 1);
if( i > 8 )
sum += parseInt(reg_str.charAt(i)) * (i - 7);
}
mod = 11 - (sum % 11);
if( (11 - (sum % 11)) >= 10 ) {
mod -= 10;
}
if( mod != parseInt(reg_str.charAt(13)) ) {
return false;
}
if( monthIn < 1 || monthIn > 12 || dateIn < 1 || dateIn > 31 ) {
return false;
}
if( (monthIn == 4 || monthIn == 6 || monthIn == 9 || monthIn == 11 ) && dateIn > 30 ) {
return false;
}
if( monthIn == 2 && dateIn > 29 ) {
return false;
}
if( sex != 1 && sex != 2 && sex != 3 && sex != 4 ) { // 1, 3:?? 2, 4:??
return false;
}
return true;
}
/**
* 전화번호 필드의 숫자여부와 사이즈 체크
* 파라미터)> form1.tel_1: 객체이름, size: 체크될 size
* 사용예) checkTel(form1.tel_1, 3);
*/
function checkTel(obj, size) {
if( isDigitValue(obj.value) && getByteLength(obj.value) >= size )
return true;
return false;
}
/**
* Input 폼 필드의 내용이 비어 있는지 체크
* 파라미터)>obj: 객체이름
* 사용예) if( !isEmpty(form1.message) )
* Error 처리
*/
function isEmpty( obj ) {
var temp = obj.value;
if( temp.trim() == "" ) {
return true;
}
return false;
}
/**
* String의 특성별 유효성 체크
* 파라미터)>str: 입력된 값, type: 유형
* 사용예) chkString( f.loginname.value, "ID") : 로그인아이디가 영문자/숫자만 입력되었는지 확인
* 사용예) chkString( f.age.value, "DIGIT") : 나이가 숫자로만 입력되었는지 확인
*/
function chkString( str , type ) {
if( str != "" ) {
type = type.toUpperCase();
count = 0;
roof = 0;
if( type == "DIGIT" ) {
cp_string = "1234567890";
roof = 10;
}
else if( type = "ID" ) {
cp_string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
roof = 26 + 26 + 10;
}
for( i = 0 ; i < roof ; i++ ) {
for( j = 0 ; j < str.length ; j++ ) {
if( cp_string.charAt(i) == str.charAt(j) ) {
count++;
}
}
}
if( count == str.length ) {
return true;
}
else {
return false;
}
}
return false;
}
/**
* Object의 value가 숫자로만 되어있는지 체크한다.
* 파라미터)>obj: 객체이름
* 사용예) if( isDigitObject(form1.num) )
*/
function isDigitObject(obj){
return isDigitValue(obj.value);
}
/**
* value가 숫자로만 되어있는지 체크한다.
* 파라미터)>value: 입력된 값
* 사용예) if( isDigitValue(form1.num.value) )
*/
function isDigitValue(value) {
try {
inputStr = value;
for( var i = 0 ; i < inputStr.length ; i++ ) {
var oneChar = inputStr.charAt(i)
if (oneChar < "0" || oneChar > "9") {
return false;
}
}
return true;
}
catch(errorObject) {
showErrorDlg("common_js.isDigitValue()", errorObject);
return false;
}
}
/**
* 메일형식 체크
* 파라미터)>strEmail: 입력된 메일
* 사용예) if( isDigitValue(form1.num.value) )
*/
function checkEmail(strEmail) {
var arrMatch = strEmail.match(/^(\".*\"|[A-Za-z0-9_-]([A-Za-z0-9_-]|[\+\.])*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z0-9][A-Za-z0-9_-]*(\.[A-Za-z0-9][A-Za-z0-9_-]*)+)$/);
if( arrMatch == null ) {
return false;
}
var arrIP = arrMatch[2].match(/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/);
if( arrIP != null ) {
for( var i = 1 ; i <= 4 ; i++ ) {
if( arrIP[i] > 255 ) {
return false;
}
}
}
return true;
}
/**
* 전화번호 형식 체크 20040707 @monoeye : Submit용 전화번호 체크 루틴
* 파라미터)>strTelno: 입력된 전화번호
* 사용예) if( checkTelno(form1.telnum.value) )
*/
function checkTelno(strTelno) {
for (var i = 0 ; i < strTelno.length ; i++){
if(isNaN(parseInt(strTelno.charAt(i))) && strTelno.charAt(i)!='-'){
return false;
}
}
return true;
}
/**
* String이 한글로만 되어있는지 검사
* 파라미터)>str: 입력된 값
* if( isKoreanValue(form1.num.value) )
*/
function isKoreanValue( str ) {
if( str == null )
return false ;
for( var i = 0 ; i < str.length ; i++ ) {
var c = str.charCodeAt(i);
//( 0xAC00 <= c && c <= 0xD7A3 ) 초중종성이 모인 한글자
//( 0x3131 <= c && c <= 0x318E ) 자음 모음
if( !( ( 0xAC00 <= c && c <= 0xD7A3 ) || ( 0x3131 <= c && c <= 0x318E ) ) ) {
return false ;
}
}
return true;
}
/**
* String Object에 trim() 메서드 추가
* 사용예) str.trim();
*/
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.bytes = function() {
var str = this;
var l = 0;
for (var i=0; i 128) ? 2 : 1;
return l;
}
function replaceStr(str,out,add) {
var temp = "" + str;
while (temp.indexOf(out)>-1) {
pos= temp.indexOf(out);
temp = "" + (temp.substring(0, pos) + add +
temp.substring((pos + out.length), temp.length));
}
return temp;
}
/**
* 공백을 지워서 obj 값을 반환한다.
* 파라미터)>obj: 객체이름
* 사용예) set_removeAllSpace(f.tel_no);
*/
function set_removeAllSpace(obj)
{
var position;
position = obj.value.indexOf(" ");
while (position != -1){
obj.value = obj.value.replace(" ", "");
position = obj.value.indexOf(" ");
}
return obj.value;
}
/**
* 공백을 지워서 str 반환한다.
* 파라미터)>str: 문자열
* 사용예) set_removeAllSpace("abc d");
*/
function get_removeAllSpace(str)
{
var position;
position = str.indexOf(" ");
while (position != -1){
str = str.replace(" ", "");
position = str.indexOf(" ");
}
return str;
}
/*-------------------------------------------------------------------------
parseInt_isNaN()
Spec : parseInt?? NaN?? 0? ???? ??? ?? ????
Argument : ('123')
Return : int
Example : var intVal = parseInt_isNaN("1234");
-------------------------------------------------------------------------*/
function parseInt_isNaN(str) {
if( isNaN( parseInt(str) ) ) {
return 0;
}
else {
return parseInt(str);
}
}
/**
* URLDecode
* http://www.ietf.org/rfc/rfc2396.txt
*/
function URLDecode(encoded)
{
// Replace + with ' '
// Replace %xx with equivalent character
// Put [ERROR] in output if %xx is invalid.
var HEXCHARS = "0123456789ABCDEFabcdef";
var plaintext = "";
var i = 0;
while (i < encoded.length) {
var ch = encoded.charAt(i);
if (ch == "+") {
plaintext += " ";
i++;
} else if (ch == "%") {
if (i < (encoded.length-2)
&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
plaintext += unescape( encoded.substr(i,3) );
i += 3;
} else {
alert( 'Bad escape combination near ...' + encoded.substr(i) );
plaintext += "%[ERROR]";
i++;
}
} else {
plaintext += ch;
i++;
}
} // while
return plaintext;
}
/**
* ##############################################################################
* 숫자 관련
*/
/**
* Float 숫자의 곱셈 처리에 JavaScript 버그를 피하기 위해서 사용하는 함수
* 파라미터)>num_1: 곱하게 될 수, num_2: 곱하게 될 수
* 사용예) multiplyFloat(0.1, 0.1);
*/
function multiplyFloat(num_1, num_2) {
var f_num_1 = "";
var f_num_2 = "";
var l_num_1 = "";
var l_num_2 = "";
var r_num_1 = "";
var r_num_2 = "";
var dotIndex_1;
var dotIndex_2;
var point = 0;
var result = "";
try {
f_num_1 = parseFloat(num_1, 10) + "";
f_num_2 = parseFloat(num_2, 10) + "";
if( f_num_1 < 0 )
minus_1 = true;
if( f_num_2 < 0 )
minus_2 = true;
dotIndex_1 = f_num_1.indexOf('.');
dotIndex_2 = f_num_2.indexOf('.');
if( dotIndex_1 > 0 ) {
l_num_1 = f_num_1.substring(0, dotIndex_1);
r_num_1 = f_num_1.substring(dotIndex_1 + 1, f_num_1.length);
}
else {
l_num_1 = f_num_1;
}
if( dotIndex_2 > 0 ) {
l_num_2 = f_num_2.substring(0, dotIndex_2);
r_num_2 = f_num_2.substring(dotIndex_2 + 1, f_num_2.length);
}
else {
l_num_2 = f_num_2;
}
point = r_num_1.length + r_num_2.length;
var temp = (parseInt(l_num_1 + r_num_1, 10) * parseInt(l_num_2 + r_num_2, 10)) + "";
/*
alert(l_num_1 + r_num_1);
alert(l_num_2 + r_num_2);
alert(temp);
alert(temp.length);
alert(point);
*/
if( temp.length > point ) {
result = parseFloat(temp.substring(0, temp.length - point) + "." + temp.substring(temp.length - point, temp.length), 10);
}
else if( temp.length == point ) {
result = parseFloat("0." + temp, 10);
}
else {
var size = point - temp.length;
for( var i = 0 ; i < size ; i++ ) {
temp = "0" + temp;
}
result = parseFloat("0." + temp, 10);
}
return result;
}
catch(errorObject) {
showErrorDlg("common_js.multiplyFloat()", errorObject);
return Nan;
}
}
/**
* 숫자를 한글로 변환한다.
* 파라미터)>num: 숫자
* 사용예) numberToHangul(1234);
*/
function numberToHangul(num) {
bigUnitArray = new Array( "", "?", "?", "?");
unitArray = new Array( "", "?", "?", "?");
hanArray = new Array( "", "?", "?", "?", "?", "?", "?", "?", "?", "?" );
splitedNum = new Array();
pos= num.length;
idx = 0;
while(true) {
if( pos - 4 > 0 ) {
splitedNum[idx] = num.substring(pos-4, pos);
}
else {
splitedNum[idx] = num.substring(0, pos);
break;
}
pos = pos-4;
idx++;
}
han = "";
splietedNumSize = splitedNum.length;
for( j = splietedNumSize -1 ; j >= 0 ; j-- ) {
tmp = splitedNum[j];
tmplen = splitedNum[j].length;
for( i = tmplen ; i > 0 ; i-- ) {
n = tmp.charAt(tmplen - i);
if( n == "0" )
continue;
if( n == "1" && i != 1 && !(j == splietedNumSize-1 && i == tmplen) ) {
han += unitArray[i-1];
}
else {
han += hanArray[n]+ unitArray[i-1];
}
}
if( eval(tmp) != 0 )
han += bigUnitArray[j];
}
return han;
}
/**
* 숫자를 반올림한다.
* 파라미터)>num: 반올림할 숫자, pos:반올림 할 위치
* 사용예)> doRound(12.23,1);
*/
function doRound(num, pos) {
var posV ;
if ( pos == 0 ) {
posV = 1 ;
} else {
posV = Math.pow(10, (pos ? pos : 3)) ;
}
return Math.round(multiplyFloat(num,posV))/posV;
}
function doFloor(num, pos) {
var posV ;
if ( pos == 0 ) {
posV = 1 ;
}
else {
posV = Math.pow(10, (pos ? pos : 3)) ;
}
return Math.floor(multiplyFloat(num,posV))/posV;
}
function addStr(s, cnt) {
var i = 0;
var rst = "";
while(++i <= cnt) {
rst = rst+s;
}
return rst;
}
/**
* ##############################################################################
* 콤보박스 관련 function
*/
/**
* ValueObject Binding
* objects.js ??
*/
function bindValueObject(obj, vo) {
removeAllOptions(obj);
for( var i = 0 ; i < vo.getSize() ; i++ ) {
addOption(obj, vo.getKey(i), vo.getValue(i));
}
}
/**
* 선택된 콤보박스의 값을 리턴한다.
* 파라미터)>obj: 객체 이름
* 사용예)> getSelectedValue(f.selected);
*/
function getSelectedValue(obj) {
if( obj != null && obj.options != null && obj.selectedIndex != -1 ) {
return obj.options[obj.selectedIndex].value;
}
else {
return "";
}
}
/**
* 선택된 콤보박스의 Text를 리턴한다.
* 파라미터)>obj: 객체 이름
* 사용예)> getSelectedText(f.selected);
*/
function getSelectedText(obj) {
if( obj != null ) {
return obj.options[obj.selectedIndex].text;
}
}
/**
* 콤보박스의 특정 Value를 선택
* 파라미터)>obj: 객체 이름, val:값
* 사용예)> setSelect(f.selected,'123');
*/
function setSelect(obj, val) {
if( obj != null && val != null ) {
for( var i = 0 ; i < obj.length ; i++ ) {
if( obj.options[i].value == val ) {
obj.options[i].selected = true;
fireEvent(obj, "change");
break;
}
}
}
}
/**
* 스크립트로 value변경시 이벤트 실행.
* @param element object
* @param event on을 제외한 이벤트 명
* @returns
*/
function fireEvent(element,event){
if (document.createEventObject){
// dispatch for IE
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt);
}
else{
// dispatch for firefox + others
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
}
}
/**
*
*/
function addOption(obj, value, desc) {
var option = new Option( desc , value , false );
obj.options[obj.options.length] = option;
}
/**
* SELECTBOX?? TOOLTIP ??
*/
function addOptionTooltip(obj, value, desc) {
var option = new Option( desc , value , false );
option.title = value;
obj.options[obj.options.length] = option;
}
/**
* 콤보박스에 항목 입력
* 파라미터)>index:순번, obj:객체이름 , flag:구분 , min:최소 , max:최대
* 사용예)> putSelects(2,f.selected,'YEAR', '5','10');
*/
function putSelects(index, obj , flag , min , max) {
if( obj.length != null && obj.length != 0 ) {
for( var i = 0 ; i < obj.length ; i++ ) {
if( i == index ) {
putSelect( obj[i] , flag , min , max );
}
}
}
else {
putSelect( obj , flag , min , max );
}
}
/**
* 콤보박스에 항목 입력
* 파라미터)> obj:객체이름 , flag:구분 , min:최소 , max:최대
* 사용예)> putSelects(f.selected,'YEAR', '5','10');
*/
function putSelect( obj , flag , min , max ) {
if( obj == null )
return;
var isType = false;
if( obj.length == 0 ) {
if( flag == "YEAR" ) {
isType = true;
}
else if( flag == "MONTH" ) {
min = 1;
max = 12;
isType = true;
}
else if( flag == "DAY" ) {
min = 1;
max = 31;
isType = true;
}
obj.options[0] = new Option("", "", false);
if( isType )
{
var index = 1;
for( var i = min ; i <= max ; i++ )
{
var temp = i + "";
temp = ( temp.length == 1 ) ? "0" + temp : temp ;
var option = new Option( temp , temp , false );
obj.options[index] = option;
index++;
}
}
}
}
/**
* 선택된 항목만 읽게
* 파라미터)> obj:객체이름
* 사용예)> setReadOnlySelect(f.selected);
*/
function setReadOnlySelect(obj) {
if( obj != null ) {
var options = obj.options[obj.selectedIndex];
for( var i = obj.length - 1 ; i >= 0 ; i-- ) {
obj.options[i] = null;
}
obj.options[0] = options;
}
}
/**
* 모든 항목을 삭제한다.
* 파라미터)> obj:객체이름
* 사용예)> removeAllOptions(f.selected);
*/
function removeAllOptions(obj) {
if( obj != null ) {
for( var i = obj.length - 1 ; i >= 0 ; i-- ) {
obj.options[i] = null;
}
}
}
/**
* 최상위 항목 제외한 모든 항목을 삭제한다.
* 파라미터)> obj:객체이름
* 사용예)> removeAllOptionsExceptTop(f.selected);
*/
function removeAllOptionsExceptTop(obj) {
if( obj != null ) {
for( var i = obj.length - 1 ; i >= 1 ; i-- ) {
obj.options[i] = null;
}
}
}
/**
* 선택된 항목을 삭제한다.
* 파라미터)> obj:객체이름, val: 삭제될 순번
* 사용예)> removeOption(f.selected,5);
*/
function removeOption(obj, val) {
if( obj != null && val != null ) {
for( var i = 0 ; i < obj.length ; i++ ) {
if( obj.options[i].value == val ) {
obj.options[i] = null;
break;
}
}
}
}
function isSelected(obj) {
if( obj != null ) {
for( var i = 0 ; i < obj.length ; i++ ) {
if( obj.options[i].selected == true ) {
return true;
}
}
}
return false;
}
/**
* 선택된 항목을 위로 이동시킨다.
* 파라미터)> obj:객체이름
* 사용예)> moveUpOption(f.selected,5);
*/
function moveUpOption(obj) {
if( obj.options.length == null )
return;
for( var i = 0 ; i < obj.options.length ; i++ ) {
obj.options[i].isSelected = obj.options[i].selected;
if( obj.options[i].selected && obj.options[i] != "" && obj.options[i] != obj.options[0] ) {
var tmpval = obj.options[i].value;
var tmpval2 = obj.options[i].text;
var tmpval3 = obj.options[i].isSelected;
obj.options[i].value = obj.options[i - 1].value;
obj.options[i].text = obj.options[i - 1].text
obj.options[i].isSelected = obj.options[i - 1].isSelected
obj.options[i-1].value = tmpval;
obj.options[i-1].text = tmpval2;
obj.options[i-1].isSelected = tmpval3;
}
}
for( var i = 0 ; i < obj.options.length ; i++ ) {
obj.options[i].selected = obj.options[i].isSelected;
}
}
/**
* 선택된 항목을 아래로 이동시킨다.
* 파라미터)> obj:객체이름
* 사용예)> moveDownOption(f.selected);
*/
function moveDownOption(obj) {
if( obj.options.length == null )
return;
for( var i = obj.options.length - 1 ; i >= 0 ; i-- ) {
obj.options[i].isSelected = obj.options[i].selected;
if( obj.options[i].selected && obj.options[i] != "" && obj.options[i+1] != obj.options[obj.options.length] ) {
var tmpval = obj.options[i].value;
var tmpval2 = obj.options[i].text;
var tmpval3 = obj.options[i].isSelected;
obj.options[i].value = obj.options[i+1].value;
obj.options[i].text = obj.options[i+1].text
obj.options[i].isSelected = obj.options[i+1].isSelected
obj.options[i+1].value = tmpval;
obj.options[i+1].text = tmpval2;
obj.options[i+1].isSelected = tmpval3;
}
}
for( var i = 0 ; i < obj.options.length ; i++ ) {
obj.options[i].selected = obj.options[i].isSelected;
}
}
//##############################################################################
// 라디오 버튼 관련 function
/**
* 선택된 라디오 버튼값을 리턴한다.
* 파라미터)> obj:객체이름
* 사용예)> getCheckedValue(f.radiobt);
*/
function getCheckedValue(obj) {
if( obj != null ) {
for( var i = 0 ; i < obj.length ; i++ ) {
if( obj[i].checked == true ) {
return obj[i].value;
}
}
return "";
}
return "";
}
/**
* 라디오 버튼 선택한다.
* 파라미터)> obj:객체이름, val:값
* 사용예)> getCheckedValue(f.radiobt,5);
*/
function setRadio(obj, val) {
if( obj != null && val != null ) {
for( var i = 0 ; i < obj.length ; i++ ) {
if( obj[i].value == val ) {
obj[i].checked = true;
break;
}
}
}
}
/**
* 라디오 버튼 Disabled 속성 조정
* 파라미터)> obj:객체이름, val:값, disValue: true,false
* 사용예)> setRadioDisabled(f.radiobt,5,true);
*/
function setRadioDisabled(obj, val, disValue)
{
if( obj != null && val != null )
{
if( obj.length == null ) {
if( obj.value == val )
obj.disabled = disValue;
}
else {
for( var i = 0 ; i < obj.length ; i++ )
{
if( obj[i].value == val )
{
obj[i].disabled = disValue;
}
}
}
}
}
/**
* 모든 라디오 버튼 Disabled 속성 조정
* 파라미터)> obj:객체이름, disValue: true,false
* 사용예)> setRadioDisabledAll(f.radiobt,true);
*/
function setRadioDisabledAll(obj, disValue) {
setCheckDisabledAll(obj, disValue);
}
function setInitRadio(obj) {
if( obj != null) {
for( var i = 0 ; i < obj.length ; i++ ) {
obj[i].checked = false;
}
}
}
//##############################################################################
// CheckBox 버튼 관련 function
// CheckBox 버튼 선택
function setCheckBox(obj, arrayObj)
{
if( arrayObj != null && arrayObj.length != null )
{
for( var i = 0 ; i < arrayObj.length ; i++ )
{
for( var j = 0 ; j < obj.length ; j++ )
{
if( obj[j].value == arrayObj[i] )
{
obj[j].checked = true;
break;
}
}
}
}
}
/**
* check설정
* 파라미터)> obj:객체이름, isCheck: true,false
* 사용예)> cvtCheckBox(f.checkbt,true);
*/
function cvtCheckBox(obj, isCheck)
{
if( obj != null )
{
if( obj.length != null )
{
for( var i = 0 ; i < obj.length ; i++ )
{
if (!obj[i].disabled) obj[i].checked = isCheck;
}
}
else
{
if (!obj.disabled) obj.checked = isCheck;
}
}
}
/**
* 같은 체크박스를 타이틀별로 체크하거나 하는데 disabled은 무시한다.
* 파라미터)> obj, row개수(화면상의 타이틀), row위치
* 사용예)> company/PURReqSupplyProductView.jsp참조하세요.
*/
function multi_cvtCheckBox(obj, row_cnt, row_position)
{
var remain;
var chk = 0;
var isCheck;
for( var i = 0 ; i < getObjLength(obj) ; i++ )
{
remain = i%row_cnt;
if(row_position == remain)
{
if(getObj(obj, i).disabled == false)
if(getObj(obj, i).checked == true)
{
chk++;
}
}
}
if(chk>0) isCheck = false;
else isCheck = true;
if( obj != null )
{
for( var i = 0 ; i < getObjLength(obj) ; i++ )
{
remain = i%row_cnt;
if(row_position == remain)
if(getObj(obj, i).disabled == false)
getObj(obj, i).checked = isCheck;
}
}
}
/**
* 체크박스에 체크된 항목이 있는지 여부를 리턴한다.
* 파라미터)> obj, row개수(화면상의 타이틀), row위치
* 사용예)> isChecked(f.checked);
*/
function isChecked(obj) {
try {
if( obj == null )
return false;
var isChecked = false;
if( obj.length == null ) {
isChecked = obj.checked;
}
else {
for( var i = 0 ; i < obj.length ; i++ ) {
if( obj[i].checked ) {
isChecked = true;
break;
}
}
}
return isChecked;
}
catch(errorObject) {
showErrorDlg(errorObject);
}
}
/**
* 체크박스 Disabled 속성 조정
* 파라미터)> obj:객체이름, val:값 , disValue: true,false
* 사용예)> isChecked(f.checked);
*/
function setCheckDisabled(obj, val, disValue)
{
if( obj != null && val != null )
{
if( obj.length == null ) {
if( obj.value == val )
obj.disabled = disValue;
}
else {
for( var i = 0 ; i < obj.length ; i++ )
{
if( obj[i].value == val )
{
obj[i].disabled = disValue;
break;
}
}
}
}
}
/**
* 모든 체크박스 Disabled 속성 조정
* 파라미터)> obj:객체이름, disValue: true,false
* 사용예)> setCheckDisabledAll(f.checked, true);
*/
function setCheckDisabledAll(obj, disValue)
{
if( obj != null )
{
if( obj.length == null ) {
obj.disabled = disValue;
}
else {
for( var i = 0 ; i < obj.length ; i++ )
{
obj[i].disabled = disValue;
}
}
}
}
function copyTableRow(destTableID, srcTableID) {
var destStr = "document.all." + destTableID;
var srcStr = "document.all." + srcTableID;
var destTableBody = eval(destStr + ".children[0]");
var srcTableBody = eval(srcStr + ".children[0].children[0]");
// ??
var srcCopy = eval(srcStr + ".innerHTML");
var size = eval(srcStr + ".children[0].children[0].children.length");
for( var i = 0 ; i < size ; i++ ) {
destTableBody.appendChild(srcTableBody.children[0]);
}
eval(srcStr + ".innerHTML = srcCopy");
}
//##############################################################################
// 메세지전달 관련 function
/**
* 페이지를 이동하는 메세지창
* 파라미터)> msg:메시지, url:주소
* 사용예)> showMoveDlg("이동합니다.", "/com/calljsp.screen");
*/
function showMoveDlg(msg, url)
{
if( confirm(msg) )
{
self.location = url;
}
}
/**
* 메세지를 출력하고, Object로 focus를 돌려준다.
* 파라미터)> obj:객체명, msg:메시지
* 사용예)> ErrMsg(f.gets, "전화번호를 입력하세요");
*/
function ErrMsg( obj, msg ) {
try {
//alert( msg );
dlgAlert(msg);
try {
obj.focus();
}
catch(errorObject) {
}
try {
obj.select();
}
catch(errorObject) {
}
return false;
}
catch(errorObject) {
showErrorDlg("common_js.ErrMsg()", errorObject);
}
}
// Explorer Exception 처리
function showErrorDlg(methodName, errorObject) {
try {
if( errorObject == null ) {
errorObject = methodName;
methodName = "unknowned method";
}
var msg = "";
msg += "Method Name : " + methodName + "\n\n";
if( errorObject.description != null ) {
msg += errorObject.description + "\n\n"
+ "Error Number : " + (errorObject.number>>16 & 0x1FFF) + "\n\n";
}
else {
msg += "Error Number : " + (errorObject.number>>16 & 0x1FFF) + "\n\n";
}
alert(msg);
}
catch(eo) {
alert(eo);
}
}
//2004-05-13추가 sukjin chang
/*
내 용 : 파라미터로 받은 일자의 요일 리턴
파라미터 : pDate - 일자 (8자리 숫자로 이루어진 문자열)
Return값 : 요일 (일,월,화,수,목,금,토 => 0,1,2,3,4,5,6)
*/
function fGetDay(pDate)
{
try {
var vDate = pDate.toString();
// var vDayArray = ["일", "월", "화", "수", "목", "금", "토"];
var vTempDate = new Date();
vTempDate.setYear(vDate.substring(0, 4));
vTempDate.setMonth(eval(vDate.substring(4, 6))-1);
vTempDate.setDate(vDate.substring(6, 8));
var vDay = vTempDate.getDay();
return vDay;
}
catch(errorObject) {
showErrorDlg(errorObject);
}
}
/*
내 용 : 시작일자와 기간을 받아 종료일자를 리턴
파라미터 : pStartDate - 시작일자
pDateTerm - 기간
Return값 : 종료 일자
*/
function fGetEndDate(pStartDate, pDateTerm)
{
try {
// 파라미터로 받은 날짜로 Date 객체 초기화
var vStartDate = new Date(eval(pStartDate.toString(10).substring(0, 4)), eval(pStartDate.toString(10).substring(4, 6)) - 1, eval(pStartDate.toString(10).substring(6, 8)));
// 파라미터로 받은 숫자만큼 이후 일자로 setting
vStartDate.setDate(vStartDate.getDate() + eval(pDateTerm));
// 년도 문자열화
var vTempYear = vStartDate.getFullYear();
vTempYear = vTempYear.toString(10);
// 월 문자열화
var vTempMonth = vStartDate.getMonth()+1;
vTempMonth = vTempMonth.toString(10);
// 일 문자열화
var vTempDate = vStartDate.getDate();
vTempDate = vTempDate.toString(10);
if(vTempMonth.length == 1) vTempMonth = "0" + vTempMonth;
if(vTempDate.length == 1) vTempDate = "0" + vTempDate;
// 날짜 포맷으로 변환
var vReturnDate = vTempYear + vTempMonth + vTempDate;
return vReturnDate;
}
catch(errorObject) {
showErrorDlg(errorObject);
}
}
//2004-05-28 추가 sukjin chang
/*-------------------------------------------------------------------------
fDisplayDiv()
Spec : //파라미터로 받은 DIV 영역에 새로운 HTML Code 를 삽입
Example : fDisplayDiv(tdivid,html);
-------------------------------------------------------------------------*/
function fDisplayDiv(pDivName, pHtml)
{
// 파라미터로 받은 DIV 영역에 새로운 HTML Code 를 삽입
//alert ('[' + parent.document.getElementById(pDivName).innerHTML + ']');
parent.document.getElementById(pDivName).innerHTML = pHtml;
//pHtml = "";
// vHtml Clear
}
/*-------------------------------------------------------------------------
f_chkJumin()
Spec : //수량형식으로 변환한다. 12345 -> 12345.000
Example : formatQty(this);
-------------------------------------------------------------------------*/
//수량형식으로 변환한다. 12345 -> 12345.000
function formatQty(obj){
obj.value = getQty(obj.value);
}
function getQty(str){
var value = str == ""? "0": str;
var num1, num2;
var len = value.length;
var off = value.indexOf(".");
if( off != -1){
num1 = value.substring(0, off);
num2 = value.substring(off+1);
if(num2.length<3){
num2 = rpad(num2, 3, '0');
} else {
num2 = num2.substring(0, 3);
}
value = plusComma(num1.replace(/,/g, "")) + "." + num2;
} else {
value = plusComma(value.replace(/,/g, "")) +".000";
}
return value;
}
/*-------------------------------------------------------------------------
Spec : //수량형식으로 변환한다. 12345 -> 12345.0000
Example : formatQty4Hous(this);
-------------------------------------------------------------------------*/
// Left 빈자리 만큼 padStr 을 붙인다.
function lpad(src, len, padStr){
var retStr = "";
var padCnt = Number(len) - String(src).length;
for(var i=0;i 12345.0000
function formatQty4Hous(obj){
obj.value = getQty4Hous(obj.value);
}
function getQty4Hous(str){
var value = str == ""? "0": str;
var num1, num2;
var len = value.length;
var off = value.indexOf(".");
if( off != -1){
num1 = value.substring(0, off);
num2 = value.substring(off+1);
if(num2.length<4){
num2 = rpad(num2, 4, '0')+"";
} else {
num2 = num2.substring(0, 4);
}
value = plusComma(num1.replace(/,/g, "")) + "." + num2;
} else {
value = plusComma(value.replace(/,/g, "")) +".0000";
}
return value;
}
//수량형식으로 변환한다. 12345 -> 12345.000
function formatQty3Hous(obj){
obj.value = getQty4Hous(obj.value);
}
function getQty3Hous(str){
var value = str == ""? "0": str;
var num1, num2;
var len = value.length;
var off = value.indexOf(".");
if( off != -1){
num1 = value.substring(0, off);
num2 = value.substring(off+1);
if(num2.length<3){
num2 = rpad(num2, 3, '0')+"";
} else {
num2 = num2.substring(0, 3);
}
value = plusComma(num1.replace(/,/g, "")) + "." + num2;
} else {
value = plusComma(value.replace(/,/g, "")) +".000";
}
return value;
}
/*-------------------------------------------------------------------------
f_chkJumin()
Spec : 주민등록번호 Check
Argument : (document.form_name.input_name,document.form_name.input_name)
Return : boolean
Example : if(f_chkJumin(document.form.Jumin1,document.form.Jumin2) == false) return;
-------------------------------------------------------------------------*/
function f_chkJumin(jumin1,jumin2)
{
var jumin_1 = jumin1.value;
var jumin_2 = jumin2.value;
var number = jumin_1 + jumin_2;
var sum=0;
var mod=0;
var yearin=0;
var monthin=0;
var datein=0;
// 외국인 일때....
//if((jumin_2.substring(0,1) == "7") || (jumin_2.substring(0,1) == "8")) {
// if ((jumin_2.substring(1,2) == "1") || (jumin_2.substring(1,2) == "2") ||
// (jumin_2.substring(1,2) == "3") || (jumin_2.substring(1,2) == "4")
// )
// return true;
//}
// 외국인 일때....2005.06.21수정
if((jumin_2.substring(0,1) == "5") || (jumin_2.substring(0,1) == "6")) {
var fgsum = 0;
var odd = 0;
buf = new Array(13);
for (i=0;i<13;i++ )
{
buf[i] = parseInt(number.charAt(i));
}
if ((buf[11]!=6) && (buf[11]!=7) && (buf[11]!=8) && (buf[11]!=9)) {
ErrMsg2("","【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
for (i=0,fgsum=0;i<12;i++)
{
fgsum += (buf[i] *= multipliers[i]);
}
fgsum = 11-(fgsum%11);
if (fgsum>=10) fgsum -= 10;
fgsum += 2;
if (fgsum>=10) fgsum -= 10;
if (fgsum!=buf[12]) {
ErrMsg2("","【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
return true;
}
//내국인일때
else {
for ( var i=0; i<12; i++ ) {
if (i==0) yearin += parseInt(number.charAt(i),10)*10;
if (i==1) yearin += parseInt(number.charAt(i),10);
if (i==2) monthin += parseInt(number.charAt(i),10)*10;
if (i==3) monthin += parseInt(number.charAt(i),10);
if (i==4) datein += parseInt(number.charAt(i),10)*10;
if (i==5) datein += parseInt(number.charAt(i),10);
if (i<6) sum += parseInt(number.charAt(i),10)*(i+2);
if (i>5&&i<8) sum += parseInt(number.charAt(i),10)*(i+2);
if (i>7) sum += parseInt(number.charAt(i),10)*(i-6);
}
mod = 11 - (sum%11);
if ((11-(sum%11)) >= 10) mod -= 10;
if(mod!=parseInt(number.charAt(12),10)) {
//alert("【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
ErrMsg2("","【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
if(monthin < 1 || monthin > 12 || datein < 1 || datein > 31) {
//alert("【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
ErrMsg2("","【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
if((monthin ==4 || monthin == 6 || monthin == 9 || monthin ==11 ) && datein > 30) {
//alert("【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
ErrMsg2("","【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
if(monthin ==2 && datein > 29) {
//alert("【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
ErrMsg2("","【 입력오류 】: 사용되지않는 주민등록번호입니다. 다시 입력하여 주십시오.");
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
}
return true;
}
/*-------------------------------------------------------------------------
f_dayLaborChkJumin()
Spec : 노무관리 - 일용직 주민등록번호 Check
Argument : (document.form_name.input_name,document.form_name.input_name)
Return : boolean
Example : if(f_chkJumin(document.form.Jumin1,document.form.Jumin2) == false) return;
-------------------------------------------------------------------------*/
function f_dayLaborChkJumin(jumin1,jumin2)
{
var jumin_1 = jumin1.value;
var jumin_2 = jumin2.value;
// 외국인 일때....
if((jumin_2.substring(0,1) == "7") || (jumin_2.substring(0,1) == "8")) {
if ((jumin_2.substring(1,2) == "1") || (jumin_2.substring(1,2) == "2") ||
(jumin_2.substring(1,2) == "3") || (jumin_2.substring(1,2) == "4")
)
return true;
}
var number = jumin_1 + jumin_2;
var sum=0;
var mod=0;
var yearin=0;
var monthin=0;
var datein=0;
for ( var i=0; i<12; i++ ) {
if (i==0) yearin += parseInt(number.charAt(i),10)*10;
if (i==1) yearin += parseInt(number.charAt(i),10);
if (i==2) monthin += parseInt(number.charAt(i),10)*10;
if (i==3) monthin += parseInt(number.charAt(i),10);
if (i==4) datein += parseInt(number.charAt(i),10)*10;
if (i==5) datein += parseInt(number.charAt(i),10);
if (i<6) sum += parseInt(number.charAt(i),10)*(i+2);
if (i>5&&i<8) sum += parseInt(number.charAt(i),10)*(i+2);
if (i>7) sum += parseInt(number.charAt(i),10)*(i-6);
}
mod = 11 - (sum%11);
if ((11-(sum%11)) >= 10) mod -= 10;
if(mod!=parseInt(number.charAt(12),10)) {
if ( ! dlgConfirm("규정에 맞지않는 주민등록번호입니다.
무시하고 그냥 입력하시겠습니까?") ) {
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
return true;
}
if(monthin < 1 || monthin > 12 || datein < 1 || datein > 31) {
if ( ! dlgConfirm("규정에 맞지않는 주민등록번호입니다.
무시하고 그냥 입력하시겠습니까?") ) {
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
return true;
}
if((monthin ==4 || monthin == 6 || monthin == 9 || monthin ==11 ) && datein > 30) {
if ( ! dlgConfirm("규정에 맞지않는 주민등록번호입니다.
무시하고 그냥 입력하시겠습니까?") ) {
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
return true;
}
if(monthin ==2 && datein > 29) {
if ( ! dlgConfirm("규정에 맞지않는 주민등록번호입니다.
무시하고 그냥 입력하시겠습니까?") ) {
jumin1.value = "";
jumin2.value = "";
jumin1.focus();
return false;
}
return true;
}
return true;
}
//2004-08-05
var vLastSelectedTabID = ""; // 마지막으로 선택된 탭 ID 를 저장할 전역변수
function fSelectTab(pDivID)
{
// 처음 display 되는 경우가 아니라면(기존에 선택된 탭이 있다면) display 영역의 내용을 해당 탭 영역에 저장
if(vLastSelectedTabID != "") document.getElementById(vLastSelectedTabID).innerHTML = document.all.tabDiv.innerHTML;
// 새로 선택한 탭 영역의 내용을 display 영역에 copy
document.all.tabDiv.innerHTML = document.getElementById(pDivID).innerHTML;
// 코드중복방지를 위해 원본 소스를 삭제
document.getElementById(pDivID).innerHTML = "";
// 새로 선택한 탭 ID 를 전역변수에 저장
vLastSelectedTabID = pDivID;
}
//2004-08-24 sukjin chang
/*----------------------------------------------------------------------------*/
/* FUNCTION ID : setEditMark */
/* 기 능 : */
/* 정해진 데이터 입력 형식(사업자번호, 주민등록번호, 날짜 등 */
/* 구분자)을 설정해서 사용자가 쉽게 데이터를 입력하게 한다. */
/* 인 수 : */
/* obj (문자) */
/* as_format(형식) */
/* 반 환 값 : */
/* 편집한 문자 */
/* 특 이 사 항 : */
/* ')"> */
/*----------------------------------------------------------------------------*/
function setEditMark(as_value, as_format)
{
/*------------------------------------------------------------------------*/
/* 변수선언 및 초기화. */
/*------------------------------------------------------------------------*/
var i = 0, j = 0, k = 0; /* Index */
var ls_value = ""; /* Value */
/*------------------------------------------------------------------------*/
/* 숫자만 입력가능하게 처리. */
/*------------------------------------------------------------------------*/
for(i = 0; i < as_value.value.length; i++)
{
/*--------------------------------------------------------------------*/
/* 숫자가 아닌것은 제거. */
/*--------------------------------------------------------------------*/
if (!IsDecimal(as_value.value.charAt(i)))
{
as_value.value = as_value.value.substring(0, i)
+ as_value.value.substring(i + 1, as_value.value.length);
}
}
/*------------------------------------------------------------------------*/
/* 문자를 원하는 형식으로 편집. */
/*------------------------------------------------------------------------*/
for(i = 0; i < as_value.value.length; i++)
{
/*--------------------------------------------------------------------*/
/* 지정한 형식이 존재한 경우. */
/*--------------------------------------------------------------------*/
if (as_format.length > j)
{
/*----------------------------------------------------------------*/
/* 구분자가 아닌 경우. */
/*----------------------------------------------------------------*/
if ((as_format.substring(j, j + 1) >= "0") && (as_format.substring(j, j + 1) <= "9"))
{
/*------------------------------------------------------------*/
/* 문자 Edit. */
/*------------------------------------------------------------*/
ls_value = ls_value + as_value.value.substring(i, i + 1);
}
/*----------------------------------------------------------------*/
/* 구분자인 경우. */
/*----------------------------------------------------------------*/
else
{
/*------------------------------------------------------------*/
/* 구분자 추가. */
/*------------------------------------------------------------*/
ls_value = ls_value + as_format.substring(j, j + 1);
j = j + 1;
/*------------------------------------------------------------*/
/* 문자 Edit. */
/*------------------------------------------------------------*/
ls_value = ls_value + as_value.value.substring(i, i + 1);
}
}
j = j + 1;
}
/*------------------------------------------------------------------------*/
/* 편집한 문자 Setting. */
/*------------------------------------------------------------------------*/
as_value.value = ls_value;
return;
}
/*----------------------------------------------------------------------------*/
/* FUNCTION ID : IsDecimal */
/* 기 능 : */
/* 지정한 문자열이 유효한 숫자 값인지를 검사한다. */
/* 인 수 : */
/* ad_decimal(숫자) */
/* 반 환 값 : */
/* True or False */
/* 특 이 사 항 : */
/*----------------------------------------------------------------------------*/
function IsDecimal(ad_decimal)
{
/*------------------------------------------------------------------------*/
/* Decimal type validation check. */
/*------------------------------------------------------------------------*/
if ((ad_decimal >= 0) && (ad_decimal <= 9))
{
return true;
}
else
{
return false;
}
}
/*-------------------------------------------------------------------------
onlyNumber()
Spec : 숫자만 입력가능하게처리
Argument : (document.form_name.input_name, 6)
Return : string
Example : var val = onlyNumber(document.form.Jumin1,document.form.Jumin2);
-------------------------------------------------------------------------*/
function onlyNumber(obj,default_value)
{
var i = 0, j = 0, k = 0; /* Index */
var ls_value = ""; /* Value */
/*------------------------------------------------------------------------*/
/* 숫자만 입력가능하게 처리. */
/*------------------------------------------------------------------------*/
for(i = 0; i < obj.value.length; i++)
{
/*--------------------------------------------------------------------*/
/* 숫자가 아닌것은 제거. */
/*--------------------------------------------------------------------*/
//alert(IsDecimal(obj.value.charAt(i)));
//alert(obj.value.charAt(i));
if (IsDecimal(obj.value.charAt(i)))
{
ls_value += obj.value.substring(i, i+1);
}
}
/*------------------------------------------------------------------------*/
/* 편집한 문자 Setting. */
/*------------------------------------------------------------------------*/
var position;
position = ls_value.indexOf(" ");
while (position != -1){
ls_value = ls_value.replace(" ", "");
position = ls_value.indexOf(" ");
}
if(ls_value == '') ls_value = default_value;
obj.value = ls_value;
return;
}
/*-------------------------------------------------------------------------
f_chk_DDiff()
Spec : 시작일자와 끝 일자를 비교하여 시작일자가 크면 true, 시작일자가 작으면 false를 리턴한다.
Argument : (document.form_name.input_name, 6)
Return : boolean
Example : if( f_chk_DDiff("20050101","20050301") );
-------------------------------------------------------------------------*/
function f_chk_DDiff(Start,End) {
//i_Start = removeMaskForString(Start.value);
//i_End = removeMaskForString(End.value);
i_Start = Start;
i_End = End;
if(i_End == "")
i_End = 99999999;
num = i_End - i_Start;
if ( num < 0 )
return false;
else
return true;
}
//sukjin chang 2004-10-07 추가
/*-------------------------------------------------------------------------
parseInt_isNaN()
Spec : parseInt해서 NaN이면 0을 리턴하고 아니면 값을 리턴한다
Argument : ('123')
Return : int
Example : var intVal = parseInt_isNaN("1234");
-------------------------------------------------------------------------*/
function parseInt_isNaN(str)
{
if( isNaN( parseInt(str) ) )
{
return 0;
} else {
return parseInt(str);
}
}
//sukjin chang 2005-05-03 추가
/*-------------------------------------------------------------------------
parseFloat_isNaN()
Spec : parseFloat해서 NaN이면 0을 리턴하고 아니면 값을 리턴한다
Argument : ('123.12')
Return : float
Example : var floatVal = parseInt_isNaN("1234");
-------------------------------------------------------------------------*/
function parseFloat_isNaN(str)
{
if( isNaN( parseFloat(str) ) )
{
return 0;
} else {
return parseFloat(str);
}
}
//sukjin chang 2004-10-14 추가
/*-------------------------------------------------------------------------
fDivScroll()
Spec : 리스트에서 상단타이틀과 리스트 목록이 같이 이동 Scroll
Argument : ('123.12')
Return : float
Example : fDivScroll(f.div1, f.div2)
-------------------------------------------------------------------------*/
function fDivScroll( obj1, obj2 )
{
// 스크롤바 따라가기 스크립트
// obj2 가 obj1 을 따라합니다.
obj2.scrollLeft = obj1.scrollLeft;
}
//sukjin chang 2004-11-05 추가
/**
* 문자길이를 체크
* 파라미터)> obj:객체이름, field_name:입력할 제목, max_len:허용할 최대길이
* 사용예)> if(f_check_len( obj, "필드명", 길이 ) == false) return;
*/
function f_check_len( obj, field_name, max_len )
{
len = getObjectByteLength(obj);
if (len > max_len) {
dlgAlert(field_name + "는(은) 숫자 영문은" + max_len + "자 까지 한글은 " + max_len/2 + "자 까지 가능합니다.");
obj.focus();
return false;
}
return true;
}
/**
* YMI 2007-09-19 추가
* 문자길이를 체크(소수점표현식) -- 소수점 뒤는 DB에서 자동으로 해당 자릿수 만큼만 저장한다.
* 파라미터)> obj:객체이름, field_name:입력할 제목, max_len:허용할 최대길이, str:소수점(.) 앞에 값 [ex: 123.432 -> str= 123]
* 사용예)> if(f_check_len( obj, "필드명", 길이 ) == false) return;
*/
function f_float_len( obj, field_name, max_len, str)
{
len = getStringByteLength(str);
if (len > max_len) {
dlgAlert(field_name + "는(은) 소수점 앞자리는 " + max_len + "자 까지 가능합니다.");
obj.focus();
return false;
}
return true;
}
//onblur
/**
* 문자길이를 체크
* 파라미터)> obj:객체이름, max_len:허용할 최대길이
* 사용예)> if(f_check_limit(this, this.maxLength) == false) return;
*/
function f_check_limit( obj, max_len )
{
len = getObjectByteLength(obj);
if (len > max_len) {
dlgAlert("숫자 영문은" + max_len + "자 까지 한글은 " + max_len/2 + "자 까지 가능합니다.");
obj.focus();
return false;
}
return true;
}
//onkeyup
/**
* 문자길이를 체크
* 파라미터)> obj:객체이름, max_len:허용할 최대길이
* 사용예)> if(f_check_limit2(this, this.maxLength) == false) return;
*/
function f_check_limit2(obj, max_len)
{
var strCount = 0;
var tempStr, tempStr2;
for(i = 0;i < obj.value.length;i++)
{
tempStr = obj.value.charAt(i);
if(escape(tempStr).length > 4) strCount += 2;
else strCount += 1 ;
}
if (strCount > max_len){
alert("숫자 영문은" + max_len + "자 까지 한글은 " + max_len/2 + "자 까지 가능합니다.");
strCount = 0;
tempStr2 = "";
for(i = 0; i < obj.value.length; i++)
{
tempStr = obj.value.charAt(i);
if(escape(tempStr).length > 4) strCount += 2;
else strCount += 1 ;
if (strCount > max_len)
{
if(escape(tempStr).length > 4) strCount -= 2;
else strCount -= 1 ;
break;
}
else tempStr2 += tempStr;
}
obj.value = tempStr2;
}
//return true;
}
/*-------------------------------------------------------------------------
function f_chkDate()
Example : if(f_chkDate(obj, "필드명") == false) return;
-------------------------------------------------------------------------*/
/**
* 날자타입 체크
* 파라미터)> stObj:객체이름, alertMSG:에러 발생시 띄울 메시지
* 사용예)> if(f_check_limit2(this, this.maxLength) == false) return;
*/
function f_chkDate(stObj,alertMSG)
{
var st = removeMaskForString(stObj.value);
var d_yy = st.substr(0,4);
var d_mm = st.substr(4,2);
var d_dd = st.substr(6,2);
if ((st == "") || (st == null)) return true;
if (st == "00000000" || st == "0000-00-00")
{
stObj.value = ''
return true;
}
if (st.length != 8) {
dlgAlert(alertMSG + "의 문자형식은 YYYYMMDD로 입력하여 주십시오.");
stObj.focus();
return false;
}
if ((st.charAt(0) < "1") || (st.charAt(0) > "2")) {
dlgAlert(alertMSG + "의 년도를 올바르게 입력하여 주십시오.");
stObj.focus();
return false;
}
for(j=0; j < 3; j++)
if ((st.charAt(j) < "0") || (st.charAt(j) > "9")) {
dlgAlert(alertMSG + "의 년도를 숫자로 입력하여 주십시오.");
stObj.focus();
return false;
}
for(j=4; j < 6; j++)
if ((st.charAt(j) < "0") || (st.charAt(j) > "9"))
{
dlgAlert(alertMSG + "의 월을 숫자로 입력하여 주십시오.");
stObj.focus();
return false;
}
for(j=6; j < 8; j++)
if ((st.charAt(j) < "0") || (st.charAt(j) > "9"))
{
dlgAlert(alertMSG + "의 일자를 숫자로 입력하여 주십시오.");
stObj.focus();
return false;
}
if (st.charAt(4) == "0") // parseInt가 "08"을 0으로 인식하여 할 수없이 자리수를 나누어 처리...
d_mm = st.charAt(5);
if (((parseInt(d_mm)) < 1) || ((parseInt(d_mm)) > 12))
{
dlgAlert(alertMSG + "의 월은 01부터12까지 입니다");
stObj.focus();
return false;
}
if (st.substr(6,2) == "08") {
d_dd = st.charAt(8);
}
if (st.substr(6,2) == "09") {
d_dd = st.charAt(8);
}
num = Number(d_mm);
if ((0 < num) && (num < 8)) {
// 윤달체크 시작
year = Number(d_yy);
if (parseInt(d_mm) == 2) {
if (year%4 == 0)
{
if (((parseInt(d_dd)) < 0) || ((parseInt(d_dd)) > 29))
{
dlgAlert(alertMSG + "의 일자는 01부터 29일까지 입니다.");
stObj.focus();
return false;
}
}else
{
if (((parseInt(d_dd)) < 0) || ((parseInt(d_dd)) > 28))
{
dlgAlert(alertMSG + "의 일자는 01부터 28일까지 입니다.");
stObj.focus();
return false;
}
}
}
//윤달체크 끝.
if (num%2 == 0)
{
if (((parseInt(d_dd)) < 1) || ((parseInt(d_dd)) > 30)) {
dlgAlert(alertMSG + "의 일자는 01부터30까지 입니다.");
stObj.focus();
return false;
}
}
else {
if (((parseInt(d_dd)) < 1) || ((parseInt(d_dd)) > 31)) {
dlgAlert(alertMSG + "의 일자는 01부터31까지 입니다.");
stObj.focus();
return false;
}
}
} // 여기까지가 01-07월까지 일계산 입니다...
else {
if (num%2 == 0)
{
if (((parseInt(d_dd)) < 1) || ((parseInt(d_dd)) > 31)) {
dlgAlert(alertMSG + "의 일자는 01부터31까지 입니다.");
stObj.focus();
return false;
}
}
else {
if (((parseInt(d_dd)) < 1) || ((parseInt(d_dd)) > 30)) {
dlgAlert(alertMSG + "의 일자는 01부터30까지 입니다.");
stObj.focus();
return false;
}
}
}
return true;
}
/*-------------------------------------------------------------------------
function upArrowClik(obj)
Example : upArrowClik(obj);
-------------------------------------------------------------------------*/
/**
* obj의 값을 +1시킨다.
* 파라미터)> Obj:객체이름
* 사용예)> upArrowClik(obj);
*/
function upArrowClik(obj){
obj.value = (obj.value*1)+1;
}
/*-------------------------------------------------------------------------
function downArrowClik(obj)
Example : downArrowClik(obj);
-------------------------------------------------------------------------*/
/**
* obj의 값을 -1시킨다.
* 파라미터)> Obj:객체이름
* 사용예)> upArrowClik(obj);
*/
function downArrowClik(obj){
obj.value = (obj.value*1)-1;
}
/**
* 자릿수에 따른 포맷형식
* 파라미터)> strDigit : 소수점 자릿수
* 설명)> Report Designer 에 자릿수 형식 표현을 위해 JSP 단에서 파라미터 값을 미리 형식변환 하여 보낸다.
*/
function getFormatDigit(strDigit){ // 자릿수에 따른 포맷형식
var strFormat = "";
if(strDigit == "0") strFormat = "#,###";
else if(strDigit == "1") strFormat = "#,###.#";
else if(strDigit == "2") strFormat = "#,###.##";
else if(strDigit == "3") strFormat = "#,###.###";
else if(strDigit == "4") strFormat = "#,###.####";
else if(strDigit == "5") strFormat = "#,###.#####";
else if(strDigit == "6") strFormat = "#,###.######";
return strFormat;
}
/**
* Textarea 크기 조절
* 파라미터 ) imgObj: 사이즈 변화를 주고싶어 클릭할 image, textObj:사이즈 변화를 주고싶은 TEXTAREA, minRows:최저 Row 라인 갯수, maxRows:최대 Row 라인 갯수
* 사용예 )
*/
function toggleTextarea(imgObj, textObj, minRows, maxRows) {
var maxImgSrc = "/img/buyer/icon/icon_minus.gif";
var minImgSrc = "/img/buyer/icon/icon_plus.gif";
try {
if( textObj.rows >= maxRows ) { // 축소
imgObj.src = minImgSrc;
textObj.rows = minRows;
}
else if( textObj.rows < maxRows ) { // 확대
imgObj.src = maxImgSrc;
textObj.rows = maxRows;
}
}
catch(errorObject) {
}
}
/**
* 두 날짜의 차이를 true false로 반환한다 (조회 종료일 - 조회 시작일)
* 두 월의 차이를 true false로 반환한다 (조회 종료월 - 조회 시작월)
* @param fromDate - 조회 시작일 or 조회 시작월 (날짜 ex.2002-01-01 or 2002-01)
* @param toDate - 조회 종료일 or 조회 종료월 (날짜 ex.2002-01-01 or 2002-02)
* @param delim - 날짜 구분자
* @param isMonth - 달체크 여부 true인 경우 달로 체크한다
* @param msgChk - 메시지 출력여부 ( true or false )
* @return boolean
*/
function compareDate( fromDate, toDate, delim, isMonth, msgChk ){
var delimeter = delim;
var from_dt;
var to_dt;
if( msgChk == undefined || msgChk == null ){
msgChk = true;
}
// delimeter가 있는 경우
if( delimeter != null && delimeter != undefined && delimeter != "" ){
//년월일체크
if ( !isMonth && (fromDate.length != 10 || toDate.length != 10) ){
alert("올바른 날짜 값이 아닙니다.")
return false;
}
//년월 체크
else if ( isMonth && (fromDate.length != 7 || toDate.length != 7) ){
alert("올바른 년월 값이 아닙니다.")
return false;
}
if( fromDate.indexOf(delimeter) < 0 || toDate.indexOf(delimeter) < 0 ){
alert("날짜 구분자가 맞지 않습니다.")
return false;
}
// 년도, 월, 일로 분리
var start_dt = fromDate.split(delimeter);
var end_dt = toDate.split(delimeter);
// 월 - 1(자바스크립트는 월이 0부터 시작하기 때문에...)
// Number()를 이용하여 08, 09월을 10진수로 인식하게 함.
start_dt[1] = (Number(start_dt[1]) - 1) + "";
end_dt[1] = (Number(end_dt[1]) - 1) + "";
//달체크인 경우
if( isMonth ){
from_dt = new Date(start_dt[0], start_dt[1], "01");
to_dt = new Date(end_dt[0], end_dt[1], "01");
}
else{
from_dt = new Date(start_dt[0], start_dt[1], start_dt[2]);
to_dt = new Date(end_dt[0], end_dt[1], end_dt[2]);
}
}
// delimeter가 없지만 자릿수가 8자리인 경우
else if( fromDate.length == 8 && toDate.length == 8 ){
from_dt = new Date(fromDate.substring(0,4), fromDate.substring(4,6), fromDate.substring(6,8));
to_dt = new Date(toDate.substring(0,4), toDate.substring(4,6), toDate.substring(6,8));
}
// delimeter가 없고 년월 체크이면서 자릿수가 6자리인 경우
else if( isMonth && (fromDate.length == 6 && toDate.length == 6) ){
from_dt = new Date(fromDate.substring(0,4), fromDate.substring(4,6), "01");
to_dt = new Date(toDate.substring(0,4), toDate.substring(4,6), "01");
}
else{
alert("올바른 날짜 값이 아닙니다.")
return false;
}
/*
if( ( to_dt.getTime() - from_dt.getTime() ) == 0 ){
if( isMonth ){
alert("조회기간의 시작월과 종료월이 같습니다.");
}
else{
alert("조회기간의 시작날짜와 종료날짜가 같습니다.");
}
return false;
}
else
*/
if( ( to_dt.getTime() - from_dt.getTime() ) < 0 ){
if( isMonth && msgChk ){
alert("조회기간의 종료월이 시작월보다 작습니다.");
}else if( msgChk ){
alert("조회기간의 종료날짜가 시작날짜보다 작습니다.");
}
return false;
}
else {
return true;
}
}
function doDownExcel(sheetObj){
sheetObj.SpeedDown2Excel(-1);
}
/**
* 엑셀 다운로드
* 파라미터 > sheetObj 쉬트Object, exceltitle 엑셀 타이틀
* 사용예 > doDownExcel4sheet(document.all.sheet1,"Project NO")
* 작성일자 > 2007-12-12
*/
function doDownExcel4Sheet(sheetObj,exceltitle) {
if (sheetObj.RowCount <= 0){
dlgAlert("There is no data to download.");
return;
}
var param = "exceltitle=" + HMCS_MSG+"Project ["+sheetObj.UrlEncoding(exceltitle)+"]";
// 엑셀 다운로드
sheetObj.SpeedDown2Excel(-1, false, false, "", "/lib/excel_download.screen?"+param);
}
//현재 자식노드인 경우 부모노드의 Row를 반환한다.
function getParentRow( childRow ){
var parentRow = 0;
var sheetObj = document.all.sheet1;
for ( var i = childRow; i > 0; i-- ) {
if( sheetObj.RowLevel(i) == 0 ){
parentRow = i;
break;
}
}
return parentRow;
}
/**
* PassWord Validation Check
* 패스워드는 8~16자리 이내, 생일, 주민등록번호, 전화번호 같지 않게 ,영문혼용 사용, ID와 4자이상 중복, 연속된 문자, 순차적인 숫자 4개이상 입력 안됨.
*/
function doValidPassWord(Object) {
var minLength = 6; //비밀번호 최소 자리수
var maxLength = 20; //비밀번호 최대 자리수
var msg = "";
try {
if(Object.passwd01 != Object.passwd02){
msg = "입력하신 비밀번호가 다릅니다.";
return msg;
}
if(Object.passwd01.length < minLength || Object.passwd01.length > maxLength){
msg = "비밀번호는 "+minLength+"자 이상 ~"+maxLength+" 자 이내로 입력하세요!";
return msg;
}
if(chkPassword(Object.passwd01) == false ){
msg = "비밀번호는 영문, 숫자의 조합으로 입력하세요!";
return msg;
}
if(chkNumber(Object.passwd01, Object.tel_no) == false
||chkNumber(Object.passwd01, Object.hand_tel) == false){
msg = "전화번호, 휴대폰번호 등은 비밀번호로 사용할 수 없습니다!"
return msg;
}
var cnt=0,cnt2=1,cnt3=1;
var temp="";
for(i=0;i < Object.user_id.length;i++){
temp_id =Object.user_id.charAt(i);
for(j=0;j < Object.passwd01.length;j++){
if (cnt >0)
j=tmp_pass_no+1;
if (temp == "r"){
j=0;
temp="";
}
temp_pass = Object.passwd01.charAt(j);
if (temp_id == temp_pass){
cnt = cnt + 1;
tmp_pass_no = j;
break;
}else if(cnt > 0 && j > 0){
temp="r";
cnt = 0;
}else
cnt = 0;
}
//alert("4-cnt="+cnt);
if (cnt > 3) break;
}
if (cnt > 3){
msg = "비밀번호가 ID와 4자 이상 중복되거나, \n연속된 문자나 순차적인 숫자를 4개이상 사용해서는 안됩니다.";
return msg;
}
for(i=0;i < Object.passwd01.length;i++){
temp_pass1 = Object.passwd01.charAt(i);
next_pass = (parseInt(temp_pass1.charCodeAt(0)))+1;
temp_p = Object.passwd01.charAt(i+1);
temp_pass2 = (parseInt(temp_p.charCodeAt(0)));
if (temp_pass2 == next_pass)
cnt2 = cnt2 + 1;
else
cnt2 = 1;
if (temp_pass1 == temp_p)
cnt3 = cnt3 + 1;
else
cnt3 = 1;
if (cnt2 > 3) break;
if (cnt3 > 3) break;
}
if (cnt2 > 3){
msg = "비밀번호에 연속된 문자나 순차적인 숫자를 4개이상 사용해서는 안됩니다.";
return msg;
}
else if (cnt3 > 3){
msg = "비밀번호에 반복된 문자/숫자를 4개이상 사용해서는 안됩니다.";
return msg;
}
}
catch(errorObject) {
showErrorDlg("common_js.doValidPassWord()", errorObject);
return msg = errorObject ;
}
return msg;
}
function chkPassword(pass) {
chk1 = /^[a-z\d]{6,20}$/i; //a-z와 0-9이외의 문자가 있는지 확인
chk2 = /[a-z]/i; //적어도 한개의 a-z 확인
chk3 = /\d/; //적어도 한개의 0-9 확인
return chk1.test(pass) && chk2.test(pass) && chk3.test(pass);
}
function chkNumber(pass, Num){
var check = false;
var comp = Num.substring(Num.length-4);
if(pass.match(comp)== null || Num == ""){
return true;
}
return check;
}
/**
* Random PassWord Generator
* 랜덤 패스워드 생성
*/
function randomPassWord() {
var pass = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234507890abcdefghijklmnopqrstuvwxyz";
var n = 0 ;
var i = 0 ;
var s = "" ;
var len = 8;
for(k=1; k<=len; k++){
n = Math.random()*62;
i = Math.round(n);
s += pass.charAt(i);
}
return s;
}
function changePasswd(Obj){
var url = "/sycs/user/ChangePwd.screen?user_id="+Obj.user_id.value;
var argObj = new Object();
argObj.user_id = Obj.user_id.value;
argObj.tel_no = Obj.tel_no.value;
argObj.fax_no = Obj.fax_no.value;
argObj.hand_tel = Obj.hand_tel.value;
var result = window.showModalDialog(getDummyUrl(url), argObj ,'dialogWidth:430px;dialogHeight:140px; center:yes; help:no; status:no; scroll:no; resizable:no');
}
function deciHistoryView(bizCode, linkTable, docGB, processStatus, keyId, chasu) {
var url = "/common/his/DeciHistoryView.screen"
+ "?biz_code=" + bizCode
+ "&link_table=" + linkTable
+ "&doc_gb=" + docGB
+ "&process_status=" + processStatus
+ "&key_id=" + keyId;
if(linkTable == "WEEK"){
url += "&chasu=" + chasu;
}
var dlgWidth = 980;
var dlgHeight = 400;
window.showModalDialog(getDummyUrl(url), this.window,'dialogWidth:' + dlgWidth + 'px;dialogHeight:' + dlgHeight + 'px; center:yes; help:no; status:no; scroll:yes; resizable:no');
}
/*
* Tab 이미지를 마우스 over/out에 따라 설정한다.
*/
function setTabImage(obj){
if(obj.style.backgroundImage == '' || obj.style.backgroundImage == 'url(/img/tab/tab_off.gif)'){
obj.style.backgroundImage = "url(/img/tab/tab_on.gif)";
obj.style.setAttribute("color", "white");
}else{
obj.style.backgroundImage = "url(/img/tab/tab_off.gif)";
obj.style.setAttribute("color", "#5e5e5e");
}
}
var isIE = (navigator.appName.indexOf("Microsoft") != -1) ? 1 : 0;
function trueBody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement: document.body;
}
function trueBodyParent(){
return (parent.document.compatMode && parent.document.compatMode!="BackCompat")? parent.document.documentElement: parent.document.body;
}
//Layer Popup 오픈
function fLayerPop(layerID, htmlSrc, width, height, xPos, yPos, scroll)
{
fLayerPop(layerID, htmlSrc, width, height, xPos, yPos, scroll, '200');
}
function fLayerPop(layerID, htmlSrc, argwidth, argheight, xPos, yPos, scroll, z_index){
var div1 = document.createElement("DIV");
div1.id = layerID;
div1.style.display = "none";
div1.innerHTML = "";
document.body.appendChild(div1);
$('#'+layerID).width(argwidth);
$('#'+layerID).height(argheight+25);
$('#'+layerID+ '_divcontent').width(argwidth);
$('#'+layerID+ '_divcontent').height(argheight+25);
if(scroll== 'y' || scroll == 'yes' || scroll == 'YES'){
scroll = 'scrolling="yes"';
}else{
scroll = 'scrolling="no"';
}
//테스트중
$('#'+layerID).bPopup({
modalClose: false,
escClose: true,
opacity: 0.5,
iframeAttr: scroll,
content:'iframe', //'ajax', 'iframe' or 'image'
contentContainer:"#"+layerID+"_divcontent",
loadUrl: htmlSrc //Uses jQuery.load()
});
}
function fLayerPopBack(layerID, htmlSrc, width, height, xPos, yPos, scroll, z_index)
{
var yScroll = document.all ? (!document.documentElement.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop) : (window.pageYOffset ? window.pageYOffset : window.scrollY);
if(yScroll xMax)
iframe.style.left = xMax - parseInt(iframe.style.width) - 20;
if(scroll == null || scroll.length == 0){
scroll = "yes"
}
iframe.id = layerID + "_iframe";
iframe.marginwidth = "0px";
iframe.marginheight = "0px";
iframe.scrolling = scroll;
iframe.frameBorder = "0px";
iframe.src = htmlSrc;
//document.body.appendChild(iframe);
document.body.appendChild(div1);
//document.body.appendChild(iframe);
document.body.insertBefore(iframe, div1);
$('#'+layerID).fadeIn();
}
// Layer Popup 닫기
function fLayerPopClose(layerID)
{
var oNode = document.getElementById(layerID);
if(oNode != null)
{
$('#'+layerID+ '_divcontent').empty();
$('#'+layerID).bPopup().close();
document.body.removeChild(oNode);
}
}
//시간 호출
function dpTime(){
var now = new Date();
hours = now.getHours();
minutes = now.getMinutes();
seconds = now.getSeconds();
if (hours > 12){
hours -= 12;
ampm = "오후 ";
}else{
ampm = "오전 ";
}
if (hours < 10)
hours = "0" + hours;
if (minutes < 10)
minutes = "0" + minutes;
if (seconds < 10)
seconds = "0" + seconds;
document.getElementById("dpTime").innerHTML = ampm + hours + ":" + minutes + ":" + seconds;
}
// 숫자 3자리수마다 콤마(,) 찍기
function formatComma(num, pos) {
if (!pos) pos = 0; //소숫점 이하 자리수
var re = /(-?\d+)(\d{3}[,.])/;
var strNum = stripComma(num.toString());
var arrNum = strNum.split(".");
if(arrNum.length > 1 && pos > 0){
arrNum[0] += ".";
}
while (re.test(arrNum[0])) {
arrNum[0] = arrNum[0].replace(re, "$1,$2");
}
if (arrNum.length > 1) {
if (arrNum[1].length > pos) {
arrNum[1] = arrNum[1].substr(0, pos);
}
return arrNum.join("");
}
else {
return arrNum[0].split(".")[0];
}
}
// 콤마(,) 제거
function stripComma(str) {
var re = /,/g;
return str.replace(re, "");
}
/**
* Sheet1 List 엑셀 다운로드
*/
function sheetExcelDown(obj,Name){
var DownCol = "";
var ColEnd = "|";
for(var i=0;i < 99;i++){
var ColName = obj.ColSaveName(0, i);
if(ColName == -1){
i = 100;
}else{
if(obj.GetColHidden(ColName) == 0){
DownCol = DownCol + ColName + ColEnd;
}
}
}
DownCol = DownCol.substring(0,DownCol.length-1);
var params = { FileName : Name+".xls", SheetName : Name, SheetDesign:1 , DownCols:DownCol , AutoSizeColumn : 1, Merge : 1} ;
obj.Down2Excel(params);
}
//중복 요청을 막기 위하여 로딩바 추가 2019.08.23
function showLoadingBar() {
var maskHeight = $(document).height();
var maskWidth = window.document.body.clientWidth;
var mask = "";
var loadingImg = '';
loadingImg += "";
loadingImg += "
";
loadingImg += "
";
$('body').append(mask).append(loadingImg);
$('#mask').css({
'width' : maskWidth
, 'height': maskHeight
, 'opacity' : '0.3'
});
$('#mask').show();
$('#loadingImg').show();
}
//중복 요청을 막기 위하여 로딩바 추가 2019.08.23
function hideLoadingBar() {
$('#mask, #loadingImg').hide();
$('#mask, #loadingImg').remove();
}