// creamos una variable para saber si estamos en el IE6
var ie6 = (window.navigator.appVersion.indexOf('MSIE 6.0') != -1)?true:false;

document.getElementsByClassName = function(className, container){
   var data = tags = [];
   var obj = document.getElementById("contenedor");
   var node = aux = null;
	var strClassName = className.replace(/\-/g, "\\-");
    var pattern = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	if(container) node = (typeof(container) == "object") ? container : document.getElementById(container);
	else node = (obj) ? obj : document;
	aux = node.getElementsByTagName("*");
	tags = (document.all) ? node.all : aux;
   for(var i=0;i<tags.length;i++) { if(pattern.test(tags[i].className)) data.push(tags[i]);}
   return data;
}



var CONTACTO = {

	inicio : function() {
		// le añadimos el ONCLICK al enlace de "Contacto"
		document.getElementById('enlace-contacto').getElementsByTagName('a')[0].onclick = function() {
			this.parentNode.className = 'activo';
			return false;
		}
		// le añadimos el ONCLICK al botón de cerrar en la capa de contacto
		document.getElementById('enlace-contacto').getElementsByTagName('button')[1].onclick = function() {
			this.parentNode.parentNode.className = '';
		}
	}

}


// creamos una variable que contendrá el elemento activo de las sugerencias de búsqueda
var activo;
// creamos una variable que contendrá el número de elementos de las sugerencias de búsqueda
var cuantos = 0;
// creamos una variable que contendrá el texto anterior del campo del buscador
var textoAnterior = '';
// creamos una variable que contendrá el texto introducido en el campo del buscador
var textoIntroducido = '';


var BUSCADOR = {

	inicio : function() {
		// detectamos una tecla pulsada en el campo de texto del buscador
		document.getElementById('buscador').onkeyup = function(e) {
                document.getElementById( 'node' ).value = '';
		
		//document.getElementById('buscador').parentNode.parentNode.action = '/content/search';
		
			if (typeof(e) == 'undefined')
				e = event;
			// si es el cursor de arriba, llamamos a la función "anterior"
			if (e.keyCode == 38)
				BUSCADOR.anterior();
			// si es el cursor de abajo, llamamos a la función "siguiente"
			else if (e.keyCode == 40)
				BUSCADOR.siguiente();
			// si es el ESC, ocultamos la lista de sugerencias
			else if (e.keyCode == 27)
				BUSCADOR.ocultar();
			// si es cualquier otra tecla, comprobamos si el usuario ha introducido 3 o más caracteres
			else if (this.value.length > 2) {
				// comprobamos si ha habido cambios en el texto del buscador
				if (textoAnterior!= this.value) {
					// hacemos la llamada de AJAX
					var instanciaBuscador;
					AJAX.cargaDatos('busqueda',instanciaBuscador,this.value);
					// actualizamos la variable que contiene el texto anterior
					textoAnterior = this.value;
					// actualizamos la variable que contiene el texto introducido
					textoIntroducido = this.value;
					// actualizamos la variable que contiene el elemento activo
					activo = null;
				}
			// en caso contrario, comprobamos si existe la lista de sugerencias de búsqueda
			} else if (document.getElementById('sugerencias-busqueda') != null) {
				// la borramos
				document.getElementById('buscador-favoritos').removeChild(document.getElementById('contenedor-sugerencias-busqueda'));
				// actualizamos la variable que contiene el elemento activo
				activo = null;
			}
		}
		// comprobamos si hay últimas búsquedas cargadas
		if (document.getElementById('tus-ultimas-busquedas') != null) {
			// añadimos el TITLE al texto de "Tus últimas búsquedas"
			document.getElementById('tus-ultimas-busquedas').getElementsByTagName('dt')[0].title = literal["textos"][0];
			// añadimos el ONCLICK al texto de "Tus últimas búsquedas"
			document.getElementById('tus-ultimas-busquedas').getElementsByTagName('dt')[0].onclick = function() {
				// si las últimas búsquedas están ocultas
				if (document.getElementById('tus-ultimas-busquedas').className != 'activa') {
					// las mostramos
					document.getElementById('tus-ultimas-busquedas').className = 'activa';
					// actualizamos el TITLE del texto
					this.title = literal["textos"][1];;
					// si estamos en IE6 cargamos el filtro que arregla el error de transparencia de PNGs
					if (ie6)
						FILTRO.carga(this.parentNode,this.parentNode.currentStyle.backgroundImage);
				// si las últimas búsquedas son visibles
				} else {
					// las ocultamos
					document.getElementById('tus-ultimas-busquedas').className = '';
					// actualizamos el TITLE del texto
					this.title = literal["textos"][0];
					// si estamos en IE6 anulamos el filtro que arregla el error de transparencia de PNGs
					if (ie6)
						FILTRO.anula(this.parentNode);
				}
			}
			// añadimos el ONCLICK al botón de cerrar
			document.getElementById('tus-ultimas-busquedas').getElementsByTagName('button')[0].onclick = function() {
				// ocultamos las últimas búsquedas
				document.getElementById('tus-ultimas-busquedas').className = '';
				// actualizamos el TITLE del texto
				this.title = literal["textos"][0];
				// si estamos en IE6 anulamos el filtro que arregla el error de transparencia de PNGs
				if (ie6)
					FILTRO.anula(document.getElementById('tus-ultimas-busquedas').getElementsByTagName('dl')[0]);
			}
		}
	},

	anterior : function() {
		// comprobamos si existen las sugerencias de búsqueda
		if (document.getElementById('sugerencias-busqueda') != null) {
			// si es la primera vez que entramos, activamos el último
			if (activo == null) {
				activo = cuantos-1;
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].className = 'activa';
				// copiamos su contenido al campo de texto del buscador
				document.getElementById('buscador').value = document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].innerHTML;
			// si el elemento activo es el primero, no activamos ninguno y desactivamos el primero
			} else if (activo == 0) {
				activo = null;
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[0].className = '';
				// cargamos el texto introducido en el campo del buscador
				document.getElementById('buscador').value = textoIntroducido;
			// en cualquier otro caso, activamos el anterior y desactivamos el actual
			} else {
				activo--;
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].className = 'activa';
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo+1].className = '';
				// copiamos su contenido al campo de texto del buscador
				document.getElementById('buscador').value = document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].innerHTML;
			}

		}
	},

	siguiente : function() {
		// comprobamos si existen las sugerencias de búsqueda
		if (document.getElementById('sugerencias-busqueda') != null) {
			// si es la primera vez que entramos, activamos el primero
			if (activo == null) {
				activo = 0;
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].className = 'activa';
				// copiamos su contenido al campo de texto del buscador
				document.getElementById('buscador').value = document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].innerHTML;
			// si el elemento activo es el último, no activamos ninguno y desactivamos el último
			} else if (activo == (cuantos-1)) {
				activo = null;
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[cuantos-1].className = '';
				// cargamos el texto introducido en el campo del buscador
				document.getElementById('buscador').value = textoIntroducido;
			// en cualquier otro caso, activamos el siguiente y desactivamos el actual
			} else {
				activo++;
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].className = 'activa';
				document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo-1].className = '';
				// copiamos su contenido al campo de texto del buscador
				document.getElementById('buscador').value = document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[activo].innerHTML;
			}

		}
	},

	actualizar : function(cual) {
		// copiamos el texto de la opción seleccionada al campo de texto
                var carpeta = (window.location.href.indexOf( '/es/') == -1 )?'eng':'es';
		document.getElementById('buscador').value = cual.innerHTML;
                var aux = cual.id.replace('node_', '' );
		document.getElementById('node').value = aux;
		document.getElementById('buscador').parentNode.parentNode.action = '/' + carpeta + '/ajax/redirigir';
		// borramos la lista de sugerencias de búsqueda
		document.getElementById('buscador-favoritos').removeChild(document.getElementById('contenedor-sugerencias-busqueda'));
		// actualizamos la variable que contiene el elemento activo
		activo = null;
		// enviamos el formulario
		//alert('submit');
		//document.getElementById('buscador-favoritos').getElementsByTagName('form')[0].submit();
	},

	ocultar : function() {
		// comprobamos si existen las sugerencias de búsqueda
		if (document.getElementById('sugerencias-busqueda') != null) {
			// copiamos el texto introducido al campo del buscador
			document.getElementById('buscador').value = textoIntroducido;
			// borramos la lista de sugerencias de búsqueda
			document.getElementById('buscador-favoritos').removeChild(document.getElementById('contenedor-sugerencias-busqueda'));
			// actualizamos la variable que contiene el elemento activo
			activo = null;
		}
	},

	desactivaTodas : function() {
		// recorremos todas las sugerencias de búsqueda y las desactivamos
		for (j=0;j<cuantos;j++) {
			document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[j].className = '';
		}
	},

	encuentraActivo : function() {
		// recorremos todas las sugerencias de búsqueda hasta encontrar la que está activa
		for (j=0;j<cuantos;j++) {
			if (document.getElementById('sugerencias-busqueda').getElementsByTagName('li')[j].className == 'activa')
				activo = j;
		}
		return activo;
	}

}




var FILTRO = {

	carga : function(elemento,fondo) {
		// limpiamos la cadena para quedarnos con la ruta de la imagen
		var penege = fondo.substring(5,fondo.length-2);
		// recogemos el valor del "background-repeat"
		var repetido = elemento.currentStyle.backgroundRepeat;
		// comprobamos si está repetido o no para aplicar el "sizingMethod" que corresponda
		if (repetido == 'no-repeat')
			elemento.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + penege + '", sizingMethod="crop")';
		else
			elemento.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + penege + '", sizingMethod="scale")';
		// borramos el "background-image" existente
		elemento.style.backgroundImage = 'url("")';
	},

	anula : function(elemento) {
		// anulamos el filtro
		elemento.style.filter = null;
	}

}




var CANALES = {

	inicio : function() {
		// buscamos todos los elementos que tengan canales asociados
		var estrongs = document.getElementById('pie').getElementsByTagName('dl')[0].getElementsByTagName('strong');
		// los recorremos
		for (i=0;i<estrongs.length;i++) {
			// añadimos el ONCLICK al STRONG
			estrongs[i].onclick = function() {
				this.parentNode.className = 'activa';
			}
			// añadimos el ONCLICK al botón de cerrar
			estrongs[i].parentNode.getElementsByTagName('button')[0].onclick = function() {
				this.parentNode.parentNode.parentNode.className = '';
			}
		}
	}

}




// creamos una variable para almacenar el contenedor sobre el que está haciendo la valoración el usuario
var contenedorValoracion;

var VALORACION = {

	inicio : function(cual) {
		// recogemos el contenedor de la valoración
		contenedorValoracion = cual;
		// recogemos todos los enlaces
		var enlaces = contenedorValoracion.getElementsByTagName('a');
		// les añadimos el ONMOUSEOVER que haga el efecto de rollover y el ONCLICK que mande la valoración por AJAX
		for (i=0;i<enlaces.length;i++) {
			enlaces[i].onmouseover = function() {
				contenedorValoracion.getElementsByTagName('dd')[0].className = this.parentNode.className;

			}
			/*enlaces[i].onclick = function() {
				// si se está llamando desde los filtros de los resultados de búsqueda, se hace la llamada AJAX para actualizarlos
				if (contenedorValoracion.parentNode.parentNode.id == 'filtros') {
					var instanciaFiltros;
					AJAX.cargaDatos('filtros',instanciaFiltros,null);
				}
				var instanciaValoracion;
				AJAX.cargaDatos('valoracion',instanciaValoracion,this.parentNode.className.split('-')[1]);
				return false;
			}*/
		}
	}

}


var FILTROS = {

	inicio : function(cual) {
		// recogemos el contenedor de la valoración
		contenedorValoracion = cual;
		// recogemos todos los enlaces
		var enlaces = contenedorValoracion.getElementsByTagName('a');
		// les añadimos el ONMOUSEOVER que haga el efecto de rollover y el ONCLICK que mande la valoración por AJAX
		for (i=0;i<enlaces.length;i++) {
			enlaces[i].onmouseover = function() {
				contenedorValoracion.getElementsByTagName('dd')[0].className = this.parentNode.className;

			}
			/*enlaces[i].onclick = function() {
				// si se está llamando desde los filtros de los resultados de búsqueda, se hace la llamada AJAX para actualizarlos
				if (contenedorValoracion.parentNode.parentNode.id == 'filtros') {
					var instanciaFiltros;
					AJAX.cargaDatos('filtros',instanciaFiltros,null);
				}
				var instanciaValoracion;
				AJAX.cargaDatos('valoracion',instanciaValoracion,this.parentNode.className.split('-')[1]);
				return false;
			}*/
		}
	}

}



// creamos una variable para almacenar el botón que está pulsando el usuario
var botonFavoritos;

var FAVORITOS = {
	
	
	inicio : function(boton) {
		
		
		
		
		// le asignamos el ONCLICK
		boton.onclick = function() {
			
			
			botonFavoritos = this;
			// comprobamos si el vídeo está o no añadido a favoritos de inicio
			if (this.id.indexOf('anyadir') != -1)
				var elArray = new Array('anyadir',this.getAttribute('valor'));
			else
				var elArray = new Array('eliminar',this.getAttribute('valor'));
			// hacemos la llamada de AJAX
			var instanciaFavoritos;
			AJAX.cargaDatos('favoritos',instanciaFavoritos,elArray);
		}
		
	}

}




var GENERALES = {

	ventanaNueva : function(ancho,alto,direccion) {
		alert(ancho + ' | ' + alto + ' | ' + direccion);
	}

}






addLoadEvent(function() {
	CONTACTO.inicio();
});

addLoadEvent(function() {
	BUSCADOR.inicio();
});

addLoadEvent(function() {
	CANALES.inicio();
});




// añadido de eventos realizado como en http://simon.incutio.com/archive/2004/05/26/addLoadEvent

function addLoadEvent(fn) {
    var old = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = fn;
    } else {
        window.onload = function() {
            old();
            fn();
        }
    }
}







/***********************************************************
*********** FUNCIONES DE CARGA CON XMLHttpRequest **********
***********************************************************/


var AJAX = {
	currentObj:null,
	cargaDatos : function(accion,instancia,parametros, currentObj) {
		instancia = false;
		AJAX.currentObj = currentObj;
		if (window.XMLHttpRequest) {
			try {
				instancia = new XMLHttpRequest();
			} catch(e) {
				instancia = false;
			}
		} else if(window.ActiveXObject) {
			try {
				instancia = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				try {
					instancia = new ActiveXObject("Microsoft.XMLHTTP");
				} catch(e) {
					instancia = false;
				}
			}
		}
		if (instancia) {
			instancia.onreadystatechange = function() {
				AJAX.procesaCambios(accion,instancia);
			}			
			instancia.open("POST", AJAX.construirURL(accion), true);
			instancia.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			instancia.send(AJAX.construirParametros(accion,parametros));
		} else {
			/*
			if (console != null)
				console.log('ERROR AJAX: Se ha producido un error al intentar crear el objeto');
			*/	
		}
	},

	construirURL : function(accion) {
		// creamos la variable que devolveremos con la URL de destino de la llamada de AJAX
		var uerreele;
		// comprobamos el tipo de acción y actualizamos la variable
		switch (accion) {
			case 'busqueda' 			:	uerreele = '/ajax/predictive_search';
											break;
				case 'valoracion'			:	uerreele = '/xhr/xhr_valoracion.php';
												break;
			case 'favoritos'			:	uerreele = '/ajax/favorites_action';
											break;
			case 'carrusel'				:	uerreele = '/ajax/photo_carousel';
											break;
			case 'carrusel2'			:	uerreele = '/ajax/photo_carousel';
											break;
			case 'carusel0'				:	uerreele = '/ajax/photo_carousel10';
											break;
			case 'carusel1'				:	uerreele = '/ajax/photo_carousel11';
											break;
			case 'carusel2'				:	uerreele = '/ajax/photo_carousel12';
											break;
			case 'filtros'				:	uerreele = '/xhr/xhr_filtros.php';
											break;
			case 'paginacionAlbum'		:	uerreele = '/xhr/xhr_paginacion_album.php';
											break;
			case 'paginacionComentarios':	uerreele = '/xhr/xhr_paginacion_comentarios.php';
											break;
			case 'compartir'			:	uerreele = '/formularios/compartir';
											break;
			case 'contactoAjax'			:	uerreele = '/formularios/contacto';
											break;
		}
		return uerreele;
	},

	construirParametros : function(accion,parametros) {
		
		
		
		// creamos la variable que devolveremos con las variables que hemos de pasar en la llamada de AJAX
		var cadena;
		// comprobamos el tipo de acción y actualizamos la variable
		switch (accion) {
			case 'busqueda'				:	cadena = 'cadena=' + parametros;
											break;
			case 'valoracion'			:	cadena = 'valoracion=' + parametros;
											break;
			case 'favoritos'			:	cadena = 'accion=' + parametros[0] + '&id=' + parametros[1];
											break;
			case 'carrusel'				:	cadena = 'seleccionada=' + parametros;
											break;
			case 'carrusel2'			:	cadena = 'seleccionada=' + parametros;
											break;
			case 'carusel0'			:	cadena = 'seleccionada=' + parametros;
											break;
			case 'carusel1'			:	cadena = 'seleccionada=' + parametros;
											break;
			case 'carusel2'			:	cadena = 'seleccionada=' + parametros;
											break;
			case 'filtros'				:	cadena = FILTROS.construirParametros();
											break;
			case 'paginacionAlbum'		:	cadena = 'seleccionada=' + parametros;
											break;
			case 'paginacionComentarios':	cadena = 'seleccionada=' + parametros;
											break;

			case 'compartir'			:	cadena = 'datosCompartir=' + parametros ;
											break;
			case 'contactoAjax'			:	cadena = 'datosContacto=' + parametros ;
											break;
		}
		return cadena;
	},

	procesaCambios : function(accion,instancia) {
		if (instancia.readyState == 4) {
			if ((instancia.status == 200) || (instancia.status == 304)) {
				// recuperamos los datos y los transformamos a un objeto de JSON
				var datos = new Object(json_parse(instancia.responseText));
				// comprobamos si el proceso ha sido correcto
				if (datos[0] == '1') {
					// comprobamos el tipo de acción y realizamos la llamada a la función que corresponda pasándole los datos devueltos
					switch (accion) {
						case 'busqueda'				:	AJAX.busqueda(datos[1]);
														break;
						case 'valoracion'			:	AJAX.valoracion(datos[1]);
														break;
						case 'favoritos'			:	AJAX.favoritos(datos[1]); 
														break;
						case 'carrusel'				:	AJAX.carrusel(datos[1]);
														break;
						case 'carrusel2'			:	AJAX.carruseles(datos[1],AJAX.currentObj);
														break;
						case 'carusel0':			
						case 'carusel1':
						case 'carusel2'			:	AJAX.carruseles(datos[1],AJAX.currentObj);
														break;
						case 'filtros'				:	AJAX.filtros(datos[1]);
														break;
						case 'paginacionAlbum'		:	AJAX.paginacionAlbum(datos[1]);
														break;
						case 'paginacionComentarios':	AJAX.paginacionComentarios(datos[1]);
														break;
						case 'valoracion'			:	AJAX.valoracion(datos[1]);
														break;
						case 'favoritos'			:	AJAX.favoritos(datos[1]);
														break;
						case 'carrusel'				:	AJAX.carrusel(datos[1]);
														break;
						case 'filtros'				:	AJAX.filtros(datos[1]);
														break;
						case 'paginacionAlbum'		:	AJAX.paginacionAlbum(datos[1]);
														break;
						case 'paginacionComentarios':	AJAX.paginacionComentarios(datos[1]);
														break;
						case 'contactoAjax'			:	AJAX.contactoAjax(datos[1]);
														break;
						case 'compartir'			:	AJAX.compartir(datos[1]);
														break;

					}
				} else {
					/*
					if (console != null)
						console.log('ERROR AJAX: El proceso no ha sido correcto. Por favor, vuelve a intentarlo');
					*/	
				}
			} else {
				/*
				if (console != null)
					console.log('ERROR AJAX: Se produjo un error al intentar recuperar los datos');
				*/	
			}
		}
	},

	busqueda : function(datos) {
		

		// si la lista de sugerencias de búsqueda ya existía, la borramos
		if (document.getElementById('contenedor-sugerencias-busqueda') != null)
			document.getElementById('buscador-favoritos').removeChild(document.getElementById('contenedor-sugerencias-busqueda'));
		// comprobamos si hay elementos en los datos devueltos
		if (datos.length > 0) {
			// actualizamos la variable que contiene el número de elementos
			cuantos = datos.length;
			// creamos los contenedores necesarios
			var div_contenedor = document.createElement('div');
			div_contenedor.id = 'contenedor-sugerencias-busqueda';
			var div_sugerencias = document.createElement('div');
			div_sugerencias.id = 'sugerencias-busqueda';
			var div_lista = document.createElement('div');
			div_lista.id = 'contenedor-lista-sugerencias';
			// creamos la lista de las sugerencias de búsqueda
			var oele = document.createElement('ol');
			// recorremos los datos devueltos
			for (i=0;i<datos.length;i++) {
				// creamos el elemento
				var elei = document.createElement('li');
				// le añadimos el TITLE
				elei.title = 'Buscar ' + datos[i] + ' en IE Media Campus';
                                // le añadimos el node id
                                elei.id = 'node_' + datos[i].id;
				// le añadimos su contenido
				elei.innerHTML = datos[i].name;
				// le añadimos su ONCLICK
				elei.onclick = function() {
					BUSCADOR.actualizar(this);
				}
				// le añadimos su ONMOUSEOVER
				elei.onmouseover = function() {
					// desactivamos todas las opciones
					BUSCADOR.desactivaTodas();
					// activamos la seleccionada
					this.className = 'activa';
					// actualizamos la variable que contiene el elemento activo
					activo = BUSCADOR.encuentraActivo();
				}
				// lo añadimos a la lista
				oele.appendChild(elei);
			}
			// añadimos la lista y los contenedores
			div_lista.appendChild(oele);
			div_sugerencias.appendChild(div_lista);
			div_contenedor.appendChild(div_sugerencias);
			// añadimos todo al documento
			document.getElementById('buscador-favoritos').appendChild(div_contenedor);
			// si estamos en IE6 cargamos el filtro que arregla el error de transparencia de PNGs
			if (ie6) {
				FILTRO.carga(document.getElementById('sugerencias-busqueda'),document.getElementById('sugerencias-busqueda').currentStyle.backgroundImage);
				FILTRO.carga(document.getElementById('sugerencias-busqueda').getElementsByTagName('ol')[0],document.getElementById('sugerencias-busqueda').getElementsByTagName('ol')[0].currentStyle.backgroundImage);
			}
		}
	},

	valoracion : function(datos) {
		// comprobamos si el texto ha de ser singular o plural
		var estrellas = (datos == '1')?'estrella':'estrellas';
		// actualizamos la clase de la DL
		contenedorValoracion.getElementsByTagName('dl')[0].className = 'valoracion-' + datos;
		// si no se está llamando desde los filtros de los resultados de búsqueda, asignamos las clases para que no se pueda volver a valorar
		if (contenedorValoracion.parentNode.parentNode.id != 'filtros') {
			contenedorValoracion.getElementsByTagName('dt')[0].className = 'valorado';
			contenedorValoracion.getElementsByTagName('dd')[0].className = 'valorado';
		}
		// recogemos el texto actual y lo modificamos según la nueva valoración media devuelta
		var texto = contenedorValoracion.getElementsByTagName('dt')[0].title;
		texto = texto.split(' ');
		texto[texto.length-2] = datos;
		texto[texto.length-1] = estrellas;
		texto = texto.join(' ');
		// actualizamos el TITLE y el texto para que muestre la nueva valoración media
		contenedorValoracion.getElementsByTagName('dt')[0].title = texto;
		contenedorValoracion.getElementsByTagName('dt')[0].innerHTML = '<span>' + texto + '</span>';
	},

	favoritos : function(accion) {
		
		
		
		
		// creamos uno nuevo
		var clon = document.createElement('button');
		// lo modificamos según la acción deseada sea "anyadir" o "eliminar"
		if (accion == 'anyadir') {
			clon.id = 'eliminar-de-favoritos';
			clon.title = 'Eliminar este vídeo de mis favoritos';
			clon.innerHTML = '<span>Eliminar de favoritos</span>';
		} else {
			clon.id = 'anyadir-a-favoritos';
			clon.title = 'Añadir este vídeo a mis favoritos';
			clon.innerHTML = '<span>Añadir a favoritos</span>';
		}
		// le asignamos el mismo VALUE que tenía el anterior
		clon.value = botonFavoritos.value;
		clon.setAttribute('valor', botonFavoritos.getAttribute('valor'));
		// le añadimos el mismo ONCLICK que tenía el anterior
		clon.onclick = botonFavoritos.onclick;
		// lo reemplazamos por el nuevo
		botonFavoritos.parentNode.replaceChild(clon,botonFavoritos);
		
	},


	compartir : function(datos) {
	//Esto pinta el resultado final recogiendo los datos que le paso desde el tpl de la extension compartit.tpl
		if (datos.length > 1) {

				// recorremos los datos devueltos
			for (i=1;i<datos.length;i++) {

				if (datos[i]['envio']!="")
				{
					var ocultar = document.getElementById("formCompartir");
					ocultar.style.display = "none";

					pElement = document.createElement("p");
					pElement.className = "enviado";

					pElement.appendChild(document.createTextNode(datos[i]['envio']));
					var objEnvio = document.getElementById("formCompartir");
					objEnvio.parentNode.insertBefore(pElement,objEnvio)
				}

				/*Nombre*/
				var obj = document.getElementById("tu-nombre");
				var error1 = document.getElementsByClassName("error_1",obj.parentNode)[0];

				if (error1 != undefined)
					{
						padre = error1.parentNode;
						padre.removeChild(error1);
					}

				if (datos[i]['error1']!= "")
				{

					spanElement = document.createElement("span");
					spanElement.className = "error_1";

					spanElement.appendChild(document.createTextNode(datos[i]['error1']));
					obj.parentNode.insertBefore(spanElement,obj)

				}

				/*Correo*/
				var obj = document.getElementById("tu-correo");
				var error2 = document.getElementsByClassName("error_2",obj.parentNode)[0];

				if (error2 != undefined)
					{
						padre = error2.parentNode;
						padre.removeChild(error2);
					}

				if (datos[i]['error2']!= "")
				{
					spanElement = document.createElement("span");
					spanElement.className = "error_2";

					spanElement.appendChild(document.createTextNode(datos[i]['error2']));
					obj.parentNode.insertBefore(spanElement,obj)
				}


				/*Su nombre*/
				var obj = document.getElementById("su-nombre");
				var error3 = document.getElementsByClassName("error_3",obj.parentNode)[0];

				if (error3 != undefined)
					{
						padre = error3.parentNode;
						padre.removeChild(error3);
					}

				if (datos[i]['error3']!= "")
				{
					spanElement = document.createElement("span");
					spanElement.className = "error_3";

					spanElement.appendChild(document.createTextNode(datos[i]['error3']));
					obj.parentNode.insertBefore(spanElement,obj)
				}

				/*Su correo*/
				var obj = document.getElementById("su-correo");
				var error4 = document.getElementsByClassName("error_4",obj.parentNode)[0];

				if (error4 != undefined)
					{
						padre = error4.parentNode;
						padre.removeChild(error4);
					}

				if (datos[i]['error4']!= "")
				{
					spanElement = document.createElement("span");
					spanElement.className = "error_4";

					spanElement.appendChild(document.createTextNode(datos[i]['error4']));
					obj.parentNode.insertBefore(spanElement,obj)
				}
			}
		}

	},





	contactoAjax : function(datos) {
	//Esto pinta el resultado final recogiendo los datos que le paso desde el tpl de la extension compartit.tpl
		if (datos.length > 1) {

				// recorremos los datos devueltos
			for (i=1;i<datos.length;i++) {

				if (datos[i]['envio']!="")
				{
					var ocultar = document.getElementById("formContacto");
					ocultar.style.display = "none";

					var ocultar = document.getElementById("formContactoEnvioOk");
					ocultar.style.display = "block";


					pElement = document.createElement("p");
					pElement.className = "enviado";

					pElement.appendChild(document.createTextNode(datos[i]['envio']));
					var objEnvio = document.getElementById("envioOkCont");
					objEnvio.parentNode.insertBefore(pElement,objEnvio)

				}


					var obj = document.getElementById("correo-contacto");
					var error1 = document.getElementsByClassName("error_1",obj.parentNode)[0];

					if (error1 != undefined)
						{
							padre = error1.parentNode;
							padre.removeChild(error1);
						}

					if (datos[i]['error1']!= "")
					{

						spanElement = document.createElement("span");
						spanElement.className = "error_1";

						spanElement.appendChild(document.createTextNode(datos[i]['error1']));
						obj.parentNode.insertBefore(spanElement,obj)

					}

					var obj = document.getElementById("mensaje-contacto");
					var error2 = document.getElementsByClassName("error_2",obj.parentNode)[0];

					if (error2 != undefined)
					{
						padre = error2.parentNode;
						padre.removeChild(error2);
					}

					if (datos[i]['error2']!= "")
					{
						spanElement = document.createElement("span");
						spanElement.className = "error_2";

						spanElement.appendChild(document.createTextNode(datos[i]['error2']));
						obj.parentNode.insertBefore(spanElement,obj)
					}





			}
		}

	},



	carrusel : function(datos) {
		// comprobamos en qué idioma nos encontramos
		var carpeta = (document.body.className == 'castellano')?'es':'en';
		// actualizamos la paginación del carrusel
		CARRUSEL.actualizaPaginacion(datos[0],carpeta);
		// comprobamos si hay datos devueltos
		if (datos.length > 1) {
			// eliminamos las imágenes anteriores
			document.getElementById('lista-imagenes').innerHTML = '';
			// recorremos los datos devueltos
			for (i=1;i<datos.length;i++) {
				// creamos cada elemento
				var elei = document.createElement('li');
				// creamos su enlace
				var enlace = document.createElement('a');
				enlace.title = 'Ver la foto titulada ' + datos[i]['titulo'];
				enlace.href = /*'/' + carpeta + '/fotos/' +*/ datos[i]['url'] + '/';
				// creamos su imagen
				var imagen = document.createElement('img');
				imagen.src = /*'/img/' + */datos[i]['fichero'];
				imagen.setAttribute('alt','Imagen de la foto titulada ' + datos[i]['titulo']);
				imagen.setAttribute('width','135');
				imagen.setAttribute('height','105');
				// añadimos los elementos
				enlace.appendChild(imagen);
				elei.appendChild(enlace);
				document.getElementById('lista-imagenes').appendChild(elei);
			}
		}
	},


	carrusel2 : function(datos) {
		// comprobamos en qué idioma nos encontramos
		var carpeta = (document.body.className == 'castellano')?'es':'en';
		// actualizamos la paginación del carrusel
		CARRUSEL.actualizaPaginacion(datos[0],carpeta);
		// comprobamos si hay datos devueltos
		if (datos.length > 1) {
			// eliminamos las imágenes anteriores
			document.getElementById('lista-imagenes').innerHTML = '';
			// recorremos los datos devueltos
			for (i=1;i<datos.length;i++) {
				// creamos cada elemento
				var elei = document.createElement('li');
				// creamos su enlace
				var enlace = document.createElement('a');
				enlace.title = 'Ver la foto titulada ' + datos[i]['titulo'];
				enlace.href = '/' + carpeta + '/fotos/' + datos[i]['url'] + '/';
				// creamos su imagen
				var imagen = document.createElement('img');
				imagen.src = /*'/img/' + */datos[i]['fichero'];
				imagen.setAttribute('alt','Imagen de la foto titulada ' + datos[i]['titulo']);
				imagen.setAttribute('width','135');
				imagen.setAttribute('height','105');
				// añadimos los elementos
				enlace.appendChild(imagen);
				elei.appendChild(enlace);
				document.getElementById('lista-imagenes').appendChild(elei);
			}
		}
	},

	carruseles : function(datos, current) {
                
		// comprobamos en qué idioma nos encontramos
		var carpeta = (document.body.className == 'castellano')?'es':'en';
		var listaImagenes = document.getElementsByClassName('lista-imagenes', current)[0]
		// actualizamos la paginación del carrusel
		CARRUSEL.actualizaPaginacion(datos[0],carpeta, current);
		// comprobamos si hay datos devueltos
		if (datos.length > 1) {
			// eliminamos las imágenes anteriores
			listaImagenes.innerHTML = '';
			// recorremos los datos devueltos
			for (i=1;i<datos.length;i++) {
				// creamos cada elemento
				var elei = document.createElement('li');
				// creamos su enlace
				var enlace = document.createElement('a');
				enlace.title = 'Ver la foto titulada ' + datos[i]['titulo'];
				enlace.href = /*'/' + carpeta + '/fotos/' +*/ datos[i]['url'] + '/';
				// creamos su imagen
				var imagen = document.createElement('img');
				imagen.src = /*'/img/' + */datos[i]['fichero'];
				imagen.setAttribute('alt','Imagen de la foto titulada ' + datos[i]['titulo']);
				imagen.setAttribute('width','207');
				imagen.setAttribute('height','161');
				// añadimos los elementos
				enlace.appendChild(imagen);
				elei.appendChild(enlace);
				listaImagenes.appendChild(elei);
			}
		}
	},

	filtros : function(datos) {
		// actualizamos los resultados de búsqueda
		document.getElementById('resultados').innerHTML = datos;
		// añadimos los eventos a la información de los resultados
		FILTROS.eventosInformacion();
		// añadimos los eventos a los resultados
		FILTROS.eventosResultados();
		// si estamos en IE6 cargamos el filtro que arregla el error de transparencia de PNGs
		if (ie6)
			FILTROS.filtrosResultados();
	},

	paginacionAlbum : function(datos) {
		// actualizamos la lista de imágenes
		document.getElementById('imagenes-album').innerHTML = datos[0];
		// actualizamos la paginación
		document.getElementById('pie-album').removeChild(document.getElementById('pie-album').getElementsByTagName('ul')[0]);
		document.getElementById('pie-album').innerHTML += datos[1];
		// añadimos los eventos a la paginación
		PAGINACION_ALBUM.inicio();
	},

	paginacionComentarios : function(datos) {
		// actualizamos los comentarios
		document.getElementById('lista-comentarios').getElementsByTagName('div')[0].innerHTML = datos;
		// añadimos los eventos a la paginación
		PAGINACION_COMENTARIOS.inicio();
	}

}

