(function(){var E=CS.UTIL.set,C=CS.UTIL.isset,D=CS.UTIL.is_a,A=CS.UTIL.is_F;var B=Prototype.Browser.Gecko&&(navigator.platform.indexOf("Mac")!==-1);window.CS=E(window.CS,{});CS.UI=E(CS.UI,{});CS.UI.TRANSITIONS=Object.extend(CS.UI.TRANSITIONS||{},{change_class:function(F,K,I,J,H,G){if(K==I||!H||!(D(H,String)||H.evt||H.active)){return J&&J()}G=Object.extend({mode:{evt:"add",active:"remove"}},G||{});if(D(G.mode,String)){G.mode={evt:G.mode,active:G.mode}}if(D(H,String)||D(H,Array)){H={evt:H,active:H}}$H({evt:K,active:I}).each(function(N){var M=N.key,L=N.value;switch(G.mode[M]){case H[M]&&"replace":L.className=H[M];break;case H[M]&&"toggle":CS.UI.toggleClassNames(L,H[M]);break;default:if(H[M]&&G.mode[M]){(L[G.mode[M]+"ClassName"])(H[M])}break}});if(J){J()}},slide:function(F,L,I,K,H){if(L==I){return K&&K()}H=Object.extend({orientation:"vertical",duration:1,mode:"relative"},H||{});if(B&&H.flash){if(H.flash_safe&&A(H.flash_safe.fn)){H.flash_safe.fn.apply(this,[F,L,I,K].concat(H.flash_safe.args))}else{if(H.flash_safe&&!H.flash_safe.skip_hide){I.hide();L.show()}if(K){K()}}return }H.direction=E(H.direction,(H.orientation=="vertical"?"up":"left"));var G=((H.orientation=="vertical"&&H.direction!="up")||(H.direction!="left"));if(H.orientation=="horizontal"){H.from=E(H.from,{evt:{top:"0px",left:(G?-1*L.getWidth():I.getWidth())+"px"}});H.to=E(H.to,{evt:{x:(G?1:-1)*L.getWidth()},active:{x:(G?1:-1)*I.getWidth()}})}else{H.from=E(H.from,{evt:{left:"0px",top:(G?-1*L.getHeight():I.getHeight())+"px"}});H.to=E(H.to,{evt:{y:(G?1:-1)*L.getHeight()},active:{y:(G?1:-1)*I.getHeight()}})}H.from.evt&&L.setStyle(H.from.evt);H.from.active&&I.setStyle(H.from.active);var J={duration:H.duration,mode:H.mode};H.to.evt&&new Effect.Move(L,CS.UTIL.extend(J,{y:H.to.evt.y,x:H.to.evt.x,afterFinish:(H.to.active?undefined:K)}));H.to.active&&new Effect.Move(I,CS.UTIL.extend(J,{y:H.to.active.y,x:H.to.active.x,afterFinish:K}));if(K&&!H.to.evt&&!H.to.active){K()}},fade:function(F,L,J,K,H){if(L==J){return K&&K()}H=Object.extend({duration:1,reposition:false,ordering:"sequential",relative:false,from:{},to:{}},H||{});H.reposition&&L.setStyle(H.reposition);if(B&&H.flash){if(H.flash_safe&&A(H.flash_safe.fn)){H.flash_safe.fn.apply(this,[F,L,J,K].concat(H.flash_safe.args))}else{if(H.flash_safe&&!H.flash_safe.skip_hide){J.hide();L.show()}if(K){K()}}return }var G=CS.UTIL.extend({},{duration:H.duration,from:H.from.active,to:H.to.active,afterFinish:(C(H.to.evt)?undefined:K)});var I=CS.UTIL.extend({},{duration:H.duration,from:H.from.evt,to:H.to.evt,afterFinish:K});switch(H.ordering){case"concurrent":if(C(H.to.active)){new Effect.Opacity(J,G)}if(C(H.to.evt)){new Effect.Opacity(L,I)}return ;case"crossover":if(C(H.to.evt)&&C(H.to.active)){G.afterUpdate=function(M){if(M.currentFrame>=(M.totalFrames/2)&&!M.crossover_fired){M.crossover_fired=true;new Effect.Opacity(L,I)}}}break;case"sequential":default:if(C(H.to.evt)&&C(H.to.active)){G.afterFinish=function(M){new Effect.Opacity(L,I)}}break}if(C(H.to.active)){new Effect.Opacity(J,G)}else{if(C(H.to.evt)){new Effect.Opacity(L,I)}}if(K&&!C(H.to.active)&&!C(H.to.evt)){K()}},bundle:function(G,F){G=$A(G);if(!G.length){throw new RangeError("Invalid Parameter: CS.UI.Transitions: `transitions` must have length > 0 and must contain transitions!")}F=Object.extend({delay:0},F||{});F.common=F.common||{};return function(O,L,M,P,J){var I=this,K=function(S,Q){if(!S.fn||!D(S.fn,Function)){throw new Error("Invalid Parameter: CS.UI.Transitions: All transitions must have a `fn` defined!")}var R=CS.UTIL.extend(F.common,S.options||{},J||{});S.fn.apply(I,[O,L,M,(G.length==Q+1?P:undefined)].concat((S.args||[]),R))};if(!F.delay){G.each(K)}else{K(G[0],0);if(G.length==1){return }var H=null,N=1;H=setInterval(function(){if(G.length==N+1){clearInterval(H)}K(G[N],N++);if(G.length==N){H=null;delete H}},F.delay*1000)}}}})})();