function showHideCalendar(objet,element)
{
 
  if (document.getElementById("calendrier").style.visibility=="visible")
  {
    document.getElementById("calendrier").style.visibility="hidden";
    
  } 
  else if (document.getElementById("calendrier").style.visibility=="hidden")
  {
	var d = new Date();
    var currMonth = d.getMonth();
    var currYear = d.getFullYear();
	//position du calendrier
	var objet = objet.srcElement ? objet.srcElement : objet.target;
	var leftPos = findPosX(objet) - 130;
  	//var topPos = findPosY(objet) + objet.offsetHeight + 5;
    var topPos = findPosY(objet) + objet.offsetHeight - 80;
  
   
   
    writeCalendar(currMonth, currYear, element, 'AVIS');
    document.getElementById("calendrier").style.visibility="visible";
    document.getElementById("calendrier").style.position = "absolute";
	document.getElementById("calendrier").style.left = leftPos+'px';
    document.getElementById("calendrier").style.top = topPos+'px';

   
  }
}

function writeCalendar (month, year, dateField, formName)
{
  
  //modif fg
  var monDate = new Date(year, month, 1);
  var firstDay = monDate.getDay();
  var monthDays = daysInMonth(month+1, year);
  if (firstDay == 0) firstDay = 7;
  var currDate = new Date();
  var currMonth = currDate.getMonth();
  var currDay = currDate.getDate();
  var currYear = currDate.getFullYear();

  var dayNames = new Array;
  
  dayNames[1] = "Lundi";
  dayNames[2] = "Mardi";
  dayNames[3] = "Mercredi";
  dayNames[4] = "Jeudi";
  dayNames[5] = "Vendredi";
  dayNames[6] = "Samedi";
  dayNames[7] = "Dimanche";
  
  var monthNames = new Array;
  monthNames[ 0] = "Janvier";
  monthNames[ 1] = "Février";
  monthNames[ 2] = "Mars";
  monthNames[ 3] = "Avril";
  monthNames[ 4] = "Mai";
  monthNames[ 5] = "Juin";
  monthNames[ 6] = "Juillet";
  monthNames[ 7] = "Août";
  monthNames[ 8] = "Septembre";
  monthNames[ 9] = "Octobre";
  monthNames[ 10] = "Novembre";
  monthNames[ 11] = "Décembre";
  monthNames[ 12] = "Année";
  var htmlCode = "";
  var day = 1;
  var nextMonth;
  var prevMonth;
  var nextYear = year;
  var prevYear = year;

  // Calculate next month and year
  if (month == 11) {
      nextMonth = 00;
      ++nextYear;
  } else { nextMonth = month+1; }

  // Calculate previous month and year
  if (month == 00) {
      prevMonth = 11;
      --prevYear;
  } else { prevMonth = month-1; }

	// Start the table
	htmlCode = "<table border='0' cellspacing='3' bgcolor='#FFFFFF' style='border:1px solid #000000; font-family:Arial;'>";
	prev_month_title = 'Mois pr&eacute;c&eacute;dant';
	next_month_title = 'Mois suivant';
	htmlCode += "<tr><th>";
	if (!(year == currYear && month <= currMonth)) {
		htmlCode += "<a href='javascript:writeCalendar("+prevMonth+","+prevYear+", \""+dateField+"\", \""+formName+"\")' title='"+prev_month_title+"' style='cursor:pointer;'><img src='images/prev.gif' border='0'><\/a>";
	}
	htmlCode += "</th><th colspan='5'>"+monthNames[month]+" "+year+"</th><th>";
	if ((month+1)%12 != currMonth) {
		htmlCode += "<a href='javascript:writeCalendar("+nextMonth+","+nextYear+", \""+dateField+"\", \""+formName+"\")' title='"+next_month_title+"' style='cursor:pointer;'><img src='images/next.gif' border='0'><\/a>";
	}
	htmlCode += "<\/th><\/tr><tr>";

  // Write the day names
  for (var i = 1; i < dayNames.length; i++)
  {
    if (i < 6) htmlCode += "<th>"+dayNames[i].substring(0, 3)+"<\/th>";
	else htmlCode += "<th class='rouge10'>"+dayNames[i].substring(0, 3)+"<\/th>";
  }
  htmlCode += "<\/tr><tr>";
  var cpt_we = 1;	
  // Fill in empty values till the start of the month
  for (i = 1; i < firstDay; i++)
  {
    if (cpt_we < 6) htmlCode += "<td>&nbsp;<\/td>";
	else htmlCode += "<td style='background-color:#CCCCCC;'>&nbsp;<\/td>";
	cpt_we++;
  }

  // And then fill in the rest of the month

  while (day <= monthDays)
  {
      
	  if (day <= monthDays)
      {
        if (year < currYear || (year == currYear && month < currMonth) || (year == currYear && month == currMonth && day < currDay))
        {
            if (cpt_we < 6) htmlCode += "<td style='text-decoration:line-through;color:#CCCCCC' align='center'>"+day+"<\/td>";
			else htmlCode += "<td style='text-decoration:line-through;' align='center' style='background-color:#CCCCCC;'>"+day+"<\/td>";
		 }
		 
        else
        {
            if (cpt_we < 6) htmlCode += "<td align='center'><a href='javascript:setDates("+day+", "+month+", "+year+", \""+dateField+"\", \""+formName+"\")' title='"+day+" "+monthNames[month]+" "+year+"' style='cursor:pointer;'>"+day+"<\/a><\/td>";
			else htmlCode += "<td align='center' style='background-color:#CCCCCC;'><a href='javascript:setDates("+day+", "+month+", "+year+", \""+dateField+"\", \""+formName+"\")' title='"+day+" "+monthNames[month]+" "+year+"' style='cursor:pointer;'>"+day+"<\/a><\/td>";
        }
      }
      else
      {
        if (cpt_we < 6) htmlCode += "<td>&nbsp;<\/td>";
		else htmlCode += "<td style='background-color:#CCCCCC;'>&nbsp;<\/td>";
      }
	  
      if (i%7 == 0)
      {
		htmlCode += "<\/tr><tr>";
		cpt_we = 0;
      }
      day++;
      i++;
	  cpt_we++;
  }
  
  htmlCode += "<\/tr><tr><td colspan='7' id='foot' align='right'><a href='javascript:;' onclick='showHideCalendar(event)' title='Fermer' style='cursor:pointer;'>Fermer<\/a><\/td><\/tr><\/table>";
  document.getElementById("calendrier").innerHTML = htmlCode;
}

function setDates(dateValue, monthValue, yearValue, dateField, formName)
{
	var monthValue = padNumber(monthValue+1);
	var DateTotal = padNumber(dateValue)+"/"+monthValue+"/"+yearValue;
	eval("document."+formName+"."+dateField+".value = DateTotal");
	//if ( ( (document.getElementById("date_retour").value == '') || (document.getElementById("date_retour").value == 'jj/mm/aaaa') ) && (dateField == 'date_dep') )
	if ( (dateField == 'date_dep') && ( (document.AVIS.date_retour.value == '')  || (document.AVIS.date_retour.value == 'jj/mm/aaaa')) )
	{
		var date_ret = new Date (yearValue,(monthValue-1), dateValue, 0, 0, 0);
		date_retour = new Date(date_ret.getTime() + (1000 * 60 * 60 * 24 * 7));
		var mois_retour = date_retour.getMonth()+1;
		var jour_retour = date_retour.getDate();
		mois_retour = padNumber(mois_retour);
		jour_retour = padNumber(jour_retour);
		
	 	var DateTotal2 = jour_retour +"/"+ mois_retour +"/"+ date_retour.getFullYear();

		eval("document."+formName+".date_retour.value = DateTotal2");
	}
	showHideCalendar('',dateField);
}


function daysInMonth(month, year)
{
  if (year == null) {
    var d = new Date();
    year = d.getFullYear();
  }
  if (month == 4 || month == 6 || month == 9 || month == 11) {
    return 30;
  } else if (month == 2) {
    if (year % 4 == 0) {
      return 29;
    } else {
      return 28;
    }
  } else {
    return 31;
  }
}

function padNumber(number)
{
	if (number < 10) {
		return "0"+number;
	} else { return number; }
}


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}