/****************************************************************/
/* utilsTabFRT.js -> Création de tableaux dynamiques triables	*/
/* Developpeur  :  ROBERT Cédric				*/
/* Société 	    :  PROCAPITAL				*/
/* Dernère Modif:  10/05/2005					*/
/****************************************************************/

/****************************************************************/
/*			METHODE D'APPEL				*/
/****************************************************************/
/*	tableauDynamiqueTriable					*/
/*	(							*/
/*		titreTableau,					*/
/*								*/
/*		tabTitre,					*/
/*								*/
/*		tabDonnees,					*/
/*								*/
/*		indexTri,					*/
/*								*/
/*		lignesAAfficher,				*/
/*								*/
/*		afficherLigneCasse				*/
/*	);							*/
/*==============================================================*/
/*  titreTableau:						*/
/*		le titre du tableau à afficher			*/
/*								*/
/*	tabTitre de la forme:					*/
/*		[						*/
/*			[					*/
/*				"titreDeLaColonne"              */
/*				, "[non]visible"                */
/*				, "[non]triable"                */
/*				, "[non]convertible"            */
/*				, [nbChiffresApresVirgule]      */
/*				, [decimalisation]		*/
/*			],	                                */
/*			[                                       */
/*				"titreDeLaColonne"              */
/*				, "[non]visible"                */
/*				, "[non]triable"                */
/*				, "[non]convertible"            */
/*				, [nbChiffresApresVirgule]      */
/*			],	                                */
/*			...                                     */
/*			[                                       */
/*				"titreDeLaColonne"              */
/*				, "[non]visible"                */
/*				, "[non]triable"                */
/*				, "[non]convertible"            */
/*				, [nbChiffresApresVirgule]      */
/*			]	                                */
/*                                                           	*/
/*		] ou null					*/
/*								*/
/*	tabDonnees de la forme:					*/
/*		[						*/
/*			[					*/
/*				donnée_1                        */
/*				, donnée_2                      */
/*				, donnée_3                      */
/*				, donnée_4                      */
/*				, ...                           */
/*				, donnée_tabTitre.length        */
/*			],                                      */
/*			[                                       */
/*				donnée_1                        */
/*				, donnée_2                      */
/*				, donnée_3                      */
/*				, donnée_4                      */
/*				, ...                           */
/*				, donnée_tabTitre.length        */
/*			],                                      */
/*			...                                     */
/*			[                                       */
/*				donnée_1                        */
/*				, donnée_2                      */
/*				, donnée_3                      */
/*				, donnée_4                      */
/*				, ...                           */
/*				, donnée_tabTitre.length        */
/*			]                                       */
/*		] ou null					*/
/*								*/
/*	indexTri:						*/
/*		index données sur lesquelles s'effectuent le tri*/
/*		ou -1 si pas de tri				*/
/*								*/
/*	lignesAAfficher:					*/	
/*		nombre de lignes à afficher par page		*/
/*								*/
/*	afficherLigneCasse: true ou false:			*/
/*		indique si il y a une ligne de séparation	*/
/*								*/
/****************************************************************/

function resumeTexte(texte) {
	var res = "";
	if ( texte.length && (texte.length > 95) ) {
		res = texte.substr(0, 95);
		while ( (res.length > 1) && (res.charAt(res.length - 1)) && (res.charAt(res.length - 1) != " " ) )
			res = res.substr(0, res.length - 2);
		return (res + "...");
	}
	return texte;
}
function transfoTypeValeur(type){
	switch (type){
		/*  Actions  */
		case "041" :
		case "042" :
		case "044" :
		case "045" :
		case "050" :
		case "051" :
		case "058" :
		case "059" :
		case "069" :
		case "081" :
		case "084" :
		case "085" :
		case "086" :
		case "ACTIONS" :
			return("action");
			break;
		
		/*  Obligations  */
		case "010" :
		case "011" :
		case "019" :
		case "021" :
		case "022" :
		case "024" :
		case "025" :
		case "032" :
		case "111" :
		case "162" :
		case "250" :
		case "251" :
		case "252" :
		case "254" :
		case "255" :
		case "259" :
		case "261" :
		case "262" :
		case "OBLIGATIONS" :
			return("obligations");
			break;
	
		/* Sicav  */
		case "061" :	
		case "062" :
		case "070" :
		case "242" :
		case "243" :
		case "244" : 
		case "245" :
		case "246" :
		case "264" :
		case "SICAV" :
			return ("OPCVM");
			break;
		
		/*  Warrants  */
		case "248" :
		case "105" :
		case "106" :
		case "071" :
		case "WARRANTS" :
			return ("warrants");
			break;
			
		/*  Trackers */
		case "263" :
		case "306" :
		case "307" :
		case "TRACKERS" :
			return ("trackers");
		break;
		
		/*  Indices */
		case "068" :
		case "INDICES" :
			return ("indice");
		break;
		
		/* Bons de souscription*/
		case "072" :
		case "BONS DE SOUSCRIPTION" :
			return ("bon souscription");
		break;
		
		/*  Droits de garde */
		case "" :
		case "555" :
		case "DROITS DE GARDE" :
			return ("vide");
		break;
		
		/*  Certificats */
		case "257" :
		case "303" :
		case "CERTIFICATS" :
			return ("certificats");
		break;
		
		/*  Autres  */	
		default :
			return ("autres");
			break;
	}	
}

function pictosSelonType (plisin, typeValeur, popup, devise, libelle) {
	
	var pictoPasseOrdre 		= affichePictoHtml(plisin, "+", 1 )
								+ affichePictoHtml(plisin, "-", 1 );
	var pictoPasseOrdrePopup 	= affichePictoHtml(plisin, "+P", 1 )
								+ affichePictoHtml(plisin, "-P", 1 );
	var pictoAlerte 			= affichePictoHtml(plisin, "AL", 1 );
	var pictoGraphique 			= affichePictoHtml(plisin, "GR", 1, devise, libelle );
	var pictoFicheValActions 	= affichePictoHtml(plisin, "FVA", 1 );
	var pictoFicheValWarrant 	= affichePictoHtml(plisin, "FVW", 1 );
	var pictoFicheValBS 		= affichePictoHtml(plisin, "FVBS", 1 );
	var pictoFicheValCertificat = affichePictoHtml(plisin, "FVC", 1 );
	var pictoFicheValTracker 	= affichePictoHtml(plisin, "FVT", 1 );
	var pictoFicheValObligations = affichePictoHtml(plisin, "FVO", 1 );
	var pictoFicheValIndice 	= affichePictoHtml(plisin, "FVI", 1 );
	var pictoFicheValOPCVM 		= affichePictoHtml(plisin, "FVOP", 1, devise, libelle );
	var pictoNoticeCOB			= affichePictoHtml(plisin, "NO", 1);
	var pictoComparateur		= affichePictoHtml(plisin, "<img src='/static/FRT5.2/images/icone_comparer.gif' alt='Comparez ce fonds' border='0'>", 1, devise, libelle);

	if (top.estClient()){
		var pictoAjoutListe = affichePictoHtml(plisin, "LP", 1 );
		var pictoTraderQuotes 		= affichePictoHtml(plisin, "TQ", 1 );
	}else {
		var pictoAjoutListe 	= "";
		var pictoTraderQuotes 	= "";
	}
	if(plisin.split("_")[1] == "FR0007052816")
		typeValeur = "555";
		
	switch(transfoTypeValeur(typeValeur)) { 
		/*  Actions  */
		case "action" :
			if (popup)
				return (pictoPasseOrdrePopup
						+ pictoFicheValActions
						+ pictoGraphique
						+ pictoTraderQuotes);
			else
				return (pictoPasseOrdre
						+ pictoFicheValActions
						+ pictoGraphique
						+ pictoTraderQuotes);
			break;
		
		/*  Obligations  */
		case "obligations" :
		case "obligation" :
			return (pictoPasseOrdre
					+ pictoFicheValObligations
					+ pictoGraphique
					+ pictoTraderQuotes);
			break;
	
		/* Sicav  */
		case "OPCVM" :
			return (pictoPasseOrdre
					+ pictoFicheValOPCVM
					+ pictoNoticeCOB
					+ pictoComparateur);
			break;
		
		/*  Warrants  */
		case "warrants" :
			return (pictoPasseOrdre
					+ pictoFicheValWarrant
					+ pictoGraphique
					+ pictoTraderQuotes);
			break;
			
		/* Bons de souscription */
		case "bon souscription" :
			return (pictoPasseOrdre
					+ pictoFicheValBS
					+ pictoGraphique
					+ pictoTraderQuotes);
			break;
			
		/*  Trackers */
		case "trackers" :
			return (pictoPasseOrdre
					+ pictoFicheValTracker
					+ pictoGraphique
					+ pictoTraderQuotes);
		break;
		/*  Certificats */
		case "certificats" :
			return (pictoPasseOrdre
					+ pictoFicheValCertificat
					+ pictoGraphique
					+ pictoTraderQuotes);
		break;			
		
		/*  Indices */
		case "indice" :
			return (pictoFicheValIndice
					+ pictoGraphique);
				
		break;
		
		/*  Droits de garde */
		case "vide" :
			return ("");
		break;
		
		/*  Autres  */	
		default :
			return (pictoPasseOrdre
					+ pictoFicheValActions);
			break;
	}	
}

/****************************************************************/
/*         Redirection vers le passage d'ordre           	    */
/****************************************************************/
/*in:  plisin la code plisin de la valeur               	  	*/
/*	   sens le sens de la transaction: achat/vente -> 0/1       */
/*out: Redirige la bonne page vers le passage d'ordre			*/
/****************************************************************/
function passeOrdreUtilTab( plisin, sens ) {
	if( top.opener )	// Si on est en popup
	{
		try
		{
			var urlOpener = top.opener.top.location.href.split("/");
			urlOpener = urlOpener[urlOpener.length - 1];
			urlOpener = urlOpener.split("?")[0];
			var pageCourante = top.document.location.href.split("/");
			pageCourante = pageCourante[pageCourante.length - 1];
			pageCourante = pageCourante.split("?")[0];
			//alert("opener : " + urlOpener + " pageCourante : " + pageCourante);
			if ( ( (urlOpener == "mainFRT.jsp") || (urlOpener == "loginFRT.jsp") || (urlOpener == "loginFRT.jsp#") ) && (pageCourante != "passerUnOrdreFRT_Popup.jsp") )
			{
				if (pageCourante == "warrantComClient.jsp" || pageCourante == "login_SU_consultation.jsp")
					top.opener.main.location.href
						= opener.top.clientMakeScriptURL( "/WebBank/scripts/FRT5.2/passageDOrdre/saisieOrdreFRT.jsp?plisin=" + plisin )
						+ ( ( sens != null ) ? "&sens=" + sens : "" );
				else
					top.opener.location.href
						= top.opener.top.clientMakeScriptURL( "/WebBank/scripts/FRT5.2/passageDOrdre/saisieOrdreFRT.jsp?plisin=" + plisin )
						+ ( ( sens != null ) ? "&sens=" + sens : "" );
			}
			else if (urlOpener == "passerUnOrdreFRT_Popup.jsp" || pageCourante == "passerUnOrdreFRT_Popup.jsp")
			{
				opener.top.popUpAchatVente.location.href
					= opener.top.clientMakeScriptURL( "/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp?name=" + plisin.split("_")[1] )
					+ ( ( sens != null ) ? "&sens=" + sens : "" );
			}
		}
		catch( e )
		{
			// Si la page a un opener qui ne nous appartient pas, on ouvre dans la frame main
			try
			{
				top.main.location =
					top.clientMakeScriptURL( "/WebBank/scripts/FRT5.2/passageDOrdre/saisieOrdreFRT.jsp?plisin=" + plisin ) +
					( ( sens != null ) ? "&sens=" + sens : "" );
			}
			catch( e2 )
			{
			}
		}
	}
	else
	{
		top.change_class((sens==0)?"Achat":"Vente");
		document.location.href
			= top.clientMakeScriptURL( "/WebBank/scripts/FRT5.2/passageDOrdre/saisieOrdreFRT.jsp?plisin=" + plisin )
			+ ( ( sens != null ) ? "&sens=" + sens : "" );
	}
}

/****************************************************************/
/*         Affichage d'un separateur           	    		*/
/****************************************************************/
/*in:  								*/
/*out: Saute a la ligne						*/
/****************************************************************/
function separateur() {
	document.write("<br>");	
}

/****************************************************************/
/*         Affichage du titre de la page		        */
/****************************************************************/
/*in: 	nom l'intitulé du titre               	  		*/
/*  	width la taille du titre               	  		*/
/*  	tabLiens le tableau de liens à afficher               	*/
/*out: Affiche le titre mis en forme avec ses liens		*/
/****************************************************************/
function afficheTitre(nom, width, tabLiens, color){
	res.length = 0;
	if ( ! color )  color = '#B2EA65';
	res[ res.length ] = "<table cellspacing='0' cellpadding='0' width='" + width + "px'>";
	res[ res.length ] = "<tr height='10px'><td colspan='3'></td></tr>";
	res[ res.length ] = "<tr height='15px'>"
		 + "<td width='10px'>"
		 + "<div style='width:8px;height:8px;background-color:"+color+";font-size:5px;'></div></td>"
		 + "<td class='titrePage'>&nbsp;"+ nom
		  + "</td>"; 
	res[ res.length ] = "<td style='text-align:right' class='lienMenuHaut'>";
	if (tabLiens && tabLiens.length!=0)
		for (var i in tabLiens) {
			res[ res.length ] = tabLiens[i];
			if ( i < (tabLiens.length - 1) && tabLiens[i]!="")
				res[ res.length ] = " | ";
		}
	res[ res.length ] = "</td>"
		 + "</tr>"
		 + "<tr><td style='background-color:"+color+"' height='1px' colspan='3'></td></tr></table>";
	
	document.write(res.join( "" )); 
}

/****************************************************************/
/*         Affichage du Menu pour une valeur			*/
/****************************************************************/
/*in: 	nom l'intitulé du titre               	  		*/
/*  	width la taille du titre               	  		*/
/*  	tabLiens le tableau de liens à afficher               	*/
/*out: Affiche le titre mis en forme avec ses liens		*/
/****************************************************************/
function afficheMenuValeur( cval, titrePage ){
	var titreDuTableau = "";
	var plisin = "";
	var info_titre = "";
	if (cval.split(":")[1]!=null && cval.split(":")[1]!=","){
		var infos = cval.split(":")[1];
		info_titre = infos.split(",")[0] + cval.split(":")[2] + "&nbsp;&nbsp;" + formatPourcent(infos.split(",")[1]);
	}
	var cval = cval.split(":")[0];

	/*  __CVAL__codePlace_codeIsin;mnemonique;type_valeur;libelle|devise  */
	if ( (cval).substr(0, 8) == "__CVAL__") { 
		var codePlace = (((cval).split(";")[0]).substr(8) ).split("_")[0];
		var codeIsin = (((cval).split(";")[0] ).substr(8) ).split("_")[1];
		plisin = codePlace + "_" + codeIsin;
		var mnemonique = (cval).split(";")[1];
		if ((mnemonique != null) && (mnemonique != ""))
			mnemonique = " (" + mnemonique + ")";
			 
		var type_valeur = (cval).split(";")[2];
		var libelle = (cval).split(";")[3].replace("'","&#039;");
		if ( (cval).split(";")[4] )
			var comptantOuSrd = (cval).split(";")[4];
		else
			var comptantOuSrd = "";
		if ( (libelle).split("|")[1] ){
			var devise = (libelle).split("|")[1];
			libelle = (libelle).split("|")[0];
		}else
			var devise = "";
		if (!codePlace)
			codePlace = "";
		var codePlaceLibelle = getPlaceLibelle( codePlace );
	
		titreDuTableau += "<b>" + libelle + mnemonique + "</b><br><NOBR>";
		
		titreDuTableau += pictosSelonType (plisin, type_valeur, true, devise, libelle);
		
		titreDuTableau	+= "</NOBR>";
		
		if ( comptantOuSrd != "" )
			titreDuTableau += "<br>" + comptantOuSrd + "";
	} 
	
	if ( (!plisin) || (plisin == "") || (plisin.split("_")[0] == "") || (plisin.split("_")[1] == "") ) {
		return;
	}
	var ficheVal = "FVA";
	switch(transfoTypeValeur(type_valeur)) {
		case "action" :
			ficheVal = "FVA";
			if(top.estClient())
				var tabLiens = [
							[ "Graphique"			, "GR"	, ""],
							[ "Conseils"			, "C"	, ""],
							[ "Warrants"			, "W"	, ""],
							[ "L`entreprise"		, "E"	, ""],
							[ "Chiffres clés"		, "0-9"	, ""],
							[ "Trader Quotes"		, "TQ"	, ""],
							[ "Echanges jour"		, "TS"	, ""],
							[ "Alerte"				, "AL"	, ""],
							[ "Positions valeur"	, "PTR"	, ""],
							[ "Ordres en cours"		, "OC"	, ""]
						];
			else
				var tabLiens = [
							[ "Graphique"		, "GR"	, ""],
							[ "Conseils"		, "C"	, ""],
							[ "Warrants"		, "W"	, ""],
							[ "L`entreprise"	, "E"	, ""],
							[ "Chiffres clés"	, "0-9"	, ""]
						];
		break;
		case "warrants" :
		case "warrant" :
			ficheVal = "FVW";
			if(top.estClient())
				var tabLiens = 	[
							[ "Alerte"				, "AL"	, ""],
							[ "Trader Quotes"		, "TQ"	, ""],
							[ "Positions Tps réel"	, "PTR"	, ""],
							[ "Pricer"				, "P"	, ""],
							[ "Simulateur"			, "S"	, ""],
							[ "Graphique"			, "GR"	, ""]
						];
			else
				var tabLiens = 	[
							[ "Graphique"		, "GR"	, ""],
							[ "Pricer"			, "P"	, ""],
							[ "Simulateur"		, "S"	, ""]
						];
		break;
		case "certificats" :
			ficheVal = "FVC";
			if(top.estClient())
				var tabLiens = 	[
							[ "Graphique"			, "GR"	, ""],
							[ "Alerte"				, "AL"	, ""],
							[ "Trader Quotes"		, "TQ"	, ""],
							[ "Positions Tps réel"	, "PTR"	, ""]
						];
			else
				var tabLiens = 	[
							[ "Graphique"		, "GR"	, ""]
						];
		break;
		case "bon souscription" :
			ficheVal = "FVBS";
			if(top.estClient())
				var tabLiens = 	[
							[ "Graphique"		, "GR"	, ""]
						];
			else
				var tabLiens = 	[
							[ "Graphique"		, "GR"	, ""]
						];
		break;
		case "trackers" :
			ficheVal = "FVT";
			if(top.estClient())
				var tabLiens = 	[
							[ "Graphique"		, "GR"	, ""],
							[ "Trader Quotes"	, "TQ"	, ""],
							[ "Echanges jour"	, "TS"	, ""],
							[ "Alerte"			, "AL"	, ""],
							[ "Notice AMF"		, "NO"	, ""]
						];
			else
				var tabLiens = 	[
							[ "Graphique"		, "GR"	, ""],
							[ "Notice AMF"		, "NO"	, ""]
						];
		break;
		case "obligations" :
			ficheVal = "FVO";
			if(top.estClient())
				var tabLiens = 	[
							[ "Graphique"	, "GR"	, ""]
						];
			else
				var tabLiens = 	[
							[ "Graphique"	, "GR"	, ""]
						];
		break;
		case "OPCVM" :
			ficheVal = "FVOP";
			if(top.estClient()){
				var tabLiens = 	[
							[ "Graphique"			, "GR"	, ""],
							[ "Notice AMF complet"	, "NO"	, ""],
							[ "Notice AMF simplifié", "NOS"	, ""],
							[ "Comparateur"			, "<img src='/static/FRT5.2/images/icone_comparer.gif' alt='Comparez ce fonds' border='0'>"	, ""]
						];
			}else
				var tabLiens = 	[
							[ "Graphique"			, "GR"	, ""],
							[ "Notice AMF complet"	, "NO"	, ""],
							[ "Notice AMF simplifié", "NOS"	, ""],
							[ "Comparateur"			, "<img src='/static/FRT5.2/images/icone_comparer.gif' alt='Comparez ce fonds' border='0'>"	, ""]
						];
		break;
		case "indice" :
			ficheVal = "FVI";
			if(top.estClient())
				var tabLiens = 	[
							[ "Graphique"					, "GR"	, ""],
							[ "Composition de l&#039;indice", "CI"	, ""],
							[ "Warrants"					, "W"	, ""]
						];
			else
				var tabLiens = 	[
							[ "Graphique"					, "GR"	, ""],
							[ "Composition de l&#039;indice", "CI"	, ""],
							[ "Warrants"					, "W"	, ""]
						];      
		break;
	}

	res.length = 0;
	res[ res.length ] = "<table cellspacing='0' width='100%' cellpadding='0' border='0' class='lienMenuHaut'>";
	res[ res.length ] = "<tr>";
	var prem = true;
	for (var i in tabLiens) {
		if( top.estClient() && i == tabLiens.length/2 && ficheVal!="FVOP" && ficheVal!="FVW" 
		&& ficheVal!="FVC" && ficheVal!="FVO" && ficheVal!="FVT" && ficheVal!="FVBS" && ficheVal!="FVI" ){
			res[ res.length ] = "</tr><tr>";
			prem = true;
		}
		//alert(afficheLienPictoHtml(plisin, libelle, tabLiens[i][1], tabLiens[i][0],((tabLiens[i][1] == titrePage)? true:false), devise));
		if (prem == false) 
			res[ res.length ] = "<td style='text-align:center'>&nbsp;|&nbsp;</td><td class='lienMenuHaut' style='text-align:center'><nobr>" + afficheLienPictoHtml(plisin, libelle, tabLiens[i][1], tabLiens[i][0],((tabLiens[i][1] == titrePage)? true:false), devise) + "</nobr></td>";
		else {
			res[ res.length ] = "<td class='lienMenuHaut' style='text-align:center'><nobr>" + afficheLienPictoHtml(plisin, libelle, tabLiens[i][1], tabLiens[i][0],((tabLiens[i][1] == titrePage)? true:false), devise) + "</nobr></td>";
			prem = false;
		}
	}
	res[ res.length ] = "</tr>";
	res[ res.length ] = "</table>";
	var tabEntete ="<table width='100%' height='100%' border='0' cellspacing='0' cellpadding='0'><tr><td><NOBR><b>&nbsp;&nbsp;&nbsp;" 
	+ libelle + " (" + cval.split( ";" )[ 1 ] + ")  " 
	+ ((!info_titre || info_titre=="")? "":": " + info_titre) + "</b></NOBR></td><td style='text-align:right'>"
	+ "<table height='100%' border='0' cellspacing='0' cellpadding='0'><tr><td><NOBR>"
	+ ((type_valeur == "068")?"":
	(affichePictoHtml(plisin, "+P", 1) 
	+ afficheLienPictoHtml(plisin, libelle,"+P", "Achat") + "&nbsp;</NOBR></td><td><NOBR>"
	+ affichePictoHtml(plisin, "-P", 1 ) 
	+ afficheLienPictoHtml(plisin, libelle, "-P", "Vente") + "&nbsp;</NOBR></td><td><NOBR>"))
	+ affichePictoHtml(plisin, ficheVal, 1, devise, libelle )
	+ afficheLienPictoHtml(plisin, libelle, ficheVal, "Fiche Valeur", false, devise)
	+ "</NOBR></td></tr></table></td></tr></table>";
	document.write( "<table width='610px' border='0' style='border-style:solid;border-width:1px;border-color:black' cellspacing='1px' cellpadding='0'>");
	document.write( "<tr height='22px'><td  class='CARTOUCHE'>" + tabEntete + "</td></tr><tr><td width='100%'>" + res.join( "" ) + "</td></tr></table>" );

}
function afficheTitreValeur(cval){
	var titreDuTableau = "";
	var plisin = "";

	/*  __CVAL__codePlace_codeIsin;mnemonique;type_valeur;libelle|devise  */
	if ( (cval).substr(0, 8) == "__CVAL__") { 
		var codePlace = (((cval).split(";")[0]).substr(8) ).split("_")[0];
		var codeIsin = (((cval).split(";")[0] ).substr(8) ).split("_")[1];
		plisin = codePlace + "_" + codeIsin;
		var mnemonique = (cval).split(";")[1];
		if ((mnemonique != null) && (mnemonique != ""))
			mnemonique = " (" + mnemonique + ")";
			 
		var type_valeur = (cval).split(";")[2];
		var libelle = (cval).split(";")[3].replace("'","&#039;");
		if ( (cval).split(";")[4] )
			var comptantOuSrd = (cval).split(";")[4];
		else
			var comptantOuSrd = "";
		if ( (libelle).split("|")[1] ){
			var devise = (libelle).split("|")[1];
			libelle = (libelle).split("|")[0];
		}else
			var devise = "";
		if (!codePlace)
			codePlace = "";
		var codePlaceLibelle = getPlaceLibelle( codePlace );
	
		titreDuTableau += "<b>" + libelle + mnemonique + "</b><br><NOBR>";
		
		titreDuTableau += pictosSelonType (plisin, type_valeur, true, devise, libelle);
		
		titreDuTableau	+= "</NOBR>";
		
		if ( comptantOuSrd != "" )
			titreDuTableau += "<br>" + comptantOuSrd + "";
	} 
	if ( (!plisin) || (plisin == "") || (plisin.split("_")[0] == "") || (plisin.split("_")[1] == "") ) {
		return;
	}
	var ficheVal = "FVA";
	switch(transfoTypeValeur(type_valeur)) {
		case "action" :
			ficheVal = "FVA";
		break;
		case "warrants" :
		case "warrant" :
			ficheVal = "FVW";
		break;
		case "certificats" :
			ficheVal = "FVC";
		break;
		case "bon souscription" :
			ficheVal = "FVBS";
		break;
		case "trackers" :
			ficheVal = "FVT";
		break;
		case "obligations" :
			ficheVal = "FVO";
		break;
		case "OPCVM" :
			ficheVal = "FVOP";
		break;
		case "indice" :
			ficheVal = "FVI";
		break;
	}

	
}

/****************************************************************/
/*         Transformation d'une date en entier           	*/
/****************************************************************/
/*in:  arg1 la date de la forme jj/mm/yyyy               	*/
/*out: la date en entier de la forme yyyymmjj			*/
/****************************************************************/
function dateToInt(arg1) {
	return parseInt(
					arg1.substring(6,10) 
					+ arg1.substring(3,5) 
					+ arg1.substring(0,2)
				);
}

/****************************************************************/
/*         Décimalisation d'un nombre		             	*/
/****************************************************************/
/*in:  nombre le nombre à afficher		                */
/*	   nbChiffresApresVirgule le nombre de chiffres 	*/
/*			apres la virgule			*/
/*	arrondir indique si la valeur doit etre arrondie ou pas	*/
/*			true / false				*/
/*out: nb le nombre dans le format voulu			*/
/****************************************************************/
function afficheNombre(nombre, nbChiffresApresVirgule, arrondir) {
	if ( (nombre) && (nombre.length > 6) && ( nombre.substr(0,6) == "_EFFE_") && (nombre.substr(6,nombre.length)) && (!isNaN( nombre.substr(6,nombre.length) )) )
		return "" + nombre.substr(6,nombre.length);
    
	if (nombre == null || isNaN( nombre ) || (nombre == "" && nombre != "0") || (nombre.length < 1) ){
		return "";
	}
	nombre = "" + nombre; 
	if ( nombre.substr(nombre.length-1, 1) == " " )
		nombre = nombre.substr(0, nombre.length-1);
		
	var nb = "";
	var chiffresAvantVirgule = nombre.split(".")[0];
	if (chiffresAvantVirgule == "")
		chiffresAvantVirgule = "0";
	if(chiffresAvantVirgule == "-")
		chiffresAvantVirgule = "-0";
	var chiffresApresVirgule = nombre.split(".")[1];
	if( chiffresApresVirgule == null )
		chiffresApresVirgule = "0";
	while( chiffresApresVirgule.length < nbChiffresApresVirgule )
		chiffresApresVirgule += "0";
	if( (arrondir != null) && (arrondir == true) && ((chiffresApresVirgule.substr( nbChiffresApresVirgule, 1 )*1)  > 4) ) {
		//alert(chiffresApresVirgule);
		/* exception chiffre 0.018 */
		if(chiffresApresVirgule.substr( 0, 1 )=="0")
			chiffresApresVirgule = "0" + (( chiffresApresVirgule.substr( 0, nbChiffresApresVirgule ) * 1 ) + 1);
		/* exception chiffre 0.995 */
		else if(chiffresApresVirgule.substr( 0, 2 )=="99"){
			//alert("dans afficheNombre |" + chiffresAvantVirgule * 1 + "|");
			chiffresAvantVirgule = "" + ((chiffresAvantVirgule * 1) + 1);
			chiffresApresVirgule = "00";
			//alert("dans afficheNombre 2 |" + chiffresAvantVirgule * 1 + "|");
		}else
			chiffresApresVirgule = ( chiffresApresVirgule.substr( 0, nbChiffresApresVirgule ) * 1 ) + 1;
		chiffresApresVirgule += "";
		//alert(chiffresApresVirgule);
	} else
		chiffresApresVirgule = chiffresApresVirgule.substr( 0, nbChiffresApresVirgule );
	var k = 1;
	var partieEntiereFormatee = "";
	
	for( var i = chiffresAvantVirgule.length - 1; i > -1; i-- )
	{
		partieEntiereFormatee = chiffresAvantVirgule.charAt( i ) + partieEntiereFormatee;
		if( !( k++ % 3 ) && (chiffresAvantVirgule.charAt( i-1 )) && (chiffresAvantVirgule.charAt( i-1 ) != "-") ) 
			partieEntiereFormatee = " " + partieEntiereFormatee
	}
	
	return partieEntiereFormatee + ( ( nbChiffresApresVirgule > 0 ) ? "." + chiffresApresVirgule : "" );
}

/****************************************************************/
/*      Décompression d'un tableau				*/
/****************************************************************/
/*in:  tableau compressé (avec des $numeroDeLaLigne)     	*/
/*	on recupère la donnée 					*/
/*	de la même colonne à la ligne indiquée	par le $	*/
/*out: tableau décompressé (avec toutes les données)		*/
/*	   							*/
/****************************************************************/
function decompresseTableau( tab ) {
	var chaineDebut = "__CACHETAB__LIGNE__";
	for( var i in tab )
		for( var j in tab[ i ] )
			if( tab[ i ][ j ].substr( 0, chaineDebut.length ) == chaineDebut )
				tab[ i ][ j ] =
					tab[ parseInt( tab[ i ][ j ].substr( chaineDebut.length ) ) ][ j ];
}

/****************************************************************/
/*   Vérifie si une valeur est déjà présente dans le tableau	*/
/****************************************************************/
/*in: tab le tableau ou chercher				*/
/*	  valeur la valeur à chercher				*/
/*out: true si la valeur est trouvée dans le tableau		*/
/*	   sinon false						*/
/****************************************************************/
function isPresent(tab, valeur) {
	if ( (tab == null) || (valeur == null) )
		return false;
	for (var i in tab)
		if ( tab[i] == valeur )
			return true;
	return false;
}

/****************************************************************/
/*      Affichage du filtre sur les valeurs			*/
/****************************************************************/
/*in: tableau le tableau de données				*/
/*out: écrit pour chaque valeur du tableau 			*/
/*	   le libellé de la valeur comme option du <select> 	*/
/****************************************************************/
function afficheLibelleValeur(tableau) {
	if (tableau == null)
		document.write("<option>Pas d'autres valeurs</option>");
	else {
		decompresseTableau(tableau);
		var tabLibelle = [];
		for (var i in tableau)
			if ( !isPresent(tabLibelle, tableau[i][1]) )
				tabLibelle[tabLibelle.length] = tableau[i][1];
		tabLibelle.sort(function(a, b) {
							if ( a.split(";")[3] < b.split(";")[3] )
								return -1;
							return 1;
						});
		for (var i in tabLibelle)
			document.write("<option value='" + tabLibelle[i] +"'>" + tabLibelle[i].split(";")[3] + "</option>");
	}
}

/****************************************************************/
/*      Verification d'une date au format jj/mm/aaaa     	*/
/****************************************************************/
/*in:  stringDate la chaine a analyser                   	*/
/*out: renvoi false si stringDate n'est pas une Date valide	*/
/*	   renvoi true si stringDate est une Date valide	*/
/****************************************************************/
function isDate(stringDate) {
	if( stringDate == null || stringDate.substring == null )
		return false;
	var d = (stringDate.substring(0,2));
    var m = (stringDate.substring(3,5));
    var y = (stringDate.substring(6));
    
	if ( (isNaN(d))
			|| (d<1)
			|| (d>31)
    		|| (isNaN(m))
    		|| (m<1)
    		|| (m>12)
     		|| (isNaN(y))
     		|| (y.length != 4)
   			|| (stringDate.substring(2,3)!='/')
   			|| (stringDate.substring(5,6)!='/') )
        return false;
	return true;	
}

/****************************************************************/
/*      Verification d'une devise     				*/
/****************************************************************/
/*in:  stringDevise la chaine a analyser                   	*/
/*out: renvoi false si stringDevise n'est pas une devise valide	*/
/*	   renvoi true si stringDevise est une devise valide	*/
/****************************************************************/
function isDevise(stringDevise) {
	if ( stringDevise == "EUR" || stringDevise == "USD" || stringDevise == "GBP" || stringDevise == "CHF" || stringDevise == "JPY")
		return true;
	return false;
}

/****************************************************************/
/*   Verification d'une donnée                     		*/
/****************************************************************/
/*in:  data la donnée a verifier                   		*/
/*		 type le type de la donnee			*/																														
/*out: renvoi la donnée ou son equivalent null		     	*/
/****************************************************************/
function replaceNull (data, type) {
	if ( type == null )
		return "--string null--";
	if ( !data || (data == "" && data != "0") 
		|| (data == "null") || (data == "&nbsp;") ) {
		switch (type) {
			case "date":
				return "--date null--"
			break;
			case "pourcent":
				return "--percent null--";
			break;
			case "nombre":
				return "--number null--";
			break;
			case "monnaie":
				return "--currency null--";
			break;
			case "string":
				return "--string null--";
			break;
			default:
				return "--string null--";
			break;
		}
	}
	return data;
}

/****************************************************************/
/*   Verification d'une donnée                     		*/
/****************************************************************/
/*in:  data la donnée a verifier                   		*/
/*		 type le type de la donnee			*/																														
/*out: renvoi la donnée ou son equivalent null		     	*/
/****************************************************************/
function verifNullData (data) {
	if ( (data == null) || ((data == "") && (data != "0")) 
		|| (data == "null") || (data == "&nbsp;") )
		return "--string null--";
	if ( (data == "--date null--") || (data == "--percent null--")
		|| (data == "--number null--") || (data == "--currency null--")
		|| (data == "--string null--") )
		return data;
	
	return "not null";
}

/****************************************************************/
/*          Selection du type de tri                     	*/
/****************************************************************/
/*in:  arg1 la donnée a trier                   		*/
/*out: renvoi le type des données à trier			*/
/****************************************************************/
function triType (arg1) {
	if( arg1 == null )
		return 0;
	if( arg1 == "" || arg1 == " " || arg1 == "--string null--")
		return "triString";
	/* afficheNombre ajoute un espace comme séparateur de millier, arg1 n'est plus une nombre, il faut faire une vérification*/
	if ( !isNaN(arg1) || (isNaN(arg1) && !isNaN(arg1.substr(arg1.length-6)) && (arg1.substr(arg1.length-12)).substr(0,6)=="&nbsp;" ) || arg1 == "--number null--" )
		return "triNum"; 
	if (isDate(arg1) || arg1 == "--date null--")
		return "triDate"; 
	if ((arg1.substring(0,2) == "<a") || (arg1.substring(0,3) == "< a"))
		return "triLien";
	if (arg1.substring(0,8) == "<center>")
		return "triCenter";
	if (arg1.substr((arg1.split("</")[0]).length - 1, 1) == "%" || arg1 == "n/a" || arg1 == "--percent null--")
		return "triPourCent";
	if ( ( arg1.substr(0, arg1.length - 3) 
		&& ( arg1.substr(0, arg1.length - 3)!= "" ) 
		&& ( !isNaN( arg1.substr(0, arg1.length - 3) ) ) 
		&& ( isNaN( arg1.substr( arg1.length - 3, arg1.length ) ) ) )
		|| arg1 == "--currency null--" || arg1.substring(0,5)=="<span" )
		return "triMonnaie";
	if ( arg1.substr(0, 6) == "graphe")
		return "triGraphe";
	if ( arg1.substr(0, 5) == "image")
		return "triImage";
	return "triString";
}

/****************************************************************/
/*		Redimentionnement de la page 			*/
/*		en fonction de la taille du tableau             */ 
/****************************************************************/
/*in:  								*/
/*out: redimentionne la page					*/
/****************************************************************/
function redimPage(){
	if ( !document.getElementById( "bodyt" ))
		return 0;
	var hmin = 450, hcalculee, hnew;
	if (document.all && (navigator.platform != "MacPPC"))
		hcalculee = document.getElementById( "bodyt" )[ "scrollHeight" ] + 40;
	else {
		if ( (navigator.appName == "Microsoft Internet Explorer") && (navigator.platform == "MacPPC") )
			hcalculee = document.getElementById( "bodyt" )[ "offsetHeight" ];
		else
			hcalculee = document.getElementById( "bodyt" )[ "offsetHeight" ] + 40;	
	}
	hnew = ( ( hcalculee > hmin ) ? hcalculee : hmin );
	if (top.document.getElementById( "main" ))
		top.document.getElementById( "main" ).style.height = hnew; 
	top.window.scrollTo(0, 0);	
	return 1;	
}

/****************************************************************/
/*				Affichage du haut de page	*/
/****************************************************************/
/*in: nomVisiteur le nom du visiteur actif			*/
/*	  compte le numero de compte du visiteur actif		*/
/*	  dateAAfficher	la date de MAJ de la page en cours	*/
/*	  titrePage	le titre de la page en cours		*/
/*out: Affichage						*/
/****************************************************************/
function afficheHautPage(nomVisiteur, compte, dateAAfficher, titrePage, isPEA) {
	res.length = 0;
	res[ res.length ] = "<table width=\"100%\">"
			+  "<tr>"
				+  "<td colspan=\"2\" class=\"fixeTitrePage\">";
		if (isPEA)
			res[ res.length ] =  "COMPTE PEA";
		else
			res[ res.length ] =  "COMPTE TITRES";
			res[ res.length ] = ": <span class=\"donn&eacute;eTitrePage\">N&ordm; " 
				+ compte 
				+ "</span> de <span class=\"donn&eacute;eTitrePage\">" 
				+ nomVisiteur 
				+ "</span></td>"
			+  "</tr>"
			+  "<tr>"
				+  "<td class=\"fixeTitrePage\">"
				+  "SITUATION AU <span class=\"donn&eacute;eTitrePage\">" 
				+ dateAAfficher 
				+ "</span></td>"
				+  "<td style=\"text-align:right\">"
				+  "<a href=\"javascript:window.print()\" class=\"optionPage\">"
				+  "<img src=\"/images/WebBank/ING/print.gif\" "
				+  "style=\"text-align:center\" border=\"0\">&nbsp;Imprimer la page</a></td>"
			+  "</tr>"
		+  "</table>"
		+  "<p class=\"TitrePage\"><b>" + titrePage + "</b></p>"
		+  "<br>";
	document.write( res.join() );
}

/****************************************************************/
/*		Redimentionnement de la page 			*/
/*		en fonction de la taille du tableau             */ 
/****************************************************************/
/*in: 	placePatio le code place provenant de Patio 		*/
/*out: 	le code place correspondant chez IS			*/
/****************************************************************/
function codePlaceISFRT( placePatio ){
	switch( placePatio )
	{
		case "025" : return "PSE";
		case "038" : return "ASX";
		case "006" : return "BSE";
		case "065" : return "NYS";
		case "067" : return "NAS";
		case "066" : return "ASE";
		case "044" : return "ETR";
		case "046" : return "MIX";
	}
	return null;
}

function afficheLienPictoHtml(plisin, libelleSymbol, titre , texte, gras, devise)
{
	var res = [];
	res.length = 0;
	var urlLien = "";	
	var isin = plisin.split("_")[1];
	var place = plisin.split("_")[0];
	res[ res.length ] = "<a class='menuHaut'";
	
	if (plisin && plisin != "") {
		var appel = "";

		if (top.opener) {	
			try {
				var urlOpener = top.opener.top.location.href.split("/");
				urlOpener = urlOpener[urlOpener.length - 1];
				urlOpener = urlOpener.split("?")[0];
				var pageCourante = top.document.location.href.split("/");
				pageCourante = pageCourante[pageCourante.length - 1];
				pageCourante = pageCourante.split("?")[0];
				//alert("opener : " + urlOpener  + " page Courante : " + pageCourante);
				if ( ( (urlOpener == "mainFRT.jsp") || (urlOpener == "loginFRT.jsp") || (urlOpener == "loginFRT.jsp#") ) && (pageCourante != "passerUnOrdreFRT_Popup.jsp" && pageCourante != "login_SU_consultation.jsp") )
				{
					if (pageCourante == "warrantComClient.jsp")
						appel+='top.opener.main.location.href= opener.top.clientMakeScriptURL';
					else
						appel+='top.opener.location.href= top.opener.top.clientMakeScriptURL';
				}else if (urlOpener == "passerUnOrdreFRT_Popup.jsp" || pageCourante == "passerUnOrdreFRT_Popup.jsp" ){
					appel+='document.location.href= top.opener.top.clientMakeScriptURL';
					//appel = 'document.location.href=top.clientMakeScriptURL';
				}else if( pageCourante == "login_SU_consultation.jsp"){
					if (top.estClient())appel += 'top.change_class(\"' + texte + '\");';
					appel += 'document.location.href=top.clientMakeScriptURL';
				}
			} catch(e) {
				appel = 'top.main.location=top.clientMakeScriptURL';
			}
		} else{
			if (top.estClient())appel += 'top.change_class(\"' + texte + '\");';
			appel += 'document.location.href=top.clientMakeScriptURL';
		}
		switch( titre ) {	
			case "GR":
				urlLien =	appel + '( "/WebBank/scripts/FRT5.2/lesMarches/graphique.jsp" ) + "&plisin='
							+ plisin
							+ '&libelleSymbol=' + libelleSymbol + '&devise=' + devise + '"';
			break;
			case "AL":
				if(top.estPTN()){
					if ( top.opener ){
						try {
							var urlOpener = top.opener.top.location.href.split("/");
							urlOpener = urlOpener[urlOpener.length - 1];
							urlOpener = urlOpener.split("?")[0];
							//alert(urlOpener);
							var pageCourante = top.document.location.href.split("/");
							pageCourante = pageCourante[pageCourante.length - 1];
							pageCourante = pageCourante.split("?")[0];
							//alert(pageCourante);
							if(urlOpener == "passerUnOrdreFRT_Popup.jsp" )
								urlLien  = 'opener.top.reloadMainFrame( "ALERTES", "' +  plisin + '")';
							else if(pageCourante == "login_SU_consultation.jsp" || urlOpener == "login_SU_consultation.jsp")
								urlLien  = 'alert(\"Fonctionnalité indisponible\");';
							else
								urlLien  = 'top.opener.reloadMainFrame( "ALERTES", "' +  plisin + '")';
						} catch (e) {
							urlLien  = 'top.reloadMainFrame( "ALERTES", "' +  plisin + '")';
						}
					}
					else
						urlLien  = 'top.reloadMainFrame( "ALERTES", "' +  plisin + '")';
				}else{
					urlLien 	= top.clientMakeScriptURL("/servlets/Presentation")+ "&rubrique=AC";
				}
			break;
			case "TQ":
				if (top.opener) 	
					urlLien = 'window.open( top.opener.top.clientMakeScriptURL("/WebBank/scripts/FRT5.2/passageDOrdre/redirectTraderQuotes.jsp")'
					+ ' + "&plisin=' + plisin + '","",'
					+ '"status=no,width=860,height=220,resizable=yes,menubar=no,alwaysRaised=yes")';
				else
					urlLien = 'window.open( top.clientMakeScriptURL("/WebBank/scripts/FRT5.2/passageDOrdre/redirectTraderQuotes.jsp")'
					+ ' + "&plisin=' + plisin + '","",'
					+ '"status=no,width=860,height=220,resizable=yes,menubar=no,alwaysRaised=yes")';
			break;
			case "TS":
				if (top.opener) 
					urlLien =  'window.open(top.opener.top.clientMakeScriptURL("/WebBank/scripts/transaction/order/TED/timesales_header.jsp")'
							+ ' + "&PLISIN=' + plisin + '&selected_tab=1", "",'
							+ '"status=no,toolbar=no,fullscreen=no,resizable=no,scrollbars=no,width=420,height=600")';
				else
					urlLien =  'window.open(top.clientMakeScriptURL("/WebBank/scripts/transaction/order/TED/timesales_header.jsp")'
							+ ' + "&PLISIN=' + plisin + '&selected_tab=1", "",'
							+ '"status=no,toolbar=no,fullscreen=no,resizable=no,scrollbars=no,width=420,height=600")';
			break;
			case "+P":
				if (top.estClient())
				{
					if ( window.opener )
					urlLien = 'window.open( "' + 
								opener.top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=0' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
					else
					urlLien = 'window.open( "' + 
								top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=0' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
				}
				else
					urlLien = "alert(\"Pour passer un ordre, merci de vous identifier\")";
			break;
			case "-P":
				if (top.estClient())
				{
					if ( window.opener )
					urlLien = 'window.open( "' +
								opener.top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=1' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
					else
					urlLien = 'window.open( "' +
								top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=1' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
				}
				else
					urlLien = "alert(\"Pour passer un ordre, merci de vous identifier\")";
			break;	
			case "FVA":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeur.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVBS":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurBS.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVW":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurWarrant.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVC":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurCertificat.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVT":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurTrackers.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVO":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurObligations.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVI":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurIndice.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVOP":
				if (top.estClient() && top.estPTN())
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurOPCVM.jsp\" ) + \"&plisin=" + plisin + "&devise=" + devise + "&partenaire=PTN\"";
				else
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurOPCVM.jsp\" ) + \"&plisin=" + plisin + "&devise=" + devise + "\"";
			break;
			case "CI":
				if (top.estClient())
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/actionsTR.jsp\" ) + \"&CI=yes&plisinIndice=" + plisin + "\"";
				else
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/actionsTD.jsp\" ) + \"&CI=yes&plisinIndice=" + plisin + "\"";	
			break;
			case "P":
				urlLien = 'window.open( "' +
								top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/lesMarches/pricer.jsp' ) +
								'&plisin=' + plisin + 
								'&force=1' +
								'", "2", "status=no,toolbar=no,scrollbars=no,resizeable=no,width=680,height=600")';
			break;
			case "S":
				urlLien = 'window.open( "' +
								top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/lesMarches/simulateur.jsp' ) +
								'&plisin=' + plisin + 
								'&force=1' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=600")';
			break;
			case "W":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/selecteurWarrants.jsp\" )+ \"&plisin=" + plisin + "\"";
			break;
			case "C":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/infosConseils.jsp\") + \"&type=conseils&plisin=" + plisin + "\"";
			break;
			case "AT":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheAnalyseTechnique.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "AC":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheAvisConsensus.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "E":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/entreprise.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "0-9":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/chiffresCles.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "OC":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/MesComptes/ordresEnCours.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;	
			case "PTR":
				urlLien = appel + "( \"/WebBank/scripts/FRT5.2/MesComptes/valorisation.jsp\" ) + \"&date=TR&isin=" + plisin.split("_")[1] + "\"";
			break;
			case "LP":
				//if (top.estClient() && top.estPTN())
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/listesperso/choixListe.jsp\" ) + \"&plisin=" + plisin + "\"";
				/*else
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/listesperso/listesperso_new.jsp\" )";*/
			
			break;
			case "<img src='/static/FRT5.2/images/icone_comparer.gif' alt='Comparez ce fonds' border='0'>":
				if (top.estClient() && top.estPTN())
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/opcvm/comparateurOPCVM.jsp\" ) + \"&partenaire=PTN&isin=" + plisin.split("_")[1] + "&devise=" + devise + "\"";
				else
					urlLien = appel + "( \"/WebBank/scripts/FRT5.2/opcvm/comparateurOPCVM.jsp\" ) + \"&isin=" + plisin.split("_")[1] + "&devise=" + devise + "\"";
			break;
			case "NO":
				urlLien = 'window.open( "http://prospectus.cotalpha.fr/procapital/get.php?codeISIN=' + plisin.split("_")[1] + 
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=800,height=680")';
			break;
			case "NOS":
				urlLien = 'window.open( "http://prospectus.cotalpha.fr/procapital/get_simple.php?codeISIN=' + plisin.split("_")[1] + 
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=800,height=680")';
			break;
		}
	}
	if( titre == "AL" && !top.estPTN())
		res[ res.length ] = " href='" + urlLien + "' target='_blank'>" +  texte + "</a>";
	else
		res[ res.length ] = " href='#' onclick='" + urlLien + ";return false;'>" + ((gras)?"<b>":"") + texte + ((gras)?"</b>":"") + "</a>";
	
	return res.join( "" );
}

/****************************************************************/
/*				Affichage d'un pictos		*/
/****************************************************************/
/*in:  plisin le plisin de la valeur associée			*/
/*     titre le titre du picto					*/
/*     stylePicto le style du picto (entre 1 et 4)		*/
/*	libelleSymbol		nom de la valeur associée	*/
/*out: Affiche le picto 					*/
/****************************************************************/
var res2 = [];
function affichePictoHtml(plisin, titre, stylePicto, devise,  libelleSymbol){
	//alert(plisin + " " + titre);
	res2.length = 0;
	var urlPicto = "";	

	var isin = plisin.split("_")[1];
	var place = plisin.split("_")[0];
	
	if ( stylePicto == 1 ) stylePicto = "";
	
	if( titre != "+" && titre != "-" && titre != "+P" && titre != "-P" && titre != "AT" )
		res2[ res2.length ] = "<a class='btnVal'";
	if (titre == "AT") res2[ res2.length ] = "<a class='btnValUn'";
	
	if (plisin && plisin != "") {
		var appel = "";
		
		if (top.opener) {
			try {
				var urlOpener = top.opener.top.location.href.split("/");
				urlOpener = urlOpener[urlOpener.length - 1];
				urlOpener = urlOpener.split("?")[0];
				var pageCourante = top.document.location.href.split("/");
				pageCourante = pageCourante[pageCourante.length - 1];
				pageCourante = pageCourante.split("?")[0];
				//alert("opener : " + urlOpener  + " page Courante : " + pageCourante);
				if ( ( (urlOpener == "mainFRT.jsp") || (urlOpener == "loginFRT.jsp") || (urlOpener == "loginFRT.jsp#") ) && (pageCourante != "passerUnOrdreFRT_Popup.jsp" && pageCourante != "login_SU_consultation.jsp") )
				{
					if (pageCourante == "warrantComClient.jsp")
						appel+='top.opener.main.location.href= opener.top.clientMakeScriptURL';
					else
						appel+='top.opener.location.href= top.opener.top.clientMakeScriptURL';
				}
				else if (urlOpener == "passerUnOrdreFRT_Popup.jsp" || pageCourante == "passerUnOrdreFRT_Popup.jsp" )
				{
					appel+='document.location.href= top.opener.top.clientMakeScriptURL';
				}
				else if( pageCourante == "login_SU_consultation.jsp"){
					if (top.estClient() && titre !="<img src='/static/FRT5.2/images/icone_comparer.gif' alt='Comparez ce fonds' border='0'>")
						appel += 'top.change_class(\"' + titre + '\");';
					appel += 'document.location.href=top.clientMakeScriptURL';
				}
			} catch(e) {
				appel = 'top.main.location=top.clientMakeScriptURL';
			}
		} else{
			if (top.estClient() && titre !="<img src='/static/FRT5.2/images/icone_comparer.gif' alt='Comparez ce fonds' border='0'>")
				appel += 'top.change_class(\"' + titre + '\");';
			appel += 'document.location.href=top.clientMakeScriptURL';
		}
		switch( titre ) {	
			case "GR":
			urlPicto =	appel + '( "/WebBank/scripts/FRT5.2/lesMarches/graphique.jsp" ) + "&plisin='
						+ plisin
						+ "&libelleSymbol=" + libelleSymbol
						+ '&devise=' + devise + '"';
			break;
			case "AL":
				if(top.estPTN()){
					if ( top.opener ){
						try {
							var urlOpener = top.opener.top.location.href.split("/");
							urlOpener = urlOpener[urlOpener.length - 1];
							urlOpener = urlOpener.split("?")[0];
							var pageCourante = top.document.location.href.split("/");
							pageCourante = pageCourante[pageCourante.length - 1];
							pageCourante = pageCourante.split("?")[0];
							if(urlOpener == "passerUnOrdreFRT_Popup.jsp")
								urlPicto  = 'opener.top.reloadMainFrame( "ALERTES", "' +  plisin + '")';
							else if(pageCourante == "login_SU_consultation.jsp" || urlOpener == "login_SU_consultation.jsp")
								urlLien  = 'alert(\"Fonctionnalité indisponible\");';
							else
								urlPicto  = 'top.opener.top.reloadMainFrame( "ALERTES", "' +  plisin + '")';
						} catch (e) {
							urlPicto  = 'top.reloadMainFrame( "ALERTES", "' +  plisin + '")';
						}
					}
					else
						urlPicto  = 'top.reloadMainFrame( "ALERTES", "' +  plisin + '")';
				}else{
					urlPicto 	= top.clientMakeScriptURL("/servlets/Presentation")+ "&rubrique=AC";
				}
				//alert(urlPicto);
			break;
			case "TQ":    
				if (top.opener) 	
					urlPicto = 'window.open( top.opener.top.clientMakeScriptURL("/WebBank/scripts/FRT5.2/passageDOrdre/redirectTraderQuotes.jsp")'
					+ ' + "&plisin=' + plisin + '","",'
					+ '"status=no,width=860,height=220,resizable=yes,menubar=no,alwaysRaised=yes")';
				else
					urlPicto = 'window.open( top.clientMakeScriptURL("/WebBank/scripts/FRT5.2/passageDOrdre/redirectTraderQuotes.jsp")'
					+ ' + "&plisin=' + plisin + '","",'
					+ '"status=no,width=860,height=220,resizable=yes,menubar=no,alwaysRaised=yes")';
			break;
			case "TS":
				if (top.opener)
					urlPicto =  'window.open(top.opener.top.clientMakeScriptURL("/WebBank/scripts/transaction/order/TED/timesales_header.jsp")'
							+ ' + "&PLISIN=' + plisin + '&selected_tab=1", "",'
							+ '"status=no,toolbar=no,fullscreen=no,resizable=no,scrollbars=no,width=420,height=600")';
				else
					urlPicto =  'window.open(top.clientMakeScriptURL("/WebBank/scripts/transaction/order/TED/timesales_header.jsp")'
							+ ' + "&PLISIN=' + plisin + '&selected_tab=1", "",'
							+ '"status=no,toolbar=no,fullscreen=no,resizable=no,scrollbars=no,width=420,height=600")';
			break;
			case "+":
				res2[ res2.length ] = "<a class='btnValVert'";
				if (top.estClient())
					urlPicto = 'passeOrdreUtilTab("' + plisin + '", 0)';
				else
					urlPicto = "alert(\"Pour passer un ordre, merci de vous identifier\")";
				//alert(urlPicto);
			break;
			case "-":
				res2[ res2.length ] = "<a class='btnValRouge'";
				if (top.estClient())
					urlPicto = 'passeOrdreUtilTab("' + plisin + '", 1)';
				else
					urlPicto = "alert(\"Pour passer un ordre, merci de vous identifier\")";
				//alert(urlPicto);
			break;
			case "+P":
				res2[ res2.length ] = "<a class='btnValVert'";
				if (top.estClient()){
					if ( window.opener )
					urlPicto = 'window.open( "' + 
								opener.top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=0' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
					else
					urlPicto = 'window.open( "' + 
								top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=0' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
				}
				else
					urlPicto = "alert(\"Pour passer un ordre, merci de vous identifier\")";
			break;
			case "-P":
				res2[ res2.length ] = "<a class='btnValRouge'";
				if (top.estClient())
				{
					if ( window.opener )
					urlPicto = 'window.open( "' +
								opener.top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=1' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
					else
					urlPicto = 'window.open( "' +
								top.clientMakeScriptURL( '/WebBank/scripts/FRT5.2/passageDOrdre/passerUnOrdreFRT_Popup.jsp' ) +
								'&plisin=' + plisin + 
								'&sens=1' +
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=710,height=585")';
				}
				else
					urlPicto = "alert(\"Pour passer un ordre, merci de vous identifier\")";
			break;	
			case "FVA":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeur.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVBS":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurBS.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVW":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurWarrant.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVC":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurCertificat.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVT":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurTrackers.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVO":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurObligations.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVI":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurIndice.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "FVOP":
				if (top.estClient() && top.estPTN())
					urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurOPCVM.jsp\" ) + \"&plisin=" + plisin + "&devise=" + devise + "&partenaire=PTN\"";
				else
					urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurOPCVM.jsp\" ) + \"&plisin=" + plisin + "&devise=" + devise + "\"";
			break;
			case "AT":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheAnalyseTechnique.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "AC":
				urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheAvisConsensus.jsp\" ) + \"&plisin=" + plisin + "\"";
			break;
			case "<img src='/static/FRT5.2/images/icone_comparer.gif' alt='Comparez ce fonds' border='0'>":
				if (top.estClient() && top.estPTN())
					urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/opcvm/comparateurOPCVM.jsp\" ) + \"&partenaire=PTN&isin=" + plisin.split("_")[1] + "&devise=" + devise + "\"";
				else
					urlPicto = appel + "( \"/WebBank/scripts/FRT5.2/opcvm/comparateurOPCVM.jsp\" ) + \"&isin=" + plisin.split("_")[1] + "&devise=" + devise + "\"";
			break;
			case "NO":
				urlPicto = 'window.open( "http://prospectus.cotalpha.fr/procapital/get.php?codeISIN=' + isin + 
								'", "2", "status=no,toolbar=no,scrollbars=yes,resizeable=yes,width=800,height=680")';
			break;
		}
	}
	if( titre == "AL" && !top.estPTN())
		res2[ res2.length ] = " href='" + urlPicto + "' target='_blank'>";
	else
		res2[ res2.length ] = " href='#' onclick='" + urlPicto + ";return false;'>";
	
	if (titre == "FVA" || titre == "FVO" || titre == "FVOP" || titre == "FVI" || titre == "FVW" || titre == "FVC" || titre == "FVT" || titre == "FVBS")
		res2[ res2.length ] = "FV";
	else if (titre == "+" || titre == "+P")
		res2[ res2.length ] = "+";
	else if (titre == "-" || titre == "-P")
		res2[ res2.length ] = "-";
	else
		res2[ res2.length ] = titre;
	
	res2[ res2.length ] = "</a>";
	//alert(res2.join( "" ));
	return res2.join( "" );
}

/****************************************************************/
/*				Affichage des pictos							*/
/*				en bas de page									*/
/****************************************************************/
/*in:  															*/
/*out: Affiche les pictos pour une valeur						*/
/****************************************************************/
function affichePictos() {
	var res = "";
	var picto = [
					["+ -", "Passer un ordre"],
					["T Q", "TraderQuotes"],
					["!", 	"Alertes"],
					["G", 	"Graphiques"]
				];
	document.write("<br><NOBR>");
	var stylePicto = 1;
	for (var i in picto) {
		document.write( affichePictoHtml("", picto[i][0], stylePicto, "") + "&nbsp;" + picto[i][1] );
		if ( picto[i][0] != "G" )
			document.write("&nbsp;-&nbsp;");
	}
	document.write("</NOBR>");
}

/****************************************************************/
/*				Affichage du chronomètre	*/
/****************************************************************/
/*in: 	dateDebut	la date de début du chrono		*/
/*	  	dateFin la Date de fin du chrono		*/
/*out: 	Calcul et affiche le temps écoulé entre les 2 dates 	*/
/****************************************************************/
function afficheChrono(dateDebut, dateFin) {
	var chrono = (dateFin - dateDebut);
	document.write
	(
		"<br><br><table border=1><tr>"
		+ "<td>Chronomètre</td><td>"
		+  chrono
		+ "ms</td></tr></table>"
	);
}

/****************************************************************/
/*Récupération du libellé d'une place		 		*/
/****************************************************************/
/*in: codePlace le code de la place recherchée			*/
/*out: renvoi le libellé de la place				*/
/****************************************************************/
function getPlaceLibelle(codePlace) {
	if ( (codePlace == null) || (codePlace == "") )
		return "";
	var placeLibelle = 
	{
		"004" : "Suisse",
		"006" : "Bruxelles",
		"011" : "Bruxelles",
		"025" : "Paris",
		"027" : "Lyon",
		"028" : "Marseille",
		"030" : "Bordeaux",
		"031" : "Nantes",
		"032" : "Lille",
		"036" : "London",
		"038" : "Amsterdam",
		"044" : "Xetra",
		"046" : "Italie",
		"054" : "Espagne",
		"065" : "NYSE",
		"066" : "ASE/AMEX",
		"067" : "Nasdaq NM",
		"260" : "Paris/OPCVM",
		"310" : "Dow Jons Indice",
		"361" : "London",
		"863" : "Xetra"
	};
	if ( (isNaN(codePlace)) || (!placeLibelle[codePlace]) )
		return codePlace;
	return placeLibelle[codePlace];
}

/****************************************************************/
/*				Affichage de la page suivante	*/
/****************************************************************/
/*in: direction le sens précédente/suivante -> -1/1		*/
/*out: renvoi la partie du tableau à afficher			*/
/****************************************************************/
var res3 = [];
function affPageNext( direction )
{
	res3.length = 0;
	if (direction < 0)
		res3[ res3.length ] = "document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.ligneDepart -=" 
			+ this.lignesAAfficher
			+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.indexPage -= 1";
	else
		res3[ res3.length ] = "document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.ligneDepart +=" 
			+ this.lignesAAfficher
			+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.indexPage += 1";
	res3[ res3.length ] = ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.affiche()"
		+ ";";
	return res3.join( "" );
}

/****************************************************************/
/*				Affichage d'une page précise	*/
/****************************************************************/
/*in: i le numéro de la page à afficher				*/
/*out: renvoi la partie du tableau à afficher			*/
/****************************************************************/
function affPage( i )
{
	return "document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.indexPage = " + i
		 	+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.ligneDepart = ((" + i + "- 1) * " 
			+ this.lignesAAfficher + ")"
			+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.affiche()"
			+ ";";
}

/****************************************************************/
/*				Change le tri du tableau	*/
/****************************************************************/
/*in: i la colonne de Tri					*/
/*out: renvoi le tableau trié selon la colonne i		*/
/****************************************************************/
function changeTri( i ){
	return	"document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.ligneDepart = 0"
			+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.indexPage = 1"
			+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.trieTableau(" + i + ")"
			+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.affiche()"
			+ ";";
}

/****************************************************************/
/*				Convertisseur EUR/FRF		*/
/****************************************************************/
/*in: 								*/
/*out: renvoi le tableau avec les données converties		*/
/****************************************************************/
function convertisseur(){
	return	"convertisseurOn = (" + convertisseurOn +" == true) ? false : true"
			+ ";document.getElementById( \"" 
			+ this.nomDivReferrent 
			+ "\" ).tableauDynamiqueTriable.affiche()"
			+ ";";
}

/****************************************************************/
/*				Tri du tableau à 2 dimensions	*/
/****************************************************************/
/*in: indexTri l'index de la colonne de Tri			*/
/*out: renvoi le tableau trié selon la colonne demandée		*/
/****************************************************************/
function tri2dim( indexTri ) {
		
	// Modif mat
	if ( this.tabMisEnForme ) {
		if( this.tabMisEnForme.tableauACalculPartiel )
			this.tabMisEnForme.calculeTout();
	}
	// Fin modif mat
	
	if ( !this.tabMisEnForme || !this.tabMisEnForme[0] || !this.tabMisEnForme[ 0 ][ indexTri ] || (triType( this.tabMisEnForme[ 0 ][ indexTri ] ) == 0) )
		return this.tabMisEnForme;
			
	var tab2 = [];
	var tabNeg = [];
	switch( triType( this.tabMisEnForme[ 0 ][ indexTri ] ) ){
		case "triNum" :
			this.sensTri	= "decroissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ ) {
				if ( ("" + this.tabMisEnForme[ i ][ indexTri ]).substring(0,1) == "-" )
					tabNeg[ tabNeg.length ] = "-" 
								+ this.tri2dim.floatVersChaineDeCaracteresTriable( ("" + this.tabMisEnForme[ i ][ indexTri ]).split("-")[1] ) 
								+ this.tri2dim.separateur 
								+ i;
				else
					tab2[ tab2.length ] = this.tri2dim.floatVersChaineDeCaracteresTriable( this.tabMisEnForme[ i ][ indexTri ] ) 
							+ this.tri2dim.separateur 
							+ i;
			}
			break;

		case "triDate" :
			this.sensTri	= "decroissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ )
				tab2[ i ] = dateToInt( this.tabMisEnForme[ i ][ indexTri ] ) 
						  + this.tri2dim.separateur 
						  + i;
			break;
		
		case "triLien" :
		case "triCenter" :
			this.sensTri	= "croissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ )
				tab2[ i ] = ((( this.tabMisEnForme[ i ][ indexTri ] ).split(">")[1]).split("<")[0]).toLowerCase() 
						  + this.tri2dim.separateur 
						  + i;
			break;
		
		case "triPourCent" :  
			this.sensTri	= "decroissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ ) {
				if ( ( this.tabMisEnForme[ i ][ indexTri ] ).substr(( this.tabMisEnForme[ i ][ indexTri ] ).length - 1, 1) == "%" )
					var valeurPourCent = ( this.tabMisEnForme[ i ][ indexTri ] ).substr(0, ( this.tabMisEnForme[ i ][ indexTri ] ).length - 1);
				else {
					var valeurPourCent = (this.tabMisEnForme[ i ][ indexTri ]).split("-->")[0];
					valeurPourCent = valeurPourCent.substr(4, valeurPourCent.length);
				}  
				if ( ("" + valeurPourCent).substring(0,1) == "-" )  
					tabNeg[ tabNeg.length ] = "-" 
								+ this.tri2dim.floatVersChaineDeCaracteresTriable( ("" + valeurPourCent).split("-")[1] ) 
								+ this.tri2dim.separateur 
								+ i;
				else
					tab2[ tab2.length ] = this.tri2dim.floatVersChaineDeCaracteresTriable( valeurPourCent ) 
								+ this.tri2dim.separateur   
								+ i;
			}
			break;
		case "triMonnaie" :
			this.sensTri	= "decroissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ ) {
				if ( ("" + this.tabMisEnForme[ i ][ indexTri ]).substring(0,1) == "-" )
					tabNeg[ tabNeg.length ] = "-" 
								+ this.tri2dim.floatVersChaineDeCaracteresTriable( ("" + (this.tabMisEnForme[ i ][ indexTri ]).substr(0,((this.tabMisEnForme[ i ][ indexTri ]).length) - 3)).split("-")[1] ) 
								+ this.tri2dim.separateur 
								+ i;
				else
					tab2[ tab2.length  ] = this.tri2dim.floatVersChaineDeCaracteresTriable((this.tabMisEnForme[ i ][ indexTri ]).substr(0,((this.tabMisEnForme[ i ][ indexTri ]).length) - 3) ) 
								 + this.tri2dim.separateur 
								 + i;
			}
			break;
		
		case "triGraphe" :
			this.sensTri = "decroissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ ) {
				var moyenneGraphe = (this.tabMisEnForme[ i ][ indexTri ]).split("_")[1];
				 	
			 	if ( ("" + moyenneGraphe).substring(0,1) == "-" )
					tabNeg[ tabNeg.length ] = "-" 
								+ this.tri2dim.floatVersChaineDeCaracteresTriable( ("" + moyenneGraphe).split("-")[1] ) 
								+ this.tri2dim.separateur 
								+ i;
				else
					tab2[ tab2.length ] = this.tri2dim.floatVersChaineDeCaracteresTriable( moyenneGraphe ) 
								+ this.tri2dim.separateur 
								+ i;
			}
			break;
		
		case "triImage" :
			this.sensTri = "decroissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ ) {
				var nombre = (this.tabMisEnForme[ i ][ indexTri ]).split("_")[1];
				 	
				tab2[ tab2.length ] = this.tri2dim.floatVersChaineDeCaracteresTriable( nombre ) 
							+ this.tri2dim.separateur 
							+ i;
			}
			break;
		
		case "triString" :
			this.sensTri = "croissant";
			for( var i = 0; this.tabMisEnForme.length != null && i < this.tabMisEnForme.length; i++ ) {
				if ( (this.tabMisEnForme[i][indexTri]).substr(0, 8) == "__CVAL__") {
					tab2[ i ] = ((this.tabMisEnForme[i][indexTri]).split(";")[3]
							+ "-"
							+ (this.tabMisEnForme[i][indexTri]).split(";")[0]
							+ "-"
							+ (this.tabMisEnForme[i][indexTri]).split(";")[1]).toLowerCase() + this.tri2dim.separateur + i;
				 } else
					tab2[ i ] = (this.tabMisEnForme[ i ][ indexTri ]).toLowerCase() + this.tri2dim.separateur + i;
			}
	}
	tabNeg.sort();
	tabNeg.reverse();
	tab2.sort();
	tab2 = tabNeg.concat(tab2);
	var tab3 = [];
	for( var i = 0; i < tab2.length; i++ )
		tab3[ i ] = this.tabMisEnForme[ tab2[ i ].split( this.tri2dim.separateur )[ 1 ] ];
	this.tabMisEnForme = tab3;  
	return this.tabMisEnForme;
}

/****************************************************************/
/*	Transformation d'un float en une chaine triable		*/
/****************************************************************/
/*in: f le float						*/
/*out: renvoi le float sous la forme d'une chaine triable	*/
/****************************************************************/
function floatVersChaineDeCaracteresTriable( f ){
	return (
		( "00000000000000000000000000000000000" + f ).substr( ( f + "." ).indexOf( "." ) )
	);
}

/****************************************************************/
/*				Affichage du tableau		*/
/****************************************************************/
/*in: 								*/
/*out: res le tableau à afficher				*/
/****************************************************************/
var res = [];
var lienPage = [];
function affTabMulti(){
	res.length = 0;	
	lienPage.length = 0;

	var plusieursPages = false;
	var nbTitresVisibles = 0;
	
	/* Calcul du nombre de colonnes à afficher */
		for (var t in this.tabTitre)
			if ( this.tabTitre[t][1] == "visible" )
				nbTitresVisibles++;
	
	if (this.tabMisEnForme != null) { 
		/* Calcul du nombre de pages pour le tableau */
		if (this.lignesAAfficher < this.tabMisEnForme.length) { 
			plusieursPages = true;
			if (this.tabMisEnForme.length % this.lignesAAfficher == 0)
				var nbPages = this.tabMisEnForme.length / this.lignesAAfficher;
			else
				var nbPages = parseInt(this.tabMisEnForme.length / this.lignesAAfficher, 10) + 1;
		} else { 
		var nbPages = 1;
		} 
		
		/* Création de la pagination du tableau */
		if (this.indexPage > 1)
			lienPage[lienPage.length] = "<td class='pageTabPrec'>"
					 + "<a class='pageTabSigne' href='#' onClick='javascript:{" 
					 + this.affPageNext(-1) 
					 + "return false;}'>"
					 + " &lt; </a>"
					 + "<a class='pageTabPrec' href='#' onClick='javascript:" 
					 + this.affPageNext(-1) 
					 + "return false;'>"
					 + "Précédent</a>"
					 + "</td>";				
		else 
			lienPage[lienPage.length] = "<td class='pageTabPrec'>"
					 + "<span class='pageTabSigne'> &lt; </span> "
					 + "Précédent</td>";
		if (nbPages < 6) { 
			lienPage[lienPage.length] = "<td class='pageTab'>";
			for(var i = 1; i < nbPages + 1; i++) {
				if (i == this.indexPage) { 
					lienPage[lienPage.length] = "<span class='pageActuelle'>" + i + "</span> ";
				} else { 
					lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(i) + "return false;'>";
					lienPage[lienPage.length] =  i + "</a> ";
				} 
				if (i != nbPages)
					lienPage[lienPage.length] = "- ";
			} 
			
			lienPage[lienPage.length] = "- <a class='pageTab' href='#' onClick='javascript:document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.lignesAAfficher=document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.tabMisEnForme.length;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.ligneDepart = 0;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.affiche();return false;'>Tous</a> ";
			
			lienPage[lienPage.length] = "</td>";
		} else { 
			if (this.indexPage < 4) { 
				lienPage[lienPage.length] = "<td class='pageTab'>";
				for(var i = 1; i < 6; i++) { 
					if (i == this.indexPage) { 
						lienPage[lienPage.length] = "<span class='pageActuelle'>" + i + "</span> - ";
					} else { 
						lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(i) + "return false;'>";
						lienPage[lienPage.length] =  i + "</a> - ";
					} 
				} 
				lienPage[lienPage.length] = "... ";
				lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(nbPages) + "return false;'>";
				lienPage[lienPage.length] =  nbPages + "</a> ";
				
				lienPage[lienPage.length] = "- <a class='pageTab' href='#' onClick='javascript:document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.lignesAAfficher=document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.tabMisEnForme.length;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.ligneDepart = 0;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.affiche();return false;'>Tous</a> ";
			
				lienPage[lienPage.length] = "</td>";
			} else if (this.indexPage > (nbPages - 3)) { 
				lienPage[lienPage.length] = "<td class='pageTab'>";
				lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(1) + "return false;'>";
				lienPage[lienPage.length] =  1 + "</a> ";
				lienPage[lienPage.length] = "... - ";
				for(var i = nbPages - 4; i < nbPages + 1; i++) {
					if (i == this.indexPage) { 
						lienPage[lienPage.length] = "<span class='pageActuelle'>" + i + " </span>";
					} else { 
						lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(i) + "return false;'>";
						lienPage[lienPage.length] =  i + "</a> ";
					} 
					if (i != nbPages)
					lienPage[lienPage.length] = "- ";
				} 
				
				lienPage[lienPage.length] = "- <a class='pageTab' href='#' onClick='javascript:document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.lignesAAfficher=document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.tabMisEnForme.length;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.ligneDepart = 0;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.affiche();return false;'>Tous</a> ";
			
				lienPage[lienPage.length] = "</td>";
			} else { 
				lienPage[lienPage.length] = "<td class='pageTab'>";
				lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(1) + "return false;'>";
				lienPage[lienPage.length] =  1 + "</a> ";
				lienPage[lienPage.length] = "... - ";
				for(var i = this.indexPage - 2; i < (this.indexPage + 3); i++) { 
					if (i == this.indexPage) { 
					lienPage[lienPage.length] = "<span class='pageActuelle'>" + i + "</span> - ";
					} else { 
						lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(i) + "return false;'>";
						lienPage[lienPage.length] =  i + "</a> - ";
					} 
				} 
				lienPage[lienPage.length] = "... ";
				lienPage[lienPage.length] = "<a class='pageTab' href='#' onClick='javascript:" + this.affPage(nbPages) + "return false;'>";
				lienPage[lienPage.length] =  nbPages + "</a> ";
				
				lienPage[lienPage.length] = "- <a class='pageTab' href='#' onClick='javascript:document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.lignesAAfficher=document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.tabMisEnForme.length;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.ligneDepart = 0;document.getElementById( \"" + this.nomDivReferrent + "\" ).tableauDynamiqueTriable.affiche();return false;'>Tous</a> ";
			
				lienPage[lienPage.length] = "</td>";
			} 
		} 
		if (this.indexPage < nbPages) { 
			lienPage[lienPage.length] = "<td class='pageTabSuiv'>"
					 + "<a class='pageTabSuiv' href='#' onClick='javascript:" 
					 + this.affPageNext(1) 
					 + "return false;'>"
					 + "Suivant </a>"
					 + "<a class='pageTabSigne' href='#' onClick='javascript:" 
					 + this.affPageNext(1) 
					 + "return false;'>"
					 + "&gt; </a>"
					 + "</td>";
		} else { 
			lienPage[lienPage.length] = "<td class='pageTabSuiv'>"
					 + "Suivant "
					 + "<span class='pageTabSigne'>&gt; </span></td>";
		} 
	} 
	
	res[res.length] = "<table style='border-style:solid;border-width:1px;border-color:black' cellpadding='0' cellspacing='0' width='100%'><tr><td><table class='table1' cellspacing='1' cellpadding='1'>";
	/* Affichage du titre du tableau */
	if (this.titreTableau) {
		var titreDuTableau = "";
			
		/*  __CVAL__codePlace_codeIsin;mnemonique;type_valeur;libelle|devise  */
		if ( (this.titreTableau).substr(0, 8) == "__CVAL__") { 
			var codePlace = (((this.titreTableau).split(";")[0]).substr(8) ).split("_")[0];
			var codeIsin = (((this.titreTableau).split(";")[0] ).substr(8) ).split("_")[1];
			var mnemonique = (this.titreTableau).split(";")[1];
			if ( (!mnemonique) || (mnemonique == "") )
				mnemonique = "";
			else
				mnemonique = " (" + mnemonique + ")";
				 
			var type_valeur = (this.titreTableau).split(";")[2];
			var libelle = (this.titreTableau).split(";")[3];
			if ( (this.titreTableau).split(";")[4] )
				var comptantOuSrd = (this.titreTableau).split(";")[4];
			else
				var comptantOuSrd = "";
			if ( (libelle).split("|")[1] ){
				var devise = (libelle).split("|")[1];
				libelle = (libelle).split("|")[0];
			}else
				var devise = "";
			if (!codePlace)
				codePlace = "";
			var codePlaceLibelle = getPlaceLibelle( codePlace );
				
			titreDuTableau += "<b>" + libelle + mnemonique + "</b><br><nobr>";
			
			titreDuTableau += pictosSelonType (codePlace + "_" + codeIsin, type_valeur, false, devise, libelle );
		
			titreDuTableau	+= "</NOBR>";
			
			if ( comptantOuSrd != "" )
				titreDuTableau += "<br>" + comptantOuSrd + "";

		/*  String quelconque  */
		} else {
			titreDuTableau = this.titreTableau;
		}
		res[res.length] = "<tr height='22px' vertical-align='top'>"
			+ "<td class='TABLEAUENTETE' width='100%' colspan='"
			+ nbTitresVisibles
			+ "'>&nbsp;&nbsp;&nbsp;&nbsp;"
			+ titreDuTableau
			+ "</td></tr>";
	}
	
	/* Affichage pagination */
	if ( nbPages > 1) 
		res[res.length] = "<tr class='lignePagination'><td colspan='"
			+ nbTitresVisibles
			+ "'><table width='100%'>"
			+ lienPage.join( "" ) 
			+ "</table></td></tr>";
	
	/* Affichages des titres de colonnes */
	if(	document
		.getElementById( this.nomDivReferrent )
		.tableauDynamiqueTriable
		.afficherTitres())
	{ 
		res[res.length] = "<tr class='TABLEAUENTETE' height='22px'>";
		for( var i in this.tabTitre ) 
			if (this.tabTitre[i][1] == "visible") 
				if (this.tabTitre[i][2] == "triable") { 
					res[res.length] = "<td class='TABLEAUENTETE' style='text-align:center'>"
					if(this.tabTitre[ i ][0].match("Libellé") != null)
					    res[res.length] = "<nobr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
					
					res[res.length] = " <a href='#' class='"
						+ ((i == this.indexTri) ? "TABLEAUENTETEACTIF" : "TABLEAUENTETE")
						+ "'";
					if ( this.tabMisEnForme != null )
						res[res.length] = " onClick='javascript:"
							+ this.changeTri(i)
							+ "return false;'";
					res[res.length] = ">"
						+ this.tabTitre[ i ][0]
						+ "</a></nobr>";
					if(this.tabTitre[ i ][0].match("Libellé") != null)
					    res[res.length] = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr>"
					
				    res[res.length] = "</td>";
				} else 
					res[res.length] = "<td class='TABLEAUENTETE' style='text-align:center'>"
						+ this.tabTitre[i][0]
						+ "</td>";
	
		res[res.length] = "</tr>";
	} 
	
	/* Affichage des données */
	if ( (this.tabMisEnForme == null) || (this.tabMisEnForme.length == 0) ) { 
		res[res.length] = "<tr class='tabNull'><td colspan='" + this.tabTitre.length + "'>Aucune valeur</td></tr>";
	} else if (this.tabMisEnForme == "erreur") {
		res[res.length] = "<tr class='tabNull'><td colspan='" + this.tabTitre.length + "'>Données momentanément indisponibles</td></tr>";
	} else { 
		var couleurCellule = 0;
		var nbLigneDernierePage = this.tabMisEnForme.length % this.lignesAAfficher;
		
		/* Ligne supplementaire pour tableau genere dynamiquement mat */			
		if( this.tabMisEnForme.tableauACalculPartiel )
			this.tabMisEnForme.calculeLignes
			(
				this.ligneDepart,
				this.ligneDepart + this.lignesAAfficher
			);
		// Fin ligne supp
		
		for(	var i = this.ligneDepart;
				i < (this.ligneDepart + this.lignesAAfficher) && i < this.tabMisEnForme.length;
				i++ )
		{ 
			if (this.tabMisEnForme[ i ].ligneDeCasse != null)
					res[res.length] =	"<tr class='ligneDeCasse' height='22px'><td  colspan='" 
						+ this.tabTitre.length 
						+ "'><div class='ligneDeCasse'><strong>"
						+ this.tabMisEnForme[ i ].ligneDeCasse 
						+ "</strong></div></td></tr>";
						
			if (couleurCellule++ % 2)
				res[res.length] = "<tr class='TABLEAULIGNE2' >"; 
			else
				res[res.length] = "<tr class='TABLEAULIGNE1' >";
			
			var testPositionEnLiquidation = false;
			
			for( var j = 0; j < this.tabTitre.length; j++ ) { 
				if ( this.tabTitre[ j ][ 1 ] != "visible")
					continue;
					
				res[res.length] = "<td ";
				
				// Si donnée vide ou null
				if ( verifNullData(this.tabMisEnForme[ i ][ j ]) != "not null" ) {
					this.tabMisEnForme[ i ][ j ] = verifNullData(this.tabMisEnForme[ i ][ j ]);
					res[res.length] = "style='text-align:center'>&nbsp;";
				} else { // Donnée existante 
					if ( ((triType( this.tabMisEnForme[ 0 ][ j ] ) == "triNum") 
							|| (triType( this.tabMisEnForme[ 0 ][ j ] ) == "triDate") 
							|| (triType( this.tabMisEnForme[ 0 ][ j ] ) == "triPourCent") 
							|| (triType( this.tabMisEnForme[ 0 ][ j ] ) == "triMonnaie")) )
						res[res.length] = "style='text-align:right'>";
					/*else if (triType( this.tabMisEnForme[ 0 ][ j ] ) == "triCenter")
						res[res.length] = "style='text-align:center'>";*/
					else
						res[res.length] = "style='text-align:left'>";
					
					/**********************************/
					/* Données non convertible en EUR */
					/**********************************/
					if ( (this.tabTitre[j][3] == "nonconvertible")
								&& (!isNaN( (this.tabMisEnForme[ i ][ j ]).substr( 0, (this.tabMisEnForme[ i ][ j ]).length - 3 ) ) )
								&& ( isDevise( (this.tabMisEnForme[ i ][ j ]).substr( (this.tabMisEnForme[ i ][ j ]).length - 3, (this.tabMisEnForme[ i ][ j ]).length ) ) ) ) 
					{ 
						var dec = 2
						if(this.tabTitre[j][4] != null && this.tabTitre[j][4] != 0)
							dec = this.tabTitre[j][4];
						var valeur = (this.tabMisEnForme[ i ][ j ]).substr(0, (this.tabMisEnForme[ i ][ j ]).length - 3) + "";
						var devise = (this.tabMisEnForme[ i ][ j ]).substr( (this.tabMisEnForme[ i ][ j ]).length - 3, (this.tabMisEnForme[ i ][ j ]).length );
						res[res.length] = "<NOBR>" + afficheNombre(valeur, dec) + " " + devise + "</NOBR>";
					}
					/********************************/
					/*	DATE (JJ/MM/AAAA)	*/
					/* retire les 2 premiers 	*/
					/* chiffres de l'année 		*/	
					/* ( aaaa -> aa)		*/
					/********************************/
					else if ( isDate(this.tabMisEnForme[ i ][ j ]) ) {
						var arg = this.tabMisEnForme[ i ][ j ];
						
						res[res.length] =	arg.substring(0,2)
							+"/" 
							+ arg.substring(3,5) 
							+"/"
							+ arg.substring(8,10);
					}	
					/****************/	
					/* Pourcentages */
					/****************/
					else if ( ((this.tabMisEnForme[ i ][ j ]).substr( (this.tabMisEnForme[ i ][ j ]).length - 1, (this.tabMisEnForme[ i ][ j ]).length ) == "%" )
								&& (!isNaN((this.tabMisEnForme[ i ][ j ]).substr( 0, (this.tabMisEnForme[ i ][ j ]).length - 1 ))) ) {
						var valeur = (this.tabMisEnForme[ i ][ j ]).substr(0, (this.tabMisEnForme[ i ][ j ]).length - 1) + "";
						res[res.length] = "<NOBR>" + formatPourcent( "" + valeur ) + "</NOBR>";
					}
					/***********/ 
					/* Nombres */
					/***********/
					else { 
						if (!isNaN( this.tabMisEnForme[ i ][ j ] ) && this.tabMisEnForme[ i ][ j ] != "" && this.tabMisEnForme[ i ][ j ] != " " || this.tabMisEnForme[ i ][ j ].substr(0,6) == "_EFFE_") { 
							var valeur = this.tabMisEnForme[i][j] + "";
							if ( this.tabTitre[j][5] && (this.tabTitre[j][5]!="nondecimalisable") ) {
								var codeIsin = this.tabMisEnForme[i][0];
								var decimalisation = 0;
								if (this.tabTitre[j][5][codeIsin]) {
									switch( this.tabTitre[j][5][codeIsin] )
								 	{
									 	case "EM" :
									 	case "1" :
									 	case 1 :
									 		valeur = valeur;
									 		break;
									 	case "DI" :
									 	case "10" :
									 	case 10 :
									 		decimalisation = 1;
									 		break;
									 	case "CE" :
									 	case "100" :
									 	case 100 :
									 		decimalisation = 2;
									 		break;
									 	case "MI" :
									 	case "1000" :
									 	case 1000 :
									 		decimalisation = 3;
									 		break;
									 	case "DM" :
									 	case "10000" :
									 	case 10000 :
									 		decimalisation = 4;
									 		break;
									 	case "CM" :
									 	case "100000" :
									 	case 100000 :
									 		decimalisation = 5;
									 		break;					
									 	default:
									 		valeur = valeur;
									 		break;
									 }
								}
								valeur = valeur;
								res[res.length] = "<NOBR>" + afficheNombre(valeur, decimalisation) + "</NOBR>";
							} else
								res[res.length] = "<NOBR>" + afficheNombre(valeur, this.tabTitre[j][4]) + "</NOBR>";
						}
						/***********/ 
						/* String  */
						/***********/
						else {
							/*  __CVAL__codePlace_codeIsin;mnemonique;type_valeur;libelle|devise  */
							if ( (this.tabMisEnForme[i][j]).substr(0, 8) == "__CVAL__") { 
								var plisin = ((this.tabMisEnForme[i][j]).split(";")[0]).substr(8);
								var codePlace = (((this.tabMisEnForme[i][j]).split(";")[0]).substr(8) ).split("_")[0];
								var codeIsin = (((this.tabMisEnForme[i][j]).split(";")[0] ).substr(8) ).split("_")[1];
								var mnemonique = (this.tabMisEnForme[i][j]).split(";")[1];
								if ( (!mnemonique) || (mnemonique == "") )
									mnemonique = "";
								else
									mnemonique = " (" + mnemonique + ")";
									 
								var type_valeur = (this.tabMisEnForme[i][j]).split(";")[2];
								var libelle = (this.tabMisEnForme[i][j]).split(";")[3];
								if ( (this.tabMisEnForme[i][j]).split(";")[4] )
									var comptantOuSrd = (this.tabMisEnForme[i][j]).split(";")[4];
								else
									var comptantOuSrd = "";
								if ( libelle.split("|")[1] ){
									var devise = (libelle).split("|")[1];
									libelle = (libelle).split("|")[0];
								}else
									var devise = "";
								if (!codePlace)
									codePlace = "";
								var codePlaceLibelle = getPlaceLibelle( codePlace );
								var appel = "";

								if (top.opener) {	
									try {
										var urlOpener = top.opener.top.location.href.split("/");
										urlOpener = urlOpener[urlOpener.length - 1];
										urlOpener = urlOpener.split("?")[0];
										var pageCourante = top.document.location.href.split("/");
										pageCourante = pageCourante[pageCourante.length - 1];
										pageCourante = pageCourante.split("?")[0];
										if ( ( (urlOpener == "mainFRT.jsp") || (urlOpener == "loginFRT.jsp") || (urlOpener == "loginFRT.jsp#") ) && (pageCourante != "passerUnOrdreFRT_Popup.jsp" && pageCourante != "login_SU_consultation.jsp") )
										{
											if (pageCourante == "warrantComClient.jsp")
												appel+='top.opener.main.location.href= opener.top.clientMakeScriptURL';
											else
												appel+='top.opener.location.href= top.opener.top.clientMakeScriptURL';
										}
										else if (urlOpener == "passerUnOrdreFRT_Popup.jsp" || pageCourante == "passerUnOrdreFRT_Popup.jsp" )
										{
											appel+='document.location.href= top.opener.top.clientMakeScriptURL';
										}
										else if( pageCourante == "login_SU_consultation.jsp"){
											if (top.estClient())appel = 'top.change_class(\"FV\");';
											appel += 'document.location.href=top.clientMakeScriptURL';
										}
									} catch(e) {
										appel = 'top.main.location=top.clientMakeScriptURL';
									}
								} else{
									if (top.estClient())appel = 'top.change_class(\"FV\");';
									appel += 'document.location.href=top.clientMakeScriptURL';
								}
								var urlFV = "";
									switch(transfoTypeValeur(type_valeur)) { 
										case "action" :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeur.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
										case "indice" :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurIndice.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
										case "bon souscription" :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurBS.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
										case "obligations" :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurObligations.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
										case "OPCVM" :
											if (top.estClient() && top.estPTN())
												urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurOPCVM.jsp\" ) + \"&plisin=" + plisin + "&devise=" + devise + "&partenaire=PTN\"";
											else
												urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurOPCVM.jsp\" ) + \"&plisin=" + plisin + "&devise=" + devise + "\"";
										break;
										case "warrants" :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurWarrant.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
										case "certificats" :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurCertificat.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
										case "trackers" :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeurTrackers.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
										default :
											urlFV = appel + "( \"/WebBank/scripts/FRT5.2/lesMarches/ficheValeur.jsp\" ) + \"&plisin=" + plisin + "\"";
										break;
									}	
								
								
								res[res.length] = "<b><a href='#' onClick='" + urlFV + ";return false;'>" + jolinom( libelle ) + mnemonique + "</a></b><br><nobr>";
								res[res.length] = pictosSelonType (codePlace + "_" + codeIsin, type_valeur, false, devise, jolinom( libelle ) )
								res[res.length]	= "</NOBR>";
								
								if ( comptantOuSrd != "" )
									res[res.length] = "<br>" + comptantOuSrd + "";

							/*  Graphe Avis consensus  */
							} else if ( (this.tabMisEnForme[i][j]).substr(0, 6) == "graphe") { 
								res[res.length] = (this.tabMisEnForme[ i ][ j ]).split("_")[2];
							/*  Image Style Rating  */
							} else if ( (this.tabMisEnForme[i][j]).substr(0, 5) == "image") { 
								res[res.length] = (this.tabMisEnForme[ i ][ j ]).substr(8);
							/*  String quelconque  */	
							} else 
								res[res.length] = (this.tabMisEnForme[ i ][ j ] == "null") ? " " : this.tabMisEnForme[ i ][ j ];
						} 
					}
				}
				res[res.length] = "</td>";
			} 
			res[res.length] = "</tr>";
		} 
		res[res.length] = "</td></tr>";
	} 
	
	/* Affichage pagination bas */
	if ( nbPages > 1)
		res[res.length] = "<tr class='lignePagination'><td colspan='"
			+ nbTitresVisibles
			+ "'><table width='100%'>"
			+ lienPage.join( "" )
			+ "</table></td></tr>";
	res[res.length] = "</table></td></tr></table>";
	return res.join("");
}

/****************************************************************/
/*			Afficher le tableau filtré		*/
/****************************************************************/
/*in: 	colonneFiltre la colonne correspondante au filtrage 	*/
/*fonctionFiltre la fonction de définition du filtre		*/
/*			à appliquer				*/
/*out: 	affiche le tableau filtré				*/
/****************************************************************/
function filtrer( colonneFiltre, fonctionFiltre ) {
	if( this.tabMisEnForme.tableauACalculPartiel )
		this.tabMisEnForme.calculeTout();

	this.colonneFiltre	= ( isNaN( colonneFiltre ) ?
								this.indexColonne( colonneFiltre ) : colonneFiltre );
	this.fonctionFiltre	= fonctionFiltre;

	// Retour au debut du tableau
	this.indexPage		= 1;
	this.ligneDepart	= 0;

	// Application du filtre et affichage
	this.filtreTableau();
	this.affiche();
}

/****************************************************************/
/*			Afficher le tableau inversé		*/
/****************************************************************/
/*in: 	colonneFiltre la colonne correspondante au filtrage 	*/
/*fonctionFiltre la fonction de définition du filtre		*/
/*			à appliquer				*/
/*out: 	affiche le tableau filtré				*/
/****************************************************************/
function inverser() {
	if( this.tabMisEnForme.tableauACalculPartiel )
		this.tabMisEnForme.calculeTout();
	this.tabMisEnForme.reverse();
	this.affiche();
}

/****************************************************************/
/*			Annuler le Filtrage du tableau		*/
/****************************************************************/
/*in: 								*/
/*out: 	affiche le tableau filtré				*/
/****************************************************************/
function nePasFiltrer(){
	if ( this.tabMisEnForme.length != this.tabDonnees.length )
		this.tabMisEnForme =  this.tabDonnees;
	this.filtrer( null, null );
}

/****************************************************************/
/*				Filtrer le tableau		*/
/****************************************************************/
/*in: 								*/
/*out: 	applique la fonction de filtre sur le tableau		*/
/*			possibilité de plusieurs filtres	*/
/****************************************************************/
function filtreTableau(){	
	/******************  Plusieurs Filtres  *************************/
	var tabFiltre		= [];
	for( var i = 0; i < this.tabMisEnForme.length; i++ )
		if(	this.colonneFiltre == null ||
			this.fonctionFiltre( 
					this.tabMisEnForme[ i ][ this.colonneFiltre ] ) 
			)
			tabFiltre[tabFiltre.length] = this.tabMisEnForme[ i ];
	if ( (tabFiltre == null) || (tabFiltre[0] == null) )
		this.tabMisEnForme	= [];
	else
		this.tabMisEnForme	= tabFiltre;
	if( (this.indexTri != -1) && (tabFiltre != null) && (tabFiltre[0] != null) && (this.afficherLigneCasse != true) )
	{
		this.tabMisEnForme	= this.tri2dim( this.indexTri );
		this.trieTableau( this.indexTri );
	}
	/****************  Fin dePlusieurs Filtres  **********************/
}

/****************************************************************/
/*			Vérification du sens de trie		*/
/****************************************************************/
/*in: 	indexTri l'index de la colonne de tri			*/
/*out: 	détermine le sens du tri croissant/decroissant		*/
/*		lance le tri du tableau (tri2dim)		*/
/****************************************************************/
function trieTableau( indexTri ){
	if( this.tabMisEnForme.tableauACalculPartiel )
		this.tabMisEnForme.calculeTout();
	// Si deja trie sur cette colonne, on trie dans l'autre sens
	if( this.indexTri == indexTri ) {
		this.tabMisEnForme.reverse();
		this.sensTri = ( this.sensTri == "croissant" ) ? 
							"decroissant" : "croissant";
	} else {
		this.tabMisEnForme	= this.tri2dim( indexTri );
		if( this.sensTri == "decroissant" )
			this.tabMisEnForme.reverse();
		this.indexTri		= indexTri;
	}
}

/*========================================================================*/
/*==********************************************************************==*/
/*==      Creation de la zone et du tableau dynamique à afficher	==*/
/*==********************************************************************==*/
/*==  									==*/
/*==		La fonction principale d'affichage et de tri du tableau	==*/
/*==									==*/
/*==********************************************************************==*/
/*========================================================================*/
function tableauDynamiqueTriable(
							titreTableau,
							tabTitre,
							tabDonnees,
							indexTri,
							lignesAAfficher,
							afficherLigneCasse ){
	
	/* Initialisation */
	try {
	 	if( top.tableauDynamiqueTriable_nomDivReferrent == null )
	  	top.tableauDynamiqueTriable_nomDivReferrent = 0;
	 
	 	var nomDivReferrent  = "divTableauDynamiqueTriable_"
	       						+ top.tableauDynamiqueTriable_nomDivReferrent++;
	} catch ( e ) {
		var nomDivReferrent  = "divTableauDynamiqueTriable_df";
	}

	document.write(			"<div id='"
							+ nomDivReferrent
							+ "' name='" 
							+ nomDivReferrent 
							+ "'>__STRTOREPLACE__</div>\n" );

	document.getElementById( nomDivReferrent ).tableauDynamiqueTriable =
	{	
		"divReferrent"		: document.getElementById( nomDivReferrent ),
		"nomDivReferrent"	: nomDivReferrent,
		"titreTableau"		: titreTableau,
		"tabTitre"			: tabTitre,
		"tabDonnees"		: ( ( tabDonnees && tabDonnees.length ) ? tabDonnees : null ),
		"tabMisEnForme"		: ( ( tabDonnees && tabDonnees.length ) ? tabDonnees : null ),
		"lignesAAfficher"	: lignesAAfficher,
		"indexTri"			: indexTri,
		"sensTri"			: "croissant",
		"ligneDepart"		: 0,
		"indexPage"			: 1,
		"colonneFiltre"		: null,
		"fonctionFiltre"	: null,
		"afficheConvertisseur" : false,
		"afficherLigneCasse" : afficherLigneCasse
	}

	var T = document.getElementById( nomDivReferrent ).tableauDynamiqueTriable;
	
	for (var i in T.tabTitre) {
		if (T.tabTitre[i].length == 4)
			T.tabTitre[i][4] = 0;
		if ( (T.tabTitre[i].length == 5) && ( isNaN(T.tabTitre[i][4]) ) ){
			T.tabTitre[i][5] = T.tabTitre[i][4];
			T.tabTitre[i][4] = 0;
		}
	}
	
	if (this.tabDonnees == "erreur") {
		T.tabDonnees = "erreur";
		T.tabMisEnForme = "erreur";
	}
	/* Fin de Initialisation */
	
	/* Methodes */
	/**********************************************************/
	/* Verification de l'affichage des intitulés des colonnes */
	/**********************************************************/
	/* Si au moins 1 intitulé est présent renvoi true	  */
	/* sinon renvoi false					  */
	/**********************************************************/
	T.afficherTitres		= function()
	{
		if( this.afficherTitres.cache != null )
			return this.afficherTitres.cache;
		for( var i in tabTitre )
			if(	tabTitre[ i ][ 0 ] != null && tabTitre[ i ][ 0 ].length )
				return this.afficherTitres.cache = true;
		return this.afficherTitres.cache = false;
	}
	
	/**********************************************************/
	/*  Recherche de l'index de la colonne			  */
	/**********************************************************/
	/*in:  nomColonne l'intitulé de la colonne		  */
	/*out: renvoi l'index de la colonne			  */
	/**********************************************************/
	T.indexColonne		= function( nomColonne )
	{
		for( var i = 0; i < this.tabTitre.length; i++ )
			if( this.tabTitre[ i ][ 0 ] == nomColonne )
				return i;
		
		return null;
	}
	
	/**********************************************************/
	/*	Affichage de la page suivante		 	  */
	/**********************************************************/
	/*in: direction le sens précédente/suivante -> -1/1	  */
	/*out: renvoi la partie du tableau à afficher		  */
	/**********************************************************/
	T.affPageNext = affPageNext;

	/**********************************************************/
	/*	Affichage d'une page précise		 	  */
	/**********************************************************/
	/*in: i le numéro de la page à afficher			  */
	/*out: renvoi la partie du tableau à afficher		  */
	/**********************************************************/
	T.affPage = affPage;
	
	/**********************************************************/
	/*      Affichage du tableau lors d'un tri		  */
	/**********************************************************/
	/*in:  i l'index de la colonne de Tri		 	  */ 
	/*out: renvoi le tableau trié selon la colonne i	  */
	/*	   en réinitialisant le tableau au début 	  */
	/*	   (1ere page et ligne)				  */
	/**********************************************************/
	T.changeTri = changeTri;
	
	/**********************************************************/
	/*          Convertisseur de devises Euros/Francs         */
	/**********************************************************/
	/* Affiche le convertisseur EUR/FRF			  */
	/**********************************************************/
	T.convertisseur = convertisseur;
	
	/**********************************************************/
	/*        Tri d'un tableau a n lignes et n colonnes       */
	/**********************************************************/
	/*in:  this.tabMisEnForme le tableau a trier		  */
	/*	   indexTri l'index de la colonne de tri	  */
	/*out: renvoi le tableau trié selon la colonne demandée	  */
	/**********************************************************/
	T.tri2dim = tri2dim;
	
	/**********************************************************/
	/*	Transformation d'un float en une chaine triable	  */
	/**********************************************************/
	/*in: f le float					  */
	/*out: renvoi une chaine triable			  */
	/**********************************************************/
	T.tri2dim.floatVersChaineDeCaracteresTriable = floatVersChaineDeCaracteresTriable;
	
	/* 	Definition d'un separateur dans une chaine 	 */
	T.tri2dim.separateur = "#$^*µ²";
	
	/**********************************************************/
	/*				Affichage du tableau	  */
	/**********************************************************/
	/*in: 							  */
	/*out: res le tableau à afficher sous forme html	  */
	/**********************************************************/
	T.affTabMulti = affTabMulti;
	
	T.inverser = inverser;
	/****************************************************************/
	/*     		 Filtre sur le tableau		  	     	*/
	/****************************************************************/
	/*in:  colonneFiltre la colonne du tableau sur laquelle filtrer	*/
	/*	   fonctionFiltre la fonction qui détermine le filtre	*/
	/*out: affiche la partie du tableau filtrée			*/
	/****************************************************************/
	T.filtrer = filtrer;
	T.nePasFiltrer = nePasFiltrer;
	T.filtreTableau = filtreTableau;

	/****************************************************************/
	/*     		 Tri du tableau				  	*/
	/****************************************************************/
	/*in:  indexTri l'index de la colonne de tri			*/
	/*out: détermine et lance le tri du tableau dans le bon sens	*/
	/****************************************************************/
	T.trieTableau		= trieTableau;
	
	/****************************************************************/
	/*     		Affichage du tableau		  	     	*/
	/****************************************************************/
	/*in:  								*/
	/*out: affiche le tableau dans sa zone dynamique		*/
	/****************************************************************/
	T.affiche			= function()
	{
		// Si le navigateur est IE sur MAC
		if ( 
			(navigator.appName == "Microsoft Internet Explorer") 
			&& (navigator.platform == "MacPPC")
		)
		{
			if( this.divReferrent_initialOuterHTML == null )
				this.divReferrent_initialOuterHTML = this.divReferrent.outerHTML;
			
			this.divReferrent.outerHTML =
				this.divReferrent_initialOuterHTML
					.replace(
						 "__STRTOREPLACE__"
						 , this.affTabMulti() 
								+ "<table><tr><td> </td></tr></table>" 
					);
			
			this.divReferrent = document.getElementById( this.nomDivReferrent);
			this.divReferrent.tableauDynamiqueTriable = this;
		}
		else // Pour les autres navigateurs
		{
			var s = this.affTabMulti();
			this.divReferrent.innerHTML = s;
		}
		redimPage();
		return null;
	}
	
	/****************************************************************/
	/*     		 Calcul de la ligne de casse		  	*/
	/****************************************************************/
	/*in: 								*/
	/*out: gere l'insertion de la ligne de casse dans le tableau	*/
	/****************************************************************/
	T.calculerLigneCasse	= function(){
		var valeurCasseEnCours = null;
		var tmp = "";
		for( var i = 0; i < this.tabMisEnForme.length; i++ ) {
			//alert(this.indexTri );
			//alert( this.tabMisEnForme[ i ][ 0 ]);
			if ( this.tabMisEnForme[ i ][ this.indexTri ] && this.tabMisEnForme[ i ][ this.indexTri ].substr(0, 8) == "__CVAL__" )
				tmp = (this.tabMisEnForme[ i ][ this.indexTri ])
						.split(";")[3]
					+ "<br>"
					+ ((
						(this.tabMisEnForme[ i ][ this.indexTri ])
							.split(";")[0]
					   ).substr(8)
					  ).split("_")[1]
					+ " - "
					+ (this.tabMisEnForme[ i ][ this.indexTri ])
						.split(";")[1]
					+ " - "
					+ ((
						(this.tabMisEnForme[ i ][ this.indexTri ])
							.split(";")[0]
						).substr(8)
					  ).split("_")[0];
			else if ( (this.tabMisEnForme[ i ][ this.indexTri ]).substr(0, 5) == "image") 
				tmp = (this.tabMisEnForme[ i ][ this.indexTri ]).substr(8);
			else 
				tmp = this.tabMisEnForme[ i ][ this.indexTri ];
			if( tmp != valeurCasseEnCours ) {
				valeurCasseEnCours = tmp;
				this.tabMisEnForme[ i ].ligneDeCasse = valeurCasseEnCours;
			}
		}
	}
	
	/* Fin des Methodes */
	
	if ( (tabDonnees != null) && (T.tabDonnees != null) ) {
		if( T.colonneFiltre != -1 && T.colonneFiltre != null )
			T.filtreTableau();
		if( (T.indexTri != -1) && (afficherLigneCasse != true) ) {
			T.indexTri		= indexTri;
			T.indexTri = -1;
			T.trieTableau(indexTri);
		}
		
		if( afficherLigneCasse == "inverse" ) {
			T.tabMisEnForme	= T.tri2dim( indexTri );
			//T.tabMisEnForme.reverse();
			//T.calculerLigneCasse();
		} else if( afficherLigneCasse == true ) {
			T.calculerLigneCasse();
		}
			
		tableauDynamiqueTriable.instances[length] = T;
	} 
	T.affiche();
	return T;
}

/* Variables globales */

tableauDynamiqueTriable.increment			= 0;
tableauDynamiqueTriable.instances			= [];
tableauDynamiqueTriable.decompressionTableau = function ( tab )
{	
	for( var i = 0; i < tab.length; i++ )
		for( var j = 0; tab[ i ].length != null && j < tab[ i ].length; j++ )
			if( tab[ i ][ j ].substr( 0, tableauDynamiqueTriable.decompressionTableau.chaineDebut.length ) == tableauDynamiqueTriable.decompressionTableau.chaineDebut )
				tab[ i ][ j ] =
					tab[ parseInt( tab[ i ][ j ].substr( tableauDynamiqueTriable.decompressionTableau.chaineDebut.length ) ) ][ j ];					

}

tableauDynamiqueTriable.decompressionLigne = function ( tab, numeroLigne )
{
	var i = numeroLigne;
	for( var j = 0; tab[ i ].length != null && j < tab[ i ].length; j++ )
		if( tab[ i ][ j ].substr( 0, tableauDynamiqueTriable.decompressionTableau.chaineDebut.length ) == tableauDynamiqueTriable.decompressionTableau.chaineDebut )
			tab[ i ][ j ] =
				tab[ parseInt( tab[ i ][ j ].substr( tableauDynamiqueTriable.decompressionTableau.chaineDebut.length ) ) ][ j ];
}

tableauDynamiqueTriable
	.decompressionTableau
		.chaineDebut = "__CACHETAB__LIGNE__";

function tableauDynamiqueTriable_nbLignesMax( nbLignesMax ){
 if( this.tableauDynamiqueTriable_dernierLigneAllouee == null )
 	this.tableauDynamiqueTriable_dernierLigneAllouee = -1;
 
 while( this.tableauDynamiqueTriable_dernierLigneAllouee < nbLignesMax )
 	this[ "$" + ++this.tableauDynamiqueTriable_dernierLigneAllouee ] =
 		tableauDynamiqueTriable
     	.decompressionTableau
     	.chaineDebut
     	+ this.tableauDynamiqueTriable_dernierLigneAllouee;
}	
 
tableauDynamiqueTriable_nbLignesMax( 500 );

convertisseurOn = false;

tableauDynamiqueTriable.tableauGenereDynamiquement =
function( nombreLignes, fonctionCalculLigne ){
	var res = [];
	res.length = nombreLignes;
	
	res.tableauACalculPartiel	= true;
	res.calculeLigne		= fonctionCalculLigne;
	res.calculeLignes =
	function( ligneDebut, ligneFin ){
		for( var i = ligneDebut; i < ligneFin && i < this.length; i++ )
			this[ i ] = this.calculeLigne( i );
	}
	res.calculeTout =
	function(){
		this.tableauACalculPartiel = false;
		for( var i = 0; i < this.length; i++ )
			this[ i ] = this.calculeLigne( i );
	}
	return res;
}
/****************************************************************/
/*    Modifie l'affichage des valeurs pourcents en rouge 	*/
/*	ou en vert selon qu'elles soient positives ou négatives	*/
/****************************************************************/
/*in:  valeur initiale						*/
/*out: valeur avec le % en rouge ou en vert			*/
/****************************************************************/
function formatPourcent( n ){	
	if (n == null || isNaN( n ) || (n == "" && n != "0")){
		return "&nbsp;";
	}
	
	var stringn = "" + afficheNombre(n,2);
	
	if ( stringn.substr(0,1) == "-" )
		var string0n = "-" + ( "0000000000" ).substr( 0, 10 - stringn.length + 1 )
						+ stringn.substr(1,stringn.length);    
	else
		var string0n = ( "0000000000" ).substr( 0, 10 - stringn.length )
						+ stringn;

	if( n < 0 ) return	"<\!--" +
						string0n + "--><nobr><span style='color:red;text-align:right;'>" +
						stringn +
						"%</span></nobr>";
	if( n > 0 ) return	"<\!--" +
						string0n + "--><nobr><span style='color:green;text-align:right;'>+" +
						stringn +
						"%</span></nobr>";
	if( n == 0 ) return	"<\!--" +
						string0n + "--><nobr><span style='color:black;text-align:right;'>" +
						stringn +
						"%</span></nobr>";
	return	"<\!--" +
			string0n + "--><nobr><span style='text-align:right;>" +
			stringn +
			"</span></nobr>";
} 

/************************************************************************/
/*    Transforme l'affichage d'une date de type AAAAMMJJ 		*/
/*		en JJ/MM/AA ou JJ/MM selon le paramètre			*/
/************************************************************************/
/*in:  date à modifier, type de date en entrée, type de date attendue	*/
/*out: date renvoyée selon le format demandé				*/
/************************************************************************/
function transformeDate(format_date, entree, sortie){
	if ( format_date == null || format_date == "null" || format_date == "" || format_date == "        " )
		return ("&nbsp;");
	var d = new Array();
	if(entree == "aaaammjj"){
		if (sortie == "jm") return ( format_date.substr(6,2) + "/" + format_date.substr(4,2));
		if (sortie == "jma") return (format_date.substr(6,2) + "/" + format_date.substr(4,2) + "/" + format_date.substr(0,4));
	}
	if(entree == "jj/mm/aaaa"){
		for(var i=0; i<8; i++)
			d[i]= format_date.split("/")[i];
		if (sortie == "jm") return ( d[0] + "/" + d[1] );
		if (sortie == "jma") return ( d[0] + "/" + d[1] + "/" + d[2].substr(2,2));
	}
	//format pourri renvoyer par patio pour une valeur payée au SRD
	if(entree == "mm/aa/aaaa"){
		return( format_date.split( "/" )[ 0 ] + "/20" + format_date.split( "/" )[ 1 ] );
	}
	if(entree == "jj.mm.aa"){
		for(var i=0; i<8; i++)
			d[i]= format_date.split(".")[i];
		if (sortie == "jm") return ( d[0] + "/" + d[1] );
		if (sortie == "jma") return ( d[0] + "/" + d[1] + "/" + d[2]);
	}
	if (entree == "yyyy-mm-dd hh:mm"){
		var d = format_date.split(" ")[0];
		var dat = d.split("-")[2] + "/" + d.split("-")[1] + "/" + d.split("-")[0];
		if (sortie == "jma") return (d.split("-")[2] + "/" + d.split("-")[1] + "/" + d.split("-")[0]);
		if (sortie == "jm") return (d.split("-")[2] + "/" + d.split("-")[1]);
	}
}

function jolinom( s ){
	var res = "";
	t = s.split( " " );
	for( var i in t ){
		res +=
		t[ i ].substr( 0,1 ).toUpperCase() +
		( "" + t[ i ].substr( 1,t[i].length ) ).toLowerCase() +
		" "
	}
	return res;
}

function afficheNFois(t, n){
	var esp = t;  
	for (var i=0; i<n; i++)
		esp += t;
	return esp;
}

function popupAide(nom){
	switch (nom){
		case "aide_bourse" :
			return window.open("http://www.fortuneo.fr/fr/aide/sommaire-aide.jsp" );
		break;
		case "aide_resume" :
			return window.open("http://www.fortuneo.fr/fr/aide/sommaire-aide.jsp" );
		break;
		case "aide_AT" :
			return window.open("http://www.fortuneo.fr/fr/aide/sommaire-aide.jsp" );
		break;
		case "aide_consensus" :
			return window.open("http://www.fortuneo.fr/fr/aide/sommaire-aide.jsp" );
		break;
		case "aide_sicav" :
			return window.open("http://www.fortuneo.fr/fr/aide/sommaire-aide.jsp");
		break;
		case "calendrier" :
			return window.open("/home/aide/aide_rub_calendrier.html","", "menubar=no, toolbar=no, scrollbars=yes, resizable= no, height=630, width=687, left=100, top=10");
		break;
		case "calendrier_srd" :
			return window.open("/home/aide/aide_rub_calendrier.html#calendrier_srd", "", "menubar=no, toolbar=no, scrollbars=yes, resizable= no, height=630, width=687, left=100, top=30 ");
		break;
		case "methodologie" :
			return window.open("/home/produits_services/services/help_methode.html", "", "menubar=no, toolbar=no, scrollbars=yes, resizable= yes, height=560, width=646, left=100, top=30" );
		break;
		case "glossaire_fonds" :
			return window.open("/home/sicav-fcp/glossaire_fonds.html", "", "menubar=no, toolbar=no, scrollbars=yes, resizable= yes, height=560, width=680, left=100, top=30" );
		break;
	}
}