/*////////////////////////////////////////////////////////////////////////////// Common JavaScript Util list _ARRAY_ : 배열관련 _BROWSER_ : 브라우저 버전등 _CLIPBOARD_ : 클립보드 관련 _DATE_ : 일자 관련 _CHECK_ : 실시간 체크 관련 _INPUT_ : input객체 관련 _MATH_ : 수학관련 _NUMBER_ : 숫자관련 _STRING_ : 문자 관련 _TAG_ : 태그 관련 _VALIDATE_ : 유효성 체크 관련 _COORDINATE_ : 좌표관련 documentation : common_api.txt ※ 수정 혹은 추가시 common_api.txt을 수정해 주세요. //////////////////////////////////////////////////////////////////////////////*/ var _PROPERTIES_ = { character_type : "UTF-8" //"EUC-KR" }; var _ARRAY_ = { contains : function(array, value){ for(var c_array=0 ; c_array < array.length ; c_array++) if(array[c_array] == value) return true; return false; } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _BROWSER_ = { isExplorer : function(){ return window.navigator.appName.indexOf("Explorer") !=-1 } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _CLIPBOARD_ = { saveText : function (text) { if (_BROWSER_.isExplorer()) { window.clipboardData.setData("Text", url); } } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _DATE_ = { unFormat : function (dstr) { dstr = String(dstr); return Number(dstr.replace(/\//gi, "")); }, compareDate : function (src, target) { var srcday; var targetday; if((typeof src) == 'object') srcday = this.dateToNumber(src); if((typeof target) == 'object') targetday = this.dateToNumber(target); srcday = this.unFormat(srcday); targetday = this.unFormat(targetday); if (srcday > targetday) { return 1; } else { if (src < targetday) { return -1; } else { return 0; } } }, dateToNumber : function (date) { //formatTime(date) var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); if (("" + month).length == 1) { month = "0" + month; } if (("" + day).length == 1) { day = "0" + day; } return Number("" + year + month + day); }, numberToDate : function (datestr) { datestr = this.unFormat(datestr); var year = Number(String(datestr).substr(0, 4)); var month = Number(String(datestr).substr(4, 2)) - 1; var day = Number(String(datestr).substr(6, 2)); return new Date(year, month, day); }, format : function (datestr) { if((typeof datestr) == 'object') datestr = this.dateToNumber(datestr); datestr = this.unFormat(datestr); return String(datestr).substring(0, 4) + "/" + String(datestr).substring(4, 6) + "/" + String(datestr).substring(6, 8); }, validate : function(dateText) { dateText = this.unFormat(dateText); if(String(dateText).length != 8) return false; var origin = { year : Number(String(dateText).substr(0, 4)), month : Number(String(dateText).substr(4, 2)) - 1, day : Number(String(dateText).substr(6, 2)) }; var oDate = new Date(origin.year, origin.month, origin.day); return oDate.getFullYear() == origin.year && oDate.getMonth() == origin.month && oDate.getDate() == origin.day; } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _CHECK_ = { restrictQuotationMarks : function (textObj) { textObj.attachEvent("onblur", function(){ event.srcElement.value = event.srcElement.value.replace(/[\'\"]/gi,''); }); }, onlyPositiveNumber : function (textObj) { textObj.style.imeMode = 'disabled'; textObj.attachEvent("onkeydown", function(){ var acceptKeyCode = new Array(48,49,50,51,52,53,54,55,56,57, // 숫자제한 96,97,98,99,100,101,102,103,014,105, // 숫자제한 8, // 백스페이스 9, // 탭 37, // 좌로 39, // 우로 46 // delete ); if (_ARRAY_.contains(acceptKeyCode,event.keyCode)) event.returnValue = true; else event.returnValue = false; }); }, onlyInteger : function (textObj) { textObj.style.imeMode = 'disabled'; textObj.attachEvent("onkeydown", function(){ var acceptKeyCode = new Array( 48,49,50,51,52,53,54,55,56,57, // 숫자제한 96,97,98,99,100,101,102,103,014,105, // 숫자제한 189, // - 부호 109, // - 부호 8, // 백스페이스 9, // 탭 37, // 좌로 39, // 우로 46 // delete ); if (_ARRAY_.contains(acceptKeyCode,event.keyCode)) event.returnValue = true; else event.returnValue = false; }); }, onlyFloat : function (textObj) { textObj.style.imeMode = 'disabled'; textObj.attachEvent("onkeydown", function(){ var acceptKeyCode = new Array( 48,49,50,51,52,53,54,55,56,57, // 숫자제한 96,97,98,99,100,101,102,103,014,105, // 숫자제한 189, // - 부호 109, // - 부호 8, // 백스페이스 9, // 탭 37, // 좌로 39, // 우로 46, // delete 110, // . 190 // . ); if (_ARRAY_.contains(acceptKeyCode,event.keyCode)) event.returnValue = true; else event.returnValue = false; }); }, limitBytes : function(textObj,maxBytes) { textObj.maxbytes = maxBytes; textObj.attachEvent("onkeyup", function(){ srcObj = event.srcElement; if(srcObj.tempvalue == null) srcObj.tempvalue = ""; if(_STRING_.getBytes(srcObj.value) > srcObj.maxbytes) { event.returnValue = false; if(srcObj.isAlertedLengthRestriction == null){ srcObj.isAlertedLengthRestriction = true; alert("길이가 초과 되었습니다."); }else{ srcObj.blur(); } srcObj.value = srcObj.tempvalue; srcObj.select(); var tRange = srcObj.createTextRange(); tRange.moveStart("Character",srcObj.value.length); tRange.select(); }else srcObj.tempvalue = srcObj.value; }); } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _INPUT_ = { getValue : function(inputObj) { if(inputObj.tagName == null){ inputObj.tagName = inputObj[0].tagName; inputObj.type = inputObj[0].type; } switch(inputObj.tagName.toUpperCase()) { case 'SELECT' : if(inputObj.multiple){ var result = new Array(); for(var i=0 ; i < inputObj.options.length ; i++) if(inputObj.options[i].selected == true) result.push(inputObj.options[i].value); return result; }else return inputObj.options[inputObj.selectedIndex].value; default : switch(inputObj.type.toUpperCase()) { case 'RADIO' : if(inputObj.length){ for( i=0 ; i < inputObj.length ; i++) if(inputObj[i].checked == true) return inputObj[i].value; }else{ if(inputObj.checked == true) return inputObj.value; } return null; case 'CHECKBOX' : var result = new Array(); if(inputObj.length){ for( i=0 ; i < inputObj.length ; i++) if(inputObj[i].checked == true) result.push(inputObj[i].value); }else{ if(inputObj.checked == true) result.push(inputObj.value); } return result; default : return inputObj.value; } break; } }, CHECKBOX : { checkAll : function(checkBoxObj,state){ if(checkBoxObj != null) { if(checkBoxObj.length){ for (c=0;c 1){ for(i = 0 ; i < chCount ; i++){ if(checkBoxObj[i].checked == true) return true; } return false; } } }, SELECT : { pushOption : function(selectObject,text,value){ for(var i=selectObject.options.length ; i > 0 ; i--) { var src = selectObject.options[i-1]; selectObject.options[i] = new Option(src.text, src.value); } selectObject.options[0] = new Option(text,value); }, stackOption : function(selectObject,text,value){ selectObject.options[selectObject.options.length] = new Option(text,value); }, selectByValue : function(selectObject,value){ for(var i=0 ; i < selectObject.options.length ; i++) { if(selectObject.options[i].value == value){ selectObject.selectedIndex = i; break; } } }, selectByText : function(selectObject,text){ for(var i=0 ; i < selectObject.options.length ; i++) { if(selectObject.options[i].text == text){ selectObject.selectedIndex = i; break; } } }, getText : function(selectObject) { return selectObject.options[selectObject.selectedIndex].text; }, removeByValue : function(selectObject,value){ for(var i=0 ; i < selectObject.options.length ; i++) { if(selectObject.options[i].value == value){ selectObject.options[i] = null; break; } } }, removeAll : function(selectObject){ for(var i=0 ; i < selectObject.options.length ; i++) { selectObject.options[0] = null; } }, removeOthers : function(selectObject,value){ var option = null; for(var i=0 ; i < selectObject.options.length ; i++) { if(selectObject.options[i].value == value){ option = selectObject.options[i]; break; } } selectObject.options.length = 1; selectObject.options[0] = option; } } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _MATH_ = { round : function(num,size){ num = Number(num); return Math.round( num * Math.pow(10,size)) / Math.pow(10,size); } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _NUMBER_ = { insertComma : function (num){ num = this.removeComma(num); var postfloat= ""; var strnum = String(num); var idxComma = strnum.indexOf("."); if(idxComma > -1){ postfloat = "." + strnum.substring(idxComma).replace(/[.]/gi, ""); strnum = strnum.substring(0,idxComma); } if(isNaN(strnum)) return strnum + postfloat; if(strnum.length > 3) return this.insertComma(strnum.substring(0,strnum.length-3))+","+strnum.substr(strnum.length-3,3)+postfloat; else return strnum + postfloat; }, removeComma : function(str) { var number = str.replace(/[,]/gi, ""); return isNaN(number) ? number : number; } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _STRING_ = { getBytes : function (text) { switch(_PROPERTIES_.character_type){ case "UTF-8" : return _STRING_.getUTF8Bytes(text); break; case "EUC-KR" : return _STRING_.getEUCKRBytes(text); break; } }, getEUCKRBytes : function (text) { var str = new String(text); var len = str.length; var count = 0; for (k = 0; k < len; k++) { temp = str.charAt(k); if (escape(temp).length > 4) { count += 2; } else { if (temp == "\r" && str.charAt(k + 1) == "\n") { // rn일 경우 count += 2; } else { if (temp != "\n") { count++; } else { count++; } } } } return count; }, getUTF8Bytes : function (str) { if (str == null || str.length == 0) { return 0; } var size = 0; for (var i = 0; i < str.length; i++) { size += _STRING_.getUTF8CharByteSize(str.charAt(i)); } return size; }, getUTF8CharByteSize : function(ch) { if (ch == null || ch.length == 0) { return 0; } var charCode = ch.charCodeAt(0); if (charCode <= 0x00007F) { return 1; } else if (charCode <= 0x0007FF) { return 2; } else if (charCode <= 0x00FFFF) { return 3; } else { return 4; } }, substrb : function(text, startIdx, length) { var addNum; var count = 0; var strChar; var result = ""; var cutLength = 0; for (i = 0; i < text.length; i++) { strChar = text.charAt(i); if (escape(strChar).length > 4) { addNum = 2; } else { addNum = 1; } count += addNum; if (length != null) { if (count >= startIdx && cutLength <= length) { cutLength += addNum; } if (count >= startIdx && cutLength <= length) { result += text.charAt(i); } } else { if (count >= startIdx) { result += text.charAt(i); } } } return result; }, ltrim : function (text){ text = String(text); if(text == null) return null; if(text.substr(0,1) == " ") return this.ltrim(text.substring(1)); else return text; }, rtrim : function (text){ text = String(text); if(text == null) return null; if(text.substr(text.length-1,1) == " ") return this.rtrim(text.substring(0,text.length-1)); else return text; }, trim : function(text){ return text.replace(/ /gi, ""); } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _TAG_ = { stripHTMLtag : function(string) { return string.replace(/[<][^>]*[>]/gi, ""); } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _VALIDATE_ = { isTelNumber : function(telnumber){ var isNum = /^[0-9-]+$/; if( !isNum.test(telnumber) ) return false; else return true; }, isEmail : function(email) { if(email == '') return true; if(email.search(/^\s*[\w\~\-\.]+\@[\w\~\-]+(\.[\w\~\-]+)+\s*$/g)>=0) return true; else return false; }, isNumber : function(numberText){ var ret; for (var i = 0; i < numberText.length; i++) { ret = numberText.charCodeAt(i); if (!((ret > 47) && (ret < 58))) { return false; } } return true; }, isBlank : function(text){ return text.replace(/ /ig,"") == ""; }, isSSN : function(frontNumber, backNumer) { var Num = '0123456789'; var resiFirst = String(frontNumber); var resiLast = String(backNumer); var chk = 0; var nYear = resiFirst.substring(0,2); var nMondth = resiFirst.substring(2,4); var nDay = resiFirst.substring(4,6); var nSex = resiLast.charAt(0); for (i=0; i12 || nDay<1 || nDay>31) { alert('주민등록번호 앞부분에 잘못되었습니다'); objectName1.focus(); objectName1.select(); return false; } if ( resiLast.length!=7 || (nSex!=1 && nSex!=2 && nSex!=3 && nSex!=4) ) { alert('주민등록번호 뒷부분에 잘못되었습니다'); objectName2.focus(); objectName2.select(); return false; } var i; for (i=0; i<6; i++) { chk += ( (i+2) * parseInt( resiFirst.charAt(i) )); } for (i=6; i<12; i++) { chk += ( (i%8+2) * parseInt( resiLast.charAt(i-6) )); } chk = 11 - (chk%11); chk %= 10; if (chk != parseInt( resiLast.charAt(6))) { alert('유효하지않은 주민등록번호입니다!!'); objectName1.focus(); return false; } return true; }, isBusinessLicenceNo : function( code ) { var code; var i, sum, num , ret; var inx = "13713713"; if(code.length != 10) return false; sum = 0; for(i=0; i<8; i++) { sum += parseInt(code.charAt(i)) * parseInt(inx.charAt(i)); } num = parseInt(code.charAt(8)) * 5; sum += parseInt((num/10)) + (num%10); sum = 10 - (sum % 10); if( parseInt(code.charAt(9)) == sum ) return true; else return false; } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _COORDINATE_ = { getOffsetLeft : function (obj) { var retval = document.body.clientLeft; retval += -obj.offsetLeft; while (obj) { retval += obj.offsetLeft; obj = obj.offsetParent; } return retval; }, getOffsetTop : function (obj) { var retval = document.body.clientTop; retval += -obj.offsetTop; while (obj) { retval += obj.offsetTop; obj = obj.offsetParent; } return retval ; } }; /*////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////*/ var _COOKIE_ = { setCookie : function (name, value){ document.cookie = name + '=' + escape( value ) + '; path=/; '; }, getCookie : function (name){ var nameOfCookie = name + "="; var x = 0; var cookies = document.cookie.split(" "); for(var i=0 ; i < cookies.length ; i++){ if(cookies[i].indexOf(name) < 0) continue; var nameNvalue = cookies[i].split("="); if(nameNvalue[0] == name) return unescape(nameNvalue[1]); } return ""; } }