Object.extend(Date.prototype, {
	get_month_s: function() {return String(this.getMonth()+1).lpad("0", 2);},

	get_month_name: function(lang) {
		var months;
		
		switch(lang){
			case "fr" : 
				months = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre");
				break;
			case "en" : 
				months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
				break;
		}
		
		return months[this.getMonth()];	
	},
	
	get_week_name: function(lang) {
		var days;
		
		switch(lang){
			case "fr" : 
				days = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
				break;
			case "en" : 
				days = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");				
				break;
		}
		
		return days[this.getDay()];	
	},
	
	format_date: function(lang){
		switch(lang){
			case "en" :
				return this.get_month_s() + "-" + this.getDate() + "-" + this.getFullYear();
				break;
			case "fr" :
				return this.getDate() + "-" + this.get_month_s() + "-" + this.getFullYear();
				break;
		}
	},
	
	number_days_month: function(){
		var days;
		
		switch (this.getMonth()+1){
			case 1 :
			case 3 :
			case 5 :
			case 7 :
			case 8 :
			case 10 :
			case 12 : 
				days = 31
				break;
			case 2 :
				if (this.val_leap_year()){
					days = 29;
				}else{
					days = 28;
				}
				break;
			case 4 :
			case 6 :
			case 9 :
			case 11 :
				days = 30;
				break;
		}	

		return days;
	},
	
	val_leap_year: function(){
		if(this.getFullYear() % 4 == 0){
			if(this.getFullYear() % 100 == 0){
				if(this.getFullYear() % 400 == 0){
					return true;
				}
			}else{
				return true;
			}
		}
		
		return false;
	}

});
	
