$(document).ready(function()
{
	$('#form_terrain #zone').change(function()
	{
		var zone = $('#zone option:selected').val();
		if (zone == '-1')
			zone = "";
		reloadCityList(zone, '#commune');
		/**
		 * on prévient le flash de se mettre à jour
		 */
		if ($("#dep_choice").children("object") != typeof 'undefined')
		{
			setZoneFromJS(zone);
		}
		return false;
	});
	$('.gmapButton').click(function(event)
	{
		var partnerID = this.id;
		partnerID = partnerID.replace("gmap_", "");
		myclick(partnerID);
		return false;
	});
	$('input:checkbox').click(function(event)
	{
		var terrainID = $(this).val();
		jQuery.get("/vil/updateSelection/" + terrainID, function(data)
		{
			$('#counter').html(data);
		});
	});
	$('.call_to_action').click(function(event)
	{
		jQuery.get("/vil/updateSelection/-2", function(data)
		{
		});
	});
	if ($('.buttonSelect').length)
	{
		/**
		 * Récupération des terrains en session déjà sélectionné
		 */
		if ($('#liste_terrains_selectionnes li').length)
		{
			$('#liste_terrains_selectionnes li').each(function eachLi()
			{
				if (this.getElementsByTagName('a').length)
				{
					var link = this.getElementsByTagName('a').item(0);
					if (link)
					{
						selectedTerrain.push( { 'id' : link.id, 'html' : this });
						/**
						 * On masque le bouton
						 */
						$('#' + link.id.replace(/selected_/, 'select_')).css('visibility', 'hidden');
					}
					$('#zone_terrains_selectionnes .title').css('display', selectedTerrain.length > 0 ? 'none' : '');
				}
			});
		}
		$('.buttonSelect').click(function()
		{
			/**
			 * Si on a déjà trois terrains séletionnés, alors on ne peut plus en sélectionner
			 */
			if (selectedTerrain.length >= 3)
			{
				alert('Vous ne pouvez pas sélectionner plus de 3 terrains');
				return false;
			}
			/**
			 * Id du lien
			 */
			var id = new String(this.id);
			/**
			 * Id de la checkbox
			 */
			var terrainId = id.replace(/select_/, '');
			/**
			 * Si la checkbox est bien là :
			 *  - on la coche
			 *  - on ajoute le terrain dans la liste des terrains sélectionnés
			 *  - on masque le bouton
			 */
			if ($('#' + terrainId).length)
			{
				/**
				 * Cochage de la checkbox 
				 */
				$('#' + terrainId).attr('checked', 'checked');
				document.getElementById(terrainId).setAttribute('checked', 'checked');
				/**
				 * Déplacement vignette terrain
				 */
				/**
				 * on créé le nouveau conteneur de destination qu'on masquera au debut et qu'on affichera à la fin de l'anim
				 */
				var selectedTerrainHtml = document.createElement('li');
				try
				{
					selectedTerrainHtml.innerHTML = '<span class="selected_terrain_infos">' + this.getAttribute('title') + '</span>';
				}
				catch (e)
				{
					try
					{
						selectedTerrainHtml.innerText = '<span class="selected_terrain_infos">' + this.getAttribute('title') + '</span>';
					}
					catch (e)
					{
					}
				}
				var removeLink = document.createElement('a');
				removeLink.setAttribute('id', id.replace(/select/, 'selected'));
				removeLink.setAttribute('class', 'remove_terrain');
				removeLink.setAttribute('onclick', 'removeTerrain(this);return false;');
				removeLink.onclick = function removeLinkOnClick()
				{
					removeTerrain(this);
					return false;
				};
				removeLink.setAttribute('href', '#');
				removeLink.appendChild(document.createTextNode('Supprimer'));
				selectedTerrainHtml.appendChild(removeLink);
				selectedTerrain.push( { 'id' : id.replace(/select/, 'selected'), 'html' : selectedTerrainHtml });
				displaySelectedTerrains();
				/**
				 * On masque le bouton
				 */
				$(this).css('visibility', 'hidden');
			}
			return false;
		});
	}
});
/**
 * Gestion de l'ajout de à la sélection
 */
var selectedTerrain = new Array();
function getFlashMovie(movieName)
{
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	return (isIE) ? window[movieName] : document[movieName];
}
function setZoneFromJS(zone)
{
	var movie = getFlashMovie('dep_choice');
	switch (zone)
	{
		case '67':
			movie.setZoneFromJS('Agglomeration-Bordelaise');
			break;
		case '72':
			movie.setZoneFromJS('Nord-Gironde');
			break;
		case '73':
			movie.setZoneFromJS('Sud-Gironde');
			break;
		case '74':
			movie.setZoneFromJS('Bassin');
			break;
		case '76':
			movie.setZoneFromJS('Medoc');
			break;
		default:
			movie.setZoneFromJS('');
			break;
	}
}
function reloadCityList(zone, target)
{
	jQuery.get("/layout/set/raw/services/liste-villes/" + zone, function(data)
	{
		jQuery(target).html(data);
	});
}
function changeDepartement(name)
{
	switch (name)
	{
		case 'medoc':
			id = 76;
			break;
		case 'bassin':
			id = 74;
			break;
		case 'agglomeration':
			id = 67;
			break;
		case 'nord':
			id = 72;
			break;
		case 'sud':
			id = 73;
			break;
	}
	document.location.href = "/content/view/full/66/(zone)/" + id;
}
/**
 * Fonction d'affichage des terrains sélectionnés
 * @return void
 */
function displaySelectedTerrains()
{
	if (selectedTerrain && document.getElementById('liste_terrains_selectionnes') && document.getElementById('liste_terrains_selectionnes').id == 'liste_terrains_selectionnes')
	{
		$('#zone_terrains_selectionnes .title').css('display', selectedTerrain.length > 0 ? 'none' : '');
		var zone = document.getElementById('liste_terrains_selectionnes');
		var children = zone.getElementsByTagName('li');
		var nbChildren = children.length;
		for ( var i = 0; i < nbChildren; i++)
			children.item(0) ? children.item(0).parentNode.removeChild(children.item(0)) : null;
		var terrainsSelected = new Array();
		for ( var index in selectedTerrain)
		{
			typeof selectedTerrain[index].html != 'undefined' ? zone.appendChild(selectedTerrain[index].html) : '';
			terrainsSelected.push(selectedTerrain[index].id.replace(/selected_terrain_/, ''));
		}
		$.ajax( { type : "POST", url : "/content/action", data : { 'AddToSelection' : 1, 'ContentObjectID' : $('.btn_valide input[name=ContentObjectID]').val(), 'terrain' : terrainsSelected } });
	}
}
/**
 * Fonction de suppression d'un terrain sélectionné
 * @param $_removeLink HTMLAElement le lien
 * @return void
 */
function removeTerrain($_removeLink)
{
	/**
	 * Id du lien
	 */
	var id = new String($_removeLink.id);
	/**
	 * Id de la checkbox
	 */
	var terrainId = id.replace(/selected_/, '');
	/**
	 * Id de la checkbox
	 */
	var selectId = id.replace(/selected/, 'select');
	document.getElementById(terrainId) ? document.getElementById(terrainId).removeAttribute('checked') : null;
	/**
	 * Suppression du terrainb de la liste des terrains sélectionnés et mise à jour de la liste
	 */
	var newSelectedTerrain = new Array();
	for ( var index in selectedTerrain)
		if (selectedTerrain[index].id && selectedTerrain[index].id != id)
			newSelectedTerrain.push(selectedTerrain[index]);
	selectedTerrain = newSelectedTerrain;
	displaySelectedTerrains();
	/**
	 * Ré-affichage du bouton de sélection
	 */
	/**
	 * On masque le bouton
	 */
	$('#' + selectId).css('visibility', 'visible');
}

