var getCalendario = null;
var xmlCalendario = null;
var xmlCal2 = null;
var getCal2 = null;
var CualMes=0;
var miDia = 0;
var miMes = 0;
var miAnio = 0;

function CrearCalendario(QueMes){

    getCalendario=new XMLHttpRequest()

    if (getCalendario){
        var Unico=new Date().getTime() 
        var url="calendario.xml?" + Unico + '';
        getCalendario.onreadystatechange=CambioDeEstado;
        getCalendario.open("GET",url,true);
        CualMes=QueMes;
        getCalendario.send(null);
    //CualMes=QueMes;
    }else{
        alert ("Tu explorador no soporta XMLHttpRequest. \nNo se mostrará correctamente el calendario de actividades");
    }
}

function LeerEventos(dia, mes, anio){
    
    getCal2=new XMLHttpRequest();

    if (getCal2){
        var Unico=new Date().getTime() 
        var url="calendario.xml?" + Unico + '';
        getCal2.onreadystatechange=CambioDeEstado2;
        getCal2.open("GET",url,true);
        miDia = dia;
        miMes = mes;
        miAnio = anio;
        //CualMes=QueMes;
        getCal2.send(null);
    //CualMes=QueMes;
    }else{
        alert ("Tu explorador no soporta XMLHttpRequest. \nNo se mostrará correctamente el calendario de actividades");
    }
}

function CambioDeEstado2(){
    if (getCalendario.readyState == 4){
        xmlCal2 = getCalendario.responseXML;
        xmlCal2 = xmlCal2.getElementsByTagName('cita');
        pintaEventosFrame(miDia,miMes,miAnio);
    }
} 
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)
    var primerDia2 = primerDia.getDay()
    primerDia = null
    var dias = diasPorMes(mes+1, anio)
    drawCal(primerDia2, dias, fecha, mes+1, anio)
}

function pintaEventosFrame(dia,mes,anio) {
    //window.alert(dia + "-" + mes + "-" + anio);
    var codigo = ""
    codigo += '<div class="fecha_age"><strong>Eventos para el '
    codigo += dia + "/" + mes + "/" + anio
    codigo += '</strong></div>'
	
    for (i=0;i<xmlCal2.length;i++){
        var fecha = xmlCal2[i].getAttribute('fecha');
	
        if (fecha == dia+ "-" + mes + "-" + anio){
            var textoCelda = '<div class="datos_age" width="90%">'
            for(h=0;h<xmlCal2[i].childNodes.length;h++){
                textoCelda += '<div class="tit_age"><strong> - ' + xmlCal2[i].childNodes(h).getAttribute('titulo') + '</strong></div>';
                textoCelda += '<div class="entra_age"><p><strong>' + xmlCal2[i].childNodes(h).getAttribute('descripcion') + '</strong></p>';
                textoCelda += '<div id="vermas' + h + '" class="vermas"><a href="#" onclick="showText(' + h + ')">Ver m&aacute;s</a></div>';
                textoCelda += '<div id="vermenos' + h + '" class="vermenos" style="display:none;"><a href="#" onclick="hideText(' + h + ')">Ver menos</a></div></div>';
                textoCelda += '<div class="texto_age" id="texto' + h + '"><p><strong>' + xmlCal2[i].childNodes(h).getAttribute('larga') + '</strong></p></div>';
            }
            textoCelda += '</div>'
            codigo += textoCelda;
        }
    }
    //codigo += '</div>'
    //window.alert(codigo);
    document.getElementById("eventos").innerHTML=codigo;
}

function drawCal(firstDay, lastDate, date, Mes, Anio) {
    var now = new Date()
    var codigo = ""
    //codigo += '<table class="tabla">'
    codigo += '<table border="0" summary="calendario" id="calendar">'
    //codigo += '<tr><td class="encabezado" colspan="7">'
    codigo += '<caption><a class="navi" title="Mes anterior" href="#" onclick="CrearCalendario(--CualMes);"><</a>' + getNombreDelMes(Mes) + ' ' + Anio
    codigo += '<a class="navd" title="Mes siguiente" href="#" onclick="CrearCalendario(++CualMes);">></a></caption>'

    var diasSemana = new Array(7)
    //diasSemana[6] = "<acronym title=\"Domingo\">D</acronym>"
    //diasSemana[0] = "<acronym title=\"Lunes\">L</acronym>"
    //diasSemana[1] = "<acronym title=\"Martes\">M</acronym>"
    //diasSemana[2] = "<acronym title=\"Mi&eacute;ercoles\">X</acronym>"
    //diasSemana[3] = "<acronym title=\"Jueves\">J</acronym>"
    //diasSemana[4] = "<acronym title=\"Viernes\">V</acronym>"
    //diasSemana[5] = "<acronym title=\"S&aacute;bado\">S</acronym>"

    diasSemana[6] = "<th title=\"Domingo\">D</th>"
    diasSemana[0] = "<th title=\"Lunes\">L</th>"
    diasSemana[1] = "<th title=\"Martes\">M</th>"
    diasSemana[2] = "<th title=\"Mi&eacute;rcoles\">X</th>"
    diasSemana[3] = "<th title=\"Jueves\">J</th>"
    diasSemana[4] = "<th title=\"Viernes\">V</th>"
    diasSemana[5] = "<th title=\"S&aacute;bado\">S</th>"

    codigo += '<tr>'
    for (var dayNum = 0; dayNum < 7; ++dayNum) {
        //codigo += '<td class="celdaDiaSemana">' + diasSemana[dayNum] + '</td>'
        codigo += diasSemana[dayNum]
    }
    codigo += '</tr>'

    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)
                break
            if (curCell < firstDay) {
                codigo += '<td valign="top"></td>';
                curCell++
            } else {
                var textoCelda = cDia;
                var textoTd = '<td valign="top">';

                for (i=0;i<xmlCalendario.length;i++){
                    var fecha = xmlCalendario[i].getAttribute('fecha');
	
                    if (fecha == cDia+ "-" + Mes + "-" + Anio){
                        //var titulo = xmlCalendario[i].getAttribute('titulo');
                        //var descripcion = xmlCalendario[i].getAttribute('descripcion');
                        textoCelda = '<a href="#" onmouseover="Tip(\'&lt;div class=\\\'tooltip\\\'&gt;';
                        for(h=0;h<xmlCalendario[i].childNodes.length;h++){
                            //window.alert("reconoce un hijo en " + i);
                            if(xmlCalendario[i].childNodes[h].attributes!=null)
                            textoCelda += "&nbsp; &#45; &nbsp;" + xmlCalendario[i].childNodes[h].attributes.getNamedItem("titulo").nodeValue + " &nbsp;&lt;br/&gt;";
                            //window.alert(xmlCalendario[i].childNodes[h].getAttribute('titulo'))
                        }
                        textoCelda = textoCelda.substring(0, textoCelda.length - 12);
                        textoCelda += ' &lt;/div&gt;\')"';
                        textoCelda += ' onmouseout="UnTip()" onclick="document.location.href=\'actividades.php?dd=' + cDia + '&amp;mm=' + Mes + '&amp;aa=' + Anio + '\';">'
                        textoCelda += cDia + '</a>';
                        //window.alert(textoCelda);
                        textoTd = '<td class="activo" valign="top">';
                    }
                }

                //if (cDia == date && Mes == now.getMonth()+1) {
                //textoTd = '<td class="hoy">'
                //}

                codigo += textoTd + textoCelda + '</td>'
                cDia++
            }
        }
        codigo += '</tr>'
    }

    codigo += '</table>'

    document.getElementById("boxcalendario").innerHTML=codigo;
}
