function _getTransitionEndEvent( elm ) {
  var transition;
  var transitions = {
    WebkitTransition: 'webkitTransitionEnd',
    MozTransition:    'transitionend',
    OTransition:      'oTransitionEnd otransitionend',
    transition:       'transitionend'
  };

  for ( var t in transitions ) {
    if ( transitions.hasOwnProperty( t ) &&
         typeof elm.style[t] !== 'undefined' ) {
      transition = transitions[t];
      break;
    }
  }
  return transition;
}
/**
 * @param {HTMLNode} elm
 *   The element to check for support of transition end event.
 * @returns {string} The browser-prefixed transition end event.
 */
@param {HTMLNode} elm
The element to check for support of transition end event.
@returns {string} The browser-prefixed transition end event.
@param { HTMLNode } elm The element to check for support of transition end event . @returns { string } The browser - prefixed transition end event .
function _getTransitionEndEvent( elm ) {
  var transition;
  var transitions = {
    WebkitTransition: 'webkitTransitionEnd',
    MozTransition:    'transitionend',
    OTransition:      'oTransitionEnd otransitionend',
    transition:       'transitionend'
  };
  for ( var t in transitions ) {
    if ( transitions.hasOwnProperty( t ) &&
         typeof elm.style[t] !== 'undefined' ) {
      transition = transitions[t];
      break;
    }
  }
  return transition;
}
function _getTransitionEndEvent ( elm ) { var transition ; var transitions = { WebkitTransition : 'webkitTransitionEnd' , MozTransition : 'transitionend' , OTransition : 'oTransitionEnd otransitionend' , transition : 'transitionend' } ; for ( var t in transitions ) { if ( transitions . hasOwnProperty ( t ) && typeof elm . style [ t ] !== 'undefined' ) { transition = transitions [ t ] ; break ; } } return transition ; }
@param {HTMLNode} elm
   The element to check for support of transition end event.
@param { HTMLNode } elm The element to check for support of transition end event .