//--------------------------------------------------------------------------------------
// Calendrier (c) Serge (DarkSide) - Djibouti 2002  - 
// Contact : sergebertet@voila.fr - http://www.merrouge.com/serge.htm
//
// Saisie d'une date dans un calendrier.
// ------------------------------------
// Utilisation :
// Insérer le script dans l'entête du source HTML.
// Placer, dans un formulaire nommé, le champs texte nommé destiné à recevoir la date
// avec pour évènement souris ou clavier l'appel : MyGetDate(this);
// Exemple de source HTML : 
/*

 <HTML>
 <HEAD>
 <script src="calendar.js"></script>
 </HEAD>
 <BODY>
 <form name="NomDuFormulaire">
 <input type="texte" size="10" name="DateDeDebut" onClick="MyGetDate(this);">
 <input type="texte" size="10" name="DateDeFin" onClick="MyGetDate(this);">
 </form>
 </BODY>
 </HTML>

*/
// Format de retour :
// La date renvoyée est de type texte sous la forme jj/mm/aaaa
//
// Nota : Ne fonctionne que pour Internet Explorer.
// ToDo : Rendre la fenêtre du calendrier Modale et dépendante de Opener
//
// Vous pouvez, bien sûr, utiliser ce script dans vos pages et ... 
// me donner l'adresse pour que je voies ce que ça donne et ...
// ce serait sympa de bien vouloir laisser les commentaires et ... c'est tout ... bon script.
//-------------------------------------------------------------------------------------------

function MyGetDate(champs) {
IE = !(document.all?0:1);
NS = !IE;
dest = champs;
if (IE) { 
// Taille du calendrier
  larg = 250; 
  Long = 188;
  posX = event.screenX; posY = event.screenY;
  if (posX+larg > screen.width) posX = screen.width - larg;
  if (posY+Long > screen.height) posY = screen.height - Long;
  eval("maFen = window.open('','','top='+posY+',left='+posX+',width="+larg+",height="+Long+"');");
  maFen.focus();
  dessine();
  } 
}

function dessine() {
txt = '\n\n\n<!--\n\nAuteur : DarkSide <sergebertet@voila.fr> - http://www.merrouge.com/serge.htm \n\n';
txt += 'Ce script est disponible à l\'adresse : http://www.merrouge.com/calendar.zip \n\n-->\n\n\n';
txt += '<html><head><title>Choisissez une date.</title>\n';
txt += '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n';
txt += '<script>\n';
txt += 'var now = new Date();\nIE = !(document.all?0:1);\nNS = !IE;\n';
txt += 'months = new Array(\'Janvier\',\'Février\',\'Mars\',\'Avril\',\'Mai\',\'Juin\',\'Juillet\',\'Août\',\'Septembre\',\'Octobre\',\'Novembre\',\'Décembre\');\n';
txt += 'mois = now.getMonth();\nan = now.getFullYear();\njour = now.getDate();\nvide = "...";\n \n';

// Affectation des dates aux bouttons
txt += 'function init() {\n';
txt += 'document.calendar.curMonth.value = months[mois] + " " + an;\n';
txt += 'document.calendar.curMonth.readOnly = true;\n';
txt += 'now.setMonth(mois);\n';
txt += 'now.setYear(an);\n';
txt += 'now.setDate(1);\n';
txt += 'for (i=0;i<now.getDay();i++) { eval("document.calendar.b"+0+i+".value = \' " + vide + " \' ;"); }\n';
txt += 'for (i=now.getDay();i<7;i++) {\n';
txt += '	    jour = "0"+now.getDate();\n';
txt += '		eval("document.calendar.b"+0+i+".value = \' "+jour+" \';");\n';
txt += '		now.setDate(now.getDate()+1);\n';
txt += '		}\n';
txt += 'for (j=1;j<6;j++) {\n';
txt += '	for (i=0;i<7;i++) {\n';
txt += '		if (jour==vide || now.getDate() < jour) { jour = vide; } else { jour = now.getDate(); }\n';
txt += '		if (jour < 10) { jour = "0"+jour; }\n';
txt += '		eval("document.calendar.b"+j+i+".value = \' "+jour+" \' ;");\n';
txt += '		now.setDate(now.getDate()+1);\n';
txt += '		}\n';
txt += '	}\n';
txt += '}\n\n';

// Mois suivant
txt += 'function next() {\n';
txt += 'if (mois == 11) { mois = 0; an = an + 1; } else { mois += 1; }\n';
txt += 'init();\n';
txt += '}\n\n';

// Mois précédent
txt += 'function prev() {\n';
txt += 'if (mois == 0) { mois = 11; an -= 1; } else { mois -= 1; }\n';
txt += 'init();\n';
txt += '}\n\n';

// 
txt += 'function lz(valeur) { if (valeur < 10) return("0"+valeur); else return(valeur); }\n\n';

// retour et fermeture du calendrier
txt += 'function done(but) {\n';
txt += 'txt = but.value.substr(1,2);\n';
txt += 'if (txt == vide.substr(1,2)) return;\n';

/*
   Si on veut l'année sur 2 digits, ajouter ligne suivante :
   txt += 'an = an+""; an = an.substr(2,2);'; // Y2K compliant :o) comme ils disent là-bas.
*/

txt += 'txt = txt+"/"+lz(mois+1)+"/"+an;\n';
txt += 'opener.document.' + dest.form.name + '.' + dest.name + '.value = txt;\n';
txt += 'window.close();\n';
txt += '}\n';

txt += '</script>\n</head>\n<style>\n';
txt += 'td { color: white; font-weight: bold; text-align: center; }\n';

// Couleur des boutons
txt += 'input { cursor: hand; text-align: center; color: white; background-color: green; }\n';

// Texte
txt += 'td { font-size: 10px; }\n';

// Couleurs de fond de table et de document
txt += 'body { background: black; }\n';
txt += 'table { background: black; }\n</style>\n';
txt += '<body leftmargin="0" topmargin="0"; onLoad="init();">\n';
txt += '<form name="calendar">\n';
txt += '<table border="0" cellspacing="0" cellpadding="0" bgcolor="#00CCFF" align=center>\n';
txt += '<tr><td>Dim</td><td>Lun</td><td>Mar</td><td>Mer</td><td>Jeu</td><td>Ven</td><td>Sam</td></tr>\n';

// Création des bouttons
for (i=0;i<6;i++) {
  txt += '<tr>\n';
  for (j=0;j<7;j++) {
	txt += '<td><input type="button" name="b'+i+j+'" onclick="done(this)"></td>\n';
    }
  txt += '</tr>\n';
  } 
txt += '<tr><td>\n';
txt += '<input type="button" name="bk" value="<< " onclick="prev()"></td><td colspan=5>\n';
txt += '<input type="text" name="curMonth" size="20">\n';
txt += '</td><td><input type="button" name="bk" value=" >>" onclick="next()">\n';
txt += '</td></tr></table></form></body>\n';

// Création de la page
txt += '<script>\n';
txt += 'init();\n';
txt += '</script></html>\n';
maFen.document.write(txt);
}


