begin process at 2012 02 13 02:04:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > CALENDRIER COMPATIBLE TOUS PC FACILEMENT CONFIGURABLE À N'IMPORTE QUELLE CHARTE GRAPHIQUE

CALENDRIER COMPATIBLE TOUS PC FACILEMENT CONFIGURABLE À N'IMPORTE QUELLE CHARTE GRAPHIQUE


 Information sur la source

Note :
9,77 / 10 - par 22 personnes
9,77 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date & Heure Niveau :Expert Date de création :18/02/2005 Date de mise à jour :28/04/2005 09:32:19 Vu / téléchargé :25 558 / 3 981

Auteur : tguerlus

Ecrire un message privé
Commentaire sur cette source (75)
Ajouter un commentaire et/ou une note

 Description

Encore un calendrier me direz-vous. Oui mais rassurez vous je ne me serai pas permi de le mettre en ligne si il existe déjà. Alors c'est partie pour les explications.

1/ Tout d'abort ce composant a été écrit avec la librairie compatible avec tous les navigateur PC. Pour ceux qui ne la connaissent pas allez voir le lien suivant:
http://www.javascriptfr.com/code.aspx?ID= 28586

2/ j'ai souhaité faire un calendrier que l'on peut facilement paramtétrer afin de l'adapter à n'importe qu'elle charte graphique. Pour cela vous avez à votre disposition pas moins de 20 attributs de style à votre disponibilité. Pour voir le détail reportez vous au fichier doc Calendar.txt.

3/ vous avez au choix 5 façons de le voir apparaitre ou disparaitre. de plus vous pouvez l'afficher sous le champ qui doit recevoir la date ou à un endroit fixe de la fenetre. Si le calendrier n'est pas affiché en entier dans la fenetre il se décale afin d'apparaitre en entier.

4/ Il connait les jours fériers de 1970 à 2039. De plus vous avez la possibilité d'en ajouter d'autre. De plus, vous pouvez indiquer les jours fermés dans une semaine et interdire la saisie des jours fermés et fériés.

5/ Vous avez enfin la possibilité d'interdire un ensemble de date comme par exemple entre le 10/10/2005 et le 25/12/2005 ou le 18/04/2006 et l'infini. Vous trouverez le détaille de la syntaxe de la déclaration des bornes dans le fichier Calendar.txt et un exemple dans le fichier d'exemple.


 Conclusion

J'attend les commentaires

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

22 février 2005 09:45:42 :
Modification afin de gagner en ligne de code: 1/ Utilisation de l'algorithme de Gauss pour calculer la date de paques. Vous pouvez demander cette date en utilisant la methode suivantes : - Calendar.MGetPaques(annee); Avantage : Un Gain de près de 350 lignes dans Calendar.js 2/ Suppression des fichiers event_dhtml.js et mouse_dhtml.js 3/ Suppression des fonctions non utilisées dans les autres fichiers composant la librairie C'est pour cette raison qu'ils ont étés rennomés pour ne pas les confondre avec les originaux Si vous voulez faire cohabiter les menus concus avec la librairie vous devrez changer les fichiers par les originaux. Sinon vous aurez des déclarations de fonction en double Le calendrier ne pese plus que 54 ko.
25 février 2005 11:13:22 :
Remplacement des caractères accentués par leur équivalent html .
27 avril 2005 08:27:39 :
Amélioration des possibilités de selection entre les jours fermés et les jours fériers. Exemple: Calendar.MPopUpCalendar(this, document.frmRech.DatePrevFin, 'dd-mm-yyyy',null,true,true); Les deux derniers parametres indique si les jours fermer (1) et les jours férier (2) peuvent être saisissable (false) ou non (true) cf Calendar.txt pour de plus amples explications.
28 avril 2005 09:32:19 :
Correction suite à la remarquez de fras. Maintenant, si la date du jour est un jour fermé ou férié elle à le comportement du jour fermé ou férié.

 Sources du même auteur

Source avec Zip VALIDATION AUTOMATIQUE DES FORMULAIRES
Source avec Zip LIBRAIRIE DHTML COMPATIBLE IE,MOZILLA,NETSCAPE ET OPERA

 Sources de la même categorie

Source avec Zip CALENDRIER ANNUEL UNIVERSEL AVEC SAINTS DU CALENDRIER ET FÊT... par 007Julien
OBTENIR LE NOMBRE DE JOURS D'UN MOIS SUIVANT SON ANNÉE par hugolegrand
SAINT DU JOUR par tefa24600
Source avec Zip Source avec une capture NIPCLOCK 1.2 par neep
COMPTE À REBOURS POUR ÉVÉNEMENTS À RÉPÉTITION par CSIBern

Commentaires et avis

Commentaire de coucou747 le 18/02/2005 15:46:33 administrateur CS

super, c'est POOisé, et ça marche nikel 10/10

Commentaire de fg85 le 18/02/2005 19:13:33

Très bien, com d'hab !! 10/10

---------------------------------------
http://fg.logiciel.free.fr

Commentaire de zapidur le 19/02/2005 11:04:17

Super, c'est vraiment du beau boulot.
juste un point qui pose pb, c'est le poids des .js. environ 100ko ça fait beaucoup.
mais sinon chapeau !

Commentaire de SebLep le 19/02/2005 11:24:20

Tout à fait génial. <b>Super</b> pour un développement en intranet. Peut-être un peu lourd pour de l'internet.

As-tu une version plus light ?


Commentaire de mathieumg le 20/02/2005 04:49:39

Chapeau! Magnifique....

Mathieu M-G
mathieumg@qc-net.com

Commentaire de DeathAngel le 21/02/2005 10:12:55

Superbe, du grand art.

10/10

DA

Commentaire de tguerlus le 22/02/2005 09:49:08

Comme cela m'a été demandé, la dernière version à été allégé de 50% de ko sans perdre aucune fonctionnalité.

Merci pour les commentaires.
A+

Commentaire de DeathAngel le 22/02/2005 18:02:59

Salut,

J'ai un pbm lors de l'intégration sous ASP.Net

C'est vraiment space :
si j'utilise les balises script avec src, j'ai 2 erreurs javascript (") attendue" ligne 78 car 35, et "constante chaîne non terminée" ligne 742, car 51)

Après plusieurs essais infructueux, j'ai utilisé le tag link. Là, plus d'erreurs visibles. Par contre, new TCalendar("Calendar") renvoie une erreur ("TCalendar indéfini")

Bon, je me doute que le tag link marche pas.

Par contre, je m'explique pas pourquoi un pauvre copier coller du html d'exemple dans une page aspx cause tant de problèmes.
Vous n'auriez pas une idée par hasard ?

Merci

DA

Commentaire de tguerlus le 23/02/2005 09:23:46

Salut DeathAngel,

J'imagine que c'est avec internet explorer que tu test ton application. Si tu veux utilise Mozilla FireFox, il fourni une console javascript qui donne des informations plus complete sur les erreurs javascript. Comme le nom du fichier ou il a trouvé l'erreur. Ceci serai interressant pour pouvoir comprendre pourquoi il ne veux pas marcher. Si tu me donne les noms des fichiers je regarderai le problème.

A+
TG

Commentaire de DeathAngel le 23/02/2005 09:41:47

Salut TG,

Merci pour le tuyau.
Bon, ça marche sans erreurs sur FireFox1.0
Là, j'en perds mon asp ^o^

Donc, il semble que .Net (pas IE, puisque ça marche dans une page html) pourrisse quelque peu le code JS.
De là à penser qu'il y a des caractères bidons qui sont rajoutés... Y'a qu'un pas

Bon, si t'as une idée je suis preneur. Je vais chercher de mon côté.

Bonne journée

DA

Commentaire de DeathAngel le 23/02/2005 11:49:26

Re,

Ca y est, j'ai trouvé.
Avis aux codeurs .Net :
remplacez (ou virez c'est au choix) tous les caractères accentués dans les fichiers js. Car le gentil Monsieur .Net s'amuse à tous les remplacer par des caractères bidons, et au passage, il supprime la fin des mots. Du coup, dans le cas du mot "Août", il traduit par "Ao? sans fermer les guillemets...

Mais attention, ça ne le fait que pour des fichiers externes. Vous avez par contre le droit de mettre des accents entre 2 balises script d'une page aspx. Logique, quand tu nous tiens...

Bon, tous en coeur, on dit : Merci Bill pour nous pondre des outils sensés aider le développeur...

Donc,  TG, ton code est super, et ne souffre d'aucun bug ^o^

@peluche et bon dev'

DA

Commentaire de coucou747 le 23/02/2005 11:56:35 administrateur CS

problème d'encodage, surement pas de .net...

Commentaire de albans le 02/03/2005 16:20:54

Bonjour;

J'ai un souci sous IE, par contre ça marche parfaitement bien avec les autres navigateurs. Voici le problème : les listes déroulantes apparaissent en avant-plan sur la page, si bien que le calendrier est "troué" lorsqu'on l'appelle puisque la liste déroulante est toujours visible, j'ai essayé d'utiliser le type z-index pour gérer les profondeurs mais cela ne marche pas non plus. Auriez-vous la solution à ce problème ... Testez vous même, c'est très étrange !!!! Merci d'avance
Albans

Commentaire de mathieumg le 02/03/2005 16:23:26

Peut-être avec style.display="none" sur les Combo lorsqu'ils n'ont pas besoin d'être affichés ?


Mathieu M-Gosselin
mathieumg@qc-net.com

Commentaire de fras le 27/04/2005 01:40:19

très beau,

mais quelques petites remarques :

- [Bug ?]: Si aujourd'hui fait partie des MInitWeekDays; il peut-etre selectionné quand même.

- [Question]: On ne peut pas modifier les attributs (AShowToday , AShowComment, ...) à la volée ?
ex:
var Calendar = new TCalendar("Calendar");
Calendar.AShowToday =0;

Commentaire de tguerlus le 27/04/2005 08:41:44

Salut fras,

Pour le bug je vais voir cela de plus près. Il n'y a pas vraiment de bug a proprement parlé mais une chronologie des instructions  à revoir. Je vais réagencer tout cela.  De même si un jour férier est aussi un jour fermé alors il prend le comportement d'un jour fermé.

En ce qui concerne la question , on peut modifier à la volée les parametre mais il faut appelé la méthode MConstructCalendar afin de rafraichir le calendrier.

Cordialement
TG

Commentaire de fras le 27/04/2005 18:44:52

Merci, ça fonctionne nikel.

Par contre je viens de voir que la version que j'ai téléchargé ne contient pas la methode : TMAddHoliday

Commentaire de tguerlus le 28/04/2005 08:38:14

Et oui il n'y en a plus besoin car j'ai introduit l'algorithme du calcul de la date de paques. Ainsi le calendrier connait les dates des jours fériers jusqu'à la fin des temps.
Pour avoir la date de paque il existe une méthode que l'on peut appeler. Il n'y a d'ailleur pas besion de faire afficher le calendrier. Il suffit de saisir la ligne suivante:
Calendar.MGetPaques(aaaa)  aaaa étant l'année.
Pour savoir si une date est férier il existe :
Calendar.MJourFerie(date)


Cordialement
TG

Commentaire de fras le 28/04/2005 12:18:34

Ok, je croyais que TMAddHoliday servait à ajouter MES jours de cogés

Commentaire de tguerlus le 11/05/2005 11:33:50

Réponse au pb d'alban rencontré sur IE.

Après avoir cherché longtemps, je suis tombé sur une explication toute simple. C'est un bug de IE, qui à été rencontré dans d'autres sources sur ce site. Je vous suggere donc de placer le calendrier à une place fixe ou vous êtes sur de ne pas avoir de liste déroulante.

Cordialement
TG

Commentaire de sregg le 16/05/2005 17:28:54

Moi j'ai un ptit probleme.
A chaque page où je créé le Calendar avec un new Calandar, le calendrier s'affiche tt seul au début du lancement de la page et disparait. ( Sous IE et FF )

Est-ce normal ? Comment remédier à ce problème ?

Merci de ta réponse.

A part ca c'est un calendrier tres tres bien fait ^^.

Commentaire de Chimon73 le 27/05/2005 11:58:21

Salut TG,

J'aimerai adapter ton calendrier en rendant sélectionnable toutes les dates (oublie les weeks et jours fériés le net c 7jours/7 )!!!

Je suppose que ceci est possible vu toute les options que tu as mis a disposition de l'utilisateur averti mais je trouve pas étant un bon gros noob !!! merci

coordialement
Chimon au plus chiadé des calendrier !!!

Commentaire de coucou747 le 28/05/2005 08:45:42 administrateur CS

adapter ou le voir adapté ?

Commentaire de Chimon73 le 28/05/2005 21:43:13

Ba si je n'ai pas était assez clair coucou747 dsl je reprend ...

j'aimerai qu'on me précise si dans le code du calendrier en lui même (en jouant sur une variable égale à o ou 1 comme expliqué dans le doc texte joint au codesource) ou si dans les arguments a passer lors de l'appel de fonction, il était possible de rendre sélectionnable les weeks end (samedi et dimanche pour être bien clair)???

Le but étant d'utiliser ce calendrier dans un formulaire où l'utilisateur devra pourvoir sélectionner tous les jours d'une année civil.

Merci

coordialement, Chimon

Commentaire de tguerlus le 06/06/2005 11:10:25

Salut Chimon73,

Pour ne plus faire référence aux jours fermés, il suffit d'ecrire la ligne suivante:
Calendar.MInitWeekDays();
Cette méthode accepte entre 0 et 7 arguments qui sont les jours de la semaine en chiffre (0 = dimanche). Cette méthode initialise les jours de la semaine qui doivent être considérés comme fermés. Ainsi le style défini pour les jours fermés ne sera pas appliqué.

Ensuite, pour rendre les jours fériés et fermés sélectionnable, il suffit d'appeler l'affichage du calendrier comme suit:
Calendar.MPopUpCalendar(this, document.formulaire.champ, 'dd-mm-yyyy',null,false,false);

Cordialement
TG

Commentaire de KameSennin le 09/06/2005 10:03:05

Et voici le chapiteau du mois ! (Wayne's world bande d'inculte :D )

Un grand bravo pour ce script de calendrier personnalisable à volonté.

Oui j'ai que ça à dire, mais la perfection ça se passe de commentaire ^_____^

Commentaire de gomoz le 24/06/2005 18:26:51

bravo c'est vraiment très pro.

Juste un détail : est-ce que j'ai le droit de l'utiliser pour mon site ?

Commentaire de alpharios le 01/07/2005 13:26:34

Bonjour à Tous
Bravo pour ce script très facilement utilisable

Ceci dit, j'ai un bug sniff. ( ou une incompatibilité ? )

Celui ci affecte uniquement les pages en xhtml transitional.
Je le retrouve également si je transforme en XHTML transitional le fichier exemple donné dans le fichier zip.

Voici Ce qui se passe :
Si je suis sous ie, j'ai la div de Calendar_lblToday et la div Calendar_caption qui s'affiche dès le chargement de la page. Le script ne fonctionne pas.
Et si je suis sous firefox, le script ne positionne pas au bon endroit la fenêtre de sélection des dates. Mais il marche :)

Pour résoudre ce problème j'ai trouvé comme solution d'enlever l'entête <!DOCTYPE .... de mes fichiers contenant le script.
Mais je me doute qu'il doit y avoir un autre moyen plus 'propre' pour éviter ce petit bug... je l'ai pas encore trouvé

Avez vous ce problème ?
une idée ?

Commentaire de niggaz972 le 28/07/2005 04:52:40

Sniff sniff, ce script est parfait , sauf, sauf, kil ne fonctionne pas en xhtml, en effet je suis en html et utilise du css, kan j'utilise la soluce de  alpharios  sa pase plus du tt l'apparnce de mon site ne prend plus en compte mon fichier css!

Commentaire de hansap82 le 02/08/2005 10:29:26

Salut, moi aussi je trouve que t'aé vvraiment fait du BON boulot (bravo) par contre j'ai une petite question : si l'on ne met pas ton rep "incclient" a la racine, les images ne s'affichent plus (bien sur, j'ai modifié l'attribut src : src="javascript/IncClient/Calendar.js">...
ca marche, mais pas pour les images...
voili voilou!

Commentaire de hansap82 le 02/08/2005 10:29:38

Salut, moi aussi je trouve que t'aé vvraiment fait du BON boulot (bravo) par contre j'ai une petite question : si l'on ne met pas ton rep "incclient" a la racine, les images ne s'affichent plus (bien sur, j'ai modifié l'attribut src : src="javascript/IncClient/Calendar.js">...
ca marche, mais pas pour les images...
voili voilou!

Commentaire de esperluette le 02/08/2005 18:27:52

Bonjour,
Super script que j'ai pu adapter à mes couleurs, mais j'ai le même problème qu'Albans (et la suggestion de MathieurMG ne fonctionne pas) : j'ai des listes deroulantes sous le calendrier qui s'affichent en premier plan, le rendant inaccessible. Pouvez-vous m'aider ?

Merci !

Commentaire de maissa_21 le 03/08/2005 12:40:01

pourkoi on ne peu pas l'adresse est fixée seulement entre le 01/11/2005 et le 25/11/2005 ou le 05/12/2005 et le 13/01/2006 ???
je veu utiliser ce calendrier mai j ai rencontré ce problème
merci

Commentaire de maissa_21 le 03/08/2005 12:41:18

pour ce calendrier est limité entre le 01/11/2005 et le 25/11/2005 ou le 05/12/2005 et le 13/01/2006 ???
merci

Commentaire de hansap82 le 09/08/2005 08:51:00

j'ai un petit problem : j'exploite ce calendrier avec des données extraites.. d'une BDD...
et certains champs date m'arrivent sous la forme : 00/00/0000
et la faut commencer de l'an 0 pour remonter jusquà notre ère...
il n'y aurait pas une ligne de code a modifier pour que je puisse initialiser le calendrier toujours a la date du jours?
merci d'avance!
(ps : j'ai cherché dans tes sources, mais n'ai rien trouvé...)

Commentaire de mathieumg le 15/08/2005 01:13:36

Tu peux faire ce traitement du côté serveur (Je sais pas si tu es en PHP ou autre)

Mathieu M-G
mathieumg@qc-net.com

Commentaire de hansap82 le 16/08/2005 10:15:22

tu peut en effet, mais si comme beaucoupe de monde, a l'heyre actuelle, tu utilise un moteur de template, et que ta requete est extraite telle qu'elle, ca devient ennuyeux et long de modifier ce genre de données...
c'est pour ca que j'essaie de trouver dans les sources comment faire...

Commentaire de tguerlus le 22/08/2005 10:00:30

Pour le problème des listes déroulantes liser ma réponse du Commentaire de : tguerlus le 11/05/2005 11:33:50 .

Commentaire de Linuss le 31/08/2005 21:09:53

Bonjour :)

Tout d'abord très bonne source :)
Mais néanmoins, un problème subsiste et je ne sais comment y remédier ^^
Quand avant ma balise html figure :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

le script émet une erreur.
Quelqu'un aurait-il la solution svp?

Merci beaucoup

Commentaire de sebastieni le 29/11/2005 17:44:33

hello,

tous d'abort super le script un peu dur à mettre en place mes super,
enfin juste un detail j'arrive pas a débloquer toute les dates malgré le tutorial :/

esque quelqu'un peu maider


merci

Commentaire de johnniefox le 11/12/2005 18:59:47

Bonjour, le peu que je viens d'en voir, après le téléchargement, rend difficile le jugement sur les autres : y a pas photo, dur de rivaliser !
Magnifique !
Merci !  

Commentaire de isabelle72 le 31/01/2006 13:15:49

Bonjour,
Tous mes remerciements pour cette source.
Ce calendrier est vraiment ce qu'il me fallait, mais j'ai un problème pour l'adapter à mon application.
J'ai besoin que l'utilisateur ne puisse pas sélectionner une date antérieur à la date du jour.
Comment puis je faire ?
Merci pour votre aide.
a bientot.

Commentaire de tguerlus le 31/01/2006 13:59:38

Bonjour la compagnie,

Je vais répondre à tous le monde:

Pour le problème du bug avec xhtml ou doctype (c'est le même problème: Le javascript généré ne fourni pas la norme xhtml est le fait d'utiliser la ligne <!DOCTYPE HTML PUBLIC "-//W3C//DTD ... fait que le controle de la norme demandé retourne une erreur.).
Une des solutions consiste à ne pas demander la validation du flux xml en enlevant la ligne, l'autre étant de revoir tout le code pour modifier les lignes de code générant le html pour le remettre aux normes xhtml.

Pour Isabelle72

Il faut que tu génére une chaine de caractère afin d'écrire la borne de limite de saisie dynamiquement. Du style :
a = year()+month()+day()+"&+inf";
Ensuite il faut inserer la balise suivante:
<INPUT onclick="Calendar.MPopUpCalendar(this, document.frmRech.DatePrevDeb, 'dd mmm yyyy',a,true)" type=button value=...>

A+

Commentaire de developpementstef le 03/02/2006 19:29:48

Bonjour,
Trés bien pour le calendrier proposé, cependant est-il possible de parametrer ou modifier le code afin que la sortie soit du type dd/mm/yy?

Merci d'avance Stef-âne

Commentaire de tguerlus le 06/02/2006 09:22:06

Bonjour,

Je ne sais plus tres bien, ca fait longtemp, mais essaye ca:
<INPUT onclick="Calendar.MPopUpCalendar(this, document.frmRech.DatePrevDeb, 'dd/mm/yy',a,true)" type=button value=...>

Commentaire de enguerrangillet le 14/02/2006 15:52:55

Bonjour,
j'ai le même problème que SREGG, et je n'y ai trouvé de solutioactuellement.
je site SREGG :
"A chaque page où je créé le Calendar avec un new Calandar, le calendrier s'affiche tt seul au début du lancement de la page et disparait. ( Sous IE et FF )

Est-ce normal ? Comment remédier à ce problème ?

Merci de ta réponse."

En tout cas ca marche nick sinon, c'est pile ce que je cherchait ^^

Commentaire de isabelle72 le 15/02/2006 15:40:38

Bonjour,
Je suis toujours bloquée sur le même problème : je ne dois pas pouvoir sélectionner une date antérieur à la date du jour.
J'ai essayé de créer la variable a=year()+month()+day() à plusieurs endroits, mais rien à faire je n'y arrive pas.
Je suis débutante, pourriez vous me réexpliquer comment faire.
Merci d'avance.
Isabelle

Commentaire de enguerrangillet le 15/02/2006 16:41:40

isa

<html>
  <head>
    <script type="text/javascript" src="IncClient/prototype_light.js"></script>
    <script type="text/javascript" src="IncClient/dhtml_light.js"></script>
    <script type="text/javascript" src="IncClient/dhtml_div_light.js"></script>
    <script type="text/javascript" src="IncClient/window_dhtml_light.js"></script>
    <script type="text/javascript" src="IncClient/Calendar.js"></script>
    <script LANGUAGE="JavaScript">
      var Calendar = new TCalendar("Calendar");
      Calendar.MInitWeekDays(0,6);
    </script>
  </head>

  <body>
    <?php
      $borne=date("Ymd")."&+inf";
    ?>
    <form name='frm1'>
      <input type='text' name='val'></input>
      <?php echo "<input type='button' value='...' onclick='Calendar.MPopUpCalendar(this, document.frm1.val, \"dd-mm-yyyy\", \"$borne\",false,false)'></input>";?>
    </form>
  </body>
</html>

Commentaire de enguerrangillet le 15/02/2006 16:44:18

>>isa

pour ta borne :
$borne=date("Ymd")."&+inf";

pour le onclick:
echo " ..... onclick='Calendar.MPopUpCalendar(this, document.frm1.val, \"dd-mm-yyyy\", \"$borne\",false,false)' .... ";

si tu veux le script complet fais moi signe

Commentaire de tguerlus le 15/02/2006 17:17:16

Bonjour,

Bravo Enguerrangilet, enfin un qui a compris comment ça marche et qui l'explique bien. J'aurai pas fais mieux

A+

Commentaire de isabelle72 le 16/02/2006 10:46:20

Bonjour,
merci beaucoup ça marche très bien !!
J'ai une question subsidaire, et après c'est fini !
Le calendrier permet de renseigner un input text : DatePrevDeb.
Je POSTE cette variable sur la page suivante.

Je souhaite que l'utilisateur voit la date qu'il a sélectionné une fois le calendrier refermé, mais qu'il ne puisse pas la modifier !

J'ai essayé de mettre le champ en "disabled", mais cela n'est pas compatible avec la méthode POST.
J'ai donc envisagé de mettre le champ DatePrevDeb en type hidden, et d'afficher par un autre moyen la date sélectionnée via le calendrier mais je ne sais pas comment faire ...

Merci d'avance.
Isabelle.

Commentaire de enguerrangillet le 18/02/2006 20:40:41

Re,
l'attribut 'disabled' peut être appliqué à un champ texte. Par exemple tu peux faire ceci :

<input type='text' value='coucou' disabled='true'></input>

J'espère que cela répond (un peu tard je sais) à ta question.
Sinon donne plus de détails et je me ferai un plaisir de répondre.

Enguerran

Commentaire de Picoteur le 20/02/2006 15:35:38

Bonjour et bravo pour ce superbe script, vraiment.
Une petite question toutefois : comment passer une date à préselectionner, à la place de la date du jour ?
J'ai essayé de jouer avec AMonthSelected et ses camarades, mais sans succcés.
Quelqu'un aurait une idée par hasard ?
Merci d'avance
Pierre

Commentaire de tguerlus le 22/02/2006 09:18:26

As tu essayé de préalimenter le champ qui est en relation avec le calendrier

Commentaire de Picoteur le 22/02/2006 09:40:36

Bon sûr mais c'est bien sang...
Quelle nouille, je n'avais même pas essayé un truc aussi basique.
Désolé pour le bruit, ça fonctionne parfaitement.
Encore merci et bravo !
Amicalement,
Pierre

Commentaire de zortec le 25/02/2006 09:31:02

Message de niggaz972
"Sniff sniff, ce script est parfait , sauf, sauf, kil ne fonctionne pas en xhtml, en effet je suis en html et utilise du css, kan j'utilise la soluce de  alpharios  sa pase plus du tt l'apparnce de mon site ne prend plus en compte mon fichier css!"

J'ai rencontré le même problème avec le contour des tableaux. La bordure s'affiche systématiquement en blanc quelquesoit la couleur choisie. J'ai néanmoins réussi à contourner le problème en intégrant la couleur de la bordure dans la balise de la manière suivante :

<table bordercolor="#0000FF" class="table">

Commentaire de spacezed le 24/03/2006 11:59:46

Bonjour, ton script est super!

Il serait encore plus genial s'il pouvait repondre à mon deuxieme besoin.
CAD: pouvoir selectionner/déselectionner des jours fériés (ou fermés).

faisant reference toujours à un input de type hidden, qui contiendrait tous les jours considérés comme fériès (avec option "considerer les we comme jours feries ou non").
sous une syntaxe par exemple: JJMMAAAA,JJMMAAAA,...
s'il est vide on considère que les jours fériés par défaut sont activés.

L'interface elle affichera le calendrier existant mais, avec deux couleurs differente, jour normal et jour férié (ou fermé). Et lorsque l'on clique sur un jour la couleur switche mais le calendreir ne se ferme pas (il faut cliquer sur la croix). L'input hidden est mis à jour en live.

voili, est-ce que cela t'inspire?

ps: j'aurai aussi besoin d'un selectionneur horaires d'ouvertures, pour pouvoir que par exemple une boutique est ouverte de 8h30 à 12h00 le lundi, de 8h à 9h puis de 10h à 10h15, etc le mercredi...
si connait un script qqle part qui fait cela je suis preneur!

merciiiiiiiii!
dada

Commentaire de Blowdesign le 05/07/2006 09:08:02

Très bien le script,

Juste une question :

Comment faire pour désactiver une plage de date ?

<? $borne_calendrier = "$curannee$curmois$curjour"."&+inf"; ?>

cela permet de sélectionner une date depuis aujourd'hui jusqu'à l'infini.

Mais je voudrais que par exemple du 01/07/2006 au 14/07/2006, les dates ne puissent pas être sélectionné (pour les congés par exemple)

Merci d'avance.

Commentaire de enguerrangillet le 05/07/2006 09:16:51

Coucou,

c'est décrit dans la doc contenu dans le zip.

Commentaire de enguerrangillet le 05/07/2006 09:27:45

Ton "je ne peux pas selectionner du 01/07/2006 au 14/07/2006" est équivalent à "je peux selectionner de - l'infini à 01/07/2006 et de 14/07/2006 à + l'infini".

Pour faire l'union des deux intervalles, utilise le caractère "^".

Avec ton exemple ça donne :

-inf&20060701^20060714&+inf

Commentaire de Blowdesign le 05/07/2006 15:46:40

Ok, merci.

Pour ceux que ça intéresse, j'ai fait comme ça :

* Si date du jour < date de debut de congé -> date du jour à date de debut de congé + date de fin de congé à l'infini

* Si date du jour <= date de fin de congé -> date de fin de congé à l'infini

* Si date du jour > date de fin de congé -> date du jour à l'infini

Commentaire de Blowdesign le 05/07/2006 15:48:16

correction :

Ok, merci.

Pour ceux que ça intéresse, j'ai fait comme ça :

* Si date du jour < date de debut de congé -> date du jour à (date de debut de congé - 1) + (date de fin de congé +1) à l'infini

* Si date du jour <= date de fin de congé -> (date de fin de congé +1) à l'infini

* Si date du jour > date de fin de congé -> date du jour à l'infini

Commentaire de mouness le 31/08/2006 15:11:47

Super Baleze tguerlus tres jolie travail mais j'aimerais te demander un truc SVP (je debute et  par consequent je ne suis pas aussi douée que toi) mais je voudrait savoir quelle modif je doit apporter pour ne pas avoir a  renseigner l'argument "ct1" dans la fonction
"TMPopUpCalendar(ctl,ctl2,format,borne,jourfermer,jourferier)" autrement dit un truc genre "TMPopUpCalendar(ctl2,format,borne,jourfermer,jourferier)" et que je puisse declancher ton calendrier sur un autre evenement que onclick ,par exemple onLoad ou autre. Je t'en serait tres reconnaissant merci beaucoup et encore une fois super ton calendrier.

Commentaire de pwet8484 le 02/05/2007 16:50:42

Très bon code, encore bravo !

J'ai tout de même rencontré un petit soucis sous IE 6 :
Lorsque l'on clique sur le bouton "flèche du bas" pour faire apparaitre la liste des mois, celle ci n'apparait pas sous IE6. (C'est le même problème quand on veut faire afficher la liste des années).

Ce n'est pas un bug paralysant (puisqu'on peut toujours faire défiler les mois/années avec les flèches droites/gauches) mais c'est juste génant...

Est ce que quelqu'un aurait une solution?

Commentaire de tguerlus le 03/05/2007 09:18:35

Merci pwet8484

Je viens de faire un test sur IE 6 et tous marche très bien. J'arrive a afficher les listes des mois et des années.

Commentaire de glachant le 10/06/2008 15:38:50 9/10

Bonjour,
compte tenu du fait que ce source n'a pas été commenté depuis un an j'espere qu'il y aura quand même une bonne âme pour m'aider...
En réalité j'ai le même problème que pwet8484 : les listes des mois et des années n'apparaissent pas quand je clique sur les fleches du bas.
Pourtan, j'ai reformaté tout le code pour qu'il soit accepté en XHTML 1.0. (enfin je crois !..j'ai mis les balises en minuscules, fermé les <img > qui étaient ouvertes, rajouté quelques ; pour finir les fonction js appelées dans les évènements et mis des quotes pour toutes les valeurs des propriétés ...)
...mais rien n'y fai j'ai toujours ma belle erreur "erreur sur la page"


HEEELLLP  TGUERLUS !

Voilà le fichier Calendar.js modifié :

function TCalendar(id,position,x,y) {
//Attribut
this.AId = id;
this.AFixedX = (x==undefined)?-1:x; // x position (-1 if to appear below control)
this.AFixedY = (y==undefined)?-1:y; // y position (-1 if to appear below control)
this.APosition = (position==undefined)?"absolute":position;
this.AStartAt = 1; // 0 - sunday ; 1 - monday
this.AShowWeekNumber = 1; // 0 - don't show; 1 - show
this.AShowToday = 1; // 0 - don't show; 1 - show
this.AShowComment = 1; // 0 - don't show; 1 - show
this.AShowLegend = 1; // 0 - don't show; 1 - show
this.AStyleToday = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:center;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleCalendar = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:left;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleEntete = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:left;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleComment = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:center;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleLegend = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:center;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleComposantOut = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleComposantOver = "border-left: #333333 1px solid;border-top: #333333 1px solid;border-right: #CAC9C8 1px solid;border-bottom: #CAC9C8 1px solid;background-color:#777777;font-size:9pt;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleCadrePopUp = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;padding:1px;z-index:99";
this.AStyleButtonPopUpOut = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonPopUpOver = "border-left: #333333 1px solid;border-top: #333333 1px solid;border-right: #CAC9C8 1px solid;border-bottom: #CAC9C8 1px solid;background-color:#777777;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";

this.AStyleCadreDay = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;padding:1px;z-index:99";
this.AStyleButtonDayOut = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayOver = "border-left: #333333 1px solid;border-top: #333333 1px solid;border-right: #CAC9C8 1px solid;border-bottom: #CAC9C8 1px solid;background-color:#777777;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayHoliday = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#ACC14E;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayWeek = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#DF9F15;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDaySelected = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#7951AE;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayOld = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#51AE8D;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayUnselected = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#73091F;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleNumberWeek = "background-color:#A1A19F;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;padding:1px";
this.AStyleNameDay = "background-color:#A1A19F;font-size:9pt;font-weight:bold;text-align:center;color:black;font-family: Arial Verdana;padding:1px";

  this.ADaySpacing = 0;
this.ATypeAnim = 0;
this.AVitesseAnim = 7;
this.AImgDir = "/jscripts/IncClient/images/"; // directory for images ... e.g. this.AImgDir="/img/"
this.ADayCloses = new Array([0]);

this.AGotoString = "Mois courant";
this.ATodayString = "Aujourd hui :";
this.AWeekString = "n°";

this.AScrollLeftMessage = "Cliquer pour passer au mois pr&eacute;c&eacute;dent. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.AScrollRightMessage = "Cliquer pour passer au mois suivant. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.AScrollLeftMessageYear = "Cliquer pour passer &agrave; l ann&eacute;e pr&eacute;c&eacute;dente. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.AScrollRightMessageYear = "Cliquer pour passer &agrave; l ann&eacute;e suivante. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.ASelectMonthMessage = "Cliquer pour s&eacute;lectionner un mois.";
this.ASelectYearMessage = "Cliquer pour s&eacute;lectionner ann&eacute;e.";
this.ASelectDateMessage = "Choisir la date [date]."; // do not replace [date], it will be replaced by date.

this.AMonthSelected = "";
this.AYearSelected = "";
this.ADateSelected = "";
this.AOmonthSelected = "";
this.AOyearSelected = "";
this.AOdateSelected = "";
this.AMonthConstructed = false;
this.AYearConstructed = false;
this.AIntervalID1 = "";
this.AIntervalID2 = "";
this.ATimeoutID1 = "";
this.ATimeoutID2 = "";
this.ACtlToPlaceValue = null;
this.ACtlNow = null;
this.ADateFormat = "jj/mm/yyyy";
this.ANStartingYear = "";
this.ADayWeek = false;
this.ADayHoliday = false;
this.ABorne = null;

this.AToday = new Date();
this.ADateNow = this.AToday.getDate();
this.AMonthNow = this.AToday.getMonth();
this.AYearNow = this.AToday.getYear();
if (!MS) this.AYearNow += 1900;

this.ABShow = false;
this.ABPageLoaded=false;

this.AStrEaster = "P&acirc;ques";
this.AStrEasterMonday = "Lundi de P&acirc;ques";
this.AStrAscension = "Ascension";
this.AStrPentecostMonday = "Lundi de Pentec&ocirc;te";
this.AStrPentecost = "Pentec&ocirc;te";

this.AMonthName = new Array ("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
this.ADayName = (this.AStartAt==0)?new Array ("Dim","Lun","Mar","Mer","Jeu","Ven","Sam"):new Array ("Lun","Mar","Mer","Jeu","Ven","Sam","Dim");

//M&eacute;thodes:
this.MInit = TMInit;
this.MPopUpCalendar = TMPopUpCalendar;
this.MFormatDate = TMFormatDate;
this.MConstructCalendar = TMConstructCalendar;
this.MConstructDate = TMConstructDate;
this.MWeekNbr = TMWeekNbr;
this.MHideCalendar = TMHideCalendar;
this.MDecMonth = TMDecMonth;
this.MIncMonth = TMIncMonth;
this.MShowComment = TMShowComment;
this.MShowLegend = TMShowLegend;
this.MStartDecMonth = TMStartDecMonth;
this.MStartIncMonth = TMStartIncMonth;
this.MCloseCalendar = TMCloseCalendar;
this.MPopUpMonth = TMPopUpMonth;
this.MConstructMonth = TMConstructMonth;
this.MPopDownYear = TMPopDownYear;
this.MPopDownMonth = TMPopDownMonth;
this.MPopUpYear = TMPopUpYear;
this.MConstructYear = TMConstructYear;
this.MIncYear = TMIncYear;
this.MDecYear = TMDecYear;
this.MIncYearAuto = TMIncYearAuto;
this.MDecYearAuto = TMDecYearAuto;
this.MStartDecYear = TMStartDecYear;
this.MStartIncYear = TMStartIncYear;
this.MSelectYear = TMSelectYear;
this.MShowDefault = TMShowDefault;
this.MShowScroll = TMShowScroll;
this.MShowOpacity = TMShowOpacity;
this.MSetXY = TMSetXY;
   this.MInitWeekDays = TMInitWeekDays;
this.MJourFerie = TMJourFerie;
this.MGetPaques = TMGetPaques;

// Initialisation  
   this.MInit();
}

function TMInitWeekDays () {
  var i = 0;
  this.ADayCloses.clear();
while(arguments[i] != null)  
    this.ADayCloses.push(arguments[i++]);
}

function TMInit() {
var htmlText = "";
  var attStyle = "";

htmlText += "<div id='"+this.AId+"' width='"+((this.AShowWeekNumber==1)?250:220)+"'>";
htmlText += "<table border='0' cellpadding='0' cellspacing='0' width='"+((this.AShowWeekNumber==1)?250:220)+"'>";
htmlText += "<tr><td>";
htmlText += " <table id='"+this.AId+"_entete' width='100%'>";
htmlText += " <tr><td>";
htmlText += " <div id='"+this.AId+"_caption'>";
htmlText += " <table border='0' cellpadding='0' cellspacing='0'><tr>";
htmlText += " <td id='"+this.AId+"_spanLeft' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollLeftMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");clearInterval("+this.AId+".AIntervalID1);"+this.AId+".MShowComment(\"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartDecMonth()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MDecMonth();'><img id='"+this.AId+"_changeLeft' src='"+this.AImgDir+"FlecheGauche.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanRight' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollRightMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:clearInterval("+this.AId+".AIntervalID1);"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartIncMonth()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MIncMonth();'><img id='"+this.AId+"_changeRight' src='"+this.AImgDir+"FlecheDroite.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanMonth' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectMonthMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanMonthBas\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanMonthBas\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpMonth();'></td>";
htmlText += " <td id='"+this.AId+"_spanMonthBas' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectMonthMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanMonth\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanMonth\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpMonth();'><img id='"+this.IAd+"_changeMonth' src='"+this.AImgDir+"FlecheBas.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td>&nbsp;&nbsp;</td>";
htmlText += " <td id='"+this.AId+"_spanLeftYear' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollLeftMessageYear+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:clearInterval("+this.AId+".AIntervalID1);"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartDecYear()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MDecYearAuto();'><img id='"+this.AId+"_changeLeft' src='"+this.AImgDir+"FlecheGauche.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanRightYear' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollRightMessageYear+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:clearInterval("+this.AId+".AIntervalID1);set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");"+this.AId+".MShowComment(\"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartIncYear()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MIncYearAuto();'><img id='"+this.AId+"_changeRight' src='"+this.AImgDir+"FlecheDroite.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanYear' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectYearMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanYearBas\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanYearBas\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpYear();'></td>";
htmlText += " <td id='"+this.AId+"_spanYearBas' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectYearMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanYear\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanYear\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpYear();'><img id='"+this.IAd+"_changeYear' src='"+this.AImgDir+"FlecheBas.gif' width='15' heigth='15' border='0' /></td>";
if (this.AShowLegend == 1) {
   htmlText += " <td>&nbsp;&nbsp;</td>";
   htmlText += " <td id='"+this.AId+"_spanLegend' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\"Afficher ou cacher les l&eacute;gendes\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MShowLegend();'><b>&nbsp;?&nbsp;</b></td>";
   }  
htmlText += " </tr></table>";
htmlText += " </div>";
htmlText += " </td><td valign='middle' style='cursor:pointer'>";
htmlText += " <img src='"+this.AImgDir+"close.gif' width='15' height='13' border='0' alt='Fermer le calendrier' onclick='javascript:"+this.AId+".MHideCalendar();' />";
htmlText += " </td></tr>";
htmlText += " </table>";
htmlText += "</td></tr>";
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_content'></div>";
htmlText += "</td></tr>";

if (this.AShowToday==1) {
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_lblToday'>";
htmlText += this.ATodayString;
htmlText += " <a onmousemove='javascript:"+this.AId+".MShowComment(\""+this.AGotoString+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");' title='"+this.AGotoString+"' href='javascript:"+this.AId+".AMonthSelected="+this.AId+".AMonthNow;"+this.AId+".AYearSelected="+this.AId+".AYearNow;"+this.AId+".MConstructCalendar();'>";
htmlText += this.ADayName[(this.AToday.getDay()-this.AStartAt==-1)?6:(this.AToday.getDay()-this.AStartAt)]+", " + this.ADateNow + " " + this.AMonthName[this.AMonthNow] + " " + this.AYearNow + "</a>";
htmlText += " </div>";
htmlText += "</td></tr>";
}
if (this.AShowLegend == 1) {
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_legend'>";
htmlText += " <table width='100%' border='0' cellpadding='0' cellspacing='2'>";
     attStyle = (this.AStyleButtonDayHoliday.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayHoliday+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayHoliday+"\">Jours f&eacute;riers</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayWeek.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayWeek+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayWeek+"\">Jours ferm&eacute;s dans une semaine</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDaySelected.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDaySelected+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDaySelected+"\">Aujourd'hui</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayOld.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOld+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOld+"\">Jour s&eacute;lectionn&eacute;</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayUnselected.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayUnselected+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayUnselected+"\">Jours non s&eacute;lectionnables</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayOut.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOut+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOut+"\">Jours normaux</td>";
htmlText += " </tr>";
htmlText += " </table>";
htmlText += " </div>";
htmlText += "</td></tr>";
}
if (this.AShowComment == 1) {
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_comment'>";
htmlText += " </div>";
htmlText += "</td></tr>";
}

htmlText += "</table></div>";
htmlText += "<div id='"+this.AId+"_selectMonth' style='z-index:999;position:absolute;'></div>";
htmlText += "<div id='"+this.AId+"_selectYear' style='z-index:999;position:absolute;'></div>";

document.write (htmlText);

set_style_div("id",this.AId,null,this.AStyleCalendar);
set_position_div("id",this.AId,null,this.APosition);
set_style_div("id",this.AId+"_entete",null,this.AStyleEntete);
if (this.AShowToday==1) set_style_div("id",this.AId+"_lblToday",null,this.AStyleToday);
if (this.AShowComment==1) {
     set_style_div("id",this.AId+"_comment",null,this.AStyleComment);
     getElem("id",this.AId+"_comment").style.display = "none";
  }  
if (this.AShowLegend==1) {
    set_style_div("id",this.AId+"_legend",null,this.AStyleLegend);
    getElem("id",this.AId+"_legend").style.display = "none";
   set_style_div("id",this.AId+"_spanLegend",null,this.AStyleComposantOut);
  }  
set_style_div("id",this.AId+"_spanLeft",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanRight",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanLeftYear",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanRightYear",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanMonth",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanYear",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanYearBas",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanMonthBas",null,this.AStyleComposantOut);

this.AMonthConstructed=false;
this.AYearConstructed=false;

this.ABPageLoaded=true;
this.MHideCalendar();
}

function TMShowLegend () {
    if (getElem("id",this.AId+"_legend").style.display == "none")
      getElem("id",this.AId+"_legend").style.display = "block";
    else  
      getElem("id",this.AId+"_legend").style.display = "none";
}

function TMConstructCalendar () {
var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31);
var dateMessage;
var startDate = new Date (this.AYearSelected,this.AMonthSelected,1);
var endDate;
var numDaysInMonth;
var datePointer = 0;
var sHTML = "";
var sHint = "";
var sStyle = "";
var attStyle = "style";
var datetype = null;
  var jourferier = "";

if (this.AMonthSelected==1) {
endDate = new Date (this.AYearSelected,this.AMonthSelected+1,1);
endDate = new Date (endDate - (24*60*60*1000));
numDaysInMonth = endDate.getDate();
}
else numDaysInMonth = aNumDays[this.AMonthSelected];

dayPointer = startDate.getDay() - this.AStartAt;

if (dayPointer<0) dayPointer = 6;

sHTML += "<table id='"+this.AId+"_cadrejour' border='0' cellpadding='0' cellspacing='" + this.ADaySpacing + "' width='100%' ><tr>";

if (this.AShowWeekNumber==1) {
if (this.AStyleNumberWeek.is_style()) attStyle = "style";
else attStyle = "class";  
    sHTML += "<td width='27' "+attStyle+"='"+this.AStyleNumberWeek+"'><b>" + this.AWeekString + "</b></td>";
    sHTML += "<td width='1' align='center' rowspan='7' style='padding-left:2px;padding-right:2px'><img src='"+this.AImgDir+"divider.gif' width='1' height='100%' /></td>";
  }  

if (this.AStyleNameDay.is_style()) attStyle = "style";
else attStyle = "class";  
for (i=0; i<7; i++) {
    sHTML += "<td width='27' "+attStyle+"='"+this.AStyleNameDay+"'>"+this.ADayName[i]+"</td>";
  }

sHTML +="</tr><tr>";

if (this.AShowWeekNumber==1) {
if (this.AStyleNumberWeek.is_style()) attStyle = "style";
else attStyle = "class";
    sHTML += "<td align='center' "+attStyle+"='"+this.AStyleNumberWeek+"'>" + this.MWeekNbr(startDate) + "&nbsp;</td>";
  }  

for ( var i=1; i<=dayPointer;i++ ) {sHTML += "<td>&nbsp;</td>";}

for ( datePointer=1; datePointer<=numDaysInMonth; datePointer++ ) {
dayPointer++;
sHint = "";

sStyle = this.AStyleButtonDayOut;

     jourferier = this.MJourFerie(String(datePointer).fillPrevChar("0",2)+"/"+String(parseInt(this.AMonthSelected)+1).fillPrevChar("0",2)+"/"+this.AYearSelected);

if ((datePointer==this.ADateNow)&&(this.AMonthSelected==this.AMonthNow)&&(this.AYearSelected==this.AYearNow))
sStyle = this.AStyleButtonDaySelected;

if ((datePointer==this.AOdateSelected) && (this.AMonthSelected==this.AOmonthSelected) && (this.AYearSelected==this.AOyearSelected))
sStyle=this.AStyleButtonDayOld;

if (jourferier != "") {
sStyle=this.AStyleButtonDayHoliday;
sHint+=sHint==""?jourferier:"\n"+jourferier;
     }    

if (this.ADayCloses.is_in(dayPointer%7))
sStyle = this.AStyleButtonDayWeek;

     if (this.ABorne) {
       datetype = String(this.AYearSelected)+String(this.AMonthSelected+1).fillPrevChar("0",2)+String(datePointer).fillPrevChar("0",2);
       if (!this.ABorne.in_born(datetype))
sStyle=this.AStyleButtonDayUnselected;
     }  
    
var regexp= /\"/g;
sHint=sHint.replace(regexp,"&quot;");

dateMessage = "onmouseover='javascript:set_style_div(\"id\",this.id,null,\""+this.AStyleButtonDayOver+"\");"+this.AId+".MShowComment(\""+this.ASelectDateMessage.replace("[date]",this.MConstructDate(datePointer,this.AMonthSelected,this.AYearSelected))+"\");' onmouseout='javascript:set_style_div(\"id\",this.id,null,\""+sStyle+"\");"+this.AId+".MShowComment(\"\");' onclick='javascript:"+this.AId+".ADateSelected="+datePointer + ";"+this.AId+".MCloseCalendar();'";

if ((sStyle == this.AStyleButtonDayUnselected) ||
(sStyle == this.AStyleButtonDayHoliday && this.ADayHoliday) ||
(sStyle == this.AStyleButtonDayWeek && this.ADayWeek))
dateMessage = "onmouseover='javascript:"+this.AId+".MShowComment(\"Date non s&eacute;lectionnable\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");' ";

if (sStyle.is_style()) attStyle = "style";
else attStyle = "class";  

sHTML += "<td id='day_"+datePointer+"' "+dateMessage+" title=\"" + sHint + "\" "+attStyle+"='"+sStyle+"' >" + padZero(datePointer) + "</div>";
sHTML += "</td>";

sHTML += "";

if ((dayPointer+this.AStartAt) % 7 == this.AStartAt) {
sHTML += "</tr><tr>" ;
if ((this.AShowWeekNumber==1)&&(datePointer<numDaysInMonth)) {
     if (this.AStyleNumberWeek.is_style()) attStyle = "style";
    else attStyle = "class";  
     sHTML += "<td align='center' "+attStyle+"='"+this.AStyleNumberWeek+"'>" + (this.MWeekNbr(new Date(this.AYearSelected,this.AMonthSelected,datePointer+1))) + "&nbsp;</td>";
}
}
}

setCont("id",this.AId+"_content",null,sHTML);
setCont("id",this.AId+"_spanMonth",null,"&nbsp;"+this.AMonthName[this.AMonthSelected]+"&nbsp;");
setCont("id",this.AId+"_spanYear",null,"&nbsp;"+this.AYearSelected+"&nbsp;");
set_style_div("id",this.AId+"_cadrejour",null,this.AStyleCadreDay);
}

function TMShowComment(message) {
if (this.AShowComment == 1) {
    if (message != "") {
      getElem("id",this.AId+"_comment").style.display = "block";
      setCont("id",this.AId+"_comment",null,message);
    }
    else getElem("id",this.AId+"_comment").style.display = "none";  
  }  
}

function TMFormatDate(format) {
return (this.ADateFormat.split(format).length < 3)?"":format;
}

function TMPopUpCalendar(ctl,ctl2,format,borne,jourfermer,jourferier) {
var leftpos=-200;
var toppos=0;
var formatChar = " ";
var aFormat;
var tokensChanged = 0;
var aDate;

  this.ABorne = (borne == undefined || borne == null)?null:borne;
this.ADayWeek   = (jourfermer == undefined || jourfermer == null)?false:jourfermer;
this.ADayHoliday   = (jourferier == undefined || jourferier == null)?false:jourferier;

if (this.ABPageLoaded)
{
if (!is_visible_div("id",this.AId)) {
this.ACtlToPlaceValue = ctl2;
this.ADateFormat = format;

formatChar = this.MFormatDate(" ") +
this.MFormatDate("/") +
this.MFormatDate(".") +
this.MFormatDate("-");

tokensChanged = 0;

if ( formatChar != "" ) {
aFormat = this.ADateFormat.split(formatChar);
aData = this.ACtlToPlaceValue.value.split(formatChar);
for (i=0;i<3;i++) {

if ((aFormat[i].toLowerCase()=="d") || (aFormat[i].toLowerCase()=="dd")) {
this.ADateSelected = parseInt(aData[i], 10);
tokensChanged ++;
}
else if ((aFormat[i].toLowerCase()=="m") || (aFormat[i].toLowerCase()=="mm")) {
this.AMonthSelected = parseInt(aData[i], 10) - 1;
tokensChanged ++;
}
else if (aFormat[i].toLowerCase()=="mmm") {
this.AMonthSelected= parseInt((aData[i])?aData[i].getNumMonth():null)-1;
tokensChanged ++;
}
else if (aFormat[i].toLowerCase()=="yyyy") {
this.AYearSelected = parseInt(aData[i], 10);
tokensChanged ++;
}
}
}
if ((tokensChanged!=3)||isNaN(this.ADateSelected)||isNaN(this.AMonthSelected)||isNaN(this.AYearSelected)) {
this.ADateSelected = this.ADateNow;
this.AMonthSelected = this.AMonthNow;
this.AYearSelected = this.AYearNow;
}
this.AOdateSelected = this.ADateSelected;
this.AOmonthSelected = this.AMonthSelected;
this.AOyearSelected = this.AYearSelected;


this.MConstructCalendar ();
this.ABShow = true;

this.MSetXY();
      
switch(this.ATypeAnim) {
case 0: this.MShowDefault();break;
case 1 : this.MShowScroll("right");break;
case 2: this.MShowScroll("left");break;
case 3: this.MShowScroll("top");break;
case 4: this.MShowScroll("bottom");break;
case 5: this.MShowOpacity();break;
default: this.MShowDefault();break;
}
}
else {
if (this.ACtlNow != ctl) {
        hide_div("id",this.AId);
        this.MPopUpCalendar(ctl,ctl2,format,borne,jourfermer,jourferier);
      }
      else this.MHideCalendar();
}
this.ACtlNow = ctl;
}
}

function TMSetXY() {
var x = get_x_obj(this.ACtlToPlaceValue);
var y = get_y_obj(this.ACtlToPlaceValue)+this.ACtlToPlaceValue.offsetHeight+2;
var l = get_l_div("id",this.AId);
var h = get_h_div("id",this.AId);
if ((x+l) >= (left_fenetre()+largeur_fenetre()))
x = left_fenetre()+largeur_fenetre()-l-(MS?33:0);
if ((y+h) >= (top_fenetre()+hauteur_fenetre()))
y = top_fenetre()+hauteur_fenetre()-h;
set_x_div("id",this.AId,null,(this.AFixedX==-1)?x:this.AFixedX);
set_y_div("id",this.AId,null,(this.AFixedY==-1)?y:this.AFixedY);
}

function TMShowDefault() {
show_div("id",this.AId);
}

function TMShowScroll(direction) {
  move_clip_open("id",this.AId,null,direction,this.AVitesseAnim,3,0,"");
}

function TMShowOpacity() {
show_div("id",this.AId);
if (!OP) opacity_open_div("id",this.AId,null,0.15,this.AVitesseAnim,"");
}

function TMHideCalendar() {
if (getElem("id",this.AId+"_selectMonth")) hide_div("id",this.AId+"_selectMonth");
if (getElem("id",this.AId+"_selectYear")) hide_div("id",this.AId+"_selectYear");
  
switch(this.ATypeAnim) {
case 0: hide_div("id",this.AId);break;
case 1: move_clip_close("id",this.AId,null,"left",this.AVitesseAnim,3,0,"");break;
case 2: move_clip_close("id",this.AId,null,"right",this.AVitesseAnim,3,0,"");break;
case 3: move_clip_close("id",this.AId,null,"bottom",this.AVitesseAnim,3,0,"");break;
case 4: move_clip_close("id",this.AId,null,"top",this.AVitesseAnim,3,0,"");break;
case 5: if (!OP) opacity_close_div("id",this.AId,null,0.15,this.AVitesseAnim,"hide_div(\"id\",\""+this.AId+"\");");break;
}
}

function padZero(num) {
return (num < 10)? '0' + num : num ;
}

function TMConstructDate(d,m,y)
{
sTmp = this.ADateFormat;
sTmp = sTmp.replace ("dd","<e>");
sTmp = sTmp.replace ("d","<d>");
sTmp = sTmp.replace ("<e>",padZero(d));
sTmp = sTmp.replace ("<d>",d);
sTmp = sTmp.replace ("mmm","<o>");
sTmp = sTmp.replace ("mm","<n>");
sTmp = sTmp.replace ("m","<m>");
sTmp = sTmp.replace ("<m>",m+1);
sTmp = sTmp.replace ("<n>",padZero(m+1));
sTmp = sTmp.replace ("<o>",this.AMonthName[m]);
return sTmp.replace ("yyyy",y);
}

function TMCloseCalendar() {
this.MHideCalendar();
this.ACtlToPlaceValue.value = this.MConstructDate(this.ADateSelected,this.AMonthSelected,this.AYearSelected);
}

function TMStartDecMonth() {this.AIntervalID1 = setInterval(this.AId+".MDecMonth()",80);}

function TMStartIncMonth() {this.AIntervalID1 = setInterval(this.AId+".MIncMonth()",80);}

function TMStartDecYear() {this.AIntervalID1 = setInterval(this.AId+".MDecYearAuto()",80);}

function TMStartIncYear() {this.AIntervalID1 = setInterval(this.AId+".MIncYearAuto()",80);}

function TMIncMonth () {
this.AMonthSelected++;
if (this.AMonthSelected>11) {
this.AMonthSelected=0;
this.AYearSelected++;
}
this.MConstructCalendar();
}

function TMDecMonth () {
this.AMonthSelected--;
if (this.AMonthSelected<0) {
this.AMonthSelected=11;
this.AYearSelected--;
}
this.MConstructCalendar();
}

function TMIncYearAuto () {
this.AYearSelected++;
this.MConstructCalendar();
}

function TMDecYearAuto () {
this.AYearSelected--;
this.MConstructCalendar();
}

function TMConstructMonth() {
var sHTML = "";
var sName = "";

this.MPopDownYear();
if (!this.AMonthConstructed) {
sHTML = "";
for (i=0; i<12; i++) {
sName = this.AMonthName[i];
if (i==this.AMonthSelected){
sName = "<b>" + sName + "</b>";
}
sHTML += "<tr><td id='"+this.AId+"_m" + i + "' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onclick='"+this.AId+".AMonthConstructed=false;"+this.AId+".AMonthSelected=" + i + ";"+this.AId+".MConstructCalendar();"+this.AId+".MPopDownMonth();event.cancelBubble=true;'>&nbsp;" + sName + "&nbsp;</td></tr>";
}

setCont("id",this.AId+"_selectMonth",null,"<table id='"+this.AId+"_cadrepopupmonth' width='70' cellspacing='0' onmouseover='clearTimeout("+this.AId+".ATimeoutID1);' onmouseout='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MPopDownMonth()\",100);event.cancelBubble=true;'>" + sHTML + "</table>");
set_style_div("id",this.AId+"_cadrepopupmonth",null,this.AStyleCadrePopUp);
for (i=0; i<12; i++)
set_style_div("id",this.AId+"_m" + i,null,this.AStyleButtonPopUpOut);

this.AMonthConstructed=true;
}
}

function TMPopUpMonth() {
this.MConstructMonth();
set_x_div("id",this.AId+"_selectMonth",null,get_x_div("id",this.AId+"_spanMonth"));
set_y_div("id",this.AId+"_selectMonth",null,get_y_div("id",this.AId+"_spanMonth")+get_h_div("id",this.AId+"_spanMonth"));
show_div("id",this.AId+"_selectMonth");
}

function TMPopDownMonth() {hide_div("id",this.AId+"_selectMonth");}

function TMIncYear() {
var newYear = "";
var txtYear = "";

for (i=0; i<7; i++){
newYear = (i+this.ANStartingYear)+1;
if (newYear==this.AYearSelected) txtYear = "&nbsp;<b>" + newYear + "</b>&nbsp;";
else txtYear = "&nbsp;" + newYear + "&nbsp;";
setCont("id",this.AId+"_y"+i,null,txtYear);
}
this.ANStartingYear ++;
this.ABShow=true;
}

function TMDecYear() {
var newYear = "";
var txtYear = "";

for (i=0; i<7; i++){
newYear = (i+this.ANStartingYear)-1;
if (newYear==this.AYearSelected) txtYear = "&nbsp;<b>" + newYear + "</b>&nbsp;";
else txtYear = "&nbsp;" + newYear + "&nbsp;";
setCont("id",this.AId+"_y"+i,null,txtYear);
}
this.ANStartingYear --;
this.ABShow=true;
}

function TMSelectYear(nYear) {
this.AYearSelected=parseInt(nYear+this.ANStartingYear);
this.AYearConstructed=false;
this.MConstructCalendar();
this.MPopDownYear();
}

function TMConstructYear() {
var sHTML = "";
var sName = "";
var j = 0;

this.MPopDownMonth();

if (!this.AYearConstructed) {
sHTML = "<tr><td id='"+this.AId+"_moins' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='clearInterval("+this.AId+".AIntervalID1);set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onmousedown='clearInterval("+this.AId+".AIntervalID1);"+this.AId+".AIntervalID1=setInterval(\""+this.AId+".MDecYear()\",30);' onmouseup='clearInterval("+this.AId+".AIntervalID1);'>-</td></tr>";
j = 0;
this.ANStartingYear = this.AYearSelected-3;
for (i=(this.AYearSelected-3); i<=(this.AYearSelected+3); i++) {
sName = i;
if (i==this.AYearSelected){
sName = "<b>" + sName + "</b>";
}
sHTML += "<tr><td id='"+this.AId+"_y" + j + "' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onclick='"+this.AId+".MSelectYear("+j+");event.cancelBubble=true'>" + sName + "</td></tr>";
j ++;
}

sHTML += "<tr><td id='"+this.AId+"_plus' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='clearInterval("+this.AId+".AIntervalID2);set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onmousedown='clearInterval("+this.AId+".AIntervalID2);"+this.AId+".AIntervalID2=setInterval(\""+this.AId+".MIncYear()\",30);' onmouseup='clearInterval("+this.AId+".AIntervalID2);'>+</td></tr>";

setCont("id",this.AId+"_selectYear",null,"<table id='"+this.AId+"_cadrepopupyear' width='44' onmouseover='clearTimeout("+this.AId+".ATimeoutID2);' onmouseout='clearTimeout("+this.AId+".ATimeoutID2);"+this.AId+".ATimeoutID2=setTimeout(\""+this.AId+".MPopDownYear()\",100);' cellspacing='0'>" + sHTML + "</table>");
set_style_div("id",this.AId+"_cadrepopupyear",null,this.AStyleCadrePopUp);
set_style_div("id",this.AId+"_moins",null,this.AStyleButtonPopUpOut);
set_style_div("id",this.AId+"_plus",null,this.AStyleButtonPopUpOut);
j=0;
for (i=(this.AYearSelected-3); i<=(this.AYearSelected+3); i++)
set_style_div("id",this.AId+"_y" + (j++),null,this.AStyleButtonPopUpOut);

this.AYearConstructed = true;
}
}

function TMPopDownYear() {
clearInterval(this.AIntervalID1);
clearTimeout(this.ATimeoutID1);
clearInterval(this.AIntervalID2);
clearTimeout(this.ATimeoutID2);
hide_div("id",this.AId+"_selectYear");
}

function TMPopUpYear() {
this.MConstructYear();
set_x_div("id",this.AId+"_selectYear",null,get_x_div("id",this.AId+"_spanYear"));
set_y_div("id",this.AId+"_selectYear",null,get_y_div("id",this.AId+"_spanYear")+get_h_div("id",this.AId+"_spanYear"));
show_div("id",this.AId+"_selectYear");
}

/*** calendar ***/
function TMWeekNbr(n) {
var year = n.getFullYear();
var month = n.getMonth() + 1;
var day = (this.AStartAt == 0)?n.getDate() + 1:n.getDate();

var a = Math.floor((14-month) / 12);
var y = year + 4800 - a;
var m = month + 12 * a - 3;
var b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
var J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
var d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
var L = Math.floor(d4 / 1460);
var d1 = ((d4 - L) % 365) + L;
var week = Math.floor(d1/7) + 1;

return week;
}

/*----------------------------------------------------------------------------*/
// Teste si une date est un jour f&eacute;ri&eacute;
/*----------------------------------------------------------------------------*/
function TMJourFerie(DtDate) {
    var Y = DtDate.substr(6);
    var desc = "";
    var dtpaques = this.MGetPaques(parseInt(Y));

  // F&ecirc;tes mobiles
    var DtPaques = dtpaques.JJMMAAAA("/");
    var DtLundiPaques = dtpaques.addDay(1).JJMMAAAA("/");
    var DtAscension  = dtpaques.addDay(39).JJMMAAAA("/");
    var DtPentecote  = dtpaques.addDay(49).JJMMAAAA("/");
    var DtLundiPentecote = dtpaques.addDay(50).JJMMAAAA("/");

  // F&ecirc;tes fixes
    var DtNoel       = "25/12/" + Y;
    var DtAn         = "01/01/" + Y;
    var DtTravail    = "01/05/" + Y;
    var DtArm2g      = "08/05/" + Y;
    var DtFNat       = "14/07/" + Y;
    var DtAssomption = "15/08/" + Y;
    var DtToussaint  = "01/11/" + Y;
    var DtArm1G      = "11/11/" + Y;

  // Informe l'utilisateur d'un &eacute;ventuel jour f&eacute;ri&eacute;
  if (DtDate == DtPaques) desc = "P&acirc;cques";
  if (DtDate == DtLundiPaques) desc = "Lundi de P&acirc;cques";
  else if (DtDate == DtAscension) desc = "Ascencion";
  else if (DtDate == DtPentecote) desc = "Pentec&ocirc;te";
  else if (DtDate == DtLundiPentecote) desc = "Lundi de Pentec&ocirc;te";
  else if (DtDate == DtNoel) desc = "No&euml;l";
  else if (DtDate == DtAn) desc = "Jour de l'An";
  else if (DtDate == DtTravail) desc = "F&ecirc;te du travail";
  else if (DtDate == DtArm2g) desc = "Armistice 1945";
  else if (DtDate == DtFNat) desc = "F&ecirc;te Nationale";
  else if (DtDate == DtAssomption) desc = "Assomption";
  else if (DtDate == DtToussaint) desc = "Toussaint";
  else if (DtDate == DtArm1G) desc = "Armistice 1918";
  
  return desc;
} //fin JourFerie

function TMGetPaques(year) {
  var A = year%19;
  var B = Math.floor(year/100);
  var C = year%100;
  var D = Math.floor(B/4);
  var E = B%4;
  var F = Math.floor((B+8)/25);
  var G = Math.floor((B-F+1)/3);
  var H = (19*A+B-D-G+15)%30;
  var I = Math.floor(C/4);
  var K = C%4;
  var L = (32+2*E+2*I-H-K)%7;
  var M = Math.floor((A+11*H+22*L)/451);
  var month = Math.floor((H+L-7*M+114)/31);
  var day = (H+L-7*M+114)%31;
  var dt = new Date(year,month-1,day+1);
  return dt;
}

Commentaire de enguerrangillet le 11/06/2008 11:09:13

Bonjour,

peux-tu poster ton fichier js et ton html, ou tout ce qui est nécessaire pour faire tourner ta page ?
Je ferai des tests dès que possible avec pour voir ce qui cloche.

Bonne journée.
Enguerran

Commentaire de tguerlus le 11/06/2008 11:34:16

j'allais demander la meme chose

Commentaire de glachant le 12/06/2008 10:42:15

OK :
Pour info, ma config, XP IE6 et 7



voilà le Calendrier.html :

=========================================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test calendrier</title>
<script type="text/javascript" src="IncClient/prototype_light.js"></script>
<script type="text/javascript" src="IncClient/dhtml_light.js"></script>
<script type="text/javascript" src="IncClient/dhtml_div_light.js"></script>
<script type="text/javascript" src="IncClient/window_dhtml_light.js"></script>
<script type="text/javascript" src="IncClient/Calendar.js"></script>
</head>
<body >
<div align="right">
<br/><br/><br/><br/><br/><br/><br/><br/><br/>
<FORM name=frmRech >
selectionner une date entre le 01/11/2005 et le 25/11/2005 ou le 05/12/2005 et le 13/01/2006
<INPUT id=DatePrevDeb maxLength=30 size=30 name=DatePrevDeb>
<INPUT onClick="Calendar.MPopUpCalendar(this, document.frmRech.DatePrevDeb, 'dd mmm yyyy','20051101&20051125^20051205&20060113',true)" type=button value=...>
<INPUT id=DatePrevFin maxLength=10 size=10 name=DatePrevFin>
<INPUT onClick="Calendar.MPopUpCalendar(this, document.frmRech.DatePrevFin, 'dd-mm-yyyy',null,true,false)" type=button value=...>
</FORM>
</div>
<script LANGUAGE="JavaScript">
var Calendar = new TCalendar("Calendar");
Calendar.MInitWeekDays(0,6);
</script>
</body>
</html>
<!--<script type="text/javascript" src="IncClient/Debug.js"></script>-->

======================================================================================
Le Calendar.js :
================
function TCalendar(id,position,x,y) {
//Attribut
this.AId = id;
this.AFixedX = (x==undefined)?-1:x; // x position (-1 if to appear below control)
this.AFixedY = (y==undefined)?-1:y; // y position (-1 if to appear below control)
this.APosition = (position==undefined)?"absolute":position;
this.AStartAt = 1; // 0 - sunday ; 1 - monday
this.AShowWeekNumber = 1; // 0 - don't show; 1 - show
this.AShowToday = 1; // 0 - don't show; 1 - show
this.AShowComment = 1; // 0 - don't show; 1 - show
this.AShowLegend = 1; // 0 - don't show; 1 - show
this.AStyleToday = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:center;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleCalendar = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:left;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleEntete = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:left;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleComment = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:center;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleLegend = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;text-align:center;font-size:9pt;color:white;font-family: Arial Verdana;cursor:default;padding:1px;z-index:99";
this.AStyleComposantOut = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleComposantOver = "border-left: #333333 1px solid;border-top: #333333 1px solid;border-right: #CAC9C8 1px solid;border-bottom: #CAC9C8 1px solid;background-color:#777777;font-size:9pt;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleCadrePopUp = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;padding:1px;z-index:99";
this.AStyleButtonPopUpOut = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonPopUpOver = "border-left: #333333 1px solid;border-top: #333333 1px solid;border-right: #CAC9C8 1px solid;border-bottom: #CAC9C8 1px solid;background-color:#777777;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";

this.AStyleCadreDay = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;padding:1px;z-index:99";
this.AStyleButtonDayOut = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#B9B8B3;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayOver = "border-left: #333333 1px solid;border-top: #333333 1px solid;border-right: #CAC9C8 1px solid;border-bottom: #CAC9C8 1px solid;background-color:#777777;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayHoliday = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#ACC14E;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayWeek = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#DF9F15;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDaySelected = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#7951AE;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayOld = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#51AE8D;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleButtonDayUnselected = "border-left: #CAC9C8 1px solid;border-top: #CAC9C8 1px solid;border-right: #333333 1px solid;border-bottom: #333333 1px solid;background-color:#73091F;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;cursor:pointer;padding:1px;z-index:99";
this.AStyleNumberWeek = "background-color:#A1A19F;font-size:9pt;text-align:center;color:white;font-family: Arial Verdana;padding:1px";
this.AStyleNameDay = "background-color:#A1A19F;font-size:9pt;font-weight:bold;text-align:center;color:black;font-family: Arial Verdana;padding:1px";

  this.ADaySpacing = 0;
this.ATypeAnim = 0;
this.AVitesseAnim = 7;
this.AImgDir = "/IncClient/images/"; // directory for images ... e.g. this.AImgDir="/img/"
this.ADayCloses = new Array([0]);

this.AGotoString = "Mois courant";
this.ATodayString = "Aujourd hui :";
this.AWeekString = "n°";

this.AScrollLeftMessage = "Cliquer pour passer au mois pr&eacute;c&eacute;dent. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.AScrollRightMessage = "Cliquer pour passer au mois suivant. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.AScrollLeftMessageYear = "Cliquer pour passer &agrave; l ann&eacute;e pr&eacute;c&eacute;dente. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.AScrollRightMessageYear = "Cliquer pour passer &agrave; l ann&eacute;e suivante. Maintenir le bouton de la souris enfonc&eacute; pour le d&eacute;filement automatique.";
this.ASelectMonthMessage = "Cliquer pour s&eacute;lectionner un mois.";
this.ASelectYearMessage = "Cliquer pour s&eacute;lectionner ann&eacute;e.";
this.ASelectDateMessage = "Choisir la date [date]."; // do not replace [date], it will be replaced by date.

this.AMonthSelected = "";
this.AYearSelected = "";
this.ADateSelected = "";
this.AOmonthSelected = "";
this.AOyearSelected = "";
this.AOdateSelected = "";
this.AMonthConstructed = false;
this.AYearConstructed = false;
this.AIntervalID1 = "";
this.AIntervalID2 = "";
this.ATimeoutID1 = "";
this.ATimeoutID2 = "";
this.ACtlToPlaceValue = null;
this.ACtlNow = null;
this.ADateFormat = "jj/mm/yyyy";
this.ANStartingYear = "";
this.ADayWeek = false;
this.ADayHoliday = false;
this.ABorne = null;

this.AToday = new Date();
this.ADateNow = this.AToday.getDate();
this.AMonthNow = this.AToday.getMonth();
this.AYearNow = this.AToday.getYear();
if (!MS) this.AYearNow += 1900;

this.ABShow = false;
this.ABPageLoaded=false;

this.AStrEaster = "P&acirc;ques";
this.AStrEasterMonday = "Lundi de P&acirc;ques";
this.AStrAscension = "Ascension";
this.AStrPentecostMonday = "Lundi de Pentec&ocirc;te";
this.AStrPentecost = "Pentec&ocirc;te";

this.AMonthName = new Array ("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet","Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
this.ADayName = (this.AStartAt==0)?new Array ("Dim","Lun","Mar","Mer","Jeu","Ven","Sam"):new Array ("Lun","Mar","Mer","Jeu","Ven","Sam","Dim");

//M&eacute;thodes:
this.MInit = TMInit;
this.MPopUpCalendar = TMPopUpCalendar;
this.MFormatDate = TMFormatDate;
this.MConstructCalendar = TMConstructCalendar;
this.MConstructDate = TMConstructDate;
this.MWeekNbr = TMWeekNbr;
this.MHideCalendar = TMHideCalendar;
this.MDecMonth = TMDecMonth;
this.MIncMonth = TMIncMonth;
this.MShowComment = TMShowComment;
this.MShowLegend = TMShowLegend;
this.MStartDecMonth = TMStartDecMonth;
this.MStartIncMonth = TMStartIncMonth;
this.MCloseCalendar = TMCloseCalendar;
this.MPopUpMonth = TMPopUpMonth;
this.MConstructMonth = TMConstructMonth;
this.MPopDownYear = TMPopDownYear;
this.MPopDownMonth = TMPopDownMonth;
this.MPopUpYear = TMPopUpYear;
this.MConstructYear = TMConstructYear;
this.MIncYear = TMIncYear;
this.MDecYear = TMDecYear;
this.MIncYearAuto = TMIncYearAuto;
this.MDecYearAuto = TMDecYearAuto;
this.MStartDecYear = TMStartDecYear;
this.MStartIncYear = TMStartIncYear;
this.MSelectYear = TMSelectYear;
this.MShowDefault = TMShowDefault;
this.MShowScroll = TMShowScroll;
this.MShowOpacity = TMShowOpacity;
this.MSetXY = TMSetXY;
   this.MInitWeekDays = TMInitWeekDays;
this.MJourFerie = TMJourFerie;
this.MGetPaques = TMGetPaques;

// Initialisation  
   this.MInit();
}

function TMInitWeekDays () {
  var i = 0;
  this.ADayCloses.clear();
while(arguments[i] != null)  
    this.ADayCloses.push(arguments[i++]);
}

function TMInit() {
var htmlText = "";
  var attStyle = "";

htmlText += "<div id='"+this.AId+"' width='"+((this.AShowWeekNumber==1)?250:220)+"'>";
htmlText += "<table border='0' cellpadding='0' cellspacing='0' width='"+((this.AShowWeekNumber==1)?250:220)+"'>";
htmlText += "<tr><td>";
htmlText += " <table id='"+this.AId+"_entete' width='100%'>";
htmlText += " <tr><td>";
htmlText += " <div id='"+this.AId+"_caption'>";
htmlText += " <table border='0' cellpadding='0' cellspacing='0'><tr>";
htmlText += " <td id='"+this.AId+"_spanLeft' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollLeftMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");clearInterval("+this.AId+".AIntervalID1);"+this.AId+".MShowComment(\"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartDecMonth()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MDecMonth();'><img id='"+this.AId+"_changeLeft' src='"+this.AImgDir+"FlecheGauche.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanRight' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollRightMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:clearInterval("+this.AId+".AIntervalID1);"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartIncMonth()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MIncMonth();'><img id='"+this.AId+"_changeRight' src='"+this.AImgDir+"FlecheDroite.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanMonth' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectMonthMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanMonthBas\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanMonthBas\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpMonth();'></td>";
htmlText += " <td id='"+this.AId+"_spanMonthBas' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectMonthMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanMonth\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanMonth\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpMonth();'><img id='"+this.IAd+"_changeMonth' src='"+this.AImgDir+"FlecheBas.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td>&nbsp;&nbsp;</td>";
htmlText += " <td id='"+this.AId+"_spanLeftYear' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollLeftMessageYear+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:clearInterval("+this.AId+".AIntervalID1);"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartDecYear()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MDecYearAuto();'><img id='"+this.AId+"_changeLeft' src='"+this.AImgDir+"FlecheGauche.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanRightYear' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.AScrollRightMessageYear+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:clearInterval("+this.AId+".AIntervalID1);set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");"+this.AId+".MShowComment(\"\");' onmousedown='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MStartIncYear()\",100);' onmouseup='clearTimeout("+this.AId+".ATimeoutID1);clearInterval("+this.AId+".AIntervalID1);' onclick='javascript:"+this.AId+".MIncYearAuto();'><img id='"+this.AId+"_changeRight' src='"+this.AImgDir+"FlecheDroite.gif' width='15' height='15' border='0' /></td>";
htmlText += " <td id='"+this.AId+"_spanYear' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectYearMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanYearBas\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanYearBas\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpYear();'></td>";
htmlText += " <td id='"+this.AId+"_spanYearBas' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\""+this.ASelectYearMessage+"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");set_style_div(\"id\",\""+this.AId+"_spanYear\",null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");set_style_div(\"id\",\""+this.AId+"_spanYear\",null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MPopUpYear();'><img id='"+this.IAd+"_changeYear' src='"+this.AImgDir+"FlecheBas.gif' width='15' heigth='15' border='0' /></td>";
if (this.AShowLegend == 1) {
   htmlText += " <td>&nbsp;&nbsp;</td>";
   htmlText += " <td id='"+this.AId+"_spanLegend' valign='middle' onmouseover='javascript:"+this.AId+".MShowComment(\"Afficher ou cacher les l&eacute;gendes\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOver+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");set_style_div(\"id\",this.id,null,\""+this.AStyleComposantOut+"\");' onclick='javascript:"+this.AId+".MShowLegend();'><b>&nbsp;?&nbsp;</b></td>";
   }  
htmlText += " </tr></table>";
htmlText += " </div>";
htmlText += " </td><td valign='middle' style='cursor:pointer'>";
htmlText += " <img src='"+this.AImgDir+"close.gif' width='15' height='13' border='0' alt='Fermer le calendrier' onclick='javascript:"+this.AId+".MHideCalendar();' />";
htmlText += " </td></tr>";
htmlText += " </table>";
htmlText += "</td></tr>";
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_content'></div>";
htmlText += "</td></tr>";

if (this.AShowToday==1) {
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_lblToday'>";
htmlText += this.ATodayString;
htmlText += " <a onmousemove='javascript:"+this.AId+".MShowComment(\""+this.AGotoString+"\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");' title='"+this.AGotoString+"' href='javascript:"+this.AId+".AMonthSelected="+this.AId+".AMonthNow;"+this.AId+".AYearSelected="+this.AId+".AYearNow;"+this.AId+".MConstructCalendar();'>";
htmlText += this.ADayName[(this.AToday.getDay()-this.AStartAt==-1)?6:(this.AToday.getDay()-this.AStartAt)]+", " + this.ADateNow + " " + this.AMonthName[this.AMonthNow] + " " + this.AYearNow + "</a>";
htmlText += " </div>";
htmlText += "</td></tr>";
}
if (this.AShowLegend == 1) {
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_legend'>";
htmlText += " <table width='100%' border='0' cellpadding='0' cellspacing='2'>";
     attStyle = (this.AStyleButtonDayHoliday.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayHoliday+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayHoliday+"\">Jours f&eacute;riers</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayWeek.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayWeek+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayWeek+"\">Jours ferm&eacute;s dans une semaine</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDaySelected.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDaySelected+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDaySelected+"\">Aujourd'hui</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayOld.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOld+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOld+"\">Jour s&eacute;lectionn&eacute;</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayUnselected.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayUnselected+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayUnselected+"\">Jours non s&eacute;lectionnables</td>";
htmlText += " </tr>";
     attStyle = (this.AStyleButtonDayOut.is_style())?"style":"class";
htmlText += " <tr>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOut+"\" width='15' height='10'>&nbsp;</td>";
htmlText += " <td "+attStyle+"=\""+this.AStyleButtonDayOut+"\">Jours normaux</td>";
htmlText += " </tr>";
htmlText += " </table>";
htmlText += " </div>";
htmlText += "</td></tr>";
}
if (this.AShowComment == 1) {
htmlText += "<tr><td align='center'>";
htmlText += " <div id='"+this.AId+"_comment'>";
htmlText += " </div>";
htmlText += "</td></tr>";
}

htmlText += "</table></div>";
htmlText += "<div id='"+this.AId+"_selectMonth' style='z-index:999;position:absolute;'></div>";
htmlText += "<div id='"+this.AId+"_selectYear' style='z-index:999;position:absolute;'></div>";

document.write (htmlText);

set_style_div("id",this.AId,null,this.AStyleCalendar);
set_position_div("id",this.AId,null,this.APosition);
set_style_div("id",this.AId+"_entete",null,this.AStyleEntete);
if (this.AShowToday==1) set_style_div("id",this.AId+"_lblToday",null,this.AStyleToday);
if (this.AShowComment==1) {
     set_style_div("id",this.AId+"_comment",null,this.AStyleComment);
     getElem("id",this.AId+"_comment").style.display = "none";
  }  
if (this.AShowLegend==1) {
    set_style_div("id",this.AId+"_legend",null,this.AStyleLegend);
    getElem("id",this.AId+"_legend").style.display = "none";
   set_style_div("id",this.AId+"_spanLegend",null,this.AStyleComposantOut);
  }  
set_style_div("id",this.AId+"_spanLeft",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanRight",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanLeftYear",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanRightYear",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanMonth",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanYear",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanYearBas",null,this.AStyleComposantOut);
set_style_div("id",this.AId+"_spanMonthBas",null,this.AStyleComposantOut);

this.AMonthConstructed=false;
this.AYearConstructed=false;

this.ABPageLoaded=true;
this.MHideCalendar();
}

function TMShowLegend () {
    if (getElem("id",this.AId+"_legend").style.display == "none")
      getElem("id",this.AId+"_legend").style.display = "block";
    else  
      getElem("id",this.AId+"_legend").style.display = "none";
}

function TMConstructCalendar () {
var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31);
var dateMessage;
var startDate = new Date (this.AYearSelected,this.AMonthSelected,1);
var endDate;
var numDaysInMonth;
var datePointer = 0;
var sHTML = "";
var sHint = "";
var sStyle = "";
var attStyle = "style";
var datetype = null;
  var jourferier = "";

if (this.AMonthSelected==1) {
endDate = new Date (this.AYearSelected,this.AMonthSelected+1,1);
endDate = new Date (endDate - (24*60*60*1000));
numDaysInMonth = endDate.getDate();
}
else numDaysInMonth = aNumDays[this.AMonthSelected];

dayPointer = startDate.getDay() - this.AStartAt;

if (dayPointer<0) dayPointer = 6;

sHTML += "<table id='"+this.AId+"_cadrejour' border='0' cellpadding='0' cellspacing='" + this.ADaySpacing + "' width='100%' ><tr>";

if (this.AShowWeekNumber==1) {
if (this.AStyleNumberWeek.is_style()) attStyle = "style";
else attStyle = "class";  
    sHTML += "<td width='27' "+attStyle+"='"+this.AStyleNumberWeek+"'><b>" + this.AWeekString + "</b></td>";
    sHTML += "<td width='1' align='center' rowspan='7' style='padding-left:2px;padding-right:2px'><img src='"+this.AImgDir+"divider.gif' width='1' height='100%' /></td>";
  }  

if (this.AStyleNameDay.is_style()) attStyle = "style";
else attStyle = "class";  
for (i=0; i<7; i++) {
    sHTML += "<td width='27' "+attStyle+"='"+this.AStyleNameDay+"'>"+this.ADayName[i]+"</td>";
  }

sHTML +="</tr><tr>";

if (this.AShowWeekNumber==1) {
if (this.AStyleNumberWeek.is_style()) attStyle = "style";
else attStyle = "class";
    sHTML += "<td align='center' "+attStyle+"='"+this.AStyleNumberWeek+"'>" + this.MWeekNbr(startDate) + "&nbsp;</td>";
  }  

for ( var i=1; i<=dayPointer;i++ ) {sHTML += "<td>&nbsp;</td>";}

for ( datePointer=1; datePointer<=numDaysInMonth; datePointer++ ) {
dayPointer++;
sHint = "";

sStyle = this.AStyleButtonDayOut;

     jourferier = this.MJourFerie(String(datePointer).fillPrevChar("0",2)+"/"+String(parseInt(this.AMonthSelected)+1).fillPrevChar("0",2)+"/"+this.AYearSelected);

if ((datePointer==this.ADateNow)&&(this.AMonthSelected==this.AMonthNow)&&(this.AYearSelected==this.AYearNow))
sStyle = this.AStyleButtonDaySelected;

if ((datePointer==this.AOdateSelected) && (this.AMonthSelected==this.AOmonthSelected) && (this.AYearSelected==this.AOyearSelected))
sStyle=this.AStyleButtonDayOld;

if (jourferier != "") {
sStyle=this.AStyleButtonDayHoliday;
sHint+=sHint==""?jourferier:"\n"+jourferier;
     }    

if (this.ADayCloses.is_in(dayPointer%7))
sStyle = this.AStyleButtonDayWeek;

     if (this.ABorne) {
       datetype = String(this.AYearSelected)+String(this.AMonthSelected+1).fillPrevChar("0",2)+String(datePointer).fillPrevChar("0",2);
       if (!this.ABorne.in_born(datetype))
sStyle=this.AStyleButtonDayUnselected;
     }  
    
var regexp= /\"/g;
sHint=sHint.replace(regexp,"&quot;");

dateMessage = "onmouseover='javascript:set_style_div(\"id\",this.id,null,\""+this.AStyleButtonDayOver+"\");"+this.AId+".MShowComment(\""+this.ASelectDateMessage.replace("[date]",this.MConstructDate(datePointer,this.AMonthSelected,this.AYearSelected))+"\");' onmouseout='javascript:set_style_div(\"id\",this.id,null,\""+sStyle+"\");"+this.AId+".MShowComment(\"\");' onclick='javascript:"+this.AId+".ADateSelected="+datePointer + ";"+this.AId+".MCloseCalendar();'";

if ((sStyle == this.AStyleButtonDayUnselected) ||
(sStyle == this.AStyleButtonDayHoliday && this.ADayHoliday) ||
(sStyle == this.AStyleButtonDayWeek && this.ADayWeek))
dateMessage = "onmouseover='javascript:"+this.AId+".MShowComment(\"Date non s&eacute;lectionnable\");' onmouseout='javascript:"+this.AId+".MShowComment(\"\");' ";

if (sStyle.is_style()) attStyle = "style";
else attStyle = "class";  

sHTML += "<td id='day_"+datePointer+"' "+dateMessage+" title=\"" + sHint + "\" "+attStyle+"='"+sStyle+"' >" + padZero(datePointer) + "</div>";
sHTML += "</td>";

sHTML += "";

if ((dayPointer+this.AStartAt) % 7 == this.AStartAt) {
sHTML += "</tr><tr>" ;
if ((this.AShowWeekNumber==1)&&(datePointer<numDaysInMonth)) {
     if (this.AStyleNumberWeek.is_style()) attStyle = "style";
    else attStyle = "class";  
     sHTML += "<td align='center' "+attStyle+"='"+this.AStyleNumberWeek+"'>" + (this.MWeekNbr(new Date(this.AYearSelected,this.AMonthSelected,datePointer+1))) + "&nbsp;</td>";
}
}
}

setCont("id",this.AId+"_content",null,sHTML);
setCont("id",this.AId+"_spanMonth",null,"&nbsp;"+this.AMonthName[this.AMonthSelected]+"&nbsp;");
setCont("id",this.AId+"_spanYear",null,"&nbsp;"+this.AYearSelected+"&nbsp;");
set_style_div("id",this.AId+"_cadrejour",null,this.AStyleCadreDay);
}

function TMShowComment(message) {
if (this.AShowComment == 1) {
    if (message != "") {
      getElem("id",this.AId+"_comment").style.display = "block";
      setCont("id",this.AId+"_comment",null,message);
    }
    else getElem("id",this.AId+"_comment").style.display = "none";  
  }  
}

function TMFormatDate(format) {
return (this.ADateFormat.split(format).length < 3)?"":format;
}

function TMPopUpCalendar(ctl,ctl2,format,borne,jourfermer,jourferier) {
var leftpos=-200;
var toppos=0;
var formatChar = " ";
var aFormat;
var tokensChanged = 0;
var aDate;

  this.ABorne = (borne == undefined || borne == null)?null:borne;
this.ADayWeek   = (jourfermer == undefined || jourfermer == null)?false:jourfermer;
this.ADayHoliday   = (jourferier == undefined || jourferier == null)?false:jourferier;

if (this.ABPageLoaded)
{
if (!is_visible_div("id",this.AId)) {
this.ACtlToPlaceValue = ctl2;
this.ADateFormat = format;

formatChar = this.MFormatDate(" ") +
this.MFormatDate("/") +
this.MFormatDate(".") +
this.MFormatDate("-");

tokensChanged = 0;

if ( formatChar != "" ) {
aFormat = this.ADateFormat.split(formatChar);
aData = this.ACtlToPlaceValue.value.split(formatChar);
for (i=0;i<3;i++) {

if ((aFormat[i].toLowerCase()=="d") || (aFormat[i].toLowerCase()=="dd")) {
this.ADateSelected = parseInt(aData[i], 10);
tokensChanged ++;
}
else if ((aFormat[i].toLowerCase()=="m") || (aFormat[i].toLowerCase()=="mm")) {
this.AMonthSelected = parseInt(aData[i], 10) - 1;
tokensChanged ++;
}
else if (aFormat[i].toLowerCase()=="mmm") {
this.AMonthSelected= parseInt((aData[i])?aData[i].getNumMonth():null)-1;
tokensChanged ++;
}
else if (aFormat[i].toLowerCase()=="yyyy") {
this.AYearSelected = parseInt(aData[i], 10);
tokensChanged ++;
}
}
}
if ((tokensChanged!=3)||isNaN(this.ADateSelected)||isNaN(this.AMonthSelected)||isNaN(this.AYearSelected)) {
this.ADateSelected = this.ADateNow;
this.AMonthSelected = this.AMonthNow;
this.AYearSelected = this.AYearNow;
}
this.AOdateSelected = this.ADateSelected;
this.AOmonthSelected = this.AMonthSelected;
this.AOyearSelected = this.AYearSelected;


this.MConstructCalendar ();
this.ABShow = true;

this.MSetXY();
      
switch(this.ATypeAnim) {
case 0: this.MShowDefault();break;
case 1 : this.MShowScroll("right");break;
case 2: this.MShowScroll("left");break;
case 3: this.MShowScroll("top");break;
case 4: this.MShowScroll("bottom");break;
case 5: this.MShowOpacity();break;
default: this.MShowDefault();break;
}
}
else {
if (this.ACtlNow != ctl) {
        hide_div("id",this.AId);
        this.MPopUpCalendar(ctl,ctl2,format,borne,jourfermer,jourferier);
      }
      else this.MHideCalendar();
}
this.ACtlNow = ctl;
}
}

function TMSetXY() {
var x = get_x_obj(this.ACtlToPlaceValue);
var y = get_y_obj(this.ACtlToPlaceValue)+this.ACtlToPlaceValue.offsetHeight+2;
var l = get_l_div("id",this.AId);
var h = get_h_div("id",this.AId);
if ((x+l) >= (left_fenetre()+largeur_fenetre()))
x = left_fenetre()+largeur_fenetre()-l-(MS?33:0);
if ((y+h) >= (top_fenetre()+hauteur_fenetre()))
y = top_fenetre()+hauteur_fenetre()-h;
set_x_div("id",this.AId,null,(this.AFixedX==-1)?x:this.AFixedX);
set_y_div("id",this.AId,null,(this.AFixedY==-1)?y:this.AFixedY);
}

function TMShowDefault() {
show_div("id",this.AId);
}

function TMShowScroll(direction) {
  move_clip_open("id",this.AId,null,direction,this.AVitesseAnim,3,0,"");
}

function TMShowOpacity() {
show_div("id",this.AId);
if (!OP) opacity_open_div("id",this.AId,null,0.15,this.AVitesseAnim,"");
}

function TMHideCalendar() {
if (getElem("id",this.AId+"_selectMonth")) hide_div("id",this.AId+"_selectMonth");
if (getElem("id",this.AId+"_selectYear")) hide_div("id",this.AId+"_selectYear");
  
switch(this.ATypeAnim) {
case 0: hide_div("id",this.AId);break;
case 1: move_clip_close("id",this.AId,null,"left",this.AVitesseAnim,3,0,"");break;
case 2: move_clip_close("id",this.AId,null,"right",this.AVitesseAnim,3,0,"");break;
case 3: move_clip_close("id",this.AId,null,"bottom",this.AVitesseAnim,3,0,"");break;
case 4: move_clip_close("id",this.AId,null,"top",this.AVitesseAnim,3,0,"");break;
case 5: if (!OP) opacity_close_div("id",this.AId,null,0.15,this.AVitesseAnim,"hide_div(\"id\",\""+this.AId+"\");");break;
}
}

function padZero(num) {
return (num < 10)? '0' + num : num ;
}

function TMConstructDate(d,m,y)
{
sTmp = this.ADateFormat;
sTmp = sTmp.replace ("dd","<e>");
sTmp = sTmp.replace ("d","<d>");
sTmp = sTmp.replace ("<e>",padZero(d));
sTmp = sTmp.replace ("<d>",d);
sTmp = sTmp.replace ("mmm","<o>");
sTmp = sTmp.replace ("mm","<n>");
sTmp = sTmp.replace ("m","<m>");
sTmp = sTmp.replace ("<m>",m+1);
sTmp = sTmp.replace ("<n>",padZero(m+1));
sTmp = sTmp.replace ("<o>",this.AMonthName[m]);
return sTmp.replace ("yyyy",y);
}

function TMCloseCalendar() {
this.MHideCalendar();
this.ACtlToPlaceValue.value = this.MConstructDate(this.ADateSelected,this.AMonthSelected,this.AYearSelected);
}

function TMStartDecMonth() {this.AIntervalID1 = setInterval(this.AId+".MDecMonth()",80);}

function TMStartIncMonth() {this.AIntervalID1 = setInterval(this.AId+".MIncMonth()",80);}

function TMStartDecYear() {this.AIntervalID1 = setInterval(this.AId+".MDecYearAuto()",80);}

function TMStartIncYear() {this.AIntervalID1 = setInterval(this.AId+".MIncYearAuto()",80);}

function TMIncMonth () {
this.AMonthSelected++;
if (this.AMonthSelected>11) {
this.AMonthSelected=0;
this.AYearSelected++;
}
this.MConstructCalendar();
}

function TMDecMonth () {
this.AMonthSelected--;
if (this.AMonthSelected<0) {
this.AMonthSelected=11;
this.AYearSelected--;
}
this.MConstructCalendar();
}

function TMIncYearAuto () {
this.AYearSelected++;
this.MConstructCalendar();
}

function TMDecYearAuto () {
this.AYearSelected--;
this.MConstructCalendar();
}

function TMConstructMonth() {
var sHTML = "";
var sName = "";

this.MPopDownYear();
if (!this.AMonthConstructed) {
sHTML = "";
for (i=0; i<12; i++) {
sName = this.AMonthName[i];
if (i==this.AMonthSelected){
sName = "<b>" + sName + "</b>";
}
sHTML += "<tr><td id='"+this.AId+"_m" + i + "' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onclick='"+this.AId+".AMonthConstructed=false;"+this.AId+".AMonthSelected=" + i + ";"+this.AId+".MConstructCalendar();"+this.AId+".MPopDownMonth();event.cancelBubble=true;'>&nbsp;" + sName + "&nbsp;</td></tr>";
}

setCont("id",this.AId+"_selectMonth",null,"<table id='"+this.AId+"_cadrepopupmonth' width='70' cellspacing='0' onmouseover='clearTimeout("+this.AId+".ATimeoutID1);' onmouseout='clearTimeout("+this.AId+".ATimeoutID1);"+this.AId+".ATimeoutID1=setTimeout(\""+this.AId+".MPopDownMonth()\",100);event.cancelBubble=true;'>" + sHTML + "</table>");
set_style_div("id",this.AId+"_cadrepopupmonth",null,this.AStyleCadrePopUp);
for (i=0; i<12; i++)
set_style_div("id",this.AId+"_m" + i,null,this.AStyleButtonPopUpOut);

this.AMonthConstructed=true;
}
}

function TMPopUpMonth() {
this.MConstructMonth();
set_x_div("id",this.AId+"_selectMonth",null,get_x_div("id",this.AId+"_spanMonth"));
set_y_div("id",this.AId+"_selectMonth",null,get_y_div("id",this.AId+"_spanMonth")+get_h_div("id",this.AId+"_spanMonth"));
show_div("id",this.AId+"_selectMonth");
}

function TMPopDownMonth() {hide_div("id",this.AId+"_selectMonth");}

function TMIncYear() {
var newYear = "";
var txtYear = "";

for (i=0; i<7; i++){
newYear = (i+this.ANStartingYear)+1;
if (newYear==this.AYearSelected) txtYear = "&nbsp;<b>" + newYear + "</b>&nbsp;";
else txtYear = "&nbsp;" + newYear + "&nbsp;";
setCont("id",this.AId+"_y"+i,null,txtYear);
}
this.ANStartingYear ++;
this.ABShow=true;
}

function TMDecYear() {
var newYear = "";
var txtYear = "";

for (i=0; i<7; i++){
newYear = (i+this.ANStartingYear)-1;
if (newYear==this.AYearSelected) txtYear = "&nbsp;<b>" + newYear + "</b>&nbsp;";
else txtYear = "&nbsp;" + newYear + "&nbsp;";
setCont("id",this.AId+"_y"+i,null,txtYear);
}
this.ANStartingYear --;
this.ABShow=true;
}

function TMSelectYear(nYear) {
this.AYearSelected=parseInt(nYear+this.ANStartingYear);
this.AYearConstructed=false;
this.MConstructCalendar();
this.MPopDownYear();
}

function TMConstructYear() {
var sHTML = "";
var sName = "";
var j = 0;

this.MPopDownMonth();

if (!this.AYearConstructed) {
sHTML = "<tr><td id='"+this.AId+"_moins' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='clearInterval("+this.AId+".AIntervalID1);set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onmousedown='clearInterval("+this.AId+".AIntervalID1);"+this.AId+".AIntervalID1=setInterval(\""+this.AId+".MDecYear()\",30);' onmouseup='clearInterval("+this.AId+".AIntervalID1);'>-</td></tr>";
j = 0;
this.ANStartingYear = this.AYearSelected-3;
for (i=(this.AYearSelected-3); i<=(this.AYearSelected+3); i++) {
sName = i;
if (i==this.AYearSelected){
sName = "<b>" + sName + "</b>";
}
sHTML += "<tr><td id='"+this.AId+"_y" + j + "' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onclick='"+this.AId+".MSelectYear("+j+");event.cancelBubble=true'>" + sName + "</td></tr>";
j ++;
}

sHTML += "<tr><td id='"+this.AId+"_plus' onmouseover='set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOver+"\");' onmouseout='clearInterval("+this.AId+".AIntervalID2);set_style_div(\"id\",this.id,null,\""+this.AStyleButtonPopUpOut+"\");' onmousedown='clearInterval("+this.AId+".AIntervalID2);"+this.AId+".AIntervalID2=setInterval(\""+this.AId+".MIncYear()\",30);' onmouseup='clearInterval("+this.AId+".AIntervalID2);'>+</td></tr>";

setCont("id",this.AId+"_selectYear",null,"<table id='"+this.AId+"_cadrepopupyear' width='44' onmouseover='clearTimeout("+this.AId+".ATimeoutID2);' onmouseout='clearTimeout("+this.AId+".ATimeoutID2);"+this.AId+".ATimeoutID2=setTimeout(\""+this.AId+".MPopDownYear()\",100);' cellspacing='0'>" + sHTML + "</table>");
set_style_div("id",this.AId+"_cadrepopupyear",null,this.AStyleCadrePopUp);
set_style_div("id",this.AId+"_moins",null,this.AStyleButtonPopUpOut);
set_style_div("id",this.AId+"_plus",null,this.AStyleButtonPopUpOut);
j=0;
for (i=(this.AYearSelected-3); i<=(this.AYearSelected+3); i++)
set_style_div("id",this.AId+"_y" + (j++),null,this.AStyleButtonPopUpOut);

this.AYearConstructed = true;
}
}

function TMPopDownYear() {
clearInterval(this.AIntervalID1);
clearTimeout(this.ATimeoutID1);
clearInterval(this.AIntervalID2);
clearTimeout(this.ATimeoutID2);
hide_div("id",this.AId+"_selectYear");
}

function TMPopUpYear() {
this.MConstructYear();
set_x_div("id",this.AId+"_selectYear",null,get_x_div("id",this.AId+"_spanYear"));
set_y_div("id",this.AId+"_selectYear",null,get_y_div("id",this.AId+"_spanYear")+get_h_div("id",this.AId+"_spanYear"));
show_div("id",this.AId+"_selectYear");
}

/*** calendar ***/
function TMWeekNbr(n) {
var year = n.getFullYear();
var month = n.getMonth() + 1;
var day = (this.AStartAt == 0)?n.getDate() + 1:n.getDate();

var a = Math.floor((14-month) / 12);
var y = year + 4800 - a;
var m = month + 12 * a - 3;
var b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
var J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
var d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
var L = Math.floor(d4 / 1460);
var d1 = ((d4 - L) % 365) + L;
var week = Math.floor(d1/7) + 1;

return week;
}

/*----------------------------------------------------------------------------*/
// Teste si une date est un jour f&eacute;ri&eacute;
/*----------------------------------------------------------------------------*/
function TMJourFerie(DtDate) {
    var Y = DtDate.substr(6);
    var desc = "";
    var dtpaques = this.MGetPaques(parseInt(Y));

  // F&ecirc;tes mobiles
    var DtPaques = dtpaques.JJMMAAAA("/");
    var DtLundiPaques = dtpaques.addDay(1).JJMMAAAA("/");
    var DtAscension  = dtpaques.addDay(39).JJMMAAAA("/");
    var DtPentecote  = dtpaques.addDay(49).JJMMAAAA("/");
    var DtLundiPentecote = dtpaques.addDay(50).JJMMAAAA("/");

  // F&ecirc;tes fixes
    var DtNoel       = "25/12/" + Y;
    var DtAn         = "01/01/" + Y;
    var DtTravail    = "01/05/" + Y;
    var DtArm2g      = "08/05/" + Y;
    var DtFNat       = "14/07/" + Y;
    var DtAssomption = "15/08/" + Y;
    var DtToussaint  = "01/11/" + Y;
    var DtArm1G      = "11/11/" + Y;

  // Informe l'utilisateur d'un &eacute;ventuel jour f&eacute;ri&eacute;
  if (DtDate == DtPaques) desc = "P&acirc;cques";
  if (DtDate == DtLundiPaques) desc = "Lundi de P&acirc;cques";
  else if (DtDate == DtAscension) desc = "Ascencion";
  else if (DtDate == DtPentecote) desc = "Pentec&ocirc;te";
  else if (DtDate == DtLundiPentecote) desc = "Lundi de Pentec&ocirc;te";
  else if (DtDate == DtNoel) desc = "No&euml;l";
  else if (DtDate == DtAn) desc = "Jour de l'An";
  else if (DtDate == DtTravail) desc = "F&ecirc;te du travail";
  else if (DtDate == DtArm2g) desc = "Armistice 1945";
  else if (DtDate == DtFNat) desc = "F&ecirc;te Nationale";
  else if (DtDate == DtAssomption) desc = "Assomption";
  else if (DtDate == DtToussaint) desc = "Toussaint";
  else if (DtDate == DtArm1G) desc = "Armistice 1918";
  
  return desc;
} //fin JourFerie

function TMGetPaques(year) {
  var A = year%19;
  var B = Math.floor(year/100);
  var C = year%100;
  var D = Math.floor(B/4);
  var E = B%4;
  var F = Math.floor((B+8)/25);
  var G = Math.floor((B-F+1)/3);
  var H = (19*A+B-D-G+15)%30;
  var I = Math.floor(C/4);
  var K = C%4;
  var L = (32+2*E+2*I-H-K)%7;
  var M = Math.floor((A+11*H+22*L)/451);
  var month = Math.floor((H+L-7*M+114)/31);
  var day = (H+L-7*M+114)%31;
  var dt = new Date(year,month-1,day+1);
  return dt;
}
=======================================================================================
le dhtml_div_light.js :
=======================
function hide_div(p1,p2,p3) {
if(DOM || MS) getElem(p1,p2,p3).style.visibility = "hidden";
if(NS) getElem(p1,p2,p3).visibility = "hide";
}

function show_div(p1,p2,p3) {
if(DOM || MS) getElem(p1,p2,p3).style.visibility = "visible";
if(NS) getElem(p1,p2,p3).visibility = "show";
}

function is_visible_div(p1,p2,p3) {
if (getElem(p1,p2,p3)) {
if(DOM || MS) return (getElem(p1,p2,p3).style.visibility == "visible");
if(NS) return (getElem(p1,p2,p3).visibility == "show");
}
return true;
}

function get_parent_div(p1,p2,p3) {
return getElem(p1,p2,p3).offsetParent;
}

function get_parent_obj(obj) {
return obj.offsetParent;
}

function get_x_div(p1,p2,p3) {
return get_x_obj(getElem(p1,p2,p3));
}

function get_x_obj(obj) {
if (obj.tagName == "BODY") return parseInt(obj.offsetLeft);
   else return get_x_obj(get_parent_obj(obj)) + parseInt(obj.offsetLeft);
}

function get_y_div(p1,p2,p3) {
return get_y_obj(getElem(p1,p2,p3));
}

function get_y_obj(obj) {
if (obj.tagName == "BODY") return parseInt(obj.offsetTop);
   else return get_y_obj(get_parent_obj(obj)) + parseInt(obj.offsetTop);
}

function get_h_div(p1,p2,p3) {
if(!DOM && MS) return parseInt(getElem(p1,p2,p3).offsetHeight);
else return parseInt(getElem(p1,p2,p3).offsetHeight);
}

function get_l_div(p1,p2,p3) {
if(!DOM && MS) return parseInt(getElem(p1,p2,p3).offsetWidth);
else return parseInt(getElem(p1,p2,p3).offsetWidth);
}

function set_x_div(p1,p2,p3,x) {
if(DOM || MS) getElem(p1,p2,p3).style.left = x;
else {
if (OP) getElem(p1,p2,p3).style.pixelLeft = x;
else if(NS) getElem(p1,p2,p3).left = x;
}
}

function set_y_div(p1,p2,p3,y) {
if(DOM || MS) getElem(p1,p2,p3).style.top = y;
else {
if (OP) getElem(p1,p2,p3).style.pixelTop = y;
else if(NS) getElem(p1,p2,p3).top = y;
}
}

function set_h_div(p1,p2,p3,h) {
if(DOM || MS) getElem(p1,p2,p3).style.height = h;
else {
if (OP) getElem(p1,p2,p3).style.pixelHeight = h;
else if(NS) getElem(p1,p2,p3).height = h;
}
}

function set_l_div(p1,p2,p3,l) {
if(DOM || MS) getElem(p1,p2,p3).style.width = l;
else {
if (OP) getElem(p1,p2,p3).style.pixelWidth = l;
else if(NS) getElem(p1,p2,p3).width = l;
}
}

function set_style_div(p1,p2,p3,style) {
if (!OP) {
if (style.is_style()) getElem(p1,p2,p3).style.cssText = style;
else if (style.is_class()) set_class_div(p1,p2,p3,style);
}
else {
if (style.is_style()) getElem(p1,p2,p3).setAttribute("style",style);
else if (style.is_class()) set_class_div(p1,p2,p3,style);
}
}

function set_class_div(p1,p2,p3,classe) {
if (classe.is_class()) getElem(p1,p2,p3).className = classe;
else if (classe.is_style()) set_style_div(p1,p2,p3,classe);
}

function set_position_div(p1,p2,p3,position) {getElem(p1,p2,p3).style.position = position;}

function set_opacity_div(p1,p2,p3,opacity) {
if (DOM && !MS && !OP) getElem(p1,p2,p3).style.MozOpacity = opacity;
else if (MS) getElem(p1,p2,p3).style.filter = "alpha(opacity = "+opacity*100+")";
}

function set_clip_div(p1,p2,p3,l,r,t,b) {
if(DOM || MS)
   getElem(p1,p2,p3).style.clip = "rect(" + t + " " + r + " " + b + " " + l + ")";
if(NS)
  getElem(p1,p2,p3).clip = "rect(" + t + " " + r + " " + b + " " + l + ")";
}

function move_clip_open_div(p1,p2,p3,x,y,dir,l,pas,speed,marge,last_action) {
switch (dir)
{
case "left":
set_clip_div(p1,p2,p3,'auto',(l-marge),'auto','auto');
set_x_div(p1,p2,p3,x);
break;
case "right":
set_clip_div(p1,p2,p3,(l-marge),'auto','auto','auto');
set_x_div(p1,p2,p3,x);
break;
case "top":
set_clip_div(p1,p2,p3,'auto','auto','auto',(l-marge));
set_y_div(p1,p2,p3,y);
break;
case "bottom":
set_clip_div(p1,p2,p3,'auto','auto',(l-marge),'auto');
set_y_div(p1,p2,p3,y);
break;
}
show_div(p1,p2,p3);
move_clip_open_div_rec(p1,p2,p3,x,y,dir,l,pas,marge,speed,last_action);
}

function move_clip_open(p1,p2,p3,dir,pas,speed,marge,last_action) {
var l = (dir == "right" || dir == "left")?get_l_div(p1,p2,p3):get_h_div(p1,p2,p3);
var x = (dir == "right" || dir == "left")?((dir == "left")?l:0)+get_x_div(p1,p2,p3)-marge:get_x_div(p1,p2,p3);
var y = (dir == "right" || dir == "left")?get_y_div(p1,p2,p3):((dir == "top")?l:0)+get_y_div(p1,p2,p3)-marge;
move_clip_open_div(p1,p2,p3,x,y,dir,l,pas,speed,marge,last_action)
}

function move_clip_open_div_rec(p1,p2,p3,x,y,dir,l,pas,dl,speed,last_action) {
if (Math.abs(l-(dl+(l/pas))) < (l/pas)) dl = l;
else dl += l/pas;
switch (dir)
{
case "left":
set_x_div(p1,p2,p3,x-dl);
set_clip_div(p1,p2,p3,'auto',dl,'auto','auto');
break;
case "right":
set_x_div(p1,p2,p3,x-l+dl);
set_clip_div(p1,p2,p3,l-dl,'auto','auto','auto');
break;
case "top":
set_y_div(p1,p2,p3,y-dl);
set_clip_div(p1,p2,p3,'auto','auto','auto',dl);
break;
case "bottom":
set_y_div(p1,p2,p3,y-l+dl);
set_clip_div(p1,p2,p3,'auto','auto',l-dl,'auto');
break;
}

if (dl != l)
setTimeout("move_clip_open_div_rec('" + p1 + "','" + p2 + "'," + p3 + "," + x + "," + y + ",'" + dir + "'," + l + "," + pas + "," + dl + "," + speed + ",'" + last_action + "')",speed);
else
eval(last_action);
}

function move_clip_close_div(p1,p2,p3,x,y,dir,l,pas,speed,marge,last_action) {
set_clip_div(p1,p2,p3,'auto','auto','auto','auto');
switch (dir)
{
case "left":
set_x_div(p1,p2,p3,x);
break;
case "right":
set_x_div(p1,p2,p3,x);
break;
case "top":
set_y_div(p1,p2,p3,y);
break;
case "bottom":
set_y_div(p1,p2,p3,y);
break;
}
move_clip_close_div_rec(p1,p2,p3,x,y,dir,l,pas,0,speed,marge,last_action);
}

function move_clip_close(p1,p2,p3,dir,pas,speed,marge,last_action) {
var l = (dir == "right" || dir == "left")?get_l_div(p1,p2,p3):get_h_div(p1,p2,p3);
var x = get_x_div(p1,p2,p3);
var y = get_y_div(p1,p2,p3);
move_clip_close_div(p1,p2,p3,x,y,dir,l,pas,speed,marge,last_action)
}

function move_clip_close_div_rec(p1,p2,p3,x,y,dir,l,pas,dl,speed,marge,last_action) {
var lm = l - marge;
if (Math.abs(lm-(dl+(lm/pas))) < (lm/pas)) dl = lm;
else dl += lm/pas;
switch (dir)
{
case "left":
set_x_div(p1,p2,p3,x-dl);
set_clip_div(p1,p2,p3,dl,'auto','auto','auto');
break;
case "right":
//set_x_div(p1,p2,p3,x-l+dl);
set_clip_div(p1,p2,p3,dl,'auto','auto','auto');
break;
case "top":
set_y_div(p1,p2,p3,y-dl);
set_clip_div(p1,p2,p3,'auto','auto',dl,'auto');
break;
case "bottom":
//set_y_div(p1,p2,p3,y-l+dl);
set_clip_div(p1,p2,p3,'auto','auto',dl,'auto');
break;
}

if (dl != lm)
setTimeout("move_clip_close_div_rec('" + p1 + "','" + p2 + "'," + p3 + "," + x + "," + y + ",'" + dir + "'," + l + "," + pas + "," + dl + "," + speed + "," + marge + ",'" +  last_action + "')",speed);
else {
hide_div(p1,p2,p3);
eval(last_action);
}
}

function opacity_open_div(p1,p2,p3,dl,speed,last_action) {
opacity_open_div_rec(p1,p2,p3,0.05,dl,speed,last_action);
}

function opacity_open_div_rec(p1,p2,p3,opacity,dl,speed,last_action) {
set_opacity_div(p1,p2,p3,opacity);
opacity += dl;

if (opacity < 1)
setTimeout("opacity_open_div_rec('" + p1 + "','" + p2 + "'," + p3 + "," + opacity + "," + dl + "," + speed + ",'" + last_action + "')",speed);
else
eval(last_action);
}

function opacity_close_div(p1,p2,p3,dl,speed,last_action) {
opacity_close_div_rec(p1,p2,p3,0.95,dl,speed,last_action);
}

function opacity_close_div_rec(p1,p2,p3,opacity,dl,speed,last_action) {
set_opacity_div(p1,p2,p3,opacity);
opacity -= dl;

if (opacity > 0)
setTimeout("opacity_close_div_rec('" + p1 + "','" + p2 + "'," + p3 + "," + opacity + "," + dl + "," + speed + ",'" + last_action + "')",speed);
else {
//hide_div(p1,p2,p3);
eval(last_action);
}
}

===================================================================================
le dhtml_light.js :
===================
var DHTML = 0, DOM = 0, MS = 0, NS = 0, OP = 0;

function DHTML_init() {
if (window.opera) OP = 1;
if(document.getElementById) {DHTML = 1;DOM = 1;}
if(document.all && !OP) {DHTML = 1;MS = 1;}
if(document.layers && !OP) {DHTML = 1;NS = 1;}
}

function getElem(p1,p2,p3) {
var Elem;
if(DOM) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.getElementById(p2) == "object") Elem = document.getElementById(p2);
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document.getElementsByName(p2) == "object") Elem = document.getElementsByName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.getElementsByTagName(p2) == "object" ||
        (OP && typeof document.getElementsByTagName(p2) == "function"))
     Elem = document.getElementsByTagName(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
}
else if(MS) {
   if(p1.toLowerCase()=="id") {
     if (typeof document.all[p2] == "object") Elem = document.all[p2];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="tagname") {
     if (typeof document.all.tags(p2) == "object") Elem = document.all.tags(p2)[p3];
     else Elem = void(0);
     return(Elem);
   }
   else if(p1.toLowerCase()=="name") {
     if (typeof document[p2] == "object") Elem = document[p2];
     else Elem = void(0);
     return(Elem);
   }
   else return void(0);
}
else if(NS) {
   if(p1.toLowerCase()=="id" || p1.toLowerCase()=="name") {
if (typeof document[p2] == "object") Elem = document[p2];
else Elem = void(0);
return(Elem);
   }
   else if(p1.toLowerCase()=="index") {
if (typeof document.layers[p2] == "object") Elem = document.layers[p2];
else Elem = void(0);
return(Elem);
   }
   else return void(0);
}
}

function getCont(p1,p2,p3) {
   if(DOM || MS) return getElem(p1,p2,p3).innerHTML;
   else return "";
}

function setCont(p1,p2,p3,p4) {
if (getElem(p1,p2,p3)) {
   if(DOM || MS) getElem(p1,p2,p3).innerHTML = p4;
   else if(NS && getElem(p1,p2,p3)) {
     getElem(p1,p2,p3).document.open();
     getElem(p1,p2,p3).document.write(p4);
     getElem(p1,p2,p3).document.close();
   }
}
}

function addCont(p1,p2,p3,p4) {
if (getElem(p1,p2,p3)) {
   if(DOM || MS) getElem(p1,p2,p3).innerHTML += p4;
   else if(NS && getElem(p1,p2,p3)) getElem(p1,p2,p3).document.write(p4);
}
}

DHTML_init();

======================================================================================
le prototype_light.js:
======================
Date.prototype.addDay = function (day) {
  var a = new Date(this.getFullYear(),this.getMonth(),this.getDate());
  a.setDate(this.getDate()+day)
  return a;
}

Date.prototype.JJMMAAAA = function (separator) {
  return String(this.getDate()).fillPrevChar("0",2) + separator +
    String(this.getMonth()+1).fillPrevChar("0",2) + separator +
    this.getFullYear();
}

Array.prototype.clear = function () {
  while (this[0]) this.pop();
}

Array.prototype.is_in = function (obj) {
var i = 0;
var rep = false;
while (this[i] != null && !rep) rep = (this[i++]==obj);
return rep;
}

String.prototype.is_style = function () {
var regle = /^([a-zA-Z-]{3,}:[a-zA-Z0-9 -=,:.#%()\/']+[;]?)+$/;
return regle.test(this);
}

String.prototype.is_class = function () {
var regle = /^[a-zA-Z_]{1}[a-zA-Z0-9_]*$/;
return regle.test(this);
}

String.prototype.RLtrim = function () {
return this.replace(/(^\s*)|(\s*$)/g,"");
}

String.prototype.splitEns = function () {
  var tabReturn = new Array();
  var tab1 = this.split("^");
  var i = 0;
  while (tab1[i]) tabReturn.push(tab1[i++].split("&"));
return tabReturn;
}

String.prototype.in_born = function (valeur) {
  var tabEns = this.splitEns();
  var nbr = Number(valeur.replace(",","."));
  var borneinf,bornesup;
  var i = 0,rep = false;
  while (tabEns[i] && !rep) {
    if (tabEns[i][0] == "-inf") borneinf = -Infinity;
    else borneinf = tabEns[i][0];
    if (tabEns[i][1] == "+inf") bornesup = Infinity;
    else bornesup = tabEns[i][1];
    rep = rep || (nbr >= borneinf && nbr <= bornesup);
    i++;
  }  
return rep;
}

String.prototype.getFullYear = function  () {
  var anneenum = Number(this);
  if (anneenum >= 0 &&  anneenum <= 69) return (new String(Math.floor(((new Date).getFullYear())/100)))+this;
  else return (new String(Math.floor(((new Date).getFullYear())/100)-1))+this;
}

String.prototype.getNumMonth = function  () {
  if (this.toLowerCase() == "janvier") return "01";
  else if (this == "f&eacute;vrier" || this == "F&eacute;vrier" || this == "FEVRIER") return "02";
  else if (this.toLowerCase() == "mars") return "03";
  else if (this.toLowerCase() == "avril") return "04";
  else if (this.toLowerCase() == "mai") return "05";
  else if (this.toLowerCase() == "juin") return "06";
  else if (this.toLowerCase() == "juillet") return "07";
  else if (this == "ao&ucirc;t" || this == "Ao&ucirc;t" || this == "AOUT") return "08";
  else if (this.toLowerCase() == "septembre") return "09";
  else if (this.toLowerCase() == "octobre") return "10";
  else if (this.toLowerCase() == "novembre") return "11";
  else if (this == "d&eacute;cembre" || this == "D&eacute;cembre" || this == "DECEMBRE") return "12";
  else return "";
}

String.prototype.fillPrevChar = function  (caract,nbr) {
  return (this.length < nbr)?caract+this.fillPrevChar(caract,nbr-1):this;
}

String.prototype.fillLastChar = function  (caract,nbr) {
  return (this.length < nbr)?this.fillLastChar(caract,nbr-1)+caract:this;
}
==================================================================================
le window_dhtm_light.js:
========================
function largeur_fenetre() {
if (window.innerWidth) return window.innerWidth;
else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
else return 0;
}

function hauteur_fenetre() {
if (window.innerHeight) return window.innerHeight  ;
else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
else return 0;
}

function top_fenetre() {
if(DOM) {
   if(MS) return document.body.scrollTop;
   else return window.pageYOffset;
}
else {
if (NS) return window.pageYOffset;
else if (MS) return document.body.scrollTop;
else return void(0);
}
}

function left_fenetre() {
if(DOM) {
   if (MS) return document.body.scrollLeft;
   else return window.pageXOffset;
}
else {
if (NS) return window.pageXOffset;
else if (MS) return document.body.scrollLeft;
else return void(0);
}
}

Commentaire de glachant le 17/06/2008 17:17:13

Hello, alors vous arrivez à voir d'où vient le problème ?....moi j'ai beau décortiquer
je ne vois vraiment pas...

Commentaire de enguerrangillet le 17/06/2008 22:14:33

@glachant : je t'ai contacté par MP, par simplicité (ou faignantise...)

Commentaire de glachant le 16/07/2008 10:07:38

Hello,
me voilà de retour sur mon sujet de compatbilité xhtml...je ne trouve toujours pas d'où vient le problème.
ça marche bien sous FF mais pas sous IE6 ni IE7.
TGUERLUS as-tu une idée de là où ça peur venir ?
je sais qu'ENGUERRANGILLET a planché sur le sujet car on a échangé en privé mais vu que je n'ai pas de retour j'imagine qu'il sèche aussi !
merci de ton aide
@+
HB

Commentaire de enguerrangillet le 16/07/2008 10:14:54

J'attendais de savoir si tguerlus voulait ou non modifier son code pour le rendre 'compatible'.
S'il ne veut pas, je veux bien essayer, avec son accord.

Pour l'instant, j'attends le retour de tguerlus à ce sujet. Je ne veux pas me lancer là dedans pour rien. Car y'a quand même pas mal de code à relire/comprendre/modifier.

Commentaire de tguerlus le 04/08/2008 10:07:27

Bonjour,

Je reviens de vacances, donc pas tres frais, alors pour ma part je ne vois aucun inconveniant a ce que tu corrige, je ne pourrais pas le faire car trop de boulot par contrte n'hesite pas pour les questions, j'y repondrais par contre cela commence a faire un bon bout de temps que je n'ai pas relu le code donc je risque de pas etre trop reactif

Bon courage

Commentaire de POUPINELA le 03/11/2009 22:50:52

hello !
J'ai 2 questions:
- il me semble que quand on fixe les bornes, ce serait pas mal si le calendrier affiche d'emblée le début des bornes.
Par exemple, j'appelle le calendrier avec les bornes entre le 1e janvier 2010 et le 15 février 2010. Alors, le calendrier affiche d'emblée le mois de janvier 2010 et non pas le mois courant. J'ai regardé le fichier calendar.js, mais un peu perdu dans les centaines de lignes de codes.  Pouvez-vous me suggérer où je peux fixer ça ?

- j'aimerais intégrer une fonction qui calcul une date en fonction de la date choisie dans le calendrier. Donc ça  doit intervenir au moment où l'utilisateur a fait le choix de la date et que le calendrier se ferme. J'ai supposé que c'était dans la fonction TMPopUpCalendar qu'il fallait placer l'appel à cette fonction (qui calcule j+nb de jour) et j'ai fait plusieurs essais, mais ça ne marche pas.

Pourriez-vous m'aider ???
Merci d'avance !

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,945 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales