<!-- Coments for explorers under 4 versions
/****************************************************

	FUNDACIÓN TELEFÓNICA
	Init 9-2008
	
	Author: Daniel Segovia
	Company: RENOVATIO COMUNICACION
			 www.renovatio-comunicacion.com

	v.1.> Septienbre 2008
	v.2.> Marzo 2009
*****************************************************/

/*####################################################################

	Funciones para DIV Objects

#####################################################################*/
	

	/*--------------------------------------------------------
		Función para dibujar el calendario
	---------------------------------------------------------*/
	
	var getCalendario = null;
	var xmlCalendario = null;
	var xmlCargado = false;
	var CualMes=0;
	var MesSeleccionado=0;
	var UltimoMesSeleccionado=0;
	var cargaCalDesdeBoton=0;
	var hoyTieneEvento=false;
	
	function CrearCalendario(QueMes){
		
		//Asignamos el estilo con la rayita
		if(document.getElementById("calendario")){
			document.getElementById("calendario").className="rayaCalendario";	
		}
		
		if(!xmlCargado){
			if (window.XMLHttpRequest){
				getCalendario=new XMLHttpRequest()
			}else if (window.ActiveXObject){
				getCalendario=new ActiveXObject("Microsoft.XMLHTTP")
			}
			if (getCalendario){
				xmlCargado=true;
				var url=pathXml + "media/xml/cal_"+ programa_calendario +".xml";
				getCalendario.onreadystatechange=CambioDeEstado;
				getCalendario.open("GET",url,true);
				getCalendario.send(null);
				if(!isNaN(QueMes)){
					CualMes=QueMes;
				}else{
					CualMes=0;	
				}
			}else{
				alert ("Tu explorador no soporta XMLHttpRequest");
			}
		}else{
			setCal(QueMes);	
		}
	}
	
	function CambioDeEstado(){
		if (getCalendario.readyState == 4){
			xmlCalendario = getCalendario.responseXML;
			xmlCalendario = xmlCalendario.getElementsByTagName('cita');
			setCal(CualMes);
		} 
	} 
	
	function bisiesto(Anio) {
		if (Anio % 4 == 0)
		return true
		return false
	}
	
	function diasPorMes(mes, Anio) {
	var meses = new Array(12)
	meses[1] = 31; // Enero
	meses[2] = (((Anio % 4 == 0) && (Anio % 100 != 0)) || (Anio % 400 == 0)) ? 29 : 28
	meses[3] = 31 // Marzo
	meses[4] = 30 // Abril
	meses[5] = 31 // Mayo
	meses[6] = 30 // Junio
	meses[7] = 31 // Julio
	meses[8] = 31 // Agosto
	meses[9] = 30 // Septiembre
	meses[10] = 31 // Octubre
	meses[11] = 30 // Noviembre
	meses[12] = 31 // Diciembre
	return meses[mes]
	}
	
	function getNombreDelMes(mes) {
	var meses = new Array(12)
	meses[1] = "Enero"
	meses[2] = "Febrero"
	meses[3] = "Marzo"
	meses[4] = "Abril"
	meses[5] = "Mayo"
	meses[6] = "Junio"
	meses[7] = "Julio"
	meses[8] = "Agosto"
	meses[9] = "Septiembre"
	meses[10] = "Octubre"
	meses[11] = "Noviembre"
	meses[12] = "Diciembre"
	return meses[mes]
	}
	
	function setCal(QueMes) {
		var now = new Date()
		var anio = now.getYear()
		if (anio < 1000) {anio+=1900}
		var mes = now.getMonth()+QueMes
		if (now.getMonth()+QueMes > 11) {mes-=12;anio++}
		if (now.getMonth()+QueMes < 0) {mes+=12;anio--}
		var fecha = now.getDate()
		//var primerDia = new Date(anio, mes, 1) //Esto sería para empezar en domingo
		var primerDia = new Date(anio, mes, 0)
		var primerDia2 = primerDia.getDay()
		primerDia = null
		var dias = diasPorMes(mes+1, anio)
		if(dias!=undefined){
			drawCal(primerDia2 + 1, dias, fecha, mes+1, anio)
		}else{
			MesSeleccionado=UltimoMesSeleccionado;
		}
		UltimoMesSeleccionado=QueMes;
	}
	
	function drawCal(firstDay, lastDate, date, Mes, Anio) {
		var encontrados=false;
		hoy = new Date();
		var esteAn=hoy.getYear();
		if (esteAn < 1000){esteAn+=1900;}
		var textoEventos='<span id="fecha_hoy" class="fechasolo"><a href="#" onclick="cargaCalDesdeBoton=1;PonMesActual();return false">'+hoy.getDate() + "/" + (hoy.getMonth()+1) + "/" + esteAn+'</a></span><ul>';
		var now = new Date()
		var codigo = ""
		codigo += '<table id="calendar" cellspacing="0" cellpadding="0" summary="Calendario">'
		codigo += '<caption>' + getNombreDelMes(Mes) + ' ' + Anio + '</caption>'		
		var diasSemana = new Array(7)
			 
		diasSemana[0] = "<th scope=\"col\" abbr=\"Lunes\" title=\"Lunes\">L</th>"
		diasSemana[1] = "<th scope=\"col\" abbr=\"Martes\" title=\"Martes\">M</th>"
		diasSemana[2] = "<th scope=\"col\" abbr=\"Mi&eacute;rcoles\" title=\"Mi&eacute;rcoles\">X</th>"
		diasSemana[3] = "<th scope=\"col\" abbr=\"Jueves\" title=\"Jueves\">J</th>"
		diasSemana[4] = "<th scope=\"col\" abbr=\"Viernes\" title=\"Viernes\">V</th>"
		diasSemana[5] = "<th scope=\"col\" abbr=\"S&aacute;bado\" title=\"S&aacute;bado\">S</th>"
		diasSemana[6] = "<th scope=\"col\" abbr=\"Domingo\" title=\"Domingo\">D</th>"
		
		codigo += '<tr>'
		for (var dayNum = 0; dayNum < 7; ++dayNum) {
			codigo += diasSemana[dayNum];
		}
		codigo += '</tr>'
		
		var cDia = 1
		var curCell = 1
		var cuantosRow=0;
		for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
			codigo += '<tr>'
			cuantosRow ++;
			titular="";
			for (var col = 1; col <= 7; ++col) {
				if (cDia > lastDate)
				break
				if (curCell < firstDay) {
					codigo += '<td></td>';
					curCell++
				} else {
					var textoCelda = cDia;
					var textoTd = '<td>'
					for (i=0;i<xmlCalendario.length;i++){
						var fecha = xmlCalendario[i].getAttribute('fecha');
						if (fecha == cDia+ "-" + Mes + "-" + Anio){
							//alert(fecha +"=="+cDia+ "-" + Mes + "-" + Anio)
							encontrados=true;
							var pais = xmlCalendario[i].getAttribute('pais');
							var lugar = xmlCalendario[i].getAttribute('lugar');
							var titulo = xmlCalendario[i].getAttribute('titulo');
							var url = xmlCalendario[i].getAttribute('url');
							var destacar = xmlCalendario[i].getAttribute('destacar');
							titular += pais + ': ' + titulo;
							textoCelda = '<a href="#" onclick="ponEvento(\''+fecha+'\');return false" title="'+titular+'">' + cDia + '</a>';
							titular +="\n\r";
							textoTd = '<td>'
							//Escribimos los dos primeros eventos:
							if(destacar==1){
								textoEventos +='<li><span class="seccion">'+pais+'</span><span class="fechaCalendario">';
								if(lugar!=""){
									textoEventos +=lugar+' - '+cDia+' de '+getNombreDelMes(Mes)+'</span>'+titulo+'<br><span class="ampliarIzq">';
								}else{
									textoEventos +=cDia+' de '+getNombreDelMes(Mes)+'</span>'+titulo+'<br><span class="ampliarIzq">';
								}
								if(url.indexOf("?")>=0){	
									textoEventos +='<a href="'+url+'" title="Ampliar informaci&oacute;n">Ampliar</a>';	
								}else{
									if(url!=""){
										textoEventos +='<a href="'+url+'" title="Ver &iacute;ndice de Eventos">&Iacute;ndice</a>';	
									}
								}
								textoEventos +='</span></li>';
							}
						}else{
							titular="";	
						}
					}
			
					if (cDia == date && Mes == (parseInt(hoy.getMonth())+1) && Anio == esteAn) {
					textoTd = '<td class="today">'
					}
					
					codigo += textoTd + textoCelda + '</td>'
					cDia++
				}
			}
		codigo += '</tr>'
		}
		if(cuantosRow==4){codigo += '</tr><td>&nbsp;</td></tr></tr><td>&nbsp;</td></tr>'}
		if(cuantosRow==5){codigo += '</tr><td>&nbsp;</td></tr>'}
		codigo += '</table>'
		codigo += '<div id="navegador" align="center"><a href="#" class="nav" title="mes anterior" onclick="cargaCalDesdeBoton=1;CrearCalendario(--MesSeleccionado);return false">&laquo; Anterior</a> | <a href="#" class="nav" title="mes posterior" onclick="cargaCalDesdeBoton=1;CrearCalendario(++MesSeleccionado);return false">Posterior &raquo;</a></div>'
		document.getElementById("calendario").innerHTML=codigo;
		
		if(encontrados){
			encontrados=false;
			textoEventos+='</ul>';	
			document.getElementById("eventos").innerHTML=textoEventos;
		}else{
			//Si no hay eventos este mes buscamos en uno anterior pero sólo cuando cargamos el calendario
			//para eso utilizamos esta variable "cargaCalDesdeBoton". Si es 0 es la primera vez que se carga.
			//Si es 1 significa que lo hemos ejecutado desde los botones de adelante y atrás.
			if(!cargaCalDesdeBoton){
				CrearCalendario(--MesSeleccionado);
				cargaCalDesdeBoton=1;
				//mesActual();
				//PonMesActual();
			}else{
				return false;	
			}
		}
		
		//Sacamos los eventos de hoy si es que hay
		mesActual=(parseInt(hoy.getMonth())+1)
		deHoy=hoy.getDate() + "-" + (parseInt(hoy.getMonth())+1) + "-" + esteAn
		if(mesActual==Mes){
			ponEvento(deHoy)
			if(!hoyTieneEvento){
				buscarProximos(deHoy)
			}
		}

	}
		
	
	function ponEvento(fechaSelec){
		//Separamos la fecha:
		var f_arr=fechaSelec.split("-");
		var ddia=f_arr[0]
		var mmes=f_arr[1]
		var aano=f_arr[2]
		
		hoy = new Date()
		var esteAn=hoy.getYear();
		if (esteAn < 1000){esteAn+=1900;}
		var textoEventos='<span id="fecha_hoy" class="fechasolo"><a href="#" onclick="cargaCalDesdeBoton=1;PonMesActual();return false">'+hoy.getDate() + "/" + (hoy.getMonth()+1) + "/" + esteAn+'</a></span><ul>';
		var encontrados=false;
		var cuantosVan=0;
		for (i=0;i<xmlCalendario.length;i++){
			var fecha = xmlCalendario[i].getAttribute('fecha');
			if (fecha == fechaSelec && cuantosVan<=1){
				cuantosVan++;
				encontrados=true;
				var pais = xmlCalendario[i].getAttribute('pais');
				var lugar = xmlCalendario[i].getAttribute('lugar');
				var titulo = xmlCalendario[i].getAttribute('titulo');
				var url = xmlCalendario[i].getAttribute('url');
				var destacar = xmlCalendario[i].getAttribute('destacar');		
				if(titulo.length>100){
					titulo=titulo.substr(0,100)+"...";
				}
				textoEventos +='<li><span class="seccion">'+pais+'</span><span class="fechaCalendario">';
				if(lugar!=""){
					textoEventos +=lugar+' - '+ddia+' de '+getNombreDelMes(mmes)+'</span>'+titulo+'<br><span class="ampliarIzq">';
				}else{
					textoEventos +=ddia+' de '+getNombreDelMes(mmes)+'</span>'+titulo+'<br><span class="ampliarIzq">';
				}
				if(url.indexOf("?")>=0){	
					textoEventos +='<a href="'+url+'" title="Ampliar informaci&oacute;n">Ampliar</a>';	
				}else{
					if(url!=""){
						textoEventos +='<a href="'+url+'" title="Ver &iacute;ndice de Eventos">&Iacute;ndice</a>';	
					}
				}
				textoEventos +='</span></li>';				
			}
		}
		if(encontrados){
			encontrados=false;
			hoyTieneEvento=true;
			textoEventos+='</ul>';	
			document.getElementById("eventos").innerHTML=textoEventos;
		}
	}
	
	function buscarProximos(fechaSelec){
		//Separamos la fecha:
		var f_arr=fechaSelec.split("-");
		var ddia=f_arr[0]
		var mmes=f_arr[1]
		var aano=f_arr[2]
		var myDate=new Date();
		myDate.setFullYear(aano,(mmes-1),ddia);
		
		hoy = new Date()
		var esteAn=hoy.getYear();
		if (esteAn < 1000){esteAn+=1900;}
		var textoEventos='<span id="fecha_hoy" class="fechasolo"><a href="#" onclick="cargaCalDesdeBoton=1;PonMesActual();return false">'+hoy.getDate() + "/" + (hoy.getMonth()+1) + "/" + esteAn+'</a></span><ul>';
		var encontrados=false;
		var cuantosVan=0;
		var arr_mayores=Array();
		for (i=0;i<xmlCalendario.length;i++){
			var fecha = xmlCalendario[i].getAttribute('fecha');
			f_arr_xml=fecha.split("-");
			ddia_xml=f_arr_xml[0]
			mmes_xml=f_arr_xml[1]
			aano_xml=f_arr_xml[2]

			var myDate_xml=new Date();
			myDate_xml.setFullYear(aano_xml,(mmes_xml-1),ddia_xml);
			//Sólo nos quedamos con los que estén por encima de nuestra fecha
			if (myDate_xml>myDate)
			{	
				esteDato=new dato_xml();
				esteDato.fecha = xmlCalendario[i].getAttribute('fecha');
				esteDato.pais= xmlCalendario[i].getAttribute('pais');
				esteDato.lugar= xmlCalendario[i].getAttribute('lugar');
				esteDato.titulo= xmlCalendario[i].getAttribute('titulo');
				esteDato.url= xmlCalendario[i].getAttribute('url');
				esteDato.destacar= xmlCalendario[i].getAttribute('destacar');
				arr_mayores.push(esteDato);
			}
		}
		
		//Invertimos el array para comenzar desde el más cercano a la fecha actual
		arr_mayores.reverse();
		pintaEventosProximos(arr_mayores);
	}	
	
	function pintaEventosProximos(arr){
		hoy = new Date()
		var esteAn=hoy.getYear();
		if (esteAn < 1000){esteAn+=1900;}
		var textoEventos='<span id="fecha_hoy" class="fechasolo"><a href="#" onclick="cargaCalDesdeBoton=1;PonMesActual();return false">'+hoy.getDate() + "/" + (hoy.getMonth()+1) + "/" + esteAn+'</a></span><ul>';
		var pintados=1;
		if(arr.length>1){
			for (i=0;i<arr.length;i++){
				if(pintados<=2){
					f_arr_xml=arr[i].fecha.split("-");
					ddia_xml=f_arr_xml[0]
					mmes_xml=f_arr_xml[1]
					aano_xml=f_arr_xml[2]
					pais = arr[i].pais;
					lugar = arr[i].lugar;
					titulo = arr[i].titulo;
					url = arr[i].url;
					destacar = arr[i].destacar;	
					if(titulo.length>100){
						titulo=titulo.substr(0,100)+"...";
					}
					textoEventos +='<li><span class="seccion">'+pais+'</span><span class="fechaCalendario">';
					if(lugar!=""){
						textoEventos +=lugar+' - '+ddia_xml+' de '+getNombreDelMes(mmes_xml)+'</span>'+titulo+'<br><span class="ampliarIzq">';
					}else{
						textoEventos +=ddia_xml+' de '+getNombreDelMes(mmes_xml)+'</span>'+titulo+'<br><span class="ampliarIzq">';
					}
					if(url.indexOf("?")>=0){	
						textoEventos +='<a href="'+url+'" title="Ampliar informaci&oacute;n">Ampliar</a>';	
					}else{
						if(url!=""){
							textoEventos +='<a href="'+url+'" title="Ver &iacute;ndice de Eventos">&Iacute;ndice</a>';	
						}
					}
					textoEventos +='</span></li>';	
					pintados++;
				}
			}
		}else{
					if(arr.length>0){
						i=0;
						f_arr_xml=arr[i].fecha.split("-");
					
						ddia_xml=f_arr_xml[0]
						mmes_xml=f_arr_xml[1]
						aano_xml=f_arr_xml[2]
						pais = arr[i].pais;
						lugar = arr[i].lugar;
						titulo = arr[i].titulo;
						url = arr[i].url;
						destacar = arr[i].destacar;	
						if(titulo.length>100){
							titulo=titulo.substr(0,100)+"...";
						}

						textoEventos +='<li><span class="seccion">'+pais+'</span><span class="fechaCalendario">';
						if(lugar!=""){
							textoEventos +=lugar+' - '+ddia_xml+' de '+getNombreDelMes(mmes_xml)+'</span>'+titulo+'<br><span class="ampliarIzq">';
						}else{
							textoEventos +=ddia_xml+' de '+getNombreDelMes(mmes_xml)+'</span>'+titulo+'<br><span class="ampliarIzq">';
						}
						if(url.indexOf("?")>=0){	
							textoEventos +='<a href="'+url+'" title="Ampliar informaci&oacute;n">Ampliar</a>';	
						}else{
							if(url!=""){
								textoEventos +='<a href="'+url+'" title="Ver &iacute;ndice de Eventos">&Iacute;ndice</a>';	
							}
						}
						textoEventos +='</span></li>';	
					}
					
				
		}
		if(arr.length>0){
			textoEventos+='</ul>';	
			document.getElementById("eventos").innerHTML=textoEventos;
		}
	}
	
	function PonMesActual(){
		MesSeleccionado=0;
		setCal(MesSeleccionado);
	}
	
	function dato_xml(){
		this.fecha="";
		this.pais ="";
		this.lugar ="";
		this.titulo = "";
		this.url = "";
		this.destacar = "";
	}
	
	addEvent(window, 'load', CrearCalendario);
	
//-->
