var httpbase = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'shopmadeinchina.com'; function CartAnalysis() { var reg = /product\/[^_\/]*_(\d+)\.s?html/ig var map_element = {}; var element_obj = []; var download_count = 0; var last_offset = -1; var doc_body; var doc_element; var ua = navigator.userAgent.toLowerCase(); var searchId, openId; function initVar() { doc_body = document.body; doc_element = document.compatMode == 'BackCompat' ? doc_body : document.documentElement; }; function initElementMap() { var products = jQuery("body").html().match(reg); if (products != null) { var hreflist={} for ( var i = 0; i < products.length; i++) { href=products[i]; if (hreflist[href] != null) { continue; } var oo = $("a[href*='"+href+"']"); if (oo.length>0 && oo.find("img").length>0) { hreflist[href] = 1; map_element[i] = oo[0]; download_count++; } } } } ; function initDownloadListen() { if (!download_count) return; var offset = Math.max(document.body.scrollTop, document.documentElement.scrollTop); var visio_offset = offset + doc_element.clientHeight; last_offset = visio_offset; var visio_height = doc_element.clientHeight; var img_show_height = visio_height + offset; var productIds = ""; for (var key in map_element) { var t_o = map_element[key]; if ($(t_o).is(":hidden")) { continue; } var o_img = $(t_o).find("img")[0]; var o_top = getAbsoluteTop(o_img) if (img_show_height > o_top) { var href = t_o.getAttribute("href"); var pid = href.replace(/^.*?_(\d+).html/ig, "$1"); productIds += pid + "," delete map_element[key]; download_count--; } } if (productIds.length > 0) { saveProductShow(productIds); } var elementEmpty = true; for (var key in map_element) { elementEmpty = false; break; } if (!elementEmpty) { setTimeout(initDownloadListen, 200); } } ; function getAbsoluteTop(element) { if (arguments.length != 1 || element == null) { return null; } var offsetTop = element.offsetTop; while (element = element.offsetParent) { offsetTop += element.offsetTop; } return offsetTop; } function initProductShow() { initVar(); initElementMap(); setTimeout(initDownloadListen, 1000); } function saveVisit() { var params = {}; if (document) { params.domain = document.domain || ''; params.url = document.URL || ''; params.title = document.title || ''; params.referrer = document.referrer || ''; } if (window && window.screen) { params.sh = window.screen.height || 0; params.sw = window.screen.width || 0; params.cd = window.screen.colorDepth || 0; } if (navigator) { params.lang = navigator.language || ''; } if (_fdq) { for ( var i in _fdq) { switch (_fdq[i][0]) { case '_setAccount': params.account = _fdq[i][1]; break; default: break; } } } if (typeof (cartAnalysisSaveProduct) != "undefined" && cartAnalysisSaveProduct != null) { params.saveProduct = cartAnalysisSaveProduct; params.productId = cartAnalysisSaveProduct.productId; } if (typeof (cartAnalysisSaveOrder) != "undefined" && cartAnalysisSaveOrder != null) { params.saveOrder = cartAnalysisSaveOrder.ordersinfo; } // search if (typeof (cartAnalysisSaveSearch) != "undefined" && cartAnalysisSaveSearch != null) { params.saveSearch = cartAnalysisSaveSearch; } if (typeof (cartAnalysisSaveRegist) != "undefined" && cartAnalysisSaveRegist != null) { params.registerId = cartAnalysisSaveRegist.userId; } if (typeof (cartAnalysisSaveBuyer) != "undefined" && cartAnalysisSaveBuyer != null) { params.buyerId = cartAnalysisSaveBuyer.buyerId; } if (typeof (cartAnalysisSaveStore) != "undefined" && cartAnalysisSaveStore != null) { params.storeId = cartAnalysisSaveStore.storeId; if (cartAnalysisSaveStore.pageIndex != null) { params.pageIndex = cartAnalysisSaveStore.pageIndex; } } jQuery.getJSON(httpbase + "/stat/action/statistics.VisitStatAction?" + Math.random() + "&jsoncallback=?", params, function(data) { searchId = data.result; openId = data.openId; initProductShow(); }); } function clickProd(productId, p) { if (searchId == 0) { return; } var params = "?url=" + encodeURIComponent(document.location); params = params + "&sid=" + searchId + "&productId=" + productId + "&p=" + p; var url = httpbase + "/stat/action/statistics.ClickSearchProductAction"; jQuery.getScript(url + params + "&r=" + Math.random()); } function visitLogin(userId) { var params = "?referer=" + encodeURIComponent(document.referrer) + "&url=" + encodeURIComponent(document.location) + "&userId=" + userId; var url = httpbase + "/stat/action/statistics.SaveBuyerStatAction"; jQuery.getScript(url + params + "&r=" + Math.random()); } function visitRegister(userId) { var params = "?referer=" + encodeURIComponent(document.referrer) + "&url=" + encodeURIComponent(document.location) + "®User=" + userId; var url = httpbase + "/stat/action/statistics.SaveBuyerStatAction"; jQuery.getScript(url + params + "&r=" + Math.random()); } function saveSearch(keywords, pageSize, pageIndex, resultCount) { var params = "?url=" + encodeURIComponent(document.location); params = params + "&keywords=" + encodeURIComponent(keywords); params = params + "&pageSize=" + encodeURIComponent(pageSize); params = params + "&pageIndex=" + encodeURIComponent(pageIndex); params = params + "&resultCount=" + encodeURIComponent(resultCount); var url = httpbase + "/stat/action/statistics.SaveSearchAction" + params + "&r=" + Math.random(); jQuery.getScript(url); } function saveOrder(ordersinfo, cb) { var params = "?url=" + encodeURIComponent(document.location); params = params + "&ordersinfo=" + encodeURIComponent(ordersinfo); var url = httpbase + "/stat/action/statistics.OrderStatAction"; var cb = cb || function() { }; jQuery.getScript(url + params + "&r=" + Math.random(), cb); } function saveProduct(productIds, cart) { var params = "?url=" + encodeURIComponent(document.location); params = params + "&productIds=" + productIds + "&cart=" + cart; var url = httpbase + "/stat/action/statistics.ProductStatAction"; jQuery.getScript(url + params + "&r=" + Math.random()); } function saveProductShow(productIds) { var params = "?url=" + encodeURIComponent(document.location); params = params + "&productIds=" + productIds + "&openId=" + openId; var url = httpbase + "/stat/action/statistics.SaveProductShowAction"; jQuery.getScript(url + params + "&r=" + Math.random()); } return { clickProd : clickProd, visitLogin : visitLogin, visitRegister : visitRegister, saveProductShow : saveProductShow, saveVisit : saveVisit } } var cartAnalysis = new CartAnalysis(); jQuery("document").ready(function() { cartAnalysis.saveVisit() }); function clickProd(productId, p) { cartAnalysis.clickProd(productId, p); }