/*
 *   Gestion de la touche précédent du navigateur
 */

 var bb_count = 0;
 var bb_curr_idx = "";
 var bb_cache =  new Array;
 var bb_debug = false;
 var bb_iframe_script = "index.php";
 var bb_iframe_loaded = false;
 var bb_target_div = "";
 
 // si le débogage est activé via bb_init(), alors
 //nous ajoutons queques données à l'élèment divTrail
 
 function bb_debug_update (str){
 	if (bb_debug){
		var divBBDebug = document.getElementById("divBBDebug");
		divBBDebug.innerHTML = divBBDebug.innerHTML + "<br/>" + str;
	}
 }
 
 //Executer grâce au timer (une fois par seconde)
 //lafonction suivante lit la valeir d'index mise en cache
 //dans l'élément DIV de l'IFRAME
 //
 //Si cet index extrait du cache est différent de l'index courant,
 //cela signifie que le bouton Précédent a été pressé.
 //Dans ce cas, nous cherchons à extraire les données
 //correspondantes du cache et à mettre à jour la page.
 
 function bb_check_state(){

	if (bb_iframe_loaded == false){
		return;
	}
	
	var doc = window.frames['bbFrame1'].document;
	if ( ! doc ) {
		return;
	}
	
	if ( ! doc.getElementById('divFrameCount') ) {
		return;
	}
	
	var new_idx = doc.getElementById('divFrameCount').innerHTML;
	if (new_idx != bb_curr_idx){
		
		var debug_msg = "IFRAME a changé. C'était "
			+ bb_curr_idx
			+", maintenant "
			+new_idx;
			
		//Récupére un état précédent depus le cache (s'il existe).
		if(bb_cache[new_idx]){
			var divBody = document.getElementById("divBody");
			divBody.innerHTML = bb_cache[new_idx];
			
			/*
			 * TODO : mettre la fonction après changement de page
			 */
			 
			debug_msg += "[Récupéré "
				+ new_idx
				+ " depuis le cache]";
		}
		bb_curr_idx = new_idx;
		
		bb_debug_update (debug_msg);
	}
 }
 
 //Appelé par l'IFRAME
 function bb_done_loading(){
 	bb_iframe_loaded = true;
 }
 
 //Met à jour l'IFRAME masquée.
 function bb_loadframe(){
 	var bbFrame1 = document.getElementById("bbFrame1");
	bb_iframe_loaded = false;
	bbFrame1.src = bb_iframe_script + "?bbcount=" + bb_count;
 }
 
 //Lorsque le besoin s'en fait sentir, sauve l'état courant
 //dans le cache.
 function bb_save_state(){
 	//Stocke le nouveau contenu dans le cache.
	var div_to_cache = document.getElementById(bb_target_div);
	bb_count++;
	bb_cache[bb_count] = div_to_cache.innerHTML;
	
	bb_debug_update ("Ajouté " + bb_count + " au cache");
	//Charge la nouvelle page dans l'IFRAME.
	bb_loadframe();
	
	bb_curr_idx = bb_count;
 }
 
 //Charge l'IFRAME masquée et lance le chronométre.
 
 function bb_init(div_name,debug_val){
 	bb_target_div = div_name;
	bb_debug = debug_val;
	bb_loadframe();
	window.setInterval ('bb_check_state()',1000);
	//bb_save_state();
 }