var getCalendario = null;
var xmlCalendario = null;
var CualMes=0;


function CrearCalendario(QueMes){
	if (window.XMLHttpRequest){
		getCalendario=new XMLHttpRequest()
	}else if (window.ActiveXObject){
		getCalendario=new ActiveXObject("Microsoft.XMLHTTP")
	}
	if (getCalendario){
		var url="calendario.xml";
		getCalendario.onreadystatechange=CambioDeEstado;
		getCalendario.open("GET",url,true);
		getCalendario.send(null);
		MesSeleccionado=QueMes;
	}else{
		alert ("Tu explorador no soporta XMLHttpRequest");
	}
}

function CambioDeEstado(){
	if (getCalendario.readyState == 4){
		xmlCalendario = getCalendario.responseXML;
		xmlCalendario = xmlCalendario.getElementsByTagName('cita');
		setCal(MesSeleccionado);
	} 
} 

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 //año bisiesto
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] = "Ene."
meses[2] = "Feb."
meses[3] = "Mar."
meses[4] = "Abr."
meses[5] = "May."
meses[6] = "Jun."
meses[7] = "Jul."
meses[8] = "Ago."
meses[9] = "Sep."
meses[10] = "Oct."
meses[11] = "Nov."
meses[12] = "Dic."
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)
	var primerDia2 = primerDia.getDay()
	primerDia = null
	var dias = diasPorMes(mes+1, anio)
	drawCal(primerDia2 + 0, dias, fecha, mes+1, anio)
}

function drawCal(firstDay, lastDate, date, Mes, Anio) {
var now = new Date()
var codigo = ""
codigo += '<br><form name="fcalendario" id="fcalendario" action="">'
codigo += '<input type="hidden" name="fecha" id="fecha" value="">'
codigo += '<input type="hidden" name="li" id="li" value="">'
codigo += '<input type="hidden" name="url" id="url" value="">'

codigo +='<table class="tabla">'
codigo += '<tr><td class="encabezado" colspan="7">'
codigo +=  getNombreDelMes(Mes) + ' ' + Anio
codigo += ' <input type="button" class="btAnt" value=" <<" onclick="CrearCalendario(--MesSeleccionado)">'
codigo += ' | '
codigo += ' <input type="button" class="btAnt" value=">> " onclick="CrearCalendario(++MesSeleccionado)">'
codigo += '</td></tr>'

var diasSemana = new Array(8)

diasSemana[1] = "<acronym title=\"Lunes\">L</acronym>"
diasSemana[2] = "<acronym title=\"Martes\">M</acronym>"
diasSemana[3] = "<acronym title=\"Miercoles\">M</acronym>"
diasSemana[4] = "<acronym title=\"Jueves\">J</acronym>"
diasSemana[5] = "<acronym title=\"Viernes\">V</acronym>"
diasSemana[6] = "<acronym title=\"Sabado\">S</acronym>"
diasSemana[7] = "<acronym title=\"Domingo\">D</acronym>"

codigo += '<tr>'
/*for (var dayNum = 1; dayNum < 8; ++dayNum) {
codigo += '<td class="celdaDiaSemana">' + diasSemana[dayNum] + '</td>' 
}*/
codigo += '</tr>'

var cDia = 1
var curCell = 1/* celda actual */

//recorremos el numero de filas del calendario
for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
	codigo += '<tr>'
	if (firstDay==0){firstDay=7;	}
	
	
	//recorremos el numero de dias de la semana
	for (var col = 1; col <= 7; ++col) {
		//para comprobaciones
		//if (row<3) {alert("col:"+col+",FirstDay:"+firstDay+"cDia:"+cDia+", lastDate:"+lastDate);}
		if (cDia > lastDate)
		break//hemos terminado

		if (curCell < firstDay) {
			codigo += '<td></td>';
			curCell++
		} else {
			var textoCelda = cDia;
			var textoTd = '<td class="celda">'
			if (cDia<10){ ccdia = '0' + cDia; } else{ccdia = cDia; }
			if (Mes <10){ ccmes = '0' + Mes;  } else{ccmes = Mes;  }
			var ccCadTexto=ccdia+ '-' + ccmes + '-' + Anio;
			
			for (i=0;i<xmlCalendario.length;i++){
				var fecha = xmlCalendario[i].getAttribute('fecha');
			
				if (fecha == ccCadTexto){
					textoCelda = '<input name="fecha'+cDia+'" id="fecha'+cDia+'" type="button" class="btCita" value="'+cDia+'" onclick="this.form.fecha.value=\'' + fecha +'\'; pedirDatos(\'calendario_consulta.php\',\'content\',\'fcalendario\'); return false">';
					textoTd = '<td class="celdacita">'
				}
			}
			
			/* los eventos del dia actual también deben mostrarse */
			/*if (cDia == date && Mes == now.getMonth()+1) {
			textoTd = '<td class="hoy">'
			}*/

			codigo += textoTd + textoCelda + '</td>'
			cDia++
		}
 }
 codigo += '</tr>'
}


codigo += '</table></form>'
document.getElementById("boxcalendario").innerHTML=codigo;
}