class Comment < ActiveRecord::Base
  attr_accessible :text,:anonym, :intern, :hidden, :commentable_id, :commentable_type
  # commentable depth, official, intern, anonym
  acts_as_votable
  acts_as_nested_set  :scope => [:commentable_id, :commentable_type]
  belongs_to :commentable, :polymorphic=> true
  belongs_to :user
  validate :text, :presence=>true
  validate :user, :presence=>true
  validate :commentable, :presence=>true
  include IsCommentable
NUM = {"Beispiel"=> 2, "Survey::Question"=> 7}   
  def parent_object
    if self.root?
      self.commentable
    else
      self.parent
    end
  end
  def self.build_for(set_commentable, user, text,attr={})
    c = new
    raise "Tried to build comment for non commentable" unless set_commentable.try(:is_commentable?)
      c.user=user
      c.text=text
      c.assign_attributes(attr)
    
    unless set_commentable.class.to_s == "Comment"
      c.commentable=set_commentable
      c.save    
    else
      
      c.commentable=set_commentable.commentable
      c.save
      c.move_to_child_of(set_commentable)
    end
    c
  end
  def thumb_url
    t_url= user.fetprofile.picture.thumb.url unless user.nil? or user.fetprofile.nil?
    t_url
  end
  def self.wrapid_for(c)
    "comments_" + c.class.to_s.gsub(":","_") + "_" + c.id.to_s
  end

  def self.switchshowid_for(c)
    "show_comments_" + c.class.to_s.gsub(":","_") + "_" + c.id.to_s
  end

  def formid
    "comment_form_" + commentable_type.gsub(":","_") + "_" + commentable_id.to_s 
  end
  def self.formid_for(c)
    "comment_form_" + c.class.to_s.gsub(":","_") + "_" + c.id.to_s 
  end
end
