# File vendor/plugins/sortable_column_headers/lib/sortable_column_headers.rb, line 126
  def sortable_order(sortable_name, *args)
    if args.size >= 1
      if args.first.kind_of?(Class)
        model = args.first
        if args.size >= 2
          field = args[1].to_s
          data_name = model.table_name+'.'+field
        end
        
      # BEGIN - The "new" way ...
      elsif args.first.kind_of?(Hash)
        
        if !args.first[:sort_direction].blank?
          default_sort_direction = args.first[:sort_direction].to_s.strip.upcase
        end
        
        if !args.first[:model].blank? && args.first[:model].kind_of?(Class)
          model = args.first[:model]
          if !args.first[:field].blank?
            field = args.first[:field].to_s
            data_name = model.table_name+'.'+field
          end
        elsif !args.first[:field].blank? || !args.first[:alias].blank?
          if !args.first[:field].blank?
            field = args.first[:field].to_s
            data_name = field
          end
          if !args.first[:alias].blank?
            col_alias = args.first[:alias].to_s
            col_alias.chop! if (col_alias[-1].chr == '!')
            data_name = col_alias
          end
        else
          raise sch_err_msg
        end
      # END - The "new" way
      
      else
        field = args.first.to_s
        data_name = field
      end
    else
      #raise sch_err_msg
      data_name = 'id'
    end

    process_sort_param(sortable_name)
    sorted_key = assemble_sort_key(sortable_name)
    
    unless session[:sortable_column_headers].nil? || session[:sortable_column_headers][sorted_key].nil?
      return session[:sortable_column_headers][sorted_key].join(',') if session[:sortable_column_headers][sorted_key].size > 0
    end
    # If all went well, then we should have returned by now.  Otherwise, here's a default value ...
    default_sort_direction ||= 'ASC'
    return data_name + ' ' + default_sort_direction
  end