var mlgallery_View=new Class({options:{loading_html:'<p><img src="viewer/img/spinner_large.gif"></p>',content_html:'<div id="gallery_view_img"></div><div id="gallery_view_navigator"></div>',navigator_html:'<a href="#" id="gallery_nav_prev">&lt;&lt;</a>&nbsp;<a href="#" id="gallery_nav_close">zamknij</a>&nbsp;<a href="#" id="gallery_nav_next">&gt;&gt;</a>',add_size_x:0,add_size_y:20,banner_left:0,banner_top:0},initialize:function(files,options){this.setOptions(options);if($type(files)=='array')this.setFiles(files);this.gallery_dlg=new mui_simpleDialog('gallery_view').setHTML(this.options.content_html);$('gallery_view_navigator').set('html',this.options.navigator_html).setStyle('display','none');this.gallery_dlg.dlg.removeClass('mui_simple_dialog').addClass('gallery_view_dlg').setStyles({display:'none'}).injectInside(document.body);this.fx=new Fx.Morph(this.gallery_dlg.dlg,{duration:400,fps:20,transition:Fx.Transitions.Expo.easeOut});this.image_view=new mui_imgView();this.image_view.addEvent('load',this.onImgLoad);this.image_view.addEvent('error',this.onImgError);this.fx.inst=this;this.image_view.inst=this;$('gallery_nav_close').addEvent('click',function(e){e=new Event(e).stop();this.inst.close();}).inst=this;$('gallery_nav_next').addEvent('click',function(e){e=new Event(e).stop();this.inst.next();}).inst=this;$('gallery_nav_prev').addEvent('click',function(e){e=new Event(e).stop();this.inst.prev();}).inst=this;},setFiles:function(files){this.files=files;},getBannerPos:function(bw,bh){var x=this.gallery_dlg.dlg.getLeft();var y=this.gallery_dlg.dlg.getTop();var w=this.image_view.img.width;var h=this.image_view.img.height;if(h>w){w=this.options.banner_left;}else{h=this.options.banner_top;}var l=(w-bw)/2;var t=(h-bh)/2;l=x+l.toInt();t=y+t.toInt()-5;return{x:l,y:t}},onImgError:function(){this.inst.image_view.img.width=100;this.inst.image_view.img.height=100;var x=this.inst.onImgLoad.bind(this);x();},onImgLoad:function(){var inst=this.inst;var w=inst.gallery_dlg.dlg.getSize().x;var h=inst.gallery_dlg.dlg.getSize().y;var cw=w;var ch=h;var ws=window.getGPS();var bl=0;var bt=0;w=inst.image_view.img.width;h=inst.image_view.img.height;if(h>w){bl=inst.options.banner_left;}else{bt=inst.options.banner_top;}inst.image_view.options.width=ws.size.x-50-inst.options.add_size_x-bl;inst.image_view.options.height=ws.size.y-50-inst.options.add_size_y-bt;inst.image_view.fitImage();w=inst.image_view.img.width;h=inst.image_view.img.height;w+=inst.options.add_size_x+bl;h+=inst.options.add_size_y+bt;var l=(ws.size.x-w)/2;var t=(ws.size.y-h)/2;l=l.round()+ws.scroll.x;t=t.round()+ws.scroll.y;var nl=w-150;var nt=inst.image_view.img.height+10+bt;$('gallery_view_img').empty();inst.image_view.img.setStyles({'opacity':0.05,'cursor':'pointer','display':'none','margin-left':bl,'margin-top':bt});inst.image_view.img.injectInside($('gallery_view_img'));inst.image_view.img.addEvent('click',function(e){e=new Event(e).stop();inst.close();});inst.image_view.img.inst=inst;inst.fx.start({top:t,height:[ch,h]}).chain(function(){this.start.delay(200,this,{left:l,width:[cw,w]});}).chain(function(){this.inst.image_view.img.setStyle('display','block');this.inst.image_view.img.fade('in');$('gallery_view_navigator').show().setStyles({left:nl,top:nt});this.inst.fireEvent('showImage');});},view:function(file){this.gallery_dlg.dlg.setStyles({width:'auto',height:'auto'});$('gallery_view_img').set('html',this.options.loading_html);$('gallery_view_navigator').hide();this.gallery_dlg.showModal();var ws=window.getSize();var i=this.files.indexOf(file);if(i==-1)i=0;this.jumpTo(i);},jumpTo:function(idx){$('gallery_view_navigator').hide();$('gallery_view_img').set('html',this.options.loading_html);this.fireEvent('hideImage');var ws=window.getGPS();this.image_view.options.width=ws.size.x-50-this.options.add_size_x;this.image_view.options.height=ws.size.y-50-this.options.add_size_y;this.image_view.load(this.files[idx]);this.current=idx;},next:function(){var inst=this;inst.image_view.img.get('tween',{'property':'opacity',duration:400}).addEvent('onComplete',function(){inst.current++;if(inst.current>inst.files.length-1)inst.current=0;inst.jumpTo(inst.current);}).start(0);},prev:function(){var inst=this;inst.image_view.img.get('tween',{property:'opacity',duration:400}).addEvent('onComplete',function(){inst.current--;if(inst.current==-1)inst.current=inst.files.length-1;inst.jumpTo(inst.current);}).start(0);},close:function(){var inst=this;inst.image_view.img.get('tween',{property:'opacity'}).addEvent('onComplete',function(){inst.gallery_dlg.hide();}).start(0);this.fireEvent('hideImage');}});mlgallery_View.implement(new Options,new Events);