// Pseudo-NameSpace. 
plantillas={

/* ********************************************************
 * SPLASHPAGE
 * ********************************************************/

asigna_splash_page : function ()
{
	var enlace,qstring,qs,idZona,idioma;
	
	enlace=document.location.href;
	qstring=enlace.split('?');
	qs=new Querystring(qstring[1]);

	idZona=qs.get("idzona",null);
	idioma=qs.get("idioma",null);
	
	// Si no esta en la url ni en las coockies activamos la seleccion de idiomas.
	if ((idZona==null || idioma==null) &&  
		(document.cookie.indexOf("idzona",0)==-1 || document.cookie.indexOf("idioma",0)==-1) )
	{
		$("a#splashpage").click(); // Tiene asociada la clase thickbox que a su vez reasigna el evento onclick
	}
},

/* ********************************************************
 * ENLACES DE LOS TIPOS (DEPRECATED)
 * ********************************************************/

/**
 * 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 ...
 * 
 * Al pinchar en un tipo debe recargar los menus de familias, subfamilias y productos
 *
 * @param {Object} req peticion XMLHTTP
 */
recarga_menu_familias:function (req) {
	var datos;
	var errorTxt;
	
	errorTxt='';
	try { 
		datos= req.responseText;
		if (datos==null || datos=="") 
			throw "NODATA"; 
		datos= JSON.parse(datos);
		
		// errores de ajax
		if (datos.error!="" )
			throw "ERRORAJAX";
			
		jQuery('div#menufamilias').empty();
		jQuery('div#menufamilias').append(datos.menufamilias);
		
		// TODO Volver a asignar los eventos pq el codigo ha cambiado
		plantillas.asigna_evento_familia();
		
		jQuery("div#errormenu").empty();
	}
	catch (err)
	{
		if (err=="NODATA") 			errorTxt="Datos no proporcionados"
		else if (err=="ERRORAJAX") 	errorTxt=datos.error;
		else 						errorTxt=err.description;
		
		// TODO
		jQuery("div#errormenu").empty();
		jQuery("div#errormenu").append('<p class="e">Error: '+errorTxt+'</p>');
	}
},
click_tipo : function ()
{
	var enlace,qstring,qs,url,idTipo,idZona;
	
	enlace=jQuery(this).attr('href');
	qstring=enlace.split('?');
	qs=new Querystring(qstring[1]);

	idZona=qs.get("idzona");
	idTipo=qs.get("idtipo");
	
	url='indexajax.php?modulo=ajax_menu_familias&idtipo='+idTipo+'&idzona='+idZona;
	
	libxmlhttp.sendRequest(url,plantillas.recarga_menu_familias);
	
	return false;
},
asigna_evento_tipo : function () {
	jQuery("div#menu ul#enlacestipo > li > a").click(plantillas.click_tipo);
},

/* ********************************************************
 * ENLACES DE LAS FAMILIAS (DEPRECATED)
 * ********************************************************/

/**
 * 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 ...
 * 
 * Al pinchar en un tipo debe recargar los menus de familias, subfamilias y productos
 *
 * @param {Object} req peticion XMLHTTP
 */
recarga_menu_subfamilias:function (req) {
	var datos;
	var errorTxt;
	
	errorTxt='';
	try { 
		datos= req.responseText;
		if (datos==null || datos=="") 
			throw "NODATA"; 
		datos= JSON.parse(datos);
		
		// errores de ajax
		if (datos.error!="" )
			throw "ERRORAJAX";
			
		jQuery('div#menusubfamilias').empty();
		jQuery('div#menusubfamilias').append(datos.menusubfamilias);
		
		// TODO Volver a asignar los eventos pq el codigo ha cambiado
		
		jQuery("div#errormenu").empty();
	}
	catch (err)
	{
		if (err=="NODATA") 			errorTxt="Datos no proporcionados"
		else if (err=="ERRORAJAX") 	errorTxt=datos.error;
		else 						errorTxt=err.description;
		
		// TODO
		jQuery("div#errormenu").empty();
		jQuery("div#errormenu").append('<p class="e">Error: '+errorTxt+'</p>');
	}
},
click_familia : function ()
{
	var enlace,qstring,qs,url,idTipo,idZona,idFamilia;
	
	enlace=jQuery(this).attr('href');
	qstring=enlace.split('?');
	qs=new Querystring(qstring[1]);

	idZona=qs.get("idzona");
	idTipo=qs.get("idtipo");
	idFamilia=qs.get("idfamilia");
	
	url='indexajax.php?modulo=ajax_menu_subfamilias&idtipo='+idTipo+'&idfamilia='+idFamilia+'&idzona='+idZona;
	
	libxmlhttp.sendRequest(url,plantillas.recarga_menu_subfamilias);
	
	return false;
},
asigna_evento_familia : function () {
	jQuery("div#menu ul#enlacesfamilia > li > a").click(plantillas.click_familia);
},


asigna_eventos_menu : function () {
	plantillas.asigna_evento_tipo();
	plantillas.asigna_evento_familia();
},

/* ********************************************************
 * FUNCIONES DE INICIALIZACION DE SIFR
 * ********************************************************/

sIFR_carga:function () 
{
	if(typeof sIFR == "function")
	{			   
	sIFR.replaceElement(named({sSelector:"h2.helvetica", sFlashSrc:"includes/sifr/avalon.swf", 
							   sColor:"#EA6709", sLinkColor:"#3F386D", sHoverColor: "#DFD7C7", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));						   
	sIFR.replaceElement(named({sSelector:"span.verde", sFlashSrc:"includes/sifr/avalon.swf", 
							   sColor:"#717140", sLinkColor:"#3F386D", sHoverColor: "#DFD7C7", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));
	sIFR.replaceElement(named({sSelector:"h3.verde", sFlashSrc:"includes/sifr/avalon.swf", 
							   sColor:"#717140", sLinkColor:"#3F386D", sHoverColor: "#DFD7C7", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));							   						   							   
  	};
},

googleAnalytics:function()
{
	_uacct = plantillas_google_analytics();
	urchinTracker();
},
/* ********************************************************
 * INICIALIZACIONES DE TODO EL DOCUMENTO
 * ********************************************************/

/**
 * Esta funcion debe ser la primera para ser asignada al evento ready del documento. Lo primero que hay que 
 * hacer es indicarle a jQuery que entre en el modo sin conflictos.
 */
onLoadPlantillas:function()
{
	//jQuery.noConflict();
	
	//plantillas.asigna_eventos_menu(); No lo llamamos
	plantillas.sIFR_carga();

	//plantillas.asigna_splash_page();
	
	// Finalmente, google analytics TODO ¿puede dejar de mandar algunos datos?
	plantillas.googleAnalytics();
} 

}

// Asignacion al evento. Cualquiera otra asignacion debe ser incluida posteriormente a este fichero
jQuery(document).ready(plantillas.onLoadPlantillas);