rem: scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { Element.makePositioned(effect.element.firstChild); if (window.opera) effect.element.firstChild.style.top = ""; Element.makeClipping(effect.element); element.style.height = '0'; Element.show(element); }, afterUpdateInternal: function(effect) { effect.element.firstChild.style.bottom = (effect.originalHeight - effect.element.clientHeight) + 'px'; }, afterFinishInternal: function(effect) { Element.undoClipping(effect.element); Element.undoPositioned(effect.element.firstChild); effect.element.firstChild.style.bottom = oldInnerBottom; } 
add: afterUpdate: function(effect) { effect.element.firstChild.style.bottom = (effect.originalHeight - effect.element.clientHeight) + 'px'; }, afterFinish: function(effect) {  Element.undoClipping(effect.element); } 
context: Effect.SlideDown = function(element) {  element = $(element);  Element.cleanWhitespace(element);  // SlideDown need to have the content of the element wrapped in a container element with fixed height!  var oldInnerBottom = element.firstChild.style.bottom;  var elementDimensions = Element.getDimensions(element);  return new Effect.Scale(element, 100,    Object.extend({ scaleContent: false,     scaleX: false,     scaleFrom: 0,    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},        restoreAfterFinish: true,    afterSetup: function(effect) {      Element.makePositioned(effect.element.firstChild);      if (window.opera) effect.element.firstChild.style.top = "";      Element.makeClipping(effect.element);      element.style.height = '0';      Element.show(element);     },      afterUpdateInternal: function(effect) {       effect.element.firstChild.style.bottom =         (effect.originalHeight - effect.element.clientHeight) + 'px'; },    afterFinishInternal: function(effect) {       Element.undoClipping(effect.element);       Element.undoPositioned(effect.element.firstChild);      effect.element.firstChild.style.bottom = oldInnerBottom; }    }, arguments[1] || {})  );}
meta: 3991	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3991/57687341792749db94b850962ee7ed7f18e1087d/effects.js/buggy/manager/media/script/scriptaculous/effects.js