PageSourceSearch

https://elandcruise.com/Common/Script/Common.js

js elandcruise.com collected 2026-09-26 01:02:30 UTC 57,232 bytes, 1,745 lines download raw bytes

1// JScript 파일
2
3
4
5/*************************************
6*** Param
7checkId : 체크 ID
8rptId   : 리피터 ID ( 전체 아이디명 )
9itemId  : 리피터의 아이템 아이디명 ( 개체에 대한 아이디명 )
10tNum    : 총 리피터 아이템수
11**************************************/
12function RepeaterAll(checkId, rptId, itemId, tNum) {
13    var chk = document.getElementById(checkId);
14    var num = "";
15    var makeId = "";
16
17    if (chk.checked) {
18        RepeaterCheckBoxStatus(rptId, itemId, tNum, true);
19    }
20    else {
21        RepeaterCheckBoxStatus(rptId, itemId, tNum, false);
22    }
23}
24
25/*************************************
26*** Param
27rptId   : 리피터 ID ( 전체 아이디명 )
28itemId  : 리피터의 아이템 아이디명 ( 개체에 대한 아이디명 )
29tNum    : 총 리피터 아이템수
30b       : CheckBox의 true / false
31**************************************/
32function RepeaterCheckBoxStatus(rptId, itemId, tNum, b) {
33    var makeId = "";
34    var num = "";
35
36    for (var i = 0; i < tNum; i++) {
37        makeId = "";
38        if (i < 10)
39            num = "0" + i;
40        else
41            num = i;
42
43        makeId = rptId;
44        makeId = makeId + "_ctl" + num + "_" + itemId;
45
46        document.getElementById(makeId).checked = b;
47    }
48} 
49/*************************************
50*** Param
51rptId   : 리피터 ID ( 전체 아이디명 )
52itemId  : 리피터의 아이템 아이디명 ( 개체에 대한 아이디명 )
53arrNum  : 몇번째인지
54**************************************
55*** Return
56makeId  : 전체 아이템 아이디 리턴
57***************************************/
58function EachRepeaterItemId(rptId, itemId, arrNum) {
59    var makeId = "";
60
61    if (arrNum < 10)
62        arrNum = "0" + arrNum;
63
64    makeId = rptId;
65    makeId = makeId + "_ctl" + arrNum + "_" + itemId;
66
67    return makeId;
68}
69 
70
71
72//trim()함수 추가
73String.prototype.trim = function() {
74    return this.replace(/(^\s*)|(\s*$)/gi, "");
75}
76  
77
78//########## 체크 관련 스크립트 ########################### 
79function allcheck(theform) {
80    for (i = 0; i < theform.length; i++) { theform[i].checked = true; }
81    return;
82}
83
84//그 반대
85function discheck(theform) {
86    for (i = 0; i < theform.length; i++) { theform[i].checked = false; } return;
87} 
88
89function reverse_check(form) {
90    for (var i = 0; i < form.elements.length; i++) {
91        var ele = form.elements[i];
92        if (ele.name == 'item_chk[]')
93            ele.checked = !ele.checked;
94    }
95} 
96
97function isCheckedForm(obj, msg, length) {
98    var value = 0;
99
100    for (i = 0; i < length; i++) {
101        if (obj[i].checked) value++;
102    }
103
104    if (value == 0) {
105        obj[0].focus();
106        alert(msg);
107        return false;
108    } else {
109        return true;
110    }
111}
112 
113function isCheck(obj, msg) {
114
115    var flag = false
116    for (i = 0; i < obj.length; i++) {
117        if (obj[i].checked) {
118            flag = true;
119        }
120    }
121
122    if (!flag) {
123        alert(msg);
124    }
125
126    return flag;
127
128} 
129 
130
131//#########################################################
132
133function handelEnterAddObject(event, obj, type) {
134    var keyCode = event.keyCode ? event.keyCode :
135                  event.which ? event.which : event.charCode;
136    if (keyCode == 13) {
137        if (type == 1) // focus
138        {
139            obj.focus();
140
141        } else { //select
142
143            obj.select();
144        }
145
146        return false;
147    } else {
148        return true;
149    }
150}
151
152function handleEnter(field, event, type) {
153
154    var keyCode = event.keyCode ? event.keyCode :
155                event.which ? event.which : event.charCode;
156
157    if (keyCode == 13) {
158        var i;
159        for (i = 0; i < field.form.elements.length; i++)
160            if (field == field.form.elements[i])
161            break;
162
163        i = (i + 1) % field.form.elements.length;
164
165        if (type == 1) // focus
166        {
167            field.form.elements[i].focus();
168
169        } else { //select 
170            field.form.elements[i].select();
171        } 
172        return false;
173    }
174    else
175        return true;
176}
177
178//엔터키 먹게하기 
179function field_move(obj, leng, target_obj) {
180    var gil = parseInt(leng);
181    if (obj.value.length == gil) target_obj.select();
182
183}
184
185function fieldMoveNotEmpty(obj, leng, target_obj) {
186    var gil = parseInt(leng);
187    if (obj.value.length == gil) target_obj.focus();
188}
189
190function noSplitAndNumberOnly(ob) { 
191    var txtNumber = '' + ob.value;
192    if (isNaN(txtNumber) || txtNumber.indexOf('.') != -1)   // 소수점 사용 불가 추가
193    {
194        ob.value = ob.value.substring(0, ob.value.length - 1);
195        ob.focus();
196        return ob.value;
197    }
198    else
199        return ob.value;
200}
201 
202//------------------------------
203//
204//-----------------------------
205
206function commaSplitAndNumberOnly(ob) {
207
208    var txtNumber = '' + ob.value;
209
210    if (isNaN(txtNumber) || txtNumber.indexOf('.') != -1)   // 소수점 사용 불가 추가
211    {
212        ob.value = ob.value.substring(0, ob.value.length - 1);
213        ob.value = commaSplitAndNumberOnly(ob);
214        return ob.value;
215    }
216    else {
217        var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
218        var arrNumber = txtNumber.split('.');
219
220        arrNumber[0] += '.';
221        do {
222            arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
223        }
224        while (rxSplit.test(arrNumber[0]));
225
226        if (arrNumber.length > 1) {
227            return arrNumber.join('');
228        }
229        else {
230            return arrNumber[0].split('.')[0];
231        }
232    }
233}
234
235 
236
237///////  돈에 , 를 넣어주데 포커스를 주지 않는다 ///////////////////////////////////////////////////////////////// 
238
239function commaSplitAndNumberOnlyNotFocus(ob) {
240
241    var txtNumber = '' + ob.value;
242    if (isNaN(txtNumber))   // 소수점 사용 가능
243    {
244        ob.value = ob.value.substring(0, ob.value.length - 1);
245        //alert('숫자 혹은 \'.\' 만 입력하십시오.');
246        return ob.value;
247    }
248    else {
249        var rxSplit = new RegExp('([0-9])([0-9][0-9][,.])');
250        var arrNumber = txtNumber.split('.');
251        arrNumber[0] += '.';
252        do {
253            arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
254        }
255        while (rxSplit.test(arrNumber[0]));
256
257        if (arrNumber.length > 1) {
258            return arrNumber.join('');
259        }
260        else {
261            return arrNumber[0].split('.')[0];
262        }
263    }
264}
265
266// 포커스까지 이동하는것 (주로 온키다운 업에 이용  
267function commaSplitAndAllowDot(ob) {
268
269    var txtNumber = '' + ob.value;
270    if (isNaN(txtNumber))   // 소수점 사용 가능
271    {
272        ob.value = ob.value.substring(0, ob.value.length - 1);
273        //alert('숫자 혹은 \'.\' 만 입력하십시오.');
274        ob.focus();
275        return ob.value;
276    }
277    else {
278        var rxSplit = new RegExp('([0-9])([0-9][0-9][,.])');
279        var arrNumber = txtNumber.split('.');
280        arrNumber[0] += '.';
281        do {
282            arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
283        }
284        while (rxSplit.test(arrNumber[0]));
285
286        if (arrNumber.length > 1) {
287            return arrNumber.join('');
288        }
289        else {
290            return arrNumber[0].split('.')[0];
291        }
292    }
293}
294
295
296function f_is_num(obj, lbl) {
297    var nLen = obj.value.length;
298    for (i = 0; i < nLen; i++) {
299        temp = obj.value.substring(i, i + 1); 
300        if (temp < '0' || temp > '9') { 
301            alert(lbl + ' 숫자만 입력할 수 있습니다.');
302            obj.focus();
303            return true;  
304        }
305    }
306    return false;
307}
308
309
310////////////////////////////////////////////////////////////////////////////////////////////
311///숫자만 입력되게
312function handlerNum(obj) {
313    e = window.event;
314    if (e.keyCode == 9) return;  //탭은 허용
315    if (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 || e.keyCode == 8 || e.keyCode == 46) {
316        if (e.keyCode == 48 || e.keyCode == 96) {
317            if (obj.value == "")
318                e.returnValue = false;
319            else
320                return;
321        }
322        else
323            return;
324    }
325    else
326        e.returnValue = false;
327}
328
329////////////////////////////////////////////////////////////////////////////////////////////
330///돈,콤마찍어서
331function checkOnlyNumber()  // 숫자만 입력했는지 검사
332{
333    var ob = event.srcElement;
334    ob.value = filterNum(ob.value);
335    ob.value = commaSplitAndNumberOnly(ob);
336    return false;
337}
338
339
340////////////////////////////////////////////////////////////////////////////////////////////
341///돈,콤마찍어서 OnKeyup 이벤트에서 바로 걸때
342///돈,콤마찍어서 OnKeyup 이벤트에서 바로 걸때
343function checkOnlyNumber2(ob)  // 숫자만 입력했는지 검사
344{
345    ob.value = filterNum(ob.value);
346    ob.value = commaSplitAndNumberOnly(ob);
347    return false;
348}
349
350
351
352/// 돈2 ///////////////////////////////////////////////////////////////////////////////////////
353
354function checkComma(ob)  // 숫자만 입력했는지 검사
355{
356    ob.value = commaSplitAndNumberOnlyNotFocus(ob);
357    return;
358}
359
360//////////////////////////////////////////////////////////////////////////////////////////////
361
362
363///맹숫자만
364function checkOnlyNumberNotComma() {
365    var ob = event.srcElement;
366    ob.value = noSplitAndNumberOnly(ob);
367    return false;
368}
369
370////이자율을 입력할 때 사용한다.
371function checkAllowDot()  // 숫자와 dot 만을 입력했는지 검사
372{
373    var ob = event.srcElement;
374    ob.value = filterNum(ob.value);
375
376    spnumber = ob.value.split('.');
377    if (spnumber[0].length >= 3) {
378        alert('정수 두자리, 소수점 둘째자리까지 입력 가능합니다.');
379        ob.value = spnumber[0].substring(0, 2);
380        ob.focus();
381        return false;
382    }
383
384    ob.value = commaSplitAndAllowDot(ob);
385    return false;
386}
387
388
389function checkCombo(ob, msg) {
390    if (ob.selectedIndex == 0) {
391        alert(msg + ' 선택하지 않았습니다. ');
392        ob.focus();
393        return false;
394    }
395    return true; 
396}
397 
398
399function checkByte(ob, bnum, msg) {
400
401    if (bnum == 0) {
402        if (ob.value.length == 0) {
403            alert(msg);
404            ob.focus();
405            return false;
406        }
407    }
408
409    else if (ob.value.length < bnum) {
410        //bnum_half = bnum / 2;
411        alert(msg);
412        ob.focus();
413        return false;
414    }
415
416    return true;
417
418}
419
420// 두개의 Variable이 같은지 체크
421function checkVar(ob, ob2, msg) {
422    if (ob.value != ob2.value) {
423        alert(msg + ' 틀립니다.');
424        ob2.focus();
425        ob2.value = "";
426        return false;
427    }
428
429    return true;
430}
431
432function checkBytePrecisely(ob, bnum, msg) // 정확하게 몇 자를 입력하도록 요구
433{
434    if (ob.value.length != bnum) {
435        alert(msg + ' ' + bnum + ' 자로 입력해야합니다.');
436        ob.focus();
437        return false;
438    }
439
440    return true;
441}
442
443function checkInputLimit(ob, min, max, msg) // 입력값이 min 이상 max 이하가 되는지 체크
444{
445    if (ob.value < min || ob.value > max) {
446        alert(msg + ' ' + min + ' 이상 ' + max + ' 이하의 값을 입력해야 합니다.');
447        ob.focus();
448        return false;
449    }
450
451    return true;
452}
453
454
455
456function filterNum(str)    // $ 와 콤마 제거 함수
457{
458    re = /^\$|,/g;
459    // "$" and "," 입력 제거
460    return str.replace(re, "");
461}
462
463function filterNumOb(ob) {
464    ob.value = filterNum(ob.value);
465}
466
467
468//###### 소수점 관련 
469function filterNumDollor(str)    //$ 안제거 하구 , 제거 함수
470{
471    re = /^|,/g;
472    return str.replace(re, "");
473}
474
475
476function commaSplitDotOk(obj) {
477    var passVal = obj.value;
478    var tmp;
479    var returnVal;
480    var kk = '';
481    var count = 0;
482    var firstSplit = '';
483
484    passVal = filterNumDollor(obj.value);
485
486    if (passVal.indexOf("\$") == 0) {
487        firstSplit = passVal.split("\$");
488        passVal = firstSplit[1];
489        firstSplit = "\$";
490    }
491
492    passVal = passVal.split(".");
493    tmp = passVal[0].split("");
494
495    for (var i = tmp.length - 1; i > -1; i--) {
496        if (count == 3) {
497            kk += ",";
498            count = 0;
499        }
500        kk += tmp[i]
501        count++;
502    }
503
504    kk = reverseString(kk);
505
506    if (!isNaN(passVal[1]))
507    { kk += '.' + passVal[1] }
508    obj.value = firstSplit + kk;
509
510}
511
512function reverseString(value) {
513    var temp = value.split("");
514    var re_count = temp.length;
515    var returnVal = '';
516
517    for (var j = re_count - 1; j > -1; j--) {
518        // alert(j); 
519        returnVal += temp[j];
520    } 
521    return returnVal;
522} 
523
524// 사업자 등록 번호 체크 
525function BizCheck(obj1, obj2, obj3) {
526    biz_value = new Array(10);
527
528    if (isBizInteger(obj1.value, 3) == false) {
529        obj1.focus();
530        obj1.select();
531        return false;
532    }
533
534    if (isBizInteger(obj2.value, 2) == false) {
535        obj2.focus();
536        obj2.select();
537        return false;
538    }
539
540    if (isBizInteger(obj3.value, 5) == false) {
541        obj3.focus();
542        obj3.select();
543        return false;
544    }
545
546    var objstring = obj1.value + "-" + obj2.value + "-" + obj3.value;
547    var li_temp, li_lastid;
548
549    if (objstring.length == 12) {
550        biz_value[0] = (parseFloat(objstring.substring(0, 1)) * 1) % 10;
551        biz_value[1] = (parseFloat(objstring.substring(1, 2)) * 3) % 10;
552        biz_value[2] = (parseFloat(objstring.substring(2, 3)) * 7) % 10;
553        biz_value[3] = (parseFloat(objstring.substring(4, 5)) * 1) % 10;
554        biz_value[4] = (parseFloat(objstring.substring(5, 6)) * 3) % 10;
555        biz_value[5] = (parseFloat(objstring.substring(7, 8)) * 7) % 10;
556        biz_value[6] = (parseFloat(objstring.substring(8, 9)) * 1) % 10;
557        biz_value[7] = (parseFloat(objstring.substring(9, 10)) * 3) % 10;
558        li_temp = parseFloat(objstring.substring(10, 11)) * 5 + "0";
559        biz_value[8] = parseFloat(li_temp.substring(0, 1)) + parseFloat(li_temp.substring(1, 2));
560        biz_value[9] = parseFloat(objstring.substring(11, 12));
561        li_lastid = (10 - ((biz_value[0] + biz_value[1] + biz_value[2] + biz_value[3] + biz_value[4] + biz_value[5] + biz_value[6] + biz_value[7] + biz_value[8]) % 10)) % 10;
562        if (biz_value[9] != li_lastid) {
563            obj1.focus();
564            obj1.select();
565            return false;
566        }
567        else
568            return true;
569    }
570    else {
571        obj1.focus();
572        obj1.select();
573        return false;
574    }
575}
576
577// 주민 번호 체크  
578function ssnCheck(obj1, obj2) {
579    total = 0;
580    temp = new Array(13);
581
582    for (i = 1; i <= 6; i++)
583        temp[i] = obj1.value.charAt(i - 1);
584    for (i = 7; i <= 13; i++)
585        temp[i] = obj2.value.charAt(i - 7);
586
587    for (i = 1; i <= 12; i++) {
588        k = i + 1;
589        if (k >= 10)
590            k = k % 10 + 2;
591        total = total + temp[i] * k;
592    }
593    mm = temp[3] + temp[4];
594    dd = temp[5] + temp[6];
595
596    totalmod = total % 11;
597    chd = 11 - totalmod;
598    if (chd == temp[13] && mm < 13 && dd < 32 && (temp[7] == 1 || temp[7] == 2)) {
599        return true;
600    } else {
601        alert("유효하지 않은 주민번호 입니다");
602        obj1.value = '';
603        obj2.value = '';
604        obj1.focus();
605        return false;
606    }
607}
608 
609// 이메일 체크 함수  
610function scheck(obj) {
611    fieldData = new String(obj.value)
612    regPattern = /`|~|!|@|#|\$|%|\^|&|\*|\(|\)|\\|\||'|"|;|:|<|>|\/|\?|\[|\]|\{|\}/g
613    matchResult = ""
614    matchResult = fieldData.match(regPattern)
615    return (matchResult)
616}
617
618//-----------------------------------------------------------------------------------
619
620function checkAlphaNum(obj, msg) {
621    // 영문, 숫자만 입력
622    re = /[^A-Za-z0-9]/
623    if (re.test(obj.value)) {
624        alert(msg + '는 영문,숫자만 입력 가능 합니다');
625        obj.value = "";
626        obj.focus();
627        return false;
628    }
629
630    return true;
631}
632
633function postcheck(text) {
634    // ###-### 이렇게 우편번호 형식의 숫자만이 입력되어야 true를 반환한다.
635    re = /^\d{3}-\d{3}$/
636    if (re.exec(text) != null) return true
637    else return false
638} 
639
640//------------------------- 신규 추가  
641
642function raiseEnterAction(btn) {
643    if (event.keyCode == 13) {
644        self.focus();
645        document.all[btn].click();
646        return false;
647    }
648    return true;
649}
650
651// 팝업고정
652function openWindow(url, height, width) {
653    var popobj = window.open(url, 'eventPOP', 'resizable=no, left=0, top=0, toolbar=no,scrollbars=auto,directories=no,menubar=no,width=' + width + ',height=' + height)
654    popobj.focus();
655}
656
657// 팝업이름
658function openWindow2(url, PopName, height, width) {
659
660    var popobj = window.open(url, PopName, 'resizable=no,toolbar=no,scrollbars=no,directories=no,menubar=no,width=' + width + ',height=' + height)
661    popobj.focus();
662}
663
664// 위치를 마음데로
665function openWindow3(url, PopName, height, width, left, top) {
666    var popobj = window.open(url, PopName, 'resizable=no,toolbar=no,left=' + left + ',top=' + top + ',scrollbars=no,directories=no,menubar=no,width=' + width + ',height=' + height)
667    popobj.focus();
668}
669
670// 스크롤바 사용
671function openWindow4(url, PopName, height, width, left, top) {
672    var popobj = window.open(url, PopName, 'resizable=no,toolbar=no,left=' + left + ',top=' + top + ',scrollbars=yes,directories=no,menubar=no,width=' + width + ',height=' + height)
673    popobj.focus();
674}
675
676
677function btnPermissionCheck(str) {
678    alert("해당메뉴의" + str + " 권한이 없습니다.");
679    return false;
680}
681
682
683function createCalendar() { 
684    document.write("<div id='calDIV' style='z-index:+999;position:absolute;visibility:hidden;top:0;left:0'>");
685    document.write("<iframe align='center' valign='middle' name='frmCal' id='frmCal' frameborder='0' width='210' height='190' src='/Common/Calendar/blank.html'></iframe>")
686    document.write("</div>"); 
687}
688
689function printDates(sObj, eObj) {
690    var pSObjName = "document.all['" + sObj.id + "']";
691    var pEObjName = "document.all['" + eObj.id + "']"; 
692    var strScript = "";
693    strScript = "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0,0)\">"
694               + "<img src='/Common/Calendar/images/2.gif' align='absmiddle' border='0'></a>&nbsp;"
695               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0,-1)\">"
696               + "<img src='/Common/Calendar/images/1.gif' align='absmiddle' border='0'></a>&nbsp;"
697               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0,-3)\">"
698               + "<img src='/Common/Calendar/images/btn_s_3d.gif' align='absmiddle' border='0'></a>&nbsp;"
699               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0,-7)\">"
700               + "<img src='/Common/Calendar/images/btn_s_7d.gif' align='absmiddle' border='0'></a>&nbsp;"
701               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0, new Date().getDate()*-1+1)\">"
702               + "<img src='/Common/Calendar/images/btn_s_thism.gif' align='absmiddle' border='0'></a>&nbsp;"
703               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,-1,0)\">"
704               + "<img src='/Common/Calendar/images/btn_s_1m.gif' align='absmiddle' border='0'></a>&nbsp;"
705               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,-3,0)\">"
706               + "<img src='/Common/Calendar/images/btn_s_3m.gif' align='absmiddle' border='0'></a>&nbsp;"
707               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,-6,0)\">"
708               + "<img src='/Common/Calendar/images/btn_s_6m.jpg' align='absmiddle' border='0'></a>&nbsp;" 
709    document.write(strScript);
710} 
711
712function printDatesNonToDay(sObj, eObj) {
713    var pSObjName = "document.all['" + sObj.id + "']";
714    var pEObjName = "document.all['" + eObj.id + "']";
715
716    var strScript = "";
717    strScript = "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0,-1)\">"
718               + "<img src='/Common/Calendar/images/1.gif' align='absmiddle' border='0'></a>&nbsp;"
719               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0,-3)\">"
720               + "<img src='/Common/Calendar/images/btn_s_3d.gif' align='absmiddle' border='0'></a>&nbsp;"
721               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0,-7)\">"
722               + "<img src='/Common/Calendar/images/btn_s_7d.gif' align='absmiddle' border='0'></a>&nbsp;"
723               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,0, new Date().getDate()*-1+1)\">"
724               + "<img src='/Common/Calendar/images/btn_s_thism.gif' align='absmiddle' border='0'></a>&nbsp;"
725               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,-1,0)\">"
726               + "<img src='/Common/Calendar/images/btn_s_1m.gif' align='absmiddle' border='0'></a>&nbsp;"
727               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,-3,0)\">"
728               + "<img src='/Common/Calendar/images/btn_s_3m.gif' align='absmiddle' border='0'></a>&nbsp;"
729               + "<a href=\"javascript:moveDates(" + pEObjName + "," + pSObjName + ",0,-6,0)\">"
730               + "<img src='/Common/Calendar/images/btn_s_6m.jpg' align='absmiddle' border='0'></a>&nbsp;"
731
732    document.write(strScript);
733}
734
735function moveDates(sObj, eObj, year, month, day) {
736
737    var nowDate = new Date();
738
739    var now_year = nowDate.getFullYear();
740    var now_month = nowDate.getMonth();
741    var now_day = nowDate.getDate();
742
743    var newDate = new Date(now_year + year, now_month + month, now_day + day);
744
745    var procYear = newDate.getFullYear();
746    var procMonth = newDate.getMonth() + 1;
747    var procDay = newDate.getDate();
748
749    now_month += 1;
750    if (("" + now_month).length == 1) { now_month = "0" + now_month; }
751    if (("" + now_day).length == 1) { now_day = "0" + now_day; }
752
753
754    if (("" + procMonth).length == 1) { procMonth = "0" + procMonth; }
755    if (("" + procDay).length == 1) { procDay = "0" + procDay; }
756
757    sObj.value = now_year + "-" + now_month + "-" + now_day;
758    eObj.value = procYear + "-" + procMonth + "-" + procDay;
759
760}
761
762
763var objPrev; // 현재 보여주는 obj  
764function popUpCalendar(ob, ob2, types, formats) {
765
766    var posTop, posLeft, leftPos, topPos;
767    var aTag;
768
769    posTop = 0;
770    posLeft = 0;
771    leftPos = 0;
772    topPos = 0;
773
774    aTag = ob;
775    var posTop, posLeft;
776
777    do {
778        aTag = aTag.offsetParent;
779        leftPos += aTag.offsetLeft;
780        topPos += aTag.offsetTop;
781    } while (aTag.tagName != "HTML" && aTag.tagName != "BODY");
782
783    posTop = ob.offsetTop + 20 + topPos;
784    posLeft = ob.offsetLeft + leftPos;
785
786    calDIV.style.top = posTop + "px";
787    calDIV.style.left = posLeft + "px";
788
789
790    calDIV.style.visibility = "visible";
791    frmCal.window.callCalandar(ob, ob2, types, formats);
792
793    objPrev = ob;
794}
795
796// 스프레드용 달력
797function popUpCalendarSpread(sparedid, ob, ob2, types, formats) {
798
799    var posTop, posLeft, leftPos, topPos;
800    var aTag;
801    var spread = document.getElementById(sparedid + "_view");
802
803    posTop = 0;
804    posLeft = 0;
805    leftPos = 0;
806    topPos = 0;
807
808    aTag = ob;
809    var posTop, posLeft;
810
811    do {
812        aTag = aTag.offsetParent;
813        leftPos += aTag.offsetLeft;
814        topPos += aTag.offsetTop;
815    } while (aTag.tagName != "HTML" && aTag.tagName != "BODY");
816
817    posTop = (ob.offsetTop - spread.scrollTop) + 20 + topPos;
818    posLeft = (ob.offsetLeft - spread.scrollLeft) + leftPos;
819
820    calDIV.style.top = posTop + "px";
821    calDIV.style.left = posLeft + "px";
822
823    calDIV.style.visibility = "visible";
824    frmCal.window.callCalandar(ob, ob2, types, formats);
825
826    objPrev = ob;
827}
828
829function hideCalLayer(ob) {
830
831    if (objPrev == ob) {
832
833        if (calDIV.style.visibility == "visible" || calDIV.style.visibility == "") {
834            calDIV.style.visibility = "hidden";
835        }
836    } 
837    objPrev = null;
838
839}
840
841function commaSpread(Spread, row, col) {
842    Spread.SetValue(row, col, commaSplit(Spread.GetValue(row, col)), true);
843}
844
845function commaSplit(srcNumber) {
846    var txtNumber = '' + srcNumber;
847    var rxSplit = new RegExp('([0-9])([0-9][0-9][0-9][,.])');
848    var arrNumber = txtNumber.split('.');
849    arrNumber[0] += '.';
850
851    do {
852        arrNumber[0] = arrNumber[0].replace(rxSplit, '$1,$2');
853    } while (rxSplit.test(arrNumber[0]));
854
855    if (arrNumber.length > 1) {
856        return arrNumber.join('');
857    } else {
858        return arrNumber[0].split('.')[0];
859    }
860}
861
862// 문자열 공백 없애기
863String.prototype.trim = function() {
864    return this.replace(/(^\s*)|(\s*$)/gi, "");
865}
866
867//숫자여부 확인
868//숫자가 아니면 true 리턴
869function ChkNum(str) {
870    var flag = false;
871    if (str.length > 0) {
872        for (i = 0; i < str.length; i++) {
873            if (str.charAt(i) < '0' || str.charAt(i) > '9') {
874                flag = true;
875            }
876        }
877    }
878    return flag;
879}
880
881function viewFlash(filepath, width, height) {
882    var objHTML = "";
883
884    objHTML += "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,47,0' width='" + width + "' height='" + height + "'>";
885    objHTML += "<param name='movie' value='" + filepath + "'>";
886    objHTML += "<param name='quality' value='high'>";
887    objHTML += "<param name='wmode' value='transparent'>";
888    objHTML += "<embed src='" + filepath + "' quality='high' pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='" + width + "' height='" + height + "'>";
889    objHTML += "</embed> ";
890    objHTML += "</object>";
891
892    document.write(objHTML);
893}
894
895function emailcheck(obj) {
896
897    re = /([\w|\-]+)@([\w|\-]+)\.(\w+)/
898
899    if (!re.test(obj.val())) {
900        alert("잘못된 이메일 형식 입니다.");
901        $(obj).val("");
902        $(obj).focus();
903        return false;
904    }
905
906    return true;
907}
908
909
910
911
912//------------------------------------------------------------------
913//아래 기타 함수들 추가
914//2008-02-10
915//윤성인
916//주의: 아래의 모든 메소드는 입력폼의 필드이름(myform.myfield)을
917//      파라미터로 받는다. 필드의 값(myform.myfield.value)이 아님을
918//      유념할 것.
919//------------------------------------------------------------------
920/*예
921
922if (isEmptyAlert(f.SSN[0], "주민번호 앞자리를 입력해주십시요.") == true ) {
923_cmdfocus(f.SSN[0]); return; 	}
924if (isNumberAlert(f.SSN[0]) == false){
925_cmdfocus(f.SSN[0]); return; }
926if (getByteLength(f.SSN[0]) < 6) {
927alert("주민번호 앞자리는 6자리입니다.\n\n다시 입력하세요.");
928_cmdfocus(f.SSN[0]); return;}
929if (JuminChk(f.SSN[0], f.SSN[1]) == false) {
930alert("주민등록번호가 잘못 되었습니다.\n확인후 다시 입력해 주십시오");
931_cmdfocus(f.SSN[0]); return;	};
932*/
933
934/** Focus 맞춤 */
935function _cmdfocus(formobj) {
936    formobj.select();
937    formobj.focus();
938}
939
940
941// 용 도 : 입력 값이 NULL인지 체크
942// return : boolean  
943//          NULL이면 true, 아니면 false가 돌아간다.
944function isNull(input) {
945    if (input.value == null || input.value == "") return true;
946    return false;
947}
948
949// 용 도 : 입력 값이 NULL인지 확인하여 NULL이면 msg를 출력한다.
950// return : boolean  
951//          NULL이면 true, 아니면 false가 돌아간다.
952function isNullAlert(input, msg) {
953    var ret = isNull(input);
954    if (ret) alert(msg);
955    return ret;
956}
957
958// 용 도 : 입력 값에 Space 이외의 의미있는 값이 있는지 체크
959// return : boolean  
960//          있으면 true, 아니면 false가 돌아간다.
961function isEmpty(input) {
962    if (input.value == null || input.value.replace(/ /gi, "") == "") return true;
963    return false;
964}
965
966// 용 도 : 입력 값에 Space 이외의 의미밌는 값이 없으면 msg를 출력한다.
967// return : boolean  
968//           space 이외의 의미있는 값이 없으면 true, 아니면 false가 돌아간다.
969function isEmptyAlert(input, msg) {
970    var ret = isEmpty(input);
971    if (ret) alert(msg);
972    return ret;
973}
974
975// 용 도 : 입력 값에 특정 문자(chars)가 있는지 체크한다. 특정 문자를 허용하지 않으려 할 때 사용
976// return : boolean
977//          있으면 true, 없으면 false 
978// 사 용 예 : if(containsChars(form.name,"!,*&^%$#@~;")) {
979//               alert("이름 필드에는 특수 문자를 사용할 수 없습니다.");
980//           }
981function containsChars(input, chars) {
982    for (var inx = 0; inx < input.value.length; inx++)
983        if (chars.indexOf(input.value.charAt(inx)) != -1)
984        return true;
985    return false;
986}
987
988// 용 도 : 입력 값이 특정 문자 (chars)만으로 되어있는지 체크한다. 특정 문자만 허용하려 할 때 사용
989// return : boolean
990//          확인하려는 대상 문자만 있으면 true, 아니면 false
991// 사 용 예 : if(!containsCharsOnly(form.blood,"ABO")) {
992//               alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");  
993//           }
994function containsCharsOnly(input, chars) {
995    for (var inx = 0; inx < input.value.length; inx++)
996        if (chars.indexOf(input.value.charAt(inx)) == -1)
997        return false;
998    return true;
999}
1000
1001// 용 도 : 입력 값이 알파벳인지 체크한다. 
1002//        아래 isAlphabet() 부터 isNumComma()까지의 메소드가 자주 쓰이는 경우에는 var chars 변수를 global 변수로 선언하고 사용하도록 한다.
1003// return : boolean, A에서 Z 까지의 문자만으로 되어있으면 true, 아니면 false
1004// 사 용 예 : ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
1005//               var lowercase = "abcdefghijklmnopqrstuvwxyz"; 
1006//               var number = "0123456789";
1007//               function isAlphaNum(input) {
1008//                   var chars = uppercase + lowercase + number;
1009//                   return containsCharsOnly(input,chars);
1010//               }
1011function isAlphabet(input) {
1012    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
1013    //alert(input);
1014    return containsCharsOnly(input, chars);
1015}
1016
1017// 용 도 : 입력 값이 알파벳인지 확인하여 알파벳 이외의 문자가 있으면 "영문자만 입력가능 합니다." 메시지를 보여주고 결과를 돌려준다.
1018// return : boolean, A에서 Z 까지의 문자만으로 되어있으면 true, 아니면 false
1019function isAlphabetAlert(input) {
1020    var ret = isAlphabet(input);
1021    if (!ret) alert("영문자만 입력가능 합니다.");
1022    return ret;
1023}
1024
1025// 용 도 : 입력 값이 알파벳 대문자인지 체크
1026// return : boolean, 대문자만이면 true, 아니면 false  
1027function isUpperCase(input) {
1028    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
1029    return containsCharsOnly(input, chars);
1030}
1031
1032// 용 도 : 입력 값이 알파벳 대문자인지 확인하여 대문자 이외의 문자가 있으면 "알파벳 대문자만 입력하실 수 있습니다."라는 메시지를 보여주고 돌려준다.
1033// return : boolean, 대문자만이면 true, 아니면 false  
1034function isUpperCaseAlert(input) {
1035    var ret = isUpperCase(input);
1036    if (!ret) alert("알파벳 대문자만 입력하실 수 있습니다.");
1037    return ret;
1038}
1039
1040// 용 도 : 입력 값이 알파벳 소문자인지 체크
1041// return : boolean 소문자만이면 true, 아니면 false
1042function isLowerCase(input) {
1043    var chars = "abcdefghijklmnopqrstuvwxyz";
1044    return containsCharsOnly(input, chars);
1045}
1046
1047// 용 도 : 입력 값이 알파벳 소문자인지 확인하여 소문자 이외의 문자가 있으면  "알파벳 소문자만 입력하실 수 있습니다."라는 메시지를 보여주고 돌려준다.
1048// return :  boolean  소문자만이면 true, 아니면 false
1049function isLowerCaseAlert(input) {
1050    var ret = isLowerCase(input);
1051    if (!ret) alert("알파벳 소문자만 입력하실 수 있습니다.");
1052    return ret;
1053}
1054
1055// 용 도 : 입력 값에 숫자만 있는지 체크
1056// return : boolean 숫자만 있으면 true, 아니면 false 
1057function isNumber(input) {
1058    var chars = "0123456789";
1059    return containsCharsOnly(input, chars);
1060}
1061
1062// 용 도 : 입력 값에 숫자만 있는지 확인하여 숫자 이외의 문자가 있으면 "숫자만 입력 가능합니다"라는 메시지를 보여주고 돌려준다.
1063// return :  boolean 숫자만 있으면 true, 아니면 false   
1064function isNumberAlert(input) {
1065    var ret = isNumber(input);
1066    if (!ret) alert("숫자만 입력 가능합니다");
1067    return ret;
1068}
1069
1070// 용 도 : 입력 값이 알파벳, 숫자로 되어있는지 체크
1071// return : boolean 알파벳과 숫자만이면 true, 아니면 false  
1072function isAlphaNum(input) {
1073    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
1074    return containsCharsOnly(input, chars);
1075}
1076
1077// 용 도 : 입력 값이 알파벳, 숫자로 되어있는지 확인하여 알파벳과 숫자 이외의 문자가 있으면 "영문자와 숫자 입력만 가능합니다."라는 메시지를 보여주고 돌려준다.
1078// return : boolean 알파벳과 숫자만이면 true, 아니면 false
1079function isAlphaNumAlert(input) {
1080    var ret = isAlphaNum(input);
1081    if (!ret) alert("영문자와 숫자 입력만 가능합니다.");
1082    return ret;
1083}
1084
1085// 용 도 : 입력 값이 숫자,대시(-)로 되어있는지 체크
1086// return : boolean 숫자와 대시(-)로 되어 있으면 true, 아니면 false  
1087function isNumDash(input) {
1088    var chars = "-0123456789";
1089    return containsCharsOnly(input, chars);
1090}
1091
1092// 용 도 : 입력 값이 숫자,대시(-)로 되어있는지 확인하여 숫자와 대시(-) 이외의 문자가 있으면 체크 "숫자와 '-' 입력만 가능합니다."라는 메시지를 보여주고 돌려준다.
1093// return :  boolean 숫자와 대시(-)로 되어 있으면 true, 아니면 false
1094function isNumDashAlert(input) {
1095    var ret = isNumDash(input);
1096    if (!ret) alert(" 숫자와 '-' 입력만 가능합니다.");
1097    return ret;
1098}
1099
1100// 용 도 : 입력 값이 숫자,콤마(,)로 되어있는지 체크
1101// return : boolean 숫자와 콤마(,)로 되어 있으면 true 아니면 false 
1102function isNumComma(input) {
1103    var chars = ",0123456789";
1104    return containsCharsOnly(input, chars);
1105}
1106
1107// 용 도 : 입력 값이 숫자,콤마(,)로 되어있는지 확인하여 숫자와 콤마(,) 이외의 문자가 있으면 체크 " 숫자와 ',' 입력만 가능합니다."라는 메시지를 보여주고 돌려준다.
1108// return :  boolean  숫자와 콤마(,)로 되어 있으면 true, 아니면 false
1109function isNumCommaAlert(input) {
1110    var ret = isNumComma(input);
1111    if (!ret) alert("숫자와 ',' 입력만 가능합니다.");
1112    return ret;
1113}
1114
1115// 용 도 : 입력 값에서 콤마를 없앤다.
1116// return : string, 입력값에서 콤마를 없앤 값 
1117function removeComma(input) {
1118    return input.value.replace(/,/gi, "");
1119}
1120
1121// 용 도 : 입력 값이 사용자가 정의한 포맷 형식인지 체크한다. 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
1122// return : boolean 올바른 포맷이면 true, 아니면 false 
1123function isValidFormat(input, format) {
1124    if (input.trim().search(format) != -1) return true; //올바른 포맷 형식
1125    return false;
1126}
1127
1128// 용 도 : 입력 값이 사용자가 정의한 포맷 형식인지 확인하여 올바르지 않은 형식이면 "올바른 입력형식이 아닙니다." 메시지를 보여주고 돌려준다.
1129// return : boolean 올바른 포맷이면 true, 아니면 false
1130function isValidFormatAlert(input, format) {
1131    var ret = isValidFormat(input, format);
1132    if (!ret) alert("올바른 입력형식이 아닙니다.");
1133    return ret;
1134}
1135
1136//용 도 : 입력 값이 이메일 형식인지 체크
1137// return : boolean 이메일 형식이면 true, 아니면 false
1138function isValidEmail(input) {
1139    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;
1140    return isValidFormat(input, format);
1141}
1142
1143//용 도 : 입력 값이 이메일 형식인지 확인하여 올바르지 않으면 "이메일 입력형식이 잘못되었습니다. \n 확인후 다시 입력해 주세요."라는 메시지를 보여주고 돌려준다.
1144// return :  boolean 이메일 형식이면 true, 아니면 false
1145function isValidEmailAlert(input) {
1146    var ret = isValidEmail(input);
1147    if (!ret) alert("이메일 입력형식이 잘못되었습니다. \n 확인후 다시 입력해 주세요.");
1148    return ret;
1149}
1150
1151// 용 도 : 입력 값이 전화번호 형식(숫자-숫자-숫자)인지 체크
1152// return : boolean 전화번호 형식이면 true, 아니면 false 
1153function isValidPhone(input) {
1154    if (input.trim() == "") {
1155        return true;
1156    }
1157    var format = /^(\d+)-(\d+)-(\d+)$/;
1158    return isValidFormat(input, format);
1159}
1160
1161// 용 도 : 입력 값이 전화번호 형식(숫자-숫자-숫자)인지 확인하여 전화번호 형식이 아니면 "전화번호 입력이 잘못되었습니다. \n 확인후 다시 입력해 주세요."라는 메시지를 보여주고 돌려준다.
1162// return : boolean 전화번호 형식이면 true, 아니면 false
1163function isValidPhoneAlert(input) {
1164    if (input.value.trim() == "") {
1165        return true;
1166    }
1167    var ret = isValidPhone(input);
1168    if (!ret) alert("전화번호 입력이 잘못되었습니다. \n 확인후 다시 입력해 주세요.");
1169    return ret;
1170}
1171
1172// 용 도 : 선택된 라디오버튼이 있는지 체크
1173// return : boolean 있으면 true, 없으면 false
1174function hasCheckedRadio(input) {
1175    if (input.length > 1) {
1176        for (var inx = 0; inx < input.length; inx++)
1177            if (input[inx].checked) return true;
1178    } else {
1179        if (input.checked)
1180            return true;
1181    }
1182    return false;
1183}
1184
1185// 용 도 : 선택된 라디오 버튼이 있는지 확인하여 없으면 "선택항목을 적어도 한개는 선택해주세요."라는 메시지를 보여주고 돌려준다.
1186// return : boolean 있으면 true, 없으면 false
1187function hasCheckedRadioAlert(input) {
1188    var ret = hasCheckedRadio(input);
1189    if (!ret) alert("선택항목을 적어도 한개는 선택해주세요.");
1190    return ret;
1191}
1192
1193// 용 도 : 선택된 체크 박스가 있는지 체크
1194// return : boolean 있으면 true, 없으면 false
1195function hasCheckedBox(input) {
1196    return hasCheckedRadio(input);
1197}
1198
1199// 용 도 : 선택된 체크박스가 있는지 확인하여 없으면 "선택항목을 적어도 한개는 선택해주세요."라는 메시지를 보여주고 돌려준다.
1200// return : boolean 있으면 true, 없으면 false
1201function hasCheckedBoxAlert(input) {
1202    var ret = hasCheckedRadio(input);
1203    if (!ret) alert("선택항목을 적어도 한개는 선택해주세요.");
1204    return ret;
1205}
1206
1207// 용 도 : 입력 값의 바이트 길이를 리턴
1208// return : int, 입력값의 길이 
1209function getByteLength(input) {
1210    var byteLength = 0;
1211    for (var inx = 0; inx < input.value.length; inx++) {
1212        var oneChar = escape(input.value.charAt(inx));
1213        if (oneChar.length == 1) {
1214            byteLength++;
1215        } else if (oneChar.indexOf("%u") != -1) {
1216            byteLength += 2;
1217        } else if (oneChar.indexOf("%") != -1) {
1218            byteLength += oneChar.length / 3;
1219        }
1220    }
1221    return byteLength;
1222}
1223
1224// 용 도 : 공백을 제거하는 함수
1225// return : string, 공백을 제거한 문자열 
1226function IsTrimStr(checkStr) {
1227    var str = "";
1228    for (var i = 0; i < checkStr.length; i++) {
1229        ch = checkStr.charAt(i);
1230        if (ch != " ") str += ch;
1231    }
1232    return str;
1233}
1234
1235// 용 도 : 주민번호 체크 
1236// 형 식 : xxxxxx-yyyyyyy
1237// return :  boolean 
1238function newJumin(value) {
1239    this.value = value;
1240}
1241
1242function common_Jumin_Check(jumin1, jumin2) {
1243    var ok = true;
1244    var Str1 = "" + jumin1 + jumin2;
1245    var Str = new newJumin(Str1);
1246    return jumin_Check(Str);
1247}
1248
1249// 용 도 : 주민번호 체크
1250// 형 식 : xxxxxxyyyyyyy
1251// return :  boolean 
1252// 매개변수 : 주민등록번호 13자리
1253// 사 용 예 : jumin_Check(xxxxxxyyyyyyy); 
1254// 참고사항 : 주민등록번호가 잘못되었다면 주민등록번호가 잘못되었다는 메세지를 출력하고 boolean ì
1254„ return 한다.
1255function jumin_Check(juminnum) {
1256    if (!jumin_Check_Confirm(juminnum))
1257        alert("주민등록번호가 잘못 되었습니다.\n확인후 다시 입력해 주십시오");
1258}
1259
1260// 용 도 : 주민번호 체크
1261// 형 식 : xxxxxxyyyyyyy
1262// return :  boolean 
1263// 매개변수 : 주민등록번호 13자리
1264// 사 용 예 : jumin_Check_Confirm(xxxxxxyyyyyyy); 
1265// 참고사항 : 주민등록번호가 잘못되어도 메세지를 출력하지 않고 boolean 만 return 한다.
1266function jumin_Check_Confirm(juminnum) {
1267    var ok = true;
1268    var Str = "" + juminnum.value;
1269    var sum = 0;
1270    sum = Str.charAt(0) * 2 + Str.charAt(1) * 3 + Str.charAt(2) * 4 + Str.charAt(3) * 5 +
1271		  Str.charAt(4) * 6 + Str.charAt(5) * 7 + Str.charAt(6) * 8 + Str.charAt(7) * 9 +
1272		  Str.charAt(8) * 2 + Str.charAt(9) * 3 + Str.charAt(10) * 4 + Str.charAt(11) * 5;
1273    if (sum == "0")
1274        return false;
1275    else {
1276        sum = sum % 11;
1277        sum = 11 - sum;
1278        if (sum > 9) sum = sum - 10;
1279
1280        if (sum == Str.charAt(12)) {
1281            return true;
1282        } else {
1283            juminnum.focus();
1284            return false;
1285        }
1286    }
1287}
1288
1289function JuminChk(juminnum1, juminnum2) {
1290    var Str = "" + juminnum1.value + juminnum2.value;
1291    var sum = 0;
1292    sum = Str.charAt(0) * 2 + Str.charAt(1) * 3 + Str.charAt(2) * 4 + Str.charAt(3) * 5 +
1293		  Str.charAt(4) * 6 + Str.charAt(5) * 7 + Str.charAt(6) * 8 + Str.charAt(7) * 9 +
1294		  Str.charAt(8) * 2 + Str.charAt(9) * 3 + Str.charAt(10) * 4 + Str.charAt(11) * 5;
1295    if (sum == "0")
1296        return false;
1297    else {
1298        sum = sum % 11;
1299        sum = 11 - sum;
1300        if (sum > 9) sum = sum - 10;
1301
1302        if (sum == Str.charAt(12)) {
1303            return true;
1304        } else {
1305            return false;
1306        }
1307    }
1308}
1309
1310// 용 도 : 사업자등록번호를 확인 
1311// 형 식 : XXXXXXXXXX
1312// return : boolean 맞으면 true, 아니면 false
1313function RegNoCheck(membNo) {
1314    if (membNo.length == 10) {
1315        a = membNo.charAt(0);
1316        b = membNo.charAt(1);
1317        c = membNo.charAt(2);
1318        d = membNo.charAt(3);
1319        e = membNo.charAt(4);
1320        f = membNo.charAt(5);
1321        g = membNo.charAt(6);
1322        h = membNo.charAt(7);
1323        i = membNo.charAt(8);
1324        Osub = membNo.charAt(9);
1325
1326        suma = a * 1 + b * 3 + c * 7 + d * 1 + e * 3 + f * 7 + g * 1 + h * 3;
1327        sumb = (i * 5) % 10;
1328        sumc = parseInt((i * 5) / 10, 10);
1329        sumd = sumb + sumc;
1330        sume = suma + sumd;
1331        sumf = a + b + c + d + e + f + g + h + i
1332        k = sume % 10;
1333        Modvalue = 10 - k;
1334        LastVal = Modvalue % 10;
1335
1336        if (sumf == 0) return false;
1337    } else return false;
1338
1339    if (Osub == LastVal) return true;
1340    else return false;
1341}
1342
1343// 용 도 : 사업자등록번호를 확인하여 비정상적이면 "사업자 등록번호가 잘못되었습니다. \n확인후 다시 입력해 주십시오"라는 메시지를 보여주고 돌려준다.
1344// 형 식 : XXXXXXXXXX
1345// return : boolean 맞으면 true, 아니면 false
1346function RegNO_check(membNo) {
1347    var bRet = RegNoCheck(membNo);
1348    if (!bRet) alert("사업자 등록번호가 잘못 되었습니다.\n확인후 다시 입력해 주십시오");
1349    return bRet;
1350}
1351
1352// 용 도 : 사업자등록번호를 확인하여 비정상적이면 "사업자 등록번호가 잘못되었습니다. \n확인후 다시 입력해 주십시오"라는 메시지를 보여주고 돌려준다.
1353// 형 식 : XXX-XX-XXXXX
1354// return : boolean 맞으면 true, 아니면 false
1355function RegNO_check_formatted(membNo) {
1356    var str = "";
1357    var ar = membNo.split("-");
1358    for (var i = 0; i < ar.length; i++) str += ar[i];
1359    return RegNO_check(str);
1360}
1361
1362// 용 도 : 임의의 HTML 테그 내용을 변경
1363// 매개변수 : obj - 구성할 HTML Tag Object html - Tag 이름
1364// return :	void
1365function makeTags(obj, html) {
1366    var tmp = obj.outerHTML;
1367    var idx = 0;
1368    if (IsTrimStr(obj.innerHTML).length <= 0)
1369        idx = tmp.indexOf("</" + obj.tagName + ">");
1370    else
1371        idx = tmp.indexOf(obj.innerHTML);
1372    tmp = tmp.substring(0, idx);
1373    tmp += html;
1374    tmp += "</" + obj.tagName + ">";
1375    obj.outerHTML = tmp;
1376}
1377
1378// 용 도 : ComboCreater.getComboOption()의 결과를 기초로 
1379//        콤보의 항목을 변경
1380// 매개변수 : obj - 구성할 콤보 Object
1381//	         option - ComboCreater.getComboOption()의 결과
1382// return  : void
1383function makeCombo(obj, option) {
1384    makeTags(obj, option);
1385    obj.selectedIndex = 0;
1386}
1387
1388// 용 도 : 모달 대화상자 활성화
1389// param : url : 호출할 URL
1390//         title : dialog title 명
1391//         x : 대화상자 x 좌표( 0보다 작으면 Center );
1392//         y : 대화상자 y 좌표( 0보다 작으면 Center );
1393//         w : 대화상자 폭
1394//         h : 대화상자 높이
1395//return : ret : URL에서 반환활 결과 Object
1396function showDlg(url, title, x, y, w, h) {
1397    var bModal = true;
1398    if (showDlg.arguments.length == 7) {
1399        bModal = showDlg.arguments[6];
1400    }
1401    if (w <= 0 || h <= 0) {
1402        alert("대화상자 크기를 확인하세요");
1403        return null;
1404    }
1405
1406    var ar = new Array();
1407    ar[0] = window;
1408    ar[1] = url;
1409    ar[2] = title;
1410
1411    var opt = "status:no;scroll:no;help:no;";
1412    if (x >= 0) opt += "dialogLeft:" + x + "px;";
1413    if (y >= 0) opt += "dialogTop:" + y + "px;";
1414
1415    opt += "dialogWidth:" + w + "px;";
1416    opt += "dialogHeight:" + h + "px;";
1417
1418    if (bModal)
1419        return window.showModalDialog("/common/modalDlg.htm", ar, opt);
1420    else
1421        return window.showModelessDialog("/common/modalDlg.htm", ar, opt);
1422}
1423
1424
1425//2009-07-09 윤성인 추가
1426function txtddlCheck(input, msg) {
1427    if (isEmptyAlert(input, msg + "을(를) 선택해 주십시요.") == true) {
1428        input.focus(); return false;
1429    }
1430    return true;
1431}
1432
1433function txtStrCheck(input, msg) {
1434    if (isEmptyAlert(input, msg + "을(를) 입력해 주십시요.") == true) {
1435        _cmdfocus(input); return false;
1436    }
1437    if (getByteLength(input) < 2) {
1438        alert(msg + "은(는) 2글자 이상입니다.\n\n다시 입력하세요."); _cmdfocus(input); return false;
1439    }
1440    return true;
1441}
1442
1443function txtNumCheck(input, cnt, msg) {
1444    if (isEmptyAlert(input, msg + "을(를) 입력해 주십시요.") == true) {
1445        _cmdfocus(input); return false;
1446    }
1447    if (isNumberAlert(input) == false) {
1448        _cmdfocus(input); return false;
1449    }
1450    if (getByteLength(input) < cnt) {
1451        alert(msg + "은(는) " + cnt + "자리(이상) 입니다.\n\n다시 입력하세요."); _cmdfocus(input); return false;
1452    }
1453    return true;
1454}
1455
1456function txtMailCkeck(input, msg) {
1457    if (isEmptyAlert(input, msg + "이메일을(를) 입력해 주십시요.") == true) {
1458        _cmdfocus(input); return false;
1459    }
1460    if (isValidEmailAlert(input) == false) {
1461        _cmdfocus(input); return false;
1462    }
1463    return true;
1464}
1465
1466
1467//2009-08-10 김지원 추가
1468function CheckHangul(name) {
1469    strarr = new Array(name.value.length);
1470    schar = new Array('/', '.', '>', '<', ',', '?', '}', '{', ' ', '\\', '|', '(', ')', '+', '=');
1471
1472    for (i = 0; i < name.value.length; i++) {
1473        for (j = 0; j < schar.length; j++) {
1474            if (schar[j] == name.value.charAt(i)) {
1475                alert("한글입력만 가능합니다.");
1476                return false;
1477            }
1478            else
1479                continue;
1480        }
1481
1482        strarr[i] = name.value.charAt(i)
1483        if ((strarr[i] >= 0) && (strarr[i] <= 9)) {
1484            alert("숫자가 포함되어 있습니다. 한글입력만 가능합니다.");
1485            return false;
1486        }
1487        else if ((strarr[i] >= 'a') && (strarr[i] <= 'z')) {
1488            alert("알파벳이 포함되어 있습니다. 한글입력만 가능합니다.");
1489            return false;
1490        }
1491        else if ((strarr[i] >= 'A') && (strarr[i] <= 'Z')) {
1492            alert("알파벳이 포함되어 있습니다. 한글입력만 가능합니다.");
1493            return false;
1494        }
1495        else if ((escape(strarr[i]) > '%60') && (escape(strarr[i]) < '%80')) {
1496            alert("특수문자가 포함되어 있습니다. 한글입력만 가능합니다.");
1497            return false;
1498        }
1499        else {
1500            continue;
1501        }
1502    }
1503    return true;
1504}
1505
1506
1507/*
1508* 팝업 자동 리사이징
1509*  - 윈도 환경에 따라 사이즈가 다를 수 있습니다.
1510*  - 팝업페이지의 스크립트 최하단에서 실행하십시오.
1511*
1512* (ex.) window.onload = function(){popupAutoResize();}
1513*/
1514function popupAutoResize() {
1515    var thisX = parseInt(document.body.scrollWidth);
1516    var thisY = parseInt(document.body.scrollHeight);
1517    var maxThisX = screen.width - 50;
1518    var maxThisY = screen.height - 50;
1519    var marginY = 0;
1520    //alert(thisX + "===" + thisY);
1521    //alert("임시 브라우저 확인 : " + navigator.userAgent);
1522    // 브라우저별 높이 조절. (표준 창 하에서 조절해 주십시오.)
1523    if (navigator.userAgent.indexOf("MSIE 6") > 0) marginY = 45;        // IE 6.x
1524    else if (navigator.userAgent.indexOf("MSIE 7") > 0) marginY = 75;    // IE 7.x
1525    else if (navigator.userAgent.indexOf("Firefox") > 0) marginY = 50;   // FF
1526    else if (navigator.userAgent.indexOf("Opera") > 0) marginY = 30;     // Opera
1527    else if (navigator.userAgent.indexOf("Netscape") > 0) marginY = -2;  // Netscape
1528
1529    if (thisX > maxThisX) {
1530        window.document.body.scroll = "yes";
1531        thisX = maxThisX;
1532    }
1533    if (thisY > maxThisY - marginY) {
1534        window.document.body.scroll = "yes";
1535        thisX += 19;
1536        thisY = maxThisY - marginY;
1537    }
1538    window.resizeTo(thisX + 10, thisY + marginY);
1539
1540    // 센터 정렬
1541    // var windowX = (screen.width - (thisX+10))/2;
1542    // var windowY = (screen.height - (thisY+marginY))/2 - 20;
1543    // window.moveTo(windowX,windowY);
1544}
1545
1546
1547// 컨트롤 찾기
1548function FindControl(tagName, name) {
1549    var controls = new Array();
1550    var tags = document.getElementsByTagName(tagName)
1551    var count = 0;
1552
1553    for (var i = 0; i < tags.length; i++) {
1554        if (tags[i].name.indexOf(name) >= 0) {
1555            controls[count] = document.getElementById(tags[i].id);
1556            count++;
1557        }
1558    }
1559    return controls;
1560}
1561
1562
1563/*-------------------------------------------------------------
1564입력 문자열 길이 체크(SMS발송 문자 길이)
1565chkMsgLength()
1566최진수 2007.06.17
1567사용예 : 
1568var str = chkMsgLength("80", txtContent, currentMsgLen);
1569<textarea name="txtContent" style="width:320px;height:70px" onkeyup="chkMsgLength(80,txtContent,currentMsgLen);"></textarea>
1570<span id=currentMsgLen>0</span>바이트/80바이트
1571--------------------------------------------------------------*/
1572function chkMsgLength(intMax, objMsg, st) {
1573    var length = lengthMsg(objMsg.value);
1574    st.innerHTML = length;
1575    if (length > intMax) {
1576        alert("최대 " + intMax + "byte이므로 초과된 글자수는 자동으로 삭제됩니다.\n");
1577        objMsg.value = objMsg.value.replace(/\r\n$/, "");
1578        objMsg.value = assertMsg(intMax, objMsg.value, st);
1579    }
1580}
1581
1582function assertMsg(intMax, objMsg, st) {
1583    var inc = 0;
1584    var nbytes = 0;
1585    var msg = "";
1586    var msglen = objMsg.length;
1587    for (i = 0; i < msglen; i++) {
1588        var ch = objMsg.charAt(i);
1589        if (escape(ch).length > 4) {
1590            inc = 2;
1591        }
1592        else if (ch == '\n') {
1593            if (objMsg.charAt(i - 1) != '\r') {
1594                inc = 1;
1595            }
1596        }
1597        else if (ch == '<' || ch == '>') {
1598            inc = 4;
1599        }
1600        else {
1601            inc = 1;
1602        }
1603        if ((nbytes + inc) > intMax) {
1604            break;
1605        }
1606        nbytes += inc;
1607        msg += ch;
1608    }
1609    st.innerHTML = nbytes;
1610    return msg;
1611}
1612
1613function lengthMsg(objMsg) {
1614    var nbytes = 0;
1615    for (i = 0; i < objMsg.length; i++) {
1616        var ch = objMsg.charAt(i);
1617        if (escape(ch).length > 4) {
1618            nbytes += 2;
1619        }
1620        else if (ch == '\n') {
1621            if (objMsg.charAt(i - 1) != '\r') {
1622                nbytes += 1;
1623            }
1624        }
1625        else if (ch == '<' || ch == '>') {
1626            nbytes += 4;
1627        }
1628        else {
1629            nbytes += 1;
1630        }
1631    }
1632    return nbytes;
1633}
1634
1635/** 
1636* string String::cutByte(int len)
1637* 글자를 앞에서부터 원하는 바이트만큼 잘라 리턴합니다.
1638* 한글의 경우 2바이트로 계산하며, 글자 중간에서 잘리지 않습니다.
1639*/
1640String.prototype.cutByte = function(len) {
1641    var str = this;
1642    var l = 0;
1643    for (var i = 0; i < str.length; i++) {
1644        l += (str.charCodeAt(i) > 128) ? 2 : 1;
1645        if (l > len) return str.substring(0, i);
1646    }
1647    return str;
1648}
1649
1650
1651/** 
1652* bool String::byte(void)
1653* 해당스트링의 바이트단위 길이를 리턴합니다. (기존의 length 속성은 2바이트 문자를 한글자로 간주합니다)
1654*/
1655String.prototype.byte = function() {
1656    var str = this;
1657    var l = 0;
1658    for (var i = 0; i < str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
1659    return l;
1660}
1661
1662/** 
1663* 전체 검색
1664*/
1665function btnAllSearch_Click() {
1666    if ($("#txtAllSearch").val().trim().length <= 1) {
1667        $("#txtAllSearch").focus();
1668        alert("검색어를 2자이상 입력해 주십시오.");
1669        return false;
1670    }
1671    else {
1672        document.location.href = "/Search/Search.aspx?SW=" + escape($("#txtAllSearch").val());
1673    }
1674}
1675
1676/* 숫자체크 */
1677function NumChk(obj) {
1678    if (isNaN($(obj).val()) || $(obj).val().indexOf(".") > 0) {
1679        alert("숫자로만 입력해주세요");
1680        $(obj).val("");
1681        $(obj).focus();
1682        return false;
1683    }
1684}
1685
1686
1687
1688/*개인정보취급/처리방침 */
1689function PrivacyPop() {
1690    window.open("/Member/PrivacyPop.aspx", "pop", "toolbar=0, status=0, scrollbars=no, left=0, top=0 , menubar=0, width=500, height=500, status=0");
1691}
1692
1693/* 컴마(,)를 없앤 숫자를 반환 */
1694function cfNumeric(sOrg) {
1695    var nm;
1696    sOrg = sOrg.replace(/,/g, "");
1697    nm = parseFloat(sOrg).toString();
1698    return (isNaN(nm) ? 0 : nm);
1699}
1700
1701/* 자동으로 콤마 넣기 */
1702function number_format(num) {
1703    num = num.replace(/,/g, "")
1704    var num_str = num.toString()
1705    var result = ''
1706
1707    for (var i = 0; i < num_str.length; i++) {
1708        var tmp = num_str.length - (i + 1)
1709        if (i % 3 == 0 && i != 0) result = ',' + result
1710        result = num_str.charAt(tmp) + result
1711    }
1712
1713    return result
1714}
1715
1716/******************************************************************************
1717 *  제  목 : 시간체크
1718 *  작성자 : 곽병은
1719 *  작성일 : 2014.02.27
1720 *  설  명 : 정해진 시간 이전이면 return false; 이후이면 return true;
1721 *  사용예 : Order/Order.aspx
1722if(fnCheckDate(2014, 2, 28) == true) {
1723    //alert('체크 시간 - 이후');
1724    if($('#<%=hdnCanUseCoupon.ClientID %>').val() == "N") {
1725        alert('뉴발란스 제품은 쿠폰을 사용할 수 없습니다.');
1726        $('#rdoSubPay1').click();
1727    }
1728} else {
1729    //alert('체크 시간 - 이전');
1730}
1731
1732 ******************************************************************************/
1733function fnCheckDate(year, month, day) {
1734    year = parseInt(year);
1735    month = parseInt(month);
1736    day = parseInt(day);
1737    var checkDate = new Date(year, month - 1, day, 0, 0, 0, 0);
1738    var nowDate = new Date();  
1739    if (nowDate < checkDate) {
1740        return false;
1741    } else {
1742        return true;
1743    }
1744}
1745

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.