// JavaScript Document
var sendReq = getXmlHttpRequestObject();
var receiveReq = getXmlHttpRequestObject();
var lastMessage = 0;
var getTimer;
var setTimer;

//Function for initializating the page.
function startStates() {
	//Set the focus to the Message Box.
	//document.getElementById('txt_message').focus();
	//Start Recieving Messages.
	//alert('Réception de message');
	
	updateStatesBase();
    getStatesBase();
}		

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		document.getElementById('p_status').innerHTML = 'Votre navigateur web ne supporte pas le standard de WEB 2.0. Penser à utiliser une nouvelle version de navigateur.';
	}
}

//Gets the current messages from the server
function getStatesBase() {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", chemin + 'enligne/getStates.php?act=1', true);
		receiveReq.onreadystatechange = handleReceiveData; 
		receiveReq.send(null);
	}			
}

//Add a message to the chat server.
function updateStatesBase() {
	if (sendReq.readyState == 4 || sendReq.readyState == 0) {
	  //alert(sendReq.readyState);
		sendReq.open("POST", chemin + 'enligne/getStates.php?act=2', true);
		sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		sendReq.onreadystatechange = handleSendData; 
		var param = 'message=rien';
		//alert(param);
		sendReq.send(param);
	}							
}

//When our message has been sent, update our page.
function handleSendData() {
	//Clear out the existing timer so we don't have 
	//multiple timer instances running.
    clearInterval(getTimer);
	
    setTimer = setTimeout('updateStatesBase();',7500);
    getStatesBase();
    
     
	//alert('mise à jour faite');
	
}

//Function for handling the return 
function handleReceiveData() 
{
	//alert('Réception de message');
    if (receiveReq.readyState == 4) 
    {
      
	  /***************** Traitement XML ***********************************/
		
	  var xmldoc = receiveReq.responseXML;				
	  var connect_node = xmldoc.getElementsByTagName("connecte"); 
      if(connect_node[0].getElementsByTagName("nombre"))
	  {
        var nbr_con_node = connect_node[0].getElementsByTagName("nombre");
        if(connect_node[0].getElementsByTagName("utilisateur"))
            var user_nodes = connect_node[0].getElementsByTagName("utilisateur");
        nbr_con = nbr_con_node[0].firstChild.nodeValue;
      }
      
      /***** Désactiver chat tant que l'admin n'est pas encore en ligne ****/
      
      if(document.getElementById('message'))
      {
        var  msg_div = document.getElementById('message');  
      
        if(nbr_con == 0)
            disableFields(nbr_con, null, null);
        else
            disableFields(nbr_con, xmldoc, user_nodes);
      }
      
      /******* Affichage de la liste des connectés et des visiteurs en ligne ****/
      
      if( document.getElementById('div_connecte') != null & document.getElementById('div_visiteur') != null ) 
      {
        //alert('Réception de message');
        
        //////////////////// Pour les membres connectés
        
		var con_div = document.getElementById('div_connecte');
		var vis_div = document.getElementById('div_visiteur');	
    var stat_div = document.getElementById('div_statistiques');
    
    	
		con_div.innerHTML = nbr_con_node[0].firstChild.nodeValue + ' connecté(s)<br />';

        for(i=0; i<user_nodes.length; i++)
        {
            con_div.innerHTML += user_nodes[i].firstChild.nodeValue + '<br />';
        }
        
        con_div.scrollTop = con_div.scrollHeight;
        
        //////////////////// Pour les simples visiteurs
        
		var visit_node = xmldoc.getElementsByTagName("visiteur"); 
		var nbr_vis_node = visit_node[0].getElementsByTagName("nombre");		
		vis_div.innerHTML = nbr_vis_node[0].firstChild.nodeValue + ' visiteur(s) en ligne<br />';
		
        vis_div.scrollTop = con_div.scrollHeight;        
		
        ///////////////////  STATISTIQUES DE VISITE
    
    var statistiques_node = xmldoc.getElementsByTagName("statistiques");
    var nbr_stat_node = statistiques_node[0].getElementsByTagName("nombrevisites");    
    stat_div.innerHTML = '<b>' + nbr_stat_node[0].firstChild.nodeValue + ' </b> visiteurs depuis le lancement du site.<br />';
    		
		/****************** Refresh our list in 7.5 seconds *******************/
        clearInterval(setTimer);
    	updateStatesBase();
    
        getTimer = setTimeout('getStatesBase();',7500); 
      }         
	}
    
 	
}

function disableFields(nbr_con, xmldoc, user_nodes)
{		      
    var  msg_div = document.getElementById('message');
    
    switch(nbr_con >0)
    {
      case true:
        for(i=0; i<user_nodes.length; i++)
        {
            if(user_nodes[i].firstChild.nodeValue != 'nirina')
            {
				msg_div.innerHTML = "Le psychologue n'est pas en ligne. Revenez plus tard, merci.<br />";                        
				document.getElementById('pseudo').disabled = true;
                document.getElementById('pwd').disabled = true; 
                document.getElementById('bouton').disabled = true;               
            }
            else
            {
                msg_div.innerHTML = "";
                document.getElementById('pseudo').disabled = false;
                document.getElementById('pwd').disabled = false; 
                document.getElementById('bouton').disabled = false;            
            }
        } 
        
        break;
      
      case false:
        
        msg_div.innerHTML = "Le psychologue n'est pas en ligne. Revenez plus tard, merci.<br />";
        document.getElementById('pseudo').disabled = true;
        document.getElementById('pwd').disabled = true;  
        document.getElementById('bouton').disabled = true; 
             
        break;        
    }     
}

