// Déconnexion utilisateur
function unload ()
{
	new Ajax.Request
	(	cfg.request,
		{
			method: 'get', parameters: {mode:'close'},
			onSuccess: function(transport) 	{top.location="/";},
			onFailure: function() {}
		}
	);
}

// Gestion du tchat
var onlinelist =
{
	is_user:"",
	is_contact_list : "",
	is_dpt_list : "",
	filter:"",  lst : "", sort : "",
	next_tchat : '',
	ii_sound : 1,
	build: function(ai_current)
	{
		onlinelist.is_title = top.document.title;
		
		onlinelist.is_contact_list = new Array();
		onlinelist.is_dpt_list = new Array();
		// Hauteur de la liste des connectés
		$("tchat").style.height = (document.viewport.getDimensions().height - 95 - 40 ) + "px";
		onlinelist.is_user=ai_current;
		
		// Gestion du bouton de fermeture
		if ( $("exit") ) { $("exit").onclick = unload; }
		// webcam
		if ( $("m_cam")) { $("m_cam").onclick = onlinelist.open_room; }
		// Click sur le fitre
		$("top_chat_filter").onclick = onlinelist.filter;
		$("top_chat_filtre_do").onclick = onlinelist.apply_filter;
		$("top_chat_sound").onclick = onlinelist.change_sound;

		// Interrogation des messages , etc...
		onlinelist.session();
		
		// Chargement liste des contacts de l'utilisateur
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode :'get_contact_recnum'},
				onSuccess: function(transport) 
				{ 
					var json = transport.responseText.evalJSON();
					for ( i = 0 ; i < json.length ; i++)
					{
						onlinelist.is_contact_list.push( json[i][0] );
					}
				},
				onFailure: function() {}
			}
		);			
		// Chargement liste 
		onlinelist.lst = new Array();
		onlinelist.load();
	},
	resize : function()
	{
		$("tchat").style.height = (document.viewport.getDimensions().height - 95 - 40 ) + "px";
	},
	// Utiliser le FileContent pour pouvoir utiliser OverDomaine
	load:function()
	{
		$("tchat").update();
		var randomnumber=Math.floor(Math.random()*1001);
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode :'load_online', filtre : onlinelist.filter},
				onSuccess: function(transport) 
				{ 
					onlinelist.lst.clear();
					eval(transport.responseText);
					$("tchat").update( onlinelist.all_list() );
					// Rechargement dans 120 sec
					onlinelist.load.delay(60);
				},
				onFailure: function() {}
			}
		);			
	},
	// F° de trie des pseudos connectés
	doCompare : function (a, b) 
	{
		if ( $("sort0").checked ) sort_type=0;
		else if ( $("sort12").checked ) sort_type=12;
		else if ( $("sort14").checked ) sort_type=14;
		
		if ( sort_type != 15)
		{
	   	    if ( a.split("¤")[sort_type].toLowerCase() > b.split("¤")[sort_type].toLowerCase()  ) return 1;
	   	    if ( a.split("¤")[sort_type].toLowerCase() <  b.split("¤")[sort_type].toLowerCase()  ) return -1;
	   	    if ( a.split("¤")[sort_type].toLowerCase()  == b.split("¤")[sort_type].toLowerCase()  ) return 0;
		}
		else
		{
	   	    if ( a.split("¤")[sort_type] > b.split("¤")[sort_type]  ) return 1;
	   	    if ( a.split("¤")[sort_type] <  b.split("¤")[sort_type] ) return -1;
	   	    if ( a.split("¤")[sort_type] == b.split("¤")[sort_type]) return 0;
		}
	},
	all_list : function ()
	{
		// Filtrer les données à partir des cases à cocher
		onlinelist.filter = "";
		$("top_chat_filtre").select("INPUT").each( 
				function(s) 
				{ 
					if ( s.type=="checkbox" )
					{
						if (s.checked)  { onlinelist.filter += "1"; eval( "onlinelist."+s.className+"=0;"); } 
						else  { onlinelist.filter += "0";  eval( "onlinelist."+s.className+"=1;"); }
					}
				}
		);
		// Liste des Dpt à utiliser en filtre
		if  (onlinelist.F_D == 0 )  { onlinelist.is_dpt_list  = $("f_dpt").value.split(','); }
		
		// Trie des données et affichage
		onlinelist.lst.sort( onlinelist.doCompare );
		html=''; 
		for ( i=0; i< onlinelist.lst.length ; i++)
		{
			var row = onlinelist.lst[i];
			var liste = row.split("¤");

			// Gestion du filtre
			if ( (onlinelist.FH ) && ( liste[1] < 3) )  { html += ""; }														// Pas les hommes
			else if  ( (onlinelist.FF ) && ( liste[1] > 3) && ( liste[1] < 7))  { html += ""; }						// Pas les femmes
			else if  ( (onlinelist.FC ) && ( liste[1] > 6))  { html += ""; }												// Pas les couples
			else if  ( (onlinelist.F_C == 0 ) && ( liste[13] != 1))  {html += "";}									// Uniquement certifiés
			else if  ( (onlinelist.F_P == 0 ) && ( liste[6] == 0))  {html += "";}										// Uniquement avec photo
			else if  ( (onlinelist.F_P == 0 ) && ( liste[6] == 0))  {html += "";}										// Uniquement avec photo
			else if  ( (onlinelist.F_CT == 0 ) && ( onlinelist.is_contact_list.indexOf( liste[2] ) == -1))   {html += "";}					// Uniquement mes contacts
			else if  ( (onlinelist.F_D == 0 ) && ( onlinelist.is_dpt_list.indexOf( liste[0] ) == -1))   {html += "";}					// Uniquement liste dpt
			else
			{
				html += onlinelist.add( liste[12], liste[1], liste[2], liste[3], liste[4], liste[5], liste[6], liste[7], liste[8], liste[9], liste[10], liste[11], liste[0], liste[13], liste[14], liste[15], liste[16], liste[17]);
			}
			
		}
		html += '<li style="height:100px;"></LI>'; 
		return html;
	},
	online :function ( pseudo, sexe, recnum , status, visible, visible_sexe, photo_id , nb_photos, nb_voix, nb_video, webcam, wonline, dpt, certifie, cnx , last_cnx, alt, site)
	{
		if ( dpt.length==1 ) dpt ="0"+dpt;
		onlinelist.lst[onlinelist.lst.length] = dpt+"¤"+sexe+"¤"+recnum+"¤"+status+"¤"+visible+"¤"+visible_sexe+"¤"+photo_id+"¤"+nb_photos+"¤"+nb_voix+"¤"+nb_video+"¤"+webcam+"¤"+wonline+"¤"+pseudo+"¤"+certifie+"¤"+cnx+"¤"+last_cnx+"¤"+alt+"¤"+site;
	},
	add : function( pseudo, sexe, recnum , status, visible, visible_sexe, photo_id , nb_photos, nb_voix, nb_video, webcam, wonline, dpt, certifie, cnx , last_cnx, alt, site )
	{
		if ( pseudo=="" ) return;
		// @FIXME : Pb des caractères accentué
		// @FIXME :  Les arguments utilisé par le popup menu ( sont bc moins nombreux )
		var arg = recnum+";"+pseudo+";"+sexe+";"+certifie+";"+last_cnx+";"+cnx+";"+status+";"+nb_photos+";"+webcam+";"+wonline+";";
		
		// Libelle Sexe
		ls_selector = "";
		ls_classe = "online_";

		if ( !(ls_classe.endsWith('_'))) { ls_classe+="_";}
		if ( sexe <= 3) { sexe_text="H"; ls_classe = ls_classe + "h"; ls_selector += " _ho";}
		else if ( sexe > 6 ) { sexe_text="C"; ls_classe = ls_classe + "c";ls_selector += " _co";}
		else { sexe_text="F"; ls_classe = ls_classe + "f";ls_selector += " _fe";}
		
		if ( certifie == 1 ) { sexe_text += "C";}
		
		if ( wonline == 1 )
		{
			lw='<li class="sex'+sexe_text+' won"></li><li class=" won">';
			lw +="<a href='#' onclick=\"divMenu.hide('mFile');divMenu.user='"+arg+"';divMenu.sexe='"+pseudo+" ("+sexe_text+")';divMenu.set_root();divMenu.show('mFile', this, 10, 10);\" onmouseout=\"divMenu.hide('mFile');\" title='Ce pseudo a ouvert son Salon Webcam '>"+pseudo+"</a>";
			lw +='</li><li class="dpt won">'+ dpt +'</li>';
		}
		else
		{
			if ( (onlinelist.is_user==4) || (onlinelist.is_user==7808))
			{
				if (site=="-")			
				{
					lw='<li class="sex'+sexe_text+'"></li><li>';
					lw +="<a href='#' onclick=\"divMenu.hide('mFile');divMenu.user='"+arg+"';divMenu.sexe='"+pseudo+" ("+sexe_text+")';divMenu.set_root();divMenu.show('mFile', this, 10, 10);\" onmouseout=\"divMenu.hide('mFile');\" style=\"color:buttonface;\">"+pseudo+"</a>";
					lw +='</li><li class="dpt">'+ dpt +'</li>';
				}
				else
				{
					lw='<li class="sex'+sexe_text+'"></li><li>';
					lw +="<a href='#' onclick=\"divMenu.hide('mFile');divMenu.user='"+arg+"';divMenu.sexe='"+pseudo+" ("+sexe_text+")';divMenu.set_root();divMenu.show('mFile', this, 10, 10);\" onmouseout=\"divMenu.hide('mFile');\">"+pseudo+"</a>";
					lw +='</li><li class="dpt">'+ dpt +'</li>';
				}
			} 
			else
			{
				lw='<li class="sex'+sexe_text+'"></li><li>';
				lw +="<a href='#' onclick=\"divMenu.hide('mFile');divMenu.user='"+arg+"';divMenu.sexe='"+pseudo+" ("+sexe_text+")';divMenu.set_root();divMenu.show('mFile', this, 10, 10);\" onmouseout=\"divMenu.hide('mFile');\">"+pseudo+"</a>";
				lw +='</li><li class="dpt">'+ dpt +'</li>';
			}
		}
		
		return lw;

	},
	// Affiche / Masque le filtre
	filter : function()
	{
		if ( $("top_chat_filtre").style.display == "block" ) $("top_chat_filtre").style.display = "none"; 
		else $("top_chat_filtre").style.display = "block"; 
			
	},
	// "Recharge" la liste depuis le bouton appliquer
	apply_filter : function() { $("top_chat_filtre").style.display = "none"; onlinelist.load(); },
	// Gestion des V de session utilisateur
	session:function()
	{
		// Prochain appel dans 20sec pour les non visiteurs (120 pour les autres )
		if ( gi_user == -1 )
			onlinelist.session.delay(120);
		else
			onlinelist.session.delay(20);
			
		
		// Mettre à jours les compteurs, Mails, Etc..
		new Ajax.Request
		(	cfg.request,
			{
				method: 'get', parameters: {mode:'compteur' , libre : 0},
				onSuccess: function(transport) 
				{ 
					var json = transport.responseText.evalJSON();
					// nb de connectés
					var ls_compteur = json['N']+" connectés";
					$("top_chat_info").update(ls_compteur );

					if ( json['S'] == 2 )
					{
						// toujour privilege
						$("pseudo_statut").removeClassName("m_priv0");$("pseudo_statut").addClassName("m_priv1");
						gi_st = 2;parent.pages.gi_st = 2;
					}
					else if ( json['S'] == 1 )
					{
						// uniquement membre
						$("pseudo_statut").removeClassName("m_priv1");$("pseudo_statut").addClassName("m_priv0");
						gi_st = 1;parent.pages.gi_st = 1;
					}
					
					// Salon Webcam Ouvert
					if ( json['O'] > 0 )
					{
						$("m_cam").update("Salon webcam Ouvert");
						$("m_cam").onclick = "";
						$("m_cam").removeClassName("m_open_cam");
						$("m_cam").addClassName("m_close_cam");
					}
					else
					{
						$("m_cam").update("Ouvrir mon salon webcam");
						$("m_cam").onclick = onlinelist.open_room;
						$("m_cam").addClassName("m_open_cam");
						$("m_cam").removeClassName("m_close_cam");
					}
					
					// Messages Flash en attente
					if ( json['F'] > 0 ) 
					{
						onlinelist.next_tchat = json['NF'];
						$("nb_tchat").update(json['F'] + " Tchat(s)");	
						$("nb_tchat").addClassName("m_newmsg");
						$("nb_tchat").onclick = onlinelist.open_tchat;
					}
					else
					{
						onlinelist.next_tchat = "";
						$("nb_tchat").update("Aucun Tchat");
						$("nb_tchat").removeClassName("m_newmsg");
						$("nb_tchat").onclick = "";
					}

					if ( json['C'] > 0 ) 
					{
						$("nb_msg").update(json['C'] + " Courrier(s)");						
						$("nb_msg").addClassName("m_newmsg");
						$("nb_msg").onclick = onlinelist.open_message;
					}
					else
					{
						$("nb_msg").update("Aucun Courrier");
						$("nb_msg").removeClassName("m_newmsg");
						$("nb_msg").onclick = "";
					}
					
					if ( ( json['F'] > 0 )  || ( json['C'] > 0 ) ) 
					{
						top.document.title="MESSAGE(S) en attente";
						playsound("flash.mid" );
					}
					else
					{
						top.document.title=onlinelist.is_title;
					}
					
					$("top_chat").title =  ""; 
					$("msg").style.display="none"; 
					$("logo").style.display="block"; 
					$("top_chat").onclick = "";
				},
				onFailure: function() {}
			}
		);
	},
	open_message :  function()
	{
		parent.pages.location = pg['msgbox'];
	},
	open_tchat : function()
	{
		parent.pages.tchat.get_recuser(onlinelist.next_tchat );
	},
	// Ouverture de la Webcam
	open_room : function()
	{
		if ( gi_user==-1) 	{ alert("Non disponible pour les visiteurs..."); return; }
		if ( gi_st==1) 		{ alert("Désolé, cette fonction est réservée aux membres privilèges..."); return; }
		ls_pg = pg.admin_tchat.replace("$1", gi_user);
		onlinelist.cam_popup = window.open( ls_pg,'_blank','width=820,height=600,toolbar=no,status=yes,scrollbars=yes,menubar=no' ); 
	},
	change_sound : function()
	{
		if (onlinelist.ii_sound == 1) { $("top_chat_sound").className="soundoff";onlinelist.ii_sound = 0; }
		else { $("top_chat_sound").className="soundon";onlinelist.ii_sound = 1; }
	}
};

/**
* F° des pseudos connectés ( Tchat ) 
* 	@TODO : Retirer 
*/
function o( pseudo, sexe, recnum , status, visible, visible_sexe, photo_id , nb_photos, nb_voix, nb_video, webcam, wonline, dpt, certifie, cnx , last_cnx, alt, site) 
{ 
	onlinelist.online( pseudo, sexe, recnum , status, visible, visible_sexe, photo_id , nb_photos, nb_voix, nb_video, webcam, wonline, dpt, certifie, cnx , last_cnx, alt, site); 
}

// Gestion du beep sonore
function playsound(soundfile)
{
	if ( onlinelist.ii_sound == 0)	{ return; }
	
	if (document.all && document.getElementById)
	{
		document.getElementById("soundeffect").src="" //reset first in case of problems
		document.getElementById("soundeffect").src=soundfile
	}
}

function c(){}

