;
(function ($, window, document, undefined) {
    'use strict';

    Foundation.libs.alert = {
        name: 'alert',

        version: '5.5.0',

        settings: {
            callback: function () {
            }
        },

        init: function (scope, method, options) {
            this.bindings(method, options);
        },

        events: function () {
            var self = this,
                S = this.S;

            $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
                var alertBox = S(this).closest('[' + self.attr_name() + ']'),
                    settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;

                e.preventDefault();
                if (Modernizr.csstransitions) {
                    alertBox.addClass('alert-close');
                    alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
                        S(this).trigger('close').trigger('close.fndtn.alert').remove();
                        settings.callback();
                    });
                } else {
                    alertBox.fadeOut(300, function () {
                        S(this).trigger('close').trigger('close.fndtn.alert').remove();
                        settings.callback();
                    });
                }
            });
        },

        reflow: function () {
        }
    };
}(jQuery, window, window.document));
