function calendariobcu() {
	this.name = "calendariobcu"
	this.draw = fDrawAll
}

var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();
var hora= dDate.getHours();

function mover(a,m) {
	var path = location.pathname
	//document.write(path)	
	var pos = path.indexOf("\\\\\\\\")
	var re
    if (pos == -1) {
		re = /\\\\/i;
		path = path.replace(re, "\\\\\\\\");
    }
	var pos = path.indexOf("\/\/\/\/")
	var re
    if (pos == -1) {
		re = /\/\//i;
		path = path.replace(re, "\/\/\/\/");
    }
    window.location.href = path + "?anio=" + a + ",mes=" + m;
	//document.write(path)	
}

function getDiaSemana(Anio, Mes, Dia) {
	var dCalDate = new Date(Anio, Mes-1, Dia);
	return dCalDate.getDay();
}

function fSelectedDay(sURL, AnioCompleto, Mes, Dia){
var Anio = AnioCompleto.toString().substr(2);
if (Mes<10) {
	Mes = "0" + Mes;
}
if (Dia<10) {
	Dia = "0" + Dia;
}

DiaSem = getDiaSemana(AnioCompleto, Mes, Dia);
	var sURLFinal = sURL.replace("#yyyy#",AnioCompleto);
	sURLFinal = sURLFinal.replace("#yy#",Anio);
	sURLFinal = sURLFinal.replace("#mm#",Mes);
	sURLFinal = sURLFinal.replace("#dd#",Dia);
	return sURLFinal; 
}

function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 1);
var MinMili = 1000 * 60;
var HoraMili = MinMili * 60;
var DiaMili = HoraMili * 24;

dMilis = dPrevDate.valueOf();
dPrevDate = new Date(dMilis - DiaMili);
return dPrevDate.getDate();
}

function fBuildCal(iYear, iMonth, iDayStyle) {
var aMonth = new Array();
aMonth[0] = new Array(7);
aMonth[1] = new Array(7);
aMonth[2] = new Array(7);
aMonth[3] = new Array(7);
aMonth[4] = new Array(7);
aMonth[5] = new Array(7);
aMonth[6] = new Array(7);
var dCalDate = new Date(iYear, iMonth-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
var iVarDate = 1;
var i, d, w;
if (iDayStyle == 2) {
aMonth[0][0] = "Domingo";
aMonth[0][1] = "Lunes";
aMonth[0][2] = "Martes";
aMonth[0][3] = "Mi‰rcoles";
aMonth[0][4] = "Jueves";
aMonth[0][5] = "Viernes";
aMonth[0][6] = "Sßbado";
} else if (iDayStyle == 1) {
aMonth[0][0] = "Dom";
aMonth[0][1] = "Lun";
aMonth[0][2] = "Mar";
aMonth[0][3] = "Mie";
aMonth[0][4] = "Jue";
aMonth[0][5] = "Vie";
aMonth[0][6] = "Sab";
} else {
aMonth[0][0] = "Do";
aMonth[0][1] = "Lu";
aMonth[0][2] = "Ma";
aMonth[0][3] = "Mi";
aMonth[0][4] = "Ju";
aMonth[0][5] = "Vi";
aMonth[0][6] = "Sa";
}
for (d = iDayOfFirst; d < 7; d++) {
aMonth[1][d] = iVarDate;
iVarDate++;
}
for (w = 2; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (iVarDate <= iDaysInMonth) {
aMonth[w][d] = iVarDate;
iVarDate++;
      }
   }
}
return aMonth;
}


function fDrawCal(sURL, iAnioBase, iMesBase, iDiaBase, iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) {
var myMonth;
myMonth = fBuildCal(iYear, iMonth, iDayStyle);
document.write("<table border='0'>")
document.writeln(" <tr>");
for (w=0; w<7; w++) {
  	document.writeln("  <td align='center'> <font face=\"Arial\" size='2'>" + myMonth[0][w] + "</font> </td>");
}
document.writeln(" </tr>");

var hoy=new Date();
var valHoy = hoy.valueOf();
var fechaBase = new Date(iAnioBase, iMesBase-1, iDiaBase);
var valFechaBase = fechaBase.valueOf();
var feriados = new diasferiados(iYear, iMonth);

for (w = 1; (w < 7) && ((w==1) || !isNaN(myMonth[w][0])); w++) {
document.writeln("<tr>")
for (d = 0; d < 7; d++) {
document.write("  <td align='center' valign='center' width='" + iCellWidth + "' height='" + iCellHeight + "' >");


if (!isNaN(myMonth[w][d])) {
	var fecha = new Date(iYear, iMonth-1, myMonth[w][d]);
	var valFecha = fecha.valueOf();
	var feriado = feriados.esFeriado(myMonth[w][d]);
	if (d==0 || d==6 || feriado) {
		//Sabados y domingos
		ForeColor = "color=\"#cc0000\""
	} else {
		ForeColor = "";
	}
	if ((d!=0) && (d!=6) 
		&& (valHoy>=valFecha)
		&& (valFecha>=valFechaBase)
		&& (!feriado)
		&& (!(iYear==dCurYear && iMonth==dCurMonth+1 && myMonth[w][d]==dCurDayOfMonth && hora<18))
	){
		document.write("<font face=\"Arial\"> <A HREF=\""+ fSelectedDay(sURL, iYear, iMonth, myMonth[w][d]) + "\">" + myMonth[w][d] + "</A> </font>");
	}
	else if (ForeColor != "") {
		document.write("<font face=\"Arial\" " + ForeColor  + ">" + myMonth[w][d] + "</font>");
	}
	else {
		document.write("<font face=\"Arial\">" +  myMonth[w][d] + "</font>");
	}
} 

document.writeln("</td>");
}
document.writeln(" </tr>");
}
document.writeln("</table>");
}

function fDrawMonth(iMonth){
var Mes = new Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Setiembre', 'Octubre', 'Noviembre', 'Diciembre');

document.writeln("<select name=\"tbSelMonth\" onChange='mover(tbSelYear.options[tbSelYear.selectedIndex].value,tbSelMonth.options[tbSelMonth.selectedIndex].value)'>"); 
for (i=0; i<12; i++) {
	j = i + 1;
	if (j == iMonth) {
		document.writeln("<option selected value=\"" + j + "\">" + Mes[i] + "</option>");
	}
	else {
		document.writeln("<option value=\"" + j + "\">" + Mes[i] + "</option>");
	}
}
document.writeln("</select>");
}

function fDrawYear( iYearMin, iYearMax, iYear ) {
document.writeln("<select name=\"tbSelYear\" onChange='mover(tbSelYear.options[tbSelYear.selectedIndex].value,tbSelMonth.options[tbSelMonth.selectedIndex].value)'>");
for (i=iYearMin; i<=iYearMax; i++) {
	if (i == iYear) {
		document.writeln("<option selected value=\"" + i + "\">" + i + "</option>");
	}
	else {
		document.writeln("<option value=\"" + i + "\">" + i + "</option>");
	}
}
document.writeln("</select>");
}

function fDrawAll(sURL, iAnioBase, iMesBase, iDiaBase) {
var anio;
var mes;

var dCurDate = new Date();
var args = getArgs();                 
if (args.anio) {
	anio = parseInt(args.anio);
}
else {
	anio = dCurDate.getFullYear();
}
if (args.mes) {
	mes = parseInt(args.mes); 
}
else {
	mes = dCurDate.getMonth()+1;
}

   document.writeln("<table bordercolor='#05357d' cellspacing='0' cellpadding='1' border=\"1\">");
   document.writeln("<tr bgcolor='#05357d' >");
	document.writeln("<td>");
	fDrawMonth(mes);
	fDrawYear(iAnioBase, dCurDate.getFullYear(), anio);
	document.writeln("</td>");
document.writeln("</tr>");

document.writeln("<tr>");
	document.writeln("<td>");
	fDrawCal(sURL, iAnioBase, iMesBase, iDiaBase, anio, mes, 30, 30, "12px", "bold", 1); 
	document.writeln("</td>");
document.writeln("</tr>");
document.writeln("</table>");
}

function getArgs() {
    var args=new Object();
    var query = location.search.substring(1); 
    var pairs = query.split(",");       
    for(var i = 0; i < pairs.length; i++) {
	var pos = pairs[i].indexOf('=');       
	if (pos == -1) continue;               
	var argname = pairs[i].substring(0,pos); 
	var value = pairs[i].substring(pos+1); 
	args[argname] = unescape(value);         
    } 
    return args;
}  
