	function updateMonth(date_end)
	{
		$('moisCtrl').length = 0;
		 end_year = date_end.getYear();
		 end_year = (end_year < 1000) ? end_year + 1900 : end_year;
		 end_month = date_end.getMonth();
		 for (year = dtY; year <= end_year; year++)
		 {
		 	for (moiss = 0; moiss < 12; moiss++)
		 	{
		 		if ( ! ( (moiss < dtM &&  year == dtY) || (moiss > end_month &&  year == end_year) ) )
		 		{
	    			value = (moiss + 1) + "/" + year;
	    			valueSelected = arr_months[moiss];
	    			$('moisCtrl').options[$('moisCtrl').length] = new Option(valueSelected + " " + year,value);
	    		}
	    	}
	    }
		updateDays();
	}

	function selectedMonth(date)
	{
		var re_date = /^(\d+)\/(\d+)\/(\d+)$/;
		re_date.exec(date);
		var jour = RegExp.$1;
		var mois = RegExp.$2;
		var annee = RegExp.$3;
  
		var moisLength = document.getElementById('moisCtrl').length;
		var moisCtrl = document.getElementById('moisCtrl');
		for ( var i = 0; i < moisLength; i++)
		{
			var re_date = /^(\d+)\/(\d+)$/;
			re_date.exec(moisCtrl.options[i].value);
			var moisSelect = RegExp.$1;
			var anneeSelect = RegExp.$2;
			if (moisSelect < 10)
			{
				moisSelect = "0" + moisSelect;
			}
			if (moisSelect == mois && anneeSelect == annee)
			{
				moisCtrl.selectedIndex = i;
			}
		}
		selectedDays(jour);
	}
	
	function selectedDays(jour)
	{
		var jourCtrl = window.parent.document.getElementById('jourCtrl');
		var jourLength = jourCtrl.length;
		for ( var i = 0; i < jourLength; i++)
		{
			if (jourCtrl.options[i].value == jour)
			{
				jourCtrl.selectedIndex = i;
			}
		}
	}
	/* met a jour le nombre de jour en fonction du select mois
	 * puis met a jour le calendrier et la date
	 */
	function updateDays()
	{
		//récupération de l'index du jour selectionné
		jourIdSelected = $('jourCtrl').selectedIndex;
		if (jourIdSelected != -1)
		{
		  jourIdSelected = $('jourCtrl').options[$('jourCtrl').selectedIndex].value;
		}
		//remise a zero de la liste du select
		$('jourCtrl').length = 0;
        
		//récupération du mois selectionné
		if (typeof tabMoisSelected == "undefined")
		{
		  tabMoisSelected = dtM + '/' + dtY;
		}

		moisSelected = $('moisCtrl').options[$('moisCtrl').selectedIndex].value;
		tabMoisSelected = moisSelected.split('/');
		moisSelected = tabMoisSelected[0];
		anneeSelected = tabMoisSelected[1];

		var dt_lastday = new Date();
		dt_lastday.setMonth(moisSelected, 0);
		dt_lastday.setYear(anneeSelected);

		max = dt_lastday.getDate();
	    dtY = (dtY < 1000) ? dtY + 1900 : dtY;
		for (i = 1; i <= max;i++)
		{
          $('jourCtrl').options[$('jourCtrl').length] = new Option(i,i);
		}
		if (jourIdSelected == -1 )
		{
          $('jourCtrl').selectedIndex = 0;
		}
		else 
		{
		  if (jourIdSelected < 0 || jourIdSelected > 31)
		  {
		    $('jourCtrl').selectedIndex = 0;
		  }
		  else if (jourIdSelected >= 0 && jourIdSelected <= 31 && typeof $('jourCtrl').options[jourIdSelected] == "undefined" )
		  {
		    $('jourCtrl').selectedIndex = $('jourCtrl').length - 1;
		  }
		  else if ( jourIdSelected >= ($('jourCtrl').length + 1))
		  {
		    $('jourCtrl').selectedIndex = jourIdSelected - 2;
		  }
		  else
		  {
		    $('jourCtrl').selectedIndex = jourIdSelected - 1;
		  }
		}
		if ($('jourCtrl').selectedIndex == -1)
		{
		  $('jourCtrl').selectedIndex = 0;
		}
 updateCalendar();
 updateDate();
}
	
/* met a jour le calendrier en fonction du select mois et jour */
function updateCalendar()
{
 jourSelected = $('jourCtrl').options[$('jourCtrl').selectedIndex].value;
 moisSelected = $('moisCtrl').options[$('moisCtrl').selectedIndex].value;
 tabMoisSelected = moisSelected.split('/');
 /* en js on travail toujours sur mois -1 */
 moisSelected = tabMoisSelected[0];
 anneeSelected = tabMoisSelected[1];

 if ( jourSelected.length == 1 ) {
    jourSelected = '0' + jourSelected;
 }

 if ( moisSelected.length == 1 ) {
    moisSelected = '0' + moisSelected;
 }

 $('dateDepart').value = jourSelected + '/' + moisSelected + '/' + anneeSelected;
}

	//met a jour le champrs date en fonction du select mois et jour 
	function updateDate()
	{
		jourSelected = $('jourCtrl').options[$('jourCtrl').selectedIndex].value;
		moisSelected = $('moisCtrl').options[$('moisCtrl').selectedIndex].value;
		tabMoisSelected = moisSelected.split("/");
		moisSelected = tabMoisSelected[0];
		anneeSelected = tabMoisSelected[1];

        if ( jourSelected.length == 1 ) {
            jourSelected = '0' + jourSelected;
        }

        if ( moisSelected.length == 1 ) {
            moisSelected = '0' + moisSelected;
        }

		window.parent.document.getElementById('dateDepart').value = jourSelected + '/' + moisSelected + '/' + anneeSelected;
	}
	
	function verifDateSelect()
	{
		jourSelected = $('jourCtrl').options[$('jourCtrl').selectedIndex].value;
		moisSelected = $('moisCtrl').options[$('moisCtrl').selectedIndex].value;
		tabMoisSelected = moisSelected.split('/');

        /* en js on travail toujours sur mois - 1 */
		moisSelected = tabMoisSelected[0];
		anneeSelected = tabMoisSelected[1];

		if( ydjServeur == anneeSelected && mdjServeur == moisSelected && ddjServeur > jourSelected )
		{
		  alert(alertDateExpire);
		  return false;
		}
		return true;
	}
