/*	
 * Funciones utilizadas para generar el calendario
 */

function Calendario(dia, mes, ano, booDia){
	if(document.all && booDia)
		document.form1.fecha.size=12;	
	if(document.layers)
		SetTop("calendarioag",225);
 
							//CALENDARIO DEL MES
	var cad = "<table width='135' border='0' cellspacing='0' cellpadding='0'>";
	cad = cad + "<tr>"; 
	cad = cad + "<td width='10' align='right' height='20'><a href='javascript:AnteriorMes(" + booDia + ")' onMouseOut='MM_swapImgRestore()' onMouseOver=\"MM_swapImage('Image361','','/web/img/calendario_flecha_izda.gif',1)\"><img name='Image361' border='0' src='/web/img/calendario_flecha_izda.gif' width='4' height='7'></a></td>";
	cad = cad + "<td valign='middle'  align='center' class='txtMesCalend' height='20'>" + strMes(parseInt(mes)) +  "  "  + ano + "</td>";
	cad = cad + "<td width='10' height='20'><a href='javascript:SiguienteMes(" + booDia + ")' onMouseOut='MM_swapImgRestore()' onMouseOver=\"MM_swapImage('Image371','','/web/img/calendario_flecha_dcha.gif',1)\"><img name='Image371' border='0' src='/web/img/calendario_flecha_dcha.gif' width='4' height='7'></a></td>";
	cad = cad + "</tr>";
	cad = cad + "</table>";
	cad = cad + "<table border='0' cellspacing='0' cellpadding='0'>";
	cad = cad + "<tr align='center' valign='middle'>"; 
	cad = cad + "<td class='fndCalendar' colspan='9'><img src='/web/img/nulltrans.gif' width='1' height='1'></td>";
	cad = cad + "</tr>";
	cad = cad + "<tr align='center' valign='middle'>"; 
	cad = cad + "<td class='fndCalendar' rowspan='10'><img src='/web/img/nulltrans.gif' width='1' height='1'></td>";
	cad = cad + "<td class='txtAgenda' height='14' width='19'>L</td>";
	cad = cad + "<td class='txtAgenda' height='14' width='19'>M</td>";
	cad = cad + "<td class='txtAgenda' height='14' width='19'>X</td>";
	cad = cad + "<td class='txtAgenda' height='14' width='19'>J</td>";
	cad = cad + "<td class='txtAgenda' height='14' width='19'>V</td>";
	cad = cad + "<td class='txtAgenda' height='14' width='19'>S</td>";
	cad = cad + "<td class='txtAgenda' height='14' width='19'>D</td>";
	cad = cad + "<td class='fndCalendar' rowspan='10'><img src='/web/img/nulltrans.gif' width='1' height='1'></td>";
	cad = cad + "</tr>";
	cad = cad + "<tr align='center' valign='middle'>"; 
	cad = cad + "<td class='fndCalendar' colspan='7'><img src='/web/img/nulltrans.gif' width='1' height='1'></td>";
	cad = cad + "</tr>";
	cad = cad + "<tr align='center' valign='middle'>"; 
	cad = cad + "<td class='txtFichaMes' colspan='7'><img src='/web/img/nulltrans.gif' width='20' height='5'></td>";
	cad = cad + "</tr>";
				// DIAS DEL MES
	if (booDia)
	   cad = cad + GenerarCalendario(dia, mes, ano);
	else
	   cad = cad + GenerarCalendarioMeses(dia, mes, ano);
    
	cad = cad + "<tr align='center' valign='middle'>"; 
	cad = cad + "<td class='txtFichaMes' colspan='7'><img src='/web/img/nulltrans.gif' width='25' height='5'></td>";
	cad = cad + "</tr>";
	cad = cad + "<tr align='center' valign='middle'>"; 
	cad = cad + "<td class='fndCalendar'  height='1' colspan='9'><img src='/web/img/nulltrans.gif' width='1' height='1'></td>";
	cad = cad + "</tr>";
	cad = cad + "</table>";
	
	EscribeCapa("calendarioag", cad);

}

function GenerarCalendario(dia, intMes, intAnyo){
	//------------------------------------------------------------------------------
	//	Muestra el calendario de un mes y año concreto, cada día es un hipervínculo
	//------------------------------------------------------------------------------
    var cadC;
	var filas;
	var intDiaSel;
	
	var dt = new Date();
	dt.setYear(intAnyo);
	dt.setMonth(intMes-1);
	dt.setDate(1);
	
	var diaprimero = dt.getDay();
	if (diaprimero == 0)
	   diaprimero = 7;
	if (diaprimero > 7)
	   diaprimero = diaprimero - 7;
	
	dt.setMonth(intMes);
	dt.setDate(dt.getDate() - 1);
	
	var numdias = dt.getDate();
	var diaultimo = dt.getDay();
		
	filas = 0;	
	
	// Si el primer día del mes no comienza en lunes
	cadC = "";		
	if (diaprimero > 1){
		cadC = cadC +  "<tr align='center' valign='middle'>";
		for (var j = 1; j < diaprimero; j++){
			cadC = cadC + "<td class='txtFichaMes' height='12' width='18'>&nbsp;</td>";
		}
		filas = filas + 1; 
	}
	intDiaSel = dia;
	
	// Los dias de los meses
	for (var i = 1; i <= numdias; i ++){
		if (diaprimero == 7){
			if (intDiaSel  == i){
				cadC = cadC + "<td height='12' class='txtFichaMesSel' width='18'><a href='javascript:IrDia(" + i + ")' class='txtFichaMesSel'>" + i + "</a></td>";
			}else{
				cadC = cadC +  "<td class='txtFichaMes' height='12' width='18'><a href='javascript:IrDia(" + i + ")' class='txtFichaMes'>" + i + "</a></td>";
			}
			cadC = cadC + "</tr>";
			diaprimero = 1;
		}else{
			if (diaprimero == 1){
				cadC = cadC + "<tr align='center' valign='middle'>";
				if (intDiaSel == i){
				    cadC = cadC + "<td height='12' class='txtFichaMesSel' width='18'><a href='javascript:IrDia(" + i + ")' class='txtFichaMesSel'>" + i + "</a></td>";
				}else{
					cadC = cadC +  "<td class='txtFichaMes' height='12' width='18'><a href='javascript:IrDia(" + i + ")' class='txtFichaMes'>" + i + "</a></td>";
				}
				diaprimero = diaprimero + 1; 
				filas = filas + 1;
			}else{
				if (intDiaSel == i){
					cadC = cadC +  "<td height='12' class='txtFichaMesSel' width='18'><a href='javascript:IrDia(" + i + ")' class='txtFichaMesSel' >" + i + "</a></td>";
				}else{
					cadC = cadC +  "<td class='txtFichaMes' height='12' width='18'><a href='javascript:IrDia(" + i + ")' class='txtFichaMes' >" + i + "</a></td>";
				}
				diaprimero = diaprimero + 1; 
			}	
		}
	}
	
	//Completar las columnas que quedan vacías
	if (diaprimero > 1){
		for (j = diaprimero; j<=7; j++){
			cadC = cadC + "<td class='txtFichaMes' height='12' width='18'>&nbsp;</td>";
		}
		cadC = cadC + "</tr>";
	}
	
	//El calendario tiene 6 filas o 5 filas dependiente del mes
	if (filas == 5){
		cadC = cadC + "<tr><td class='txtFichaMes' height='12' width='18' colspan='7'>&nbsp;</td></tr>";
	}
	return(cadC);	
}

function GenerarCalendarioMeses(dia, intMes, intAnyo){
	//------------------------------------------------------------------------------
	//	Muestra el calendario de un mes y año concreto, cada día es un hipervínculo
	//------------------------------------------------------------------------------
    var cadC;
	var filas;
	
	var dt = new Date();
	dt.setYear(intAnyo);
	dt.setMonth(intMes-1);
	dt.setDate(1);
	
	var diaprimero = dt.getDay();
	if (diaprimero == 0)
	   diaprimero = 7;
	if (diaprimero > 7)
	   diaprimero = diaprimero - 7;
	
	dt.setMonth(intMes);
	dt.setDate(dt.getDate() - 1);
	
	var numdias = dt.getDate();
	var diaultimo = dt.getDay();
		
	filas = 0;	
	
	// Si el primer día del mes no comienza en lunes
	cadC = "";		
	if (diaprimero > 1){
		cadC = cadC +  "<tr align='center' valign='middle'>";
		for (var j = 1; j < diaprimero; j++){
			cadC = cadC + "<td class='txtFichaMes' height='12' width='18'>&nbsp;</td>";
		}
		filas = filas + 1; 
	}
	
	// Los dias de los meses
	for (var i = 1; i <= numdias; i ++){
		if (diaprimero == 7){
			cadC = cadC +  "<td class='txtFichaMes' height='12' width='18'>" + i + "</td>";
			cadC = cadC + "</tr>";
			diaprimero = 1;
		}else{
			if (diaprimero == 1){
				cadC = cadC + "<tr align='center' valign='middle'>";
				cadC = cadC +  "<td class='txtFichaMes' height='12' width='18'>" + i + "</td>";
				diaprimero = diaprimero + 1; 
				filas = filas + 1;
			}else{
				cadC = cadC +  "<td class='txtFichaMes' height='12' width='18'>" + i + "</td>";
				diaprimero = diaprimero + 1; 
			}	
		}
	}
	
	//Completar las columnas que quedan vacías
	if (diaprimero > 1){
		for (j = diaprimero; j<=7; j++){
			cadC = cadC + "<td class='txtFichaMes' height='12' width='18'>&nbsp;</td>";
		}
		cadC = cadC + "</tr>";
	}
	
	//El calendario tiene 6 filas o 5 filas dependiente del mes
	if (filas == 5){
		cadC = cadC + "<tr><td class='txtFichaMes' height='12' width='18' colspan='7'>&nbsp;</td></tr>";
	}
	return(cadC);	
}


function strMes(mes){
	//------------------------------------------------------------------------------
	//	Devuelve una cadena con el mes correspondiente a la fecha actual
	//------------------------------------------------------------------------------
	var strM;
	mes = parseInt(mes);
	switch (mes){
	case 1:	strM = "Enero";
			break;
	case 2: strM = "Febrero";
			break;
	case 3: strM = "Marzo";
			break;
	case 4: strM = "Abril";
			break;
	case 5: strM = "Mayo";
			break;
	case 6: strM = "Junio";
			break;
	case 7: strM = "Julio";
			break;
	case 8: strM = "Agosto";
			break;
	case 9: strM = "Septiembre";
			break;
	case 10:strM = "Octubre";
			break;
	case 11:strM = "Noviembre";
			break;
	case 12:strM = "Diciembre";
			break;
	}
	return strM;
}

function daDia(dia)
{
	if (dia < 10)
	   return ("0" + dia);
	else
	   return dia; 
}

function daMes(mes)
{
	if (mes < 10)
	   return ("0" + mes);
	else
	   return mes; 
}

function IrDia(dia)
{
	/* Se ha seleccionado un día del calendario y se actualiza la página
	*/
	var mes, ano;
	var formu = document.forms.form1;
	formu.txtDia.value = dia;
	mes = formu.txtMes.value;
	ano = formu.txtAnyo.value;
    //document.form1.fecha.value = construyeFecha(dia, mes, ano);
	formu.fecha.value = daDia(formu.txtDia.value) + "/" + daMes(formu.txtMes.value) + "/" + formu.txtAnyo.value;
    Calendario(dia, mes, ano, true);
}

function AnteriorMes(booDia)
{
	/* Se ha seleccionado el mes anterior y hay que actualizar la página
	*/	
	var formu = document.forms.form1;
	formu.txtMes.value = parseInt(formu.txtMes.value)-1;
	if (formu.txtMes.value == 0){
		formu.txtMes.value = 12;
	    formu.txtAnyo.value = parseInt(formu.txtAnyo.value)-1;
	}
	//document.form1.fecha.value = construyeFecha(document.form1.txtDia.value, document.form1.txtMes.value, document.form1.txtAnyo.value);
	Calendario(0, formu.txtMes.value, formu.txtAnyo.value, booDia);
}

function SiguienteMes(booDia)
{
	/* Se ha seleccionado el mes siguiente y hay que actualizar la página
	*/
	var formu = document.forms.form1;
	formu.txtMes.value = parseInt(formu.txtMes.value)+1;
	
	if (formu.txtMes.value == 13){
		formu.txtMes.value = 1;
	    formu.txtAnyo.value = parseInt(formu.txtAnyo.value)+1;
	}
	//document.form1.fecha.value = daDia(document.form1.txtDia.value) + "/" + daMes(document.form1.txtMes.value) + "/" + document.form1.txtAnyo.value;
	//document.form1.fecha.value = construyeFecha(document.form1.txtDia.value, document.form1.txtMes.value, document.form1.txtAnyo.value);
	Calendario(0, formu.txtMes.value, formu.txtAnyo.value, booDia);
}
	
function contruyeFecha(dia, mes, ano){
  var fecha;
  if (parseInt(dia) < 10)
    dia = "0" + dia;
  if (parseInt(mes) < 10)
    mes = "0" + mes;
  fecha = dia + "/" + mes + "/" + ano;
  return fecha;
}
  

