// JavaScript Document
function aleabann()
 {
 var HazMess=new Array();
 HazMess[0]= '<a href="#"><img src="CSS/partenaire-1.gif" style="border: 1px solid black;" ></a>'
 HazMess[1]= '<a href="#"><img src="CSS/partenaire-2.gif" style="border: 1px solid black;" ></a>'
 HazMess[2]= '<a href="#"><img src="CSS/partenaire-3.gif" style="border: 1px solid black;" ></a>'
 HazMess[3]= '<a href="#"><img src="CSS/partenaire-4.gif" style="border: 1px solid black;" ></a>'
 HazMess[4]= '<a href="#"><img src="CSS/partenaire-5.gif" style="border: 1px solid black;" ></a>'
 HazMess[5]= '<a href="#"><img src="CSS/partenaire-6.gif" style="border: 1px solid black;" ></a>'
 HazMessNb = Math.round(Math.random() * (HazMess.length-1));
 document.write(HazMess[HazMessNb]);
}

///////////////// gestionnaire des alertes javascript pour les formulaires ///////////////////

function validare (control, sir) {
	
		alert (sir);
  		control.focus();control.className="redalert";
		return;
	}

	function Test(form) {	

		var err1="Vous devez choisir une date de départ";
		var err3="Vous devez choisir une date de retour";
		var err6="La date de départ doit être supérieure à celle d'arrivée"; 
		
		control=form.date_dep;//date de départ
 		if (control.value == "" || control.value == "jj/mm/aaaa") {
			validare(control,err1);
    	return false;
  	    }
		control=form.date_retour;//date de retour
 		if (control.value == "" || control.value == "jj/mm/aaaa") {
			validare(control,err3);
   		return false;
		}
		var tableau_dep=form.date_dep.value.split("/");
		var tableau_ret=form.date_retour.value.split("/");
		var control=form.date_retour.value;
		if ((tableau_ret[2]<tableau_dep[2]) || ((tableau_ret[2]== tableau_dep[2]) && ((tableau_ret[1]<tableau_dep[1]) || ((tableau_ret[1]==tableau_dep[1]) && (tableau_ret[0]<= tableau_dep[0])))))
		{
			validare(control,err6);
			return false;
		}
  	return true;
}

	function checkForm(form) {
  		if (Test(form))
    		form.submit();
  		return;
		}
		//===============================================
		function Test_(form) {	

		var err1_="Vous devez indiquer votre nom";
		var err2_="Vous devez indiquer votre prénom";
		var err3_="Vous devez indiquer un numéro de téléphone uniquement avec des chiffres, avec indicatif si étranger";
		var err4_="Vous devez indiquer un email valide";
		var err5_="Vous devez indiquer le nombre d'adulte(s)";
		var err6_="Vous devez choisir une date d'arrivée";
		var err7_="Vous devez choisir une date de départ";
		var err8_="La date de départ doit être supérieure à celle d'arrivée"; 
		
		control=form.Nom;//nom
 		if (control.value == "") {
			validare(control,err1_);
    	return false;
  	    }
		control=form.Prenom;//prénom
 		if (control.value == "") {
			validare(control,err2_);
    	return false;
  	    }
		control=form.Email;//email
 		var isEmail =new RegExp("[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","g");
 		if (control.value == "" || control.value=="Email" || isEmail.test(control.value) == false) {
   		validare(control,err4_);
   		return false;
		}
		control=form.Telephone;//telephone
 		if (control.value == "" || control.value=="Téléphone" || isNaN(control.value)== true || control.value.length<10) {
			validare(control,err3_);
   		return false;
		}
		control=form.elements["Nombre de personnes adultes"];
		if (control.value == "") {
			validare(control,err5_);
    	return false;
  	    }
		control=form.date_dep;//date de départ
 		if (control.value == "" || control.value == "jj/mm/aaaa") {
			validare(control,err6_);
    	return false;
  	    }
		control=form.date_retour;//date de retour
 		if (control.value == "" || control.value == "jj/mm/aaaa") {
			validare(control,err7_);
   		return false;
		}
		var tableau_dep=form.date_dep.value.split("/");
		var tableau_ret=form.date_retour.value.split("/");
		var control=form.date_retour.value;
		if ((tableau_ret[2]<tableau_dep[2]) || ((tableau_ret[2]== tableau_dep[2]) && ((tableau_ret[1]<tableau_dep[1]) || ((tableau_ret[1]==tableau_dep[1]) && (tableau_ret[0]<= tableau_dep[0])))))
		{
			validare(control,err8_);
			return false;
		}
		
  	return true;
}

	function checkForm_(form) {
  		if (Test_(form))
    		form.submit();
  		return;
		}
		
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) - 150;
  	//var topPos = findPosY(objet) + objet.offsetHeight + 5;
    var topPos = findPosY(objet) + objet.offsetHeight -180;
  
   
   
    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 cellspacing='3' bgcolor='#D0F38B' 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='CSS/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='CSS/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:#444444' 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;
}