/* **************************************************************************************************************** */
/* charge l'url placée en parametre dans la fenetre courante														*/
/* return : void																									*/
/* param 1 : l'URL a charger																						*/
/* **************************************************************************************************************** */
function ChargeURL(url)
{
	parent.location.href = url;
}

/* **************************************************************************************************************** */
/* Permet de mettre a jour la quantité de produit que l'on veut ajouter dans le panier (sur les pages des produits) */
/* return : void																									*/
/* param 1 : id du input a modifier (quantité)																		*/
/* param 2 : 'p' pour augmenter la quantité, 'm' pour la diminuer, 'v' pour la vérifier (p=plus, m=moins, v=verify)	*/
/* **************************************************************************************************************** */
function updateQTE(produit,sens)
{
	var input = document.getElementById(produit);
	var quantite = parseInt(input.value);
	
	if(sens == 'm')									//si on veut diminuer la quantité
	{
		if(quantite > 1) input.value = quantite-1;	//on décrémente la valeur seulement si elle n'est pas déjà à 1
		else input.value = 1;
	}
	else if(sens == 'p')							//si on veut l'augmenter
	{
		if(quantite < 50) input.value = quantite+1;	//donc on l'incrémente jusqu'à 50 maximum
		else input.value = 50;
	}
	else											//sinon c'est qu'on veux juste la vérifier
	{
		if(quantite < 1) input.value = 1;
		else if(quantite > 50) input.value = 50;
	}
}


/* **************************************************************************************************************** */
/* Ajoute un/des articles dans le panier en session, puis soumet le formulaire "formCart" des pages produits		*/
/* return : void (soumet le formulaire en post)																		*/
/* param 1 : code article du produit, mais aussi id du input contenant le nombre de ce produit à ajouter au panier	*/
/* **************************************************************************************************************** */
function addCart(produit)
{
	var quantite = document.getElementById(produit).value;
	var hidden = document.getElementById("AddToCart");
	
	hidden.value = produit + ',' + quantite;
	
	document.formCart.submit();
}


/* **************************************************************************************************************** */
/* Permet d'afficher ou de masquer un div en cochant ou décochant une checkbox. Utilisé pour l'adresse de livraison	*/
/* si différente de l'adresse de l'adresse de facturation dans la page "coordonnees.php".							*/
/* return : void																									*/
/* param 1 : id de la checkbox																						*/
/* param 2 : id du div a cacher ou a faire apparaitre																*/
/* param 2 : id du div a dimensionner et a positionner lorsque le div "hide" change									*/
/* **************************************************************************************************************** */
function HideAndDisplay(chk_id,hide_id,fixe_id)
{
	var divHide = document.getElementById(hide_id);
	var checkbox = document.getElementById(chk_id);
	var divFixe = document.getElementById(fixe_id);
	
	if(checkbox.checked == true)
	{
		divHide.style.display = "block";
		divFixe.style.width = "360px";
		divFixe.style.styleFloat = "left";
		divFixe.style.cssFloat = "left";
	}
	else
	{
		divHide.style.display = "none";
		divFixe.style.width = "99%";
		divFixe.style.styleFloat = "none";
		divFixe.style.cssFloat = "none";
	}
}


/* **************************************************************************************************************** */
/* Efface les champs de coordonnees et remet les select par défaut.											 		*/
/* return : void																									*/
/* **************************************************************************************************************** */
function resetForm()
{
		document.getElementById('liv_nom').value = '';
		document.getElementById('liv_prenom').value = '';
		document.getElementById('liv_adresse').value = '';
		document.getElementById('liv_adrcomp').value = '';
		document.getElementById('liv_codepostal').value = '';
		document.getElementById('liv_ville').value = '';
		document.getElementById('liv_pays').value = '0';
		document.getElementById('liv_etat').value = '0';
		document.getElementById('liv_autrepays').value = '';
		document.getElementById('liv_indtel').value = '';
		document.getElementById('liv_tel').value = '';
		document.getElementById('liv_indfax').value = '';
		document.getElementById('liv_fax').value = '';
		document.getElementById('liv_email').value = '';
		document.getElementById('liv_devise').options.selectedIndex = 0;
		document.getElementById('tr_liv_devise').style.visibility = "hidden";

		document.getElementById('fac_nom').value = '';
		document.getElementById('fac_prenom').value = '';
		document.getElementById('fac_adresse').value = '';
		document.getElementById('fac_adrcomp').value = '';
		document.getElementById('fac_codepostal').value = '';
		document.getElementById('fac_ville').value = '';
		document.getElementById('fac_pays').value = '0';
		document.getElementById('fac_etat').value = '0';
		document.getElementById('fac_autrepays').value = '';
		document.getElementById('fac_indtel').value = '';
		document.getElementById('fac_tel').value = '';
		document.getElementById('fac_indfax').value = '';
		document.getElementById('fac_fax').value = '';
		document.getElementById('fac_email').value = '';
		document.getElementById('fac_devise').options.selectedIndex = 0;
		document.getElementById('tr_fac_devise').style.visibility = "hidden";
}


/* **************************************************************************************************************** */
/* Efface les champs de coordonnees et remet les select par défaut.											 		*/
/* return : void																									*/
/* **************************************************************************************************************** */
function afficheChoixDevise()
{
	var checkbox = document.getElementById('chk_adrFacturation').checked;				//récupère l'état de la checkbox (cochée ou pas)

	var tr_fac_devise = document.getElementById('tr_fac_devise');						//récupère l'id du tr de facturation contenant le select pour choisir la devise
	var tr_liv_devise = document.getElementById('tr_liv_devise');						//ainsi que celui de livraison
	
	var index_liv_devise = document.getElementById('liv_devise');
	var index_fac_devise = document.getElementById('fac_devise');

	var index;
	var pays;

	if(checkbox)																		//si la checkbox est cochée, on regarde le pays de facturation
	{
		index = document.getElementById('fac_pays').options.selectedIndex;			//récupère l'index du select qui est actuellement sélectionné
		pays = document.getElementById('fac_pays').options[index].value;			//puis la value de cet index (= index du pays dans le fichier langue.php)
	
		if((pays >= 50) && (pays <= 99))												//si l'index du pays renvoi a un pays en amérique
		{
			tr_fac_devise.style.visibility = "visible";									//on permet a l'utilisateur de choisir sa devise (euro ou dollar)
			tr_liv_devise.style.visibility = "hidden";									//on cache le select coté livraison au cas ou
		}
		else
		{
			index_liv_devise.options.selectedIndex = 0;									//met le select de livraison sur "euros"
			index_liv_devise.options.value = "Euros";
			index_fac_devise.options.selectedIndex = 0;									//ainsi que celui de facturation
			index_fac_devise.options.value = "Euros";
			tr_fac_devise.style.visibility = "hidden";									//et cache le select de facturation pour qu'on ne puisse pas choisir
			tr_liv_devise.style.visibility = "hidden";									//on cache le select coté livraison au cas ou
		}
	}
	else																				//sinon la checkbox n'est pas cochée
	{
		index = document.getElementById('liv_pays').options.selectedIndex;
		pays = document.getElementById('liv_pays').options[index].value;			//donc on récupère l'index du pays dans le champ de livraison
		
		if((pays >= 50) && (pays <= 99))												//si l'index du pays renvoi a un pays en amérique
		{
			tr_liv_devise.style.visibility = "visible";									//on permet a l'utilisateur de choisir sa devise (euro ou dollar)
			tr_fac_devise.style.visibility = "hidden";									//on cache le select coté livraison au cas ou
		}
		else
		{
			index_fac_devise.options.selectedIndex = 0;									//met le select de facturation sur "euros"
			index_fac_devise.options.value = "Euros";
			index_liv_devise.options.selectedIndex = 0;									//ainsi que celui de livraison
			index_liv_devise.options.value = "Euros";
			tr_liv_devise.style.visibility = "hidden";									//et cache le select de livraison pour qu'on ne puisse pas choisir
			tr_fac_devise.style.visibility = "hidden";									//on cache le select coté livraison au cas ou
		}
	}
}


/* **************************************************************************************************************** */
/* Vérifie si on a besoin de renseigné un état ou pas (pour les USA), sinon on "vide" le champ.				 		*/
/* return : void																									*/
/* **************************************************************************************************************** */
function verifieEtat(usa,can)
{
	var liv_index = document.getElementById('liv_pays').options.selectedIndex
	var liv_pays = document.getElementById('liv_pays').options[liv_index].value;
	var liv_etat = document.getElementById('liv_etat');
	
	var fac_index = document.getElementById('fac_pays').options.selectedIndex
	var fac_pays = document.getElementById('fac_pays').options[fac_index].value;
	var fac_etat = document.getElementById('fac_etat');
	
	if((liv_pays != usa) && (liv_pays != can))
	{
		liv_etat.options.selectedIndex = 0;									//si le pays de livraison n'est pas les USA ou le Canada, on force le select "etats" à "Aucun"
	}
	
	if((fac_pays != usa) && (fac_pays != can))
	{
		fac_etat.options.selectedIndex = 0;									//idem pour le pays de facturation
	}
}



/* **************************************************************************************************************** */
/* Coche le radio-bouton associé à l'image du type de paiement choisi, lorsqu'on clique sur cette dernière. 		*/
/* param 1 : id du radio-button																						*/
/*																													*/
/* return : void																									*/
/* **************************************************************************************************************** */
function typePaiement(id)
{
	var label = document.getElementById(id);
	
	label.checked = "checked";
}



/* **************************************************************************************************************** */
/* Fait apparaitre ou disparaitre la zone pour remplir le numéro de suivi du colis, ainsi que la date de départ		*/
/* dans la visualisation des commandes.																				*/
/* param 1 : valeur de l'option du select sur lequel on vient de cliquer											*/
/* param 2 : id de l'element contenant qui doit etre cacher ou afficher si le param1 est d'une certaine valeur		*/
/*																													*/
/* return : void																									*/
/* **************************************************************************************************************** */
function modifStatusCmd(status,idToShowHide)
{
	if(status == '4') document.getElementById(idToShowHide).style.display = '';
	else document.getElementById(idToShowHide).style.display = 'none';
}



/* **************************************************************************************************************** */
/* Fait apparaitre ou disparaitre un élement																		*/
/* param 1 : id de l'élément a cacher ou a faire apparaitre															*/
/* param 2 : etat d'apparance de l'element ("show" pour l'afficher, "hide" pour le masquer)							*/
/*																													*/
/* return : void																									*/
/* **************************************************************************************************************** */
function showHideDiv(idToShowHide,state)
{
	var element = document.getElementById(idToShowHide);
	
	if(state == "show")
	{
		element.style.display = '';
	}
	else if(state == "hide")
	{
		element.style.display = 'none';
	}
	else if(state == "toggle")
	{
		if(element.style.display == 'none') element.style.display = '';
		else element.style.display = 'none';
	}
}



function afficheSelect()
{
	/**** LES ELEMENTS A CACHER OU AFFICHER ****/
	var label_autre = document.getElementById('label_pautre');		//pour cacher/afficher les label en fonction du pays sélectionné
	var label_usa = document.getElementById('label_petatusa');
	var label_can = document.getElementById('label_petatcan');
	
	var input_autre = document.getElementById('pautre');			//pour cacher/afficher le champ en plus, en fonction du pays sélectionné
	var sel_usa = document.getElementById('petatusa');
	var sel_can = document.getElementById('petatcan');
	
	/**** LE SELECT POUR LE PAYS EN COURS ****/
	var index_pays = document.getElementById('ppays').options.selectedIndex;		//récupère l'index actuel du select du pays
	var val_pays = document.getElementById('ppays').options[index_pays].value;		//et la valeur du pays sélectionnné
	
	
	/**** ETAT INITIAL DES ELEMENTS ****/
	var la_display = "none";										//initialise les display de chaque élement en "caché"		
	var lu_display = "none";
	var lc_display = "none";
	var ia_display = "none";
	var su_display = "none";
	var sc_display = "none";

	
	/**** DANS LE CAS OU ON SELECTIONNE "AUTRE PAYS" COMME CHOIX ****/
	if(val_pays == '0')
	{
		la_display = "";		//affiche le label "autre pays (hors liste) :"
		ia_display = "";		//affiche le champ de saisie
	}
	/**** DANS LE CAS OU ON SELECTIONNE "CANADA" COMME CHOIX ****/
	else if(val_pays == '53')
	{
		lc_display = "";		//affiche le label "Etat : "
		sc_display = "";		//affiche la liste déroulante pour les états du canada
	}
	/**** DANS LE CAS OU ON SELECTIONNE "ETATS-UNIS" COMME CHOIX ****/
	else if(val_pays == '58')
	{
		lu_display = "";		//affiche le label "Etat : "
		su_display = "";		//affiche la liste déroulante pour les états des USA
	}
	
	
	/**** MISE A JOUR DES AFFICHAGE DE CES ELEMENTS ****/
	label_autre.style.display = la_display;
	label_usa.style.display = lu_display;
	label_can.style.display = lc_display;
	
	input_autre.style.display = ia_display;
	sel_usa.style.display = su_display;
	sel_can.style.display = sc_display;
}


function gp_dispoQte(sel_id)
{
	var index_sel = document.getElementById(sel_id).options.selectedIndex;		//récupère l'index actuel du select de l'etat du stock
	var val_sel = document.getElementById(sel_id).options[index_sel].value;		//et la valeur associée
	
	var zone = sel_id.substring(9,sel_id.length);								//récupère la zone de stockage concernée dans l'id passé en parametre (les 2 dernier caractères : fr ou us) + l'id du div
	
	if(val_sel == '1')															//si on veut indiquer un nombre précis en stock
	{
		document.getElementById("joursdispo"+zone).style.display = "none";		//cache le champ pour les jours dispo
		document.getElementById("nbstock"+zone).style.display = "table";		//affiche celui pour le nombre en stock
	}
	else if(val_sel == '0')														//si on veut indiquer un nombre de jour avant dispo
	{
		document.getElementById("joursdispo"+zone).style.display = "table";		//affiche le champ pour les dispo
		document.getElementById("nbstock"+zone).style.display = "none";			//cache celui pour le nombre en stock
	}
	else																		//si on veut juste afficher que les produits sont en stock sans plus de précision
	{
		document.getElementById("joursdispo"+zone).style.display = "none";		//cache les deux champs
		document.getElementById("nbstock"+zone).style.display = "none";
	}
}

function gp_ajout(id,elt,sens)
{
	var index = document.getElementById(id).options.selectedIndex;				//récupère l'index actuel du select
	var val = document.getElementById(id).options[index].value;					//et la valeur associée
	
	if(sens == '0')																//si sens vaut 0, on affiche l'element seulement si on à 0 dans val
	{
		if(val == '0')															//si on veut créer une nouvelle famille ou catégorie
			document.getElementById(elt).style.display = "block";				//affiche le champ supplémentaire
		else
			document.getElementById(elt).style.display = "none";				//cache le champ supplémentaire
	}
	else																		//sinon on affiche l'element tout le temps sauf quand il y a -1 dans val
	{
		if(val == '-1')															//si on veut juste mettre 'En Stock'
			document.getElementById(elt).style.display = "none";				//cache le champ supplémentaire
		else
			document.getElementById(elt).style.display = "block";				//affiche le champ supplémentaire
	}
}


