/* init */
var off = 0; // blokuje refresh przed odebraniem wczesniejszego żądania
var online = 0; // to samo dla getlist();
var oldtext; // poprzednia zawartosc czatu, aby sprawdzic czy nastapily zmiany
var oldscroll; // poprzednia wysokosc scrolla aby wrocic do tego miejsca po refreshu,

var ok=0; // zmienna pomocnicza
$().ready(function(){

refresh();
getlist();

      /* wysylanie wiadomosci */
      $(".send").keypress(function(e){
      if(e.keyCode == 13) {
            //off = 1;
            var data = $(".send").val();
            $(".send").val("");
                  $.ajax({
                     type: "POST",
                     url: "/ajax/chat.php",
                     data: "data="+data+"&send=1&action=1",
                     success: function(msg){   
                        //off = 0;
                        var data = '<div style="height: 600px; overflow-y: scroll;" id="scroll">'+msg+'</div>';
                        if(ok==1){
                              oldscroll = document.getElementById("scroll").scrollTop;
                              $(".chat").html(data);
                        } else {
                              $(".chat").html(data);
                              ok=1;
                        }
                              var onchange = scroll(data);
                              if(onchange==1){
                                    document.getElementById("scroll").scrollTop=document.getElementById("scroll").scrollHeight;
                              } else {
                                    document.getElementById("scroll").scrollTop=oldscroll;
                              } 
                     }
                   });
      }
      });
      /* 1h mute dla graczy */
      $(".mute").live("click", function(){
            var username = $(this).prev("span").html();
            $.ajax({
               type: "POST",
               url: "/ajax/chat.php",
               data: "mute="+username,
               success: function(){}
             });
      });
      
      /* perm mute dla graczy */
      $(".permute").live("click", function(){
            var username = $(this).prev("span").prev("span").html();
            $.ajax({
               type: "POST",
               url: "/ajax/chat.php",
               data: "permute="+username,
               success: function(){}
             });
      });
      
      /* unmute */
      $(".unmute").live("click", function(){
            var username = $(this).prev("span").html();
            $.ajax({
               type: "POST",
               url: "/ajax/chat.php",
               data: "unmute="+username,
               success: function(){}
             });
      });
      
      $(".nickname").live("click", function(){
            var username = $(this).html();
            $(".send").val("/"+username+" ");
            $(".send").focus();
      });


});

/* gdy są nowe wiadomosci ustawia scroll na końcu */
function scroll(data){

      if(oldtext!=data){
            //alert(1);
            oldtext = data;
            return 1;
      } else {
            //alert(2);
            return oldscroll;      
      }

}

/* aktualizuje wiadomosci */
function refresh(){
      if(off==0){
      off = 1;
            $.ajax({
               type: "POST",
               url: "/ajax/chat.php",
               data: "refresh=1&action=1",
               success: function(msg){   
                  var data = '<div style="height: 600px; overflow-y: scroll;" id="scroll">'+msg+'</div>';
                  
                  if(ok==1){
                        oldscroll = document.getElementById("scroll").scrollTop;
                        $(".chat").html(data);
                  } else {
                        $(".chat").html(data);
                        ok=1;
                  }
                        var onchange = scroll(data);
                        if(onchange==1){
                              document.getElementById("scroll").scrollTop=document.getElementById("scroll").scrollHeight;
                        } else {
                              document.getElementById("scroll").scrollTop=oldscroll;
                        } 
                  off = 0;
                  setTimeout("refresh();", 1000);
               }
             });
       off = 0;
       }
}

/* pobiera listę osób */
function getlist(){
      if(online==0){
      online = 1;
            $.ajax({
               type: "POST",
               url: "/ajax/chat.php",
               data: "refresh=1&action=2",
               success: function(msg){   
                  $(".online").html(msg);
                  online = 0;
                  setTimeout("getlist();", 5000);
               }
             });
      }
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
