﻿/*\\\\\ DETECTOR DE HISTORIAL DE NAVEGADOR v1.4 [BETA] || javibm@gmail.com /////*/

/*
Para que funcione correctamente hay que seguir 4 pasos:
-------------------------------------------------------

	1.- Añadir la carpeta 'historialFlash' con todo su contenido en el directorio raiz.
	
	2.- Nombrar el objeto de FLASH que interactuará con una ID y un NAME iguales, y nombrar aqui tambien, en este caso es 'flashObj'.
	
	3.- Colocar una función detectora en FLASH; en el ejemplo jugamos con la variable principal 'historiaCambiada', y con una para comprobar si ha habido cambios 'historiaCambiadaTmp'.
		Por ejemplo
			_root.createEmptyMovieClip("testHistoria",_root.getNextHighestDepth());
			_root.testHistoria.onEnterFrame = function(){
				if(_root.historiaCambiada != _root.historiaCambiadaTmp){
					
					LO QUE QUIERAS EJECUTAR
					
					_root.historiaCambiadaTmp = _root.historiaCambiada;
				}
			}
			
	4.- Cuando se cambie de sección, hacer una llamada a la función javascript que guarda en el historial:
	
		getURL("javascript:Historia("+tu_variable+", 'un_titulo_para_la_seccion');") //Para grabar un paso de historia
		_root.historiaCambiada = _root.historiaCambiadaTmp = "id="+ID; //Para actualizar las variables al nuevo paso;
		
		(En el titulo para la sección, si pones undefined se mantiene el de la pagina principal)
			
==============================================================================================================================================================================
	- Funcionando para Mozilla, IExplorer, Opera.
	- Guarda las variables que quieras en el HASH de un iframe. Estas variables se pasan de flash y se devuelven a flash, pueden ser cualquiera.
	- Para personalizar:
	
		• Nombre del HASH; en este caso se llama ID.
		• Primera variable del HASH; en este caso es "inicio".
		• La funcion para notificar el cambio a Flash "actualizaFlash": Esta funcion recoje el HASH de la historia para enviarselo a FLASH
		  En la funcion se puede modificar el nombre de la variable que se actualiazará en el propio flash, en este caso "historiaCambiada".
==============================================================================================================================================================================
*/
document.write("<script type='text/javascript' src='historialFlash/js/subSecciones.js'></script>");
var path = "http://www.ahct.es/";
var historial = document.createElement("IFRAME");
historial.id = "historial";
historial.name = "historial";
historial.style.display = "none";
historial.src= path+"historialFlash/historial.php?#id=inicio";
//document.location= path+"#/inicio#id=inicio";
document.body.appendChild(historial);

var busquedaLanzada=false;// para controlar se se ha echo ya la petición de buscar o es un boton atras.
var temporizador; // variable global que se utiliza para controlar el temporizador de revision de url.
var velocidadTemporizador=1000;// Tiempo en milisegundos de refresco del termporizador.
var hashcargado = String("");//Nombre del hash por defecto
//
//@: Esta funcion es para la llamada del flash:
function Historia(identidad, titulo){
   //alert("Vamos a cargar la seccion: "+mi_variable)
	//@: Notificamos que el cambio lo hacemos a voluntad:
	busquedaLanzada=true;
	//@: Añadimos un nivel de historia al iframe:
	var seccion = String(titulo);
	if(titulo != undefined){
		document.title="\ AHCT / "+titulo;
	}
	document.location.href = path+"#/"+identidad;
	//alert(seccion)
	//alert("Niveles de historia: "+window.history.length+"; HASH del IFRAME: "+document.getElementById('historial').contentWindow.document.location.hash.substr(1))
}
//
//@: FUNCION PARA NOTIFICAR EL CAMBIO AL FLASH
function actualizaFlash(datVariable){
   var mi_variable = datVariable;
   //alert("Vamos a cargar la seccion: "+mi_variable)
   var mi_flash = document.flashObj || document.getElementById("flashObj");
   //alert(mi_flash.GetVariable("historiaCambiada"));
   //alert("Vamos a cargar la seccion: "+mi_variable)
   mi_flash.SetVariable("historiaCambiada", mi_variable);

}
function GuardianUrl(){
	temporizador=setTimeout("GuardianUrl()",velocidadTemporizador); //1000= 1 seg.
	//@: repite esa funcion cada tanto tiempo. para pararlo se utilizatria un < clearTimeout(temporizador) >
	//
	//@: Obtenemos el hash del iframe actual:
	var urlActualIframe = document.location;
	var hashactual = String(urlActualIframe.hash.substr(2));
	/*var hasharray = hashtotal.split("#");
	var hashactual = hasharray[1];*/
	
	/*var titul = String(urlActualIframe.search.substr(1));
	var titulcomp = titul.split("=");*/

	//window.location = path+"#/"+titulcomp[1];

	//
	//@: Comprobamos continuamente si ha cambiado (ya sea porque hemos hecho un enlace o porque hemos retrocedido o avanzado en la historia:
	if(hashcargado != hashactual){
		//alert(hashactual)
		//
		//@: Comprobamos si ha sido con los botones del navegador:
		if(busquedaLanzada == false){
			//alert("Cambiando por historia al paso: "+hashactual)
			//
			/* LO QUE SE EJECUTA CUANDO SE AVANZA O RETROCEDE EN LA HISTORIA */
			//---
			actualizaFlash(hashactual);
			
			//---
		}
		else{
			//alert("Cambiando manualmente al paso: "+hashactual+"; busquedaLanzada"+busquedaLanzada)
			busquedaLanzada=false;
		}
	}
		//
		//@: Igualamos las variables:
		hashcargado = hashactual
		
};

window.onload = GuardianUrl();
window.onunload = subSeccion();
