/* CALENDARIO JAVASCRIPT FECHA 05-09-2008 DESARROLLADO POR JOHN CAMPOS T. */ /** CALENDARIO JAVASCRIPT - CONFIGURACION FECHA 05-09-2008 DESARROLLADO POR JOHN CAMPOS T. */ // CONFIGURACION DE LOS LIMITES DE LAS FECHAS A MOSTRAR EN EL CALENDARIO ------------------------------------------------------ var calendario_fecha_inicio = '20240504'; var calendario_fecha_termino = '20240504'; // CONFIGURACION DEL FORMATO DE FECHA Y DISENO DEL CALENDARIO ------------------------------------------------------ var calendario_fondo_color = "#FFFFFF";// var calendario_borde_color = "#747B32"; var calendario_letra_tipo = "Helvetica"; var calendario_letra_tamano = "11"; var calendario_letra_color = "#838938"; var calendario_letra_invalida = "#CCCCCC"; var calendario_fecha_separador = "/"; var calendario_fecha_formato = "DMY"; // DMY, MDY, YMD ... // -------------------------------- NO MODIFICAR DE AQUI EN ADELANTE ------------------------------------------------------ var calendario_fecha_actual = new Date(2024,4,04); var calendario_anio_inicio = calendario_fecha_inicio.substring(0, 4); var calendario_anio_termino = calendario_fecha_termino.substring(0, 4); var calendario_id_text, calendario_id_imgen; var calendario_mes = Array(); var calendario_dia = Array(); var calendario_mes_dia = Array(); //var calendarioMinAnio = null; //var calendarioMaxAnio = null; //var calendarioValidarMinMax = true; // DESCRIPCION DE LOS MESES DEL ANIO calendario_mes[0]="ENERO"; calendario_mes[1]="FEBRERO"; calendario_mes[2]="MARZO"; calendario_mes[3]="ABRIL"; calendario_mes[4]="MAYO"; calendario_mes[5]="JUNIO"; calendario_mes[6]="JULIO"; calendario_mes[7]="AGOSTO"; calendario_mes[8]="SETIEMBRE"; calendario_mes[9]="OCTUBRE"; calendario_mes[10]="NOVIEMBRE"; calendario_mes[11]="DICIEMBRE"; // DESCRIPCION DE LOS DIAS DE LA SEMANA calendario_dia[0]="LU"; calendario_dia[1]="MA"; calendario_dia[2]="MI"; calendario_dia[3]="JU"; calendario_dia[4]="VI"; calendario_dia[5]="SA"; calendario_dia[6]="DO"; // NUMERO DE DIAS DE LOS MESES DEL ANIO calendario_mes_dia[0] = 31; calendario_mes_dia[1] = 28; calendario_mes_dia[2] = 31; calendario_mes_dia[3] = 30; calendario_mes_dia[4] = 31; calendario_mes_dia[5] = 30; calendario_mes_dia[6] = 31; calendario_mes_dia[7] = 31; calendario_mes_dia[8] = 30; calendario_mes_dia[9] = 31; calendario_mes_dia[10] = 30; calendario_mes_dia[11] = 31; var calendario_flg_ocultar = false; var fecha_min_tmp = 0; function js_calendario_objeto_left(obj){ obj = document.getElementById(obj); var curleft = 0; if(obj.offsetParent) while(1){ curleft += obj.offsetLeft; if(!obj.offsetParent) break; obj = obj.offsetParent; } else if(obj.x) curleft += obj.x; return curleft; } function js_calendario_objeto_top(obj){ obj = document.getElementById(obj); var curtop = 0; if(obj.offsetParent) while(1){ curtop += obj.offsetTop; if(!obj.offsetParent) break; obj = obj.offsetParent; } else if(obj.y) curtop += obj.y; return curtop; } function js_calendario_flg_ocultar(flg){ calendario_flg_ocultar = flg; } function js_calendario_mostrar(id_text, id_imgen, id_text_min){ calendario_id_text = id_text; calendario_id_imgen = id_imgen; calendario_anio_inicio = calendario_fecha_inicio.substring(0, 4); calendario_anio_termino = calendario_fecha_termino.substring(0, 4); var calendario_anio_mostrar = calendario_fecha_actual.getFullYear(); var calendario_mes_mostrar = calendario_fecha_actual.getMonth() if (document.getElementById(id_text).value != '') { var calendario_fecha_tmp = document.getElementById(id_text).value calendario_fecha_tmp = new Date (calendario_fecha_tmp.split('/')[2], calendario_fecha_tmp.split('/')[1] - 1, calendario_fecha_tmp.split('/')[0] ); calendario_anio_mostrar = calendario_fecha_tmp.getFullYear(); calendario_mes_mostrar = calendario_fecha_tmp.getMonth(); } fecha_min_tmp = 0; var fecha_min_tmp_aux = 0; if (id_text_min != undefined) { fecha_min_tmp_aux = document.getElementById(id_text_min).value.split('/'); fecha_min_tmp = fecha_min_tmp_aux[2] + fecha_min_tmp_aux[1] + fecha_min_tmp_aux[0]; } js_calendario(calendario_anio_mostrar, calendario_mes_mostrar); document.getElementById("div_calendario").style.display = 'block'; if((js_calendario_objeto_left(id_imgen) - document.getElementById("div_calendario").offsetWidth) > 0){ document.getElementById("div_calendario").style.left = (js_calendario_objeto_left(id_imgen) - document.getElementById("div_calendario").offsetWidth) + 'px'; } else{ document.getElementById("div_calendario").style.left = 10 + 'px'; } document.getElementById("div_calendario").style.top = (js_calendario_objeto_top(id_text) + document.getElementById(id_text).offsetHeight + 3) + 'px'; calendario_flg_ocultar = true; } function js_calendario_ocultar(){ if(calendario_flg_ocultar == false){ document.getElementById("div_calendario").style.display = 'none'; } calendario_flg_ocultar = false; } function js_calendario_asignar_fecha(fecha_dia){ var fecha = Array(); fecha['Y'] = document.getElementById('calendario_anio').value; var ms = document.getElementById('calendario_mes').value; ms++; fecha['M'] = (ms < 10 ) ? "0"+ms : ms; fecha['D'] = (fecha_dia <10) ? "0"+fecha_dia : fecha_dia; document.getElementById(calendario_id_text).value = fecha[calendario_fecha_formato.charAt(0)]+calendario_fecha_separador+fecha[calendario_fecha_formato.charAt(1)]+calendario_fecha_separador+fecha[calendario_fecha_formato.charAt(2)]; //document.getElementById(calendario_id_text)triger['onblur'](); $('#' + calendario_id_text).trigger('change'); calendario_flg_ocultar = false; js_calendario_ocultar(); } function js_calendario_actualizar(){ js_calendario(document.getElementById('calendario_anio').value, document.getElementById('calendario_mes').value); calendario_flg_ocultar = true; } function js_calendario(anio , mes){ var strHTML = ""; var mes_actual = new Date(anio, mes, 1); var j = (mes_actual.getDay() == 0 ? 7 : mes_actual.getDay()); var mesAux = 0; var calendario_fecha_inicio_aux = 0; var calendario_fecha_termino_aux = 0; var dia = '00'; calendario_fecha_inicio_aux = parseFloat(calendario_fecha_inicio); calendario_fecha_termino_aux = parseFloat(calendario_fecha_termino); if (fecha_min_tmp > 0) { calendario_fecha_inicio_aux = fecha_min_tmp; } strHTML = ""; strHTML += ""; strHTML += "" + js_calendario_dia_descripcion() + ""; strHTML += ""; if(j>1) strHTML += ""; for(i=1;i<=calendario_mes_dia[mes];i++){ if(j == 8){ strHTML += ""; j = 1; } strHTML += ""; j++; } if(j<8) strHTML += ""; strHTML += ""; strHTML += "
"; strHTML += ""; strHTML += ""; strHTML += "
" + js_calendario_mes_select(mes) + "" + js_calendario_anio_select(anio) + "
"; strHTML += "
"; mesAux = parseFloat(mes) + 1; mesAux = '0' + mesAux; dia = '0' + i; dia_actual = anio + '' + mesAux.substring(mesAux.length, mesAux.length - 2); dia_actual += dia.substring(dia.length, dia.length - 2); dia_actual = parseFloat(dia_actual); if(dia_actual >= calendario_fecha_inicio_aux && dia_actual <= calendario_fecha_termino_aux){ strHTML += "" + i + ""; } else{ strHTML += "" + i + ""; } strHTML += "
"; document.getElementById('div_calendario').innerHTML = strHTML; } function js_calendario_mes_select(mes){ var selected = ""; strHTML = ""; return strHTML; } function js_calendario_anio_select(anio){ var selected = ""; //if (calendarioMinAnio == null) { //calendarioMinAnio = calendario_fecha_inicio.getFullYear(); //} //if (calendarioMaxAnio == null) { //calendarioMaxAnio = calendario_fecha_termino; //} calendario_mes_dia[1] = ((anio % 400) == 0 || ((anio % 4) == 0 && (anio % 100) != 0)) ? 29 : 28; strHTML = ""; return strHTML; } function js_obtener_anio(feccha){ return feccha.substring(0, 4); } function js_calendario_dia_descripcion(){ strHTML = ""; for(i=0;i<=calendario_dia.length -1;i++){ strHTML += "" + calendario_dia[i] +""; } return strHTML; } document.onclick=js_calendario_ocultar;