|  |  |  | 
|  |  | 
 
| <SCRIPT LANGUAGE="JavaScript"> function setCookie(name, value, expires, path, domain, secure) {
 var curCookie = name + "=" + escape(value) +
 ((expires) ? "; expires=" + expires.toGMTString() : "") +
 ((path) ? "; path=" + path : "") +
 ((domain) ? "; domain=" + domain : "") +
 ((secure) ? "; secure" : "")
 if (!caution || (name + "=" + escape(value)).length <= 4000)
 document.cookie = curCookie
 else
  if (confirm("Cookie превышает 4KB и будет вырезан !"))
 document.cookie = curCookie
 }
 
 function getCookie(name) {
 var prefix = name + "="
 var cookieStartIndex = document.cookie.indexOf(prefix)
 if (cookieStartIndex == -1)
 return null
 var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
 if (cookieEndIndex == -1)
 cookieEndIndex = document.cookie.length
 return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
 }
 
 function deleteCookie(name, path, domain) {
 if (getCookie(name)) {
 document.cookie = name + "=" +
 ((path) ? "; path=" + path : "") +
 ((domain) ? "; domain=" + domain : "") +
 "; expires=Thu, 01-Jan-70 00:00:01 GMT"
 }
 }
 
 function fixDate(date) {
 var base = new Date(0)
 var skew = base.getTime()
 if (skew > 0)
 date.setTime(date.getTime() - skew)
 }
 
 function initCookie(monthName) {
 var text = ""
 for (var i = 1; i <= 31; ++i) {
 text += "^" + i + "^"
 }
 
 var now = new Date()
 fixDate(now)
 now.setTime(now.getTime() + 1000 * 60 * 60 * 24 * 31)
 setCookie(monthName + "Calendar", text, now)
 }
 
 function getSpecificReminder(num, monthName) {
 var prefix = "^" + num + "^"
 var totalCookie = getCookie(monthName + "Calendar")
 var startIndex = totalCookie.indexOf(prefix, 0)
 var startData = totalCookie.indexOf("^", startIndex + 1) + 1
 if (num == 31)
 var endData = totalCookie.length
 else
 var endData = totalCookie.indexOf("^", startData)
 
 
 return totalCookie.substring(startData, endData)
 }
 
 function setSpecificReminder(num, monthName, newValue) {
 var prefix = "^" + num + "^"
 var totalCookie = getCookie(monthName + "Calendar")
 var startIndex = totalCookie.indexOf(prefix, 0)
 var startData = totalCookie.indexOf("^", startIndex + 1) + 1
 if (num == 31)
 var endData = totalCookie.length
 else
 var endData = totalCookie.indexOf("^", startData)
 var now = new Date()
 fixDate(now)
 
 now.setTime(now.getTime() + 1000 * 60 * 60 * 24 * 31)
 
 setCookie(monthName + "Calendar", totalCookie.substring(0, startData) +
 newValue + totalCookie.substring(endData, totalCookie.length), now)
 }
 
 function getInput(num, monthName) {
 if (!getCookie(monthName + "Calendar"))
 initCookie(monthName)
 var newValue = prompt("Введите запись соответствующей данной дате:", getSpecificReminder(num, monthName))
 if (newValue) // user did not cancel
 setSpecificReminder(num, monthName, newValue)
 }
 
 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
 
 return hour + ":" + minute + " " + ampm
 }
 
 function leapYear(year) {
 if (year % 4 == 0)
 return true
 return false
 }
 
 function getDays(month, year) {
 var ar = new Array(12)
 ar[0] = 31
 ar[1] = (leapYear(year)) ? 29 : 28
 ar[2] = 31
 ar[3] = 30
 ar[4] = 31
 ar[5] = 30
 ar[6] = 31
 ar[7] = 31
 ar[8] = 30
 ar[9] = 31
 ar[10] = 30
 ar[11] = 31
 
 return ar[month]
 }
 
 function getMonthName(month) {
 var ar = new Array(12)
 ar[0] = "ЯНВАРЬ"
 ar[1] = "ФЕВРАЛЬ"
 ar[2] = "МАРТ"
 ar[3] = "АПРЕЛЬ"
 ar[4] = "МАЙ"
 ar[5] = "ИЮНЬ"
 ar[6] = "ИЮЛЬ"
 ar[7] = "АВГУСТ"
 ar[8] = "СЕНТЯБРЬ"
 ar[9] = "ОКТЯБРЬ"
 ar[10] = "НОЯБРЬ"
 ar[11] = "ДЕКАБРЬ"
 
 return ar[month]
 }
 
 function setCal() {
 var now = new Date()
 var year = now.getYear()
 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, 1900 + year)
 }
 
 function drawCal(firstDay, lastDate, date, monthName, year) {
 var headerHeight = 35 // height of the table's header cell
 var border = 0 // 3D height of table's border
 var cellspacing = 0 // width of table's border
 var headerColor = "00008b" // color of table's header
 var headerSize = "+2" // size of tables header font
 var colWidth = 45 // width of columns in table
 var dayCellHeight = 15 // height of cells containing days of the week
 var dayColor = "000000" // color of font representing week days
 var cellHeight = 25 // height of cells representing dates in the calendar
 var todayColor = "red" // color specifying today's date in the calendar
 var timeColor = "purple" // color of font representing current time
 var dayCellcolor="87ceda"
 var monthColor="6485ed"
 
 var text = "" // initialize accumulative variable to empty string
 text += '<CENTER>'
 // table settings
 text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + '>'
 // create table header cell
 text +=  '<TH COLSPAN=7 HEIGHT=' + headerHeight + ' BGCOLOR='+ monthColor +'>'
 // set font for table header
 text +=   '<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>'
 text +=    monthName + ' ' + year
 text +=   '</FONT>' // close table header's font settings
 text +=  '</TH>' // close header cell
 
 var openCol = '<TD align=right WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight +
 ' BGCOLOR='+ dayCellcolor +'>'
 openCol += '<FONT SIZE=-1 COLOR="' + dayColor + '">'
 var closeCol = '</FONT></TD>'
 
 var weekDay = new Array(7)
 weekDay[0] = "Вс"
 weekDay[1] = "Пн"
 weekDay[2] = "Вт"
 weekDay[3] = "Ср"
 weekDay[4] = "Чт"
 weekDay[5] = "Пт"
 weekDay[6] = "Сб"
 
 text += '<TR ALIGN="center" VALIGN="center">'
 for (var dayNum = 0; dayNum < 7; ++dayNum) {
 text += openCol + weekDay[dayNum] + closeCol
 }
 text += '</TR>'
 
 // declaration and initialization of two variables to help with tables
 var digit = 1
 var curCell = 1
 for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
 text += '<TR ALIGN="right" VALIGN="top">'
 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 + ' BGCOLOR="#00FFFF">'
 text += '<FONT COLOR="' + todayColor + '">'
 text += '<A HREF="javascript:getInput(' + digit + ', \'' + monthName +
 '\')" onMouseOver="window.status = \'Записать или прочесть запись за ' + monthName +
 ' ' + digit + '\'; return true"><FONT SIZE=-1 COLOR="' + todayColor + '">' +
 digit + '</FONT></A>'
 text += '<BR>'
 text += '<FONT COLOR="' + timeColor + '" SIZE=2>'
 text += '<CENTER>' + getTime() + '</CENTER>'
 text += '</FONT>'
 text += '</TD>'
 } else
 text += '<TD HEIGHT=' + cellHeight +
 ' BGCOLOR="#C0C0C0"><FONT SIZE=-1><A HREF="javascript:getInput(' + digit +
 ', \'' + monthName + '\')" onMouseOver="window.status = \'Записать или прочесть запись за ' +
 monthName + ' ' + digit + '\'; return true">' + digit + '</A></FONT></TD>'
 digit++
 }
 }
 text += '</TR>'
 }
 
 // close all basic table tags
 text += '</TABLE>'
 text += '</CENTER>'
 
 // print accumulative HTML string
 document.write(text)
 }
 
 setCal()
 | 
 
 
Комментарии
 
 |  |