﻿var General =
{

    fnCheckInput: function(content) {
        var result = '0';

        for (var i = 0; i < content.length; i++) {
            if (content.substring(i, i + 1) != " ") {
                result = '1';
            }
        }

        if (result == '0') {
            return false; //모두 공백인 경우
        }
        return true;
    },




    fnCheckTextArea: function(content) {

        var temp;
        var result = '0';
        temp = content;
        temp = temp.replace(/\r\n/g, " ");
        for (i = 0; i < temp.length; i++) {
            if (temp.charAt(i) != " ") {
                result = '1'
            }
        }

        if (result == '0') {
            return false;
        }
        return true;
    },


    trim: function(str) {
        return str.replace(/(^\s+)|(\s+)$/, "");
    },

    fnValidateEmpty: function(objField, strMessage) {
        /// <summary>
        /// 빈값체크
        /// </summary>
        var objReplace = objField.value.replace(/(^\s*)|(\s*$)/g, "");
        if (objReplace == "") {
            if (strMessage != "") {
                alert(strMessage);
                if (objField.type != "hidden")
                    objField.focus();
            }
            objField.value = objReplace;
            return false;
        }
        return true;
    },



    fnValidateSize: function(objField, strMessage, intSize, bitByte, bitCheck) {
        var objReplace = objField.value.replace(/(^\s*)|(\s*$)/g, "");
        var intLength, intChrCode, strblnResult
        intLength = 0;

        if (bitByte) {
            for (var i = 0; i < objReplace.length; i++) {
                intChrCode = objReplace.charCodeAt(i);
                if ((intChrCode >= 0) && (intChrCode < 256))
                    intLength++;
                else
                    intLength += 2;
            }
        }
        else {
            intLength = objReplace.length;
        }

        if (bitCheck == 1) {
            if (intLength > intSize)
                blnResult = true;
            else
                blnResult = false;
        }
        else {
            if (intLength < intSize)
                blnResult = true;
            else
                blnResult = false;
        }

        if (blnResult) {
            if (strMessage != "") {
                alert(strMessage);
                if (objField.type != "hidden")
                    objField.focus();
            }
            objField.value = objReplace;
            return false;
        }

        return true;
    },

    fnIsNumeric: function(objNumber) {

        var temp = new String(objNumber)

        if (temp.search(/\D/) != -1) {
            return false;
        }
        return true;
    },

    fnValidatePersonalNum: function(intSocialNo1, intSocialNo2) {

        var intSocialNo = intSocialNo1 + intSocialNo2;
        var intCode = "234567892345";
        var intSum = 0;


        if (!General.fnIsNumeric(intSocialNo)) return false;


        if (intSocialNo.substring(2, 3) > 1) return false;
        if (intSocialNo.substring(4, 5) > 3) return false;
        if (intSocialNo.substring(0, 2) == '00' && (intSocialNo.substring(6, 7) != 0 || intSocialNo.substring(6, 7) != 9 || intSocialNo.substring(6, 7) != 3 || intSocialNo.substring(6, 7) != 4)) return false;
        if (intSocialNo.substring(0, 2) != '00' && (intSocialNo.substring(6, 7) > 4 || intSocialNo.substring(6, 7) == 0)) return false;

        for (var i = 0; i < 13; i++)
            intSum += intSocialNo.substr(i, 1) * intCode.substr(i, 1);

        intSum = 11 - (intSum % 11);

        if (intSum == 10)
            intSum = 0;
        else if (intSum == 11)
            intSum = 1;

        if (intSocialNo.substr(12, 1) == intSum)
            return true;
        else
            return false;
    },

    fnValidateForeignNum: function(intForeignNo1, intForeignNo2) {

        var intForeignNo = intForeignNo1 + intForeignNo2;
        var intCode = "234567892345";
        var intSum = 0;


        if (!General.fnIsNumeric(intForeignNo)) return false;


        if (intForeignNo.substring(7, 9) % 2 != 0) return false;
        if ((intForeignNo.substring(11, 12) != 6) && (intForeignNo.substring(11, 12) != 7) && (intForeignNo.substring(11, 12) != 8) && (intForeignNo.substring(11, 12) != 9)) return false;

        for (var i = 0; i < 13; i++)
            intSum += intForeignNo.substr(i, 1) * intCode.substr(i, 1);

        intSum = 11 - (intSum % 11);

        if (intSum >= 10) intSum -= 10;

        intSum += 2;

        if (intSum >= 10) intSum -= 10;

        if (intForeignNo.substr(12, 1) == intSum)
            return true;
        else
            return false;
    },

    fhCheckResidentNo: function(varSno1, varSno2) {
        var sno = varSno1 + varSno2;
        var IDAdd = "234567892345";
        var iDot = 0;


        if (!General.fnIsNumeric(sno))
            return (false);


        if (sno.length != 13)
            return (false);


        if (sno.substring(6, 7) == 5 || sno.substring(6, 7) == 6) { //외국인 등록번호 체크
            if (sno.substring(7, 9) % 2 != 0) return (false);
            if ((sno.substring(11, 12) != 6) && (sno.substring(11, 12) != 7) && (sno.substring(11, 12) != 8) && (sno.substring(11, 12) != 9)) return (false);

            for (var i = 0; i < 13; i++)
                iDot += sno.substr(i, 1) * IDAdd.substr(i, 1);

            iDot = 11 - (iDot % 11);

            if (iDot >= 10) iDot -= 10;

            iDot += 2;

            if (iDot >= 10) iDot -= 10;

            if (sno.substr(12, 1) == iDot) {
                return (true);
            }
            else {
                return (false);
            }

        }
        else { //내국인 등록번호 체크
            if (sno.substring(2, 3) > 1) return (false);
            if (sno.substring(4, 5) > 3) return (false);
            if (sno.substring(0, 2) == '00' && (sno.substring(6, 7) != 0 || sno.substring(6, 7) != 9 || sno.substring(6, 7) != 3 || sno.substring(6, 7) != 4)) return (false);
            if (sno.substring(0, 2) != '00' && (sno.substring(6, 7) > 4 || sno.substring(6, 7) == 0)) return (false);

            for (var i = 0; i < 13; i++)
                iDot = iDot + sno.substr(i, 1) * IDAdd.substr(i, 1);

            iDot = 11 - (iDot % 11);

            if (iDot == 10) {
                iDot = 0;
            } else if (iDot == 11) {
                iDot = 1;
            }

            if (sno.substr(12, 1) == iDot) {
                return (true);
            } else {
                return (false);
            }
        }
    },

    objDetectBrowser: function() {
        var strUA, strBName, intI;
        strUA = navigator.userAgent;

        this.isIE = false; 		// 익스플로러인지를 나타내는 속성
        this.isFF = false; 		// 파이어폭스인지를 나타내는 속성
        this.isNS = false; 	// 넷스케이프인지를 나타내는 속성
        this.isOR = false; 	// 오페라인지를 나타내는 속성
        this.version = null; 	// 브라우저 버전을 나타내는 속성


        strBName = "MSIE";
        if ((intI = strUA.indexOf(strBName)) >= 0) {
            this.isIE = true;
            this.version = parseFloat(strUA.substr(intI + strBName.length));
            return;
        }

        strBName = "Firefox/";
        if ((intI = strUA.indexOf(strBName)) >= 0) {
            this.isFF = true;
            this.version = parseFloat(strUA.substr(intI + strBName.length));
            return;
        }

        strBName = "Netscape/";
        if ((intI = strUA.indexOf(strBName)) >= 0) {
            this.isNS = true;
            this.version = parseFloat(strUA.substr(intI + strBName.length));
            return;
        }

        strBName = "Opera/";
        if ((intI = strUA.indexOf(strBName)) >= 0) {
            this.isOR = true;
            this.version = parseFloat(strUA.substr(intI + strBName.length));
            return;
        }
    },


    fnWindowResize: function(intWidth, intHeight) {
        var objBrowser = new General.objDetectBrowser();

        if (objBrowser.isIE) {
            if (objBrowser.version == 7)
                intHeight += 21;
        }
        else if (objBrowser.isFF) {
            intHeight += +30;
        }
        else if (objBrowser.isOR) {
            intHeight += +40;
        }

        window.resizeTo(intWidth, intHeight);
    },

    fnWindowAutoResize: function(objWinName) {
        var objWinBody = objWinName.document.body;
        var objBrowser = new General.objDetectBrowser();


        var intMarginHeight = objWinBody.scrollHeight + (objWinBody.offsetHeight - objWinBody.clientHeight);
        var intMarginWidth = objWinBody.scrollWidth + (objWinBody.offsetWidth - objWinBody.clientWidth);

        var intNewHeight = intMarginHeight;
        var intNewWidth = intMarginWidth;

        if (objBrowser.isIE) {

            intNewHeight = parseInt(objWinBody.topMargin) + parseInt(objWinBody.bottomMargin) + intNewHeight;
            intNewWidth = parseInt(objWinBody.leftMargin) + parseInt(objWinBody.rightMargin) + intNewWidth;


            if (objBrowser.version == 6) {
                intNewHeight = intNewHeight + 40;
                intNewWidth = intNewWidth - 4;
            }
            else if (objBrowser.version == 7) {
                intNewHeight = intNewHeight + 61;
                intNewWidth = intNewWidth - 4;
            }
        }
        if (objBrowser.isFF) {
            intNewHeight = intNewHeight + 40;
            intNewWidth = intNewWidth + 8;
        }
        if (objBrowser.isOR) {
            intNewHeight = intNewHeight + 50;
            intNewWidth = intNewWidth + 12;
        }


        objWinName.resizeTo(intNewWidth, intNewHeight);
    },

    fnCheckAbuse: function(strAbuses, strWord) {
        var arrAbuses, strTemp;

        arrAbuses = strAbuses.toLowerCase();
        arrAbuses = arrAbuses.split(";");

        strWord = strWord.toLowerCase();
        strTemp = ' ' + strWord;


        for (var i = 0; i < arrAbuses.length; i++) {
            if (strTemp.indexOf(arrAbuses[i]) > 0)
                return false;
        }
        return true;
    },

    fnCompareDate: function(dtmDate1, dtmDate2) {

        var dtmM1, dtmM2;

        dtmM1 = eval(dtmDate1.substring(0, dtmDate1.indexOf("/")));
        dtmM2 = eval(dtmDate2.substring(0, dtmDate2.indexOf("/")));

        if (dtmM1 > dtmM2) {
            return true; 	//dtmDate1 > dtmDate2 
        }
        else if (dtmM1 < dtmM2) {
            return false; //dtmDate1 < dtmDate2
        }
        else {
            var dtmD1, dtmD2;

            dtmD1 = eval(dtmDate1.substring(dtmDate1.indexOf("/") + 1));
            dtmD2 = eval(dtmDate2.substring(dtmDate2.indexOf("/") + 1));

            if (dtmD1 >= dtmD2) {
                return true; 	//dtmDate1 > dtmDate2
            }
            else {
                return false; //dtmDate1 < dtmDate2
            }
        }
    },


    fnFileDownload: function(file) {
        window.open(file, '', 'left=10000,top=10000,width=1,height=1');
    },


    RaiseEnterAction: function(btn) {

        if (event.keyCode == 13) {
            self.focus();
            document.all[btn].click();
            return false;
        }
        return true;
    },

    fnReturnKey: function(e) {
        if (e.keyCode == 13 && e.srcElement.type != 'textarea')
            return false;
    },


    fnGoList: function(PageName) {
        var frm = document.forms["frmMain"];
        frm.action = PageName;
        frm.submit();
    },


    fnGoPage: function(strPage, intNowPage, intSearchType, strSerarchWord, strParamString) {
        //alert(strSerarchWord);
        var strGo = "";
        var strGo = strPage + "?Page=" + intNowPage + "&SearchType=" + intSearchType + "&SearchKeyword=" + escape(strSerarchWord);
        if (strParamString.length > 0)
            strGo = strGo + strParamString;

        location.href = strGo;
    },

    fnSetCookie: function(name, value) {
        var todayDate = new Date();
        todayDate.setDate(todayDate.getDate() + 1);
        document.cookie = name + "=" + escape(value) + ";path=/;expires=" + todayDate.toGMTString() + "; domain=muonlne.co.kr;"
        alert(document.cookie.toString());
    },

    fnGetCookie: function(name) {
        var nameOfCookie = name + "=";
        var x = 0;
        while (x <= document.cookie.length) {
            var y = (x + nameOfCookie.length);
            if (document.cookie.substring(x, y) == nameOfCookie) {
                if ((endOfCookie = document.cookie.indexOf(";", y)) == -1)
                    endOfCookie = document.cookie.length;
                return unescape(document.cookie.substring(y, endOfCookie));
            }
            x = document.cookie.indexOf(" ", x) + 1;
            if (x == 0)
                break;
        }
        return "";
    },

    isNumDashValCheck: function(str) {

        var number = "0123456789-";

        var chars = number;

        for (var inx = 0; inx < str.length; inx++) {
            if (chars.indexOf(str.charAt(inx)) == -1) {
                return false;
            }
        }

        return true;
    },

    fnGetStrCookie: function(sName) {
        var aRec;
        var aCook = document.cookie.split("; ");

        for (var i = 0; i < aCook.length; i++) {
            aRec = aCook[i].split("=");
            if (sName.toLowerCase() == unescape(aRec[0].toLowerCase())) return General.fnGetRealContent(aRec);
        }

        return "";
    },

    fnGetRealContent: function(aRec) {

        if (aRec.length > 2) {
            var strContents = aRec[1];
            for (var i = 2; i < aRec.length; i++) {
                strContents = strContents + "=" + aRec[i];

            }
            return strContents;


        }
        return aRec[1];
    },

    blnCheckFieldLen: function(fldInput, intMaxLen, strMsg) {
        var blnCheck = false;

        var intContentLen = 0;

        for (var i = 0; i < fldInput.value.length; i++) {
            intContentLen += (fldInput.value.charCodeAt(i) > 128) ? 2 : 1;
        }

        if (intContentLen >= 0 && intContentLen <= intMaxLen) {
            blnCheck = true;
        }

        if (blnCheck == false) {
            alert(strMsg);
            fldInput.focus();
        }

        return blnCheck;
    },


    substringKor: function(str, lengths) {
        var len = 0;
        var newStr = '';

        for (var i = 0; i < str.length; i++) {
            var n = str.charCodeAt(i);
            var nv = str.charAt(i);
            if ((n >= 0) && (n < 256)) len++;
            else len += 2;
            if (len > lengths) break;
            else newStr = newStr + nv;
        }
        return newStr;
    },

    isRegularWordAlphabetHangulNumber: function(str) {

        if (str.search(/[^a-zA-Z0-9가-힝\s\.]/) != -1) {
            return false;
        }
        else
            return true;
    },

    WordLeftPad: function(str, fillChar, length) {
        if (fillChar.length == 0) {
            return "";
        }

        if (str.length > length)
            return str;

        var returnStr = "";
        var i;
        for (i = str.length; i < length; i++) {
            returnStr = returnStr + fillChar;
        }

        returnStr = returnStr + str;
        return returnStr;
    },

    WordRightPad: function(str, fillChar, length) {

        if (fillChar.length == 0) {
            return "";
        }

        if (str.length > length)
            return str;

        var returnStr = str;
        var i;
        for (i = str.length; i < length; i++) {
            returnStr = returnStr + fillChar;
        }

        return returnStr;
    },

    AgeCheck: function(strBirthDay) {

        var dtmToday = new Date();

        var intYear = dtmToday.getFullYear();
        var intMonth = General.WordLeftPad(dtmToday.getMonth() + 1, "0", 2);
        var intDay = General.WordLeftPad(dtmToday.getDate(), "0", 2);

        var intAge, chrAgeType;

        //연령 체크
        intAge = (dtmToday.getFullYear() - (parseInt(strBirthDay.substring(0, 2)) + 2000));

        if (intAge < 0) intAge += 100;

        if (intAge > 18 || (intAge == 18 && fnCompareDate(dtmToday.getMonth() + 1 + "/" + dtmToday.getDate(), strBirthDay.substring(2, 4) + "/" + strBirthDay.substring(4, 6)))) {
            chrAgeType = "A"                           //Adult : 18세 이상
        }
        else {
            if (intAge > 15 || (intAge == 15 && fnCompareDate(dtmToday.getMonth() + 1 + "/" + dtmToday.getDate(), strBirthDay.substring(2, 4) + "/" + strBirthDaysubstring(4, 6)))) {
                chrAgeType = "Y"                //Youth : 15세~18세
            }
            else if (intAge < 3 || (intAge == 3 && fnCompareDate(strBirthDay.substring(2, 4) + "/" + strBirthDay.substring(4, 6), dtmToday.getMonth() + 1 + "/" + dtmToday.getDate()))) {
                chrAgeType = "B"                //baby : 3세 미만
            }
            else {
                chrAgeType = "C"                //Children : 15세 미만
            }
        }
        return chrAgeType;
    },
    __doPostBack : function(eventTarget, eventArgument) {

        var theform = document.frmMain;
        theform.__EVENTTARGET.value = eventTarget;
        theform.__EVENTARGUMENT.value = eventArgument;
        theform.submit();             
    }


}
