/*
 * FOXCalendario - El mejor calendario javacript
 * Copyright (C) 2007-2008 Romel Ramos
 *
 * Versión: 20080601160514
 * Web: http://www.foxrom.com/
 * Email: foxrom@foxrom.com
 *
 * == BEGIN LICENSE ==
 *
 * Licenciado bajo los términos de cualquiera de las siguientes licencias
 * a su elección:
 *
 *  - GNU General Public License Version 2 or later (the "GPL")
 *    http://www.gnu.org/licenses/gpl.html
 *
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 *    http://www.gnu.org/licenses/lgpl.html
 *
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 *
 * == END LICENSE ==
 *
 * Script optimizado que genera el calendario
 *
 * Ejemplo de uso:
 *
 * <input name="fecha" type="text" id="fecha" onClick="FOXCalendario('fecha')">
 */
document.write("<span id='FOXCalendario_contenedor' style='position:absolute; left:50px; top:50px; display:none;width:170px; height:255px; z-index: 10000;'></span>");function fechahora_string_check(fechahora){var FOXCal_fecha_ok =  true;var FOXCal_fecha_ano_ok = true;var FOXCal_fecha_mes_ok = true;var FOXCal_fecha = fechahora;date_separador_indice = FOXCal_fecha.indexOf('-',0);date_separador_indice1 = FOXCal_fecha.indexOf('-',date_separador_indice+1);date_time_separador_indice = FOXCal_fecha.indexOf(' ',date_separador_indice1+1);time_separador_indice = FOXCal_fecha.indexOf(':',date_time_separador_indice+1);time_separador_indice1 = FOXCal_fecha.indexOf(':',time_separador_indice+1);var FOXCal_fecha_ano = FOXCal_fecha.substring(0,date_separador_indice);var FOXCal_fecha_mes = FOXCal_fecha.substring(date_separador_indice+1,date_separador_indice1);var FOXCal_fecha_dia = FOXCal_fecha.substring(date_separador_indice1+1,date_time_separador_indice);var FOXCal_fecha_hora = FOXCal_fecha.substring(date_time_separador_indice+1,time_separador_indice);var FOXCal_fecha_minuto = FOXCal_fecha.substring(time_separador_indice+1,time_separador_indice1);var FOXCal_fecha_segundo = FOXCal_fecha.substring(time_separador_indice1+1);if(isNaN(FOXCal_fecha_ano) || parseInt(FOXCal_fecha_ano,10) < 1900 || FOXCal_fecha_ano.length < 4 || FOXCal_fecha_ano.length > 4){FOXCal_fecha_ok = false;FOXCal_fecha_ano_ok = false;}if(isNaN(FOXCal_fecha_mes) || parseInt(FOXCal_fecha_mes,10) < 1 || parseInt(FOXCal_fecha_mes,10) > 12 || FOXCal_fecha_mes.length < 2 ||  FOXCal_fecha_mes.length > 2){FOXCal_fecha_ok = false;FOXCal_fecha_mes_ok = false;}dias_en_el_mes = 31;if(FOXCal_fecha_ano_ok == true && FOXCal_fecha_mes_ok == true){fecha_ini = new Date(parseInt(FOXCal_fecha_ano,10),parseInt(FOXCal_fecha_mes,10)-1,1);fecha_ini1 = new Date(parseInt(FOXCal_fecha_ano,10),parseInt(FOXCal_fecha_mes,10)-1,2);for (i = 0 ; fecha_ini.getMonth() == fecha_ini1.getMonth() ; i++){fecha_ini.setDate(fecha_ini.getDate() + 1);}dias_en_el_mes = i;}if(isNaN(FOXCal_fecha_dia) || parseInt(FOXCal_fecha_dia,10) < 1 || parseInt(FOXCal_fecha_dia,10) > dias_en_el_mes || FOXCal_fecha_dia.length < 2 ||  FOXCal_fecha_dia.length > 2){FOXCal_fecha_ok = false;}if(isNaN(FOXCal_fecha_hora) || parseInt(FOXCal_fecha_hora,10) < 0 || parseInt(FOXCal_fecha_hora,10) > 23 || FOXCal_fecha_hora.length < 2 ||  FOXCal_fecha_hora.length > 2){FOXCal_fecha_ok = false;}if(isNaN(FOXCal_fecha_minuto) || parseInt(FOXCal_fecha_minuto,10) < 0 || parseInt(FOXCal_fecha_minuto,10) > 59 || FOXCal_fecha_minuto.length < 2 ||  FOXCal_fecha_minuto.length > 2){FOXCal_fecha_ok = false;}if(isNaN(FOXCal_fecha_segundo) || parseInt(FOXCal_fecha_segundo,10) < 0 || parseInt(FOXCal_fecha_segundo,10) > 59 || FOXCal_fecha_segundo.length < 2 ||  FOXCal_fecha_segundo.length > 2){FOXCal_fecha_ok = false;}return FOXCal_fecha_ok;}function fechahora_string_to_date(fechahora){var FOXCal_fecha = fechahora;date_separador_indice = FOXCal_fecha.indexOf('-',0);date_separador_indice1 = FOXCal_fecha.indexOf('-',date_separador_indice+1);date_time_separador_indice = FOXCal_fecha.indexOf(' ',date_separador_indice1+1);time_separador_indice = FOXCal_fecha.indexOf(':',date_time_separador_indice+1);time_separador_indice1 = FOXCal_fecha.indexOf(':',time_separador_indice+1);var FOXCal_fecha_ano = FOXCal_fecha.substring(0,date_separador_indice);var FOXCal_fecha_mes = FOXCal_fecha.substring(date_separador_indice+1,date_separador_indice1);var FOXCal_fecha_dia = FOXCal_fecha.substring(date_separador_indice1+1,date_time_separador_indice);var FOXCal_fecha_hora = FOXCal_fecha.substring(date_time_separador_indice+1,time_separador_indice);var FOXCal_fecha_minuto = FOXCal_fecha.substring(time_separador_indice+1,time_separador_indice1);var FOXCal_fecha_segundo = FOXCal_fecha.substring(time_separador_indice1+1);return new Date(parseInt(FOXCal_fecha_ano,10),parseInt(FOXCal_fecha_mes,10)-1,parseInt(FOXCal_fecha_dia,10),parseInt(FOXCal_fecha_hora,10),parseInt(FOXCal_fecha_minuto,10),parseInt(FOXCal_fecha_segundo,10),0);}function fechahora_date_to_string(fechahora){var FOXCal_fecha = fechahora;FOXCal_fecha_ano = FOXCal_fecha.getFullYear();FOXCal_fecha_mes = FOXCal_fecha.getMonth()+1;FOXCal_fecha_mes = (FOXCal_fecha_mes < 10)?('0'+FOXCal_fecha_mes):(FOXCal_fecha_mes);FOXCal_fecha_dia = FOXCal_fecha.getDate();FOXCal_fecha_dia = (FOXCal_fecha_dia < 10)?('0'+FOXCal_fecha_dia):(FOXCal_fecha_dia);FOXCal_fecha_hora = FOXCal_fecha.getHours();FOXCal_fecha_hora = (FOXCal_fecha_hora < 10)?('0'+FOXCal_fecha_hora):(FOXCal_fecha_hora);FOXCal_fecha_minuto = FOXCal_fecha.getMinutes();FOXCal_fecha_minuto = (FOXCal_fecha_minuto < 10)?('0'+FOXCal_fecha_minuto):(FOXCal_fecha_minuto);FOXCal_fecha_segundo = FOXCal_fecha.getSeconds();FOXCal_fecha_segundo = (FOXCal_fecha_segundo < 10)?('0'+FOXCal_fecha_segundo):(FOXCal_fecha_segundo);FOXCal_fecha_total = FOXCal_fecha_ano+"-"+FOXCal_fecha_mes+"-"+FOXCal_fecha_dia+" "+FOXCal_fecha_hora+":"+FOXCal_fecha_minuto+":"+FOXCal_fecha_segundo;return FOXCal_fecha_total;}function fechahora_to_campo(campo_id,fechahora){var campo_id = (campo_id)?campo_id:'';var campo;var fechahora = (fechahora)?fechahora:'';if(document.getElementById(campo_id)){campo = document.getElementById(campo_id);campo.value = fechahora;}}function FOXCalendario_mostrar(id){var id = (id)?id:'';if(document.getElementById(id)){id_objeto = document.getElementById(id);if(id_objeto.style.display == ''){id_objeto.style.display = '';}else{id_objeto.style.display = '';}}}function FOXCalendario_ocultar(id){var id = (id)?id:'';if(document.getElementById(id)){id_objeto = document.getElementById(id);if(id_objeto.style.display == ''){id_objeto.style.display = 'none';}else{id_objeto.style.display = 'none';}}}function FOXCalendario(campo_id,fechahora,campo_fecha_coger){var campo_ok = false;var campo_id = (campo_id)?campo_id:'';var campo;var campo_x = 0;var campo_y = 0;var campo_fecha = '';var fechahora = (fechahora)?fechahora:'';var campo_fecha_coger = (campo_fecha_coger==false)?false:true;if(document.getElementById(campo_id)){campo = document.getElementById(campo_id);el = campo;campo_x = el.offsetLeft;el = el.offsetParent;while(el) {campo_x += el.offsetLeft;el = el.offsetParent;}el = campo;campo_y = el.offsetTop;el = el.offsetParent;while(el) {campo_y += el.offsetTop;el = el.offsetParent;}campo_x = campo_x;campo_y = campo_y + campo.offsetHeight;if(fechahora_string_check(campo.value)){campo_fecha = campo.value;}else{campo.value = '';}campo_ok = true;}var FOXCal_fecha_actual =  new Date();if(fechahora_string_check(campo_fecha) == true && campo_fecha_coger == true){FOXCal_fecha = fechahora_string_to_date(campo_fecha);}else if(fechahora_string_check(fechahora) == true){FOXCal_fecha = fechahora_string_to_date(fechahora);}else{FOXCal_fecha = FOXCal_fecha_actual;}FOXCalendario_meses_array = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Setiembre','Octubre','Noviembre','Diciembre');FOXCalendario_dias_array = new Array('Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Vieners','S&aacute;bado');FOXCalendario_dias_corto_array = new Array('Do','Lu','Ma','Mi','Ju','Vi','Sa');FOXCalendario_fecha = FOXCal_fecha;FOXCalendario_fecha_ano = FOXCalendario_fecha.getFullYear();FOXCalendario_fecha_mes = FOXCalendario_fecha.getMonth();FOXCalendario_fecha_dia = FOXCalendario_fecha.getDate();FOXCalendario_fecha_hora = FOXCalendario_fecha.getHours();FOXCalendario_fecha_minuto = FOXCalendario_fecha.getMinutes();FOXCalendario_fecha_segundo = FOXCalendario_fecha.getSeconds();FOXCalendario_fecha_antes_ano = new Date(FOXCalendario_fecha);FOXCalendario_fecha_antes_ano = new Date(FOXCalendario_fecha_antes_ano.setFullYear(FOXCalendario_fecha_antes_ano.getFullYear() - 1));FOXCalendario_fecha1_antes_ano = fechahora_date_to_string(FOXCalendario_fecha_antes_ano);FOXCalendario_fecha_despues_ano = new Date(FOXCalendario_fecha);FOXCalendario_fecha_despues_ano = new Date(FOXCalendario_fecha_despues_ano.setFullYear(FOXCalendario_fecha_despues_ano.getFullYear() + 1));FOXCalendario_fecha1_despues_ano = fechahora_date_to_string(FOXCalendario_fecha_despues_ano);FOXCalendario_fecha_antes_mes = new Date(FOXCalendario_fecha);FOXCalendario_fecha_antes_mes = new Date(FOXCalendario_fecha_antes_mes.setMonth(FOXCalendario_fecha_antes_mes.getMonth() - 1));FOXCalendario_fecha1_antes_mes = fechahora_date_to_string(FOXCalendario_fecha_antes_mes);FOXCalendario_fecha_despues_mes = new Date(FOXCalendario_fecha);FOXCalendario_fecha_despues_mes = new Date(FOXCalendario_fecha_despues_mes.setMonth(FOXCalendario_fecha_despues_mes.getMonth() + 1));FOXCalendario_fecha1_despues_mes = fechahora_date_to_string(FOXCalendario_fecha_despues_mes);FOXCalendario_fecha_mes_dia_01 = new Date(FOXCalendario_fecha_ano,FOXCalendario_fecha_mes,1);FOXCalendario_fecha_mes_dia_01 = FOXCalendario_fecha_mes_dia_01.getDay();fecha_ini = new Date(FOXCalendario_fecha_ano,FOXCalendario_fecha_mes,1);fecha_ini1 = new Date(FOXCalendario_fecha_ano,FOXCalendario_fecha_mes,2);for (i = 0 ; fecha_ini.getMonth() == fecha_ini1.getMonth() ; i++){fecha_ini.setDate(fecha_ini.getDate() + 1);}FOXCalendario_fecha_mes_cantidad_dias = i;FOXCalendario_string = "";FOXCalendario_string = FOXCalendario_string + "<table border='0' cellpadding='2' cellspacing='2' class='FOXCalendario__' onMouseOver='FOXCalendario_mostrar(\"FOXCalendario_contenedor\")' onMouseOut='FOXCalendario_ocultar(\"FOXCalendario_contenedor\")'>";FOXCalendario_string = FOXCalendario_string + "<tr>"+"<td class='FOXCalendario__nav_arrows' onMouseOver='this.className=\"FOXCalendario__nav_arrows_over\";' onMouseOut='this.className=\"FOXCalendario__nav_arrows\";' onClick='FOXCalendario(\""+campo_id+"\",\""+FOXCalendario_fecha1_antes_ano+"\",false);'>&lt;&lt;</td>"+"<td id='FOXCalendario_zona_drag' colspan='5' class='FOXCalendario__nav_titles_mover'>"+FOXCalendario_fecha_ano+"</td>"+"<td class='FOXCalendario__nav_arrows' onMouseOver='this.className=\"FOXCalendario__nav_arrows_over\";' onMouseOut='this.className=\"FOXCalendario__nav_arrows\";' onClick='FOXCalendario(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_ano+"\",false)'>&gt;&gt;</td>"+"</tr>"+"<tr>"+"<td class='FOXCalendario__nav_arrows' onMouseOver='this.className=\"FOXCalendario__nav_arrows_over\";' onMouseOut='this.className=\"FOXCalendario__nav_arrows\";' onClick='FOXCalendario(\""+campo_id+"\",\""+FOXCalendario_fecha1_antes_mes+"\",false)'>&lt;&lt;</td>"+"<td id='FOXCalendario_zona_drag1' colspan='5' class='FOXCalendario__nav_titles_mover'>"+FOXCalendario_meses_array[FOXCalendario_fecha_mes]+"</td>"+"<td class='FOXCalendario__nav_arrows' onMouseOver='this.className=\"FOXCalendario__nav_arrows_over\";' onMouseOut='this.className=\"FOXCalendario__nav_arrows\";' onClick='FOXCalendario(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_mes+"\",false)'>&gt;&gt;</td>"+"</tr>";FOXCalendario_string = FOXCalendario_string + "<tr>";for (i=0;i < 7;i=i+1){FOXCalendario_string = FOXCalendario_string + "<td class='FOXCalendario__semana_dias'>"+FOXCalendario_dias_corto_array[i]+"</td>";}FOXCalendario_string = FOXCalendario_string + "</tr>";FOXCalendario_string = FOXCalendario_string + "<tr>";for (i=0;i < FOXCalendario_fecha_mes_dia_01;i=i+1){FOXCalendario_string = FOXCalendario_string + "<td class='FOXCalendario__dias_vacio'></td>";}for (i=1;i <= FOXCalendario_fecha_mes_cantidad_dias;i=i+1){dia_class = "FOXCalendario__dias";dia_class_over = "FOXCalendario__dias_over";dia_background_color = "FFFFFF";dia_onclick = "";if(i == FOXCalendario_fecha_dia){dia_class = "FOXCalendario__dias_over";}if(campo_ok){dia_onclick_fechahora = new Date(FOXCalendario_fecha.getFullYear(),FOXCalendario_fecha.getMonth(),i,FOXCalendario_fecha.getHours(),FOXCalendario_fecha.getMinutes(),FOXCalendario_fecha.getSeconds());dia_onclick_fechahora1 = fechahora_date_to_string(dia_onclick_fechahora);dia_onclick = "fechahora_to_campo(\""+campo_id+"\",\""+dia_onclick_fechahora1+"\");FOXCalendario(\""+campo_id+"\",\""+dia_onclick_fechahora1+"\",false);";}FOXCalendario_string = FOXCalendario_string + "<td class='"+dia_class+"' style='background:##"+dia_background_color+";' onMouseOver='this.className=\""+dia_class_over+"\";' onMouseOut='this.className=\""+dia_class+"\";' onClick='"+dia_onclick+"'>" + i + "</td>";if(FOXCalendario_fecha_mes_dia_01 == 6 && i < FOXCalendario_fecha_mes_cantidad_dias){FOXCalendario_string = FOXCalendario_string + "</tr>";FOXCalendario_string = FOXCalendario_string + "<tr>";FOXCalendario_fecha_mes_dia_01 = -1;}   FOXCalendario_fecha_mes_dia_01 = FOXCalendario_fecha_mes_dia_01 + 1;}FOXCalendario_string = FOXCalendario_string + "</tr>";FOXCalendario_fecha_despues_hora = new Date(FOXCalendario_fecha);if(FOXCalendario_fecha_despues_hora.getHours() >= 23){FOXCalendario_fecha_despues_hora = new Date(FOXCalendario_fecha_despues_hora.setHours(0));}else{FOXCalendario_fecha_despues_hora = new Date(FOXCalendario_fecha_despues_hora.setHours(FOXCalendario_fecha_despues_hora.getHours() + 1));}FOXCalendario_fecha1_despues_hora = fechahora_date_to_string(FOXCalendario_fecha_despues_hora);FOXCalendario_fecha_despues_minuto = new Date(FOXCalendario_fecha);if(FOXCalendario_fecha_despues_minuto.getMinutes() >= 59){FOXCalendario_fecha_despues_minuto = new Date(FOXCalendario_fecha_despues_minuto.setMinutes(0));}else{FOXCalendario_fecha_despues_minuto = new Date(FOXCalendario_fecha_despues_minuto.setMinutes(FOXCalendario_fecha_despues_minuto.getMinutes() + 1));}FOXCalendario_fecha1_despues_minuto = fechahora_date_to_string(FOXCalendario_fecha_despues_minuto);FOXCalendario_fecha_despues_segundo = new Date(FOXCalendario_fecha);if(FOXCalendario_fecha_despues_segundo.getSeconds() >= 59){FOXCalendario_fecha_despues_segundo = new Date(FOXCalendario_fecha_despues_segundo.setSeconds(0));}else{FOXCalendario_fecha_despues_segundo = new Date(FOXCalendario_fecha_despues_segundo.setSeconds(FOXCalendario_fecha_despues_segundo.getSeconds() + 1));}FOXCalendario_fecha1_despues_segundo = fechahora_date_to_string(FOXCalendario_fecha_despues_segundo);FOXCalendario_horas_string = "";FOXCalendario_horas_string = FOXCalendario_horas_string + "<tr>"+"<td colspan='7' class='FOXCalendario__separador'></td>"+"</tr>";hora_class = "FOXCalendario__horas";hora_class_over = "FOXCalendario__horas_over";hora_onclick = "";minuto_onclick = "";segundo_onclick = "";if(campo_ok){hora_onclick = "fechahora_to_campo(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_hora+"\");FOXCalendario(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_hora+"\",false);";minuto_onclick = "fechahora_to_campo(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_minuto+"\");FOXCalendario(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_minuto+"\",false);";segundo_onclick = "fechahora_to_campo(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_segundo+"\");FOXCalendario(\""+campo_id+"\",\""+FOXCalendario_fecha1_despues_segundo+"\",false);";}FOXCalendario_horas_string = FOXCalendario_horas_string + "<tr>"+"<td colspan='7' align='center'>"+"<table width='100%' border='0' align='center' cellpadding='2' cellspacing='0' class='FOXCalendario__' style='border-width:0px;'>"+"<tr>"+"<td class='FOXCalendario__nav_titles'>&nbsp;&nbsp;Hora&nbsp;&nbsp;</td>"+"<td class='FOXCalendario__horas_vacio'>&nbsp;</td>"+"<td class='FOXCalendario__horas_vacio'>&nbsp;</td>"+"<td class='FOXCalendario__horas_vacio'>&nbsp;</td>"+"<td class='"+hora_class+"' onMouseOver='this.className=\""+hora_class_over+"\";' onMouseOut='this.className=\""+hora_class+"\";' onClick='"+hora_onclick+"'>"+((FOXCalendario_fecha_hora<10)?('0'+FOXCalendario_fecha_hora):(FOXCalendario_fecha_hora))+"</td>"+"<td class='FOXCalendario__horas_vacio'>:</td>"+"<td class='"+hora_class+"' onMouseOver='this.className=\""+hora_class_over+"\";' onMouseOut='this.className=\""+hora_class+"\";' onClick='"+minuto_onclick+"'>"+((FOXCalendario_fecha_minuto<10)?('0'+FOXCalendario_fecha_minuto):(FOXCalendario_fecha_minuto))+"</td>"+"<td class='FOXCalendario__horas_vacio'>:</td>"+"<td class='"+hora_class+"' onMouseOver='this.className=\""+hora_class_over+"\";' onMouseOut='this.className=\""+hora_class+"\";' onClick='"+segundo_onclick+"'>"+((FOXCalendario_fecha_segundo<10)?('0'+FOXCalendario_fecha_segundo):(FOXCalendario_fecha_segundo))+"</td>"+"</tr>"+"</table>"+"</td>"+"</tr>";FOXCalendario_string = FOXCalendario_string + FOXCalendario_horas_string;FOXCalendario_string = FOXCalendario_string + "</table>";if(document.getElementById("FOXCalendario_contenedor")){FOXCalendario_contenedor1 = document.getElementById("FOXCalendario_contenedor");if(campo_fecha_coger == true){FOXCalendario_contenedor1.style.left = campo_x + 'px';FOXCalendario_contenedor1.style.top = campo_y + 'px';}FOXCalendario_contenedor1.innerHTML = FOXCalendario_string;FOXCalendario_contenedor1.style.display = (campo_ok)?'':'none';}}isIE = document.all;function FOXCalendario_drag_iniciar(e){FOXCalendario_movible = document.getElementById('FOXCalendario_contenedor');FOXCalendario_zona_movible = (isIE)?(event.srcElement):(e.target);while((FOXCalendario_zona_movible.id != 'FOXCalendario_zona_drag' && FOXCalendario_zona_movible.id != 'FOXCalendario_zona_drag1') && FOXCalendario_zona_movible.tagName != 'HTML'){FOXCalendario_zona_movible = (isIE)?(FOXCalendario_zona_movible.parentElement):(FOXCalendario_zona_movible.parentNode);}if(FOXCalendario_zona_movible.id == 'FOXCalendario_zona_drag' || FOXCalendario_zona_movible.id == 'FOXCalendario_zona_drag1'){x_mouse = (isIE)?(event.clientX):(e.clientX);y_mouse = (isIE)?(event.clientY):(e.clientY);x_actual = parseInt(FOXCalendario_movible.style.left,10);y_actual = parseInt(FOXCalendario_movible.style.top,10);FOXCalendario_drag_ok=true;document.onmousemove=FOXCalendario_drag_mover;}}function FOXCalendario_drag_mover(e){if (!FOXCalendario_drag_ok){return;}else{FOXCalendario_movible.style.left = (isIE)?(x_actual+event.clientX-x_mouse):(x_actual+e.clientX-x_mouse);FOXCalendario_movible.style.top = (isIE)?(y_actual+event.clientY-y_mouse):(y_actual+e.clientY-y_mouse);return false;}}function FOXCalendario_drag_detener(){FOXCalendario_drag_ok=false;}document.onmousedown=FOXCalendario_drag_iniciar;document.onmouseup=FOXCalendario_drag_detener;
