/* WebRdA, made by Siggy for Synops, Mars 2008
 * Javascript powered !
 * Because Javascript simply rocks.
 */
 
 
  function is_int(variable){
    return variable.constructor === Number && Math.round(variable, 0) === variable;
  };

  function WafficheInterface(){
    $("#wrda .contloading").remove();
    $("#wrda .messages").show();
    $("#wrda .messages dl").fadeIn("slow");
    WupdateAff(true);
    WgetHisto();
    WautoRefresh();
    $("#wrda .ecrirenvoi").not(".ecrirehidden").fadeOut("slow", function(){ 
      $(this).remove(); 
      $(".ecrirenvoi.ecrirehidden").fadeIn("slow", function(){ 
        $(this).removeClass("ecrirehidden");
      });
    });
  };
  function Winitialise(){
    $(".contloading p").css("position", "relative")
                     .animate({top: -500, opacity: 0}, "slow", WafficheInterface);
  };
  function WupdateAff(force){
    hauteur = $(".messages dl").height();
    if(force || hauteur - ($("#wrda .messages")[0].scrollTop 
                                + $("#wrda .messages")[0].clientHeight) < 100)
      $("#wrda .messages").animate({scrollTop: hauteur}, 0);
    $("p#debug b").text(hauteur - ($("#wrda .messages")[0].scrollTop 
                                + $("#wrda .messages")[0].clientHeight));
  };
  function WaffMessage(message){
    $(".messages dl").append("<dd class=\"toaff\">" + message + "</dd>");
    WupdateAff();
    $(".toaff").show(300, function(){ $(this).removeClass(".toaff"); });
  };
  function WgetHisto(){
    getfrom = $("#wrda .messages span.time:last").text()
    $.getJSON("./serveur.php?gethist", function(data){
      opacity = 1;
      $.each(data, function(time, msg){
        opacity -= 0.12;
        $(".messages dl").prepend("<dd class=\"toaff histo\" style=\"opacity: "+ opacity +"\">" 
                    + "<span class=\"time\">" + time + "</span>"
                    + "<u class=\"heure\">" + msg.heure + "</u>"
                    + "<b class=\"pseudo\">" + msg.who + "</b> : " 
                    + "<span class=\"message\">" + msg.message + "</span>"
                    + "</dd>"); 
      });
      $(".toaff").fadeIn(0, function(){ $(this).removeClass(".toaff"); });
      WupdateAff();
    });
  };
  function Wrefresh(){
    getfrom = $("#wrda .messages span.time:last").text()
    $.getJSON("./serveur.php?getfrom=" + getfrom, function(data){
      $.each(data, function(time, msg){
        if(is_int(time)){
         WaffMessage("<span class=\"time\">" + time + "</span>"
                     + "<u class=\"heure\">" + msg.heure + "</u>"
                     + "<b class=\"pseudo\">" + msg.who + "</b> : " 
                     + "<span class=\"message\">" + msg.message + "</span>");
        }; 
      });
      $("i#rqec").attr("title", data.pong);
      WupdateAff();
    });
  };
  function WautoRefresh(){
    Wrefresh();
    setTimeout("WautoRefresh()", 1500);
  }
  function Wenvoyer(){
    who = $("#envoipseudo").val();
    lemessage = $("#envoitext").val();
    $.getJSON("./serveur.php", {message: lemessage, who: who}, function(data){
      if(data.error) alert(data.error);
    });
    $("#envoitext").val("");
  };

$(document).ready(function(){
  setTimeout("Winitialise()", 2000);
  $("#testbouton").click(function(){ WaffMessage("Test."); });
  $("#envoitext").click(function(){ 
    if($(this).val() == "Tapez votre message ici...")
      $(this).val("");
    });
  $("#envoitext").bind("keypress", function(e) {
    if (e.keyCode == 13) $("#envoibouton").click();
  });
  var lasttime = 0;
  var lag = 0;
  $("#refrbouton").click(Wrefresh);
  $("#envoibouton").click(Wenvoyer);
  $("#wrda i#rqec").bind("ajaxSend", 
        function(){ 
          lasttime = new Date();
          lasttime = lasttime.getTime();
          lasttime = Math.floor(lasttime / 1000) * 1000;
        })
        .bind("ajaxComplete", function(){
          $(this).fadeIn("slow");
          lag = $(this).attr("title") - lasttime; 
          if(lag < 2000){
            $(this).html('<img src="./images/Ping100.png" ' 
                         + 'title="Réception : Excellente" alt="Ping excellent" />');
          }else if(lag > 2000 && lag < 3000){
            $(this).html('<img src="./images/Ping75.png" ' 
                         + 'title="Réception : Bonne" alt="Ping bon" />');
          }else if(lag > 3000 && lag < 5000){
            $(this).html('<img src="./images/Ping50.png" ' 
                         + 'title="Réception : Moyenne" alt="Ping moyen" />');
          }else if(lag > 5000 && lag < 7000){
            $(this).html('<img src="./images/Ping25.png" ' 
                         + 'title="Réception : Mauvaise" alt="Ping mauvais" />');
          }else{
            $(this).html('<img src="./images/Ping0.png" ' 
                         + 'title="Réception : Très mauvaise" alt="Ping très mauvais" />');
          };
        });
  $("#wrda #prefbouton").click(function(){
    if($("#wrda #prefbouton").is(".displayed")){
      $("#wrda #prefbouton").removeClass("displayed");
      $("#wrda #prefbouton").addClass("notdisplayed");
    }else{
      $("#wrda #prefbouton").removeClass("notdisplayed");
      $("#wrda #prefbouton").addClass("displayed");
    }
    $("#wrda .preferences").animate({height: "toggle", opacity: "toggle"});
  }); 
});
 