


/* globals vars  */
var spec_already_filterded= [];
var ville_already_filtered= [];
var genre_already_filtered= [];
var date_already_filtered= [];

var filterOnGenre = false;
var filterOnDate  = false;
var isRetourOn = false;
/* end globals vars  */



function spectacle(prm, ville){

	
	
var species = new Array('41','11','18','8','20');

/* cas particuliers */

var filter=prm.split('_');


if(filter[1]=='41'){
	spectacle_hortus(ville);
}	


	
else{
/* le spectacle est il actif / pas en berne ?*/     
var fond = $(prm).style.backgroundImage;


if(!$(prm).getElement('img').getProperty('src').match("rond-over")){
//console.log('ok');

/* requête 1 pour récuperer la ville */
var j0= new Json.Remote("./wp-content/themes/white/filtre-programmation.php", {onComplete: function(options){
	if(!ville)
	is_villeAlreadyFiltered();
	
	/* traitement de la réponse JSON */
	options.each(function(o){
		

	if(!ville){
		
		filtre_ville(o.n_ville.toLowerCase());	

		/* mise en valeur de la ville concernée par me spectacle */
	
	}
	
	
	
	/* si pas de filtre sur le genre en cours */
	if(!filterOnGenre){
		/* virer les genres déjà en surbrillance */
		is_genreAlreadyFiltered();

		
		$each(o.genre, function(g){filtre_genre(g)});
		// $each(o.dates, function(d){console.log(d)});
	}

	if(!filterOnDate){
		/* virer les genres déjà en surbrillance */
		is_dateAlreadyFiltered();
		
		$each(o.dates, function(d){
		
		
		filtre_date(d);
	
		});
	}

	});
	
	if(species.indexOf(filter[1])!=-1){
		
    	switch(filter[1]){
		
		case '11':
			var imp_trio_dates = new Array('28-6','29-6');	
			exec_species(imp_trio_dates, 'chaumont-sur-loire');			
		break;
			
		case '18':
			var girouette_dates = new Array('8-6');
			exec_species(girouette_dates, 'bouges');		
		break;

		case '8':
			var kino_dates = new Array('18-5','24-5');
			exec_species(kino_dates, 'bourges');
		break;
		
		case '20':
			var barra_dates = new Array('7-6','8-6','28-6','29-6');	
			exec_species(barra_dates, 'chaumont-sur-loire');				
		break;
	}
		
	}
	
	}}).send({'spectacle': filter[1]})
	
	
}

}
}

function filtre(prm){
    
  /* prm contient filtre et index du filtre*/
  var filter=prm.split('_');
    
  /* On peut filtrer par le genre ou par la date */
  if(filter[0]== 'genre'){

    var s={'genre': filter[1]};
    filterOnGenre = true;
    isRetourOn==true?null: retourOn();
    genre_already_filtered.push(filter[1]);

  }
  else{
    if(filter[0]== 'date'){
      var s={'date': filter[1]};
      filterOnDate = true;
      isRetourOn==true?null:retourOn();
      is_dateAlreadyFiltered();
      date_already_filtered.push(filter[1]);
      
      
    }
  } 
    
  /* requête JSON  */
  var j0= new Json.Remote("./wp-content/themes/white/filtre-programmation.php", {onComplete: function(options){

	/* Des spectacles ont il déjà filtés*/
	is_specAlreadyFiltered();
	 
 	/* traitement de la réponse JSON */
	options.each(function(o){
	    
	    //console.log(o);
	    filtre_spectacle(o);	    
	    
	  });
	 

	  
      }}).send(s).chain(function(){
	
	  /* Une deuxieme requete pour recuperer les villes concernées  */
	  var j1= new Json.Remote("./wp-content/themes/white/filtre-programmation.php", {onComplete: function(options){
		 
		/* des ville sont elles été déjà filtrées */
		is_villeAlreadyFiltered();

var tab_dates_hortus=new Array('16-5', '17-5','18-5','24-5', '25-5','30-5','31-5','1-6','7-6','8-6','12-6','14-6','20-6','21-6','22-6','27-6','28-6','29-6');	    

if(tab_dates_hortus.indexOf(filter[1]!=-1))
	var hortus=true;

		options.each(function(o){
		// if(!(o=='chinon' && hortus==true)) 
	           filtre_ville(o);		
		});
	    
	      }}).send({'ville':'true'});
	     

	  /* S'il s'agit du filtre 'genre', il faut une nelle requete pour les dates concernés  */
	
	  if(filter[0]=="genre"){
	    
	    var j2= new Json.Remote("./wp-content/themes/white/filtre-programmation.php", {onComplete: function(options){
		
		  /*des dates  ont elles ete déjà filtrées  */
		  is_dateAlreadyFiltered();       
		
		  options.each(function(o){
		    
		      filtre_date(o);;
		    
		    });
			
		}}).send({'quelles-dates':'true'});
	    		
		
	  }
	
	
	  /* s'il s'agit du filtre 'date', il faut recuperer les genres associer */
	  if(filter[0]=="date"){
	    
	    	is_dateAlreadyFiltered();
		date_already_filtered=[];
		  
	    var j2= new Json.Remote("./wp-content/themes/white/filtre-programmation.php", {onComplete: function(options){
		
		  /* des genres ont ils été filtés */
		  is_genreAlreadyFiltered();
		
		  options.each(function(o){
		      filtre_genre(o);
		    
		    });
		
		}}).send({'quel-genre':'true'});  
	  }
	
	});
    
}





function is_specAlreadyFiltered(){

  if(spec_already_filtered.length>0){
    spec_already_filtered.each(function(a){	
	document.getElementById('div_'+a).getElements('img').setProperty('src', 'wp-content/themes/white/img/petitsronds/rond_'+a+'.gif');    
      });
	
    spec_already_filtered= [];
  }
}



function is_villeAlreadyFiltered(){
  
  if(ville_already_filtered.length>0){
    ville_already_filtered.each(function(a){		
	document.getElementById(a).toggleClass(a);
 	document.getElementById('point-'+a+'-prog').style.display='none';
      }); 
    ville_already_filtered= [];
  }
  
  else{
    $$('.programmation-cell-left').each(function(e){		   
	document.getElementById(e.id).toggleClass(document.getElementById(e.id).id);
       	document.getElementById('point-'+e.id+'-prog').style.display='none';
      });
  }   
}



function is_genreAlreadyFiltered(){
    
  if(genre_already_filtered.length>0){
    
    genre_already_filtered.each(function(a){
	document.getElementById('genre_'+a).style.backgroundColor='transparent';
      });
    
    genre_already_filtered= [];
  }
  
  else{
    $$('.genre').each(function(e){		   
	document.getElementById(e.id).style.backgroundColor='transparent';
      });
  }   
}


function is_dateAlreadyFiltered(){ 

  if(date_already_filtered.length>0){
    
    date_already_filtered.each(function(a){
	document.getElementById('date_'+a).style.color='black';
      });
    
    date_already_filtered= [];
  }
  
  else{
    $$('.genre').each(function(e){		   
	document.getElementById(e.id).toggleClass(document.getElementById(e.id).id);
      });
  } 

}




function vfiltre_spectacle(o){
	
  //var nville= o.n_ville.toLowerCase();
  
  /* mise en évidence des spectacles filtrés */
  document.getElementById('div_'+o.index).getElements('img').setProperty('src', 'wp-content/themes/white/img/grand-rond-over.png');
  

  //document.getElementById('div_'+o.index).style.background='url(http://labomedia.lobotomie.org/%7Ericco/excentrique/wordpress/wp-content/themes/white/img/grand-rond-over.png) no-repeat';
  
  /*on garde de côté les elements filtrés  */
  spec_already_filterded.push(o.index);

}



function filtre_ville(p){
	
  /* mise en évidence des villes présentant les spectacles filtrés  */
  document.getElementById(p).toggleClass(p);
  document.getElementById('point-'+p+'-prog').style.display='block';
  ville_already_filtered.push(p);  

}

function filtre_genre(p){

  /* mise en évidence des villes présentant les spectacles filtrés  */
  document.getElementById('genre_'+p).style.backgroundColor='#EC7404';
  genre_already_filtered.push(p);
 
}


function filtre_date(p){
  

  /* mise en évidence des villes présentant les spectacles filtrés  */
  document.getElementById('date_'+p).style.color='#EC7404';
  date_already_filtered.push(p);
}


function retourOn(){
 
  $('div_retour').setStyle('display','block'); 
  isRetourOn=true;
}

function retourOff(){
  
  var start = new Date();

  is_specAlreadyFiltered();
  is_villeAlreadyFiltered(); //x2
  is_villeAlreadyFiltered();
  is_dateAlreadyFiltered();
  is_genreAlreadyFiltered();

  $$('.programmation-cell-left').each(function(el){
	document.getElementById('point-'+el.id+'-prog').style.display='block';
  });

  $('div_retour').setStyle('display','none');



  isRetourOn=false;
  
  var end = new Date();
  //console.log(end-start);

}


/*
 * Renvoie les spectacles pour une ville
 */

// function nVillesSpectacles(){

//   var j0= new Json.Remote("./wp-content/themes/white/filtre-programmation.php", {onComplete: function(options){
	
	
//  	/* traitement de la réponse JSON */
// 	options.each(function(o){
	    
// 	    console.log(o);
	    
// 	  });
	
	
//       }}).send({'spectacles_ville':8});

// }

function vfiltre(prm, ville){

 
  
  /* prm contient filtre et index du filtre*/
  var filter=prm.split('_');
  
  /* On peut filtrer par le genre ou par la date */
  if(filter[0]== 'genre'){
    
    var s={'genre': filter[1],'index_ville':ville};
    filterOnGenre = true;
    isRetourOn==true?null: retourOn();
    genre_already_filtered.push(filter[1]);
    
  }
  else{
    if(filter[0]== 'date'){
      var s={'date': filter[1],'index_ville':ville};
      filterOnDate = true;
      isRetourOn==true?null:retourOn();
      is_dateAlreadyFiltered();
      date_already_filtered.push(filter[1]);
    }
  } 
  
  
  /* requête JSON  */
  var j0= new Json.Remote("./wp-content/themes/white/filtre-programmation-ville.php", {onComplete: function(options){
	
	/* Des spectacles ont il déjà filtés*/
	is_specAlreadyFiltered();
	
	/* traitement de la réponse JSON */
	options.each(function(o){
	//    console.log(o);
	    //vfiltre_spectacle(o, true);	    
	    
	  });
	
	
      }}).send(s);


  if(filter[0]== 'genre'){	
    var j1= new Json.Remote("./wp-content/themes/white/filtre-programmation-ville.php", {onComplete: function(options){
	  
	  /*des dates  ont elles ete déjà filtrées  */
	  is_dateAlreadyFiltered();       
	  
	  options.each(function(o){
	      
	      filtre_date(o);
	      
	    });
	  
	}}).send({'quelles-dates':'true','index_ville':ville});
    
  }


  if(filter[0]== 'date'){

    var j2= new Json.Remote("./wp-content/themes/white/filtre-programmation-ville.php", {onComplete: function(options){
		
	  /* des genres ont ils été filtés */
	  is_genreAlreadyFiltered();
	  
	  options.each(function(o){
	      
	      filtre_genre(o);
	      
	    });
	  
	}}).send({'quel-genre':'true', 'index_ville':ville});  
  }

}
       



function vdates(ville){

  var j2= new Json.Remote("./wp-content/themes/white/filtre-programmation-ville.php", {onComplete: function(options){
		
	/* des dates  ont elles ete déjà filtrées  */

	is_dateAlreadyFiltered();       
	
	options.each(function(o){
		    
	    filtre_date(o);;
	    
	  });
			
      }}).send({'dates_villes':'true','index_ville':ville});
}


function menu_parcours(pk,h){
		      
                    		      
  var id = pk;
		      
  if(id != 22){ // n'est pas la page principale                     

    h.each(function(value, key){
			    
	if(id != key){
			      
	  $(value).toggleClass(value);
	  $(value).getNext().toggleClass('date-'+value);//dates
			      
	  $(value).addEvent('mouseover', function(){
				  
	      $(value).toggleClass(value);
	      $(value).getNext().toggleClass('date-'+value);  
	      $('point-'+value).setStyle('background','url(http://labomedia.lobotomie.org/%7Ericco/excentrique/wordpress/wp-content/themes/white/img/'+value+'.gif) no-repeat');// point map
				  
	    });
			      
	  $(value).addEvent('mouseout', function(){
				  
	      $(value).toggleClass(value);
	      $(value).getNext().toggleClass('date-'+value);//dates
	      $('point-'+value).setStyle('background','none');// point map
				  
	    });
			      
	} //if(id != key)
			    
	else{ 
	  $('point-'+value).setStyle('background','url(http://labomedia.lobotomie.org/%7Ericco/excentrique/wordpress/wp-content/themes/white/img/'+value+'.gif) no-repeat');
	}
			    
      }); //parcours_hash.each()
  }
		      
  else{ // nous sommes sur la page principale
			
    h.each(function(value, key){
	$('point-'+value).setStyle('background','url(http://labomedia.lobotomie.org/%7Ericco/excentrique/wordpress/wp-content/themes/white/img/'+value+'.gif) no-repeat');
      });
  }
}



function init_prog_ville(n){

  /* evenement sur les genres  */
  $('genres').getChildren().each(function(e){
	
      /* ONCLICK  */
      e.addEvent('click', function(){
	      
	  /* tous en gris */ 
	  $('genres').getChildren().each(function(e){
	      e.setStyle('background-color','#ccc');
	    });
	    
	    
	  e.setStyle('background-color','#ec7404');
	  vfiltre(e.id,8);
	  
	});

      /* onmouseover  */
      e.addEvent('mouseover', function(){
	  e.setStyle('background-color','#ec7404');
	});

      /* mouseout */
      e.addEvent('mouseout', function(){
	  var id = e.id.split('_');
	  genre_already_filtered.indexOf(id[1])!=-1?null:e.setStyle('background-color','transparent');
	});
	  
	  
    });
    

  /* evenements sur les dates */
//   $$('.date').each(function(td){
// 	
//       td.addEvent('click', function(){
// 	  td.setStyle('color','#ec7404');
// 	  vfiltre(td.id, 8);
// 	});
// 
//       td.addEvent('mouseover', function(){
// 	  td.setStyle('color','#ec7404');
// 	});
// 
//       td.addEvent('mouseout', function(){
// 	  var id = td.id.split('_');
// 	  date_already_filtered.indexOf(id[1])!=-1?null:td.setStyle('color','black');
// 	});
// 	
// 
//     });

  vdates(n);

  
  /* evenement sur les spectacles */
  $$('.spectacle-ville').each(function(s){
	
      s.addEvent('mouseover', function(){
	  spectacle(s.id, n);
	});
 

      /*  on determine l'index  */
      var id = s.id.split('_');

    });

    
  var theTips = new TipsX3 ($$('.spectacle-ville'), {showDelay: 500});


  /* init bouton retout  */
  $('div_retour').addEvent('click',function(){
      retourOff();
    });

}

function spectacle_hortus(ville){
	
var hortus_villes= new Array('chinon','bouges','bourges','mainvilliers','saran','tours','amboise','chaumont-sur-loire');
var tab =new Array();
if(!ville){
	var hortus_dates = new Array('16-5', '17-5','18-5','24-5', '25-5','30-5','31-5','1-6','7-6','8-6','12-6','14-6','20-6','21-6','22-6','27-6','28-6','29-6');
	tab = hortus_dates;
}
else{
	switch(ville){
			
	case 8:
		var dates_chinon= new Array('16-5', '17-5','18-5');
		tab = dates_chinon;			
	break;
	
	case 3:
		var dates_bourges= new Array('24-5', '25-5');
		tab = dates_bourges;			
	break;
	
	case 2:
		var dates_bouges= new Array('30-5', '31-5','1-6');
		tab = dates_bouges;			
	break;
	

	
	case 5:
		var dates_mainv= new Array('7-6', '8-6');
		tab = dates_mainv;			
	break;
	
	case 6:
		var dates_saran= new Array('12-6');
		tab = dates_saran;			
	break;
	
	case 7:
		var dates_tours= new Array('14-6');
		tab = dates_tours;			
	break;
	
	case 1:
		var dates_amb= new Array('20-6','21-6','22-6');
		tab = dates_amb;			
	break;
	
	case 4:
		var dates_chaum= new Array('27-6','28-6','29-6');
		tab = dates_chaum;			
	break;
	
	}
}
is_villeAlreadyFiltered();
is_dateAlreadyFiltered();
is_genreAlreadyFiltered();

hortus_villes.each(function(ville){
	document.getElementById(ville).toggleClass(ville);
	document.getElementById('point-'+ville+'-prog').style.display='block';
	document.getElementById('genre_5').style.backgroundColor='#EC7404';
});

tab.each(function(date){
	filtre_date(date);	
});

}


/* traitement des cas particuliers */
function exec_species(tab, ville){

	filtre_ville(ville);
	tab.each(function(date){
		filtre_date(date);	
	});
}



