/**
 * 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], 10);
	// Supprimer le zéro de début pour permettre le parsing d'un entier
	var month = parseInt(monthYearArray[0], 10);
	if(month<10){
		return day + "/0" + month + "/" + year;
	}	
	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], 10);
	// Supprimer le zéro de début pour permettre le parsing d'un entier
	var month = parseInt(monthYearArray[0], 10);
	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(d){
	d=d.split("/");
	if(d.length<3){
		ev.log.error('Mauvais format de date : \''+d+'\'');
		return null;
	}
	var tmp=new Date();
	tmp.setFullYear(d[2], parseInt(d[1], 10)-1, d[0]);
	return tmp;
};