/**

* Modernizr Support Plugin
*
* @version 2.3.4
* @author Vivid Planet Software GmbH
* @author Artus Kolanowski
* @author David Deutsch
* @license The MIT License (MIT)
*/

;(function($, Modernizr, window, document, undefined) {

var events = {
        transition: {
                end: {
                        WebkitTransition: 'webkitTransitionEnd',
                        MozTransition: 'transitionend',
                        OTransition: 'oTransitionEnd',
                        transition: 'transitionend'
                }
        },
        animation: {
                end: {
                        WebkitAnimation: 'webkitAnimationEnd',
                        MozAnimation: 'animationend',
                        OAnimation: 'oAnimationEnd',
                        animation: 'animationend'
                }
        }
};

if (!Modernizr) {
        throw new Error('Modernizr is not loaded.');
}

$.each([ 'cssanimations', 'csstransitions', 'csstransforms', 'csstransforms3d', 'prefixed' ], function(i, property) {
        if (typeof Modernizr[property] == 'undefined') {
                throw new Error([ 'Modernizr "', property, '" is not loaded.' ].join(''));
        }
});

if (Modernizr.csstransitions) {
        /* jshint -W053 */
        $.support.transition = new String(Modernizr.prefixed('transition'))
        $.support.transition.end = events.transition.end[ $.support.transition ];
        // fix transitionend support detection, which does not work properly for older Android versions,
        // as it does not give the prefixed event name. here we use Modernizr to ensure the correct event.
        // see:
        // https://github.com/Modernizr/Modernizr/issues/897
        // https://github.com/niksy/modernizr-detects/commit/05d148fc4f3813b1412c836325a9ca78c7a63f4d
        if (/Android 4\.[123]/.test(navigator.userAgent)) {
                $.support.transition.end = 'webkitTransitionEnd';
        }
}

if (Modernizr.cssanimations) {
        /* jshint -W053 */
        $.support.animation = new String(Modernizr.prefixed('animation'))
        $.support.animation.end = events.animation.end[ $.support.animation ];
}

if (Modernizr.csstransforms) {
        /* jshint -W053 */
        $.support.transform = new String(Modernizr.prefixed('transform'));
        $.support.transform3d = Modernizr.csstransforms3d;
}

})(window.Zepto || window.jQuery, window.Modernizr, window, document);