FreebaseTorify = require('./providers/FreebaseTorify')
async = require 'async'

Array.prototype.getUnique = () ->
   u = {}
   a = [];
   for i in [0...this.length]
      if u.hasOwnProperty(this[i])
         continue
      a.push(this[i])
      u[this[i]] = 1
   return a

class AllSearch extends ProviderBase
	constructor: (@data) ->

	search: (args, callback) ->
		additonal = 
			search: []

		async.concat [FreebaseTorify], (Provider, next) =>
			provider = new Provider @data

			provider.search(args, 
				(E, add) =>
					next E, add.search
				)
		,(E, search) =>
			additonal['search'] = search.getUnique()
			callback E, additonal
				

module.exports = AllSearch