diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 48d6aac..2715d52 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -8,6 +8,7 @@
//= require jquery_ujs
//= require vendor/underscore-min
//= require vendor/backbone-min
+//= require handlebars.runtime
//= require backbone/ascii_io
//= require player/player
//= require_tree .
diff --git a/app/assets/javascripts/backbone/ascii_io.js.coffee b/app/assets/javascripts/backbone/ascii_io.js.coffee
index 5ff7d73..ab259c8 100644
--- a/app/assets/javascripts/backbone/ascii_io.js.coffee
+++ b/app/assets/javascripts/backbone/ascii_io.js.coffee
@@ -8,4 +8,4 @@ window.AsciiIo =
Models: {}
Collections: {}
Routers: {}
- Views: {}
\ No newline at end of file
+ Views: {}
diff --git a/app/assets/javascripts/backbone/models/comment.js.coffee b/app/assets/javascripts/backbone/models/comment.js.coffee
new file mode 100644
index 0000000..f15a1cd
--- /dev/null
+++ b/app/assets/javascripts/backbone/models/comment.js.coffee
@@ -0,0 +1,6 @@
+class AsciiIo.Models.Comment extends Backbone.Model
+
+class AsciiIo.Collections.Comments extends Backbone.Collection
+ model: AsciiIo.Models.Comment
+
+ url: '/api/asciicasts/1/comments.json'
diff --git a/app/assets/javascripts/backbone/templates/comments/index.jst.hbs b/app/assets/javascripts/backbone/templates/comments/index.jst.hbs
new file mode 100644
index 0000000..7936076
--- /dev/null
+++ b/app/assets/javascripts/backbone/templates/comments/index.jst.hbs
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/assets/javascripts/backbone/templates/comments/show.jst.hbs b/app/assets/javascripts/backbone/templates/comments/show.jst.hbs
new file mode 100644
index 0000000..b8df7fa
--- /dev/null
+++ b/app/assets/javascripts/backbone/templates/comments/show.jst.hbs
@@ -0,0 +1,13 @@
+
+
![{{user.nickanme}}]({{user.avatar_url}})
+
+
+
+
+ {{user.nickname}}
+ {{created}}
+
+
{{body}}
+
+
+
diff --git a/app/assets/javascripts/backbone/views/comments/comment_entry.js.coffee b/app/assets/javascripts/backbone/views/comments/comment_entry.js.coffee
new file mode 100644
index 0000000..fddaa03
--- /dev/null
+++ b/app/assets/javascripts/backbone/views/comments/comment_entry.js.coffee
@@ -0,0 +1,10 @@
+class AsciiIo.Views.CommentEntry extends Backbone.View
+
+ template: JST['backbone/templates/comments/show']
+ tagName: 'li'
+ className: 'comment'
+
+ render: ->
+ $(@el).html(@template(@model.toJSON()))
+
+ this
diff --git a/app/assets/javascripts/backbone/views/comments/comments_index.js.coffee b/app/assets/javascripts/backbone/views/comments/comments_index.js.coffee
new file mode 100644
index 0000000..c038290
--- /dev/null
+++ b/app/assets/javascripts/backbone/views/comments/comments_index.js.coffee
@@ -0,0 +1,35 @@
+class AsciiIo.Views.CommentsIndex extends Backbone.View
+
+ el: '#comments'
+ template: JST['backbone/templates/comments/index']
+
+ events:
+ 'submit #new-comment': 'createComment'
+
+ initialize: ->
+ @collection.on('reset', @render, this)
+ @collection.on('add', @render, this)
+
+ render: ->
+ $(@el).html @template
+ $comments = this.$('.comments')
+
+ @collection.each (comment) ->
+ view = new AsciiIo.Views.CommentEntry({ model: comment, collection: @collection})
+ $comments.append view.render().el
+
+ this
+
+ createComment: (event) ->
+ event.preventDefault()
+ attrs = body: $('#comment-body').val()
+ @collection.create attrs,
+ wait: true
+ success: -> $('#new-comment')[0].reset()
+ error: @handleError
+
+ handleError: (comment, response) ->
+ if response.status == 422
+ errors = $.parseJSON(response.responseText).errors
+ for attribute, messages of errors
+ alert "#{attribute} #{message}" for message in messages
diff --git a/app/assets/javascripts/player/namespace.js b/app/assets/javascripts/player/namespace.js
index 8c69ffb..160df36 100644
--- a/app/assets/javascripts/player/namespace.js
+++ b/app/assets/javascripts/player/namespace.js
@@ -1 +1,3 @@
-window.AsciiIo = {};
+if (!window.AsciiIo){
+ window.AsciiIo = {};
+}
diff --git a/app/assets/stylesheets/comments.css.scss b/app/assets/stylesheets/comments.css.scss
new file mode 100644
index 0000000..d4e6e89
--- /dev/null
+++ b/app/assets/stylesheets/comments.css.scss
@@ -0,0 +1,38 @@
+#comments { }
+.comments { }
+
+#new-comment {
+ padding: 10px;
+
+ textarea{
+ width: 350px;
+ height: 60px;
+ }
+}
+
+li.comment {
+ list-style-type: none;
+ margin: 20px 10px;
+
+ width: 450px;
+ .left {
+ float: left;
+ width: 100px;
+ }
+
+ .right {
+ float:right;
+ width: 350px;
+ }
+
+ .when {
+ color: #969696;
+ }
+
+ .user-name{
+ color: #2786C2;
+ }
+ .body {
+ padding: 20px 0;
+ }
+}
diff --git a/app/views/asciicasts/show.html.erb b/app/views/asciicasts/show.html.erb
index 2ca69ea..5a1d201 100644
--- a/app/views/asciicasts/show.html.erb
+++ b/app/views/asciicasts/show.html.erb
@@ -14,3 +14,21 @@
<%= player_script(@asciicast) %>
+
+Comments
+
+
+
+<%= player_data(@asciicast) %>
+
+