// 모아컴즈 : 20230722 : 구매 가능 여부 체크
var McGoodsView = function(obj_name) { this.id = $(obj_name); };
McGoodsView.prototype = {
    options: {
        goods_seq : '',
        member_seq : '',
        order_limit_flag : 'n',
        order_limit_cnt : '0',
        ordered_cnt : '0',
        event_goods_flag : 'none',
        event_order_allow_flag : 'n',
        event_order_allow_day : '0',
        cart_cnt : '0',
    },
    init: function (argv) {
        var _this = this;

        // argv를 merge 함
        _this = argv_merge(_this, argv);
    },
    // 구매 가능 여부 체크
    check_allow_order : function()
    {
        var _this = this;

        // 구매 가능 수량 구매 가능 여부 체크
        if(_this.options.order_limit_flag == 'y') {
            if(!_this.options.member_seq) {
                ___reset_btn_status();
                openDialogConfirm('로그인 회원만 구매가 가능한 상품입니다.<br>로그인 페이지로 이동하시겠습니까?', 400, 155, function () {
                    location.href = '/member/login?return_url=/goods/view?no=' + _this.options.goods_seq;
                });
                return false;
            }
        }

        // 회원가입 이벤트 구매 가능 여부 체크
        if(_this.options.event_goods_flag == 'join') {
            if(!_this.options.member_seq) {
                ___reset_btn_status();
                openDialogConfirm('로그인 회원만 구매가 가능한 상품입니다.<br>로그인 페이지로 이동하시겠습니까?', 400, 155, function () {
                    location.href = '/member/login?return_url=/goods/view?no=' + _this.options.goods_seq;
                });
                return false;
            }

            // 회원가입 이벤트 구매 가능 여부 체크
            if(_this.options.event_order_allow_flag != 'y') {
                ___reset_btn_status();
                alert('회원가입일로부터 '+_this.options.event_order_allow_day+'일 이내만 구매 가능한 상품입니다.');
                return false;
            }
        }

        return true;
    },
    // 옵션 선택 체크
    check_option_click : function(selected_option_cnt)
    {
        var _this = this;

        // 구매 가능 수량 구매 가능 여부 체크
        if(_this.options.order_limit_flag == 'y') {
            if(selected_option_cnt > 0) {
                alert('해당 상품 구매시 옵션은 1종류만 선택 가능합니다.');
                return false;
            }
        }

        // 회원가입 이벤트 구매 가능 여부 체크
        if(_this.options.event_goods_flag == 'join') {
            if(selected_option_cnt > 0) {
                alert('해당 상품 구매시 옵션은 1종류만 선택 가능합니다.');
                return false;
            }
        }

        return true;
    },
    // 수량 변경 체크
    check_change_cnt : function(selected_count)
    {
        var _this = this;

        // 구메 가능 수량 체크
        if(_this.options.order_limit_flag == 'y') {
            if(_this.options.ordered_cnt > 0) {
                alert('이미 구매한 이력이 있습니다.(구매는 1회만 가능합니다)');
                return false;
            }

            if(selected_count >= _this.options.order_limit_cnt) {
                alert('최대 구매 가능 수량은 ' + _this.options.order_limit_cnt + '개 입니다.');
                return false;
            }
        }

        return true;
    }
}

// 모아컴즈 : 20230723 : 이중 클릭 방지 상태값 초기화
function ___reset_btn_status()
{
    try {
        isUpdatingCartItemOption = false;
    } catch(e) {};

    try {
        isUpdatingCartItemEa = false;
    } catch(e) {};
}

// 모아컴즈 : 20230722 : 구매 가능 여부 체크
function _check_allow_order_goods(goods_seq, member_seq, callback)
{
    $.ajax({
        type: "get",
        url: "/goods/get_order_goods_info",
        data: {'goods_seq': goods_seq},
        success: function (data) {
            var orderGoodsInfo = JSON.parse(data);

            var _this = new McGoodsView();
            _this.init(
                {
                    options:{
                        goods_seq : goods_seq,
                        member_seq : member_seq,
                        order_limit_flag : orderGoodsInfo.order_limit_flag,
                        order_limit_cnt : orderGoodsInfo.order_limit_cnt,
                        ordered_cnt : orderGoodsInfo.ordered_cnt,
                        event_goods_flag : orderGoodsInfo.event_goods_flag,
                        event_order_allow_flag : orderGoodsInfo.event_order_allow_flag,
                        event_order_allow_day : orderGoodsInfo.event_order_allow_day,
                        cart_cnt : orderGoodsInfo.cart_cnt
                    }
                }
            );

            // 구매 가능 여부 체크
            if(_this.check_allow_order()) {
                // 구매 가능 수량 체크
                if(_this.options.order_limit_flag == 'y' && _this.options.cart_cnt + 1 > _this.options.order_limit_cnt) {
                    openDialogAlert('장바구니에 이미 담긴 상품입니다.<br>해당 상품의 최대 구매 가능 수량은 ' + _this.options.order_limit_cnt + '개 입니다.', 400, 155);
                    return false;
                }

                callback();
            }
        }
    });
}

// 모아컴즈 : 20230722 : 구매 가능 상품 여부 체크(장바구니용)
function _check_allow_cart_goods(goods_seq, member_seq, count, sign, callback)
{
    if(sign == '-') callback();
    else {
        $.ajax({
            type: "get",
            url: "/goods/get_order_goods_info",
            data: {'goods_seq': goods_seq},
            success: function (data) {
                var orderGoodsInfo = JSON.parse(data);

                var _this = new McGoodsView();
                _this.init(
                    {
                        options:{
                            goods_seq : goods_seq,
                            member_seq : member_seq,
                            order_limit_flag : orderGoodsInfo.order_limit_flag,
                            order_limit_cnt : orderGoodsInfo.order_limit_cnt,
                            ordered_cnt : orderGoodsInfo.ordered_cnt,
                            event_goods_flag : orderGoodsInfo.event_goods_flag,
                            event_order_allow_flag : orderGoodsInfo.event_order_allow_flag,
                            event_order_allow_day : orderGoodsInfo.event_order_allow_day,
                            cart_cnt : orderGoodsInfo.cart_cnt
                        }
                    }
                );

                // 구매 가능 여부 체크
                if(_this.check_allow_order()) {
                    // 구매 가능 수량 체크
                    if(_this.options.order_limit_flag == 'y' && count > _this.options.order_limit_cnt) {
                        ___reset_btn_status();
                        openDialogAlert('해당 상품의 최대 구매 가능 수량은 ' + _this.options.order_limit_cnt + '개 입니다.', 400, 155);

                        // 해당 함수가 있는 경우만 호출 됨
                        try {
                            if(__failback_goods_cnt) {
                                __failback_goods_cnt(goods_seq, _this.options.order_limit_cnt);
                            }
                        } catch(e) {}
                        return false;
                    }
                    if(callback) callback();
                }
            }
        });
    }
}