/**
 * カゴ商品数量取得モジュール
 *
 * @param {Object} arg 設定値
 * @returns {Void}
 */
var getKagoNumModule = (function (arg) {
    
    /**
     * html要素にカゴ商品数量を設定する
     * 
     * @param {Object} kago カゴ情報
     * @returns {Void}
     */
    this.setNumHtml = function (kago) {
        
        var kagoNum   = 0;                // 商品数
        var cartBadge = $('#cart_badge');
        var errFlag   = 0;                // エラーフラグ(1=エラー)
        var errMsg    = [];
        
        // 商品数表示html要素が存在しない場合
        if (cartBadge.length === 0) {
            
            return;
        }
        do {
            // カゴ情報がオブジェクト型でない場合
            if (typeof(kago) !== 'object') {
                
                errMsg.push('型 ' + typeof(kago));
                errFlag = 1;
                break;
            }
            // 商品数プロパティを含んでいる場合
            if ('kagoNum' in kago) {
                
                kagoNum = Number(kago.kagoNum);
                
            } else {
                
                errMsg.push('kagoNum プロパティが存在しません');
                errFlag = 1;
                break;
            }
            
        } while (0);
        
        // エラーの場合
        if (errFlag) {
            
            console.error('カゴ商品数を設定できませんでした ' + "\n" + errMsg.join("\n"));
            return;
        }
        // html要素に商品数を設定
        cartBadge.html(kagoNum);
        
        if (kagoNum > 0) {
            
            cartBadge.removeClass('cart_empty');
            
        } else if (kagoNum === 0 && cartBadge.hasClass('cart_empty') === false) {

            cartBadge.addClass('cart_empty'); // 「0」を非表示とします
        }
    }
});
