/*! Copyright (c) 2010 Burin Asavesna (http://helloburin.com)
 * Licensed under the MIT License (LICENSE.txt).
 */
(function($) {
    // boxShadow get hooks
    var div = document.createElement('div'),
        divStyle = div.style,
        support = $.support,
        props = "Property Duration TimingFunction".split(" ");

    support.transition =
        divStyle.MozTransition     === ''? 'MozTransition'    :
        (divStyle.MsTransition     === ''? 'MsTransition'     :
        (divStyle.WebkitTransition === ''? 'WebkitTransition' :
        (divStyle.OTransition      === ''? 'OTransition'      :
        (divStyle.Transition       === ''? 'Transition'       :
        false))));

    div = null;
    
    if (support.transition) {
        $.cssHooks.transition = {
            get: function( elem, computed, extra ) {
                return $.map(props, function( l, i ) {
                    return $.css(elem, support.transition + l);
                }).join(" ");
            },
            set: function( elem, value ) {
                elem.style[ support.transition ] = value;
            }
        };
        
        // breaks in Safari, stack overflow :o
        // $.each(props, function( i, prop ) {
        //     $.cssHooks[ support.transition + prop ] = {
        //         get: function( elem, computed, extra ) {
        //             return $.css(elem, support.transition + prop);
        //         },
        //         set: function( elem, value ) {
        //             elem.style[ support.transition + prop ] = value;
        //         }
        //     };
        // });

        $.cssHooks.transitionProperty = {
            get: function ( elem, computed, extra ) {
                return $.css(elem, support.transition + "Property");
            },
            set: function( elem, value ) {
                elem.style[ support.transition + "Property" ] = value;
            }
        };

        $.cssHooks.transitionDuration = {
            get: function ( elem, computed, extra ) {
                return $.css(elem, support.transition + "Duration");
            },
            set: function( elem, value ) {
                elem.style[ support.transition + "Duration" ] = value;
            }
        };

        $.cssHooks.transitionTimingFunction = {
            get: function ( elem, computed, extra ) {
                return $.css(elem, support.transition + "TimingFunction");
            },
            set: function( elem, value ) {
                elem.style[ support.transition + "TimingFunction" ] = value;
            }
        };

    }

})(jQuery);

@@ -699,20 +699,16 @@
 = null;%0A
-    
 %0A    if 
@@ -863,17 +863,20 @@
 nction( 
-l
+prop
 , i ) %7B%0A
@@ -935,17 +935,20 @@
 ition + 
-l
+prop
 );%0A     
@@ -1117,24 +1117,16 @@
  %7D;%0A
-        
 %0A       
  // 
@@ -1125,58 +1125,8 @@
     
- // breaks in Safari, stack overflow :o%0A        //
  $.e
@@ -1161,27 +1161,24 @@
  ) %7B%0A       
- //
      $.cssHo
@@ -1182,24 +1182,17 @@
 sHooks%5B 
-support.
+%22
 transiti
@@ -1185,32 +1185,33 @@
 oks%5B %22transition
+%22
  + prop %5D = %7B%0A  
@@ -1207,35 +1207,32 @@
 op %5D = %7B%0A       
- //
          get: fu
@@ -1264,35 +1264,32 @@
 xtra ) %7B%0A       
- //
              ret
@@ -1331,35 +1331,32 @@
 + prop);%0A       
- //
          %7D,%0A    
@@ -1350,35 +1350,32 @@
       %7D,%0A       
- //
          set: fu
@@ -1398,34 +1398,32 @@
 lue ) %7B%0A        
-//
              ele
@@ -1410,33 +1410,32 @@
                 
- 
 elem.style%5B supp
@@ -1470,27 +1470,24 @@
 lue;%0A       
- //
          %7D%0A 
@@ -1492,19 +1492,16 @@
 %0A       
- //
      %7D;%0A
@@ -1512,991 +1512,10 @@
     
-// %7D);%0A%0A        $.cssHooks.transitionProperty = %7B%0A            get: function ( elem, computed, extra ) %7B%0A                return $.css(elem, support.transition + %22Property%22);%0A            %7D,%0A            set: function( elem, value ) %7B%0A                elem.style%5B support.transition + %22Property%22 %5D = value;%0A            %7D%0A        %7D;%0A%0A        $.cssHooks.transitionDuration = %7B%0A            get: function ( elem, computed, extra ) %7B%0A                return $.css(elem, support.transition + %22Duration%22);%0A            %7D,%0A            set: function( elem, value ) %7B%0A                elem.style%5B support.transition + %22Duration%22 %5D = value;%0A            %7D%0A        %7D;%0A%0A        $.cssHooks.transitionTimingFunction = %7B%0A            get: function ( elem, computed, extra ) %7B%0A                return $.css(elem, support.transition + %22TimingFunction%22);%0A            %7D,%0A            set: function( elem, value ) %7B%0A                elem.style%5B support.transition + %22TimingFunction%22 %5D = value;%0A            %7D%0A        
 %7D
+)
 ;%0A%0A 

fix stack overflow issue due to redefining the actual supported browser specific property instead of the generic "transition" prop