//CALENDARIO AGENDA HOME
var empiezo ={
	//inicializar en que dia comienza el mes
	diaSemana:function(elementoXML){
		qDia = elementoXML[0].attributes[0].nodeValue;
		qMes = elementoXML[0].attributes[1].nodeValue;
		qAnio = elementoXML[0].attributes[2].nodeValue;
		//Determino la fecha del mes seleccionado
		var dt = new Date(qAnio,(qMes-1),qDia);
		var posdt = parseInt(dt.getDay(),10);
		posdt = (posdt == 0)?7:posdt;
		return posdt;
	}
}
var dibuja = {
	calendario:function(elementoXML){
		var fecha = new Date();
		var hoy = fecha.getDate();
		var queMes = parseInt(fecha.getMonth(),10)+1;
		var queAnio = fecha.getFullYear();
		//Definicion de la estructura
		mesActual = parseInt(elementoXML[0].attributes[1].nodeValue,10);
		anioActual = parseInt(elementoXML[0].attributes[2].nodeValue);
		var theaders = '<table cellspacing="5"><caption>Calendario Agenda</caption><colgroup><col width="14%" /><col width="14%" /><col width="14%" /><col width="14%" /><col width="14%" /><col width="14%" /><col width="14%" /></colgroup>';
		theaders += '<thead><tr>';
				mesAnterior = (mesActual-1); anioAnterior = anioActual;
				mesSiguiente = (mesActual+1); anioSiguiente = anioActual;
				//tengo que cambiar de mes y de anio 
				if (mesAnterior <= 0){ mesAnterior = 12; anioAnterior = anioActual - 1;}
				//avanzo tanto en mes cono anio
				if (mesSiguiente > 12) { mesSiguiente = 1; anioSiguiente = anioActual + 1;}
			theaders += '<th><a href="#" onclick="peticion.calendar('+mesAnterior+','+anioAnterior+');return false;" title="mes anterior"><img src="'+rutaStatics+'/img/ico_mes_ant_axaj.gif" alt="" /></a></th>';
			theaders += '<th class="mes" colspan="5">'+monthHeaders[peticion.ind_idioma][mesActual-1]+" "+anioActual+'</th>';		
			theaders += '<th class="messig"><a href="#" onclick="peticion.calendar('+mesSiguiente+','+anioSiguiente+');return false;" title="mes siguiente"><img src="'+rutaStatics+'/img/ico_mes_sig_axaj.gif" alt="" /></a></th></tr>'
			for (var ii=0;ii<7;ii++) {
				//he comentado los dias de la semana
				//theaders += '<th class="headDays" id="'+langHeaders[peticion.ind_idioma][ii]+'"><acronym lang="'+peticion.idioma+'" title="'+langHeaders[peticion.ind_idioma][ii]+'">'+langHeaders[peticion.ind_idioma][ii].substring(0,1)+'</acronym></th>';
			}
			theaders += '</tr></thead>';
		var tbody = '<tbody>';
		var tfooter = '</tbody></table>';
		//Defino el orden de navegacion
		var tabIndex = 200;
		//Dia de la semana el cual empiezo
		diaEmpiezo = empiezo.diaSemana(elementoXML); diaEmpiezo -=1;
		//necesito vel el ultimo dia que pinto, para ello lo calculo
		diaUltimo = elementoXML.length;
		//Para los casos de que se necesite pintar una fila mas
		nfilas = parseInt((diaUltimo/7),10);
		rfilas = parseInt((diaUltimo%7),10);
		if ((diaEmpiezo >=5) && (diaUltimo > 28)) { nfilas+=1;}
		if (rfilas >= 0) { nfilas +=1;}
		ultDia = (nfilas*7);
		contDays = 1;
		//guardo en las posiciones el ver mas
		var aTabIndex = new Array();
		var linksViewMore = new Array();
		tbody += '<tr>';
		for (var iDays=0;iDays<ultDia;iDays++){
			//bucle para pintar los dias
			if ( (iDays >= diaEmpiezo) && (contDays <= diaUltimo)){
				for (var items=0;items<elementoXML[(contDays-1)].childNodes.length;items++){
						if (elementoXML[(contDays-1)].childNodes[items].tagName == "eventscollection"){
						aux_contDays = ((elementoXML[(contDays-1)].childNodes[items].childNodes[0].attributes[0].nodeValue) != "")?'<td class="sel"><a href="'+elementoXML[(contDays-1)].childNodes[items].childNodes[0].attributes[0].nodeValue+'">'+contDays+'</a></td>':'<td>'+contDays+'</td>';
					}
					//if (contDays == hoy){aux_contDays = '<td class="hoy">'+contDays+'</td>'}
					if (contDays == hoy &&  queMes == mesActual && queAnio == anioActual){
						aux_contDays = ((elementoXML[(contDays-1)].childNodes[items].childNodes[0].attributes[0].nodeValue) != "")?'<td class="hoysel"><a href="'+elementoXML[(contDays-1)].childNodes[items].childNodes[0].attributes[0].nodeValue+'">'+contDays+'</a></td>':'<td class="hoy">'+contDays+'</td>';
					}
					tbody += aux_contDays;
				}//fin del bucle for items
				contDays++;
			} else { tbody+='<td class="vacio">&nbsp;</td>';}
			if ((((iDays+1)%7 == 0) && (iDays != 0)) || (iDays == ultDia)){ tbody += "</tr>";}
		}//fin del bucle for iDays
		dom.$("dCalendar").innerHTML = theaders+tbody+tfooter;
	}
}
//INICIALIZAR LLAMADA AJAX
var peticion={
	idioma:"es",
	ind_idioma:0,
	nuevoXML:function(){
		http_request = false;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {http_request.overrideMimeType('text/xml');}
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		if (!http_request) {
			alert('No se puede crear una instancia XMLHTTP');
			return false;
		}
	},
		
	calendar:function(qMonth,qYear){
		//para el idioma del calendario
		aux_idioma = document.location.href;
		aux_idioma = aux_idioma.split("/")[5] ;
		peticion.idioma = aux_idioma;
		switch (peticion.idioma){
			case "en": peticion.ind_idioma = 1; break;
			default:	peticion.ind_idioma = 0; break;
		}
		
		var auxUrlaj = window.location.href;
		var mesParaajax =  auxUrlaj.split("/")[5];
		//rutaxmlajax lo recupero de variable del html
		url = rutaxmlajax+'&language='+mesParaajax+'&mes='+qMonth+'&anio='+qYear;
		// url = '/cs/Satellite?pagename=UniversidadAutonomaMadrid%2FComunes%2FPresentacion%2FxmlCalendario&language=es&mes='+qMonth+'&anio='+qYear;
		http_request.open('GET', url, true);
		http_request.onreadystatechange = function(){
			if (http_request.readyState == 1) {
			}
			else 
				if (http_request.readyState == 4) {
					if (http_request.status == 200){
						var xmldoc = http_request.responseXML;
						var root_node = xmldoc.getElementsByTagName('day');
						peticion.pintaElemento(root_node);
					} 
					else { 
						alert('Hay un problema con la peticion.');
					}
				}
			}
		http_request.send(null);
	},
	pintaElemento:function(elementoXML) {dibuja.calendario(elementoXML);}
}
