﻿function ArrangeGoods(gds) {
    if (typeof (brandsdata) == "undefined") {
        alert("无效的brandsdata");
        return false;
    }

    var brands = brandsdata;
    var brandsorts = brandsortsdata;
    brandsorts.sort(web960.utils.tools.sort('asc', 'sort'));

    for (var i = 0; i < gds.length; i++) {
        gds[i]["sort_purity"] = i;
        gds[i]["sort_brand"] = i;
        gds[i]["sort_standard"] = i;
        var ExtendAttrs = {};
        if (gds[i].ExtendAttrs != null) {
            var ExtendAttrsList = gds[i].ExtendAttrs;
            $.each(gds[i].ExtendAttrs, function () {
                if (this.Field != "purity" && this.Field != "brand" && this.Field != "packaging") {
                    ExtendAttrs[this.Field] = {
                        title: this.SrcTitle,
                        value: this.Keyword
                    }
                }
            });
        }
        gds[i]["extendattrs"] = ExtendAttrs;
        var purity = $.trim(web960.utils.tools.getvalfromjson(gds[i].Goods_info, "{goodsinfo.purity}"));
        var brand = $.trim(web960.utils.tools.getvalfromjson(gds[i].Goods_info, "{goodsinfo.brand}"));

        var packaging = $.trim(web960.utils.tools.getvalfromjson(gds[i].Goods_info, "{goodsinfo.packaging}"));
        var msd = $.trim(packaging.toLowerCase());
        var xmsd = "";
        var intpackaging = 0;
        if (msd.indexOf("ml") != -1) {
            xmsd = msd.replace("ml", "");
            intpackaging = 1;

        }
        else if (msd.indexOf("μl") != -1) {
            xmsd = msd.replace("μl", "");
            intpackaging = 0.001;
        }
        else if (msd.indexOf("ul") != -1) {
            xmsd = msd.replace("ul", "");
            intpackaging = 0.001;
        }
        else if (msd.indexOf("l") != -1) {
            xmsd = msd.replace("l", "");
            intpackaging = 1000;
        }

        else if (msd.indexOf("kg") != -1) {
            xmsd = msd.replace("kg", "");
            intpackaging = 1000;
        }
        else if (msd.indexOf("mg") != -1) {
            xmsd = msd.replace("mg", "");
            intpackaging = 0.001;
        }
        else if (msd.indexOf("ug") != -1) {
            xmsd = msd.replace("ug", "");
            intpackaging = 0.000001;
        }
        else if (msd.indexOf("μg") != -1) {
            xmsd = msd.replace("μg", "");
            intpackaging = 0.000001;
        }
        else if (msd.indexOf("g") != -1) {
            xmsd = msd.replace("g", "");
            intpackaging = 1;
        }
        var resultsortpack = 0;
        try {
            resultsortpack = parseFloat(xmsd) * intpackaging;
        }
        catch (e) { }

        if (isNaN(resultsortpack)) {
            resultsortpack = 0;
        }

        var bsd = $.grep(brandsortsdata, function (v) {
            return v.title == brand;
        })

        if (brands[brand] != undefined) {
            gds[i]["brandsort"] = brands[brand];
        }
        else {
            gds[i]["brandsort"] = 1000;
        }

        gds[i]["brand"] = brand;

        if (bsd.length > 0) {
            if (bsd[0]["brandtype"] != null) {
                gds[i]["brandtype"] = parseInt(bsd[0]["brandtype"]);
            }
            else {
                gds[i]["brandtype"] = 0;
            }
        }
        else {
            gds[i]["brandtype"] = 0;
        }

        gds[i]["purity"] = purity;

        gds[i]["packaging"] = resultsortpack;
        gds[i]["intpackaging"] = intpackaging;
        var suminventory = 0;
        if (gds[i]["Inventores"] != null) {
            for (var ni = 0; ni < gds[i]["Inventores"].length; ni++) {
                suminventory += gds[i]["Inventores"][ni].Amount;
            }
        }
        gds[i]["suminventory"] = suminventory;
        if (gds[i].Sort != "" || gds[i].Sort != "0") {
            var sort = eval('(' + gds[i].Sort + ');');
            if (sort.sort_purity != undefined) {
                gds[i]["sort_purity"] = sort.sort_purity;
            }
            if (sort.sort_brand != undefined) {
                gds[i]["sort_brand"] = sort.sort_brand;
            }
            if (sort.sort_standard != undefined) {
                gds[i]["sort_standard"] = sort.sort_standard;
            }
        }
    }

    gds.sort(web960.utils.tools.sort('asc', 'brandsort'));


    var cdarr = [];
    var fangds = [];

    for (var i = 0; i < gds.length; i++) {
        var cdstr = gds[i].purity + "|" + gds[i].brand;
        var dataar = [];

        var idx = jQuery.inArray(cdstr, cdarr);
        if (idx == -1) {
            var item = {};
            item["title"] = cdstr;
            item["purity"] = gds[i].purity;
            item["packaging"] = gds[i].packaging;
            item["intpackaging"] = gds[i].intpackaging;
            item["brand"] = gds[i].brand;
            item["brandtype"] = gds[i].brandtype;
            item["pd_id"] = gds[i].Pd_id;
            item["items"] = [];
            item.items.push(gds[i]);
            fangds.push(item);
            cdarr.push(cdstr);
        }
        else {
            fangds[idx].items.push(gds[i]);
        }
    }
    return fangds;
}
var GoodsConfig = {
    whennogoods: function () {
        return "";
    },
    callback: function () {
        if (this.nowviewmode == "newlist") {
            //如果有默认显示的规格需要显示
            //否则选择最小价格

            this.initProductItemClick("#progoodslist");
            this.initProductItemClick("#kj-buy-select-content");
            this.displaygoodsinfo("#progoodslist", {
                ableaddactive: true
            });

        }

        $(".kj-product-prep-item").each(function () {
            $(this).parents(".kj-product-item").addClass("kj-product-item-viewbyprepent");
        });
    },

    inventoryitemhtml_productlist: function (goodss, pd_id) {

        var html = '';
        if ($("#viewbyintegralproduct").length == 0) {
            goodss = ArrangeGoods(goodss);//整理goods

            //产品

            var stdcode = $("input[name='productstandardcatalog'][productid='" + pd_id + "']").val();
            var issebei = false;
            if (stdcode.length > 0 && stdcode.substr(0, 2) == "12") {
                issebei = true;
            }
            //issebei = false;//都用统一样式

            var isproinfopage = false;
            isproinfopage = $("#nowproductid").length > 0;
            if (goodss.length > 0) {

                //  html += '  <div class="table-responsive">\
                html += '<div class="table-responsive"><table class="table">\
                                        <tr>\
                                            '+ (isproinfopage ? "<th>品牌</th>" : "") + '\
                                            <th>货号</th>\
                                            <th>'+ (issebei ? "产品描述" : "规格/纯度") + '</th>\
                                            <th class="text-center">包装</th>\
                                            <th class="text-center hidden-xs" >市场价(CNY)</th>\
                                            <th class="text-center">会员价(CNY)</th>\
                                            <th class="text-center">库存</th>\
                                            <th width="110" class="text-center">数量</th>\
                                            <th width="90" class="text-center">购物车</th>\
                                        </tr>';


                var packages = [];
                var minprice = -1;
                var minpricestr = "";
                var firstpdidx = 0;
                for (var m = 0; m < goodss.length; m++) {
                    pd_id = goodss[m].pd_id;
                    var goods = goodss[m].items;
                    goods.sort(web960.utils.tools.sort("asc", "packaging"));

                    var catacode = $("input[name='productitem_catalogno'][productid='" + goodss[m]["pd_id"] + "']").val();

                    var producturl = $("#productitem_href_" + goodss[m]["pd_id"]).attr("href");

                    var productcustomno = $("input[name='productcustomno'][productid='" + goodss[m]["pd_id"] + "']").val();



                    var packagesds = [];
                    for (var j = 0; j < goods.length; j++) {

                        var packagingds = $.trim(web960.utils.tools.getvalfromjson(goods[j].Goods_info, "{goodsinfo.packaging}"));
                        if (packagesds.indexOf(packagingds) == -1) {
                            packagesds.push(packagingds);
                        }
                    }


                    var brand = goodss[m].brand;

                    $(".productbrand_" + goodss[m]["pd_id"]).html(brand);
                    goods.sort(web960.utils.tools.sort("asc", "packaging"));
                    var puritys = [];
                    for (var i = 0; i < goods.length; i++) {
                        firstpdidx++;
                        var packaging = $.trim(web960.utils.tools.getvalfromjson(goods[i].Goods_info, "{goodsinfo.packaging}"));
                        var purity = $.trim(web960.utils.tools.getvalfromjson(goods[i].Goods_info, "{goodsinfo.purity}"));
                        if (purity != "" && puritys.indexOf(purity) == -1) {
                            puritys.push(purity);
                        }
                        if (packages.indexOf(packaging) == -1) {
                            packages.push(packaging);
                        }
                        var price = this.GetGoodsInventorePrice(goods[i], goods[i].Inventores[0].PreferentType, goods[i].Inventores[0].PreferentInfo, goods[i].Inventores[0].MoneyUnit, goods[i].Inventores[0].Price);
                        if ($("#pro_ispromotion_" + pd_id).length > 0) {
                            if (price.isPromotion == 1) {
                                $("#pro_ispromotion_" + pd_id).replaceWith('<div class="kj-product-prep-item">促销</div>');
                            }
                        }
                        if (minprice == -1 || price.finalprice < minprice) {
                            minprice = price.finalprice;
                            minpricestr = price.moneyunit + price.finalprice;
                        }


                        if (typeof (fliterjson) != "undefined") {
                            var ismatched = true;
                            for (var fliterkey in fliterjson) {
                                var thisvkey = (fliterkey == "brandname" ? "brand" : fliterkey);
                                if (fliterjson[fliterkey] != null && fliterjson[fliterkey] != "") {

                                    var thisval = $.trim(web960.utils.tools.getvalfromjson(goods[i].Goods_info, "{goodsinfo." + thisvkey + "}"));

                                    if (thisval == null || thisval == "") {
                                        thisval = $.trim(web960.utils.tools.getvalfromjson(goods[i].Goods_info, "{extendattrs." + thisvkey + "}"));
                                    }
                                    if (thisval != fliterjson[fliterkey]) {
                                        firstpdidx = 0;
                                        ismatched = false;
                                        break;
                                    }
                                }
                            }

                            if (!ismatched) {
                                continue;
                            }
                        }
                        firstpdidx = 0;//都用统一的样式
                        if (firstpdidx == 1 && isproinfopage && issebei) {
                            // 详情页 设备类产品
                            $("#firstgoodsno").html(goods[i].Goods_no);
                            $("#firstgoodsbrand").html(brand);

                            var firsthtml = '<div class="table-responsive"><table class="table">\
                                        <tr>\
                                            <th class="text-center">包装</th>\
                                            <th class="text-center hidden-xs" >市场价(CNY)</th>\
                                            <th class="text-center">会员价(CNY)</th>\
                                            <th width="110" class="text-center">数量</th>\
                                            <th width="90" class="text-center">购物车</th>\
                                        </tr>';
                            firsthtml += '<tr>\
                                            <td  class="text-center">'+ packaging + '\
                                                    <span id="price_final_' + goods[i].Inventores[0].Inventory_id + '" style="display:none;">' + price.finalprice + '</span>\
                                                    <span style="display:none;">' + GetSimpMoneyUnit(goods[i].Inventores[0].MoneyUnit) + '</span>\
                                                    <span style="text-decoration:line-through; color:#888888; display:none;" id="GoodsInvPrice_' + goods[i].Inventores[0].Inventory_id + '">' + parseFloat(goods[i].Inventores[0].Price).toFixed(2) + '</span>\
                                                    <span id="GoodsMoneyUnit_' + goods[i].Inventores[0].Inventory_id + '" style="display:none;">' + goods[i].Inventores[0].MoneyUnit + '</span>\
                                                    <span id="GoodsInvUnit_' + goods[i].Inventores[0].Inventory_id + '" style="display:none;">' + goods[i].Inventores[0].Unit + '</span>\
                                            </td>\
                                            <td  class="text-center  hidden-xs" style="color:gray;">' + price.moneyunit + price.orgprice + '</td>\
                                            <td class="text-center" style="color:red;">' + price.moneyunit + price.finalprice + '</td>\
                                            <td  class="text-center">\
                                                <div class="kj-pro-num-box kj-pro-num-box-min" style="display:inline-block;">\
                                                    <button onclick="changeGoodsInvcount(\'GoodsInv_' + goods[i].Inventores[0].Inventory_id + '\',-1);" class="kj-pro-num-minus pull-left">-</button>\
                                                    <input type="text" id="GoodsInv_' + goods[i].Inventores[0].Inventory_id + '" GoodsNo="' + goods[i].Goods_no + '" Pdid="' + pd_id + '"  value="1"  class="pull-left" />\
                                                    <button onclick="changeGoodsInvcount(\'GoodsInv_' + goods[i].Inventores[0].Inventory_id + '\',1);" class="kj-pro-num-plus pull-left">+</button>\
                                                </div></td>\
                                            <td class="text-center" >\
                                                <button class="kj_product_shopcart" onclick="AddToCart(' + goods[i].Inventores[0].Inventory_id + ',this);"><i class="fa fa-cart-plus fa-lg "></i></button>\
                                            </td>\
                                        </tr></table></div>';
                            $("#progoodsfirst").html(firsthtml);
                        }
                        else {

                            var inventorydisplay = "";
                            if (brand == "Dieckmann") {
                                inventorydisplay = "有";
                            }
                            else {
                                inventorydisplay = "以（" + brand + "）官网为准";
                            }

                            // InitInventoryDisplay(goods[i].Inventores[0], null, goods[i])

                            var _thisproducturl = goods[i].Goods_no;
                            if (producturl != undefined) {
                                _thisproducturl = '<a href="' + producturl + '?goodsno=' + goods[i].Goods_no + '" target="_blank">' + goods[i].Goods_no + '</a>';
                            }
                            html += '<tr>\
                            '+ (isproinfopage ? "<td>" + brand + "</td>" : "") + '\
                                            <td>'+ _thisproducturl + '</td>\
                                            <td>'+ purity + '</td>\
                                            <td  class="text-center">'+ packaging + '\
                                                    <span id="price_final_' + goods[i].Inventores[0].Inventory_id + '" style="display:none;">' + price.finalprice + '</span>\
                                                    <span style="display:none;">' + GetSimpMoneyUnit(goods[i].Inventores[0].MoneyUnit) + '</span>\
                                                    <span style="text-decoration:line-through; color:#888888; display:none;" id="GoodsInvPrice_' + goods[i].Inventores[0].Inventory_id + '">' + parseFloat(goods[i].Inventores[0].Price).toFixed(2) + '</span>\
                                                    <span id="GoodsMoneyUnit_' + goods[i].Inventores[0].Inventory_id + '" style="display:none;">' + goods[i].Inventores[0].MoneyUnit + '</span>\
                                                    <span id="GoodsInvUnit_' + goods[i].Inventores[0].Inventory_id + '" style="display:none;">' + goods[i].Inventores[0].Unit + '</span>\
                                            </td>\
                                            <td  class="text-center  hidden-xs" style="color:gray;">' + price.moneyunit + price.orgprice + '</td>\
                                            <td class="text-center" style="color:red;">' + price.moneyunit + price.finalprice + '</td>\
                                            <td  class="text-center">' + inventorydisplay + '</td>\
                                            <td  class="text-center">\
                                                <div class="kj-pro-num-box kj-pro-num-box-min" style="display:inline-block;">\
                                                    <button onclick="changeGoodsInvcount(\'GoodsInv_' + goods[i].Inventores[0].Inventory_id + '\',-1);" class="kj-pro-num-minus pull-left">-</button>\
                                                    <input type="text" id="GoodsInv_' + goods[i].Inventores[0].Inventory_id + '" GoodsNo="' + goods[i].Goods_no + '" Pdid="' + pd_id + '"  value="1"  class="pull-left" />\
                                                    <button onclick="changeGoodsInvcount(\'GoodsInv_' + goods[i].Inventores[0].Inventory_id + '\',1);" class="kj-pro-num-plus pull-left">+</button>\
                                                </div></td>\
                                            <td class="text-center" >\
                                                <button class="kj_product_shopcart" onclick="AddToCart(' + goods[i].Inventores[0].Inventory_id + ',this);"><i class="fa fa-cart-plus fa-lg "></i></button>\
                                            </td>\
                                        </tr>';
                        }




                    }

                    if ($("#product_pur_package_" + pd_id).length > 0) {
                        if (puritys.length > 0) {
                            $("#product_pur_package_" + pd_id).html('<div style="word-break: break-all;">' + puritys.join("<br />") + "</div>");//<div>" + packages.join(",") + "</div>
                        }
                        else {
                            // $("#product_pur_package_" + pd_id).html('<div style="word-break: break-all;">' + packages.join(",") + "</div>");
                        }
                    }
                }
                html += '</table></div>\
                ';

                if ($("#kj-item-caption_" + pd_id).length > 0) {
                    for (var key in proinfoview) {
                        $("#kj-item-caption_" + pd_id).append('<div style="word-break: break-all;">' + proinfoview[key]["title"] + "：" + proinfoview[key]["data"].join(",") + '</div>');
                    }
                }
                $("#product_small_price_" + pd_id).html(minpricestr);

            }

        }
        else {
            //积分商品
            var minintegral = -1;
            var maxintegral = -1;
            if (goodss.length > 0) {
                for (var i = 0; i < goodss.length; i++) {
                    if (goodss[i].Inventores.length > 0) {
                        var Integral = parseFloat(goodss[i].Inventores[0].Integral);
                        if (!isNaN(Integral)) {
                            if (minintegral == -1 || Integral < minintegral) {
                                minintegral = Integral;
                            }
                            if (maxintegral == -1 || Integral > maxintegral) {
                                maxintegral = Integral;
                            }
                        }
                    }
                }
                if (minintegral > 0 && maxintegral > 0) {
                    var integ = minintegral;
                    if (minintegral != maxintegral) {
                        //integ = minintegral + "-" + maxintegral;
                        integ = minintegral;
                    }
                    html = '<p><span class="span-integral">' + integ + '</span><span class="span-jifen">积分</span></p>';
                }

            }
        }


        return html;
    },
    nowselectegoods: null,
    nowproductgoods: {
        inventorys: [],
        invsofpackage: {},
        invsoflengthss: {},
        invsofnjs: {},
        invsofkjs: {},
        invsofljs: {},
        invsofjhxs: {},
        invsofsccjs: {},
        invsofpurity: {},
        invsofbrand: {},
        minpriceinv: null
    },
    initProductItemClick: function (el) {

        var _this = this;

        $("dl[propkey] dd a", el).click(function () {
            var _s = this;
            var propkey = $(_s).attr("propkey");
            var thisval = $(_s).attr("propvalue");

            if ($(_s).hasClass("sel_disabled")) {
                return false;
            }

            if ($(_s).hasClass("sel_active")) {
                $(_s).removeClass("sel_active");

            }
            else {
                $("dl[propkey='" + propkey + "'] dd a", el).removeClass("sel_active");
                $(_s).addClass("sel_active");
            }
            var whereobj = {};

            $("dl[propkey]", el).each(function () {
                var _thisdl = this;
                var pkey = $(_thisdl).attr("propkey");

                if ($("dd a.sel_active", _thisdl).length > 0) {
                    var _tvalue = $("dd a.sel_active", _thisdl).attr("propvalue");

                    whereobj[pkey] = _this.goodsdata[pkey][_tvalue].value;

                }


            });

            _this.selectedgoods = $.grep(_this.goodsofnowproduct, function (obj, i) {
                var r = true;
                for (var key in whereobj) {
                    r = r && obj["extdetails"][key] == whereobj[key];
                }
                return r;
            });
            //console.log("查询条件");
            //console.log(whereobj);

            _this.displaygoodsinfo(el, {
                clickrow: propkey,
                ableaddactive: false
            });


            //console.log(propkey + "-" + thisval);
            //console.log(_this.goodsdata[propkey][thisval]);
            //console.log("可供选择的数组");
            //console.log(_this.selectedgoods);

        });
    },
    goodsdata: {

    },

    selectedgoods: [],
    displaygoodsinfo: function (el, cfg) {
        cfg = $.extend({}, cfg);

        var _this = this;
        _this.nowselectegoods = null;
        // console.log(_this.selectedgoods);
        if (_this.selectedgoods.length == 0) {
            $("dl[propkey] dd a", el).removeClass("sel_disabled");

        }
        else {

            $("dl[propkey]", el).each(function () {
                var _thisdl = this;
                var pkey = $(_thisdl).attr("propkey");
                if (cfg["clickrow"] == null || cfg.clickrow != pkey) {
                    $("dd a", _thisdl).addClass("sel_disabled");
                }

                for (var i = 0; i < _this.selectedgoods.length; i++) {
                    var titem = _this.selectedgoods[i];
                    var rpvalue = md5(titem.extdetails[pkey]);

                    $("dd a[propvalue='" + rpvalue + "']", _thisdl).removeClass("sel_disabled");

                }
                if (cfg.ableaddactive) {
                    var totala = $("dd a", _thisdl).length;
                    var disc = $("dd a.sel_disabled", _thisdl).length;
                    var activec = $("dd a.sel_active", _thisdl).length;
                    if (activec == 0 && (totala - disc == 1)) {
                        $("dd a[class!='sel_disabled']", _thisdl).addClass("sel_active");
                    }
                }
            });
        }
        var cleargoodcontent = true;
        if (_this.selectedgoods.length == 1) {
            //定位到唯一了
            var ngoodsinfo = _this.selectedgoods[0];
            if (ngoodsinfo["invprice"] != null) {
                cleargoodcontent = false;
                _this.nowselectegoods = ngoodsinfo;
                $("#kj-addtocart-btn", el).removeClass("disabled").attr("disabled", false);
                $("#kj-buy-selected-ok").removeClass("disabled").attr("disabled", false);
                $(".kj-nowproduct-price").html(ngoodsinfo.invprice.moneyunit + ngoodsinfo.invprice.finalprice);
                $(".kj-nowproduct-orgprice").html(ngoodsinfo.invprice.moneyunit + ngoodsinfo.invprice.orgprice);
                $(".kj-nowgoods-no").html(ngoodsinfo.goodsno);

                var laohuohao = "&nbsp;";
                if (ngoodsinfo["extdetails"] != null && ngoodsinfo["extdetails"]["laohuohao"] != null) {
                    laohuohao = ngoodsinfo["extdetails"]["laohuohao"];
                }
                $(".laohuohao").html(laohuohao);
                $(".kj-nowgoods-name").html((ngoodsinfo["extdetails"]["goodsname"] != null ? ngoodsinfo["extdetails"]["goodsname"] : ""));
                $(".nowgoodsinventory").html(InitInventoryDisplay(ngoodsinfo.inv, null, ngoodsinfo));
            }

        }
        if (cleargoodcontent) {
            $("#kj-addtocart-btn", el).addClass("disabled").attr("disabled", true);
            $("#kj-buy-selected-ok").removeClass("disabled").attr("disabled", true);
            $(".kj-nowproduct-price").html("&nbsp;");
            $(".kj-nowproduct-orgprice").html("&nbsp;");
            $(".kj-nowgoods-no").html("&nbsp;");
            $(".laohuohao").html("&nbsp;");
            $(".nowgoodsinventory").html("&nbsp;");
            $(".kj-nowgoods-name").html("&nbsp;");
        }
    },
    goodsofnowproduct: [],
    inventoryitemhtml_productinfo: function (goodss, pd_id) {
        var _this = this;
        var GET = $.urlGet(); //获取URL的Get参数
        var def_goodsno = GET['goodsno']; //取得id的值

        var defviewinv = null; //默认显示哪一个规格

        var minpriceinv = null;//价格最小的规格
        var minprice = -1;
        var minpricestr = "";

        //参数配置部分------开始
        var isviewdefinv = false;//是否默认显示一个规格 如果是defviewinv 讲可以赋值

        var isviewinventory = true;//是否显示库存量
        var proptitles = {
            //   goodsname: "商品名称",
            brand: "品牌",
            jianhexing: "键合相",
            packaging: "包装",
            changdu: "长度",
            lijing: "粒径",
            sizeinside: "内径",
            kongjing: "孔径",
            //changjia: "生产厂家",
            purity: "纯度"

        };
        //按钮控制
        var btnconfig = {
            buynow: true,//显示立即购买
            addtocart: true,//显示加入购物车
            addtofav: false//显示加入收藏
        };

        //参数配置部分------结束

        var extinfogoodslist = {};

        //解析商品的扩展属性
        for (var i = 0; i < goodss.length; i++) {
            var item = goodss[i];

            var extobj = JSON.parse(item.Goods_info);

            var extdetails = {};

            for (var key in extobj["extendattrs"]) {
                extdetails["" + key] = extobj["extendattrs"][key];
            }

            for (var key in extobj["goodsinfo"]) {
                extdetails["" + key] = extobj["goodsinfo"][key];
            }
            goodss[i]["extdetails"] = extdetails;
            goodss[i]["extobj"] = extobj;

        }

        var emptyvaluekeys = {};
        for (var i = 0; i < goodss.length; i++) {
            var item = goodss[i];
            var goodsno = item["Goods_no"];
            item["goodsno"] = goodsno;

            item["goodsid"] = item.Id;

            item["pd_id"] = item.Pd_id;

            if (item.Inventores.length > 0) {
                var stock = item.Inventores[0];
                var price = _this.GetGoodsInventorePrice(item, stock.PreferentType, stock.PreferentInfo, stock.MoneyUnit, stock.Price);
                //  console.log(price);
                item["invprice"] = price;
                item["price"] = price;
                item["id"] = stock.Inventory_id;
                item["inv"] = stock;
                if (minprice == -1 || parseFloat(price.finalprice) < minprice) {

                    minprice = parseFloat(price.finalprice);
                    minpricestr = price.moneyunit + price.finalprice;
                    minpriceinv = item;
                }

                if (def_goodsno != null && def_goodsno.length > 0 && def_goodsno == goodsno) {
                    defviewinv = item;
                }
            }

            for (var key in item.extdetails) {

                if (extinfogoodslist[key] == null) {
                    extinfogoodslist[key] = {};
                }

                var thisval = item.extdetails[key];
                if (thisval == null || thisval == "") {
                    thisval = "N/A";
                    if (emptyvaluekeys[key] == undefined) {
                        emptyvaluekeys[key] = 1;
                    }

                }
                else {
                    emptyvaluekeys[key] = 0;
                }
                var encodevalkey = md5(thisval);
                if (extinfogoodslist[key][encodevalkey] == undefined) {
                    extinfogoodslist[key][encodevalkey] = { value: thisval, items: [] };
                }

                extinfogoodslist[key][encodevalkey].items.push(item);

            }
            _this.goodsofnowproduct.push(item);

        }
        for (var key in emptyvaluekeys) {
            if (emptyvaluekeys[key] == 1) {
                delete extinfogoodslist[key];
            }
        }

        if (defviewinv == null && minpriceinv != null && isviewdefinv) {
            defviewinv = minpriceinv;
        }
        if (defviewinv != null) {
            _this.selectedgoods = [defviewinv];
        }

        var html = "";

        for (var key in proptitles) {
            if (extinfogoodslist[key] != undefined) {
                html += '<dl propkey="' + key + '" class="kj-productinfo-fliter dl-horizontal kj_proinfolist goods_sel_dl">\
                <dt>'+ (proptitles[key] == null ? key : proptitles[key]) + '</dt>\
                <dd class="kj-productinfo-fliter-dd">';

                for (var ik in extinfogoodslist[key]) {
                    html += '<a href="javascript:void(0);" propvalue="' + ik + '" propkey="' + key + '" >' + extinfogoodslist[key][ik].value + '</a>';
                }
                html += '</dd>\
            </dl>';
            }
        }
        if (isviewinventory) {
            html += '<dl class="kj-productinfo-fliter dl-horizontal kj_proinfolist goods_sel_dl"><dt >库存</dt><dd class="nowgoodsinventory"></dd></dl>';
        }

        html += '<dl class="kj-productinfo-fliter dl-horizontal kj_proinfolist goods_sel_dl"><dt class="kj-pc-buynum-view">数量</dt>\
                    <dd class="kj-pc-buynum-view">\
                        <div class="kj-pro-num-box">\
                            <button class="kj-pro-num-minus"  onclick="changeOrderNum(this,-1);">-</button>\
                            <input type="text" value="1"  class="kj-order-num" readonly="readonly" />\
                            <button class="kj-pro-num-plus"  onclick="changeOrderNum(this,1);">+</button>\
                        </div>\
                    </dd>\
                    <dt></dt>\
                    <dd><div >';
        if (btnconfig.buynow) {
            html += '<a href="javascript:void(0);" class="kj_ljgm" onclick="GoodsConfig.addtocarttg(this)">立即购买</a>';
        }
        if (btnconfig.addtofav) {
            html += '<button class="btn btn-info kj_jrscj" onclick="AddProductToFavorites(' + pd_id + ')" ><i class="fa fa-cart-plus"></i> 加入收藏</button>';
        }
        if (btnconfig.addtocart) {
            html += ' <button class="btn btn-danger kj_jrgwci" onclick="GoodsConfig.addtocart(this)" id="kj-addtocart-btn"><i class="fa fa-cart-plus"></i> 加入购物车</button>';
        }



        html += '   </div></dd>\
                </dl>';

        this.goodsdata = extinfogoodslist;
        //console.log(extinfogoodslist);
        //console.log(goodss);
        //  console.log(_this.goodsofnowproduct);
        return html;
    },
    buynowv3: function (invid, o, isintegral) {
        if (typeof (inventorydatacfg) != "undefined" && inventorydatacfg["inv_" + invid] != null) {
            inventorydatacfg["inv_" + invid]["ordernum"] = parseInt($("#GoodsInv_" + invid).val());
            AddToCart(invid, o, inventorydatacfg["inv_" + invid], isintegral);
            setTimeout(function () {
                location.href = "/order/shopcart/";
            }, 1000);
        }
    },
    addtocartv3: function (invid, o, isintegral) {
        console.log(invid);
        console.log(o);
        console.log(isintegral);
        try {
            if (typeof (inventorydatacfg) != "undefined" && inventorydatacfg["inv_" + invid] != null) {
                inventorydatacfg["inv_" + invid]["ordernum"] = parseInt($("#GoodsInv_" + invid).val());


                AddToCart(invid, o, inventorydatacfg["inv_" + invid], isintegral);


            }
        }
        catch (e) {
            alert(e.toString());
        }

    },
    blukaddtocart: function (o) {
        var table = $(o).closest(".gdtable");
        $(".addtocart_input", table).each(function () {
            var v = $.trim($(this).val());
            var Inventory_id = parseInt($(this).attr("invid"));

            if (/^\d+$/.test(v)) {
                v = parseInt(v);
            }
            if (v > 0) {
                GoodsConfig.addtocartv3(Inventory_id, $(this), 0);
            }


        });
    },
    productpagecar: function () {
        var table = $(".gdtable");
        $(".addtocart_input", table).each(function () {
            var v = $.trim($(this).val());
            var Inventory_id = parseInt($(this).attr("invid"));

            if (/^\d+$/.test(v)) {
                v = parseInt(v);
            }
            if (v > 0) {
                GoodsConfig.addtocartv3(Inventory_id, $(this), 0);
            }


        });
    },
    addtocart: function (o, isintegral) {
        if (this.nowselectegoods != null) {
            var ordernum = parseInt($(".kj-order-num", $(o).parents(".kj-productinfo-fliter")).val());
            this.nowselectegoods["ordernum"] = ordernum;
            AddToCart(this.nowselectegoods.id, o, this.nowselectegoods, isintegral);

        }
    },
    addtocarttg: function (o, isintegral) {
        if (this.nowselectegoods != null) {
            var ordernum = parseInt($(".kj-order-num", $(o).parents(".kj-productinfo-fliter")).val());
            this.nowselectegoods["ordernum"] = ordernum;
            AddToCart(this.nowselectegoods.id, o, this.nowselectegoods, isintegral);
            setTimeout(function () {
                location.href = "/order/shopcart/";
            }, 1000);
        }
    },
    addtocart_mobile: function (o, isintegral) {
        if (this.nowselectegoods != null) {
            var ordernum = parseInt($(".kj-buy-select-content .kj-order-num").val());
            this.nowselectegoods["ordernum"] = ordernum;
            AddToCart(this.nowselectegoods.id, null, this.nowselectegoods, isintegral);
        }
    },
    nowproductviewinfo: {},
    inventoryitemhtml: function (goodss, pd_id) {
        this.nowproductviewinfo["goodss"] = goodss;
        this.nowproductviewinfo["pd_id"] = pd_id;
        //if ($("#nowproductid").length > 0) {
        //    this.nowviewmode = "list";
        //    return GoodsConfig.inventoryitemhtml_productlist(goodss, pd_id);
        //}
        //else {
        //    this.nowviewmode = "newlist";
        //    return GoodsConfig.inventoryitemhtml_productlist(goodss, pd_id);
        //}
        var viewWidth = window.innerWidth;

        if ($("#nowintegralproductid").length == 0) {
            this.nowviewmode = "list";
        }

        if (viewWidth < 768 || $("#nowproinfo").length == 1) {
            this.nowviewmode = "newlist";
        }
        this.nowviewmode = "list";
        if ($("#nowproductid").length > 0) {
            $("#goods_viewmode_ctrlbox button").removeClass("active");
            if (this.nowviewmode == "list") {
                $("#goods_viewmode_list").addClass("active");
                return GoodsConfig.inventoryitemhtml_productlist(goodss, pd_id);
            }
            else if (this.nowviewmode == "newlist") {
                $("#goods_viewmode_newlist").addClass("active");
                return GoodsConfig.inventoryitemhtml_productinfo(goodss, pd_id);
            }
        }
        else {
            this.nowviewmode = "list";
            return GoodsConfig.inventoryitemhtml_productlist(goodss, pd_id);
        }

    },
    nowviewmode: "list",
    toggleviewmode: function (o, el, type) {
        this.nowviewmode = type;
        $("button", $(o).parent()).removeClass("active");
        $(o).addClass("active");
        var goodss = this.nowproductviewinfo["goodss"];
        var pd_id = this.nowproductviewinfo["pd_id"];
        if (type == "list") {
            $(el).html(GoodsConfig.inventoryitemhtml_productlist(goodss, pd_id));
        }
        else if (type == "newlist") {
            $(el).html(GoodsConfig.inventoryitemhtml_productinfo(goodss, pd_id));
        }
        this.callback();
    },
    viewmore: function (o) {

        $("tr[hidenitem='hideitem']", $(o).parent().parent().parent()).toggle();
    },
    GetGoodsInventorePrice: function (goods, PreferentType, PreferentInfo, MoneyUnit, Price) {
        var brand = $.trim(web960.utils.tools.getvalfromjson(goods.Goods_info, "{goodsinfo.brand}"));
        return this._GetGoodsInventorePrice(brand, PreferentType, PreferentInfo, MoneyUnit, Price);
    },
    _GetGoodsInventorePrice: function (brand, PreferentType, PreferentInfo, MoneyUnit, Price) {
        var returnv = { html: "", orgprice: Price, finalprice: Price, moneyunit: GetSimpMoneyUnit(MoneyUnit) };
        var brandpricefirst = true;//如果为true，就以品牌折扣优先，否则 比较一个最低值
        var brandsetfound = false;
        var html = "";
        if (PreferentType == "-1") {
            returnv.finalprice = Price;
        }
        else {
            var selfzkprice = -1;
            if (typeof (brandDiscountSetJO) != 'undefined' && brandDiscountSetJO["brandDiscount"] != null) {
                var selfset = $.grep(brandDiscountSetJO["brandDiscount"], function (v) {
                    return v.brandName.toLowerCase() == brand.toLowerCase();
                });
                if (selfset.length > 0) {
                    selfzkprice = (parseFloat(selfset[0].discount) / 10) * Price;
                }
            }


            if (GoodsGlobalSettings.preferentsetting != undefined) {
                var setting = eval('(' + GoodsGlobalSettings.preferentsetting + ');');
                var preinfo = eval('(' + PreferentInfo + ');');
                var brandset = setting["preferentsettingbybrand"];//品牌设置优惠
                var brandprice = Price;
                if (brandset != undefined && brand != "") {
                    for (var x = 0; x < brandset.length; x++) {
                        var tbrandset = brandset[x];
                        if (brand == tbrandset.brandname) {
                            //默认品牌优惠设置
                            brandsetfound = true;
                            for (var i = 0; i < tbrandset.rolessetting.length; i++) {
                                if (typeof (NowUserInfo) != "undefined") {
                                    if (NowUserInfo.rolename != undefined && NowUserInfo.rolename != "") {
                                        if (NowUserInfo.rolename == tbrandset.rolessetting[i].rolename) {
                                            brandprice = parseFloat(tbrandset.rolessetting[i].zk) * Price;
                                            //    html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(tbrandset.rolessetting[i].zk) * Price).toFixed(2);
                                        }
                                    } else {
                                        if (tbrandset.rolessetting[i].visible == "all") {
                                            brandprice = parseFloat(tbrandset.rolessetting[i].zk) * Price;
                                            // html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(tbrandset.rolessetting[i].zk) * Price).toFixed(2);
                                        }
                                    }
                                }
                                else {
                                    if (tbrandset.rolessetting[i].visible == "all") {
                                        brandprice = parseFloat(tbrandset.rolessetting[i].zk) * Price;
                                        // html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(tbrandset.rolessetting[i].zk) * Price).toFixed(2);
                                    }
                                }
                            }
                            break;
                        }
                    }
                }
                var norprice = Price;
                var exhtml = '';

                var defsysPrice = Price;
                if (setting.SuspendPreferent == "0" && setting.enable == "1") {

                    //默认优惠设置
                    for (var i = 0; i < setting.rolessetting.length; i++) {
                        if (typeof (NowUserInfo) != "undefined") {
                            if (NowUserInfo.rolename != undefined && NowUserInfo.rolename != "") {
                                if (NowUserInfo.rolename == setting.rolessetting[i].rolename) {
                                    defsysPrice = parseFloat(setting.rolessetting[i].zk) * Price;
                                    html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(setting.rolessetting[i].zk) * Price).toFixed(2);
                                }
                            } else {
                                if (setting.rolessetting[i].visible == "all") {
                                    defsysPrice = parseFloat(setting.rolessetting[i].zk) * Price;
                                    html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(setting.rolessetting[i].zk) * Price).toFixed(2);
                                }
                            }
                        }
                        else {
                            if (setting.rolessetting[i].visible == "all") {
                                defsysPrice = parseFloat(setting.rolessetting[i].zk) * Price;
                                html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(setting.rolessetting[i].zk) * Price).toFixed(2);
                            }
                        }
                    }
                }
            

            if (PreferentType == "1" && setting.suspendpromotion == "0") {
                //促销
                returnv.isPromotion = 1;
                if (preinfo.premethod == "1") {
                    var val = preinfo.val;
                    if (val == null || val == "") {
                        val = 10;
                    }
                    val = parseFloat(val);
                    if (isNaN(val)) {
                        val = 10;
                    }

                    norprice = (val / 10) * parseFloat(Price);
                    exhtml = '<span class="label label-info">促销</span>';
                    html = GetSimpMoneyUnit(MoneyUnit) + ((val / 10) * parseFloat(Price)).toFixed(2) + '<span class="label label-info">促销</span>';
                    //  html = GetSimpMoneyUnit(MoneyUnit) + (parseFloat(preinfo.val) * parseFloat(Price)).toFixed(2) + '<sup style="background-color:#ff6600; color:#ffffff;">促</sup> ';
                }
                else {
                    norprice = parseFloat(preinfo.val);
                    exhtml = '<span class="label label-info">促销</span>';
                    html = GetSimpMoneyUnit(MoneyUnit) + parseFloat(preinfo.val).toFixed(2) + '<span class="label label-info">促销</span>';
                    //html = GetSimpMoneyUnit(MoneyUnit) + parseFloat(preinfo.val).toFixed(2) + '<sup style="background-color:#ff6600; color:#ffffff;">促</sup>';
                }
                // html =  preinfo.val + ' ' + (preinfo.premethod == "1" ? "折" : MoneyUnit)+'<sup style="color:red;">促销</sup> ';
            }
            else if (PreferentType == "2" && setting.SuspendPreferent == "0") {
                //优惠

                for (var i = 0; i < preinfo.rolessetting.length; i++) {
                    if (typeof (NowUserInfo) != "undefined") {
                        if (NowUserInfo.rolename != undefined && NowUserInfo.rolename != "") {
                            if (NowUserInfo.rolename == preinfo.rolessetting[i].rolename) {
                                if (preinfo.premethod == "1") {
                                    norprice = parseFloat(preinfo.rolessetting[i].zk) * parseFloat(Price);
                                    html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(preinfo.rolessetting[i].zk) * parseFloat(Price)).toFixed(2);
                                }
                                else {
                                    norprice = parseFloat(preinfo.rolessetting[i].zk);
                                    html += GetSimpMoneyUnit(MoneyUnit) + parseFloat(preinfo.rolessetting[i].zk).toFixed(2);
                                }

                            }
                        } else {
                            if (preinfo.rolessetting[i].visible == "all") {
                                if (preinfo.premethod == "1") {
                                    norprice = parseFloat(preinfo.rolessetting[i].zk) * parseFloat(Price);
                                    html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(preinfo.rolessetting[i].zk) * parseFloat(Price)).toFixed(2);
                                }
                                else {
                                    norprice = parseFloat(preinfo.rolessetting[i].zk);
                                    html += GetSimpMoneyUnit(MoneyUnit) + parseFloat(preinfo.rolessetting[i].zk).toFixed(2);
                                }
                            }
                        }
                    }
                    else {
                        if (preinfo.rolessetting[i].visible == "all") {
                            if (preinfo.premethod == "1") {
                                norprice = parseFloat(preinfo.rolessetting[i].zk) * parseFloat(Price);
                                html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(preinfo.rolessetting[i].zk) * parseFloat(Price)).toFixed(2);
                            }
                            else {
                                norprice = parseFloat(preinfo.rolessetting[i].zk);
                                html += GetSimpMoneyUnit(MoneyUnit) + parseFloat(preinfo.rolessetting[i].zk).toFixed(2);
                            }
                        }
                    }
                }
            }
            else if (PreferentType == "0" && setting.SuspendPreferent == "0" && setting.enable == "1") {

                //默认优惠设置
                for (var i = 0; i < setting.rolessetting.length; i++) {
                    if (typeof (NowUserInfo) != "undefined") {
                        if (NowUserInfo.rolename != undefined && NowUserInfo.rolename != "") {
                            if (NowUserInfo.rolename == setting.rolessetting[i].rolename) {
                                norprice = parseFloat(setting.rolessetting[i].zk) * Price;
                                html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(setting.rolessetting[i].zk) * Price).toFixed(2);
                            }
                        } else {
                            if (setting.rolessetting[i].visible == "all") {
                                norprice = parseFloat(setting.rolessetting[i].zk) * Price;
                                html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(setting.rolessetting[i].zk) * Price).toFixed(2);
                            }
                        }
                    }
                    else {
                        if (setting.rolessetting[i].visible == "all") {
                            norprice = parseFloat(setting.rolessetting[i].zk) * Price;
                            html += GetSimpMoneyUnit(MoneyUnit) + (parseFloat(setting.rolessetting[i].zk) * Price).toFixed(2);
                        }
                    }
                }
            }
        }

            if (selfzkprice > -1 && brandpricefirst) {
                returnv.finalprice = selfzkprice.toFixed(2);
            } else {
                if (selfzkprice > -1) {
                    if (selfzkprice < brandprice) {
                        brandprice = selfzkprice;
                    }                    
                } 
                if (norprice > brandprice || (brandpricefirst && brandsetfound)) {
                    returnv.finalprice = parseFloat(brandprice).toFixed(2);
                    html = GetSimpMoneyUnit(MoneyUnit) + '<span class="price_final" moneyunit="' + MoneyUnit + '">' + parseFloat(brandprice).toFixed(2) + "</span>" + exhtml;
                }
                else {
                    returnv.finalprice = parseFloat(norprice).toFixed(2);
                }
            }
    }
        returnv.finalprice = parseFloat(returnv.finalprice).toFixed(2);
    html = '<span class="price_moneyunit">' + GetSimpMoneyUnit(MoneyUnit) + '</span><span class="price_final" moneyunit="' + MoneyUnit + '">' + returnv.finalprice + "</span>";


    returnv.html = html;
    return returnv;
},

    InitInventoryPrice: function () {
        var _s = this;
        if (typeof (inventorydatacfg) != "undefined") {
            for (var key in inventorydatacfg) {
                var inv = inventorydatacfg[key];
                inv["moneyunit"] = inv.MoneyUnit;
                inv["orgprice"] = inv.Price;
                var price = _s._GetGoodsInventorePrice(inv.brandname, inv.PreferentType, inv.PreferentInfo, inv.MoneyUnit, inv.Price);
                $(".kj-pre-price[invid='" + inv.Inventory_id + "']").html('' + price.moneyunit + price.finalprice + '');

                $(".kj-get-integral[invid='" + inv.Inventory_id + "']").html(parseFloat(price.finalprice).toFixed(0));
                inv["price"] = price;
                inv["inv"] = { Unit: inv.Unit, MoneyUnit: inv.MoneyUnit };
                var invdisplay = InitInventoryDisplay(inv);

                $(".kj-inventory-display[invid='" + inv.Inventory_id + "']").html(invdisplay);
            }
        }

    },

    GuestPrice: function (rolessetting, premethod, preinfo, price) {
        for (var j = 0; j < rolessetting.length; j++) {

            if (rolessetting[j].rolename == "普通会员") {

                //if (preinfo.premethod == "2") {
                //    price = parseFloat(rolessetting[j].zk);
                //}
                //else {
                //    price = price * parseFloat(rolessetting[j].zk);
                //}
                price = price * parseFloat(rolessetting[j].zk);
            }
        }
        return price;
    }
};