window.addEvent("domready", InitSearch);

var cookieData = new Hash();
var cookieValues = null;
var catMapping = new Array();
var intervalIds = new Hash();
var locationData = null;
var isLocating = false;
var isClearing = false;


/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function AjaxRequest(methodName, params)
{
    var myRequest = new Request({ method: "post", url: appDirectory + "/ajax/" + methodName + ".aspx", onSuccess: function(r) { eval(methodName + "CallBack(r)") } });
	myRequest.send(Hash.toQueryString(params));
}
/*************************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function InitSearch()
{
	// initialisation de la carte flash si elle existe
	var searchMap = $("searchMap");
	if (searchMap != null)
	{
		var mapWidth = searchMap.getStyle('width').replace("px", "");
		var mapHeight = searchMap.getStyle('height').replace("px", "");
			
		var flashvars = {};
		flashvars.wmode = "transparent";

		swfobject.embedSWF("/swf/searchmap.swf", "searchMap", mapWidth, mapHeight, "9.0.0", "/swf/core/expressInstall.swf", flashvars);
	}

	// initialisation du champ de recherche (autocomplete) de communes
	if ($("locationSearch") != null)
	{
	    new Autocompleter.Request.HTML($("locationSearch"), '/ajax/GetLocationData.aspx',
	    {
		    minLength: 2,
		    delay: 300,
		    width: 200,
		    postVar: "v",		    
    		
		    'onSelected': function(choice)
		    {
			    var item = choice.getFirst();		
			    locationData = JSON.decode(item.getAttribute("rel"));
			    UpdateSearch();
		    },
		    'onExactMatch': function(choice)
		    {
			    var item = choice.getFirst();		
			    locationData = JSON.decode(item.getAttribute("rel"));
			    UpdateSearch();
			    document.location.reload();
		    },		
		    'injectChoice': function(choice)
		    {
			    var item = choice.getFirst();
			    var itemData = JSON.decode(item.getAttribute("rel"));
    			
			    // the first element in this <li> is the <span> with the text
			    var value = item.innerHTML;
    			
			    // inputValue saves value of the element for later selection
			    choice.inputValue = value;
    			
			    if ($defined(itemData.z))
			    {
				    var code = " (" + itemData.z.substring(0, 2) + ")";
				    item.set("html", item.innerHTML + code);	        
			    }
    			
			    // overrides the html with the marked query value (wrapped in a <span>)
			    item.set('html', this.markQueryValue(item.innerHTML));
			    // add the mouse events to the <li> element
			    this.addChoiceEvents(choice);
		    }
	    });
    }

	// recuperation des valeurs contenues dans l'eventuel cookie de recherche
	if (Cookie.read("MIXADSEARCH") != null)
	{
		cookieValues = Cookie.read("MIXADSEARCH").hexadecode().split("@");
	}

	// affectation des liens de suppressions aux filtres deja actifs
	// recuperation et stockage dans notre hash des valeurs du cookie de recherche
	var activeFilterList = $$("ul[id=mxdActiveFilters] li a");
	for (var i = 0; i < activeFilterList.length; i++)
	{
		if (activeFilterList[i].getAttribute("rel") != null)
		{
			var activeLink = activeFilterList[i];
			//var filterField = activeLink.getAttribute("rel").replace("mxdFilter", "").toLowerCase();

			var filterField = activeLink.getAttribute("rel").toLowerCase();	
			// cas des criteres de filtres liés a un meme champ
			// cf filtre auto_options
			if (filterField.indexOf("[") != -1)
			{
				filterField = filterField.substring(0, filterField.indexOf("["));
			}

			cookieValue = GetCookieFilterValue(filterField);
			cookieData.set(filterField, cookieValue);

			if (activeLink.getAttribute("href") == "/")
			{
				activeLink.setAttribute("href", RESULT_URL);
			}
			activeLink.addEvent("click", RemoveSearchFilter);
		}
	}

	 
	var userId = GetCookieFilterValue("num_usager");
	if (userId != "")
	{
		cookieData.set("num_usager", userId);
	}

	// recuperation du mode de recherche (rapide ou avancé)
	var mode = GetCookieFilterValue("search_mode");
	if (mode != "")
	{
		cookieData.set("search_mode", mode);
	}

	// recuperation du mode de recherche (rapide ou avancé)
	var display = GetCookieFilterValue("search_display");
	if (display != "")
	{
		cookieData.set("search_display", display);
	}


	// recuperation d'eventuels mots-cle
	var keywords = GetCookieFilterValue("keywords");
	if (keywords != "")
	{
		cookieData.set("keywords", keywords);
	}


	// on traite d'eventuels elements rattachés a un formulaire de filtres
	ProcessFilterFormItems();


	// affectation des evenements de clic sur les liens de filtres et sous-filtres (si presents)
	var filterList = $$("ul[class^=mxdFilter]");
	for (var i = 0; i < filterList.length; i++)
	{
		var filter = filterList[i];
		
		var filterField = filter.className.replace("mxdFilter", "").toLowerCase();
		filterField = filterField.replace(" multiple", "");

		var filterItems = filter.getChildren("li");

		for (var j = 0; j < filterItems.length; j++)
		{
			var item = filterItems[j];
			var link = item.getFirst();
			var subFilter = link.getNext("ul");	

			if (link != null)
			{
				var filterValue = link.getAttribute("rel");
				
				if (filterValue != null)
				{
					if (link.getAttribute("href") == "/")
					{
						link.setAttribute("href", RESULT_URL);
					}

					link.addEvent("click", SetSearchFilter.bindWithEvent(link, filterField));

					// prise en compte d'un ou plusieurs sous-filtre (si present)
					if (subFilter != null)
					{
						var filterSubItems = subFilter.getChildren("li");
						var parentFilterValue = "";
						for (var s = 0; s < filterSubItems.length; s++)
						{
							var subItem = filterSubItems[s];
							var subLink = subItem.getFirst();

							if (subLink != null)
							{
								var subFilterValue = subLink.getAttribute("rel");

								if (subFilterValue != "")
								{
									parentFilterValue += subFilterValue + ",";

									if (subLink.getAttribute("href") == "/")
									{
										subLink.setAttribute("href", RESULT_URL);
									}

									subLink.addEvent("click", SetSearchFilter.bindWithEvent(subLink, filterField));
								}
							}
						}
						if (parentFilterValue != "")
						{
							parentFilterValue = parentFilterValue.trunc(1);
							// on renseigne la valeur pour le filtre parent
							// (i.e. : une liste de categories 401,402,...)
							link.setAttribute("rel", parentFilterValue);
						}
					}
				}
			}
		}
	}


	// cas special pour la region
	var region = GetCookieFilterValue("region")
	if (region != "")
	{
		cookieData.set("region", region);
	}

	// s'il existe des filtres en libre saisie de type "intervalle" (i.e. : mini maxi)
	// => on rend ces champs "numerique" a la saisie et on sauvegarde leur nom
	var filterMinMax = $$("input[class^=mxdFilter]");
	var workList = new Hash();
	for (var i = 0; i < filterMinMax.length; i++)
	{
		var field = filterMinMax[i];
		var fieldName = field.getProperty("class").replace("mxdFilter", "").trunc(3);

		if (workList.has(fieldName))
		{
			intervalIds.set(fieldName);
		}
		else
		{
			workList.set(fieldName);
		}

		field.onkeypress = function(event) { CheckNumericData(event) };
	}

	// ajout d'un evenement sur d'eventuels liens, boutons pour valider la / les valeurs
	// d'un filtre donné (i.e. : utile pour les filtres en libre saisie)
	var validItems = $$("[class=mxdFilterValid]");
	for (var i = 0; i < validItems.length; i++)
	{
		var item = validItems[i]
		
		if (item.get("tag") == "a")
		{
			//item.setProperty("href", RESULT_URL);
		}
		
		item.addEvent("click", UpdateSearch);

		// permet d'affecter un nouvel evenement "return" sur tous
		// les elements de type input reliés au bouton de validation
		// => permet de valider son critere en pressant "return"
		var itemParents = item.getParents();
		for (var j = 0; j < itemParents.length; j++)
		{
			var inputList = itemParents[j].getElements('input');
		
			if (inputList.length > 0)
			{
				inputList.addEvent("keyup", function(e)
				{
					if (e.key == "enter")
					{
						e.stop();

						UpdateSearch();

						if (!isLocating) { document.location.reload(); }
					}
				});
				break;
			}
		}
	}

	// ajout d'un evenement sur le lien permettant de changer de mode
	// de recherche (filtres sous forme de formulaire rapide ou avancé)
	if ($("filter-mode"))
	{
		$("filter-mode").addEvent("click", ToggleFilterMode).setAttribute("href", "javascript:void(0)");
	}

	// ajout d'un evenement au formulaire de recherche
	if ($("filter-form"))
	{
		$("filter-form").addEvent("submit", CheckFilterForm);
	}

	// ajout d'un evenement sur le lien du type "clear all  filters"
	// => permet de supprimer tous les filtres de recherche
	if ($("clearSearchFilters"))
	{
		$("clearSearchFilters").addEvent("click", ClearSearchFilters);
		$("clearSearchFilters").setAttribute("href", RESULT_ROOT_URL);
	}
}
function ProcessFilterFormItems()
{
	/////////////////////////////////////////
	// listes deroulantes
	/////////////////////////////////////////
	$$(".mxdFilter.select").each(function(el)
	{
		var name = el.id.replace("filter", "");
		var id = name.toLowerCase();
		var isNumeric = el.hasClass("numeric");

		var selectedIndex

		var select = new Element("select", { "id": id, "name": id }).inject(el, "before");
		if (isNumeric) { select.addClass("numeric"); }

		var isMinMax = (id.right(3) == "min" || id.right(3) == "max");

		var cookieId = (isMinMax) ? id.trunc(3) : id;

		// prise en compte des champs de type intervalle (min & max)
		if (isMinMax) { intervalIds.set(cookieId); }

		// evenement onchange par defaut
		// => permet de modifier l'apparence de l'element selectionné
		select.addEvent("change", FilterSelectChange);

		// ajout d'un evenement pour la gestion des intervales min / max
		// permet de masquer / afficher les valeurs min <=> max
		if (isMinMax)
		{
			select.addEvent("change", MinMaxChange);
		}

		// si une fonction "onchange" est trouvee (du type OnChange...
		// => on affecte l'evenement a la liste deroulante
		var changeFunc = "OnChange" + name;
		if (IsSet(changeFunc)) { select.addEvent("change", eval(changeFunc)); }

		var defaultText = el.getElement("span").get("text");
		new Element("option", { "value": "" }).set("html", defaultText).inject(select);

		// recuperation de la valeur selectionnee (si elle existe) a partir de la querystring
		var selectedValue = filterList[id];
		if (!selectedValue) { selectedValue = GetQueryStringValue(id); }

		if (selectedValue == "")
		{
			var cookieValue = GetCookieFilterValue(cookieId);

			if (isMinMax)
			{
				var index = (id.right(3) == "min") ? 0 : 1;
				selectedValue = cookieValue.split("$")[index];
			}		
		}

		if (selectedValue != "")
		{
			selectedValue = unescape(selectedValue).replace(/\+/g, " ");
			selectedValue = selectedValue.toLowerCase();
		}

		var initFunc = "InitList" + name;
		if (IsSet(initFunc)) { eval(initFunc + "()"); }

		// creation de tous les elements de la liste deroulante
		var alreadySelected = false;
		el.getElements("li a").each(function(link)
		{
			// libelle de l'item
			var text = link.get("text");
			// valeur de l'item
			var value = link.getAttribute("rel");
			value = value.replace(/\+/g, " ");

			// cas special pour la categorie
			if (id == "libelle_categorie")
			{
				value = text.toLowerCase();
				catMapping[value] = link.getAttribute("rel");
			}

			// on insert l'element dans la liste
			// => soit a partir d'une methode custom (cf creation de la liste des marques)
			// => soit a partir d'un insert de l'element classique
			var newItemFunc = "NewItem" + name;
			if (IsSet(newItemFunc))
			{
				eval(newItemFunc + '("' + value + '","' + text + '")');
			}
			else
			{
				new Element("option", { "value": value }).set("html", text).inject(select);
			}

			var item = select.options[select.length-1];
			
			// gestion d'une eventuelle valeur selectionnee
			if (!alreadySelected && $defined(selectedValue) && value.toLowerCase() == selectedValue.toLowerCase())
			{
				alreadySelected = true;

				item.setAttribute("selected", "true");

				select.addClass("selected");
			}
		});

		// pour chrome qui pue de la fesse
		new Element("option", { "value": "" }).set("html", "dummy").inject(select).destroy();

		// on detruit la liste source
		el.destroy();
	});

	// initialisation des select de type "min" "max" avec la prise en compte des
	// valeurs courantes dans le masquage des valeurs dans chacune des listes
	// i.e. : pour le prix si max = 12000 le minimum ne peut pas aller au dela
	//        de cette valeur
	intervalIds.each(function(dummy, fieldName)
	{
		var fieldMin = $(fieldName + "min");
		var fieldMax = $(fieldName + "max");

		if (fieldMin && fieldMax)
		{
			if (fieldMin.value != "") fieldMin.fireEvent("change");
			if (fieldMax.value != "") fieldMax.fireEvent("change");
		}
	});

	/////////////////////////////////////////
	// cases a cocher
	/////////////////////////////////////////
	$$(".mxdFilter.check").each(function(el)
	{
		var name = el.id.replace("filter", "");
		var id = name.toLowerCase();
		var list = new Element("ul", { "class": "checkList" }).inject(el, "before");

		// champ caché pour stocker la valeur de la liste de checkboxes
		var checkField = new Element("input", { "type": "hidden", "id": id, "name": id }).inject(el, "before");

		// recuperation de la valeur selectionnee (si elle existe) a partir de la querystring
		var selectedValue = GetQueryStringValue(id);
		if (selectedValue != "")
		{
			selectedValue = "," + unescape(selectedValue) + ",";
			checkField.value = selectedValue;
		}

		var index = 0;
		el.getElements("li a").each(function(link)
		{
			// libelle de l'item
			var text = link.get("text");
			// valeur de l'item
			var value = link.getAttribute("rel");

			var checkId = id + "_" + index;

			var item = new Element("li").inject(list);
			var check = new Element("input", { "type": "checkbox", "id": checkId, "value": value }).inject(item);
			new Element("label", { "for": checkId }).set("text", text).inject(item);

			if (selectedValue.indexOf("," + value + ",") != -1)
			{
				check.setAttribute("checked", true);
			}

			check.addEvent("click", FilterCheckboxClick);

			index++;
		});

		// on detruit la liste source
		el.destroy();
	});
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function CheckFilterForm()
{
	var filterForm = $("filter-form");

	filterForm.getElements("select").each(function(el)
	{
		var isMinMax = (el.id.right(3) == "min" || el.id.right(3) == "max");

		if (SEO_PARAMS.indexOf(el.id) == -1 && !isMinMax) { cookieData.set(el.id, el.value); }
	});
	filterForm.getElements("input[type=hidden]").each(function(el)
	{
		if (SEO_PARAMS.indexOf(el.id) == -1) { cookieData.set(el.id, el.value); }
	});

	UpdateSearch();
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function FilterSelectChange()
{
	if (this.value != "")
	{
		this.addClass("selected");
	}
	else
	{
		this.removeClass("selected");
	}
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function FilterCheckboxClick()
{
	// id du champ (i.e. : generique2_0 => generique2)
	var fieldId = this.id.split("_")[0];

	// recuperation de la reference au container "checkList"
	var checkList = this.getParent("ul");

	// recuperation de la liste des valeurs cochées
	var valueList = "";
	checkList.getElements("input[type=checkbox").each(function(el)
	{
		if (el.checked) { valueList += el.value + ","; }
	});
	if (valueList != "") { valueList = valueList.trunc(1); }

	// on renseigne le champ caché utilisé dans le stockage des valeurs
	// de la checklist
	$(fieldId).value = valueList;
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function ToggleFilterMode()
{
	var mode = GetCookieFilterValue("search_mode");
	if (mode == "") { mode = "quick"; }

	var newMode = "";

	if (mode == "quick") { newMode = "advanced"; }
	if (mode == "advanced") { newMode = "quick"; }

	cookieData.set("search_mode", newMode)

	if ($("filter-form"))
	{
		CheckFilterForm();
		$("filter-form").submit();
	}
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function SetSearchDisplay(aDisplay)
{
	cookieData.set("search_display", aDisplay)

	UpdateSearch();

	document.location.href = RESULT_URL;
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function MinMaxChange()
{
	var fieldName = this.id.trunc(3);
	var isMin = (this.id.right(3) == "min");
	var targetId = (isMin) ? fieldName + "max" : fieldName + "min";

	if ($(targetId))
	{
		var min = (isMin) ? this.value : $(targetId).value;
		var max = (isMin) ? $(targetId).value : this.value;

		if (min == "") { min = 0; }
		if (max == "") { max = 0; }

		min = parseInt(min) + (1 && isMin);
		max = parseInt(max) - (1 && !isMin);

		$(targetId).getElements("option").each(function(el)
		{
			var condition = (parseInt(el.value) < min);
			if (!isMin) { condition = (parseInt(el.value) > max && max > 0); }
			
			el.setStyle("display", condition ? "none" : "block");
		});
	}
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function GetCookieFilterValue(aFilterField)
{
	var cookieValue = "";
	if (Cookie.read("MIXADSEARCH") != null)
	{
		if (Cookie.read("MIXADSEARCH").hexadecode().indexOf(aFilterField + "#") != -1)
		{
			for (var c = 0; c < cookieValues.length; c++)
			{
				var valueData = cookieValues[c].split("#");
				if (valueData[0] == aFilterField)
				{
					cookieValue = valueData[1];
					break;
				}
			}
		}
	}
	return cookieValue;
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function UpdateSearch()
{
	if (!isClearing)
	{
		var cookieValue = [];

		// gestion des champs de saisie libre de type "intervale" (prix, longueur, ...)
		intervalIds.each(function(dummy, fieldName)
		{
			var fieldMin = $$("input[class=mxdFilter" + fieldName + "Min]")[0];
			var fieldMax = $$("input[class=mxdFilter" + fieldName + "Max]")[0];

			if (!fieldMin && !fieldMax)
			{
				fieldMin = $(fieldName + "min");
				fieldMax = $(fieldName + "max");
			}

			if (fieldMin != null || fieldMax != null)
			{
				var minValue = (fieldMin != null) ? fieldMin.value : 0;
				var maxValue = (fieldMax != null) ? fieldMax.value : 10000000;

				if (minValue == "") { minValue = 0; }
				if (maxValue == "") { maxValue = 10000000; }

				if (minValue > 0 || maxValue < 10000000)
				{				
					var fieldValue = minValue + "$" + maxValue;

					cookieData.set(fieldName.toLowerCase(), fieldValue)
				}
			}
		});

		if ( $("locationSearch") != null)
		{
			if (locationData == null && $("locationSearch").value != "")
			{
				isLocating = true;
				return false;
			}
			else
			{
				isLocating = false;
			}
		}

		// prise en compte d'une eventuelle localisation
		if (locationData != null)
		{
			var locName = $("locationSearch").value;
			// type
			var locType = locationData.t;
			// code postal
			var locZipCode = locationData.z;
			// code insee
			var locInsee = locationData.i;

			var locData = locType + "|" + locName + "|";
			if (locType == "d") { locData += locZipCode; }
			if (locType == "c") { locData += locZipCode + "|" + locInsee; }

			cookieValue.push("location" + "#" + locData);
		}


		// faut-il prendre en compte une commune saisie par l'utilisateur ?
		var searchCity = $("searchCity");
		if ($defined(searchCity) && searchCity.value != "")
		{
			var cityData = searchCity.value.split("(");
			var zipCode = cityData[1].trunc(1);

			cookieValue.push("cp_annonce" + "#" + zipCode);
		}

		cookieData.each(function(value, key)
		{
			if (value != "" && value != "-1")
			{
				key = key.replace(" mxdhidden", "");
				key = key.replace(" multiple", "");
				result = key + "#" + value;

				// les parametres contenus dans l'url ne doivent pas etre stockés
				// dans le cookie de recherche
				if (SEO_PARAMS.indexOf(key) == -1)
				{
					cookieValue.push(result);
				};
			}
		});

		if (cookieValue.length > 0)
		{
			var exp = new Date();
			exp.setDate(exp.getDate() + 7);

			document.cookie = "MIXADSEARCH=" + cookieValue.join("@").hexaencode() + "; path=/; expires=" + exp.toGMTString();
		}
		else
		{
			document.cookie = "MIXADSEARCH=; path=/; expires=Fri, 02-Jan-1970 00:00:00 GMT";
		}

		// suppression du cookie permettant de sauver le contexte de la liste de resultats
		// (i.e. : la page et le tri en cours)
		document.cookie = "RESULT_CONTEXT=; path=/; expires=Fri, 02-Jan-1970 00:00:00 GMT";
	}
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function SetSearchFilter(e, aField)
{
	var value = this.getAttribute("rel");

	// il s'agit d'un champ lié a une liste de reference
	// cf equipement auto
	if (this.getParent("ul").getProperty("class").indexOf("multiple") != -1)
	{
		value = (cookieData.get(aField)) ? cookieData.get(aField) : "";
		value += ((value != "") ? "," : "") + this.getProperty("rel");
	}

	cookieData.set(aField, value);

	UpdateSearch();
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function RemoveSearchFilter(e)
{
	var filterField = e.target.getAttribute("rel").toLowerCase();

	if (filterField.indexOf("[") == -1)
	{
		cookieData.erase(filterField);
	}
	else
	{
		var refValue = filterField.toUpperCase().split("[")[1];
		refValue = refValue.replace("]", "");

		filterField = filterField.substring(0, filterField.indexOf("["));

		var cookieValue = cookieData.get(filterField);

		cookieValue = cookieValue.replace(refValue, "");
		cookieValue = cookieValue.replace(/^,*/, '');

		if (cookieValue != "")
		{
			cookieData.set(filterField, cookieValue);
		}
		else
		{
			cookieData.erase(filterField);
		}
	}

	// d'autres filtres doivent ils etre supprimés ?
	// cf cas de la marque et du modele de voiture associé
	if ($defined(window.RemoveOtherSearchFilter))
	{
		RemoveOtherSearchFilter(filterField);
	}

	UpdateSearch();
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function ClearSearchFilters(reloadPage)
{
	isClearing = true;

	var mode = GetCookieFilterValue("search_mode");
	var display = GetCookieFilterValue("search_display");

	document.cookie = "MIXADSEARCH=; path=/; expires=Fri, 02-Jan-1970 00:00:00 GMT";
	document.cookie = "SEARCHURL=; path=/; expires=Fri, 02-Jan-1970 00:00:00 GMT";

	if (reloadPage == true)
	{
		var cookieValue = "";
		if (mode != "" || display != "")
		{
			if (mode != "") { cookieValue = "search_mode#" + mode; }
			if (display != "")
			{
				if (mode != "") { cookieValue += "@"; }
				cookieValue += "search_display#" + display;
			}

			var exp = new Date();
			exp.setDate(exp.getDate() + 7);

			document.cookie = "MIXADSEARCH=" + cookieValue.hexaencode() + "; path=/; expires=" + exp.toGMTString();
		}

		window.location.href = RESULT_ROOT_URL;
	}
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
 function SetRegion(aRegion)
 {
	cookieData.set("region", aRegion);
	
	UpdateSearch();

	window.location.href = RESULT_URL;
 }
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function completerQuery(data)
{
	var country = "france";
	var city = $("searchCity").value;

	data.setParamsManually({ "c": country.hexaencode(), "n": city.hexaencode() });
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function AdClick(aId)
{
	if (aId != null)
	{
		var adLink = $("ad-" + aId);
		var docLocation = unscramble(adLink.href);

		document.location.href = docLocation;
	}
}
/*******************************************************************************************************************************************************************************
 * 
 *******************************************************************************************************************************************************************************
 *
 *
 *******************************************************************************************************************************************************************************/
function TriggerClick(aId)
{
	if (aId != null)
	{
		var aLink = $(aId);
		if (aLink)
		{
			var docLocation = unscramble(aLink.href);
			document.location.href = docLocation;
		}
	}
}