String.prototype.parseColor=function(){var A="#";
if(this.slice(0,4)=="rgb("){var C=this.slice(4,this.length-1).split(",");
var B=0;
do{A+=parseInt(C[B]).toColorPart();
}while(++B<3);
}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var B=1;
B<4;
B++){A+=(this.charAt(B)+this.charAt(B)).toLowerCase();
}}if(this.length==7){A=this.toLowerCase();
}}}return(A.length==7?A:(arguments[0]||this));
};
Element.collectTextNodes=function(A){return $A($(A).childNodes).collect(function(B){return(B.nodeType==3?B.nodeValue:(B.hasChildNodes()?Element.collectTextNodes(B):""));
}).flatten().join("");
};
Element.collectTextNodesIgnoreClass=function(A,B){return $A($(A).childNodes).collect(function(C){return(C.nodeType==3?C.nodeValue:((C.hasChildNodes()&&!Element.hasClassName(C,B))?Element.collectTextNodesIgnoreClass(C,B):""));
}).flatten().join("");
};
Element.setContentZoom=function(A,B){A=$(A);
Element.setStyle(A,{fontSize:(B/100)+"em"});
if(navigator.appVersion.indexOf("AppleWebKit")>0){window.scrollBy(0,0);
}};
Element.getOpacity=function(B){var A;
if(A=Element.getStyle(B,"opacity")){return parseFloat(A);
}if(A=(Element.getStyle(B,"filter")||"").match(/alpha\(opacity=(.*)\)/)){if(A[1]){return parseFloat(A[1])/100;
}}return 1;
};
Element.setOpacity=function(A,B){A=$(A);
if(B==1){Element.setStyle(A,{opacity:(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:1});
if(/MSIE/.test(navigator.userAgent)&&!window.opera){Element.setStyle(A,{filter:Element.getStyle(A,"filter").replace(/alpha\([^\)]*\)/gi,"")});
}}else{if(B<0.00001){B=0;
}Element.setStyle(A,{opacity:B});
if(/MSIE/.test(navigator.userAgent)&&!window.opera){Element.setStyle(A,{filter:Element.getStyle(A,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+B*100+")"});
}}};
Element.getInlineOpacity=function(A){return $(A).style.opacity||"";
};
Element.childrenWithClassName=function(C,D,E){var B=new RegExp("(^|\\s)"+D+"(\\s|$)");
var A=$A($(C).getElementsByTagName("*"))[E?"detect":"select"](function(F){return(F.className&&F.className.match(B));
});
if(!A){A=[];
}return A;
};
Element.forceRerendering=function(A){try{A=$(A);
var C=document.createTextNode(" ");
A.appendChild(C);
A.removeChild(C);
}catch(B){}};
Array.prototype.call=function(){var A=arguments;
this.each(function(B){B.apply(this,A);
});
};
var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},tagifyText:function(A){if(typeof Builder=="undefined"){throw ("Effect.tagifyText requires including script.aculo.us' builder.js library");
}var B="position:relative";
if(/MSIE/.test(navigator.userAgent)&&!window.opera){B+=";zoom:1";
}A=$(A);
$A(A.childNodes).each(function(C){if(C.nodeType==3){C.nodeValue.toArray().each(function(D){A.insertBefore(Builder.node("span",{style:B},D==" "?String.fromCharCode(160):D),C);
});
Element.remove(C);
}});
},multiple:function(B,C){var E;
if(((typeof B=="object")||(typeof B=="function"))&&(B.length)){E=B;
}else{E=$(B).childNodes;
}var A=Object.extend({speed:0.1,delay:0},arguments[2]||{});
var D=A.delay;
$A(E).each(function(G,F){new C(G,Object.extend(A,{delay:F*A.speed+D}));
});
},PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:function(B,C){B=$(B);
C=(C||"appear").toLowerCase();
var A=Object.extend({queue:{position:"end",scope:(B.id||"global"),limit:1}},arguments[2]||{});
Effect[B.visible()?Effect.PAIRS[C][1]:Effect.PAIRS[C][0]](B,A);
}};
var Effect2=Effect;
Effect.Transitions={};
Effect.Transitions.linear=Prototype.K;
Effect.Transitions.sinoidal=function(A){return(-Math.cos(A*Math.PI)/2)+0.5;
};
Effect.Transitions.reverse=function(A){return 1-A;
};
Effect.Transitions.flicker=function(A){return((-Math.cos(A*Math.PI)/4)+0.75)+Math.random()/4;
};
Effect.Transitions.wobble=function(A){return(-Math.cos(A*Math.PI*(9*A))/2)+0.5;
};
Effect.Transitions.pulse=function(A){return(Math.floor(A*10)%2==0?(A*10-Math.floor(A*10)):1-(A*10-Math.floor(A*10)));
};
Effect.Transitions.none=function(A){return 0;
};
Effect.Transitions.full=function(A){return 1;
};
Effect.ScopedQueue=Class.create();
Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];
this.interval=null;
},_each:function(A){this.effects._each(A);
},add:function(B){var C=new Date().getTime();
var A=(typeof B.options.queue=="string")?B.options.queue:B.options.queue.position;
switch(A){case"front":this.effects.findAll(function(D){return D.state=="idle";
}).each(function(D){D.startOn+=B.finishOn;
D.finishOn+=B.finishOn;
});
break;
case"end":C=this.effects.pluck("finishOn").max()||C;
break;
}B.startOn+=C;
B.finishOn+=C;
if(!B.options.queue.limit||(this.effects.length<B.options.queue.limit)){this.effects.push(B);
}if(!this.interval){this.interval=setInterval(this.loop.bind(this),40);
}},remove:function(A){this.effects=this.effects.reject(function(B){return B==A;
});
if(this.effects.length==0){clearInterval(this.interval);
this.interval=null;
}},loop:function(){var A=new Date().getTime();
this.effects.invoke("loop",A);
}});
Effect.Queues={instances:$H(),get:function(A){if(typeof A!="string"){return A;
}if(!this.instances[A]){this.instances[A]=new Effect.ScopedQueue();
}return this.instances[A];
}};
Effect.Queue=Effect.Queues.get("global");
Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"};
Effect.Base=function(){};
Effect.Base.prototype={position:null,start:function(A){this.options=Object.extend(Object.extend({},Effect.DefaultOptions),A||{});
this.currentFrame=0;
this.state="idle";
this.startOn=this.options.delay*1000;
this.finishOn=this.startOn+(this.options.duration*1000);
this.event("beforeStart");
if(!this.options.sync){Effect.Queues.get(typeof this.options.queue=="string"?"global":this.options.queue.scope).add(this);
}},loop:function(C){if(C>=this.startOn){if(C>=this.finishOn){this.render(1);
this.cancel();
this.event("beforeFinish");
if(this.finish){this.finish();
}this.event("afterFinish");
return ;
}var B=(C-this.startOn)/(this.finishOn-this.startOn);
var A=Math.round(B*this.options.fps*this.options.duration);
if(A>this.currentFrame){this.render(B);
this.currentFrame=A;
}}},render:function(A){if(this.state=="idle"){this.state="running";
this.event("beforeSetup");
if(this.setup){this.setup();
}this.event("afterSetup");
}if(this.state=="running"){if(this.options.transition){A=this.options.transition(A);
}A*=(this.options.to-this.options.from);
A+=this.options.from;
this.position=A;
this.event("beforeUpdate");
if(this.update){this.update(A);
}this.event("afterUpdate");
}},cancel:function(){if(!this.options.sync){Effect.Queues.get(typeof this.options.queue=="string"?"global":this.options.queue.scope).remove(this);
}this.state="finished";
},event:function(A){if(this.options[A+"Internal"]){this.options[A+"Internal"](this);
}if(this.options[A]){this.options[A](this);
}},inspect:function(){return"#<Effect:"+$H(this).inspect()+",options:"+$H(this.options).inspect()+">";
}};
Effect.Parallel=Class.create();
Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(A){this.effects=A||[];
this.start(arguments[1]);
},update:function(A){this.effects.invoke("render",A);
},finish:function(A){this.effects.each(function(B){B.render(1);
B.cancel();
B.event("beforeFinish");
if(B.finish){B.finish(A);
}B.event("afterFinish");
});
}});
Effect.Opacity=Class.create();
Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(B){this.element=$(B);
if(!this.element){throw (Effect._elementDoesNotExistError);
}if(/MSIE/.test(navigator.userAgent)&&!window.opera&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1});
}var A=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});
this.start(A);
},update:function(A){this.element.setOpacity(A);
}});
Effect.Move=Class.create();
Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:function(B){this.element=$(B);
if(!this.element){throw (Effect._elementDoesNotExistError);
}var A=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});
this.start(A);
},setup:function(){this.element.makePositioned();
this.originalLeft=parseFloat(this.element.getStyle("left")||"0");
this.originalTop=parseFloat(this.element.getStyle("top")||"0");
if(this.options.mode=="absolute"){this.options.x=this.options.x-this.originalLeft;
this.options.y=this.options.y-this.originalTop;
}},update:function(A){this.element.setStyle({left:Math.round(this.options.x*A+this.originalLeft)+"px",top:Math.round(this.options.y*A+this.originalTop)+"px"});
}});
Effect.MoveBy=function(B,A,C){return new Effect.Move(B,Object.extend({x:C,y:A},arguments[3]||{}));
};
Effect.Scale=Class.create();
Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(B,C){this.element=$(B);
if(!this.element){throw (Effect._elementDoesNotExistError);
}var A=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:C},arguments[2]||{});
this.start(A);
},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;
this.elementPositioning=this.element.getStyle("position");
this.originalStyle={};
["top","left","width","height","fontSize"].each(function(B){this.originalStyle[B]=this.element.style[B];
}.bind(this));
this.originalTop=this.element.offsetTop;
this.originalLeft=this.element.offsetLeft;
var A=this.element.getStyle("font-size")||"100%";
["em","px","%","pt"].each(function(B){if(A.indexOf(B)>0){this.fontSize=parseFloat(A);
this.fontSizeType=B;
}}.bind(this));
this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;
this.dims=null;
if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth];
}if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth];
}if(!this.dims){this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];
}},update:function(A){var B=(this.options.scaleFrom/100)+(this.factor*A);
if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*B+this.fontSizeType});
}this.setDimensions(this.dims[0]*B,this.dims[1]*B);
},finish:function(A){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle);
}},setDimensions:function(A,D){var E={};
if(this.options.scaleX){E.width=Math.round(D)+"px";
}if(this.options.scaleY){E.height=Math.round(A)+"px";
}if(this.options.scaleFromCenter){var C=(A-this.dims[0])/2;
var B=(D-this.dims[1])/2;
if(this.elementPositioning=="absolute"){if(this.options.scaleY){E.top=this.originalTop-C+"px";
}if(this.options.scaleX){E.left=this.originalLeft-B+"px";
}}else{if(this.options.scaleY){E.top=-C+"px";
}if(this.options.scaleX){E.left=-B+"px";
}}}this.element.setStyle(E);
}});
Effect.Highlight=Class.create();
Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(B){this.element=$(B);
if(!this.element){throw (Effect._elementDoesNotExistError);
}var A=Object.extend({startcolor:"#ffff99"},arguments[1]||{});
this.start(A);
},setup:function(){if(this.element.getStyle("display")=="none"){this.cancel();
return ;
}this.oldStyle={backgroundImage:this.element.getStyle("background-image")};
this.element.setStyle({backgroundImage:"none"});
if(!this.options.endcolor){this.options.endcolor=this.element.getStyle("background-color").parseColor("#ffffff");
}if(!this.options.restorecolor){this.options.restorecolor=this.element.getStyle("background-color");
}this._base=$R(0,2).map(function(A){return parseInt(this.options.startcolor.slice(A*2+1,A*2+3),16);
}.bind(this));
this._delta=$R(0,2).map(function(A){return parseInt(this.options.endcolor.slice(A*2+1,A*2+3),16)-this._base[A];
}.bind(this));
},update:function(A){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(B,C,D){return B+(Math.round(this._base[D]+(this._delta[D]*A)).toColorPart());
}.bind(this))});
},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));
}});
Effect.ScrollTo=Class.create();
Object.extend(Object.extend(Effect.ScrollTo.prototype,Effect.Base.prototype),{initialize:function(A){this.element=$(A);
this.start(arguments[1]||{});
},setup:function(){Position.prepare();
var B=Position.cumulativeOffset(this.element);
if(this.options.offset){B[1]+=this.options.offset;
}var A=window.innerHeight?window.height-window.innerHeight:document.documentElement.scrollHeight-(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);
this.scrollStart=Position.deltaY;
this.delta=(B[1]>A?A:B[1])-this.scrollStart;
},update:function(A){Position.prepare();
window.scrollTo(Position.deltaX,this.scrollStart+(A*this.delta));
}});
Effect.Fade=function(C){C=$(C);
var A=C.getInlineOpacity();
var B=Object.extend({from:C.getOpacity()||1,to:0,afterFinishInternal:function(D){if(D.options.to!=0){return ;
}D.element.hide();
D.element.setStyle({opacity:A});
}},arguments[1]||{});
return new Effect.Opacity(C,B);
};
Effect.Appear=function(B){B=$(B);
var A=Object.extend({from:(B.getStyle("display")=="none"?0:B.getOpacity()||0),to:1,afterFinishInternal:function(C){C.element.forceRerendering();
},beforeSetup:function(C){C.element.setOpacity(C.options.from);
C.element.show();
}},arguments[1]||{});
return new Effect.Opacity(B,A);
};
Effect.Puff=function(B){B=$(B);
var A={opacity:B.getInlineOpacity(),position:B.getStyle("position"),top:B.style.top,left:B.style.left,width:B.style.width,height:B.style.height};
return new Effect.Parallel([new Effect.Scale(B,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(B,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(C){Position.absolutize(C.effects[0].element);
},afterFinishInternal:function(C){C.effects[0].element.hide();
C.effects[0].element.setStyle(A);
}},arguments[1]||{}));
};
Effect.BlindUp=function(A){A=$(A);
A.makeClipping();
return new Effect.Scale(A,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(B){B.element.hide();
B.element.undoClipping();
}},arguments[1]||{}));
};
Effect.BlindDown=function(B){B=$(B);
var A=B.getDimensions();
return new Effect.Scale(B,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:A.height,originalWidth:A.width},restoreAfterFinish:true,afterSetup:function(C){C.element.makeClipping();
C.element.setStyle({height:"0px"});
C.element.show();
},afterFinishInternal:function(C){C.element.undoClipping();
}},arguments[1]||{}));
};
Effect.SwitchOff=function(B){B=$(B);
var A=B.getInlineOpacity();
return new Effect.Appear(B,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(C){new Effect.Scale(C.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(D){D.element.makePositioned();
D.element.makeClipping();
},afterFinishInternal:function(D){D.element.hide();
D.element.undoClipping();
D.element.undoPositioned();
D.element.setStyle({opacity:A});
}});
}},arguments[1]||{}));
};
Effect.DropOut=function(B){B=$(B);
var A={top:B.getStyle("top"),left:B.getStyle("left"),opacity:B.getInlineOpacity()};
return new Effect.Parallel([new Effect.Move(B,{x:0,y:100,sync:true}),new Effect.Opacity(B,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(C){C.effects[0].element.makePositioned();
},afterFinishInternal:function(C){C.effects[0].element.hide();
C.effects[0].element.undoPositioned();
C.effects[0].element.setStyle(A);
}},arguments[1]||{}));
};
Effect.Shake=function(B){B=$(B);
var A={top:B.getStyle("top"),left:B.getStyle("left")};
return new Effect.Move(B,{x:20,y:0,duration:0.05,afterFinishInternal:function(C){new Effect.Move(C.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(D){new Effect.Move(D.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(E){new Effect.Move(E.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(F){new Effect.Move(F.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(G){new Effect.Move(G.element,{x:-20,y:0,duration:0.05,afterFinishInternal:function(H){H.element.undoPositioned();
H.element.setStyle(A);
}});
}});
}});
}});
}});
}});
};
Effect.SlideDown=function(C){C=$(C);
C.cleanWhitespace();
var A=$(C.firstChild).getStyle("bottom");
var B=C.getDimensions();
return new Effect.Scale(C,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:B.height,originalWidth:B.width},restoreAfterFinish:true,afterSetup:function(D){D.element.makePositioned();
D.element.firstChild.makePositioned();
if(window.opera){D.element.setStyle({top:""});
}D.element.makeClipping();
D.element.setStyle({height:"0px"});
D.element.show();
},afterUpdateInternal:function(D){D.element.firstChild.setStyle({bottom:(D.dims[0]-D.element.clientHeight)+"px"});
},afterFinishInternal:function(D){D.element.undoClipping();
if(/MSIE/.test(navigator.userAgent)&&!window.opera){D.element.undoPositioned();
D.element.firstChild.undoPositioned();
}else{D.element.firstChild.undoPositioned();
D.element.undoPositioned();
}D.element.firstChild.setStyle({bottom:A});
}},arguments[1]||{}));
};
Effect.SlideUp=function(B){B=$(B);
B.cleanWhitespace();
var A=$(B.firstChild).getStyle("bottom");
return new Effect.Scale(B,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(C){C.element.makePositioned();
C.element.firstChild.makePositioned();
if(window.opera){C.element.setStyle({top:""});
}C.element.makeClipping();
C.element.show();
},afterUpdateInternal:function(C){C.element.firstChild.setStyle({bottom:(C.dims[0]-C.element.clientHeight)+"px"});
},afterFinishInternal:function(C){C.element.hide();
C.element.undoClipping();
C.element.firstChild.undoPositioned();
C.element.undoPositioned();
C.element.setStyle({bottom:A});
}},arguments[1]||{}));
};
Effect.Squish=function(A){return new Effect.Scale(A,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(B){B.element.makeClipping(B.element);
},afterFinishInternal:function(B){B.element.hide(B.element);
B.element.undoClipping(B.element);
}});
};
Effect.Grow=function(C){C=$(C);
var B=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});
var A={top:C.style.top,left:C.style.left,height:C.style.height,width:C.style.width,opacity:C.getInlineOpacity()};
var G=C.getDimensions();
var H,F;
var E,D;
switch(B.direction){case"top-left":H=F=E=D=0;
break;
case"top-right":H=G.width;
F=D=0;
E=-G.width;
break;
case"bottom-left":H=E=0;
F=G.height;
D=-G.height;
break;
case"bottom-right":H=G.width;
F=G.height;
E=-G.width;
D=-G.height;
break;
case"center":H=G.width/2;
F=G.height/2;
E=-G.width/2;
D=-G.height/2;
break;
}return new Effect.Move(C,{x:H,y:F,duration:0.01,beforeSetup:function(I){I.element.hide();
I.element.makeClipping();
I.element.makePositioned();
},afterFinishInternal:function(I){new Effect.Parallel([new Effect.Opacity(I.element,{sync:true,to:1,from:0,transition:B.opacityTransition}),new Effect.Move(I.element,{x:E,y:D,sync:true,transition:B.moveTransition}),new Effect.Scale(I.element,100,{scaleMode:{originalHeight:G.height,originalWidth:G.width},sync:true,scaleFrom:window.opera?1:0,transition:B.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(J){J.effects[0].element.setStyle({height:"0px"});
J.effects[0].element.show();
},afterFinishInternal:function(J){J.effects[0].element.undoClipping();
J.effects[0].element.undoPositioned();
J.effects[0].element.setStyle(A);
}},B));
}});
};
Effect.Shrink=function(C){C=$(C);
var B=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});
var A={top:C.style.top,left:C.style.left,height:C.style.height,width:C.style.width,opacity:C.getInlineOpacity()};
var F=C.getDimensions();
var E,D;
switch(B.direction){case"top-left":E=D=0;
break;
case"top-right":E=F.width;
D=0;
break;
case"bottom-left":E=0;
D=F.height;
break;
case"bottom-right":E=F.width;
D=F.height;
break;
case"center":E=F.width/2;
D=F.height/2;
break;
}return new Effect.Parallel([new Effect.Opacity(C,{sync:true,to:0,from:1,transition:B.opacityTransition}),new Effect.Scale(C,window.opera?1:0,{sync:true,transition:B.scaleTransition,restoreAfterFinish:true}),new Effect.Move(C,{x:E,y:D,sync:true,transition:B.moveTransition})],Object.extend({beforeStartInternal:function(G){G.effects[0].element.makePositioned();
G.effects[0].element.makeClipping();
},afterFinishInternal:function(G){G.effects[0].element.hide();
G.effects[0].element.undoClipping();
G.effects[0].element.undoPositioned();
G.effects[0].element.setStyle(A);
}},B));
};
Effect.Pulsate=function(C){C=$(C);
var B=arguments[1]||{};
var A=C.getInlineOpacity();
var E=B.transition||Effect.Transitions.sinoidal;
var D=function(F){return E(1-Effect.Transitions.pulse(F));
};
D.bind(E);
return new Effect.Opacity(C,Object.extend(Object.extend({duration:3,from:0,afterFinishInternal:function(F){F.element.setStyle({opacity:A});
}},B),{transition:D}));
};
Effect.Fold=function(B){B=$(B);
var A={top:B.style.top,left:B.style.left,width:B.style.width,height:B.style.height};
Element.makeClipping(B);
return new Effect.Scale(B,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(C){new Effect.Scale(B,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(D){D.element.hide();
D.element.undoClipping();
D.element.setStyle(A);
}});
}},arguments[1]||{}));
};
["setOpacity","getOpacity","getInlineOpacity","forceRerendering","setContentZoom","collectTextNodes","collectTextNodesIgnoreClass","childrenWithClassName"].each(function(A){Element.Methods[A]=Element[A];
});
Element.Methods.visualEffect=function(B,C,A){s=C.gsub(/_/,"-").camelize();
effect_class=s.charAt(0).toUpperCase()+s.substring(1);
new Effect[effect_class](B,A);
return $(B);
};
Element.addMethods();

