## The contents of this file are subject to the Common Public Attribution
## License Version 1.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://code.reddit.com/LICENSE. The License is based on the Mozilla Public
## License Version 1.1, but Sections 14 and 15 have been added to cover use of
## software over a computer network and provide for limited attribution for the
## Original Developer. In addition, Exhibit A has been modified to be
## consistent with Exhibit B.
##
## Software distributed under the License is distributed on an "AS IS" basis,
## WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
## the specific language governing rights and limitations under the License.
##
## The Original Code is reddit.
##
## The Original Developer is the Initial Developer.  The Initial Developer of
## the Original Code is reddit Inc.
##
## All portions of the code written by reddit are Copyright (c) 2006-2012
## reddit Inc. All Rights Reserved.
###############################################################################

<%! 
   from r2.lib.template_helpers import add_sr
   from r2.lib.strings import strings
   from r2.lib.pages.things import BanButtons
%>

<%namespace file="utils.html" import="plain_link" />

${self.RenderPrintable()}

<%def name="admintagline()">
  %if thing.show_spam:
      <li><b>[
        %if c.user_is_admin:
          ${"auto" if thing.autobanned else ""}${strings.banned} 
          ${("by %s" % thing.banner) if thing.banner else ""}
        %elif thing.moderator_banned and thing.banner:
          ${strings.banned_by % thing.banner}
        %else:
          ${strings.banned}
        %endif
      ]</li></b>
  %endif
</%def>

<%def name="thing_css_class(what)">thing id-${what._fullname}</%def>

<%def name="thing_data_attributes(what)">data-fullname="${what._fullname}"</%def>

<%def name="RenderPrintable()">
<% cls = thing.lookups[0].__class__.__name__.lower() %>
<%
   if hasattr(thing, 'render_css_class'):
      cls = thing.render_css_class
   elif hasattr(thing, 'render_class'):
      cls = thing.render_class.__name__.lower()
   else:
      cls = thing.lookups[0].__class__.__name__.lower()
   
   if getattr(thing, "is_self", False):
      selflink = "self"
   else:
      selflink = ""

   if thing.show_spam:
     rowclass = thing.rowstyle + " spam"
     if thing.show_spam == "author":
       rowclass += " banned-user"
   elif thing.show_reports:
     rowclass = thing.rowstyle + " reported"
   else:
     rowclass = thing.rowstyle
   if hasattr(thing, "saved") and thing.saved:
     rowclass += " saved"
   if hasattr(thing, "hidden") and thing.hidden:
     rowclass += " hidden"
 %>
<div class="${self.thing_css_class(thing)} ${rowclass} ${unsafe(cls)} ${selflink}"
    ${thing.display} onclick="click_thing(this)"
    ${unsafe(self.thing_data_attributes(thing))}>
  <p class="parent">
    ${self.ParentDiv()}
  </p>
  ${self.numcol()}
  <%
     like_cls = "unvoted"
     if getattr(thing, "likes", None):
         like_cls = "likes"
     elif getattr(thing, "likes", None) is False:
         like_cls = "dislikes"
   %>
  ${self.midcol(cls = like_cls)}
  <div class="entry ${like_cls}">
    ${self.entry()}
  </div>
  ${self.Child()}
  <div class="clearleft"><!--IE6sux--></div>
</div>
<div class="clearleft"><!--IE6sux--></div>
</%def>

<%def name="buttons(ban=True)">
  ${BanButtons(thing)}
</%def>

<%def name="ParentDiv()">
</%def>

<%def name="numcol()">
</%def>

<%def name="entry()">
</%def>

<%def name="Child(display=True)">
<div class="child" ${(not display and "style='display:none'" or "")}>
  ${thing.childlisting}
</div>
</%def>

<%def name="arrow(this, dir, mod)">
<% 
   _type = "up" if dir > 0 else "down"
   _class = _type + ("mod" if mod else "")
   fullname = this._fullname
%>
  <div class="arrow ${_class} login-required"
       %if getattr(thing, "votable", True):
         onclick="$(this).vote('${thing.votehash}', null, event)"
       %else:
         onclick="$(this).show_unvotable_message()"
       %endif
       >
  </div>
</%def>

<%def name="score(this, likes=None, scores = None, tag='span')" >
  <%
     if scores is None:
        scores = this.display_score
   %>
  %for cls, score in zip(["dislikes", "unvoted", "likes"], scores):
    <${tag} class="score ${cls}">
      ${score}
    </${tag}>
  %endfor
</%def>


<%def name="midcol(display=True, cls = '')">
  <div class="midcol ${cls}" 
       ${not display and "style='display:none'" or ''}>
    ${self.arrow(thing, 1, thing.likes)}
    ${self.arrow(thing, 0, thing.likes == False)}
  </div>
</%def>
