var CtPhotoSlider=Class.create(CtComponent_Abstract,{loader:null,idGallery:null,idPhoto:null,isPhotoLoaded:null,isAjaxSuccess:null,isProcess:null,btnNext:null,btnPrev:null,hTimer:null,initialize:function(htmlElement){this.element=$(htmlElement);this.reassembly();},reassembly:function(){this.next=this.element.down('.ctPhotoSlider-next');this.current=this.element.down('.ctPhotoSlider-current');this.loader=this.element.down('.ctPhotoSlider-loader');this.btnNext=this.element.down('a.ctPhotoSlider-btn-next');this.btnPrev=this.element.down('a.ctPhotoSlider-btn-prev');if(this.btnPrev&&this.btnNext){this.btnPrev.observe('click',this.clickHandler.bindAsEventListener(this,'prev'));this.btnNext.observe('click',this.clickHandler.bindAsEventListener(this,'next'));}
this.updateConfig();},updateConfig:function(){var item=this.element.down('a.ctPhotoSlider-item');try{var config=item.readAttribute('rel').evalJSON(true);this.idGallery=config['idGallery'];this.idPhoto=config['idPhoto'];}catch(ex){alert('Error, can\'t read config');return;}},clickHandler:function(event,nextOrPrev){Event.stop(event);if(this.isProcess){return;}
this.updateConfig();this.isProcess=true;this.isPhotoLoaded=false;this.isAjaxSuccess=false;this.loader.show();new Ajax.Request('/gallery/photopreview.html',{method:'post',parameters:{'nextOrPrev':nextOrPrev,'idPhoto':this.idPhoto,'idGallery':this.idGallery},onSuccess:function(transport){this.next.update(transport.responseText);this.isAjaxSuccess=true;try{this.next.down('img').onload=function(){if(this.isPhotoLoaded||!this.isAjaxSuccess){return;}
this.isPhotoLoaded=true;this.loader.hide();this.smoothSwap();}.bind(this);}catch(ex){}
window.clearTimeout(this.hTimer);this.hTimer=window.setTimeout(function(){if(this.isPhotoLoaded||!this.isAjaxSuccess){return;}
this.isPhotoLoaded=true;this.loader.hide();this.smoothSwap();}.bind(this),5000);}.bind(this),onFailure:function(){}});},smoothSwap:function(){Effect.Queues.get('PhotoSlider').each(function(effect){effect.cancel();});this.current.setOpacity(1);this.next.setOpacity(0);new Effect.Parallel([new Effect.Appear(this.next,{sync:true}),new Effect.Fade(this.current,{sync:true})],{queue:{position:'begin',scope:'PhotoSlider'},duration:1,afterFinish:function(){this.current.update(this.next.innerHTML);this.current.show();this.current.setOpacity(1);this.next.hide();this.isProcess=false;}.bind(this)});},x:null});var CtPhotoSlider_Factory=new(Class.create({initialize:function(){Event.observe(window,'load',function(){this.refresh()}.bind(this));},refresh:function(htmlElement){var elements=[];if(htmlElement){elements=$(htmlElement).select('div.ctPhotoSlider');}else{elements=$$('div.ctPhotoSlider');}
for(var i=0;i<elements.length;i++){elements[i].removeClassName('ctPhotoSlider');new CtPhotoSlider(elements[i]);}}}));CtPage.registerScript("CtPhotoSlider");
