// Fonction de creation de l'objet XMLHttpRequest qui resservira pour chaques fonctions AJAX
function getXhr()
 {
  if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
  else if(window.ActiveXObject)
   {  
    try
     {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
     }
    catch (e)
     {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
     }
   }
  else 
   { 
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour"); 
    xhr = false; 
   } 
 }

function lister_champs(theform)//icic la fonction qui va générer les éléments a envoyer
{
   theform = document.forms[theform];
   var url='';//alert(document.forms[theform].elements);
   for (i=0; i<theform.elements.length; i++)
   {
       if(((theform.elements[i].type=='radio' ||theform.elements[i].type=='checkbox') && theform.elements[i].checked==true) || (theform.elements[i].type!='radio' &&theform.elements[i].type!='checkbox'))//control si c'est des radio ou check box et incrémente le résultat QUE si c'est coché (sans ça il prendrais les deux)
           {
   if(theform.elements[i].type=='select-multiple' || theform.elements[i].type=='select' )//si c'est un select multiple 
   {
    for(j = theform.elements[i].length-1; j >= 0; j-=1)//on parcours les element du select multiple
       {
          if(theform.elements[i].options[j].selected)//si selectionné on incremente
             {
                             if(url){url+='&';}
           url+=theform.elements[i].name+'='+theform.elements[i].options[j].value;
             }
     }
   }
   if(url){url+='&';}
   if(theform.elements[i].type!='select-multiple'){  url+=theform.elements[i].name+'='+theform.elements[i].value;}
           }
        }
        //alert(url);
	return url;//onretourne le resultat vers la fonction appelée
}

function loadResponse(div,response)
{
	//alert(div);
	document.getElementById(div).innerHTML = response;
}

function envoiFormAjax(theform,div, page)
 {//alert(theform+div+page);
 	
	 getXhr();
	 
  
  	xhr.onreadystatechange = function()
   	{
   	//alert(xhr.readyState+"---"+xhr.status);
    	if(xhr.readyState == 4 && xhr.status == 200)
     	{
      		// Nous remplacons le contenu du div mondiv par le retour de "ajax.php"
		  	//var t=setTimeout("alertMsg("+div+","+xhr.responseText+")",3000);
		  	setTimeout(function(){loadResponse(div,xhr.responseText);},1500);
      		//document.getElementById(div).innerHTML = xhr.responseText;
      		//alert('la');
     	} 
   	}
  xhr.open("POST",'ajax/'+page,true);
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  xhr.send(lister_champs(theform));
  document.getElementById(div).innerHTML = "<div class='div_loading'><img src='images/loading.gif'></div>";
  //$('#spaceused1').progressBar(100);
  return false; // /!\il est important d'ajouter ça afin que la page ne soit pas rappelée par le post!!/!\
 }
 
function validate_avis(form, cote) {
	//return true;
	
 var avis_bateau = document.forms[form].avis_bateau;
 var avis_rest = document.forms[form].avis_rest;
 var avis_chambres = document.forms[form].avis_chambres;
 var avis_divert = document.forms[form].avis_divert;
 var avis_service = document.forms[form].avis_service;
 var avis_sport = document.forms[form].avis_sport;
 var avis_rapportQP = document.forms[form].avis_rapportQP;
 var avis_general = document.forms[form].avis_general;
 var avis_adapteFam = document.forms[form].avis_adapteFam;
 
 var avis_commentaire = document.forms[form].avis_commentaire;
 var avis_nom = document.forms[form].avis_nom;
 var avis_prenom = document.forms[form].avis_prenom;
 var avis_email = document.forms[form].avis_email;
 
 
 var emailVal = avis_email.value;
var expMail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

 //alert(avis_bateau);
 //return false;
// alert(document.getElementById("avis_bateau_span"));
  if(avis_bateau.value == 0) {
    inlineMsg(form, document.getElementById("avis_bateau_span"),'Merci de noter « bateau » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_rest.value == 0) {
    inlineMsg(form, document.getElementById("avis_rest_span"),'Merci de noter « Restauration » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_chambres.value == 0) {
    inlineMsg(form, document.getElementById("avis_chambres_span"),'Merci de noter « Chambres » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_divert.value == 0) {
    inlineMsg(form, document.getElementById("avis_divert_span"),'Merci de noter « Divertissements » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_service.value == 0) {
    inlineMsg(form, document.getElementById("avis_service_span"),'Merci de noter « Service a bord » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_sport.value == 0) {
    inlineMsg(form, document.getElementById("avis_sport_span"),'Merci de noter « Sports et loisirs » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_rapportQP.value == 0) {
    inlineMsg(form, document.getElementById("avis_rapportQP_span"),'Merci de noter « Rapport qualite/prix » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_general.value == 0) {
    inlineMsg(form, document.getElementById("avis_general_span"),'Merci de noter « Général » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_adapteFam.value == 0) {
    inlineMsg(form, document.getElementById("avis_adapteFam_span"),'Merci de noter « Adapté aux familles » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  
  
  
  if(avis_nom.value == "") {
    inlineMsg(form, avis_nom,'Merci de remplir le champ « nom » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_prenom.value == "") {
    inlineMsg(form, avis_prenom,'Merci de remplir le champ « prenom » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(expMail.test(emailVal) == false) {
    inlineMsg(form, avis_email,'Veuillez entrer un email valide pour envoyer votre formulaire.',2, cote,0,'fixed');
    return false;
  }
  if(avis_commentaire.value == "") {
    inlineMsg(form, avis_commentaire,'Merci de remplir le champ « commentaire » pour valider votre formulaire.',2, cote,0,'fixed');
    return false;
  }
 //document.forms[form].submit();	
  //return true;
  return true;
}

function validate_form(form, cote) {
	//return true;
 var nom = document.forms[form].form_nom;
 var tel = document.forms[form].form_tel;
 var email = document.forms[form].form_email;
 
 if(document.getElementById('titreDestLand'))
 {
	var dest = document.getElementById('titreDestLand').innerHTML;
    dest = trim(dest);
 }
	
 if(document.getElementById('titreMois'))
	var date = document.getElementById('titreMois').innerHTML;
	
 if(document.getElementById('titreBudget'))
	var budget = document.getElementById('titreBudget').innerHTML;

 var telVal = tel.value;
for(i=0;i<telVal.length;i++)
{
	telVal = telVal.replace('.','');
	telVal = telVal.replace(' ','');
	telVal = telVal.replace('/','');
	telVal = telVal.replace('+','');
	telVal = telVal.replace('-','');
}

var emailVal = email.value;
var expMail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 
 //alert(avis_bateau);
 //return false;
// alert(document.getElementById("avis_bateau_span"));
 /*if(dest)
  {
	  if(dest == "" || dest == "Choisir") {
			inlineMsg(form, dest,"Veuillez choisir une destination pour envoyer votre demande",2, cote);
	    return false;
	  }
  }  */
 if(nom.value == "" || nom.value == "Nom") {
    //inlineMsg(form, nom,"Le champ « Nom » n'est pas valide.",2, cote);
    if(form == 'formLand')
    	inlineMsg(form, nom,"Veuillez entrer un nom valide pour envoyer votre demande",2, cote,40);
    else
		inlineMsg(form, nom,"Veuillez entrer un nom valide pour envoyer votre demande",2, cote);
    return false;
  }
  if(telVal == "" || telVal == "Téléphone" || isNaN(telVal) || telVal.length<10) {
    if(form == 'formLand')
    	inlineMsg(form, tel,"Veuillez entrer un téléphone valide pour envoyer votre demande",2, cote,80);	
	else
		inlineMsg(form, tel,"Veuillez entrer un téléphone valide pour envoyer votre demande",2, cote);
    return false;
  }
  if(emailVal != "" && emailVal != "Email") {
  	if(expMail.test(emailVal) == false)
  	{
	    if(form == 'formLand')
	    	inlineMsg(form, email,"Veuillez entrer un email valide pour envoyer votre demande",2, cote,45);
		else
			inlineMsg(form, email,"Veuillez entrer un email valide pour envoyer votre demande",2, cote);
	    return false;
	 }   
  }
  
 //document.forms[form].submit();	
  //return true;
  return true;
}

function validate_news(form, cote) {
	//return true;
 var email = document.forms[form].form_email;
 

var emailVal = email.value;
var expMail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 

  if(expMail.test(emailVal) == false)
  	{
	    inlineMsg(form, email,"Veuillez entrer un email valide pour envoyer votre demande",2, cote);
	    return false;
	 }   
  
 //document.forms[form].submit();	
  //return true;
  return true;
}


function validate_wcb(form, cote) {
	//return true;
 var tel = document.forms[form].tel;
 
 var telVal = tel.value;
for(i=0;i<telVal.length;i++)
{
	telVal = telVal.replace('.','');
	telVal = telVal.replace(' ','');
	telVal = telVal.replace('/','');
	telVal = telVal.replace('+','');
	telVal = telVal.replace('-','');
}


 
 
  if(telVal == "" || telVal == "Votre téléphone" || isNaN(telVal) || telVal.length<10) {
    inlineMsg(form, tel,"Veuillez entrer un téléphone valide pour envoyer votre demande",2, cote);
    return false;
  }
  
  return true;
}

function validate_codePromo(form, cote) {
	//return true;
 var code = document.forms[form].code;
 
 var codeVal = code.value;

if(codeVal == "" || codeVal == "Mon code")
{
	inlineMsg(form, code,"Veuillez entrer un code promo valide pour voir votre offre spéciale",2, cote);
	return false;
}
else
{
	var flag = 1;
	$.ajax({  // ajax
  		
		url: "ajax/verifCodePromo.ajax.php",		 // url de la page a charger
		type: "POST",
		data: "codePromo="+codeVal,
		async: false,
		timeout:5000,
		cache: false, // pas de mise en cache
		success:function(html){ // si la requÃƒÆ’Ã‚ÂªtÃƒÆ’Ã‚Â© est un succÃƒÆ’Ã‚Â¨s
			//$(div).empty(); 			// on vide le div
			//$(div).append(html); 		// on met dans le div le resultat de la requete ajax
			if(html != 1) {
			    inlineMsg(form, code,"Veuillez entrer un code promo valide pour voir votre offre spéciale",2, cote);
			    flag = 0;
			  }
		},
		error:function(XMLHttpRequest, textStatus, errorThrows){ // erreur durant la requete
		}	  
	});	
  
}
if(flag == 1){
	return true;
}
else{
	return false;
}
 
}


function validate_genererCodePromo(form, cote) {
	//return true;
 var email = document.forms[form].form_email;
 

var emailVal = email.value;
var expMail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 
  if(expMail.test(emailVal) == false)
  	{
	    inlineMsg(form, email,"Veuillez entrer un email valide pour envoyer votre demande",2, cote);
	    return false;
	 }   
  
 //document.forms[form].submit();	
  //return true;
  return true;
}
	



// START OF MESSAGE SCRIPT //

var MSGTIMER = 20;
var MSGSPEED = 10;
var MSGOFFSETDROITE = 0;
var MSGOFFSETGAUCHE = 5;//40
var MSGHIDE = 3;

// build out the divs, set attributes and call the fade function //
function inlineMsg(form, target,string,autohide,cote,offsetGauche,position) {
 
  var msg;
  var msgcontent;
  
  
  		  
  if(cote==0){
  	var msgNom = 'msgDroite';
 	 var msgcontentNom = 'msgcontentDroite';
	  var imgGauche = "msgDroiteImgGauche";
	  var imgDroite = "msgDroiteImgDroite";
  }
  else {
	  var msgNom = 'msgGauche';
 	var msgcontentNom = 'msgcontentGauche';
	  var imgGauche = "msgGaucheImgGauche";
	  var imgDroite = "msgGaucheImgDroite";
  }
  if(!document.getElementById(msgNom)) {
  
    msg = document.createElement('div');
    msg.id = msgNom;
    
    msgImgGauche = document.createElement('div');
    //msgImgGauche.id = "msgImgGauche";
    msgImgGauche.id = imgGauche;
    
    msgImgDroite = document.createElement('div');
    //msgImgDroite.id = "msgImgDroite";
    msgImgDroite.id = imgDroite;
    
    msgcontent = document.createElement('div');
    msgcontent.id = msgcontentNom;
    
	document.body.appendChild(msg);
	msg.appendChild(msgImgGauche);
    msg.appendChild(msgcontent);
    msg.appendChild(msgImgDroite);
    msg.style.filter = 'alpha(opacity=0)';
    msg.style.opacity = 0;
    msg.alpha = 0;
  } else {
    msg = document.getElementById(msgNom);
    msgcontent = document.getElementById(msgcontentNom);
  }
  msgcontent.innerHTML = string;	
  msg.style.display = 'block';
  var msgheight = msg.offsetHeight;
  var msgwidth = msg.offsetWidth;
  
  if(position == "fixed")
  	$(msg).css("position","fixed");
  else
  	$(msg).css("position","absolute");
  
  var targetdiv = target;
  //alert(targetdiv);
  
  
  targetdiv.focus();
  //targetdiv.value="";
  var targetheight = targetdiv.offsetHeight;
  //alert(targetheight);
  var targetwidth = targetdiv.offsetWidth;
  var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
  
  if(offsetGauche) 
  	monOffset = offsetGauche;
  else
  	monOffset = MSGOFFSETGAUCHE;

  
  if(cote==0){
  	var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSETDROITE;
  }
  else{
  	var leftposition = leftPosition(targetdiv) - msgwidth - monOffset;
  }
  msg.style.top = topposition + 'px';
  msg.style.left = leftposition + 'px';
  clearInterval(msg.timer);
  msg.timer = setInterval("fadeMsg(1, '"+msgNom+"')", MSGTIMER);
  if(!autohide) {
    autohide = MSGHIDE;  
  }
  window.setTimeout("hideMsg('"+msgNom+"')", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msgNom) {
  var msg = document.getElementById(msgNom);
  if(!msg.timer) {
    msg.timer = setInterval("fadeMsg(0, '"+msgNom+"')", MSGTIMER);
  }
}

// face the message box //
function fadeMsg(flag, msgNom) {
  if(flag == null) {
    flag = 1;
  }
  var msg = document.getElementById(msgNom);
  var value;
  if(flag == 1) {
    value = msg.alpha + MSGSPEED;
  } else {
    value = msg.alpha - MSGSPEED;
  }
  msg.alpha = value;
  msg.style.opacity = (value / 100);
  msg.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99) {
    clearInterval(msg.timer);
    msg.timer = null;
  } else if(value <= 1) {
    msg.style.display = "none";
    clearInterval(msg.timer);
  }
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
	//alert(target);
  var left = 0;
  if(target.offsetParent) {
    while(1) {
      left += target.offsetLeft;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.x) {
    left += target.x;
  }
  return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
  var top = 0;
  if(target.offsetParent) {
    while(1) {
      top += target.offsetTop;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.y) {
    top += target.y;
  }
  top+=5;
  return top;
}

// preload the arrow //
if(document.images) {
  arrow = new Image(7,80); 
  arrow.src = "images/msg_arrow.gif"; 
  arrow2 = new Image(7,80); 
  arrow2.src = "images/msg_arrow.png"; 
}


function checkData(form)
{
		
		//alert($("#boutonEnvoyer"+form));
		//$("#boutonEnvoyer"+form).css("background-image", "url(/images/bouton-"+form+"-active.png)"); 
		
	var nom = document.forms[form].form_nom;
	var tel = document.forms[form].form_tel;
	var email = document.forms[form].form_email;
	
	var telVal = tel.value;
	for(i=0;i<telVal.length;i++)
	{
		telVal = telVal.replace('.','');
		telVal = telVal.replace(' ','');
		telVal = telVal.replace('/','');
		telVal = telVal.replace('+','');
		telVal = telVal.replace('-','');
	}

var emailVal = email.value;
var expMail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 
 //alert(avis_bateau);
 //return false;
// alert(document.getElementById("avis_bateau_span"));
 if(nom.value == "" || nom.value == "Nom") {
   // $("#boutonEnvoyer"+form).css("background-image", "url(/images/bouton-"+form+"-desactive.png)"); 
   if( $("#boutonEnvoyer"+form).hasClass(form+'SubmitActif') )
	{
		$("#boutonEnvoyer"+form).removeClass( form+'SubmitActif' );
		$("#boutonEnvoyer"+form).addClass( form+'Submit' );
	}
    return false;
    
  }
  if(telVal == "" || telVal == "Téléphone" || isNaN(telVal) || telVal.length<10) {
     //$("#boutonEnvoyer"+form).css("background-image", "url(/images/bouton-"+form+"-desactive.png)"); 
     if( $("#boutonEnvoyer"+form).hasClass(form+'SubmitActif') )
		{
			$("#boutonEnvoyer"+form).removeClass( form+'SubmitActif' );
			$("#boutonEnvoyer"+form).addClass( form+'Submit' );
		}
    return false;
  }
  if(emailVal != "" && emailVal != "Email") {
  	if(expMail.test(emailVal) == false)
  	{
	    // $("#boutonEnvoyer"+form).css("background-image", "url(/images/bouton-"+form+"-desactive.png)"); 
	    if( $("#boutonEnvoyer"+form).hasClass(form+'SubmitActif') )
		{
			$("#boutonEnvoyer"+form).removeClass( form+'SubmitActif' );
			$("#boutonEnvoyer"+form).addClass( form+'Submit' );
		}
	    return false;
	 }   
  }
 //document.forms[form].submit();
 //alert($("#boutonEnvoyer"+form));	
  //$("#boutonEnvoyer"+form).css("background-image", "url(/images/bouton-"+form+"-active.png)"); 
  if( $("#boutonEnvoyer"+form).hasClass(form+'Submit') )
	{
		$("#boutonEnvoyer"+form).removeClass( form+'Submit' );
		$("#boutonEnvoyer"+form).addClass( form+'SubmitActif' );
	}
  return true;
}

function validate_champs()
{
	var dest 				= document.getElementById('titreDestLand').innerHTML;
	var date 				= document.getElementById('titreMois').innerHTML;
	var budget 				= document.getElementById('titreBudget').innerHTML;
	
	dest = trim(dest);
	date = trim(date);
	budget = trim(budget);
	
	if (dest==""  || dest=="Choisir") 
	{
		alert("Veuillez choisir une Destination valide");
		document.getElementById('titreDestLand').focus();
		return false;
	}   
	if (date=="" || date=="Choisir") 
	{
		alert("Veuillez choisir une Date de départ valide");
		document.getElementById('titreMois').focus();
		return false;
	}   
	if (budget=="" || budget=="Choisir") 
	{
		alert("Veuillez choisir un Budget valide");
		document.getElementById('titreBudget').focus();
		return false;
	} 
	return true;
}
