function ouvrirFenetre(url, nompage, largeur, hauteur, extra)
{
  window.open(url, nompage,
              extra + ' status=no, width=' + largeur + ', height=' + hauteur);
  return false;
}

var scrOfX = 0, scrOfY = 0;
function getScrollXY()
{
  if( typeof( window.pageYOffset ) == 'number' )
  {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
  {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
  {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
}

var mouse_x=0; var mouse_y=0;
function mouseMove (evt)
{
  getScrollXY();

	if (document.all)
  {
    mouse_x=event.clientX + scrOfX;
    mouse_y=event.clientY + scrOfY;
	}
  else if (document.getElementById)
  {
		mouse_x=evt.clientX + scrOfX;
    mouse_y=evt.clientY + scrOfY;
	}
}
if (document.layers || document.all)
  document.onmousemove = mouseMove;
if (document.addEventListener)
  document.addEventListener('mousemove', mouseMove, true);

var agt = navigator.userAgent.toLowerCase();
var isMac = (agt.indexOf('mac') != -1);
var isOpera = (agt.indexOf("opera") != -1);
var isIE = ((agt.indexOf('msie')!=-1 && !isOpera && (agt.indexOf('webtv')==-1)) && !isMac);


function showAide(nom, show)
{
  aide = document.getElementById(nom);
  if (mouse_x>450)
    aide.style.left = (mouse_x-405) + 'px';
  else
    aide.style.left = (mouse_x+5) + 'px';
  aide.style.top = (mouse_y+10) + 'px';
  aide.style.visibility = show?"visible":"hidden";
  SelectVisible(show?"hidden":"visible",document.getElementsByTagName('select'));
}

function SelectVisible(v,elem)
{
	if (isIE)
		for (var i=0;i<elem.length;i++)
      elem[i].style.visibility=v;
}

var xhr_object = null;
var lastobj = null;
var idlastmessage = 0;
var unique = 1000;
var bip = 0;
  

function rafraichiEx()
{
  rafraichi(null, '');
}

function sendAjax(url, func)
{
  if (xhr_object == null)
    if(window.XMLHttpRequest)
      xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject)
      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
      return true;
  xhr_object.open("GET", url, true);
  xhr_object.onreadystatechange = func;
  xhr_object.send(null);
}

function rafraichi(obj, texte)
{
  bip++;
  if (bip > 5)
  {
    extra = '&bip=1';
    bip = 0;
  }
  else
    extra = '';
  couleur = document.getElementById('couleurtexte');
  couleur = couleur.options[couleur.selectedIndex].value;
  url = 'chat_ajax.php?message=' + encodeURIComponent(texte) +
        '&idlastmessage=' + idlastmessage + '&unique=' + unique +
        '&couleur=' + couleur + extra;
  unique++;
  
  //alert(url);
  //document.getElementById('debug').innerHTML = unique + ' ' + url;
  sendAjax(url, function () {getNextCallback();});
  
  document.body.style.cursor = 'wait';
  if (obj != null)
    obj.style.cursor = 'wait';
  lastobj=obj;

  if (texte != '')
    document.getElementById('saisie_message').value = '';

  clearTimeout(timer);

  return false;
}

function getNextCallback()
{
  if (xhr_object.readyState == 4)
  {
    document.body.style.cursor = 'default';
    if (lastobj != null)
      lastobj.style.cursor = 'default';

    texte = xhr_object.responseText.split('##');
    idlastmessage = texte[0];
    if (texte[1] != '')
    {
      liste_user = texte[1].split('#');

      for (i = 0; i < liste_user.length; i++)
      {
        nom = liste_user[i];
        isRetire = (nom.charAt(0) == '-');
        nom = nom.substr(1, nom.length);
        
        ajoute = true;
        for (j = 0; j < tableuser.length; j++)
        {
          if (tableuser[j] == nom)
          {
            if (isRetire)
              tableuser.splice(j, 1);
            else
              ajoute = false;
            break;
          }
        }

        if ((!isRetire) && (ajoute))
          tableuser.push(nom);
      }
      tableuser.sort();

      s = '';
      for (j = 0; j < tableuser.length; j++)
        s += tableuser[j] + '<br/>';

      document.getElementById('listejoueur').innerHTML = s;
    }
    if (texte[2] != '')
    {
      liste_message = texte[2].split('#');

      s = '';
      for (i = 0; i < liste_message.length; i++)
      {
        message = liste_message[i];
        
        if (message != '')
        {
          posi = message.indexOf('-');
          if (posi > 0)
          {
            couleur = message.substring(0, posi);
            message = '<span class="chatc' + couleur + '">' + message.substr(posi+1, message.length) + '</span><br/>';
          }
          s += message;
        }
      }
      document.getElementById('messages').innerHTML = s + document.getElementById('messages').innerHTML;
    }
    timer = setTimeout("rafraichiEx()", 10000);
  }
}

function rafraichiListe(obj, texte)
{
  url = 'chat_ajax.php?type=1&unique=' + unique;
  unique++;

  sendAjax(url, function () {getNextCallback2();});
  
  document.getElementById('listesalon').style.cursor = 'wait';
  
  return false;
}

function getNextCallback2()
{
  if (xhr_object.readyState == 4)
  {
    document.getElementById('listesalon').style.cursor = 'default';
    
    document.getElementById('listesalon').innerHTML = xhr_object.responseText;
    timer = setTimeout("rafraichiListe()", 60000);
    
  }
}
