<%= board_breadcrumb(@message) %>

<div class="contextual">
    <%= content_tag('span', watcher_link(@topic, User.current), :id => 'watcher') %>
    <% voted = User.current.voted_for?(@topic) %>
    <%= link_to(
          voted ? l(:button_questions_unvote) : l(:button_questions_vote),
          {:controller => 'questions', :action => 'vote', :id => @topic},
          :class => 'icon ' + (voted ? 'icon-vote' : 'icon-unvote')
        ) if User.current.allowed_to?(:vote_messages, @project) %>

    <%= link_to(
          l(:button_quote),
          {:action => 'quote', :id => @topic},
          :remote => true,
          :method => 'get',
          :class => 'icon icon-comment',
          :remote => true) if !@topic.locked? && authorize_for('messages', 'reply') %>
    <%= link_to(
          l(:button_edit),
          {:action => 'edit', :id => @topic},
          :class => 'icon icon-edit'
        ) if @message.editable_by?(User.current) %>
    <%= link_to(
          l(:button_delete),
          {:action => 'destroy', :id => @topic},
          :method => :post,
          :data => {:confirm => l(:text_are_you_sure)},
          :class => 'icon icon-del'
         ) if @message.destroyable_by?(User.current) %>
</div>

<div class="message details">
    <h2><%=h @topic.subject %></h2>
    <%= avatar(@topic.author, :size => "32") %>
    <p class="author"><%= link_to_user @topic.author %><br>
       <%= l(:label_questions_added_time, :value => time_tag(@topic.created_on)).html_safe %>
    </p>
    <div class="wiki">
      <%= textilizable(@topic, :content) %>
    </div>
    <%= link_to_attachments @topic, :author => false %>

</div>
<br />

<% unless @replies.empty? %>
<h3 class="comments"><%= l(:label_reply_plural) %> (<%= @reply_count %>)</h3>
<% @replies.each do |message| %>
  <div class="message reply" id="<%= "message-#{message.id}" %>">
    <div class="contextual">
    <% liked = User.current.voted_for?(message) %>
    <%= link_to(
          message.count_votes_up > 0 ? "(#{message.count_votes_up})" : "",
          {:controller => 'questions', :action => 'vote', :id => message},
          :class => 'vote icon ' + (liked ? 'icon-vote' : 'icon-unvote')
        ) if true || User.current.allowed_to?(:vote_messages, @project) %>
      <%= link_to(
            image_tag('comment.png'),
            {:action => 'quote', :id => message},
            :remote => true,
            :method => 'get',
            :title => l(:button_quote)) if !@topic.locked? && authorize_for('messages', 'reply') %>
      <%= link_to(
            image_tag('edit.png'),
            {:action => 'edit', :id => message},
            :title => l(:button_edit)
          ) if message.editable_by?(User.current) %>
      <%= link_to(
            image_tag('delete.png'),
            {:action => 'destroy', :id => message},
            :method => :post,
            :data => {:confirm => l(:text_are_you_sure)},
            :title => l(:button_delete)
          ) if message.destroyable_by?(User.current) %>
    </div>
  <% if Setting.gravatar_enabled?  %>
  <div class="avatar">
     <%= message_avatar = avatar(message.author, :size => "32") %>
  </div>
  <% end %>
  <div class="reply-details <%= 'use-avatar' unless message_avatar.blank? %>">
    <h4 class="author"><%= authoring message.created_on, message.author %></h4>
    <div class="wiki"><%= textilizable message, :content, :attachments => message.attachments %></div>
    <%= link_to_attachments message, :author => false %>
  </div>
  </div>
<% end %>
<p class="pagination"><%= pagination_links_full @reply_pages, @reply_count, :per_page_links => false %></p>
<% end %>

<% if !@topic.locked? && authorize_for('messages', 'reply') %>
<p><%= toggle_link l(:button_reply), "reply", :focus => 'message_content' %></p>
<div id="reply" style="display:none;">
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
  <%= render :partial => 'form', :locals => {:f => f, :replying => true} %>
  <%= submit_tag l(:button_submit) %>
  <%= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board}, 'message-form') %>
<% end %>
<div id="preview" class="wiki"></div>
</div>
<% end %>


<% content_for :sidebar do %>
  <h3><%= l(:label_questions_message) %></h3>
  <ul class="question-meta">
    <li class="votes icon icon-vote">
      <%= l(:label_questions_votes, :count => @topic.count_votes_up - @topic.count_votes_down ) %>
    </li>
    <li class="views icon icon-view">
      <%= l(:label_questions_views, :count => @topic.view_count ) %>
    </li>
    <% unless @topic.tags.blank? %>
    <li class="tags icon icon-tag">
      <%=
        @topic.tags.collect do |tag|
          link_to tag, {:controller => "questions", :action => "topics", :project_id => @project, :tag => tag.name}
        end.join(', ').html_safe
      %>
    </li>
    <% end %>
  </ul>

  <h3><%= l(:label_questions_related_messages) %></h3>
  <ul class="related-topics">
    <%#  Board.all.map(&:topics).flatten.first(5).each do |topic| %>
    <% tokens = @topic.subject.strip.scan(%r{((\s|^)"[\s\w]+"(\s|$)|\S+)}).collect {|m| m.first.gsub(%r{(^\s*"\s*|\s*"\s*$)}, '')} || "" %>
    <% if ActiveRecord::VERSION::MAJOR >= 4 %>
      <% related_topics = Message.where(tokens.map{ |t| "subject LIKE '%#{t}%'" }.join(' OR ')).to_a.compact if tokens %>
    <% else %>
      <% related_topics = Message.search(tokens, @project, :limit => 5)[0].select{|m| m != @topic && m.parent_id == nil }.compact if tokens %>
    <% end %>
    <% related_topics.each do |topic| %>
    <li class="related-topic">
      <%= link_to h(topic.subject), { :controller => 'messages', :action => 'show', :board_id => topic.board, :id => topic } %>
    </li>
    <% end if related_topics %>
  </ul>


<% end %>

<% html_title @topic.subject %>
