/**
 * objet Date : Extension de la classe Date
 */

/**
 * Convertit les valeurs des selecteurs de date des formulaires MEH 
 * en date sous forme texte au format fr_FR (dd/m/yyyy)
 * 
 * @param {Object} daySelectorId
 * @param {Object} monthYearSelectorId
 */
Date.convertSelectorToStringFr = function (daySelectorId, monthYearSelectorId) {
	
	var selector = document.getElementById(daySelectorId);
	var day = selector.options[selector.selectedIndex].value;
	
	selector = document.getElementById(monthYearSelectorId);
	var monthYear = selector.options[selector.selectedIndex].value;
	var monthYearArray = monthYear.split("/");
	var year = parseInt(monthYearArray[1]);
	// Supprimer le zéro de début pour permettre le parsing d'un entier
	var month = parseInt(monthYearArray[0].replace(/^0/, ""));
	
	return day + "/" + month + "/" + year;
}

/**
 * Convertit les valeurs des selecteurs de date des formulaires MEH 
 * en date sous forme texte au format fr_FR (dd/mm/yyyy)
 * 
 * @param {Object} daySelectorId
 * @param {Object} monthYearSelectorId
 */
Date.convertSelectorToStringFormatFr = function (daySelectorId, monthYearSelectorId) {
	
	var selector = document.getElementById(daySelectorId);
	var day = selector.options[selector.selectedIndex].value;
	
	selector = document.getElementById(monthYearSelectorId);
	var monthYear = selector.options[selector.selectedIndex].value;
	var monthYearArray = monthYear.split("/");
	var year = parseInt(monthYearArray[1]);
	// Supprimer le zéro de début pour permettre le parsing d'un entier
	var month = parseInt(monthYearArray[0].replace(/^0/, ""));
	if(month<10){
		return day + "/0" + month + "/" + year;
	}
	return day + "/" + month + "/" + year;
}


/**
 * Initialise les selecteurs jour et moisAnneee d'un formulaire MEH
 * ŕ partir d'une date javascript
 * 
 * @param {Object} date
 * @param {Object} daySelectorId
 * @param {Object} monthYearSelectorId
 */
Date.convertDateToSelector = function(date, daySelectorId, monthYearSelectorId) {
	if (typeof(date) != "undefined") {
		var day = date.getDate();
		var month = date.getMonth() + 1;
		var year = date.getFullYear();
		document.getElementById(daySelectorId).selectedIndex = date.getDate() - 1;
		if (month < 10) 
			month = "0" + month;
		var selector = document.getElementById(monthYearSelectorId);
		month = month + "/" + year;
		for (i = 0; i < selector.options.length; i++) {
			if (selector.options[i].value == month) {
				selector.selectedIndex = i;
				break;
			}
		}
	}
}

/**
 * Convertit une date texte au format fr_FR (dd/mm/yyyy)
 * en une Date javascript
 * 
 * @param {Object} dateText
 */
Date.convertStringFrToDate = function(dateText) {
	var dateParts = dateText.split("/");
	var date = new Date();
	date.setFullYear(dateParts[2], parseInt(dateParts[1].replace(/^0/, "")) - 1, dateParts[0]);
	return date;
}