Ignore:
Timestamp:
Aug 6, 2009, 11:21:29 PM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

adjust hierarchy

Location:
ruby/branches/0.5
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • ruby/branches/0.5/public/javascripts/effects.js

    r164 r169  
    44//  Mark Pilgrim (http://diveintomark.org/)
    55//  Martin Bialasinki
    6 // 
     6//
    77// script.aculo.us is freely distributable under the terms of an MIT-style license.
    8 // For details, see the script.aculo.us web site: http://script.aculo.us/ 
    9 
    10 // converts rgb() and #xxx to #xxxxxx format, 
    11 // returns self (or first argument) if not convertable 
    12 String.prototype.parseColor = function() { 
     8// For details, see the script.aculo.us web site: http://script.aculo.us/
     9
     10// converts rgb() and #xxx to #xxxxxx format,
     11// returns self (or first argument) if not convertable
     12String.prototype.parseColor = function() {
    1313  var color = '#';
    14   if (this.slice(0,4) == 'rgb(') { 
    15     var cols = this.slice(4,this.length-1).split(','); 
    16     var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); 
    17   } else { 
    18     if (this.slice(0,1) == '#') { 
    19       if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); 
    20       if (this.length==7) color = this.toLowerCase(); 
    21     } 
    22   } 
    23   return (color.length==7 ? color : (arguments[0] || this)); 
     14  if (this.slice(0,4) == 'rgb(') {
     15    var cols = this.slice(4,this.length-1).split(',');
     16    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
     17  } else {
     18    if (this.slice(0,1) == '#') {
     19      if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
     20      if (this.length==7) color = this.toLowerCase();
     21    }
     22  }
     23  return (color.length==7 ? color : (arguments[0] || this));
    2424};
    2525
    2626/*--------------------------------------------------------------------------*/
    2727
    28 Element.collectTextNodes = function(element) { 
     28Element.collectTextNodes = function(element) {
    2929  return $A($(element).childNodes).collect( function(node) {
    30     return (node.nodeType==3 ? node.nodeValue : 
     30    return (node.nodeType==3 ? node.nodeValue :
    3131      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
    3232  }).flatten().join('');
    3333};
    3434
    35 Element.collectTextNodesIgnoreClass = function(element, className) { 
     35Element.collectTextNodesIgnoreClass = function(element, className) {
    3636  return $A($(element).childNodes).collect( function(node) {
    37     return (node.nodeType==3 ? node.nodeValue : 
    38       ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? 
     37    return (node.nodeType==3 ? node.nodeValue :
     38      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
    3939        Element.collectTextNodesIgnoreClass(node, className) : ''));
    4040  }).flatten().join('');
     
    4242
    4343Element.setContentZoom = function(element, percent) {
    44   element = $(element); 
    45   element.setStyle({fontSize: (percent/100) + 'em'});   
     44  element = $(element);
     45  element.setStyle({fontSize: (percent/100) + 'em'});
    4646  if (Prototype.Browser.WebKit) window.scrollBy(0,0);
    4747  return element;
     
    7171    linear: Prototype.K,
    7272    sinoidal: function(pos) {
    73       return (-Math.cos(pos*Math.PI)/2) + 0.5;
     73      return (-Math.cos(pos*Math.PI)/2) + .5;
    7474    },
    7575    reverse: function(pos) {
     
    7777    },
    7878    flicker: function(pos) {
    79       var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;
     79      var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4;
    8080      return pos > 1 ? 1 : pos;
    8181    },
    8282    wobble: function(pos) {
    83       return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
    84     },
    85     pulse: function(pos, pulses) {
    86       pulses = pulses || 5;
    87       return (
    88         ((pos % (1/pulses)) * pulses).round() == 0 ?
    89               ((pos * pulses * 2) - (pos * pulses * 2).floor()) :
    90           1 - ((pos * pulses * 2) - (pos * pulses * 2).floor())
    91         );
    92     },
    93     spring: function(pos) {
    94       return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
     83      return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5;
     84    },
     85    pulse: function(pos, pulses) {
     86      return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
     87    },
     88    spring: function(pos) {
     89      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
    9590    },
    9691    none: function(pos) {
     
    113108    var tagifyStyle = 'position:relative';
    114109    if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';
    115    
     110
    116111    element = $(element);
    117112    $A(element.childNodes).each( function(child) {
     
    120115          element.insertBefore(
    121116            new Element('span', {style: tagifyStyle}).update(
    122               character == ' ' ? String.fromCharCode(160) : character), 
     117              character == ' ' ? String.fromCharCode(160) : character),
    123118              child);
    124119        });
     
    129124  multiple: function(element, effect) {
    130125    var elements;
    131     if (((typeof element == 'object') || 
    132         Object.isFunction(element)) && 
     126    if (((typeof element == 'object') ||
     127        Object.isFunction(element)) &&
    133128       (element.length))
    134129      elements = element;
    135130    else
    136131      elements = $(element).childNodes;
    137      
     132
    138133    var options = Object.extend({
    139134      speed: 0.1,
     
    157152      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
    158153    }, arguments[2] || { });
    159     Effect[element.visible() ? 
     154    Effect[element.visible() ?
    160155      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);
    161156  }
     
    169164  initialize: function() {
    170165    this.effects  = [];
    171     this.interval = null;   
     166    this.interval = null;
    172167  },
    173168  _each: function(iterator) {
     
    176171  add: function(effect) {
    177172    var timestamp = new Date().getTime();
    178    
    179     var position = Object.isString(effect.options.queue) ? 
     173
     174    var position = Object.isString(effect.options.queue) ?
    180175      effect.options.queue : effect.options.queue.position;
    181    
     176
    182177    switch(position) {
    183178      case 'front':
    184         // move unstarted effects after this effect 
     179        // move unstarted effects after this effect
    185180        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
    186181            e.startOn  += effect.finishOn;
     
    196191        break;
    197192    }
    198    
     193
    199194    effect.startOn  += timestamp;
    200195    effect.finishOn += timestamp;
     
    202197    if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
    203198      this.effects.push(effect);
    204    
     199
    205200    if (!this.interval)
    206201      this.interval = setInterval(this.loop.bind(this), 15);
     
    215210  loop: function() {
    216211    var timePos = new Date().getTime();
    217     for(var i=0, len=this.effects.length;i<len;i++) 
     212    for(var i=0, len=this.effects.length;i<len;i++)
    218213      this.effects[i] && this.effects[i].loop(timePos);
    219214  }
     
    224219  get: function(queueName) {
    225220    if (!Object.isString(queueName)) return queueName;
    226    
     221
    227222    return this.instances.get(queueName) ||
    228223      this.instances.set(queueName, new Effect.ScopedQueue());
     
    249244    this.totalTime    = this.finishOn-this.startOn;
    250245    this.totalFrames  = this.options.fps*this.options.duration;
    251    
    252     eval('this.render = function(pos){ '+
    253       'if (this.state=="idle"){this.state="running";'+
    254       codeForEvent(this.options,'beforeSetup')+
    255       (this.setup ? 'this.setup();':'')+
    256       codeForEvent(this.options,'afterSetup')+
    257       '};if (this.state=="running"){'+
    258       'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+
    259       'this.position=pos;'+
    260       codeForEvent(this.options,'beforeUpdate')+
    261       (this.update ? 'this.update(pos);':'')+
    262       codeForEvent(this.options,'afterUpdate')+
    263       '}}');
    264    
     246
     247    this.render = (function() {
     248      function dispatch(effect, eventName) {
     249        if (effect.options[eventName + 'Internal'])
     250          effect.options[eventName + 'Internal'](effect);
     251        if (effect.options[eventName])
     252          effect.options[eventName](effect);
     253      }
     254
     255      return function(pos) {
     256        if (this.state === "idle") {
     257          this.state = "running";
     258          dispatch(this, 'beforeSetup');
     259          if (this.setup) this.setup();
     260          dispatch(this, 'afterSetup');
     261        }
     262        if (this.state === "running") {
     263          pos = (this.options.transition(pos) * this.fromToDelta) + this.options.from;
     264          this.position = pos;
     265          dispatch(this, 'beforeUpdate');
     266          if (this.update) this.update(pos);
     267          dispatch(this, 'afterUpdate');
     268        }
     269      };
     270    })();
     271
    265272    this.event('beforeStart');
    266273    if (!this.options.sync)
    267       Effect.Queues.get(Object.isString(this.options.queue) ? 
     274      Effect.Queues.get(Object.isString(this.options.queue) ?
    268275        'global' : this.options.queue.scope).add(this);
    269276  },
     
    274281        this.cancel();
    275282        this.event('beforeFinish');
    276         if (this.finish) this.finish(); 
     283        if (this.finish) this.finish();
    277284        this.event('afterFinish');
    278         return; 
     285        return;
    279286      }
    280287      var pos   = (timePos - this.startOn) / this.totalTime,
     
    288295  cancel: function() {
    289296    if (!this.options.sync)
    290       Effect.Queues.get(Object.isString(this.options.queue) ? 
     297      Effect.Queues.get(Object.isString(this.options.queue) ?
    291298        'global' : this.options.queue.scope).remove(this);
    292299    this.state = 'finished';
     
    326333  initialize: function(object, from, to) {
    327334    object = Object.isString(object) ? $(object) : object;
    328     var args = $A(arguments), method = args.last(), 
     335    var args = $A(arguments), method = args.last(),
    329336      options = args.length == 5 ? args[3] : null;
    330337    this.method = Object.isFunction(method) ? method.bind(object) :
    331       Object.isFunction(object[method]) ? object[method].bind(object) : 
     338      Object.isFunction(object[method]) ? object[method].bind(object) :
    332339      function(value) { object[method] = value };
    333340    this.start(Object.extend({ from: from, to: to }, options || { }));
     
    393400// for backwards compatibility
    394401Effect.MoveBy = function(element, toTop, toLeft) {
    395   return new Effect.Move(element, 
     402  return new Effect.Move(element,
    396403    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
    397404};
     
    415422    this.restoreAfterFinish = this.options.restoreAfterFinish || false;
    416423    this.elementPositioning = this.element.getStyle('position');
    417    
     424
    418425    this.originalStyle = { };
    419426    ['top','left','width','height','fontSize'].each( function(k) {
    420427      this.originalStyle[k] = this.element.style[k];
    421428    }.bind(this));
    422      
     429
    423430    this.originalTop  = this.element.offsetTop;
    424431    this.originalLeft = this.element.offsetLeft;
    425    
     432
    426433    var fontSize = this.element.getStyle('font-size') || '100%';
    427434    ['em','px','%','pt'].each( function(fontSizeType) {
     
    431438      }
    432439    }.bind(this));
    433    
     440
    434441    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;
    435    
     442
    436443    this.dims = null;
    437444    if (this.options.scaleMode=='box')
     
    508515Effect.ScrollTo = function(element) {
    509516  var options = arguments[1] || { },
    510     scrollOffsets = document.viewport.getScrollOffsets(),
    511     elementOffsets = $(element).cumulativeOffset(),
    512     max = (window.height || document.body.scrollHeight) - document.viewport.getHeight(); 
     517  scrollOffsets = document.viewport.getScrollOffsets(),
     518  elementOffsets = $(element).cumulativeOffset();
    513519
    514520  if (options.offset) elementOffsets[1] += options.offset;
     
    516522  return new Effect.Tween(null,
    517523    scrollOffsets.top,
    518     elementOffsets[1] > max ? max : elementOffsets[1],
     524    elementOffsets[1],
    519525    options,
    520     function(p){ scrollTo(scrollOffsets.left, p.round()) }
     526    function(p){ scrollTo(scrollOffsets.left, p.round()); }
    521527  );
    522528};
     
    530536    from: element.getOpacity() || 1.0,
    531537    to:   0.0,
    532     afterFinishInternal: function(effect) { 
     538    afterFinishInternal: function(effect) {
    533539      if (effect.options.to!=0) return;
    534       effect.element.hide().setStyle({opacity: oldOpacity}); 
     540      effect.element.hide().setStyle({opacity: oldOpacity});
    535541    }
    536542  }, arguments[1] || { });
     
    548554  },
    549555  beforeSetup: function(effect) {
    550     effect.element.setOpacity(effect.options.from).show(); 
     556    effect.element.setOpacity(effect.options.from).show();
    551557  }}, arguments[1] || { });
    552558  return new Effect.Opacity(element,options);
     
    555561Effect.Puff = function(element) {
    556562  element = $(element);
    557   var oldStyle = { 
    558     opacity: element.getInlineOpacity(), 
     563  var oldStyle = {
     564    opacity: element.getInlineOpacity(),
    559565    position: element.getStyle('position'),
    560566    top:  element.style.top,
     
    564570  };
    565571  return new Effect.Parallel(
    566    [ new Effect.Scale(element, 200, 
    567       { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), 
    568      new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], 
    569      Object.extend({ duration: 1.0, 
     572   [ new Effect.Scale(element, 200,
     573      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
     574     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
     575     Object.extend({ duration: 1.0,
    570576      beforeSetupInternal: function(effect) {
    571         Position.absolutize(effect.effects[0].element)
     577        Position.absolutize(effect.effects[0].element);
    572578      },
    573579      afterFinishInternal: function(effect) {
     
    581587  element.makeClipping();
    582588  return new Effect.Scale(element, 0,
    583     Object.extend({ scaleContent: false, 
    584       scaleX: false, 
     589    Object.extend({ scaleContent: false,
     590      scaleX: false,
    585591      restoreAfterFinish: true,
    586592      afterFinishInternal: function(effect) {
    587593        effect.element.hide().undoClipping();
    588       } 
     594      }
    589595    }, arguments[1] || { })
    590596  );
     
    594600  element = $(element);
    595601  var elementDimensions = element.getDimensions();
    596   return new Effect.Scale(element, 100, Object.extend({ 
    597     scaleContent: false, 
     602  return new Effect.Scale(element, 100, Object.extend({
     603    scaleContent: false,
    598604    scaleX: false,
    599605    scaleFrom: 0,
     
    601607    restoreAfterFinish: true,
    602608    afterSetup: function(effect) {
    603       effect.element.makeClipping().setStyle({height: '0px'}).show(); 
    604     }, 
     609      effect.element.makeClipping().setStyle({height: '0px'}).show();
     610    },
    605611    afterFinishInternal: function(effect) {
    606612      effect.element.undoClipping();
     
    617623    transition: Effect.Transitions.flicker,
    618624    afterFinishInternal: function(effect) {
    619       new Effect.Scale(effect.element, 1, { 
     625      new Effect.Scale(effect.element, 1, {
    620626        duration: 0.3, scaleFromCenter: true,
    621627        scaleX: false, scaleContent: false, restoreAfterFinish: true,
    622         beforeSetup: function(effect) { 
     628        beforeSetup: function(effect) {
    623629          effect.element.makePositioned().makeClipping();
    624630        },
     
    626632          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
    627633        }
    628       })
     634      });
    629635    }
    630636  }, arguments[1] || { }));
     
    638644    opacity: element.getInlineOpacity() };
    639645  return new Effect.Parallel(
    640     [ new Effect.Move(element, {x: 0, y: 100, sync: true }), 
     646    [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
    641647      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
    642648    Object.extend(
    643649      { duration: 0.5,
    644650        beforeSetup: function(effect) {
    645           effect.effects[0].element.makePositioned(); 
     651          effect.effects[0].element.makePositioned();
    646652        },
    647653        afterFinishInternal: function(effect) {
    648654          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
    649         } 
     655        }
    650656      }, arguments[1] || { }));
    651657};
     
    675681      { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
    676682        effect.element.undoPositioned().setStyle(oldStyle);
    677   }}) }}) }}) }}) }}) }});
     683  }}); }}); }}); }}); }}); }});
    678684};
    679685
     
    683689  var oldInnerBottom = element.down().getStyle('bottom');
    684690  var elementDimensions = element.getDimensions();
    685   return new Effect.Scale(element, 100, Object.extend({ 
    686     scaleContent: false, 
    687     scaleX: false, 
     691  return new Effect.Scale(element, 100, Object.extend({
     692    scaleContent: false,
     693    scaleX: false,
    688694    scaleFrom: window.opera ? 0 : 1,
    689695    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
     
    693699      effect.element.down().makePositioned();
    694700      if (window.opera) effect.element.setStyle({top: ''});
    695       effect.element.makeClipping().setStyle({height: '0px'}).show(); 
     701      effect.element.makeClipping().setStyle({height: '0px'}).show();
    696702    },
    697703    afterUpdateInternal: function(effect) {
    698704      effect.element.down().setStyle({bottom:
    699         (effect.dims[0] - effect.element.clientHeight) + 'px' }); 
     705        (effect.dims[0] - effect.element.clientHeight) + 'px' });
    700706    },
    701707    afterFinishInternal: function(effect) {
     
    711717  var elementDimensions = element.getDimensions();
    712718  return new Effect.Scale(element, window.opera ? 0 : 1,
    713    Object.extend({ scaleContent: false, 
    714     scaleX: false, 
     719   Object.extend({ scaleContent: false,
     720    scaleX: false,
    715721    scaleMode: 'box',
    716722    scaleFrom: 100,
     
    722728      if (window.opera) effect.element.setStyle({top: ''});
    723729      effect.element.makeClipping().show();
    724     }, 
     730    },
    725731    afterUpdateInternal: function(effect) {
    726732      effect.element.down().setStyle({bottom:
     
    735741};
    736742
    737 // Bug in opera makes the TD containing this element expand for a instance after finish 
     743// Bug in opera makes the TD containing this element expand for a instance after finish
    738744Effect.Squish = function(element) {
    739   return new Effect.Scale(element, window.opera ? 1 : 0, { 
     745  return new Effect.Scale(element, window.opera ? 1 : 0, {
    740746    restoreAfterFinish: true,
    741747    beforeSetup: function(effect) {
    742       effect.element.makeClipping(); 
    743     }, 
     748      effect.element.makeClipping();
     749    },
    744750    afterFinishInternal: function(effect) {
    745       effect.element.hide().undoClipping(); 
     751      effect.element.hide().undoClipping();
    746752    }
    747753  });
     
    763769    opacity: element.getInlineOpacity() };
    764770
    765   var dims = element.getDimensions();   
     771  var dims = element.getDimensions();
    766772  var initialMoveX, initialMoveY;
    767773  var moveX, moveY;
    768  
     774
    769775  switch (options.direction) {
    770776    case 'top-left':
    771       initialMoveX = initialMoveY = moveX = moveY = 0; 
     777      initialMoveX = initialMoveY = moveX = moveY = 0;
    772778      break;
    773779    case 'top-right':
     
    794800      break;
    795801  }
    796  
     802
    797803  return new Effect.Move(element, {
    798804    x: initialMoveX,
    799805    y: initialMoveY,
    800     duration: 0.01, 
     806    duration: 0.01,
    801807    beforeSetup: function(effect) {
    802808      effect.element.hide().makeClipping().makePositioned();
     
    807813          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
    808814          new Effect.Scale(effect.element, 100, {
    809             scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, 
     815            scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
    810816            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
    811817        ], Object.extend({
    812818             beforeSetup: function(effect) {
    813                effect.effects[0].element.setStyle({height: '0px'}).show(); 
     819               effect.effects[0].element.setStyle({height: '0px'}).show();
    814820             },
    815821             afterFinishInternal: function(effect) {
    816                effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); 
     822               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
    817823             }
    818824           }, options)
    819       )
     825      );
    820826    }
    821827  });
     
    839845  var dims = element.getDimensions();
    840846  var moveX, moveY;
    841  
     847
    842848  switch (options.direction) {
    843849    case 'top-left':
     
    856862      moveY = dims.height;
    857863      break;
    858     case 'center': 
     864    case 'center':
    859865      moveX = dims.width / 2;
    860866      moveY = dims.height / 2;
    861867      break;
    862868  }
    863  
     869
    864870  return new Effect.Parallel(
    865871    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
    866872      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
    867873      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
    868     ], Object.extend({           
     874    ], Object.extend({
    869875         beforeStartInternal: function(effect) {
    870            effect.effects[0].element.makePositioned().makeClipping(); 
     876           effect.effects[0].element.makePositioned().makeClipping();
    871877         },
    872878         afterFinishInternal: function(effect) {
     
    878884Effect.Pulsate = function(element) {
    879885  element = $(element);
    880   var options    = arguments[1] || { };
    881   var oldOpacity = element.getInlineOpacity();
    882   var transition = options.transition || Effect.Transitions.sinoidal;
    883   var reverser   = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) };
    884   reverser.bind(transition);
    885   return new Effect.Opacity(element,
     886  var options    = arguments[1] || { },
     887    oldOpacity = element.getInlineOpacity(),
     888    transition = options.transition || Effect.Transitions.linear,
     889    reverser   = function(pos){
     890      return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5);
     891    };
     892
     893  return new Effect.Opacity(element,
    886894    Object.extend(Object.extend({  duration: 2.0, from: 0,
    887895      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
     
    897905    height: element.style.height };
    898906  element.makeClipping();
    899   return new Effect.Scale(element, 5, Object.extend({   
     907  return new Effect.Scale(element, 5, Object.extend({
    900908    scaleContent: false,
    901909    scaleX: false,
    902910    afterFinishInternal: function(effect) {
    903     new Effect.Scale(element, 1, { 
    904       scaleContent: false, 
     911    new Effect.Scale(element, 1, {
     912      scaleContent: false,
    905913      scaleY: false,
    906914      afterFinishInternal: function(effect) {
     
    917925      style: { }
    918926    }, arguments[1] || { });
    919    
     927
    920928    if (!Object.isString(options.style)) this.style = $H(options.style);
    921929    else {
     
    935943            effect.element.style[transform.style] = '';
    936944          });
    937         }
     945        };
    938946      }
    939947    }
    940948    this.start(options);
    941949  },
    942  
     950
    943951  setup: function(){
    944952    function parseColor(color){
     
    946954      color = color.parseColor();
    947955      return $R(0,2).map(function(i){
    948         return parseInt( color.slice(i*2+1,i*2+3), 16 ) 
     956        return parseInt( color.slice(i*2+1,i*2+3), 16 );
    949957      });
    950958    }
     
    966974
    967975      var originalValue = this.element.getStyle(property);
    968       return { 
    969         style: property.camelize(), 
    970         originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), 
     976      return {
     977        style: property.camelize(),
     978        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
    971979        targetValue: unit=='color' ? parseColor(value) : value,
    972980        unit: unit
     
    979987          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
    980988        )
    981       )
     989      );
    982990    });
    983991  },
     
    985993    var style = { }, transform, i = this.transforms.length;
    986994    while(i--)
    987       style[(transform = this.transforms[i]).style] = 
     995      style[(transform = this.transforms[i]).style] =
    988996        transform.unit=='color' ? '#'+
    989997          (Math.round(transform.originalValue[0]+
     
    9941002            (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
    9951003        (transform.originalValue +
    996           (transform.targetValue - transform.originalValue) * position).toFixed(3) + 
     1004          (transform.targetValue - transform.originalValue) * position).toFixed(3) +
    9971005            (transform.unit === null ? '' : transform.unit);
    9981006    this.element.setStyle(style, true);
     
    10311039
    10321040Element.CSS_PROPERTIES = $w(
    1033   'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + 
     1041  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
    10341042  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
    10351043  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
     
    10401048  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
    10411049  'right textIndent top width wordSpacing zIndex');
    1042  
     1050
    10431051Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
    10441052
     
    10521060    style = String.__parseStyleElement.childNodes[0].style;
    10531061  }
    1054  
     1062
    10551063  Element.CSS_PROPERTIES.each(function(property){
    1056     if (style[property]) styleRules.set(property, style[property]); 
     1064    if (style[property]) styleRules.set(property, style[property]);
    10571065  });
    1058  
     1066
    10591067  if (Prototype.Browser.IE && this.include('opacity'))
    10601068    styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);
     
    10751083    element = $(element);
    10761084    var css = element.currentStyle, styles;
    1077     styles = Element.CSS_PROPERTIES.inject({ }, function(hash, property) {
    1078       hash.set(property, css[property]);
    1079       return hash;
     1085    styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {
     1086      results[property] = css[property];
     1087      return results;
    10801088    });
    1081     if (!styles.opacity) styles.set('opacity', element.getOpacity());
     1089    if (!styles.opacity) styles.opacity = element.getOpacity();
    10821090    return styles;
    10831091  };
    1084 };
     1092}
    10851093
    10861094Effect.Methods = {
     
    10911099  },
    10921100  visualEffect: function(element, effect, options) {
    1093     element = $(element)
     1101    element = $(element);
    10941102    var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
    10951103    new Effect[klass](element, options);
     
    11051113$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
    11061114  'pulsate shake puff squish switchOff dropOut').each(
    1107   function(effect) { 
     1115  function(effect) {
    11081116    Effect.Methods[effect] = function(element, options){
    11091117      element = $(element);
    11101118      Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
    11111119      return element;
    1112     }
     1120    };
    11131121  }
    11141122);
    11151123
    1116 $w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( 
     1124$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
    11171125  function(f) { Effect.Methods[f] = Element[f]; }
    11181126);
Note: See TracChangeset for help on using the changeset viewer.