Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.SlideShowBehavior = function(element) { Sys.Extended.UI.SlideShowBehavior.initializeBase(this, [element]); // Properties this._nextButtonID = null; this._previousButtonID = null; this._imageDescriptionLabelID = null; this._imageTitleLabelID = null; this._playButtonID = null; this._playButtonValue = '||>'; this._stopButtonValue = '[]'; this._slideShowServicePath = location.pathname; this._slideShowServiceMethod = null; this._contextKey = null; this._useContextKey = false; this._playInterval = 3000; this._tickHandler = null; this._loop = false; this._autoPlay = false; this._slideShowAnimationType = Sys.Extended.UI.SlideShowAnimationType.None; this._imageHeight = 300; this._imageWidth = 400; // Variables this._inPlayMode = false; this._elementImage = null; this._bNext = null; this._bPrevious = null; this._currentIndex = -1; this._currentValue = null; this._imageDescriptionLabel = null; this._imageTitleLabel = null; this._bPlay = null; this._slides = null; this._timer = null; this._currentImageElement = null; this._images = null; this._cachedImageIndex = -1; this._current = 0; this._previousImage = null; this._currentImage = null; this._nextImage = null; this._isNext = false; // Delegates this._clickNextHandler = null; this._clickPreviousHandler = null; this._clickPlayHandler = null; this._tickHandler = null; this._imageLoadedHandler = null; } Sys.Extended.UI.SlideShowBehavior.prototype = { initialize: function() { Sys.Extended.UI.SlideShowBehavior.callBaseMethod(this, 'initialize'); var e = this.get_element(); this._elementImage = e; // check if browser supports animation or not. if(!this.supportsAnimation('transition')) this._slideShowAnimationType = Sys.Extended.UI.SlideShowAnimationType.None; if(this._slideShowAnimationType != Sys.Extended.UI.SlideShowAnimationType.SlideRight || this._slideShowAnimationType != Sys.Extended.UI.SlideShowAnimationType.SlideDown) { // create an invisible img element this._currentImageElement = document.createElement('IMG'); this._currentImageElement.style.display = 'none'; document.body.appendChild(this._currentImageElement); //Create a new parent for Image var _divContent = document.createElement('DIV'); e.parentNode.insertBefore(_divContent, e); e.parentNode.removeChild(e); _divContent.appendChild(e); _divContent.align = 'center'; this._imageLoadedHandler = Function.createDelegate(this, this._onImageLoaded); $addHandler(this._currentImageElement, 'load', this._imageLoadedHandler); } this.controlsSetup(); // Create handlers for slide show buttons clicks events and for image loaded events. if(this._bNext) { this._clickNextHandler = Function.createDelegate(this, this._onClickNext); $addHandler(this._bNext, 'click', this._clickNextHandler); } if(this._bPrevious) { this._clickPreviousHandler = Function.createDelegate(this, this._onClickPrevious); $addHandler(this._bPrevious, 'click', this._clickPreviousHandler); } if(this._bPlay) { this._clickPlayHandler = Function.createDelegate(this, this._onClickPlay); $addHandler(this._bPlay, 'click', this._clickPlayHandler); } // init slide show this._slideShowInit(); }, dispose: function() { if(this._clickNextHandler) { $removeHandler(this._bNext, 'click', this._clickNextHandler); this._clickNextHandler = null; } if(this._clickPreviousHandler) { $removeHandler(this._bPrevious, 'click', this._clickPreviousHandler); this._clickPreviousHandler = null; } if(this._clickPlayHandler) { $removeHandler(this._bPlay, 'click', this._clickPlayHandler); this._clickPlayHandler = null; } if(this._imageLoadedHandler) { $removeHandler(this._currentImageElement, 'load', this._imageLoadedHandler); this._imageLoadedHandler = null; } if(this._timer) { this._timer.dispose(); this._timer = null; } Sys.Extended.UI.SlideShowBehavior.callBaseMethod(this, 'dispose'); }, add_slideChanged: function(handler) { this.get_events().addHandler('slideChanged', handler); }, remove_slideChanged: function(handler) { this.get_events().removeHandler('slideChanged', handler); }, raiseSlideChanged: function(eventArgs) { var handler = this.get_events().getHandler('slideChanged'); if(handler) { if(!eventArgs) eventArgs = Sys.EventArgs.Empty; handler(this, eventArgs); } }, add_slideChanging: function(handler) { this.get_events().addHandler('slideChanging', handler); }, remove_slideChanging: function(handler) { this.get_events().removeHandler('slideChanging', handler); }, raiseSlideChanging: function(previousSlide, newSlide) { var handler = this.get_events().getHandler('slideChanging'); if(handler) { var eventArgs = new Sys.Extended.UI.SlideShowEventArgs(previousSlide, newSlide, this._currentIndex); handler(this, eventArgs); return eventArgs.get_cancel(); } return false; }, get_contextKey: function() { // User/page specific context provided to an optional overload of the // web method described by ServiceMethod/ServicePath. If the context // key is used, it should have the same signature with an additional // parameter named contextKey of type string. return this._contextKey; }, set_contextKey: function(value) { if(this._contextKey != value) { this._contextKey = value; this.set_useContextKey(true); // if initialize has not been called // then do not reset the slideshow. if(this._elementImage) this._slideShowInit(); this.raisePropertyChanged('contextKey'); } }, get_useContextKey: function() { // Whether or not the ContextKey property should be used. This will be // automatically enabled if the ContextKey property is ever set // (on either the client or the server). If the context key is used, // it should have the same signature with an additional parameter // named contextKey of type string. return this._useContextKey; }, set_useContextKey: function(value) { if(this._useContextKey != value) { this._useContextKey = value; this.raisePropertyChanged('useContextKey'); } }, get_imageWidth: function() { // To fix the size of container to display slides smoothly. return this._imageWidth; }, set_imageWidth: function(value) { if(this._imageWidth != value) { this._imageWidth = value; this.raisePropertyChanged('imageWidth'); } }, get_imageHeight: function() { // To fix the size of container to display slides smoothly. return this._imageHeight; }, set_imageHeight: function(value) { if(this._imageHeight != value) { this._imageHeight = value; this.raisePropertyChanged('imageHeight'); } }, controlsSetup: function() { // Get handles to various slide show controls if specified. if(this._previousButtonID) { this._bPrevious = document.getElementById(this._previousButtonID); } if(this._imageDescriptionLabelID) { this._imageDescriptionLabel = document.getElementById(this._imageDescriptionLabelID); } if(this._imageTitleLabelID) { this._imageTitleLabel = document.getElementById(this._imageTitleLabelID); } if(this._nextButtonID) { this._bNext = document.getElementById(this._nextButtonID); } if(this._playButtonID) { this._bPlay = document.getElementById(this._playButtonID); this._bPlay.value = this._playButtonValue; } }, resetButtons: function() { // Maintain the various buttons states. if(!this._loop) { // at the last slide if(this._slides.length <= this._currentIndex + 1) { if(this._bNext) this._bNext.disabled = true; if(this._bPlay) this._bPlay.disabled = true; if(this._bPrevious) this._bPrevious.disabled = false; // turn off play mode if on this._inPlayMode = false; if(this._timer) this._timer.set_enabled(false); if(this._bPlay) this._bPlay.value = this._playButtonValue; } else { if(this._bNext) this._bNext.disabled = false; if(this._bPlay) this._bPlay.disabled = false; } // at the first slide if(this._currentIndex <= 0) { if(this._bPrevious) this._bPrevious.disabled = true; } else { if(this._bPrevious) this._bPrevious.disabled = false; } } else { if(this._slides.length == 0) { if(this._bPrevious) this._bPrevious.disabled = true; if(this._bNext) this._bNext.disabled = true; if(this._bPlay) this._bPlay.disabled = true; } } if(this._inPlayMode) { // restart timer this._timer.set_enabled(false); this._timer.set_enabled(true); } }, resetSlideShowButtonState: function() { // Maintain the play button state to reflect whether the slide show is in play mode. if(this._inPlayMode) { if(this._bPlay) this._bPlay.value = this._stopButtonValue; } else { this.resetButtons(); if(this._bPlay) this._bPlay.value = this._playButtonValue; } }, setCurrentImage: function() { if(this._slides[this._currentIndex]) { this._currentImageElement.src = this._slides[this._currentIndex].ImagePath; if(this._slides[this._currentIndex].Url != null) { this._currentImageElement.style.cursor = 'pointer'; this._currentImageElement.onclick = function() { window.open(this._slides[this._currentIndex].Url); }; } else { this._currentImageElement.style.cursor = 'auto'; this._currentImageElement.onclick = function() { }; } } else { this._currentImageElement.src = ''; } if(Sys.Browser.agent == Sys.Browser.Opera) { // call the handler explicitly for opera this._onImageLoaded(true); } }, updateImage: function(value) { if(value) { if(this.raiseSlideChanging(this._currentValue, value)) return; if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.FadeInOut) { this._elementImage.className = "ajax__slide_show_fadeIn"; var me = this; setTimeout(function() { me._elementImage.className = "ajax__slide_show_fadeOut"; me.setImage(value); }, 1000); } else if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.ScaleX) { this._elementImage.className = "ajax__slide_show_Animation ajax__slide_show_scaleX"; var me = this; setTimeout(function() { me._elementImage.className = "ajax__slide_show_Animation"; me.setImage(value); }, 1000); } else if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.ScaleY) { this._elementImage.className = "ajax__slide_show_Animation ajax__slide_show_scaleY"; var me = this; setTimeout(function() { me._elementImage.className = "ajax__slide_show_Animation"; me.setImage(value); }, 1000); } else if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.ZoomInOut) { this._elementImage.className = "ajax__slide_show_Animation ajax__slide_show_zoomOut"; var me = this; setTimeout(function() { me._elementImage.className = "ajax__slide_show_Animation ajax__slide_show_zoomIn"; me.setImage(value); }, 1000); } else if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.Rotate) { this._elementImage.className = "ajax__slide_show_Animation ajax__slide_show_rotate"; var me = this; setTimeout(function() { me._elementImage.className = "ajax__slide_show_Animation"; me.setImage(value); }, 1000); } else { this.setImage(value); } } }, setImage: function(value) { this._currentValue = value; this._elementImage.src = value.ImagePath; this._elementImage.alt = value.Name; if(this._imageDescriptionLabel) this._imageDescriptionLabel.innerHTML = value.Description ? value.Description : ""; if(this._imageTitleLabel) this._imageTitleLabel.innerHTML = value.Name ? value.Name : ""; if(value.Url != null) { this._elementImage.style.cursor = 'pointer'; this._elementImage.onclick = function() { window.open(value.Url); } } else { this._elementImage.style.cursor = 'auto'; this._elementImage.onclick = function() { } } this.raiseSlideChanged(value); this.resetButtons(); }, get_imageDescriptionLabelID: function() { return this._imageDescriptionLabelID; }, set_imageDescriptionLabelID: function(value) { if(this._imageDescriptionLabelID != value) { this._imageDescriptionLabelID = value; this.raisePropertyChanged('imageDescriptionLabelID'); } }, get_imageTitleLabelID: function() { return this._imageTitleLabelID; }, set_imageTitleLabelID: function(value) { if(this._imageTitleLabelID != value) { this._imageTitleLabelID = value; this.raisePropertyChanged('imageTitleLabelID'); } }, get_nextButtonID: function() { return this._nextButtonID; }, set_nextButtonID: function(value) { if(this._nextButtonID != value) { this._nextButtonID = value; this.raisePropertyChanged('nextButtonID'); } }, get_playButtonID: function() { return this._playButtonID; }, set_playButtonID: function(value) { if(this._playButtonID != value) { this._playButtonID = value; this.raisePropertyChanged('playButtonID'); } }, get_playButtonText: function() { return this._playButtonValue; }, set_playButtonText: function(value) { if(this._playButtonValue != value) { this._playButtonValue = value; this.raisePropertyChanged('playButtonText'); } }, get_stopButtonText: function() { return this._stopButtonValue; }, set_stopButtonText: function(value) { if(this._stopButtonValue != value) { this._stopButtonValue = value; this.raisePropertyChanged('stopButtonText'); } }, get_playInterval: function() { // Interval in milliseconds between slide switches. return this._playInterval; }, set_playInterval: function(value) { if(this._playInterval != value) { this._playInterval = value; this.raisePropertyChanged('playInterval'); } }, get_previousButtonID: function() { return this._previousButtonID; }, set_previousButtonID: function(value) { if(this._previousButtonID != value) { this._previousButtonID = value; this.raisePropertyChanged('previousButtonID'); } }, get_slideShowServicePath: function() { return this._slideShowServicePath; }, set_slideShowServicePath: function(value) { if(this._slideShowServicePath != value) { this._slideShowServicePath = value; this.raisePropertyChanged('slideShowServicePath'); } }, get_slideShowServiceMethod: function() { return this._slideShowServiceMethod; }, set_slideShowServiceMethod: function(value) { if(this._slideShowServiceMethod != value) { this._slideShowServiceMethod = value; this.raisePropertyChanged('slideShowServiceMethod'); } }, get_loop: function() { return this._loop; }, set_loop: function(value) { if(this._loop != value) { this._loop = value; this.raisePropertyChanged('loop'); } }, get_autoPlay: function() { return this._autoPlay; }, set_autoPlay: function(value) { if(this._autoPlay != value) { this._autoPlay = value; this.raisePropertyChanged('autoPlay'); } }, get_slideShowAnimationType: function() { return this._slideShowAnimationType; }, set_slideShowAnimationType: function(value) { if(this._slideShowAnimationType != value) { this._slideShowAnimationType = value; this.raisePropertyChanged('slideShowAnimationType'); } }, _onClickNext: function(e) { // prevent server post-back for asp.net buttons. e.preventDefault(); e.stopPropagation(); this._clickNext(); }, _onImageLoaded: function(e) { this.updateImage(this._slides[this._currentIndex]); this.resetButtons(); this._cacheImages(); }, _clickNext: function() { if(this._slides) { if((this._currentIndex + 1) < this._slides.length) ++this._currentIndex; else if(this._loop) this._currentIndex = 0; else return false; if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight || this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { this._isNext = true; this.setCurrentSlide(); } else { this.setCurrentImage(); } return true; } return false; }, _onClickPrevious: function(e) { // prevent server post-back for asp.net buttons. e.preventDefault(); e.stopPropagation(); this._clickPrevious(); }, _clickPrevious: function() { if(this._slides) { if((this._currentIndex - 1) >= 0) --this._currentIndex; else if(this._loop) this._currentIndex = this._slides.length - 1; else return false; if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight || this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { this._isNext = false; this.setCurrentSlide(); } else { this.setCurrentImage(); } return true; } return false; }, _onClickPlay: function(e) { // prevent server post-back for asp.net buttons. e.preventDefault(); e.stopPropagation(); this._play(); }, _play: function() { if(this._inPlayMode) { this._inPlayMode = false; this._timer.set_enabled(false); this.resetSlideShowButtonState(); if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight || this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { if(this._bNext) this._bNext.disabled = false; if(this._bPrevious) this._bPrevious.disabled = false; } } else { // play the side show this._inPlayMode = true; if(!this._timer) { this._timer = new Sys.Timer(); this._timer.set_interval(this._playInterval); this._tickHandler = Function.createDelegate(this, this._onPlay); this._timer.add_tick(this._tickHandler); } if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight || this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { if(this._bNext) this._bNext.disabled = true; if(this._bPrevious) this._bPrevious.disabled = true; } this.resetSlideShowButtonState(); this._timer.set_enabled(true); } }, _onPlay: function(e) { if(this._slides) { if((this._currentIndex + 1) < this._slides.length) { ++this._currentIndex; if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight || this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { this._isNext = true; this.setCurrentSlide(); } else { this.setCurrentImage(); } return true; } else if(this._loop) { this._currentIndex = 0; if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight || this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { this._isNext = true; this.setCurrentSlide(); } else { this.setCurrentImage(); } return true; } else { this._inPlayMode = false; this.resetSlideShowButtonState(); } } return false; }, _slideShowInit: function() { // Initializes the slide show by invoking the webservice to retrieve the slides // and sets the first slide. // clear the state of the slideshow this._currentIndex = -1; this._cachedImageIndex = -1; this._inPlayMode = false; this._currentValue = null; // clear the cache this._images = null; // Create the service parameters and optionally add the context parameter // (thereby determining which method signature we're expecting...) var params = null; if(this._useContextKey) params = { contextKey: this._contextKey }; Sys.Net.WebServiceProxy.invoke( this._slideShowServicePath, this._slideShowServiceMethod, false, params, Function.createDelegate(this, this._initSlides), null, null); }, _initSlides: function(sender, eventArgs) { this._slides = sender; if(this._slides) { // create image containers if animation is of type LeftRight or UpDown. if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight) { this._createElementsForSlideRight(); this._setInitialState(); } else if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { this._createElementsForSlideDown(); this._setInitialState(); } else { this._images = new Array(); this._clickNext(); } if(this._autoPlay) { this._isNext = true; this._play(); } } }, _cacheImages: function() { // Caches 4 more slides periodically. // cache if current index is divisible by 3 if((this._currentIndex) % 3 == 0) { var oldCachedImageIndex = this._cachedImageIndex; for(var i = this._cachedImageIndex + 1; i < this._slides.length; i++) if(this._slides[i]) { this._images[i] = new Image(); this._images[i].src = this._slides[i].ImagePath; this._cachedImageIndex = i; if((oldCachedImageIndex + 4) <= i) // cached 4 slides break; } } }, _createElementsForSlideRight: function() { var e = this.get_element(); // create parent container var _divContainer = document.createElement('DIV'); _divContainer.id = e.id + '_slider'; _divContainer.className = 'ajax__slide_show_container'; _divContainer.style.width = this._imageWidth + 'px'; _divContainer.style.height = this._imageHeight + 'px'; e.parentNode.insertBefore(_divContainer, e); e.parentNode.removeChild(e); _divContainer.appendChild(e); _divContainer.align = 'center'; // create container for mask var _divMask = document.createElement('DIV'); _divMask.id = e.id + '_mask'; _divMask.style.width = this._imageWidth + 'px'; _divContainer.appendChild(_divMask); // create array to keep all images this._images = new Array(); for(var i = 0; i < this._slides.length; i++) { // create div to hold image var _divImage = document.createElement('DIV'); _divImage.id = e.id + '_imageDiv' + i; _divImage.style.position = 'absolute'; _divImage.style.top = '0px'; _divImage.className = 'ajax__slide_show_slideAnimation'; _divMask.appendChild(_divImage); // create hyperlink for image if(this._slides[i].Url != null) { var _imageLink = document.createElement('A'); _imageLink.href = this._slides[i].Url; _imageLink.target = '_blank'; _divImage.appendChild(_imageLink); } // create image element var _imageElement = document.createElement('IMG'); _imageElement.style.width = this._imageWidth + 'px'; _imageElement.style.height = this._imageHeight + 'px'; _imageElement.src = this._slides[i].ImagePath; if(this._slides[i].Url != null) _imageLink.appendChild(_imageElement); else _divImage.appendChild(_imageElement); this._images[i] = _divImage; } }, _createElementsForSlideDown: function() { var e = this.get_element(); // create parent container var _divContainer = document.createElement('DIV'); _divContainer.id = e.id + '_slider'; _divContainer.className = 'ajax__slide_show_container'; _divContainer.style.width = this._imageWidth + 'px'; _divContainer.style.height = this._imageHeight + 'px'; e.parentNode.insertBefore(_divContainer, e); e.parentNode.removeChild(e); _divContainer.appendChild(e); _divContainer.align = 'center'; // create container for mask var _divMask = document.createElement('DIV'); _divMask.style.width = this._imageWidth + 'px'; _divContainer.appendChild(_divMask); var _ULContainer = document.createElement('UL'); _ULContainer.style.className = 'ajax__slide_show_sliderUL'; _divMask.appendChild(_ULContainer); // create array to keep all images this._images = new Array(); for(var i = 0; i < this._slides.length; i++) { // create div to hold image var _LIImage = document.createElement('LI'); _LIImage.id = e.id + '_imageDiv' + i; _LIImage.style.position = 'absolute'; _LIImage.className = 'ajax__slide_show_slideAnimation'; _ULContainer.appendChild(_LIImage); // create hyperlink for image if(this._slides[i].Url != null) { var _imageLink = document.createElement('A'); _imageLink.href = this._slides[i].Url; _imageLink.target = '_blank'; _LIImage.appendChild(_imageLink); } // create image element var _imageElement = document.createElement('IMG'); _imageElement.style.width = this._imageWidth + 'px'; _imageElement.style.height = this._imageHeight + 'px'; _imageElement.src = this._slides[i].ImagePath; if(this._slides[i].Url != null) _imageLink.appendChild(_imageElement); else _LIImage.appendChild(_imageElement); this._images[i] = _LIImage; } }, _setInitialState: function() { this._currentIndex++; this._currentImage = this._images[this._currentIndex]; this._nextImage = this._images.length > 1 ? this._images[this._currentIndex + 1] : this._images[this._currentIndex]; if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight) { this._currentImage.style.left = '0px'; for(var i = 1; i < this._images.length; i++) this._images[i].style.left = '-' + (this._imageWidth + 5) + 'px'; } else { this._currentImage.style.top = '0px'; for(var i = 0; i < this._images.length; i++) this._images[i].style.left = '0px'; } this._previousImage = this._images[this._images.length - 1]; this._currentImage.style.width = this._imageWidth + 'px'; this._nextImage.style.width = this._imageWidth + 'px'; this._previousImage.style.width = this._imageWidth + 'px'; this._currentImage.style.height = this._imageHeight + 'px'; this._nextImage.style.height = this._imageHeight + 'px'; this._previousImage.style.height = this._imageHeight + 'px'; if(this._imageDescriptionLabel) this._imageDescriptionLabel.innerHTML = this._slides[this._currentIndex].Description ? this._slides[this._currentIndex].Description : ""; if(this._imageTitleLabel) this._imageTitleLabel.innerHTML = this._slides[this._currentIndex].Name ? this._slides[this._currentIndex].Name : ""; }, setCurrentSlide: function() { if(this._isNext) { if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight) { this._nextImage = this._images[this._currentIndex]; this._elementImage.alt = this._nextImage.Name; this._nextImage.className = ''; this._nextImage.style.left = '-' + (this._imageWidth + 5) + 'px'; var me = this; setTimeout(function() { me._nextImage.className = 'ajax__slide_show_slideAnimation'; if(me._imageDescriptionLabel) me._imageDescriptionLabel.innerHTML = me._slides[me._currentIndex].Description ? me._slides[me._currentIndex].Description : ""; if(me._imageTitleLabel) me._imageTitleLabel.innerHTML = me._slides[me._currentIndex].Name ? me._slides[me._currentIndex].Name : ""; me._currentImage.style.left = me._imageWidth + 'px'; me._nextImage.style.left = '0px'; }, 200); setTimeout(function() { me._previousImage = me._currentImage; me._currentImage = me._nextImage; me._previousImage.className = ''; me._previousImage.style.left = '-' + (me._imageWidth + 5) + 'px'; setTimeout(function() { me._previousImage.className = 'ajax__slide_show_slideAnimation'; this._isNext = false; }, 1000); }, 1200); } else if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { this._nextImage = this._images[this._currentIndex]; this._nextImage.className = ''; this._nextImage.style.top = '-' + (this._imageHeight + 5) + 'px'; var me = this; setTimeout(function() { me._nextImage.className = 'ajax__slide_show_slideAnimation'; if(me._imageDescriptionLabel) me._imageDescriptionLabel.innerHTML = me._slides[me._currentIndex].Description ? me._slides[me._currentIndex].Description : ""; if(me._imageTitleLabel) me._imageTitleLabel.innerHTML = me._slides[me._currentIndex].Name ? me._slides[me._currentIndex].Name : ""; me._currentImage.style.top = me._imageHeight + 'px'; me._nextImage.style.top = '0px'; }, 200); setTimeout(function() { me._previousImage = me._currentImage; me._currentImage = me._nextImage; me._previousImage.className = ''; me._previousImage.style.top = '-' + (me._imageHeight + 5) + 'px'; setTimeout(function() { me._previousImage.className = 'ajax__slide_show_slideAnimation'; this._isNext = false; }, 1000); }, 1200); } } else { if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideRight) { this._previousImage = this._images[this._currentIndex]; this._previousImage.className = ''; this._previousImage.style.left = (this._imageWidth + 5) + 'px'; var me = this; setTimeout(function() { me._previousImage.className = 'ajax__slide_show_slideAnimation'; if(me._imageDescriptionLabel) me._imageDescriptionLabel.innerHTML = me._slides[me._currentIndex].Description ? me._slides[me._currentIndex].Description : ""; if(me._imageTitleLabel) me._imageTitleLabel.innerHTML = me._slides[me._currentIndex].Name ? me._slides[me._currentIndex].Name : ""; me._currentImage.style.left = '-' + (me._imageWidth + 5) + 'px'; me._previousImage.style.left = '0px'; }, 200); setTimeout(function() { me._nextImage = me._currentImage; me._currentImage = me._previousImage; me._nextImage.className = ''; me._nextImage.style.left = (me._imageWidth + 5) + 'px'; setTimeout(function() { me._nextImage.className = 'ajax__slide_show_slideAnimation'; this._isNext = false; }, 1000); }, 1200); } else if(this._slideShowAnimationType == Sys.Extended.UI.SlideShowAnimationType.SlideDown) { this._previousImage = this._images[this._currentIndex]; this._previousImage.className = ''; this._previousImage.style.top = (this._imageHeight + 5) + 'px'; var me = this; setTimeout(function() { me._previousImage.className = 'ajax__slide_show_slideAnimation'; if(me._imageDescriptionLabel) me._imageDescriptionLabel.innerHTML = me._slides[me._currentIndex].Description ? me._slides[me._currentIndex].Description : ""; if(me._imageTitleLabel) me._imageTitleLabel.innerHTML = me._slides[me._currentIndex].Name ? me._slides[me._currentIndex].Name : ""; me._currentImage.style.top = '-' + (me._imageHeight + 5) + 'px'; me._previousImage.style.top = '0px'; }, 200); setTimeout(function() { me._nextImage = me._currentImage; me._currentImage = me._previousImage; me._nextImage.className = ''; me._nextImage.style.top = (me._imageHeight + 5) + 'px'; setTimeout(function() { me._nextImage.className = 'ajax__slide_show_slideAnimation'; this._isNext = false; }, 1000); }, 1200); } } }, supportsAnimation: function(animationName) { var isSupport = false, domPrefixes = 'Webkit Moz ms O'.split(' '), elm = document.createElement('div'), animationNameCapital = null; animationName = animationName.toLowerCase(); if(elm.style[animationName]) isSupport = true; if(isSupport === false) { animationNameCapital = animationName.charAt(0).toUpperCase() + animationName.substr(1); for(var i = 0; i < domPrefixes.length; i++) if(elm.style[domPrefixes[i] + animationNameCapital] !== undefined) { isSupport = true; break; } } return isSupport; } } Sys.Extended.UI.SlideShowBehavior.registerClass('Sys.Extended.UI.SlideShowBehavior', Sys.Extended.UI.BehaviorBase); Sys.Extended.UI.SlideShowEventArgs = function(previousSlide, nextSlide, slideIndex) { Sys.Extended.UI.SlideShowEventArgs.initializeBase(this); this._previousSlide = previousSlide; this._nextSlide = nextSlide; this._slideIndex = slideIndex; } 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); Sys.Extended.UI.SlideShowAnimationType = function() { throw Error.invalidOperation(); } Sys.Extended.UI.SlideShowAnimationType.prototype = { None: 0, FadeInOut: 1, ScaleX: 2, ScaleY: 3, ZoomInOut: 4, Rotate: 5, SlideRight: 6, SlideDown: 7 } Sys.Extended.UI.SlideShowAnimationType.registerEnum("Sys.Extended.UI.SlideShowAnimationType", false);