<?php
#	les paramètres:
#	$Tableau est un tableau de tableaux
#	$TabMax indique quel tableau a la plus grande valeur,
#		par défaut, le premier donne la valeur la plus grande
#		sert à calculer automatiquement la taille du repère !!!
#	$Couleur est un tableau contenant autant de ligne que $Tableau de tableaux...
#		comme çà on a une couleur par tableau
#		$Couleur[3]='ff6600' indique que le $Tableau[3] sera graphé en orange
#	$TypeGraphe est un tableau contenant autant de ligne que $Tableau de tableaux...
#		$TypeGraphe[0]=0 pour tracer des points avec le $Tableau[0]
#		$TypeGraphe[5]=1 pour tracer des segments entre les points (par défaut) avec le $Tableau[5]
#		$TypeGraphe[2]=2 pour tracer des rectangle (histogramme) avec le $Tableau[2]
# 	$RepereOptimal : dans le cas où on veut passer le repere optimal à la mano, sinon mettre 0
# 	xType : type de calcul pour le repere optimal des abscisses : $G_ECART_TYPE, ie on calcule l'écart type sur les valeurs en abscisse, chaque interval de tiret vaudra l'écart type, $G_BY_DAY l'abscisse est par jour, $G_ECART_MIN : calcul de l'écart minimal
# 	yType : type de calcul pour le repere optimal des ordonnés
function array_to_graphe($Tableau, $TabMax=0, $Couleur, $TypeGraphe, &$RepereColors, &$RepereOptimal, $xType, $yType, $xMax, $yMax, $imgName)
{
	if (!empty($Tableau))
	{
		# Creation du graphique
		$graphique = new graphique;
		
		if (empty($RepereOptimal))
			$RepereOptimal = $graphique->calculrepereoptimal($Tableau[$TabMax], 0, $xType, $yType, $xMax, $yMax);
		//$graphique->repere($RepereColors['width'], 500,400,70,1,$RepereOptimal,'ffffff','000000','000000','ff6600','6666ff','dddddd');
		$graphique->repere($RepereColors['width'], $RepereColors['height'], $RepereColors['Margin'], $RepereColors['xIsDate'], $RepereOptimal, $RepereColors['BgColor'], $RepereColors['xColor'], $RepereColors['yColor'], $RepereColors['xValueColor'], $RepereColors['yValueColor'], $RepereColors['dotColor']);
	
		for ($i=0 ; $i<count($Tableau) ; $i++)
		{
			if($Couleur[$i] == "") $Couleur[$i] = "F0F0F0"; # noir par défaut
			
			# le traçage des points avec $graphique->tracepoint($Tableau[$i],$Couleur[$i]);
			if ($TypeGraphe[$i]==0)
				$graphique->tracepoint($Tableau[$i],$Couleur[$i]);
			# le traçage des rectangles avec $graphique->tracehisto($Tableau[$i],$Couleur[$i]);
			elseif ($TypeGraphe[$i]==2)
				$graphique->tracehisto($Tableau[$i],$Couleur[$i]);
			# le traçage des segments avec $graphique->tracesegment($Tableau[$i],$Couleur[$i]);
			else
				$graphique->tracesegment($Tableau[$i],$Couleur[$i]); # segments par défaut
		}
	
		//var_dump($graphique);
		
		# Visionnage du graphe et sa destruction dans la RAM pour ne le laisser qu'en fichier .gif.
		if (function_exists("imagegif")) {
		 	imagegif($graphique->repere,$imgName.'.gif');
			$imgSuffix = ".gif";
		}
		elseif (function_exists("imageJpeg")) {
			imagejpeg($graphique->repere,$imgName.'.jpg', 0.5);
			$imgSuffix = ".jpg";
		}
		elseif (function_exists("imagePng")) {
			imagepng($graphique->repere,$imgName.'.png');
			$imgSuffix = ".png";
		}
		elseif (function_exists("imagewbmp")) {
			 imagewbmp($graphique->repere,$imgName.'.wbmp');
			$imgSuffix = ".wbmp";
		}
		else
			die("Pas de support graphique avec PHP sur ce serveur");
		
		# on génère un fichier aléatoire pour être sur d'avoir le bon graph
		srand ((double) microtime() * 1000000);
		$suffix = $imgSuffix."?".uniqid(rand());
		
		# affiche l'image
		echo "<img src='".$imgName.$suffix."' border=0>";
		imagedestroy($graphique->repere);
	}
}
?>