12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809 |
- /**
- * 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 );
- }
- /**
- * 정수 입력필도로 제어
- * 사용예) <INPUT type="text" name="number" value="" onKeyPress="JavaScript:numChk();">
- */
- function useNumberKey() {
- if( (event.keyCode < 48) || (event.keyCode > 57) ) {
- if((event.keyCode < 96) || (event.keyCode > 105) ){
- event.returnValue = false;
- }
- }
- }
- /**
- * 소숫점 숫자 입력필드로 제어
- * 사용예) <INPUT type="text" name="number" value="" onKeyPress="JavaScript:useFloatNumberKey();">
- */
- 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<str.length ; i++) {
- ls_one_char = str.charAt(i);
- if(escape(ls_one_char).length > 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<str.length; i++) l += (str.charCodeAt(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<padCnt;i++) retStr += String(padStr);
- return retStr+src;
- }
- // Right 빈자리 만큼 padStr 을 붙인다.
- function rpad(src, len, padStr){
- var retStr = "";
- var padCnt = Number(len) - String(src).length;
- for(var i=0;i<padCnt;i++) retStr += String(padStr);
- return src+retStr;
- }
-
-
- //수량형식으로 변환한다. 12345 -> 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("규정에 맞지않는 주민등록번호입니다.<br>무시하고 그냥 입력하시겠습니까?") ) {
-
- jumin1.value = "";
- jumin2.value = "";
- jumin1.focus();
- return false;
- }
- return true;
- }
- if(monthin < 1 || monthin > 12 || datein < 1 || datein > 31) {
- if ( ! dlgConfirm("규정에 맞지않는 주민등록번호입니다.<br>무시하고 그냥 입력하시겠습니까?") ) {
-
- jumin1.value = "";
- jumin2.value = "";
- jumin1.focus();
- return false;
- }
- return true;
- }
- if((monthin ==4 || monthin == 6 || monthin == 9 || monthin ==11 ) && datein > 30) {
- if ( ! dlgConfirm("규정에 맞지않는 주민등록번호입니다.<br>무시하고 그냥 입력하시겠습니까?") ) {
-
- jumin1.value = "";
- jumin2.value = "";
- jumin1.focus();
- return false;
- }
- return true;
- }
- if(monthin ==2 && datein > 29) {
- if ( ! dlgConfirm("규정에 맞지않는 주민등록번호입니다.<br>무시하고 그냥 입력하시겠습니까?") ) {
-
- 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(형식) */
- /* 반 환 값 : */
- /* 편집한 문자 */
- /* 특 이 사 항 : */
- /* <a href="javascript: getRow('<%= */
- /* setEditMark(rs.getString("MV_NO"), "0000-000")%>')"> */
- /*----------------------------------------------------------------------------*/
- 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 라인 갯수
- * 사용예 )<IMG src="/images/temp/plus.gif" alt="통지사항의 크기를 조절합니다." border="0" align="top" onClick="JavaScript:toggleTextarea(this, document.form1.req_etc, 2, 10);" style="cursor:hand;">
- */
- 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 = "<div id='"+layerID+"_divcontent'></div>";
- 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<width){
- yScroll = 0 ;
- }
- adjX = xPos ? xPos : (document.documentElement.scrollWidth/2 - width/2);
- adjY = yPos ? yPos : (window.screen.height /2 + (isIE?document.body.scrollTop:document.documentElement.scrollTop) - height/2 - 100)+yScroll;
- nowY = document.all ? (!document.documentElement.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop) : (window.pageYOffset ? window.pageYOffset : window.scrollY);
- if(z_index == undefined){z_index = 1000;}
- if(nowY == undefined){nowY = 0;}
- nowY += (trueBody().clientHeight - height) / 2;
-
- // 배경이 되는 반투명 레이어를 생성한다.
- var div1 = document.createElement("DIV");
- div1.id = layerID;
- //div1.onclick = function () {fLayerPopClose(layerID);};
- div1.style.zIndex= z_index;
- div1.style.position = "absolute";
- div1.style.height = document.documentElement.scrollHeight+"px";
- // div1.style.width = document.documentElement.scrollWidth+ "px";
- div1.style.width = "100%";
- div1.style.top = "0";
- div1.style.left = "0";
- div1.style.background = "#000000";
- div1.style.opacity = "0.3";
- div1.style.filter = "alpha(opacity=30)";
- div1.style.display = "none";
-
- var iframe = document.createElement('iframe');
- iframe.style.zIndex= (z_index+10);
- iframe.style.position = "absolute";
- iframe.style.border = "3px solid #2b81d9";
- iframe.style.width = width+"px";
- iframe.style.height = (parseInt(height,10)+30)+"px";
- //iframe.style.top = adjY+"px";
- iframe.style.top =nowY+"px";
- iframe.style.left = adjX+"px";
-
-
- // 오른쪽 경계 넘어가면 위치 조정
- var xMax = parseInt(document.body.clientWidth);
- if( (parseInt(adjX)+parseInt(iframe.style.width)) > 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 = "<div id='mask' style='position:absolute; z-index:9000; background-color:#000000; display:none; left:0; top:0;'></div>";
- var loadingImg = '';
-
- loadingImg += "<div id='loadingImg' style='position:absolute; left:50%; top:40%; display:none; z-index:10000;'>";
- loadingImg += " <img src='/img/com/loading.gif'/>";
- loadingImg += "</div>";
-
- $('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();
- }
|