text: /* ========================================================================
   * Bootstrap: alert.js v3.0.0
   * http://twbs.github.com/bootstrap/javascript.html#alerts
   * ========================================================================
   * Copyright 2013 Twitter, Inc.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   * ======================================================================== */
  
  
  +function ($) { "use strict";
  
    // ALERT CLASS DEFINITION
    // ======================
  
    var dismiss = '[data-dismiss="alert"]'
    var Alert   = function (el) {
      $(el).on('click', dismiss, this.close)
    }
  
    Alert.prototype.close = function (e) {
      var $this    = $(this)
      var selector = $this.attr('data-target')
  
      if (!selector) {
        selector = $this.attr('href')
        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
      }
  
      var $parent = $(selector)
  
      if (e) e.preventDefault()
  
      if (!$parent.length) {
        $parent = $this.hasClass('alert') ? $this : $this.parent()
      }
  
      $parent.trigger(e = $.Event('close.bs.alert'))
  
      if (e.isDefaultPrevented()) return
  
      $parent.removeClass('in')
  
      function removeElement() {
        $parent.trigger('closed.bs.alert').remove()
      }
  
      $.support.transition && $parent.hasClass('fade') ?
        $parent
          .one($.support.transition.end, removeElement)
          .emulateTransitionEnd(150) :
        removeElement()
    }
  
  
    // ALERT PLUGIN DEFINITION
    // =======================
  
    var old = $.fn.alert
  
    $.fn.alert = function (option) {
      return this.each(function () {
        var $this = $(this)
        var data  = $this.data('bs.alert')
  
        if (!data) $this.data('bs.alert', (data = new Alert(this)))
        if (typeof option == 'string') data[option].call($this)
      })
    }
  
    $.fn.alert.Constructor = Alert
  
  
    // ALERT NO CONFLICT
    // =================
  
    $.fn.alert.noConflict = function () {
      $.fn.alert = old
      return this
    }
  
  
    // ALERT DATA-API
    // ==============
  
    $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
  
  }(window.jQuery);
  
  (function() {
    Bootstrap.BsAlertComponent = Ember.Component.extend(Bootstrap.TypeSupport, {
      classNames: ['alert'],
      classNameBindings: ['fade', 'fade:in'],
      layoutName: 'components/bs-alert',
      classTypePrefix: 'alert',
      attributeBindings: ['data-timeout'],
      dismissAfter: 0,
      didInsertElement: function() {
        var _this = this;
        if (this.dismissAfter > 0) {
          Ember.run.later(this, 'dismiss', this.dismissAfter * 1000);
        }
        Ember.$("#" + this.elementId).bind('closed.bs.alert', function() {
          _this.sendAction('closed');
          return _this.destroy();
        });
        return Ember.$("#" + this.elementId).bind('close.bs.alert', function() {
          return _this.sendAction('close');
        });
      },
      dismiss: function() {
        return Ember.$("#" + this.elementId).alert('close');
      }
    });
  
    Ember.Handlebars.helper('bs-alert', Bootstrap.BsAlertComponent);
  
  }).call(this);
  
  this["Ember"] = this["Ember"] || {};
  this["Ember"]["TEMPLATES"] = this["Ember"]["TEMPLATES"] || {};
  
  this["Ember"]["TEMPLATES"]["components/bs-alert"] = Ember.Handlebars.template(function anonymous(Handlebars,depth0,helpers,partials,data) {
  this.compilerInfo = [4,'>= 1.0.0'];
  helpers = this.merge(helpers, Ember.Handlebars.helpers); data = data || {};
    var buffer = '', stack1, hashTypes, hashContexts, self=this, escapeExpression=this.escapeExpression;
  
  function program1(depth0,data) {
    
    
    data.buffer.push("\n    <a class=\"close\" data-dismiss=\"alert\" href=\"#\">&times;</a>\n");
    }
  
    hashTypes = {};
    hashContexts = {};
    stack1 = helpers['if'].call(depth0, "dismiss", {hash:{},inverse:self.noop,fn:self.program(1, program1, data),contexts:[depth0],types:["ID"],hashContexts:hashContexts,hashTypes:hashTypes,data:data});
    if(stack1 || stack1 === 0) { data.buffer.push(stack1); }
    data.buffer.push("\n");
    hashTypes = {};
    hashContexts = {};
    data.buffer.push(escapeExpression(helpers._triageMustache.call(depth0, "message", {hash:{},contexts:[depth0],types:["ID"],hashContexts:hashContexts,hashTypes:hashTypes,data:data})));
    hashTypes = {};
    hashContexts = {};
    data.buffer.push(escapeExpression(helpers._triageMustache.call(depth0, "yield", {hash:{},contexts:[depth0],types:["ID"],hashContexts:hashContexts,hashTypes:hashTypes,data:data})));
    return buffer;
    
  });