Element.addMethods({isLoaded:function(p_eElement){return(p_eElement.complete);}});var Transition=Class.create();Transition.prototype={initialize:function(p_eTarget,p_sImage){this.m_eTarget=$(p_eTarget);this.m_eTarget.setStyle({position:'relative',overflow:'hidden'});this.m_eLoading=null;p_sImage=p_sImage.gsub("vign/","");if(p_sImage.indexOf(".php")>=0)
{p_sImage+="&size=big";}
g_eTransition=this;while(this.m_eTarget.hasChildNodes())
this.m_eTarget.removeChild(this.m_eTarget.firstChild);var eImage=document.createElement('img');eImage.setAttribute('src',p_sImage);this.m_eTarget.appendChild(eImage);this.m_eCurrent=eImage;new Effect.Appear(this.m_eCurrent,{duration:1.5,from:0.0,to:1.0});$$('img').each(function(eAnchor){var sRel=String(eAnchor.getAttribute('rel'));if(eAnchor.getAttribute('href')&&(sRel.toLowerCase().match('transition'))){eAnchor.m_eRef=this;eAnchor.onclick=function(){g_eTransition.loadImage(this);return false;}}});},loadImage:function(p_eAnchor){var sTransition=/^transition\[(.+)\]$/.exec(p_eAnchor.getAttribute('rel'))[1];var sImage=p_eAnchor.getAttribute('href').gsub("vign/","");if(sImage.indexOf(".php")>=0)
{sImage+="&size=big";}
var eImage=document.createElement('img');eImage.setAttribute('src',sImage);$(eImage).setStyle({position:'absolute',left:'0px',top:'0px',opacity:'0'});this.m_eTarget.appendChild(eImage);if(!eImage.isLoaded()){this.m_eLoading=document.createElement('div');$(this.m_eLoading).setStyle({position:'absolute',left:'5px',bottom:'5px',color:'#FFF'});this.m_eLoading.appendChild(document.createTextNode('loading...'));this.m_eTarget.appendChild(this.m_eLoading);Event.observe(eImage,'load',this._onLoad.bindAsEventListener(null,this,eImage,sTransition));}else{this.m_eLoading=null;this._transImage(eImage,sTransition);}},_onLoad:function(p_eEvent,p_oRef,p_eImage,p_sTransition){p_oRef._transImage(p_eImage,p_sTransition);},_transImage:function(eImage,sTransition){if(this.m_eLoading!=null)this.m_eLoading.remove();switch(sTransition){case'appear':new Effect.Appear(eImage,{duration:1.5,from:0.0,to:1.0});new Effect.Appear(this.m_eCurrent,{duration:1.5,from:1.0,to:0.0,afterFinish:this._removeImage});break;}
this.m_eCurrent=eImage;},_removeImage:function(p_oObj){p_oObj.element.remove();}}
