function enfants_aff($id_parent, $decalage, $taille, $critere, $gauche = 0)
{
    global $spip_lang_right, $spip_lang_left;
    static $total_site = null;
    static $niveau = 0;
    static $nombre_branche;
    static $nombre_rub;
    if (is_null($total_site)) {
        $nombre_branche = array();
        $nombre_rub = array();
        $total_site = enfants(0, $critere, $nombre_branche, $nombre_rub);
        if ($total_site < 1) {
            $total_site = 1;
        }
    }
    $visites_abs = 0;
    $out = "";
    $width = intval(floor($nombre_branche[$id_parent] / $total_site * $taille));
    $width = "width:{$width}px;float:{$spip_lang_left};";
    $result = sql_select("id_rubrique, titre, descriptif", "spip_rubriques", "id_parent={$id_parent}", '', '0+titre,titre');
    while ($row = sql_fetch($result)) {
        $id_rubrique = $row['id_rubrique'];
        $titre = typo($row['titre']);
        $descriptif = attribut_html(couper(typo($row['descriptif']), 80));
        if ($nombre_branche[$id_rubrique] > 0 or $nombre_rub[$id_rubrique] > 0) {
            $largeur_branche = floor(($nombre_branche[$id_rubrique] - $nombre_rub[$id_rubrique]) * $taille / $total_site);
            $largeur_rub = floor($nombre_rub[$id_rubrique] * $taille / $total_site);
            if ($largeur_branche + $largeur_rub > 0) {
                if ($niveau == 0) {
                    $couleur = "#cccccc";
                } else {
                    if ($niveau == 1) {
                        $couleur = "#eeeeee";
                    } else {
                        $couleur = "white";
                    }
                }
                $out .= "<table cellpadding='2' cellspacing='0' border='0' width='100%'>";
                $out .= "\n<tr style='background-color: {$couleur}'>";
                $out .= "\n<td style='border-bottom: 1px solid #aaaaaa; padding-{$spip_lang_left}: " . ($niveau * 20 + 5) . "px;'>";
                if ($largeur_branche > 2) {
                    $out .= bouton_block_depliable("<a href='" . generer_url_entite($id_rubrique, 'rubrique') . "' style='color: black;' title=\"{$descriptif}\">{$titre}</a>", "incertain", "stats{$id_rubrique}");
                } else {
                    $out .= "<div class='rubsimple' style='padding-left: 18px;'>" . "<a href='" . generer_url_entite($id_rubrique, 'rubrique') . "' style='color: black;' title=\"{$descriptif}\">{$titre}</a>" . "</div>";
                }
                $out .= "</td>";
                // pourcentage de visites dans la branche par rapport au total du site
                $pourcent = round($nombre_branche[$id_rubrique] / $total_site * 1000) / 10;
                $out .= "\n<td class='verdana1' style='text-align: {$spip_lang_right}; width: 40px; border-bottom: 1px solid #aaaaaa;'>{$pourcent}%</td>";
                $out .= "\n<td align='right' style='border-bottom: 1px solid #aaaaaa; width:" . ($taille + 5) . "px'>";
                $out .= "\n<table cellpadding='0' cellspacing='0' border='0' width='" . ($decalage + 1 + $gauche) . "'>";
                $out .= "\n<tr>";
                if ($gauche > 0) {
                    $out .= "<td style='width: " . $gauche . "px'></td>";
                }
                $out .= "\n<td style='border: 0px; white-space: nowrap;'>";
                $out .= "<div style='border: 1px solid #999999; background-color: #dddddd; height: 1em; padding: 0px; margin: 0px;{$width}'>";
                if ($visites_abs > 0) {
                    $out .= "<img src='" . chemin_image('rien.gif') . "' style='vertical-align: top; height: 1em; border: 0px; width: " . $visites_abs . "px;' alt= ' '/>";
                }
                if ($largeur_branche > 0) {
                    $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_cumul' style='vertical-align: top; height: 1em; border: 0px; width: " . $largeur_branche . "px;' alt=' ' />";
                }
                if ($largeur_rub > 0) {
                    $out .= "<img src='" . chemin_image('rien.gif') . "' class='couleur_nombre' style='vertical-align: top; width: " . $largeur_rub . "px; height: 1em; border: 0px' alt=' ' />";
                }
                $out .= "</div>";
                $out .= "</td></tr></table>\n";
                $out .= "</td></tr></table>";
            }
        }
        if (isset($largeur_branche) && $largeur_branche > 0) {
            $niveau++;
            $out .= debut_block_depliable(false, "stats{$id_rubrique}");
            $out .= enfants_aff($id_rubrique, $largeur_branche, $taille, $critere, $visites_abs + $gauche);
            $out .= fin_block();
            $niveau--;
        }
        $visites_abs = $visites_abs + round($nombre_branche[$id_rubrique] / $total_site * $taille);
    }
    return $out;
}
function exec_statistiques_repartition_dist()
{

	global  $abs_total, $nombre_vis, $taille, $spip_ecran;

	if (!autoriser('voirstats')) {
		include_spip('inc/minipres');
		echo minipres();
	} else {

	$taille = _request('taille');
	$commencer_page = charger_fonction('commencer_page', 'inc');
	echo $commencer_page(_T('titre_page_statistiques'), "statistiques_visites", "repartition");
	
	echo debut_grand_cadre(true);
	echo gros_titre(_T('titre_page_statistiques'),'',false);
	if ($spip_ecran == "large") { 
	 	                $largeur_table = 974; 
	 	                $taille = 550; 
	 	        } else { 
	 	                $largeur_table = 750; 
	 	                $taille = 400; 
	 	        } 
	 	 
	echo "\n<br /><br /><table width='$largeur_table'><tr><td class='verdana2' style='text-align: center;  width: $largeur_table" . "px;'>"; 
	$critere = _request('critere');
	if ($critere == "debut") {
		$critere = "visites";
		echo barre_onglets("stat_depuis", "debut");
	}
	else {
		$critere = "popularite";
		echo barre_onglets("stat_depuis", "popularite");
	}

	$abs_total=enfants(0, $critere);
	if ($abs_total<1) $abs_total=1;
	$nombre_vis[0] = 0;

	echo debut_cadre_relief("statistiques-24.gif",true);
	echo "<div style='border: 1px solid #aaaaaa; border-bottom: 0px;'>";
	enfants_aff(0,$taille, $critere);
	echo "</div><br />",
	  "<div class='verdana3' style='text-align: left;'>",
	  _T('texte_signification'),
	  "</div>";
	echo fin_cadre_relief(true);
	echo "</td></tr></table>"; 
	echo fin_grand_cadre(true),fin_page();
	}
}