// Toutes les fonctions utiles au tchat
document.Fields = new Array();

requeteAjax = function() {
    var xhr; 
	if (window.XMLHttpRequest) 
	{
	  //Firefox ou IE >= 7.0
	  xhr = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) 
	{
	  try 
	  { // essaie de charger l'objet pour IE
		xhr = new ActiveXObject("Msxml2.XMLHTTP");
	  } 
	  catch (e) 
	  {
		 try 
		 { // essaie de charger l'objet pour une autre version IE
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		 } 
		 catch (e) 
		 {
			window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
		 }
	  } 
	}

	return xhr
}

unFocus = function() {
	document.getElementById('unFocusField').focus();
}

openTchatWith = function(user_id, user_pseudo, from_id) {
	if(document.userHaveLog)
		requestTchatWith(user_id, user_pseudo, from_id);
	else
		alert('Vous devez avoir un pseudonyme (membre ou invite) pour pouvoir poster!');
}

openTchat = function(user_id, user_pseudo, from_id, direct) {
	window.open("_chat_session.php?user_id="+user_id+"&from_id="+from_id+"&direct="+direct, user_pseudo+";"+user_id, "directories=no,location=no,menubar=no,toolbar=no,width=600,height=300");
}

requestTchatWith = function(user_id, user_pseudo, from_id) {
	openTchatReq = requeteAjax();
	openTchatReq.onreadystatechange = function() {
		if(openTchatReq.readyState==1)
			changeStatutMessageTo('Demande de tchat avec '+user_pseudo+' en attente', 'reussite', 'block');
		if(openTchatReq.readyState==4) {
			if(openTchatReq.responseText=='true') {
				changeStatutMessageTo('Demande de tchat avec '+user_pseudo+' réussie, veuillez patienter!', 'reussite', 'block');
				openTchat(user_id, user_pseudo, from_id, true);
			}
			else {
				if(openTchatReq.responseText=='same')
					changeStatutMessageTo('Vous ne pouvez pas vous parler a vous meme!', 'echec', 'block');
				else if(openTchatReq.responseText=='already')
					changeStatutMessageTo('Vous parlez deja avec cette personne!', 'echec', 'block');
				else if(openTchatReq.responseText=='unexistant')
					changeStatutMessageTo('Destinataire inexistant, veuillez reessayer', 'echec', 'block');
				else
					changeStatutMessageTo('Un probleme est survenu durant l\'operation, veuillez reessayer', 'echec', 'block');
			}
		}
	}	
	openTchatReq.open("GET", "_chatOpen.php?user_id="+user_id+"&from_id="+from_id, true);
	openTchatReq.send(null);
}

changeStatutMessageTo = function(newMessage, statut, display) {
	document.getElementById('statutMessage').innerHTML = newMessage;
	if(statut=='reussite')
		document.getElementById('statutMessage').style.backgroundColor = "BADB88";
	else
		document.getElementById('statutMessage').style.backgroundColor = "D98A8A";
	document.getElementById('statutMessage').style.display = display;
	if(display=='block')
		document.changeStatutInterval = setInterval("closeStatutMessage()", 15000);
}

closeStatutMessage = function() {
	document.getElementById('statutMessage').style.display = 'none';
	clearInterval(document.changeStatutInterval);
}

fermetureTchat = function(session_id, user_id, from_id) {
	alert('Un message va etre envoye a votre correspondant pour lui signaler la fermeture de cette discussion');
	openTchatReq = requeteAjax();
	openTchatReq.onreadystatechange = function() {
		if(openTchatReq.readyState==4) {
			if(openTchatReq.responseText=='true') {
			}
		}
	}	
	openTchatReq.open("GET", "_closeChat.php?user_id="+user_id+"&from_id="+from_id+"&session_id="+session_id, true);
	openTchatReq.send(null);
}

refreshConnectes = function() {
	parent.frames['users'].location.reload();
}

verifNewTchatRequest = function(user_id) {
	VerifTchatReq = requeteAjax();
	VerifTchatReq.onreadystatechange = function() {
		if(VerifTchatReq.readyState==4) {
			if(VerifTchatReq.responseText!='false') {
				reponse = VerifTchatReq.responseText.split(';');
				nbRequests = reponse[0];
				var i=1;
				while(i<=nbRequests) {
					openTchat(user_id, reponse[i++], reponse[i++], false);
				}
			}
		}
	}	
	VerifTchatReq.open("GET", "_verifNewTchat.php?user_id="+user_id, true);
	VerifTchatReq.send(null);
}

refreshMessageContent = function(session_content_object_id) {
	session_content_object_id.reload();
}

refreshNav = function() {
	parent.frames['nav'].location.reload();
	clearInterval(document.refreshNavInterval);
}

refreshChat = function() {
	parent.frames['chat'].location.reload();
}

fermerSession = function(session_id, nom_popup) {
	closeSessionReq = requeteAjax();
	closeSessionReq.onreadystatechange = function() {
		if(closeSessionReq.readyState==4) {
			if(closeSessionReq.responseText=="true")
				window.close(nom_popup)
			else
				alert('Impossible');
		}
	}
	closeSessionReq.open("GET", "_chatCloseSession.php?session_id="+session_id, true);
	closeSessionReq.send(null);
}
