class AttributeValue
  
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::MultiParameterAttributes
  
  field :key
  
  belongs_to :attribute_field
  belongs_to :user

  before_save :check_key

  NO_MULTI_TAG = ["select","date","radio_button","checkbox","date_durnation"]

  def check_key
    self.key = attribute_field.key
  end

  def method_missing(*field)
    if field.size < 1
      self[field[0]]  
    else
      self[(field[0].to_s.delete "=")] = field[1]
    end
  end
  
  def get_value_by_locale(locale)
    case self.attribute_field.markup
      when "text_field"
        self.attribute_field.locale ? self[locale]  : self[:value]
      when "select"
        self.attribute_field.markup_value[self[:value]][locale.to_s] || NoData
      when "email"
        self[:value]
      when "date"
        Date.new(self[:value]["(1i)"].to_i,self[:value]["(2i)"].to_i,self[:value]["(3i)"].to_i)
      when "addr"
        self[:value]
      else
        self.attribute_field.locale ? self[locale]  : self[:value]
    end
  end

  def get_values
    if self.attribute_field.locale && !(NO_MULTI_TAG.include? self.attribute_field.markup) 
      return Hash[VALID_LOCALES.collect{|lang|  [lang,self[lang.to_sym]]}]
    else
        return self[:value]  
    end
  end

end
