<?php 
function connect(){
   $host="localhost"; 
   $login="webbike"; 
   $passe="honda";
   $base="webbike";
//include("include/admin.php");
 $link=@mysql_connect("$host","$login","$passe");
 $select_base=@mysql_selectdb("$base"); 
 if (!$select_base) 
    echo "<b>Problème de connection à la base!!! </b>"; 
}

function est_identifie() {
/* Retourne true si l'utilisateur des identifie */
	return isset($_SESSION)
		&& isset($_SESSION['utilisateur'])
		&& !empty($_SESSION['utilisateur']['email'])
		&& vb($_SESSION['url']) == $_SERVER['HTTP_HOST'];	
}
		

function necessite_identification() {
/* Cette fonction vérifie si l'utilisateur est identifié.  Si non affiche
 * l'écran d'authentification avant de laisser l'utilisateur continuer */

	global $wwwroot;
	if (! est_identifie()) {
		$_SESSION['wantsurl'] = $_SERVER['PHP_SELF'];
		echo "<meta http-equiv='Refresh' content='1; url=$wwwroot/membre.php'>";
	}
}

function necessite_priv($priv) {
/* Cette fonction vérifie si l'utilisateur a les privilèges de $priv.  Si non affiche
 * l'écran informant que les privilèges sont insuffisants et arrête le traitement */

	global $repertoire_modele, $wwwroot;
	if ( $_SESSION['utilisateur']['priv'] != "admin") { 
		?>
		<html>
		<head>
		<title>Privilèges Non accordés</title>
		</head>
		<style>
		h1 { font-family: verdana, Arial, sans-serif; font-size: 10pt; font-weight: bold; color: #CC0000; }
		</style>

		<body bgcolor="#ffffff" link="#0000ff" vlink="#000099" alink="#ff0000">
		<h1 align="center">Vous n'avez pas les autorisations nécessaires pour accéder à l'administration du site.
		<p></p>Insérer votre identifiant et votre mot de passe.
		</h1>
		</body>
		</html> <?php 
		die;
	}
}


function necessite_priv_affilie($priv) {
/* Cette fonction vérifie si l'utilisateur a les privilèges de $priv.  Si non affiche
 * l'écran informant que les privilèges sont insuffisants et arrête le traitement */

	global $repertoire_modele;
	global $wwwroot;
	
	if ( $_SESSION['utilisateur']['priv'] != "affi") { 
		?>
		<html>
		<head>
		<title>Privilèges Non accordés</title>
		</head>
		<style>
		h1 { font-family: verdana, Arial, sans-serif; font-size: 10pt; font-weight: bold; color: #CC0000; }
		</style>

		<body bgcolor="#ffffff" link="#0000ff" vlink="#000099" alink="#ff0000">
		<h1 align="center">Vous n'avez pas les autorisations nécessaires pour accéder à l'interface Affilié.
		<p></p>Insérer votre identifiant et votre mot de passe.
		</h1>
		</body>
		</html> <?php 
		die;
	}
}

function a_priv($priv) {
/* Renvoie true si l'utilisateur de la session a le privilège $priv */
	return $_SESSION['utilisateur']['priv'] == $priv;
}

function affiche_arbre_categorie($catid=false) {
/* Affiche l'arbre de categories tree en appelemnt recupere_arbre_categorie */
	echo recupere_arbre_categorie($catid);
}

function recupere_arbre_categorie($catid=0) {
/* Renvoie l'arbre des catégories des produits, en commençant de top jusquà la
 * categorie specifiee par $id */
	global $wwwroot;
	$qid = mysql_query("SELECT parent_id, nom FROM peel_categories WHERE id = $catid AND etat = 1 ORDER BY nom");
	if ($qid) {
		if (mysql_num_rows($qid)) {
			list($parent, $nom) = mysql_fetch_row($qid);
			$nom = "<a href=\"$wwwroot/achat/index.php?catid=$catid\">$nom</a>";
		} else {
			$parent = 0;
			$nom = "";
		}
	}
	else {
		$parent = 0;
		$nom = "";
	}
	if ($parent > 0) {		
	return affiche_arbre_categorie($parent) . "&nbsp;&nbsp;/&nbsp;&nbsp;" . $nom;
	} elseif ($catid > 0) {
		return "<a href=\"$wwwroot/achat/index.php\">Accueil</a>&nbsp;&nbsp; / &nbsp;&nbsp;" . $nom;
	} elseif ($catid == 0) {
		return "<a href=\"$wwwroot/achat/index.php\">Accueil</a>";
	}
}

function construit_arbo_cat(&$sortie, &$preselectionne, $parent=0, $indent="") {
/* Parcours récurcivement l'arbre des catégories, commençant d'un parent
 * il descend dans l'arbre et affiche les options pour une liste de boîtes de sélection
 * Les élément preselectionnés sont marqué comme tel */
	$qid = mysql_query("SELECT id, nom, parent_id FROM peel_categories WHERE parent_id = $parent ORDER BY nom");
	
	if ($qid) {
	
		if (mysql_num_rows($qid) > 0) {
		
			while ($cat =  mysql_fetch_array($qid)) {
		
				$selectionne = in_array($cat['id'], $preselectionne) ? "selected" : "";
		
				$sortie .= "<option value=\"" . $cat['id'] . "\" $selectionne>$indent" .stripslashes($cat['nom'])."</option>";
		
				if ($cat['id'] != $parent) {
		
					construit_arbo_cat($sortie, $preselectionne, $cat['id'], $indent."&nbsp;&nbsp;");
		
				}
		
			}
		
		}
	}
	
}	

function construit_select_cat(&$sortie, &$preselectionne, $parent=0, $indent="") {
/* Parcours récurcivement l'arbre des catégories, commençant d'un parent
 * il descend dans l'arbre et affiche les options pour une liste de boîtes de sélection
 * Les élément preselectionnés sont marqué comme tel */
	$qid = mysql_query("SELECT id, nom, parent_id FROM peel_categories WHERE parent_id = $parent ORDER BY nom");
	
	if ($qid) {
	
		if (mysql_num_rows($qid) > 0) {
		
			while ($cat =  mysql_fetch_array($qid)) {
		
				$sortie .= "<option value=\"" . $cat['id'] . "\" >$indent" .stripslashes($cat['nom'])."</option>";
		
				if ($cat['id'] != $parent) {
		
					construit_select_cat($sortie, $preselectionne, $cat['id'], $indent."&nbsp;&nbsp;");
		
				}
		
			}
		
		}
	}
	
}	

function affiche_arbre_rubrique($rubid=false) {
	echo recupere_arbre_rubrique($rubid);
}

function recupere_arbre_rubrique($rubid=0) {
/* Renvoie l'arbre des catégories des produits, en commençant de top jusquà la
 * categorie specifiee par $id */

	global$wwwroot;
	
	$qid = mysql_query("SELECT parent_id, nom FROM peel_rubriques WHERE id = $rubid AND etat = 1");
	if ($qid) {
		if (mysql_num_rows($qid)) {
			list($parent, $nom) = mysql_fetch_row($qid);
			$nom = "<a class=\"petit\"  href=\"$wwwroot/lire/index.php?rubid=$rubid\">$nom</a>";
		} else {
			$parent = 0;
			$nom = "Navigation: ";
		}
	}
	else {
		$parent = 0;
		$nom = "";
	}
	if ($parent > 0) {		
		return affiche_arbre_rubrique($parent) . " &gt; " . $nom;

	} elseif ($rubid > 0) {
		return "Navigation: <a class=\"petit\"  href=\"$wwwroot/lire/index.php\">Accueil</a> &gt; " . $nom;

	} elseif ($rubid == 0) {
		return "Navigation: <a class=\"petit\"  href=\"$wwwroot/lire/index.php\">Accueil</a>";
	}
}

function construit_arbo_rub(&$sortie, &$preselectionne, $parent=0, $indent="") {
/* Parcours récurcivement l'arbre des catégories, commençant d'un parent
 * il descend dans l'arbre et affiche les options pour une liste de boîtes de sélection
 * Les élément preselectionnés sont marqué comme tel */
	$qid = mysql_query("SELECT id, nom, parent_id FROM peel_rubriques WHERE parent_id = $parent ORDER BY nom");
	if ($qid) {
		if (mysql_num_rows($qid) > 0) {
			while ($rub =  mysql_fetch_array($qid)) {
				$selectionne = in_array($rub['id'], $preselectionne) ? "selected" : "";
				$sortie .= "<option value=\"" . $rub['id'] . "\" $selectionne>$indent" . $rub['nom'];
				if ($rub['id'] != $parent) {
					construit_arbo_rub($sortie, $preselectionne, $rub['id'], $indent."&nbsp;&nbsp;");
				}
			}
		}
	}
}

function construit_menu(&$sortie, &$selectionne, $parent=0, $indent="") {
	global $wwwroot;
	$qid = mysql_query("SELECT id, parent_id, nom FROM peel_categories WHERE parent_id = $parent AND etat = 1");
	if ($qid) {
		if (mysql_num_rows($qid) > 0) {
			while ($cat =  mysql_fetch_array($qid)) {
				$sortie .= "
				<tr><td>
				$indent<a class=\"nav\"  href=\"$wwwroot/achat/index.php?catid=" . $cat['id'] ."\">". $cat['nom'] ."\"</a></td></tr>";
				if ($cat['id'] != $parent) {
					construit_menu($sortie, $selectionne, $cat['id'], $indent."&nbsp;&nbsp;&nbsp;&nbsp;");
				}

			}
		}
	}
}

// Fonction récursive pour rechercher si $noeud fait partie de l'arborescence d'un noeud donné
// Utilisé par construit_menu afin d'ouvrir les DIV necesssaires dans l'arborescence
function parent_noeud_cat($noeud_cat,$aktul_cat,&$actif_cat){

         // Si c'est pas la racine
         if($aktul_cat != 0 && $noeud_cat != 0){
            // Recherche le parent du noeud à tester
            $sql=mysql_query("SELECT id, parent_id FROM peel_categories WHERE id = $aktul_cat");
            // récupère le résultat
            $cat=mysql_fetch_array($sql);
            // Appel récursif jusqu'à la racine
            parent_noeud_cat($noeud_cat,$cat['parent_id'],$actif_cat);
            // Si le noeud testé est le noeud recherché
            if($cat['parent_id']==$noeud_cat){
               // Met le drapeau à 1
               $actif_cat=1;
            }
         }
}

function construit_menu_arborescent_marques(&$sortie_cat){
         global $wwwroot, $catid;
         //$indent_cat +=1;
		 //if(is_array($catid)) $catid=0;
         // Recherche de tous les noeuds ayant $parent comme noeud parent
         $qid = mysql_query("SELECT DISTINCT id, fabriquant FROM peel_produits GROUP BY fabriquant");
         // Si la requete a abouti
         if($qid){
            // Pour toutes les entrées
            while($cat = mysql_fetch_array($qid)){
                 
				  	// Recherche si le noeud fait partie de l'arborescence du noeud actif
                      parent_noeud_cat($cat['id'],$catid, $actif_cat=0);
                      // Si Oui,
				  	if(($cat['id'] == $catid) || ($actif_cat == 1)){
                          // Rends le calque visible
                          $sortie_cat.= "<li class=active>";
                      }
                      else{
                          // Sinon, rends le calque invisible
                          $sortie_cat .= "<li>";
                      }
					  
                      // Ajout du lien (identique à construit menu)
					  $sortie_cat .= "<a href=\"$wwwroot/achat/index.php?catid=" . $cat['id'] ."\">";
			
                      // Ajoute le nom de la catégorie et débute un calque DIV ayant pour ID l'Id de la catégorie
                      $sortie_cat .=  $cat['fabriquant']."</a></li>";
            }
         }
}

function construit_menu_arborescent_haut(&$sortie_cat, &$selectionne_cat, $parent_cat=0, $indent_cat=-1){
         global $wwwroot, $catid;
         //$indent_cat +=1;
		 //if(is_array($catid)) $catid=0;
         // Recherche de tous les noeuds ayant $parent comme noeud parent
         $qid = mysql_query("SELECT id, parent_id, nom FROM peel_categories WHERE parent_id = $parent_cat AND etat = 1 ORDER BY nom");
         // Si la requete a abouti
         if($qid){
            // Pour toutes les entrées
            while($cat = mysql_fetch_array($qid)){
                  // Recherche d'enfant pour déterminer l'aspect de l'icone (feuille ou dossier)
                  $fils_cat = mysql_query("SELECT id, parent_id, nom FROM peel_categories WHERE parent_id = ".$cat['id']." AND etat = 1 ORDER BY nom");
                  $div_cat = mysql_num_rows($fils_cat);
                  // Si il y a des enfants
                  if ($div_cat) {
				  	// Recherche si le noeud fait partie de l'arborescence du noeud actif
                      parent_noeud_cat($cat['id'],$catid, $actif_cat=0);
                      // Si Oui,
				  	if(($cat['id'] == $catid) || ($actif_cat == 1)){
                          // Rends le calque visible
                          $sortie_cat.= "<li class=active>";
                      }
                      else{
                          // Sinon, rends le calque invisible
                          $sortie_cat .= "<li>";
                      }
                      // Ajout du lien (identique à construit menu)
					  $sortie_cat .= "<a href=\"$wwwroot/achat/index.php?catid=" . $cat['id'] ."\">";
			
                      // Ajoute le nom de la catégorie et débute un calque DIV ayant pour ID l'Id de la catégorie
                      $sortie_cat .=  $cat['nom']."</a><ul>";  
                  }
                  // Sinon, c'est un document 
                  else{
                      // Ajoute le lien (identique à construit_menu)
                      $sortie_cat .= "<li ><a href=\"$wwwroot/achat/index.php?catid=" . $cat['id'] ."\">";
                      // Si c'est la feuille active, la met en gras
                      if($cat['id']==$catid) $sortie_cat .= "";
                      // Ajoute le nom
                      $sortie_cat .= $cat['nom']."</a></li>\n";
                  }
                  //Si c'est un noeud (catégorie)
                  if($div_cat){
                     // Appel récursif pour ajout des enfants
                     construit_menu_arborescent_haut($sortie_cat, $selectionne_cat, $cat['id'], $indent_cat);
                     // Ferme le calque
                    $sortie_cat.="</ul></li>";
                  }
            }
         }
}

function construit_menu_arborescent_cat(&$sortie_cat, &$selectionne_cat, $parent_cat=0, $indent_cat=-1){
         global $wwwroot, $catid;
         $indent_cat +=1;
		 if(is_array($catid)) $catid=0;
         // Recherche de tous les noeuds ayant $parent comme noeud parent
         $qid = mysql_query("SELECT id, parent_id, nom FROM peel_categories WHERE parent_id = $parent_cat AND etat = 1 ORDER BY nom");
         if($qid){
            while($cat = mysql_fetch_array($qid)){
                  // Recherche d'enfant pour déterminer l'aspect de l'icone (feuille ou dossier)
                  $fils_cat = mysql_query("SELECT id, parent_id, nom FROM peel_categories WHERE parent_id = ".$cat['id']." AND etat = 1 ORDER BY nom");
                  $div_cat = mysql_num_rows($fils_cat);
                  // Si il y a des enfants
                  if ($div_cat){
                      // Recherche si le noeud fait partie de l'arborescence du noeud actif
                      parent_noeud_cat($cat['id'],$catid, $actif_cat=0);
                      // Si Oui,
                      if(($cat['id'] == $catid) || ($actif_cat == 1)){
                          // Rends le calque visible
                          $sortie_cat.= "<li class=active>";
                      }
                      else{
                          // Sinon, rends le calque invisible
                          $sortie_cat.= "<li>";
                      }
					  // Test si le noeud est le noeud actif (id), si oui, classe=active
                      //if($cat['id']==$catid) $sortie_cat .= "<li class=active >";
					  //else $sortie_cat .= "<li >";
					  $sortie_cat .= "<a href=\"$wwwroot/achat/index.php?catid=" . $cat['id'] ."\">".$cat['nom']."</a></il>";
					  if(($cat['id'] == $catid) || ($actif_cat == 1)){
                          // Rends le calque visible
                          $sortie_cat.= "<ul class=active style=\"display:yes\">\n";
                      }
                      else{
                          // Sinon, rends le calque invisible
                          $sortie_cat.= "<ul style=\"display:none\">\n";
                      }
	                 }
					 
                  // Sinon, c'est un document 
                  else{
				  	  
                      // Si c'est la feuille active, la met en gras
                      if($cat['id']==$catid)$sortie_cat .= "<li classe=active >";else $sortie_cat .= "<li>";
					  // Ajoute le lien (identique à construit_menu)
                      $sortie_cat .= "<a href=\"$wwwroot/achat/index.php?catid=" . $cat['id'] ."\">";
                      // Ajoute le nom
                      $sortie_cat .= $cat['nom']."</a></li>\n";
                  }
                  // Si c'est un noeud (catégorie)
                  if($div_cat){
                     // Appel récursif pour ajout des enfants
                     construit_menu_arborescent_cat($sortie_cat, $selectionne_cat, $cat['id'], $indent_cat);
                     // Ferme le calque
                     $sortie_cat.="</ul></li>";
                  }
            }
         }
}

// Fonction récursive pour rechercher si $noeud fait partie de l'arborescence d'un noeud donné
// Utilisé par construit_menu afin d'ouvrir les DIV necesssaires dans l'arborescence
function parent_noeud_rub($noeud_rub,$aktul_rub,&$actif_rub){
         // Si c'est pas la racine
         if($aktul_rub != 0 && $noeud_rub != 0){
            // Recherche le parent du noeud à tester
            $sql=mysql_query("SELECT id, parent_id FROM peel_rubriques WHERE id = $aktul_rub");
            // récupère le résultat
            $rub=mysql_fetch_array($sql);
            // Appel récursif jusqu'à la racine
            parent_noeud_rub($noeud_rub,$rub['parent_id'],$actif_rub);
            // Si le noeud testé est le noeud recherché
            if($rub['parent_id']==$noeud_rub){
               // Met le drapeau à 1
               $actif_rub=1;
            }
         }
}

function construit_menu_arborescent_rub(&$sortie_rub, &$selectionne_rub, $parent_rub=0, $indent_rub=-1){
         global $wwwroot, $rubid;
         $indent_rub +=1;
		 if(is_array($rubid)) $rubid=0;
         // Recherche de tous les noeuds ayant $parent comme noeud parent
         $qid = mysql_query("SELECT id, parent_id, nom FROM peel_rubriques WHERE parent_id = $parent_rub AND etat = 1 ORDER BY nom");
         // Si la requete a abouti
         if($qid){
            // Pour toutes les entrées
            while($rub = mysql_fetch_array($qid)){
                  // Boucle pour ajouter l'indentation (une image vide)
                  // Pour aller plus loin on peut gérer des lignes de suite
                  //for($i=0;$i<$indent_rub;$i++){
                   //   $sortie_rub .= "<img src=\"$wwwroot/images/mnu_empty.gif\" border=\"0\" alt=\"\" />";
                  //}
                  // Recherche d'enfant pour déterminer l'aspect de l'icone (feuille ou dossier)
                  $fils_rub = mysql_query("SELECT id, parent_id, nom FROM peel_rubriques WHERE parent_id = ".$rub['id']." AND etat = 1 ORDER BY nom");
                  $div_rub = mysql_num_rows($fils_rub);
                  // Si il y a des enfants
                  if ($div_rub) {
                      // Ajout de l'icone du dossier
                      //$sortie_rub .= "<img src=\"$wwwroot/images/menplus.gif\" border=\"0\" alt=\"\" />&nbsp;";
                      // Ajout du lien (identique à construit menu)
                      $sortie_rub .= "<ul><a href=\"$wwwroot/lire/index.php?rubid=" . $rub['id'] ."\">";
                      // Test si le noeud est le noeud actif (id), si oui, ajoute du gras (plus visuel)
                      if($rub['id']==$rubid) $sortie_rub .= "<b>";
                      // Ajoute le nom de la catégorie et débute un calque DIV ayant pour ID l'Id de la catégorie
                      $sortie_rub .=  $rub['nom']."</a></b><li";
                      // Recherche si le noeud fait partie de l'arborescence du noeud actif
                      parent_noeud_rub($rub['id'],$rubid, $actif_rub=0);
                      // Si Oui,
                      if(($rub['id'] == $rubid) || ($actif_rub == 1)){
                          // Rends le calque visible
                          $sortie_rub.= " style=\"display:yes\">\n";
                      }
                      else{
                          // Sinon, rends le calque invisible
                          $sortie_rub.= " style=\"display:none\">\n";
                      }
                  }
                  // Sinon, c'est un document 
                  else{
                      // Ajoute l'image du document
                      //$sortie_rub .= "<img src=\"$wwwroot/images/menminus.gif\" border=\"0\" alt=\"\" />&nbsp;";
                      // Ajoute le lien (identique à construit_menu)
                      $sortie_rub .= "<li><a href=\"$wwwroot/lire/index.php?rubid=" . $rub['id'] ."\">";
                      // Si c'est la feuille active, la met en gras
                      if($rub['id']==$rubid) $sortie_rub .= "";
                      // Ajoute le nom
                      $sortie_rub .= $rub['nom']."</a></li>\n";
                  }
                  // Si c'est un noeud (catégorie)
                  if($div_rub){
                     // Appel récursif pour ajout des enfants
                     construit_menu_arborescent_rub($sortie_rub, $selectionne_rub, $rub['id'], $indent_rub);
                     // Ferme le calque
                     $sortie_rub.="</ul>";
                  }
            }
         }
}

function recupere_articles_caddie() {
/* Retourne $qid de tous les éléments du caddie */

	global $_SESSION, $tauxtva;

	$in_clause = $_SESSION['caddie']->recupere_produitid_list();
	if (empty($in_clause)) {

		return false;
	}
	$requete = "SELECT id, reference, nom, promotion, prix, tva FROM peel_produits WHERE id IN ($in_clause)";
	return mysql_query($requete);
}


function genere_mot_passe($long_max=10) {
/* Retourne un mot de passe généré aléatoirement de taille $long_max*/

	global $liste_mots;

	$separateur = "1234567890!@#$%&*-_=+^";
	
	$liste_mots = file($liste_mots);

	srand((double) microtime() * 1000000);

	$mot1 = trim($liste_mots[rand(0, count($liste_mots) - 1)]);
	
	$mot2 = trim($liste_mots[rand(0, count($liste_mots) - 1)]);
	
	$separateur1 = $separateur[rand(0, strlen($separateur) - 1)];

	return substr($mot1 . $separateur1 . $mot2, 0, $long_max);
}

function initialise_mot_passe($email) {
/* Initialise le mot de passe de l'utilisateur et lui envoie par e-mail*/

	global $support, $site;
	
	/* Chargement des infos de l'utilisateur */
	$qid = mysql_query("SELECT email, prenom, nom_famille FROM peel_utilisateurs WHERE email = '$email'");
	
	$utilisateur = mysql_fetch_array($qid);

	/* initialise le mot de passe */
	$nouveau_mot_passe = genere_mot_passe();
	
	$qid = mysql_query("UPDATE peel_utilisateurs SET mot_passe = '" . md5($nouveau_mot_passe) ."' WHERE email = '$email'");

	/* envoie par email */
	$corps_message = "Le mot de passe de votre compte client du site $site a été réinitialisé.\n\n";
	$corps_message .= "Votre identifiant est le suivant: ".$utilisateur['email'].".\n";
	$corps_message .= "Votre nouveau mot de passe est : $nouveau_mot_passe\n";
	
	mail($utilisateur['email'],"Nouveau mot de passe de votre compte client $site","$corps_message","From:$support");
}

function lit_modele($nom_fichier, &$var) {
/* Retourne une chaine contenant le contenu d'un fichier modele avec interpolation
 * des variables.  Toutes les variables doivent être dans le tableau $var[] 
 * ATTENTION: Ne pas utiliser sur les gros fichiers!! */

	$temp = str_replace("\\", "\\\\", implode(file($nom_fichier), ""));
	$temp = str_replace('"', '\"', $temp);
	eval("\$modele = \"$temp\";");
	return $modele;
}

function chop_ccnum($ccnum) {
/* Retourne des infos parcélaires sur la carte de crédit pour discrétion
 */
 
	return substr($ccnum, 0, 4) . "..." . substr($ccnum, -4);
}

function enregistre_commandeinfo(&$frm) {
/* Conserve les infos de la commande  dans la variable de session
 * $_SESSION['commande']. */

	$commande = array();
	$commande['client1'] = $frm['client1'];
	$commande['contact1'] = $frm['contact1'];
	$commande['email1'] = $frm['email1'];
	$commande['adresse1'] = $frm['adresse1'];
	$commande['code_postal1'] = $frm['code_postal1'];
	$commande['ville1'] = $frm['ville1'];
	$commande['pays1'] = $frm['pays1'];
	$commande['client2'] = $frm['client2'];
	$commande['contact2'] = $frm['contact2'];
	$commande['email2'] = $frm['email2'];
	$commande['adresse2'] = $frm['adresse2'];
	$commande['code_postal2'] = $frm['code_postal2'];
	$commande['ville2'] = $frm['ville2'];
	$commande['pays2'] = $frm['pays2'];
	$commande['commentaires'] = $frm['commentaires'];
	$commande['paiement'] = $frm['paiement'];
	$commande['transport'] = $frm['transport'];	
	$commande['cgv'] = $frm['cgv'];	
	$_SESSION['commande'] = $commande;
}

function charge_commande() {
/* Cette fonction est la contrepartie de enregistre_commandeinfo.  
 * Utilisé pour récupérer l'information de la commande */


	if (empty($_SESSION['commande'])) {
		return false;
	} else {
		return $_SESSION['commande'];
	}
}

function vide_commandeinfo() {
/* Vide les paramètres de commande d'une session */

	unset($_SESSION['commande']);
}

function print_societe() {
/* Affiche la liste des catégories qui sont spéciales */

	$qid = mysql_query("SELECT * FROM peel_societe");
	if ($qid) {
	
	if (mysql_num_rows($qid) > 0) { 
	
		$ligne = mysql_fetch_object($qid); 
	
			print "<div class=\"petit\">";
			if (!empty($ligne->societe))	{ print "<b>" . $ligne->societe . "</b><br />";}
			if (!empty($ligne->adresse))	{ print $ligne->adresse . "<br />";}
			if (!empty($ligne->code_postal)) { print $ligne->code_postal . "&nbsp;";}
			if (!empty($ligne->ville))		{ print $ligne->ville . "<br />";}
			if (!empty($ligne->pays))		{ print $ligne->pays . "<br />";}
			if (!empty($ligne->tel))		{ print "Tel. : " . $ligne->tel . "<br />";}
			if (!empty($ligne->fax))		{ print "Fax. : " . $ligne->fax . "<br />";}
			//if (!empty($ligne->siren))		{ print "SIREN : " . $ligne->siren . "<br />";}
			print "</div>";
		}
	}	
}	

function print_rib() {
/* Affiche la liste des catégories qui sont spéciales */

	$qid = mysql_query("SELECT * FROM peel_societe");
	if ($qid) {	
	if (mysql_num_rows($qid) > 0) { 	
		$ligne = mysql_fetch_object($qid); 
				print "<div class=\"normal\">";
			if (!empty($ligne->code_banque))	{ print "<b>Code banque :</b> $ligne->code_banque<br />";}
			if (!empty($ligne->code_guichet))	{ print "<b>Code guichet :</b> $ligne->code_guichet<br />";}
			if (!empty($ligne->numero_compte))  { print "<b>Numéro de compte :</b> $ligne->numero_compte<br />";}
			if (!empty($ligne->cle_rib))		{ print "<b>Clé RIB :</b> $ligne->cle_rib<br />";}
			if (!empty($ligne->titulaire))		{ print "<b>Titulaire du compte :</b> $ligne->titulaire<br />";}
			if (!empty($ligne->domiciliation))   { print "<b>Domiciliation :</b> $ligne->domiciliation<br />";}
			print "</div>";
		}
	}	
}	

function fdate(&$date_nok) {
	$date_ok = date("d-m-Y H:i",strtotime($date_nok));
	return $date_ok;
	}

function fprix(&$prix_nok) {
	$prix_ok = number_format($prix_nok,2, ',', ' ');
	return $prix_ok;
	}

# fonction de validation d'adresse mail trouvée sur http://www.phpinfo.net/?p=trucs&rub=astuces
function EmailOK($email) {

  return( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
               '@'.
               '[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.
               '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',
               $email) );
}

# création d'un mot de passe crypté
function unique_id(){
  mt_srand((double)microtime()*1000000);
  return  md5( mt_rand(0,9999999) );
}
	
function return_date_fr($timestamp){ 
	// par defaut on affiche la date du jour 

  $jsem = date('w', strtotime($timestamp)); // jour de la semaine 
  $jmois = date('j', strtotime($timestamp)); // jour du mois ('d' est aussi utilisable) 
  $mois = date('n', strtotime($timestamp)); // mois de l'annee 
  $annee = date('Y', strtotime($timestamp)); // l'annee 
  $tabjour=array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'vendredi',
'Samedi'); 
  $tabmois=array('0', 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 
  'juillet', 'août', 'septembre', 'octobre', 'novembre',
'décembre'); 
  
  // construction de la date formatee 
  $datefr = $tabjour[$jsem]." $jmois ".$tabmois[$mois]." $annee"; 
  
  // affichage (remplacer 'echo ' par 'return' pour retourner le resultat) 
  return $datefr;
}	

function cree_commande(&$commande) {
// Enregistre la commande dans la base 

	global $normal;
	global $express;
	global $site;
	global $support;
	global $wwwroot;
	
	// Constuit les infos du client en une chaîne
	// Addresse de facturation
	$client_info1 =
		 $commande['client1']."\n"
		.$commande['adresse1']."\n"
		.$commande['code_postal1']."\n"
		.$commande['ville1']."\n"
		.$commande['pays1']."\n"
		.$commande['contact1']."\n"
		.$commande['email1']."\n";
	
	// Addresse de livraison
	$client_info2 =
		 $commande['client2']."\n"
		.$commande['adresse2']."\n"
		.$commande['code_postal2']."\n"
		.$commande['ville2']."\n"
		.$commande['pays2']."\n"
		.$commande['contact2']."\n"
		.$commande['email2']."\n";	
		
	// Calcul le panier total T.T.C
	$caddie_total = $_SESSION['caddie']->total + $_SESSION['caddie']->cout_transport;
	
	$sql = "
	INSERT INTO peel_commandes (
		email
		,id_utilisateur
		, o_timestamp
		, statut
		, statut_details
		, client_info1
		, client_info2
		, commentaires
		, montant
		, paiement
		, transport
		, cout_transport
	) VALUES (
		 '{$_SESSION['utilisateur']['email']}'
		,'{$_SESSION['utilisateur']['id_utilisateur']}'
		,now()
		,1
		,'attente de r&egrave;glement'
		,'".addslashes($client_info1)."'
		,'".addslashes($client_info2)."'
		,'".addslashes($commande['commentaires'])."'
		,'".$caddie_total."'
		,'".$_SESSION['caddie']->paiement."'
		,'".$_SESSION['caddie']->transport."'
		,'".$_SESSION['caddie']->cout_transport."'
	)";
	
	$qid = mysql_query($sql);

	$commandeid = Connection::getConnection()->lastInsertId();

	/* ajout des articles à la table commandes_articles */
	$qid = recupere_articles_caddie();
	
	if ($qid) {
	
		if (mysql_num_rows($qid) > 0) {
	
			while ($article = mysql_fetch_array($qid)) {
			
				$prix = $article['prix'] * (1-$article['promotion']/100);
				
				$requete = 	"INSERT INTO peel_commandes_articles (
					commande_id, produit_id, nom_produit, prix, quantite, promotion, tva
				) VALUES (
					 '$commandeid'
					,'".$article['id']."'
					,'".addslashes($article['nom'])."'
					,'".$prix."'
					,'".$_SESSION['caddie']->articles[$article['id']]."'
					,'".$article['promotion']."'
					,'".$article['tva']."'
				)";
				mysql_query($requete);
			}
		}
	}
	
	return $commandeid;
}

function email_commande(&$commandeid) {

	global $wwwroot;
	global $site;
	global $support;
	
	$result = mysql_query("SELECT email, o_timestamp, montant FROM peel_commandes WHERE id ='".$commandeid."'");
	
	$com = mysql_fetch_object($result);
	
	$goto = "/factures/facture_html.php?mode=proforma&id=$commandeid&timestamp=".urlencode($com->o_timestamp)."";
	
	$urlcommande = $wwwroot.$goto;
	
	// Mail d'information envoyé à l'administrateur

	mail(
		$support,
		"Nouvelle commande sur votre site web $site",
		"Une commande portant le numéro $commandeid vient d'être enregistrée sur le site $site.",
		"FROM:$support");	
		
	// Mail à l'adresse de facturation
	
	$facturation = "Votre commande n° $commandeid a bien été enregistrée sur le site $site.\n\n"
					 ."Date : ".return_date_fr($com->o_timestamp)."\n"
					 ."Montant : $com->montant EUR TTC\n"
					 ."Pour terminer votre commande, cliquez sur le lien suivant :\n $urlcommande\n\n"
					 ."et envoyez votre règlement figurant sur ce dernier.\n\n"
					 ."Nous vous remercions pour votre confiance\n\nL'équipe du site $site.";
					 
	mail($com->email,
		"Confirmation de commande",
		$facturation,
		"FROM:$support");		

	// Mail à l'adresse de livraison
	
	$livraison = "Une commande portant le n° $commandeid va vous être livrée.\n\n"
				 ."Nous vous remercions pour votre confiance\n\nL'équipe du site $site.";					 
		
	mail(
		$_SESSION['commande']['email2'],
		"Enregistrement d'une commande en provenance de $site",
		$livraison,
		"FROM:$support");
}

function frmvalide(&$var, $true_value = "checked", $false_value = "") {
/* Affiche le mot "checked" si la variable est vraie sinon rien */

	if ($var) {
		echo $true_value;
	} else {
		echo $false_value;
	}
}

function valide(&$var, $init_valeur = 1, $vide_valeur = 0) {
/* Si var est défini, place init_valeur dedans, sinon place vide_valeur.*/

	if (empty($var)) {
		$var = $vide_valeur;
	} else {
		$var = $init_valeur;
	}
}

function vb(&$var, $default="") { // Variable blanche
/* if $var n'est pas défini, retourne $default, sinon retourne $var */

	return isset($var) ? $var : $default;
}

function vn(&$var, $default=0) { // Variable nulle
/* if $var n'est pas défini, retourne $default, sinon retourne $var */

	return isset($var) ? $var : $default;
}

function pv(&$var) { // print var
/* retourne $var avec les caractères HTML correctement traité (comme "<", ">", etc.),
 * ou si $var n'est pa défini, retourne une chaîne vide.  
 * Cette fonction doit être appelée avec une variable, utilisez la fonction p() */

	p(vb($var));
}

function t($var) { // Traitement des variables textes
/* returns $var with HTML characters (like "<", ">", etc.) properly quoted,
 * or if $var is empty, will return an empty string. */

	return empty($var) ? "" : htmlSpecialChars(stripslashes($var));
}

function p($var) { //print
/* prints $var with HTML characters (like "<", ">", etc.) properly quoted,
 * or if $var is empty, will print an empty string. */

	echo t($var);
}

function jstring($var) {
/* returns string that is quoted for javascript */

	return addslashes($var);
}
	
/* Fonction de contrôle pour l'upload de fichiers */
function validate_upload($the_file) {

global $my_max_file_size;
global $image_max_width;
global $image_max_height;
global $allowed_types;
global $registered_types;

		$error = "";
		
		echo $the_file['type'];

		$the_file_type = $the_file['type'];
       
	    $start_error = "\n<b>Erreur :</b>\n<ul>";

		if (in_array($the_file_type,$allowed_types)) {}
        
		if ($the_file == "none") {
                
				$error .= "\n<li>Vous n'avez rien uploadé.</li>";

        } else { # Vérification du type de fichier uploadé
                
				if (!in_array($the_file_type,$allowed_types)) {
				
                        $error .= "\n<li>Le type de fichier que vous essayez d'uploader n'est pas autorisé, vous ne pouvez télécharger des fichiers que du type : \n<ul>";
        
		                while ($type = current($allowed_types)) {
        
		                        $error .= "\n<li>" . $registered_types[$type] . " (" . $type . ")</li>";
        
		                        next($allowed_types);
         
		                }
         
		                $error .= "\n</ul>";
         
		        }

                if (in_array($the_file_type,$allowed_types)) {
				
						list($width, $height, $type, $attr) = getimagesize($the_file['tmp_name']); 
						
						if ($width > $image_max_width) {

                                $error .= "\n<li>Votre image ne devrait être plus large que " . $image_max_width . " Pixels</li>";

                        }

                        if ($height > $image_max_height) {
						
                        
						        $error .= "\n<li>Votre image ne devrait être plus haute que " . $image_max_height . " Pixels</li>";
                        
						}

                }

                if ($error) {
         
		                $error = $start_error . $error . "\n</ul>";
         
		                return $error;
         
		        } else {
         
		                return false;
         
		        }
        
		}
} // Fin de la fonction validate upload

/*Fonction d'upload de fichiers */
function upload($the_file) {

global $the_path;

		$the_file_tmp = $the_file['tmp_name'];
		
		$the_file_name = $the_file['name'];
	
		$error = validate_upload($the_file); 	// Teste la validité du document
		
		$extension = substr($the_file_name, strrpos($the_file_name, "."));
		
		$dateheure = strftime("%d%m%y_%H%M%S");
		
		$mdp = MDP();
				
		$the_new_file_name = $dateheure . "_PEEL_" .$mdp.$extension;
		
		if ($error) {
                return $error;
        } else { # cool, we can continue
                if (!move_uploaded_file($the_file_tmp, $the_path . $the_new_file_name)) {
                        //form("\n<b>Quelques choses ne fonctionnent pas : vérifier le chemin de la variable $path et les permissions du répertoire /upload (il doit être en CHMOD777</b>");
                } else {	
						chmod($the_path . $the_new_file_name, 0777);
                        return $the_new_file_name;
                }
        }
} 

function MDP() // Fonction utiliser pour le renommage des fichiers images
{
  $chrs = 6 ; // Fixe le nombre de caractères
  $pwd = ""  ;
  mt_srand ((double) microtime() * 1000000);
  while (strlen($pwd)<$chrs)
  {
    $chr = chr(mt_rand (0,255));
    if (eregi("^[a-hj-km-np-z2-9]$", $chr))
      $pwd = $pwd.$chr;
  };
  return $pwd;
}




?>