/************* Script de la Page de connexion************/

// A l'ouverture de la page initialiser l'objet ajax à false
var xhr = false;

// Si l'utilisateur n'a pas cliqué sur deconnexion
chaine_url = window.location.search.slice(1,window.location.search.length);

// Si aucune variable n'a été passé en url
if(chaine_url == "")
{
	// on verifie si ses identifiant de connexion son enregistré en cookie et on le connect
	
	// Charger le cookie du navigateur
	var cookie = document.cookie;
	
	// Découper le cookie avec le délimieur ; (le cookie contient par défaut l'id de la session)
	// Si le cookie de la connexion existe il sera le premier à être afficher (les deux cookie son séparé par un point virgule)
	tab_cookie = cookie.split(";");
	
	// Vérifier si les cookie pseudo et mot de passe sont existe
	if( (cookie.indexOf("pseudo")>=0) && (cookie.indexOf("motdepasse")>=0) )
	{
		// l'attribut et la valeur son séparé par "="
		cookie_pseudo = tab_cookie[0];
		cookie_motdepasse = tab_cookie[1];
		pseudo = cookie_pseudo.split("=")[1];
		motdepasse = cookie_motdepasse.split("=")[1];
		
		// Connecter l'utilisateur via ajax
		createXhr();
		
		if(xhr)
		{						
			memoriser = false;
			xhr.open("POST", "ajax_connect.php", true);
			xhr.setRequestHeader("Content-Type", "Application/x-www-form-urlencoded");
			xhr.send("pseudo=" + pseudo + "&motdepasse=" + motdepasse + "&memoriser=" + memoriser);
			xhr.onreadystatechange = doConnect;	
		}
		
	}
}

// Envoyer le login et mot de passe provenant du formulaire au script php
// via l'object xhr d'ajax.
function ajax_connect()
{	
	
	createXhr();
	
	if(xhr)
	{	
		
		if(verifierChampConnection())			
		{
				
			pseudo = document.forms[0].pseudo.value;
			
			motdepasse = document.forms[0].motdepasse.value;	
			memoriser = document.forms[0].cb_memoriser.checked;
			xhr.open("POST", "ajax_connect.php", true);
			xhr.setRequestHeader("Content-Type", "Application/x-www-form-urlencoded");
			xhr.send("pseudo=" + pseudo + "&motdepasse=" + motdepasse + "&memoriser=" + memoriser);
			xhr.onreadystatechange = doConnect;	
			
			
		}
	}
}

// Envoyer le login et mot de passe provenant du formulaire au script php
// via l'object xhr d'ajax.
function ajax_connect_client()
{	
	
	createXhr();
	
	if(xhr)
	{	
		
		if(verifierChampConnection())			
		{
				
			pseudo = document.forms[0].pseudo.value;
			
			motdepasse = document.forms[0].motdepasse.value;	
			memoriser = document.forms[0].cb_memoriser.checked;
			xhr.open("POST", "ajax_connect.php", true);
			xhr.setRequestHeader("Content-Type", "Application/x-www-form-urlencoded");
			xhr.send("pseudo=" + pseudo + "&motdepasse=" + motdepasse + "&memoriser=" + memoriser);
			xhr.onreadystatechange = doConnectClient;	
			
			
		}
	}
}

// Modifier le drappeau du pays
function update_flag()
{	
	
	createXhr();
	
	if(xhr)
	{		
		var nom_pays = document.forms[0].select_pays.value;
		var div_image = document.getElementById("divImage");
		if(nom_pays!="")
		{
			xhr.open("POST", "ajax_update_flag.php", true);
			xhr.setRequestHeader("Content-Type", "Application/x-www-form-urlencoded");
			xhr.send("nom_pays=" + nom_pays);
			xhr.onreadystatechange = doUpdateFlag;	
		}
		else
		{
			div_image.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;";
		}
	}
}

function doUpdateFlag()
{
	
	if(xhr.readyState == 4 && xhr.status == 200)
	{			
		var div_image = document.getElementById("divImage");
		var serverReponse = xhr.responseText;


		div_image.innerHTML = serverReponse;

	}
}

// Initialiser l'object xhr selon le navigateur		
function createXhr()
{
	if(window.XMLHttpRequest)
	{
		xhr = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		xhr = new ActiveXObject("Microsoft.XMLHTTP");		
	}
	else
	{
		alert("Votre navigateur ne supporte pas l'object XMLHttpRequest");
	}
}

// Envoyer le login et mot de passe provenant du formulaire au script php
// via l'object xhr d'ajax.
function ajax_identif()
{	

	createXhr();
	
	if(xhr)
	{		
		if(verifierChampConnection())			
		{
				
			pseudo = document.forms[0].pseudo.value;
			motdepasse = document.forms[0].motdepasse.value;	
			
			xhr.open("POST", "ajax_identif.php", true);
			xhr.setRequestHeader("Content-Type", "Application/x-www-form-urlencoded");
			xhr.send("pseudo=" + pseudo + "&motdepasse=" + motdepasse);
			xhr.onreadystatechange = doIdentif;	
			
		}
	}
}

// La reponse d'ajax est "client" si l'internaute est trouvé.
// Sinon la reponse est "nontrouve"
// Si la reponse est egale à "nontrouve" on affiche la ligne qui contient le message d'erreur
// dans le cas contraire on redirige l'utilisateur vers la page coordonnee.php
function doIdentif()
{
	
	if(xhr.readyState == 4 && xhr.status == 200)
	{
		
		var serverReponse = xhr.responseText;
	
		// compte non trouvé
		if(serverReponse=="nontrouve")
		{
			
			// Afficher la ligne contenant le message d'erreur
			var div_erreur = document.getElementById("div_erreur");
			
			div_erreur.innerHTML = "Login ou mot de passe incorrecte";
			
			// Vider les champs
			document.forms[0].pseudo.value = "";
			document.forms[0].motdepasse.value = "";		
			//document.formCon.cb_memoriser.checked = false;	
		}

		// Redirection vers la page cordonnee
		if(serverReponse=="client")
			window.location = "coordonnee.php";
			
	}
}

// La reponse d'ajax est le type de l'utilisateur voulant se connecter, si il existe.
// Sinon la reponse est "nontrouve"
// Si la reponse est egale à "nontrouve" on ajoute un message d'erreur au label labelMsg	
// dans le cas contraire on redirige l'utilisateur vers sa page perso selon son type
function doConnect()
{
	
	if(xhr.readyState == 4 && xhr.status == 200)
	{
			
		var serverReponse = xhr.responseText;
		// compte non trouvé
		if(serverReponse!="admin")
		{
			// Afficher un message d'erreur dans le label
			document.getElementById("labelMsg").innerHTML = "Pseudo ou mot de passe incorrecte";
			
			// Vider les champs
			document.forms[0].pseudo.value = "";
			document.forms[0].motdepasse.value = "";		
			document.forms[0].cb_memoriser.checked = false;	
		}

		// Redirection vers l'éspace administrateur
		if(serverReponse=="admin")
			window.location = "../livre_or/list_message.php?lvr=1";			
	}
}

function doConnectClient()
{
	
	if(xhr.readyState == 4 && xhr.status == 200)
	{
			
		var serverReponse = xhr.responseText;
		// compte non trouvé
		if(serverReponse!="client")
		{
			// Afficher un message d'erreur dans le label
			document.getElementById("labelMsg").innerHTML = "Pseudo ou mot de passe incorrecte";
			
			// Vider les champs
			document.forms[0].pseudo.value = "";
			document.forms[0].motdepasse.value = "";		
			document.forms[0].cb_memoriser.checked = false;	
		}

		// Redirection vers l'espace client
		if(serverReponse=="client")
			window.location = "../client/mon_compte.php?mcpt=1";			
	}
}


// Verifier si le pseudo et mot de passe sont saisies
function verifierChampConnection()
{
	if((document.forms[0].pseudo.value=="")||(document.forms[0].motdepasse.value==""))
	{
		alert("Veuillez saisir votre pseudo ainsi que votre mot de passe!");
		return false;
	}
	return true;	
}

/***************************** Controles de la rubrique CATEGORIE ***************************/

// Vérifier les formulaire de la gestion de catégorie
function verifieChampCategorie()
{
	if((document.formCategorie.titre_langue_1.value==""))
	{
		alert("Veuillez saisir le titre français de la catégorie!");
		return false;
	}
	return true;		
}

// Redirection vers la page supprimer_categorie.php et envoi de l'id de la catégorie
function supprimer_categorie(idcat, lib_cat)
{
	if(confirm("Attention : Toutes les sous-catégries de la catégorie "+lib_cat+" seront supprimer!\nEtes vous sûr de vouloir supprimer la catégorie ?"))
		document.location = "supprimer_categorie.php?idcat="+idcat;
}

// Supprimer l'image de la catégorie avec ajax et afficher à la place un champ file 
function supprimer_image(idcat)
{
	if(confirm("Etes vous sûr de vouloir supprimer l'image de la catégorie ?"))
	{
		document.location = 'modifier_categorie.php?supim=1&idcat='+idcat;	
	}
}


/************************************* Controles de la rubrique PRODUIT *************************************/

// Vérifier la saisie des champs lors de l'ajout d'un produit
function verifFormProduit()
{
	var somme = "";
	if((document.forms[0].ref_prod.value==""))
	{
		somme += "La référence du produit.\n";
	}
	
	if((document.forms[0].prix_ht.value==""))
	{
		somme += "Le prix du produit.\n";
	}	
	
	//var input_langue_fr = "nom_prod_langue_1";
	if((document.forms[0].nom_prod_langue_1.value==""))
	{
		somme += "Le titre du produit en langue française.\n";
	}	
	if(somme!="")
	{
		alert("Veuillez saisir les champs suivants :\n"+somme);
		return false;
	}
		//var input_langue_fr = "nom_prod_langue_1";
	if((document.forms[0].prix_ht.value!="") && (verifReel(document.forms[0].prix_ht.value)))
	{
		alert("Veuillez saisir un montant hors taxes valide");
		return false;
	}	
	
	if((document.forms[0].poid.value!="") && (verifReel(document.forms[0].poid.value)))
	{
		alert("Veuillez saisir un poid valide");
		return false;
	}
	
	if((document.forms[0].ordre_trie.value!="") && (verifReel(document.forms[0].ordre_trie.value)))
	{
		alert("l'ordre de trie doit être entier");
		return false;
	}
	
	if((document.forms[0].quantite.value!="") && (verifReel(document.forms[0].quantite.value)))
	{
		alert("Veuillez saisir une quntité valide");
		return false;
	}	
	
	
	return true;	
}


// Redirection vers la page supprimer_produit.php et envoi de l'id du produit
function supprimer_produit(idpr)
{
	if(confirm("Attention : Etes vous sûr de vouloir supprimer définitivement le produit ?"))
		document.location = "supprimer_produit.php?idpr="+idpr;
}

// Calculer le prix TTC du produit au chongement de la tva ou au changement du prix ht
function calculer_prix_ttc()
{
		
	var prix_ht = document.forms[0].prix_ht.value;
	var index_tva = document.forms[0].select_tva.value;

	// Si le prix ht est saisie correctemtn et la TVA choisie n'est pas vide
	if(index_tva!="" && prix_ht!="" && !verifReel(prix_ht))
	{
		// Calculer le taux de la tva
		taux_tva = document.forms[0].select_tva.options[index_tva-1].text;
		valeur_tva = (parseFloat(prix_ht) * parseFloat(taux_tva)) / 100;
		mantant_ttc = parseFloat(prix_ht) + parseFloat(valeur_tva);
		

		// Afficher le montant ttc (toFixed(2) afficher uniquement deux chiffres après la virgule)
		document.forms[0].prix_ttc.value = mantant_ttc.toFixed(2);
	}
	else
	// Si la TVA choisie est le vide ou bien prix ht n'est pas saisie correctemnt
	{
		// Vider le champ prix ttc
		document.forms[0].prix_ttc.value = "";
	}
	
}

// **** Ajout dynamique des images du produit *****
// Ajouter une ligne (page modifier produit : la nouvelle ligne ajouté ne contient pas le bouton radio "actif")

 function ajouterElementModifier()
 {
    // Charger le nombre des images déjà ajouté
     var nbImage = document.forms[0].nbImage.value;

	
     // Charger la balise dont on veut inserer la nouvelle ligne juste avant elle
     var row = document.getElementById("idrow");
	 var col = document.createElement("td");
	 col.innerHTML = "<div id='divImage_"+nbImage+"'><input type='file' name='image_"+nbImage+"' class='formulaire_file_dynamique'>&nbsp; Titre : <input type='text' name='titre_"+nbImage+"' class='formulaire_cat_dynamique'>&nbsp;<input class='formulaire_bouton_dynamique' type='button' value='supprimer' onclick=supprimerElement('divImage_"+nbImage+"')></div>";
	 var newRow = document.createElement("tr");
	 newRow.appendChild(col);

     // Inserer la nouvelle ligne
     //document.forms[0].insertBefore(nouvelleDiv, row);
	 document.getElementById("tbody").insertBefore(newRow,row);
	 
     // Ajouter 1 au nombre des images ajoutées
     document.forms[0].nbImage.value= parseInt(nbImage)+1 ;


 }
 
// Ajouter une ligne (page ajouter_produit)
 function ajouterElement()
 {
    // Charger le nombre des images déjà ajouté
     var nbImage = document.forms[0].nbImage.value;

	
     // Charger la balise dont on veut inserer la nouvelle ligne juste avant elle
     var row = document.getElementById("idrow");
	 var col = document.createElement("td");
	 col.innerHTML = "<div id='divImage_"+nbImage+"'><input type='file' name='image_"+nbImage+"' class='formulaire_file_dynamique'>&nbsp;Actif : <input type='radio' name='checked' value='"+nbImage+"'> Titre : <input type='text' name='titre_"+nbImage+"' class='formulaire_cat_dynamique'>&nbsp;<input class='formulaire_bouton_dynamique' type='button' value='supprimer' onclick=supprimerElement('divImage_"+nbImage+"')></div>";
	 var newRow = document.createElement("tr");
	 newRow.appendChild(col);

     // Inserer la nouvelle ligne
     //document.forms[0].insertBefore(nouvelleDiv, row);
	 document.getElementById("tbody").insertBefore(newRow,row);
	 
     // Ajouter 1 au nombre des images ajoutées
     document.forms[0].nbImage.value= parseInt(nbImage)+1 ;


 }
 
 // Supprimer une ligne (la balise div dont l'id est passé en paramètre sera supprimer)
 function supprimerElement(id_element)
 {
    element = document.getElementById(id_element);
    // element.innerHTML = ""; 
	element.style.display = 'none';
 }


// Supprimer l'image de la catégorie avec ajax et afficher à la place un champ file 
function supprimer_image_produit(idimg, idpr)
{

	if(confirm("Etes vous sûr de vouloir supprimer l'image du produit ?"))
	{
		document.location = 'modifier_produit.php?supim=1&idimg='+idimg+"&idpr="+idpr;	
	}
}







/************************************* Controles de la rubrique PROMOTION *************************************/

// Au moment de changement de la catégorie, utiliser ajax pour remplir la liste des produits 
function charger_produit()
{
	
	createXhr();
	
	if(xhr)
	{

		// Si l'utilisateur a selectionné une catégorie
		if(document.forms[0].select_categorie.value!="")			
		{
			// Récuperer l'id de la catégorie séléctionnée
			var id_cat = document.forms[0].select_categorie.value;
			
			// Envoyer l'id à un script php qui permet de retourner la liste des produits appartenant à la catégorie (qui n'on pas déja une promotion)
			xhr.open("POST", "charger_produit.php", true);
			xhr.setRequestHeader("Content-Type", "Application/x-www-form-urlencoded");
			xhr.send("id_cat=" + id_cat);
			
			// A la réception de la réponse remplir la liste des produits
			xhr.onreadystatechange = fill_products;				
		}
		// Si l'utilisateur n'a pas sélectionné une catégorie
		else
		{
			// Récuperer le champ div  qui va recevoir la liste déroulante les produits
			var div_produit = document.getElementById("div_produit");
			
			// Créer une balise <select> vide
			var new_select = "<select name='select_produit' id='select_produit' class='formulaire_cat' size='5'> </seclect>";
			div_produit.innerHTML = new_select;
			
		}
	}				
}

// Remplir la liste déroulante avec des produits
function fill_products()
{
	// Si la réponse est reçue correctement
	if(xhr.readyState == 4 && xhr.status == 200)
	{
		// Récuperer la réponse
		var serverReponse = xhr.responseText;
		//alert(serverReponse);
		
		// Récuperer le champ div  qui va recevoir la liste déroulante les produits
		var div_produit = document.getElementById("div_produit");
		
		// Créer une balise <select>
		var new_select = "<select name='select_produit' id='select_produit' class='formulaire_cat' size='5' multiple='multiple'></seclect>";
		
		// Les produits sont reçus sous le format d'une chaine ("[id_produit1];[nom_produit1]|[id_produit2];[nom_produit2]|...")
		// Récuperer la liste des produits dans un tableau
		var list_produit = serverReponse.split("|");


		// S'il existe des produit dans la catégorie
		if(serverReponse!="")
		{
			// Parcourir la liste des produits
			for(var i=0 ; i < list_produit.length ; i++)
			{
				// Découper la chaine contenant l'id et le nom du produits séparés par une ";"
				var produit = list_produit[i].split(";");
				var id_pr = produit[0];
				var nom_pr = produit[1];
				
				// Mettre chaque produit dans une balise <option>
				new_select += "<option value='"+id_pr+"' >"+nom_pr+"</option>";			
			}
		}
		
		// Fermer la balise 
		new_select += "</seclect>";
		div_produit.innerHTML = new_select;					
	}	
}

// Vérifier la saisie des champs lors de la modification d'une promotion
function verifFormModifProm()
{
	
	var somme = "";
	if((document.forms[0].lib_prom.value==""))
	{
		somme += "Le libellé de la promotion\n";
	}	

	// si le type de la promotion est montant
	if(document.getElementById("type_mt").checked==true)
	{
		// Si le champ montant n'est pas rempli, afficher une alerte
		if(document.forms[0].mt_promo.value=="")
		{
			somme += "Le montant de la promotion\n";
		}
		else
		// Si le montant saisie n'est pas un reel
		if(verifReel(document.forms[0].mt_promo.value))
		{
			alert("Le montant que vous avez saisie n'est valide!");
			return false;
		}
			
	}
	// si le type de la promotion est taux
	else if(document.getElementById("type_taux").checked==true)
	{
		// Si le champ taux n'est pas rempli, afficher une alerte
		if((document.forms[0].taux_promo.value==""))
		{
			somme += "Le taux de la promotion\n";		
		}
		else
		// Si le taux saisie n'est pas un entier
		if((verifEntier(document.forms[0].taux_promo.value)))
		{
			alert("Le taux que vous avez saisie n'est valide!");
			return false;
		}		
	}

	if((document.forms[0].dd.value==""))
	{
		somme += "La date de début de la promotion\n";
	}
	
	if((document.forms[0].df.value==""))
	{
		somme += "La date de fin de la promotion\n";
	}	
		
	if(somme!="")
	{
		alert("Veuillez saisir les champs suivants :\n"+somme);
		return false;
	}
	return true;
}
/*
// Vérifier la saisie des champs lors de l'ajout d'une promotion
function verifFormProm()
{
	
	var list_produit = document.forms[0].select_produit;
	
	// Nombre des options dans la liste
	var nb = list_produit.length;
	if( nb<1 )
	{
		alert("Veuillez choisir une catégorie contenant au moins un produit!");
		return false;
	}
	else
	{
		// Si l'utilisateur n'a selectionne aucun produit
		if( !fillHidden() )
		{
			alert("Veuillez selectionner au moins un produit!");
			return false;
		}
	}
	
	var somme = "";
	if((document.forms[0].lib_prom.value==""))
	{
		somme += "Le libellé de la promotion\n";
	}	

	// si le type de la promotion est montant
	if(document.getElementById("type_mt").checked==true)
	{
		// Si le champ montant n'est pas rempli, afficher une alerte
		if(document.forms[0].mt_promo.value=="")
		{
			somme += "Le montant de la promotion\n";
		}
		else
		// Si le montant saisie n'est pas un reel
		if(verifReel(document.forms[0].mt_promo.value))
		{
			alert("Le montant que vous avez saisie n'est valide!");
			return false;
		}
			
	}
	// si le type de la promotion est taux
	else if(document.getElementById("type_taux").checked==true)
	{
		// Si le champ taux n'est pas rempli, afficher une alerte
		if((document.forms[0].taux_promo.value==""))
		{
			somme += "Le taux de la promotion\n";		
		}
		else
		// Si le taux saisie n'est pas un entier
		if((verifEntier(document.forms[0].taux_promo.value)))
		{
			alert("Le taux que vous avez saisie n'est valide!");
			return false;
		}		
	}

	if((document.forms[0].dd.value==""))
	{
		somme += "La date de début de la promotion\n";
	}
	
	if((document.forms[0].df.value==""))
	{
		somme += "La date de fin de la promotion\n";
	}	
		
	if(somme!="")
	{
		alert("Veuillez saisir les champs suivants :\n"+somme);
		return false;
	}
	return true;
}
*/
// Vérifier la saisie des champs lors de l'ajout d'une promotion
function verifFormProm()
{
	
	var somme = "";
	if((document.forms[0].lib_prom.value==""))
	{
		somme += "Le libellé de la promotion\n";
	}	

	// si le type de la promotion est montant
	if(document.getElementById("type_mt").checked==true)
	{
		// Si le champ montant n'est pas rempli, afficher une alerte
		if(document.forms[0].mt_promo.value=="")
		{
			somme += "Le montant de la promotion\n";
		}
		else
		// Si le montant saisie n'est pas un reel
		if(verifReel(document.forms[0].mt_promo.value))
		{
			alert("Le montant que vous avez saisie n'est valide!");
			return false;
		}
			
	}
	// si le type de la promotion est taux
	else if(document.getElementById("type_taux").checked==true)
	{
		// Si le champ taux n'est pas rempli, afficher une alerte
		if((document.forms[0].taux_promo.value==""))
		{
			somme += "Le taux de la promotion\n";		
		}
		else
		// Si le taux saisie n'est pas un entier
		if((verifEntier(document.forms[0].taux_promo.value)))
		{
			alert("Le taux que vous avez saisie n'est valide!");
			return false;
		}		
	}

	if((document.forms[0].dd.value==""))
	{
		somme += "La date de début de la promotion\n";
	}
	
	if((document.forms[0].df.value==""))
	{
		somme += "La date de fin de la promotion\n";
	}	
		
	if(somme!="")
	{
		alert("Veuillez saisir les champs suivants :\n"+somme);
		return false;
	}
	return true;
}

/*
// Remplir un input de type hidden par les produits sélectionné
function fillHidden()
{
	document.forms[0].list_id_pr.value = "";
	
	var list_produit = document.forms[0].select_produit;
	
	// Nombre des options dans la liste
	var nb = list_produit.length;
	
	// Si la liste contient des elements
	for(var i=0 ; i<nb; i++)
	{
		// Si l'option courante est selectionné
		if(list_produit.options[i].selected == true)
		{
			// Ecrire les id des produits selectionné dans un hidden séparé par un pipe
			document.forms[0].list_id_pr.value += list_produit.options[i].value + "|";			
		}		
	}

	// Enlever le dernier pipe
	document.forms[0].list_id_pr.value = document.forms[0].list_id_pr.value.substring(0, document.forms[0].list_id_pr.value.length-1);

	if(document.forms[0].list_id_pr.value=="")
		return false;
		
	return true;
}
*/

// Activer le champ montant et desactiver le champ taux
function gererChamp(champ1, champ2)
{
	// Activer le champ1
	document.getElementById(champ1).disabled = false;
	
	// Desactiver le champ 2
	document.getElementById(champ2).disabled = true;
	
	// vider le champ 2
	document.getElementById(champ2).value = "";
}

// Redirection vers la page supprimer_promotion.php et envoi de l'id de la promotion
function supprimer_prom(idprm)
{
	if(confirm("Attention : Etes vous sûr de vouloir supprimer définitivement la promotion ?"))
		document.location = "supprimer_promotion.php?idprm="+idprm;
}

// a_faire=0 decocher tout
// a_faire=1 cocher tout
function checkAll(a_faire)
{
	var tab_cb = document.getElementsByTagName("input");
	for(var i=0 ; i<tab_cb.length; i++)
	{
		if (tab_cb[i].getAttribute("type")=="checkbox")
		{
			if(a_faire==1)
			{
				tab_cb[i].checked = "checked";
			}
			else
			if(a_faire==0)
			{
				tab_cb[i].checked = false;
			}			
		}
	}
}

// Mettre a jour, en base de donnée, l'etat des produits avec la promotion courante
function update_state(cb, id_promotion, type_prom, valeur_prom, prix_prod)
{
	
	createXhr();
	
	if(xhr)
	{
		var prod_id = cb.value;
		var prom_id = id_promotion;
		
		// Si l'utilisateur a décoché le produit
		if(cb.checked==false)			
		{
			prom_id = 0;
		}
		
		// Envoyer l'id du produit et l'id de la promotion à un script qui permet d'effectuer la modification
		xhr.open("POST", "ajax_update_state.php", true);		
		xhr.setRequestHeader("Content-Type", "Application/x-www-form-urlencoded");	
		xhr.send("prod_id=" + prod_id + "&prom_id=" + prom_id + "&type_prom=" + type_prom + "&valeur_prom=" + valeur_prom + "&prix_prod=" + prix_prod);				
		
		// A la réception de la réponse remplir la liste des produits
		xhr.onreadystatechange = show_message;	
		
		// Afficher l'image de chargement avant que la réponse ne soit arriv
		var div_preload = document.getElementById("div_preload");	
		div_preload.style.visibility = 'visible';
	}	
}



// A la mise a jour de l'etat du produit avec la promotion, on affiche un message d'information au produit
function show_message()
{
	

	
	/*
	if( xhr.readyState == 0 || xhr.readyState == 1 || xhr.readyState == 2 || xhr.readyState == 3 )
	{
		div_preload.style.visibility = 'visible';		
	}
	
	//alert(xhr.readyState);
	*/
	
	// Si la réponse est reçue correctement
	if(xhr.readyState == 4 && xhr.status == 200)
	{	
	
		var div_preload = document.getElementById("div_preload");
		// A la réception de la réponse on cache l'image de chargement
		div_preload.style.visibility = 'hidden';
		
		
		// Récuperer la réponse
		var serverReponse = xhr.responseText;

		

		var id_prod = serverReponse.split("|")[0];
		var id_prom = serverReponse.split("|")[1];
		var type_prom = serverReponse.split("|")[2];
		var valeur_prom = serverReponse.split("|")[3];	
		var prix_prod = serverReponse.split("|")[4];	


		var div_prix_promo = "prix_promo_"+id_prod;
		var obj_div = document.getElementById(div_prix_promo);
		// Si la réponse du serveur est égale à 0  c a d qu'on affecter la promotion 0 au produit
		if(id_prom=="0")
		{
			//alert("le produit a été retiré de la promotion!");	
			
			obj_div.innerHTML = "";
		}
		// Sinon l'id de la promotion actuel a été affecter au produit
		// Calculer et afficher le prix promotionnelle
		else
		{
			//alert("sdf"+type_prom);
			if(type_prom==1)
			{
				var prix_produit = valeur_prom;
				
				// Initialiser le prix promotionnel
				obj_div.innerHTML = prix_produit;
				
			}
			else if(type_prom==2)
			{				
				var prix_produit = parseFloat(prix_prod) - ( (parseFloat(prix_prod) * parseInt(valeur_prom) ) / 100 );
				
				// Initialiser le prix promotionnel
				obj_div.innerHTML = prix_produit.toFixed(2);
			}
			
		}
	}
}
/*************************controles sur l a rubrique gestions des clients****************************/

// Redirection vers la page supprimer_client.php et envoi de l'id du client
function supprimer_client(id_client)
{
	if(confirm("Etes vous sûr de bien vouloir supprimer ce client ?"))
		document.location = "supprimer_client.php?id_client="+id_client;
}


/**************************** Controles le formulaire recherche commande ****************************/
function verifRechCom()
{
	if( (document.forms[0].mtd.value!="" && verifReel(document.forms[0].mtd.value)) || (document.forms[0].mtf.value!="" && verifReel(document.forms[0].mtf.value)) )
	{
		alert("Veuillez saisir un montant valide");
		return false;
	}	
	return true;
}

// Redirection vers la page supprimer_produit.php et envoi de l'id du produit
function supprimer_com(idcom)
{
	if(confirm("Attention : Etes vous sûr de vouloir supprimer définitivement cette commande ?"))
		document.location = "supprimer_commande.php?idcom="+idcom;
}

/**************************** Controles sur le formulaire d'inscription (page inscription.php) ****************************/
function verifFormIns()
{
	var somme = "";
	
	// Test sur les paramètres de connexion
	if(document.forms[0].email.value=="")
	{
		somme += "E-mail\n";
	}
	
	if(document.forms[0].email.value!="" && verifMail(document.forms[0].email.value))
	{
		alert("Veuillez saisir une adresse E-mail valide");
		return false;
	}	
	
	if(document.forms[0].login.value=="")
	{
		somme += "Login\n";
	}
	

	if(document.forms[0].pass.value.length<6)
	{
		somme += "Mot de passe (6 caractères min.)\n";
	}
	
		
	// Test sur les coordonnées de facturation
	if(document.forms[0].nom_fact.value=="")
	{
		somme += "Nom de facturation\n";
	}
	
	if(document.forms[0].prenom_fact.value=="")
	{
		somme += "Prénom de facturation\n";
	}			
	
	if(document.forms[0].adr_fact.value=="")
	{
		somme += "Adresse de facturation\n";
	}
	
	if(document.forms[0].cp_fact.value=="")
	{
		somme += "Code postal de facturation\n";
	}
	
	if(document.forms[0].ville_fact.value=="")
	{
		somme += "Ville de facturation\n";
	}	
	
	// Test sur les coordonnées de livraison
	if(document.forms[0].nom_liv.value=="")
	{
		somme += "Nom de livraison\n";
	}
	
	if(document.forms[0].prenom_liv.value=="")
	{
		somme += "Prénom de livraison\n";
	}			
	
	if(document.forms[0].adr_liv.value=="")
	{
		somme += "Adresse de livraison\n";
	}
	
	if(document.forms[0].cp_liv.value=="")
	{
		somme += "Code postal de livraison\n";
	}
	
	if(document.forms[0].ville_liv.value=="")
	{
		somme += "Ville de livraison\n";
	}
	
	
	if(somme!="")
	{			
		alert("Veuillez remplir les champs suivants : \n"+somme);
		return false;
	}
	
	// Email
	if(document.forms[0].email.value!="" && verifMail(document.forms[0].email.value))
	{
		alert("Veuillez saisir une adresse mail valide");
		return false;
	}	
	
	// Confirmation mot de passe
	if((document.forms[0].pass.value!="") && (document.forms[0].pass.value!=document.forms[0].conf_pass.value))
	{
		alert("Le mot de passe et la confirmation ne correspondent pas\n");
		return false;
	}		
	
	if(document.forms[0].cp_fact.value!="" && verifTel(document.forms[0].cp_fact.value))
	{
		alert("Le code postal de facturation n'est pas valide");
		return false;		
	}	
	
	if(document.forms[0].tel_fact.value!="" && verifTel(document.forms[0].tel_fact.value))
	{
		alert("Le téléphone de facturation n'est pas valide");
		return false;		
	}
	
	if(document.forms[0].cp_liv.value!="" && verifTel(document.forms[0].cp_liv.value))
	{
		alert("Le code postal de livraison n'est pas valide");
		return false;		
	}	
	
	if(document.forms[0].tel_liv.value!="" && verifTel(document.forms[0].tel_liv.value))
	{
		alert("Le téléphone de livraison n'est pas valide");
		return false;		
	}	
	return true;
}


/**************************** Controles sur le formulaire cordonnée (page coordonnee.php)****************************/
function verifCord()
{
	var somme = "";
	
	
	// Test sur les coordonnées de facturation
	if(document.forms[0].nom_fact.value=="")
	{
		somme += "Le nom de facturation\n";
	}
	
	if(document.forms[0].prenom_fact.value=="")
	{
		somme += "Le prénom de facturation\n";
	}			
	
	if(document.forms[0].adr_fact.value=="")
	{
		somme += "L'adresse de facturation\n";
	}
	
	if(document.forms[0].cp_fact.value=="")
	{
		somme += "Le code postal de facturation\n";
	}
	
	if(document.forms[0].ville_fact.value=="")
	{
		somme += "La ville de facturation\n";
	}	
	
	// Test sur les coordonnées de livraison
	if(document.forms[0].nom_liv.value=="")
	{
		somme += "Le nom de livraison\n";
	}
	
	if(document.forms[0].prenom_liv.value=="")
	{
		somme += "Le prénom de livraison\n";
	}			
	
	if(document.forms[0].adr_liv.value=="")
	{
		somme += "L'adresse de livraison\n";
	}
	
	if(document.forms[0].cp_liv.value=="")
	{
		somme += "Le code postal de livraison\n";
	}
	
	if(document.forms[0].ville_liv.value=="")
	{
		somme += "La ville de livraison\n";
	}
	
	
	if(somme!="")
	{			
		alert("Veuillez saisir les champs suivants : \n"+somme);
		return false;
	}
	
	if(document.forms[0].cp_fact.value!="" && verifTel(document.forms[0].cp_fact.value))
	{
		alert("Le code postal de facturation n'est pas valide");
		return false;		
	}	
	
	if(document.forms[0].tel_fact.value!="" && verifTel(document.forms[0].tel_fact.value))
	{
		alert("Le téléphone de facturation n'est pas valide");
		return false;		
	}
	
	if(document.forms[0].cp_liv.value!="" && verifTel(document.forms[0].cp_liv.value))
	{
		alert("Le code postal de livraison n'est pas valide");
		return false;		
	}	
	
	if(document.forms[0].tel_liv.value!="" && verifTel(document.forms[0].tel_liv.value))
	{
		alert("Le téléphone de livraison n'est pas valide");
		return false;		
	}	
	return true;
}


/**************************** Controles sur e formulaire mon compte ****************************/
function verif_compte()
{

	var somme = "";
	if((document.forms[0].nom.value==""))
	{
		somme += "Votre nom\n";
	}
	
	if((document.forms[0].prenom.value==""))
	{
		somme += "Votre prénom\n";
	}	
	
	if((document.forms[0].adr.value==""))
	{
		somme += "Votre adresse\n";
	}
	
	if((document.forms[0].code.value==""))
	{
		somme += "Votre code postal\n";
	}
	
	if((document.forms[0].ville.value==""))
	{
		somme += "Votre ville\n";
	}
	
	if((document.forms[0].email.value==""))
	{
		somme += "Votre adresse E-mail\n";
	}
	
	if((document.forms[0].login.value==""))
	{
		somme += "Votre login\n";
	}	
	
	if(somme!="")
	{			
		alert("Veuillez saisir les champs suivant : \n"+somme);
		return false;
	}
	

	if((document.forms[0].code.value!="") && (verifEntier(document.forms[0].code.value)))
	{
		alert("Veuillez saisir un code postal valide");
		return false;
	}
	

	if((document.forms[0].email.value!="") && (verifMail(document.forms[0].email.value)))
	{
		alert("Veuillez saisir un E-mail valide");
		return false;
	}
	
	if((document.forms[0].tel.value!="") && (verifTel(document.forms[0].tel.value)))
	{
		alert("Veuillez saisir un numéro de télephone valide");
		return false;
	}
	
	if((document.forms[0].fax.value!="") && (verifTel(document.forms[0].fax.value)))
	{
		alert("Veuillez saisir un numéro de fax valide");
		return false;
	}	
	
	return true;
}



/**************************** Controles sur la validité des champs de formulaire ****************************/


// Verifier qu'une variable passée en paramètre est un entier
function verifTel(entier)
{

	for(i=0;i<entier.length;i++)
		 if((entier.charAt(i) < "0"|| entier.charAt(i) > "9") && (entier.charAt(i) != " "))
		 return 1;
	return 0;	
}

// Verifier qu'une variable passé en paramètre est un entier
function verifEntier(entier)
{

	for(i=0;i<entier.length;i++)
		 if(entier.charAt(i) < "0"|| entier.charAt(i) > "9")
		 	return 1;
	return 0;	
}

// Vérifier qu'une variable passé en paramètre est un réel
function verifReel(reel)
{
	// Diviser la chaine saisie en deux par le délimiteur "."
	// Si ça donne un tableau de taille different de 0 ou 2 -> ce n'est pas un réel
	var param = reel.split(".");

	if((param.length!=2)&&(param.length!=1))
		return 1;
	
	// Si la premiere ou la deuxieme chaine n'est pas entier alors ce n'est pas un réel
	if(param.length==2)
	{
	
		if((verifEntier(param[0])==1)||(verifEntier(param[1])==1)||(param[0]=="")||(param[1]==""))
			return 1;	
	}
	if(param.length==1) 
	{
			
		if(verifEntier(param[0])==1)
		return 1;
	}
	return 0;
	
}

// Verifier la validité d'un email passé en paramètre
function verifMail(email)
{
	
	var arobase = email.indexOf("@");
	var point = email.lastIndexOf(".");
	if((arobase < 3)||(point + 2 > email.length)||(point < arobase+3))
		return true;
	return false;
}
 

