// window._agl = window._agl || [];
(function () {
    // _agl.push(
    //     ['production', '_f7L2XwGXjyszb4d1e2oxPybgD']
    // );
    // (function () {
    //     var agl = document.createElement('script');
    //     agl.type = 'text/javascript';
    //     agl.async = true;
    //     agl.src = 'https://fxgate.baidu.com/angelia/fcagl.js?production=_f7L2XwGXjyszb4d1e2oxPybgD';
    //     var s = document.getElementsByTagName('script')[0];
    //     s.parentNode.insertBefore(agl, s);
    // })();

    (function (para) {
        var p = para.sdk_url, n = para.name, w = window, d = document, s = 'script', x = null, y = null;
        if (typeof (w['sensorsDataAnalytic201505']) !== 'undefined') {
            return false;
        }
        w['sensorsDataAnalytic201505'] = n;
        w[n] = w[n] || function (a) {
            return function () {
                (w[n]._q = w[n]._q || []).push([a, arguments]);
            }
        };
        var ifs = ['track', 'quick', 'register', 'registerPage', 'registerOnce', 'clearAllRegister', 'trackSignup', 'trackAbtest', 'setProfile', 'setOnceProfile', 'appendProfile', 'incrementProfile', 'deleteProfile', 'unsetProfile', 'identify', 'login', 'logout', 'trackLink'];
        for (var i = 0; i < ifs.length; i++) {
            w[n][ifs[i]] = w[n].call(null, ifs[i]);
        }
        if (!w[n]._t) {
            x = d.createElement(s), y = d.getElementsByTagName(s)[0];
            x.async = 1;
            x.src = p;
            x.setAttribute('charset', 'UTF-8');
            w[n].para = para;
            y.parentNode.insertBefore(x, y);
            try {
                x.onload = function () {
                    if (w[n]) {
                        loadPageJs_(`${location.origin}/static/html/js/dist/abtest.min.js`, () => {
                            try {
                                window.abtest = w[n].use("SensorsABTest", {
                                    url: "https://abtest-tx-guangzhou-01.saas.sensorsdata.cn/api/v2/abtest/online/results?project-key=AFFBF3EF53B9DA08E3ADF905DE3C708DDA6AF998",
                                    visualize: {
                                        // 是否开启可视化试验，默认关闭
                                        enable_visualize: true,
                                        timeout: 10000,    //可视化试验触发的超时时间，默认 500 ms
                                        use_mask: true   //是否使用遮罩层，默认为 true
                                    },
                                    multilink: {         //配置为 object 开启多链接试验，且配置多链接试验参数
                                        timeout: 10000,    //ms，多链接试验触发的超时时间
                                        pass_params: true   //boolean，跳转页面是否携带原始页面 url 上的参数
                                    }
                                });
                            } catch (err) {

                            }

                        })
                    }
                }
            } catch (err) {

            }

        }
    })({
        // 20211223 变更神策环境依据当前host判断
        sdk_url: 'https://sensorsdata.misumi.com.cn/web/sensorsdata.min.js',//测试环境
        name: 'sensors',
        server_url: window.location.href.indexOf('https://m.misumi.com.cn') > -1 ? 'https://sa-api.misumi.sh.cn/sa?project=production' : 'https://sa-api-stg.misumi.sh.cn/sa?project=default', //测试路径
        show_log: window.location.href.indexOf('https://m.misumi.com.cn') > -1 ? false : true,
        // send_type:'ajax',
        heatmap: {
            //是否开启点击图，default 表示开启，自动采集 $WebClick 事件，可以设置 'not_collect' 表示关闭。
            clickmap: 'default',
            //是否开启触达注意力图，not_collect 表示关闭，不会自动采集 $WebStay 事件，可以设置 'default' 表示开启。
            scroll_notice_map: 'not_collect'
        },
        url_is_decode: true,
        datasend_timeout: 20000,
        use_client_time: true,
        send_type: 'beacon',
        preset_properties: {
            search_keyword_baidu: true
        },
        max_string_length: 4096
    });
    //神策设置公共属性
    var misumiCookie = getMisumiCookie();
    let urlParams = parseUrlQueryAfterDecode()
    sensors.registerPage({
        platform_name: window.location.href.indexOf('routeFlag=APP') > -1 ? 'APP' : sessionStorage.getItem('routeFlag') ? sessionStorage.getItem('routeFlag') : "M站",
        cust_cd: misumiCookie.CustomerCode ? misumiCookie.CustomerCode : '',
        is_login_status: function () {
            return !!localStorage.getItem("userInfo");
        },
        current_role: function () {
            return ""
        },
        union_id: sessionStorage.getItem('union_id') ? sessionStorage.getItem('union_id') : '',
    });
    if (urlParams.routeFlag == 'weixin' || (isWeiXin() && window.navigator.userAgent.toLowerCase().match(/miniProgram/i) == 'miniprogram') || sessionStorage.getItem('routeFlag')) {
        // 小程序环境
        const valueTime = getValueUtm('utmTimeKey');
        if (urlParams.utm_campaign || urlParams.utm_medium || urlParams.utm_source || urlParams.utm_term || urlParams.utm_content) {
            setValueExpire('utmTimeKey', 'myValue', 24);
            sensors.quick('isReady', function () {
                sensors.registerPage({
                    $latest_traffic_source_type: '付费广告流量'
                })
                sensors.setOnceProfile({$first_traffic_source_type: '付费广告流量'});
            })
        } else {
            if (!valueTime) {
                sensors.quick('isReady', function () {
                    sensors.registerPage({
                        $latest_traffic_source_type: '直接流量'
                    })
                    sensors.setOnceProfile({$first_traffic_source_type: '直接流量'});
                })
            } else {
                sensors.quick('isReady', function () {
                    sensors.registerPage({
                        $latest_traffic_source_type: '付费广告流量'
                    })
                    sensors.setOnceProfile({$first_traffic_source_type: '付费广告流量'});
                })
            }

        }
        if (urlParams.first_utm_campaign || urlParams.first_utm_term || urlParams.first_utm_medium || urlParams.first_utm_source || urlParams.first_utm_content) {
            let firstUtmParams = {
                first_utm_campaign: urlParams.first_utm_campaign || '',
                first_utm_term: urlParams.first_utm_term || '',
                first_utm_medium: urlParams.first_utm_medium || '',
                first_utm_source: urlParams.first_utm_source || '',
                first_utm_content: urlParams.first_utm_content || '',
            }
            localStorage.setItem('firstUtmKey', JSON.stringify(firstUtmParams))
            sensors.quick('isReady', function () {
                sensors.registerPage({
                    first_utm_campaign: urlParams.first_utm_campaign || '',
                    first_utm_term: urlParams.first_utm_term || '',
                    first_utm_medium: urlParams.first_utm_medium || '',
                    first_utm_source: urlParams.first_utm_source || '',
                    first_utm_content: urlParams.first_utm_content || '',

                })
            })

        } else {
            let firstUtmData = localStorage.getItem('firstUtmKey') ? JSON.parse(localStorage.getItem('firstUtmKey')) : ''
            if (firstUtmData) {
                sensors.quick('isReady', function () {
                    sensors.registerPage({
                        first_utm_campaign: firstUtmData.first_utm_campaign || '',
                        first_utm_term: firstUtmData.first_utm_term || '',
                        first_utm_medium: firstUtmData.first_utm_medium || '',
                        first_utm_source: firstUtmData.first_utm_source || '',
                        first_utm_content: firstUtmData.first_utm_content || '',

                    })
                })
            }
        }

    }
    // 用户信息-注册时调用
    // sensors.setProfile({
    //     user_cd: "test_user_cd",
    //     loginid: "test_loginid",
    //     phone_number: "test_phone_number",
    //     name: "test_name",
    //     career: "test_career",
    //     cust_cd: "test_cust_cd",
    //     cust_name: "test_cust_name",
    //     industry: "test_industry",
    //     email: "test_email",
    //     country: "test_country",
    //     province: "test_province",
    //     city: "test_city0",
    //     user_register_time: new Date(),
    //     cust_register_time: new Date(),
    //     upgrade_cust_time: new Date(),
    //     bind_custtime: new Date(),
    //     first_visit_source: "test_first_visit_source",
    //     first_order_time: new Date(),
    //     last_order_time: new Date()
    // })
    // 用户登录时调用
    // sensors.login('user_code')
    if (misumiCookie.CUSTCD) {
        sensors.login(misumiCookie.CUSTCD)
    }
    sensors.quick('autoTrack');
})();

careerMap = {
    "J001": "采购、总务",
    "J002": "设计、技术人员",
    "J003": "设计兼采购",
    "J004": "维护人员",
    "J005": "品质管理",
    "J006": "生产制造、安装工事人员",
    "J007": "管理层",
    "J008": "其它"
}

function getMisumiCookie() {
    var obj = {}
    var arr = []
    var cookie = document.cookie.split(';');
    for (var i = 0; i < cookie.length; i++) {
        arr = cookie[i].trim().split('=')
        obj[arr[0]] = arr[1]
    }
    return obj
}

function setSensorsProfile(loginId, career, userName, mobileNumber, custName, industry, email, afterSet) {
    userInfo = JSON.parse(localStorage.getItem("userInfo"))
    // 用户信息-注册时调用
    sensors.setProfile({
        user_cd: userInfo.userCode,
        loginid: loginId,
        phone_number: mobileNumber,
        name: userName,
        career: careerMap[career],
        cust_cd: userInfo.customerCode ? userInfo.customerCode : '',
        cust_name: custName ? custName : '',
        // industry: industry ? industry : '',
        // email: email ? email : '',
        user_register_time: new Date(),
        // cust_register_time: new Date(),
        // upgrade_cust_time: new Date(),
        // bind_custtime: new Date(),
        // first_visit_source: "",
        // first_order_time: new Date(),
        // last_order_time: new Date()
    }, afterSet)
}

function sendSensorCartPageView() {
    if (localStorage.getItem("CART_SOURCE_PAGE")) {
        // sensors.track('CartPageView', {
        //     "source_page": localStorage.getItem("CART_SOURCE_PAGE")
        // })
        localStorage.removeItem("CART_SOURCE_PAGE")
    }
}

function sendSensorCartPageClick(buttonName, buttonType) {
    // sensors.track('CartPageClick', {
    //     "button_type": buttonType ? buttonType : '',
    //     "button_name" : buttonName
    // })
}

function sendSensorLoginButtonClick() {
    if (localStorage.getItem("LOGIN_SOURCE_PAGE")) {
        sensors.track('LoginButtonClick', {
            "button_type": localStorage.getItem("LOGIN_SOURCE_PAGE")
        })
        localStorage.removeItem("LOGIN_SOURCE_PAGE")
    } else {
        sensors.track('LoginButtonClick', {
            "button_type": '其他'
        })
    }
}


function setCartSourcePage(sourcePage) {
    localStorage.setItem('CART_SOURCE_PAGE', sourcePage)
}

function setConfirmOrderSourcePage(sourcePage) {
    localStorage.setItem('CONFIRM_ORDER_SOURCE_PAGE', sourcePage)
}

function setLoginSourcePage(sourcePage) {
    localStorage.setItem('LOGIN_SOURCE_PAGE', sourcePage)
}

function setOrderDetailViewSourcePage(sourcePage) {
    localStorage.setItem('ORDER_DETAIL_VIEW_SOURCE_PAGE', sourcePage)
}

function setQuotationDetailViewSourcePage(sourcePage) {
    localStorage.setItem('QUOTATION_DETAIL_VIEW_SOURCE_PAGE', sourcePage)
}

//神策埋点：推荐点击
function sendSensorRecommend(currentPage, recommendName, itemObj) {
    var trackParam = {
        current_page: currentPage,
        recommend_name: recommendName,
        series_cd: itemObj.seriesCode ? itemObj.seriesCode : '',
        series_name: itemObj.seriesName ? itemObj.seriesName : '',
        brand_cd: itemObj.brandCode ? itemObj.brandCode : '',
        brand_name: itemObj.brandName ? itemObj.brandName : '',
    }
    if (itemObj.categoryList) {
        for (let i = 1; i < 6; i++) {
            if (i < itemObj.categoryList.length) {
                trackParam['category' + (i) + '_cd'] = itemObj.categoryList[i].categoryCode
                trackParam['category' + (i) + '_name'] = itemObj.categoryList[i].categoryName
            } else if (i === itemObj.categoryList.length && itemObj.categoryCode && itemObj.categoryName) {
                trackParam['category' + (i) + '_cd'] = itemObj.categoryCode
                trackParam['category' + (i) + '_name'] = itemObj.categoryName
            } else {
                trackParam['category' + (i) + '_cd'] = ''
                trackParam['category' + (i) + '_name'] = ''
            }
        }
    }
    if (itemObj.innerCode) {
        trackParam['inner_cd'] = itemObj.innerCode
    }
    sensors.track('Recommend', trackParam);
}

function sendSensorRegisterButtonClick(buttonType) {
    //埋点：点击免费注册按钮
    sensors.track('RegisterButtonClick', {
        // button_type: '登陆画面'
        button_type: buttonType
    });
}

function sendSensorBannerClick(area, bannerId, bannerName, bannerRank) {
//埋点：点击运营位(点击首页轮播图第一至六张（普通）)
    sensors.track('BannerClick', {
        // banner_belong_area: '首页轮播图',
        banner_belong_area: area,
        banner_name: bannerName,
        banner_id: bannerId,
        banner_rank: bannerRank
    });
}

function sendSensorOrderDetailView() {
    //埋点：OrderDetail
    var source = localStorage.getItem("ORDER_DETAIL_VIEW_SOURCE_PAGE")
    if (source) {
        // sensors.track('OrderDetailView', {
        //     source_page: source
        // });
        localStorage.removeItem("ORDER_DETAIL_VIEW_SOURCE_PAGE")
    }
}

function sendSensorQuotationDetailView() {
    //埋点：QuotationDetail
    var source = localStorage.getItem("QUOTATION_DETAIL_VIEW_SOURCE_PAGE")
    if (source) {
        // sensors.track('QuotationDetailView', {
        //     source_page: source
        // });
        localStorage.removeItem("QUOTATION_DETAIL_VIEW_SOURCE_PAGE")
    }
}

function sendSensorHomePageClick(buttonType, buttonName) {
    //埋点：首页点击(客服)
    sensors.track('HomePageClick', {
        button_type: buttonType,
        button_name: buttonName
    });
}

//不止是技术之窗 其他链接也写在这个函数里的
function isTechinfoUrl(url) {
    var urlList = ['techinfo.misumi.com.cn', 'techinfo-stg.misumi.com.cn', 'www.wjx.cn', 'wjx.cn', 'wjx.top', 'www.wjx.top', 'convertlab.com', 'www.convertlab.com']
    var results = urlList.filter((item) => {
        return url.toString().indexOf(item) != -1
    })
    if (results.length > 0) {
        //大于0 说明当前判断url里面包含白名单域名
        return true
    } else {
        //没有在白名单里面
        return false
    }
}

function getValue(url) {
    //获取最后一个/的位置
    var site = url.lastIndexOf("\/");
    //截取最后一个/后的值
    return url.substring(site + 1, url.length);
}

//判断是否已经引入css js
function isInclude_(name) {
    var js = /js$/i.test(name);
    var es = document.getElementsByTagName(js ? 'script' : 'link');
    for (var i = 0; i < es.length; i++)
        if (es[i][js ? 'src' : 'href'].indexOf(name) != -1) return true;
    return false;
}

//加载外部js文件
function loadPageJs_(src, callback) {
    if (!isInclude_(getValue(src))) {
        var script = document.createElement('script'),
            head = document.getElementsByTagName('head')[0];
        script.type = 'text/javascript';
        script.charset = 'UTF-8';
        script.src = src + "?t=" + new Date().getTime();
        if (script.addEventListener) {
            script.addEventListener('load', function () {
                callback();
            }, false);
        } else if (script.attachEvent) {
            script.attachEvent('onreadystatechange', function () {
                var target = window.event.srcElement;
                if (target.readyState == 'loaded') {
                    callback();
                }
            });
        }
        head.appendChild(script);
    } else {
        callback()
    }

}

function parseUrlQueryAfterDecode(search) {
    search = (search || location.search || "").substr(1); // 拿到参数项，去掉问号
    // search = decodeURIComponent(search);

    return search.split("&").filter(item => item).reduce((obj, item) => {

        var newItem = []
        var keyPostion = item.indexOf('=')
        newItem[0] = item.substring(0, keyPostion)
        newItem[1] = decodeURIComponent(item.substring(keyPostion + 1))
        // let [key, value] = item.split("="); // 分隔为属性和值两部分
        let [key, value] = newItem // 分隔为属性和值两部分
        if (key in obj) { // 如果当前的key已经存在，那么这个值就要转变为数组
            if (Array.isArray(obj[key])) {
                obj[key].push(value)
            } else {
                obj[key] = [obj[key], value];
            }
        } else {
            obj[key] = value;
        }
        return obj;
    }, {})
}

function isWeiXin() {
    let ua = window.navigator.userAgent.toLowerCase();
    if (ua.match(/MicroMessenger/i) == 'micromessenger') {
        return true;
    } else {
        return false;
    }
}

// 设置值
function setValueExpire(key, value, hours) {
    const date = new Date();
    const expire = date.getTime() + (hours * 60 * 60 * 1000);
    localStorage.setItem(key, JSON.stringify({value: value, expire: expire}));
}

// 获取值
function getValueUtm(key) {
    const item = localStorage.getItem(key) ? JSON.parse(localStorage.getItem(key)) : '';
    const currentTime = new Date();
    if (!item) {
        return false;
    }
    if (currentTime.getTime() > item.expire) {
        localStorage.removeItem(key);
        return false;
    } else {
        return true;
    }
}


