Calendário com lembretes (agenda) - javascript -
O script abaixo faz uso de cookies
<html>
<body>
<head>
<!- começa aqui->
<script LANGUAGE="JavaScript">
<!--
function encode (str) {
var dest = "";
var len = str.length;
var index = 0;
var code = null;
for (var i = 0; i < len; i++) {
var ch = str.charAt(i);
if (ch == " ") code = "%20";
else if (ch == "%") code = "%25";
else if (ch == ",") code = "%2C";
else if (ch == ";") code = "%3B";
else if (ch == "\b") code = "%08";
else if (ch == "\t") code = "%09";
else if (ch == "\n") code = "%0A";
else if (ch == "\f") code = "%0C";
else if (ch == "\r") code = "%0D";
if (code != null) {
dest += str.substring(index,i) + code;
index = i + 1;
code = null;
}
}
if (index < len)
dest += str.substring(index, len);
return dest;
}
function decode (str) {
var dest = "";
var len = str.length;
var index = 0;
var code = null;
var i = 0;
while (i < len) {
i = str.indexOf ("%", i);
if (i == -1)
break;
if (index < i)
dest += str.substring(index, i);
code = str.substring (i+1,i+3);
i += 3;
index = i;
if (code == "20") dest += " ";
else if (code == "25") dest += "%";
else if (code == "2C") dest += ",";
else if (code == "3B") dest += ";";
else if (code == "08") dest += "\b";
else if (code == "09") dest += "\t";
else if (code == "0A") dest += "\n";
else if (code == "0C") dest += "\f";
else if (code == "0D") dest += "\r";
else {
i -= 2;
index -= 3;
}
}
if (index < len)
dest += str.substring(index, len);
return dest;
}
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return decode(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value, expires) {
document.cookie = name + "=" + encode(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString()));
}
function DeleteCookie (name) {
var exp = new Date();
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
function arrayOfDaysInMonths(isLeapYear)
{
this[0] = 31;
this[1] = 28;
if (isLeapYear)
this[1] = 29;
this[2] = 31;
this[3] = 30;
this[4] = 31;
this[5] = 30;
this[6] = 31;
this[7] = 31;
this[8] = 30;
this[9] = 31;
this[10] = 30;
this[11] = 31;
}
function daysInMonth(month, year)
{
var isLeapYear = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
var monthDays = new arrayOfDaysInMonths(isLeapYear);
return monthDays[month];
}
function calendar()
{
var monthNames = "JanFevMarAbrMaiJunJulAgoSetOutNovDez";
var today = new Date();
var day = today.getDate();
var month = today.getMonth();
var year = today.getYear();
var numDays = daysInMonth(month, year+1);
var firstDay = today;
firstDay.setDate(2);
var startDay = firstDay.getDay();
var column = 0;
document.write("<CENTER>");
document.write("<TABLE BORDER=0 bgcolor=#f8f8f8>");
document.write("<TR><TH COLSPAN=7><Font face=verdana size=1>");
document.write(monthNames.substring(3*month, 3*(month + 1)) + " " + year);
document.write("<TR><TH><Font face=verdana size=1>Dom<TH><Font face=verdana size=1>Seg<TH><Font face=verdana size=1>Ter<TH><Font face=verdana size=1>Qua<TH><Font face=verdana size=1>Qui<TH><Font face=verdana size=1>Sex<TH><Font face=verdana size=1>Sab");
document.write("<TR>");
for (i=1; i < startDay; i++)
{
document.write("<TD><Font face=verdana size=1>");
column++;
}
for (i=1; i <= numDays; i++)
{
var s = "" + i;
if ((GetCookie("d"+i) != null))
s = s.fontcolor("#FF0000");
s = s.link("javascript:dayClick(" + i + ")")
document.write("<TD>" + s);
if (++column == 7)
{
document.write("<TR>");
column = 0;
}
}
document.write("</TABLE>");
document.writeln("</CENTER>");
}
function dayClick(day)
{
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000));
var prefix = "d";
var theCookieName = prefix + day;
var theDayclickedReminder = GetCookie(theCookieName);
if (theDayclickedReminder != null) {
// seu alerta aqui
alert("O lembrete para o dia " + day + " é:" + theDayclickedReminder);
}
// você coloca sua mensagem aqui
if (confirm("Você deseja colocar um lembrete para o dia " + day + " deste mês?"))
{
x = prompt("Coloque seu lembrete para o dia "+ day + " deste mês", theDayclickedReminder);
SetCookie (theCookieName, x, expdate);
}
}
// -->
</SCRIPT>
<style>A:link {
COLOR: #000000; TEXT-DECORATION: none
}
A:visited {
COLOR: #000000; TEXT-DECORATION: none
}
A:active {
COLOR: #000000; TEXT-DECORATION: none
}
A:hover {
COLOR: #000000; TEXT-DECORATION: underline
}
</STYLE>
</head>
<script language="JavaScript">
<!--
calendar();
// -->
</script>
clique nos dias para colocar lembretes
</body>
</html>
<html>
<body>
<head>
<!- começa aqui->
<script LANGUAGE="JavaScript">
<!--
function encode (str) {
var dest = "";
var len = str.length;
var index = 0;
var code = null;
for (var i = 0; i < len; i++) {
var ch = str.charAt(i);
if (ch == " ") code = "%20";
else if (ch == "%") code = "%25";
else if (ch == ",") code = "%2C";
else if (ch == ";") code = "%3B";
else if (ch == "\b") code = "%08";
else if (ch == "\t") code = "%09";
else if (ch == "\n") code = "%0A";
else if (ch == "\f") code = "%0C";
else if (ch == "\r") code = "%0D";
if (code != null) {
dest += str.substring(index,i) + code;
index = i + 1;
code = null;
}
}
if (index < len)
dest += str.substring(index, len);
return dest;
}
function decode (str) {
var dest = "";
var len = str.length;
var index = 0;
var code = null;
var i = 0;
while (i < len) {
i = str.indexOf ("%", i);
if (i == -1)
break;
if (index < i)
dest += str.substring(index, i);
code = str.substring (i+1,i+3);
i += 3;
index = i;
if (code == "20") dest += " ";
else if (code == "25") dest += "%";
else if (code == "2C") dest += ",";
else if (code == "3B") dest += ";";
else if (code == "08") dest += "\b";
else if (code == "09") dest += "\t";
else if (code == "0A") dest += "\n";
else if (code == "0C") dest += "\f";
else if (code == "0D") dest += "\r";
else {
i -= 2;
index -= 3;
}
}
if (index < len)
dest += str.substring(index, len);
return dest;
}
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return decode(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value, expires) {
document.cookie = name + "=" + encode(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString()));
}
function DeleteCookie (name) {
var exp = new Date();
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
function arrayOfDaysInMonths(isLeapYear)
{
this[0] = 31;
this[1] = 28;
if (isLeapYear)
this[1] = 29;
this[2] = 31;
this[3] = 30;
this[4] = 31;
this[5] = 30;
this[6] = 31;
this[7] = 31;
this[8] = 30;
this[9] = 31;
this[10] = 30;
this[11] = 31;
}
function daysInMonth(month, year)
{
var isLeapYear = (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));
var monthDays = new arrayOfDaysInMonths(isLeapYear);
return monthDays[month];
}
function calendar()
{
var monthNames = "JanFevMarAbrMaiJunJulAgoSetOutNovDez";
var today = new Date();
var day = today.getDate();
var month = today.getMonth();
var year = today.getYear();
var numDays = daysInMonth(month, year+1);
var firstDay = today;
firstDay.setDate(2);
var startDay = firstDay.getDay();
var column = 0;
document.write("<CENTER>");
document.write("<TABLE BORDER=0 bgcolor=#f8f8f8>");
document.write("<TR><TH COLSPAN=7><Font face=verdana size=1>");
document.write(monthNames.substring(3*month, 3*(month + 1)) + " " + year);
document.write("<TR><TH><Font face=verdana size=1>Dom<TH><Font face=verdana size=1>Seg<TH><Font face=verdana size=1>Ter<TH><Font face=verdana size=1>Qua<TH><Font face=verdana size=1>Qui<TH><Font face=verdana size=1>Sex<TH><Font face=verdana size=1>Sab");
document.write("<TR>");
for (i=1; i < startDay; i++)
{
document.write("<TD><Font face=verdana size=1>");
column++;
}
for (i=1; i <= numDays; i++)
{
var s = "" + i;
if ((GetCookie("d"+i) != null))
s = s.fontcolor("#FF0000");
s = s.link("javascript:dayClick(" + i + ")")
document.write("<TD>" + s);
if (++column == 7)
{
document.write("<TR>");
column = 0;
}
}
document.write("</TABLE>");
document.writeln("</CENTER>");
}
function dayClick(day)
{
var expdate = new Date ();
expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000));
var prefix = "d";
var theCookieName = prefix + day;
var theDayclickedReminder = GetCookie(theCookieName);
if (theDayclickedReminder != null) {
// seu alerta aqui
alert("O lembrete para o dia " + day + " é:" + theDayclickedReminder);
}
// você coloca sua mensagem aqui
if (confirm("Você deseja colocar um lembrete para o dia " + day + " deste mês?"))
{
x = prompt("Coloque seu lembrete para o dia "+ day + " deste mês", theDayclickedReminder);
SetCookie (theCookieName, x, expdate);
}
}
// -->
</SCRIPT>
<style>A:link {
COLOR: #000000; TEXT-DECORATION: none
}
A:visited {
COLOR: #000000; TEXT-DECORATION: none
}
A:active {
COLOR: #000000; TEXT-DECORATION: none
}
A:hover {
COLOR: #000000; TEXT-DECORATION: underline
}
</STYLE>
</head>
<script language="JavaScript">
<!--
calendar();
// -->
</script>
clique nos dias para colocar lembretes
</body>
</html>

Nenhum comentário