var Loader=function(){var _this;var _list;var _index;var _offset;var _loadindex;var _loadoffset;var _forward;var _loading;var _timer;{_this=this;_index=0;_offset=0;_loadindex=_index;_loadoffset=_offset;_forward=true;_loading=false}_this.setList=function(list){_this.stop();_list=list};_this.getList=function(){return _list};_this.setIndex=function(index){_index=index;_offset=0;if(_list&&_index>_list.length/2)_forward=false;else _forward=true};_this.getIndex=function(){return _loadindex};_this.start=function(){if(_list){if(_loading)_this.stop();_loading=true;process()}};_this.pause=function(){if(_timer){clearTimeout(_timer);_timer=null}if(_list){var item=_list[_index];if(item.obj)item.obj.unbind("error load",loadHandler)}_loading=false};_this.resume=_this.start;_this.stop=function(){if(_loading){_this.pause();_this.setIndex(0)}};_this.isLoading=function(){return _loading};function process(){_loadindex=_index;_loadoffset=_offset;var item=_list[_loadindex];if(item.obj){next()}else{item["~obj"]=jQuery("<img></img>").one("error load",loadHandler);item["~obj"].attr("src","/"+item.galleryImage)}}function loadHandler(event){var item=_list[_loadindex];if(event.type.match(/load/i))item.obj=item["~obj"];delete item["~obj"];jQuery(_this).triggerHandler("complete",[_loadindex]);_timer=setTimeout(next,50)}function next(){_timer=null;if(_index==_loadindex&&_offset==_loadoffset){_offset++;if(_offset<_list.length){if(_forward){if(_offset>=_list.length-_index){_index--}else{_index+=_offset;_forward=!_forward}}else{if(_offset>_index){_index++}else{_index-=_offset;_forward=!_forward}}process()}else{_this.stop()}}else{process()}}};var Slideshow=function(id,siteaccess,ids,galleryname,loading){var _this;var _width;var _height;var _imagebox;var _textbox;var _textcontainer;var _overlaybox;var _loading;var _loader;var _index;var _paused;var _timer;var _currentLinkUrl;{_this=this;var obj=jQuery("#"+id).empty().css("overflow","hidden").bind("click",clickHandler);_width=obj.width();_height=obj.height();_imagebox=jQuery("<div></div>").css({position:"relative",width:"100%",height:_height+"px"}).appendTo(obj);_textbox=_imagebox.clone(false).css({top:(-_height)+"px",opacity:"0"}).appendTo(obj);_textcontainer=jQuery("<div></div>").addClass("textcontainer").appendTo(_textbox);_overlaybox=_imagebox.clone(false).css("top",(-_height*2)+"px").appendTo(obj).bind("click",linkClickHandler);_loading=jQuery("<img></img>").attr("src",loading).css({position:"absolute",left:"50%",top:"50%"}).load(loadingLoadHandler).appendTo(_overlaybox);_navigation=jQuery("<div></div>").addClass("navigation").appendTo(_overlaybox);jQuery.getJSON(siteaccess+"/em_amfphp/ajax/["+ids+", \""+galleryname+"\"]/Extension_Em_Amfphp_Classes_Lib_Services/getMediaGalleryElements",ajaxCompleteHandler)}_this.setIndex=function(value){clearTimeout(_timer);var list=_loader.getList();if(list&&value>=0&&value<list.length){_navigation.children("#item-"+_index).removeClass("selected");_index=value;_navigation.children("#item-"+_index).addClass("selected");var item=list[_index];if(item.obj){_loading.css("display","none");if(item.caption&&item.caption.length>0){_textcontainer.html(item.caption);if(!_textbox.data("visible"))_textbox.data("visible",true).animate({opacity:"1"},1000)}else{if(_textbox.data("visible"))_textbox.data("visible",false).animate({opacity:"0"},1000)}item.obj.css("opacity","0").appendTo(_imagebox).animate({opacity:"1"},1000,fadeCompleteHandler);if(item.url&&item.url!='/'&&item.url!='/en'){_currentLinkUrl=item.url;_overlaybox.css('cursor','pointer')}else{_currentLinkUrl=null;_overlaybox.css('cursor','auto')}}else{_loading.css("display","block");_loader.setIndex(_index)}}};_this.getIndex=function(){return _index};_this.previous=function(event){var index=_index-1;if(index<0)index=_loader.getList().length;_this.setIndex(index)};_this.next=function(event){var index=_index+1;if(index>=_loader.getList().length)index=0;_this.setIndex(index)};function ajaxCompleteHandler(result){if(result&&result.length>0){for(var i=0;i<result.length;i++){jQuery("<a></a>").attr({href:"#",id:"item-"+i}).addClass("navigationitem").bind("click",i,navClickHandler).appendTo(_navigation)}_loader=new Loader();jQuery(_loader).bind("complete",loadCompleteHandler);_loader.setList(result);_index=0;_paused=false;_loader.start()}}function loadingLoadHandler(event){_loading.css({marginLeft:(-_loading.width()/2)+"px",marginTop:(-_loading.height()/2)+"px"})}function loadCompleteHandler(event,index){var item=_loader.getList()[index];if(item.obj){item.obj.css({position:"absolute",MsInterpolationMode:"bicubic",width:_width+"px",height:_height+"px"});if(index==_index)_this.setIndex(_index)}}function fadeCompleteHandler(){jQuery(this).prevAll().remove();if(!_paused)timerCompleteHandler()}function clickHandler(event){clearTimeout(_timer);_paused=true;_timer=setTimeout(timerCompleteHandler,8000)}function linkClickHandler(event){var $target=$(event.target);if(!$target.is("a")&&_currentLinkUrl){window.location=_currentLinkUrl}}function timerCompleteHandler(){clearTimeout(_timer);_paused=false;_timer=setTimeout(_this.next,4000)}function navClickHandler(event){if(event.data!=_index)_this.setIndex(event.data);return false}};
