var BannersController=function(){this.swiper=null,this.template=null,this.lastRefreshTimestamp=+new Date,this._afterRenderCallback=null,this._data={},this.visibilityDfd=$.Deferred(),this.onTapCallback=null,this.refreshInterval=null,this.$swiperRoot=null,this.$container=null,this.config={templateIdentifier:"script#banners_djangofy",ratio:10/3,refreshable:!1,api:"",CACHE_KEY:"",REFRESHINTERVAL:3e5,clientRender:!1,clickable:!0,afterRenderCallback:null,timeout:0,CLASS_NAME:".swiper-container",$container:$(".banner-container")},bridgeInit(function(){bridgeRegisterHandler("viewWillReappear",function(e,i){this.swiper&&this.swiper.startAutoplay&&this.swiper.startAutoplay()}),bridgeRegisterHandler("viewDidDisappear",function(e,i){this.swiper&&this.swiper.stopAutoplay&&this.swiper.stopAutoplay()})})};BannersController.prototype._callCallback=function(){this._afterRenderCallback&&this._afterRenderCallback(this._data)},BannersController.prototype._initSwiper=function(e,n){var a=this;if($(window).width()<100)setTimeout(function(){this._initSwiper(e,n)},300);else{if(0==this.$container.find(".swiper-slide").length)return this.$container.addClass("hide"),void this._callCallback();this.$container.removeClass("hide"),this._callCallback(),n=null==n||n;var r=this.$container.find(".swiper-container"),i=(isShopeeApp()&&isAndroid()&&((i=/version=[0-9]+/.exec(navigator.userAgent))&&i[0]&&(i=i[0].split("=")[1])<=12&&r.find(".swiper-slide").not(":first").remove()),r.find(".swiper-slide")),t=i.width(),s=t/e;i.height(s),i.find("img").height(s).width(t),this.swiper&&this.swiper.destroy(),this.swiper=gswiper_init(this.config.CLASS_NAME,{autoplay:5e3},!0);loadDelayedImages(r),gswiper_on_tap(r,this.swiper,function(e,i){var t=$(i.target);a.onTapCallback&&a.onTapCallback(t),t.hasClass("swiper-button-next")||$(i.target).hasClass("swiper-button-prev")||!n||(t=gswiper_get_active_slide(r),a._onTap(t))})}},BannersController.prototype._onTap=function(e){var i=JSON.parse(decodeURIComponent(e.data("params"))),e={catid:window.catid,page_type:window.PAGE_TYPE,tab_index:window.tabIndexForBI,banner_index:e.index()};if(window.WebViewJavascriptBridge){window.WebViewJavascriptBridge;if(this.swiper&&this.swiper.stopAutoplay&&this.swiper.stopAutoplay(),i.navigate_params){var t=i.navigate_params;if(e.banner_url=i.navigate_params.url,-1==t.url.indexOf("/collections/")||-1!=t.url.indexOf("/seller/collections/")||i.simple){if("#"==t.url)return;BJUtil.isOfficialShopLandingPageUrl(t.url)?this.navigateToOfficialShopUrl(t.url):bridgeCallHandler("navigate",i.navigate_params,function(){})}else BJUtil.navigateCollection(t.url,t.navbar.title)}else i.page_url&&i.page_title&&(e.banner_url=i.page_url,bridgeCallHandler("navigate",{url:i.page_url,navbar:{title:i.page_title}},function(){}))}else{t=i.page_url||i.navigate_params.seo_url||i.navigate_params.url;e.banner_url=t,BJUtil.isOfficialShopLandingPageUrl(t)?this.navigateToOfficialShopUrl(t):BJUtil.navigate(t,!0)}window.BI_ANALYTICS&&BI_ANALYTICS.clickActivityBanner(e)},BannersController.prototype.navigateToOfficialShopUrl=function(e){e=e.match(/-cat.(\d+)/i),e=e&&e[1]?e[1]:Constants.OFFICAL_SHOP_POPULAR_CATID;BJUtil.jumpToOfficialShopLanding(e)},BannersController.prototype.init=function(e){var i=this,t=(e.onTapCallback&&(this.onTapCallback=e.onTapCallback),$.extend(this.config,e),this.visibilityDfd);this.visibilityDfd=$.Deferred(),"pending"==t.state()&&this.visibilityDfd.then(function(){t.resolve()}),this.config.afterRenderCallback&&(this._afterRenderCallback=this.config.afterRenderCallback),document.hidden?$(document).one("visibilitychange",function(){i.visibilityDfd.resolve()}):this.visibilityDfd.resolve(),this.$container=this.config.$container,this.config.clientRender?(this.template=$(this.config.templateIdentifier).text(),bridgeCallHandler("load",{key:this.config.CACHE_KEY},function(e){if(e.data)try{i._render(JSON.parse(Base64.decode(e.data))),i._initSwiper(i.config.ratio,i.config.clickable)}catch(e){console.error(e)}i.refreshBannerFromServer()}),this.refreshInterval=setInterval(function(){i.refreshBannerFromServer()},this.config.REFRESHINTERVAL)):this._initSwiper(this.config.ratio,this.config.clickable)},BannersController.prototype._render=function(e){this._data=e,this.$container.find(".banner-container-inner").html(new BJDjangofy(this.template).render(e)),this.$container.attr("data-md5",e.banner_md5||e.version)},BannersController.prototype.refreshBannerFromServer=function(){var t=this,e=this.$container.attr("data-md5"),i={};this.lastRefreshTimestamp=+new Date,window.TARGETED_BANNER?e&&(i.version=e):i.md5=e,getJSON(this.config.api,i,function(e){if(e.has_new&&e.banners||window.TARGETED_BANNER&&!e.not_modified){for(var i=0;i<e.banners.length;i++)delete e.banners[i].params,e.banners[i].params=encodeURIComponent(JSON.stringify(e.banners[i]));t._render(e),t._initSwiper(t.config.ratio,t.config.clickable),bridgeCallHandler("save",{key:t.config.CACHE_KEY,data:Base64.encode(JSON.stringify(e)),persist:1})}},this.config.timeout).fail(function(){t._render(t._data),t._initSwiper(t.config.ratio,t.config.clickable)})},BannersController.prototype.getRefreshInterval=function(){return this.config.REFRESHINTERVAL},BannersController.prototype.getLastRefreshTimestamp=function(){return this.lastRefreshTimestamp},BannersController.prototype.destroy=function(){clearInterval(this.refreshInterval)};
//# sourceMappingURL=../../source_maps/home/banners.js.map
