/**
 *
 * 
 * ficheros requeridos:
 *  
 * 'librerias/js/url/querystring.js',
  * 'includes/json/json.js',
 * 
 */

blog={

/* ************************************************************************
 * 	GALERIA AJAX
 * ************************************************************************/	
/**
 * Funcion pasada a la peticion ajax para tratar el evento de captura
 * 
 * Captura los datos de la peticion. Si hay algun error lo muestra en la zona
 * ... En caso contrario ...
 * 
 * @param {Object} req peticion XMLHTTP
 */
recarga_imagen:function (req) {
	var datos;
	var errorTxt;
	
	errorTxt='';
	try { 
		//alert(req.responseText);
		datos= req.responseText;
		if (datos==null || datos=="") 
			throw "NODATA"; 
		datos= JSON.parse(datos);
		
		// errores de ajax
		if (datos.error!="" )
			throw "ERRORAJAX";
			
		jQuery('div#gal > div.borde > img').attr("src",datos.imagen);
		jQuery('div#gal > div.borde > img').attr("alt",datos.pie);
		jQuery('div#gal span').html(datos.pie);
		
		
		jQuery('div#enlaceanterior').empty();
		jQuery('div#enlaceanterior').append(datos.enlaceanterior);
		jQuery('div#enlacesiguiente').empty();
		jQuery('div#enlacesiguiente').append(datos.enlacesiguiente);
		
		// Volver a asignar los eventos pq el codigo ha cambiado
		blog.asigna_evento_enlaces();		
	}
	catch (err)
	{
		if (err=="NODATA") 			errorTxt="Datos no proporcionados"
		else if (err=="ERRORAJAX") 	errorTxt=datos.error;
		else 						errorTxt=err.description;
		
		// TODO
		jQuery("div#errorajax").empty();
		jQuery("div#errorajax").append('<p class="e">Error: '+errorTxt+'</p>');
	}
},
/*
 * El unico dato que no podemos conocer a priori es el id del registro de detalle.
 * Debemos pasarlo por parametro
 */
enviar_peticion: function (enlace){
	var qstring,qs,url,idregistro,modulo,idimagen,idioma;
	
	qstring=enlace.split('?');
	qs=new Querystring(qstring[1]);
	modulo=qs.get("modulo",'');
	idregistro=qs.get('idnoticia',0);
	idimagen=qs.get("idimagen",0);
	idioma=qs.get("idioma",0);
	
	url='indexajax.php?modulo=ajax_galerias&tabla='+modulo+'&idregistro='+idregistro+
									  '&idimagen='+idimagen+'&idioma='+idioma;
	
	libxmlhttp.sendRequest(url,blog.recarga_imagen);
},	
/* ************************************************************************
 * COMENTARIOS
 * ************************************************************************/
/**
 * Incializa el comportamiento de los menus desplegables
 */
comentarios:function()
{
	// Todos los <li> hijos directos (sus descendientes heredan)
	jQuery("div#comentarios > h3 > a ").click(blog.comentariosAcordeon);
	jQuery("div#comentarios > ul").hide();
	jQuery("div#comentarios > ul.desplegado").show();
	jQuery("div#comentarios div#adicional").hide();
	jQuery("div#comentarios div.desplegado").show();
},
/* ************************************************************************
 * ASIGNAR EVENTOS
 * ************************************************************************/

click_anterior : function ()
{
	var enlace;
	
	enlace=jQuery("div#enlaceanterior a").attr('href');
	
	// Le pasamos como query a consultar la del enlace del click
	blog.enviar_peticion(enlace);
	
	return false;
},
/*
 * Envia una peticion ajax para recargar la imagen.
 */
click_siguiente : function ()
{
	var enlace;
	
	enlace=jQuery("div#enlacesiguiente a").attr('href');
	
	// Le pasamos como query a consultar la del enlace del click
	blog.enviar_peticion(enlace);
	
	return false;
},
comentariosAcordeon : function()
{
	var plegar;
	
	// Despliegues de clases
	
	// si tiene la clase no hace falta nada
	if (jQuery("div#comentarios > ul").is(".desplegado")) plegar=true; 	// plegar
	else										   		  plegar=false;	// desplegar
	
	// ¿Cambiar la imagen dependiendo del despliegue? ¿Es necesario?
	
	// Despliegues de clases
	// si tiene la clase no hace falta nada
	if (plegar) 
	{
		// buscar el marcado como desplegado y ocultarlo
		jQuery("div#comentarios > ul").slideUp();
		jQuery("div#comentarios > ul").removeClass("desplegado"); // elimina una clase si no la tiene
		jQuery("div#comentarios div#adicional").hide();
		jQuery("div#comentarios div#adicional").removeClass("desplegado");
	}
	else // desplegar
	{
		// marcar el actual y desplegarlo
		jQuery("div#comentarios > ul").addClass("desplegado"); // añade si no estaba puesta ya
		jQuery("div#comentarios > ul").slideDown();
		jQuery("div#comentarios div#adicional").addClass("desplegado")
		jQuery("div#comentarios div#adicional").show();
	}
	
	return false;
},


/*
 * Ordenes a realizar cuando se carga la pagina.
 * 
 */
asigna_evento_enlaces : function () {
	jQuery("div#enlaceanterior a").click(blog.click_anterior);
	jQuery("div#enlacesiguiente a").click(blog.click_siguiente);
	
	blog.comentarios();
}

}

// Asegurarse de que JQuery esta definido con anterioridad
jQuery(document).ready(blog.asigna_evento_enlaces);

