code: function (el, params, options) {
  		var isSVGElement = el.attr,
  			effect,
  			complete = options && options.complete;
  
  		if (isSVGElement && !el.setStyle) {
  			// add setStyle and getStyle methods for internal use in Moo
  			el.getStyle = el.attr;
  			el.setStyle = function () { // property value is given as array in Moo - break it down
  				var args = arguments;
  				this.attr.call(this, args[0], args[1][0]);
  			};
  			// dirty hack to trick Moo into handling el as an element wrapper
  			el.$family = function () { return true; };
  		}
  
  		// stop running animations
  		win.HighchartsAdapter.stop(el);
  
  		// define and run the effect
  		effect = new Fx.Morph(
  			isSVGElement ? el : $(el),
  			$extend({
  				transition: Fx.Transitions.Quad.easeInOut
  			}, options)
  		);
  
  		// Make sure that the element reference is set when animating svg elements
  		if (isSVGElement) {
  			effect.element = el;
  		}
  
  		// special treatment for paths
  		if (params.d) {
  			effect.toD = params.d;
  		}
  
  		// jQuery-like events
  		if (complete) {
  			effect.addEvent('complete', complete);
  		}
  
  		// run
  		effect.start(params);
  
  		// record for use in stop method
  		el.fx = effect;
  	}
docs: Animate a HTML element or SVG element wrapper
  @param {Object} el
  @param {Object} params
  @param {Object} options jQuery-like animation options: duration, easing, callback