function getXhr() {
	var xhr = null;
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	} else { // XMLHttpRequest non support√© par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		xhr = false;
	}
	return xhr;
}


function isEmpty(val) {
	return val.length < 1;
}


function isEmail(email) {
	invalidChars = " ~'^`\"*+=\\|][(){}$&!#%/:,;";
	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i);
		if (email.indexOf(badChar,0) > -1) return false;
	}
	lengthOfEmail = email.length;
	if ((email.charAt(lengthOfEmail - 1) == ".") || (email.charAt(lengthOfEmail - 2) == "."))
	return false;
	Pos = email.indexOf("@",1);
	if (email.charAt(Pos + 1) == ".") return false;
	while ((Pos < lengthOfEmail) && ( Pos != -1)) {
		Pos = email.indexOf(".",Pos);
		if (email.charAt(Pos + 1) == ".") return false;
		if (Pos != -1) Pos++;
	}
	atPos = email.indexOf("@",1);
	if (atPos == -1) return false;
	if (email.indexOf("@",atPos+1) != -1) return false;
	periodPos = email.indexOf(".",atPos);
	if (periodPos == -1) return false;
	if (periodPos+3 > email.length) return false;
	return true;
}


function CheckDate(d) {
  // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
  // Le séparateur est défini dans la variable separateur
  var amin=1950; // annee mini
  var amax=2050; // annee maxi
  var separateur="/"; // separateur entre jour/mois/annee
  var j=(d.substring(0,2));
  var m=(d.substring(3,5));
  var a=(d.substring(6));
  var ok=1;
  if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
     //alert("Le jour n'est pas correct."); 
     ok=0;
  }
  if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
     //alert("Le mois n'est pas correct."); 
     ok=0;
  }
  if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
     //alert("L'annee n'est pas correcte."); 
     ok=0;
  }
  if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
     //alert("Les separateurs doivent être des "+separateur); 
     ok=0;
  }
  if (ok==1) {
     var d2=new Date(a,m-1,j);
     j2=d2.getDate();
     m2=d2.getMonth()+1;
     a2=d2.getFullYear();
     if (a2<=100) {a2=1900+a2}
     if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
        //alert("La date "+d+" n'existe pas !");
        ok=0;
     }
  }
  return ok;
}


function checkTurbo() {
	if (isEmpty(document.getElementById('Name').value)) {
		alert("Veuillez indiquer votre nom...");
		return false;
	}
	else if (isEmpty(document.getElementById('Email').value)) {
		alert("Veuillez indiquer votre email...");
		return false;
	}
	else if (!isEmail(document.getElementById('Email').value)) {
		alert("Votre email semble incorrect...");
		return false;
	}
	else if (isEmpty(document.getElementById('TypeMine').value)) {
		alert("Veuillez indiquer le type mine de votre v\u00E9hicule...");
		return false;
	}
	else if (isEmpty(document.getElementById('NumSerie').value)) {
		alert("Veuillez indiquer le num\u00E9ro de s\u00E9rie de votre v\u00E9hicule...");
		return false;
	}
	else if (isEmpty(document.getElementById('DateCirc').value)) {
		alert("Veuillez indiquer la date de 1\u00E8re mise en circulation...");
		return false;
	}
	else if(CheckDate(document.getElementById('DateCirc').value)==0){
		alert("Votre date est incorrect...");
		return false;
	}
	else if (isEmpty(document.getElementById('Message').value)) {
		alert("Votre message est vide...");
		return false;
	}
	else {
		return true;
	}
}


function checkFormCentre() {
	if(document.getElementById('CodePostal').value == "") {
		alert("Veuillez indiquer votre code postal (5 chiffres)...");
		return false;
	} else {
		if(document.getElementById('CodePostal').value.length < 5) {
			alert('Code postal invalide (5 chiffres requis)');
			return false;
		} else {
			return true;
		}
	}
}


function checkFormRelais() {
	if(document.getElementById('CodePostal').value == "") {
		alert("Veuillez indiquer votre code postal (5 chiffres)...");
		return false;
	} else {
		if(document.getElementById('CodePostal').value.length < 5) {
			alert('Code postal invalide (5 chiffres requis)');
			return false;
		} else {
			return true;
		}
	}
}


function checkSearchReference() {
	if(document.getElementById('reference').value == "") {
		alert('Veuillez sp\u00E9cifier votre r\u00E9f\u00E9rence...');
		return false;
	}
}


function getCardansModele() {
	var xhr = getXhr();
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('cardan-modele').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('cardan-modele').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=CardansModele.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("MarqueUrl="+marque);
}


function getCardansResults() {
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	var modele = document.getElementById("modele");
	modele = modele.options[modele.selectedIndex].value;
	window.location.href = "/cardans/"+ marque +"/"+ modele +".html";
}


function getBatterieCarburation() {
	var xhr = getXhr();
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('batterie-carburation').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('batterie-carburation').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=BatteriesCarburation.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("MarqueUrl="+marque);
}



function getBatterieModele() {
	var xhr = getXhr();
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	var carburation = document.getElementById("carburation");
	carburation = carburation.options[carburation.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('batterie-modele').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('batterie-modele').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=BatteriesModele.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("MarqueUrl="+marque+"&CarburationUrl="+carburation);
}


function getBatterieResults() {
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	var carburation = document.getElementById("carburation");
	carburation = carburation.options[carburation.selectedIndex].value;
	var modele = document.getElementById("modele");
	modele = modele.options[modele.selectedIndex].value;
	window.location.href = "/batteries/"+marque+"/"+carburation+"/"+modele+".html";
}


function getBatterieReset() {
	var xhr = getXhr();
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('batterie-modele').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('batterie-modele').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=BatteriesModele.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("MarqueUrl="+marque+"&CarburationUrl=");
}


function Check() {
	// Echange 1
	if(document.getElementById("echange1").checked == true) {
		if(document.getElementById("typemine").value == "" || document.getElementById("numserie").value == "" || document.getElementById("datecirc").value == "") {
			alert("Veuillez remplir le type mine, le num\u00E9ro de s\u00E9rie et la date de 1\u00E8re immatriculation de votre v\u00E9hicule.");
			return false;
		}
	}

	// Echange 2
	if(document.getElementById("echange2").checked == true) {
		if(document.getElementById("typemine2").value == "" || document.getElementById("numserie2").value == "" || document.getElementById("datecirc2").value == "") {
			alert("Veuillez remplir le type mine, le num\u00E9ro de s\u00E9rie et la date de 1\u00E8re immatriculation de votre v\u00E9hicule.");
			return false;
		}
	}

	// Articles
	var article = document.form.article;
	var i=0;
	while (i < article.length && article[i].checked == false) {
		i++ ;
	}
	if (i>=article.length) {
		alert("Veuillez s\u00E9lectionner le(s) article(s) que vous souhaitez retourner...");
		return false;
	}
	var raison = document.form.raison;
	var i=0;
	while (i < raison.length && raison[i].checked == false) {
		i++ ;
	}
	if (i>=raison.length) {
		alert("Veuillez pr\u00E9ciser la raison du retour de votre commande...");
		return false;
	}
}


function CheckDate(d) {
 	// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
 	// Le séparateur est défini dans la variable separateur
 	var amin=1950; // annee mini
 	var amax=2050; // annee maxi
 	var separateur="/"; // separateur entre jour/mois/annee
 	var j=(d.substring(0,2));
 	var m=(d.substring(3,5));
 	var a=(d.substring(6));
 	var ok=1;

	if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) { //alert("Le jour n'est pas correct."); 
		ok=0;
	}
	if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) { //alert("Le mois n'est pas correct.");
		ok=0;
	}
	if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) { //alert("L'annee n'est pas correcte.");
		ok=0;
	}
	if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) { //alert("Les separateurs doivent être des "+separateur);
		ok=0;
	}
	if (ok==1) {
		var d2=new Date(a,m-1,j);
		j2=d2.getDate();
		m2=d2.getMonth()+1;
		a2=d2.getFullYear();
		if (a2<=100) {a2=1900+a2}
		if ( (j!=j2)||(m!=m2)||(a!=a2) ) { //alert("La date "+d+" n'existe pas !");
			ok=0;
		}
	}
	return ok;
}


function checkMessage() {
	if (isEmpty(document.getElementById('lastname').value)) {
		alert("Veuillez indiquer votre nom...");
		return false;
	}
	else if (isEmpty(document.getElementById('firstname').value)) {
		alert("Veuillez indiquer votre pr\u00E9nom...");
		return false;
	}
	else if (isEmpty(document.getElementById('email').value)) {
		alert("Veuillez indiquer votre email...");
		return false;
	}
	else if (!isEmail(document.getElementById('email').value)) {
		alert("Votre email semble incorrect...");
		return false;
	}
	else if ((document.getElementById('size')) && (isEmpty(document.getElementById('size').value))) {
		alert("Veuillez indiquer la taille de vos pneus...");
		return false;
	}
	else if (document.getElementById('pneustype')) {
		
		if (document.getElementById('pneustype').selectedIndex == 0){
			alert("Veuillez selectionner un type de pneus");
			return false;
		}
	}
	else if (isEmpty(document.getElementById('message').value)) {
		alert("Votre message est vide...");
		return false;
	}
	else {
		return true;
	}
}


function checkMessageTech() {
	if (isEmpty(document.getElementById('name').value)) {
		alert("Veuillez indiquer votre nom...");
		return false;
	}
	else if (isEmpty(document.getElementById('email').value)) {
		alert("Veuillez indiquer votre email...");
		return false;
	}
	else if (!isEmail(document.getElementById('email').value)) {
		alert("Votre email semble incorrect...");
		return false;
	}
	else if (isEmpty(document.getElementById('typemine').value)) {
		alert("Veuillez indiquer le type mine de votre v\u00E9hicule...");
		return false;
	}
	else if (isEmpty(document.getElementById('numserie').value)) {
		alert("Veuillez indiquer le num\u00E9ro de s\u00E9rie de votre v\u00E9hicule...");
		return false;
	}
	else if (isEmpty(document.getElementById('datecirc').value)) {
		alert("Veuillez indiquer la date de 1\u00E8re mise en circulation...");
		return false;
	}
	else if(CheckDate(document.getElementById('datecirc').value)==0){
		alert("Votre date est incorrect...");
		return false;
	}
	else if (isEmpty(document.getElementById('message').value)) {
		alert("Votre message est vide...");
		return false;
	}
	else {
		return true;
	}
}


function checkMessageLivreOr() {
	if (isEmpty(document.getElementById('avisclient').value)) {
		alert("Votre message est vide...");
		return false;
	}
	else {
		return true;
	}
}


function getMyCarModel() {
	var xhr = getXhr();
	var ref = document.getElementById("marque");
	ref = ref.options[ref.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('yourcar-modele').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('yourcar-modele').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=CompteClientVoitureModele.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("Marque="+ref);
}


function getMyCarMotor() {
	var xhr = getXhr();
	var model = document.getElementById("modele");
	model = model.options[model.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('yourcar-motor').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('yourcar-motor').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=CompteClientVoitureType.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("Modele="+model);
}


function getMyCarValid() {
	var xhr = getXhr();
	var ref = document.getElementById("marque");
	ref = ref.options[ref.selectedIndex].value;
	var model = document.getElementById("modele");
	model = model.options[model.selectedIndex].value;
	var motor = document.getElementById("motorisation");
	motor = motor.options[motor.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('yourcar-valid').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('yourcar-valid').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=CompteClientVoitureValid.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("Marque="+ref+"&Modele="+model+"&Motorisation="+motor);
}


function getMyCarReset() {
	var xhr = getXhr();
	var ref = document.getElementById("marque");
	ref = ref.options[ref.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('yourcar-motor').innerHTML = "Loading...";
			document.getElementById('yourcar-valid').innerHTML = "";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('yourcar-motor').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=CompteClientVoitureType.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("Marque="+ref+"&Modele=&Motorisation=");
}


function getPiecesModele() {
	var xhr = getXhr();
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('pieces-modele').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('pieces-modele').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=PiecesModele.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("MarqueUrl="+marque);
}


function getPiecesType() {
	var xhr = getXhr();
	var modele = document.getElementById("modele");
	modele = modele.options[modele.selectedIndex].value;
	// On defini ce qu'on va faire quand on aura la reponse
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('pieces-type').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('pieces-type').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=PiecesType.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("ModeleUrl="+modele);
}


function getPiecesReset() {
	var xhr = getXhr();
	xhr.onreadystatechange = function() {
		// On ne fait quelque chose que si on a tout recu et que le serveur est ok
		if(xhr.readyState == 1) {
			document.getElementById('pieces-type').innerHTML = "Loading...";
		}
		if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('pieces-type').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","/expershop?Page=PiecesType.tmpl",true);
	// ne pas oublier ca pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	xhr.send("ModeleUrl=");
}


function checkPieces() {
	var marque = document.getElementById("marque");
	marque = marque.options[marque.selectedIndex].value;
	var modele = document.getElementById("modele");
	modele = modele.options[modele.selectedIndex].value;
	var type = document.getElementById("type");
	type = type.options[type.selectedIndex].value;
	if(marque == "0" || modele == "0" || type == "0") {
		alert("Veuillez s\u00E9lectionnner votre v\u00E9hicule avant de valider...");
		return false;
	} else {
		return true;
	}
}


function checkRefModel() {
	var refmodel = document.getElementById('refmodel').value;
	if(refmodel == "") {
		alert('Veuillez remplir le champs avant de valider');
		return false;
	} else {
		return true;
	}
}


function checkTypeMine() {
	var refmodel = document.getElementById('typemine').value;
	var refmodel2 = document.getElementById('typemine2').value;
	if(refmodel == "" && refmodel2 == "") {
		alert('Veuillez remplir votre num\u00E9ro de type mine');
		return false;
	} else {
		return true;
	}
}


function checkNewsletter() {
	var newsletter = document.getElementById('newsletter-box').value;
	if(newsletter == "" || newsletter == "Newsletter") {
		alert('Veuillez remplir le champs avant de valider');
		return false;
	} else {
		return true;
	}
}


function checkCodePostal() {
	if(document.getElementById('radio-centre').checked == true) {
		if(document.getElementById('cp').value == "") {
			alert('Veuillez remplir le champs code postal avant de valider');
			return false;
		}
		if(document.getElementById('cp').value.length < 5) {
			alert('Code postal invalide (5 chiffres requis)');
			return false;
		}
	} else {
		if(document.getElementById('radio-relais').checked == true) {
			if(document.getElementById('cp2').value == "") {
				alert('Veuillez remplir le champs code postal avant de valider');
				return false;
			}
			if(document.getElementById('cp2').value.length < 5) {
				alert('Code postal invalide (5 chiffres requis)');
				return false;
			}
		}
	}
}
