//==========================================================================================================
//기능설명			: Util 2번째
//==========================================================================================================
var UtilTwo = {};


//===========================================================================
//함수명				: 사전등록 영수증
//INPUT 			: node
//OUTPUT			: 영수증띄우기
//---------------------------------------------------------------------------
UtilTwo.popBillInput = function(parm){
    var o = $.extend({
        seq      : seq,
        width    : width,
        height   : height,
        top      : top,
        left     : left,
        scroll   : scroll
    },parm || {});

    var seq         = o.seq;
    var width       = o.width;
    var height      = o.height;
    var top         = o.top;
    var left        = o.left;
    var scroll      = o.scroll;

    if(width == null || Number(width) < 50)     width   = 900;
    if(height == null || Number(height) < 50)   height  = 800;
    if(top == null || Number(top) < 50)         top     = 800;
    if(left == null || Number(left) < 50)       left    = 800;
    if(scroll == null || scroll == "")          scroll  = "";

    var url         = "/popup/?pmode=aregister&smode=inputBillUbi&seq="+seq+'&kind=receipt';
        width       = width+"px";
        height      = height+"px";
        top         = top+"px";
        left        = left+"px";

    window.open(url, "Receipt",'status=no,toolbar=no,resizable=1,location=no,menu=no,width='+width+',height='+height+', scrollbars='+scroll+',left=' + left + ',top=' + top);

};
/*=========================================================================================================
 ex]
 UtilTwo.popBillInput({
    seq         : seq
 });
 rs]
 "사전등록영수증"
 =========================================================================================================*/


//===========================================================================
//함수명				: 결제로그 영수증
//INPUT 			: node
//OUTPUT			: 영수증띄우기
//---------------------------------------------------------------------------
UtilTwo.popBillPaylog = function(parm){
    var o = $.extend({
        seq         : seq,
        payMethod   : payMethod,
        payIdx      : payIdx
    },parm || {});

    var winpop      = window.open('about:blank', "", "toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0,width=740,height=900");
    var url         = "?pmode=paylog&smode=ajax&fn=";

    var seq         = o.seq;
    var payMethod   = o.payMethod;
    var payIdx      = o.payIdx;

    $.ajax({
        type :"POST",
        url  : url+"Receipt",
        data : {
            'seq'       : seq,
            'payMethod' : payMethod,
            'payIdx'    : payIdx
        },
        success:function(data){
            winpop.location.href = data;
        },
        error:function(e){
            alert('에러');
        }
    });
};
/*=========================================================================================================
 ex]
 UtilTwo.popBillPaylog({
     seq         : seq,
     payMethod   : payMethod,
     payIdx      : payIdx
 });
 rs]
 "결제로그영수증"
 =========================================================================================================*/


//===========================================================================
//함수명				: 천단위콤마
//INPUT 			: 숫자
//OUTPUT			: 천단위콤마
//---------------------------------------------------------------------------
UtilTwo.numberFormat = function(val){
    if(val != "" && val != null){
        val     = String(val);
        val     = val.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, "$1,");
    }

    return val;
};
/*=========================================================================================================
 ex]
 UtilTwo.numberformat(10000);
 rs]
 "10,000"
 =========================================================================================================*/


//===========================================================================
//함수명				: 등록기간체크(여러 날짜구간)
//INPUT 			: 
//OUTPUT			: 등록기간체크
//---------------------------------------------------------------------------
UtilTwo.checkPeriodDates = function(parm){
    var o = $.extend({
        areaBox     : $("[name='addbox']"),
        sdateAttr   : "data-immer='sdate'",
        edateAttr   : "data-immer='edate'",
        alertYn     : false
    },parm || {});

    var areaBox             = o.areaBox;
    var sdateAttr           = o.sdateAttr;
    var edateAttr           = o.edateAttr;
    var alertYn             = o.alertYn;

    var addbox              = areaBox;
    var res                 = "SUCCESS";
    var arrSdate            = new Array();
    var arrEdate            = new Array();
    var arrSdateReal        = new Array();
    var arrEdateReal        = new Array();
    var cnt                 = 0;
    var pattern             = /[0-9]{4}-[0-9]{2}-[0-9]{2}/;

    addbox.each(function(){
        var box             = $(this);

        if(box.hasClass("hide") ==  false){
            var sdateNode   = $(this).find("["+sdateAttr+"]");
            var edateNode   = $(this).find("["+edateAttr+"]");
            var sdate       = sdateNode.val();
            var edate       = edateNode.val();

            arrSdateReal[cnt]   = sdate;
            arrEdateReal[cnt]   = edate;

            if(sdate != "" && sdate != null){
                sdate       = sdate.replaceAll("-","");
            }
            if(edate != "" && edate != null){
                edate       = edate.replaceAll("-","");
            }

            arrSdate[cnt]       = sdate;
            arrEdate[cnt]       = edate;

            cnt++;
        }
    });

    var tmpCnt              = 1;
    for(var y=0; y<cnt; y++){
        if(y > 0){
            for(var x=0; x<tmpCnt; x++){
                if(y != x){
                    var sdate           = arrSdate[x];
                    var edate           = arrEdate[x];
                    var curSdate        = arrSdate[y];
                    var curEdate        = arrEdate[y];

                    var sdateReal       = arrSdateReal[x];
                    var edateReal       = arrEdateReal[x];
                    var curSdateReal    = arrSdateReal[y];
                    var curEdateReal    = arrEdateReal[y];


                    //시작일 포함여부
                    if(sdate != "" && curSdate != "" && edate != ""){
                        if(sdate <= curSdate && curSdate <= edate){
                            res     = "ERROR1";
                        }
                    }
                    //종료일 포함여부
                    if(sdate != "" && curEdate != "" && edate != "") {
                        if (sdate <= curEdate && curEdate <= edate) {
                            res     = "ERROR1";
                        }
                    }
                    //시작일.종료일 (안으로)포함여부
                    if(curEdate != "" && sdate != "" && edate != "" && curEdate != "") {
                        if (curSdate <= sdate && edate <= curEdate) {
                            res     = "ERROR1";
                        }
                    }
                    //시작일.종료일 (밖으로)포함여부
                    if(curEdate != "" && sdate != "" && edate != "" && curEdate != "") {
                        if (curSdate >= sdate && edate >= curEdate) {
                            res     = "ERROR1";
                        }
                    }

                    //시작일이 큰 날짜
                    if(sdate != "" && edate != ""){
                        if(sdate > edate){
                            res     = "ERROR2";
                        }
                    }
                    if(curSdate != "" && curEdate != ""){
                        if(curSdate > curEdate){
                            res     = "ERROR2";
                        }
                    }

                    //날짜형식
                    if(sdateReal != "" && !pattern.test(sdateReal)){
                        res         = "ERROR4";
                    }
                    if(edateReal != "" && !pattern.test(edateReal)){
                        res         = "ERROR4";
                    }
                    if(curSdateReal != "" && !pattern.test(curSdateReal)){
                        res         = "ERROR4";
                    }
                    if(curEdateReal != "" && !pattern.test(curEdateReal)){
                        res         = "ERROR4";
                    }
                }
            }
        }else{
            var curSdate        = arrSdate[0];
            var curEdate        = arrEdate[0];
            var curSdateReal    = arrSdateReal[0];
            var curEdateReal    = arrEdateReal[0];

            //시작일이 큰 날짜
            if(curSdate != "" && curEdate != ""){
                if(curSdate > curEdate){
                    res     = "ERROR2";
                }
            }
            //날짜형식
            if(curSdateReal != "" && !pattern.test(curSdateReal)){
                res         = "ERROR4";
            }
            if(curEdateReal != "" && !pattern.test(curEdateReal)){
                res         = "ERROR4";
            }
        }

        tmpCnt++;
    }

    if(alertYn == true){
        if(res == "ERROR1"){
            alert("다른기간과 중복됩니다. 확인해주세요");
            return false;
        }
        if(res == "ERROR2"){
            alert("시작날짜가 종료날짜보다 큰 값이 있습니다. 확인해주세요");
            return false;
        }
        if(res == "ERROR4"){
            alert("날짜형식이 잘못되었습니다.(YYYY-MM-DD)형식으로 입력해주세요");
            return false;
        }
    }

    return res;
};
/*=========================================================================================================
 ex]
 UtilTwo.checkPeriodDates();
 rs]
 "SUCCESS or ERROR~"
 =========================================================================================================*/

//===========================================================================
//함수명				: 파일허용 확장자 체크
//INPUT 			:
//OUTPUT			: True / False
//---------------------------------------------------------------------------
UtilTwo.allowFileExt = function(parm){
    var o = $.extend({
        fileNode     : $("[name='file']"),
        allowExt     : ['gif','png','jpg','jpeg']
    },parm || {});

    if(o.fileNode.length > 0){
        if(o.fileNode.val() != ""){
            var ext     = o.fileNode.val().split('.').pop().toLowerCase();
            var chkExts = "";

            if(o.allowExt.length > 0){
                for(var i=0 ;i < o.allowExt.length; i++){
                    if(chkExts != "") chkExts += ", ";
                    chkExts += o.allowExt[i];
                }
            }

            if($.inArray(ext, o.allowExt) == -1) {
                alert('[' + chkExts + '] 파일만 업로드 할수 있습니다.');
                return false;
            }
        }
    }

    return true;
};
/*=========================================================================================================
 ex]
 UtilTwo.allowFileExt({
     fileNode     : $("[name='file']"),
     allowExt     : ['gif','png','jpg','jpeg']
 });

 rs]
  true / false
 =========================================================================================================*/

//===========================================================================
//함수명				: 파일허용 용량 체크
//INPUT 			:
//OUTPUT			: True / 경고창 + False
//---------------------------------------------------------------------------
UtilTwo.allowFileSize = function(parm){
    var o = $.extend({
        node		: $("[name='file']"),   //파일노드
        size        : 20                    //MByte
    },parm || {});

    var node            = o.node;
    var size            = o.size;
    var sizeM           = 1024 * 1024;

    if(node != null && node != ""){
        if(node.length > 0){
            if(size == "" || size == null) size = 20;
            sizeM               = size * sizeM;

            node.on('change', function(){
                var file        = this.files;

                if(file != null){
                    if(file[0].size > sizeM){
                        alert(size + 'MB 이하 파일만 등록할 수 있습니다. (' + '현재용량 : ' + (Math.round(file[0].size / 1024 / 1024 * 100) / 100) + 'MB)');
                        $(this).val("");
                    }
                }
            });
        }
    }
};
/*=========================================================================================================
 ex]
 UtilTwo.allowFileSize({
     node       : $("[name='file']"),
     size       : 50
 });

 rs]
 True / 경고창 + False
 =========================================================================================================*/


//===========================================================================
//함수명				: 엔터막기
//INPUT 			:
//OUTPUT			:
//---------------------------------------------------------------------------
UtilTwo.offEnter = function(e){
    if(typeof(e) != "undefined"){   //FF
        if(e.which == 13){
            return false;
        }
    }else{
        if(e.keyCode == 13){		//IE
            return false;
        }
    }
};
/*=========================================================================================================
 ex]
 $("#schVal").keyup(UtilTwo.offEnter);

 =========================================================================================================*/
