Foros del Web » Programando para Internet » Javascript »

ayuda, plis, seguro que es una tonteria

Estas en el tema de ayuda, plis, seguro que es una tonteria en el foro de Javascript en Foros del Web. Bueno, tengo que decir para empezar que no tengo ni la más remota idea de todo esto, pero estoy casi seguro de que la solución ...
  #1 (permalink)  
Antiguo 01/05/2003, 08:05
 
Fecha de Ingreso: abril-2003
Mensajes: 3
Antigüedad: 21 años, 1 mes
Puntos: 0
ayuda, plis, seguro que es una tonteria

Bueno, tengo que decir para empezar que no tengo ni la más remota idea de todo esto, pero estoy casi seguro de que la solución a mi problema será muy fácil.

Mi caso es que me bajé un javascript que para mí es muy útil: se trata de un calendario que realiza también funciones de agenda. Utiliza un ingenioso sistema para poder editar e introducir los datos desde la misma página web donde se encuentra implementada y cualquier visitante puede hacerlo. Realmente es un scrip magnífico, pero le encuentro una pega: una vez que se ha introducido un evento en determinado día, éste no queda destacado del resto de días del mes.
Me explico: a primera vista, resulta imposible distinguir qué días contienen alguna anotación y cuáles no, lo cual resulta bastante engorroso. Lo que me gustaría lograr es que quedasen destacados en distinto color los días en los que se ha realizado alguna anotación, para diferenciarlos fácilmente a simple vista.

Les estaría realmente agradecido si pudieran ayudarme con ésta cuestión. Aprovecho al paso para felicitar al creador de este javascript, que realmente está muy currado.

Espero no cagarla al copiar aquí el script , a ver si sale el código:


<SCRIPT LANGUAGE="JavaScript">
<!-- para ocultar el contenido del guión a los exploradores antiguos
//
// Funciones Cookie
// Escrito por: Bill Dortch, hIdaho Design
// Las funciones siguientes se ceden al dominio público.

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 == "") code = "%08";
else if (ch == "") code = "%09";
else if (ch == "") code = "%0A";
else if (ch == "f") code = "%0C";
else if (ch == "") 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 += "";
else if (code == "09") dest += " ";
else if (code == "0A") dest += "";
else if (code == "0C") dest += "f";
else if (code == "0D") dest += "";
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()));
}

//
//Agenda
//Escrito por James Thiele
//[email protected]
//http://www.eskimo.com/~jet/javascript/
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 = "EneFebMarAbrMayJunJulAgoSepOctNovDic";
var today = new Date();
var day = today.getDate();
var month = today.getMonth();
var year = today.getYear();
var numDays = daysInMonth(month, year);
var firstDay = today;
firstDay.setDate(1);
var startDay = firstDay.getDay();
var column = 0;

document.write("<CENTER>");
document.write("<TABLE BORDER>");
document.write("<TR><TH COLSPAN=7>");
document.write(monthNames.substring(3*month, 3*(month + 1)) + " " + year);
document.write("<TR><TH>Dom<TH>Lun<TH>Mar<TH>Mié<T H>Jue<TH>Vie<TH>Sab");
document.write("<TR>");
for (i = 0; i < startDay; i++)
{
document.write("<TD>");
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) {
alert("La cita del día " + day + " es:" + theDayclickedReminder);
}
if (confirm("¿Desea escribir una cita para el día " + day + " de este mes?"))
{
x = prompt("Escriba una cita para el día "+ day + " de este mes", theDayclickedReminder);
SetCookie (theCookieName, x, expdate);
} // end if
}
// --> <!-- deja de ocultar el contenido para los exploradores antiguos -->
</SCRIPT>
<TITLE>Calendario de citas de James Thiele
</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!-- para ocultar el contenido del guión para los exploradores antiguos
calendar();
document.write("<HR>");
// --> <!-- deja de ocultar el contenido para los exploradores antiguos -->
</SCRIPT>
  #2 (permalink)  
Antiguo 16/05/2003, 11:40
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años, 1 mes
Puntos: 9
ME PARECE UN TEMA MUY INTERESANTE, YA QUE YO TAMBIEN ESTOY BUSCANDO ALGO POR EL ESTILO

Lo que pasa es que probandolo he visto que el código comienza el calendario al estilo inglés, esto quiero decir, que la semana comienza en domingo,

¿alguien sabe como retocar el código anterior para que la semana comience en lunes?

Gracias de antemano.
__________________

***Aprendiz de todo y maestro de nada***

Última edición por epa2; 16/05/2003 a las 11:40
  #3 (permalink)  
Antiguo 21/05/2003, 06:05
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años, 1 mes
Puntos: 9
Bueno, en fin, sin ningún "consejillo" seguiré el calendario en inglés
__________________

***Aprendiz de todo y maestro de nada***
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:04.