var Chat = {
 Interval: 10000,
 RefreshInterval: 1000,
 StatusInterval: 10000,
 ContainerPrefix: "CHT_",
 XHR_Watch: null,
 XHR_Refresh: null,
 XHR_Status: null,
 Generator: new Array(),

 Start: function(Starter, Invited)
 {
  if(typeof(Chat.Generator[Starter+Invited]) == 'undefined' || Chat.Generator[Starter+Invited].closed)
  {
   Chat.Generator[Starter+Invited] = window.open(Cfg['Environment']['BaseURL']+'Chat.php?P='+Chat.ContainerPrefix+"&S="+Starter+"&I="+Invited, Chat.ContainerPrefix+"Main"+Starter+Invited, 'height=400,width=400,left=100,top=100,resizable=yes,scrollbars=no,toolbar=no,status=yes');
  }
  else
  {
   //Chat.Generator[Starter+Invited].focus();
  }
 },

 Send: function(Starter, Invited)
 {
  var Field = $("#"+Chat.ContainerPrefix+"Field"+Starter+Invited);
  var Messages = $("#"+Chat.ContainerPrefix+"Messages"+Starter+Invited);

  if(Field.val() != "")
  {
   Message = Field.val();

   $.post(Cfg['Environment']['BaseURL']+"AJAX/Content/Chat/Send.php", {CStarter: Starter, CInvited: Invited, CMessage: Message}, function(Data){
    Messages.append(Data);
    Messages.attr({scrollTop: Messages.attr("scrollHeight")});
   }, "text");

   Field.val("");
  }
 },

 Watch: function(Invited)
 {
  if(Chat.XHR_Watch)
  {
   Chat.XHR_Watch.abort();
  }

  Chat.XHR_Watch = $.post(Cfg['Environment']['BaseURL']+"AJAX/Content/Chat/Watch.php", {CInvited: Invited}, function(J){

   for(var I=0; I<J.length; I++)
   {
    Chat.Start(Invited, J[I].Starter);
   }

  }, "json");

  setTimeout("Chat.Watch('"+Invited+"')", Chat.Interval);
 },

 Refresh: function(Invited, Starter)
 {
  var Messages = $("#"+Chat.ContainerPrefix+"Messages"+Starter+Invited);

  if(Chat.XHR_Refresh)
  {
   Chat.XHR_Refresh.abort();
  }

  Chat.XHR_Refresh = $.post(Cfg['Environment']['BaseURL']+"AJAX/Content/Chat/Refresh.php", {CInvited: Invited, CStarter: Starter}, function(J){

   for(var I=0; I<J.length; I++)
   {
    Messages.append("<strong>"+J[I].Starter+"</strong>: "+J[I].Message+"<br />");
    Messages.attr({scrollTop: Messages.attr("scrollHeight")});
   }
  }, "json");

  setTimeout("Chat.Refresh('"+Invited+"', '"+Starter+"')", Chat.RefreshInterval);
 },

 Status: function()
 {
  var KString = "";

  $("div.Main_KupplerStatus").each(function (){
   KString += ":"+$(this).attr("rel");
  });

  KString = KString.substr(1);

  if(KString != "")
  {
   if(Chat.XHR_Status)
   {
    Chat.XHR_Status.abort();
   }

   Chat.XHR_Status = $.post(Cfg['Environment']['BaseURL']+"AJAX/Content/Chat/Status.php", {Kupplers: KString}, function(J){

    for(var I=0; I<J.length; I++)
    {
     $("#Main_KupplerStatus"+J[I].Kuppler).each(function (){
      $(this).html((J[I].Status == "0" ? "offline" : "<font color='green'>online</font>"));;
     });
    }

   }, "json");

   setTimeout("Chat.Status()", Chat.StatusInterval);
  }
 }
           }
