/* Javascript para mundoplus.tv :: series
   v1.06 2006/06/11 - atnbueno@mundoplus.tv */

function creaTiraDeFotos() {
// Crea una tira de fotos a partir del texto de los enlaces del contenedor
// Usa la función randomizeArray()
	while (this.firstChild)
		this.removeChild(this.firstChild) // borra el contenido si es que hay alguno (para onclicks sucesivos)
	var titulosA = this.parentNode.getElementsByTagName('a')
	var titulos = new Array()
	for (var j=0, tituloA; tituloA=titulosA[j]; j++)
		titulos[j] = tituloA.firstChild.nodeValue
	randomizeArray(titulos)
	titulos = titulos.slice(0, Math.floor(this.parentNode.clientWidth/112)) // recorta la lista según ancho de fotos (112px) y ancho del contenedor
	for (var j=0; j<titulos.length; j++) {
		var foto = document.createElement('img')
		foto.src = '/zonaseries/imagenes/fotostira/'+toFilename(titulos[j])+'.jpg'
		foto.width = 112 //v1.06
		foto.setAttribute('alt', titulos[j]); //v1.06
		foto.setAttribute('title', titulos[j]); //v1.06
		this.appendChild(foto)
	}
}
function creaTirasDeFotos() {
// Crea tiras de fotos en todas las listas de clase 'series'
// A ejecutar una vez se han creado dichas listas
	var listasUL = document.getElementsByTagName('ul')
	for (var i=0, listaUL; listaUL=listasUL[i]; i++)
		if (listaUL.className.indexOf('series') >= 0) {
			var contenedorFotosDIV = document.createElement('div')
			contenedorFotosDIV.className='tira'
			listaUL.parentNode.replaceChild(contenedorFotosDIV, listaUL)
			contenedorFotosDIV.parentNode.appendChild(listaUL)
			contenedorFotosDIV.onclick=creaTiraDeFotos
			contenedorFotosDIV.onclick()
		}
}

function retocaListas() {
// Retoca el aspecto visual de las listas de clase 'series'
// A ejecutar una vez se han creado dichas listas
	var listasUL = document.getElementsByTagName('ul')
	for (var i=0, listaUL; listaUL=listasUL[i]; i++) {
		if (listaUL.className.indexOf('series') >= 0) {
			var elementosLista = listaUL.getElementsByTagName('li')
			// Asigna la clase 'alterno' a los elementos pares de la lista
			for (var j=1, elementoLista; elementoLista=elementosLista[j]; j+=2)
				elementoLista.className = trim(elementoLista.className+' alterno')
		}
	}
}
function enlazaNombres() {
// A ejecutar una vez se han generado todos los objetos implicados
	// Crea la imagen con id=foto donde mostrar cada foto (se reutiliza en cada contenedor)
	nodoFoto = document.createElement('img')
	nodoFoto.src = ''
	nodoFoto.id = 'foto'
	// Determina nombres a buscar
	// a) con foto: reparto
	var nombresConFoto = new Array()
	var repartoUL = document.getElementById('reparto')
	var guiaDIV = document.getElementById('guia')
	if (repartoUL) {
		repartoUL.appendChild(nodoFoto)
		var nombresB = repartoUL.getElementsByTagName('b')
		for (var i=0, nombreB; nombreB=nombresB[i]; i++)
			nombresConFoto[nombresConFoto.length] = trim(nombreB.firstChild.nodeValue)
	}
	if (guiaDIV)
		guiaDIV.appendChild(nodoFoto)
	// b) con foto: subrayados
	var nombresU = document.getElementsByTagName('u')
	if (nombresU)
		for (var i=0, nombreU; nombreU=nombresU[i]; i++)
			nombresConFoto[nombresConFoto.length] = trim(nombreU.firstChild.nodeValue)
	removeDuplicates(nombresConFoto)
	// c) sin foto: ficha técnica
	var nombresSinFoto = new Array()
	var fichaUL = document.getElementById('ficha')
	if (fichaUL) {
		var categoriasB = fichaUL.getElementsByTagName('b')
		for (var i=0, categoriaB; categoriaB=categoriasB[i]; i++) {
			var categoria = trim(categoriaB.firstChild.nodeValue)
			if ((categoria.slice(0,7) == 'Creador') || (categoria == 'Producción Ejecutiva')) {
				var nombres = categoriaB.nextSibling.nodeValue.replace(' y ',',').split(',')
				for (var j=0; j<nombres.length; j++)
					nombresSinFoto[nombresSinFoto.length] = trim(nombres[j])
			}
		}
	}
	removeDuplicates(nombresSinFoto)
	arrayDiff(nombresSinFoto, nombresConFoto)
	// Precarga de fotos
	for (var i=0; i<nombresConFoto.length; i++)
		setTimeout('precargaFoto(\''+escape(nombresConFoto[i])+'\')', 100+i*100) // IE necesita algo de tiempo entre precargas
	// Convierte en enlaces todas las ocurrencias de los nombres
	if (repartoUL) {
		var sinopsisDIV = document.getElementById('sinopsis')
		var noticiasDIV = document.getElementById('noticias')
		for (var i=0, nombreB; nombreB=nombresB[i]; i++)
			enlazaNombreIMDb(nombreB, nombreB.firstChild.nodeValue, true)
		for (var i=0; i<nombresConFoto.length; i++) {
			if (fichaUL)
				enlazaNombreIMDb(fichaUL, nombresConFoto[i], true)
			if (sinopsisDIV)
				enlazaNombreIMDb(sinopsisDIV, nombresConFoto[i], true)
			if (noticiasDIV) 
				enlazaNombreIMDb(noticiasDIV, nombresConFoto[i], true)
		}
		for (var i=0; i<nombresSinFoto.length; i++) {
			if (fichaUL)
				enlazaNombreIMDb(fichaUL, nombresSinFoto[i], false)
			if (sinopsisDIV)
				enlazaNombreIMDb(sinopsisDIV, nombresSinFoto[i], false)
			if (noticiasDIV) 
				enlazaNombreIMDb(noticiasDIV, nombresSinFoto[i], false)
		}
	}
	if (guiaDIV)
		for (var i=0, nombreU; nombreU=nombresU[i]; i++)
			enlazaNombreIMDb(nombreU.firstChild, nombreU.firstChild.nodeValue, true)
}

function h3hover() {this.id == 'h3hover' ? this.id = '' : this.id = 'h3hover'} /* para IE */

function recogeODespliega() {
	if (this.className == 'recogido') {
		this.className = ''
		this.nextSibling.className = '' /* para IE */
		if (this.nextSibling.nextSibling)
			this.nextSibling.nextSibling.className = '' /* para el resto */
	} else {
		this.className = 'recogido'
		this.nextSibling.className = 'recogido' /* para IE */
		if (this.nextSibling.nextSibling)
			this.nextSibling.nextSibling.className = 'recogido' /* para el resto */
	}
}

function expandirEpisodios() {
	var episodiosH3 = this.parentNode.getElementsByTagName('h3')
	for (var i=0, episodioH3; episodioH3=episodiosH3[i]; i++) {
		episodioH3.className = 'recogido'
		episodioH3.onclick()
	}
	return false
}
function recogerEpisodios() {
	var episodiosH3 = this.parentNode.getElementsByTagName('h3')
	for (var i=0, episodioH3; episodioH3=episodiosH3[i]; i++) {
		episodioH3.className = ''
		episodioH3.onclick()
	}
	return false
}
function recogeTemporadas() {
	episodiosH3 = document.getElementsByTagName('h3')
	for (var i=0, episodioH3; episodioH3=episodiosH3[i]; i++) {
		episodioH3.onmouseover = h3hover /* para IE */
		episodioH3.onmouseout = h3hover /* para IE */
		episodioH3.onclick = recogeODespliega
		episodioH3.className = '' /* para IE */
		episodioH3.onclick()
	}
	temporadasDIV = document.getElementsByTagName('div')
	for (var i=0, temporadaDIV; temporadaDIV=temporadasDIV[i]; i++) {
		if (temporadaDIV.className == 'temporada') {
			var enlace = document.createElement('a')
			var texto = document.createTextNode('Expandir todo')
			enlace.appendChild(texto)
			enlace.setAttribute('href', '#')
			enlace.className = 'nav'
			enlace.onclick = expandirEpisodios
			temporadaDIV.insertBefore(enlace, temporadaDIV.firstChild)
			enlace = document.createElement('a')
			texto = document.createTextNode('Recoger todo')
			enlace.appendChild(texto)
			enlace.setAttribute('href', '#')
			enlace.className = 'nav'
			enlace.onclick = recogerEpisodios
			temporadaDIV.insertBefore(enlace, temporadaDIV.firstChild)
		}
	}
}

function recogeNoticias() {
	var noticiasDIV = document.getElementById('noticias')
	if (noticiasDIV) {
		var noticiasH3 = noticiasDIV.getElementsByTagName('h3')
		for (var i=0, noticiaH3; noticiaH3=noticiasH3[i]; i++) {
			noticiaH3.onmouseover = h3hover /* para IE */
			noticiaH3.onmouseout = h3hover /* para IE */
			noticiaH3.onclick = recogeODespliega
			noticiaH3.className = '' /* para IE */
			if (i != 0)
				noticiaH3.onclick()
		}
	}
}

/* v1.06 */

function divideListas() {
	var listasUL = document.getElementsByTagName('ul')
	for (var i=0, listaUL; listaUL=listasUL[i]; i++)
		if (listaUL.className == 'series') {
			var elementosLista = listaUL.getElementsByTagName('li')
			var delta = Math.floor((elementosLista.length+1)/2)
			var offset = elementosLista[0].offsetTop // ==0 en IE y FF, >0 en Op
			var alterno = 0
			for (var j=0, elementoLista; elementoLista=elementosLista[j]; j++) {
				if (j==delta)
					alterno = 0
				if (j>=delta) {
					elementoLista.className=trim(elementoLista.className+' columna2')
					elementoLista.style.top = elementosLista[j-delta].offsetTop-offset+'px'
				}
				if (alterno == 1)
					elementoLista.className=trim(elementoLista.className+' alterno')
				alterno = 1 - alterno
			}
		}
}

function usaTab() {
	var tabs = this.parentNode.getElementsByTagName('li')
	for (var i=0, tab; tab=tabs[i]; i++) {
		tab.className = ''
		panel = document.getElementById(tab.id.slice(0,-4))
		panel.style.display = 'none'
	}		
	this.className = 'here'
	panel = document.getElementById(this.id.slice(0,-4))
	panel.style.display = 'block'
	if (location.hash != '#'+panel.id)
		location.hash = '#'+panel.id
}

function creaTabs() {
	var listasUL = document.getElementsByTagName('ul')
	alturaFichas = 0
	var tabs = document.createElement('ul')
	tabs.id="tabs"
	for (var i=0, listaUL; listaUL=listasUL[i]; i++)
		if (listaUL.className == 'series') {
			if (listaUL.offsetHeight > alturaFichas)
				alturaFichas = listaUL.offsetHeight
			var tituloH3 = listaUL.parentNode.getElementsByTagName('h3')[0]
			var tab = document.createElement('li')
			if (tituloH3.parentNode.id == '') 
				tituloH3.parentNode.id = 'panel'+(i+1) // por si el panel no tiene ID
			tab.id = tituloH3.parentNode.id+'_tab'
			tab.appendChild(tituloH3.firstChild)
			tituloH3.parentNode.removeChild(tituloH3)
			tabs.appendChild(tab)
			tab.onclick = usaTab
		}
	for (var i=0; listaUL=listasUL[i]; i++)
		listaUL.style.height = alturaFichas+'px'
	var contenedor = listasUL[0].parentNode.parentNode
	contenedor.insertBefore(tabs, contenedor.firstChild)
	tabID = location.hash.slice(1)+'_tab'
	tab = document.getElementById(tabID)
	tab = tab ? tab : tabs.firstChild
	tab.onclick()
}

function creaPestanas() {
	var contenedorDIV = document.getElementById('pestanas')
	var pestanasDIV = contenedorDIV.getElementsByTagName('div')
	alturaFichas = 0
	var tabs = document.createElement('ul')
	tabs.id="tabs"
	for (var i=0, pestanaDIV; pestanaDIV=pestanasDIV[i]; i++)
		if (pestanaDIV.className == 'pestana') {
			if (pestanaDIV.offsetHeight > alturaFichas)
				alturaFichas = pestanaDIV.offsetHeight
			var tituloH3 = pestanaDIV.getElementsByTagName('h3')[0] // H3 dentro del DIV
			var tab = document.createElement('li')
			tab.id = pestanaDIV.id+'_tab'
			tab.appendChild(tituloH3.firstChild)
			pestanaDIV.removeChild(tituloH3)
			tabs.appendChild(tab)
			tab.onclick = usaTab
		}
	for (var i=0; pestanaDIV=pestanasDIV[i]; i++)
		pestanaDIV.style.height = alturaFichas+'px'
	contenedorDIV.insertBefore(tabs, contenedorDIV.firstChild)
	tabID = location.hash.slice(1)+'_tab'
	tab = document.getElementById(tabID)
	tab = tab ? tab : tabs.firstChild
	tab.onclick()
}

function volverAIndice() {
	var volverA = document.getElementById('volver')
	if (volverA && document.referrer) {
		if ((document.referrer.slice(0, 35) == 'http://www.mundoplus.tv/zonaseries/') ||
			(document.referrer.slice(0, 31) == 'http://mundoplus.tv/zonaseries/'))
				volverA.setAttribute('href', document.referrer)
	}
}

/* funciones resumen */ 

function indiceSeries() {
	creaTirasDeFotos()
	divideListas()
	creaTabs()
}
function fichaSerie() {
	retocaListas()
	enlazaNombres()
	recogeNoticias()
	volverAIndice()
}