MooFlow.implement({attachViewer:function(){return this},flowStart:function(){this.hideIcon()},flowComplete:function(){this.createIconTip()},createIconTip:function(){var a=this.getCurrent();if(!$chk(a.rel)||!$chk(a.href)){return}this.tipFx=new Fx({link:"cancel"});if(!$chk(this.icon)){this.icon=new Element("a").addClass("show").setStyles({display:"none",opacity:"0"}).inject(this.MooFlow)}this.icon.addEvent("click",this.onClickView.bind(this,a));this.icon.addEvent("mouseenter",this.showTip.bind(this,a));this.icon.addEvent("mouseleave",this.hideTip.bind(this,a));this.icon.addClass(a.rel.toLowerCase());this.icon.setStyle("display","block").fade(0.6)},showTip:function(a){this.tip.setStyles({top:100,display:"block"});this.tipFx=new Fx.Morph(this.tip,{link:"cancel"}).start({opacity:0.8,top:this.icon.getCoordinates().top-this.tip.getSize().y-100})},hideTip:function(a){this.tipFx.start({opacity:0,top:100})},hideIcon:function(){if($chk(this.icon)&&$chk(this.icon.getParent())){this.icon.destroy()}if($chk(this.tip)&&$chk(this.tip.getParent())){this.tip.destroy()}this.icon=this.tip=null},onClickView:function(a){switch(a.rel.toLowerCase()){case"image":this.loadImage(a);break;case"link":window.open(a.href,a.target||"_blank");break;default:}},loadImage:function(a){this.icon.removeClass("image").addClass("viewerload");this.image=new Asset.image(a.href,{onload:this.showImage.bind(this)})},showImage:function(){var f=this.getCurrent();var i=f.con.getFirst().getCoordinates();this.image.inject(document.body);this.image.addEvent("click",this.hideImage.bind(this));this.image.setStyles({left:i.left,top:i.top,width:i.width,height:i.height,position:"absolute","z-index":"103"});var b=new Fx.Morph(this.image,{transition:Fx.Transitions.Sine.easeOut});var h={x:this.image.get("width"),y:this.image.get("height")};var d=document.getSize(),a=document.getScroll();var g={x:a.x+((d.x-h.x)/2).toInt(),y:a.y+((d.y-h.y)/2).toInt()};var e={left:g.x,top:g.y,width:h.x,height:h.y};b.start(e)},hideImage:function(){this.icon.removeClass("viewerload").addClass("image");this.image.dispose()}});
