sono disperata!!!!
Ora vi spiego... io ho questa funzione:
function cal(val, e, t) {
var dt = new Array();
xPos = (document.layers) ? e.pageX : ((document.all) ? event.x : e.clientX);
yPos = (document.layers) ? e.pageY : ((document.all) ? event.y : e.clientY);
tipo = t;
source = val;
if (t == 0) {
dt[0] = day;
dt[1] = mon+1;
if(yea < 1000)
dt[2] = 1900 + yea;
else
dt[2] = yea;
}else
dt = val.value.split('-');
showCalendar(new Date(dt[2], dt[1] - 1, dt[0]), xPos, yPos);
}
che richiama la showcalendar ... e fin qui tutto ok... ma quando arrivo alla showcalendar :
function showCalendar(d, xpos, ypos) {
if (!isOn) {
if (d) {
anno = d.getFullYear();
mese = d.getMonth();
currday = d.getDate();
} else {
anno = today.getFullYear();
mese = today.getMonth();
currday = today.getDate();
}
if (arguments.length > 2) {
var id = getId();
id.moveLayer(xpos, ypos);
}
else
getId().moveLayer(100, 100);
xmese = 0;
writeLayer(dataframe(calendar(currday, mese, anno)));
}
getId().showIt(!isOn);
}
____________________________________________________
Javascript mi da questo errore:
Error: getId().showIt is not a function
Source File: ../include/datax.js
e ovviamente il calendario non si apre!
_____________________________________________________
questa è la datax.js .... mi potete aiutare?? Non capisco perchè qui non funziona più nulla!!!
var xwidth = 220;
var xheight = 180;
var browser = document.layers ? 0 : document.all ? 1 : 2;
// colori
var backtable = '#C3D2D7';
var calendback = '#B4B4B4';
var lines = '#2F2F2F';
var bright = '#FFFFFF';
var festa = '#98F8FF';
// ------ Non cambiare ----------
var mesi = new Array("January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December");
var days = new Array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
var dd = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var today = new Date();
var anno = today.getFullYear();
var mese = today.getMonth();
var currday = today.getDate();
var cellwidth = Math.floor(xwidth / 7);
xwidth = cellwidth * 7;
var xmese = 0;
var aboutx = false;
var isOn = false;
function action(g, m , a) {
function format(x) {
return x > 9 ? x : "0" + x;
}
getId().showIt(false);
if (tipo == 0) {
source[0].value = format(g);
source[1].value = format(m + 1);
source[2].value = a;
}
else
source.value = format(g) + '-' + format(m + 1) + '-' + a;
}
document.write('<style type="text/css">\n<!--');
document.write('.cal { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #000099}');
document.write('.num { font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-decoration:none}');
document.write('.mese { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #663300}');
document.write('.butt { font-family: Arial, Helvetica, sans-serif; font-size: 10px}');
document.write('-->\n</style>');
function comparedate(d1, d2) {
if (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate())
return true;
return false;
}
function pasqua(aa) {
var xx = new Array(22, 22, 23, 23, 24, 24);
var yy = new Array(2, 2, 3, 4, 5, 5);
var a = aa % 19;
var b = aa % 4;
var c = aa % 7;
var i = Math.floor(aa / 100) - 15;
var x = xx, y = yy;
var d = (19*a + x) % 30;
var e = (2*b + 4*c + 6 * d + y) % 7;
var p = 22 + d + e;
var m = 300;
if (p > 31) {
m = 400;
p = p - 31;
}
return m + p;
}
function isfesta(d) {
var feste = new Array(0, 101, 106, 425, 501, 602, 815, 1101, 1208, 1225, 1226);
if (d.getDay() == 0)
return true;
var pp = pasqua(d.getFullYear()) + 1; // Pasquetta
if (pp % 100 > 31)
pp = 401;
feste[0] = pp;
for (var i = 0; i < feste.length; i++)
if (Math.floor(feste / 100) == d.getMonth() + 1) {
var gg = feste % 100;
if (gg == d.getDate())
return true;
}
return false;
}
function calendar(currday, mese, anno) {
var dx = 2 - (new Date(anno, mese, 1)).getDay();
if (dx == 2)
dx = -5;
var daysInMonth = dd[mese];
if (mese == 1) {
if (anno % 4 == 0 && anno % 100 != 0 || anno % 400 == 0)
daysInMonth++
}
var tx = '<div class="mese" align="center"> ' + mesi[mese] + ' ' + anno +'</div>\n';
tx += '<table width="' + xwidth + '" border="0" cellspacing="1" cellpadding="1">\n';
tx += '<tr align="right">\n';
for (var i = 0; i < 7; i++)
tx += '<td width="' + cellwidth+ '" class="cal">' + days + ' </td>\n';
tx += '</tr>\n';
for (var j = 0; j < 6; j++) {
tx += '<tr bgcolor="' + calendback + '" align="right">\n';
for (var i = 0; i < 7; i++) {
var bgstring = "";
var fgcol = lines;
var fgstring = ' ';
if (dx > 0 && dx <= daysInMonth) {
fgstring = dx;
var ddx = new Date(anno, mese, dx);
if (isfesta(ddx)) {
bgstring = ' bgcolor="' + festa + '"';
}
if (comparedate(ddx, today)) {
fgcol = bright;
fgstring = '<b><u>' + dx + '</u></b>\n';
}
var tempdate = ddx.getDate() + ", " + ddx.getMonth() + ", " + ddx.getFullYear();
fgstring = '<a href="javascript:action(' + tempdate + ')" class = "num"><font color="' + fgcol + '">' + fgstring + '</font></a>\n';
}
tx += '<td width="' + cellwidth + '" class="num"' + bgstring + '>\n';
tx += fgstring;
tx += '</td>\n';
dx++;
}
tx += '</tr>\n';
}
tx += '</table>\n';
return tx;
}
function dataframe(x) {
var s = '<table width="' + xwidth + '" border="1" cellspacing="0" cellpadding="0" bgcolor="' + backtable + '">';
s += '<tr>\n<td class="mese" valign="middle">';
s += x; // calendar(currday, mese, anno);
s += '</td></tr><tr><td>';
s += '<form class="butt"><table width="100%" border="0" cellspacing="0" cellpadding="2">';
s += '<tr>';
s += '<td align="center"><input type="button" name="prev" value=" << " class="butt" onclick="altro_mese(-12)">';
s += '<input type="button" name="prev" value=" < " class="butt" onclick="altro_mese(-1)">';
s += '<input type="button" name="current" value="Current" class="butt" onclick="altro_mese(9)">';
s += '<input type="button" name="next" value=" > " class="butt" onclick="altro_mese(1)">';
s += '<input type="button" name="next" value=" >> " class="butt" onclick="altro_mese(12)"></td>';
s += '</tr></form></table>';
s += '</td>\n</tr>\n</table>';
return s;
}
function altro_mese(x) {
xmese += x;
if (x == 9)
xmese = 0;
var xday = (xmese == 0)? currday : 99;
var mm = (mese + xmese) % 12;
while (mm < 0)
mm += 12;
var s = dataframe(calendar(xday, mm, anno + Math.floor((mese + xmese) / 12)));
writeLayer(s);
aboutx = false;
}
function getId() {
switch (browser) {
case 0:
return document.layers.calframe;
case 1:
return eval('calframe');
case 2:
return document.getElementById("calframe");
}
}
function moveLayer(xPos, yPos) {
switch (browser) {
case 0:
this.left = xPos+20;
this.top = yPos-20;
break;
case 1:
this.style.pixelLeft =xPos+20;
this.style.pixelTop = yPos-20;
break;
default:
this.style.left =xPos+20;
this.style.top = yPos-20;
}
}
function createlayer() {
var s;
if (document.layers)
s = '<layer id="calframe" visibility="hide" z-index=1>';
else
s = '<div id="calframe" style="position:absolute; visibility: hidden">';
if (document.layers)
s += '</layer>';
else
s += '</div>';
document.writeln(s);
}
function showIt(on) {
isOn = on;
if (browser)
this.style.visibility = (on) ? "visible" : "hidden";
else
this.visibility = (on) ? "show" : "hide"
}
function writeLayer(s) {
var id = getId();
if (browser)
id.innerHTML = s;
else {
id.document.open();
id.document.write(s);
id.document.close();
}
}
function init() {
var id = getId();
id.moveLayer = moveLayer;
id.showIt = showIt;
id.showIt(false);
}
function showCalendar(d, xpos, ypos) {alert("CIA02");
if (!isOn) {
if (d) {
anno = d.getFullYear();
mese = d.getMonth();
currday = d.getDate();
} else {
anno = today.getFullYear();
mese = today.getMonth();
currday = today.getDate();
}
/*if (arguments.length > 2) {
var id = getId();
id.moveLayer(xpos, ypos);
}
else
getId().moveLayer(100, 100);
*/
xmese = 0;
writeLayer(dataframe(calendar(currday, mese, anno)));
}
getId().showIt(!isOn);
}
createlayer(1);
onload = init;
sottolineo che uso Linux con Firefox 9.0
Ora vi spiego... io ho questa funzione:
function cal(val, e, t) {
var dt = new Array();
xPos = (document.layers) ? e.pageX : ((document.all) ? event.x : e.clientX);
yPos = (document.layers) ? e.pageY : ((document.all) ? event.y : e.clientY);
tipo = t;
source = val;
if (t == 0) {
dt[0] = day;
dt[1] = mon+1;
if(yea < 1000)
dt[2] = 1900 + yea;
else
dt[2] = yea;
}else
dt = val.value.split('-');
showCalendar(new Date(dt[2], dt[1] - 1, dt[0]), xPos, yPos);
}
che richiama la showcalendar ... e fin qui tutto ok... ma quando arrivo alla showcalendar :
function showCalendar(d, xpos, ypos) {
if (!isOn) {
if (d) {
anno = d.getFullYear();
mese = d.getMonth();
currday = d.getDate();
} else {
anno = today.getFullYear();
mese = today.getMonth();
currday = today.getDate();
}
if (arguments.length > 2) {
var id = getId();
id.moveLayer(xpos, ypos);
}
else
getId().moveLayer(100, 100);
xmese = 0;
writeLayer(dataframe(calendar(currday, mese, anno)));
}
getId().showIt(!isOn);
}
____________________________________________________
Javascript mi da questo errore:
Error: getId().showIt is not a function
Source File: ../include/datax.js
e ovviamente il calendario non si apre!
_____________________________________________________
questa è la datax.js .... mi potete aiutare?? Non capisco perchè qui non funziona più nulla!!!
var xwidth = 220;
var xheight = 180;
var browser = document.layers ? 0 : document.all ? 1 : 2;
// colori
var backtable = '#C3D2D7';
var calendback = '#B4B4B4';
var lines = '#2F2F2F';
var bright = '#FFFFFF';
var festa = '#98F8FF';
// ------ Non cambiare ----------
var mesi = new Array("January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December");
var days = new Array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
var dd = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var today = new Date();
var anno = today.getFullYear();
var mese = today.getMonth();
var currday = today.getDate();
var cellwidth = Math.floor(xwidth / 7);
xwidth = cellwidth * 7;
var xmese = 0;
var aboutx = false;
var isOn = false;
function action(g, m , a) {
function format(x) {
return x > 9 ? x : "0" + x;
}
getId().showIt(false);
if (tipo == 0) {
source[0].value = format(g);
source[1].value = format(m + 1);
source[2].value = a;
}
else
source.value = format(g) + '-' + format(m + 1) + '-' + a;
}
document.write('<style type="text/css">\n<!--');
document.write('.cal { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #000099}');
document.write('.num { font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-decoration:none}');
document.write('.mese { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #663300}');
document.write('.butt { font-family: Arial, Helvetica, sans-serif; font-size: 10px}');
document.write('-->\n</style>');
function comparedate(d1, d2) {
if (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate())
return true;
return false;
}
function pasqua(aa) {
var xx = new Array(22, 22, 23, 23, 24, 24);
var yy = new Array(2, 2, 3, 4, 5, 5);
var a = aa % 19;
var b = aa % 4;
var c = aa % 7;
var i = Math.floor(aa / 100) - 15;
var x = xx, y = yy;
var d = (19*a + x) % 30;
var e = (2*b + 4*c + 6 * d + y) % 7;
var p = 22 + d + e;
var m = 300;
if (p > 31) {
m = 400;
p = p - 31;
}
return m + p;
}
function isfesta(d) {
var feste = new Array(0, 101, 106, 425, 501, 602, 815, 1101, 1208, 1225, 1226);
if (d.getDay() == 0)
return true;
var pp = pasqua(d.getFullYear()) + 1; // Pasquetta
if (pp % 100 > 31)
pp = 401;
feste[0] = pp;
for (var i = 0; i < feste.length; i++)
if (Math.floor(feste / 100) == d.getMonth() + 1) {
var gg = feste % 100;
if (gg == d.getDate())
return true;
}
return false;
}
function calendar(currday, mese, anno) {
var dx = 2 - (new Date(anno, mese, 1)).getDay();
if (dx == 2)
dx = -5;
var daysInMonth = dd[mese];
if (mese == 1) {
if (anno % 4 == 0 && anno % 100 != 0 || anno % 400 == 0)
daysInMonth++
}
var tx = '<div class="mese" align="center"> ' + mesi[mese] + ' ' + anno +'</div>\n';
tx += '<table width="' + xwidth + '" border="0" cellspacing="1" cellpadding="1">\n';
tx += '<tr align="right">\n';
for (var i = 0; i < 7; i++)
tx += '<td width="' + cellwidth+ '" class="cal">' + days + ' </td>\n';
tx += '</tr>\n';
for (var j = 0; j < 6; j++) {
tx += '<tr bgcolor="' + calendback + '" align="right">\n';
for (var i = 0; i < 7; i++) {
var bgstring = "";
var fgcol = lines;
var fgstring = ' ';
if (dx > 0 && dx <= daysInMonth) {
fgstring = dx;
var ddx = new Date(anno, mese, dx);
if (isfesta(ddx)) {
bgstring = ' bgcolor="' + festa + '"';
}
if (comparedate(ddx, today)) {
fgcol = bright;
fgstring = '<b><u>' + dx + '</u></b>\n';
}
var tempdate = ddx.getDate() + ", " + ddx.getMonth() + ", " + ddx.getFullYear();
fgstring = '<a href="javascript:action(' + tempdate + ')" class = "num"><font color="' + fgcol + '">' + fgstring + '</font></a>\n';
}
tx += '<td width="' + cellwidth + '" class="num"' + bgstring + '>\n';
tx += fgstring;
tx += '</td>\n';
dx++;
}
tx += '</tr>\n';
}
tx += '</table>\n';
return tx;
}
function dataframe(x) {
var s = '<table width="' + xwidth + '" border="1" cellspacing="0" cellpadding="0" bgcolor="' + backtable + '">';
s += '<tr>\n<td class="mese" valign="middle">';
s += x; // calendar(currday, mese, anno);
s += '</td></tr><tr><td>';
s += '<form class="butt"><table width="100%" border="0" cellspacing="0" cellpadding="2">';
s += '<tr>';
s += '<td align="center"><input type="button" name="prev" value=" << " class="butt" onclick="altro_mese(-12)">';
s += '<input type="button" name="prev" value=" < " class="butt" onclick="altro_mese(-1)">';
s += '<input type="button" name="current" value="Current" class="butt" onclick="altro_mese(9)">';
s += '<input type="button" name="next" value=" > " class="butt" onclick="altro_mese(1)">';
s += '<input type="button" name="next" value=" >> " class="butt" onclick="altro_mese(12)"></td>';
s += '</tr></form></table>';
s += '</td>\n</tr>\n</table>';
return s;
}
function altro_mese(x) {
xmese += x;
if (x == 9)
xmese = 0;
var xday = (xmese == 0)? currday : 99;
var mm = (mese + xmese) % 12;
while (mm < 0)
mm += 12;
var s = dataframe(calendar(xday, mm, anno + Math.floor((mese + xmese) / 12)));
writeLayer(s);
aboutx = false;
}
function getId() {
switch (browser) {
case 0:
return document.layers.calframe;
case 1:
return eval('calframe');
case 2:
return document.getElementById("calframe");
}
}
function moveLayer(xPos, yPos) {
switch (browser) {
case 0:
this.left = xPos+20;
this.top = yPos-20;
break;
case 1:
this.style.pixelLeft =xPos+20;
this.style.pixelTop = yPos-20;
break;
default:
this.style.left =xPos+20;
this.style.top = yPos-20;
}
}
function createlayer() {
var s;
if (document.layers)
s = '<layer id="calframe" visibility="hide" z-index=1>';
else
s = '<div id="calframe" style="position:absolute; visibility: hidden">';
if (document.layers)
s += '</layer>';
else
s += '</div>';
document.writeln(s);
}
function showIt(on) {
isOn = on;
if (browser)
this.style.visibility = (on) ? "visible" : "hidden";
else
this.visibility = (on) ? "show" : "hide"
}
function writeLayer(s) {
var id = getId();
if (browser)
id.innerHTML = s;
else {
id.document.open();
id.document.write(s);
id.document.close();
}
}
function init() {
var id = getId();
id.moveLayer = moveLayer;
id.showIt = showIt;
id.showIt(false);
}
function showCalendar(d, xpos, ypos) {alert("CIA02");
if (!isOn) {
if (d) {
anno = d.getFullYear();
mese = d.getMonth();
currday = d.getDate();
} else {
anno = today.getFullYear();
mese = today.getMonth();
currday = today.getDate();
}
/*if (arguments.length > 2) {
var id = getId();
id.moveLayer(xpos, ypos);
}
else
getId().moveLayer(100, 100);
*/
xmese = 0;
writeLayer(dataframe(calendar(currday, mese, anno)));
}
getId().showIt(!isOn);
}
createlayer(1);
onload = init;
sottolineo che uso Linux con Firefox 9.0