/*
 *  script.aculo.us version 2.0.0_a1
 *  (c) 2005-2009 Thomas Fuchs
 *
 *  script.aculo.us is freely distributable under the terms of an MIT-style license.
 *----------------------------------------------------------------------------------*/
var s2={Version:"2.0.0_a1",Extensions:{}};s2.css={PROPERTY_MAP:{backgroundColor:"color",borderBottomColor:"color",borderBottomWidth:"length",borderLeftColor:"color",borderLeftWidth:"length",borderRightColor:"color",borderRightWidth:"length",borderSpacing:"length",borderTopColor:"color",borderTopWidth:"length",bottom:"length",color:"color",fontSize:"length",fontWeight:"integer",height:"length",left:"length",letterSpacing:"length",lineHeight:"length",marginBottom:"length",marginLeft:"length",marginRight:"length",marginTop:"length",maxHeight:"length",maxWidth:"length",minHeight:"length",minWidth:"length",opacity:"number",outlineColor:"color",outlineOffset:"length",outlineWidth:"length",paddingBottom:"length",paddingLeft:"length",paddingRight:"length",paddingTop:"length",right:"length",textIndent:"length",top:"length",width:"length",wordSpacing:"length",zIndex:"integer",zoom:"number"},LENGTH:/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/,NUMBER:/([\+-]*\d+\.?\d*)/,__parseStyleElement:document.createElement("div"),parseStyle:function(a){s2.css.__parseStyleElement.innerHTML='<div style="'+a+'"></div>';var c=s2.css.__parseStyleElement.childNodes[0].style,b={};s2.css.NUMERIC_PROPERTIES.each(function(d){if(c[d]){b[d]=c[d]}});s2.css.COLOR_PROPERTIES.each(function(d){if(c[d]){b[d]=s2.css.colorFromString(c[d])}});if(Prototype.Browser.IE&&a.include("opacity")){b.opacity=a.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]}return b},normalizeColor:function(a){if(!a||a=="rgba(0, 0, 0, 0)"||a=="transparent"){a="#ffffff"}a=s2.css.colorFromString(a);return[parseInt(a.slice(1,3),16),parseInt(a.slice(3,5),16),parseInt(a.slice(5,7),16)]},colorFromString:function(a){var c="#",d,b;if(a.slice(0,4)=="rgb("){d=a.slice(4,a.length-1).split(",");b=3;while(b--){c+=parseInt(d[2-b]).toColorPart()}}else{if(a.slice(0,1)=="#"){if(a.length==4){for(b=1;b<4;b++){c+=(a.charAt(b)+a.charAt(b)).toLowerCase()}}if(a.length==7){c=a.toLowerCase()}}}return(c.length==7?c:(arguments[1]||c))},interpolateColor:function(c,b,a){c=s2.css.normalizeColor(c);b=s2.css.normalizeColor(b);return"#"+[0,1,2].map(function(d){return Math.max(Math.min(c[d].tween(b[d],a).round(),255),0).toColorPart()}).join("")},interpolateNumber:function(c,b,a){return parseFloat((c||0).tween(b,a).toFixed(3))},interpolateLength:function(c,b,a){if(!c){c="0"+b.gsub(s2.css.NUMBER,"")}b.scan(s2.css.NUMBER,function(d){b=parseFloat(d[1])});return c.gsub(s2.css.NUMBER,function(d){return parseFloat(parseFloat(d[1]).tween(b,a).toFixed(3)).toString()})},interpolateInteger:function(c,b,a){return parseInt(c).tween(b,a).round()},interpolate:function(b,d,c,a){return s2.css["interpolate"+s2.css.PROPERTY_MAP[b.camelize()].capitalize()](d,c,a)},ElementMethods:{getStyles:function(b){var a=document.defaultView.getComputedStyle($(b),null);return s2.css.PROPERTIES.inject({},function(c,d){c[d]=a[d];return c})}}};s2.css.PROPERTIES=[];for(property in s2.css.PROPERTY_MAP){s2.css.PROPERTIES.push(property)}s2.css.NUMERIC_PROPERTIES=s2.css.PROPERTIES.findAll(function(a){return !a.endsWith("olor")});s2.css.COLOR_PROPERTIES=s2.css.PROPERTIES.findAll(function(a){return a.endsWith("olor")});if(!(document.defaultView&&document.defaultView.getComputedStyle)){s2.css.ElementMethods.getStyles=function(b){b=$(b);var a=b.currentStyle,c;c=s2.css.PROPERTIES.inject({},function(e,d){e[d]=a[d];return e});if(!c.opacity){c.opacity=b.getOpacity()}return c}}Element.addMethods(s2.css.ElementMethods);s2.fx=(function(){var c=[],g,f,e=0;function d(h){f[(e+=h)>0?"start":"stop"]()}function b(){c.invoke("render",f.getTimestamp())}function a(h){if(g){return}c.push(g=new s2.fx.Queue());s2.fx.DefaultOptions.queue=g;f=h||new s2.fx.Heartbeat();document.observe("effect:heartbeat",b).observe("effect:queued",d.curry(1)).observe("effect:dequeued",d.curry(-1))}return{initialize:a,getQueues:function(){return c},addQueue:function(h){c.push(h)},getHeartbeat:function(){return f},setHeartbeat:function(h){f=h}}})();Object.extend(s2.fx,{DefaultOptions:{transition:"sinusoidal",position:"parallel",fps:60,duration:0.2},elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},parseOptions:function(a){if(Object.isNumber(a)){a={duration:a}}else{if(Object.isFunction(a)){a={after:a}}else{if(Object.isString(a)){a={duration:a=="slow"?1:a=="fast"?0.1:0.2}}}}return a}});s2.fx.Base=Class.create({initialize:function(a){s2.fx.initialize();this.updateWithoutWrappers=this.update;if(a&&a.queue&&!s2.fx.getQueues().include(a.queue)){s2.fx.addQueue(a.queue)}this.setOptions(a);this.duration=this.options.duration*1000;this.state="idle";["after","before"].each(function(b){this[b]=function(c){c(this);return this}},this)},setOptions:function(a){a=s2.fx.parseOptions(a);if(!this.options){this.options=Object.extend(Object.extend({},s2.fx.DefaultOptions),a);if(a.tween){this.options.transition=a.tween}}if(this.options.beforeUpdate||this.options.afterUpdate){this.update=this.updateWithoutWrappers.wrap(function(c,b){if(this.options.beforeUpdate){this.options.beforeUpdate(this,b)}c(b);if(this.options.afterUpdate){this.options.afterUpdate(this,b)}}.bind(this))}if(this.options.transition===false){this.options.transition=s2.fx.Transitions.linear}this.options.transition=Object.propertize(this.options.transition,s2.fx.Transitions)},play:function(a){this.setOptions(a);this.frameCount=0;this.options.queue.add(this);this.maxFrames=this.options.fps*this.duration/1000;return this},render:function(b){if(b>=this.startsAt){if(this.state=="idle"){if(this.options.before){this.options.before(this)}if(this.setup){this.setup()}this.state="running";this.update(this.options.transition(0));this.frameCount++;return this}if(b>=this.endsAt&&!(this.state=="finished")){this.update(this.options.transition(1));if(this.teardown){this.teardown()}if(this.options.after){this.options.after(this)}this.state="finished"}else{if(this.state=="running"){var a=1-(this.endsAt-b)/this.duration;if((this.maxFrames*a).floor()>this.frameCount){this.update(this.options.transition(a));this.frameCount++}}}}return this},cancel:function(a){if(!this.state=="running"){return}if(this.teardown){this.teardown()}if(a&&this.options.after){this.options.after(this)}this.state="finished"},finish:function(a){if(!this.state=="running"){return}this.update(this.options.transition(1));this.cancel(true)},inspect:function(){return"#<s2.fx:"+[this.state,this.startsAt,this.endsAt].inspect()+">"}});s2.fx.Element=Class.create(s2.fx.Base,{initialize:function($super,b,a){if(!(this.element=$(b))){throw (s2.fx.elementDoesNotExistError)}this.operators=[];return $super(a)},animate:function(){var b=$A(arguments),a=b.shift();a=a.charAt(0).toUpperCase()+a.substring(1);this.operators.push(new s2.fx.Operators[a](this,b[0],b[1]||{}))},play:function($super,b,a){if(b){this.element=$(b)}return $super(a)},update:function(a){this.operators.invoke("render",a)}});s2.fx.Heartbeat=Class.create({initialize:function(a){this.options=Object.extend({framerate:Prototype.Browser.MobileSafari?20:60},a);this.beat=this.beat.bind(this)},start:function(){if(this.heartbeatInterval){return}this.heartbeatInterval=setInterval(this.beat,1000/this.options.framerate);this.updateTimestamp()},stop:function(){if(!this.heartbeatInterval){return}clearInterval(this.heartbeatInterval);this.heartbeatInterval=null;this.timestamp=null},beat:function(){this.updateTimestamp();document.fire("effect:heartbeat")},getTimestamp:function(){return this.timestamp||this.generateTimestamp()},generateTimestamp:function(){return new Date().getTime()},updateTimestamp:function(){this.timestamp=this.generateTimestamp()}});s2.fx.Queue=(function(){return function(){var d=[];function e(){return d}function g(){return d.length>0}function f(h){b(h);d.push(h);document.fire("effect:queued",this);return this}function a(h){d=d.without(h);delete h;document.fire("effect:dequeued",this);return this}function c(h){d.invoke("render",h);d.select(function(i){return i.state=="finished"}).each(a);return this}function b(j){var h=j.options.position||"parallel",i=s2.fx.getHeartbeat().getTimestamp();if(h=="end"){i=d.without(j).pluck("endsAt").max()||i}j.startsAt=i+(j.options.delay||0)*1000;j.endsAt=j.startsAt+(j.options.duration||1)*1000}Object.extend(this,{getEffects:e,active:g,add:f,remove:a,render:c})}})();s2.fx.Attribute=Class.create(s2.fx.Base,{initialize:function($super,b,e,d,a,c){b=Object.isString(b)?$(b):b;this.method=Object.isFunction(c)?c.bind(b):Object.isFunction(b[c])?b[c].bind(b):function(f){b[c]=f};this.to=d;this.from=e;return $super(a)},update:function(a){this.method(this.from.tween(this.to,a))}});s2.fx.Style=Class.create(s2.fx.Element,{setup:function(){this.animate("style",this.element,{style:this.options.style})}});s2.fx.Operators={};s2.fx.Operators.Base=Class.create({initialize:function(c,b,a){this.effect=c;this.object=b;this.options=Object.extend({transition:Prototype.K},a)},inspect:function(){return"#<s2.fx.Operators.Base:"+this.lastValue+">"},setup:function(){},valueAt:function(a){},applyValue:function(a){},render:function(a){var b=this.valueAt(this.options.transition(a));this.applyValue(b);this.lastValue=b}});s2.fx.Operators.Style=Class.create(s2.fx.Operators.Base,{initialize:function($super,c,b,a){$super(c,b,a);this.element=$(this.object);this.style=Object.isString(this.options.style)?s2.css.parseStyle(this.options.style):this.options.style;this.tweens=[];for(var d in this.style){var e=d.underscore().dasherize(),g=this.element.getStyle(e),f=this.style[d];if(g!=f){this.tweens.push([e,s2.css.interpolate.curry(e,g,f),d in this.options.propertyTransitions?Object.propertize(this.options.propertyTransitions[d],s2.fx.Transitions):Prototype.K])}}},valueAt:function(a){return this.tweens.map(function(b){return b[0]+":"+b[1](b[2](a))}).join(";")},applyValue:function(a){if(this.currentStyle==a){return}this.element.setStyle(a);this.currentStyle=a}});s2.fx.Morph=Class.create(s2.fx.Element,{setup:function(){if(this.options.change){this.setupWrappers()}else{if(this.options.style){this.animate("style",this.destinationElement||this.element,{style:this.options.style,propertyTransitions:this.options.propertyTransitions||{}})}}},teardown:function(){if(this.options.change){this.teardownWrappers()}},setupWrappers:function(){var a=this.element.getStyle("float"),f,b,d,c,e;this.transitionElement=new Element("div").setStyle({position:"relative",overflow:"hidden","float":a});this.element.setStyle({"float":"none"}).insert({before:this.transitionElement});this.sourceElementWrapper=this.element.cloneWithoutIDs().wrap("div");this.destinationElementWrapper=this.element.wrap("div");this.transitionElement.insert(this.sourceElementWrapper).insert(this.destinationElementWrapper);f=this.sourceElementWrapper.getHeight();b=this.sourceElementWrapper.getWidth();this.options.change();d=this.destinationElementWrapper.getHeight();c=this.destinationElementWrapper.getWidth();this.outerWrapper=new Element("div");this.transitionElement.insert({before:this.outerWrapper});this.outerWrapper.setStyle({overflow:"hidden",height:f+"px",width:b+"px"}).appendChild(this.transitionElement);e=Math.max(d,f),maxWidth=Math.max(c,b);this.transitionElement.setStyle({height:f+"px",width:b+"px"});this.sourceElementWrapper.setStyle({position:"absolute",height:e+"px",width:maxWidth+"px",top:0,left:0});this.destinationElementWrapper.setStyle({position:"absolute",height:e+"px",width:maxWidth+"px",top:0,left:0,opacity:0,zIndex:2000});this.outerWrapper.insert({before:this.transitionElement}).remove();this.animate("style",this.transitionElement,{style:"height:"+d+"px; width:"+c+"px"});this.animate("style",this.destinationElementWrapper,{style:"opacity: 1.0"})},teardownWrappers:function(){var a=this.destinationElementWrapper.down();if(a){this.transitionElement.insert({before:a})}this.transitionElement.remove()}});s2.fx.Parallel=Class.create(s2.fx.Base,{initialize:function($super,b,a){this.effects=b||[];return $super(a||{})},setup:function(){this.effects.invoke("setup")},update:function(a){this.effects.invoke("update",a)}});s2.fx.Operators.Scroll=Class.create(s2.fx.Operators.Base,{initialize:function($super,c,b,a){$super(c,b,a);this.start=b.scrollTop;this.end=this.options.scrollTo},valueAt:function(a){return this.start+((this.end-this.start)*a)},applyValue:function(a){this.object.scrollTop=a.round()}});s2.fx.Scroll=Class.create(s2.fx.Element,{setup:function(){this.animate("scroll",this.element,{scrollTo:this.options.to})}});s2.fx.Transitions={linear:Prototype.K,sinusoidal:function(a){return(-Math.cos(a*Math.PI)/2)+0.5},reverse:function(a){return 1-a},mirror:function(b,a){a=a||s2.fx.Transitions.sinusoidal;if(b<0.5){return a(b*2)}else{return a(1-(b-0.5)*2)}},flicker:function(a){var a=a+(Math.random()-0.5)/5;return s2.fx.Transitions.sinusoidal(a<0?0:a>1?1:a)},wobble:function(a){return(-Math.cos(a*Math.PI*(9*a))/2)+0.5},pulse:function(b,a){return(-Math.cos((b*((a||5)-0.5)*2)*Math.PI)/2)+0.5},blink:function(b,a){return Math.round(b*(a||5))%2},spring:function(a){return 1-(Math.cos(a*4.5*Math.PI)*Math.exp(-a*6))},none:Prototype.K.curry(0),full:Prototype.K.curry(1)};
/*
 *  TERMS OF USE - EASING EQUATIONS
 *  Open source under the BSD License.
 *  Easing Equations (c) 2003 Robert Penner, all rights reserved.
 */
Object.extend(s2.fx.Transitions,{easeInQuad:function(a){return Math.pow(a,2)},easeOutQuad:function(a){return -(Math.pow((a-1),2)-1)},easeInOutQuad:function(a){if((a/=0.5)<1){return 0.5*Math.pow(a,2)}return -0.5*((a-=2)*a-2)},easeInCubic:function(a){return Math.pow(a,3)},easeOutCubic:function(a){return(Math.pow((a-1),3)+1)},easeInOutCubic:function(a){if((a/=0.5)<1){return 0.5*Math.pow(a,3)}return 0.5*(Math.pow((a-2),3)+2)},easeInQuart:function(a){return Math.pow(a,4)},easeOutQuart:function(a){return -(Math.pow((a-1),4)-1)},easeInOutQuart:function(a){if((a/=0.5)<1){return 0.5*Math.pow(a,4)}return -0.5*((a-=2)*Math.pow(a,3)-2)},easeInQuint:function(a){return Math.pow(a,5)},easeOutQuint:function(a){return(Math.pow((a-1),5)+1)},easeInOutQuint:function(a){if((a/=0.5)<1){return 0.5*Math.pow(a,5)}return 0.5*(Math.pow((a-2),5)+2)},easeInSine:function(a){return -Math.cos(a*(Math.PI/2))+1},easeOutSine:function(a){return Math.sin(a*(Math.PI/2))},easeInOutSine:function(a){return(-0.5*(Math.cos(Math.PI*a)-1))},easeInExpo:function(a){return(a==0)?0:Math.pow(2,10*(a-1))},easeOutExpo:function(a){return(a==1)?1:-Math.pow(2,-10*a)+1},easeInOutExpo:function(a){if(a==0){return 0}if(a==1){return 1}if((a/=0.5)<1){return 0.5*Math.pow(2,10*(a-1))}return 0.5*(-Math.pow(2,-10*--a)+2)},easeInCirc:function(a){return -(Math.sqrt(1-(a*a))-1)},easeOutCirc:function(a){return Math.sqrt(1-Math.pow((a-1),2))},easeInOutCirc:function(a){if((a/=0.5)<1){return -0.5*(Math.sqrt(1-a*a)-1)}return 0.5*(Math.sqrt(1-(a-=2)*a)+1)},easeOutBounce:function(a){if((a)<(1/2.75)){return(7.5625*a*a)}else{if(a<(2/2.75)){return(7.5625*(a-=(1.5/2.75))*a+0.75)}else{if(a<(2.5/2.75)){return(7.5625*(a-=(2.25/2.75))*a+0.9375)}else{return(7.5625*(a-=(2.625/2.75))*a+0.984375)}}}},easeInBack:function(b){var a=1.70158;return(b)*b*((a+1)*b-a)},easeOutBack:function(b){var a=1.70158;return(b=b-1)*b*((a+1)*b+a)+1},easeInOutBack:function(b){var a=1.70158;if((b/=0.5)<1){return 0.5*(b*b*(((a*=(1.525))+1)*b-a))}return 0.5*((b-=2)*b*(((a*=(1.525))+1)*b+a)+2)},elastic:function(a){return -1*Math.pow(4,-8*a)*Math.sin((a*6-1)*(2*Math.PI)/2)+1},swingFromTo:function(b){var a=1.70158;return((b/=0.5)<1)?0.5*(b*b*(((a*=(1.525))+1)*b-a)):0.5*((b-=2)*b*(((a*=(1.525))+1)*b+a)+2)},swingFrom:function(b){var a=1.70158;return b*b*((a+1)*b-a)},swingTo:function(b){var a=1.70158;return(b-=1)*b*((a+1)*b+a)+1},bounce:function(a){if(a<(1/2.75)){return(7.5625*a*a)}else{if(a<(2/2.75)){return(7.5625*(a-=(1.5/2.75))*a+0.75)}else{if(a<(2.5/2.75)){return(7.5625*(a-=(2.25/2.75))*a+0.9375)}else{return(7.5625*(a-=(2.625/2.75))*a+0.984375)}}}},bouncePast:function(a){if(a<(1/2.75)){return(7.5625*a*a)}else{if(a<(2/2.75)){return 2-(7.5625*(a-=(1.5/2.75))*a+0.75)}else{if(a<(2.5/2.75)){return 2-(7.5625*(a-=(2.25/2.75))*a+0.9375)}else{return 2-(7.5625*(a-=(2.625/2.75))*a+0.984375)}}}},easeFromTo:function(a){if((a/=0.5)<1){return 0.5*Math.pow(a,4)}return -0.5*((a-=2)*Math.pow(a,3)-2)},easeFrom:function(a){return Math.pow(a,4)},easeTo:function(a){return Math.pow(a,0.25)}});Function.prototype.optionize=function(){var a=this,c=a.argumentNames(),b=c.length-1,d=function(){var f=$A(arguments),e=typeof f.last()=="object"?f.pop():{},g=(b==0?[]:((f.length>0?f:[null]).inGroupsOf(b).flatten())).concat(e);return a.apply(this,g)};d.argumentNames=function(){return c};return d};Number.prototype.tween=function(b,a){return this+(b-this)*a};Object.propertize=function(b,a){return Object.isString(b)?a[b]:b};Element.__scrollTo=Element.scrollTo;Element.addMethods({scrollTo:function(b,c,a){if(arguments.length==1){return Element.__scrollTo(b)}new s2.fx.Scroll(b,Object.extend(a||{},{to:c})).play();return b}});Element.addMethods({effect:function(b,c,a){if(Object.isFunction(c)){c=new c(b,a)}else{if(Object.isString(c)){c=new s2.fx[c.capitalize()](b,a)}}c.play(b,a);return b},morph:function(b,c,a){a=s2.fx.parseOptions(a);if(!a.queue){a.queue=b.retrieve("s2.fx.Queue");if(!a.queue){b.store("s2.fx.Queue",a.queue=new s2.fx.Queue())}}if(!a.position){a.position="end"}return b.effect("morph",Object.extend(a,{style:c}))}.optionize(),appear:function(b,a){return b.effect("morph",Object.extend({before:function(){b.show().setStyle({opacity:0})},style:"opacity:1"},a))},fade:function(b,a){return b.effect(Effect.Morph,Object.extend({style:"opacity:0",after:b.hide.bind(b)},a))},cloneWithoutIDs:function(a){a=$(a);var b=a.cloneNode(true);b.id="";$(b).select("*[id]").each(function(c){c.id=""});return b}});s2.viewportOverlay=function(){var a=document.viewport.getDimensions(),b=document.viewport.getScrollOffsets();return new Element("div").setStyle({position:"absolute",left:b.left+"px",top:b.top+"px",width:a.width+"px",height:a.height+"px"})};