YUI.add("presenters:modal", function (Y) {

  Y.ModalPresenter = Y.Base.create("ModalPresenter", Y.Presenter, [], {

    initializer: function (options) {
      var content = "",
          classNames = options.classNames || "";

      this.modalNode = Y.Node.create("<div class='modal'><div class='inner_modal " + classNames + "'></div></div>");
      
      if (options.tmpl) {
        content = this.ejs(options.tmpl, options.data);
      }
      else if (options.content) {
        content = options.content;
      }

      this.modalNode.one(".inner_modal").setContent(content);

      this.modalNode.on("click", this.hide, this);
    },

    show: function () {
      Y.all(".modal").remove();
      Y.one("body").append(this.modalNode);
      this.modalNode.show("fadeIn");
    },

    hide: function () {
      var P = this;
      this.modalNode.show("fadeOut", function () {
        P.modalNode.remove();
      });
    }

  }, {ATTRS: {}});

}, "1.0.0", {requires: ["base", "node", "transition", "presenters:presenter"]});


