var PageElements;(function(n){var t=function(){function n(n,t,i,r,u,f){this.name=n;this.filepath=t;this.filesuffix=i;this.speed=r;this.scene=u;this.images=f}return n}();n.ShowcaseDefinition=t})(PageElements||(PageElements={})),function(n){var t=function(){function t(n){this.showcases=[];this.defaultSpeed360=500;this.defaultSpeedShowcase=300;this.parseXml(n)}return t.prototype.parseXml=function(n){var t=this;this.basePath=n.find("fsi_parameter FPX Base").attr("value");n.find("fsi_parameter Images Image").length==0?this.addShowcase(n,!0):n.find("fsi_parameter Images Image").each(function(n,i){var r=$(i);t.addShowcase(r,n==0)})},t.prototype.parseSceneSet=function(n,t){var i=[],c,f,r,e,o,s,h,l,u;if(!n)return i.push(0),i;for(c=n.split(","),f=0;f<c.length;f++)if(r=c[f].split("-"),r.length==1)i.push(Math.max(parseInt(r[0],10),1)-1);else if(r.length==2)if(e=Math.max(parseInt(r[0],10),1),o=Math.max(parseInt(r[1],10),1),e<o)for(s=e;s<=o;s++)i.push(s-1);else for(h=e;h>=o;h--)i.push(h-1);else continue;if(t){for(l=[],u=0;
u<i.length;u++)i[u]%2==0&&l.push(i[u]);return l}return i},t.prototype.addShowcase=function(t,i){var e=t.attr("label")?t.attr("label"):"360°",r=t.find("images3d").attr("prefix"),f;r=r?r:"";var o=t.find("images3d").attr("suffix"),s=t.find("Options SceneSets").attr("value"),u=[];t.find("images3d image").each(function(n,t){var i=$(t);u.push(i.attr("src"))});f=i?this.defaultSpeed360:this.defaultSpeedShowcase;this.showcases.push(new n.ShowcaseDefinition(e,r,o,f,this.parseSceneSet(s,i),u))},t.prototype.getShowCaseByIndex=function(n){return this.showcases[n]?this.showcases[n]:this.showcases[0]},t.prototype.getShowCaseByPrefix=function(n){for(var i=this.showcases.length,t=0;t<i;t++)if(this.showcases[t].filepath==n)return this.showcases[t];return this.showcases[0]},t.prototype.getBasePath=function(){return this.basePath},t}();n.ShowcaseFsiFile=t}(PageElements||(PageElements={})),function(n){var t=function(){function t(){}return t.prototype.generateConfiguration=function(t){return new n.ShowcaseFsiFile($(t))},t.prototype.
load=function(n){var i=this,t=$.Deferred();return $.ajax({method:"get",url:n,dataType:"xml"}).then(function(n){t.resolve(i.generateConfiguration(n))},function(){t.reject()}),t.promise()},t}();n.ShowcaseFsiLoader=t;DependencySystem.define(t).as(DS.Singleton,"ShowcaseFsiLoader")}(PageElements||(PageElements={})),function(n){var t=function(){function n(n,t,i){this.loader=t;this.freezer=i;this.initialized=!1;this.showcaseIndex=0;this.imageIndex=0;this.jpegQuality=80;this.lazyLoadingDistance=500;this.container=n.contextQuery;this.innerContainer=this.container.children("div");this.fsiUrl=this.container.data("fsitarget");this.loadingSpinnerIcon=this.container.data("loader");this.showcaseIndex=parseInt(this.container.data("index"));this.targetShowcasePrefix=this.container.data("prefix");this.prepareContainer();this.registerLazyLoading()}return n.prototype.registerLazyLoading=function(){this.lazyLoadSubscriptions=eventAggregator.subscribeMultiple([{message:Common.EventNames.WindowScrolled,callback:this.checkNearViewport.
bind(this)},{message:Common.EventNames.WindowSizeChanged,callback:this.checkNearViewport.bind(this)},{message:Common.EventNames.OrientationHasChanged,callback:this.checkNearViewport.bind(this)}]);this.checkNearViewport()},n.prototype.registerViewportEvents=function(){this.inViewportSubscriptions=eventAggregator.subscribeMultiple([{message:Common.EventNames.WindowScrolled,callback:this.onViewportChange.bind(this)},{message:Common.EventNames.WindowSizeChanged,callback:this.onViewportChange.bind(this)},{message:Common.EventNames.OrientationHasChanged,callback:this.onViewportChange.bind(this)}])},n.prototype.prepareContainer=function(){this.innerContainer.empty().append('<img class="preview spinner" src="'+this.loadingSpinnerIcon+'" style="position: relative; left: 0; right: 0; bottom: 0; top: 0; margin: auto; display: none;">')},n.prototype.loadFsiFile=function(n){var t=this;this.imageParameters=this.getImageParameters();this.showLoadingSpinner();this.loader.load(n).then(function(n){t.fsiFile=n;t.initializeShowcase(
)})},n.prototype.showLoadingSpinner=function(){this.innerContainer.find(".preview.spinner").show()},n.prototype.hideLoadingSpinner=function(){this.innerContainer.find(".preview.spinner").hide()},n.prototype.getWidthByAspectRatio=function(){var n=this.getAspectRatio(this.container.data("aspect-ratio-horizontal"),this.container.data("aspect-ratio-vertical"));return n?Math.round(this.container.height()*n):0},n.prototype.getHeightByAspectRatio=function(){var n=this.getAspectRatio(this.container.data("aspect-ratio-vertical"),this.container.data("aspect-ratio-horizontal"));return n?Math.round(this.container.width()*n):0},n.prototype.getAspectRatio=function(n,t){return parseInt(n)/parseInt(t)},n.prototype.getWidth=function(){return Math.round(this.container.width()||this.getWidthByAspectRatio())},n.prototype.getHeight=function(){return Math.round(this.container.height()||this.getHeightByAspectRatio())},n.prototype.hasBackgroundColor=function(){return this.innerContainer.css("background-color").match(/rgb\((.+)\)/g)!=
null},n.prototype.getBackgroundColor=function(){var n=this.innerContainer.css("background-color").match(/\d+/g);return Number(n[0]).toString(16)+Number(n[1]).toString(16)+Number(n[2]).toString(16)},n.prototype.getImageParameters=function(){var n="&width="+this.getWidth()+"&height="+this.getHeight();return n+(this.hasBackgroundColor()?"&effects=matte("+this.getBackgroundColor()+")&quality="+this.jpegQuality+"&profile=jpeg":"&profile=png")},n.prototype.initializeShowcase=function(){var n=this,i=[],t;this.runningShowcase=this.targetShowcasePrefix?this.fsiFile.getShowCaseByPrefix(this.targetShowcasePrefix):this.fsiFile.getShowCaseByIndex(this.showcaseIndex);t=[];this.runningShowcaseMaxFrame=this.runningShowcase.scene.length-1;this.runningShowcase.images.forEach(function(r,u){for(var o=!1,f=0;f<n.runningShowcase.scene.length;f++)if(n.runningShowcase.scene[f]===u){o=!0;break}if(o){var h=n.fsiFile.getBasePath()+n.runningShowcase.filepath+r+n.runningShowcase.filesuffix+n.imageParameters,s=$('<img class="preview image" data-scindex="'+
u+'" style="margin: auto; max-height: 100%; max-width: 100%; display: none;">'),e=$.Deferred();i.push(e.promise());s.one("error",function(){e.reject()}).one("load",function(){e.resolve()}).attr("src",h);t.push(s)}});this.innerContainer.append(t);$.when.apply($,i).then(function(){n.images=[];n.innerContainer.find(".preview.image").each(function(t,i){var r=$(i),u=parseInt(r.data("scindex"));n.images[u]=r});n.hideLoadingSpinner();n.images[0].css("display","block");n.initialized=!0;n.registerViewportEvents();n.setupFreezer();n.onViewportChange()},function(){n.innerContainer.empty()})},n.prototype.setupFreezer=function(){var n=this;this.freezer.introduce(this.container,this.pause.bind(this),this.play.bind(this),function(){return n.isAnimating})},n.prototype.play=function(){!this.intervalTimer&&this.initialized&&(this.isAnimating=!0,this.intervalTimer=setInterval(this.showNextFrame.bind(this),this.runningShowcase.speed))},n.prototype.pause=function(){this.intervalTimer&&(this.isAnimating=!1,clearInterval(this.intervalTimer),
this.intervalTimer=0)},n.prototype.showNextFrame=function(){var n=this.imageIndex;this.imageIndex>=this.runningShowcaseMaxFrame?this.imageIndex=0:this.imageIndex++;this.images[this.runningShowcase.scene[n]].css("display","none");this.images[this.runningShowcase.scene[this.imageIndex]].css("display","block")},n.prototype.onViewportChange=function(){var n=this.container[0].getBoundingClientRect();n.bottom<0||n.top>window.innerHeight||this.container.is(":hidden")?this.pause():this.play()},n.prototype.checkNearViewport=function(){var n=this.innerContainer[0].getBoundingClientRect();n.bottom>0&&n.top-this.lazyLoadingDistance>window.innerHeight||n.top<0&&n.bottom<0||this.innerContainer.is(":hidden")||(eventAggregator.unSubscribeMultiple(this.lazyLoadSubscriptions),this.loadFsiFile(this.fsiUrl))},n.prototype.destroy=function(){this.intervalTimer&&clearInterval(this.intervalTimer);this.lazyLoadSubscriptions&&eventAggregator.unSubscribeMultiple(this.lazyLoadSubscriptions);this.inViewportSubscriptions&&eventAggregator.
unSubscribeMultiple(this.inViewportSubscriptions)},n}();n.ShowcaseController=t;DependencySystem.define(t).as(DS.Controller).andInject([DS.Origin,n.ShowcaseFsiLoader,Common.Freezer])}(PageElements||(PageElements={})),function(n){var t=function(){function t(){}return t.componentName="showcase-component",t.query=".showcase, .dlp-showcase",t.controller=n.ShowcaseController,t}();n.ShowcaseComponent=t;DependencySystem.define(t).as(DS.Component)}(PageElements||(PageElements={}))