var SearchListFilter = {};
SearchListFilter.CurrentModes = new Array();
SearchListFilter.ListIDs = new Array();
SearchListFilter._inProgress = false;

SearchListFilter.ToggleMode = function(div, blockName){
	if(SearchListFilter._inProgress)
		return;
	SearchListFilter._inProgress = true;
	var list = document.getElementById(SearchListFilter.ListIDs[blockName]);
	var selectedValues = list.GetSelectedValues();
	var HttpRequest = new CHttpRequest();
	HttpRequest.QueryString = "AjaxType=HTML&RequestFile=Blocks."+ blockName +"&MethodName=XToggleMode";
	HttpRequest.AssyncCall = true;
	HttpRequest.Additional = {Div:div, List:list, BlockName:blockName};
	HttpRequest.AddProperty("Arguments[Mode]", SearchListFilter.CurrentModes[blockName] == "list" ? "tree" : "list");
	HttpRequest.AddProperty("Arguments[ListID]", list.id);
	HttpRequest.AddProperty("Arguments[ListWidth]", list.GetWidth());
	HttpRequest.AddProperty("Arguments[SelectedValues]", selectedValues.join(","));
	HttpRequest.onReturn = "SearchListFilter.ToggleMode_Callback";
	var Response = HttpRequest.Send();

	div.innerHTML = "loading...";
}

SearchListFilter.ToggleMode_Callback = function(httpRequest, Additional){
	SearchListFilter.CurrentModes[Additional.BlockName] = SearchListFilter.CurrentModes[Additional.BlockName] == "list" ? "tree" : "list";
	Additional.Div.innerHTML = SearchListFilter.CurrentModes[Additional.BlockName] == "list" ? "tree" : "list";
	Ajax.LoadContent(Additional.List.parentNode, httpRequest.responseText);
	SearchListFilter._inProgress = false;
}
