var HighchartsAdapter=(function(){var a=typeof Effect!="undefined";return{init:function(){if(a){Effect.HighchartsTransition=Class.create(Effect.Base,{initialize:function(d,b,g,c){var f,e;this.element=d;f=d.attr(b);if(b=="d"){this.paths=Highcharts.pathAnim.init(d,d.d,g);this.toD=g;f=0;g=1}e=Object.extend((c||{}),{from:f,to:g,attribute:b});this.start(e)},setup:function(){HighchartsAdapter._extend(this.element);this.element._highchart_animation=this},update:function(b){var c=this.paths;if(c){b=Highcharts.pathAnim.step(c[0],c[1],b,this.toD)}this.element.attr(this.options.attribute,b)},finish:function(){this.element._highchart_animation=null}})}},addEvent:function(c,d,b){if(c.addEventListener||c.attachEvent){Event.observe($(c),d,b)}else{HighchartsAdapter._extend(c);c._highcharts_observe(d,b)}},animate:function(d,f,b){var c,e;b=b||{};b.delay=0;b.duration=(b.duration||500)/1000;if(a){for(c in f){e=new Effect.HighchartsTransition($(d),c,f[c],b)}}else{for(c in f){d.attr(c,f[c])}}if(!d.attr){throw"Todo: implement animate DOM objects"}},stop:function(b){if(b._highcharts_extended&&b._highchart_animation){b._highchart_animation.cancel()}},each:function(b,c){$A(b).each(c)},fireEvent:function(d,e,c,b){if(e.preventDefault){b=null}if(d.fire){d.fire(e,c)}else{if(d._highcharts_extended){d._highcharts_fire(e,c)}}if(b){b(c)}},removeEvent:function(c,d,b){if($(c).stopObserving){c.stopObserving(c,d,b)}else{HighchartsAdapter._extend(c);c._highcharts_stop_observing(d,b)}},grep:function(b,c){return b.findAll(c)},hyphenate:function(b){return b.replace(/([A-Z])/g,function(d,c){return"-"+c.toLowerCase()})},map:function(b,c){return b.map(c)},merge:function(){function c(f,g){var n,o,i,l,m,j,k,h;for(o in g){n=g[o];i=typeof(n)==="undefined";l=n===null;m=g===f[o];if(i||l||m){continue}j=typeof(n)==="object";k=n&&j&&n.constructor==Array;h=!!n.nodeType;if(j&&!k&&!h){f[o]=c(typeof f[o]=="object"?f[o]:{},n)}else{f[o]=g[o]}}return f}var b=arguments,e={};for(var d=0;d<b.length;d++){e=c(e,b[d])}return e},_extend:function(b){if(!b._highcharts_extended){Object.extend(b,{_highchart_events:{},_highchart_animation:null,_highcharts_extended:true,_highcharts_observe:function(c,d){this._highchart_events[c]=[this._highchart_events[c],d].compact().flatten()},_highcharts_stop_observing:function(c,d){this._highchart_events[c]=[this._highchart_events[c]].compact().flatten().without(d)},_highcharts_fire:function(d,c){(this._highchart_events[d]||[]).each(function(e){if(c&&c.stopped){return}e.bind(this)(c)}.bind(this))}})}}}})();
