var targetField = null;
var a_mo = ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Setiembre","Octubre","Noviembre","Diciembre"];
var w_da = ["Do","Lu","Ma","Mi","Ju","Vi","Sa"];
var calHead = 
    "<div align=\"center\" class=\"subt\">Calendario Tributario<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">"+
		"<tr><td bgcolor=\"#4682B4\"><table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">";
function show_calendar(s_dt, t_cal, m) {
	var n_weekstart = 1;
	var dt_dt = (s_dt == null || s_dt =="" ?  new Date() : str2dt(s_dt));
	var dt_pmo = new Date(dt_dt);dt_pmo.setDate(0);
	var dt_nmo = new Date(dt_dt);dt_nmo.setDate(1);
  if (dt_dt.getMonth()+1<=11) {dt_nmo.setMonth(dt_dt.getMonth()+1); } else {dt_nmo.setMonth(0);dt_nmo.setYear(dt_dt.getYear()+1);}
	var dt_fd = new Date(dt_dt);dt_fd.setDate(1);
	dt_fd.setDate(1-(7+dt_fd.getDay()-n_weekstart)%7);
	var dt_ld = new Date(dt_nmo);dt_ld.setDate(0);
	var str_buffer = new String (calHead+
		"<tr><td bgcolor=\"#4682B4\"><a href=\"cal.jsp?fecha="+dt2st(dt_pmo)+"&oblig="+t_cal+"\">"+
		"<img src=\"/a/imagenes/prev.gif\" width=\"16\" height=\"16\" border=\"0\"></a></td>"+
		"<td bgcolor=\"#4682B4\" colspan=\"4\" nowrap><font color=\"white\" face=\"tahoma, verdana\" size=\"1\">"
		+a_mo[dt_dt.getMonth()]+" "+dt_dt.getFullYear()+"</font></td>"+
    "<td bgcolor=\"#4682B4\" align=\"right\"></td><td bgcolor=\"#4682B4\" align=\"right\"><a href=\"cal.jsp?fecha="+
		dt2st(dt_nmo)+"&oblig="+t_cal+"\"><img src=\"/a/imagenes/next.gif\" width=\"16\" height=\"16\" border=\"0\"></a></td></tr>"
	);
  var f_vc = leerestado(dt_dt.getFullYear() + to2di((dt_dt.getMonth()+1)) + (t_cal=="1"?"m":"s"), t_cal ); 
	var dt_cud = new Date(dt_fd);
	str_buffer += "<tr>";
	for (var n=0; n<7; n++)str_buffer+="<td class=\"diasemana\">"+w_da[(n_weekstart+n)%7]+"</td>";
	// imprime la tabla del calendario
	str_buffer += "</tr>";
	while (dt_cud.getMonth() == dt_dt.getMonth() ||
		dt_cud.getMonth() == dt_fd.getMonth()) {
		// inicio de una fila
		str_buffer += "<tr>";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
      var estilo = null;
      var o = null;
			if (dt_cud.getDate() == dt_dt.getDate() &&
					dt_cud.getMonth() == dt_dt.getMonth() && m=="1"){
					// Dia actual
          estilo = ((o=esvenc(to2di(dt_cud.getDate()), f_vc, t_cal))!=null)?"\"" + estiloV(to2di(dt_cud.getDate()), f_vc, t_cal, "da", m) + "\"":"\"da\"";
			} else if (dt_cud.getDay() == 0 || dt_cud.getDay() == 6){
					// fines de semana
        estilo = (dt_cud.getMonth() == dt_dt.getMonth())?"\"dl\"":"\"dlmd\"";
			} else {
					// dias laborales del mes actual
        if (dt_cud.getMonth() == dt_dt.getMonth()){
          estilo = ((o=esvenc(to2di(dt_cud.getDate()), f_vc, t_cal))!=null)?"\"" + estiloV(to2di(dt_cud.getDate()), f_vc, t_cal, "dn", m) + "\"":"\"dn\"";
        } else 
          // dias laborales del mes anterior y posterior
          estilo = "\"dmd\"";
      }
      str_buffer += "<td class="+estilo+">";
      if (o!=null){str_buffer += "<a href=\"javascript:void(0)\" onMouseOver=\"dts('"+o+"'); return true;\" onMouseOut=\"doMouseOut(); return true;\">"+dt_cud.getDate()+"</a></td>";
      } else {str_buffer += dt_cud.getDate()+"</td>";
      }
			dt_cud.setDate(dt_cud.getDate()+1);
		}
		// Cierre de la fila
		str_buffer += "</tr>";
	}
	// Pie de pagina del calendario
	str_buffer +="</table></td></tr></table></div>";
	return str_buffer;
}
function str2dt (s_dt) {
	var re_date = /^(\d+)\/(\d+)\/(\d+)$/;
	if (!re_date.exec(s_dt))return alert("Formato de fecha-hora invalido: "+ s_dt);
	return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1));
}
function dt2st(dt_dt){return (new String(to2di(dt_dt.getDate())+"/"+to2di((dt_dt.getMonth()+1))+"/"+dt_dt.getFullYear()));}
function to2di(inValue){var numVal = parseInt(inValue, 10);return(numVal<10?"0" + numVal:numVal+"")}
function esvenc(dia, lista, t_cal){
  if (lista==null) return null;
  var a="";var d="";var p="";var q="";
  for (i=0;i<lista.length;i++){
    if (lista[i].dia==dia){
      if (t_cal=="1"){
        if (lista[i].periodo.substring(4,6)=="13") {a+=lista[i].digito + ",";p=" Anual "+lista[i].periodo.substring(0,4);}
        if (lista[i].periodo.substring(4,6)!="13") {d+=(lista[i].digito + ((i+1)<lista.length?",":" "));q=lista[i].periodo;}
      }else{d="Todos";p="el mismo";}
    }
  }
  if (d.length>0||a.length>0){
    if (d.length>10)d="Todos";
    return ((d.length>0?"Digito(s) "+d+" periodo "+q+" ":"") + (a.length>0?"Digito(s) "+a+p:""));
  } else return null;
}
function estiloV(dia, lista, t_cal, e, x){
  s="";m="";
	if (t_cal=="1"){
	  for (i=0;i<lista.length;i++){
	    if (lista[i].dia==dia){m+=lista[i].digito;s=lista[i].periodo.substring(4,6)=="13"?(e=="da"&&x=="1"?"dava":"dva"):(e=="da"&&x=="1"?"dav":"dv");if (s=="dva"||s=="dava")break;}
	  }
	} else {s=(e=="da"&&x=="1"?"dav":"dv");}
  if (m.length>=10&&(s!="dva"&&s!="dava")){return (e=="da"&&x=="1"?"davf":"dvf");} else return s;
}
