| 7683 | } |
| 7684 | |
| 7685 | function propFilter( props, specialEasing ) { |
| 7686 | var index, name, easing, value, hooks; |
| 7687 | |
| 7688 | // camelCase, specialEasing and expand cssHook pass |
| 7689 | for ( index in props ) { |
| 7690 | name = jQuery.camelCase( index ); |
| 7691 | easing = specialEasing[ name ]; |
| 7692 | value = props[ index ]; |
| 7693 | if ( jQuery.isArray( value ) ) { |
| 7694 | easing = value[ 1 ]; |
| 7695 | value = props[ index ] = value[ 0 ]; |
| 7696 | } |
| 7697 | |
| 7698 | if ( index !== name ) { |
| 7699 | props[ name ] = value; |
| 7700 | delete props[ index ]; |
| 7701 | } |
| 7702 | |
| 7703 | hooks = jQuery.cssHooks[ name ]; |
| 7704 | if ( hooks && "expand" in hooks ) { |
| 7705 | value = hooks.expand( value ); |
| 7706 | delete props[ name ]; |
| 7707 | |
| 7708 | // not quite $.extend, this wont overwrite keys already present. |
| 7709 | // also - reusing 'index' from above because we have the correct "name" |
| 7710 | for ( index in value ) { |
| 7711 | if ( !( index in props ) ) { |
| 7712 | props[ index ] = value[ index ]; |
| 7713 | specialEasing[ index ] = easing; |
| 7714 | } |
| 7715 | } |
| 7716 | } else { |
| 7717 | specialEasing[ name ] = easing; |
| 7718 | } |
| 7719 | } |
| 7720 | } |
| 7721 | |
| 7722 | function Animation( elem, properties, options ) { |
| 7723 | var result, |