/**
* F° common
* Appel systèmatique sur chaque page
*/

Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Prototype.Browser.IE7 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Prototype.Browser.IE8 = Prototype.Browser.IE && !Prototype.Browser.IE6 && !Prototype.Browser.IE7;

var header_height = 111;
function c(){}

function view()
{
	 var viewportwidth;
	 var viewportheight;
	 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
	 if (typeof window.innerWidth != 'undefined')
	 {
	      viewportwidth = window.innerWidth,
	      viewportheight = window.innerHeight
	 }
	// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
	 else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
	 {
	       viewportwidth = document.documentElement.clientWidth,
	       viewportheight = document.documentElement.clientHeight
	 }
	 // older versions of IE
	 else
	 {
	       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
	       viewportheight = document.getElementsByTagName('body')[0].clientHeight
	}
	return viewportheight;
}

function common()
{
	// Redimensionnement du Content
	if ( Prototype.Browser.IE )
	{
		$("body").select("DIV.content").each( function(s) 
		{
			s.style.height = ( view() - header_height ) +"px";
			s.style.width= "810px"; } 
		);
	}
	else
		$("body").select("DIV.content").each( function(s) {s.style.height = ( document.viewport.getHeight() - header_height ) +"px";s.style.width= "810px"; } );
	
	// Vérifier que le tchat est chargé !!! 
	if (!top.chat) 
	{	
		ls_warning = "<div style='width:480px;height:55px;background-color:#000;color:#FFF;font-size:10pt;text-align:center;margin-top:5px;padding-top:5px;'>ATTENTION, vous n'êtes pas passé par la page de connexion et il manque le Tchat qui devrait être visible à gauche, <BR>revenez à <A href='/' target='_self' style='color:yellow;font-size:10pt;'>la page de connexion</A> pour voir le site dans son ensemble.</div>";
		$("pub").update(ls_warning);
	}
	
	// Problème du menu sous chrome ( blanc sur blanc )
	var  is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
	if ( is_chrome ) { $("body").select("SELECT.menu_liste").each( function(s) {s.style.backgroundColor=bg_chrome; }) }
}


/**
* F° set_masque
* Affiche le masque opaque pour les popup
*/
function set_masque( ab_switch )
{
	( ab_switch ? $('Hide').style.display = "block" : $('Hide').style.display = "none" );
	if ( ab_switch ) { if (top.chat ) {top.chat.masque( true );} }
	else { if (top.chat ) {top.chat.masque( false);} }
}

/**
* F° select_tab
* Affiche le tabpage demandé par rapport au support as_tab
*/
function select_tab (event , as_tab)
{
	if (!Event.element(event).hasClassName("TabPage") ) return;
	ls_tab = Event.element(event).id;
	if ( ls_tab=="") return;
	if ( ls_tab != this.current_tab )
	{
		open_tab( as_tab, ls_tab);
		this.current_tab = ls_tab;
	}
}

function open_tab( as_tab, as_tabpage)
{
	lst = $(as_tab).select('DIV.TabPage');
	lst.each
	(
			function(s) 
			{
				s.removeClassName("Tab1");s.removeClassName("bclao");
				s.addClassName("Tab0");s.addClassName("bfono");
				$("tabpage_"+s.id).style.display="none"; 
			}
	);		
	$(as_tabpage).className="TabPage Tab1 bclao";
	$("tabpage_"+as_tabpage).style.display="inline";
	// $("tabpage_"+as_tabpage).style.display="block";
}

//******************************************************************************************************
// Gestion commune des fausses popup
// ( Pb de centrage sur les pages Annuaire-Annonces )
var popup  =
{
	// Positionner une fause popup dans la page
	setposition : function ( id_popup, ref_size,  width, height , id_close, callback_close )
	{
		// Afficher le masque transparent
		set_masque(true);
		// Centrer la popup
		window.scrollTo(0,0);
		t = parseInt(( document.viewport.getHeight() - height ) / 2) + "px"; 
		
		if ( ref_size =='full')  l = parseInt(( $('Hide').getWidth() - width ) / 2) + "px";
		else 	l = parseInt(( 780 - width ) / 2) + "px";
		
		//if ( Prototype.Browser.IE ) { width = width  + 20;}
		// if ( Prototype.Browser.IE ) { height = height  + 20;}
		if ( Prototype.Browser.IE ) 
		{ 
			t = parseInt(( $('Hide').getHeight() - height ) / 2) + "px";
			$(id_popup).style.height = height+"px"; 
		}
		
		$(id_popup).style.width = width+"px"; 
		$(id_popup).style.top = t;  $(id_popup).style.left = l;
		// Afficher la popup
		$(id_popup).style.zIndex = "2000"; 
		$(id_popup).style.display = "inline";
		// Bouton de fermeture de la popup
		$(id_close).onclick = function()
		{
			$(id_popup).update(); 
			$(id_popup).style.display = "none"; 
			set_masque(false);
			if ( callback_close != "") { callback_close(); }
		};
	},
	closepopup : function(as_dest)
	{
		
		$("cont_alerte").update(); 
		$("cont_alerte").style.display = "none"; 
		set_masque(false);
		window.location = as_dest;
	} 
};

//******************************************************************************************************
//Gestion commune des erreurs
var erreur =
{
	code : '',
	build : function(as_code)
	{
		erreur.code = as_code;
		// Mettre le bon message selon le code
		new Ajax.Request
		(	cfg.stdlib+'error_code.php',
			{
				method: 'get', parameters: {mode:as_code },
				onSuccess: function(transport) 
				{ 
					// Affichage du détail de l'erreur
					$("code_error").update( transport.responseText );
					// Gestion des bouton de commande selon le code
					if ( as_code == "CNX1") { erreur.set_action.defer("cnx1_to_index" , erreur.goto_index) ; }
					if ( as_code.substr(0,3) == "CAM") { erreur.set_action.defer("cam_to_close" , erreur.close) ; }
				},
				onFailure: function() {}
			}
		);
	},
	set_action : function (id, action) { $(id).onclick = action; },
	goto_index : function() 	 { window.location = "../../"; },
	close : function() 	 { window.close(); }
};

//******************************************************************************************************
// Gestion de la page d'avertissement avant Visite
// @TODO : Vérifier si c'est encore utile ?
var visite =
{
	build : function()
	{
		$("visite").onclick = visite.ok;
		$("exit").onclick = function() {window.location="http://www.google.fr";};
	},
	//@FIXME  Enregistrer l'email ??? et se connecter
	ok : function() 	{ window.location=pg['visiteur']; },
	avert_privilege : function ()
	{
		// top.chat.masque( false );
		menu.open( pg['privilege'] );
	}
	
};

/**
* Namespace Gestion de la page d'index
* 	Connexion
* 	Demande de mot de passe
*/
var login =
{
	// Evt sur le lien de demande de mot de passe
	build : function() 
	{
		if ($("get_pswd") ) {  $("get_pswd").onclick = login.password; }
		if ( ( Prototype.Browser.IE6 ) )  { popup.setposition( "avert_d", "full",  660,400, "avert_close" , "" );$("Hide").style.display="none"; }
	},
	// Afficher le formulaire de Demande du mot de passe 
	password : function()
	{
		set_masque(true);
		new Ajax.Request
		(	
			cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode:'password'},
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update(transport.responseText);
					if ( Prototype.Browser.IE ) 
						popup.setposition( "cont_alerte", "full",  480,262, "close_password" , "" );
					else
						popup.setposition( "cont_alerte", "full",  460,242, "close_password" , "" );
					// Gestion des evts
					$("demande_pseudo").onclick = login.demande; $("demande_email").onclick = login.demande;
				},
				onFailure: function() {}
			}
		);
	},
	// Recherche du mot de passe p/r au pseudo ou à l'email
	demande : function()
	{
		var ls_query=""; var ls_mode="";
		if ( this.id == "demande_pseudo" ) {ls_query = $("pswd_pseudo").value;ls_mode="pseudo"; } else { ls_query = $("pswd_email").value;ls_mode="email"; }
		if ( ls_query=="" ) {alert("Veuillez renseignez le champ Pseudo ou le champ Email, Merci.");return; }
		
		// Recherche dans la base
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'password', champ:ls_mode , valeur : ls_query},
				onSuccess: function(transport) 
				{ 
					// Test de retour
					if ( transport.responseText.strip() =="1" ) { $("password_form").update("<BR><BR>Votre mot de passe vous a été envoyé par email, <BR>pensez &agrave; controler le Dossier SPAM au cas ou notre message s'y trouve.<BR><BR>"); }
					else { $("password_form").update("<BR><BR>Désolé aucun pseudo de notre site ne correspond à celui demandé.<BR><BR>");}
				},
				onFailure: function() {}
			}
		);
	}
};

/**
* Namespace de la page d'accueil
* 	Gestion du click sur les annonces
*/
var accueil = 
{
	build: function()
	{
		common();
		// Observer le click sur le bloc des annonces
		Event.observe('accueil_info', 'click', accueil.select_annonce.bindAsEventListener(this) );
	},
	select_annonce : function( event )
	{
		location= "fiche.php?recnum="+Event.element(event).up("DIV.box").id.substr(3);
		Event.stop(event);
	}
};

/**
* Namespace des pages de supports et de FAQ
* 	Gestion du click sur "Montrez Moi"
* 	Gestion du formulaire de demande
*/
//******************************************************************************************************
// Page du support technique
var support = 
{
	build : function() 
	{ 
		common();
		if ( $("navigateur") )
		{
			if ( Prototype.Browser.IE ) $("navigateur").value="Internet Explorer";
			else if ( Prototype.Browser.Gecko)   $("navigateur").value="FireFox";
			$("send_support").onclick = support.submit;
		}
	},
	submit : function()
	{
		// Tester les champs obligatoires
		if ( $("email").value=="") { $("email").focus(); alert("L'email n'est pas renseignée, merci.");return false; }
		if ( $("remarque").value=="") { $("remarque").focus(); alert("La demande n'est pas renseignée, merci."); return false;}
		// poster le formulaire
		$('support_form').request ({onComplete: function() {  location="support.php?t=1";}});		
	}
};

//******************************************************************************************************
// Page des recherches et résultats
var recherche =
{
	current_tab : -1,
	init_form : function( as_option )
	{
		common();
		// Changement d'onglet
		// Event.observe('recherche_tab', 'click', select_tab.bindAsEventListener(this, "recherche_tab") );
		
		// Enregistrement/ Suppression des critères
		if (as_option == "")	
		{
			Event.observe('save_critere', 'click', this.save.bindAsEventListener(this) );
			Event.observe('del_critere', 'click', this.del.bindAsEventListener(this) );
			$("saved_query").onchange = recherche.rebuild;
			// Champs auto
			mon_compte.SetAuto("pays");
			mon_compte.SetAuto("region");
			// Gestion des cases à cocher
			Event.observe('criterebloc' , 'click', this.check.bindAsEventListener(this) );
			// Case à cocher de "recherche sexe"
			// @FIX IE ( onclick ne fonctionne pas sans le bind ? )
			Event.observe('select_sexe' , 'click', this.select_sexe.bindAsEventListener(this) );
			// Case à cocher de "qui recherche sexe"
			// @FIX IE ( onclick ne fonctionne pas sans le bind ? )
			Event.observe('select_recherche_sexe' , 'click', this.select_recherche_sexe.bindAsEventListener(this) );
		}
		else if (as_option == "black_liste")
		{
			// Gestion des fiches supprimées
			Event.observe('blackbloc' , 'click', this.select_black.bindAsEventListener(this) );
		}

		/*
		if (as_option != "")	
		{
			open_tab('recherche_tab', as_option);
			this.current_tab = 'tabpage_'+as_option;
		}
		*/
		
		
	},
	// @FIXME : utilisé ou non  ? Ouverture sur un onglet
	open_tab : function(ls_tab)
	{
		if ( ls_tab != fiche.current_tab )
		{
			lst = $("recherche_tab").select('DIV.TabPage');
			lst.each(function(s) {s.className="TabPage Tab0"; $("tabpage_"+s.id).style.display="none"; });		
			$(ls_tab).className="TabPage Tab1";
			fiche.current_tab = ls_tab;
			$("tabpage_"+ls_tab).style.display="inline";
		}
	},
	// Test check
	check : function(event )
	{
		if ( Event.element(event).type=="checkbox" )
		{
			if ( Event.element(event).checked )
				Event.element(event).up("TD").style.color="#FF0000"; 
			else
				Event.element(event).up("TD").style.color=""; 
			
			// Un groupe entier et coché et on décoche un élément
			if ( ( Event.element(event).hasClassName("s20") ) && !(Event.element(event).checked) ) { $("cb20").checked=false;$("cb20").up("TD").style.color=""; }
			if ( ( Event.element(event).hasClassName("s21") ) && !(Event.element(event).checked) ) { $("cb21").checked=false;$("cb21").up("TD").style.color=""; }
			if ( ( Event.element(event).hasClassName("s22") ) && !(Event.element(event).checked) ) { $("cb22").checked=false;$("cb22").up("TD").style.color=""; }

			if ( (Event.element(event).hasClassName("cible")) && (Event.element(event).checked) ) { $("cbc0").checked=false;$("cbc0").up("TD").style.color=""; }
			if ( (Event.element(event).hasClassName("ech") ) && (Event.element(event).checked ) ) { $("cbe0").checked=false;$("cbe0").up("TD").style.color=""; }
			if ( (Event.element(event).id =="cbe0" ) && (Event.element(event).checked ) ) { $("echange").select("INPUT.ech").each( function(s) {s.checked=false;s.up("TD").style.color=""; }); }
		}

	},
	// Case à cocher Sexe
	select_sexe : function(event)
	{
		if (Event.element(event).id == "") return;
		
		var ls_type = Event.element(event).id.substr(2);
		
		if ( Event.element(event).id.startsWith("mob") )
		{
			$("select_sexe").select("INPUT.mo").each
			( 
					function(s) 
					{
						if ( s.checked )
							s.up("TD").style.color="#FF0000"; 
						else
							s.up("TD").style.color=""; 
					}
			);
		}
		else
		{
			if ( $(Event.element(event).id).checked )
				$("select_sexe").select("INPUT.s"+ls_type).each( function(s) {s.checked=true;s.up("TD").style.color="#FF0000";});
			else
				$("select_sexe").select("INPUT.s"+ls_type).each( function(s) {s.checked=false;s.up("TD").style.color=""; });
		}

	},
	// Case à cocher Sexe
	select_recherche_sexe : function(event)
	{
		ls_id = Event.element(event).id;
		if ( Event.element(event).id == "cbc0")
		{
			if ( $(Event.element(event).id).checked )
			{
				$("select_recherche_sexe").select("INPUT.c20","INPUT.c21","INPUT.c22").each( function(s) {s.checked=false;s.up("TD").style.color="";  });
				 $("cbc20").checked=false;$("cbc20").up("TD").style.color="";
				 $("cbc21").checked=false;$("cbc21").up("TD").style.color="";
				 $("cbc22").checked=false;$("cbc22").up("TD").style.color="";
			}
		}
		else if ( (ls_id=="cbc20") || (ls_id=="cbc21")  || (ls_id=="cbc22")  )
		{
			var ls_type = Event.element(event).id.substr(3);
			if ( $(Event.element(event).id).checked )
			{
				$("select_recherche_sexe").select("INPUT.c"+ls_type).each( function(s) {s.checked=true;s.up("TD").style.color="#FF0000";  });
				if ( (Event.element(event).hasClassName("cible"))  )
				{
					$("cbc0").checked=false;$("cbc0").up("TD").style.color="";
				}
			}
			else
				$("select_recherche_sexe").select("INPUT.c"+ls_type).each( function(s) {s.checked=false;s.up("TD").style.color=""; });
		}
	},
	select_black : function(event)
	{
		alert("Désolé, ces annonces ont été supprimées par les modérateurs et ne sont plus accessibles.");
		Event.stop(event);
	},
	save : function()
	{
		// Afficher le masque transparent
		set_masque(true);
		// Formulaire d'enregistrement des critères
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode:'save_critere' },
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					else
					{
						popup.setposition( "cont_alerte" , 780, 460,275, "undo_contact" , "" );
						$("save_recherche_name").onclick= recherche.critere_save_send;
					}
					$("name_rech").focus();
				},
				onFailure: function() {}
			}
		);
	},
	critere_save_send : function()
	{
		if ( $("name_rech").value == "") { alert("Merci de donner un nom à votre recherche.");return;}
		// Sérialiser le formulaire
		new_val = $('recherche').serialize(true) ;
		// Recherche dans la base
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'save_critere', name : $("name_rech").value , critere:Object.toJSON(new_val)},
				onSuccess: function(transport) 
				{ 
					// @FIXME : Pb de calcque a revoir
					set_masque( false );
					$('cont_alerte').style.display = "none";
					
					alert("Votre recherche a bien été enregistrée, merci.");
				},
				onFailure: function() {}
			}
		);
	},
	// Supprimer une recherche
	del : function()
	{
		if ($("saved_query").value == "") return;
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'del_critere', id : $("saved_query").value },
				onSuccess: function(transport) 
				{ 
					location= "recherche.php";
				},
				onFailure: function() {}
			}
		);
	},
	// Reprendre les critères d'une recherche enregistrée
	rebuild : function()
	{
		// Cas de NOS recherche programmées
		if ( this.value=="A")
		{
			// Listes des nouvelles annonces
			location = "liste_annonces.php?p=nouvelle";
			//top.pages.location = "liste_annonces.php?p=nouvelle";
			return;
		}
		else if (this.value=="B")
		{
			// Listes des nouvelles annonces Limitrophe
			location = "liste_annonces.php?p=nouvelle_limit";
			// top.pages.location = "liste_annonces.php?p=nouvelle_limit";
			return;
		}
		
		// Sélection dans la liste des recherche enregistrées
		if ($("saved_query").value == "") {$("del_critere").style.display="none";return;}
		
		$("del_critere").value ="Supprimer '"+ $("saved_query").options[$("saved_query").selectedIndex].text.truncate(20) +"'";
		$("del_critere").style.display="inline";
		
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'get_critere', id : $("saved_query").value },
				onSuccess: function(transport) 
				{ 
					var json = transport.responseText.evalJSON();
					current_crit  = json[0][0].evalJSON();
					for ( i in current_crit)
					{
						if ( i=="photo")	{ $("cbx_photo").checked=true;  $("cbx_photo").up("TD").style.color="#FF0000"; continue; }
						if ( i=="video")	{ $("cbx_video").checked=true;  $("cbx_video").up("TD").style.color="#FF0000"; continue; }
						if ( i=="certif")	{ $("cbx_certif").checked=true;  $("cbx_certif").up("TD").style.color="#FF0000"; continue; }
						if ( i=="avec_webcam")	{ $("cbx_avec_webcam").checked=true;  $("cbx_avec_webcam").up("TD").style.color="#FF0000"; continue; }
						
						if ( i.endsWith("[]") )
						{
							
							if ( i == "sexe[]")
							{
								$("select_sexe").select("INPUT").each
								( 
									function(s)
									{
										if ( current_crit[i].indexOf(s.id.substr(2) )  >= 0 ) { s.checked=true; s.up("TD").style.color="#FF0000"; }
										else { s.checked=false;s.up("TD").style.color=""; }
									}
								);
								continue;
							}
							if ( i == "cible[]")
							{
								$("select_recherche_sexe").select("INPUT").each
								( 
									function(s)
									{
										if ( current_crit[i].indexOf(s.id.substr(3) )  >= 0 ) { s.checked=true; s.up("TD").style.color="#FF0000"; }
										else { s.checked=false;s.up("TD").style.color=""; }
									}
								);
								continue;
							}
							if ( i == "ech[]")
							{
								$("echange").select("INPUT").each
								( 
									function(s)
									{
										if ( current_crit[i].indexOf(s.id.substr(3) )  >= 0 ) { s.checked=true; s.up("TD").style.color="#FF0000"; }
										else { s.checked=false;s.up("TD").style.color=""; }
									}
								);
								continue;
							}
							
						}
						
						if ( !$(i) ) continue;
						
						if ( $(i).type=="text" ) { $(i).value = current_crit[i]; }
						else if (  $(i).type =="select-one")  { $(i).value = current_crit[i]; }
						else if (  $(i).type  =="radio") { $(i).value = current_crit[i]; }
					}
				},
				onFailure: function() {}
			}
		);
	},
	// Constructeur liste annonce
	build : function()
	{
		// Si le formulaire de navigation existe
		if ( $("recherche") )
		{
			lim = $("limites").value.split(";");
			// Affiche ou non page précédente
			if ( lim[0] == "0") {$("pg_prev").style.display="none";	}
			else { $("pg_prev").onclick = recherche.prev; }
			// Affiche ou non page suivante
			if ( parseInt(lim[1]) > parseInt( $("total").value))  {$("pg_next").style.display="none";	}
			else { $("pg_prev").onclick = recherche.prev; }
			$("pg_next").onclick = recherche.next;
			if ( recherche_destination == "") { $("recherche").action = cfg.pages+pg.liste_annonce; }
		}
		// Observateur sur le click des box
		recherche.observe();
	},
	observe : function()
	{
		// Observateur sur le click des box
		Event.observe('annonce_liste', 'click', recherche.select_annonce.bindAsEventListener(this) );
	},
	prev : function()
	{
		lim = $("limites").value.split(";");
		lim[0] = parseInt(lim[0]) - 15;lim[1] = parseInt(lim[1]) - 15;
		$("limites").value = lim[0]+";"+lim[1];
		$("recherche").submit();
	},
	next : function()
	{
		lim = $("limites").value.split(";");
		lim[0] = parseInt(lim[0]) + 15;lim[1] = parseInt(lim[1]) + 15;
		$("limites").value = lim[0]+";"+lim[1];
		$("recherche").submit();
	},
	select_annonce : function( event )
	{
		var ls_annonce = "";
		ls_annonce = Event.element(event).up("DIV.boxlg").id;
		ls_annonce = ls_annonce.substr(3);
		location= "fiche.php?recnum="+ls_annonce;
		Event.stop(event);
	}
};

/**
* Namespace de la page des stats sur l'annonce
* 	Affichage des Graph
* 	Gestion du click sur les annonces
*/
var statistique=
{
	current_tab : -1,
	build: function()
	{
		common();
		Event.observe('stats_tab', 'click', select_tab.bindAsEventListener(this, "stats_tab") );
	}
};


//******************************************************************************************************
// Annonce de l'utilisateur
var mon_compte=
{
	current_user : '',
	current_tab : "profil",
	site_perso : 0,
	// Gestion des champs en AutoComplète
	SetAuto : function( as_id )
	{
		// @FIXME
		var options = {
				script:cfg.request+'?json=true&mode=dddw&limit=10&as_liste='+as_id+'&',
				varname:'input',
				json:true,
				shownoresults:true,
				maxresults:16,
				callback: function (obj) {  }
			};
		var json=new AutoComplete(as_id,options);
	},
	// Gestion du support onglet
	load_all : function ( as_option , json)
	{
		// Redimensionnement
		common();
		if (gi_user==-1) { return; }
		
		// Evt de changement d'onglet
		Event.observe('compte_tab', 'click', select_tab.bindAsEventListener(this, "compte_tab") );
		// Evt des gestion des Albums
		Event.observe('albums', 'click', this.photos.select_album.bindAsEventListener(this) );
		// Gestion de l'annonce
		mon_compte.annonce.build();
		// Champs en Autocomplete
		mon_compte.SetAuto("pays");
		// Evt de maj de la partie généralité
		$("update_gen").onclick = mon_compte.gen_update;
		
		// Masquer les forms tant que tout n'est pas chargé
		lst = $("compte_tab").select('DIV.TabPage');
		lst.each(function(s) {$("tabpage_"+s.id).style.display="none"; });		
		
		// Enregistrer le N° utilisateur
		mon_compte.current_user = json['Gen']['recnum'];
		// Remis en PHP 
		// $("pseudo").update(json['Gen']['pseudo']); $("pswd").value 	= json['Gen']['pswd']; $("pays").value 	= json['Gen']['pays']; $("cp").value 	= json['Gen']['cp']; $("dpt").update(json['Gen']['dpt']);
		$("sexe").value 	= json['Gen']['sexe'];
		$("mobilite").value = json['Gen']['mobilite'];
		$("webcam").value 	= json['Gen']['webcam'];
					
		var lst ="<option value=\"\"></option><option selected value=\""+json['Gen']['ville']+"\">"+ json['Gen']['ville'] + "</option>";
		$("ville").update(lst);					
					
		// Descriptions
		if ( ( parseInt(json['Gen']['sexe']) < 4 ) || ( parseInt(json['Gen']['sexe']) > 6 ) )
		{
			// Homme ( H Seul + Couple ]
			$("ageh").value 	= json['Gen']['ageh'];$("tailleh").value 	= json['Gen']['tailleh'];$("poidh").value 	= json['Gen']['poidh'];
			$("cheveuxh").value = json['Gen']['cheveuxh'];$("signeh").value = json['Gen']['signeh'];$("fumeurh").value 	= json['Gen']['fumeurh'];
		}
		if ( parseInt(json['Gen']['sexe']) > 3 ) 
		{
			// Femme ( F Seule + Couple )
			$("agef").value 	= json['Gen']['agef'];$("taillef").value 	= json['Gen']['taillef'];$("poidf").value 	= json['Gen']['poidf'];
			$("cheveuxf").value = json['Gen']['cheveuxf'];$("signef").value = json['Gen']['signef'];$("fumeurf").value 	= json['Gen']['fumeurf'];
		}
		
		// Partie Recherche
		$("r_c").checked 	= eval(json['Gen']['r_c']);$("r_cfb").checked 	= eval(json['Gen']['r_cfb']);$("r_chb").checked 	= eval(json['Gen']['r_chb']);$("r_c2b").checked 	= eval(json['Gen']['r_c2b']);
		$("r_f").checked 	= eval(json['Gen']['r_f']);$("r_fb").checked 	= eval(json['Gen']['r_fb']);$("r_fg").checked 	= eval(json['Gen']['r_fg']);
		$("r_h").checked 	= eval(json['Gen']['r_h']);$("r_hb").checked 	= eval(json['Gen']['r_hb']);$("r_hg").checked 	= eval(json['Gen']['r_hg']);
		
		// Pour échange
		$("E1").checked 	= eval(json['Gen']['E1']);$("E2").checked 	= eval(json['Gen']['E2']);$("E3").checked 	= eval(json['Gen']['E3']);$("E4").checked 	= eval(json['Gen']['E4']);
		$("E5").checked 	= eval(json['Gen']['E5']);$("E6").checked 	= eval(json['Gen']['E6']);$("E7").checked 	= eval(json['Gen']['E7']);$("E8").checked 	= eval(json['Gen']['E8']);
		$("E9").checked 	= eval(json['Gen']['E9']);$("E10").checked 	= eval(json['Gen']['E10']);$("E11").checked 	= eval(json['Gen']['E11']);
		$("type_echange").value = json['Gen']['type_echange'];$("experience").value = json['Gen']['experience'];$("ambiance").value = json['Gen']['ambiance'];
					
		// Masquer les blocs description non utilisés et les options de la Liste des sexes
		if ( parseInt(json['Gen']['sexe']) < 4 ) 
		{
			$("desc_profil").select('TH.detailF', 'TD.detailF').each( function(s) { s.hide(); } ); 
			$("sexe").select('option.sexe_f' , 'option.sexe_c').each( function(s) { s.hide(); } ); 
		}
		else if ( ( parseInt(json['Gen']['sexe']) < 7 ) && ( parseInt(json['Gen']['sexe']) >3  ) )
		{ 
			$("desc_profil").select('TH.detailH', 'TD.detailH').each( function(s) { s.hide(); } ); 
			$("sexe").select('option.sexe_h', 'option.sexe_c').each( function(s) { s.hide(); } ); 
		}
		else { $("sexe").select('option.sexe_f' , 'option.sexe_h').each( function(s) { s.hide(); } );  }

		// Option ( transfert + bulletin ) 
		if ( $("N1") )
		{
			if ( json['Gen']['bulletin'] == 1 ) {$("N1").checked = true; }
			if ( json['Gen']['transfert'] == 1 ) {$("N2").checked = true; }
			Event.observe('N1', 'click', mon_compte.set_option.bindAsEventListener(this, "bulletin") );
			Event.observe('N2', 'click', mon_compte.set_option.bindAsEventListener(this, "transfert") );
		}
					
		// Infos de suppression
		if ( $("delete_info") )
		{
			if ( json['Gen']['nos_privileges'] ==1 )
			{
				$("delete_info").update("Rappel: Vous disposez actuellement d'un compte illimité sur notre site.");
				$("delete_info").style.display="block";
			}
			else if ( json['Gen']['temps'] > 0)
			{
				$("delete_info").update("Rappel: Vous disposez d'un compte privile sur notre site jusqu'au : " +json['Gen']['date_fin']);
				$("delete_info").style.display="block";
			}
			else if ( ( json['Gen']['certifie'] ==1 ) && (json['Gen']['sexe'] > 3) )
			{
				$("delete_info").update("Rappel: Vous disposez d'une annonce certifiée, donc d'un compte illimité.");
				$("delete_info").style.display="block";
			}
		}
					
		// Afficher le form
		$("tabpage_profil").style.display="inline";
		
		// Photos / Vidéos de l'onglet 3
		mon_compte.photos.retrieve( json['Photos'] );

		// Options / Certifications, Onglet 4
		if (json['Gen']['sexe'] < 4 ) { $("certif_demande").style.display="none"; }
		else
		{
			if ( json['Gen']['certifie'] == 1 )
			{
				// Dejà certifié
				$("certif_demande").style.display="none";
				$("certif_ok").style.display="block";
				mon_compte.certification.info_certif( json['Gen']['certif_id'] , 1);
			}
			else if ( ( json['Gen']['certifie'] == 0 ) && ( json['Gen']['certif_id'] > 0 ) )
			{
				// Certification en cours
				$("certif_demande").style.display="none";
				$("certif_attente").style.display="block";
				mon_compte.certification.info_certif( json['Gen']['certif_id'] , 0);
			}
		}
					
		// Sites perso de l'onglet 5
		mon_compte.site_perso = json['Gen']['id_site'];
		if ( mon_compte.site_perso == 0 )
		{
			// Masque pour ajouter
			$("site_form_statut").hide();
			$("site_form_submit").value="Ajouter mon site perso";
			$("site_form_submit").onclick = mon_compte.site.add;
		}
		else
		{
			// Masque pour modifier
			$("site_header_info").hide();
			$("site_form_header").update("Modifier les infos de mon site perso");
			$("site_form_submit").value="Modifier les informations";
			$("site_form_submit").onclick = mon_compte.site.update;

			$("titre_site").value=json['site'][0]['titre'];
			$("url_site").value=json['site'][0]['url'];
			$("desc_site").value=json['site'][0]['description'];
			$("url_retour").value=json['site'][0]['url_retour'];

			if ( json['site'][0]['status'] == 1 ){ $("site_form_statut").update("En attente de validation");$("site_form_statut").show();}
			else if ( json['site'][0]['status']  == 2  ) { $("site_form_statut").update("Site validé");$("site_form_statut").show();}
		}
		
		// Suppression de l'annonce : Onglet6
		$("suppression_submit").onclick = mon_compte.del;

		// Ouverture de l'onglet si c'est demandé	
		if (as_option != "")	
		{
			// $("tabpage_profil").style.display="none";
			open_tab('compte_tab', as_option);
			this.current_tab = 'tabpage_'+as_option;
		}
					
	},
	
	// mise à jour des options
	set_option : function (event, ls_option)
	{
		if (Event.element(event) )
		{
			ls_check_box = Event.element(event);
			if ( ls_check_box.checked ) { val = 1; } else { val=0;}
			// Enregistrement dans la base
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: { mode: 'update_option', option:ls_option , value:val },
					onSuccess: function(transport)  { alert("Vos modifications ont été enregistrées, Merci."); },
					onFailure: function() {}
				}
			);
		}
		// debugger;
	},
	// Mise à jour de la généralité
	gen_update : function()
	{
		// Retirer les icones Erreur
		$("update").select('INPUT.check', 'SELECT.check').each( function(s) { s.removeClassName("ac_nok"); });
		// Contrôle des données du profil avant mise à jour
		if ( $("sexe").value <= 3 ) { if ( !(inscription.verif_sexe('h')) ) return false; }
		else if ( ( $("sexe").value >= 4 ) && ( $("sexe").value <= 6 )) { if ( !(inscription.verif_sexe('f')) ) return false; }
		else if ( $("sexe").value >= 4 )  { if  (!( (inscription.verif_sexe('h')) && (inscription.verif_sexe('f')))) { return false; } }
		
		// Contrôle de la sélection du pays
		if ($("pays").value !="France") 
		{ 
			$("dpt").update("/");
			$("cp").value="";
			$("ville").value="";
		}		
		
		// Appel de la mise à jour
		new_val = $('update').serialize(true) ;
		// Chargement des données du premier onglet
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: { mode: 'update_gen', values : Object.toJSON(new_val) },
				onSuccess: function(transport)  { alert("Vos modifications ont été enregistrée, Merci."); },
				onFailure: function() {}
			}
		);
	},
	// Suppression de son annonce
	del : function()
	{
		new_val = $('delete_form').serialize(true) ;
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'delete', data : Object.toJSON(new_val) },
				onSuccess: function(transport) 
				{ 
					alert("Votre annonce a été supprimée ainsi que toutes les informations vous concernant, Merci.");
					top.location="http://www.google.fr";
				},
				onFailure: function() {}
			}
		);
		
	},
	// Gestion du BBCode avec le texte de l'annonce
	annonce : 
	{
		build : function()
		{
			Event.observe('smilelist', 'click', mon_compte.annonce.emoticon.bindAsEventListener(this) );
			// Change de la font / Taille
			$("addbbcode18").onchange = mon_compte.annonce.bbfontstyle.bind(mon_compte.annonce,"color");
			//$("addbbcode20").onchange = mon_compte.annonce.bbfontstyle.bind(mon_compte.annonce,"size");
			if ($("send_annonce")) { 	$("send_annonce").onclick = mon_compte.annonce.request_preview.bind(mon_compte.annonce, true); }
			$("show_preview").onclick = mon_compte.annonce.request_preview.bind(mon_compte.annonce, false);
			// Change de mise à jour du preview
			$("message").onchange = mon_compte.annonce.request_preview.bind(mon_compte.annonce);
		
			//Startup variables
			this.imageTag = false;
			this.theSelection = false;
			
			/*
			this.clientPC = navigator.userAgent.toLowerCase(); 
			this.clientVer = parseInt(navigator.appVersion);
			this.is_ie = ((this.clientPC.indexOf("msie") != -1) && (this.clientPC.indexOf("opera") == -1));
			this.is_nav = ((this.clientPC.indexOf('mozilla')!=-1) && (this.clientPC.indexOf('spoofer')==-1)
			             && (this.clientPC.indexOf('compatible') == -1) && (this.clientPC.indexOf('opera')==-1)
			             && (this.clientPC.indexOf('webtv')==-1) && (this.clientPC.indexOf('hotjava')==-1));
			this.is_moz = 0;
			this.is_win = ((this.clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
			this.is_mac = (this.clientPC.indexOf("mac")!=-1);
			*/
			
			//Helpline messages
			this.b_help = "Texte gras: [b]texte[/b] (alt+b)";
			this.i_help = "Texte italique: [i]texte[/i] (alt+i)";
			this.u_help = "Texte souligné: [u]texte[/u] (alt+u)";
			this.q_help = "Citation: [quote]texte cité[/quote] (alt+q)";
			this.c_help = "Afficher du code: [code]code[/code] (alt+c)";
			this.l_help = "Liste: [list]texte[/list] (alt+l)";
			this.o_help = "Liste ordonnée: [list=]texte[/list] (alt+o)";
			this.p_help = "Insérer une image: [img]http://image_url/[/img] (alt+p)";
			this.w_help = "Insérer un lien: [url]http://url/[/url] ou [url=http://url/]Nom[/url] (alt+w)";
			this.a_help = "Fermer toutes les balises BBCode ouvertes";
			this.s_help = "Couleur du texte: [color=red]texte[/color] Astuce: #FF0000 fonctionne aussi";
			this.f_help = "Taille du texte: [size=x-small]texte en petit[/size]";
			//Define the bbCode tags
			this.bbcode = new Array();
			this.bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list:u]','[list=]','[/list]','[img]','[/img]','[url]','[/url]');
			this.imageTag = false;
		},
		//Shows the help messages in the helpline window
		helpline : function (help) { $("helpbox").value = eval("this."+help + "_help"); },
		//Replacement for arrayname.length property
		getarraysize : function (thearray) {for (i = 0; i < thearray.length; i++) { if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null)) {return i;} } return thearray.length; },
		arraypush : function (thearray,value) {	thearray[ this.getarraysize(thearray) ] = value;	},
		arraypop : function (thearray) {thearraysize = this.getarraysize(thearray);retval = thearray[thearraysize - 1];delete thearray[thearraysize - 1];return retval; },
		// Emoticone
		emoticon : function  ( event ) 
		{
			ls_icone = Event.element(event).className;
			var txtarea = $('message');
			text = ' :' + ls_icone + ': ';
			if (txtarea.createTextRange && txtarea.caretPos) {var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; txtarea.focus(); 	} 
			else { txtarea.value  += text; txtarea.focus();}
			// Actualiser le preview
			this.request_preview();
		},
		// Style de la police
		bbfontstyle : function  (tag) 
		{
			// Balise Open/Close
			if ( tag=="color") {bbopen = '[color=' + $('addbbcode18').options[ $('addbbcode18').selectedIndex ].value + ']'; bbclose = '[/color]'; }
			else if ( tag=="size" ) {bbopen = '[size=' + $('addbbcode20').options[ $('addbbcode20').selectedIndex ].value + ']'; bbclose = '[/size]'; }
					
			var txtarea = $('message');
			
			/*
			if ((this.clientVer >= 4) && this.is_ie && this.is_win) 
			{
				theSelection = document.selection.createRange().text;
				if (!theSelection) { txtarea.value += bbopen + bbclose; txtarea.focus(); return; }
				document.selection.createRange().text = bbopen + theSelection + bbclose;
				txtarea.focus();
				return;
			}
			else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)) {this.mozWrap(txtarea, bbopen, bbclose); return; }
			else {txtarea.value += bbopen + bbclose;txtarea.focus(); }
			this.storeCaret(txtarea);
			*/			
			
			// Actualiser le preview
			this.request_preview();
		},
		bbstyle : function (bbnumber) 
		{
			var txtarea = $('message');
			txtarea.focus();
			donotinsert = false; theSelection = false; bblast = 0;
			if (bbnumber == -1) 
			{ 
				// Close all open tags & default button names
				while (bbcode[0]) 
				{
					butnumber = this.arraypop(this.bbcode) - 1;
					txtarea.value += this.bbtags[butnumber + 1];
					buttext = eval('document.post.addbbcode' + butnumber + '.value');
					eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
				}
				imageTag = false; // All tags are closed including image tags :D
				txtarea.focus();
				// Actualiser le preview
				this.request_preview();
				return;
			}
			/*
			// Selon la verison du navigateur
			if ((this.clientVer >= 4) && this.is_ie && this.is_win)
			{
				theSelection = document.selection.createRange().text;
				if (theSelection) 
				{ 
					document.selection.createRange().text = this.bbtags[bbnumber] + theSelection + this.bbtags[bbnumber+1]; txtarea.focus(); theSelection = ''; 
					// Actualiser le preview
					this.request_preview();
					return; 
				}
			}
			else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
			{
				this.mozWrap(txtarea, this.bbtags[bbnumber], this.bbtags[bbnumber+1]);
				// Actualiser le preview
				this.request_preview();
				return;
			}
			*/
			
			// Find last occurance of an open tag the same as the one just clicked
			for (i = 0; i < this.bbcode.length; i++) { if (this.bbcode[i] == bbnumber+1) { bblast = i; donotinsert = true; } }
			// Close all open tags up to the one just clicked & default button names
			if (donotinsert) 
			{		
				while (this.bbcode[bblast]) 
				{
					butnumber = this.arraypop(this.bbcode) - 1;
					txtarea.value += this.bbtags[butnumber + 1];
					buttext = eval('document.post.addbbcode' + butnumber + '.value');
					eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
					imageTag = false;
				}
				txtarea.focus(); 
				// Actualiser le preview
				this.request_preview();
				return;
			} 
			// Open tags
			else 
			{ 
				/*
				if (imageTag && (bbnumber != 14)) 
				{		// Close image tag before adding another
					txtarea.value += this.bbtags[15];
					lastValue = this.arraypop(this.bbcode) - 1;	// Remove the close image tag from the list
					document.post.addbbcode14.value = "Img";	// Return button back to normal state
					imageTag = false;
				}
				*/
				// Open tag
				txtarea.value += this.bbtags[bbnumber];
				if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
				this.arraypush(this.bbcode,bbnumber+1);
				eval('document.post.addbbcode'+bbnumber+'.value += "*"');
				txtarea.focus();
				// Actualiser le preview
				this.request_preview();
				return;
			}
			this.storeCaret(txtarea);
		},
		mozWrap  : function  (txtarea, open, close)
		{
			var selLength = txtarea.textLength;
			var selStart = txtarea.selectionStart;
			var selEnd = txtarea.selectionEnd;
			if (selEnd == 1 || selEnd == 2)  selEnd = selLength;
			var s1 = (txtarea.value).substring(0,selStart);
			var s2 = (txtarea.value).substring(selStart, selEnd);
			var s3 = (txtarea.value).substring(selEnd, selLength);
			txtarea.value = s1 + open + s2 + close + s3;
			return;
		},
		storeCaret : function (textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();},
		// Mise à jour du preview  + { Enregistrement }
		request_preview : function(ab_switch)
		{
			new Ajax.Request
			(	cfg.request,
				{
					method: 'post', parameters: { mode: 'preview_annonce', values : $("message").value , update:ab_switch },
					onSuccess: function(transport) 
					{ 
						var json = transport.responseText.evalJSON();
						$("preview").innerHTML = json['Preview'];
						if (ab_switch)
						{
							// alert("Vos modifications ont bien été prise en compte, merci");
						}
					},
					onFailure: function() {}
				}
			);
		}
	},
	// Gestion des photos de l'utilisateur
	photos : 
	{
		current : "",
		album : 1,
		count : 0,
		phpthumb : 0,
		alert_convert : function( ai_photo) 
		{ 
			alert("Désolé, nos modérateurs n'ont pas encore pu convertir votre fichier vidéo, dés que cela sera fait vous en serez averti par un message. Merci");
			mon_compte.photos.current = ai_photo;
			$("current_photo").style.display="none"; 
			$("current_video").style.display="block";
			$("current_video").update("Vidéo en attente de conversion");
		},
		// Affichage des photos de sa liste
		retrieve : function( as_files )
		{
			$("envoie_photo").action = cfg.post+"?mode=photo";
			
			if ( as_files=="") return;
			
			this.thumb  = new Template('<div class="box_pic #{type}" id="PH_#{recnum}" onclick="mon_compte.photos.select(\'#{srcph}\', \'#{recnum}\',1);" title="Photo n° #{recnum} - #{title}" style="background:url(#{src}) no-repeat center;" alt="Loading"></div>');
			// Template spécifique aux vidéos
			this.thumbv  = new Template('<div class="box_vid album3" id="PH_#{recnum}" onclick="#{click}mon_compte.photos.select(\'#{src}\', \'#{recnum}\',1);" title="Vidéo n° #{recnum} - #{title}"><div class="#{indic}" title="#{title}"></div></div>');
			ls_template = "";
			as_files.each 	( function(s)  
					{ 
						ls_type = "album"+s.album;
						data ={src: s.fichier, srcph: s.ph450,  recnum:s.recnum, type:ls_type, title:"Fichier "+s.fichier  }; 
						if ( s.album==3)
						{
							if (s.conversion==1)
							{
								data.indic ="";
								data.click="";
							}
							else
							{
								data.click="mon_compte.photos.alert_convert("+s.recnum+");return;";
								data.indic ="convert";
								data.title ="Fichier non converti, patientez juqsu\'a ce qu\'un modérateur réalise la conversion";
							}
							ls_template += mon_compte.photos.thumbv.evaluate(data) ; 
						}
						else
							ls_template += mon_compte.photos.thumb.evaluate(data) ; 
							
					} 
			);
			$("photolist").update(ls_template);
			
			// Masquer toutes celle qui ne sont pas dans l'album courant
			$("photolist").select("DIV").each( 
					function(s) 
					{
						if ( s.id !="")
						{
							if  (s.hasClassName("album"+mon_compte.photos.album) ) { s.show(); }
							else { s.hide(); }
						}
					} 
			);
			// Nombre de photos retrievées
			mon_compte.photos.count = as_files.length;
			// mon_compte.photos.count = $("photolist").select("DIV").length;
			// Gestion des boutons de suppression et mise à jour
			$("delete_photo").onclick = mon_compte.photos.del;
			$("defaut_photo").onclick = mon_compte.photos.defaut;
			// Action du formulaire d'envoie des photos
		},
		// Ajouter une photo à la liste des photos existantes
		add : function (as_file , ai_recnum , phpthumb, ai_album)
		{
			if (ai_album != 3 )
				this.thumb  = new Template('<div class="box_pic #{type}" id="PH_#{recnum}" onclick="mon_compte.photos.select(\'#{src}\', \'#{recnum}\',1);" title="Photo n° #{recnum} - #{title}" style="background:url(#{src}) no-repeat center;" alt="Loading"></div>');
			else
			{
				// Template spécifique aux vidéos (par defaut non convertie)
				this.thumb  = new Template('<div class="box_vid album3" id="PH_#{recnum}" onclick="mon_compte.photos.select(\'#{src}\', \'#{recnum}\',1);" title="Vidéo n° #{recnum} - #{title}"><div class="convert"></div></div>');
			}
			ls_current = $("photolist").innerHTML;
			ls_type = "album"+ai_album;
			data ={src: as_file, recnum:ai_recnum, type:ls_type};
			ls_current = mon_compte.photos.thumb.evaluate(data) + ls_current ;
			$("photolist").update(ls_current);	
			
			if (ai_album != 3 )
			{
				mon_compte.photos.select(as_file, ai_recnum);
			}
			
			mon_compte.photos.count += 1;
		},
		is_loading : function()
		{
			// Reset du formulaire
			$("envoie_photo").reset();
			$("send_photo").value="Envoyer vos fichiers";
		},
		// Ajouter une photo à la liste des photos existantes
		select : function( src_file , ai_photo )
		{
			if (mon_compte.photos.album != 3 )
			{
				$("current_video").style.display="none"; $("current_photo").style.display="block";
				
				// Afficher la photo sélectionnée
				src_file = src_file.replace("ti-","ph-");
				src_file = src_file.replace("t-","p-");
				
				$("current_photo").update('<img border="0" src="'+src_file+'">');
				mon_compte.photos.current = ai_photo;
				
			}
			else
			{
				mon_compte.photos.current = ai_photo;
				$("current_photo").style.display="none"; 
				$("current_video").style.display="block";
				$f("current_video", "flowplayer-3.1.3.swf", { 
				    clip: { 
				        url: src_file, 
				        autoPlay: false, 
				        autoBuffering: true 
				    } 
				});
			}
		},
		// Suppression d'une photo
		del : function ( )
		{
			if (mon_compte.photos.current != "")
			{
				// Requete de suppression de la base
				new Ajax.Request
				(	cfg.request,
					{
						method: 'get', parameters: { mode: 'delete_photo', rec_photo : mon_compte.photos.current},
						onSuccess: function(transport) 
						{ 
							// Suppression de l'écran
							$($("PH_"+ mon_compte.photos.current)).remove();
							$("current_photo").update();
							mon_compte.photos.count -= 1;
							$("photos").style.width = ( 90 * mon_compte.photos.count )+"px";
							// Recharger la premiere de la liste si il en reste
							if (mon_compte.photos.count > 0)
							{
								// @FIXME
								ls_new = $('photolist').firstDescendant().firstDescendant().title.split("-");
								mon_compte.photos.select(ls_new[1], ls_new[0] , mon_compte.photos.phpthumb);
								mon_compte.photos.current = ls_new[0];
							}
						},
						onFailure: function() {}
					}
				);
			}
		},
		// sélection d'une photo par défaut
		defaut : function ( )
		{
			if (mon_compte.photos.current != "")
			{
				// Requete de suppression de la base
				new Ajax.Request
				(	cfg.request,
					{
						method: 'get', parameters: { mode: 'defaut_photo', rec_photo : mon_compte.photos.current},
						onSuccess: function(transport) {alert("Cette photo est maintenant celle présentée par défaut sur votre annonce.");},
						onFailure: function() {}
					}
				);
			}
		},
		// Sélection d'un album en particulier
		select_album : function(event)
		{
			if (!Event.element(event).id.startsWith("A") ) return;
			if ( Event.element(event).id.substr(1) ==  mon_compte.photos.album ) return;
			
			$("current_photo").update();
			mon_compte.photos.current = "";

			mon_compte.photos.album = Event.element(event).id.substr(1);
			// Mise à jour intitulé album
			// $("current_album").update( $(Event.element(event)).innerHTML.stripTags() +", Ajouter des éléments" );
			// $("current_album").update( $(Event.element(event)).up("LI").innerHTML.stripTags() );
			$("current_album_elt").update( $(Event.element(event)).up("LI").innerHTML.stripTags() );
			
			$("id_album").value=mon_compte.photos.album;
			// Nature des media
			if ( mon_compte.photos.album != 3 )
			{
				$("current_video").style.display="none"; $("current_photo").style.display="block";
				$("envoie_photo").action = cfg.post+"?mode=photo";
				$("type_fichier").update(" ( *.jpg uniquement )" );
				$("video_files").hide();$("photo_files").show();
				// playerOne.stop();
				$("file4").value = ""; 
			}
			else
			{
				$("current_video").style.display="block"; $("current_photo").style.display="none";
				$("envoie_photo").action = cfg.post+"?mode=video";
				$("type_fichier").update(" ( *.avi, *.flv, *.mkv )" );
				$("video_files").show();$("photo_files").hide();
				for ( i = 1 ; i < 4 ; i++ ) { $("file"+i).value = ""; }

			}

			// Réafficher les photo de l'album courant
			$("photolist").select("DIV").each( 
					function(s) 
					{
						if ( s.id !="")
						{
							if ( s.hasClassName("album"+mon_compte.photos.album) ) { s.show(); }
							else { s.hide(); }
						}
					} 
			);
			
			// Photo par défaut activé uniquement sur Album public (1 )
			if ( mon_compte.photos.album != 1 ) { $("defaut_photo").hide(); }
			else { $("defaut_photo").show(); }
			
			return false;
			
		},
		// contrôle extension du fichier et Post du formulaire
		ctrl_ext : function( file )
		{
			if ( mon_compte.photos.album != 3 )
			{
				var one_file = false;
				// Contrôler file1 à 3
				for ( i = 1 ; i < 4 ; i++ )
				{
					if ( $("file"+i).value != ""  )
					{
						one_file = true;
						if(!/(\.jpg)$/i.test(  $("file"+i).value.toLowerCase() ))
						{
							alert(i + " => Désolé, nous n'acceptons que les fichiers .jpg"); return false; 
						}
					}
				}
				
				if (!one_file ) { alert("Sélecftionnez au moins un fichier a envoyer"); return false;  }
				
			}
			else
			{
				// Contrôler file4
				if ( $("file4").value != ""  )
				{
					if(!/(\.avi|\.mpg|\.3gp|\.mov|\.mkv|\.wmv|\.flv)$/i.test(  $("file4").value.toLowerCase() ))
					{
						alert("Désolé, nous n'acceptons que les fichiers (.avi , .mpg, .3gp, .mov, .mkv) "); return false; 
					}
				}
				else
				{
					 alert("Sélecftionnez un fichier a envoyer"); return false;
				}
			}

			return true;
		}
		
	},
	// Faire certifier son annonce
	certification : 
	{
		// contrôle extension du fichier et Post du formulaire
		ctrl_ext : function( file )
		{
			nom_fichier = file.toUpperCase();
			var pos=nom_fichier.indexOf(".JPG");
			if ( pos > 0 )  
			{ 
				$("send_certif").action = cfg.post+"?mode=cert";
				return true;
			}
			else  { alert("Désolé, nous n'acceptons que les fichiers .jpg"); return false; }
		},
		// Résultat de l'envoie de la photo
		send_result : function( as_file )
		{
			if ( as_file == "" ) return;
			$("gp_visu").style.display="block";
			$("certif_photo").style.background="transparent url("+as_file+") no-repeat center";
			$("gp_close").onclick= mon_compte.certification.close;
			set_masque(true);
			// Envoyer un message à l'utilisateur pour lui dire que sa demande a bien été enregistré
			
			
			// Afficher l'info comme quoi la demande est en cours
			
			
		},
		close : function()
		{
			$("gp_visu").update();
			$("gp_visu").style.display="none";
			set_masque(false);
			$("certif_attente").update("Votre demande a été enregistrée et sera traitée aussi rapidement que possible, merci.");
			$("certif_attente").style.display="block";
			$("certif_demande").style.display="none";			
		},
		// Afficher les infos de la demande en cours
		info_certif : function( id_certif, status)
		{
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'certif_info', id : id_certif },
					onSuccess: function(transport)  
					{ 
						var json = transport.responseText.evalJSON(); 
						if ( json != null )
							$("d"+status).update( "Le " + json[0]['date']); 
					},
					onFailure: function() {}
				}
			);
		}
		
	},
	// Gestion des sites perso
	site:
	{
		// Envoyer les données pour ajouter son site perso
		add : function()
		{
			
			// Tous les champs sont obligatoires
			if ($("titre_site").value.length == 0)  { mon_compte.site.log_error("titre_site" , "Veuillez péciser <B><font color='red'>le titre de votre site</font></B> avant de poursuivre, Merci.");return false; }
			if ($("url_site").value.length == 0)  {mon_compte.site.log_error("url_site" , "Veuillez péciser <B><font color='red'>l'adresse de votre site</font></B> avant de poursuivre, Merci.");return false; }
			if ($("desc_site").value.length == 0)  {mon_compte.site.log_error("desc_site" , "Veuillez péciser <B><font color='red'>la description de votre site</font></B> avant de poursuivre, Merci.");return false; }
			if ($("url_retour").value.length == 0)  {mon_compte.site.log_error("url_retour" , "Veuillez péciser <B><font color='red'>l'adresse de la page ou se trouve notre lien</font></B> avant de poursuivre, Merci.");return false; }
		
			new_val = $('site_form').serialize(true) ;
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'add_perso', data : Object.toJSON(new_val) },
					onSuccess: function(transport) 
					{ 
						// $("site_header").style.display="none";
						$("site_header_info").style.display="none";
						$("site_form_header").update("Modifier les infos de mon site perso");
						$("site_form_submit").value="Modifier les informations";
						$("site_form_submit").onclick = mon_compte.site.update;
						$("site_form_statut").update("En attente de validation");
						$("site_form_statut").show();
						alert("Votre demande de lien a été prise en compte et sera étudiée par nos modérateurs, merci.");
					},
					onFailure: function() {}
				}
			);
		},
		update : function()
		{
			// Envoyer les données
			new_val = $('site_form').serialize(true) ;
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'update_perso', id:  mon_compte.site_perso, data : Object.toJSON(new_val) },
					onSuccess: function(transport) 
					{ 
						alert("Votre modification a été enregistrée et sera contrôlée par nos modérateurs, merci.");
					},
					onFailure: function() {}
				}
			);
			
		},
		// Affichage des Erreurs
		log_error : function( as_champ, as_text)
		{
			// Afficher le masque transparent
			set_masque(  true );
			
			// Formulaire de demande de mot de passe
			new Ajax.Request
			(	cfg.stdlib+'error_code.php',
				{
					method: 'get', parameters: {mode:'INSC', Err_Text : as_text },
					onSuccess: function(transport) 
					{ 
						$("cont_alerte").update( transport.responseText );
						popup.setposition( "cont_alerte" , "full", 460,275, "erreur_inscription" , "" );
					},
					onFailure: function() {}
				}
			);
		},
		remove : function()
		{
			
		}
	},
	// Gestion du paramètrage Webcam utilisateur
	webcam : 
	{
		// Gestion des paramètres d'accès aux salons Cam
		build : function()
		{
			if ( gi_user != -1 )
			{
				// Observer les change des Selects
				Event.observe('user_cam_option', 'change', mon_compte.webcam.update_liste.bindAsEventListener(mon_compte.webcam) );
				// Observer le click sur le bouton de sauvegarde
				$("save_cfg_webcam").onclick = mon_compte.webcam.save;
				// Mettre les valeurs de l'utilisateur
				mon_compte.webcam.retrieve.defer();
			}
			else
			{
				$("save_cfg_webcam").hide();
			}
		},
		// Event de Modification d'un valeur de liste
		on_change : function( event ) { mon_compte.webcam.update_liste(); },
		// Modification d'un valeur de liste
		update_liste : function()
		{
			if ( ( $("privilege").value == 0 ) || ( $("privilege").value == -1 )) { $("privilege_h").hide();$("privilege_c").hide();$("privilege_f").hide();}
			else { $("privilege_h").show();$("privilege_c").show();$("privilege_f").show(); }
		},
		// Charger le paramètre utilisateur
		retrieve : function()
		{
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: { mode: 'get_config_cam' },
					onSuccess: function(transport) 
					{ 
						var json = transport.responseText.evalJSON();
						if ( json[0])
						{
							$("privilege").value 	= json[0]["privilege"]; 	$("privilege").className		="valeur"+json[0]["privilege"];
							$("privilege_h").value = json[0]["privilege_h"];	$("privilege_h").className	="valeur"+json[0]["privilege_h"];
							$("privilege_f").value 	= json[0]["privilege_f"];	$("privilege_f").className	="valeur"+json[0]["privilege_f"];
							$("privilege_c").value = json[0]["privilege_c"];	$("privilege_c").className	="valeur"+json[0]["privilege_c"];
							mon_compte.webcam.update_liste.defer();
						}
						// Que fait -on si il n' a pas de valeur : Tout autorisé par defaut
					},
					onFailure: function() {}
				}
			);
		},
		// Enregistrer le paramètre utilisateur
		save : function()
		{
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: { mode: 'set_config_cam' , p:$("privilege").value ,  h:$("privilege_h").value, f:$("privilege_f").value, c:$("privilege_c").value },
					onSuccess: function(transport) 
					{ 
						// @TODO : Teste du retour ?
						var json = transport.responseText.evalJSON();
						if ( json[0])
						{
							$("privilege").value 	= json[0]["privilege"]; 	$("privilege").className		="valeur"+json[0]["privilege"];
							$("privilege_h").value = json[0]["privilege_h"];	$("privilege_h").className	="valeur"+json[0]["privilege_h"];
							$("privilege_f").value 	= json[0]["privilege_f"];	$("privilege_f").className	="valeur"+json[0]["privilege_f"];
							$("privilege_c").value = json[0]["privilege_c"];	$("privilege_c").className	="valeur"+json[0]["privilege_c"];
							mon_compte.webcam.update_liste.defer();
						}
						alert("Vos modifications ont bien été enregistrées, merci");
					},
					onFailure: function() {}
				}
			);
		}
	}
		
};

//******************************************************************************************************
// gestion de l'affichage d'une fiche
var fiche = 
{
	current_tab : "profil",
	ii_current_user :0,
	is_pseudo_user :"",
	ii_sexe_user : 0,
	ii_fiche : 0,
	ii_current_photo : 0, ii_curent_album : 0,
	gp_list :"",
	is_acces : "",
	
	build : function(ai_rec_user, ai_sexe_user,  ai_fiche,  ai_nb_photos, as_pseudo, ai_sexe)
	{
		common();
		// Vi de l'utilisateur
		fiche.ii_current_user = ai_rec_user;				// Session : recnum_user
		fiche.ii_sexe_user = ai_sexe_user;				// Session : Sexe_user
		fiche.is_pseudo_user = as_pseudo;				// Pseudo de la fiche
		fiche.ii_fiche = ai_fiche;								// recnum de la fiche
		// Evt de changement d'onglet
		Event.observe('compte_tab', 'click', select_tab.bindAsEventListener(this, "compte_tab") );
		
		// Bouton de commande
		$("alerte").onclick = fiche.alerte;					// Dénoncer une annonce
		$("contact").onclick = fiche.contact;				// Ajouter à mes contacts
		$("indesirable").onclick = fiche.indesirable;	// Ajouter aux indésirables
		// Masque du profil suivant le sexe
		if ( ai_sexe < 4 ) { $("detailH").show(); $("detailF").hide(); } 
		else if ( ( ai_sexe < 7 ) && ( ai_sexe >3  ) ) { $("detailH").hide();$("detailF").show(); } 
		else if ( ai_sexe >= 7 )  { $("detailH").show();$("detailF").show(); } 
		// Courrier 
		$("click_send_mail").onclick = function() { 	 message.ii_current=ai_rec_user;message.build( fiche.ii_fiche , fiche.is_pseudo_user); };
		// Flash
		if ( $("click_send_tchat")) {$("click_send_tchat").onclick = function() { tchat.build(fiche.ii_fiche, fiche.is_pseudo_user); };}
		// Gestion certification
		if (  $("certification") ){ if (  $("certification").className  == "" ) 	{	$("certification").onclick = fiche.certifie;} 	}
		// Event sur la sélection d'un album
		Event.observe('open_album', 'click', this.select_album.bindAsEventListener(this) );
		// Rechercher toutes les photos / Vidéos
		lst_ph 			= $("medias").select("DIV");
		// Liste de tous les médias
		fiche.ii_curent_album = 1;
		fiche.gp_list = new Array(); 
			fiche.gp_list[1] = new Array(); 
			fiche.gp_list[2] = new Array(); 
			fiche.gp_list[3] = new Array(); 
			
		// Liste de tous les média par album
		lst_ph.each( 
				function(s) 
				{
					if ( s.hasClassName("album1") ) { 	fiche.gp_list[1][fiche.gp_list[1].length] = s.id.substr(3);  }
					else if ( s.hasClassName("album2") ) { 	fiche.gp_list[2][fiche.gp_list[2].length] = s.id.substr(3);s.hide();  }
					else if ( s.hasClassName("album3") ) { 	fiche.gp_list[3][fiche.gp_list[3].length] = s.id.substr(3);s.hide();  }
				}
		);

		// Rechercher les autorisation d'accès de current user sur ai_fiche
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'is_allow', rec_fiche : fiche.ii_fiche },
				onSuccess: function(transport) 
				{ 
					fiche.is_acces = new Array(); fiche.is_acces[2] = "";fiche.is_acces[3] = "";
					var json = transport.responseText.evalJSON();
					// pas d'accès
					if ( (json==null ) ||  (json.length==0)) {}
					else
					{
						for (i = 0 ; i< json.length ; i++ ) { fiche.is_acces[ json[i]['album'] ] = json[i]['fin_acces']; }
					}
				},
				onFailure: function() {}
			}
		);
		
		// Album public à afficher ou non
		// if ( lst_ph.length > 0 ) {$("public_header").show();$("public_album").show();}
		// else { $("public_header").hide(); $("public_album").hide(); }

		// Positionner le bloc de visu
		$("gp_visu").style.height = ( document.viewport.getHeight() - 100 ) + "px";
		$("gp_visu").style.top = "50px";


		$("gp_close").onclick = fiche.hide_galerie;
		$("gp_next").onclick = fiche.next_ph;
		$("gp_prev").onclick = fiche.prev_ph;
		
		if ($("vote_photo"))
		{
			Event.observe('vote_photo', 'click', this.vote_photo.bindAsEventListener(this) );
			// regarder si on est en train de consulter son annonce
			if ( fiche.ii_current_user == fiche.ii_fiche )
			{
				// masquer le vote
				$("show_vote").style.display="none";
				$("hide_vote").update("Pas de vote pour ses photos");
				$("hide_vote").style.display="block";
			}
			// regarder si on a déjà voté pour cette annonce
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode : 'check_vote', rec_fiche : fiche.ii_fiche },
					onSuccess: function(transport) 
					{ 
						// @TODO : retour
						var json = transport.responseText.evalJSON(); 
						if ( json != null )
						{
							$("show_vote").style.display="none";
							$("hide_vote").update("Vote ("+ json[0]['nb']+") enregistré le "+ json[0]['dt']);
							$("hide_vote").style.display="block";
						}
						
					},
					onFailure: function() {}
				}
			);	
		}
		
		// 	@TODO :  
		if ( fiche.ii_current_user == -1 ) { $("current_photo").update("Non disponible pour les visiteurs"); }
		
		// Si il y a un bouton de fermeture, l'activer
		if ($("close_fiche")) 
		{ 
			$("close_fiche").onclick = function() { parent.tchat_room.close_fiche(); }; 
		}
		
	},
	// Ajuster la taille si on est sur le salon webcam 
	ajuste : function () 
	{
		$("body").select("DIV.content").each( function(s) {s.style.height = ( document.viewport.getHeight() ) +"px";} );
	},
	// afficher un autre album
	select_album : function(event)
	{
		ls_id=Event.element(event).up("div.sbox").id; 
		if (!ls_id.startsWith("A") ) return;
		if ( ls_id.substr(1) ==  fiche.ii_curent_album ) return;
		fiche.ii_curent_album = ls_id.substr(1);
		
		// debugger;
		
		// Mise à jour intitulé album [ Avec le contrôle d'accès ]
		var ls_titre = "";
		if (fiche.ii_curent_album == 1 ) 
		{
			ls_titre="Album public, "+fiche.gp_list[1].length+" Photo(s)"; 
			if ($("player")  ) {$("player").style.display="none"; }
			if ($("vote_photo"))
			{
				$("show_vote").style.display="block";
				$("hide_vote").update("");
				$("hide_vote").style.display="none";
			}
		}
		else if (fiche.ii_curent_album == 2 ) 
		{
			ls_titre="Album privé, "+fiche.gp_list[2].length+" Photo(s)";
			if ( fiche.is_acces[2] != "" ) {ls_titre += " , <span style='color:red;'>accessible jusqu'au "+ fiche.is_acces[2] +"</span>"; }
			if ($("player")  ) {$("player").style.display="none"; }
			if ($("vote_photo"))
			{
				// masquer le vote
				$("show_vote").style.display="none";
				$("hide_vote").update("Pas de vote sur album privé");
				$("hide_vote").style.display="block";
			}
			
		}
		else if (fiche.ii_curent_album == 3 ) 
		{
			ls_titre="Album Vidéo privé, "+fiche.gp_list[3].length+" Vidéo(s)"; 
			if ( fiche.is_acces[3] != "" ) {ls_titre += " , <span style='color:red;'>accessible jusqu'au "+ fiche.is_acces[3] +"</span>"; }
			if ( $("player") ) { $("player").style.display="block"; }
			
			if ($("vote_photo"))
			{
				$("show_vote").style.display="none";
				$("hide_vote").update("");
				$("hide_vote").style.display="block";
			}
		}
		$("selected_A").update( ls_titre );
		
		// Réafficher les média de l'album courant
		$("medias").select("DIV").each( 
				function(s) 
				{
					if ( s.id !="")
					{
						if ( s.hasClassName("album"+fiche.ii_curent_album) ) { s.show(); }
						else { s.hide(); }
					}
				} 
		);
		
	},
	
	// Visiteur ?
	visiteur : function() { if ( fiche.ii_current_user  == -1 ) { return true; } else { return false;} },
	add_close_btn : function()
	{
		// ?
		// alert("put close");
	},
	// contrôle du mot de passe pour une photo	
	valide_pswd_photo : function()
	{
		// valide le mot de passe pour une photo
		if ( $("pswd_photo").value == "" ) return;
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'pswd_photo', fiche : fiche.ii_fiche , pswd : $("pswd_photo").value },
				onSuccess: function(transport) 
				{ 
					//controle du mot de passe dans la base
					if ( transport.responseText.strip() =="1" ) 
					{
						$("cont_alerte").update();
						$("cont_alerte").style.display="none";
						fiche.select_photo( "", -1 , 1 ); 
					}
					else if ( transport.responseText.strip() =="-1" ) {	alert("Erreur, Mot de passe incorrect !." ); }
				},
				onFailure: function() {}
			}
		);
	},
	// Ajouter une photo à la liste des photos existantes
	select_photo : function( src_file , ai_photo , ab_protect )
	{
		//debugger;
		if ( fiche.visiteur() )
		{
			// Afficher le masque transparent
			set_masque(true);
			// Formulaire Visiteur
			new Ajax.Request
			(	cfg.lib+'fiche_cmd.php',
				{
					method: 'get', parameters: {mode:'visiteur' },
					onSuccess: function(transport) 
					{
						$("cont_alerte").update( transport.responseText );
						if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					},
					onFailure: function() {}
				}
			);	
					
			return;
		}

		if ( gi_st == 1 )
		{
			// Afficher le masque transparent
			set_masque(true);
			// Formulaire Visiteur
			new Ajax.Request
			(	cfg.lib+'fiche_cmd.php',
				{
					method: 'get', parameters: {mode:'membre' },
					onSuccess: function(transport) 
					{
						$("cont_alerte").update( transport.responseText );
						if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					},
					onFailure: function() {}
				}
			);	
					
			return;
		}

		
		// @FIXME : Ne pas utiliser le title pour la navigation, trouver autre chose
		// controle éventuel d'une autorisation
		if ( fiche.ii_curent_album != 1  )
		{
			if  ( $("A"+ fiche.ii_curent_album+"_acces").hasClassName("protect") && ( fiche.ii_current_user != fiche.ii_fiche) )
			{
				// Album verouillé
				alert("Désolé cet album ne vous a pas été ouvert, demander à l'utilisateur une autorisation d'accès");
				// return;
				if ( fiche.ii_current_user != 4 ) return;
			}
		}
		
		// Afficher le masque
		set_masque(true);
		$("gp_visu").style.display="block";
		fiche.ii_current_photo = fiche.gp_list[ fiche.ii_curent_album].indexOf(ai_photo) + 1;

		if (fiche.ii_curent_album !=3 )
		{
			// Afficher la photo sélectionnée
			$("gp_title").update("Photo "+fiche.ii_current_photo +" / " + ( fiche.gp_list[ fiche.ii_curent_album].length  ));
			// Dans le cas ou la miniature n'est pas encore générée
			// file = src_file.replace("ti-","ph-");
			// Dans le cas ou la miniature est déjà encore générée
			// file = src_file.replace("t-","p-"); file = src_file.replace("_75","_450");
			
			$("current_photo").style.background="transparent url("+src_file+") no-repeat center";
		}
		else
		{
			// ab_protect.width = 250;
			// ab_protect.height = 250;
			// alert(src_file); [510 , 370 ]
			$("player").style.width=ab_protect.width+"px";
			$("player").style.height=ab_protect.height+"px";
			
			// $("player").style.top= (90 + (370 - ab_protect.height) /2 )+"px";
			
			$("player").style.top= "50px";
			$("player").style.left= "50px";
			$("player").style.left= (50 + (690 - ab_protect.width) /2 )+"px";

			$("gp_title").update("Vidéo "+fiche.ii_current_photo +" / " + ( fiche.gp_list[ fiche.ii_curent_album].length  ));
			
			$f("player", "flowplayer-3.1.3.swf", src_file); 			
		}

		// Bouton de navigation
		if ( fiche.ii_current_photo ==  1) { $("gp_prev").style.display="none"; } else { $("gp_prev").style.display="block"; }
		if ( fiche.ii_current_photo ==  ( fiche.gp_list[ fiche.ii_curent_album].length ) ) { $("gp_next").style.display="none"; } else { $("gp_next").style.display="block"; }
			
	},
	
	hide_galerie : function()
	{
		$("current_photo").style.background="transparent url() no-repeat center";
		$("gp_visu").style.display="none";
		$('Hide').style.zIndex = -1; 
		top.chat.masque( false);
	},
	next_ph : function()
	{
		if ( fiche.ii_curent_album < 3 ) 
		{
			t = $("PH_"+fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo]).title;
			fiche.select_photo ( t , fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo] , 1);
		}
		else
		{
			t = $("PH_"+fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo]).title.split("|")[0];
			s = eval("size="+$("PH_"+fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo]).title.split("|")[1]);
			fiche.select_photo ( t ,  fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo] , size);
		}
	},
	prev_ph : function()
	{
		if ( fiche.ii_curent_album < 3  ) 
		{
			t = $("PH_"+fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo - 2]).title;
			fiche.select_photo ( t , fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo - 2] , 1);
		}
		else
		{
			t = $("PH_"+fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo - 2]).title.split("|")[0];
			s = eval("size="+$("PH_"+fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo - 2]).title.split("|")[1]);
			fiche.select_photo ( t , fiche.gp_list[  fiche.ii_curent_album ][ fiche.ii_current_photo - 2] , size);
		}
	},
	// Voter pour une photo
	vote_photo : function ()
	{
		// debugger;
		if ( $("vote_photo_note").value =="" ) return;
		
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'vote_photo', rec_fiche : fiche.ii_fiche ,rec_media : fiche.gp_list[1][fiche.ii_current_photo - 1] , note : $("vote_photo_note").value},
				onSuccess: function(transport) 
				{ 
					// @TODO : Une fois enregistré il faut masquer le vote
					$("show_vote").style.display="none";
					$("hide_vote").update("Vote enregistré");
					$("hide_vote").style.display="block";
					
					
				},
				onFailure: function() {}
			}
		);		
	},
	// Denoncer l'annonce aux webmasters
	alerte : function()
	{
		// Afficher le masque transparent
		set_masque(true);
		// Formulaire de demande de mot de passe
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode:'alerte'},
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					else
					{
						popup.setposition( "cont_alerte" ,780, 460,275, "undo_alerte" , "" );
						$("envoie_alerte").onclick= fiche.alerte_send;
					}
				},
				onFailure: function() {}
			}
		);
	},
	alerte_send : function()
	{
		if ( $("motif").value=="" ) {alert("Veuillez renseignez le commentaire, Merci.");return; }
		// Recherche dans la base
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'alerte', rec_fiche : fiche.ii_fiche , motif : $("motif").value},
				onSuccess: function(transport) 
				{ 
					set_masque( false );
					// Test de retour
					$('cont_alerte').style.display = "none";
					if ( transport.responseText.strip() =="1" ) {alert("Merci de cette remarque, nous la traiteront dés que possible." );}
					// else { alert("Erreur lors de l'enregistrement de  cette remarque." ); }
				},
				onFailure: function() {}
			}
		);
	},
	// Ajouter  l'annonce dans ces contacts
	contact: function()
	{
		// Afficher le masque transparent
		set_masque(true);
		// Formulaire de demande de mot de passe
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode:'contact' },
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					else
					{
						popup.setposition( "cont_alerte" , 780, 460,275, "undo_contact" , "" );
						$("add_contact").onclick= fiche.contact_send;
					}
				},
				onFailure: function() {}
			}
		);
	},
	contact_send: function()
	{
		// Recherche dans la base
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'contact', rec_fiche : fiche.ii_fiche , commentaire : $("annotation").value  , carnet :'C'  },
				onSuccess: function(transport) 
				{ 
					set_masque(false);
					if ( transport.responseText.strip() =="1" ) {alert("Merci ce pseudo a bien été enregsitré dans vos contacts." );}
					else if ( transport.responseText.strip() =="-1" ){alert("Erreur, vous avez ce pseudo est déjà dans vos contacts.." );}
					else if ( transport.responseText.strip() =="-2" ){alert("Erreur, vous avez ce pseudo est déjà dans vos contacts.." );}
					else if ( transport.responseText.strip() =="-10" ){alert("Désolé vous ne pouvez vous ajouter dans vos contacts.." );}
					$('cont_alerte').style.display = "none";
					
				},
				onFailure: function() {}
			}
		);
	},
	// Ajouter  l'annonce dans ces indésirables
	indesirable: function()
	{
		// Afficher le masque transparent
		set_masque(true);
		// Formulaire de demande de mot de passe
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode :'indesirable'},
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					else
					{
						popup.setposition( "cont_alerte" , 780,460,275,"undo_indesirable" , "" );
						$("add_indesirable").onclick= fiche.indesirable_send;
					}
				},
				onFailure: function() {}
			}
		);
	},
	indesirable_send: function()
	{
		new Ajax.Request 
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'contact', rec_fiche : fiche.ii_fiche , commentaire : $("annotation").value , carnet :'I' },
				onSuccess: function(transport) 
				{ 
					set_masque(false);
					if ( transport.responseText.strip() =="1" ) {alert("Merci ce pseudo a bien été enregsitré dans votre liste noire ." );}
					else if ( transport.responseText.strip() =="-1" ){alert("Erreur, vous avez ce pseudo est déjà dans votre liste noire.." );}
					else if ( transport.responseText.strip() =="-2" ){alert("Désolé, ce seudo est déjà dans vos contacts.." );}
					else if ( transport.responseText.strip() =="-10" ){alert("Désolé vous ne pouvez vous ajouter dans votre liste noire.." );}
					$('cont_alerte').style.display = "none";
				},
				onFailure: function() {}
			}
		);
	},
	// Certifier cette annonce
	certifie : function()
	{
		// Afficher le masque transparent
		set_masque(true);
		// Formulaire de demande de mot de passe
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode : 'certifie' },
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					else
					{
						popup.setposition( "cont_alerte" , 780,460,275, "undo_certif" , "" );
						$("valid_certif").onclick= fiche.certif_valid;
					}
				},
				onFailure: function() {}
			}
		);
	},
	// valider la certification	
	certif_valid : function()
	{
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'certifie', rec_fiche : fiche.ii_fiche},
				onSuccess: function(transport) 
				{ 
					set_masque( false );
					// mettre l'utilisateur en certifié
					if ( transport.responseText.strip() =="1" ) 
					{
						// @TODO : mettre à jour la classe du pseudo ( icones )
						alert("Cette annonce est maintenant certifiée !" );
					}
					else if ( transport.responseText.strip() =="-1" ) {	alert("Erreur lors de la certification !" ); }
					$('cont_alerte').style.display = "none";
				},
				onFailure: function() {}
			}
		);
	}
};

//******************************************************************************************************
// gestion de ma messagerie ( Courrier )
var inbox = 
{
	ii_selected : 0,			// Mail sélectionné
	ii_user_selected : 0,		// Utilisateur sélectionné ( Mail )
	header : '',
	is_carnet : '',				// Carnet de contact sélectionné
	ii_contact : 0,				// Contact actuellement sélectionné
	current_tab : '',
	build : function( as_onglet )
	{
		common();
		// Hauteur des différents blocs
		$("mailbloc").style.height = ( $("content").getHeight() - 75 ) +"px";
		$("blackbloc").style.height = ( $("content").getHeight() - 75 ) +"px";
			$("blackliste").style.height = ( $("mailbloc").getHeight() - 150 ) +"px";
		$("contactbloc").style.height = ( $("content").getHeight() - 75 ) +"px";
		
			if ( Prototype.Browser.IE ) {  $("contactliste").style.height = ( $("mailbloc").getHeight() - 170 ) +"px"; }
			else { $("contactliste").style.height = ( $("mailbloc").getHeight() - 150 ) +"px"; }

		$("headers_mail").style.top = "26px";
		$("headers_mail").style.height = ( $("headers_mail").getHeight() - 60 ) +"px";
		
		// Bouton de commandes
		$("reply_msg").onclick	= inbox.reply;				// Répondre à 
		$("del_msg").onclick 	= inbox.del_msg;				// Suppression de msg
		$("add_ct").onclick 	= inbox.add_contact;			// Utilisateur en contact
		$("add_ln").onclick 	= inbox.add_indesirable;		// Utilisateur en indésirable
		
		$("update_contact").onclick = inbox.update_contact;		// Mettre à jour description contact
		$("del_contact").onclick = inbox.del_contact;				// Suppression contact

		$("update_black").onclick = inbox.update_contact;		// Mettre à jour description BlackListe
		$("del_black").onclick = inbox.del_contact;					// Suppression BlackListe

		$("save_rep_type").onclick = inbox.update_rep;			// Mettre à jour les réponses types
		
		// Evt de changement d'onglet
		Event.observe('compte_tab', 'click', select_tab.bindAsEventListener(this, "compte_tab") );
		
			// Sélection d'un pseudo sur click Div		
			Event.observe('pseudo_mail', 'click', this.load_mail.bindAsEventListener(this) );	
			// Template des lignes de header	
			this.header= new Template("<div id='m#{recnum}' class='msg_desc #{classe}'><div class='obj'><input type='checkbox' id='cbx_#{recnum}' class='cbx_form delmail'><span class='#{sens}' style='padding-left:20px;' title='#{read_title}'>#{date} - #{objet}</span></div><div class='txt #{read_class}' title='#{read_title}'>#{msg}</div><div class='pj'>#{pj}</div></div>");
			// Sélection d'un pseudo Contact
			Event.observe('contactliste', 'click', this.select_contact.bindAsEventListener(this, 'C') );	
			// Sélection d'un pseudo Blackliste
			Event.observe('blackliste', 'click', this.select_contact.bindAsEventListener(this, 'I') );	
			// Template des lignes de contact	
			this.header_contact= new Template("<TR id='c#{recnum}' class='#{classe}'><TD><input type='checkbox' id='cbx_#{recnum}' class='cbx_form delct'></TD><TD>#{date}</TD><TD>#{pseudo}</TD><TD>#{sexe}</TD></TR>");
		
		// La page est chargée avec utilisateur / Nb de message il faut rechercher et afficher les messages non lu
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'unread'},
				onSuccess: function(transport) 
				{ 
					// Données JSON
					var json = transport.responseText.evalJSON();
					for ( i=0 ; i< json.length; i++)
					{
						if ( $("u"+json[i][0]) )
						{
							$("u"+json[i][0]).removeClassName("read");
							$("u"+json[i][0]).addClassName("unread");
							$("u"+json[i][0]).title = json[i][1] + " Message(s) non lu(s)";
							
							$("u"+json[i][0]).next("LI").removeClassName("read");
							$("u"+json[i][0]).next("LI").addClassName("unread");
							
							$("u"+json[i][0]).previous("LI").addClassName("unread");
							
						}
					}
					
				},
				onFailure: function() {}
			}
		);
			
		// Choix d'ouvrir sur contact
		if ( as_onglet == "tabpage_contact") {inbox.open_tab("contact");}
		
		// Ménage à faire selon le statut de l'utilisateur
		if ( gi_user == -1 ) 
		{
				$("cmd_msg").select("BUTTON").each( function(s) {s.hide(); } );
				$("cmd_contact").select("BUTTON").each( function(s) {s.hide(); } );
				$("cmd_black").select("BUTTON").each( function(s) {s.hide(); } );
		}
		
	},
	// Ouverture sur un onglet
	open_tab : function(ls_tab)
	{
		if ( ls_tab != fiche.current_tab )
		{
			lst = $("compte_tab").select('DIV.TabPage');
			lst.each(function(s) {s.className="TabPage Tab0"; $("tabpage_"+s.id).style.display="none"; });		
			$(ls_tab).className="TabPage Tab1";
			fiche.current_tab = ls_tab;
			$("tabpage_"+ls_tab).style.display="inline";
		}
	},
	load_mail : function(event)
	{
		if ( Event.element(event).className.startsWith("sex") )
		{
			// on a cliqué sur l'icone, prendre le LI SUIVANT
			li_user = Event.element(event).next("LI").id.substr(1);
		}
		else if ( Event.element(event).hasClassName("nb") ) 
		{
			// on a cliqué sur le Dpt
			li_user = Event.element(event).previous("LI").id.substr(1);
		}
		else if ( Event.element(event).up("LI").id.substr(0,1) != "u" ) 
		{ 
			return ; 
		}
		else
		{
			// ID utilisateur
			li_user = Event.element(event).up("LI").id.substr(1);
		}
		
		// Si on est sur le même utulisateur fin
		
		if ( li_user == inbox.ii_user_selected ) { return;}
		
		inbox.ii_selected = 0;
		// Démarquer l'utilisateur sélectionné
		if (inbox.ii_user_selected > 0 ) { $("u"+inbox.ii_user_selected).removeClassName("mail_selected"); }
		
		// chargement des données
		inbox.load_liste(li_user);
	},
	// Charge la liste des mail échangé avec un utilisateur
	load_liste : function( li_user )
	{
		inbox.ii_user_selected = li_user;
		$("u"+inbox.ii_user_selected).addClassName("mail_selected");
		$("headers_mail").update();
		// Attention au comptes supprimés !
		if ( $("u"+inbox.ii_user_selected).previous().className=="sex0" )
		{
			// alert("compte supprimée");			
			$("header_lst_mail").update('Courrier(s) echangé(s) avec ' + $("u"+inbox.ii_user_selected).innerHTML.stripTags() + ' <B style="font-weight:normal;font-size:8pt;color:red;">(Ce compte a été supprimé)</B>' );
			$("reply_msg").hide();$("add_ct").hide();$("add_ln").hide();
		}
		else
		{
			$("header_lst_mail").update('Courrier(s) echangé(s) avec <A class="fwr style="cursor:pointer;" href="fiche.php?recnum='+li_user+'" target="_self"> ' + $("u"+inbox.ii_user_selected).innerHTML.stripTags() + '</A>' );
			$("reply_msg").show();$("add_ct").show();$("add_ln").show();
		}
		
		// Appel Ajax pour récuperer les entêtes de mail
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'get_header_mail', user : li_user},
				onSuccess: function(transport) 
				{ 
					// Données JSON
					var json = transport.responseText.evalJSON();
					// Mettre à jour headers_mail
					html_hearder = "";
					for ( i=0 ; i< json.length; i++)
					{
						if ( json[i]['objet'] == "" ) { obj = "(vide)"; } else {obj = json[i]['objet'];}
						
						if ( json[i]['photo'] == "" ) { pj = "&nbsp;"; } 
						else {pj = "<table width=30 height=30><TR><TD align=center valign=middle><img onclick='inbox.load_pj(\""+json[i]['ph450'] +"\");' src='"+ json[i]['photo'] +"' style='cursor:pointer;'></TD></TR></Table>"; }
						
						// Message reçu (black ) / envoyé ( blue )?
						if ( json[i]['rec_exp'] == inbox.ii_user_selected ) {ls_classe ="receive";  ls_classe_read ="receive";  ls_sens = "in";}
						else {ls_classe ="send"; ls_classe_read ="send";  ls_sens = "out";} 
						
						// Msg vide ?
						if ( json[i]['msg'] == "" ) { json[i]['msg'] = "(vide)"; } 
						
						// Message non lu ( ? ) / lu ( normal )?
						if ( (json[i]['etat_exp'] == 'n') || (json[i]['etat'] == 'n' ) )
						{ls_classe +="_unread"; ls_read="Message NON lu par le destinataire"; } else {ls_read="Message lu par le destinataire";}
						
						data = {recnum : json[i]['recnum'] , classe:ls_classe, sens:ls_sens, date: json[i]['date_msg'], objet: obj, pj:pj , read_class:ls_classe_read, read_title:ls_read, msg:json[i].msg };
						html_hearder += inbox.header.evaluate(data); 
					}
					$("headers_mail").update(html_hearder);
					inbox.ii_selected = 0;
					
					// Si il y avait des message non lu pour cet user remettre la classe en read
					$("u"+li_user).removeClassName("unread");
					$("u"+li_user).addClassName("read");
					$("u"+li_user).next().removeClassName("unread");
					$("u"+li_user).next().addClassName("read");
					
				},
				onFailure: function() {}
			}
		);
	},
	// Répondre à un utilisateur
	reply : function()
	{
		if ( inbox.ii_user_selected > 0 )
		{
			message.build( inbox.ii_user_selected , $("u"+inbox.ii_user_selected).innerHTML );
		}
	},
	// Supprime le message courant ( ou les messages sélectionnés )
	del_msg : function()
	{
		todelete = new Array();
		// pas d'utilisateur sélectionné => Fin
		if ( inbox.ii_user_selected == 0) return;
		
		// Recherche des toutes les CBX qui sont cochées
		lst_cbx = $("headers_mail").select("INPUT.delmail");
		for (i = 0 ; i < lst_cbx.length ; i++) { if ( lst_cbx[i].checked ){ todelete[ todelete.length ]= lst_cbx[i].id.substr(4); } }
		// Eléminer les doublons au cas ou ( A cause du msg courant )
		todelete = todelete.uniq();
		// Requete Ajax pour supprimer le(s) message(s) 
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'del_mail', rec_msg: todelete.toJSON() },
				onSuccess: function(transport) 
				{ 
					inbox.ii_selected = 0;
					// Si Ok suppression des TR
					for ( i = 0 ; i < todelete.length ; i++) { $($("m"+ todelete[i])).remove();	 }
					// Mettre à jour le compteur msg
					ls_compteur = parseInt($("u"+inbox.ii_user_selected).next().innerHTML) - todelete.length ;
					if ( ls_compteur >= 0 ) { $("u"+inbox.ii_user_selected).next().update(ls_compteur); }
				},
				onFailure: function() {}
			}
		);
	},
	// Formulaire d'ajout de contact
	add_contact : function()
	{
		if ( inbox.ii_user_selected == 0 ) return;
		
		// Afficher le masque transparent
		set_masque(true);
		// Formulaire de demande de mot de passe
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode:'contact'},
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					else
					{
						popup.setposition( "cont_alerte" , 780,460,275, "undo_contact" , "" );
						// Gestion des boutons du form
						$("add_contact").onclick= inbox.send_contact;
					}
				},
				onFailure: function() {}
			}
		);
	},
	// Formulaire d'ajout de contact
	send_contact : function()
	{
		// @TODO : Commentaire obligatoire ?
		if ( $("annotation").value.strip != "" )
		{
			// Recherche dans la base
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'contact', rec_fiche : inbox.ii_user_selected, commentaire : $("annotation").value  , carnet :'C'  },
					onSuccess: function(transport) 
					{ 
						// inbox.undo();
						// @TODO Test de retour à recontroler
						if ( transport.responseText.strip() =="1" ) {alert("Merci ce pseudo a bien été enregsitré dans vos contacts." );}
						else if ( transport.responseText.strip() =="-1" ){alert("Erreur, vous avez ce pseudo est déjà dans vos contacts.." );}
						else if ( transport.responseText.strip() =="-10" ){alert("Désolé vous ne pouvez vous ajouter dans vos contacts.." );}
						set_masque( false );
						$("cont_alerte").style.display = "none";
					},
					onFailure: function() {}
				}
			);
		}
	},
	// Formulaire d'ajout de contact en Liste noire
	add_indesirable : function()
	{
		if ( inbox.ii_user_selected == 0 ) return;
		
		// Afficher le masque transparent
		set_masque(true);
		// Formulaire de demande de mot de passe
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode:'indesirable'},
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
					else
					{
						popup.setposition( "cont_alerte" , 780,460,275, "undo_indesirable" , "" );
						// Gestion des boutons du form
						$("add_indesirable").onclick= inbox.send_indesirable;
					}
				},
				onFailure: function() {}
			}
		);
	},
	// Formulaire d'ajout de contact
	send_indesirable : function()
	{
		// @TODO : Commentaire obligatoire ?
		if ( $("annotation").value.strip != "" )
		{
			// Recherche dans la base
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'contact', rec_fiche : inbox.ii_user_selected, commentaire : $("annotation").value  , carnet :'I'  },
					onSuccess: function(transport) 
					{ 
						// inbox.undo();
						// @TODO Test de retour à recontroler
						if ( transport.responseText.strip() =="1" ) {alert("Merci ce pseudo a bien été enregsitré dans votre liste noire." );}
						else if ( transport.responseText.strip() =="-1" ){alert("Erreur, vous avez ce pseudo est déjà dans votre liste noire." );}
						else if ( transport.responseText.strip() =="-10" ){alert("Désolé vous ne pouvez vous ajouter à votreliste noire." );}
						set_masque( false );
						$("cont_alerte").style.display = "none";
					},
					onFailure: function() {}
				}
			);
		}
	},
	// Lecture de la pj
	load_pj : function( elt )
	{
		// Afficher le masque transparent
		set_masque(true);
		// Charger la page de visualisation
		new Ajax.Request
		(	cfg.lib+'fiche_cmd.php',
			{
				method: 'get', parameters: {mode:'visu_pj'},
				onSuccess: function(transport) 
				{ 
					$("cont_flash").update( transport.responseText );
					popup.setposition( "cont_flash" , 780,500,380, "close_pj" , "" );
					// Gestion des boutons du form
					$("large_pj").src = elt;
				},
				onFailure: function() {}
			}
		);
	},
	//*************************************************************************
	// Charge la liste des contacts pour un carnet donné
	load_contact : function( event )
	{
		// Déterminer le carnet à utiliser
		if ( Event.element(event).id  =="CT" ) { inbox.is_carnet ="C"; }
		else if ( Event.element(event).id  =="IND" )  { inbox.is_carnet ="I"; }
		else { return; }
		// Néttoyer l'affichage précédent
		$("headers_contact").update();
		// Appel Ajax pour récuperer les entêtes de contacts
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'get_contact_list', carnet : inbox.is_carnet},
				onSuccess: function(transport) 
				{ 
					// Données JSON
					var json = transport.responseText.evalJSON();
					// Mettre à jour headers_contact
					html_contact = "";
					for ( i=0 ; i< json.length; i++)
					{
						if ( json[i]['pseudo'] == "" ) {pseudo = "(Désinscrit)"; sexe   = "&nbsp;"; } 
						else {pseudo 	= json[i]['pseudo'];sexe 	= json[i]['libsexe'];}
						data = {recnum : json[i]['rec_user'] , classe:"",  date: json[i]['date'], pseudo: pseudo, sexe:sexe};
						html_contact += inbox.header_contact.evaluate(data); 
					}
					$("headers_contact").update(html_contact);
					// Réinitialiser la partie détail contact courant
					$("detail_contact").update();
					$("txt_contact").value = "";
					
				},
				onFailure: function() {}
			}
		);
	},
	// Détail d'un contact
	select_contact : function( event , carnet)
	{
		id_contact = 	Event.element(event).id;
		
		if ( !(  (id_contact.startsWith("c_")) ||  (id_contact.startsWith("b_")) ) ) return;
		
		ls_id = id_contact.substr(2);
		inbox.ii_contact = ls_id;

		// Requete Ajax pour avoir le message complet 
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'get_contact_detail', rec_contact: ls_id },
				onSuccess: function(transport) 
				{ 
					// Données JSON
					var json = transport.responseText.evalJSON();
					
					if ( json )
					{
						// Mettre à jour détail contact : Certifié / Statut / Derniere connexion
						if ( carnet=="C")
						{
							if ( Event.element(event).previous().className == "sex0"  )
							{
								$("info_contact").update( json['pseudo'] + ' (Compte supprimé)' );
							}
							else
							{
								$("info_contact").update( '<A href="fiche.php?recnum='+ls_id+'" target="_self">'+json['pseudo']+'</A' );
							}
							$("txt_contact").value = json['annotation'];
						}
						else
						{
							if ( Event.element(event).previous().className == "sex0"  )
							{
								$("info_black").update( json['pseudo'] + ' (Compte supprimé)' );
							}
							else
							{
								$("info_black").update( '<A href="fiche.php?recnum='+ls_id+'" target="_self">'+json['pseudo']+'</A' );
							}
							$("txt_black").value = json['annotation'];
						}
					}
					
				},
				onFailure: function() {}
			}
		);
	},
	// Mettre à jour l'annotation pour le contact en cour
	update_contact : function( )
	{
		if ($("txt_contact").value == "") { return; }
		// Requete Ajax pour mettre à jour la base 
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'update_contact', rec_contact: inbox.ii_contact , annotation:$("txt_contact").value },
				onSuccess: function(transport) 
				{ 
					// retour à tester
					if ( transport.responseText.strip() =="1" ) {alert("Votre commentaire a bien été mis à jour." );}
					else if ( transport.responseText.strip() =="-1" ){alert("Erreur lors de la mise à jour, vérifier le commentaire et éviter le caractère \" " );}
				},
				onFailure: function() {}
			}
		);
		
	},
	// Supprimer le(s) contact(s) sélectionné(s)
	del_contact : function( )
	{
		var carnet = "";
		todelete = new Array();
		todelete[ todelete.length ]= inbox.ii_contact;
		// Recherche des toutes les CBX qui sont cochées  
		if ( this.id =="del_black") 
		{ 
			carnet="I"; 
			lst_cbx = $("blackliste").select("INPUT.delct");
		} 
		else 
		{ 
			carnet='C'; 
			lst_cbx = $("contactliste").select("INPUT.delct");
		}
		
		// Eléminer les doublons et non checkées au cas ou ( A cause du msg courant )
		for (i = 0 ; i < lst_cbx.length ; i++) { if ( lst_cbx[i].checked ){ todelete[ todelete.length ]= lst_cbx[i].id.substr(4); } }
		todelete = todelete.uniq();
		
		// Requete Ajax pour supprimer le(s) message(s) 
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'del_contact', rec_contact: todelete.toJSON() },
				onSuccess: function(transport) 
				{ 
					inbox.ii_contact = 0;
					// Si Ok suppression des LI
					for ( i = 0 ; i < todelete.length ; i++) 
					{ 
						if ( carnet == "I")	
							lst_li = $("blackliste").select("LI."+ todelete[i] );
						else
							lst_li = $("contactliste").select("LI."+ todelete[i] );
							
						lst_li.each( function(s) {  s.remove(); });
					}
					
					// Vider la zone du message courant
					if ( carnet == "I")	{ $("info_black").update(); $("txt_black").value = "";}
					else {$("info_contact").update();$("txt_contact").value = ""; }
				},
				onFailure: function() {}
			}
		);
	},
	// Mise à jour des réponses types de l'utilisateur
	update_rep : function()
	{
		new_val = $('rep_type').serialize(true) ;
		// Enregistrement des données
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: { mode: 'update_reponse', values : Object.toJSON(new_val) },
				onSuccess: function(transport)  
				{ 
					// suivant le retour, on met à jour le texte de l'annonce
					if ( transport.responseText.strip() != "-1" ) 
					{
						alert("Vos réponses types ont bien été enregistrée, merci"); 
					}
				},
				onFailure: function() {}
			}
		);		
	}
};

/*----------------------------------------------------------------*/
//gestion des courriers sur le site
var message = 
{
		ii_dest : 0,
		ii_current : 0,
		// Construction du formulaire d'envoie
		build : function (ai_dest , as_dest )
		{
			this.ii_dest = ai_dest;
			if ( this.ii_current == -1) { mode="visiteur"; } else {mode="message"; }

			// Regarder si l'utilisateur courant a été bloqué par le destinataire
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode:"is_blackliste" , rec_dest : ai_dest},
					onSuccess: function(transport) 
					{ 
						if ( transport.responseText.strip() != "0" ) 
						{
							// Charger la page de visualisation
							new Ajax.Request
							(	cfg.lib+'fiche_cmd.php',
								{
									method: 'get', parameters: {mode:"message_black"},
									onSuccess: function(transport) 
									{ 
										$("cont_alerte").update( transport.responseText );
										popup.setposition( "cont_alerte" ,780, 460,275, "msgto" , "" );
										$("msgto").update("Message pour "+as_dest);
									},
									onFailure: function() {}
								}
							);
						}
						else
						{
							// Charger la page de visualisation
							new Ajax.Request
							(	cfg.lib+'fiche_cmd.php',
								{
									method: 'get', parameters: {mode:mode},
									onSuccess: function(transport) 
									{ 
										$("cont_alerte").update( transport.responseText );
										if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
										else
										{
											popup.setposition( "cont_alerte" ,780, 460,275, "undo_msg" , "" );
											// Nom du destinataire
											$("msgto").update("Message pour "+as_dest);
											// N° du destinataire
											$("send_mail_to").value = ai_dest;
											// Bouton de commande
											$("send_msg").onclick= message.post;
										}
									},
									onFailure: function() {}
								}
							);
						}
					},
					onFailure: function() {}
				}
			);
			
			
		},
		// POST du formulaire d'envoie
		post : function( )
		{
			// $("send_mail").action=cfg.lib+"_post.php?mode=msg";
			$("send_mail").action=cfg.post+"?mode=msg";
			
			// @todo : gestion du style pour les erreurs
			if ( $("send_mail_msg").value.blank() )  
			{
				alert("Veuillez remplir la zone message, merci.")
				return false;
			}
			$("send_mail").submit();
		},
		// Envoie des données après contrôle de l'extension
		send : function( file )
		{
			nom_fichier = " "+file.toUpperCase();
			var pos=nom_fichier.indexOf(".JPG");
			if ( (pos > 0) || (nom_fichier==" ") )
			{
				// vérifier que le msg n'est pas vide
				if ( $("send_mail_msg").value.blank() )
				{
					return false;
				}
				
				$("send_mail_form").style.display="none";
				$("send_mail_loading").style.display="block";
				return true;
			}
			else 
			{ 
				alert("Désolé, nous n'acceptons que les fichiers .jpg"); 
				return false; 
			}			
		},
		// Fermeture du formulaire d'envoie
		close : function( )
		{
			set_masque(false);
			$('cont_alerte').update();		
			$('cont_alerte').style.display = "none";	
			// Recharger le contenu des message
			if ( $("headers_mail") ) { inbox.load_liste(message.ii_dest); }
		}
};

/*----------------------------------------------------------------*/
//gestion des tchats sur le site
var tchat = 
{
		ii_dest : 0,
		ib_reply : false,
		// Construction du formulaire d'envoie [ Rec_dest , Pseudo_Dest ]
		build : function (ai_dest , as_dest )
		{
			tchat.load_user(ai_dest);
		},
		load_user : function(ai_dest)
		{
			tchat.ii_dest = ai_dest;
			tchat.histo= new Template("<div id='m#{recnum}' class='tchat_desc #{classe}'><div class='obj'><span class='#{sens}' style='padding-left:20px;' >#{date}</span></div><div class='tchat #{read_class}'>#{msg}</div><div class='pj'>#{pj}</div></div>");
			randomnumber=Math.floor(Math.random()*1001);
			
			if ( (( gi_user==-1) || ( gi_st==1)) && (!tchat.ib_reply) )
			{
				new Ajax.Request
				(	cfg.lib+'fiche_cmd.php',
					{
						method: 'get', parameters: {mode:'tchat', r:randomnumber},
						onSuccess: function(transport) 
						{ 
							var test = transport.responseText;
							$("cont_alerte").innerHTML =  test ;
							if ( $("undo_visiteur") ) {popup.setposition( "cont_alerte" ,820,460,275, "undo_visiteur" , "" ); }
						},
						onFailure: function() {}
					}
				);
				return;
			}
			
			// Charger la page de visualisation
			new Ajax.Request
			(	cfg.lib+'fiche_cmd.php',
				{
					method: 'get', parameters: {mode:'tchat', r:randomnumber , reply:tchat.ib_reply},
					onSuccess: function(transport) 
					{ 
						// Afficher fenêtre de Tchat
						var test = transport.responseText;
						$("cont_flash").innerHTML =  test ;
						popup.setposition( "cont_flash" , 780, 600,457, "undo_tchat" , "" );
						// Réponse types
						$("reponse_type").onchange= tchat.select_reponse;
						// Boutons de commande
						$("close_pj").onclick= tchat.undo_pj;
						$("send_tchat_to").value = tchat.ii_dest;
						$("btn_tchat").onclick= tchat.post;
						// Contact, black liste
						$("tchat_bloque").onclick= tchat.contact;
						$("tchat_contact").onclick= tchat.contact;
						// Autorisation accès album
						$("tchat_private").onclick = tchat.album;
						$("tchat_privatev").onclick = tchat.album;
						// Copie aux webmaster
						$("tchat_copy").onclick = tchat.cc_web;
						
						// récuperer Historique du tchat
						new Ajax.Request
						(	cfg.request,
							{
								method: 'get', parameters: {mode : 'get_histo_tchat', user: tchat.ii_dest },
								onSuccess: function(transport) 
								{ 
									var json = transport.responseText.evalJSON();									
									// Pas d'historique, pas de bouton  cc_web
									if ( ( json == null)  || (json.length == 0)) 
									{
										// @FIXME
										// $("cc_web").disabled="disabled";return; 
									}
									
									html_histo = "";
									for ( i=0 ; i< json.length; i++)
									{
										if ( json[i]['photo'] == "" ) { pj = "&nbsp;"; } 
										else {pj = "<table width=30 height=30><TR><TD align=center valign=middle><img onclick='tchat.load_pj(\""+json[i]['ph450'] +"\");' src='"+ json[i]['photo'] +"' style='cursor:pointer;'></TD></TR></Table>"; }
										
										// Message reçu (black ) / envoyé ( blue )?
										if ( json[i]['rec_exp'] == tchat.ii_dest )  {ls_classe ="send"; ls_sens = "in";} 
										else {ls_classe ="receive";  ls_sens = "out";}
										// Msg vide ?
										if ( json[i]['msg'] == "" ) { json[i]['msg'] = "(vide)"; } 
										// Message non lu ( ? ) / lu ( normal )?
										if ( (json[i]['etat_exp'] == 'n') || (json[i]['etat'] == 'n' ) )
										{ls_classe_read = " unread"; } else { ls_classe_read =" read"; }
										
										data = {recnum : json[i]['recnum'] , classe:ls_classe, sens:ls_sens, date: json[i]['date_msg'], pj:pj , read_class:ls_classe_read, msg:json[i].msg };
										html_histo += tchat.histo.evaluate(data); 
									}
									// $("histo_tchat").update(html_histo);
									$("histo_tchat").innerHTML = html_histo;
									
								},
								onFailure: function() {}
							}
						);

						// récuperer les réponses types
						new Ajax.Request
						(	cfg.request,
							{
								method: 'get', parameters: {mode : 'get_reponse'},
								onSuccess: function(transport) 
								{ 
									var json = transport.responseText.evalJSON();				
									ls_rep = "<option>-- R&eacute;pondre en utilisant une de mes r&eacute;ponse type --</option>";
									for ( i=0 ; i< 5; i++)
									{
										if ( json[i] != "" ) ls_rep += "<option>"+json[i]+"</option>" ;
									}
									$("reponse_type").update(ls_rep);
								},
								onFailure: function() {}
							}
						);
						
						// récuperer le pseudo de l'utilisateur et savoir si notre salon est ouvert ?
						new Ajax.Request
						(	cfg.request,
							{
								method: 'get', parameters: {mode : 'get_histo_username', user: tchat.ii_dest },
								onSuccess: function(transport) 
								{ 
									var json = transport.responseText.evalJSON();									
									$("tchathead").update( "Votre tchat avec " + json[0]['pseudo'] );
									
									if ( json[0]['unallow'] == 1 )
									{
										$("tchatform").style.display="none";
										$("tchat_blackliste").style.display="block";
									}
									else
									{
										$("tchatform").style.display="block";
										$("tchat_blackliste").style.display="none";
									}
									
									// Invitation ou non 
									// if (json[0]['cam_online'] == 1) {$("btn_cam").onclick= tchat.cam;$("btn_cam").disabled="";}
									// else { $("btn_cam").disabled="disabled"; $("btn_cam").onclick= ""; }
								},
								onFailure: function() {}
							}
						);

						/*
						// Contrôles des filtres ( Pas d'homme, etc... ET des indésirables )
						new Ajax.Request
						(	cfg.request,
							{
								method: 'get', parameters: {mode : 'get_reponse'},
								onSuccess: function(transport) 
								{ 
									var json = transport.responseText.evalJSON();				
									ls_rep = "<option>-- R&eacute;pondre en utilisant une de mes r&eacute;ponse type --</option>";
									for ( i=0 ; i< 5; i++)
									{
										if ( json[i] != "" ) ls_rep += "<option>"+json[i]+"</option>" 
									}
									$("reponse_type").update(ls_rep);
								},
								onFailure: function() {}
							}
						);
						*/
						
						
					},
					onFailure: function() {}
				}
			);
		},
		// recherche l'auteur du msg
		get_recuser : function( ai_recnum )
		{
			tchat.ib_reply = true;
			new Ajax.Request
			(	cfg.request,
				{
					method: 'get', parameters: {mode : 'get_user_tchat', msg: ai_recnum},
					onSuccess: function(transport) 
					{ 
						var json = transport.responseText.evalJSON();									
						tchat.build( json[0]['rec_exp'] , "");
						tchat.ib_reply = false;
					},
					onFailure: function() {}
				}
			);
			
		},
		// POST du formulaire d'envoie
		post : function( )
		{
			if ( tchat.send() )
			{
				$("send_tchat").action=cfg.post+"?mode=tchat";
				$("send_tchat").submit();
				// tchat.close();
			}
		},
		// POST invitation CAM
		cam : function( )
		{
			// @todo : gestion du style pour les erreurs
			$("send_tchat_msg").value='<A href="room_'+  tchat.ii_dest +'.php" target="_blank">Mon Salon</A>';
			tchat.post();
			// $("send_tchat").submit();
		},
		// Envoie des données après contrôle de l'extension
		send : function( )
		{
			nom_fichier = " "+$("logofile").value.toUpperCase();
			var pos=nom_fichier.indexOf(".JPG");
			if ( (pos > 0) || (nom_fichier==" ") )
			{
				return true;
			}
			else 
			{ 
				alert("Désolé, nous n'acceptons que les fichiers .jpg"); 
				return false; 
			}			
		},
		// Fermeture du formulaire d'envoie
		close : function( )
		{
			set_masque(false);
			$('cont_flash').update();		
			$('cont_flash').style.display = "none";		
		},
		// Lecture de la pj
		load_pj : function( elt )
		{
			// Afficher le masque transparent
			$('tchat_full').style.display = "none";
			$('tchat_pj').style.display = "block";
			$("large_pj").src = elt;
		},
		undo_pj : function( )
		{
			// Afficher le masque transparent
			$('tchat_full').style.display = "block";
			$('tchat_pj').style.display = "none";
		},
		// Mettre en indésirable un utilisateur
		contact : function()
		{
			if (gi_st == 1)
			{
				alert("Désolé, ces fonctions sont réservées aux membres privilèges.");
				return;
			}
			
			var ls_commentaire = ""; var ls_carnet = "";
			if ( this.id =="tchat_bloque") { ls_commentaire="Utilisateur bloqué depuis le Tchat"; ls_carnet="I";}
			else if ( this.id =="tchat_contact") { ls_commentaire="Utilisateur bloqué depuis le Tchat";ls_carnet="C"; }
			
			if ( ls_carnet == "I" )
			{
				if ( confirm ("Etes vous sur de vouloir bloquer cet utilisateur ? \n celui ci ne pourra plus vous contacter sur le site !") )
				{
					// tchat.ii_dest 
					new Ajax.Request
					(	cfg.request,
						{
							method: 'get', parameters: {mode : 'contact', rec_fiche : tchat.ii_dest , carnet : ls_carnet, commentaire:ls_commentaire },
							onSuccess: function(transport) 
							{ 
								if ( transport.responseText.strip() == "-2")
									alert("Cet utilisateur est apparament déjà dans votre liste de contact ou dans la liste des utilisateurs bloqués, merci.");
								else
								{
									alert("Cet utilisateur est maintenant bloqué, merci");
									tchat.close();
								}
							},
							onFailure: function() {}
						}
					);
				}
			}
			else
			{
				new Ajax.Request
				(	cfg.request,
					{
						method: 'get', parameters: {mode : 'contact', rec_fiche : tchat.ii_dest , carnet : ls_carnet, commentaire:ls_commentaire },
						onSuccess: function(transport) 
						{ 
							if ( transport.responseText.strip() == "-2")
								alert("Cet utilisateur est apparament déjà dans votre liste de contact ou dans la liste des utilisateurs bloqués, merci.");
							else
								alert("Cet utilisateur est maintenant dans votre liste de contact, merci");
						},
						onFailure: function() {}
					}
				);
			}
		},
		// Donnez acces à son album 
		album : function()
		{
			var ls_commentaire = ""; 
			var ls_album="";
			if ( this.id =="tchat_private") { ls_commentaire="Etes vous sur de vouloir autoriser cet utilisateur a visualiser \n l'ensemble de vos photos privées pendant 2h ?  "; ls_album=2;}
			else if ( this.id =="tchat_privatev") { ls_commentaire="Etes vous sur de vouloir autoriser cet utilisateur a visualiser \n l'ensemble de vos vidéos privées pendant 2h ? ";ls_album=3;}

			if ( confirm (ls_commentaire) )
			{
				new Ajax.Request
				(	cfg.request,
					{
						method: 'get', parameters: {mode : 'allow_album', rec_fiche : tchat.ii_dest , album : ls_album},
						onSuccess: function(transport) 
						{ 
							if ( transport.responseText.strip() == "-1") 
							{
								//alert("Cet utilisateur peut maintenant consulter votre album privé, merci");
							}
							else 
								alert("Cet utilisateur peut maintenant consulter votre album privé, merci de le prévenir.");
							
						},
						onFailure: function() {}
					}
				);
					
			}
		},
		// Sélection d'une réponse type
		select_reponse : function()
		{
			if ( this.selectedIndex == 0 ) $("send_tchat_msg").value="";
			else $("send_tchat_msg").value = this.options[this.selectedIndex].text;
		},
		// Copie du message aux webmaster
		cc_web : function()
		{
			var ls_commentaire="Vous considerez que ce message est incorrect, qu'il contient des propos choquants ou autre, cliquez sur 'Ok' pour nous en envoyer une copie ";
			if ( confirm (ls_commentaire) )
			{
				new Ajax.Request
				(	cfg.request,
					{
						method: 'get', parameters: {mode:'alerte_msg', rec_fiche : tchat.ii_dest , rec_msg: $("histo_tchat").down("DIV").id  },
						onSuccess: function(transport) 
						{ 
							alert("Merci, nous regarderons le contenu de la conversation et prendrons éventuellement les mesures qui s'imposents.");
							
						},
						onFailure: function() {}
					}
				);
					
			}
			
			
		}
		
};


// Salon Tchat 
var tchat_room = 
{
	is_adm : false,
	// Constructeur de la tchat room
	build : function( is_admin , as_instance)
	{
		// si c'est l'admin, charger son paramétrage
		if ( is_admin ) 
		{
			this.is_adm=is_admin;
			// C'est le propriétaire du salon qui ouvre , lui afficher son paramétrage
			mon_compte.webcam.build.defer();
			new Ajax.Request 
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'open_room' },
					onSuccess: function(transport) {},
					onFailure: function() {}
				}
			);
			// Pour l'admin du salon : enclencher le timer qui enregistre le temps de webcam
		}
		else
		{
			// Recherche le nom de l'administrateur ( Id = as_instance )
			new Ajax.Request 
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'get_pseudo', id:as_instance },
					onSuccess: function(transport)  { $("AppInstance").update ("Salon privé de " + transport.responseText.strip() ); },
					onFailure: function() {}
				}
			);
			// Ce n'est pas l'admin du salon : enclencher le timer qui contrôle l'autorisation
			tchat_room.controle.delay(15, as_instance);
		}
	},
	// Fermeture du salon
	stop : function()
	{
		if ( this.is_adm )
		{
			// C'est le propriétaire du salon qui ferme 
			new Ajax.Request 
			(	cfg.request,
				{
					method: 'get', parameters: {mode:'close_room' },
					onSuccess: function(transport) {},
					onFailure: function() {}
				}
			);
		}
	},
	// Visu de la fiche d'un utilisateur
	visu_fiche : function( as_pseudo )
	{
		// On a le pseudo, il nous faut le ID
		new Ajax.Request 
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'get_id', pseudo:as_pseudo },
				onSuccess: function(transport) 
				{
					rec_fiche = transport.responseText.strip();
					// Mettre une fausse popup quitte à utiliser une iframe
					div_hide=document.createElement("div");
					div_hide.id = "Popup_Fiche"; 
					
					$$('body')[0].insert ( {top: div_hide } ); 
					// Masquer le Tchat pendant l'affichage de la fiche
					$('Popup_Fiche').setOpacity(1); 
					$('Popup_Fiche').style.display="inline"; 
					$("salon").style.display="none";
					$("chat_room_test").style.display="none";
					frame_fiche=document.createElement("iframe");frame_fiche.width="810";frame_fiche.height="590";$('Popup_Fiche').insert ( {top: frame_fiche } ); 
					frame_fiche.src="fiche.php?recnum="+rec_fiche+"&close=1";
				},
				onFailure: function() {}
			}
		);
	},
	// Fermer la fiche en cours de consultation
	close_fiche : function() 
	{
		$($("Popup_Fiche")).remove(); 
		if ( $("chat_room_test") )
		{
			$("chat_room_test").style.display="inline"; 
			$("salon").style.display="inline";
		}
	},
	// Contrôle si l'utilisateur a été exclut ou mis en indésirable
	controle : function( as_instance )
	{
		// Vérifier tous les x sec, si l'utilisateur n'est pas exclu ou autre
		new Ajax.Request 
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'check_exclusion', id:as_instance },
				onSuccess: function(transport) 
				{ 
					// Reboucler dessus tant que la réponse est positive
					if ( transport.responseText.strip() =="1" ) {tchat_room.controle.delay(15, as_instance);}
					// Erreur et Fin
					else 	{ li_code = parseInt (transport.responseText.strip()) * -1;window.location= cfg.pages+"erreurs.php?code=CAM"+li_code; }
				},
				onFailure: function() {}
			}
		);
	},
	// Exclure un utilisateur du salon ( Tps de la session )
	exclure : function( as_salon, as_pseudo )
	{
		new Ajax.Request 
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'exclusion', pseudo_fiche : as_pseudo },
				onSuccess: function(transport) {alert("Merci ce pseudo a bien été exclu de votre salon le temp de cette session." );},
				onFailure: function() {}
			}
		);
	},
	// Place le pseudo en indésirable [ Accès refusé systématiquement ]
	indesirable : function( as_salon, as_pseudo )
	{
		// Mettre as_pseudo en indésirable pour as_salon
		new Ajax.Request 
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'contact', pseudo_fiche : as_pseudo , commentaire :"Exclusion depuis le salon Webcam" , carnet :'I' },
				onSuccess: function(transport) 
				{ 
					if ( transport.responseText.strip() =="1" ) {alert("Merci ce pseudo a bien été enregsitré dans votre liste noire ." );}
					else if ( transport.responseText.strip() =="-1" ){alert("Erreur, vous avez ce pseudo est déjà dans votre liste noire.." );}
					else if ( transport.responseText.strip() =="-10" ){alert("Désolé vous ne pouvez vous ajouter dans votre liste noire.." );}
				},
				onFailure: function() {}
			}
		);
	}
};

//******************************************************************************************************
//gestion de la partie Inscription
var inscription = 
{
	is_ok : false,
	is_target : "inscription.php",				// Valeur par défaut de la page de retour
	li_compteur : 0,
	// constructeur
	build : function( ab_switch)				// False: Formulaire, True : Confirmation
	{
		if (!ab_switch )
		{
			// Gestion des pays
			mon_compte.SetAuto("pays");
			// Gestion de la partie Texte Annonce
			mon_compte.annonce.build();
			// Bouton d'enregistrement
			$("inscription_check").onclick = inscription.check;
			// Focus sur Email
			$("email").focus();
		}
		
	},
	// contrôle avant enregistrement
	check : function()
	{
		// Afficher le masque transparent
		$('Hide').style.display = "inline";
		
		inscription.li_compteur = 0;
		$("form_inscription").select('INPUT.check', 'SELECT.check').each( function(s) { s.removeClassName("ac_nok"); });
		$("recherche").removeClassName("ac_nok"); 
		$("message").removeClassName("ac_nok"); 
		// Structure Email
		var re=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","i");
		if(!re.test($("email").value)) { inscription.log_error("email" , "L'adresse Email n'est pas valide!");return false;  }
		// Tester le pseudo Non vide sans caractères spéciaux
		if ( $("pseudo").value=="") { inscription.log_error("pseudo" , "Le pseudo ne peut pas rester vide!");return false;}
		pseudo = $("pseudo").value;
		var unallow = [" ", "/" ,":", "?","\"", "<",">","|","\\","@"].each(function(s){ if ( (pseudo.include(s)) && (is_ok) )  { inscription.log_error("pseudo" , "<B>"+s+"</B> , n'est pas autorisé pour le pseudo!"); return false; }});
		// Sexe
		if( $("sexepseudo").selectedIndex == 0 ) { inscription.log_error("sexepseudo" , "Veuillez sélectionner le sexe pour votre annonce!"); return false; }
		// mobilite
		if( $("mobilite").selectedIndex == 0 ) { inscription.log_error("mobilite" , "Veuillez sélectionner votre mobilite !"); return false; }
		// pays , CP , VILLE
		if ( $("pays").value == "" ) { inscription.log_error("pays" , "Veuillez sélectionner votre pays !"); return false; }
		if ( ($("pays").value == "France") && ($("cp").value =="" ) ) { inscription.log_error("cp" , "Veuillez sélectionner votre code postal !"); return false; }
		if ( ($("pays").value == "France") && ($("cp").value !="" ) && ($("ville").selectedIndex ==0 ) ) { inscription.log_error("ville" , "Veuillez sélectionner votre ville !"); return false; }
		// Description
		if ( $("sexepseudo").value <= 3 ) { if ( !(inscription.verif_sexe('h')) ) return false; }
		else if ( ( $("sexepseudo").value >= 4 ) && ( $("sexepseudo").value <= 6 )) { if ( !(inscription.verif_sexe('f')) ) return false; }
		else if ( $("sexepseudo").value >= 4 )  { if  (!( (inscription.verif_sexe('h')) && (inscription.verif_sexe('f')))) { return false; } }
		// Recherche
		$("form_inscription").select('INPUT.checkbox').each ( function(s) { if (s.checked) {inscription.li_compteur +=1;}});
		if ( inscription.li_compteur == 0) { inscription.log_error("recherche" , "Veuillez sélectionner votre recherche !"); return false; }
		// Texte Annonce
		// @TODO if ($("message").value.length < 75 ) { inscription.log_error("message" , "Veuillez donner le texte de votre annonce <BR>(75 caractères minium)!"); return false; }
		
		// le check Base
		inscription.check_base();
		
	},
	// controle des données dans la base ( Email, PSeudo )
	check_base : function()
	{
		// On essaye d'enregistrer l'inscription
		new_val = $('new_inscription').serialize(true) ;
		
		// Enregistrement des données
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: { mode: 'inscription', values : Object.toJSON(new_val) },
				onSuccess: function(transport)  
				{ 
					// suivant le retour, on met à jour le texte de l'annonce
					if ( transport.responseText.strip() == "-2" ) { inscription.log_error("email" , "Cette adresse Email est déjà utilisée sur notre site !"); return; }
					if ( transport.responseText.strip() == "-3" ) { inscription.log_error("pseudo" , "Ce pseudo est déjà utilisé sur notre site !"); return; }
					
					// Sinon on met à jour l'annonce
					new Ajax.Request
					(	cfg.request,
						{
							method: 'post', parameters: { mode: 'preview_annonce', values : $("message").value , update:true },
							onSuccess: function(transport) 
							{ 
								// Charger la page d'information pour permettre à l'utilisateur de se connecter
								// window.location = "inscription.php";
								window.location = inscription.is_target;
							},
							onFailure: function() {}
						}
					);
				},
				onFailure: function() {}
			}
		);
	},
	// Masque les descriptions inutiles
	adapte_sexe : function()
	{
		// Homme seul , masquer le bloc detailF
		if ( $("sexepseudo").value < 4 ) { $("description_H").show();$("description_F").hide();}
		// Femme seuls , masquer le bloc detailH
		else if ( ( $("sexepseudo").value < 7 ) && ( $("sexepseudo").value >3  ) )  {  $("description_F").show();$("description_H").hide();}
		//  Couples
		else if ( $("sexepseudo").value >= 7 )  {  $("description_F").show();$("description_H").show(); }
	},
	// Sélection des villes selon le CP
	update_ville : function()
	{
		if ( $("cp").value=="" ) { return;}
		// Recherche des villes correspondantes
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'check_inscription_cp', cp: $("cp").value },
				onSuccess: function(transport) 
				{ 
					var sv = $("ville").getWidth();

					var json = transport.responseText.evalJSON();									
					lst= "<OPTION value=0 selected>-S&eacute;lectionnez-</OPTION>";
					for (i = 0; i < json.length ; i++) {lst +="<option value=\""+json[i]['ville']+"\">"+ json[i]['ville'] + "</option>";}
					$("ville").update(lst);
					$("ville").style.width=sv+"px";
				},
				onFailure: function() {}
			}
		);
	},
	// Controle des descriptions
	verif_sexe : function ( sexe )
	{
		if ( sexe=='f') { ls_lib = " Madame "; } else { ls_lib=" Monsieur "; }
		// Age
		if ($("age"+sexe).value.length == 0)  	
			{inscription.log_error("agef" , "Veuillez péciser <B><font color='red'>l'age de "+ls_lib+"</font></B> avant de poursuivre, Merci.");return false; }
		if ( !parseInt($("age"+sexe).value) > 0 ) 
			{inscription.log_error("agef" , "<B><font color='red'>ATTENTION : l'age de "+ls_lib+"</font></B> est incorrect.");return false;}
		// Cheveux 
		if ($("cheveux"+sexe).selectedIndex == 0) 
			{inscription.log_error("cheveuxf" , "Veuillez péciser <B><font color='red'>la couleur de cheveux de "+ls_lib+"</font></B> avant de poursuivre, Merci.");return false;}
		// Taille
		if ( $("taille"+sexe).value.length == 0) 
			{inscription.log_error("taillef" , "Veuillez péciser <B><font color='red'>la taille de "+ls_lib+"</font></B> avant de poursuivre, Merci.");return false;}
		if ( !parseInt($("taille"+sexe).value) ) 
			{inscription.log_error("taillef" , "<B><font color='red'>ATTENTION : la taille de "+ls_lib+"</font></B> est incorrect.");return false;}
		// Poids
		if ( $("poid"+sexe).value.length == 0) 
			{inscription.log_error("poidf" , "Veuillez péciser <B><font color='red'>le poid de "+ls_lib+"</font></B> avant de poursuivre, Merci.");return false;}
		if ( !parseInt($("poid"+sexe).value) ) 
			{inscription.log_error("poidf" , "<B><font color='red'>ATTENTION : la poid de "+ls_lib+"</font></B> est incorrect.");return false;}
		// Signe
		if( $("signe"+sexe).selectedIndex == 0) 
			{inscription.log_error("signef" , "Veuillez péciser <B><font color='red'>le signe astrologique de "+ls_lib+"</font></B> avant de poursuivre, Merci.");return false;}
		// Fumeur
		if( $("fumeur"+sexe).selectedIndex == 0) 
			{inscription.log_error("fumeurf" , "Veuillez péciser <B><font color='red'>si "+ls_lib+" fume</font></B> avant de poursuivre, Merci.");return false;}
		
		return true;
	},
	// Affichage des Erreurs
	log_error : function( as_champ, as_text)
	{
		// Afficher le masque transparent
		set_masque(  true );
		
		// Formulaire de demande de mot de passe
		new Ajax.Request
		(	cfg.stdlib+'error_code.php',
			{
				method: 'get', parameters: {mode:'INSC', Err_Text : as_text },
				onSuccess: function(transport) 
				{ 
					$("cont_alerte").update( transport.responseText );
					popup.setposition( "cont_alerte" , "full", 460,275, "erreur_inscription" , "" );
				},
				onFailure: function() {}
			}
		);
		$(as_champ).addClassName("ac_nok");
	}

};

//******************************************************************************************************
//gestion de la partie annuaire de liens
var annuaire = 
{
	current_tab : '',
	// constructeur
	build : function( )
	{
		// Redimensionnement
		common();
		// Evt de changement d'onglet
		Event.observe('annuaire_tab', 'click', select_tab.bindAsEventListener(this, "annuaire_tab") );
		// Gestion des A, pour compter le nb de click sur les liens
		annuaire.liste_link();
		// Gestion des bouton de commandes [ Enregistrer Lien ]
		if ( $("ann_submit_lien") ) {$("ann_submit_lien").onclick = annuaire.check_form; }
	},
	// Recherche tous les A.ann_lnk
	liste_link : function()
	{
		lst = $("content_annuaire").select("A.ann_lnk");
		lst.each(  function(s) {s.onclick = function() {return annuaire.click_link(s.id);}; });
	},
	// Enregistrer le click sur le lien et retourner True pour poursuivre 
	click_link : function( id )
	{
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode : 'annuaire_click', id: id },
				onSuccess: function(transport) 	{ },
				onFailure: function() {}
			}
		);
		return true;
	},
	// Controle du formulaire avant enregistrement de la demande
	check_form : function( )
	{
		// Tous les champs sont obligatoires
		if ($("titre").value.length == 0)  {inscription.log_error("titre" , "Veuillez péciser <B><font color='red'>le titre de votre site</font></B> avant de poursuivre, Merci.");return false; }
		if ($("url").value.length == 0)  {inscription.log_error("url" , "Veuillez péciser <B><font color='red'>l'adresse de votre site</font></B> avant de poursuivre, Merci.");return false; }
		if ($("description").value.length == 0)  {inscription.log_error("url" , "Veuillez péciser <B><font color='red'>la description de votre site</font></B> avant de poursuivre, Merci.");return false; }
		if ($("nom").value.length == 0)  {inscription.log_error("url" , "Veuillez péciser <B><font color='red'>votre nom</font></B> avant de poursuivre, Merci.");return false; }
		var re=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+","i");
		if(!re.test($("email").value)) { inscription.log_error("email" , "L'adresse Email n'est pas valide!");return false;  }
		if( $("categorie").selectedIndex == 0)  {inscription.log_error("categorie" , "Veuillez péciser <B><font color='red'>une catégorie </font></B> avant de poursuivre, Merci.");return false;}
		if ($("url_retour").value.length == 0)  {inscription.log_error("url" , "Veuillez péciser <B><font color='red'>l'adresse de la page ou se trouve notre lien</font></B> avant de poursuivre, Merci.");return false; }
		// Passer à l'enregistrement dans la base
		annuaire.check_base();
		
	},
	check_base : function()
	{
		// Enregistrement dans la base
		new_val = $('new_lien').serialize(true) ;
		// Enregistrement des données
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: { mode: 'new_lien', values : Object.toJSON(new_val) },
				onSuccess: function(transport)  
				{ 
					if ( transport.responseText.strip() == "1" )
					{
						// enregistrement du lien OK 
						$("new_lien_add").update("Votre demande de lien a bien été enregistrée, nos webmasters visiteront votre site dés que possible, merci.");
					}
					else
					{
						// Erreur pd l'enregistrement dans la base
					}
				},
				onFailure: function() {}
			}
		);
	}	
};

//******************************************************************************************************
//Gestion des galeries ( videos / photos )

// @TODO : OUverture de la fiche et survol du bloc 

var galerie = 
{
	as_sexe : '*',
	as_periode : "m",
	// constructeur
	build : function( )
	{
		// Redimensionnement
		common();
		Event.observe('annonce_liste', 'click', galerie.select_annonce.bindAsEventListener(this) );
	},
	select_annonce : function( event )
	{
		var ls_annonce = "";
		ls_annonce = Event.element(event).id;
		if ( ls_annonce =="")
		{
			ls_annonce = Event.element(event).up().id;
		}
		ls_annonce = ls_annonce.substr(3);
		location= "fiche.php?recnum="+ls_annonce;
		Event.stop(event);
	},
	// constructeur du Top
	build_top : function( as_sexe, as_periode )
	{
		galerie.as_periode = as_periode;
		// Redimensionnement
		common();
		// Sélection d'une photo
		Event.observe('annonce_liste', 'click', galerie.select_top_annonce.bindAsEventListener(this) );
		// Sélection des boutons
		Event.observe('top_selection', 'click', galerie.select_top.bindAsEventListener(this) );
		// retrieve
		galerie.retrieve_top();
	},
	retrieve_top : function()
	{
		// Recherche des pseudo, images
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: { mode: 'top_photo', periode : galerie.as_periode , sexe : galerie.as_sexe },
				onSuccess: function(transport)  
				{ 
					var json = transport.responseText.evalJSON();	
					//$("top_titre").update(json[0]);
					
					for (i=1 ; i < json.length ; i++)
					{
						ls_position = i;
						$("top"+ls_position).style.cursor="pointer";
						$("top"+ls_position).style.backgroundImage="url("+json[i]['fichier']+")";
						$("top"+ls_position).style.backgroundRepeat="no-repeat";
						$("top"+ls_position).style.backgroundPosition="center" ;
						$("top"+ls_position).style.backgroundColor ="buttonface" ;
						
						$("top"+ls_position).down(0).update( ls_position +" ° - "  + json[i]['note']+" Pts");
						$("top"+ls_position).down(1).update( json[i]['pseudo']);
						$("top"+ls_position).down(1).id="AC_"+json[i]['rec_fiche'];
					}
					
					if ( i < 10 )
					{
						for (j = i; j <= 10 ; j++)
						{
							$("top"+j).style.backgroundImage="url()";$("top"+j).style.backgroundRepeat="no-repeat";$("top"+j).style.backgroundPosition="center" ;$("top"+j).style.backgroundColor ="#FFFFFF" ;
						}
					}
				},
				onFailure: function() {}
			}
		);
	},
	// cliquer sur une photo
	select_top_annonce : function( event )
	{
		var ls_annonce = "";
		ls_annonce = Event.element(event).id;
		// on clique sur le pseudo : Ouverture de la fiche
		if ( ls_annonce.substr(0,3)=="AC_" )
		{
			ls_annonce = ls_annonce.substr(3);
			location= "fiche.php?recnum="+ls_annonce;
			Event.stop(event);
		}
		else if ( Event.element(event).className=="tphoto")
		{
			ls_annonce = Event.element(event).down().next().id;
			if ( ls_annonce.substr(0,3)=="AC_" )
			{
				ls_annonce = ls_annonce.substr(3);
				location= "fiche.php?recnum="+ls_annonce;
				Event.stop(event);
			}
		}
		
	},
	// Changer la sélection	
	select_top : function ( event ) 
	{
		// Reset des photos
		$("annonce_liste").select("DIV.tphoto").each
		( 
			function(s) {s.style.backgroundImage="url(i/i/ajax.gif)"; s.style.backgroundColor ="#FFFFFF";s.down(0).update("");s.down(1).update("");}
		);
		
		if ( Event.element(event).id.substr( 0, 4 ) =="topp" )
		{
			galerie.as_periode = Event.element(event).id.substr( 5 );
			galerie.retrieve_top();
		}
		else if ( Event.element(event).id.substr( 0, 4 ) =="tops" )
		{
			galerie.as_sexe = Event.element(event).id.substr( 5 );
			galerie.retrieve_top();
		}
	}	
	
};

//******************************************************************************************************
//gestion de la partie agenda des soirées
var agenda = 
{
	// constructeur
	build : function( )
	{
		// Redimensionnement
		common();

		lim = $("limites").value.split(";");
		// Affiche ou non page précédente
		if ( lim[0] == "0") {$("pg_prev").style.display="none";	}
		else { $("pg_prev").onclick = agenda.prev; }
		// Affiche ou non page suivante
		if ( parseInt(lim[1]) > parseInt( $("total").value))  {$("pg_next").style.display="none";	}
		else { $("pg_prev").onclick = agenda.prev; }
		$("pg_next").onclick = agenda.next;
	},
	prev : function()
	{
		lim = $("limites").value.split(";");
		lim[0] = parseInt(lim[0]) - 15;lim[1] = parseInt(lim[1]) - 15;
		$("limites").value = lim[0]+";"+lim[1];
		$("lim_inf").value = lim[0];
		$("lim_sup").value = lim[1];
		$("recherche_soiree").submit();
	},
	next : function()
	{
		// debugger;
		lim = $("limites").value.split(";");
		lim[0] = parseInt(lim[0]) + 15;lim[1] = parseInt(lim[1]) + 15;
		$("limites").value = lim[0]+";"+lim[1];
		$("lim_inf").value = lim[0];
		$("lim_sup").value = lim[1];
		$("recherche_soiree").submit();
	}

};
