// Librería para la gestión del calendario // Variables globales var Fecha; var Meses=['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic']; var DiasPorMes=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; IE4 = document.all ? 1:0; NN6IE5 = document.getElementById ? 1:0; NN4 = document.layers ? 1:0; // destino -> objeto del formulario donde se escribirá la fecha function escribeDestinoFecha(dia, mes, agno, destino, capa) { var des=document.getElementById(destino); var anterior=des.value; if(dia < 10){ dia = '0' + dia; } if(mes < 10) { mes = '0' + mes; } agno=parseInt(agno,10); if (agno>0){ if (agno<10){ agno="000"+agno; }else if(agno<100){ agno="00"+agno; }else if(agno<1000){ agno="0"+agno; } } var valueFecha = dia+"/"+mes+"/"+agno; if (compruebaFechaValida(valueFecha)) { des.value=valueFecha; if (isIE) { var selects=new Array(); for (var i=0;i capa destino donde se escribirá el calendario function escribeCalendarioCapa(dia,mes,agno,diaSel,mesSel,agnoSel,destino,capa) { var cal = String(); var fechaSel; if (diaSel!='' && mesSel!='' && agnoSel!=''){ fechaSel=new Date(); fechaSel.setDate(diaSel); fechaSel.setMonth(mesSel); fechaSel.setFullYear("" + parseInt(agnoSel,10)); } // Inicializamos la fecha var fechaCalendario = new Date(); fechaCalendario.setDate(1); fechaCalendario.setMonth(mes); fechaCalendario.setFullYear("" + parseInt(agno,10)) // Calculamos si estamos en un año bisiesto y actualizamos los dias por mes var EsteAgno = parseInt(fechaCalendario.getFullYear(),10); if (((EsteAgno % 4 == 0) && (EsteAgno % 100 != 0)) || (EsteAgno % 400 == 0)){ DiasPorMes[1] = 29; }else{ DiasPorMes[1] = 28; } // Calculamos el día de la semana primerDia = fechaCalendario.getDay(); if (primerDia == 0) primerDia = 6; // Para nosotros el domingo será el último else primerDia = primerDia -1; // Calculamos el número de días que tiene el mes EsteMes = fechaCalendario.getMonth(); numeroDias = DiasPorMes[EsteMes]; // variables para el mes y año anterior y posterior var mesanterior = fechaCalendario.getMonth(); var agnoanterior = parseInt(agno,10); mesanterior--; if (mesanterior==-1) { mesanterior=11; agnoanterior--; } var messiguiente = fechaCalendario.getMonth(); var agnosiguiente = agno; messiguiente++; if (messiguiente==12) { messiguiente = 0; agnosiguiente++; } var agnomasuno=parseInt(agno,10)+1; var agnomenosuno=parseInt(agno,10)-1; var hayagnoanterior=true; if(agnomenosuno==0){hayagnoanterior=false;} var mesactual=fechaCalendario.getMonth(); var haymesanterior=true; if(!hayagnoanterior&&mesactual==0){haymesanterior=false;} cal = "
"; cal = cal + ""; // Cabecera mes y año cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; /* cal = cal + ""*/ cal = cal + "" // Cabecera días de la semana cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; cal = cal + ""; // Escribimos los espacios en blanco en la primera fila cal = cal + "" columna = 0; for (i=0; i "; columna++; } // Escribimos los días for (i=1; i<=numeroDias; i++) { var fechaHoy=new Date(); fechaHoy.setDate(i); fechaHoy.setMonth(mes); fechaHoy.setFullYear("" + agno); var estilo="dias"; if (fechaSel && fechaSel != null && fechaHoy.getFullYear()==fechaSel.getFullYear() && fechaHoy.getMonth()==fechaSel.getMonth() && fechaHoy.getDate()==fechaSel.getDate()){ estilo="diasSelected"; } cal = cal + ""; cal = cal + '' + i; cal = cal + ""; columna++; if (columna==7 && i!=numeroDias){ columna=0; cal = cal + ""; } } while(columna<7) { cal = cal + ""; columna++; } cal = cal + ""; // Mostramos la capa if(NN4){ document.layers[capa].document.open(); document.layers[capa].document.write(cal); document.layers[capa].document.close(); document.layers[capa].visibility = "show"; }else if(NN6IE5){ document.getElementById(capa).innerHTML=cal; document.getElementById(capa).style.visibility="visible"; }else if(IE4){ document.all[capa].innerHTML=cal; document.all[capa].style.visibility="visible"; } } function cerrarCalendario(capa) { if (isIE) { var selects=new Array(); for (var i=0;i=0){ var visible=false; if (NN4&&divs[i].style.visibility=="show"){visible=true;} else if(NN6IE5&&divs[i].style.visibility=="visible"){visible=true;} else if(IE4&&divs[i].style.visibility=="visible"){visible=true;} if (visible){ cerrarCalendario(name); } } } if (isIE) { var selects=new Array(); for (var i=0;i="0"&&c<="9"} // capa -> capa destino donde se escribirá el calendario function escribeCalendarioCapaDGA(dia,mes,agno,diaSel,mesSel,agnoSel,destino,capa) { var cal = String(); var fechaSel; if (diaSel!='' && mesSel!='' && agnoSel!=''){ fechaSel=new Date(); fechaSel.setDate(diaSel); fechaSel.setMonth(mesSel); fechaSel.setFullYear("" + agnoSel); } // Inicializamos la fecha var fechaCalendario = new Date(); fechaCalendario.setDate(1); fechaCalendario.setMonth(mes); fechaCalendario.setFullYear("" + agno) // Calculamos si estamos en un año bisiesto y actualizamos los dias por mes var EsteAgno = fechaCalendario.getFullYear(); if (((EsteAgno % 4 == 0) && (EsteAgno % 100 != 0)) || (EsteAgno % 400 == 0)){DiasPorMes[1] = 29;} else{DiasPorMes[1] = 28;} // Calculamos el día de la semana primerDia = fechaCalendario.getDay(); if (primerDia == 0) primerDia = 6; // Para nosotros el domingo será el último else primerDia = primerDia -1; // Calculamos el número de días que tiene el mes EsteMes = fechaCalendario.getMonth(); numeroDias = DiasPorMes[EsteMes]; // variables para el mes y año anterior y posterior var mesanterior = fechaCalendario.getMonth(); var agnoanterior = agno; mesanterior--; if (mesanterior==-1) { mesanterior=11; agnoanterior--; } var messiguiente = fechaCalendario.getMonth(); var agnosiguiente = agno; messiguiente++; if (messiguiente==12) { messiguiente = 0; agnosiguiente++; } var agnomasuno=parseInt(agno)+1; var agnomenosuno=parseInt(agno)-1; var hayagnoanterior=true; if(agnomenosuno==0){hayagnoanterior=false;} var mesactual=fechaCalendario.getMonth(); var haymesanterior=true; var filas = 1; if(!hayagnoanterior&&mesactual==0){haymesanterior=false;} // Cabecera mes y año //cal = cal + "
"; cal = cal + "
"; cal = cal + "
"; cal = cal + "
"; if(haymesanterior){ cal = cal + ""; cal = cal + "Mes anterior"; cal = cal + ""; }else{ cal = cal + " "; } cal = cal + "
"; cal = cal + "
"; cal = cal + Meses[fechaCalendario.getMonth()]; cal = cal + "
"; cal = cal + "
"; cal = cal + ""; cal = cal + "Mes posterior"; cal = cal + ""; cal = cal + "
"; cal = cal + "
"; cal = cal + "
"; cal = cal + "
"; if (hayagnoanterior){ cal = cal + ""; cal = cal + "Año anterior"; cal = cal + ""; }else{ cal = cal + " "; } cal = cal + "
"; cal = cal + "
"; cal = cal + parseInt(fechaCalendario.getFullYear(),10); cal = cal + "
"; cal = cal + "
"; cal = cal + ""; cal = cal + "Año posterior"; cal = cal + ""; cal = cal + "
"; cal = cal + "
"; // Cabecera días de la semana cal = cal + "
"; cal = cal + "L"; cal = cal + "M"; cal = cal + "X"; cal = cal + "J"; cal = cal + "V"; cal = cal + "S"; cal = cal + "D"; cal = cal + "
"; // Escribimos los espacios en blanco en la primera fila cal = cal + "
"; columna = 0; for (i=0; i "; columna++; } // Escribimos los días for (i=1; i<=numeroDias; i++) { var fechaHoy=new Date(); fechaHoy.setDate(i); fechaHoy.setMonth(mes); fechaHoy.setFullYear("" + agno); var estilo="dias"; if (fechaSel && fechaSel != null && fechaHoy.getFullYear()==fechaSel.getFullYear() && fechaHoy.getMonth()==fechaSel.getMonth() && fechaHoy.getDate()==fechaSel.getDate()){ estilo="diasSelected"; } cal = cal + ""; cal = cal + ""; cal = cal + '' + i; cal = cal + ""; cal = cal + ""; columna++; if (columna==7 && i!=numeroDias){ columna=0; filas++; } } cal = cal + "
"; for(j=0; j <= filas; j++){ cal = cal + "
"; } cal = cal + ""; // Mostramos la capa if (NN4) { document.layers[capa].document.open(); document.layers[capa].document.write(cal); document.layers[capa].document.close(); document.layers[capa].visibility = "show"; document.layers[capa].display = "block"; }else if (NN6IE5) { document.getElementById(capa).innerHTML=cal; document.getElementById(capa).style.visibility = "visible"; document.getElementById(capa).style.display = "block"; } else if (IE4) { document.all[capa].innerHTML = cal; document.all[capa].style.visibility = "visible"; document.all[capa].style.visibility = "block"; } }
"; if(haymesanterior){ cal = cal + ""; cal = cal + "Mes anterior"; cal = cal + ""; }else{ cal = cal + " "; } cal = cal + ""; cal = cal + " "; cal = cal + "
" + Meses[fechaCalendario.getMonth()] + "
"; cal = cal + " "; cal = cal + "
"; cal = cal + ""; cal = cal + "Mes posterior"; cal = cal + ""; cal = cal + "
"; if(haymesanterior){ cal = cal + ""; cal = cal + "Mes anterior"; cal = cal + ""; }else{ cal = cal + " "; } cal = cal + ""; cal = cal + " "; cal = cal + "
" + parseInt(fechaCalendario.getFullYear(),10) + "
"; cal = cal + " "; cal = cal + "
"; cal = cal + ""; cal = cal + "Año posterior"; cal = cal + ""; cal = cal + "
"; if(haymesanterior){ cal = cal + ""; cal = cal + "Mes anterior"; cal = cal + ""; }else{ cal = cal + " "; } cal = cal + " "; cal = cal + Meses[fechaCalendario.getMonth()]; cal = cal + " "; cal = cal + ""; cal = cal + "Mes posterior"; cal = cal + "  "; if (hayagnoanterior){ cal = cal + ""; cal = cal + "Año anterior"; cal = cal + ""; }else{ cal = cal + " "; } cal = cal + " "; cal = cal + parseInt(fechaCalendario.getFullYear(),10); cal = cal + " "; cal = cal + ""; cal = cal + "Año posterior"; cal = cal + ""; cal = cal + "
L
M
X
J
V
S
D