// JavaScript Document
//alert("Estudio_js cargado");
//Declarar el HTMLPanel	
var panelEstudio = null;
//Declarar los datasets	
var dsPagEstudio = null;
//var dsMenu1Estudio = null;
var dsMenu2Estudio = null;
var dsContenido = null;
var dsPerfil = null;
var dsGenerico = null;
var dsCarlos = null;
var dsCarlosDesc = null;
var dsCarlosPremios = null;
var dsColaboradores = null;
var dsEquipo = null;
var dsArqAsoc = null;
var dsGaleria = null;
//Declarar el observer para el dataset dsPagEstudio
var dsPagEstudioObserver = new Object;
var dsPerfilObserver = new Object;
var dsCarlosObserver = new Object;
var dsGenericoObserver = new Object;
var dsCarlosPremiosObserver = new Object;
var dsColaboradoresObserver = new Object;
var dsEquipoObserver = new Object;
var dsArqAsocObserver = new Object;
var dsGaleriaObserver = new Object;
var dsIdiomaEstudioObserver = new Object;
var dsMenu2Observer = new Object;
var imagepreloader = new Spry.Utils.ImageLoader();

Spry.Utils.addLoadListener (initEstudio);

function initEstudio(){
	//alert("initEstudio");
	initEstudioPag();
	//initMenu2Ev();
	//initEstudioFormato();
}
function initEstudioPag(){
	//alert("initPag");
	//Serealiza una única llamada al servidor para cargar un XML con todos los datos necesarios
	//dsPagEstudio = new Spry.Data.XMLDataSet("/xml/estudio/estudio.xml", "/estudio", { useCache: false});
	//Estos datasets obtendrán los datos del dataset genérico: dsPagEstudio
	//Como no hay regiones que cargar, hay que forzar la carga  de datos del dataSet dsPagEstudio
	//dsPagEstudio.loadData();
	initIdiomaGeneral();
	initIdiomaProyectosCat();
	dsPerfil = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=perfil&idioma=" + idiomaClien,"tabla/row", {useCache: false});
	dsPerfil.setColumnType(["texto"],"html");
        dsPerfil.addObserver(dsPerfilObserver);
	dsCarlos = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=carlos&idioma=" + idiomaClien,"tabla/row", {useCache: false});
	//dsCarlos = new Spry.Data.XMLDataSet(dsGenerico,"tabla/row/texto", {useCache: false});
	dsCarlos.setColumnType(["texto"],"html");
	//dsGenerico.addObserver(dsGenericoObserver);
        dsCarlos.addObserver(dsCarlosObserver);
	//dsCarlosPremios = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=carlospremios&idioma=" + idiomaClien,"tabla/row", {useCache: false});
	dsCarlosPremios = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=carlospremios&idioma=" + idiomaClien,"items/item", {useCache: false});
	//dsCarlosPremios.setColumnType(["texto"],"html");
	dsCarlosPremios.setColumnType(["premio"],"html");
        dsCarlosPremios.addObserver(dsCarlosPremiosObserver);
	dsColaboradores = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=estudiocolaboradores&idioma=" + idiomaClien,"tabla/row", {useCache: false});
    dsColaboradores.addObserver(dsColaboradoresObserver);
	dsColaboradores.filterData(preloadImageColaboradores);
	dsEquipo = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=equipo&idioma=" + idiomaClien,"tabla/row", {useCache: false});
	dsEquipo.addObserver(dsEquipoObserver);
	dsEquipo.filterData(preloadImageColaboradores);
	dsArqAsoc = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=arquitectosasociados&idioma=" + idiomaClien,"tabla/row", {useCache: false});
        dsArqAsoc.addObserver(dsArqAsocObserver);
	dsArqAsoc.filterData(preloadImageColaboradores);
	dsGaleria = new Spry.Data.XMLDataSet("/php/estudioDis.php?accion=galeria&idioma=" + idiomaClien,"tabla/row", {useCache: false});
    dsGaleria.addObserver(dsGaleriaObserver);
	//dsPagEstudio.addObserver(dsPagEstudioObserver);
}

function initIdiomaGeneral(){
	dsIdiomaGeneral = new Spry.Data.XMLDataSet("/xml/global/general.xml", "/oab/general", { useCache: false});
	dsMenu1 = new Spry.Data.NestedXMLDataSet(dsIdiomaGeneral, "menu1/idioma" + idiomaClien, { useCache: false});
	dsIdioma = new Spry.Data.NestedXMLDataSet(dsIdiomaGeneral, "idioma/idioma" + idiomaClien, { useCache: false});
	dsBuscador = new Spry.Data.NestedXMLDataSet(dsIdiomaGeneral, "buscador/idioma" + idiomaClien, { useCache: false});
	//dsTexto = new Spry.Data.NestedXMLDataSet(dsIdiomaGeneral, "texto/idioma" + idiomaClien, { useCache: false});
	//dsMenu1.addObserver(dsMenu1Observer);
}

function initIdiomaProyectosCat(){
	dsIdiomaEstudio = new Spry.Data.XMLDataSet("/xml/estudio/estudio_idioma.xml", "/estudio", { useCache: false});
	//alert("idiomaClien " + idiomaClien);
	dsMenu2 = new Spry.Data.NestedXMLDataSet(dsIdiomaEstudio, "menu2/idioma" + idiomaClien +"", { useCache: false});
	dsMenu2.addObserver(dsMenu2Observer);
	dsIdiomaEstudio.addObserver(dsIdiomaEstudioObserver);
	//Añadir una función como observer a la Region: menu2 para controlar cuando ha cargado (escrito)los datos en la pag html.
	Spry.Data.Region.addObserver("menu2", regMenu2Observer);
	//var regListadosMenuLatObserver = { onPostUpdate: function(notifier, data) { setClass("todos", "categotiaSelect"); } };
	//Spry.Data.Region.addObserver("ListadosMenuLat", regListadosMenuLatObserver);
}

//Función como observer de la Region: menu2 para controlar cuando ha cargado (escrito)los datos
function regMenu2Observer(notificationState, notifier, data){
	if (notificationState == "onPreUpdate"){
		//alert(notifier + " is starting an update!");
	}
	else if (notificationState == "onPostUpdate"){
		//alert(notifier.id + " is done updating!");
		//despues de realizar la carga añadir eventos a los tags cargados
		initMenu2Ev();
		initEstudioFormato();
		//initDataScroll();
	}
}
//Función a realizar una vez cargados los datos en el dataSet dsPagEstudio
dsPagEstudioObserver.onPostLoad = function(dataSet, data){
	//Obtener las filas del dsPagEstudio para realizar operaciones varias
	//var rows = dsPagEstudio.getData();
	//alert(rows.length);
	//alert(rows.[0]);
	//dsPagEstudio.setCurrentRow(4);
	//Obtener el documento XML del dsPagEstudio cargado en el HTML
};

dsMenu2Observer.onPreLoad = function(dataSet, data){
	//alert("onPreLoad dsMenu2Observer called!");
};
dsMenu2Observer.onPostLoad = function(dataSet, data){
	// alert("onPostLoad dsMenu2Observer called!");
	// var rows = dsMenu2.getData();
	// alert(rows.length);
};
dsMenu2Observer.onLoadError = function(dataSet, data){
/*	alert("onLoadError dsMenu2Observer \nUrl: " + data.url +
	"\nxhRequest.statusText: " + xhRequest.statusText +
	"\nxhRequest.readyState: " + xhRequest.readyState);*/
};
dsIdiomaEstudioObserver.onPreLoad = function(dataSet, data){
	//alert("onPreLoad dsIdiomaEstudioObserver called!");
};
dsIdiomaEstudioObserver.onPostLoad = function(dataSet, data){
	// alert("onPostLoad dsIdiomaEstudioObserver called!");
	// var rows = dsIdiomaEstudio.getData();
	// alert(rows.length);
};
dsIdiomaEstudioObserver.onLoadError = function(dataSet, data){
//	alert("onLoadError dsIdiomaEstudioObserver \nUrl: " + data.url +
//	"\nxhRequest.statusText: " + xhRequest.statusText +
//	"\nxhRequest.readyState: " + xhRequest.readyState);
//	alert("estudio.js 1");
};
dsCarlosPremiosObserver.onPostLoad = function(dataSet, data){
	loadedImagesColaboradores();
};
dsPerfilObserver.onPostLoad = function(dataSet, data){
	loadedImagesColaboradores();
};
dsGaleriaObserver.onPostLoad = function(dataSet, data){
	loadedImagesColaboradores();
};
function initEstudioHTMLPanel(){
	// Enable the ability to execute script for *every*  HTMLPanel that is created.
	Spry.Widget.HTMLPanel.evalScripts = true;
	// Create an HTMLPanel for the element with the id of "contPanelData".
	panelEstudio = new Spry.Widget.HTMLPanel("contPanelEstudio");
	//Añadir un Observer al hpanel para comprovar su estado
	panelEstudio.addObserver(dataHTMLPanelObserverFunc);
	//Cargar el fragPerfil por defecto
	panelEstudio.loadContent("estudioFrags/fragPerfil.html");
}

// Add a function as an observer of the panelEstudio.
// http://labs.adobe.com/technologies/spry/articles/html_panel/index.html#notifications
function dataHTMLPanelObserverFunc(notificationType, notifier, data){
	if (notificationType == "onPostUpdate"){
		//Comprovar si el frag cargado es de los que tiene funcionalidad Javascript
		var carlosFerraterCont = document.getElementById("carlosFerraterCont");
		if (carlosFerraterCont != null){
			//Iniciar el frag fragCarlosFerrater.js;
			//alert("initCarlosFerrater");
			initCarlosFerrater();
		}
		var estudiosColaboradoresCont = document.getElementById("estudiosColaboradoresCont");
		if (estudiosColaboradoresCont != null){
			//Iniciar el frag fragEstudiosColaboradores.js;
			//alert("initEstudiosColaboradores");
			initEstudiosColaboradores();
		}
		var arquitectosAsociados = document.getElementById("arquitectosAsociados");
		if (arquitectosAsociados != null){
			//Iniciar el frag arquitectosAsociados.js;
			//alert("initArquitectosAsociados");
			initArquitectosAsociados();
		}
	}
}


function initEstudioFormato(){
	//alert('initEstudioFormato');
	//Ocultar: refBiblioItems y docenciaItems
	divIdVisibility('equipoItems', 'hidden');
	//Colorear por defecto
	divIdColor('estudio', '#FF0000');
	divIdColor('perfil', '#FF0000');
}
function initMenu2Ev(){
	//alert('initMenu2Ev');
	//Mostrar - Ocultar: refBiblioItems y docenciaItems
	Spry.$$("#perfil").addEventListener("click", visibility_equipoItems, false);
	Spry.$$("#cf").addEventListener("click", visibility_equipoItems, false);
	Spry.$$("#asociados").addEventListener("click", visibility_equipoItems, false);
	Spry.$$("#equipo").addEventListener("click", visibility_equipoItems, false);
	Spry.$$("#colaboradores").addEventListener("click", visibility_equipoItems, false);
	Spry.$$("#galeria").addEventListener("click", visibility_equipoItems, false);
	//cambiaMenu2Color
	Spry.$$("#perfil").addEventListener("click", cambiaMenu2Color, false);
	Spry.$$("#cf").addEventListener("click", cambiaMenu2Color, false);
	Spry.$$("#asociados").addEventListener("click", cambiaMenu2Color, false);
	Spry.$$("#equipo").addEventListener("click", cambiaMenu2Color, false);
	Spry.$$("#colaboradores").addEventListener("click", cambiaMenu2Color, false);
	Spry.$$("#galeria").addEventListener("click", cambiaMenu2Color, false);
	//Mostrar - Ocultar: fotografo
	Spry.$$("#perfil").addEventListener("click", visibility_fotografo, false);
	Spry.$$("#cf").addEventListener("click", visibility_fotografo, false);
	Spry.$$("#asociados").addEventListener("click", visibility_fotografo, false);
	Spry.$$("#equipo").addEventListener("click", visibility_fotografo, false);
	Spry.$$("#colaboradores").addEventListener("click", visibility_fotografo, false);
	Spry.$$("#galeria").addEventListener("click", visibility_fotografo, false);

}
function visibility_equipoItems(ev){
	//alert('visibility_equipoItems');
	if(this.id == "equipo"){
		divIdVisibility('equipoItems', 'visible');
	}
	else{
		divIdVisibility('equipoItems', 'hidden');
	}
}
function visibility_fotografo(ev){
	//alert('visibility_equipoItems');
	if(this.id == "perfil" || this.id == "galeria"){
		divIdVisibility('fotografo', 'visible');
	}
	else{
		divIdVisibility('fotografo', 'hidden');
	}
}
function preloadImageColaboradores(ds, row, rowIndex) {
	//alert('preloadImage');
	//var ruta = '/img/proyectos/' + row.ruta + '.jpg';
	var ruta = '/img/' + row.foto ;
	//alert("preloadImage " + row.ruta + " rowIndex " + rowIndex);
	 //console.log(ruta, rowIndex);
	if (rowIndex == 0) {
		//console.info('JustLOADED');
		imagepreloader.load(ruta, loadedImagesColaboradores);
	} else {
		imagepreloader.load(ruta);
	}
	return row;
}
function loadedImagesColaboradores(){
	//console.info('fadeOut');
	fadeOut = new Spry.Effect.Fade('preloader', { from: 100, to: 0 });
	fadeOut.start();
	//fadeIn = new Spry.Effect.Fade('Contenido', { from: 0, to: 100 });
	//fadeIn.start();
	setTimeout("muestraResultado()",1000);
}

function muestraResultado(){
	//console.info('fadeIn');
	//fadeIn = new Spry.Effect.Fade('Contenido', { from: 0, to: 100 });
	//fadeIn.start();
	divIdVisibility('Contenido', 'visible');
}
