class AdBanner
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::MultiParameterAttributes
  include OrbitCoreLib::ObjectAuthable
  
  field :title
  field :transition_msec,type: Integer
  field :ad_fx  #TODO Design should explain

  before_save :save_or_destroy
  validates_uniqueness_of :title
  validates :title , :length => { :minimum => 2 }
  has_many :ad_images , dependent: :delete
  
  FX_TYPES = ["blindX","blindY","blindZ","cover","curtainX","curtainY","fade","fadeZoom","growX","growY","scrollUp","scrollDown","scrollLeft","scrollRight","scrollHorz","scrollVert","shuffle","slideX","slideY","toss","turnUp","turnDown","turnLeft","turnRight","uncover","wipe","zoom"]
attr_writer :transition_sec

  AfterObjectAuthUrl = '/panel/page_content/back_end/page_contexts'
  APP_NAME = 'ad_banners'
  ObjectAuthTitlesOptions = %W{edit}
  
  def pp_object
    title
  end

  def transition_sec
    self.transition_msec/1000 rescue nil
  end
  
  def transition_sec=(sec)
    self.transition_msec = sec.to_i*1000
  end
  
  def preview_clone
    preview_banner = self.clone
    preview_banner.ad_images = self.ad_images
    preview_banner
  end
  # def new_ad_images(*attrs)
  #   debugger
  #   a=1
  #    attrs[0].each  do |attr|   #Loop by JSs,Themes,Imgs
  #      unless attr[:file].nil?
  #        self.ad_images << AdImage.new(attr)        
  #      end
  #     end
  # end
  
  # def existing_ad_images=(*attrs)
  #    attrs[0].each  do |attr|   #Loop by JSs,Themes,Imgs
  #        ad_image = self.ad_images.find attr[0]
  #        ad_image.update_attributes(attr[1])
  #   end
  # end
  
  def save_or_destroy
    self.ad_images.each do |ad_image|
      if ad_image.to_save?
        ad_image.save
      end
      if ad_image.to_destroy?
        ad_image.destroy
      end
    end
  end
end