﻿// (c) 2010 CodePlex Foundation
(function(){var b="ExtendedSlideShow";function a(){var c=true,f="slideChanging",e="slideChanged",d="click",b=false,a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.SlideShowBehavior=function(d){var c=this;Sys.Extended.UI.SlideShowBehavior.initializeBase(c,[d]);c._nextButtonID=a;c._previousButtonID=a;c._imageDescriptionLabelID=a;c._imageTitleLabelID=a;c._playButtonID=a;c._playButtonValue="||>";c._stopButtonValue="[]";c._slideShowServicePath=location.pathname;c._slideShowServiceMethod=a;c._contextKey=a;c._useContextKey=b;c._playInterval=3e3;c._tickHandler=a;c._loop=b;c._autoPlay=b;c._inPlayMode=b;c._elementImage=a;c._bNext=a;c._bPrevious=a;c._currentIndex=-1;c._currentValue=a;c._imageDescriptionLabel=a;c._imageTitleLabel=a;c._bPlay=a;c._slides=a;c._timer=a;c._currentImageElement=a;c._images=a;c._cachedImageIndex=-1;c._clickNextHandler=a;c._clickPreviousHandler=a;c._clickPlayHandler=a;c._tickHandler=a;c._imageLoadedHandler=a};Sys.Extended.UI.SlideShowBehavior.prototype={initialize:function(){var a=this;Sys.Extended.UI.SlideShowBehavior.callBaseMethod(a,"initialize");var b=a.get_element();a._elementImage=b;a._currentImageElement=document.createElement("IMG");a._currentImageElement.style.display="none";document.body.appendChild(a._currentImageElement);var c=document.createElement("DIV");b.parentNode.insertBefore(c,b);b.parentNode.removeChild(b);c.appendChild(b);c.align="center";a.controlsSetup();if(a._bNext){a._clickNextHandler=Function.createDelegate(a,a._onClickNext);$addHandler(a._bNext,d,a._clickNextHandler)}if(a._bPrevious){a._clickPreviousHandler=Function.createDelegate(a,a._onClickPrevious);$addHandler(a._bPrevious,d,a._clickPreviousHandler)}if(a._bPlay){a._clickPlayHandler=Function.createDelegate(a,a._onClickPlay);$addHandler(a._bPlay,d,a._clickPlayHandler)}a._imageLoadedHandler=Function.createDelegate(a,a._onImageLoaded);$addHandler(a._currentImageElement,"load",a._imageLoadedHandler);a._slideShowInit()},dispose:function(){var b=this;if(b._clickNextHandler){$removeHandler(b._bNext,d,b._clickNextHandler);b._clickNextHandler=a}if(b._clickPreviousHandler){$removeHandler(b._bPrevious,d,b._clickPreviousHandler);b._clickPreviousHandler=a}if(b._clickPlayHandler){$removeHandler(b._bPlay,d,b._clickPlayHandler);b._clickPlayHandler=a}if(b._imageLoadedHandler){$removeHandler(b._currentImageElement,"load",b._imageLoadedHandler);b._imageLoadedHandler=a}if(b._timer){b._timer.dispose();b._timer=a}Sys.Extended.UI.SlideShowBehavior.callBaseMethod(b,"dispose")},add_slideChanged:function(a){this.get_events().addHandler(e,a)},remove_slideChanged:function(a){this.get_events().removeHandler(e,a)},raiseSlideChanged:function(a){var b=this.get_events().getHandler(e);if(b){if(!a)a=Sys.EventArgs.Empty;b(this,a)}},add_slideChanging:function(a){this.get_events().addHandler(f,a)},remove_slideChanging:function(a){this.get_events().removeHandler(f,a)},raiseSlideChanging:function(d,e){var c=this.get_events().getHandler(f);if(c){var a=new Sys.Extended.UI.SlideShowEventArgs(d,e,this._currentIndex);c(this,a);return a.get_cancel()}return b},get_contextKey:function(){return this._contextKey},set_contextKey:function(b){var a=this;if(a._contextKey!=b){a._contextKey=b;a.set_useContextKey(c);a._elementImage&&a._slideShowInit();a.raisePropertyChanged("contextKey")}},get_useContextKey:function(){return this._useContextKey},set_useContextKey:function(a){if(this._useContextKey!=a){this._useContextKey=a;this.raisePropertyChanged("useContextKey")}},controlsSetup:function(){var a=this;if(a._previousButtonID)a._bPrevious=document.getElementById(a._previousButtonID);if(a._imageDescriptionLabelID)a._imageDescriptionLabel=document.getElementById(a._imageDescriptionLabelID);if(a._imageTitleLabelID)a._imageTitleLabel=document.getElementById(a._imageTitleLabelID);if(a._nextButtonID)a._bNext=document.getElementById(a._nextButtonID);if(a._playButtonID){a._bPlay=document.getElementById(a._playButtonID);a._bPlay.value=a._playButtonValue}},resetButtons:function(){var a=this;if(!a._loop){if(a._slides.length<=a._currentIndex+1){if(a._bNext)a._bNext.disabled=c;if(a._bPlay)a._bPlay.disabled=c;if(a._bPrevious)a._bPrevious.disabled=b;a._inPlayMode=b;a._timer&&a._timer.set_enabled(b);if(a._bPlay)a._bPlay.value=a._playButtonValue}else{if(a._bNext)a._bNext.disabled=b;if(a._bPlay)a._bPlay.disabled=b}if(a._currentIndex<=0){if(a._bPrevious)a._bPrevious.disabled=c}else if(a._bPrevious)a._bPrevious.disabled=b}else if(a._slides.length==0){if(a._bPrevious)a._bPrevious.disabled=c;if(a._bNext)a._bNext.disabled=c;if(a._bPlay)a._bPlay.disabled=c}if(a._inPlayMode){a._timer.set_enabled(b);a._timer.set_enabled(c)}},resetSlideShowButtonState:function(){var a=this;if(a._inPlayMode){if(a._bPlay)a._bPlay.value=a._stopButtonValue}else{a.resetButtons();if(a._bPlay)a._bPlay.value=a._playButtonValue}},setCurrentImage:function(){var a=this;if(a._slides[a._currentIndex])a._currentImageElement.src=a._slides[a._currentIndex].ImagePath;else a._currentImageElement.src="";Sys.Browser.agent==Sys.Browser.Opera&&a._onImageLoaded(c)},updateImage:function(b){var a=this;if(b){if(a.raiseSlideChanging(a._currentValue,b))return;a._currentValue=b;a._elementImage.src=b.ImagePath;a._elementImage.alt=b.Name;if(a._imageDescriptionLabel)a._imageDescriptionLabel.innerHTML=b.Description?b.Description:"";if(a._imageTitleLabel)a._imageTitleLabel.innerHTML=b.Name?b.Name:"";a.raiseSlideChanged(b);a.resetButtons()}},get_imageDescriptionLabelID:function(){return this._imageDescriptionLabelID},set_imageDescriptionLabelID:function(a){if(this._imageDescriptionLabelID!=a){this._imageDescriptionLabelID=a;this.raisePropertyChanged("imageDescriptionLabelID")}},get_imageTitleLabelID:function(){return this._imageTitleLabelID},set_imageTitleLabelID:function(a){if(this._imageTitleLabelID!=a){this._imageTitleLabelID=a;this.raisePropertyChanged("imageTitleLabelID")}},get_nextButtonID:function(){return this._nextButtonID},set_nextButtonID:function(a){if(this._nextButtonID!=a){this._nextButtonID=a;this.raisePropertyChanged("nextButtonID")}},get_playButtonID:function(){return this._playButtonID},set_playButtonID:function(a){if(this._playButtonID!=a){this._playButtonID=a;this.raisePropertyChanged("playButtonID")}},get_playButtonText:function(){return this._playButtonValue},set_playButtonText:function(a){if(this._playButtonValue!=a){this._playButtonValue=a;this.raisePropertyChanged("playButtonText")}},get_stopButtonText:function(){return this._stopButtonValue},set_stopButtonText:function(a){if(this._stopButtonValue!=a){this._stopButtonValue=a;this.raisePropertyChanged("stopButtonText")}},get_playInterval:function(){return this._playInterval},set_playInterval:function(a){if(this._playInterval!=a){this._playInterval=a;this.raisePropertyChanged("playInterval")}},get_previousButtonID:function(){return this._previousButtonID},set_previousButtonID:function(a){if(this._previousButtonID!=a){this._previousButtonID=a;this.raisePropertyChanged("previousButtonID")}},get_slideShowServicePath:function(){return this._slideShowServicePath},set_slideShowServicePath:function(a){if(this._slideShowServicePath!=a){this._slideShowServicePath=a;this.raisePropertyChanged("slideShowServicePath")}},get_slideShowServiceMethod:function(){return this._slideShowServiceMethod},set_slideShowServiceMethod:function(a){if(this._slideShowServiceMethod!=a){this._slideShowServiceMethod=a;this.raisePropertyChanged("slideShowServiceMethod")}},get_loop:function(){return this._loop},set_loop:function(a){if(this._loop!=a){this._loop=a;this.raisePropertyChanged("loop")}},get_autoPlay:function(){return this._autoPlay},set_autoPlay:function(a){if(this._autoPlay!=a){this._autoPlay=a;this.raisePropertyChanged("autoPlay")}},_onClickNext:function(a){a.preventDefault();a.stopPropagation();this._clickNext()},_onImageLoaded:function(){var a=this;a.updateImage(a._slides[a._currentIndex]);a.resetButtons();a._cacheImages()},_clickNext:function(){var a=this;if(a._slides){if(a._currentIndex+1<a._slides.length)++a._currentIndex;else if(a._loop)a._currentIndex=0;else return b;a.setCurrentImage();return c}return b},_onClickPrevious:function(a){a.preventDefault();a.stopPropagation();this._clickPrevious()},_clickPrevious:function(){var a=this;if(a._slides){if(a._currentIndex-1>=0)--a._currentIndex;else if(a._loop)a._currentIndex=a._slides.length-1;else return b;a.setCurrentImage();return c}return b},_onClickPlay:function(a){a.preventDefault();a.stopPropagation();this._play()},_play:function(){var a=this;if(a._inPlayMode){a._inPlayMode=b;a._timer.set_enabled(b);a.resetSlideShowButtonState()}else{a._inPlayMode=c;if(!a._timer){a._timer=new Sys.Timer;a._timer.set_interval(a._playInterval);a._tickHandler=Function.createDelegate(a,a._onPlay);a._timer.add_tick(a._tickHandler)}a.resetSlideShowButtonState();a._timer.set_enabled(c)}},_onPlay:function(){var a=this;if(a._slides)if(a._currentIndex+1<a._slides.length){++a._currentIndex;a.setCurrentImage();return c}else if(a._loop){a._currentIndex=0;a.setCurrentImage();return c}else{a._inPlayMode=b;a.resetSlideShowButtonState()}return b},_slideShowInit:function(){var c=this;c._currentIndex=-1;c._cachedImageIndex=-1;c._inPlayMode=b;c._currentValue=a;c._images=a;var d=a;if(c._useContextKey)d={contextKey:c._contextKey};Sys.Net.WebServiceProxy.invoke(c._slideShowServicePath,c._slideShowServiceMethod,b,d,Function.createDelegate(c,c._initSlides),a,a)},_initSlides:function(b){var a=this;a._slides=b;if(a._slides){a._images=[];a._clickNext();a._autoPlay&&a._play()}},_cacheImages:function(){var a=this;if(a._currentIndex%3==0)for(var c=a._cachedImageIndex,b=a._cachedImageIndex+1;b<a._slides.length;b++)if(a._slides[b]){a._images[b]=new Image;a._images[b].src=a._slides[b].ImagePath;a._cachedImageIndex=b;if(c+4<=b)break}}};Sys.Extended.UI.SlideShowBehavior.registerClass("Sys.Extended.UI.SlideShowBehavior",Sys.Extended.UI.BehaviorBase);Sys.registerComponent(Sys.Extended.UI.SlideShowBehavior,{name:"slideShow"});Sys.Extended.UI.SlideShowEventArgs=function(b,d,c){var a=this;Sys.Extended.UI.SlideShowEventArgs.initializeBase(a);a._previousSlide=b;a._nextSlide=d;a._slideIndex=c};Sys.Extended.UI.SlideShowEventArgs.prototype={get_previousSlide:function(){return this._previousSlide},get_nextSlide:function(){return this._nextSlide},get_slideIndex:function(){return this._slideIndex}};Sys.Extended.UI.SlideShowEventArgs.registerClass("Sys.Extended.UI.SlideShowEventArgs",Sys.CancelEventArgs)}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedBase","ExtendedCommon","ExtendedTimer","Network"],a);else a()})();