

function recuperarCalendario(mes, annio){
	mesActual = mes;
	anioActual = annio;

	var parametros = "mes="+ mes + "&anio=" + annio;
	var destino = url + "?" + parametros;
	if (window.XMLHttpRequest){
		httpRequest=new XMLHttpRequest()
	
	}else if (window.ActiveXObject){
		httpRequest=new ActiveXObject("Microsoft.XMLHTTP")
	}
	if (httpRequest){
		httpRequest.onreadystatechange=procesarCalendario;
		httpRequest.open("GET",destino,true);
		httpRequest.send(null);

	}else{
		alert ("Tu explorador no soporta XMLHttpRequest");
	}

}
function procesarCalendario(){
	if (httpRequest.readyState == 4){
		
		var texto = httpRequest.responseText;
		var fechas = eval( '('  + texto + ')' );
		arrayFechas = new Array();
		//alert(texto);
		
		for(i=0;i<fechas.length;i++){
			fecha = fechas[i];
			arrayFechas[fecha.fecha] = fecha;
			//alert(fecha.fecha);
		}
		setCalendario(mesActual, anioActual);	
	}

}

function avanzaMes(){
	if(mesActual !=null){
		mesActual = mesActual + 1;
		if(mesActual > 12){
			mesActual = 1;
			anioActual = anioActual + 1;
		}
		recuperarCalendario(mesActual, anioActual);
	}
}
function retroceMes(){
	if(mesActual !=null){
		mesActual = mesActual - 1;
		if(mesActual < 1){
			mesActual = 12;
			anioActual = anioActual - 1;
		}
		recuperarCalendario(mesActual, anioActual);
	}
}
function setCalendario(mes, annio){
	
	var primerDiaMes = new Date(annio, mes-1, 1);
	if(primerDiaMes == null){
		return;
	}
	var primerDia = getDiaSemana(primerDiaMes.getDay());
	mes = primerDiaMes.getMonth() + 1;
	var ultimoDia = diasPorMes(mes, annio);
	var fechaHoy = new Date();
	var html = dibujaCal(primerDia,ultimoDia,fechaHoy.getDate(), mes, annio,"calendario");	


}
function dibujaCal(firstDay, lastDate, date, Mes, Anio,idElemento) {
	var now = new Date();
	
	
	var codigo = '<div class="cv_mescalendario">' + '<img src="/imagenes/retrocesomes.gif" onclick="javascript:retroceMes();" style="cursor:pointer" />&nbsp;&nbsp;';
	codigo += getNombreDelMes(Mes) + "&nbsp;" + Anio + '&nbsp;&nbsp;<img src="/imagenes/avancemes.gif" onclick="javascript:avanzaMes();" style="cursor:pointer" />' +  '</div>';
	
	codigo +=  '<table class="cv_tablacalendario" cellspacing="0" cellpadding="0" >';

	var diasSemana = new Array(7);
	
	diasSemana[1] = "<acronym title=\"Lunes\">L</acronym>";
	diasSemana[2] = "<acronym title=\"Martes\">M</acronym>";
	diasSemana[3] = "<acronym title=\"Miercoles\">X</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><td colspan="7">';
	codigo += '<table class="cv_dias" cellspacing="0" cellpadding="0" width="100%">';
	codigo += '<tr>'
	
	for (var dayNum = 1; dayNum < 8; ++dayNum) {
		codigo += '<td width="45px"class="cv_dias">' + diasSemana[dayNum] + '</td>';
	}
	codigo += '</tr></table></td>';
	
	var cDia = 1;
	var curCell = 1;


	for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
		codigo += '<tr>'
		for (var col = 1; col <= 7; ++col) {
			if (cDia > lastDate){
				codigo += '<td height="20px">&nbsp;</td>';
				//break;
			}else{
				if (curCell < firstDay) {
					codigo += '<td height="20px">&nbsp;</td>';
					curCell++;
				} else {
					var key = "";
					var strMes="";
					if(Mes<10){
						strMes = "0" + Mes;
					}else{
						strMes = Mes;
					}
					if(cDia<10){
						key = Anio + "-" + strMes + "-0" + cDia;
					}else{
						key = Anio + "-" + strMes  + "-" + cDia;

					}
					
					
					var id = cDia+ "-" + Mes + "-" + Anio;
					
					var textoCelda = cDia;
					var textoTd = '<td height="20px">';
					
					if(arrayFechas[key] != null){
						var fecha = arrayFechas[key];
						codigo += textoTd + '<a href="javascript:cargarFechaCalendario(\''+ fecha.fecha + '\');">' + textoCelda + '</a>' + '</td>'
					}else{
						codigo += textoTd + textoCelda + '</td>'
					}
	
					
					cDia++
				}
			}
		}
		codigo += '</tr>'
	}

	codigo += '</table>'
	
	
	
	if(idElemento !=null){
		document.getElementById(idElemento).innerHTML=codigo;
	}
	
	return codigo;


}
function getDiaSemana(diaDate){
	if(diaDate==0){
		return 7;
	}else{
		return diaDate;
	}
}

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 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]
}