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

function fToggleColor(myElement) {
var toggleColor = "#ff0000";
if (myElement.id == "calDateText") {
if (myElement.color == toggleColor) {
myElement.color = "";
} else {
myElement.color = toggleColor;
   }
} else if (myElement.id == "calCell") {
for (var i in myElement.children) {
if (myElement.children[i].id == "calDateText") {
if (myElement.children[i].color == toggleColor) {
myElement.children[i].color = "";
} else {
myElement.children[i].color = toggleColor;
            }
         }
      }
   }
}
function fSetSelectedDay(myElement){
if (myElement.id == "calCell") {
if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) {
myElement.bgColor = "#EBEBF6";
objPrevElement.bgColor = "";
document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
objPrevElement = myElement;
      }
   }
}
function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 0);
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] = "Domenica";
aMonth[0][1] = "Lunedi";
aMonth[0][2] = "Martedi";
aMonth[0][3] = "Mercoledi";
aMonth[0][4] = "Giovedi";
aMonth[0][5] = "Venerdi";
aMonth[0][6] = "Sabato";
} else if (iDayStyle == 1) {
aMonth[0][0] = "Dom";
aMonth[0][1] = "Lun";
aMonth[0][2] = "Mar";
aMonth[0][3] = "Mer";
aMonth[0][4] = "Gio";
aMonth[0][5] = "Ven";
aMonth[0][6] = "Sab";
} else {
aMonth[0][0] = "Do";
aMonth[0][1] = "Lu";
aMonth[0][2] = "Ma";
aMonth[0][3] = "Me";
aMonth[0][4] = "Gi";
aMonth[0][5] = "Ve";
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(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) {
var myMonth; 
myMonth = fBuildCal(iYear, iMonth, iDayStyle);
document.write("<table border='0' cellpadding='0' cellspacing='0' WIDTH=150>")
document.write("<tr>");
document.write("<td height=24 align='center' style='FONT-FAMILY:Arial;FONT-SIZE:11px;color: #ff0000;FONT-WEIGHT: normal'>" + myMonth[0][0] + "</td>");
document.write("<td height=24 align='center' style='FONT-FAMILY:Arial;FONT-SIZE:11px;color: #555555;FONT-WEIGHT: normal'>" + myMonth[0][1] + "</td>");
document.write("<td height=24 align='center' style='FONT-FAMILY:Arial;FONT-SIZE:11px;color: #555555;FONT-WEIGHT: normal'>" + myMonth[0][2] + "</td>");
document.write("<td height=24 align='center' style='FONT-FAMILY:Arial;FONT-SIZE:11px;color: #555555;FONT-WEIGHT: normal'>" + myMonth[0][3] + "</td>");
document.write("<td height=24 align='center' style='FONT-FAMILY:Arial;FONT-SIZE:11px;color: #555555;FONT-WEIGHT: normal'>" + myMonth[0][4] + "</td>");
document.write("<td height=24 align='center' style='FONT-FAMILY:Arial;FONT-SIZE:11px;color: #555555;FONT-WEIGHT: normal'>" + myMonth[0][5] + "</td>");
document.write("<td height=24 align='center' style='FONT-FAMILY:Arial;FONT-SIZE:11px;color: #555555;FONT-WEIGHT: normal'>" + myMonth[0][6] + "</td>");
document.write("</tr>");
for (w = 1; w < 7; w++) {
document.write("<tr>")
for (d = 0; d < 7; d++) {
document.write("<td align='right' valign='top' width='" + iCellWidth + "' height='20' id=calCell style='CURSOR:Hand' onMouseOver='fToggleColor(this)' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>");
if (!isNaN(myMonth[w][d])) {
document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;color: #555555;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>" + myMonth[w][d] + "</font>");
} else {
document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;color: #555555;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)> </font>");
}
document.write("</td>")
}
document.write("</tr>");
}
document.write("</table>")
}
function fUpdateCal(iYear, iMonth) {
myMonth = fBuildCal(iYear, iMonth);
objPrevElement.bgColor = "";
document.all.calSelectedDate.value = "";
for (w = 1; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (!isNaN(myMonth[w][d])) {
calDateText[((7*w)+d)-7].innerText = myMonth[w][d];
} else {
calDateText[((7*w)+d)-7].innerText = " ";
         }
      }
   }
}
