var getCalendario = null;
var xmlCalendario = null;
var CualMes=0;

function CrearCalendari(QueMes){
	if (window.XMLHttpRequest){
		getCalendario=new XMLHttpRequest()
	}else if (window.ActiveXObject){
		getCalendario=new ActiveXObject("Microsoft.XMLHTTP")
	}
	if (getCalendario){
		var url="/calendari.xml";
		getCalendario.onreadystatechange=CambioDeEstado;
		getCalendario.open("GET",url,true);
		getCalendario.send(null);
		CualMes=QueMes;
	}else{
		alert ("Tu explorador no soporta XMLHttpRequest");
	}
}

function CambioDeEstado(){
	if (getCalendario.readyState == 4){
		xmlCalendario = getCalendario.responseXML;
		xmlCalendario = xmlCalendario.getElementsByTagName('event');
		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 getNombreDelMes(mes) {
    var meses = new Array(12)
    meses[1] = "Gener"
    meses[2] = "Febrer"
    meses[3] = "Mar&ccedil;"
    meses[4] = "Abril"
    meses[5] = "Maig"
    meses[6] = "Juny"
    meses[7] = "Juliol"
    meses[8] = "Agost"
    meses[9] = "Setembre"
    meses[10] = "Octubre"
    meses[11] = "Novembre"
    meses[12] = "Desembre"
    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()+6)%7
	primerDia = null
	var dias = diasPorMes(mes+1, anio)
	drawCal(primerDia2, dias, fecha, mes+1, anio)
}

function drawCal(firstDay, lastDate, date, Mes, Anio) {
    var now = new Date()
    var codigo = ""
    codigo += '<table class="tabla">'
    codigo += '<tr><td class="encabezado">'
    if(CualMes==1) codigo += '<a href="javascript:CrearCalendari(0)">-</a>'
    codigo += '</td><td class="encabezado" colspan="5"><a href="/ca/events.aspx?mes=' + CualMes + '">'
    codigo += getNombreDelMes(Mes) + ' ' + Anio  + '</a>'
    codigo += '</td><td class="encabezado">'
    if(CualMes==0) codigo += '<a href="javascript:CrearCalendari(1)">+</a>'
    codigo += '</td></tr>'

    var diasSemana = new Array(7)
    //diasSemana[0] = "<acronym title=\"Domingo\">D</acronym>"
    //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[0] = "<acronym title=\"Dilluns\">Dl</acronym>"
    diasSemana[1] = "<acronym title=\"Dimarts\">Dm</acronym>"
    diasSemana[2] = "<acronym title=\"Dimecres\">Dc</acronym>"
    diasSemana[3] = "<acronym title=\"Dijous\">Dj</acronym>"
    diasSemana[4] = "<acronym title=\"Divendres\">Dv</acronym>"
    diasSemana[5] = "<acronym title=\"Dissabte\">Ds</acronym>"
    diasSemana[6] = "<acronym title=\"Diumenge\">Dg</acronym>"
    
    codigo += '<tr>'
    for (var dayNum = 0; dayNum < 7; ++dayNum) {
        codigo += '<td class="celdaDiaSemana">' + diasSemana[dayNum] + '</td>' 
    }
    codigo += '</tr>'

    var cDia = 1
    var curCell = 1

    for (var row = 1; row <= Math.ceil((lastDate + firstDay) / 7); ++row) {
        codigo += '<tr>'
        for (var col = 1; col <= 7; ++col) {
            if (cDia > lastDate)
                break
            if (curCell <= firstDay) {
                codigo += '<td class="celdaotromes"></td>';
                curCell++
            } else {
                var textoCelda = cDia;
                var textoTd = '<td class="celda'

                var cuenta = 0;
                for (i=0;i<xmlCalendario.length;i++){
	                var fecha = xmlCalendario[i].getAttribute('data');
	                var idioma = xmlCalendario[i].getAttribute('idioma');
	                if (fecha == cDia+ "-" + Mes + "-" + Anio && idioma>="10"){
                        cuenta++;
		                var titulo = xmlCalendario[i].getAttribute('titol');
		                var color = xmlCalendario[i].getAttribute('color');
		                var descripcion = xmlCalendario[i].getAttribute('descripcio');
		                var link = xmlCalendario[i].getAttribute('link');
		                var destino='href="/ca/events.aspx?data=' + fecha + '"';
		                if (cuenta==1){
		                    textoCelda = '<a class="dia diacita" ' + destino + ' title="' + titulo + '">' + cDia + '</a>';
		                    textoTd = '<td style="background-color:' + color + '" class="celda celdacita'
		                }else{
		                    var titulo2 = titulo + '\n' + xmlCalendario[i-1].getAttribute('titol');
		                    var color2 = xmlCalendario[i-1].getAttribute('color');
		                    var descripcion2 = descripcion + "\\n" + xmlCalendario[i-1].getAttribute('descripcio');
		                    if (color==color2) color='#000000';
		                    textoCelda = '<a class="dia diacita"' + destino + ' title="'+titulo2+'">' + cDia + '<span style="color: ' + color + '">*</span>' + '</a>';
		                }
	                }
                }

                if (cDia == date && Mes == now.getMonth()+1) {
                    textoTd = textoTd + ' hoy'
                }
                textoTd += '">'

                codigo += textoTd + textoCelda + '</td>'
                cDia++
            }
        }
        codigo += '</tr>'
    }

    codigo += '</table>'
    document.getElementById("pnlCalendari").innerHTML=codigo;
}
