var Effect={tagifyText:function(i){var I="position:relative";if(/MSIE/.test(navigator.userAgent))I+=";zoom:1";i=$(i);var l=i.childNodes;for(var c=0;c<l.length;c++)if(l[c].nodeType==3){var o=l[c];for(var O=0;O<o.nodeValue.length;O++)i.insertBefore(Builder.node('span',{style:I},o.nodeValue.substr(O,1)==" "?String.fromCharCode(160):o.nodeValue.substr(O,1)),o);Element.remove(o)}},multiple:function(i,o){if(((typeof i=='object')||(typeof i=='function'))&&(i.length))var I=i;else
var I=$(i).childNodes;var l=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var c=l.speed;var O=l.delay;for(var C=0;C<I.length;C++)new o(I[C],Object.extend(l,{delay:O+C*c}))}},Effect2=Effect;Effect.Transitions={}
Effect.Transitions.linear=function(i){return i}
Effect.Transitions.sinoidal=function(i){return(-Math.cos(i*Math.PI)/2)+0.5}
Effect.Transitions.reverse=function(i){return 1-i}
Effect.Transitions.flicker=function(i){return((-Math.cos(i*Math.PI)/4)+0.75)+Math.random(0.25)}
Effect.Transitions.wobble=function(i){return(-Math.cos(i*Math.PI*(9*i))/2)+0.5}
Effect.Transitions.pulse=function(i){return(Math.floor(i*10)%2==0?(i*10-Math.floor(i*10)):1-(i*10-Math.floor(i*10)))}
Effect.Transitions.none=function(i){return 0}
Effect.Transitions.full=function(i){return 1}
Effect.Queue={effects:[],interval:null,findLast:function(){var I=this,i=false;for(var l=0;l<I.effects.length;l++)if(!i||(I.effects[l].finishOn>i))i=I.effects[l].finishOn;return i},add:function(effect){var timestamp=new Date().getTime();switch(effect.options.queue){case 'front':for(var i=0;i<this.effects.length;i++)if(this.effects[i].state=='idle'){this.effects[i].startOn+=effect.finishOn;this.effects[i].finishOn+=effect.finishOn}
break;case 'end':timestamp=this.findLast()||timestamp;break}
effect.startOn+=timestamp;effect.finishOn+=timestamp;this.effects.push(effect);if(!this.interval)this.interval=setInterval(this.loop.bind(this),40)},remove:function(i){var l=this;for(var I=0;I<l.effects.length;I++)if(l.effects[I]==i)l.effects.splice(I,1);if(l.effects.length==0){clearInterval(l.interval);l.interval=null}},loop:function(){var I=this;var i=new Date().getTime();for(var l=0;l<I.effects.length;l++){I.effects[l].loop(i)}}}
Effect.Base=function(){};Effect.Base.prototype={setOptions:function(i){this.options=Object.extend({transition:Effect.Transitions.sinoidal,duration:1.0,fps:25.0,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'},i||{})},start:function(i){var I=this;I.setOptions(i||{});I.currentFrame=0;I.state='idle';I.startOn=I.options.delay*1000;I.finishOn=I.startOn+(I.options.duration*1000);if(I.options.beforeStart)I.options.beforeStart(I);if(!I.options.sync)Effect.Queue.add(I)},loop:function(i){var o=this;if(i>=o.startOn){if(i>=o.finishOn){o.render(1.0);o.cancel();if(o.finish)o.finish();if(o.options.afterFinish)o.options.afterFinish(o);return}
var l=(i-o.startOn)/(o.finishOn-o.startOn),I=Math.round(l*o.options.fps*o.options.duration);if(I>o.currentFrame){o.render(l);o.currentFrame=I}}},render:function(i){var I=this;if(I.state=='idle'){I.state='running';if(I.setup)I.setup()}
if(I.options.transition)i=I.options.transition(i);i*=(I.options.to-I.options.from);i+=I.options.from;if(I.options.beforeUpdate)I.options.beforeUpdate(I);if(I.update)I.update(i);if(I.options.afterUpdate)I.options.afterUpdate(I)},cancel:function(){var i=this;if(!i.options.sync)Effect.Queue.remove(i);i.state='finished'}}
Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(i){var I=this;I.effects=i||[];I.start(arguments[1])},update:function(i){var l=this;for(var I=0;I<l.effects.length;I++)l.effects[I].render(i)},finish:function(i){var l=this;for(var I=0;I<l.effects.length;I++){l.effects[I].cancel();if(l.effects[I].finish)l.effects[I].finish(i)}}});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(i){var l=this;l.element=$(i);var I=Object.extend({from:0.0,to:1.0},arguments[1]||{});l.start(I)},update:function(i){this.setOpacity(i)},setOpacity:function(i){var I=this;if(i<0.0001)i=0;if(i==1.0){I.element.style.opacity='0.999999';I.element.style.filter=null}else{I.element.style.opacity=i;I.element.style.filter="alpha(opacity:"+i*100+")"}}});Effect.MoveBy=Class.create();Object.extend(Object.extend(Effect.MoveBy.prototype,Effect.Base.prototype),{initialize:function(i,l,I){var o=this;o.element=$(i);o.toTop=l;o.toLeft=I;o.start(arguments[3])},setup:function(){var i=this;i.originalTop=parseFloat(Element.getStyle(i.element,'top')||'0');i.originalLeft=parseFloat(Element.getStyle(i.element,'left')||'0');Element.makePositioned(i.element)},update:function(i){var I=this;topd=I.toTop*i+I.originalTop;leftd=I.toLeft*i+I.originalLeft;I.setPosition(topd,leftd)},setPosition:function(I,i){var l=this;l.element.style.top=I+"px";l.element.style.left=i+"px"}});Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(i,l){var o=this;o.element=$(i)
var I=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:l},arguments[2]||{});o.start(I)},setup:function(){var i=this;i.originalTop=i.element.offsetTop;i.originalLeft=i.element.offsetLeft;if(Element.getStyle(i.element,'font-size')=="")i.sizeEm=1.0;if(Element.getStyle(i.element,'font-size')&&Element.getStyle(i.element,'font-size').indexOf("em")>0)i.sizeEm=parseFloat(Element.getStyle(i.element,'font-size'));i.factor=(i.options.scaleTo/100.0)-(i.options.scaleFrom/100.0);if(i.options.scaleMode=='box'){i.originalHeight=i.element.clientHeight;i.originalWidth=i.element.clientWidth}else
if(i.options.scaleMode=='contents'){i.originalHeight=i.element.scrollHeight;i.originalWidth=i.element.scrollWidth}else{i.originalHeight=i.options.scaleMode.originalHeight;i.originalWidth=i.options.scaleMode.originalWidth}},update:function(I){var l=this,i=(l.options.scaleFrom/100.0)+(l.factor*I);if(l.options.scaleContent&&l.sizeEm)l.element.style.fontSize=l.sizeEm*i+"em";l.setDimensions(l.originalWidth*i,l.originalHeight*i)},setDimensions:function(I,i){var O=this;if(O.options.scaleX)O.element.style.width=I+'px';if(O.options.scaleY)O.element.style.height=i+'px';if(O.options.scaleFromCenter){var o=(i-O.originalHeight)/2,l=(I-O.originalWidth)/2;if(Element.getStyle(O.element,'position')=='absolute'){if(O.options.scaleY)O.element.style.top=O.originalTop-o+"px";if(O.options.scaleX)O.element.style.left=O.originalLeft-l+"px"}else{if(O.options.scaleY)O.element.style.top=-o+"px";if(O.options.scaleX)O.element.style.left=-l+"px"}}}});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(i){var l=this;l.element=$(i);var I=Object.extend({startcolor:"#ffff99"},arguments[1]||{});l.start(I)},setup:function(){var o=this;if(!o.options.endcolor){var I="#ffffff",i=Element.getStyle(o.element,'background-color');if(i&&i.slice(0,4)=="rgb("){I="#";var l=i.slice(4,i.length-1).split(','),O=0;do{I+=parseInt(l[O]).toColorPart()} while(++O<3)}
o.options.endcolor=I}
o.colors_base=[parseInt(o.options.startcolor.slice(1,3),16),parseInt(o.options.startcolor.slice(3,5),16),parseInt(o.options.startcolor.slice(5),16)];o.colors_delta=[parseInt(o.options.endcolor.slice(1,3),16)-o.colors_base[0],parseInt(o.options.endcolor.slice(3,5),16)-o.colors_base[1],parseInt(o.options.endcolor.slice(5),16)-o.colors_base[2]]},update:function(i){var l=this,I=[Math.round(l.colors_base[0]+(l.colors_delta[0]*i)),Math.round(l.colors_base[1]+(l.colors_delta[1]*i)),Math.round(l.colors_base[2]+(l.colors_delta[2]*i))];l.element.style.backgroundColor="#"+I[0].toColorPart()+I[1].toColorPart()+I[2].toColorPart()},finish:function(){var i=this;i.element.style.backgroundColor=i.options.restorecolor}});Effect.ScrollTo=Class.create();Object.extend(Object.extend(Effect.ScrollTo.prototype,Effect.Base.prototype),{initialize:function(i){var I=this;I.element=$(i);I.start(arguments[1]||{})},setup:function(){var l=this;Position.prepare();var i=Position.cumulativeOffset(l.element),I=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);l.scrollStart=Position.deltaY;l.delta=(i[1]>I?I:i[1])-l.scrollStart},update:function(i){var I=this;Position.prepare();window.scrollTo(Position.deltaX,I.scrollStart+(i*I.delta))}});Effect.Fade=function(I){var i=Object.extend({from:1.0,to:0.0,afterFinish:function(i){Element.hide(i.element);i.setOpacity(1)}},arguments[1]||{});return new Effect.Opacity(I,i)}
Effect.Appear=function(I){var i=Object.extend({from:0.0,to:1.0,beforeStart:function(i){i.setOpacity(0);Element.show(i.element)},afterUpdate:function(i){Element.show(i.element)}},arguments[1]||{});return new Effect.Opacity(I,i)}
Effect.Puff=function(i){return new Effect.Parallel([new Effect.Scale(i,200,{sync:true,scaleFromCenter:true}),new Effect.Opacity(i,{sync:true,to:0.0,from:1.0})],Object.extend({duration:1.0,beforeUpdate:function(i){i.effects[0].element.style.position='absolute'},afterFinish:function(i){Element.hide(i.effects[0].element)}},arguments[1]||{}))}
Effect.BlindUp=function(i){i=$(i);Element.makeClipping(i);return new Effect.Scale(i,0,Object.extend({scaleContent:false,scaleX:false,afterFinish:function(i){Element.hide(i.element);Element.undoClipping(i.element)}},arguments[1]||{}))}
Effect.BlindDown=function(i){i=$(i);i.style.height='0px';Element.makeClipping(i);Element.show(i);return new Effect.Scale(i,100,Object.extend({scaleContent:false,scaleX:false,scaleMode:'contents',scaleFrom:0,afterFinish:function(i){Element.undoClipping(i.element)}},arguments[1]||{}))}
Effect.SwitchOff=function(i){return new Effect.Appear(i,{duration:0.4,transition:Effect.Transitions.flicker,afterFinish:function(i){i.element.style.overflow='hidden';new Effect.Scale(i.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,afterUpdate:function(i){if(i.element.style.position=="")i.element.style.position='relative'},afterFinish:function(i){Element.hide(i.element)}})}})}
Effect.DropOut=function(i){return new Effect.Parallel([new Effect.MoveBy(i,100,0,{sync:true}),new Effect.Opacity(i,{sync:true,to:0.0,from:1.0})],Object.extend({duration:0.5,afterFinish:function(i){Element.hide(i.effects[0].element)}},arguments[1]||{}))}
Effect.Shake=function(i){return new Effect.MoveBy(i,0,20,{duration:0.05,afterFinish:function(i){new Effect.MoveBy(i.element,0,-40,{duration:0.1,afterFinish:function(i){new Effect.MoveBy(i.element,0,40,{duration:0.1,afterFinish:function(i){new Effect.MoveBy(i.element,0,-40,{duration:0.1,afterFinish:function(i){new Effect.MoveBy(i.element,0,40,{duration:0.1,afterFinish:function(i){new Effect.MoveBy(i.element,0,-20,{duration:0.05,afterFinish:function(i){}})}})}})}})}})}})}
Effect.SlideDown=function(i){i=$(i);i.style.height='0px';Element.makeClipping(i);Element.cleanWhitespace(i);Element.makePositioned(i.firstChild);Element.show(i);return new Effect.Scale(i,100,Object.extend({scaleContent:false,scaleX:false,scaleMode:'contents',scaleFrom:0,afterUpdate:function(i){i.element.firstChild.style.bottom=(i.originalHeight-i.element.clientHeight)+'px'},afterFinish:function(i){Element.undoClipping(i.element)}},arguments[1]||{}))}
Effect.SlideUp=function(i){i=$(i);Element.makeClipping(i);Element.cleanWhitespace(i);Element.makePositioned(i.firstChild);Element.show(i);return new Effect.Scale(i,0,Object.extend({scaleContent:false,scaleX:false,afterUpdate:function(i){i.element.firstChild.style.bottom=(i.originalHeight-i.element.clientHeight)+'px'},afterFinish:function(i){Element.hide(i.element);Element.undoClipping(i.element)}},arguments[1]||{}))}
Effect.Squish=function(i){return new Effect.Scale(i,0,{afterFinish:function(i){Element.hide(i.element)}})}
Effect.Grow=function(O){O=$(O);var c=arguments[1]||{},I=O.clientWidth,i=O.clientHeight;O.style.overflow='hidden';Element.show(O);var V=c.direction||'center',z=c.moveTransition||Effect.Transitions.sinoidal,X=c.scaleTransition||Effect.Transitions.sinoidal,x=c.opacityTransition||Effect.Transitions.full,o,l,v,C;switch(V){case 'top-left':o=l=v=C=0;break;case 'top-right':o=I;l=C=0;v=-I;break;case 'bottom-left':o=v=0;l=i;C=-i;break;case 'bottom-right':o=I;l=i;v=-I;C=-i;break;case 'center':o=I/2;l=i/2;v=-I/2;C=-i/2;break}
return new Effect.MoveBy(O,l,o,{duration:0.01,beforeUpdate:function(i){$(O).style.height='0px'},afterFinish:function(l){new Effect.Parallel([new Effect.Opacity(O,{sync:true,to:1.0,from:0.0,transition:x}),new Effect.MoveBy(O,C,v,{sync:true,transition:z}),new Effect.Scale(O,100,{scaleMode:{originalHeight:i,originalWidth:I},sync:true,scaleFrom:0,scaleTo:100,transition:X})],c)}})}
Effect.Shrink=function(i){i=$(i);var o=arguments[1]||{},l=i.clientWidth,I=i.clientHeight;i.style.overflow='hidden';Element.show(i);var x=o.direction||'center',V=o.moveTransition||Effect.Transitions.sinoidal,c=o.scaleTransition||Effect.Transitions.sinoidal,O=o.opacityTransition||Effect.Transitions.none,v,C;switch(x){case 'top-left':v=C=0;break;case 'top-right':v=l;C=0;break;case 'bottom-left':v=0;C=I;break;case 'bottom-right':v=l;C=I;break;case 'center':v=l/2;C=I/2;break}
return new Effect.Parallel([new Effect.Opacity(i,{sync:true,to:0.0,from:1.0,transition:O}),new Effect.Scale(i,0,{sync:true,transition:V}),new Effect.MoveBy(i,C,v,{sync:true,transition:c})],o)}
Effect.Pulsate=function(i){i=$(i);var o=arguments[1]||{},l=o.transition||Effect.Transitions.sinoidal,I=function(i){return l(1-Effect.Transitions.pulse(i))};I.bind(l);return new Effect.Opacity(i,Object.extend(Object.extend({duration:3.0,afterFinish:function(i){Element.show(i.element)}},o),{transition:I}))}
Effect.Fold=function(i){i=$(i);i.style.overflow='hidden';return new Effect.Scale(i,5,Object.extend({scaleContent:false,scaleTo:100,scaleX:false,afterFinish:function(I){new Effect.Scale(i,1,{scaleContent:false,scaleTo:0,scaleY:false,afterFinish:function(i){Element.hide(i.element)}})}},arguments[1]||{}))}
Element.setContentZoom=function(i,I){i=$(i);i.style.fontSize=(I/100)+"em";if(navigator.appVersion.indexOf('AppleWebKit')>0)window.scrollBy(0,0)}
