forked from jpatokal/openflights
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscriptaculous.js
1 lines (1 loc) · 38.5 KB
/
scriptaculous.js
1
var Scriptaculous={Version:"1.6.1",require:(function(a){document.write('<script type="text/javascript" src="'+a+'"></script>')}),load:(function(){if((typeof Prototype=="undefined")||(typeof Element=="undefined")||(typeof Element.Methods=="undefined")||parseFloat(Prototype.Version.split(".")[0]+"."+Prototype.Version.split(".")[1])<1.5){throw ("script.aculo.us requires the Prototype JavaScript framework >= 1.5.0")}$A(document.getElementsByTagName("script")).findAll((function(a){return(a.src&&a.src.match(/scriptaculous\.js(\?.*)?$/))})).each((function(a){var b=a.src.replace(/scriptaculous\.js(\?.*)?$/,"");var c=a.src.match(/\?.*load=([a-z,]*)/)}))})};Scriptaculous.load();String.prototype.parseColor=(function(){var c="#";if(this.slice(0,4)=="rgb("){var a=this.slice(4,this.length-1).split(",");var b=0;do{c+=parseInt(a[b]).toColorPart()}while(++b<3)}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var b=1;b<4;b++){c+=(this.charAt(b)+this.charAt(b)).toLowerCase()}}if(this.length==7){c=this.toLowerCase()}}}return(c.length==7?c:(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(b,a){return $A($(b).childNodes).collect((function(c){return(c.nodeType==3?c.nodeValue:((c.hasChildNodes()&&!Element.hasClassName(c,a))?Element.collectTextNodesIgnoreClass(c,a):""))})).flatten().join("")});Element.setContentZoom=(function(b,a){b=$(b);Element.setStyle(b,{fontSize:(a/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(b,a){b=$(b);if(a==1){Element.setStyle(b,{opacity:(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:null});if(/MSIE/.test(navigator.userAgent)){Element.setStyle(b,{filter:Element.getStyle(b,"filter").replace(/alpha\([^\)]*\)/gi,"")})}}else{if(a<1e-05){a=0}Element.setStyle(b,{opacity:a});if(/MSIE/.test(navigator.userAgent)){Element.setStyle(b,{filter:Element.getStyle(b,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+a*100+")"})}}});Element.getInlineOpacity=(function(a){return $(a).style.opacity||""});Element.childrenWithClassName=(function(c,b,a){var e=new RegExp("(^|\\s)"+b+"(\\s|$)");var d=$A($(c).getElementsByTagName("*"))[a?"detect":"select"]((function(f){return(f.className&&f.className.match(e))}));if(!d){d=[]}return d});Element.forceRerendering=(function(b){try{b=$(b);var a=document.createTextNode(" ");b.appendChild(a);b.removeChild(a)}catch(c){}});Array.prototype.call=(function(){var a=arguments;this.each((function(b){b.apply(this,a)}))});var Effect={tagifyText:(function(b){var a="position:relative";if(/MSIE/.test(navigator.userAgent)){a+=";zoom:1"}b=$(b);$A(b.childNodes).each((function(c){if(c.nodeType==3){c.nodeValue.toArray().each((function(d){b.insertBefore(Builder.node("span",{style:a},d==" "?String.fromCharCode(160):d),c)}));Element.remove(c)}}))}),multiple:(function(c,e){var b;if(((typeof c=="object")||(typeof c=="function"))&&(c.length)){b=c}else{b=$(c).childNodes}var d=Object.extend({speed:0.1,delay:0},arguments[2]||{});var a=d.delay;$A(b).each((function(f,g){new e(f,Object.extend(d,{delay:g*d.speed+a}))}))}),PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:(function(a,c){a=$(a);c=(c||"appear").toLowerCase();var b=Object.extend({queue:{position:"end",scope:(a.id||"global"),limit:1}},arguments[2]||{});Effect[a.visible()?Effect.PAIRS[c][1]:Effect.PAIRS[c][0]](a,b)})};var Effect2=Effect;Effect.Transitions={};Effect.Transitions.linear=(function(a){return a});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(c){var a=(new Date()).getTime();var b=(typeof c.options.queue=="string")?c.options.queue:c.options.queue.position;switch(b){case"front":this.effects.findAll((function(d){return d.state=="idle"})).each((function(d){d.startOn+=c.finishOn;d.finishOn+=c.finishOn}));break;case"end":a=this.effects.pluck("finishOn").max()||a;break;default:}c.startOn+=a;c.finishOn+=a;if(!c.options.queue.limit||(this.effects.length<c.options.queue.limit)){this.effects.push(c)}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(a){if(a>=this.startOn){if(a>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish()}this.event("afterFinish");return}var b=(a-this.startOn)/(this.finishOn-this.startOn);var c=Math.round(b*this.options.fps*this.options.duration);if(c>this.currentFrame){this.render(b);this.currentFrame=c}}}),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(a){this.element=$(a);if(/MSIE/.test(navigator.userAgent)&&(!this.element.hasLayout)){this.element.setStyle({zoom:1})}var b=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(b)}),update:(function(a){this.element.setOpacity(a)})});Effect.Move=Class.create();Object.extend(Object.extend(Effect.Move.prototype,Effect.Base.prototype),{initialize:(function(a){this.element=$(a);var b=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(b)}),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:this.options.x*a+this.originalLeft+"px",top:this.options.y*a+this.originalTop+"px"})})});Effect.MoveBy=(function(c,a,b){return new Effect.Move(c,Object.extend({x:b,y:a},arguments[3]||{}))});Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:(function(b,a){this.element=$(b);var c=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:a},arguments[2]||{});this.start(c)}),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","%"].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(b){var a=(this.options.scaleFrom/100)+(this.factor*b);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*a+this.fontSizeType})}this.setDimensions(this.dims[0]*a,this.dims[1]*a)}),finish:(function(a){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle)}}),setDimensions:(function(a,b){var e={};if(this.options.scaleX){e.width=b+"px"}if(this.options.scaleY){e.height=a+"px"}if(this.options.scaleFromCenter){var f=(a-this.dims[0])/2;var c=(b-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){e.top=this.originalTop-f+"px"}if(this.options.scaleX){e.left=this.originalLeft-c+"px"}}else{if(this.options.scaleY){e.top=-f+"px"}if(this.options.scaleX){e.left=-c+"px"}}}this.element.setStyle(e)})});Effect.Highlight=Class.create();Object.extend(Object.extend(Effect.Highlight.prototype,Effect.Base.prototype),{initialize:(function(a){this.element=$(a);var b=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(b)}),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.body.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(b){b=$(b);var a=b.getInlineOpacity();var c=Object.extend({from:b.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(b,c)});Effect.Appear=(function(a){a=$(a);var b=Object.extend({from:(a.getStyle("display")=="none"?0:a.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(a,b)});Effect.Puff=(function(b){b=$(b);var a={opacity:b.getInlineOpacity(),position:b.getStyle("position")};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){c.effects[0].element.setStyle({position:"absolute"})}),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,{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})})})})})});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(b){b=$(b);b.cleanWhitespace();var c=$(b.firstChild).getStyle("bottom");var a=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:a.height,originalWidth:a.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)){d.element.undoPositioned();d.element.firstChild.undoPositioned()}else{d.element.firstChild.undoPositioned();d.element.undoPositioned()}d.element.firstChild.setStyle({bottom:c})})},arguments[1]||{}))});Effect.SlideUp=(function(a){a=$(a);a.cleanWhitespace();var b=$(a.firstChild).getStyle("bottom");return new Effect.Scale(a,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:b})})},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 a=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var f={top:c.style.top,left:c.style.left,height:c.style.height,width:c.style.width,opacity:c.getInlineOpacity()};var b=c.getDimensions();var h,e;var d,g;switch(a.direction){case"top-left":h=e=d=g=0;break;case"top-right":h=b.width;e=g=0;d=-b.width;break;case"bottom-left":h=d=0;e=b.height;g=-b.height;break;case"bottom-right":h=b.width;e=b.height;d=-b.width;g=-b.height;break;case"center":h=b.width/2;e=b.height/2;d=-b.width/2;g=-b.height/2;break;default:}return new Effect.Move(c,{x:h,y:e,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:a.opacityTransition}),new Effect.Move(i.element,{x:d,y:g,sync:true,transition:a.moveTransition}),new Effect.Scale(i.element,100,{scaleMode:{originalHeight:b.height,originalWidth:b.width},sync:true,scaleFrom:window.opera?1:0,transition:a.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(f)})},a))})})});Effect.Shrink=(function(d){d=$(d);var e=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var a={top:d.style.top,left:d.style.left,height:d.style.height,width:d.style.width,opacity:d.getInlineOpacity()};var f=d.getDimensions();var b,c;switch(e.direction){case"top-left":b=c=0;break;case"top-right":b=f.width;c=0;break;case"bottom-left":b=0;c=f.height;break;case"bottom-right":b=f.width;c=f.height;break;case"center":b=f.width/2;c=f.height/2;break;default:}return new Effect.Parallel([new Effect.Opacity(d,{sync:true,to:0,from:1,transition:e.opacityTransition}),new Effect.Scale(d,window.opera?1:0,{sync:true,transition:e.scaleTransition,restoreAfterFinish:true}),new Effect.Move(d,{x:b,y:c,sync:true,transition:e.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)})},e))});Effect.Pulsate=(function(d){d=$(d);var e=arguments[1]||{};var c=d.getInlineOpacity();var a=e.transition||Effect.Transitions.sinoidal;var b=(function(f){return a(1-Effect.Transitions.pulse(f))});b.bind(a);return new Effect.Opacity(d,Object.extend(Object.extend({duration:3,from:0,afterFinishInternal:(function(f){f.element.setStyle({opacity:c})})},e),{transition:b}))});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(a,c,b){s=c.gsub(/_/,"-").camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](a,b);return $(a)});Element.addMethods();var Autocompleter={};Autocompleter.Base=(function(){});Autocompleter.Base.prototype={baseInitialize:(function(b,a,c){this.element=$(b);this.update=$(a);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;if(this.setOptions){this.setOptions(c)}else{this.options=c||{}}this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||(function(e,d){if(!d.style.position||d.style.position=="absolute"){d.style.position="absolute";Position.clone(e,d,{setHeight:false,offsetTop:e.offsetHeight})}Effect.Appear(d,{duration:0.15})});this.options.onHide=this.options.onHide||(function(e,d){new Effect.Fade(d,{duration:0.15})});if(typeof(this.options.tokens)=="string"){this.options.tokens=new Array(this.options.tokens)}this.observer=null;this.element.setAttribute("autocomplete","off");Element.hide(this.update);Event.observe(this.element,"blur",this.onBlur.bindAsEventListener(this));Event.observe(this.element,"keypress",this.onKeyPress.bindAsEventListener(this))}),show:(function(){if(Element.getStyle(this.update,"display")=="none"){this.options.onShow(this.element,this.update)}if(!this.iefix&&(navigator.appVersion.indexOf("MSIE")>0)&&(navigator.userAgent.indexOf("Opera")<0)&&(Element.getStyle(this.update,"position")=="absolute")){new Insertion.After(this.update,'<iframe id="'+this.update.id+'_iefix" style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+"_iefix")}if(this.iefix){setTimeout(this.fixIEOverlapping.bind(this),50)}}),fixIEOverlapping:(function(){Position.clone(this.update,this.iefix);this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix)}),hide:(function(){this.stopIndicator();if(Element.getStyle(this.update,"display")!="none"){this.options.onHide(this.element,this.update)}if(this.iefix){Element.hide(this.iefix)}}),startIndicator:(function(){if(this.options.indicator){Element.show(this.options.indicator)}}),stopIndicator:(function(){if(this.options.indicator){Element.hide(this.options.indicator)}}),onKeyPress:(function(a){if(this.active){switch(a.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(a);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(a);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();if(navigator.appVersion.indexOf("AppleWebKit")>0){Event.stop(a)}return;case Event.KEY_DOWN:default:this.markNext();this.render();if(navigator.appVersion.indexOf("AppleWebKit")>0){Event.stop(a)}return}}else{if(a.keyCode==Event.KEY_TAB||a.keyCode==Event.KEY_RETURN||(navigator.appVersion.indexOf("AppleWebKit")>0&&a.keyCode==0)){return}}this.changed=true;this.hasFocus=true;if(this.observer){clearTimeout(this.observer)}this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000)}),activate:(function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices()}),onHover:(function(a){var b=Event.findElement(a,"LI");if(this.index!=b.autocompleteIndex){this.index=b.autocompleteIndex;this.render()}Event.stop(a)}),onClick:(function(a){var b=Event.findElement(a,"LI");this.index=b.autocompleteIndex;this.selectEntry();this.hide()}),onBlur:(function(a){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false}),render:(function(){if(this.entryCount>0){for(var a=0;a<this.entryCount;a++){this.index==a?Element.addClassName(this.getEntry(a),"selected"):Element.removeClassName(this.getEntry(a),"selected")}if(this.hasFocus){this.show();this.active=true}}else{this.active=false;this.hide()}}),markPrevious:(function(){if(this.index>0){this.index--}else{this.index=this.entryCount-1}}),markNext:(function(){if(this.index<this.entryCount-1){this.index++}else{this.index=0}}),getEntry:(function(a){return this.update.firstChild.childNodes[a]}),getCurrentEntry:(function(){return this.getEntry(this.index)}),selectEntry:(function(){this.active=false;this.updateElement(this.getCurrentEntry())}),updateElement:(function(d){if(this.options.updateElement){this.options.updateElement(d);return}this.element.autocompleted=true;var a="";if(this.options.select){var c=document.getElementsByClassName(this.options.select,d)||[];if(c.length>0){a=Element.collectTextNodes(c[0],this.options.select)}}else{a=Element.collectTextNodesIgnoreClass(d,"informal")}var b=this.findLastToken();if(b!=-1){var e=this.element.value.substr(0,b+1);var f=this.element.value.substr(b+1).match(/^\s+/);if(f){e+=f[0]}this.element.value=e+a}else{this.element.value=a}this.element.focus();if(this.options.afterUpdateElement){this.options.afterUpdateElement(this.element,d)}}),updateChoices:(function(b){if(!this.changed&&this.hasFocus){this.update.innerHTML=b;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.firstChild);if(this.update.firstChild&&this.update.firstChild.childNodes){this.entryCount=this.update.firstChild.childNodes.length;for(var c=0;c<this.entryCount;c++){var a=this.getEntry(c);a.autocompleteIndex=c;this.addObservers(a)}}else{this.entryCount=0}this.stopIndicator();this.index=0;this.render()}}),addObservers:(function(a){Event.observe(a,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(a,"click",this.onClick.bindAsEventListener(this))}),onObserverEvent:(function(){this.changed=false;if(this.getToken().length>=this.options.minChars){this.startIndicator();this.getUpdatedChoices()}else{this.active=false;this.hide()}}),getToken:(function(){var a=this.findLastToken();if(a!=-1){var b=this.element.value.substr(a+1).replace(/^\s+/,"").replace(/\s+$/,"")}else{var b=this.element.value}return/\n/.test(b)?"":b}),findLastToken:(function(){var a=-1;for(var b=0;b<this.options.tokens.length;b++){var c=this.element.value.lastIndexOf(this.options.tokens[b]);if(c>a){a=c}}return a})};Ajax.Autocompleter=Class.create();Object.extend(Object.extend(Ajax.Autocompleter.prototype,Autocompleter.Base.prototype),{initialize:(function(c,a,b,d){this.baseInitialize(c,a,d);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=b}),getUpdatedChoices:(function(){token=this.getToken();if(token.indexOf("(")!=-1){return}entry=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(token);this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams){this.options.parameters+="&"+this.options.defaultParams}if(getCurrentPane()=="input"){this.options.parameters+="&mode="+document.forms.inputform.mode.value}new Ajax.Request(this.url,this.options)}),onComplete:(function(a){this.updateChoices(a.responseText)})});Autocompleter.Local=Class.create();Autocompleter.Local.prototype=Object.extend(new Autocompleter.Base(),{initialize:(function(b,a,d,c){this.baseInitialize(b,a,c);this.options.array=d}),getUpdatedChoices:(function(){this.updateChoices(this.options.selector(this))}),setOptions:(function(a){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:(function(j){var d=[];var f=[];var c=j.getToken();var e=0;for(var b=0;b<j.options.array.length&&d.length<j.options.choices;b++){var h=j.options.array[b];var g=j.options.ignoreCase?h.toLowerCase().indexOf(c.toLowerCase()):h.indexOf(c);while(g!=-1){if(g==0&&h.length!=c.length){d.push("<li><strong>"+h.substr(0,c.length)+"</strong>"+h.substr(c.length)+"</li>");break}else{if(c.length>=j.options.partialChars&&j.options.partialSearch&&g!=-1){if(j.options.fullSearch||/\s/.test(h.substr(g-1,1))){f.push("<li>"+h.substr(0,g)+"<strong>"+h.substr(g,c.length)+"</strong>"+h.substr(g+c.length)+"</li>");break}}}g=j.options.ignoreCase?h.toLowerCase().indexOf(c.toLowerCase(),g+1):h.indexOf(c,g+1)}}if(f.length){d=d.concat(f.slice(0,j.options.choices-d.length))}return"<ul>"+d.join("")+"</ul>"})},a||{})})});Field.scrollFreeActivate=(function(a){setTimeout((function(){Field.activate(a)}),1)});Ajax.InPlaceEditor=Class.create();Ajax.InPlaceEditor.defaultHighlightColor="#FFFF99";Ajax.InPlaceEditor.prototype={initialize:(function(b,a,c){this.url=a;this.element=$(b);this.options=Object.extend({okButton:true,okText:"ok",cancelLink:true,cancelText:"cancel",savingText:"Saving...",clickToEditText:"Click to edit",okText:"ok",rows:1,onComplete:(function(e,d){new Effect.Highlight(d,{startcolor:this.options.highlightcolor})}),onFailure:(function(d){alert("Error communicating with the server: "+d.responseText.stripTags())}),callback:(function(d){return Form.serialize(d)}),handleLineBreaks:true,loadingText:"Loading...",savingClassName:"inplaceeditor-saving",loadingClassName:"inplaceeditor-loading",formClassName:"inplaceeditor-form",highlightcolor:Ajax.InPlaceEditor.defaultHighlightColor,highlightendcolor:"#FFFFFF",externalControl:null,submitOnBlur:false,ajaxOptions:{},evalScripts:false},c||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+"-inplaceeditor";if($(this.options.formId)){this.options.formId=null}}if(this.options.externalControl){this.options.externalControl=$(this.options.externalControl)}this.originalBackground=Element.getStyle(this.element,"background-color");if(!this.originalBackground){this.originalBackground="transparent"}this.element.title=this.options.clickToEditText;this.onclickListener=this.enterEditMode.bindAsEventListener(this);this.mouseoverListener=this.enterHover.bindAsEventListener(this);this.mouseoutListener=this.leaveHover.bindAsEventListener(this);Event.observe(this.element,"click",this.onclickListener);Event.observe(this.element,"mouseover",this.mouseoverListener);Event.observe(this.element,"mouseout",this.mouseoutListener);if(this.options.externalControl){Event.observe(this.options.externalControl,"click",this.onclickListener);Event.observe(this.options.externalControl,"mouseover",this.mouseoverListener);Event.observe(this.options.externalControl,"mouseout",this.mouseoutListener)}}),enterEditMode:(function(a){if(this.saving){return}if(this.editing){return}this.editing=true;this.onEnterEditMode();if(this.options.externalControl){Element.hide(this.options.externalControl)}Element.hide(this.element);this.createForm();this.element.parentNode.insertBefore(this.form,this.element);Field.scrollFreeActivate(this.editField);if(a){Event.stop(a)}return false}),createForm:(function(){this.form=document.createElement("form");this.form.id=this.options.formId;Element.addClassName(this.form,this.options.formClassName);this.form.onsubmit=this.onSubmit.bind(this);this.createEditField();if(this.options.textarea){var a=document.createElement("br");this.form.appendChild(a)}if(this.options.okButton){okButton=document.createElement("input");okButton.type="submit";okButton.value=this.options.okText;okButton.className="editor_ok_button";this.form.appendChild(okButton)}if(this.options.cancelLink){cancelLink=document.createElement("a");cancelLink.href="#";cancelLink.appendChild(document.createTextNode(this.options.cancelText));cancelLink.onclick=this.onclickCancel.bind(this);cancelLink.className="editor_cancel";this.form.appendChild(cancelLink)}}),hasHTMLLineBreaks:(function(a){if(!this.options.handleLineBreaks){return false}return a.match(/<br/i)||a.match(/<p>/i)}),convertHTMLLineBreaks:(function(a){return a.replace(/<br>/gi,"\n").replace(/<br\/>/gi,"\n").replace(/<\/p>/gi,"\n").replace(/<p>/gi,"")}),createEditField:(function(){var e;if(this.options.loadTextURL){e=this.options.loadingText}else{e=this.getText()}var b=this;if(this.options.rows==1&&!this.hasHTMLLineBreaks(e)){this.options.textarea=false;var c=document.createElement("input");c.obj=this;c.type="text";c.name="value";c.value=e;c.style.backgroundColor=this.options.highlightcolor;c.className="editor_field";var a=this.options.size||this.options.cols||0;if(a!=0){c.size=a}if(this.options.submitOnBlur){c.onblur=this.onSubmit.bind(this)}this.editField=c}else{this.options.textarea=true;var d=document.createElement("textarea");d.obj=this;d.name="value";d.value=this.convertHTMLLineBreaks(e);d.rows=this.options.rows;d.cols=this.options.cols||40;d.className="editor_field";if(this.options.submitOnBlur){d.onblur=this.onSubmit.bind(this)}this.editField=d}if(this.options.loadTextURL){this.loadExternalText()}this.form.appendChild(this.editField)}),getText:(function(){return this.element.innerHTML}),loadExternalText:(function(){Element.addClassName(this.form,this.options.loadingClassName);this.editField.disabled=true;new Ajax.Request(this.options.loadTextURL,Object.extend({asynchronous:true,onComplete:this.onLoadedExternalText.bind(this)},this.options.ajaxOptions))}),onLoadedExternalText:(function(a){Element.removeClassName(this.form,this.options.loadingClassName);this.editField.disabled=false;this.editField.value=a.responseText.stripTags()}),onclickCancel:(function(){this.onComplete();this.leaveEditMode();return false}),onFailure:(function(a){this.options.onFailure(a);if(this.oldInnerHTML){this.element.innerHTML=this.oldInnerHTML;this.oldInnerHTML=null}return false}),onSubmit:(function(){var b=this.form;var a=this.editField.value;this.onLoading();if(this.options.evalScripts){new Ajax.Request(this.url,Object.extend({parameters:this.options.callback(b,a),onComplete:this.onComplete.bind(this),onFailure:this.onFailure.bind(this),asynchronous:true,evalScripts:true},this.options.ajaxOptions))}else{new Ajax.Updater({success:this.element,failure:null},this.url,Object.extend({parameters:this.options.callback(b,a),onComplete:this.onComplete.bind(this),onFailure:this.onFailure.bind(this)},this.options.ajaxOptions))}if(arguments.length>1){Event.stop(arguments[0])}return false}),onLoading:(function(){this.saving=true;this.removeForm();this.leaveHover();this.showSaving()}),showSaving:(function(){this.oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;Element.addClassName(this.element,this.options.savingClassName);this.element.style.backgroundColor=this.originalBackground;Element.show(this.element)}),removeForm:(function(){if(this.form){if(this.form.parentNode){Element.remove(this.form)}this.form=null}}),enterHover:(function(){if(this.saving){return}this.element.style.backgroundColor=this.options.highlightcolor;if(this.effect){this.effect.cancel()}Element.addClassName(this.element,this.options.hoverClassName)}),leaveHover:(function(){if(this.options.backgroundColor){this.element.style.backgroundColor=this.oldBackground}Element.removeClassName(this.element,this.options.hoverClassName);if(this.saving){return}this.effect=new Effect.Highlight(this.element,{startcolor:this.options.highlightcolor,endcolor:this.options.highlightendcolor,restorecolor:this.originalBackground})}),leaveEditMode:(function(){Element.removeClassName(this.element,this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this.originalBackground;Element.show(this.element);if(this.options.externalControl){Element.show(this.options.externalControl)}this.editing=false;this.saving=false;this.oldInnerHTML=null;this.onLeaveEditMode()}),onComplete:(function(a){this.leaveEditMode();this.options.onComplete.bind(this)(a,this.element)}),onEnterEditMode:(function(){}),onLeaveEditMode:(function(){}),dispose:(function(){if(this.oldInnerHTML){this.element.innerHTML=this.oldInnerHTML}this.leaveEditMode();Event.stopObserving(this.element,"click",this.onclickListener);Event.stopObserving(this.element,"mouseover",this.mouseoverListener);Event.stopObserving(this.element,"mouseout",this.mouseoutListener);if(this.options.externalControl){Event.stopObserving(this.options.externalControl,"click",this.onclickListener);Event.stopObserving(this.options.externalControl,"mouseover",this.mouseoverListener);Event.stopObserving(this.options.externalControl,"mouseout",this.mouseoutListener)}})};Ajax.InPlaceCollectionEditor=Class.create();Object.extend(Ajax.InPlaceCollectionEditor.prototype,Ajax.InPlaceEditor.prototype);Object.extend(Ajax.InPlaceCollectionEditor.prototype,{createEditField:(function(){if(!this.cached_selectTag){var c=document.createElement("select");var a=this.options.collection||[];var b;a.each((function(f,d){b=document.createElement("option");b.value=(f instanceof Array)?f[0]:f;if(this.options.value==b.value){b.selected=true}b.appendChild(document.createTextNode((f instanceof Array)?f[1]:f));c.appendChild(b)}).bind(this));this.cached_selectTag=c}this.editField=this.cached_selectTag;if(this.options.loadTextURL){this.loadExternalText()}this.form.appendChild(this.editField);this.options.callback=(function(e,d){return"value="+encodeURIComponent(d)})})});Form.Element.DelayedObserver=Class.create();Form.Element.DelayedObserver.prototype={initialize:(function(b,c,a){this.delay=c||0.5;this.element=$(b);this.callback=a;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,"keyup",this.delayedListener.bindAsEventListener(this))}),delayedListener:(function(a){if(this.lastValue==$F(this.element)){return}if(this.timer){clearTimeout(this.timer)}this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element)}),onTimerEvent:(function(){this.timer=null;this.callback(this.element,$F(this.element))})};