setCal()

function getTime() {
var now = new Date()
var hour = now.getHours()
var minute = now.getMinutes()
now = null
var ampm = "" 

if (hour >= 12) {
hour -= 12
ampm = "PM"
} else
ampm = "AM"
hour = (hour == 0) ? 12 : hour

if (minute < 10)
minute = "0" + minute // do not parse this number!

return hour + ":" + minute + " " + ampm
}

function leapYear(year) {
if (year % 4 == 0) // basic rule
return true // is leap year
return false // is not leap year
}

function getDays(month, year) {
var ar = new Array(12)
ar[0] = 31 // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31 // March
ar[3] = 30 // April
ar[4] = 31 // May
ar[5] = 30 // June
ar[6] = 31 // July
ar[7] = 31 // August
ar[8] = 30 // September
ar[9] = 31 // October
ar[10] = 30 // November
ar[11] = 31 // December

return ar[month]
}

function getMonthName(month) {
var ar = new Array(12)
ar[0] = "Enero"
ar[1] = "Febrero"
ar[2] = "Marzo"
ar[3] = "Abril"
ar[4] = "Mayo"
ar[5] = "Junio"
ar[6] = "Julio"
ar[7] = "Augosto"
ar[8] = "Septiembre"
ar[9] = "Octubre"
ar[10] = "Noviembre"
ar[11] = "Diciembre"

return ar[month]
}

function setCal() {
var now = new Date()
var year = now.getYear()
if (year < 1000)
year+=1900
var month = now.getMonth()
var monthName = getMonthName(month)
var date = now.getDate()
now = null

var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null

var days = getDays(month, year)

drawCal(firstDay + 1, days, date, monthName, year)
}

function drawCal(firstDay, lastDate, date, monthName, year) {
var headerHeight = 10 // height of the table's header cell
var border = 0 // 3D height of table's border
var cellspacing = 2 // width of table's border
var headerColor = "midnightblue" // color of table's header
var headerSize = "2" // size of tables header font
var colWidth = 10 // width of columns in table
var dayCellHeight = 7 // height of cells containing days of the week
var dayColor = "darkblue" // color of font representing week days
var cellHeight = 7 // height of cells representing dates in the calendar
var todayColor = "#67B341" // color specifying today's date in the calendar
var timeColor = "purple" // color of font representing current time

//HEIGHT=' + headerHeight + '

var text = "" // initialize accumulative variable to empty string
text += '<CENTER>'
text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + '>' // table settings
text += '<TD COLSPAN=7  align=left class=fecha>' // create table header cell
text += '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
text += monthName + ' ' + year 
text += '</FONT>' // close table header's font settings
text += '</TD>' // close header cell

//' HEIGHT=' + dayCellHeight +

var openCol = '<TD WIDTH=' + colWidth +  '>'
openCol += '<span class=calendar>'
var closeCol = '</span></TD>'

var weekDay = new Array(7)
weekDay[0] = "D"
weekDay[1] = "L"
weekDay[2] = "M"
weekDay[3] = "M"
weekDay[4] = "J"
weekDay[5] = "V"
weekDay[6] = "S"

text += '<TR ALIGN="center" VALIGN="center" class=calendarnum>'
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol 
}
text += '</TR>'

var digit = 1
var curCell = 1

for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += '<TR ALIGN="right" VALIGN="top" class=calendarnum>'
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break
if (curCell < firstDay) {
text += '<TD></TD>';
curCell++
} else {
if (digit == date) { // current cell represent today's date
text += '<TD HEIGHT=' + cellHeight + '>'
text += '<strong><FONT COLOR="' + todayColor + '">'
text += digit
text += '</FONT></strong>'
//text += '<BR><FONT COLOR="' + timeColor + '" SIZE=2>'
//text += '<CENTER>' + getTime() + '</CENTER>'
//text += '</FONT>'
text += '</TD>'
} else
text += '<TD HEIGHT=' + cellHeight + '>' + digit + '</TD>'
digit++
}
}
text += '</TR>'
}

text += '</TABLE>'
text += '</CENTER>'

document.write(text) 
}