
window.addEvent('domready', initForm);

var aLieux = ["hotel", "casino", "congres"];
var oStyle1 = {
				opacity : 1,
				filter  : "alpha(opacity=100)"
			}
var oStyle2 = {
				opacity : 0.4,
				filter  : "alpha(opacity=40)"
			}
			
var aThemes = [];
aThemes[1] = [];
aThemes[2] = [];
aThemes[3] = [];

function initForm ()
{
	var aDays      = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'];
	var bDrag      = true;
	var iOffset    = 1;
	var iDirection = 0;
	var oTweak     = {x: 0, y: 0};
	var oCalendar  = {
					days      : aDays,
					direction : iDirection,
					draggable : bDrag,
					offset    : iOffset,
					tweak     : oTweak
					};
	
	// ------------------------------------- calendrier pour l'encart "QUAND"
	if ($("dateDebut"))
		var calDebut = new Calendar({ 'dateDebut' : 'd/m/Y' }, oCalendar); 	
	if ($("dateFin"))
		var calFin  = new Calendar({ 'dateFin' : 'd/m/Y' }, oCalendar); 
		
	// j'écoute l'évènement des boutons SUBMIT
	$("chercher").addEvent ("click", checkSearch);
	// j'écoute le click sur les cb
	for (var i = 0; i < aLieux.length; i++)
	{
		var name = aLieux[i];
		$(name).addEvent ("click", cbClickhandlerPlaces);
	}
	// je désactive tous les themes
	for (var i = 0; i < theme.length; i++)
	{
		$("cb-"+theme[i]).disabled = true;
		$("img-"+theme[i]).setStyles (oStyle2);
	}
}
function cbClickhandlerTheme (e)
{
	if (e.target) // DOM
		var idElement = e.target.id;
	else if (e.srcElement) // IE
		var idElement = e.srcElement.id;
	// je récupère l'id
	var array = idElement.split ("-");
	if (array.length > 1) var id = array[1];
	// si c'est l'image qui clickée
	if (idElement.indexOf("img") != -1)
		var state = !$("cb-"+id).checked
	else // sinon
		var state = $("cb-"+id).checked
	
	if (state)
	{
		$("img-"+id).setStyles (oStyle1);
		$("hidden-"+id).value = id;
		if (idElement.indexOf("img") != -1)
		{
			$("cb-"+id).checked = true;
		}
	}
	else
	{
		$("img-"+id).setStyles (oStyle2);
		$("hidden-"+id).value = "";
		if (idElement.indexOf("img") != -1)
		{
			$("cb-"+id).checked = false;
		}
	}
}
function cbClickhandlerPlaces (e)
{
	if (e.target) // DOM
		var eCb = e.target;
	else if (e.srcElement) // IE
		var eCb = e.srcElement;

	var id = eCb.id;

	if (id == "hotel")
	{
		// je parcous les themes actifs pour ce lieu
		for (var i = 0; i < hotel.length; i++)
		{
			var isInHotel = _in_array (aThemes[1], hotel[i]);
			if (eCb.checked)// si la case est coché
			{
				// le thème n'est pas dans le tableau des themes actifs
				if (!isInHotel)
				{
					// je l'ajoute
					aThemes[1].push (hotel[i]);
				}
			}
			else // sinon
			{
				 // le thème est dans le tableau des themes actifs
				if (isInHotel)
				{
					// je supprime
					_unset_array (aThemes[1], hotel[i]);
				}
			}
		}
	}
	if (id == "casino")
	{
		for (var i = 0; i < casino.length; i++)
		{
			var isInCasino = _in_array (aThemes[2], casino[i]);
			if (eCb.checked)
			{
				if (!isInCasino)
				{
					aThemes[2].push (casino[i]);
				}
			}
			else
			{
				if (isInCasino)
				{
					_unset_array (aThemes[2], casino[i]);
				}
			}
		}
	}
	if (id == "congres")
	{
		for (var i = 0; i < congres.length; i++)
		{
			var isInCongres = _in_array (aThemes[3], congres[i]);
			if (eCb.checked)
			{
				if (!isInCongres)
				{
					aThemes[3].push (congres[i]);
				}
			}
			else
			{
				if (isInCongres)
				{
					_unset_array (aThemes[3], congres[i]);
				}
			}
		}
	}
	// je désactive tout
	for (var i = 0; i < theme.length; i++)
	{
		$("cb-"+theme[i]).disabled = true;
		$("cb-"+theme[i]).checked = false;
		$("cb-"+theme[i]).removeEvent ("click", cbClickhandlerTheme);
		$("hidden-"+theme[i]).value = "";
		$("img-"+theme[i]).setStyles (oStyle2);
		$("img-"+theme[i]).removeEvent ("click", cbClickhandlerTheme);
	}
	// j'active seulement ceux nécessaires
	for (var i = 1; i < aThemes.length; i++)
	{
		for (var j = 0; j < aThemes[i].length; j++)
		{
			//alert("I "+i+" J "+j+" -> "+aThemes[i][j]);
			if ($("cb-"+aThemes[i][j]))
			{
				$("cb-"+aThemes[i][j]).disabled = false; // si désactivé pas envoyé lors du submit
				$("cb-"+aThemes[i][j]).checked = true;
				$("cb-"+aThemes[i][j]).addEvent ("click", cbClickhandlerTheme);
				$("hidden-"+aThemes[i][j]).value = aThemes[i][j];
				$("img-"+aThemes[i][j]).setStyles (oStyle1);
				$("img-"+aThemes[i][j]).addEvent ("click", cbClickhandlerTheme);
			}
		}
	}
}
function checkSearch ()
{
	var label;
	var error     = false;
	var cbChecked = false;
	var form_id   = "FSearch";
	var datedebut = $("dateDebut").value;
	var datefin   = $("dateFin").value;
	var aLabels   = $(form_id).getElements("label");
	
	// j'initialise les labels
	for (var i = 0; i < aLabels.length; i++)
	{
		_setRightStyle (aLabels[i]);
	}
	// si pas de date de début
	/*
	if (datedebut == "")
	{
		error = true;
		label = _getFormLabel(form_id, "dateDebut");
		if (label) _setWrongStyle (label);
	}
	// si pas de date de fin
	if (datefin == "")
	{
		error = true;
		label = _getFormLabel(form_id, "dateFin");
		if (label) _setWrongStyle (label);
	}
	*/
	// si aucune case de lieu est cochée
	for (var i = 0; i < aLieux.length; i++)
	{
		var name = aLieux[i];
		$(name).addEvent ("click", cbClickhandlerPlaces);
		
		if ($(name).checked)
		{
			cbChecked = true;
			break;
		}
	}
	if (!cbChecked)
	{
		error = true;
		for (var i = 0; i < aLabels.length; i++)
		{
			var forValue = aLabels[i].getProperty("for");
			if (forValue == "hotel" || forValue == "casino" || forValue == "congres")
			{
				_setWrongStyle (aLabels[i]);
			}
		}
	}
	return !error;
}
