
function showHideCalendar(objet,element,x2,y2)
{
  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();
	var currDay = d.getDay();
	//position du calendrier
	var objet = objet.srcElement ? objet.srcElement : objet.target;
	var leftPos = 52;//findPosX(objet);
	var topPos = 162;//findPosY(objet) + objet.offsetHeight+1;
	if (element == 'darv') var topPos = topPos - 20;//findPosY(objet) + objet.offsetHeight+1;
	
	if (x2 != 0) var leftPos = x2;
	if (y2 != 0) var topPos = y2;
	/*var leftPos = 58;//findPosX(objet);
  	if (element == 'darv') var topPos = 142;//findPosY(objet) + objet.offsetHeight+1;
  	else var topPos = 162;//findPosY(objet) + objet.offsetHeight+1;*/
	

    writeCalendar(currMonth, currYear, element, 'form1');
	document.getElementById("calendrier").style.width="180px";
    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 showHideCalendar2(objet,element,m,j,x2,y2)
{
  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 =m;
    var currYear = d.getFullYear();
	var currDay = j+1;
	//position du calendrier
	var objet = objet.srcElement ? objet.srcElement : objet.target;
	var leftPos = 52;//findPosX(objet);
	var topPos = 162;//findPosY(objet) + objet.offsetHeight+1;
	if (element == 'darv') var topPos = topPos - 20;//findPosY(objet) + objet.offsetHeight+1;
	
	if (x2 != 0) var leftPos = x2;
	if (y2 != 0) var topPos = y2;
	/*var leftPos = 58;//findPosX(objet);
  	if (element == 'darv') var topPos = 142;//findPosY(objet) + objet.offsetHeight+1;
  	else var topPos = 162;//findPosY(objet) + objet.offsetHeight+1;*/
	

    writeCalendar3(currMonth, currYear,currDay,element, 'form1');
	document.getElementById("calendrier").style.width="180px";
    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 writeCalendar3 (month, year,day2,dateField, formName)
{
  
  var monDate = new Date(year, month, 1);
  var firstDay = day;
  var monthDays = daysInMonth(month+1, year);
  if (firstDay == 0) firstDay = 7;
  var currDate = new Date();
  var currMonth = currDate.getMonth();
 var currDay = currDate.getDate();
 //var currMonth =month;
 //alert(currMonth);
  //var currYear = currDate.getFullYear();
//
//var currDay =day2;
  var currYear = currDate.getFullYear();
 //var nombre= daysInMonth(currMonth, currYear);
	/*if(currDay>nombre)
	{
		currMonth=currMonth+1;
		currDay=currDay-nombre;
	}
	if(currDay==nombre)
	{
		currMonth= currMonth+1;
		currDay=1;
	}*/
	//
	var m1=window.document.form1.darv.value.substring(3,5);
	var m2=parseInt(m1)-1;
	var d1=window.document.form1.darv.value.substring(0,2);
	var d2=parseInt(d1);
	var a1=window.document.form1.darv.value.substring(6,10);
	var a2=parseInt(a1);
	if(month ==m2 && year ==a2)
	{
	day2=d2;
	month=m2;
	currMonth=m2;
	currDay=d2+1;
	}
	
	
//
  var dayNames = new Array;
  
  dayNames[1] = "Monday";
  dayNames[2] = "Tuesday";
  dayNames[3] = "Wednesday";
  dayNames[4] = "Thursday";
  dayNames[5] = "Friday";
  dayNames[6] = "Saturday";
  dayNames[7] = "Sunday";
  var monthNames = new Array;
  monthNames[ 0] = "January";
  monthNames[ 1] = "Fevrier";
  monthNames[ 2] = "March";
  monthNames[ 3] = "April";
  monthNames[ 4] = "May";
  monthNames[ 5] = "June";
  monthNames[ 6] = "July";
  monthNames[ 7] = "August";
  monthNames[ 8] = "September";
  monthNames[ 9] = "October";
  monthNames[ 10] = "November";
  monthNames[ 11] = "Decembre";
  monthNames[ 12] = "Annee";
  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='0' bgcolor='#FFFFFF' style='border: 1px solid #FFFFFF;' >";
	prev_month_title = 'Mois pr&eacute;c&eacute;dant &ea';
	next_month_title = 'Mois suivant';
	htmlCode += "<tr><th><table  border='1' cellspacing='0' bgcolor='#FFFFFF' cellpadding='0' align='left'><tr><td><a href=\"#\" onclick='Javascript: showHideCalendar2(event)'>X</a></td></tr></table></th><th>";
	if (!(year == currYear && month <= currMonth)) {
		htmlCode += "<a href='javascript:writeCalendar3("+prevMonth+","+prevYear+","+day+", \""+dateField+"\", \""+formName+"\")' title='"+prev_month_title+"'><img src='images/f2.jpg' width='10' height='10' border='0'><\/a>";
	}
	htmlCode += "</th><th colspan='5' class='rouge10'>"+monthNames[month]+" "+year+"</th><th>";
	if ((month+1)%12 != currMonth) {
		htmlCode += "<a href='javascript:writeCalendar3("+nextMonth+","+nextYear+","+day+", \""+dateField+"\", \""+formName+"\")' title='"+next_month_title+"'><img src='images/f1.jpg' width='10' height='10' border='0'><\/a>";
	}
	htmlCode += "<\/th><\/tr><tr>";

  // Write the day names
  for (var i = 1; i < dayNames.length; i++)
  {
    if (i < 5) htmlCode += "<th class='rouge10'>"+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 class='barre' align='center'>"+day+"<\/td>";
			else htmlCode += "<td class='barre' align='center' style='background-color:#FFFFFF;'>"+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+"'  class='b'>"+day+"<\/a><\/td>";
			else htmlCode += "<td align='center' style='background-color:#FFFFFF;'><a href='javascript:setDates("+day+", "+month+", "+year+", \""+dateField+"\", \""+formName+"\")' title='"+year+" "+monthNames[month]+" "+day+"'  class='b'>"+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'><\/td><\/tr><\/table>";
  document.getElementById("calendrier").innerHTML = htmlCode;
}
function writeCalendar (month, year, dateField, formName)
{
  
  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] = "Monday";
  dayNames[2] = "Tuesday";
  dayNames[3] = "Wednesday";
  dayNames[4] = "Thursday";
  dayNames[5] = "Friday";
  dayNames[6] = "Saturday";
  dayNames[7] = "Sunday";
  var monthNames = new Array;
  monthNames[ 0] = "January";
  monthNames[ 1] = "February";
  monthNames[ 2] = "March";
  monthNames[ 3] = "April";
  monthNames[ 4] = "May";
  monthNames[ 5] = "June";
  monthNames[ 6] = "July";
  monthNames[ 7] = "August";
  monthNames[ 8] = "September";
  monthNames[ 9] = "October";
  monthNames[ 10] = "November";
  monthNames[ 11] = "December";
  monthNames[ 12] = "Year";
  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='0'>";
	prev_month_title = 'Mois pr&eacute;c&eacute;dant';
	next_month_title = 'Mois suivant';
	htmlCode += "<tr><th><table style='border: 1px solid #0099FF;' border='0' cellspacing='0' cellpadding='0' align='left'><tr><td><a href=\"#\" onclick='Javascript: showHideCalendar(event)'>X</a></td></tr></table></th><th>";
	if (!(year == currYear && month <= currMonth)) {
		htmlCode += "<a href='javascript:writeCalendar("+prevMonth+","+prevYear+", \""+dateField+"\", \""+formName+"\")' title='"+prev_month_title+"'><img src='images/f2.jpg' width='10' height='10' border='0'><\/a>";
	}
	htmlCode += "</th><th colspan='5' class='rouge10'>"+monthNames[month]+" "+year+"</th><th>";
	if ((month+1)%12 != currMonth) {
		htmlCode += "<a href='javascript:writeCalendar("+nextMonth+","+nextYear+", \""+dateField+"\", \""+formName+"\")' title='"+next_month_title+"'><img src='images/f1.jpg' width='10' height='10' border='0'><\/a>";
	}
	htmlCode += "<\/th><\/tr><tr>";

  // Write the day names
  for (var i = 1; i < dayNames.length; i++)
  {
    if (i < 5) htmlCode += "<th class='rouge10'>"+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 class='barre' align='center'>"+day+"<\/td>";
			else htmlCode += "<td class='barre' align='center' style='background-color:#FFFFFF;'>"+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+"'  class='b'>"+day+"<\/a><\/td>";
			else htmlCode += "<td align='center' style='background-color:#FFFFFF;'><a href='javascript:setDates("+day+", "+month+", "+year+", \""+dateField+"\", \""+formName+"\")' title='"+year+" "+monthNames[month]+" "+day+"' class='b' >"+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:setDates("+currDay+", "+currMonth+", "+currYear+", \""+dateField+"\", \""+formName+"\");' title=''><div class='rouge10'>Today</div><\/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 == 'darv') )
	if ( (dateField == 'darv') && ( (document.form1.darv.value == '')  || (document.form1.darv.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 = darv.getMonth()+1;
		var jour_retour = darv.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;
}