-
Notifications
You must be signed in to change notification settings - Fork 0
/
sj-validator.min.js
1 lines (1 loc) · 25.4 KB
/
sj-validator.min.js
1
var sjvHelper=new SJValidatorHelper();var sjvalidator=new SJValidator();var errorManager=new SJErrorManager();sjvHelper.cross.addEventListener(window,'load',sjvalidator.setValidatorAfterLoad);function SJValidator(){var allVMap=[];this.nowSubmitForm;this.submit=function(someObj){var searchForm=someObj;var formName='';while(searchForm){if(searchForm.tagName&&searchForm.tagName.toLowerCase()=='form')break;searchForm=someObj.parentNode}formName=searchForm.name;this.nowSubmitForm=searchForm;this.setValidatorAfterLoad();if(allVMap[formName]&&allVMap[formName]['CHECK']=='form'&&allVMap[formName]['OBJS']){for(var fIdx=0;fIdx<allVMap[formName]['OBJS'].length;fIdx++){if(allVMap[formName]['OBJS'][fIdx]==searchForm&&allVMap[formName]['OBJS'][fIdx].onsubmit){if(allVMap[formName]['OBJS'][fIdx].onsubmit()){allVMap[formName]['OBJS'][fIdx].submit();return true}else{return false}}}}};this.add=function(query){var qr=new SJQueryReader(query);var name=qr.getVal('name');allVMap[name]=qr.getMap(true);allVMap[name]['OBJS']=[];allVMap[name]['GROUPSMAP']=[];this.set(allVMap[name])};this.set=function(oneVMap){oneVMap['OBJS']=document.getElementsByName(oneVMap['NAME']);var objs=oneVMap['OBJS'];if(objs.length==0)return false;var check=oneVMap['CHECK'];var format=oneVMap['FORMAT'];var maxLength=oneVMap['MAXLENGTH'];var group=oneVMap['GROUP'];var groupsMap=oneVMap['GROUPSMAP'];for(var i=0;i<objs.length;i++){if(check=='form'){objs[i].onsubmit=function(event){return checkOnSubmit(event,allVMap)}}if(maxLength!=undefined&&check!='money'){objs[i].setAttribute('maxlength',maxLength)}else if(maxLength==undefined&&objs[i].getAttribute('maxlength')!=null){objs[i].setAttribute('maxlength',null)}if(check=='char'||check=='num'||check=='kor'||check=='eng'||check=='money'||check=='email'||format!=undefined||maxLength!=undefined){objs[i].onkeydown=function(event){return checkOnKeyDown(event,this,oneVMap)}}if(check=='char'||check=='num'||check=='kor'||check=='eng'||check=='money'||format!=undefined||maxLength!=undefined){objs[i].onkeyup=function(event){return checkOnKeyUp(event,this,oneVMap)}}if(true){objs[i].onblur=function(event){if(!checkOnBlur(event,this,oneVMap))return false;return checkGroup(event,this,group,groupsMap,allVMap)}}if(check=='radio'||check=='checkbox'||check=='file'||check=='select'||check=='money'||objs[i].type=='radio'||objs[i].type=='checkbox'||objs[i].type=='file'||objs[i].tagName.toLowerCase()=='select'){objs[i].onchange=function(event){return checkOnChange(event,this,oneVMap)}}}};this.setAll=function(){for(name in allVMap){this.set(allVMap[name])}};this.removeAll=function(){allVMap=[]};this.setValidatorAfterLoad=function(){var getherSetedQuery={};var sjvAttributes=['CHECK','MINLENGTH','MAXLENGTH','MINCHECK','MAXCHECK','MINVALUE','MAXVALUE','MAXSIZE','FILETYPE','GROUP','REQUIRED','FORMAT','NO-AUTO-FORMAT','ZERO'];for(var i=0;i<sjvAttributes.length;i++){var setedObj=sjvHelper.cross.querySelectorAll('[data-'+sjvAttributes[i].toLowerCase()+']');for(var j=0;j<setedObj.length;j++){var name=setedObj[j].name;if(getherSetedQuery[name]==undefined)getherSetedQuery[name]='name='+name;getherSetedQuery[name]+=', '+sjvAttributes[i]+'='+setedObj[j].getAttribute('data-'+sjvAttributes[i])}}var setedObj=sjvHelper.cross.querySelectorAll('[data-validator]');for(var j=0;j<setedObj.length;j++){var name=setedObj[j].name;if(getherSetedQuery[name]==undefined)getherSetedQuery[name]='name='+name;getherSetedQuery[name]+=', '+setedObj[j].getAttribute('data-validator')}for(name in getherSetedQuery){sjvalidator.add(getherSetedQuery[name])}sjvalidator.setAll()}}function SJErrorManager(){var errorSign='*';var nextErrorDivider='<br/>';var nowStatus='';var errorMsgs={MINLENGTH:'최소 {}자 이상 입력해 주세요.',MAXLENGTH:'최대 {}자까지만 입력 가능합니다.',MINVALUE:'{}이상 입력해 주세요.',MAXVALUE:'최대 {}까지 입력가능합니다.',MINCHECK:'{}개 이상 체크해 주세요.',MAXCHECK:'최대 {}개 까지 체크가 가능합니다.',FILETYPE:'{}파일만 가능합니다.',MAXSIZE:'용량제한 : {}이하',REQUIRED:'필수 입력 사항입니다.',GROUP:'모두 입력해 주세요.',KEYCHAR:'문자만 입력 가능합니다.',KEYNUM:'숫자만 입력 가능합니다.',KEYENG:'영어만 입력 가능합니다.',KEYKOR:'한글만 입력 가능합니다.',KEYLANG:'영어 외 문자만 입력 가능합니다.',FORMATCHAR:'문자 형식만 가능합니다.',FORMATNUM:'숫자 형식만 가능합니다.',FORMATENG:'영어만 가능합니다.',FORMATKOR:'한글만 가능합니다.',FORMATLANG:'영어 외 문자만 가능합니다.',FORMATEMAIL:'EMAIL형식만 가능합니다.',FORMAT:'{} 형식에 맞지 않습니다.'};this.isOnError=function(){return(nowStatus!='')};this.occured=function(errorCode,param){var occuredErrorMsg='';if(errorMsgs[errorCode]==undefined){occuredErrorMsg='OCCURED CODE : '+errorCode}else{if(param!=undefined){occuredErrorMsg=errorMsgs[errorCode].replace('{}',param)}else{occuredErrorMsg=errorMsgs[errorCode]}}nowStatus+=this.isOnError()?nextErrorDivider:'';nowStatus+=errorSign+occuredErrorMsg};this.setNormalInput=function(input){sjvHelper.cross.classList.remove(input,'sj-errormanager-input-error')};this.setAnormalInput=function(input){sjvHelper.cross.classList.add(input,'sj-errormanager-input-error')};this.print=function(input,placeToPrint,time){this.removeErrorDiv(input,placeToPrint);if(this.isOnError()){this.setAnormalInput(input);this.showErrorDiv(input,placeToPrint,time);nowStatus=''}};this.setErrorSign=function(newErrorSign){errorSign=newErrorSign};this.setNextErrorDivider=function(newNextErrorDivider){nextErrorDivider=newNextErrorDivider};this.setErrorMsg=function(errorCode,newErrorMsg){errorMsgs[errorCode]=newErrorMsg};this.getNewErrorDiv=function(time){var errorDiv=document.createElement('div');errorDiv.id=(time>0)?'divShowWarningWhile':'divShowWarningLong';sjvHelper.cross.classList.add(errorDiv,'sj-errormanager-errordiv');errorDiv.innerHTML=nowStatus;return errorDiv};this.showErrorDiv=function(input,placeToPrint,time){var errorDiv=this.getNewErrorDiv(time);placeToPrint.appendChild(errorDiv);if(time>0){setTimeout(function(){if(errorDiv.id!=undefined){if(errorDiv.id.indexOf('Long')==-1){this.setNormalInput(input)}}if(errorDiv!=undefined){parent.removeChild(errorDiv)}},time)}};this.removeErrorDiv=function(input,placeToPrint){var errorDiv=placeToPrint.lastChild;if(errorDiv.id!=undefined){if(errorDiv.id.indexOf('divShowWarning')!=-1){this.setNormalInput(input);placeToPrint.removeChild(errorDiv)}}}}function SJQueryReader(query){var querys=query.split(',');this.getVal=function(property){for(var i=0;i<querys.length;i++){var pv=querys[i].split('=');if(pv[0]!=undefined&&pv[0].trim()==property){if(pv[1]!=undefined&&pv[1]!=''){pv[1]=pv[1].trim()}else{pv[1]=pv[0].trim()}return pv[1]}else{continue}}return undefined};this.getMap=function(){var map={};var wantUpperCase=(arguments[0]!=undefined)?true:false;for(var i=0;i<querys.length;i++){var pv=querys[i].split('=');if(pv[0]!=undefined){pv[0]=(wantUpperCase)?pv[0].trim().toUpperCase():pv[0].trim();if(pv[1]!=undefined&&pv[1]!=''){pv[1]=pv[1].trim()}else{pv[1]=pv[0]}map[pv[0]]=pv[1]}else{continue}}return map}}function checkOnSubmit(event,allVMap){var flag=true;var goingToFocus=undefined;for(name in allVMap){var targetEls=sjvalidator.nowSubmitForm.elements;var targetEls2=allVMap[name]['OBJS'];for(var eIdx=0;eIdx<targetEls.length;eIdx++){for(var oIdx=0;oIdx<targetEls2.length;oIdx++){if(targetEls2[oIdx]==targetEls[eIdx]){if(targetEls2[oIdx].onblur&&!targetEls2[oIdx].onblur()){flag=false;if(goingToFocus==undefined){goingToFocus=allVMap[name]['OBJS'][0]}}}}}if(allVMap[name]['CHECK']=='money'){targetEls2[0].value=targetEls2[0].value.setOnlyNum()}if(allVMap[name]['ZERO']!=undefined&&allVMap[name]['ZERO']>0){var val=parseInt(targetEls2[0].value);var zero=parseInt(allVMap[name]['ZERO']);var zeroNeeds=zero-val;var zeroStr='';if(zeroNeeds>0){for(var zIdx=0;zIdx<zeroNeeds.length;zIdx++){zeroStr+='0'}targetEls2[0].value=zerStr+val}}}if(!flag){for(i in allVMap){if(allVMap[i]['CHECK']=='money'){allVMap[i]['OBJS'][0].value=allVMap[i]['OBJS'][0].value.setMoney()}}goingToFocus.focus()}return flag}function checkOnKeyDown(event,input,oneVMap){if(checkKeyFnDelete(event))return true;if(checkKeyFn(event)&&!checkKeyFnDelete(event))return true;var checkType=true;var checkLength=true;var judge=false;var check=oneVMap['CHECK'];var maxLength=oneVMap['MAXLENGTH'];var format=oneVMap['FORMAT'];var noAutoFormat=oneVMap['NO-AUTO-FORMAT'];if(check=='char'){checkType=checkKeyChar(event);if(!checkType)errorManager.occured('KEYCHAR')}else if(check=='eng'){checkType=checkKeyEng(event);if(!checkType)errorManager.occured('KEYENG')}else if(check=='kor'){checkType=checkKeyKor(event);if(!checkType)errorManager.occured('KEYKOR')}else if(check=='lang'){checkType=checkKeyLang(event);if(!checkType)errorManager.occured('KEYLANG')}else if(check=='num'||check=='money'){checkType=checkKeyNum(event);if(!checkType)errorManager.occured('KEYNUM')}if(format!=undefined&&noAutoFormat!='NO-AUTO-FORMAT'){if(oneVMap['memoryOfValue']==undefined)oneVMap['memoryOfValue']=input.value;if(oneVMap['memoryOfCp']==undefined)oneVMap['memoryOfCp']=sjvHelper.getCaretPos(input)}if(maxLength!=undefined){if(check=='money'){checkLength=checkKeyMax(event,input.value.setOnlyNum(),maxLength)}else{checkLength=checkKeyMax(event,input.value,maxLength)}if(!checkLength&&0<sjvHelper.getSelectionRange(input))checkLength=true;if(!checkLength)errorManager.occured('MAXLENGTH',maxLength)}judge=checkType&&checkLength;errorManager.print(input,input.parentNode);return judge}function checkOnKeyUp(event,input,oneVMap){if(checkKeyFn(event)&&!checkKeyFnDelete(event)){return true}var check=oneVMap['CHECK'];var format=oneVMap['FORMAT'];var noAutoFormat=oneVMap['NO-AUTO-FORMAT'];var cp=sjvHelper.getCaretPos(input);var moveCp=0;var beforeLength=input.value.length;if(check=='money'){input.value=input.value.setMoney();moveCp=(input.value.length-beforeLength)}if(check=='char'&&!checkFormatChar(input.value)){input.value=input.value.setOnlyChar()}if(check=='eng'&&!checkFormatEng(input.value)){input.value=input.value.setOnlyEng()}if(check=='kor'&&!checkFormatKor(input.value)){input.value=input.value.setOnlyKor()}if(check=='lang'&&!checkFormatLang(input.value)){input.value=input.value.setOnlyLang()}if(check=='num'&&!checkFormatNum(input.value)){input.value=input.value.setOnlyNum()}if(format!=undefined&&noAutoFormat!='NO-AUTO-FORMAT'){var beforeValue=oneVMap['memoryOfValue'];var beforeCp=oneVMap['memoryOfCp'];var addedLength=0;var updateValue=undefined;if(beforeValue!=undefined)addedLength=input.value.length-beforeValue.length;if(addedLength>0){var v1=input.value.substring(0,cp-addedLength);var v2=input.value.substring(beforeCp,cp);var v3=input.value.substring(cp,input.value.length);var cv2=(v2).setSJVFormat(format,v1.length);moveCp=(cv2.length-v2.length);var removedFormat=beforeValue.removeSJVFormat(format,beforeCp);var cv3=removedFormat.substring(beforeCp,beforeValue.length);updateValue=(v1+v2+cv3).setSJVFormat(format)}else if(addedLength<0){var v1=input.value.substring(0,cp);var v2='';var v3=input.value.substring(cp,input.value.length);var removedFormat=beforeValue.removeSJVFormat(format,cp-addedLength);var cv3=removedFormat.substring(cp-addedLength,removedFormat.length);updateValue=(v1+cv3).setSJVFormat(format)}if(updateValue!=undefined&&input.value!=updateValue){input.value=updateValue}oneVMap['memoryOfValue']=undefined;oneVMap['memoryOfCp']=undefined}if(moveCp>0)sjvHelper.setCaretPos(input,cp+moveCp)}function checkOnBlur(event,input,oneVMap){var checkFormat=true;var checkLength=true;var checkRequired=true;var judge=false;var check=oneVMap['CHECK'];var required=oneVMap['REQUIRED'];var objs=oneVMap['OBJS'];var minLength=oneVMap['MINLENGTH'];var maxLength=oneVMap['MAXLENGTH'];var format=oneVMap['FORMAT'];if(input.value!=''){if(check=='char'){checkFormat=checkFormatChar(input.value);if(!checkFormat)errorManager.occured('FORMATCHAR')}else if(check=='eng'){checkFormat=checkFormatEng(input.value);if(!checkFormat)errorManager.occured('FORMATENG')}else if(check=='kor'){checkFormat=checkFormatKor(input.value);if(!checkFormat)errorManager.occured('FORMATKOR')}else if(check=='lang'){checkFormat=checkFormatLang(input.value);if(!checkFormat)errorManager.occured('FORMATLANG')}else if(check=='num'){if(!checkFormatNum(input.value))input.value=input.value.setOnlyNum();checkFormat=checkFormatNum(input.value);if(!checkFormat)errorManager.occured('FORMATNUM');var minVal=oneVMap['MINVALUE'];var maxVal=oneVMap['MAXVALUE'];if(minVal==undefined){minVal=0}if(maxVal==undefined){maxVal=1;for(var i=0;i<input.value.length;i++){maxVal*=10}maxVal-=1}if(!(minVal<=eval(input.value)&&eval(input.value)<=maxVal)){checkFormat=false;errorManager.occured('MINVALUE',minVal);errorManager.occured('MAXVALUE',maxVal)}}else if(check=='email'){checkFormat=checkFormatEmail(input.value);if(!checkFormat)errorManager.occured('FORMATEMAIL')}if(format!=undefined){checkFormat=input.value.isSJVFormat(format);if(!checkFormat)errorManager.occured('FORMAT',format)}if(minLength!=undefined){checkLength=checkMinLength(input.value,minLength);if(!checkLength)errorManager.occured('MINLENGTH',minLength)}if(maxLength!=undefined&&checkLength){if(check=='money'){checkLength=checkMaxLength(input.value.setOnlyNum(),maxLength)}else{checkLength=checkMaxLength(input.value,maxLength)}if(!checkLength)errorManager.occured('MAXLENGTH',maxLength)}if(check=='money'){input.value=input.value.setMoney()}}if(check=='checkbox'||input.type=='checkbox'){var minCheck=oneVMap['MINCHECK'];var maxCheck=oneVMap['MAXCHECK'];var checkedCnt=0;for(var i=0;i<objs.length;i++){if(objs[i].checked)checkedCnt++}if(minCheck!=undefined&&checkedCnt<minCheck&&checkedCnt>0){checkLength=false;errorManager.occured('MINCHECK',minCheck)}if(maxCheck!=undefined&&checkedCnt>maxCheck){checkLength=false;input.checked=false;errorManager.occured('MAXCHECK',maxCheck)}}if((check=='file'||input.type=='file')&&input.value!=''){var fName=input.files[0].name;var fType=fName.split('.')[fName.split('.').length-1];var fSize=input.files[0].size;var maxSize=oneVMap['MAXSIZE'];var fileType=oneVMap['FILETYPE'];if(fileType.toLowerCase().indexOf(fType.toLowerCase())==-1){checkFormat=false;errorManager.occured('FILETYPE',fileType)}if(fSize>maxSize.setOnlyNum()*maxSize.setOnlyEng().changeByteSize()){checkLength=false;errorManager.occured('MAXSIZE',maxSize)}}if(required=='REQUIRED'){if(input.value==''){checkRequired=false}if(input.type=='radio'||input.type=='checkbox'){checkRequired=false;for(var i=0;i<objs.length;i++){if(objs[i].checked){checkRequired=true}}}if(!checkRequired){errorManager.occured('REQUIRED')}}judge=checkFormat&&checkLength&&checkRequired;errorManager.print(input,input.parentNode);return judge}function checkGroup(event,input,group,groupsMap,allVMap){if(group!=undefined&&groupsMap.length==0){for(name in allVMap){if(group==allVMap[name]['GROUP']){groupsMap.push(allVMap[name])}}}for(var i=0;i<groupsMap.length;i++){for(var j=0;j<groupsMap[i]['OBJS'].length;j++){var obj=groupsMap[i]['OBJS'][j];if(!checkOnBlur(event,obj,groupsMap[i])){return false}}}var checkGroupFullOrEmpty=true;for(var i=0;i<groupsMap.length;i++){for(var j=0;j<groupsMap[i]['OBJS'].length;j++){var obj=groupsMap[i]['OBJS'][j];if(!((input.value!=''&&obj.value!='')||(input.value==''&&obj.value==''))){if(input.value==''){errorManager.occured('GROUP');errorManager.print(input,input.parentNode)}if(obj.value==''){errorManager.occured('GROUP');errorManager.print(obj,obj.parentNode)}checkGroupFullOrEmpty=false}}}if(checkGroupFullOrEmpty){errorManager.setNormalInput(input);for(var i=0;i<groupsMap.length;i++){for(var j=0;j<groupsMap[i]['OBJS'].length;j++){var obj=groupsMap[i]['OBJS'][j];errorManager.setNormalInput(obj)}}}return checkGroupFullOrEmpty}function checkOnChange(event,input,oneVMap){return checkOnBlur(event,input,oneVMap)}function checkKeyFn(event){return(sjvHelper.isKeyFn(event.keyCode)&&!sjvHelper.isKeySpace(event.keyCode))}function checkKeyFnDelete(event){return(sjvHelper.isKeyDelete(event.keyCode)||sjvHelper.isKeyBackspace(event.keyCode))}function checkKeyChar(event){return(sjvHelper.isKeyChar(event.keyCode)||sjvHelper.isKeyFn(event.keyCode))&&!sjvHelper.isKeySpace(event.keyCode)}function checkKeyEng(event){return(sjvHelper.isKeyEng(event.keyCode)||sjvHelper.isKeyFn(event.keyCode))&&!sjvHelper.isKeySpace(event.keyCode)}function checkKeyKor(event){return(sjvHelper.isKeyKor(event.keyCode)||sjvHelper.isKeyFn(event.keyCode))&&!sjvHelper.isKeySpace(event.keyCode)}function checkKeyLang(event){return(sjvHelper.isKeyLang(event.keyCode)||sjvHelper.isKeyFn(event.keyCode))&&!sjvHelper.isKeySpace(event.keyCode)}function checkKeyNum(event){return(sjvHelper.isKeyNum(event.keyCode)||sjvHelper.isKeyFn(event.keyCode))&&!sjvHelper.isKeySpace(event.keyCode)}function checkKeyMax(event,value,maxLength){return!value.isMoreKeyThan(maxLength)||(sjvHelper.isKeyFn()&&!sjvHelper.isKeySpace(event.keyCode))}function checkFormatChar(value){return value.isFormatChar()}function checkFormatEng(value){return value.isFormatEng()}function checkFormatKor(value){return value.isFormatKor()}function checkFormatLang(value){return value.isFormatLang()}function checkFormatNum(value){return value.isFormatNum()}function checkFormatEmail(value){return value.isFormatEmail()}function checkMinLength(value,minLength){return!value.isLessThan(minLength)}function checkMaxLength(value,maxLength){return!value.isMoreThan(maxLength)}function SJValidatorHelper(){var addEventListener=function(el,newEventName,fn,bl){if(navigator.userAgent.indexOf('Firefox')!=-1){el.addEventListener(newEventName,function(e){window.event=e},true)}if(el.addEventListener){el.addEventListener(newEventName,fn)}else{el.attachEvent('on'+newEventName,fn)}};var preventDefault=function(event){if(event&&event.preventDefault){event.preventDefault()}else{}};var stopPropagation=function(event){if(event&&event.stopPropagation){event.stopPropagation()}else{event.returnValue=false;event.cancelBubble=true}};var srcElement=function(event){if(event&&event.srcElement){return event.srcElement}else{return event.target}};var classList={add:function(el,classItem){if(el.classList){el.classList.add(classItem)}else{el.className+=' '+classItem+' '}},remove:function(el,classItem){if(el.classList){el.classList.remove(classItem)}else{while(el.className.indexOf(' '+classItem+' ')!=-1){el.className=el.className.replace(classItem+' ','')}if(el.className.indexOf(classItem+' ')==0){el.className=el.className.replace(classItem+' ','')}if(el.className.indexOf(' '+classItem)==el.className.length-classItem.length-1){el.className=el.className.replace(' '+classItem,'')}}}};var querySelectorAll=function(selector){if(document.querySelectorAll){return document.querySelectorAll(selector)}else if(document.getElementsByTagName){var startIdx=selector.indexOf('[');var endIdx=selector.indexOf(']');var attr;var selectedList=[];if(startIdx!=-1&&endIdx!=-1){attr=selector.substring(startIdx+1,endIdx);var nodeNames=['form','input','select','textarea'];for(var searchI=0;searchI<nodeNames.length;searchI++){var elements=document.getElementsByTagName(nodeNames[searchI]);for(var searchJ=0;searchJ<elements.length;searchJ++){if(elements[searchJ].getAttribute(attr)!=undefined){selectedList.push(elements[searchJ])}}}}return selectedList}};var getBodyScrollX=function(){var bodyPageX=0;if(document.documentElement&&document.documentElement.scrollLeft)bodyPageX=document.documentElement.scrollLeft;if(window.pageXOffset)bodyPageY=window.pageXOffset;if(document.body&&document.body.scrollLeft)bodyPageX=document.body.scrollLeft;return bodyPageX};var getBodyScrollY=function(){var bodyPageY=0;if(document.documentElement&&document.documentElement.scrollTop)bodyPageY=document.documentElement.scrollTop;if(window.pageYOffset)bodyPageY=window.pageYOffset;if(document.body&&document.body.scrollTop)bodyPageY=document.body.scrollTop;return bodyPageY};var disableSelection=function(el){if(typeof el.ondragstart!='undefined')el.ondragstart=function(){return false};if(typeof el.onselectstart!='undefined')el.onselectstart=function(){return false};if(typeof el.oncontextmenu!='undefined')el.oncontextmenu=function(){return false};if(typeof el.style.MozUserSelect!='undefined')document.body.style.MozUserSelect='none'};this.cross={addEventListener:addEventListener,preventDefault:preventDefault,stopPropagation:stopPropagation,srcElement:srcElement,classList:classList,querySelectorAll:querySelectorAll,getBodyScrollX:getBodyScrollX,getBodyScrollY:getBodyScrollY,disableSelection:disableSelection};this.isKeyFn=function(keyCode){return(keyCode<=46)};this.isKeySpace=function(keyCode){return(keyCode==32)};this.isKeyBackspace=function(keyCode){return(keyCode==8)};this.isKeyDelete=function(keyCode){return(keyCode==46)};this.isKeyChar=function(keyCode){return(65<=keyCode&&keyCode<=90)||(229<=keyCode)};this.isKeyEng=function(keyCode){return(65<=keyCode&&keyCode<=90)};this.isKeyKor=function(keyCode){return(229<=keyCode)};this.isKeyLang=function(keyCode){return(229<=keyCode)};this.isKeyNum=function(keyCode){return((48<=keyCode&&keyCode<=57)||(96<=keyCode&&keyCode<=105))};this.key=function(keyCode){return String.fromCharCode(keyCode)};String.prototype.trim=function(){return this.replace(/^\s*/,"").replace(/\s*$/,"")};String.prototype.startsWith=function(str){return this.indexOf(str)==0};String.prototype.isFormatChar=function(){return(this.isFormatEng()||this.isFormatKor())};String.prototype.isFormatEng=function(){return(this.search(/[^a-zA-Z]/ig)==-1)};String.prototype.isFormatKor=function(){return(this.search(/([^가-힣ㄱ-ㅎㅏ-ㅣ])/i)==-1)};String.prototype.isFormatLang=function(){return(this.search(/([a-zA-Z0-9!@#$%^&*()-_|\+.,])/i)==-1)};String.prototype.isFormatNum=function(){return(this.search(/^(\d+)$/ig)!=-1)};String.prototype.isFormatEmail=function(){return(this.search(/^(\w+)[@](\w+)[.](\w+)$/ig)!=-1)};String.prototype.isMoreKeyThan=function(maxLength){return(this.length>=maxLength)};String.prototype.isMoreThan=function(maxLength){return(this.length>maxLength)};String.prototype.isLessThan=function(minLength){return(this.length<minLength)};String.prototype.setOnlyChar=function(){return this.replace(/[^a-zA-Z가-힣ㄱ-ㅎㅏ-ㅣ]/gi,'')};String.prototype.setOnlyEng=function(){return this.replace(/[^a-zA-Z]/gi,'')};String.prototype.setOnlyKor=function(){return this.replace(/[^가-힣ㄱ-ㅎㅏ-ㅣ]/gi,'')};String.prototype.setOnlyLang=function(){return this.replace(/([a-zA-Z0-9!@#$%^&*()-_|\+.,])/i,'')};String.prototype.setOnlyNum=function(){return this.replace(/\D/g,'')};String.prototype.setMoney=function(){var reg=/(^[+-]?\d+)(\d{3})/;var num=this.replace(/\D/g,'');while(reg.test(num)){num=num.replace(reg,'$1'+','+'$2')};return num};String.prototype.changeByteSize=function(){var byteSize=1;if(this.toLowerCase().indexOf('b')!=-1)if(this.toLowerCase().indexOf('kb')!=-1)byteSize*=1024;if(this.toLowerCase().indexOf('mb')!=-1)byteSize*=(1024*1024);if(this.toLowerCase().indexOf('gb')!=-1)byteSize*=(1024*1024*1024);if(this.toLowerCase().indexOf('tb')!=-1)byteSize*=(1024*1024*1024*1024);return byteSize};String.prototype.isSJVFormat=function(format){if(format.length==this.length){for(var i=0;i<format.length;i++){var mf=format.charAt(i);var mc=this.charAt(i);if(mf=='n'&&mc.isFormatNum()){}else if(mf=='c'&&mc.isFormatChar()){}else if((mf=='y'||mf=='m'||mf=='d'||mf=='h'||mf=='i'||mf=='s')&&mc.isFormatNum()){}else if(mf=='a'){}else if(mf!='n'&&mf!='c'&&mf!='a'&&mf==mc){}else{return false}}return this.isSJVFormatDateTime(format)}return false};String.prototype.isSJVFormatDateTime=function(format){var isMatching=function(str,format,matchingFormat,min,max){var machingIndex=format.indexOf(matchingFormat);if(machingIndex!=-1){var target=str.substring(machingIndex,machingIndex+2);if(!isNaN(target)&&target.length==2&&parseInt(target)>=min&&parseInt(target)<=max){}else{return false}}return true};if(!isMatching(this,format,'mm',1,12))return false;if(!isMatching(this,format,'dd',1,31))return false;if(!isMatching(this,format,'hh',0,23))return false;if(!isMatching(this,format,'mi',0,59))return false;if(!isMatching(this,format,'ss',0,59))return false;return true};String.prototype.setSJVFormat=function(format,start){if(start==undefined)start=0;var value=this;for(var i=start;i<value.length+start;i++){var mf=format.charAt(i);var mc=value.charAt(i-start);if(mf!='n'&&mf!='c'&&mf!='a'&&mf!='y'&&mf!='m'&&mf!='d'&&mf!='h'&&mf!='i'&&mf!='s'&&mf!=mc){var v1=value.substring(0,i-start);var v2=value.substring(i-start,value.length);value=v1+mf+v2}}return value};String.prototype.removeSJVFormat=function(format,start){if(start==undefined)start=0;var value=this;for(var i=this.length-1;i>=start;i--){var mf=format.charAt(i);var mc=this.charAt(i);if(mf!='n'&&mf!='c'&&mf!='a'&&mf!='y'&&mf!='m'&&mf!='d'&&mf!='h'&&mf!='i'&&mf!='s'&&mf==mc){var v1=value.substring(0,i);var v2=value.substring(i+1,value.length);value=v1+v2}}return value};this.getNewDiv=function(idVal,classVal,inner){var newDiv=document.createElement('div');newDiv.id=idVal;newDiv.className=classVal;newDiv.innerHTML=inner;return newDiv};this.getCaretPos=function(ctrl){var caretPos=0;if(document.selection){ctrl.focus();var sel=document.selection.createRange();sel.moveStart('character',-ctrl.value.length);caretPos=sel.text.length}else if(ctrl.selectionStart||ctrl.selectionStart=='0'){caretPos=ctrl.selectionStart}return(caretPos)};this.setCaretPos=function(ctrl,pos){if(ctrl.setSelectionRange){ctrl.focus();ctrl.setSelectionRange(pos,pos)}else if(ctrl.createTextRange){var range=ctrl.createTextRange();range.collapse(true);range.moveEnd('character',pos);range.moveStart('character',pos);range.select()}};this.getSelectionRange=function(ctrl){var caretRange;if(document.selection){var sel=document.selection.createRange();caretRange=sel.text.length}else if(ctrl.selectionStart||ctrl.selectionStart=='0'){caretRange=ctrl.selectionEnd-ctrl.selectionStart}return caretRange}}