﻿/////////////////////////////////////////////////////////////////
// Project     : 칼텍스 윤활류
// Program id  : common.js
// Description : JavaScript Util
// 작성자      : 손상모
// 수정        : 선정훈
// 소 속       : FID
// 일 자       : 2001.12.11 최초작성            
// 수정일      : 2011.08.22 수정
//////////////////////////////////////////////////////////////


//문자, 숫자
//================================================================================

//금액표시
function commaNum(pVal) {

    var num

    pVal = pVal + ""
    num = ReplaceStr(pVal, ',', '')
    if (num == '') return false

    var i3 = 0
    for (var j = 0; j < num.length; j++) {
        var ch1 = num.substring(j, j + 1);
        if (ch1 < '0' || ch1 > '9') { i3 = i3 + 1 }
    }

    if (i3 != 0) return false

    if (num < 0) { num *= -1; var minus = true }
    else var minus = false

    var dotPos = (num + "").split(".")
    var dotU = dotPos[0]
    var dotD = dotPos[1]
    var commaFlag = dotU.length % 3

    if (commaFlag) {
        var out = dotU.substring(0, commaFlag)
        if (dotU.length > 3) out += ","
    }
    else var out = ""

    for (var i = commaFlag; i < dotU.length; i += 3) {
        out += dotU.substring(i, i + 3)
        if (i < dotU.length - 3) out += ","
    }

    if (minus) out = "-" + out
    if (dotD) pVal = out + "." + dotD
    else pVal = out

    return pVal
}


//날자포맷으로변환
function toDate(pobj) {
    var vdate = pobj.value
    var vlen = vdate.length
    var vyy = ''
    var vmm = ''
    var vdd = ''

    vdate = CheckStr(vdate, '-', '')

    switch (vlen) {
        case 5:
        case 6:
            vyy = vdate.substr(0, 4)
            vmm = vdate.substr(4, 2)
            vdd = ''
            pobj.value = vyy + '-' + vmm
            break;

        case 8:
        case 9:
            vyy = vdate.substr(0, 4)
            vmm = vdate.substr(4, 2)
            vdd = vdate.substr(6, 2)
            pobj.value = vyy + '-' + vmm + '-' + vdd

            break;
    }

}



//Replace
function ReplaceStr(strOriginal, strFind, strChange) {
    var position, strOri_Length;

    position = strOriginal.indexOf(strFind);

    while (position != -1) {
        strOriginal = strOriginal.replace(strFind, strChange);
        position = strOriginal.indexOf(strFind);
    }

    //strOri_Length = strOriginal.length;

    return strOriginal;
}

//글자수
function ReplaceStrLen(strOriginal, strFind, strChange) {
    var position, strOri_Length;

    position = strOriginal.indexOf(strFind);

    while (position != -1) {
        strOriginal = strOriginal.replace(strFind, strChange);
        position = strOriginal.indexOf(strFind);
    }

    strOri_Length = strOriginal.length;

    return strOri_Length;
}

//================================================================================




// Check
//================================================================================


/*-----------------------------------------------------------
Sub ID			: isMobil
Description	: 핸드폰번호 Check
Param			: pVal	- 핸드폰번호
Return			: true or false
-------------------------------------------------------------*/
function isMobile(obj1, obj2, obj3) {

    if (!isEmpty(obj1)) {
        alert('핸드폰 번호를 입력하세요.  ')
        obj1.focus()
        return false
    }

    if (obj1.value != '010' && obj1.value != '011' && obj1.value != '016' && obj1.value != '017' && obj1.value != '018' && obj1.value != '019') {
        alert('핸드폰 번호 앞자리를 확인하세요.  ')
        obj1.focus()
        return false
    }


    if (!isEmpty(obj2)) {
        alert('핸드폰 번호를 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (obj2.value.length < 3) {
        alert('핸드폰 번호를 정확하게 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (isNaN(obj2.value)) {
        alert('핸드폰 번호를 숫자로 입력하세요.  ')
        obj2.focus()
        return false
    }


    if (!isEmpty(obj3)) {
        alert('핸드폰 번호를 입력하세요.  ')
        obj3.focus()
        return false
    }
    if (obj3.value.length < 4) {
        alert('핸드폰 번호를 정확하게 입력하세요.  ')
        obj3.focus()
        return false
    }
    if (isNaN(obj3.value)) {
        alert('핸드폰 번호를 숫자로 입력하세요.  ')
        obj3.focus()
        return false
    }

    var str = obj1.value + obj2.value + obj3.value

    if (str.length < 10 || str.length > 11) {
        alert('핸드폰 번호를 정확하게 입력하세요.  ')
        obj1.focus()
        return false
    }

    return true

}



/*-----------------------------------------------------------
Sub ID			: isPhone
Description	: 전화번호 Check
Param			: obj1, obj2, obj3	- 전화번호
Return			: true or false
-------------------------------------------------------------*/
function isPhone(obj1, obj2, obj3) {

    if (!isEmpty(obj1)) {
        alert('전화번호를 입력하세요.  ')
        obj1.focus()
        return false
    }
    if (obj1.value.length < 2) {
        alert('전화번호를 정확하게 입력하세요.  ')
        obj1.focus()
        return false
    }
    if (isNaN(obj1.value)) {
        alert('전화번호 숫자로 입력하세요.  ')
        obj1.focus()
        return false
    }


    if (!isEmpty(obj2)) {
        alert('전화번호를 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (obj2.value.length < 3) {
        alert('전화번호를 정확하게 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (isNaN(obj2.value)) {
        alert('전화번호를 숫자로 입력하세요.  ')
        obj2.focus()
        return false
    }

    if (!isEmpty(obj3)) {
        alert('전화번호를 입력하세요.  ')
        obj3.focus()
        return false
    }
    if (obj3.value.length < 4) {
        alert('전화번호를 정확하게 입력하세요.  ')
        obj3.focus()
        return false
    }
    if (isNaN(obj3.value)) {
        alert('전화번호를 숫자로 입력하세요.  ')
        obj3.focus()
        return false
    }

    var str = obj1.value + obj2.value + obj3.value

    if (str.length < 9 || str.length > 11) {
        alert('전화번호를 정확하게 입력하세요.  ')
        obj1.focus()
        return false
    }

    return true

}



/*-----------------------------------------------------------
Sub ID			: isSaupNo
Description	: 사업자번호 Check
Param			: obj1, obj2, obj3	- 사업자번호
Return			: true or false
-------------------------------------------------------------*/
function isSaupNo(obj1, obj2, obj3) {

    if (!isEmpty(obj1)) {
        alert('사업자번호를 입력하세요.  ')
        obj1.focus()
        return false
    }
    if (obj1.value.length < 3) {
        alert('사업자번호를 정확하게 입력하세요.  ')
        obj1.focus()
        return false
    }
    if (isNaN(obj1.value)) {
        alert('사업자번호를 숫자로 입력하세요.  ')
        obj1.focus()
        return false
    }


    if (!isEmpty(obj2)) {
        alert('사업자번호를 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (obj2.value.length < 2) {
        alert('사업자번호를 정확하게 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (isNaN(obj2.value)) {
        alert('사업자번호를 숫자로 입력하세요.  ')
        obj2.focus()
        return false
    }

    if (!isEmpty(obj3)) {
        alert('사업자번호를 입력하세요.  ')
        obj3.focus()
        return false
    }
    if (obj3.value.length < 5) {
        alert('사업자번호를 정확하게 입력하세요.  ')
        obj3.focus()
        return false
    }
    if (isNaN(obj3.value)) {
        alert('사업자번호를 숫자로 입력하세요.  ')
        obj3.focus()
        return false
    }

    var str = obj1.value + obj2.value + obj3.value

    if (str.length < 10 || str.length > 10) {
        alert('사업자번호를 정확하게 입력하세요.  ')
        obj1.focus()
        return false
    }

    return true

}



/*-----------------------------------------------------------
Sub ID			: isJuminNo
Description	: 주민등록번호 Check
Param			: obj1, obj2	- 주민등록번호
Return			: true or false
-------------------------------------------------------------*/
function isJuminNo(obj1, obj2) {

    if (!isEmpty(obj1)) {
        alert('주민등록번호를 입력하세요.  ')
        obj1.focus()
        return false
    }
    if (obj1.value.length < 6) {
        alert('주민등록번호를 정확하게 입력하세요.  ')
        obj1.focus()
        return false
    }
    if (isNaN(obj1.value)) {
        alert('주민등록번호를 숫자로 입력하세요.  ')
        obj1.focus()
        return false
    }


    if (!isEmpty(obj2)) {
        alert('주민등록번호를 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (obj2.value.length < 7) {
        alert('주민등록번호를 정확하게 입력하세요.  ')
        obj2.focus()
        return false
    }
    if (isNaN(obj2.value)) {
        alert('주민등록번호를 숫자로 입력하세요.  ')
        obj2.focus()
        return false
    }


    // 주민 등록번호의 유효성 체크
    if (!isValidSSN(obj1, obj2)) {
        alert("주민 번호가 유효하지 않습니다. 올바르게 입력해 주세요.");
        obj1.value = "";
        obj2.value = "";
        obj1.focus();
        return false;
    }

    return true

}



/*-----------------------------------------------------------
Sub ID		: isMemid
Description	: 아이디 Format Check
Param		: str	- 아이디
Return		: true or false
-------------------------------------------------------------*/
function isMemid(obj1) {


    if (!isEmpty(obj1)) {
        alert('고객 아이디를 입력해 주세요.  ')
        obj1.focus()
        return false
    }

    if (obj1.value.length < 4 || obj1.value.length > 8) {
        alert('아이디는 4자 이상 8자 이하 가능합니다.  ')
        obj1.focus()
        return false;
    }

    if (!isAlpabatNum2(obj1)) {
        errMsg("아이디를 영문, 영문+숫자로 입력해 주세요.", obj1);
        return false;
    }

    if (!isNaN(obj1.value)) {
        alert('아이디는 영문, 영문+숫자로 입력하세요.   ')
        obj1.focus()
        return false
    }

    return true

}



function DigitCheck(fm) {
    var residentValue = "0123456789-";
    var string = fm.value;
    var len = string.length;
    for (i = 0; i < len; i++) {
        if (residentValue.indexOf(string.substring(i, i + 1)) < 0) {
            alert("허용된 문자가 아닙니다. 다시 입력해 주십시오");
            fm.value = "";
            fm.focus();
            return;
        }
    }
}



function CheckNum(obj) {

    if (isNaN(obj.value)) {
        alert('숫자로 입력하세요.  ')
        obj.value = ''
        obj.focus()
        return false
    }
}


//--------------------------------------------------------------------------------
// Sub ID		: isEmail
// Description	: Email Format Check
// Param		: str	- Email Address
// Return		: true or false
//--------------------------------------------------------------------------------
function isEmail(str) {
    // regular expression 지원 여부 점검

    var supported = 0;
    if (window.RegExp) {
        var tempStr = "a";
        var tempReg = new RegExp(tempStr);
        if (tempReg.test(tempStr)) supported = 1;
    }
    if (!supported)
        return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
    return (!r1.test(str) && r2.test(str));
}

//
// Sub ID		: isnum
// Description	: Number Format Check
// Param		: Num	- number
// Return		: true or false
//
function isnum(NUM) {
    for (var i = 0; i < NUM.length; i++) {
        achar = NUM.substring(i, i + 1);
        if (achar < "0" || achar > "9") {
            return (false);
        }
    }
    return true;
}

//
// Sub ID		: isCheck
// Description	: Check Box Check 유무
// Param		: obj	- checkbox object
// Return		: true or false
//
function isCheck(obj) {
    if (obj.length > 1) {
        for (i = 0; i < obj.length; i++) if (obj[i].checked) return true;
    } else {
        return obj.checked;
    }
    return false;
}

/////////////////////////////////////////////////////////////////
// Project     : LG CALTEX 윤활유시스템 SITE
// Program id  : jslib.js
// Description : JavaScript Util 
// 작성자      : 이종국
// 소 속       : 엘지이디에스
// 일 자       : 2001.12.17 최초작성            
//             : 
//////////////////////////////////////////////////////////////

/*
' Sub ID		: isEmpty
' Description	: 빈 값을 체크
' @Param		: obj - 체크하려는 폼태그의 오브젝트 값
' Return		: true or false
**/
function isEmpty(obj) {

    if (ReplaceStr(obj.value, ' ', '') != "") return true
    else return false
}

/*
' Sub ID		: isNum
' Description	: 숫자 형식인지 아닌지 체크
' @Param		: obj - 체크하려는 폼태그의 오브젝트 값
' Return		: true or false
**/
function isNum(obj) {

    if (!isNaN(obj.value)) return true
    else return false
}

/*
' Sub ID		: errMsg
' Description	: 에러 메시지를 출력하고 값을 초기화
' @Param		: msg - 해당되는 에러 메시지
' @Param		: obj - 체크하려는 폼태그의 오브젝트 값
' Return		: true or false
**/



function errMsg(msg, obj) {

    alert(msg);
    obj.value = "";
    obj.focus();
}

/*
' Sub ID		: isValidSSN
' Description	: 주민 등록 번호의 유효성 체크
' @Param		: ssn1 - 주민 등록 번호의 앞자리
' @Param		: ssn2 - 주민 등록 번호의 뒷자리
' Return		: true or false
**/
function isValidSSN(ssn1, ssn2) {
    jumin = ssn1.value + ssn2.value;

    //입력한 주민번호가 13자리가 아닌경우 false리턴
    if (jumin.length != 13) return false;

    var jumin, no, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13;
    c1 = jumin.substring(0, 1);
    c2 = jumin.substring(1, 2);
    c3 = jumin.substring(2, 3);
    c4 = jumin.substring(3, 4);
    c5 = jumin.substring(4, 5);
    c6 = jumin.substring(5, 6);
    c7 = jumin.substring(6, 7);
    c8 = jumin.substring(7, 8);
    c9 = jumin.substring(8, 9);
    c10 = jumin.substring(9, 10);
    c11 = jumin.substring(10, 11);
    c12 = jumin.substring(11, 12);
    c13 = jumin.substring(12, 13);

    c1 = c1 * 2;
    c2 = c2 * 3;
    c3 = c3 * 4;
    c4 = c4 * 5;
    c5 = c5 * 6;
    c6 = c6 * 7;
    c7 = c7 * 8;
    c8 = c8 * 9;
    c9 = c9 * 2;
    c10 = c10 * 3;
    c11 = c11 * 4;
    c12 = c12 * 5;

    no = c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9 + c10 + c11 + c12;
    no = (no % 11);
    no = 11 - no;

    if (no > 9) no = (no % 10);

    //유효한 주민번호가 아닐경우 false리턴
    if (no != c13 || (c7 > 2 && c7 < 1)) return false;

    return true;
}




/*----------------------------------------------------
' Sub ID		: isKorean
' Description	: 한글체크함수
' @Param		: koreanChar - 개체
' Return		: true / false 
------------------------------------------------------*/
function isKorean(koreanChar) {

    if (koreanChar.value == null) return false;

    for (var i = 0; i < koreanChar.value.length; i++) {

        var c = koreanChar.value.charCodeAt(i);

        //( 0xAC00 <= c && c <= 0xD7A3 ) 초중종성이 모인 한글자 

        //( 0x3131 <= c && c <= 0x318E ) 자음 모음 

        if (!((0xAC00 <= c && c <= 0xD7A3) || (0x3131 <= c && c <= 0x318E))) {

            return false;

        }
    }
    return true;
}






/*
' Sub ID		: isValidSSN
' Description	: 해당 오브젝트를 보여준다.(기타 주소 직접 입력 부분)
' @Param		: obj - 감추고 싶은 오브젝트 명
' Return		: true or false
**/
function showThis(obj) {
    obj.style.display = '';
}

/*
' Sub ID		: isValidSSN
' Description	: 해당 오브젝트를 감춘다.(나머지 주소 직접 입력	부분)
' @Param		: obj - 보여주고 싶은 오브젝트 명
' Return		: true or false
**/
function hideThis(obj) {
    obj.style.display = 'none';
}


/*-----------------------------------------------------------------------------
' Sub ID		: isAlpabatNum
' Description	: 알파벳, 숫자 혼용 확인
' @Param		: obj - 체크하고 싶은 문자열
' Return		: true or false
-------------------------------------------------------------------------------*/
function isAlpabatNum(obj) {

    var str1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    var str2 = obj.value;

    var icnt1 = 0
    var icnt2 = 0

    for (ki = 0; ki < str2.length; ki++) {
        sstr = str2.charAt(ki);

        //영문자외 체크
        if (str1.indexOf(sstr) >= 0) icnt1 = icnt1 + 1
    }


    var str1 = "0123456789"

    for (ki = 0; ki < str2.length; ki++) {
        sstr = str2.charAt(ki);

        //영문자외 체크
        if (str1.indexOf(sstr) >= 0) icnt2 = icnt2 + 1
    }

    if (icnt1 == 0) return false
    if (icnt2 == 0) return false

    return true;
}


/*-----------------------------------------------------------------------------
' Sub ID		: isAlpabatNum
' Description	: 알파벳 또는 숫자 확인
' @Param		: obj - 체크하고 싶은 문자열
' Return		: true or false
-------------------------------------------------------------------------------*/
function isAlpabatNum2(obj) {


    var str1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    var str2 = obj.value;

    var icnt1 = 0

    for (ki = 0; ki < str2.length; ki++) {
        sstr = str2.charAt(ki);

        //영문자외 체크
        if (str1.indexOf(sstr) < 0) icnt1 = icnt1 + 1
    }

    if (icnt1 > 0) return false

    return true;
}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)|($\s*)/g, "");
}

String.prototype.isid = function() {
    if (this.search(/[^A-Za-z0-9_-]/) == -1)
        return true;
    else
        return false;
}

String.prototype.iscode = function() {
    if (this.search(/[^A-Za-z0-9]/) == -1)
        return true;
    else
        return false;
}

String.prototype.isalpha = function() {
    if (this.search(/[^A-Za-z]/) == -1)
        return true;
    else
        return false;
}

String.prototype.isnumber = function() {
    if (this.search(/[^0-9]/) == -1)
        return true;
    else
        return false;
}

String.prototype.isemail = function() {
    var flag, md, pd, i;
    var str;

    if ((md = this.indexOf("@")) < 0)
        return false;
    else if (md == 0)
        return false;
    else if (this.substring(0, md).search(/[^.A-Za-z0-9_-]/) != -1)
        return false;
    else if ((pd = this.indexOf(".")) < 0)
        return false;
    else if ((pd + 1) == this.length || (pd - 1) == md)
        return false;
    else if (this.substring(md + 1, this.length).search(/[^.A-Za-z0-9_-]/) != -1)
        return false;
    else
        return true;
}

String.prototype.korlen = function() {
    var temp;
    var set = 0;
    var mycount = 0;

    for (k = 0; k < this.length; k++) {
        temp = this.charAt(k);

        if (escape(temp).length > 4) {
            mycount += 2;
        }
        else mycount++;
    }

    return mycount;
}

function openWindow(theURL, winName, features, myWidth, myHeight, isCenter) { //v3.0
    var popWindow = 'top';
    if (window.screen) if (isCenter) if (isCenter == "true") {
        var myLeft = (screen.width - myWidth) / 2;
        var myTop = (screen.height - myHeight) / 2;
        features += (features != '') ? ',' : '';
        features += ',left=' + myLeft + ',top=' + myTop;
    }
    if (popWindow == 'top' || popWindow.closed) {
        popWindow = window.open(theURL, winName, features + ((features != '') ? ',' : '') + 'width=' + myWidth + ',height=' + myHeight);
    }
    popWindow.focus();
    return false;
}


function stripHTMLtag(str) {
    var patt1 = /[<][a-zA-Z][^>]*[>]/gi;
    var patt2 = /[<\/][a-zA-Z][^>]*[>]/gi;
    var result1 = patt1.test(str)
    var result2 = patt2.test(str)

    var result = false;
    if (result1 || result2)
        result = true;

    return result;
}

function getCookie(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 "";
}

function setCookie(name, value, expiredays) {
    var todayDate = new Date();
    todayDate.setDate(todayDate.getDate() + expiredays);
    document.cookie = name + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}
