    function LeadingZero(n) 
    { 
        n = n.toString(); 
        var pd = ''; 
        if (n.length == 1) 
        { 
                pd += '0'; 

        } 
        return pd + n.toString(); 
    } 


    YAHOO.namespace("example.calendar");

    YAHOO.example.calendar.init = function() {
    
	var xmindate	= document.getElementById("xmindate");		
    	xmindate	= xmindate.value;
  
	var xmaxdate	= document.getElementById("xmaxdate");		
    	xmaxdate	= xmaxdate.value;

	// xmindate & xmaxdate MM/DD/YYYY
	var datex = xmindate.split("/");
	var vmindate = new Date(datex[2],datex[0] - 1,datex[1]);

	datex = xmaxdate.split("/");
	var vmaxdate = new Date(datex[2],datex[0] - 1,datex[1]);


        function handleSelect(type,args,obj) {
            var dates = args[0]; 
            var date = dates[0];
            var year = date[0], month = date[1], day = date[2];
            
            var txtxdate_demande = document.getElementById("date_xdate_demande");
            txtxdate_demande.value = LeadingZero(day) + "/" + LeadingZero(month) + "/" + year;
        }

        function updateCal() {
            var txtxdate_demande = document.getElementById("date_xdate_demande");




            if (txtxdate_demande.value.match(/^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/)) { 
            	txtxdate_demande.className = '';         
                YAHOO.example.calendar.cal1.select(txtxdate_demande.value);
                var selectedDates = YAHOO.example.calendar.cal1.getSelectedDates();


		// txtxdate_demande DD/MM/YYYY
		datex = txtxdate_demande.value.split("/");
		var xddate = new Date(datex[2],datex[1] - 1,datex[0]);
                
      
          //  	alert(xddate + '\n' + vmindate + '\n' + vmaxdate);

                if (xddate >= vmindate && xddate <= vmaxdate) {                
                //if (selectedDates.length > 0) {

                    var firstDate = selectedDates[0];
                    YAHOO.example.calendar.cal1.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "/" + firstDate.getFullYear());
                    YAHOO.example.calendar.cal1.render();
                } else {
            		txtxdate_demande.className = 'xlight';   
                	alert('Vous ne pouvez pas selectionner un date apr\350s ' + LeadingZero(vmindate.getDate()) + "/" + LeadingZero((vmindate.getMonth() + 1)) + "/" + vmindate.getFullYear() + ' ou avant ' + LeadingZero(vmaxdate.getDate()) + "/" + LeadingZero((vmaxdate.getMonth() + 1)) + "/" + vmaxdate.getFullYear());
                }
                
            } else {
            	txtxdate_demande.className = 'xlight';
            	alert('La date n\'est pas valide ou n\'est pas au bon format jj/mm/aaaa');

            }
        }
        
        


		YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("cal1","cal2Container", { 
												title:"Choisir votre date:", 
												mindate:xmindate,
			                                                                      	maxdate:xmaxdate,
												selected:xmindate,   	
												LOCALE_WEEKDAYS:"short",
												START_WEEKDAY: 1,
												close:true 
												} );


		// Correct formats for France: dd/mm/yyyy, dd/.mm, mm/yyyy

		YAHOO.example.calendar.cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "/");

		YAHOO.example.calendar.cal1.cfg.setProperty("MDY_DAY_POSITION", 1);
		YAHOO.example.calendar.cal1.cfg.setProperty("MDY_MONTH_POSITION", 2);
		YAHOO.example.calendar.cal1.cfg.setProperty("MDY_YEAR_POSITION", 3);

		YAHOO.example.calendar.cal1.cfg.setProperty("MD_DAY_POSITION", 1);
		YAHOO.example.calendar.cal1.cfg.setProperty("MD_MONTH_POSITION", 2);

		// Date labels for German locale

		YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_SHORT",   ["jan", "f\351v", "amr", "avr", "mai", "Jui", "Jui", "aou", "sep", "oct", "nov", "d\351c"]);
		YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_LONG",    ["janvier", "f\351vrier", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "d\351cembre"]);
		YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["d", "l", "m", "m", "j", "v", "s"]);
		YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_SHORT", ["di", "lu", "ma", "me", "je", "ve", "sa"]);
		YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["dim", "lun", "mar", "mer", "jeu", "ven", "sam"]);
		YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_LONG",  ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]);

        	YAHOO.example.calendar.cal1.selectEvent.subscribe(handleSelect, YAHOO.example.calendar.cal1, true);
		YAHOO.example.calendar.cal1.render();

        	YAHOO.util.Event.addListener(["date_xdate_demande"], "change", updateCal);

		// Listener to show the 1-up Calendar when the button is clicked
		YAHOO.util.Event.addListener("show1up", "click", YAHOO.example.calendar.cal1.show, YAHOO.example.calendar.cal1, true);
    }

    YAHOO.util.Event.onDOMReady(YAHOO.example.calendar.init);
    
    
    
                                    
