
function ImagePreloader(){};ImagePreloader.prototype={callBack:null,images:null,totalImagesLoaded:0,totalImagesErrored:0,totalImagesAborted:0,totalImagesProcessed:0,initialise:function(imageUrls,callBack){var ref=this;ref.callBack=callBack;ref.totalImagesLoaded=0;ref.totalImagesErrored=0;ref.totalImagesAborted=0;ref.totalImagesProcessed=0;ref.images=new Array();ref.totalImagesToLoad=imageUrls.length;for(var i=0;i<imageUrls.length;i++){ref.preload(imageUrls[i]);}},preload:function(imageUrl)
{var ref=this;var imageObj=new Image;ref.images.push(imageObj);imageObj.loaded=false;imageObj.onload=function(){ref.onImageLoad(imageObj);};imageObj.errored=false;imageObj.onerror=function(){ref.onImageError(imageObj);};imageObj.aborted=false;imageObj.onabort=function(){ref.onImageAbort(imageObj);};imageObj.src=imageUrl;},onComplete:function()
{var ref=this;ref.totalImagesProcessed++;if(ref.totalImagesProcessed==ref.totalImagesToLoad){if(typeof ref.callBack=="function"){ref.callBack(ref.images,ref.totalImagesLoaded,ref.totalImagesErrored,ref.totalImagesAborted);}}},onImageLoad:function(imageObj){var ref=this;imageObj.loaded=true;ref.totalImagesLoaded++;ref.onComplete();},onImageError:function(imageObj){var ref=this;imageObj.errored=true;ref.totalImagesErrored++;ref.onComplete();},onImageAbort:function(imageObj){var ref=this;imageObj.aborted=true;ref.totalImagesAborted++;ref.onComplete();}};
(function($j){Code.registerNamespace('Website.Pages');Website.Pages.Homepage={settings:{animation:{rotationSpeed:6000,crossFadeSpeed:500,afterClickResetSpeed:12000},queryPaths:{header:'#Header',contentPrimary:'#ContentPrimary',footer:'#Footer',promoLinksContainer:'#ContentPrimary .js-promo-links',promoAnchor:'#ctl00_MainContentPlaceHolder_ButtonUrl',promoTitle:'#ctl00_MainContentPlaceHolder_ButtonUrl h2',promoIntro:'#ctl00_MainContentPlaceHolder_ButtonUrl p',promoImage:'#ctl00_MainContentPlaceHolder_FeatureImage',promoLinks:'#ContentPrimary .js-promo-links li'},cssClasses:{activePromotion:'js-active'}},_animationTimeout:null,_promoDetails:null,_promoImages:null,_currentPromoIndex:null,_crossFadeImage:null,_requestedPromo:-1,_scaleArtWorkContainer:function(){var self=this;var jArtWorkContainer=$j(self.settings.queryPaths.contentPrimary);var windowHeight=$j(window).height();if(windowHeight>580){var jArtWorkContainerHeight=windowHeight-$j(self.settings.queryPaths.header).height()-$j(self.settings.queryPaths.footer).height()-5;jArtWorkContainer.height(jArtWorkContainerHeight);}else{jArtWorkContainer.height(400);}},_handleNavSwitcherPos:function(resized){var self=this;var promotionLinksContainer=$j(self.settings.queryPaths.promoLinksContainer);var promoLinksWidth=promotionLinksContainer.width()/2;var promoLinksWidthVal="-"+promoLinksWidth+"px";promotionLinksContainer.css("margin-left",promoLinksWidthVal);},_loadPromos:function(){var self=this;$j.ajax({type:"GET",url:location.href,cache:false,success:function(json){var temp=Code.JSON.toObject(json);self._promoDetails=temp.promos;self._currentPromoIndex=0;var imagesToLoad=[];for(var i=0;i<self._promoDetails.length;i++){if(self._promoDetails[i].isCurrent)
self._currentPromoIndex=i;imagesToLoad.push(self._promoDetails[i].imageUrl);}
var imageLoader=new ImagePreloader();imageLoader.initialise(imagesToLoad,function(images,totalLoaded,totalErrored,totalAborted){self._promoImages=images;if(self._requestedPromo<0){self._animate();}
else{$j(self.settings.queryPaths.promoLinks).unblock();self._showPromoAfterClick(self._requestedPromo);self._requestedPromo=-1;}});}});$j(self.settings.queryPaths.promoLinks).click(function(event){self._onPromoLinkClick(event.currentTarget,event);});},_onPromoLinkClick:function(target,event){var self=this;event.preventDefault();var index=$j(self.settings.queryPaths.promoLinks).index(target);if(self._hasLoadedPromos()){self._showPromoAfterClick(index);}
else{$j(self.settings.queryPaths.promoLinks).unblock();$j(target).block({message:null,overlayCSS:{background:'transparent url('+Code.resolveUrl('~/_Client/Images/Global/SmallAjaxLoader.gif')+') 8px 7px no-repeat',opacity:0.2}});self._requestedPromo=index;}},_showPromoAfterClick:function(index){var self=this;self._stopAnimation();self._showPromo(index);self._animationTimeout=setTimeout(function(){self._animate();},self.settings.animation.afterClickResetSpeed);},_hasLoadedPromos:function(){var self=this;return Code.Type.isArray(self._promoImages);},_animate:function(){var self=this;self._animationTimeout=setTimeout(function(){self._currentPromoIndex++;self._showPromo(self._currentPromoIndex);self._animate();},self.settings.animation.rotationSpeed);},_stopAnimation:function(){var self=this;clearTimeout(self._animationTimeout);},_showPromo:function(index){var self=this;if(index<0||index>=self._promoDetails.length){index=0;}
self._currentPromoIndex=index;var promo=self._promoDetails[index];$j(self.settings.queryPaths.promoAnchor).attr('href',promo.pageUrl);$j(self.settings.queryPaths.promoTitle).text(promo.title);$j(self.settings.queryPaths.promoIntro).text(promo.introText);if(!Code.Type.isNothing(self._crossFadeImage)){self._crossFadeImage.stop();}
self._crossFadeImage=null;for(var i=0;i<self._promoImages.length;i++)
{var img=self._promoImages[i];if(img.src.indexOf(promo.imageUrl)>0)
{self._crossFadeImage=$j(img);}}
var currentImageSrc=$j(self.settings.queryPaths.promoImage).attr('src');if(self._crossFadeImage.attr('src')==currentImageSrc){return;}
self._crossFadeImage.css({position:'absolute',top:0,left:0,opacity:1}).hide().appendTo($j(self.settings.queryPaths.promoAnchor)).fadeIn(self.settings.animation.crossFadeSpeed,function(){var id=$j(self.settings.queryPaths.promoImage).attr('id');$j(self.settings.queryPaths.promoImage).remove();self._crossFadeImage.attr('id',id);self._crossFadeImage=null;});},onReady:function(){var self=this;self._loadPromos();self._handleNavSwitcherPos();self._scaleArtWorkContainer();$j(window).resize(function(){self._scaleArtWorkContainer();});}};$j().ready(function(){Website.Pages.Homepage.onReady();});})(jQuery);