String.prototype.parseColor=function(){var h="#";if(this.slice(0,4)=="rgb("){var t=this.slice(4,this.length-1).split(",");var W=0;do{h+=parseInt(t[W]).toColorPart();}while(++W<3);}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var W=1;W<4;W++){h+=(this.charAt(W)+this.charAt(W)).toLowerCase();}}if(this.length==7){h=this.toLowerCase();}}}return (h.length==7?h:(arguments[0]||this));};Element.collectTextNodes=function(h){return $A($(h).childNodes).collect(function(W){return (W.nodeType==3?W.nodeValue:(W.hasChildNodes()?Element.collectTextNodes(W):""));}).flatten().join("");};Element.collectTextNodesIgnoreClass=function(h,W){return $A($(h).childNodes).collect(function(t){return (t.nodeType==3?t.nodeValue:((t.hasChildNodes()&&!Element.hasClassName(t,W))?Element.collectTextNodesIgnoreClass(t,W):""));}).flatten().join("");};Element.setContentZoom=function(h,W){h=$(h);h.setStyle({fontSize:(W/100)+"em"});if(Prototype.Browser.WebKit){window.scrollBy(0,0);}return h;};Element.getInlineOpacity=function(h){return $(h).style.opacity||"";};Element.forceRerendering=function(h){try{h=$(h);var t=document.createTextNode(" ");h.appendChild(t);h.removeChild(t);}catch(W){}};Array.prototype.call=function(){var h=arguments;this.each(function(W){W.apply(this,h);});};var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},tagifyText:function(h){if(typeof Builder=="undefined"){throw ("Effect.tagifyText requires including script.aculo.us' builder.js library");}var W="position:relative";if(Prototype.Browser.IE){W+=";zoom:1";}h=$(h);$A(h.childNodes).each(function(t){if(t.nodeType==3){t.nodeValue.toArray().each(function(B){h.insertBefore(Builder.node("span",{style:W},B==" "?String.fromCharCode(160):B),t);});Element.remove(t);}});},multiple:function(W,t){var j;if(((typeof W=="object")||(typeof W=="function"))&&(W.length)){j=W;}else{j=$(W).childNodes;}var h=Object.extend({speed:0.1,delay:0},arguments[2]||{});var B=h.delay;$A(j).each(function(r,A){new t(r,Object.extend(h,{delay:A*h.speed+B}));});},PAIRS:{"slide":["SlideDown","SlideUp"],"blind":["BlindDown","BlindUp"],"appear":["Appear","Fade"]},toggle:function(W,t){W=$(W);t=(t||"appear").toLowerCase();var h=Object.extend({queue:{position:"end",scope:(W.id||"global"),limit:1}},arguments[2]||{});Effect[W.visible()?Effect.PAIRS[t][1]:Effect.PAIRS[t][0]](W,h);}};var Effect2=Effect;Effect.Transitions={linear:Prototype.K,sinoidal:function(h){return (-Math.cos(h*Math.PI)/2)+0.5;},reverse:function(h){return 1-h;},flicker:function(h){var h=((-Math.cos(h*Math.PI)/4)+0.75)+Math.random()/4;return (h>1?1:h);},wobble:function(h){return (-Math.cos(h*Math.PI*(9*h))/2)+0.5;},pulse:function(W,h){h=h||5;return (Math.round((W%(1/h))*h)==0?((W*h*2)-Math.floor(W*h*2)):1-((W*h*2)-Math.floor(W*h*2)));},none:function(h){return 0;},full:function(h){return 1;}};Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];this.interval=null;},_each:function(h){this.effects._each(h);},add:function(W){var t=new Date().getTime();var h=(typeof W.options.queue=="string")?W.options.queue:W.options.queue.position;switch(h){case "front":this.effects.findAll(function(B){return B.state=="idle";}).each(function(B){B.startOn+=W.finishOn;B.finishOn+=W.finishOn;});break;case "with-last":t=this.effects.pluck("startOn").max()||t;break;case "end":t=this.effects.pluck("finishOn").max()||t;break;}W.startOn+=t;W.finishOn+=t;if(!W.options.queue.limit||(this.effects.length<W.options.queue.limit)){this.effects.push(W);}if(!this.interval){this.interval=setInterval(this.loop.bind(this),15);}},remove:function(h){this.effects=this.effects.reject(function(W){return W==h;});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var t=new Date().getTime();for(var W=0,h=this.effects.length;W<h;W++){this.effects[W]&&this.effects[W].loop(t);}}});Effect.Queues={instances:$H(),get:function(h){if(typeof h!="string"){return h;}if(!this.instances[h]){this.instances[h]=new Effect.ScopedQueue();}return this.instances[h];}};Effect.Queue=Effect.Queues.get("global");Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"};Effect.Base=function(){};Effect.Base.prototype={position:null,start:function(options){function codeForEvent(options,eventName){return ((options[eventName+"Internal"]?"this.options."+eventName+"Internal(this);":"")+(options[eventName]?"this.options."+eventName+"(this);":""));}if(options.transition===false){options.transition=Effect.Transitions.linear;}this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;eval("this.render = function(pos){ "+"if(this.state==\"idle\"){this.state=\"running\";"+codeForEvent(options,"beforeSetup")+(this.setup?"this.setup();":"")+codeForEvent(options,"afterSetup")+"};if(this.state==\"running\"){"+"pos=this.options.transition(pos)*"+this.fromToDelta+"+"+this.options.from+";"+"this.position=pos;"+codeForEvent(options,"beforeUpdate")+(this.update?"this.update(pos);":"")+codeForEvent(options,"afterUpdate")+"}}");this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(typeof this.options.queue=="string"?"global":this.options.queue.scope).add(this);}},loop:function(t){if(t>=this.startOn){if(t>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish();}this.event("afterFinish");return ;}var W=(t-this.startOn)/this.totalTime,h=Math.round(W*this.totalFrames);if(h>this.currentFrame){this.render(W);this.currentFrame=h;}}},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(h){if(this.options[h+"Internal"]){this.options[h+"Internal"](this);}if(this.options[h]){this.options[h](this);}},inspect:function(){var h=$H();for(property in this){if(typeof this[property]!="function"){h[property]=this[property];}}return "#<Effect:"+h.inspect()+",options:"+$H(this.options).inspect()+">";}};Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(h){this.effects=h||[];this.start(arguments[1]);},update:function(h){this.effects.invoke("render",h);},finish:function(h){this.effects.each(function(W){W.render(1);W.cancel();W.event("beforeFinish");if(W.finish){W.finish(h);}W.event("afterFinish");});}});Effect.Event=Class.create();Object.extend(Object.extend(Effect.Event.prototype,Effect.Base.prototype),{initialize:function(){var h=Object.extend({duration:0},arguments[0]||{});this.start(h);},update:Prototype.emptyFunction});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(W){this.element=$(W);if(!this.element){throw (Effect._elementDoesNotExistError);}if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1});}var h=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(h);},update:function(h){this.element.setOpacity(h);}});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:function(W){this.element=$(W);if(!this.element){throw (Effect._elementDoesNotExistError);}var h=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(h);},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(h){this.element.setStyle({left:Math.round(this.options.x*h+this.originalLeft)+"px",top:Math.round(this.options.y*h+this.originalTop)+"px"});}});Effect.MoveBy=function(W,h,t){return new Effect.Move(W,Object.extend({x:t,y:h},arguments[3]||{}));};Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(W,t){this.element=$(W);if(!this.element){throw (Effect._elementDoesNotExistError);}var h=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:t},arguments[2]||{});this.start(h);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(W){this.originalStyle[W]=this.element.style[W];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var h=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(W){if(h.indexOf(W)>0){this.fontSize=parseFloat(h);this.fontSizeType=W;}}.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(h){var W=(this.options.scaleFrom/100)+(this.factor*h);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*W+this.fontSizeType});}this.setDimensions(this.dims[0]*W,this.dims[1]*W);},finish:function(h){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle);}},setDimensions:function(h,B){var j={};if(this.options.scaleX){j.width=Math.round(B)+"px";}if(this.options.scaleY){j.height=Math.round(h)+"px";}if(this.options.scaleFromCenter){var t=(h-this.dims[0])/2;var W=(B-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){j.top=this.originalTop-t+"px";}if(this.options.scaleX){j.left=this.originalLeft-W+"px";}}else{if(this.options.scaleY){j.top=-t+"px";}if(this.options.scaleX){j.left=-W+"px";}}}this.element.setStyle(j);}});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:function(W){this.element=$(W);if(!this.element){throw (Effect._elementDoesNotExistError);}var h=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(h);},setup:function(){if(this.element.getStyle("display")=="none"){this.cancel();return ;}this.oldStyle={};if(!this.options.keepBackgroundImage){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(h){return parseInt(this.options.startcolor.slice(h*2+1,h*2+3),16);}.bind(this));this._delta=$R(0,2).map(function(h){return parseInt(this.options.endcolor.slice(h*2+1,h*2+3),16)-this._base[h];}.bind(this));},update:function(h){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(W,t,B){return W+(Math.round(this._base[B]+(this._delta[B]*h)).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(h){this.element=$(h);this.start(arguments[1]||{});},setup:function(){Position.prepare();var W=Position.cumulativeOffset(this.element);if(this.options.offset){W[1]+=this.options.offset;}var h=window.innerHeight?window.height-window.innerHeight:document.body.scrollHeight-(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight);this.scrollStart=Position.deltaY;this.delta=(W[1]>h?h:W[1])-this.scrollStart;},update:function(h){Position.prepare();window.scrollTo(Position.deltaX,this.scrollStart+(h*this.delta));}});Effect.Fade=function(t){t=$(t);var h=t.getInlineOpacity();var W=Object.extend({from:t.getOpacity()||1,to:0,afterFinishInternal:function(B){if(B.options.to!=0){return ;}B.element.hide().setStyle({opacity:h});}},arguments[1]||{});return new Effect.Opacity(t,W);};Effect.Appear=function(W){W=$(W);var h=Object.extend({from:(W.getStyle("display")=="none"?0:W.getOpacity()||0),to:1,afterFinishInternal:function(t){t.element.forceRerendering();},beforeSetup:function(t){t.element.setOpacity(t.options.from).show();}},arguments[1]||{});return new Effect.Opacity(W,h);};Effect.Puff=function(W){W=$(W);var h={opacity:W.getInlineOpacity(),position:W.getStyle("position"),top:W.style.top,left:W.style.left,width:W.style.width,height:W.style.height};return new Effect.Parallel([new Effect.Scale(W,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(W,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(t){Position.absolutize(t.effects[0].element);},afterFinishInternal:function(t){t.effects[0].element.hide().setStyle(h);}},arguments[1]||{}));};Effect.BlindUp=function(h){h=$(h);h.makeClipping();return new Effect.Scale(h,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(W){W.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindDown=function(W){W=$(W);var h=W.getDimensions();return new Effect.Scale(W,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:h.height,originalWidth:h.width},restoreAfterFinish:true,afterSetup:function(t){t.element.makeClipping().setStyle({height:"0px"}).show();},afterFinishInternal:function(t){t.element.undoClipping();}},arguments[1]||{}));};Effect.SwitchOff=function(W){W=$(W);var h=W.getInlineOpacity();return new Effect.Appear(W,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(t){new Effect.Scale(t.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(B){B.element.makePositioned().makeClipping();},afterFinishInternal:function(B){B.element.hide().undoClipping().undoPositioned().setStyle({opacity:h});}});}},arguments[1]||{}));};Effect.DropOut=function(W){W=$(W);var h={top:W.getStyle("top"),left:W.getStyle("left"),opacity:W.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(W,{x:0,y:100,sync:true}),new Effect.Opacity(W,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(t){t.effects[0].element.makePositioned();},afterFinishInternal:function(t){t.effects[0].element.hide().undoPositioned().setStyle(h);}},arguments[1]||{}));};Effect.Shake=function(W){W=$(W);var h={top:W.getStyle("top"),left:W.getStyle("left")};return new Effect.Move(W,{x:20,y:0,duration:0.05,afterFinishInternal:function(t){new Effect.Move(t.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(B){new Effect.Move(B.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(j){new Effect.Move(j.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(A){new Effect.Move(A.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(r){new Effect.Move(r.element,{x:-20,y:0,duration:0.05,afterFinishInternal:function(E){E.element.undoPositioned().setStyle(h);}});}});}});}});}});}});};Effect.SlideDown=function(t){t=$(t).cleanWhitespace();var h=t.down().getStyle("bottom");var W=t.getDimensions();return new Effect.Scale(t,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:W.height,originalWidth:W.width},restoreAfterFinish:true,afterSetup:function(B){B.element.makePositioned();B.element.down().makePositioned();if(window.opera){B.element.setStyle({top:""});}B.element.makeClipping().setStyle({height:"0px"}).show();},afterUpdateInternal:function(B){B.element.down().setStyle({bottom:(B.dims[0]-B.element.clientHeight)+"px"});},afterFinishInternal:function(B){B.element.undoClipping().undoPositioned();B.element.down().undoPositioned().setStyle({bottom:h});}},arguments[1]||{}));};Effect.SlideUp=function(W){W=$(W).cleanWhitespace();var h=W.down().getStyle("bottom");return new Effect.Scale(W,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(t){t.element.makePositioned();t.element.down().makePositioned();if(window.opera){t.element.setStyle({top:""});}t.element.makeClipping().show();},afterUpdateInternal:function(t){t.element.down().setStyle({bottom:(t.dims[0]-t.element.clientHeight)+"px"});},afterFinishInternal:function(t){t.element.hide().undoClipping().undoPositioned().setStyle({bottom:h});t.element.down().undoPositioned();}},arguments[1]||{}));};Effect.Squish=function(h){return new Effect.Scale(h,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(W){W.element.makeClipping();},afterFinishInternal:function(W){W.element.hide().undoClipping();}});};Effect.Grow=function(t){t=$(t);var W=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var h={top:t.style.top,left:t.style.left,height:t.style.height,width:t.style.width,opacity:t.getInlineOpacity()};var r=t.getDimensions();var E,A;var j,B;switch(W.direction){case "top-left":E=A=j=B=0;break;case "top-right":E=r.width;A=B=0;j=-r.width;break;case "bottom-left":E=j=0;A=r.height;B=-r.height;break;case "bottom-right":E=r.width;A=r.height;j=-r.width;B=-r.height;break;case "center":E=r.width/2;A=r.height/2;j=-r.width/2;B=-r.height/2;break;}return new Effect.Move(t,{x:E,y:A,duration:0.01,beforeSetup:function(p){p.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(p){new Effect.Parallel([new Effect.Opacity(p.element,{sync:true,to:1,from:0,transition:W.opacityTransition}),new Effect.Move(p.element,{x:j,y:B,sync:true,transition:W.moveTransition}),new Effect.Scale(p.element,100,{scaleMode:{originalHeight:r.height,originalWidth:r.width},sync:true,scaleFrom:window.opera?1:0,transition:W.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(h);}},W));}});};Effect.Shrink=function(t){t=$(t);var W=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var h={top:t.style.top,left:t.style.left,height:t.style.height,width:t.style.width,opacity:t.getInlineOpacity()};var A=t.getDimensions();var j,B;switch(W.direction){case "top-left":j=B=0;break;case "top-right":j=A.width;B=0;break;case "bottom-left":j=0;B=A.height;break;case "bottom-right":j=A.width;B=A.height;break;case "center":j=A.width/2;B=A.height/2;break;}return new Effect.Parallel([new Effect.Opacity(t,{sync:true,to:0,from:1,transition:W.opacityTransition}),new Effect.Scale(t,window.opera?1:0,{sync:true,transition:W.scaleTransition,restoreAfterFinish:true}),new Effect.Move(t,{x:j,y:B,sync:true,transition:W.moveTransition})],Object.extend({beforeStartInternal:function(r){r.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(r){r.effects[0].element.hide().undoClipping().undoPositioned().setStyle(h);}},W));};Effect.Pulsate=function(t){t=$(t);var W=arguments[1]||{};var h=t.getInlineOpacity();var j=W.transition||Effect.Transitions.sinoidal;var B=function(A){return j(1-Effect.Transitions.pulse(A,W.pulses));};B.bind(j);return new Effect.Opacity(t,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(A){A.element.setStyle({opacity:h});}},W),{transition:B}));};Effect.Fold=function(W){W=$(W);var h={top:W.style.top,left:W.style.left,width:W.style.width,height:W.style.height};W.makeClipping();return new Effect.Scale(W,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(t){new Effect.Scale(W,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(B){B.element.hide().undoClipping().setStyle(h);}});}},arguments[1]||{}));};Effect.Morph=Class.create();Object.extend(Object.extend(Effect.Morph.prototype,Effect.Base.prototype),{initialize:function(t){this.element=$(t);if(!this.element){throw (Effect._elementDoesNotExistError);}var W=Object.extend({style:{}},arguments[1]||{});if(typeof W.style=="string"){if(W.style.indexOf(":")==-1){var B="",h="."+W.style;$A(document.styleSheets).reverse().each(function(j){if(j.cssRules){cssRules=j.cssRules;}else{if(j.rules){cssRules=j.rules;}}$A(cssRules).reverse().each(function(A){if(h==A.selectorText){B=A.style.cssText;throw $break;}});if(B){throw $break;}});this.style=B.parseStyle();W.afterFinishInternal=function(j){j.element.addClassName(j.options.style);j.transforms.each(function(A){if(A.style!="opacity"){j.element.style[A.style]="";}});};}else{this.style=W.style.parseStyle();}}else{this.style=$H(W.style);}this.start(W);},setup:function(){function h(W){if(!W||["rgba(0, 0, 0, 0)","transparent"].include(W)){W="#ffffff";}W=W.parseColor();return $R(0,2).map(function(t){return parseInt(W.slice(t*2+1,t*2+3),16);});}this.transforms=this.style.map(function(r){var A=r[0],j=r[1],B=null;if(j.parseColor("#zzzzzz")!="#zzzzzz"){j=j.parseColor();B="color";}else{if(A=="opacity"){j=parseFloat(j);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1});}}else{if(Element.CSS_LENGTH.test(j)){var t=j.match(/^([\+\-]?[0-9\.]+)(.*)$/);j=parseFloat(t[1]);B=(t.length==3)?t[2]:null;}}}var W=this.element.getStyle(A);return {style:A.camelize(),originalValue:B=="color"?h(W):parseFloat(W||0),targetValue:B=="color"?h(j):j,unit:B};}.bind(this)).reject(function(W){return ((W.originalValue==W.targetValue)||(W.unit!="color"&&(isNaN(W.originalValue)||isNaN(W.targetValue))));});},update:function(h){var B={},W,t=this.transforms.length;while(t--){B[(W=this.transforms[t]).style]=W.unit=="color"?"#"+(Math.round(W.originalValue[0]+(W.targetValue[0]-W.originalValue[0])*h)).toColorPart()+(Math.round(W.originalValue[1]+(W.targetValue[1]-W.originalValue[1])*h)).toColorPart()+(Math.round(W.originalValue[2]+(W.targetValue[2]-W.originalValue[2])*h)).toColorPart():W.originalValue+Math.round(((W.targetValue-W.originalValue)*h)*1000)/1000+W.unit;}this.element.setStyle(B,true);}});Effect.Transform=Class.create();Object.extend(Effect.Transform.prototype,{initialize:function(h){this.tracks=[];this.options=arguments[1]||{};this.addTracks(h);},addTracks:function(h){h.each(function(W){var t=$H(W).values().first();this.tracks.push($H({ids:$H(W).keys().first(),effect:Effect.Morph,options:{style:t}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(h){var W=[$(h.ids)||$$(h.ids)].flatten();return W.map(function(t){return new h.effect(t,Object.extend({sync:true},h.options));});}).flatten(),this.options);}});Element.CSS_PROPERTIES=$w("backgroundColor backgroundPosition borderBottomColor borderBottomStyle "+"borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth "+"borderRightColor borderRightStyle borderRightWidth borderSpacing "+"borderTopColor borderTopStyle borderTopWidth bottom clip color "+"fontSize fontWeight height left letterSpacing lineHeight "+"marginBottom marginLeft marginRight marginTop markerOffset maxHeight "+"maxWidth minHeight minWidth opacity outlineColor outlineOffset "+"outlineWidth paddingBottom paddingLeft paddingRight paddingTop "+"right textIndent top width wordSpacing zIndex");Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.prototype.parseStyle=function(){var W=document.createElement("div");W.innerHTML="<div style=\""+this+"\"></div>";var t=W.childNodes[0].style,h=$H();Element.CSS_PROPERTIES.each(function(B){if(t[B]){h[B]=t[B];}});if(Prototype.Browser.IE&&this.indexOf("opacity")>-1){h.opacity=this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1];}return h;};Element.morph=function(h,W){new Effect.Morph(h,Object.extend({style:W},arguments[2]||{}));return h;};["getInlineOpacity","forceRerendering","setContentZoom","collectTextNodes","collectTextNodesIgnoreClass","morph"].each(function(h){Element.Methods[h]=Element[h];});Element.Methods.visualEffect=function(W,t,h){s=t.dasherize().camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](W,h);return $(W);};Element.addMethods();
