Effect.PAIRS=Object.extend(Effect.PAIRS,{slidedown:["SlideDownIn","SlideDownOut"],slideup:["SlideUpIn","SlideUpOut"],slideleft:["SlideLeftIn","SlideLeftOut"],slideright:["SlideRightIn","SlideRightOut"],curtain:["CurtainClose","CurtainOpen"]}); Object.extend(Effect,{_elementIsNotAListError:{name:"ElementIsNotAListError",message:"The specified DOM element is not a list exist, but is required to be for this effect to operate"}}); Effect.PulseList=Class.create();Object.extend(Object.extend(Effect.PulseList.prototype,Effect.Base.prototype),{initialize:function(b){this.element=$(b); if(!this.element){throw (Effect._elementDoesNotExistError) }if(!["UL","OL"].include(this.element.tagName)){throw (Effect._elementIsNotAListError) }if(!this.element.effectOn){this.element.effectOn=true; var a=Object.extend({_pulse:1,direction:"down",pulses:1,continuous:false,bounce:false,duration:2,min_opacity:0.1},arguments[1]||{}); this.start(a)}},setup:function(){var c=this.element.immediateDescendants().size(); var b=1;var a=this;this.element.immediateDescendants().each(function(f){var d=(a.options.direction=="down")?(b++-1)/c:(c-b++)/c; var e=function(g){return Effect.Transitions.sinoidal(1-Effect.Transitions.pulse(g,1)) };new Effect.Opacity(f,Object.extend(Object.extend({delay:d,duration:a.options.duration,from:a.options.min_opacity,afterFinishInternal:function(g){if(!(a.options.direction=="down"?f.next():f.previous())){if((a.options.continuous)||(a.options._pulse++(1-a)){$(this.cellids.pop()).setStyle({backgroundColor:this.options.endcolor}) }},finish:function(){new Effect.Fade(this.table,{afterFinish:function(a){a.element.parentNode.removeChild(a.element) }})}});Effect.Duplicate=Class.create();Object.extend(Object.extend(Effect.Duplicate.prototype,Effect.Base.prototype),{initialize:function(b){this.element=$(b); if(!this.element){throw (Effect._elementDoesNotExistError) }this.element.makePositioned();this.elecopy=this.element.cloneNode(true); this.elecopy.setStyle({color:"red",backgroundColor:"red",backgroundImage:""}); this.elecopy.id=b.id+"-copy";this.element.parentNode.appendChild(this.elecopy); Position.relativize(this.element);Position.relativize(this.elecopy); Position.absolutize(this.element);Position.absolutize(this.elecopy); var a=Object.extend({},arguments[1]||{});this.start(a) },asetup:function(){return new Effect.Parallel([new Effect.SlideRightIn(this.element,{sync:true}),new Effect.SlideLeftIn(this.elecopy,{sync:true})],Object.extend({duration:2},arguments[1]||{})) },update:function(a){},finish:function(){this.elecopy.undoClipping().undoPositioned().remove() }});Effect.Flicker=Class.create();Object.extend(Object.extend(Effect.Flicker.prototype,Effect.Base.prototype),{initialize:function(b){this.element=$(b); if(!this.element){throw (Effect._elementDoesNotExistError) }if(!this.element.effectOn){this.element.effectOn=true; var a=Object.extend({threshold:0.5,endvisibility:"visible"},arguments[1]||{}); this.start(a)}},update:function(a){var b=(Math.random()