//var xmlDoc = ajaxobj();
var arr_conciertos = new Array();
var c_dia=0;
var c_mes=1;
var c_anio=2;
var c_vinculo=3;

function calendario(anio,mes,hoy){
	var ajax = ajaxobj();
	ajax.open("GET", "conciertos.xml", true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {

			if (ajax.responseXML.documentElement==null) {
				//para IE
				xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.async="false";
				xmlDoc.loadXML(ajax.responseText);
				var datos = xmlDoc;
			} else {
				//para los navegadores normales y decentes
				var datos = ajax.responseXML.documentElement;
			}
			conciertos = datos.getElementsByTagName("concierto");

			for (i=0;i<conciertos.length;i++) {
				var arr_aux=new Array(4);
				arr_aux[c_dia] = conciertos[i].getElementsByTagName("dia").item(0).firstChild.data;
				arr_aux[c_mes] = conciertos[i].getElementsByTagName("mes").item(0).firstChild.data;
				arr_aux[c_anio] = conciertos[i].getElementsByTagName("anio").item(0).firstChild.data;
				arr_aux[c_vinculo] = conciertos[i].getElementsByTagName("vinculo").item(0).firstChild.data;
				arr_conciertos[i]=arr_aux;
			}
			carga_calendario(anio,mes,hoy);
		}
	}
	ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ajax.send(null);
}
function carga_calendario(anio,mes,hoy){
	anio= parseInt(anio);
	mes = parseInt(mes);
	hoy = parseInt(hoy);
	
	fecha_actual = new Date(); 
	mes_actual=fecha_actual.getMonth();
	
	var arr_conciertos_mes = new Array();
	for(var i=0; i<arr_conciertos.length; i++) {
		if(arr_conciertos[i][c_mes]==mes+1 && arr_conciertos[i][c_anio]==anio) arr_conciertos_mes.push(arr_conciertos[i]);
  }

	p = new Date(anio,mes,1);
	diaSemanaPrimeroMes = p.getDay();
	var bisiesto = false;
	if (anio % 4 == 0 && anio % 100 != 0) bisiesto = true;
	if (anio % 100 == 0 && anio % 400 == 0) bisiesto = true;
	
	var diasMes = [];
	diasMes[0] = 31;
	(bisiesto)? diasMes[1]= 29:diasMes[1]= 28;
	diasMes[2]= 31;
	diasMes[3]= 30;
	diasMes[4]= 31;
	diasMes[5]= 30;
	diasMes[6]= 31;
	diasMes[7]= 31;
	diasMes[8]= 30;
	diasMes[9]= 31;
	diasMes[10]= 30;
	diasMes[11]= 31;

	var nombreMes = [];
	nombreMes[0] = "Enero";
	nombreMes[1] = "Febrero";
	nombreMes[2] = "Marzo";
	nombreMes[3] = "Abril";
	nombreMes[4] = "Mayo";
	nombreMes[5] = "Junio";
	nombreMes[6] = "Julio";
	nombreMes[7] = "Agosto";
	nombreMes[8] = "Septiembre";
	nombreMes[9] = "Octubre";
	nombreMes[10] = "Noviembre";
	nombreMes[11] = "Diciembre";

	finmes = diasMes[mes];
	
	switch (diaSemanaPrimeroMes){
		case 0:
			diaSemanaPrimeroMes = 6;
			break;
		default:
			diaSemanaPrimeroMes = diaSemanaPrimeroMes -1;
			break;
	}

	var textoForm = "";
  textoForm += '<tr><td align="left" valign="top">';
	textoForm += '<form>';
	textoForm += '<select name="mes" onchange="calendario(this.form.anio.value,this.form.mes.value,'+hoy+')">';
	for (i=0;i<12;i++) {
		textoForm += '<option value="'+i+'"'+ (i==mes ? ' selected="selected"' : '')+'>'+nombreMes[i]+'</option>';
	}
	textoForm += '</select>&nbsp;&nbsp;';
	textoForm += '<select name="anio" onchange="calendario(this.form.anio.value,this.form.mes.value,'+hoy+')">';
	for (i=20;i>-21;i--) {
		textoForm += '<option value="'+ (anio+i)+'"'+ (anio+i==anio ? ' selected="selected"' : '')+'>'+ (anio+i)+'<\/option>';
	}
	textoForm += '<\/select>';
	textoForm += '</form>';
  textoForm += '</td></tr>';

	var texto = "";
	texto += '<tr><td align="left" valign="top">';
	texto += '<table width="198" border="0" cellspacing="3" cellpadding="0">';
	texto += '	<tr align="center" valign="middle" class="calendario-dias">';
	texto += '		<td>L</td>';
	texto += '		<td>M</td>';
	texto += '		<td>X</td>';
	texto += '		<td>J</td>';
	texto += '		<td>V</td>';
	texto += '		<td>S</td>';
	texto += '		<td>D</td>';
	texto += '	</tr>';
	texto += '	<tr align="center" valign="middle">';

	z = 1;
	j = 1;
	for (i = 0;i<42;i++) {
		var hayConcierto=false
		for(var ind_conciertos=0; ind_conciertos<arr_conciertos_mes.length; ind_conciertos++) {
			if (z==arr_conciertos_mes[ind_conciertos][c_dia]) {
				hayConcierto=true
				break;
			}
		}
		var esSabado = j == 6 || j == 13 || j == 20 || j == 27 || j == 34;
		var esDomingo = j == 7 || j == 14 || j == 21 || j == 28 || j == 35;
		if (hayConcierto)	{
			texto += '<td><a href="'+arr_conciertos_mes[ind_conciertos][c_vinculo]+'" class="calendario-link">'+z+'</a></td>';
			z++;
		} else {
			if ( i < diaSemanaPrimeroMes ){
				if (esSabado) texto += '<td class="calendario-sabado"></td>';
				else if (esDomingo) texto += '<td class="calendario-domingo"></td>';
				else texto += '<td class="calendario-numeros"></td>';
			}
			if ( i == diaSemanaPrimeroMes ){
				
				if ( z == hoy && mes==mes_actual){
					texto += '<td class="calendario-hoy">'+z+'</td>';
				} else{
					if (esSabado) texto += '<td class="calendario-sabado">'+z+'</td>';
					else if (esDomingo) texto += '<td class="calendario-domingo">'+z+'</td>';
					else texto += '<td class="calendario-numeros">'+z+'</td>';
				}
				z++;
			}
			if ( i > diaSemanaPrimeroMes ){
				if (z <= finmes){
					if ( z == hoy && mes==mes_actual){
						texto += '<td class="calendario-hoy">'+z+'</td>';
					} else {
						if (esSabado) texto += '<td class="calendario-sabado">'+z+'</td>';
						else if (esDomingo) texto += '<td class="calendario-domingo">'+z+'</td>';
						else texto += '<td class="calendario-numeros">'+z+'</td>';
					}
				} else texto += '<td></td>';
				z++;
			}
		}
		if (esDomingo) texto += '</tr><tr align="center" valign="middle">';
		j++;
	}
	texto += "</tr></table>";
  texto += '</td></tr>';
	document.getElementById("div_formulario").innerHTML = textoForm;
	document.getElementById("div_calendario").innerHTML = texto;
}
function ajaxobj() {
	try {
		_ajaxobj = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			_ajaxobj = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			_ajaxobj = false;
		}
	}
   
	if (!_ajaxobj && typeof XMLHttpRequest!='undefined') {
		_ajaxobj = new XMLHttpRequest();
	}
	
	return _ajaxobj;
}
