/*
Argument de la fonction graphes : params  = divID-1 || pram-1  ... || divID-i || param-i .... 
divId-i element dans lequel sera affiche le graphe param-i
param-i = nb=nbVar&faire=faireVar&arguments
nbVar = 0 si un seul graphe ou nombre de graphes ŕ afficher si plusieurs (si 4 : graphes quotidien, hebdomadaire, mensuel et annuel)
faireVar = simple ou double selon graphe simpble ou graphe double
arguments : pour appel des fonctions grapheDouble ou graphe (cf incFunctions/rrdGraphes.php)

Attention : fonctions recursives avec des tempos (setTimeout) pour un affichage progressif des images --> fluidite
Sinon, affichage quand elles ont été toutes crees --> long ..............;
*/
var separ = ' || ';

function addslashes( str ) {
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'\\"');
	str=str.replace(/\0/g,'\\0');
	return str;
}

function graphes( params ) {
	//var expression = /^(\w+)(.+nb=)(\d+)(&\w.+)$/; expression.exec( params ); 
	var paramsTab = params.split( separ );
	var divNom = paramsTab.shift();
	var param = paramsTab.shift();
	var nb = param[3];					// nombre de graphes a afficher "simultanement" avec l'argument param
		
	// une serie de plusieurs graphes a afficher (ex : jour, semaine, mois, annee)
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	if( nb!=0 ) {
		
		// creation d'un element enfant du div d'affichage de la serie
		var divChildElt = document.createElement( 'div' );
		var divNomChild = divNom + '-' + nb;
		divChildElt.setAttribute( 'id', divNomChild );
		document.getElementById( divNom ).appendChild( divChildElt );
		
		// renseignement de la frequence et affichage de la legende uniquement pour le 1er graphe
		var freqsTab = ['', 'an', 'mois', 'semaine', 'jour'];
		var freq = freqsTab[nb];
		var paramAff = param.replace( 'nb=' + nb, 'nb=0' ).replace( '&legende=', '&freq=' + freq + '&legende=' );
		if( nb!=4 ) {				// affichage de la legende uniquement pour le 1er graphe
			var expression = /^(.+&legende=)(.+)(&unite.+)$/; 
			expression.exec( param );
			paramAff = paramAff.replace( RegExp.$2, '' );
		} 
		
		// affichage du graphe (puis raffraichissement)
		graphes( divNomChild + separ + paramAff );
		
		// appel affichage des graphes suivants de la serie
		if( nb!=1 ) {
			var nbNext = nb - 1;
			setTimeout( "graphes( '" + addslashes( params.replace( 'nb=' + nb, 'nb=' + nbNext ) ) + "' )", 400 );
		}
				
	// un seul graphe (exemple : appel recursif quand nb=4) ou une serie de graphes (exemple : metroVPN)
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	} else {
		ajax( '../ajaxPages/rrdGraphes.php', param, affichage, divNom );
		if( paramsTab.length!=0 ) {
			paramsNext = paramsTab.join( separ );
			setTimeout( "graphes( '" + addslashes( paramsNext ) + "' )", 400 );				// graphe suivant de la serie
		}
		setTimeout( "graphes( '" + addslashes( divNom + separ + param ) + "' )", 300000 );	// rafraich. de la serie toutes les 5 mn
	}
}


function initEvent() {
	if( document.rrd ) graphes( document.rrd.params.value  );
 }

addEvent( window, 'load', initEvent, false );
