﻿///<reference path="jquery-1.4.1-vsdoc.js" />

cr_check = new CR_Check_Value();
cr_ajax = new Cr_Ajax();
cr_str = new Cr_str();

jQuery(function ($) { $.datepicker.regional['ko'] = { closeText: '닫기', prevText: '이전달', nextText: '다음달', currentText: '오늘', monthNames: ['1월(JAN)', '2월(FEB)', '3월(MAR)', '4월(APR)', '5월(MAY)', '6월(JUN)', '7월(JUL)', '8월(AUG)', '9월(SEP)', '10월(OCT)', '11월(NOV)', '12월(DEC)'], monthNamesShort: ['1월(JAN)', '2월(FEB)', '3월(MAR)', '4월(APR)', '5월(MAY)', '6월(JUN)', '7월(JUL)', '8월(AUG)', '9월(SEP)', '10월(OCT)', '11월(NOV)', '12월(DEC)'], dayNames: ['일', '월', '화', '수', '목', '금', '토'], dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'], dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'], weekHeader: 'Wk', dateFormat: 'yy-mm-dd', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: '년' }; $.datepicker.setDefaults($.datepicker.regional['ko']); });
$.datepicker.setDefaults($.datepicker.regional['ko']); 


        function Cr_str() {
            // 돈형식으로 변환 1233456789 -> 123,456,789 로변환
            this.strToMoney = function(v) {
            v = v.toString();
            if (v.length > 3) {
                    var mod = v.length % 3;
                    var retval = (mod > 0 ? (v.substring(0,mod)) : "");
                    for (i=0 ; i < Math.floor(v.length / 3); i++) {
                            if ((mod == 0) && (i == 0)) {
                                    retval += v.substring(mod+ 3 * i, mod + 3 * i + 3);
                            } else {
                                    retval+= "," + v.substring(mod + 3 * i, mod + 3 * i + 3);
                            }
                    }
                    return retval;
            } else {
                    return v;
            }

            }

            this.getByteLength = function (v) {
                v = v.toString();
                var iByteLength = 0;
                for (var i = 0; i < v.length; i++) {
                    var sChar = escape(v.charAt(i));
                    if (sChar.length == 1 ) {
                        iByteLength ++;
                    } else if (sChar.indexOf("%u") != -1) {
                        iByteLength += 2;
                    } else if (sChar.indexOf("%") != -1) {
                        iByteLength += sChar.length/3;
                    }
                }
                return iByteLength;

            }


            //url 형식의 파일을 파일으로 변경한다.
            this.strImgFileName = function (str_path) {
                var returnvalue = "";
                var stratindx = str_path.lastIndexOf("/");
                var endidx = str_path.length;
                returnvalue = str_path.substring(stratindx+1, endidx);
                return returnvalue;
            }

            //url 형식에서 파일명을 제외한 URL 을 가져온다
            this.strImgURL = function (str_path) {
                var returnvalue = "";
                var endidx = str_path.lastIndexOf("/");
                returnvalue = str_path.substring(0, endidx+1);
                return returnvalue;
            }

        }
        


        function Cr_Ajax() {
            //동기 전송으로 get 방식 오직 URL만 입력함
            this.get_noasync = function(str_url) {
                var returnvalue = "";

                $.ajax({
                    type: "GET",
                    url: str_url,
                    data: {},
                    async: false,
                    success: function(data, textstatus) {
                        returnvalue = data;

                    },
                    error: function() {
                        alert("통신도중 오류가 발생하였습니다.");
                    }


                });
                return returnvalue;
            }
        }
          
        function CR_Check_Value() {
            
            
            //숫자 체크 숫자가 아닌 문자가 1개라도 있을 경우 false 리턴
            this.number = function(str_value) {
            
                var returnvalue = true;

                var str_match = str_value.match("[^0-9]");

                if (str_match != null) {
                    returnvalue = false;

                }
                return returnvalue;

            }
            //영문자 체크 영문자가 아니면 false 리턴
            this.eng = function(str_value) {

                var returnvalue = true;
                
                var str_match = str_value.match("[^a-zA-Z]");

                if (str_match != null) {
                    returnvalue = false;

                }
                
                return returnvalue;
            }
            
            //한글이 아니면 false 리턴 공백문자 포함
            this.hangle = function(str_value) {

                str_value = str_value.replace(" ", "");
                var returnvalue = true;
                
                var str_match = str_value.match("[^ㄱ-힣]");

                if (str_match != null) {

                    returnvalue = false;

                }

                return returnvalue;
            }


            //영문자 체크 영문자가 아니면 false 리턴 840205-444444 형식 840205444441 형식 모두 됨 공백 허용 안함
            this.regno = function(str_value) {
                str_value = str_value = str_value.replace("-", "");
                
                var socnoStr = str_value.toString();
                a = socnoStr.substring(0, 1);
                b = socnoStr.substring(1, 2);
                c = socnoStr.substring(2, 3);
                d = socnoStr.substring(3, 4);
                e = socnoStr.substring(4, 5);
                f = socnoStr.substring(5, 6);
                g = socnoStr.substring(6, 7);
                h = socnoStr.substring(7, 8);
                i = socnoStr.substring(8, 9);
                j = socnoStr.substring(9, 10);
                k = socnoStr.substring(10, 11);
                l = socnoStr.substring(11, 12);
                m = socnoStr.substring(12, 13);

                temp = a * 2 + b * 3 + c * 4 + d * 5 + e * 6 + f * 7 + g * 8 + h * 9 + i * 2 + j * 3 + k * 4 + l * 5;
                temp = temp % 11;
                temp = 11 - temp;
                temp = temp % 10;

                if (temp == m)
                    return true;
                else
                    return false;

            }

            //ID 체크 4~10 자 영문 소문자 대문자 언더바 포함
            this.userid = function(str_value) {

                var idpattern = /^[a-zA-Z0-9_]{4,10}$/;
                if (!idpattern.test(str_value)) {
                    return false;
                }
                else {
                    return true;
                }

            }

            //비밀번호 체크 6~10 자 영문 소문자 대문자 언더바 포함
            this.userpw = function(str_value) {

                var pwdpattern = /^[a-zA-Z0-9_]{6,10}$/;
                if (!pwdpattern.test(str_value)) {
                    return false;
                }
                else {
                    return true;
                }
            }

            //이메일 체크
            this.email = function(str_value) {

                var reg_email = /^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$/;
                if (!reg_email.test(str_value)) {
                    return false;
                }
                else {
                    return true;
                }

            }




            this.date = function(inputDate, point) {

                var dateElement = new Array(3);

                if (point != "") {
                    dateElement = inputDate.split(point);
                    if (inputDate.length != 10 || dateElement.length != 3) {
                        return false;
                    }
                } else {
                    dateElement[0] = inputDate.substring(0, 4);
                    dateElement[1] = inputDate.substring(4, 6);
                    dateElement[2] = inputDate.substring(6, 9);
                }
                //년도 검사
                if (!(1800 <= dateElement[0] && dateElement[0] <= 4000)) {
                    return false;
                }

                //달 검사
                if (!(0 < dateElement[1] && dateElement[1] < 13)) {
                    return false;
                }

                // 해당 년도 월의 마지막 날
                var tempDate = new Date(dateElement[0], dateElement[1], 0);
                var endDay = tempDate.getDate();

                //일 검사
                if (!(0 < dateElement[2] && dateElement[2] <= endDay)) {
                    return false;
                }

                return true;
            }


            this.compDate = function(startDate, endDate, point) {
            //정상 날짜인지 체크한다.
                    var startDateChk = this.date(startDate, point);
                    if (!startDateChk) {
                        return false;
                    }
                    var endDateChk = this.date(endDate, point, "end");

                    if (!endDateChk) {
                        return false;
                    }

                    //년 월일로 분리 한다.
                    var start_Date = new Array(3);
                    var end_Date = new Array(3);

                    if (point != "") {
                        start_Date = startDate.split(point);
                        end_Date = endDate.split(point);
                        if (start_Date.length != 3 && end_Date.length != 3) {
                            return false;
                        }
                    } else {
                        start_Date[0] = startDate.substring(0, 4);
                        start_Date[1] = startDate.substring(4, 6);
                        start_Date[2] = startDate.substring(6, 9);

                        end_Date[0] = endDate.substring(0, 4);
                        end_Date[1] = endDate.substring(4, 6);
                        end_Date[2] = endDate.substring(6, 9);
                    }

                    //Date 객체를 생성한다.
                    var sDate = new Date(start_Date[0], start_Date[1], start_Date[2]);
                    var eDate = new Date(end_Date[0], end_Date[1], end_Date[2]);

                    if (sDate > eDate) {
                        return false;
                    }

                    return true;
            }
            
          
            
        }
        //한글 자소 분리
        var hangulToJaso = function (text) {
            var ChoSeong = new Array(
            0x3131, 0x3132, 0x3134, 0x3137, 0x3138, 0x3139,
            0x3141, 0x3142, 0x3143, 0x3145, 0x3146, 0x3147,
            0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e
        );
            var JungSeong = new Array(
            0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154,
            0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a,
            0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160,
            0x3161, 0x3162, 0x3163
        );
            var JongSeong = new Array(
            0x0000, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135,
            0x3136, 0x3137, 0x3139, 0x313a, 0x313b, 0x313c,
            0x313d, 0x313e, 0x313f, 0x3140, 0x3141, 0x3142,
            0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 0x314a,
            0x314b, 0x314c, 0x314d, 0x314e
        );
            var chars = new Array()
            var v = new Array();
            for (var i = 0; i < text.length; i++) {
                chars[i] = text.charCodeAt(i);
                if (chars[i] >= 0xAC00 && chars[i] <= 0xD7A3) {
                    var i1, i2, i3;
                    i3 = chars[i] - 0xAC00;
                    i1 = i3 / (21 * 28);
                    i3 = i3 % (21 * 28);
                    i2 = i3 / 28;
                    i3 = i3 % 28;
                    v.push(String.fromCharCode(ChoSeong[parseInt(i1)]));
                    v.push(String.fromCharCode(JungSeong[parseInt(i2)]));
                    if (i3 != 0x0000)
                        v.push(String.fromCharCode(JongSeong[parseInt(i3)]));
                }
                else {
                    v.push(String.fromCharCode(chars[i]));
                }
            }
            return v;
        }  

