var calendrier_div;
var calendrier_table;
var calendrier_mois;
var calendrier_annee;
var calendrier_date;
var calendrier_id;
var calendrier;
var heure;
var minutes;
var sepDate = "/";

function setHeure(h){
 heure=h;
}
function setMinutes(m){
 minutes=m;
}

function lancerChoixCalendrier(event,idChamp) {
 var date = new Date();
 var jour = date.getDay();
 var mois = date.getMonth();
 var annee = date.getFullYear();

 calendrierLancement(event,idChamp,false,-150,10,jour,mois,annee);
}

function calendrierAfficher(avecHeure) 
{
 
	 var dateTemp;
	 var strTable;
	 var strHeure;
	 
	 switch(calendrier_date.getMonth()) {
		 case 0: calendrier_mois.innerHTML = "Janvier";
		 break;
		 case 1: calendrier_mois.innerHTML = "F&eacute;vrier";
		 break;
		 case 2: calendrier_mois.innerHTML = "Mars";
		 break;
		 case 3: calendrier_mois.innerHTML = "Avril";
		 break;
		 case 4: calendrier_mois.innerHTML = "Mai";
		 break;
		 case 5: calendrier_mois.innerHTML = "Juin";
		 break;
		 case 6: calendrier_mois.innerHTML = "Juillet";
		 break;
		 case 7: calendrier_mois.innerHTML = "Ao&ucirc;t";
		 break;
		 case 8: calendrier_mois.innerHTML = "Septembre";
		 break;
		 case 9: calendrier_mois.innerHTML = "Octobre";
		 break;
		 case 10: calendrier_mois.innerHTML = "Novembre";
		 break;
		 case 11: calendrier_mois.innerHTML = "D&eacute;cembre";
		 break;
	 }

 	calendrier_annee.innerHTML = calendrier_date.getFullYear();

 	dateTemp = new Date(calendrier_date.getFullYear(), calendrier_date.getMonth());
 	strTable = "<table cellpadding='0' cellspacing='0'><thead><th>L</th><th>M</th><th>M</th><th>J</th><th>V</th><th>S</th><th>D</th></thead><tbody><tr>";
 	if(dateTemp.getDay() == 0) {
		 for(var i = 1; i < 7; i++) {
		 	strTable += "<td></td>";
	 	}
 	} else {
 			for(var i = 1; i < dateTemp.getDay(); i++) {
 				strTable += "<td></td>";
 				}
 			}
 			
	while(dateTemp.getMonth() == calendrier_date.getMonth()) {
 		if(dateTemp.getDay() == 1) {
 			strTable += "</tr><tr>";
 			}
		 strTable += "<td class=\"date\" onClick=\"return calendrierSelectionner(" + dateTemp.getDate() + ", " + (dateTemp.getMonth() + 1) + ", " + dateTemp.getFullYear() + ", " + avecHeure + ");\">" + dateTemp.getDate() + "</td>";
 		dateTemp.setDate(dateTemp.getDate() + 1);
 	}
 	
	 while(dateTemp.getDay() != 1) {
	 	strTable += "<td></td>";
		 dateTemp.setDate(dateTemp.getDate() + 1);
	 }
	 
	 /*heure*/
	 setHeure('00');
	 setMinutes('00');
 	if(avecHeure){
 		strHeure = "<tfoot><tr><th></th><th colspan='2'><select onchange='setHeure(this.options[selectedIndex].value)'>";
 		for(var i=0;i<24;i++){
 			if(i<10) strHeure += "<option value='0"+i+"'>0"+i+"</option>";
 			else strHeure += "<option value='"+i+"'>"+i+"</option>";
		}
 		strHeure += "</select></th><th>h</th><th colspan='2'><select onchange='setMinutes(this.options[selectedIndex].value)'>";
 		for(var i=0;i<60;i++){
			if(i<10) strHeure += "<option value='0"+i+"'>0"+i+"</option>";
 			else strHeure += "<option value='"+i+"'>"+i+"</option>";
		}
		 strHeure += "</select></th><th></th></tr></tfoot>";
 	}else{
 		strHeure='';
 		}

	 /*fin heure*/
	 strTable += "</tr></tbody>"+strHeure+"</table>";
	 calendrier_table.innerHTML = strTable;
}

function calendrierFermer() {
	 document.body.removeChild(calendrier_div);
	 calendrier = false;
}

function calendrierMoisPrecedent() {
	 calendrier_date.setMonth(calendrier_date.getMonth() - 1);
	 calendrierAfficher();
}

function calendrierMoisSuivant() {
	 calendrier_date.setMonth(calendrier_date.getMonth() + 1);
	 calendrierAfficher();
}

function calendrierAnneePrecedent() {
	 calendrier_date.setFullYear(calendrier_date.getFullYear() - 1);
	 calendrierAfficher();
}

function calendrierAnneeSuivant() {
	 calendrier_date.setFullYear(calendrier_date.getFullYear() + 1);
	 calendrierAfficher();
}

function calendrierCreationStructure(gauche, haut) {
	 var objectButton;
	 var objectDiv;

 /*calendrier_iframe = document.createElement("iframe");
 calendrier_iframe.style.position = 'absolute';
 calendrier_iframe.style.left = gauche + "px";
 calendrier_iframe.style.top = haut + "px";
 calendrier_iframe.style.width = "150px";
 calendrier_iframe.style.height = "150px";
 calendrier_iframe.style.zIndex = "1000";
 //calendrier_iframe.setStyle({"z-index": '1'});
 document.body.appendChild(calendrier_iframe);*/

	 calendrier_div = document.createElement("div");
	 calendrier_div.className = "calendrier";
	 calendrier_div.style.left = gauche + "px";
	 calendrier_div.style.top = haut + "px";
	 calendrier_div.style.zIndex = "2000";
	 document.body.appendChild(calendrier_div);


	 objectDiv = document.createElement("div");
	 objectDiv.className = "ligne";
	 calendrier_div.appendChild(objectDiv);

	 objectButton = document.createElement("div");
	 objectButton.className = "boutonGauche";
	 objectButton.onclick = calendrierMoisPrecedent;
	 objectButton.appendChild(document.createTextNode("< "));
	 objectDiv.appendChild(objectButton);

	 objectButton = document.createElement("div");
	 objectButton.className = "boutonDroit";
	 objectButton.onclick = calendrierMoisSuivant;
	 objectButton.appendChild(document.createTextNode(" >"));
	 objectDiv.appendChild(objectButton);

	 calendrier_mois = document.createElement("div");
	 calendrier_mois.className = "centrer";
	 objectDiv.appendChild(calendrier_mois);
	
	 calendrier_table = document.createElement("div");
	 calendrier_div.appendChild(calendrier_table);

	 objectDiv = document.createElement("div");
	 objectDiv.className = "ligne";
	 calendrier_div.appendChild(objectDiv);

	 objectButton = document.createElement("div");
	 objectButton.className = "boutonGauche";
	 objectButton.onclick = calendrierAnneePrecedent;
	 objectButton.appendChild(document.createTextNode("< "));
	 objectDiv.appendChild(objectButton);

	 objectButton = document.createElement("div");
	 objectButton.className = "boutonDroit";
	 objectButton.onclick = calendrierAnneeSuivant;
	 objectButton.appendChild(document.createTextNode(" >"));
	 objectDiv.appendChild(objectButton);

	 calendrier_annee = document.createElement("div");
	 calendrier_annee.className = "centrer";
	 objectDiv.appendChild(calendrier_annee);

	 objectDiv = document.createElement("div");
	 objectDiv.className = "fermer";
	 objectDiv.onclick = calendrierFermer;
	 objectDiv.innerHTML = "X";
	 calendrier_div.appendChild(objectDiv);
	 ie6Compatibilite();
}

/*Ie ne comprend pas qu'on vient d'ajouter un element au DOM
On le lui rappelle avec un display block et ca marche*/
function ie6Compatibilite(){
 	calendrier_div.style.display="block";
}

function calendrierSelectionner(jour, mois, annee, avecHeure) {
	 var cible;
	 var strHeure;
	
	 cible = document.getElementById(calendrier_id);
	 if(jour<10){
	 	jour = '0'+jour;
	 }
	 if(mois<10){
	 	mois = '0'+mois;
	 }
	 if(avecHeure)
 		strHeure = " "+heure+":"+minutes;
 	 else strHeure = '';
 		cible.value = annee+strHeure  + sepDate + mois + sepDate + jour; 

 calendrierFermer();
 /*cible.onchange();*/
}

function calendrierLancement(event, id,avecHeure,posX,posY,jour,mois, annee) {
	 var gauche;
	 var haut;
	
	 if(calendrier == false) {
	 	calendrier = true;
	 	//calendrier_date = new Date();
	 	calendrier_date = new Date(annee,mois,jour);
	 	calendrier_id = id;
		 if(window.event) {
	 		gauche = window.event.clientX + document.body.scrollLeft;
	 		haut = window.event.clientY + document.body.scrollTop;
	 	} else {
	 		gauche = event.pageX;
	 		haut = event.pageY;
 	}
 /*if(gauche >= 620) {
 gauche = 619;
 }
 if(haut >= 450) {
 haut = 449;
 }*/
	 if(posX != undefined ){
	 gauche += posX;
	 }
	 if(posY != undefined ){
	 haut += posY;
	 }
	 calendrierCreationStructure(gauche, haut);
	 calendrierAfficher(avecHeure);
	 }
}

function calendrierInitialisation() {
	 var elements;
	
	 calendrier = false;
	 elements = document.getElementsByTagName("img");
	 for(var i = 0; i < elements.length; i++) {
		 if(elements[i].className == "calendar")
	 		elements[i].onclick = function(event){
					 calendrierLancement(event, this.name.slice(2));
	 				return false;
	 				}
	 }
}

calendrier = false;

/*window.onload = calendrierInitialisation;*/
