# File lib/vcard/vcard.rb, line 719
    def value(name, type = nil)
      fields = enum_by_name(name).find_all { |f| type == nil || f.type?(type) }

      valued = fields.select { |f| f.value != "" }
      if valued.first
        fields = valued
      end

      pref = fields.select { |f| f.pref? }

      if pref.first
        fields = pref
      end

      if fields.first
        line = begin
                 Line.decode(@@decode, self, fields.first)
               rescue ::Vcard::InvalidEncodingError
               end

        if line
          return line.value
        end
      end

      nil
    end