function affichePopup(page,largeur,hauteur){ 

	//On augmente la hauteur et la largeur à cause des ascenseurs
	largeur += 30;
	hauteur += 30;

	//Si l'image est plus grande que l'écran, on diminue la taille de la popup
	if (screen.width <= largeur){
		largeur = screen.width-50;
	}

	if (screen.height <= hauteur){
		hauteur = screen.height-100;
	}

	anOpenWindow=window.open(page,"popup","width="+largeur+",height="+hauteur+",screenX=20,screenY=20,toolbar=no,directories=no,status=no,scrollbars=yes,menubar=no,resizable=no");
}


// ****************************
// Fonction spin_up, valide le forumlaire
function spin_up(form,objet){
	if (document[form][objet].value >= 1){
		document[form][objet].value ++;
	}else{
		document[form][objet].value = 1;
	}
	document[form].submit();
}

function spin_down(form,objet){
	if (document[form][objet].value > 1){
		document[form][objet].value --;
	}else{
		document[form][objet].value = 1;
	}
	document[form].submit();
}


// ****************************
// Fonction spin_up, ne valide pas le formulaire
function spin_upNorm(form,objet){
	if (document[form][objet].value >= 1){
		document[form][objet].value ++;
	}else{
		document[form][objet].value = 1;
	}
}

function spin_downNorm(form,objet){
	if (document[form][objet].value > 1){
		document[form][objet].value --;
	}else{
		document[form][objet].value = 1;
	}
}

// ****************************
// Fonction spin_up, ne valide pas le formulaire, et appel une fonction apres la maj
function spin_upNorm(form, objet, callAfter){
	if (document[form][objet].value >= 1){
		document[form][objet].value ++;
	}else{
		document[form][objet].value = 1;
	}
	if(callAfter != ""){
		setTimeout(callAfter,0);
	}
}

function spin_downNorm(form, objet, callAfter){
	if (document[form][objet].value > 1){
		document[form][objet].value --;
	}else{
		document[form][objet].value = 1;
	}
	if(callAfter != ""){
		setTimeout(callAfter,0);
	}
}

function verifQte(form, objet){

	var valeur = document[form][objet].value;

	if (checkNumericField(valeur)){
		if (document[form][objet].value < 0){
			document[form][objet].value = 1;
		}
	}else{
		document[form][objet].value = 1;
	}
	document[form].submit();
}


// *****************************************************************************
// Fonction : checkNumericField
// teste si le champ est composé de caracteres numeriques
// renvoie true si le champ est numerique
// renvoie false si le champ est vide ou non numerique
// *****************************************************************************
function checkNumericField(theField) {
	re=/^[+-]*\d+$/;

	return (re.test(theField));
}


// Fonction javascript demandant confirmation avant de supprimer un produit du panier
function supprimerProduit(idPanier, nomProduit) {
	if (confirm('Etes-vous sûr de vouloir enlever le produit "'+nomProduit+'" de votre panier?')) {
		window.location.href = "include/modif_panier.php?idPanier="+idPanier;
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////Fonctions de traitement du formulaire de coordonnées client///////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Désactive tous les champs du formulaire d'adresse de livraison, lors de l'ajout à la base de données
//ceux-ci seront remplacés par l'adresse de facturation
function utiliserAddrFacturation(){
	if (document.adresses_cli.lameme.checked == true){

		//On désactive tout
		document.adresses_cli.livraison_civilite.disabled = true;
		document.adresses_cli.livraison_nom.disabled = true;
		document.adresses_cli.livraison_prenom.disabled = true;
		document.adresses_cli.livraison_societe.disabled = true;
		document.adresses_cli.livraison_adresse.disabled = true;
		document.adresses_cli.livraison_code_postal.disabled = true;
		document.adresses_cli.livraison_ville.disabled = true;
		document.adresses_cli.livraison_pays.disabled = true;
		document.adresses_cli.livraison_telephone.disabled = true;
		
		document.adresses_cli.livraison_civilite.className = "inputText_disabled";
		document.adresses_cli.livraison_nom.className = "inputText_disabled";
		document.adresses_cli.livraison_prenom.className = "inputText_disabled";
		document.adresses_cli.livraison_societe.className = "inputText_disabled";
		document.adresses_cli.livraison_adresse.className = "inputText_disabled";
		document.adresses_cli.livraison_code_postal.className = "inputText_disabled";
		document.adresses_cli.livraison_ville.className = "inputText_disabled";
		document.adresses_cli.livraison_pays.className = "inputText_disabled";
		document.adresses_cli.livraison_telephone.className = "inputText_disabled";
		//document.adresses_cli.livraison_email.disabled = true;
	}else{
		//On réactive tout
		document.adresses_cli.livraison_civilite.disabled = false;
		document.adresses_cli.livraison_nom.disabled = false;
		document.adresses_cli.livraison_prenom.disabled = false;
		document.adresses_cli.livraison_societe.disabled = false;
		document.adresses_cli.livraison_adresse.disabled = false;
		document.adresses_cli.livraison_code_postal.disabled = false;
		document.adresses_cli.livraison_ville.disabled = false;
		document.adresses_cli.livraison_pays.disabled = false;
		document.adresses_cli.livraison_telephone.disabled = false;
		
		document.adresses_cli.livraison_civilite.className = "inputText";
		document.adresses_cli.livraison_nom.className = "inputText";
		document.adresses_cli.livraison_prenom.className = "inputText";
		document.adresses_cli.livraison_societe.className = "inputText";
		document.adresses_cli.livraison_adresse.className = "inputText";
		document.adresses_cli.livraison_code_postal.className = "inputText";
		document.adresses_cli.livraison_ville.className = "inputText";
		document.adresses_cli.livraison_pays.className = "inputText";
		document.adresses_cli.livraison_telephone.className = "inputText";
		//document.adresses_cli.livraison_email.disabled = false;
	}
}


// *****************************************************************************
// Fonction : isMail
// si le champ est rempli verifie si le format  comporte l'@ et le .
// renvoie true si oui ou si vide
// renvoie false si non
// *****************************************************************************
function isMail(mail) {
	if (mail.search(/^[a-zA-Z0-9\.\-_]+@[a-zA-Z0-9\.\-_]+\.[a-zA-Z0-9\.\-]+$/) == -1){
		return false;
	}else{
		return true;
	}
}


// *****************************************************************************
// Fonction : checkNotEmptyField
// teste si le champ n'est pas vide ("", espace, tab, retour chariot interdit)
// renvoie true si le champ est correct
// renvoie false si le champ est vide ou espaces
// *****************************************************************************
function checkNotEmptyField(theField) {
	if (!theField) return false;

	re=/^\s+$/;

	return !(re.test(theField));
}


////////////////////////////////////////////////////////////
//Fonction : cocheLivraion
//Prend en argument l'id du système de livraison à sélectionner, et le sélectionne
function cocheLivraison(idLivraison){
	for (var i=0; i < document.livraison.transport_id.length;i++) {
		if (document.livraison.transport_id[i].value == idLivraison){
			document.livraison.transport_id[i].checked = true;
			document.livraison.submit();
		}
    }
}


//Fleches calendrier
//Fonction permettant de modifier l'attribut caché des flèches du calendrier, afin de voir les 2 semaines
//précédentes ou suivantes
function fleches_calendrier(semaine){
	document.livraison.semaine.value += semaine;
	document.livraison.submit();
}


function addCrenau(valeur){
	document.commande.date_livraison.value=valeur;
}


//Cache tous les div, et affiche (s'il est caché) ou cache (s'il est affiché) le div courant
function complete(lediv){
	cacheLesDiv();

	if (divIsOpen == lediv){
		lediv.style.visibility = "hidden";
		divIsOpen = null
	}else{
		lediv.style.visibility = "visible";
		divIsOpen = lediv;
	}
}


//Fonction appelée lorsque l'utilisateur clique sur un lien dans le div, le texte est copié dans le textfield correspondant
function ajValeur(leChamp, laValeur){
	leChamp.value = laValeur;
	cacheLesDiv();
}

var tab2Div = new Array();

//Cache tous les div
function cacheLesDiv(){
	for(i = 0; i < tab2Div.length; i++){
		var autreDiv = document.getElementById("div_"+tab2Div[i]);
		autreDiv.style.visibility = "hidden";
	}
}

function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

function trim (str, chars){
	return ltrim(rtrim(str, chars), chars);
}

function ltrim (str, chars){
	var car = (chars != undefined) ? chars : "\\s";
	return str.replace(new RegExp("^[" + chars + "]*", "g"), "");
}

function rtrim (str, chars){
	var car = (chars != undefined) ? chars : "\\s";
	return str.replace(new RegExp("[" + chars + "]*$", "g"), "");
} 

function checkFormContact(){
	//On récupère les valeurs des champs du formulaire
	var nom 			= $('idFormContact_nom');
	var prenom 			= $('idFormContact_prenom');
	var adresse 		= $('idFormContact_adresse');
	var cp 				= $('idFormContact_cp');
	var ville 			= $('idFormContact_ville');
	var pays 			= $('idFormContact_pays');
	var telephone 		= $('idFormContact_telephone');
	var email 			= $('idFormContact_email');
	var description 	= $('idFormContact_description');
	
	if(nom && prenom && adresse && cp && ville && pays && telephone && email && description){
		var erreur = "";
		
		if(!checkNotEmptyField(nom.value)){
			erreur += "Vous devez entrer votre nom\n";
		}
		
		if(!checkNotEmptyField(prenom.value)){
			erreur += "Vous devez entrer votre prénom\n";
		}
		
		if(!checkNotEmptyField(adresse.value)){
			erreur += "Vous devez entrer votre adresse\n";
		}
		
		if(!checkNotEmptyField(cp.value)){
			erreur += "Vous devez entrer votre code postal\n";
		}
		
		if(!checkNotEmptyField(ville.value)){
			erreur += "Vous devez entrer votre ville\n";
		}
		
		if(!checkNotEmptyField(pays.value)){
			erreur += "Vous devez entrer votre pays\n";
		}
		
		if(!checkNotEmptyField(telephone.value)){
			erreur += "Vous devez entrer votre téléphone\n";
		}
		
		if(!checkNotEmptyField(email.value)){
			erreur += "Vous devez entrer votre email\n";
		}else if(!isMail(email.value)){
			erreur += "L'adresse email entrée n'est pas valide\n";
		}
		
		if(!checkNotEmptyField(description.value)){
			erreur += "Vous devez entrer une description pour votre projet\n";
		}
		
		if(erreur == ""){
			return true;
		}else{
			alert(erreur);
		}
	}else{
		alert("Erreur, certains champs du formulaire sont manquants.\nEssayez de changer de navigateur internet.");
	}
	return false;
}

var menuEnCours = false;
function clicMenu(idMenu, force){
	if(!menuEnCours || force != undefined){
		menuEnCours = true;
		var cadreMenu = $('cadreSsMenu_' + idMenu);
		var btnMenu = $('idBtnMenu_' + idMenu);
		if(cadreMenu && btnMenu){
			if(cadreMenu.style.display == "none" || force === true){	//Caché, on l'affiche
				
				var slideMenu = new Fx.Slide(cadreMenu, {duration:300});
				
				if(cadreMenu.style.display == "none"){
					cadreMenu.style.display = "";
					slideMenu.hide();
				}
				slideMenu.slideIn();
				slideMenu.addEvents({
					'complete': function() {
						if(btnMenu.rel != "" && btnMenu.rel != "NULL"){
							clicMenu(btnMenu.rel, true);
						}else{
							menuEnCours = false;
						}
					}
				});
				
				
				if(btnMenu.className == "btnMenuCat_0"){
					btnMenu.className = "btnMenuCat_0_selec";
				}else if(btnMenu.className == "btnMenuCat_1"){
					btnMenu.className = "btnMenuCat_1_selec";
				}else if(btnMenu.className == "btnMenuCat_2"){
					btnMenu.className = "btnMenuCat_2_selec";
				}
			}else{	//affiché, on le cache
				var slideMenu = new Fx.Slide(cadreMenu, {duration:300});
				slideMenu.slideOut();
				slideMenu.addEvents({
					'complete': function() {
						cadreMenu.style.display = "none";
						if(btnMenu.rel != "" && btnMenu.rel != "NULL"){
							clicMenu(btnMenu.rel, true);
						}else{
							menuEnCours = false;
						}
					}
				});
				
				if(btnMenu.className == "btnMenuCat_0_selec"){
					btnMenu.className = "btnMenuCat_0";
				}else if(btnMenu.className == "btnMenuCat_1_selec"){
					btnMenu.className = "btnMenuCat_1";
				}else if(btnMenu.className == "btnMenuCat_2_selec"){
					btnMenu.className = "btnMenuCat_2";
				}
			}
		}
	}
}

function clicListeMenu(liste){
	var tabId = liste.split(";");
	var animDur = 600;
	for(var i = 0; i < tabId.length; i++){
		window.setTimeout("clicMenu(" + tabId[i] + ")", i * (animDur + 10));
	}
}