var searchDataSource;
	
function initSearch()
{
	searchDataSource = new YAHOO.util.DataSource("/action.php?");
	searchDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
	searchDataSource.connMethodPost = true;
	searchDataSource.connXhrMode = "cancelStaleRequests";
	searchDataSource.responseSchema = 
	{
		resultsList: "results",
		fields:
		[
			{ key: "key" }
		]
	};
	
	var search_local_city_ac = new YAHOO.widget.AutoComplete("search_local_city","search_local_city_ac",searchDataSource,{minQueryLength: 3, typeAhead: false});
	search_local_city_ac.generateRequest = function(query)
	{
		var parameters = {
			action: "autocomplete_city",
			query: query
		}
		return toQueryString(parameters);
	}
	
	var search_national_city_ac = new YAHOO.widget.AutoComplete("search_national_city","search_national_city_ac",searchDataSource,{minQueryLength: 3, typeAhead: false});
	search_national_city_ac.generateRequest = function(query)
	{
		var parameters = {
			action: "autocomplete_city",
			query: query
		}
		return toQueryString(parameters);
	}
	
	var search_local_trade_ac = new YAHOO.widget.AutoComplete("search_local_trade","search_local_trade_ac",searchDataSource,{minQueryLength: 3, typeAhead: false});
	search_local_trade_ac.generateRequest = function(query)
	{
		var parameters = {
			action: "autocomplete_trade",
			query: query
		}
		return toQueryString(parameters);
	}
	
	var search_national_trade_ac = new YAHOO.widget.AutoComplete("search_national_trade","search_national_trade_ac",searchDataSource,{minQueryLength: 3, typeAhead: true});
	search_national_trade_ac.generateRequest = function(query)
	{
		var parameters = {
			action: "autocomplete_trade",
			query: query
		}
		return toQueryString(parameters);
	}
}
	
function switchTab(id)
{
	var tabs = ["local", "national", "wait"];
	for(var i=0; i < tabs.length; i++)
		if(tabs[i] == id)
			document.getElementById("tab_search_"+tabs[i]).style.display = "";
		else
			document.getElementById("tab_search_"+tabs[i]).style.display = "none"
}

function search(id)
{
	var parameters = { action: "search" };
	var prefix;
	switch(id)
	{
		case "local":
			prefix = "search_local_";
			break;
		case "national":
			prefix = "search_national_";
			break;
		default:
			break;
	}
	
	var fields = ["name", "address", "zipcode", "city", "trade", "trades_id", "arrondissement", "arrondissements_id", "province", "provinces_id", "region", "regions_id"];
	for(var i=0; i < fields.length; i++)
		if(document.getElementById(prefix+fields[i]))
			parameters[fields[i]] = getFormElementValue(prefix+fields[i]);
	
	var callback = 
	{
		success: function(request, response, payload)
		{
			document.location.href="/search/"+response.results[0]["key"];
		},
		failure: function(request, response, payload) 
		{ 
			switchTab("local");
			alert("search failed");
		},
		scope: this
	};
	
	searchDataSource.sendRequest(toQueryString(parameters),callback);
	switchTab("wait")
}

function setSearchCity(city)
{
	YAHOO.util.Dom.get("search_local_city").value = city;
	YAHOO.util.Dom.get("search_national_city").value = city;
}

