// Pseudo-NameSpace. 
plantillas={

/* ********************************************************
 * RELATIVOS AL MENU
 * ********************************************************/


/**
 * Incializa el comportamiento de los menus desplegables.
 * 
 * Tenemos que diferenciar los que cambian la imagen de los que no,
 * siendo ambos plegables o desplegables.
 *  
 * 
 */
menuInicio:function()
{
	// Todos los <li> hijos directos (sus descendientes heredan). Es importante el orden en el que se asignan
	
	// Solo a los directos los subrayados
	jQuery("ul#menudesp > li.desplegable > a ").click(plantillas.menuAcordeonSubrayados);
	// A todos los despliegues
	jQuery("ul#menudesp li.desplegable > a ").click(plantillas.menuAcordeonDespliegues);
	
	jQuery("ul#menudesp li ul").hide();
	jQuery("ul#menudesp li.desplegado > ul").show();	
},
/**
 * Pasado un elemento img y si hay que plegarlo o no se le pone la imagen
 * pertinente. Esta funcion devuelve el path a la imagen
 * 
 * @param {string} modulo string del modulo al que hace referencia su enlace
 * @param {Object} enlace objeto item a
 * @param {bool} plegar   si hay que plegarlo true. False en caso contrario.
 * @param {string} pathImg  ruta hasta el directorio del fichero, con / final 
 */
dev_path_imagen : function(modulo,enlace,plegar,pathImg,idTipo)
{
	switch(modulo)
	{
		case "noticias": 
			if (plegar)	pathImg=pathImg+'m_noticias.gif';
			else		pathImg=pathImg+'mm_noticias.gif';
			break;
		case "blog": 
			if (plegar)	pathImg=pathImg+'m_blog.gif';
			else		pathImg=pathImg+'mm_blog.gif';
			break;
		case "detalle_concursos": 
			if (plegar)	pathImg=pathImg+'m_concursos.gif';
			else		pathImg=pathImg+'mm_concursos.gif';
			break;
		case "concursos": 
			if (plegar)	pathImg=pathImg+'m_concursos.gif';
			else		pathImg=pathImg+'mm_concursos.gif';
			break;
		case "tiendas": 
			if (plegar)	pathImg=pathImg+'m_shops.gif';
			else		pathImg=pathImg+'mm_shops.gif';
			break;
		case "colaboradores": 
			if (plegar)	pathImg=pathImg+'m_colaboraciones.gif';
			else		pathImg=pathImg+'mm_colaboraciones.gif';
			break;
		case "descargas": 
			if (plegar)	pathImg=pathImg+'m_descargas.gif';
			else		pathImg=pathImg+'mm_descargas.gif';
			break;
		case "info_corporativa": 
			if (plegar)	pathImg=pathImg+'m_nosotros.gif';
			else		pathImg=pathImg+'mm_nosotros.gif';
			break;			
		case "contacto": 
			if (plegar)	pathImg=pathImg+'m_contacto.gif';
			else		pathImg=pathImg+'mm_contacto.gif';
			break;
		case "tienda":
			if (plegar)	pathImg=pathImg+'m_tipo_'+idTipo+'.gif';
			else		pathImg=pathImg+'mm_tipo_'+idTipo+'.gif';
			
			break;			
	}
	return pathImg;
},
/**
 * Pasado un elemento img y si hay que plegarlo o no se le pone la imagen
 * pertinente.
 * 
 * Ademas, al li padre hay que señalarle si esta subrayado o no.
 * No confundir con desplegable y desplegado, que se encargan de comprobar
 * si el li puede o no estar desplegado, y si lo está. Los despliegues no se
 * aplican a todos los li del menu, mientras que el subrayado sí. 
 * 
 * @param {string} modulo string del modulo al que hace referencia su enlace
 * @param {Object} enlace objeto item a
 * @param {bool} plegar   si hay que plegarlo true. False en caso contrario.
 * @param {string} pathImg  ruta hasta el directorio del fichero, con / final 
 */
subrayados_menu : function(modulo,enlace,plegar,pathImg,idTipo)
{
	pathImg=plantillas.dev_path_imagen(modulo,enlace,plegar,pathImg,idTipo);
	
	// Cambiar la imagen del enlace
	jQuery("> img",enlace).attr("src",pathImg);
	
	// Señalar si el li padre esta subrayado o no	
	if (plegar)	
		jQuery(enlace.parentNode).removeClass("subrayado");
	else	
		jQuery(enlace.parentNode).addClass("subrayado");
	
},
/**
 * Funcion que se aplica sobre un enlace del menu
 * (ul#menudesp > li.subrayado > a).
 * En this esta el enlace, y se le debe quitar el subrayado.
 * Para ello le aplicamos la funcion de subrayados
 */
quitar_subrayados : function ()
{
	var ref,qs,qstring,modulo,idioma,idTipo,pathImg;
	
	ref=jQuery(this).attr("href");
	qstring=ref.split('?');
	qs=new Querystring(qstring[1]);
	
	modulo=qs.get("modulo",'');
	idioma=qs.get("idioma",0);
	idTipo=qs.get("idtipo",0);
	if (idTipo > 0)
		pathImg='img_tienda/tipos/'+idioma+'/';
	else
		pathImg='img/'+idioma+'/';	
	
	plantillas.subrayados_menu(modulo,this,true,pathImg,idTipo);
},
/**
 * Comprueba si el enlace debe plegarse o desplegarse. Es importante llamar 
 * a esta funcion antes de hacer cualquier cambio.
 * 
 * @param {Object} enlace
 */
comprobar_plegar : function(enlace)
{
	var plegar;
	
	if (jQuery(enlace.parentNode).is(".desplegado")) plegar=true; 	// plegar
	else										   plegar=false;	// desplegar
	
	return plegar;	
},
/**
 * Cambia los subrayados. Primero elimina todos los subrayados que ya existan,
 * y despues sobre pone en subrayado la imagen dependiente del enlace pasado
 * por parametro, que ademas debe ser de los hijos li directos de menudesp.
 * 
 * @param {Object} plegar
 * @param {Object} enlace
 */
comprobar_subrayados : function (plegar,enlace)
{
	var ref,qs,qstring,modulo,idioma,idTipo,pathImg;
	
	
	// Cambiar la imagen dependiendo del despliegue
	ref=jQuery(enlace).attr("href");
	qstring=ref.split('?');
	qs=new Querystring(qstring[1]);
	
	modulo=qs.get("modulo",'');
	idioma=qs.get("idioma",0);
	idTipo=qs.get("idtipo",0);
	if (idTipo > 0)
		pathImg='img_tienda/tipos/'+idioma+'/';
	else
		pathImg='img/'+idioma+'/';
	
	// Quitar los subrayados de otros enlaces
	jQuery("ul#menudesp > li.subrayado > a").each(plantillas.quitar_subrayados);
	
	// Poner el subrayado al enlace actual
	plantillas.subrayados_menu(modulo,enlace,plegar,pathImg,idTipo);
},
/**
 * Realiza el pliegue o despliegue de cualquiera de los li marcados como
 * desplegables. El enlace se pasa por parametro.
 * 
 * Para el despliegue se debe actuar desde el padre de <a>, es decir, el li que contiene a
 * los uls que hay que desplegar, y sobre el que hay que marcar con la clase desplegado.
 * 
 * En el caso de la tienda hay varios li's desplegables con enlaces a clickables.
 * 
 * @param {Object} plegar
 * @param {Object} enlace
 */
comprobar_despliegues : function (plegar,enlace)
{
	// Despliegues de clases
	// si tiene la clase no hace falta nada
	if (plegar) 
	{
		// buscar el marcado como desplegado y ocultarlo
		jQuery("> ul",enlace.parentNode).slideUp();
		jQuery(enlace.parentNode).removeClass("desplegado"); // elimina una clase si no la tiene
	}
	else // desplegar
	{
		// plegar los demas que estuvieran desplegados
		//jQuery("ul#menudesp > li.desplegado > ul").slideUp();
		//jQuery("ul#menudesp > li.desplegado ").removeClass("desplegado");
		jQuery(enlace.parentNode).siblings(".desplegado").children("ul").slideUp();
		jQuery(enlace.parentNode).siblings(".desplegado").removeClass("desplegado");
		
		// marcar el actual y desplegarlo
		jQuery(enlace.parentNode).addClass("desplegado"); // añade si no estaba puesta ya
		jQuery("> ul",enlace.parentNode).slideDown();
	}	
},
/**
 * Aplicado a todos los enlaces. This es el enlace sobre el q se hace click
 * 
 */
menuAcordeonDespliegues : function()
{
	var plegar;
	
	// Despliegues de clases
	plegar=plantillas.comprobar_plegar(this);
	
	plantillas.comprobar_despliegues(plegar,this);
	
	return false;
},
/**
 * 
 */
menuAcordeonSubrayados : function()
{
	var plegar;
	
	// Despliegues de clases
	plegar=plantillas.comprobar_plegar(this);
	
	plantillas.comprobar_subrayados(plegar,this);
	
	return false;
},
/* ********************************************************
 * FUNCIONES DE INICIALIZACION DE SIFR
 * ********************************************************/

sIFR_carga:function () 
{
	if(typeof sIFR == "function")
	{			   
	sIFR.replaceElement(named({sSelector:"span.rosa", sFlashSrc:"includes/sifr/amertype.swf", 
							   sColor:"#F677C5", sLinkColor:"#F677C5", sHoverColor: "#F677C5", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));
	sIFR.replaceElement(named({sSelector:"h2.helvetica", sFlashSrc:"includes/sifr/amertype.swf", 
							   sColor:"#9FDDEA", sLinkColor:"#9FDDEA", sHoverColor: "#DFD7C7", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));
	sIFR.replaceElement(named({sSelector:"li.helnarrow", sFlashSrc:"includes/sifr/helnarrow.swf", 
							   sColor:"#747474", sLinkColor:"#747474", sHoverColor: "#F18342", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));							   							   
	sIFR.replaceElement(named({sSelector:"h3.h3nar", sFlashSrc:"includes/sifr/helnarrow.swf", 
							   sColor:"#E96B10", sLinkColor:"#FF6308", sHoverColor: "#F18342", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));
	sIFR.replaceElement(named({sSelector:"strong#fecha", sFlashSrc:"includes/sifr/helnarrow.swf", 
							   sColor:"#E96B10", sLinkColor:"#FF6308", sHoverColor: "#F18342", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));
	sIFR.replaceElement(named({sSelector:"strong#fecha2", sFlashSrc:"includes/sifr/helnarrow.swf", 
							   sColor:"#E96B10", sLinkColor:"#FF6308", sHoverColor: "#F18342", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));							   
	sIFR.replaceElement(named({sSelector:"strong.nara", sFlashSrc:"includes/sifr/helnarrow.swf", 
							   sColor:"#E96B10", sLinkColor:"#FF6308", sHoverColor: "#F18342", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));							   
	sIFR.replaceElement(named({sSelector:"strong.nero", sFlashSrc:"includes/sifr/helnarrow.swf", 
							   sColor:"#000000", sLinkColor:"#FF6308", sHoverColor: "#F18342", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));
	sIFR.replaceElement(named({sSelector:"span.titulo", sFlashSrc:"includes/sifr/amertype.swf", 
							   sColor:"#9B5D9D", sLinkColor:"#9B5D9D", sHoverColor: "#eac1d1", sBgColor:"#ffffff", 
							   nPaddingTop: "0", nPaddingRight: "0", nPaddingBottom: "0", nPaddingLeft: "0", 
							   sWmode: "transparent"}));
	sIFR.replaceElement(named({sSelector:"span.fecha", sFlashSrc:"includes/sifr/amertype.swf", 
							   sColor:"#b0b0b0", sLinkColor:"#737373", sHoverColor: "#b9b9b9", 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.menuInicio();
	plantillas.sIFR_carga();

	// LightBox, posterior a sIFR
	// Lightbox no se carga cuando hay conflictos con las listas desplegables
	if (typeof(initLightbox)=="function")
		initLightbox();
	
	// 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);