var debug  = true;
var json;
var activities;
var total;
var nb_activity_per_page = 9;
var num_page  = 0;
var num_start = 0;
var num_end   = 0;

/**
 * Met à jour les fitres lorsque l'on clique sur les boutons
 */
function update_filter(type)
{
	switch (type)
	{
		case "ete":
			if (Filter.ete != 0){
				Filter.ete = 0;
			}
			else{
				Filter.ete = 1;
			}
			change_style("filtre-ete", Filter.ete);
		break;
		case "hiver":
			if (Filter.hiver != 0){
				Filter.hiver = 0;
			}
			else{
				Filter.hiver = 1;
			}
			change_style("filtre-hiver", Filter.hiver);
		break;
		case "mer":
			if (Filter.mer != 0){
				Filter.mer = 0;
			}
			else{
				Filter.mer = 1;
			}
			change_style("filtre-mer", Filter.mer);
		break;
		case "montagne":
			if (Filter.montagne != 0){
				Filter.montagne = 0;
			}
			else{
				Filter.montagne = 1;
			}
			change_style("filtre-montagne", Filter.montagne);
		break;
		case "france":
			if (Filter.france != 0){
				Filter.france = 0;
			}
			else{
				Filter.france = 1;
			}
			change_style("filtre-france", Filter.france);
		break;
		case "monde":
			if (Filter.monde != 0){
				Filter.monde = 0;
			}
			else{
				Filter.monde = 1;
			}
			change_style("filtre-monde", Filter.monde);
		break;
		default :
			
		
	}
	refresh_list();
}
/**
 * Modifie le style des boutons filtres
 */
function change_style(id_element, state_element)
{	
	if ($(id_element))
	{
		var element = $(id_element);
		if (state_element != 0){ // 1 - actif
			if (!element.hasClass('active')){
				element.addClass('active');
			}
		}
		else{ // 0 - inactif
			if (element.hasClass('active')){
				element.removeClass('active');
			}
		}
	}
}
/**
 * Effectue la requete AJAX
 */
function refresh_list(){
	var eContent  = $("sommaire");
	var sPath     = "http://" + http_host + racine_site;
	var sFile     = sPath + "includes/ajax/get_activities_list.php";
	var sMeth     = "post";
	var sEncoding = "utf-8";
	var sQuery    = "";
	// SAISONS	
	if (Filter.ete != 0){
		sQuery += "ete=" + id_ete;
	}
	else{
		sQuery += "ete=0";
	}
	if (Filter.hiver != 0){
		sQuery += "&hiver=" + id_hiver;
	}
	else{
		sQuery += "&hiver=0";
	}
	// DESTINATIONS
	if (Filter.mer != 0){
		sQuery += "&mer=" + id_rub_mer;
	}
	else{
		sQuery += "&mer=0";
	}
	
	if (Filter.montagne != 0){
		sQuery += "&montagne=" + id_rub_montagne;
	}
	else{
		sQuery += "&montagne=0";
	}
	
	if (Filter.france != 0){
		sQuery += "&france=" + id_rub_france;
	}
	else{
		sQuery += "&france=0";
	}
	if (Filter.monde != 0){
		sQuery += "&monde=" + id_rub_monde;
	}
	else{
		sQuery += "&monde=0";
	}
	sQuery += "&page_number=" + page_number+ "&id_rubrique=" + id_rubrique;
	
	var request = new Request.JSON({
									method     : sMeth,
									url        : sFile,
									onComplete : function(json_response){
										json = json_response;
										if (typeof json.activities != "undefined"){
											activities = json.activities;
											total      = json.total;
											
											if (total != 0){
												create_activities_list(0);
											}
											else{
												$("sommaire").empty();
												if (lang != "fr"){
													$("sommaire").appendText("No result for your search");
												}
												else{
													$("sommaire").appendText("Aucun résultat pour votre recherche");
												}
											}
											$("nombre-evenements").empty();
											$("nombre-evenements").appendText(" (" + json.total + ") ");
										}
										else{
											alert("jsonObj.activities is undefined");
										}
									}
								}).send(sQuery);	
}
/**
 * Affiche la liste des activités
 */
function create_activities_list(direction){
	var eContent  = $("sommaire");
	var current_json = 0;
	eContent.empty();
	num_page  = num_page + direction;
	num_start = nb_activity_per_page * num_page;
	num_end   = num_start + nb_activity_per_page;
	//alert(num_start+" --> "+num_end);
	activities.each(function(activity)
	{
		if (current_json >= num_start && current_json < num_end){
			var elem_div = create_vignette_element(activity.art_id, activity.artt_titre, activity.artt_titre_url, activity.artt_visuel, activity.artt_visuel_alt);
			elem_div.inject(eContent);
		}
		current_json++;
	});
	update_pagination();
}
/**
 * Met à jour les liens de pagination
 */
function update_pagination()
{
	var eContent  = $("sommaire");
	var div_pagination = new Element('div', {'id' : 'pagination-bloc'});
	var div_trait = new Element('div', {'id' : 'trait-pagination'}); 
	if (num_page != 0)
	{
		var prev_link = new Element("a", {
			'href'  : 'javascript:;',
			'id'    : 'pagination-precedent',
			'events': {'click': function(){
				create_activities_list(-1);
			}}
		}).appendText(' ' + text_prev_link);
		var img_prev_link = new Element("img", {
			'src'    : racine_site + 'medias/commun/precedent.gif',
			'width'  : '6',
			'height' : '8',
			'alt'    : text_prev_link
		});
		img_prev_link.inject(prev_link);
		prev_link.inject(div_pagination);
	}
	if (num_end < total)
	{
		var next_link = new Element("a", {
			'href' : 'javascript:;',
			'id'   : 'pagination-suite',
			'events': {'click': function(){
				create_activities_list(1);
			}}
		}).appendText(text_next_link + ' ');
		
		var img_next_link = new Element("img", {
			'src'    : racine_site + 'medias/commun/suivant.gif',
			'width'  : '6',
			'height' : '8',
			'alt'    : text_next_link
		});
		img_next_link.inject(next_link);
		next_link.inject(div_pagination);
	}
	div_pagination.inject(eContent);
}
/**
 * Créer le bloc d'affichage de la vignette
 */
function create_vignette_element(id, titre, titre_url, visuel, visuel_alt){
	
	var div_bloc     = new Element('div');
	div_bloc.addClass('sommaire-vignette-bloc');
	var div_vignette = new Element('div');
	div_vignette.addClass('sommaire-vignette');
	var elem_img = new Element('img', {
		'src'    : visuel,
		'width'  : '217',
		'height' : '163',
		'alt'    : visuel_alt
	});
	var div_legende_infos = new Element('div');
	div_legende_infos.addClass('sommaire-vignette-legende-infos');
	var div_legende 	  = new Element('div');
	div_legende.addClass('sommaire-vignette-legende');
	var div_infos 		  = new Element('div');
	div_infos.addClass('sommaire-vignette-infos');
	var elem_titre 		  = new Element('h2').appendText(titre);
	var elem_img_link = new Element('a', {
		'href'  : racine_site + lang + "/" + current_page + "/" + current_rub_id + "/" + current_rub_titre_url + "/" + id + "/" + titre_url + ".html"
	});
	var elem_link = new Element('a', {
		'href'  : racine_site + lang + "/" + current_page + "/" + current_rub_id + "/" + current_rub_titre_url + "/" + id + "/" + titre_url + ".html"
	});
	elem_link.addClass('btn-decouvrir-activite');
	var img_link = new Element('img', {
		'src'    : racine_site + 'medias/commun/pixel.gif',
		'width'  : '1',
		'height' : '1',
		'alt'    : 'd&écouvrir cette destination'
	});
	
	// INFO
	img_link.inject(elem_link);
	elem_titre.inject(div_infos);
	elem_link.inject(div_infos);
	// LEGENDE
	div_infos.inject(div_legende_infos);
	div_legende.inject(div_legende_infos);
	// VIGNETTE
	elem_img.inject(elem_img_link);
	elem_img_link.inject(div_vignette);
	// BLOC
	div_vignette.inject(div_bloc);
	div_legende_infos.inject(div_bloc);
	
	return div_bloc;
}

// supprime tous les enfants d'un élément
function remove_child_nodes(element){
	while (element.childNodes.length > 0){
		element.removeChild(element.firstChild);
	}
}

window.addEvent('domready', function()
{
	var e_btn_ete;
	var e_btn_hiver;
	var e_btn_mer;
	var e_btn_montagne;
	var e_btn_france;
	var e_btn_monde;
	
	// boutons filtres
	if ($("filtre-ete")) {
		e_btn_ete = $("filtre-ete");
		e_btn_ete.addEvent("click", function(){
			update_filter("ete");
		});
	}
	if ($("filtre-hiver")) {
		e_btn_hiver = $("filtre-hiver");
		e_btn_hiver.addEvent("click", function(){
			update_filter("hiver");
		});
	}
	if ($("filtre-mer")) {
		e_btn_mer = $("filtre-mer");
		e_btn_mer.addEvent("click", function(){
			update_filter("mer");
		});
	}
	if ($("filtre-montagne")) {
		e_btn_montagne = $("filtre-montagne");
		e_btn_montagne.addEvent("click", function(){
			update_filter("montagne");
		});
	}
	if ($("filtre-france")) {
		e_btn_france = $("filtre-france");
		e_btn_france.addEvent("click", function(){
			update_filter("france");
		});
	}
	if ($("filtre-monde")) {
		e_btn_monde = $("filtre-monde");
		e_btn_monde.addEvent("click", function(){
			update_filter("monde");
		});
	}
	
	// boutons paginations
	if ($('pagination-suite')) {
		e_btn_suivant = $("pagination-suite");
		e_btn_suivant.addEvent("click", function(){
			create_activities_list(1);
		});
		
	}
	if ($('pagination-precedent')) {
		e_btn_precedent = $("pagination-precedent");
		e_btn_precedent.addEvent("click", function(){
			create_activities_list(-1);
		});
	}
	update_filter("all");
});

