var cPBase=Class.create({});var cPTool=Class.create(cPBase,{initialize:function(b,c,a){this.target=null;this.shelf=null;this.index=b;this.data=c;this.id="ptool"+this.index;this.settings={global:{assets:{blank:"fileadmin/templates/zhdk/themes/_shared/data/images/assets/blank.png"},effects:{scope:this.id,speed:0.5}},self:{body:{height:this.data.image.height}},stripe:{item:{width:15,height:20}},thumb:{image:{width:56,height:72,offset:-28},service:{url:"http://www.zhdk.ch/app/common/personen/foto.php",query:{id:null,width:56,height:72,compressionlevel:95,sharpen:"unsharp(0)",dept:1,fit:1,pad:0}},opacity:0.9,timeout:3}};this.isVisible=false;this.delay=(a)?a:0;this.timer=null;this.oStripe=new cPToolStripe(this);this.oThumb=new cPToolThumb(this);this.oLogic=new cPToolLogic(this)},fInit:function(){this.oThumb.fInit();this.oLogic.fInit();this.fShow(this.delay)},fCreate:function(){var b=this.settings.self;var a=new Element("div",{id:this.id,"class":"ptool"}).setStyle({display:"none",height:b.body.height+"px"});var c=this.oStripe.fCreate();var e=this.oThumb.fCreate();var d=this.oLogic.fCreate();a.insert(c);a.insert(e);a.insert(d);return a},fAssign:function(b){this.shelf=$(b);var a=this.fCreate();this.shelf.update(a);this.target=$("ptool"+this.index);this.oStripe.target=$("ptoolStripe"+this.index);this.oThumb.target=$("ptoolThumb"+this.index);this.oLogic.target=$("ptoolLogic"+this.index);this.fInit()},fShow:function(b){var a=this.settings.global.effects;new Effect.Appear(this.target,{queue:{position:"front",scope:a.scope},to:1,delay:b,duration:a.speed});this.isVisible=true},fHide:function(){var a=this.settings.global.effects;new Effect.Appear(this.target,{queue:{position:"end",scope:a.scope},to:0,duration:a.speed});this.isVisible=false}});var cPToolStripe=Class.create(cPBase,{initialize:function(a){this.target=null;this.parent=a;this.id="ptoolStripe"+this.parent.index},fCreate:function(){var d=this.parent.data.image;var a=new Element("div",{id:this.id,"class":"stripe"});var c=new Element("img",{"class":"image",src:d.src,width:d.width,height:d.height});var b=new Element("div",{"class":"frame"}).setStyle({display:"none",opacity:0});a.insert(c);a.insert(b);return a}});var cPToolThumb=Class.create(cPBase,{initialize:function(a){this.target=null;this.parent=a;this.id="ptoolThumb"+this.parent.index;this.isVisible=false;this.timer=null},fInit:function(){var b=function(c){this.fAutoHide()};this.target.observe("mouseout",b.bindAsEventListener(this));var a=function(c){this.fClear()};this.target.observe("mouseover",a.bindAsEventListener(this))},fCreate:function(){var c=this.parent.settings.thumb;var b=new Element("div",{id:this.id,"class":"thumb"}).setStyle({display:"none",opacity:0});var e=new Element("div",{"class":"background"}).setStyle({opacity:c.opacity});var d=new Element("div",{"class":"image"});var a=new Element("div",{"class":"frame"});var f=new Element("img",{"class":"body",width:c.image.width,height:c.image.height});b.insert(e);d.insert(a);d.insert(f);b.insert(d);return b},fFill:function(d){var b={1:this.parent.settings.thumb.service,2:this.parent.settings.global.assets};var c=this.parent.data.persons[d];b[1].query.id=c.id;var e=this.target.select(".image").first();var a=e.select(".body").first();a.src=b[2].blank;a.src=b[1].url+"?"+Object.toQueryString(b[1].query)},fMove:function(b,e){this.fClear();var a={1:this.parent.settings.global.effects,2:this.parent.settings.thumb.image,3:this.parent.settings.stripe.item};var c=this.target.select(".body").first();var d=this.parent.oStripe.target.select(".frame").first();var e=b*a[3].height;if(this.isVisible){var f=$(c.cloneNode(true));f.id=this.id+"Shadow";c.insert({after:f});f=$(f.id);this.fFill(b);new Effect.Parallel([new Effect.Move(this.target,{sync:true,x:0,y:e+a[2].offset,mode:"absolute"}),new Effect.Move(d,{sync:true,x:0,y:e,mode:"absolute"}),new Effect.Fade(f,{sync:true,to:0})],{queue:{scope:a[1].scope},delay:0.3,duration:a[1].speed})}else{this.fFill(b);this.fShow();new Effect.Parallel([new Effect.Move(this.target,{sync:true,x:0,y:e+a[2].offset,mode:"absolute"}),new Effect.Move(d,{sync:true,x:0,y:e,mode:"absolute"})],{queue:{scope:a[1].scope},duration:a[1].speed})}},fShow:function(){this.fClear();var a=this.parent.settings.global.effects;var b=this.parent.oStripe.target.select(".frame").first();new Effect.Parallel([new Effect.Appear(this.target,{sync:true,to:1}),new Effect.Appear(b,{sync:true,to:1})],{queue:{position:"front",scope:a.scope},duration:a.speed});this.isVisible=true},fHide:function(){this.fClear();var a=this.parent.settings.global.effects;var b=this.parent.oStripe.target.select(".frame").first();new Effect.Parallel([new Effect.Fade(this.target,{sync:true}),new Effect.Appear(b,{sync:true,to:0})],{queue:{position:"front",scope:a.scope},duration:a.speed});this.isVisible=false},fAutoHide:function(){this.fClear();var a=this.parent.settings.thumb;var b=this;this.timer=setTimeout(function(){b.fHide()},a.timeout*1000)},fClear:function(){clearTimeout(this.timer);this.timer=null}});var cPToolLogic=Class.create(cPBase,{initialize:function(a){this.target=null;this.parent=a;this.id="ptoolLogic"+this.parent.index},fInit:function(){var b=function(c){c.stop();this.parent.oThumb.fAutoHide()};this.target.observe("mouseout",b.bindAsEventListener(this));var a=function(c){c.stop();this.parent.oThumb.fClear()};this.target.observe("mouseover",a.bindAsEventListener(this))},fCreate:function(){var b=this.parent.settings.stripe.item;var d=this.parent.data.image;var a=new Element("div",{id:this.id,"class":"logic"});var c=new Element("img",{"class":"image",src:this.parent.settings.global.assets.blank,width:d.width,height:d.height});var e=function(i){i.stop();var h=Event.element(i);var j=document.viewport.getScrollOffsets();var f=i.pointerX()-j.left;var k=i.pointerY()-j.top;var g=Math.floor(k/b.height);this.parent.oThumb.fMove(g)};c.observe("click",e.bindAsEventListener(this));a.insert(c);return a}});
