Salut,
j'arrive pas à éxcuter un script dans ma JSP, pourtant ce même script march tres bien depuis une page html normal (qui contient que du code html).
La console d'erreurs de firefox m'affiche l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Cal has no propereties ligne 82
ce qui correspond au code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (pCtrl) Cal.Ctrl=pCtrl;
moi je crois que l'initialisation ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
function InitCalendar() {
    /* Cette fonction construit le tableau destiné à afficher le calendrier*/
    Cal=new Calendar(dtToday);//Par défaut, le calendrier créé est celui du mois de la date du jour
	ColWeekDay(FirstDayOfWeek);
	InitCalHeader();
	}
voila mon script (je l'ai trouvé sur le net)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
/* Calendrier perpétuel.
    Ce calendrier est liée à  une textbox
    Lorsqu'aucune date n'est précisée dans la textbox, le calendrier affiche le mois de la date courante
    Lorsqu'une date existe déjà  dans la textbox, le calendrier affiche le mois de cette date
    Lorsque l'on clique sur une date, cette date est renvoyée à la textbox et le calendrier s'efface de l'écran
    Ce calendrier prend en compte les jours fériés français (entre autre, il dispose de l'algorithme d'Euler pour le calcul de la date de Pâques)
*/
//Tableaux généraux
//Mois
var MonthName=new Array(11);
MonthName[0]="Janvier";
MonthName[1]="Février";
MonthName[2]="Mars";
MonthName[3]="Avril";
MonthName[4]="Mai";
MonthName[5]="Juin";
MonthName[6]="Juillet";
MonthName[7]="Août";
MonthName[8]="Septembre";
MonthName[9]="Octobre";
MonthName[10]="Novembre";
MonthName[11]="Décembre";
//Jours de semaine
var WeekdayName=new Array(6);
WeekdayName[0]="Dimanche";
WeekdayName[1]="Lundi";
WeekdayName[2]="Mardi";
WeekdayName[3]="Mercredi";
WeekdayName[4]="Jeudi";
WeekdayName[5]="Vendredi";
WeekdayName[6]="Samedi";
//Variables globales
var dtToday=new Date();               //Date du jour
var Cal;                              //Objet calendrier
var exDate;                           //Date existante
var ColWeekDays=new Array(6);         //Ordre de succession des colonnes jours de la semaine
//Paramètres configurables
var FirstDayOfWeek=1;                 //Premier jour de la semaine
var cTop=200; 					      //Coordonnée du haut du calendrier
var cLeft=300;					      //Coordonnée de la gauche du calendrier
var CalTitle="Dateur";	              //Titre du tableau calendrier
var CellWidth=25;				      //Largeur d'un cellule d'affichage de date
var WeekChar=2;					      //Nombre de caractères des jours de semaines affichés en têtes de colonnes
var DateSeparator="/"; 			      //Séparateur de date
 
function ColWeekDay(iFirsDayOfWeek) {
    /*Cette fonction défini l'ordre de succession des colonnes "jours de semaine" du tableau*/
	switch(iFirsDayOfWeek) {
	      case 0:ColWeekDays=[0,1,2,3,4,5,6];break;
		  case 1:ColWeekDays=[1,2,3,4,5,6,0];break;
		  case 2:ColWeekDays=[2,3,4,5,6,0,1];break;
		  case 3:ColWeekDays=[3,4,5,6,0,1,2];break;
		  case 4:ColWeekDays=[4,5,6,0,1,2,3];break;
		  case 5:ColWeekDays=[5,6,0,1,2,3,4];break;
		  case 6:ColWeekDays=[6,0,1,2,3,4,5];break;
          }
	}
 
function Calendar(pDate,pCtrl){
   /* Création de l'objet calendrier et définition de ses premières propriétés*/
   this.Date=pDate.getDate();//Date sélectionnée
   this.Month=pDate.getMonth();//Mois sélectionné
   this.Year=pDate.getFullYear();//Année sélectionnée
   this.Ctrl=(pCtrl)?pCtrl:null;//Textbox liée à l'objet
   this.Format="DDMMYYYY";//Format d'affichage de la date par défaut
   this.Separator=DateSeparator;//Séparateur de date
   }
 
function InitCalendar() {
    /* Cette fonction construit le tableau destiné à afficher le calendrier*/
    Cal=new Calendar(dtToday);//Par défaut, le calendrier créé est celui du mois de la date du jour
	ColWeekDay(FirstDayOfWeek);
	InitCalHeader();
	}
 
 
function NewCal(pCtrl,pFormat,pX,pY) {
    /* Cette fonction construit un nouveau calendrier à  partir des arguments :
             * pCtrl = nom de la textbox liée au calendrier,
             * pFormat = format d'affichage de la date dans la textbox liée. 
	   *pX et pY = coordonnées du tableau container du calendrier*/
    if (pCtrl) Cal.Ctrl=pCtrl;//Affectation de la propriété contrôle de l'objet calendrier défini par sa propriété id de la textbox
    if (pFormat) Cal.Format=pFormat.toUpperCase();//Affectation de la propriété format de date de l'objet calendrier
    exDate=document.getElementById(pCtrl).value;//Récupération d'une éventuelle date existant dans la textbox
    if (exDate!="") {//Si une date existe dans la textbox extraction des valeurs jour, mois et année
       var Sp1=0;//Index du premier séparateur de date
	   var Sp2=0;//Index du second séparateur de date
	   var sDate;//Jour
	   var sMonth;//Mois
	   var iMonth;//Index du mois en chiffre
	   var sYear;//Année
	   Sp1=exDate.indexOf(DateSeparator,0);
	   Sp2=exDate.indexOf(DateSeparator,(parseInt(Sp1,10)+1));
	   if ((Cal.Format.toUpperCase()=="DDMMYYYY")||(Cal.Format.toUpperCase()=="DDMMMYYYY")) {
	      sDate=exDate.substring(0,Sp1);
		  sMonth=exDate.substring(Sp1+1,Sp2);
		  sYear=exDate.substring(Sp2+1);
		  }
	   else if ((Cal.Format.toUpperCase()=="MMDDYYYY")||(Cal.Format.toUpperCase()=="MMMDDYYYY")) {
	      sDate=exDate.substring(Sp1+1,Sp2);
		  sMonth=exDate.substring(0,Sp1);
		  sYear=exDate.substring(Sp2+1);
		  }
	   else if ((Cal.Format.toUpperCase()=="YYYYMMDD")||(Cal.Format.toUpperCase()=="YYYYMMMDD")) {
	      sDate=exDate.substring(Sp2+1);
		  sMonth=exDate.substring(Sp1+1,Sp2);
		  sYear=exDate.substring(0,Sp1);
		  }
	   Cal.Year=sYear;//Affectation de la valeur année à l'objet calendrier
       if (isNaN(sMonth)) {//Si le mois est designé en lettre
          iMonth=Cal.getMonthIndex(sMonth);
          }
       else {
          iMonth=parseInt(sMonth,10)-1;
          }
       if (iMonth>=0&&iMonth<12) Cal.Month=iMonth;
       if ((parseInt(sDate,10)>0)&&(parseInt(sDate,10)<=Cal.getMonthDays())) Cal.Date=parseInt(sDate,10);
	   }
	else {
	   Cal.Month=dtToday.getMonth();
	   Cal.Year=dtToday.getFullYear();
	   }
       RedrawCal(pX,pY);	   
	  }
 
function getMonthIndex(sMonth) {
    /*Cette fonction renvoie l'index d'un mois à partir du texte abrégé de ce mois */
	for (i=0;i<12;i++) {
	    if (MonthName[i].parseInt(0,3).toUpperCase()==sMonth.toUpperCase()) {
		   return i;
		   break;
		   }
	    }
	}
 
Calendar.prototype.getMonthIndex=getMonthIndex; //Affectation de la méthode à  l'objet calendrier

function getMonthDays(Other) {
    /*Cette fonction renvoie le nombre de jours du mois */
	var DaysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];//Nombre de jours des mois d'une année non bissectile
	if (this.IsLeapYear()) DaysInMonth[1]=29;//S'il s'agit d'une année bissectile le mois de février à 29 jours
	if (!Other) {
	   return DaysInMonth[this.Month];
	   }
	else {//Utilisé pour trouver le nombre de jours du mois précédent dans le dessin du calendrier
	   return DaysInMonth[PrevMonth(this.Month)];
	   }
	}

Calendar.prototype.getMonthDays=getMonthDays; //Affectation de la méthode à  l'objet calendrier
 
function getMonthName(isLong,Other) {
    /*Cette fonction renvoie le nom du mois du calendrier, ou de l'un ou l'autre des mois encadrants, à  partir de son index*/
	if (!Other) {
	   var sMonth=MonthName[this.Month];
	   }
	else if (Other=="Prev") {
	   var sMonth=MonthName[PrevMonth(this.Month)];
	   }
	else if (Other=="Next") {
	   var sMonth=MonthName[NextMonth(this.Month)];
	   }
	if (isLong) {
	   return sMonth;
	   }
	else {
	   return sMonth.substr(0,3);
	   }
    }
 
Calendar.prototype.getMonthName=getMonthName;//Affectation de la méthode à  l'objet calendrier

function IsLeapYear() {
    /*Cette fonction renvoie vrai si l'année est une année bissectile */
	if (this.Year%4==0) {
	   if ((this.Year%100==0)&&(this.Year%400!=0)) {
	      return false;
		  }
	   else {
	      return true;
	      }
	   }
	else {
	   return false;
	   }
    }
Calendar.prototype.IsLeapYear=IsLeapYear; //Affectation de la propriété à  l'objet calendrier

function setPrevYear() {
    /*Cette fonction déplace le calendrier vers l'année précédante*/
    this.Year--;
	}
 
Calendar.prototype.setPrevYear=setPrevYear; //Affectation de la méthode à  l'objet calendrier

function setNextYear() {
    /*Cette fonction déplace le calendrier vers l'année suivante*/
	this.Year++;
    }
 
Calendar.prototype.setNextYear=setNextYear; //Affectation de la méthode à  l'objet calendrier

function setPrevMonth() {
    /*Cette fonction déplace le calendrier vers le mois précédent */
	var iPrevMonth=PrevMonth(this.Month);
	var iPrevYear=PrevYear(this.Month, this.Year);
	this.Month=iPrevMonth;
	this.Year=iPrevYear;	
    }

Calendar.prototype.setPrevMonth=setPrevMonth; //Affectation de la méthode à  l'objet calendrier
 
function PrevMonth(iMonth) {
    /*Cette fonction détermine l'index du mois précédent le mois en cours */
	if (iMonth==0) {
	   return 11;
	   }
	   else {
	   return iMonth-1;
	   }
    }

function PrevYear(iMonth,iYear) {
    /*Cette fonction renvoie l'année du mois précédent*/
	var CalYear=eval(iYear);
	if (iMonth==0) {
	   return CalYear-1;
	   }
	else {
	   return CalYear;
	   }
	}
 
function setNextMonth() {
    /*Cette fonction déplace le calendrier vers le mois suivant*/
	var iNextMonth=NextMonth(this.Month);
	var iNextYear=NextYear(this.Month,this.Year);
	this.Month=iNextMonth;
	this.Year=iNextYear;
	}
 
Calendar.prototype.setNextMonth=setNextMonth;//Affectation de la méthode à  l'objet calendrier

function NextMonth(iMonth) {
    /*Cette fonction renvoie l'index du mois suivant le mois en cours*/
	if (iMonth==11) {
	   return 0;
	   }
	else {
	   return iMonth+1;
	   }
	}
 
function NextYear(iMonth,iYear) {
    /*Cette fonction renvoie l'année du mois suivant le mois en cours*/
	var CalYear=eval(iYear);
	if (iMonth==11) {
	   return CalYear+1;
	   }
	else {
       return CalYear;
	   }
	}

function getEaster(iYear) {
    /*Cette fonction renvoie la date de Pâques et permet de déterminer :
	  * le lundi de Pâques,
	  * le jeudi de l'Ascension,
	  * le lundi de Pentecôte.*/
	var v1=new Number((iYear%19)+1);
	var v2=new Number();
	v2=Math.floor(iYear/100)+1;
	var v3=new Number();
    v3=Math.floor((3*v2)/4)-12;
	var v4=new Number();
	v4=Math.floor(((8*v2)+5)/25)-5;
	var v5=new Number();
	v5=Math.floor((5*iYear)/4)-v3-10;
	var v6=new Number();
	v6=(11*v1+20-v4-v3)%30;
	var v7=new Number();
	if ((v6==25&&v1>11)||v6==24) v6+=1;
	v7=44-v6;
	if (v7<21) v7+=30;
	var v8=new Number(v7+7);
	v7-=(v5 + v8) % 7;
	if (v7<=31) {
	   var datEaster=new Date(iYear,2,v7);
	   }
	else {
	   var datEaster=new Date(iYear,3,v7-24);
	   }
	return datEaster;
    }
 
function IsFeastDay(iDate,iMonth,iYear) {
    /*Cette fonction renvoie vrai lorsqu'une date correspond à  un jour férié*/
	var datSel=new Date(iYear,iMonth,iDate);//Date du jour à tester
	var datEaster=new Date();
	datEaster=getEaster(iYear);//Date de Pâques
	var datSelUTC=Date.UTC(iYear,datSel.getMonth(),datSel.getDate());
	var datEasterUTC=Date.UTC(iYear,datEaster.getMonth(),datEaster.getDate());
	if (datSelUTC>datEasterUTC) {//Lundi de Pâques, Ascension, Lundi de Pentecôte
	   if ((datSelUTC-datEasterUTC)==86400000) return true;
	   if ((datSelUTC-datEasterUTC)==(86400000*39)) return true;
	   if ((datSelUTC-datEasterUTC)==(86400000*50)) return true;
	   }
	if (iDate==1&&iMonth==0) return true;// Jour de l'an
    if (iDate==1&&iMonth==4) return true;//Fête du travail
	if (iDate==8&&iMonth==4) return true;//Fête de la victoire du 8 mai 1945
	if (iDate==14&&iMonth==6) return true;//Fête nationale
	if (iDate==15&&iMonth==7) return true;//Assomption
	if (iDate==1&&iMonth==10) return true;//Toussaint
	if (iDate==11&&iMonth==10) return true;//Armistice 1918
	if (iDate==25&&iMonth==11) return true;//Noël
	}
 
function TwoChar(iDate) {
    /*Cette fonction force le format d'affichage des dates à 2 caractères lorsque les valeurs sont inférieures à  10*/
	if (iDate<10) {
	   return "0"+iDate.toString();
	   }
	else {
	   return iDate.toString();
	   }
	}
j'ai pas mis la suite(car c tres grand)