String.prototype.parseColor=function(){var O="#";if(this.slice(0,4)=="rgb("){var C=this.slice(4,this.length-1).split(",");var l=0;do{O+=parseInt(C[l]).toColorPart();}while(++l<3);}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var l=1;l<4;l++){O+=(this.charAt(l)+this.charAt(l)).toLowerCase();}}if(this.length==7){O=this.toLowerCase();}}}return (O.length==7?O:(arguments[0]||this));};Element.collectTextNodes=function(O){return $A($(O).childNodes).collect(function(l){return (l.nodeType==3?l.nodeValue:(l.hasChildNodes()?Element.collectTextNodes(l):""));}).flatten().join("");};Element.collectTextNodesIgnoreClass=function(O,l){return $A($(O).childNodes).collect(function(C){return (C.nodeType==3?C.nodeValue:((C.hasChildNodes()&&!Element.hasClassName(C,l))?Element.collectTextNodesIgnoreClass(C,l):""));}).flatten().join("");};Element.setContentZoom=function(O,l){O=$(O);O.setStyle({fontSize:(l/100)+"em"});if(navigator.appVersion.indexOf("AppleWebKit")>0){window.scrollBy(0,0);}return O;};Element.getOpacity=function(l){l=$(l);var O;if(O=l.getStyle("opacity")){return parseFloat(O);}if(O=(l.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/)){if(O[1]){return parseFloat(O[1])/100;}}return 1;};Element.setOpacity=function(O,l){O=$(O);if(l==1){O.setStyle({opacity:(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:1});if(/MSIE/.test(navigator.userAgent)&&!window.opera){O.setStyle({filter:Element.getStyle(O,"filter").replace(/alpha\([^\)]*\)/gi,"")});}}else{if(l<0.00001){l=0;}O.setStyle({opacity:l});if(/MSIE/.test(navigator.userAgent)&&!window.opera){O.setStyle({filter:O.getStyle("filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+l*100+")"});}}return O;};Element.getInlineOpacity=function(O){return $(O).style.opacity||"";};Element.forceRerendering=function(O){try{O=$(O);var C=document.createTextNode(" ");O.appendChild(C);O.removeChild(C);}catch(l){}};Array.prototype.call=function(){var O=arguments;this.each(function(l){l.apply(this,O);});};var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},tagifyText:function(O){if(typeof Builder=="undefined"){throw ("Effect.tagifyText requires including script.aculo.us' builder.js library");}var l="position:relative";if(/MSIE/.test(navigator.userAgent)&&!window.opera){l+=";zoom:1";}O=$(O);$A(O.childNodes).each(function(C){if(C.nodeType==3){C.nodeValue.toArray().each(function(q){O.insertBefore(Builder.node("span",{style:l},q==" "?String.fromCharCode(160):q),C);});Element.remove(C);}});},multiple:function(l,C){var k;if(((typeof l=="object")||(typeof l=="function"))&&(l.length)){k=l;}else{k=$(l).childNodes;}var O=Object.extend({speed:0.1,delay:0},arguments[2]||{});var q=O.delay;$A(k).each(function(A,N){new C(A,Object.extend(O,{delay:N*O.speed+q}));});},PAIRS:{"slide":["SlideDown","SlideUp"],"blind":["BlindDown","BlindUp"],"appear":["Appear","Fade"]},toggle:function(l,C){l=$(l);C=(C||"appear").toLowerCase();var O=Object.extend({queue:{position:"end",scope:(l.id||"global"),limit:1}},arguments[2]||{});Effect[l.visible()?Effect.PAIRS[C][1]:Effect.PAIRS[C][0]](l,O);}};var Effect2=Effect;Effect.Transitions={linear:Prototype.K,sinoidal:function(O){return (-Math.cos(O*Math.PI)/2)+0.5;},reverse:function(O){return 1-O;},flicker:function(O){return ((-Math.cos(O*Math.PI)/4)+0.75)+Math.random()/4;},wobble:function(O){return (-Math.cos(O*Math.PI*(9*O))/2)+0.5;},pulse:function(l,O){O=O||5;return (Math.round((l%(1/O))*O)==0?((l*O*2)-Math.floor(l*O*2)):1-((l*O*2)-Math.floor(l*O*2)));},none:function(O){return 0;},full:function(O){return 1;}};Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];this.interval=null;},_each:function(O){this.effects._each(O);},add:function(l){var C=new Date().getTime();var O=(typeof l.options.queue=="string")?l.options.queue:l.options.queue.position;switch(O){case "front":this.effects.findAll(function(q){return q.state=="idle";}).each(function(q){q.startOn+=l.finishOn;q.finishOn+=l.finishOn;});break;case "with-last":C=this.effects.pluck("startOn").max()||C;break;case "end":C=this.effects.pluck("finishOn").max()||C;break;}l.startOn+=C;l.finishOn+=C;if(!l.options.queue.limit||(this.effects.length<l.options.queue.limit)){this.effects.push(l);}if(!this.interval){this.interval=setInterval(this.loop.bind(this),40);}},remove:function(O){this.effects=this.effects.reject(function(l){return l==O;});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var O=new Date().getTime();this.effects.invoke("loop",O);}});Effect.Queues={instances:$H(),get:function(O){if(typeof O!="string"){return O;}if(!this.instances[O]){this.instances[O]=new Effect.ScopedQueue();}return this.instances[O];}};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(O){this.options=Object.extend(Object.extend({},Effect.DefaultOptions),O||{});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 l=(C-this.startOn)/(this.finishOn-this.startOn);var O=Math.round(l*this.options.fps*this.options.duration);if(O>this.currentFrame){this.render(l);this.currentFrame=O;}}},render:function(O){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){O=this.options.transition(O);}O*=(this.options.to-this.options.from);O+=this.options.from;this.position=O;this.event("beforeUpdate");if(this.update){this.update(O);}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(O){if(this.options[O+"Internal"]){this.options[O+"Internal"](this);}if(this.options[O]){this.options[O](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(O){this.effects=O||[];this.start(arguments[1]);},update:function(O){this.effects.invoke("render",O);},finish:function(O){this.effects.each(function(l){l.render(1);l.cancel();l.event("beforeFinish");if(l.finish){l.finish(O);}l.event("afterFinish");});}});Effect.Event=Class.create();Object.extend(Object.extend(Effect.Event.prototype,Effect.Base.prototype),{initialize:function(){var O=Object.extend({duration:0},arguments[0]||{});this.start(O);},update:Prototype.emptyFunction});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(l){this.element=$(l);if(!this.element){throw (Effect._elementDoesNotExistError);}if(/MSIE/.test(navigator.userAgent)&&!window.opera&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1});}var O=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(O);},update:function(O){this.element.setOpacity(O);}});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:function(l){this.element=$(l);if(!this.element){throw (Effect._elementDoesNotExistError);}var O=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(O);},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(O){this.element.setStyle({left:Math.round(this.options.x*O+this.originalLeft)+"px",top:Math.round(this.options.y*O+this.originalTop)+"px"});}});Effect.MoveBy=function(l,O,C){return new Effect.Move(l,Object.extend({x:C,y:O},arguments[3]||{}));};Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(l,C){this.element=$(l);if(!this.element){throw (Effect._elementDoesNotExistError);}var O=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:C},arguments[2]||{});this.start(O);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(l){this.originalStyle[l]=this.element.style[l];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var O=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(l){if(O.indexOf(l)>0){this.fontSize=parseFloat(O);this.fontSizeType=l;}}.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(O){var l=(this.options.scaleFrom/100)+(this.factor*O);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*l+this.fontSizeType});}this.setDimensions(this.dims[0]*l,this.dims[1]*l);},finish:function(O){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle);}},setDimensions:function(O,q){var k={};if(this.options.scaleX){k.width=Math.round(q)+"px";}if(this.options.scaleY){k.height=Math.round(O)+"px";}if(this.options.scaleFromCenter){var C=(O-this.dims[0])/2;var l=(q-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){k.top=this.originalTop-C+"px";}if(this.options.scaleX){k.left=this.originalLeft-l+"px";}}else{if(this.options.scaleY){k.top=-C+"px";}if(this.options.scaleX){k.left=-l+"px";}}}this.element.setStyle(k);}});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(l){this.element=$(l);if(!this.element){throw (Effect._elementDoesNotExistError);}var O=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(O);},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(O){return parseInt(this.options.startcolor.slice(O*2+1,O*2+3),16);}.bind(this));this._delta=$R(0,2).map(function(O){return parseInt(this.options.endcolor.slice(O*2+1,O*2+3),16)-this._base[O];}.bind(this));},update:function(O){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(l,C,q){return l+(Math.round(this._base[q]+(this._delta[q]*O)).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(O){this.element=$(O);this.start(arguments[1]||{});},setup:function(){Position.prepare();var l=Position.cumulativeOffset(this.element);if(this.options.offset){l[1]+=this.options.offset;}var O=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);this.scrollStart=Position.deltaY;this.delta=(l[1]>O?O:l[1])-this.scrollStart;},update:function(O){Position.prepare();window.scrollTo(Position.deltaX,this.scrollStart+(O*this.delta));}});Effect.Fade=function(C){C=$(C);var O=C.getInlineOpacity();var l=Object.extend({from:C.getOpacity()||1,to:0,afterFinishInternal:function(q){if(q.options.to!=0){return ;}q.element.hide().setStyle({opacity:O});}},arguments[1]||{});return new Effect.Opacity(C,l);};Effect.Appear=function(l){l=$(l);var O=Object.extend({from:(l.getStyle("display")=="none"?0:l.getOpacity()||0),to:1,afterFinishInternal:function(C){C.element.forceRerendering();},beforeSetup:function(C){C.element.setOpacity(C.options.from).show();}},arguments[1]||{});return new Effect.Opacity(l,O);};Effect.Puff=function(l){l=$(l);var O={opacity:l.getInlineOpacity(),position:l.getStyle("position"),top:l.style.top,left:l.style.left,width:l.style.width,height:l.style.height};return new Effect.Parallel([new Effect.Scale(l,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(l,{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().setStyle(O);}},arguments[1]||{}));};Effect.BlindUp=function(O){O=$(O);O.makeClipping();return new Effect.Scale(O,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(l){l.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindDown=function(l){l=$(l);var O=l.getDimensions();return new Effect.Scale(l,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:O.height,originalWidth:O.width},restoreAfterFinish:true,afterSetup:function(C){C.element.makeClipping().setStyle({height:"0px"}).show();},afterFinishInternal:function(C){C.element.undoClipping();}},arguments[1]||{}));};Effect.SwitchOff=function(l){l=$(l);var O=l.getInlineOpacity();return new Effect.Appear(l,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(q){q.element.makePositioned().makeClipping();},afterFinishInternal:function(q){q.element.hide().undoClipping().undoPositioned().setStyle({opacity:O});}});}},arguments[1]||{}));};Effect.DropOut=function(l){l=$(l);var O={top:l.getStyle("top"),left:l.getStyle("left"),opacity:l.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(l,{x:0,y:100,sync:true}),new Effect.Opacity(l,{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().undoPositioned().setStyle(O);}},arguments[1]||{}));};Effect.Shake=function(l){l=$(l);var O={top:l.getStyle("top"),left:l.getStyle("left")};return new Effect.Move(l,{x:20,y:0,duration:0.05,afterFinishInternal:function(C){new Effect.Move(C.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(q){new Effect.Move(q.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(k){new Effect.Move(k.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(N){new Effect.Move(N.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(A){new Effect.Move(A.element,{x:-20,y:0,duration:0.05,afterFinishInternal:function(i){i.element.undoPositioned().setStyle(O);}});}});}});}});}});}});};Effect.SlideDown=function(C){C=$(C).cleanWhitespace();var O=C.down().getStyle("bottom");var l=C.getDimensions();return new Effect.Scale(C,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:l.height,originalWidth:l.width},restoreAfterFinish:true,afterSetup:function(q){q.element.makePositioned();q.element.down().makePositioned();if(window.opera){q.element.setStyle({top:""});}q.element.makeClipping().setStyle({height:"0px"}).show();},afterUpdateInternal:function(q){q.element.down().setStyle({bottom:(q.dims[0]-q.element.clientHeight)+"px"});},afterFinishInternal:function(q){q.element.undoClipping().undoPositioned();q.element.down().undoPositioned().setStyle({bottom:O});}},arguments[1]||{}));};Effect.SlideUp=function(l){l=$(l).cleanWhitespace();var O=l.down().getStyle("bottom");return new Effect.Scale(l,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(C){C.element.makePositioned();C.element.down().makePositioned();if(window.opera){C.element.setStyle({top:""});}C.element.makeClipping().show();},afterUpdateInternal:function(C){C.element.down().setStyle({bottom:(C.dims[0]-C.element.clientHeight)+"px"});},afterFinishInternal:function(C){C.element.hide().undoClipping().undoPositioned().setStyle({bottom:O});C.element.down().undoPositioned();}},arguments[1]||{}));};Effect.Squish=function(O){return new Effect.Scale(O,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(l){l.element.makeClipping();},afterFinishInternal:function(l){l.element.hide().undoClipping();}});};Effect.Grow=function(C){C=$(C);var l=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var O={top:C.style.top,left:C.style.left,height:C.style.height,width:C.style.width,opacity:C.getInlineOpacity()};var A=C.getDimensions();var i,N;var k,q;switch(l.direction){case "top-left":i=N=k=q=0;break;case "top-right":i=A.width;N=q=0;k=-A.width;break;case "bottom-left":i=k=0;N=A.height;q=-A.height;break;case "bottom-right":i=A.width;N=A.height;k=-A.width;q=-A.height;break;case "center":i=A.width/2;N=A.height/2;k=-A.width/2;q=-A.height/2;break;}return new Effect.Move(C,{x:i,y:N,duration:0.01,beforeSetup:function(I){I.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(I){new Effect.Parallel([new Effect.Opacity(I.element,{sync:true,to:1,from:0,transition:l.opacityTransition}),new Effect.Move(I.element,{x:k,y:q,sync:true,transition:l.moveTransition}),new Effect.Scale(I.element,100,{scaleMode:{originalHeight:A.height,originalWidth:A.width},sync:true,scaleFrom:window.opera?1:0,transition:l.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(f){f.effects[0].element.setStyle({height:"0px"}).show();},afterFinishInternal:function(f){f.effects[0].element.undoClipping().undoPositioned().setStyle(O);}},l));}});};Effect.Shrink=function(C){C=$(C);var l=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var O={top:C.style.top,left:C.style.left,height:C.style.height,width:C.style.width,opacity:C.getInlineOpacity()};var N=C.getDimensions();var k,q;switch(l.direction){case "top-left":k=q=0;break;case "top-right":k=N.width;q=0;break;case "bottom-left":k=0;q=N.height;break;case "bottom-right":k=N.width;q=N.height;break;case "center":k=N.width/2;q=N.height/2;break;}return new Effect.Parallel([new Effect.Opacity(C,{sync:true,to:0,from:1,transition:l.opacityTransition}),new Effect.Scale(C,window.opera?1:0,{sync:true,transition:l.scaleTransition,restoreAfterFinish:true}),new Effect.Move(C,{x:k,y:q,sync:true,transition:l.moveTransition})],Object.extend({beforeStartInternal:function(A){A.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(A){A.effects[0].element.hide().undoClipping().undoPositioned().setStyle(O);}},l));};Effect.Pulsate=function(C){C=$(C);var l=arguments[1]||{};var O=C.getInlineOpacity();var k=l.transition||Effect.Transitions.sinoidal;var q=function(N){return k(1-Effect.Transitions.pulse(N,l.pulses));};q.bind(k);return new Effect.Opacity(C,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(N){N.element.setStyle({opacity:O});}},l),{transition:q}));};Effect.Fold=function(l){l=$(l);var O={top:l.style.top,left:l.style.left,width:l.style.width,height:l.style.height};l.makeClipping();return new Effect.Scale(l,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(C){new Effect.Scale(l,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(q){q.element.hide().undoClipping().setStyle(O);}});}},arguments[1]||{}));};Effect.Morph=Class.create();Object.extend(Object.extend(Effect.Morph.prototype,Effect.Base.prototype),{initialize:function(l){this.element=$(l);if(!this.element){throw (Effect._elementDoesNotExistError);}var O=Object.extend({style:""},arguments[1]||{});this.start(O);},setup:function(){function O(l){if(!l||["rgba(0, 0, 0, 0)","transparent"].include(l)){l="#ffffff";}l=l.parseColor();return $R(0,2).map(function(C){return parseInt(l.slice(C*2+1,C*2+3),16);});}this.transforms=this.options.style.parseStyle().map(function(C){var l=this.element.getStyle(C[0]);return $H({style:C[0],originalValue:C[1].unit=="color"?O(l):parseFloat(l||0),targetValue:C[1].unit=="color"?O(C[1].value):C[1].value,unit:C[1].unit});}.bind(this)).reject(function(l){return ((l.originalValue==l.targetValue)||(l.unit!="color"&&(isNaN(l.originalValue)||isNaN(l.targetValue))));});},update:function(O){var l=$H(),C=null;this.transforms.each(function(q){C=q.unit=="color"?$R(0,2).inject("#",function(k,N,A){return k+(Math.round(q.originalValue[A]+(q.targetValue[A]-q.originalValue[A])*O)).toColorPart();}):q.originalValue+Math.round(((q.targetValue-q.originalValue)*O)*1000)/1000+q.unit;l[q.style]=C;});this.element.setStyle(l);}});Effect.Transform=Class.create();Object.extend(Effect.Transform.prototype,{initialize:function(O){this.tracks=[];this.options=arguments[1]||{};this.addTracks(O);},addTracks:function(O){O.each(function(l){var C=$H(l).values().first();this.tracks.push($H({ids:$H(l).keys().first(),effect:Effect.Morph,options:{style:C}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(O){var l=[$(O.ids)||$$(O.ids)].flatten();return l.map(function(C){return new O.effect(C,Object.extend({sync:true},O.options));});}).flatten(),this.options);}});Element.CSS_PROPERTIES=["azimuth","backgroundAttachment","backgroundColor","backgroundImage","backgroundPosition","backgroundRepeat","borderBottomColor","borderBottomStyle","borderBottomWidth","borderCollapse","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderTopColor","borderTopStyle","borderTopWidth","bottom","captionSide","clear","clip","color","content","counterIncrement","counterReset","cssFloat","cueAfter","cueBefore","cursor","direction","display","elevation","emptyCells","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","height","left","letterSpacing","lineHeight","listStyleImage","listStylePosition","listStyleType","marginBottom","marginLeft","marginRight","marginTop","markerOffset","marks","maxHeight","maxWidth","minHeight","minWidth","opacity","orphans","outlineColor","outlineOffset","outlineStyle","outlineWidth","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","page","pageBreakAfter","pageBreakBefore","pageBreakInside","pauseAfter","pauseBefore","pitch","pitchRange","position","quotes","richness","right","size","speakHeader","speakNumeral","speakPunctuation","speechRate","stress","tableLayout","textAlign","textDecoration","textIndent","textShadow","textTransform","top","unicodeBidi","verticalAlign","visibility","voiceFamily","volume","whiteSpace","widows","width","wordSpacing","zIndex"];Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.prototype.parseStyle=function(){var C=Element.extend(document.createElement("div"));C.innerHTML="<div style=\""+this+"\"></div>";var q=C.down().style,l=$H();Element.CSS_PROPERTIES.each(function(k){if(q[k]){l[k]=q[k];}});var O=$H();l.each(function(I){var i=I[0],A=I[1],N=null;if(A.parseColor("#zzzzzz")!="#zzzzzz"){A=A.parseColor();N="color";}else{if(Element.CSS_LENGTH.test(A)){var k=A.match(/^([\+\-]?[0-9\.]+)(.*)$/),A=parseFloat(k[1]),N=(k.length==3)?k[2]:null;}}O[i.underscore().dasherize()]=$H({value:A,unit:N});}.bind(this));return O;};Element.morph=function(O,l){new Effect.Morph(O,Object.extend({style:l},arguments[2]||{}));return O;};["setOpacity","getOpacity","getInlineOpacity","forceRerendering","setContentZoom","collectTextNodes","collectTextNodesIgnoreClass","morph"].each(function(O){Element.Methods[O]=Element[O];});Element.Methods.visualEffect=function(l,C,O){s=C.gsub(/_/,"-").camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](l,O);return $(l);};Element.addMethods();