rem: beforeSetup: function(effect) { Element.hide(effect.element); Element.makeClipping(effect.element); Element.makePositioned(effect.element); }, afterFinishInternal: function(effect) { 
add: beforeUpdate: function(effect) { $(element).style.height = '0px'; }, afterFinish: function(effect) { 
context: Effect.Grow = function(element) {  element = $(element);  var options = arguments[1] || {};    var elementDimensions = Element.getDimensions(element);  var originalWidth = elementDimensions.width;  var originalHeight = elementDimensions.height;  var oldTop = element.style.top;  var oldLeft = element.style.left;  var oldHeight = element.style.height;  var oldWidth = element.style.width;  var oldOpacity = Element.getInlineOpacity(element);    var direction = options.direction || 'center';  var moveTransition = options.moveTransition || Effect.Transitions.sinoidal;  var scaleTransition = options.scaleTransition || Effect.Transitions.sinoidal;  var opacityTransition = options.opacityTransition || Effect.Transitions.full;    var initialMoveX, initialMoveY;  var moveX, moveY;    switch (direction) {    case 'top-left':      initialMoveX = initialMoveY = moveX = moveY = 0;       break;    case 'top-right':      initialMoveX = originalWidth;      initialMoveY = moveY = 0;      moveX = -originalWidth;      break;    case 'bottom-left':      initialMoveX = moveX = 0;      initialMoveY = originalHeight;      moveY = -originalHeight;      break;    case 'bottom-right':      initialMoveX = originalWidth;      initialMoveY = originalHeight;      moveX = -originalWidth;      moveY = -originalHeight;      break;    case 'center':      initialMoveX = originalWidth / 2;      initialMoveY = originalHeight / 2;      moveX = -originalWidth / 2;      moveY = -originalHeight / 2;      break;  }    return new Effect.MoveBy(element, initialMoveY, initialMoveX, {     duration: 0.01,     beforeSetup: function(effect) {       Element.hide(effect.element);      Element.makeClipping(effect.element);      Element.makePositioned(effect.element);    },    afterFinishInternal: function(effect) {      new Effect.Parallel(        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: opacityTransition }),          new Effect.MoveBy(effect.element, moveY, moveX, { sync: true, transition: moveTransition }),          new Effect.Scale(effect.element, 100, {            scaleMode: { originalHeight: originalHeight, originalWidth: originalWidth },             sync: true, scaleFrom: window.opera ? 1 : 0, transition: scaleTransition, restoreAfterFinish: true})        ], Object.extend({             beforeSetup: function(effect) {              effect.effects[0].element.style.height = 0;              Element.show(effect.effects[0].element);             },                           afterFinishInternal: function(effect) {               var el = effect.effects[0].element;               var els = el.style;               Element.undoClipping(el);                Element.undoPositioned(el);               els.top = oldTop;               els.left = oldLeft;               els.height = oldHeight;               els.width = originalWidth;               Element.setInlineOpacity(el, oldOpacity);             }           }, options)      )    }  });}
meta: 3991	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3991/57687341792749db94b850962ee7ed7f18e1087d/effects.js/buggy/manager/media/script/scriptaculous/effects.js