// VARIABLES
var nombres_dias = new Array("Domingo","Lunes","Martes","Mi&eacute;rcoles","Jueves","Viernes","S&aacute;bado");
var nombres_meses = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
var dias_por_mes  = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var hoy = new Date();                                   
var este_dia = hoy.getDate();			// devuelve el día del mes - (1-31)
var este_mes = hoy.getMonth();			// devuelve el número de mes - (0-11)
var superior_tabla = "";
//Datos propios del calendario de Centro del Rotulo (peninsula y Baleares)
var festivosDia = new Array("1","6","7","19","21","22","2","23","24","25","15","11","12","1","6","8","9","25");
var festivosMes = new Array("1","1","1","3","4","4","5","6","6","7","8","9","10","11","12","12","12","12");

var puentesDia = new Array("","","");
var puentesMes = new Array("","","");
/*
var puentesDia = new Array("1","11","7");
var puentesMes = new Array("4","10","12");
*/
var vacacionesVeranoDia = new Array();
var vacacionesVeranoMes = new Array();

/*for (vV1=0;vV1<=11;vV1++){ //Vacaciones verano
	vacacionesVeranoDia[vV1] = (vV1+9);
	vacacionesVeranoMes[vV1] = 8;
}
*/
var vacacionesInviernoDia = new Array();
var vacacionesInviernoMes = new Array();
/* //vacaciones de invierno
for (vI1=0;vI1<=7;vI1++){
	vacacionesInviernoDia[vI1] = (vI1+24);
	vacacionesInviernoMes[vI1] = 12;
}
*/
//Datos propios del calendario de Centro del Rotulo Canarias
var festivosDiaCNR = new Array("1","6","24","9","10","1","30","24","15","8","12","17","7","8","25");
var festivosMesCNR = new Array("1","1","2","4","4","5","5","6","8","9","10","11","12","12","12");
var puentesDiaCNR = new Array("2","5","23");
var puentesMesCNR = new Array("1","1","2");
//var vacacionesVeranoDiaCNR = new Array("8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30");
var vacacionesVeranoDiaCNR = new Array();
//var vacacionesVeranoMesCNR = new Array("8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8","8");
var vacacionesVeranoMesCNR = new Array();
var vacacionesInviernoDiaCNR = new Array("24","25","26","27","28","29","30","31");
var vacacionesInviernoMesCNR = new Array("12","12","12","12","12","12","12","12");

// FUNCIONES

function y2K(numero){										// si el año es < 2000 javascript devuelve solo 2 dígitos
	return (numero < 1000) ? numero + 1900 : numero; 
}
 
var este_anyo = y2K(hoy.getYear());

function esRojo(numDia, numMes){
	numMes=numMes+1;
	
	for (j=0; j<festivosDia.length; j++){
		if ( numDia==festivosDia[j] && numMes==festivosMes[j] ){
			return true;
		}
	}
	
	for (k=0; k<vacacionesVeranoDia.length; k++){
		if ( numDia==vacacionesVeranoDia[k] && numMes==vacacionesVeranoMes[k] ){
			return true;
		}
	}
	
	for (l=0; l<vacacionesInviernoDia.length; l++){
		if ( numDia==vacacionesInviernoDia[l] && numMes==vacacionesInviernoMes[l] ){
			return true;
		}
	}
	
	for (m=0; m<puentesDia.length; m++){
		if ( numDia==puentesDia[m] && numMes==puentesMes[m] ){
			return true;
		}
	}
	
	return false;
}//end esRojo

function esRojoCNR(numDia, numMes){
	numMes=numMes+1;
	
	for (j=0; j<festivosDiaCNR.length; j++){
		if ( numDia==festivosDiaCNR[j] && numMes==festivosMesCNR[j] ){
			return true;
		}
	}
	
	for (k=0; k<vacacionesVeranoDiaCNR.length; k++){
		if ( numDia==vacacionesVeranoDiaCNR[k] && numMes==vacacionesVeranoMesCNR[k] ){
			return true;
		}
	}
	
	for (l=0; l<vacacionesInviernoDiaCNR.length; l++){
		if ( numDia==vacacionesInviernoDiaCNR[l] && numMes==vacacionesInviernoMesCNR[l] ){
			return true;
		}
	}
	
	for (m=0; m<puentesDiaCNR.length; m++){
		if ( numDia==puentesDiaCNR[m] && numMes==puentesMesCNR[m] ){
			return true;
		}
	}
	
	return false;
}//end esRojoCNR

function dibujaCalendario(el_mes, el_anyo){   
	primer_dia_del_mes = new Date(el_anyo, el_mes, 1);		// crea una instancia del objeto fecha para el primer dia del mes
	
    dia_de_la_semana = primer_dia_del_mes.getDay()-1;			// devuelve el día de la semana (-1 a 5)
																// le quitamos 1 para adaptarlo a nuestro calendario (comienzo en Lunes)
																// pero importante: OJO QUE EL DOMINGO CORRESPONDE A -1
	
    if  (((el_anyo % 4 == 0) && (el_anyo % 100 != 0)) || (el_anyo % 400 == 0)){   
		dias_por_mes[1] = 29; 					// Año bisiesto
    }else{
		dias_por_mes[1] = 28;
    }
	
	superior_tabla = "";
	
    superior_tabla += "<table cellspacing='3' cellpadding='3' border='0'>";
    superior_tabla += "<tr><td colspan='7' class='nombre_mes'>" + nombres_meses[el_mes] + "</td></tr>";
    superior_tabla += "<tr>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Lunes'>L</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Martes'>M</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Mi&eacute;rcoles'>M</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Jueves'>J</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Viernes'>V</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='S&aacute;bado'>S</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Domingo'>D</acronym></th>";
    superior_tabla += "</tr>";
    superior_tabla += "<tr>";
	
	document.write(superior_tabla);
	
    var column = 0;
	
	/* Si el dia de la semana es -1, estamos hablando de que empieza el mes en domingo */
	if(dia_de_la_semana == -1){
		for (i=0; i<6; i++){		// saltamos celdas hasta que el primer día del mes se corresponda con su día de la semana
			document.write("<td>&nbsp;</td>");
			column++;
		}
		
	}else{
		for (i=0; i<dia_de_la_semana; i++){		// saltamos celdas hasta que el primer día del mes se corresponda con su día de la semana
			document.write("<td>&nbsp;</td>");
			column++;
		}
	}
	
    for (i=1; i<=dias_por_mes[el_mes]; i++){
		if  ((i == este_dia)  && (el_mes == este_mes) && (el_anyo == este_anyo)){
		   document.write("<td id='hoy'>");							// destacamos la fecha de hoy
		}else{
			document.write("<td class='resto_dias'>");       		// el resto de fechas
        }
		

			var fecha_seleccionada = "";
			if(i < 10){
				fecha_seleccionada += "0";
			} 
			fecha_seleccionada += i + "-" ;
			mes_a_enviar = el_mes+1;
			if(mes_a_enviar < 10){
				fecha_seleccionada += "0";
			} 
			fecha_seleccionada += mes_a_enviar + "-" + el_anyo;
			
		if( (column%5==0 || column%6==0) && column!=0){
			document.write("<div class='fin_de_semana'>");
		}
			 
		//document.write("<a href='javascript:fecha_consultada=\""+fecha_seleccionada+"\"; leerDatos();' class='link_dia'>" + i + "</a>");
		document.write("<a class='link_dia");
		if ( esRojo(i, el_mes) ){
			document.write(" rojo");
		}
		document.write("'>" + i + "</a>");
		if( (column%5==0 || column%6==0) && column!=0){
			document.write("</div");
		}
	
		document.write("</td>");		
        column++;
        
		if  (column == 7){									// empezamos la nueva fila para la siguiente semana
			document.write("</tr><tr>");
            column = 0;
        }
    }
	
    document.write("</tr></table>");						// mes completo - cerramos la tabla
}//end dibujaCalendario

function dibujaCalendarioCNR(el_mes, el_anyo){   
	primer_dia_del_mes = new Date(el_anyo, el_mes, 1);		// crea una instancia del objeto fecha para el primer dia del mes
	
    dia_de_la_semana = primer_dia_del_mes.getDay()-1;			// devuelve el día de la semana (-1 a 5)
																// le quitamos 1 para adaptarlo a nuestro calendario (comienzo en Lunes)
																// pero importante: OJO QUE EL DOMINGO CORRESPONDE A -1
	
    if  (((el_anyo % 4 == 0) && (el_anyo % 100 != 0)) || (el_anyo % 400 == 0)){   
		dias_por_mes[1] = 29; 					// Año bisiesto
    }else{
		dias_por_mes[1] = 28;
    }
	
	superior_tabla = "";
	
    superior_tabla += "<table cellspacing='3' cellpadding='3' border='0'>";
    superior_tabla += "<tr><td colspan='7' class='nombre_mes'>" + nombres_meses[el_mes] + "</td></tr>";
    superior_tabla += "<tr>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Lunes'>L</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Martes'>M</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Mi&eacute;rcoles'>M</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Jueves'>J</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Viernes'>V</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='S&aacute;bado'>S</acronym></th>";
    superior_tabla += "<th class='nombres_dias_semana'><acronym title='Domingo'>D</acronym></th>";
    superior_tabla += "</tr>";
    superior_tabla += "<tr>";
	
	document.write(superior_tabla);
	
    var column = 0;
	
	/* Si el dia de la semana es -1, estamos hablando de que empieza el mes en domingo */
	if(dia_de_la_semana == -1){
		for (i=0; i<6; i++){		// saltamos celdas hasta que el primer día del mes se corresponda con su día de la semana
			document.write("<td>&nbsp;</td>");
			column++;
		}
		
	}else{
		for (i=0; i<dia_de_la_semana; i++){		// saltamos celdas hasta que el primer día del mes se corresponda con su día de la semana
			document.write("<td>&nbsp;</td>");
			column++;
		}
	}
	
    for (i=1; i<=dias_por_mes[el_mes]; i++){
		if  ((i == este_dia)  && (el_mes == este_mes) && (el_anyo == este_anyo)){
		   document.write("<td id='hoy'>");							// destacamos la fecha de hoy
		}else{
			document.write("<td class='resto_dias'>");       		// el resto de fechas
        }
		

			var fecha_seleccionada = "";
			if(i < 10){
				fecha_seleccionada += "0";
			} 
			fecha_seleccionada += i + "-" ;
			mes_a_enviar = el_mes+1;
			if(mes_a_enviar < 10){
				fecha_seleccionada += "0";
			} 
			fecha_seleccionada += mes_a_enviar + "-" + el_anyo;
			
		if( (column%5==0 || column%6==0) && column!=0){
			document.write("<div class='fin_de_semana'>");
		}
			 
		//document.write("<a href='javascript:fecha_consultada=\""+fecha_seleccionada+"\"; leerDatos();' class='link_dia'>" + i + "</a>");
		document.write("<a class='link_dia");
		if ( esRojoCNR(i, el_mes) ){
			document.write(" rojo");
		}
		document.write("'>" + i + "</a>");
		if( (column%5==0 || column%6==0) && column!=0){
			document.write("</div");
		}
	
		document.write("</td>");		
        column++;
        
		if  (column == 7){									// empezamos la nueva fila para la siguiente semana
			document.write("</tr><tr>");
            column = 0;
        }
    }
	
    document.write("</tr></table>");						// mes completo - cerramos la tabla
}//end dibujaCalendarioCNR

function hoyEs(){
	return nombres_dias[hoy.getDay()] + " " + este_dia + " de " + nombres_meses[este_mes] + " de " + este_anyo;
}

/********************************************************************************************/
/* Parte que se ocupa de cargar los datos de una fecha desde el archivo XML correspondiente */
//
//  // Recibe y muestra los datos
//  function leerDatos(){
//
//	// Comprobamos que se han recibido los datos
//    if (oXML.readyState == 4) {
//      // Accedemos al XML recibido
//      var xml  = oXML.responseXML.documentElement;
//      // Accedemos al DIV
//      var miDiv = document.getElementById('info_calendario');
//      // Vaciamos el DIV
//      miDiv.innerHTML = '';
//      // Iteramos cada usuario
//      for (i = 0; i < xml.getElementsByTagName('cita').length; i++){
//        
//		// Accedemos al objeto XML usuario
//		var item = xml.getElementsByTagName('cita')[i];
//		// Recojemos la fecha
//		var fecha = item.getElementsByTagName('fecha')[0].firstChild.data;
//				
//		if( fecha_consultada == fecha ){
//			// Recojemos el título
//			var titulo = item.getElementsByTagName('titulo')[0].firstChild.data;	
//			// Recojemos la descripcion
//			var descripcion = item.getElementsByTagName('descripcion')[0].firstChild.data;
//			break;
//		}else{
//			fecha = fecha_consultada;
//			var titulo = "";	
//			var descripcion = "No hay nada se&ntilde;alado este d&iacute;a";
//		}
//      }//for
//		// Mostramos los resultados
//		miDiv.innerHTML += '<b>'+fecha+'</b><br />';
//		miDiv.innerHTML += titulo+'<br />';
//		miDiv.innerHTML += descripcion+'<br /><br />';
//    }
//  } 
// 
// 
//  function crearListaFechas(){
//
//	// Comprobamos que se han recibido los datos
//    if (o2XML.readyState == 4) {
//      // Accedemos al XML recibido
//      var xml  = o2XML.responseXML.documentElement;
//      for (i = 0; i < xml.getElementsByTagName('cita').length; i++){
//        
//		// Accedemos al objeto XML usuario
//		var item = xml.getElementsByTagName('cita')[i];
//		// Recojemos la fecha
//		var fecha = item.getElementsByTagName('fecha')[0].firstChild.data;
//		
//		listaFechas[listaFechas.length] = fecha;
//      }//for
//    }
//	return listaFechas;
//  } 
// 
//  function fechaConCita(fecha_a_mirar){
//	if (oXML.readyState == 4) {
//		// Accedemos al XML recibido
//		var xml  = oXML.responseXML.documentElement;
//	
//		for (i = 0; i < xml.getElementsByTagName('cita').length; i++){
//			var item = xml.getElementsByTagName('cita')[i];
//			var fecha = item.getElementsByTagName('fecha')[0].firstChild.data;
//		
//			if( fecha == fecha_a_mirar ){
////				return true;
//				break;
//			}else{
////				return false;
//			}
//		
//			return fecha;
//		}//for
//	}
//  }
//
//  // Crea el objeto AJAX
//  function AJAXCrearObjeto(){
//	 /* 
//    var obj;
//    if(window.XMLHttpRequest) { // no es IE
//      obj = new XMLHttpRequest();
//    } else { // Es IE o no tiene el objeto
//      try {
//        obj = new ActiveXObject("Microsoft.XMLHTTP");
//      }
//      catch (e) {
//        alert('El navegador utilizado no está soportado');
//      }
//    }
//    return obj;
//	*/
//	var xmlhttp=false;
//	try	{
//		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
//	}catch (e){
//		try	{
//			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
//		}catch (E){
//			xmlhttp = false;
//		}
//	}
//	
//	if (!xmlhttp && typeof XMLHttpRequest!='undefined'){
//		xmlhttp = new XMLHttpRequest();
//	}
//	return xmlhttp;
//  }
//
//  var fecha_consultada = "";
//  if(este_dia < 10){
//	fecha_consultada += "0";
//  } 
//  fecha_consultada += este_dia + "-" ;
//  if(este_mes < 10){
//	fecha_consultada += "0";
//  } 
//  fecha_consultada += este_mes + "-" + este_anyo;
//  
//  oXML = AJAXCrearObjeto();
//  oXML.open('get', 'calendario_2007.xml');
//  oXML.onreadystatechange = leerDatos;
//  oXML.send('');
//  
//	var listaFechas = new Array();  
//  o2XML = AJAXCrearObjeto();
//  o2XML.open('get', 'calendario_2007.xml');
//  o2XML.onreadystatechange = crearListaFechas;
//  o2XML.send('');
//
////alert(listaFechas);

