/***********************************************************/
/* fichier : dates.js                                      */
/*                                                         */
/* auteur  : Ludovic Mauris                                */
/*                                                         */
/* date    : 15.11.2005                                    */
/*                                                         */
/* but     : Fonctions pour les dates -> formulaires       */
/*                                                         */
/***********************************************************/


/**
 *  nbreJoursMois : Permet de calculer le nombre jours dans un mois
 *
 *  parametres    : mois  : le mois entré
 *                  annee : l'année entrée
 *
 *  return        : le nombre de jours dans le mois
 */
function nbreJoursMois(mois, annee) {

	var nbreJoursMois = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var nbreJoursMoisBisextile = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

	// Selon que l'année est bisextile ou non
	if((annee % 4) == 0){
		if ((annee % 100) == 0 && (annee % 400) != 0)
			return nbreJoursMois[mois];
		return nbreJoursMoisBisextile[mois];
	} else
		return nbreJoursMois[mois];
}

/**
 *  modifierJours : Permet de calculer le nombre jours dans un mois
 *
 *  parametres    : objet        : l'objet à modifier
 *                  nbreJours    : le nombre de jours présents dans la liste
 *                  pointeurJour : le pointeur sur le jour sélectionné
 */		
function modifierJours(objet, nbreJours, pointeurJour){
			
	tailleOptions = objet.length;
	if(nbreJours < tailleOptions){ // Enlever des jours
		for(var i = 0; i < (tailleOptions - nbreJours); i++){
			objet.length--;
		}
		if(pointeurJour > objet.length - 1)
			objet.options.selectedIndex = objet.length - 1;
	}else{ // Ajouter des jours
		for (var i = 0; i < (nbreJours - tailleOptions); i++){		
			if (tailleOptions+i+1 == 29)
				objet.options[tailleOptions+i] = new Option('29',29);
			else if (tailleOptions+i+1 == 30)
				objet.options[tailleOptions+i] = new Option('30',30);
			else if (tailleOptions+i+1 == 31)
				objet.options[tailleOptions+i] = new Option('31',31);
		}
	}
}

/**
 *  majJours   : Permet de calculer le nombre jours dans un mois
 *
 *  parametres : objJour  : l'objet comprenant les options de jours
 *               objMois  : l'objet comprenant les options de mois
 *               objAnnee : l'objet comprenant les options d'années
 */
function majJours(objJour,objMois,objAnnee){
		
	var pointeurJour = objJour.options[objJour.selectedIndex].value;
	var mois         = objMois.options[objMois.selectedIndex].value;
	var annee        = objAnnee.options[objAnnee.selectedIndex].value;
	var nbreJours    = nbreJoursMois(mois-1,annee);
			
	modifierJours(objJour, nbreJours, pointeurJour);
}