<?php
/****************************************************************************************
 * SMI (Services Maintenance Interventions) est une gestion libre de maintenance et de SAV
 *
 * Version 1.0.2
 *
 * Copyright (C) 2006-2015  Sylvain FATOME
 * This program is free software; you can redistribute it and/or modify it under the terms
 * of the GNU General Public License as published by the Free Software Foundation;
 * either version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program
 * (in the directory docs);
 * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA  02110-1301, USA.
 *
 * Contact : galawa@free.fr
 *
 * Web : http://smi.no-ip.org
 ****************************************************************************************/


// Vérification des tentatives de hack
$pos = strpos($_SERVER['PHP_SELF'], "inc.php");
if ($pos === FALSE)
    $ok_inc = TRUE;
else
    $ok_inc = FALSE;
if ($ok_inc == FALSE) header("Location: ../index.php");

/**************************************************/
/* Fonctions pour les accès aux fichiers internes */
/* et fichiers logos                              */
/**************************************************/

/**
 * Lecture d'un enregistrement fichiers internes
 *
 * @param $nom
 * @param bool $open
 * @return mixed
 */
function lit_enr_fic($nom, $open = TRUE)
{
    global
    $db;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT * FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $rows2 = $db->get_results($rech2, ARRAY_A);
    if (($rows2) AND (count($rows2) > 0)) // On a trouvé un ou plusieurs enregistrements
    {
        if (count($rows2) == 1) // On a trouvé un seul enregistrement
            return $rows2[0];
        else {
            foreach ($rows2 as $row2) {
                if ($nom == $row2["fic_nom"]) {
                    return $row2;
                    break;
                }
            }
        }
    }
    if ($open == TRUE)
        $db->disconnect();

    return $row2;
}

/**
 * Lecture d'un enregistrement fichiers internes (sur ID)
 *
 * @param $id
 * @param bool $open
 * @return array|null
 */
function lit_enr_ficid($id, $open = TRUE)
{
    global
    $db;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT * FROM `" . TBFIC . "` WHERE fic_id = '$id'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($open == TRUE)
        $db->disconnect();

    return $row2;
}

/**
 * MAJ Nb Téléchargements d'un fichier interne
 *
 * @param $nom
 * @param bool $open
 * @return array|null
 */
function maj_nbtel_enr_fic($nom, $open = TRUE)
{
    global
    $db;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT fic_nbtel FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        $nbtel = $row2["fic_nbtel"];
        $nbtel++;

        $rech3 = "UPDATE `" . TBFIC . "` SET `fic_nbtel`='" . $nbtel . "'  WHERE `fic_nom` = '" . $db->escape($nom) . "'";
        $db->query($rech3);
    }
    if ($open == TRUE)
        $db->disconnect();

    return $row2;
}

/**
 * Donne l'id d'un enregistrement fichier
 *
 * @param $nom
 * @param bool $open
 * @return int
 */
function donne_id_fic($nom, $open = TRUE)
{
    global
    $db;
    $no_id = -1;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech2 = "SELECT fic_id FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $rows2 = $db->get_results($rech2, ARRAY_A);
    if (($rows2) AND (count($rows2) > 0)) // On a trouvé un ou plusieurs enregistrements
    {
        if (count($rows2) == 1) // On a trouvé un seul enregistrement
            $no_id = $rows2[0]["fic_id"];
        else {
            foreach ($rows2 as $row2) {
                if ($nom == $row2["fic_nom"]) {
                    $no_id = $row2["fic_id"];
                    break;
                }
            }
        }
    }
    if ($open == TRUE)
        $db->disconnect();

    return $no_id;
}

/**
 * Donne le créateur du fichier/répertoire
 *
 * @param $nom
 * @param bool $open
 * @return string
 */
function donne_createur_ficdir($nom, $open = TRUE)
{
    global
    $db;
    $createur = _("inconnu");

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech2 = "SELECT fic_codecrea FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        $createur = $fic_codecrea;
    }
    if ($open == TRUE)
        $db->disconnect();

    return $createur;
}

/**
 * Donne le nombre de téléchargements du fichier/répertoire
 *
 * @param $nom
 * @param bool $open
 * @return int
 */
function donne_nbtel_ficdir($nom, $open = TRUE)
{
    global
    $db;
    $nbtel = 0;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech2 = "SELECT * FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2)
        $nbtel = $row2["fic_nbtel"];
    if ($open == TRUE)
        $db->disconnect();

    return $nbtel;
}

/**
 * Vérifie si ($user) est le créateur du fichier/répertoire (ou si c'est un administrateur)
 *
 * @param $nom
 * @param $user
 * @param bool $open
 * @return bool
 */
function est_createur_ficdir($nom, $user, $open = TRUE)
{
    global
    $db,
    $admin_code;

    if ($user == $admin_code) // L'admin peut tout faire
        return true;

    $est_createur = FALSE;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT COUNT(*) FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "' AND fic_codecrea = '" . $db->escape($user) . "'";
    $nbres = $db->get_var($rech2);
    if ($nbres > 0) // On a trouvé un enregistrement
        $est_createur = TRUE;
    if ($open == TRUE)
        $db->disconnect();

    return $est_createur;
}

/**
 * Donne le détail d'un enregistrement fichier
 *
 * @param $nom
 * @param bool $open
 * @return string
 */
function donne_det_fic($nom, $open = TRUE)
{
    global
    $db;
    $detfic = "";

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech2 = "SELECT fic_detail FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2)
        $detfic = $row2["fic_detail"];
    if ($open == TRUE)
        $db->disconnect();

    return $detfic;
}

/**
 * Donne le descriptif d'un enregistrement fichier
 *
 * @param $nom
 * @param bool $open
 * @return string
 */
function donne_desc_fic($nom, $open = TRUE)
{
    global
    $db;
    $descfic = "";

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech2 = "SELECT fic_desc FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        $row2 = encode_str($row2);
        $descfic = $row2["fic_desc"];
    }
    if ($open == TRUE)
        $db->disconnect();

    return $descfic;
}

/**
 * Vérifie le dossier spécifique d'un client
 *
 * @param $codec
 * @param $ste
 * @param $nom
 * @param $prenom
 * @param bool $open
 * @return string
 */
function check_fic_cli($codec, $ste, $nom, $prenom, $open = TRUE)
{
    global
    $db,
    $url_gfc,
    $datea,
    $admin_code;

    $msg_err = "";

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    // Création du répertoire de stockage spécifique au client
    $rep_clients = $url_gfc . "/clients";
    $desc_rep_clients = utf8_decode(_("Répertoires clients"));
    $detail_rep_clients = utf8_decode(_("Fichiers pour les clients"));
    $rep_ce_client = $rep_clients . "/" . strtolower($codec);
    $rep_pj_ce_client = $rep_clients . "/" . strtolower($codec) . "/PJ";
    if ($ste <> "") {
        $desc_rep_ce_client = utf8_decode(_("Client")) . " ".$ste . " (" . $codec . ")";
        $detail_rep_ce_client = utf8_decode(_("Fichiers pour le client")) . " ". $ste . " (" . $codec . ")";
        $desc_rep_pj_ce_client = utf8_decode(_("Répertoire PJ client ")) . " ".$ste . " (" . $codec . ")";
        $detail_rep_pj_ce_client = utf8_decode(_("Pièces jointes pour le client ")) . " " .$ste . " (" . $codec . ")";
    } else {
        $desc_rep_ce_client = utf8_decode(_("Client")) . $nom . " " . $prenom . " (" . $codec . ")";
        $detail_rep_ce_client = utf8_decode(_("Fichiers pour le client")) . " ".$nom . " " . $prenom . " (" . $codec . ")";
        $desc_rep_pj_ce_client = utf8_decode(_("Répertoire PJ client ")) . " ".$nom . " " . $prenom . " (" . $codec . ")";
        $detail_rep_pj_ce_client = utf8_decode(_("Pièces jointes pour le client ")) . " ".$nom . " " . " ".$prenom . " (" . $codec . ")";
    }
    if (!is_dir($rep_clients)) // Si le sous-répertoire spécifique aux clients n'existe pas, on le crée
    {
        $cree_rep_clients = @mkdir($rep_clients);
        if ($cree_rep_clients) {
            $rech = "INSERT INTO `" . TBFIC . "`";
            $rech .= " (fic_nom,fic_type,fic_desc,fic_detail,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
            $rech .= " ('$rep_clients','0','" . $db->escape($desc_rep_clients) . "','" . $db->escape($detail_rep_clients) . "','$datea','$admin_code','0')";
            $db->$query($rech);
        } else
            $msg_err = _("Problème de création de répertoire de stockage des clients");
    }

    if (!is_dir($rep_ce_client)) // Si le sous-répertoire spécifique à ce client n'existe pas, on le crée
    {
        $cree_rep_ce_client = @mkdir($rep_ce_client);
        if ($cree_rep_ce_client) {
            $rech = "INSERT INTO `" . TBFIC . "`";
            $rech .= " (fic_nom,fic_type,fic_desc,fic_detail,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
            $rech .= " ('" . $db->escape($rep_ce_client) . "','0','" . $db->escape($desc_rep_ce_client) . "','" . $db->escape($detail_rep_ce_client) . "','$datea','$admin_code','0')";
            $db->query($rech);
        } else
            $msg_err = _("Problème de création de répertoire de stockage du client");
    }

    if ($mess_err == "") {
        if (!is_dir($rep_pj_ce_client)) // Si le sous-répertoire spécifique des PJ de ce client n'existe pas, on le crée
        {
            $cree_rep_pj_ce_client = @mkdir($rep_pj_ce_client);
            if ($cree_rep_pj_ce_client) // On crée sous-répertoire spécifique à ce client
            {
                // On ajoute le détail dans le fichier MySQL

                // Dossier PJ du client
                $rech = "INSERT INTO `" . TBFIC . "`";
                $rech .= " (fic_nom,fic_type,fic_desc,fic_detail,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
                $rech .= " ('" . $db->escape($rep_pj_ce_client) . "','0','" . $db->escape($desc_rep_pj_ce_client) . "','" . $db->escape($detail_rep_pj_ce_client) . "','$datea','$admin_code','0')";
                $db->query($rech);
            } else
                $msg_err = _("Problème de création de répertoire pièces jointes pour ce client");
        }
    }

    /*if ($open == TRUE)
        $db->disconnect();*/

    return $msg_err;
}

/**
 * Vérifie le dossier spécifique d'une agence
 *
 * @param $codea
 * @param $nom
 * @param bool $open
 * @return string
 */
function check_fic_age($codea, $nom, $open = TRUE)
{
    global
    $db,
    $url_gfc,
    $datea,
    $admin_code;

    $msg_err = "";

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    // Création du répertoire de stockage spécifique à l'agence
    $rep_agences = $url_gfc . "/agences";
    $desc_rep_agences = utf8_decode(_("Répertoire spécifique aux agences"));
    $detail_rep_agences = utf8_decode(_("Fichiers personnels de chaque agence"));
    $rep_cette_agence = $rep_agences . "/" . strtolower($codea);
    $desc_rep_cette_agence = utf8_decode(_("Agence"))." " . $nom . " (" . $codea . ")";
    $detail_rep_cette_agence = utf8_decode(_("Fichiers agence"))." " . $nom . " (" . $codea . ")";
    $rep_import_cette_agence = $rep_agences . "/" . strtolower($codea) . "/imports";
    $desc_rep_import_cette_agence = utf8_decode(_("Imports agence"))." " . $nom . " (" . $codea . ")";
    $detail_rep_import_cette_agence = utf8_decode(_("Fichiers imports agence"))." " . $nom . " (" . $codea . ")";

    if (!is_dir($rep_agences)) // Si le sous-répertoire spécifique aux agences n'existe pas, on le crée
    {
        $cree_rep = @mkdir($rep_agences);
        if ($cree_rep) {
            $rech = "INSERT INTO `" . TBFIC . "`";
            $rech .= " (fic_nom,fic_type,fic_desc,fic_detail,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
            $rech .= " ('$rep_agences','0','".$db->escape($desc_rep_agences)."','".$db->escape($detail_rep_agences)."','$datea','$admin_code','0')";
            $db->query($rech);
        } else
            $msg_err = _("Problème de création de répertoire pour les agences");
    }

    if ($msg_err == "") {
        if (!is_dir($rep_cette_agence)) // Si le sous-répertoire spécifique à cette agence n'existe pas, on le crée
        {
            $cree_rep = mkdir($rep_cette_agence);
            if ($cree_rep) // On crée un sous-répertoire spécifique à cette agence
            {
                // On ajoute le détail dans le fichier MySQL
                $rech = "INSERT INTO `" . TBFIC . "`";
                $rech .= " (fic_nom,fic_type,fic_desc,fic_detail,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
                $rech .= " ('$rep_cette_agence','0','".$db->escape($desc_rep_cette_agence)."','".$db->escape($detail_rep_cette_agence)."','$datea','$admin_code','0')";
                $db->query($rech);
            } else
                $msg_err = _("Problème de création de répertoire pour cette agence");
        }
    }

    if ($mess_err == "") {
        if (!is_dir($rep_import_cette_agence)) // Si le sous-répertoire pour les imports de cette agence n'existe pas, on le crée
        {
            $cree_rep = @mkdir($rep_import_cette_agence);
            if ($cree_rep) // On crée un sous-répertoire pour les imports de cette agence
            {
                // On ajoute le détail dans le fichier MySQL
                $rech = "INSERT INTO `" . TBFIC . "`";
                $rech .= " (fic_nom,fic_type,fic_desc,fic_detail,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
                $rech .= " ('$rep_import_cette_agence','0','".$db->escape($desc_rep_import_cette_agence)."','".$db->escape($detail_rep_import_cette_agence)."','$datea','$admin_code','0')";
                $db->query($rech);
            } else
                $msg_err = _("Problème de création du répertoire des imports pour cette agence");
        }
    }
    if ($open == TRUE)
        $db->disconnect();

    return $msg_err;
}

/**
 * Vérifie le dossier spécifique d'une intervention
 *
 * @param $codeint
 * @param bool $open
 * @return string
 */
function check_fic_int($codeint, $open = TRUE)
{
    global
    $db,
    $url_gfc,
    $datea,
    $admin_code;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    // On lit l'intervention
    $rech = "SELECT int_codecli FROM `" . TBINT . "` WHERE `int_code` = '" . $db->escape($codeint) . "'";
    $row = $db->get_row($rech, ARRAY_A);
    if ($row) {
        $row = encode_str($row);
        extract($row);

        // On lit le client
        $rech2 = "SELECT cli_ste, cli_nom, cli_prenom FROM `" . TBCLI . "` WHERE `cli_code` = '$int_codecli'";
        $row2 = $db->get_row($rech2, ARRAY_A);
        if ($row2) {
            $row2 = encode_str($row2);
            extract($row2);

            $msg_err = check_fic_cli($int_codecli, $cli_ste, $cli_nom, $cli_prenom, FALSE);

            if ($mess_err == "") {
                $rep_pj_int_ce_client = $url_gfc . "/clients/" . strtolower($int_codecli) . "/PJ/" . $codeint;
                $detail_rep_pj_int_ce_client = utf8_decode(_("Pièces jointes pour intervention"))." " . $codeint;
                if (!is_dir($rep_pj_int_ce_client)) // Si le sous-répertoire spécifique des PJ de cette intervention n'existe pas, on le crée
                {
                    $cree_rep_pj_int_ce_client = @mkdir($rep_pj_int_ce_client);
                    if ($cree_rep_pj_int_ce_client) // On crée sous-répertoire spécifique à cette intervention
                    {
                        // On ajoute le détail dans le fichier MySQL

                        // Dossier PJ de l'intervention
                        $rech = "INSERT INTO `" . TBFIC . "`";
                        $rech .= " (fic_nom,fic_type,fic_desc,fic_detail,fic_datecrea,fic_codecrea,fic_nbtel) VALUES";
                        $rech .= " ('$rep_pj_int_ce_client','0','" . $db->escape($detail_rep_pj_int_ce_client) . "','" . $db->escape($detail_rep_pj_int_ce_client) . "','$datea','$admin_code','0')";
                        $db->query($rech);
                    } else
                        $msg_err = _("Problème de création de répertoire de stockage de l'intervention") . $codeint;
                }
            }
        } else
            $msg_err = _("Problème de création de répertoire de stockage de l'intervention") . $codeint;
    } else
        $msg_err = _("Problème de création de répertoire de stockage de l'intervention") . $codeint;

    if ($open == TRUE)
        $db->disconnect();

    return $msg_err;
}

/**
 * Changement de propriétaire d'un fichier
 *
 * @param $ex_code
 * @param $new_code
 * @param bool $open
 */
function change_prop_fic($ex_code, $new_code, $open = TRUE)
{
    global
    $db;
    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech = "UPDATE `" . TBFIC;
    $rech .= "` SET `fic_codecrea`='" . $db->escape($new_code) . "'  WHERE `fic_codecrea` = '" . $db->escape($ex_code) . "'";
    $db->query($rech);

    if ($open == TRUE)
        $db->disconnect();
}

/**
 * Vérifie si un dossier/fichier est privé
 *
 * @param $nom
 * @param bool $open
 * @return bool
 */
function is_prive($nom, $open = TRUE)
{
    global
    $db;
    $prive = FALSE;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech2 = "SELECT fic_prive FROM `" . TBFIC . "` WHERE fic_nom = '" . $db->escape($nom) . "'";
    $row2 = $db->get_row($rech2, ARRAY_A);
    if ($row2) {
        extract($row2);
        if (intval($fic_prive) == 1)
            $prive = TRUE;
    }
    if ($open == TRUE)
        $db->disconnect();
    return $prive;
}

// Pièces jointes

/**
 * Dit si un fichier est en pièce jointe
 *
 * @param $nom
 * @param bool $open
 * @return bool
 */
function est_PJ($nom, $open = TRUE)
{
    global
    $db,
    $url_gfc;

    $PJ = FALSE;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT COUNT(" . TBFICPJ . ".ficpj_id) FROM `" . TBFIC . "`, `" . TBFICPJ . "`";
    $rech2 .= " WHERE (" . TBFIC . ".fic_nom='" . $url_gfc . "/" . $db->escape($nom) . "'";
    $rech2 .= " AND " . TBFIC . ".fic_id=" . TBFICPJ . ".ficpj_idfic)";
    $nbres = $db->get_var($rech2);
    if ($nbres > 0) // On a trouvé au moins un enregistrement
        $PJ = TRUE;
    if ($open == TRUE)
        $db->disconnect();
    return $PJ;
}

/**
 * Dit si un fichier est en pièce jointe en fonction de son ID
 *
 * @param $id
 * @param bool $open
 * @return bool
 */
function est_PJID($id, $open = TRUE)
{
    global
    $db;

    $PJ = FALSE;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);

    $rech2 = "SELECT COUNT(" . TBFICPJ . ".ficpj_id) FROM `" . TBFICPJ . "`";
    $rech2 .= " WHERE " . TBFICPJ . ".ficpj_idfic='" . $id . "'";
    $nbres = $db->get_var($rech2);
    if ($nbres > 0) // On a trouvé au moins un enregistrement
        $PJ = TRUE;
    if ($open == TRUE)
        $db->disconnect();
    return $PJ;
}

/**
 * Dit si un fichier est en pièce jointe d'un code donné
 *
 * @param $nom
 * @param $code
 * @param bool $open
 * @return bool
 */
function est_PJ_code($nom, $code, $open = TRUE)
{
    global
    $db,
    $url_gfc;

    $PJ = FALSE;

    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT COUNT(*) FROM `" . TBFIC . "`, `" . TBFICPJ . "`";
    $rech2 .= " WHERE (" . TBFIC . ".fic_nom='" . $url_gfc . "/" . $nom . "'";
    $rech2 .= " AND " . TBFICPJ . ".ficpj_coderat='" . $code . "'";
    $rech2 .= " AND " . TBFIC . ".fic_id=" . TBFICPJ . ".ficpj_idfic)";
    $nbres2 = $db->get_var($rech2);
    if ($nbres2 == 1) // On a trouvé un enregistrement
        $PJ = TRUE;
    if ($open == TRUE)
        $db->disconnect();
    return $PJ;
}

// Gestion des hacks

/**
 * Donne le nombre de hacks enregistrés
 *
 * @param bool $open
 * @return int|null
 */
function nbhacks_ficlog($open = TRUE)
{
    global
    $db;
    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT COUNT(*) FROM `" . TBFICLOG . "` WHERE ficlog_type = '1'";
    $nbhacks = $db->get_var($rech2);
    if ($open == TRUE)
        $db->disconnect();

    return $nbhacks;
}

/**
 * Donne le nombre de leechs enregistrés
 *
 * @param bool $open
 * @return null
 */
function nbleechs_ficlog($open = TRUE)
{
    global
    $db;
    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT COUNT(*) FROM `" . TBFICLOG . "` WHERE ficlog_type = '2'";
    $nbleechs = $db->get_var($rech2);
    if ($open == TRUE)
        $db->disconnect();

    return $nbleechs;
}


/**
 * Donne le nombre de "file not found" enregistrés
 *
 * @param bool $open
 * @return null
 */
function nbnfounds_ficlog($open = TRUE)
{
    global
    $db;
    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    $rech2 = "SELECT COUNT(*) FROM `" . TBFICLOG . "` WHERE ficlog_type = '3'";
    $nbnfounds = $db->get_var($rech2);
    if ($open == TRUE)
        $db->disconnect();

    return $nbnfounds;
}


// Logos

/**
 * Vérifie si un logo existe au format GIF
 *
 * @param $code
 * @return bool
 */
function exist_logogif($code)
{
    global
    $root;

    $existe = FALSE;
    $nomfic = $root . REP . "/logos/log" . strtolower($code);
    if (file_exists($nomfic . ".gif"))
        $existe = TRUE;
    return $existe;
}

/**
 * Vérifie si un logo existe au format PNG
 *
 * @param $code
 * @return bool
 */
function exist_logopng($code)
{
    global
    $root;

    $existe = FALSE;
    $nomfic = $root . REP . "/logos/log" . strtolower($code);
    if (file_exists($nomfic . ".png"))
        $existe = TRUE;
    return $existe;
}

/**
 * Vérifie si un logo existe
 *
 * @param $code
 * @return bool
 */
function exist_logo($code)
{
    global
    $root;

    $existe = FALSE;
    $nomfic = $root . REP . "/logos/log" . strtolower($code);
    $exist_png = file_exists($nomfic . ".png");
    $exist_gif = file_exists($nomfic . ".gif");
    if (($exist_png == TRUE) AND ($exist_gif == TRUE))
        $existe = TRUE;
    return $existe;
}

/**
 * Vérifie si les logos existent pourtoutes les agences au format GIF
 *
 * @param bool $open
 * @return bool
 */

function exist_logo_allage($open = TRUE)
{
    global
    $db,
    $root;

    $existe = TRUE;
    if ($open == TRUE)
        $db = open_database(DBUSER, DBPASS, DBNAME, DBHOST);
    // Filtre sur agences ouvertes
    $rech2 = "SELECT age_code FROM `" . TBAGE . "` WHERE `age_ouvert` = '1'";
    $rows2 = $db->get_results($rech2, ARRAY_A);
    if (($rows2) AND (count($rows2) > 0)) {
        foreach ($rows2 as $row2) {
            extract($row2);
            $nomfic = $root . REP . "/logos/log" . strtolower($age_code);
            if ((file_exists($nomfic . ".png") == FALSE) OR (file_exists($nomfic . ".gif") == FALSE)) {
                $existe = FALSE;
                break;
            }
        }
    }
    if ($open == TRUE)
        $db->disconnect();
    return $existe;
}
