// ************************************************************************************************************
// CE FICHIER EST LA PROPRIETE MATERIELLE ET INTELLECTUELLE DE  OLIVIER GOLIBRODSKI
// IL EST EXPLOITE PAR LA SOCIETE ATOUT REVE WWW.ATOUTREVE.FR
// IL NE PEUT ETRE COPIE NI DIFFUSE NI RE-UTILISE DE QUELQUE MANIERE QUE CE SOIT
// SI VOUS AVEZ OUVERT OU TELECHARGE CE FICHER, QUE CE SOIT VOLONTAIREMENT OU INVOLONTAIREMENT, VOUS
// DEVEZ DETRUIRE IMMEDIATEMENT LA COPIE QUE VOUS AVEZ EN LOCAL, SOUS PEINES DES SANCTIONS PREVUES PAR LA LOI
// COPYRIGHT 2007-2009 Olivier Golibrodski / TOUS DROITS RESERVES
// CE FICHIER EST LEGALEMENT DEPOSE AUPRES D'UN HUISSIER
// ************************************************************************************************************
//var version_en_cours="V1.0.080218.rev0";
var version_en_cours="V1.1.090725.rev0";

// ************************************************************************************************************
// LE CONTENU DE CE FICHIER EST COMMUN A TOUS LES LECTEURS ET NE PEUT ETRE MODIFIE SANS TESTS PREALABLES
// CHAQUE LECTEUR EST PERSONNALISE UNIQUEMENT AVEC SON FICHIER INDEX ET LE FICHIER TXT CORRESPONDANT
// ************************************************************************************************************

// A FAIRE pour les versions ultérieures
// ***************************************************
// Lien vers l'artiste, ou à défaut une //alert box
// Lien vers acheter en ligne
// Gérer les infos données sur les titres
// Lien d'aide pour le chois d'affichage
// Ajouter liste non ordonnée
// Extrait au-dessous du titre intégral
// EVOLUTIONS A FAIRE DANS fcDisplaySongPage
// Eliminer l'argument i_display_info car tout sera gere via le tableau en argument suivant
// qui permettra aussi d'afficher les extraits mp3 et versions complètes mp3 grace à une variable
// située dan sle fichier texte en fonction du site (pour avoir le bon watermark), plus l'affichage
// pour acheter


// Inscrire chacun de ces styles dans la combo de sélection des genres
// L'indice 2 indique que le genre est autorisé (valeur à 1) : à régler pour le site/compilation en cours
var style_na= new Array("New age / New age ambiant", "style_na", 1);
var style_rk= new Array("Rock", "style_rk", 1);
var style_narel=new Array("New age ambiant / relaxation", "style_narel", 1);
var style_rel=new Array("Relaxation / d&eacute;tente", "style_rel", 1);
var style_relp=new Array("Relaxation profonde", "style_relp", 1);
var style_tab= new Array (style_na, style_narel, style_rel,  style_relp, 1);
var watermark="none"; // "Atout REVE" , "olivier-g"
var type_LP=new Array ("Long Play", "LP");
var type_MP=new Array ("Medium Play", "MP");
var type_SP=new Array ("Short Play", "SP");
var type_LO=new Array ("Pour mise en boucle", "LO");	// Morceau court pour mise en boucle
// Variables concernant les styles musicaux
var version_inst="Instrumental";
var version_text="Avec textes chant&eacute;s";
var instrument_synthe="Musique sur synth&eacute;tiseurs";

// Variables pré-définies pour sites Olivier
//var title_infos_to_display= new Array (1,0,0,1,0,0,1,1,0,0,1);

// *********************************************************************************************************

function fnSongClass(i_ref, i_file_prefix, i_titre, i_duree, i_autcomp, i_type) 
{
	// Classe représentant une musique	
	// -------------------------------
	
	this.reference=i_ref;					// Référence unique : [Code Type][Code artiste][Numéro]
	this.file_prefix=i_file_prefix;			// Prefix pour désigner les fichiers audio et ID de la classe
	this.titre=i_titre;						// Titre original
	this.duree=i_duree;						// Durée exprimée en secondes
	this.autcomp= i_autcomp;				// Code artiste Auteur compositeur
	this.type=i_type;						// Type : Long Play, Loop, Virgule ou effet
	
	this.version='';						// Version Instrumentale / avec chants
	this.instrument='';						// Musique sur synthétiseurs, instruments acoustiques
	this.style='';							// Code genre (Bien que ce soit 1 array, 1 seul genre possible actuellement)
	this.annee="";							// Année du copyright initial
	this.description_pro="";				// Description de la musique pour une écriture dans un cadre pro
	this.description_ama="";				// Description de la musique pour une écriture dans un cadre amateur ou privé
	this.nouveaute='';						// Nouveauté: une chaine non nulle, sinon chaine nulle
	
	this.top=0;								// Ordre si la musique figure dans le top X des écoutes (0:x)
	this.ordre=0;							// Classement d'apparition dans sa catégorie (LP, MP, SP)
	this.song_allowed=1;					// Paramètre à régler dans la fenêtre cadre mère
	
	// Gestion des fichiers audio disponibles en ligne pour le titre en cours
	this.sound_file= new Array(0,0,0,0,0,0);// (Indice/Fichier) : 
											// 0:Streaming full				
											// 1:Streaming watermark Atout REVE 
											// 2:Streaming watermark Olivier-g 
											// 3:MP3 full					
											// 4:MP3 watermark Atout REVE, 
											// 5:MP3 watermark olivier-g et/ou version mono moins bonne qualité
											// IMPORTANT :Code valeur à chaque indice: 0-> non dispo, 1->dispo mono, 2->dispo stéréo
	this.sound_loc= new Array();			// Pour chaque indice (5 max.) adresse complète du REPERTOIRE comportant le fichier
											// (mais pas le fichier lui-même car un répertoire peut comporter plusieurs versions
											
	// Gestion de la vente en ligne de titre à l'unité pour USAGE PRIVE
	this.vente_usage_prive_format='mp3/stereo/192kbps';															
	this.vente_usage_prive_mode_expedition='Envoi mail ou telechargement';															
	this.vente_usage_prive_prix_unitaire_ttc=0.79;															
	
}

// *********************************************************************************************************

function fnArtistClass(i_prenom, i_nom, i_pseudo, i_site) 
{
	this.prenom=i_prenom;
	this.nom=i_nom;
	this.pseudo=i_pseudo;
	this.site=i_site;
}


// *********************************************************************************************************

function fcDebugWrite (i_text)
{
	// Traces pour Debug interne uniquement
	var DEBUG=0;
	if (DEBUG==1)
		alert(i_text);
}



function fcOpenHelpWin (i_helppage)
{
	// Ouvre la fenêtre d'aide pour utiliser le lecteur streaming
	// Cette fonction devra évoluer quand on proposera plusieurs types de lecteurs streaming
	var s_func;
	s_func= true;
	// ATTENTION : le nom de la fenêtre est codé en dur...dur!dur!
	var f_handler='';
	if (f_handler !=null)
	{
		f_handler =window.open("http://www.atoutreve.fr/music_player/streaming/aide.htm","aide","toolbar=yes,menubar=yes,width=400,height=400");
		//a.document.close();
		f_handler.focus();		
	}
	return s_func;
}

function fnWriteFootpageText ()
{
	// Ecrit le texte personnalisé sur le cadre du bas.
	// Cette fonction devra évoluer quand on proposera plusieurs types de lecteurs streaming
	var destination_doc= parent.frames["pied"].document;
	destination_doc.write(parent.p_footpage_txt); 
}


function fnCheckParentParameters()
{
	// 25/07/09 - On inhibe pour le moment
	//if (version_en_cours != parent.available_version)
	//alert("Erreur interne de version; contacter webmaster@atoutreve.fr \n\n" + version_en_cours +'\n' +  parent.available_version);
}


function fcWriteSelector (i_mode, i_attribut)
{
	// Cette fontion écrit dans un sélecteur les titres qui correspondent à certains critères choisis
	// et ransmis notamment par i_mode.
	// i_mode =0 : écrire tous les titres
	// i_mode =1 : écrire les titres qui correspondent à un genre, genre défini dans i_attribut
	// i_mode =2 : écrire les titres selon LP, MP, SP
	var s_func;
	s_func= false;
	var content_towrite='';
	var len=parent.tab_songs.length;
	var song_idx=-1; // index du tableau de la musique sélectionnée
	var i;
	var nb_found=0;
	var str_1="<h2>"+parent.p_song_list_txt+"</h2><br>";

	content_towrite=' <select name="select" size="7" class="formbox" onChange="fcDisplaySongPage(1, value, parent.p_streaming_start_auto_man, 1, parent.p_title_infos_to_display, \'dew2\')" > \n'; 

	
	if (i_mode == 0)
	{
	
		// ECRITURE DE TOUS LES TITRES
		var arrow="--->";
		var espace='.............';
		var debut_phrase="=> Musiques de style ";
		var str_2="Titres disponibles tous genres confondus<br>";
	   
	   var style_tab_len=style_tab.length;
	   var j=0;

		for (j=0; j<style_tab_len  ; j++)
		{
			content_towrite = content_towrite + '<option value="notasong">'+debut_phrase+style_tab[j][0]+'</option> \n';
			for (i=0; i<len ; i++)
			{
				if (parent.tab_songs[i].style[1] == style_tab[j][1])
				{
					content_towrite = content_towrite + '<option value="'+parent.tab_songs[i].reference+'">'+espace+parent.tab_songs[i].titre+'</option> \n' ;
					nb_found++;
				}
			}
		}
	   
		
		content_towrite+= '</select> \n' ;
		s_func=true;
		
	}
	else if (i_mode == 1)
	{
		// Classement par genre : institutionnel, new age, relaxation, etc....
		var espace='.............';
		var str_2="Titres disponibles correspondant au genre sélectionné<br>";
		for (i=0; i<len && song_idx==-1 ; i++)
		{
			if (parent.tab_songs[i].style[1] == i_attribut)
			{
				content_towrite = content_towrite + '<option value="'+parent.tab_songs[i].reference+'">'+espace+parent.tab_songs[i].titre+' (r&eacute;f. '+parent.tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 2)
	{
		// Classement par type : LP, MP, SP
		var espace='.............';
		var str_2="correspondant au type de création (durée, boucles)<br>";
		for (i=0; i<len && song_idx==-1 ; i++)
		{
			if (parent.tab_songs[i].type[1] == i_attribut)
			{
				content_towrite = content_towrite + '<option value="'+parent.tab_songs[i].reference+'">'+espace+parent.tab_songs[i].titre+' (r&eacute;f. '+parent.tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 3)
	{
		// Classement par référence unique
		var espace='.............';
		var str_2="correspondant à une référence entrée<br>";
		for (i=0; i<len ; i++)
		{
			if (parent.tab_songs[i].reference == i_attribut)
			{
				content_towrite = content_towrite + '<option value="'+parent.tab_songs[i].reference+'">'+espace+parent.tab_songs[i].titre+' (r&eacute;f. '+parent.tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 4)
	{
		// Classement par NOUVEAUTES
		var espace='.............';
		var str_2="correspondant aux nouveautés<br>";
		for (i=0; i<len ; i++)
		{
			if (parent.tab_songs[i].nouveaute != '')
			{
				content_towrite = content_towrite + '<option value="'+parent.tab_songs[i].reference+'">'+espace+parent.tab_songs[i].titre+' (r&eacute;f. '+parent.tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 5)
	{
		// Classement des titres les plus écoutés
		var espace='.............';
		var str_2="correspondant aux titres les plus écoutés<br>";
		for (i=0; i<len ; i++)
		{
			if (parent.tab_songs[i].top != 0)
			{
				content_towrite = content_towrite + '<option value="'+parent.tab_songs[i].reference+'">'+espace+parent.tab_songs[i].titre+' (r&eacute;f. '+parent.tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	
	//fnResetSongDocument();
	var destination_doc= parent.frames["choixtitres"].document;
	destination_doc.close();
	destination_doc.open();
	destination_doc.write(" "); 
	// FIN DES SELECTIONS; Si content_towrite contient le code pour créer la combo avec les bons titres,
	// nous devons au préalable concevoir la page web avec lecode html qui va bien.
	
	
	if (s_func == true)
	{
		fnWriteHTMLCode(destination_doc, "header");
		destination_doc.writeln(str_1+str_2);
		destination_doc.writeln(content_towrite);
		destination_doc.writeln("<br>Nombre de musiques correspondant au choix de genre:"+nb_found);
		
		fnWriteHTMLCode(destination_doc, "eohtml");		
	}
	return s_func;
}


function fnResetSongDocument()
{
	// Simple fonction qui se borne à recharger le document initial dans la zone d'écoute
	var destination_doc=parent.frames["corps"].document;
	// Une superbe astuce découverte en 2007 pour effacer le contenu courant avant de le remplacer
	// En effet, comme un changement de toute façon a lieu et qu'on n'est pas sûr du résultat
	// (mauvais choix) on préfère effacer la page courante ici.
	// Document central qui comporte les titres	
	destination_doc.close();
	destination_doc.open();
	destination_doc.write(" "); 
}


function fcDisplaySongPage(i_frame_doc, i_song_id, i_start_auto_man, i_add_html, i_infos, i_player)
{
	// Affiche le lecteur STREAMING avec INFORMATIONS pour une référence donnée
	// Version pour lecteur intégral qui utilise le fichier des initialisations en .txt
	// -----------------------------------------------------------------------------------
	// i_frame_doc:	Document de destination 
	// 				0: On utilise le document actif 'this'
	// 				1: On utilise le cadre connu du lecteur "corps" 
	// i_song_id:	Référence de la musique
	// i_start_auto_man:	Démarrage streaming manuel ou auto à l'affichage
	// i_add_html:	Ecrit l'en-tête html et la fin du body
	//				0:Ne rien faire
	//				1:Ecrire header et body
	// i_infos:	TABLEAU d'entiers Types d'informations à afficher 
	//				Indice 0: Titre (0: pas d'affichage, ou 1 pour affichage)
	//				Indice 1: Référence
	//				Indice 2: Type
	//				Indice 3: Genre
	//				Indice 4: Version
	//				Indice 5: Instruments
	//				Indice 6: Durée 
	//				Indice 7: Année de dépôt
	//				Indice 8: Artiste
	//				Indice 9: Commentaire professionnel
	//				Indice10: Commentaire à caractère non commercial
	//				... acheter, mp3 perso ou mp3 pro avec ou sans watermark
	// i_player: Précise le TYPE de player
	//				"dew":	DEW PLAYER sinon Audio stream plus				
	

	//alert ("fcDisplaySongPage sarting --->");			
	// Affiche l'ID de la musique désignée par la combo du cadre du dessus (en-tête)
	// La page est créée à la volée (le script créé le lecteur)
	// Valeurs spéciales : -2 le choix de la combo ne correspond pas à une musique
	var s_func;
	s_func= true;
	
	var current_window=this;
	var destination_doc=this.document;
	if (i_frame_doc == 1)
	{
		current_window=parent;
		destination_doc=current_window.frames["corps"].document;
		fnResetSongDocument();
	}
	var info_to_display=new Array(0,0,0,0,0,0,0,0,0,0,0);
	if (i_infos == null || i_infos.length <1)
		i_infos=info_to_display;
	
	// Il faut récuprérer la classe qui contient cet id
	var len=current_window.tab_songs.length;
	var song_idx=-1; // index du tableau de la musique sélectionnée
	var i;
	
	for (i=0; i<len && song_idx==-1 ; i++)
	{
		if (i_song_id == current_window.tab_songs[i].reference)
			song_idx=i;
	}
	
	
	if (song_idx != -1)
	{
		// Répertoire qui contient les fichiers 
		// A PREVOIR EVOLUTION_070817A : d'autres répertoires pour d'autre stypes de lecteurs
		var streaming_ctrl_dir_choix1="streaming_v1"
		var streaming_ctrl_curdir=streaming_ctrl_dir_choix1;
		var help_page = streaming_ctrl_curdir +"/aide.htm";
		var page_contents='';
		
		var musique_courante=current_window.tab_songs[song_idx];
		
		// On conçoit la page et l'appel au lecteur streaming 
		// -----------------------------------------
		// A PREVOIR EVOLUTION_070817A: ici le lecteur est toujours le même, 
		// on peut penser dans une autre version créer d'autres controleur streaming selon des options à offrir...
		fnWriteHTMLCode(destination_doc, "header");
		//
		// DEBUT DONNEES
		// Conversion des secondes en minutes et secondes hfota7 364
		var mins =  parseInt (musique_courante.duree/60);
		var secs = Math.round ((musique_courante.duree/60 - mins)*60);
		
		if (i_infos.length>0)
		{
			if(i_frame_doc ==1)
				page_contents+='<h2>3. Titre en cours :</h2> \n';
			page_contents+='<table width="600" border="0" align="center" cellspacing="0"> \n';
			page_contents+='<tr align="center" valign="top"> \n';
			page_contents+='	<td width="100"  class="smallbody" align="right">\n';
			// Titres ici :
			if (i_infos[0] == 1)
				page_contents+='Titre:<br>\n';
			if (i_infos[1] == 1)
				page_contents+='R&eacute;f&eacute;rence:<br><br>\n';
			if (i_infos[2] == 1)
				page_contents+='Type:<br>\n';
			if (i_infos[3] == 1)
				page_contents+='Genre:<br><br>\n';
			if (i_infos[4] == 1)
				page_contents+='Version:<br>\n';
			if (i_infos[5] == 1)
				page_contents+='Instruments:<br>\n';
			if (i_infos[6] == 1)
				page_contents+='Dur&eacute;e:<br>\n';
			if (i_infos[7] == 1)
				page_contents+='Ann&eacute;e:<br>\n';
			if (i_infos[8] == 1)
				page_contents+='Artiste:<br>\n';
			if (i_infos[9] == 1)
				page_contents+='Description:<br>\n';
			if (i_infos[10] == 1)
				page_contents+='Commentaire:<br>\n';
			page_contents+='		</td>\n';
			page_contents+='<td width="260"  class="smallbody" align="left">\n';
			// Contenus ici :
			if (i_infos[0] == 1)
				page_contents+='<b>'+musique_courante.titre+'</b><br>\n';
			if (i_infos[1] == 1)
				page_contents+='<b>'+musique_courante.reference+'</b><br><br>\n';
			if (i_infos[2] == 1)
				page_contents+=musique_courante.type[0]+'<br>\n';
			if (i_infos[3] == 1)
				page_contents+=musique_courante.style[0]+'<br><br>\n';
			if (i_infos[4] == 1)
				page_contents+=musique_courante.version+'<br>\n';
			if (i_infos[5] == 1)
				page_contents+=musique_courante.instrument+'<br>\n';
			if (i_infos[6] == 1)
				page_contents+=mins+' min. '+secs+' sec.<br>\n';
			if (i_infos[7] == 1)
				page_contents+='(c)'+musique_courante.annee+'<br>\n';
			if (i_infos[8] == 1)
				page_contents+=musique_courante.autcomp.pseudo+'<br>\n';
			if (i_infos[9] == 1)
				page_contents+=musique_courante.description_pro+'<br>\n';
			if (i_infos[10] == 1)
				page_contents+=musique_courante.description_ama+'<br>\n';
			page_contents+='	</td>\n';
			page_contents+='	<td width="240"  >\n';
			// Streaming Bar ici:
			destination_doc.writeln(page_contents); // D'abord on écrit le buffer des lignes en cours
		}
		
		// 20080710 : Ajout 
		// Soit le DEW PLAYER, soit Audio Stream plus par défaut si rien n'est mis (pour rester compatible avec l'exista,t)
		if (i_player == "dew")
		{
		fcWriteDewplayerBarFromFile(musique_courante.sound_loc[3]+musique_courante.file_prefix+".mp3");
		page_contents='<br>Format d\'&eacute;coute MP3 mono 64kbps jou&eacute; en streaming\n';
		}
		if (i_player == "dew2")
		{	
		page_contents=fcWriteDewplayerBarFromFile2(musique_courante.sound_loc[3]+musique_courante.file_prefix+".mp3");
		page_contents+='<br>Format d\'&eacute;coute MP3 mono 64kbps jou&eacute; en streaming\n';

		}
		//page_contents+='<br><br>Acheter en ligne\n';
		// Fin
		if (i_infos.length>0)
		{
				
			page_contents+='  </td>\n';
			page_contents+='  </tr>\n';
			page_contents+='</table>\n';
		}
		destination_doc.writeln(page_contents);
		
		// Ajouter notification de visite sur cette page;
		// .......................................................
		//destination_doc.write("<img src=\"/cgi-bin/pg-stats-atoutreve.pl?referer=");
		//destination_doc.write(escape(document.referrer));
		//destination_doc.write("\" width=1 height=1>");
		
		fnWriteHTMLCode(destination_doc, "eohtml");
	}
	else
	{
		s_func=false;
		alert('Ce choix ne correspond pas à un titre; i_song_id= '+i_song_id);
	}
	return s_func;
}

function fcWriteStreamingBar (i_dest_doc, i_song_id, i_start_auto_man)
{
	// Ecrit simplement le code html du lecteur pour la musique désirée
	// La page appelant a la responsabilité de faire le code html complet
	// Ici c'est juste le lecteur
	// i_dest_doc : document dans lequel on va intégrer les lignes
	// i_song_id : identifiant de la musique
	var s_func;
	s_func= true;
	var audofile_path   = i_song_id.sound_loc[0] +  i_song_id.file_prefix + 's.swf';
	var streamfile_path = i_song_id.sound_loc[0]+   i_song_id.file_prefix + i_start_auto_man +'.swf';
	
	
	
	var page_contents = '\n\n' + 
	'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,0,0" width=250 height=35 align="absmiddle">' +
	'<param name=movie value="' + streamfile_path + '">' +
	'<param name=quality value=best>' +
	'<param name=wmode value=transparent>' +
	'<param name=bgcolor value=#FFFFFF>' +
	'<param name=loop value=true>' +
	'<embed src="'+streamfile_path+'" quality=best wmode=transparent bgcolor=#FFFFFF loop=true width=250 height=35 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" align="absmiddle"> ' +
	'</embed>\n ' +
	'</object>\n'
	i_dest_doc.writeln(page_contents);

	//alert(audofile_path+'  '+streamfile_path);
}


function fnWriteHTMLCode(i_doc, i_subjecttowrite)
{
	// Cette fonction écrit du code basique dans le document cible
	var page_contents='';
	if (i_subjecttowrite == "header")
	{
		page_contents = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' + 
		'<html>\n' +
		'<head>\n' +
		'<title>Musique libre de droit</title>\n' +
		'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n' +
		'<link href="'+parent.p_fic_feuille_de_style+'"  rel="stylesheet" type="text/css">\n' +
		'<script language="JavaScript"  src="fonctions.js"></script>\n' + 
		'</head>\n' +
		'<body>\n' ;
		i_doc.writeln(page_contents);
	}
	else if (i_subjecttowrite == "eohtml")
	{
		page_contents ='</body>\n';
		page_contents+='</html>\n';
		i_doc.writeln(page_contents);
	}
}	






function fnWritePaymentForPersonalUse(i_song_id)
{
	// Fonction actuellement dédiée au site olivier-g.com 
	// Propose aussi le titre en téléchargement gratuit
	current_window = this.window;
	// Il faut récuprérer la classe qui contient cet id
	var len=current_window.tab_songs.length;
	var song_idx=-1; // index du tableau de la musique sélectionnée
	var i;
	
	for (i=0; i<len && song_idx==-1 ; i++)
	{
		if (i_song_id == current_window.tab_songs[i].reference)
		{
			song_idx=i;
			var titre_courant=current_window.tab_songs[i];



	var module_text='';


	module_text+=' <table width="620" border="0" align="left" cellpadding="0" cellspacing="0"> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td> <h6><img src="../../resources/common/graphic/b-color3.jpg" width="10" height="10">  \n';
	module_text+='                             3 -T&eacute;l&eacute;chargement mp3 imm&eacute;diat  \n';
	module_text+='                             et gratuit(*) :<span class="smallBody"><strong> <em></em></strong></span></h6></td> \n';
	module_text+='                         <td width="170"><span class="smallBody"><strong><em></em><a href="'+titre_courant.sound_loc[5]+'" target="_blank">  \n';
	module_text+='                           </a> <img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle">  \n';
	module_text+='                           <em><a href="'+titre_courant.sound_loc[5]+'" target="_blank"><img src="../../resources/common/graphic/p-boutique-gratuit.gif" alt="Cliquer ici pour obtenir le fichier MP3" border="0" align="absmiddle"></a></em>  \n';
	module_text+='                           <a href="'+titre_courant.sound_loc[5]+'" target="_blank"><img src="../../resources/music/graphic/i-speaker.gif" alt="musique mp3 gratuite" width="22" height="22" border="0" align="absmiddle"></a>  \n';
	module_text+='                           </strong></span></td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td class="smallBody">(*) dans le respect de la <a href="../copyright-licence-utilisation.php" target="_blank">licence</a>  \n';
	module_text+='                           &agrave; lire et approuver avant toute utilisation. Utiliser le click droit pour télécharger puis le menu \"Enregistrer la cible sous...\"</td> \n';
	module_text+='                         <td width="170" class="smallBody"><div align="left"><span class="smallBody"><strong><img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle"></strong></span>  \n';
	module_text+='                             80kbps / MONO / 32 KHz</div></td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td>&nbsp;</td> \n';
	module_text+='                         <td>&nbsp;</td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr valign="top">  \n';
	module_text+='                         <td colspan="2">&nbsp;</td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td> <h6><img src="../../resources/common/graphic/b-color3.jpg" width="10" height="10">  \n';
	module_text+='                             4 - Acheter maintenant cette musique pour usage priv&eacute;  \n';
	module_text+='                             / &eacute;coute personnelle :</h6></td> \n';
	module_text+='                         <td width="170"><span class="smallBody"><strong><img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle"></strong>  \n';
	module_text+='                           <a href="../commande-diffusion/cgv-musique-usage-prive.php" target="_blank">Conditions  \n';
	module_text+='                           g&eacute;n&eacute;rales de vente</a></span></td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td height="2"><div align="right">a) Format Mp3 par voie  \n';
	module_text+='                             &eacute;lectronique (st&eacute;r&eacute;o / haute  \n';
	module_text+='                             qualit&eacute;) :</div></td> \n';
	module_text+='                         <td height="2"><strong><img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle">  \n';
	module_text+='                           <span class="smallBody">Ce titre &agrave; l\'unit&eacute;  \n';
	module_text+='                           : '+titre_courant.vente_usage_prive_prix_unitaire_ttc+' &euro;TTC</span></strong></td> \n';
	module_text+='                       </tr> \n';
//	module_text+='                       <tr>  \n';
//	module_text+='                         <td height="20"> <div align="right"></div></td> \n';
//	module_text+='                         <td width="170" height="20">  \n';
//	module_text+='                           <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> \n';
//	module_text+='                             <p> \n';
//	module_text+='                               <input type="hidden" name="cmd" value="_xclick"> \n';
//	module_text+='                               <input type="hidden" name="business" value="comptabilite@atoutreve.fr"> \n';
//	module_text+='                               <input type="hidden" name="item_name" value="Musique: '+titre_courant.titre+'; Format: '+titre_courant.vente_usage_prive_format+'; Exp&eacute;dition: '+titre_courant.vente_usage_prive_mode_expedition+'"> \n';
//	module_text+='                               <input type="hidden" name="item_number" value="'+titre_courant.reference+'"> \n';
//	module_text+='                               <input type="hidden" name="amount" value="'+titre_courant.vente_usage_prive_prix_unitaire_ttc+'"> \n';
//	module_text+='                               <input type="hidden" name="shipping" value="0.00"> \n';
//	module_text+='                               <input type="hidden" name="no_shipping" value="0"> \n';
//	module_text+='                               <input type="hidden" name="no_note" value="1"> \n';
//	module_text+='                               <input type="hidden" name="currency_code" value="EUR"> \n';
//	module_text+='                               <input type="hidden" name="lc" value="FR"> \n';
//	module_text+='                               <input type="hidden" name="bn" value="PP-BuyNowBF"> \n';
//	module_text+='                               <img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle">  \n';
//	module_text+='                               <input name="submit" type="image" src="../../resources/common/graphic/p-boutique-acheter-maintenant.gif" alt="Acheter maintenant ce titre au format mp3" align="absmiddle" border="0"> \n';
//	module_text+='                               <span class="smallBody"><em><strong>OU</strong></em></span>  \n';
//	module_text+='                             </p> \n';
//	module_text+='                           </form> \n';
//	module_text+='                            \n';
//	module_text+='                         </td> \n';
//	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td height="20"> <div align="left"><span class="smallBody">  \n';
	module_text+='                             </span></div></td> \n';
	module_text+='                         <td width="170" height="20">  \n';
	module_text+='             <form name="_xclick" target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post"> \n';
	module_text+='               <input type="hidden" name="cmd" value="_cart"> \n';
	module_text+='               <input type="hidden" name="business" value="comptabilite@atoutreve.fr"> \n';
	module_text+='               <input type="hidden" name="currency_code" value="EUR"> \n';
	module_text+='                               <input type="hidden" name="item_name" value="TITRE: '+titre_courant.titre.toUpperCase()+'; FORMAT: '+titre_courant.vente_usage_prive_format+'; EXPEDITION: '+titre_courant.vente_usage_prive_mode_expedition+'"> \n';
	module_text+='                               <input type="hidden" name="amount" value="'+titre_courant.vente_usage_prive_prix_unitaire_ttc+'"> \n';
	module_text+='                             <img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle">  \n';
	module_text+='                             <input type="image" src="../../resources/common/graphic/p-boutique-ajouter-panier.gif" border="0" name="submit" align="absmiddle" alt="Ajouter au panier ce titre au format mp3"> \n';
	module_text+='               <input type="hidden" name="add" value="1"> \n';
	module_text+='             </form> \n';
	module_text+='                          \n';  
	module_text+='                         </td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td height="2">&nbsp;</td> \n';
	module_text+='                         <td height="2">&nbsp;</td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
// Fonctionne bien mais on retire l'offre spéciale pour 10 mp3 achetés, c'est tout
	module_text+='                         <td><div align="right">b) CD audio expédié  \n';
	module_text+='                             :</div></td> \n';
	module_text+='                         <td width="170"><img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle">  \n';
	module_text+='                           <a href="../commande-diffusion/catalogue-cd-audio-pour-usage-prive.php" target="_blank" class="smallBody">Acheter  \n';
	module_text+='                           un CD Audio</a></td> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td>&nbsp;</td> \n';
	module_text+='                         <td>&nbsp;</td> \n';
	module_text+='                       </tr> \n';
	module_text+='                       <tr>  \n';
	module_text+='                         <td bgcolor="#FFFFCC"> <h6><img src="../../resources/common/graphic/b-color3.jpg" width="10" height="10">  \n';
	module_text+='                             5 - Utilisation pour exploitation et/ou diffusion  \n';
	module_text+='                             publique :</h6> \n';
	module_text+='                           <p class="smallBody">(site web, habillage de film, attente  \n';
	module_text+='                             t&eacute;l&eacute;phonique, pr&eacute;sentation multim&eacute;dia,  \n';
	module_text+='                             Radio, TV,...)</p></td> \n';
	module_text+='                         <td width="170" bgcolor="#FFFFCC"><span class="smallBody"><strong><img src="../../resources/common/graphic/b-color4.jpg" width="10" height="10" align="absmiddle">  \n';
	module_text+='                           <a href="../commande-diffusion/demander-licence-exploitation-publique.php" target="_blank">Demander  \n';
	module_text+='                           une licence</a> </strong></span></td> \n';
	module_text+='                       </tr> \n';
	module_text+='                     </table> \n';
	document.writeln(module_text);
		}
	}
}







function fcWriteDewplayerBar(i_song_id)
{
	//alert("pass 1...parent = "+parent);

	// Fonction provisoire totalement basique
	// Ecrit simplement le code html du lecteur DEWPLAYER pour la musique désirée
	// La page appelant a la responsabilité de faire le code html complet
	// Ici c'est juste le lecteur
	// i_dest_doc : document dans lequel on va intégrer les lignes
	// i_song_id : identifiant de la musique
	// Le DewPlayer lit des fichier MP3
	var s_func;
	s_func= true;
	// On appelle un fichier d'extension MP3 FULL, donc indice '3'
	
	
	// Il faut récuprérer la classe qui contient cet id
	//alert("pass 1A..tab_songs=");
	
	
	var len=tab_songs.length;
	
	//alert("pass 1B..");
	
	var song_idx=-1; // index du tableau de la musique sélectionnée
	var i;
	var titre_courant;
	
	//alert("pass 2..");
	for (i=0; i<len && song_idx==-1 ; i++)
	{
		if (i_song_id == tab_songs[i].reference)
		{
			song_idx=i;
			titre_courant=tab_songs[i];
		}
	}
	 
	// 27 MARS 2009 - Bug à la fermeture d'une fenetre sur MSIE7&8 : pas d esolution trouvée
	var audofile_path   = titre_courant.sound_loc[3] +  titre_courant.file_prefix + '.mp3';
	var text_to_write = '\n\n'; 
	text_to_write+= '<object data="dewplayer.swf?son='+audofile_path+'&autoplay=0" type="application/x-shockwave-flash" width="200" height="20" align="absmiddle">';
    text_to_write+= ' <param name="movie"';
	text_to_write+= ' value="dewplayer.swf?son='+audofile_path+'&autoplay=0" /> ' ;
    text_to_write+= ' </object>\n';
	 
	 
	 ////alert(text_to_write);
	document.writeln(text_to_write);
	return true;

}



function fcWriteDewplayerBarFromFile(i_song_file)
{
	// Création 1er août 2009
	// Affiche le Dewplayer en fonction d'un chemin spécifié
	
	var audofile_path   = i_song_file;
	var text_to_write = '\n\n'; 
	text_to_write+= '<object data="dewplayer.swf?son='+audofile_path+'&autoplay=0" type="application/x-shockwave-flash" width="200" height="20" align="absmiddle">';
    text_to_write+= ' <param name="movie"';
	text_to_write+= ' value="dewplayer.swf?son='+audofile_path+'&autoplay=0" /> ' ;
    text_to_write+= ' </object>\n';
	 
	 
	 ////alert(text_to_write);
	document.writeln(text_to_write);
	return true;

}



function fcWriteDewplayerBarFromFile2(i_song_file)
{
	// Création 1er août 2009
	// Affiche le Dewplayer en fonction d'un chemin spécifié
	
	var audofile_path   = i_song_file;
	var text_to_write = '\n\n'; 
	text_to_write+= '<object data="dewplayer.swf?son='+audofile_path+'&autoplay=0" type="application/x-shockwave-flash" width="200" height="20" align="absmiddle">';
    text_to_write+= ' <param name="movie"';
	text_to_write+= ' value="dewplayer.swf?son='+audofile_path+'&autoplay=0" /> ' ;
    text_to_write+= ' </object>\n';
	 
	 
	 ////alert(text_to_write);
	return(text_to_write);

}







function fnPopulateComboBox(i_mode, i_attribut, i_combo_name, i_music_type)
{

	//alert("pass 1 ...");

	// Cette fontion écrit dans un sélecteur les titres qui correspondent à certains critères choisis
	// et ransmis notamment par i_mode.
	// i_mode =0 : écrire tous les titres
	// i_mode =1 : écrire les titres qui correspondent à un genre, genre défini dans i_attribut
	// i_mode =2 : écrire les titres selon LP, MP, SP
	var s_func;
	s_func= false;
	var content_towrite='';
	var len=tab_songs.length;
	var song_idx=-1; // index du tableau de la musique sélectionnée
	var i;
	var nb_found=0;
	var str_1="<h2>"+p_song_list_txt+"</h2><br>";

	   
	content_towrite=' <select name="select" size="7" class="formbox" onChange="fcDisplaySongPage(1, value, p_streaming_start_auto_man, 1, p_title_infos_to_display)" > \n';

	//alert("pass 2 ...");
	
	if (i_mode == 0)
	{
		// ECRITURE DE TOUS LES TITRES
		var arrow="--->";
		var espace='.............';
		var debut_phrase="=> Musiques de style ";
		var str_2="Titres disponibles tous genres confondus<br>";
	   	//alert("pass 3A ...");

	   var style_tab_len=style_tab.length;
	   var j=0;
		for (j=0; j<style_tab_len  ; j++)
		{
			content_towrite = content_towrite + '<option value="notasong">'+debut_phrase+style_tab[j][0]+'</option> \n';
			for (i=0; i<len ; i++)
			{
				if (tab_songs[i].style[1] == style_tab[j][1])
				{
					content_towrite = content_towrite + '<option value="'+tab_songs[i].reference+'">'+espace+tab_songs[i].titre+'</option> \n' ;
					nb_found++;
				}
			}
		}
	   
		
		content_towrite+= '</select> \n' ;
		s_func=true;
		
	}
	else if (i_mode == 1)
	{
	   	//alert("pass 3B ...");
	
		// Classement par genre : institutionnel, new age, relaxation, etc....
		var espace='.............';
		var str_2="Titres disponibles correspondant au genre sélectionné<br>";
		for (i=0; i<len && song_idx==-1 ; i++)
		{
			if (tab_songs[i].style[1] == i_attribut)
			{
				content_towrite = content_towrite + '<option value="'+tab_songs[i].reference+'">'+espace+tab_songs[i].titre+' (r&eacute;f. '+tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 2)
	{
	   	//alert("pass 3C ...");
	
		// Classement par type : LP, MP, SP
		var espace='.............';
		var str_2="correspondant au type de création (durée, boucles)<br>";
		for (i=0; i<len && song_idx==-1 ; i++)
		{
			if (tab_songs[i].type[1] == i_attribut)
			{
				content_towrite = content_towrite + '<option value="'+tab_songs[i].reference+'">'+espace+tab_songs[i].titre+' (r&eacute;f. '+tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 3)
	{
	   	//alert("pass 3D ...");
	
		// Classement par référence unique
		var espace='.............';
		var str_2="correspondant à une référence entrée<br>";
		for (i=0; i<len ; i++)
		{
			if (tab_songs[i].reference == i_attribut)
			{
				content_towrite = content_towrite + '<option value="'+tab_songs[i].reference+'">'+espace+tab_songs[i].titre+' (r&eacute;f. '+tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 4)
	{
	
	   	//alert("pass 3E ...");
	
		// Classement par NOUVEAUTES
		var espace='.............';
		var str_2="correspondant aux nouveautés<br>";
		for (i=0; i<len ; i++)
		{
			if (tab_songs[i].nouveaute != '')
			{
				content_towrite = content_towrite + '<option value="'+tab_songs[i].reference+'">'+espace+tab_songs[i].titre+' (r&eacute;f. '+tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	else if (i_mode == 5)
	{
	
	   	//alert("pass 3F ...");
	
		// Classement des titres les plus écoutés
		var espace='.............';
		var str_2="correspondant aux titres les plus écoutés<br>";
		for (i=0; i<len ; i++)
		{
			if (tab_songs[i].top != 0)
			{
				content_towrite = content_towrite + '<option value="'+tab_songs[i].reference+'">'+espace+tab_songs[i].titre+' (r&eacute;f. '+tab_songs[i].reference+')</option> \n' ;
				nb_found++;
			}
		}
		content_towrite+= '</select> \n' ;		
		s_func=true;
	}
	
	   	//alert("pass 4 ...");
	
	//fnResetSongDocument();
	//var destination_doc= frames["choixtitres"].document;
	//destination_doc.close();
	//destination_doc.open();
	//destination_doc.write(" "); 
	// FIN DES SELECTIONS; Si content_towrite contient le code pour créer la combo avec les bons titres,
	// nous devons au préalable concevoir la page web avec lecode html qui va bien.
	
	//alert("pass 10...");
	if (s_func == true)
	{
	//alert("pass 11...");
	
		//fnWriteHTMLCode(destination_doc, "header");
	   	//alert(content_towrite);
		//destination_doc.writeln(str_1+str_2);
		this.document.writeln(content_towrite);
		
		//destination_doc.writeln("<br>Nombre de musiques correspondant au choix d egenre:"+nb_found);
		
		//fnWriteHTMLCode(destination_doc, "eohtml");		
	}
	return s_func;
}
