﻿Tygrik.Nook = function()
{
   this.m_sID = "";
   this.m_iPriority = 60;
   this.m_iYet = 1;
   
   this.Init = function (sID, iPriority)
   {
      this.m_sID = sID;
      this.m_iPriority = iPriority;
   }
}

Tygrik.Nook.qNooks = new Array(); // objektiky automaticky udrzovane
Tygrik.Nook.iTimerTime = 1000; // za jak dlouho chceme aktualizovat

Tygrik.Nook.onLoad = function()
{
   Tygrik.Nook.doTimerNooks();
   setTimeout('Tygrik.Nook.onTimerNooks()', Tygrik.Nook.iTimerTime);
}

Tygrik.Nook.Register = function(sID, iPriority)
{
   var oNook = new Tygrik.Nook();
   oNook.Init(sID, iPriority);

   Tygrik.Nook.qNooks[Tygrik.Nook.qNooks.length] = oNook;
}

Tygrik.Nook.onTimerNooks = function()
{
   Tygrik.Nook.doTimerNooks();
   setTimeout('Tygrik.Nook.onTimerNooks()', Tygrik.Nook.iTimerTime);
}

Tygrik.Nook.doTimerNooks = function()
{
   var sNooks = "";
   var iNooks = Tygrik.Nook.qNooks.length;
   for(var iNook = 0; iNook < iNooks; iNook++)
   {
      var oNook = Tygrik.Nook.qNooks[iNook];
      var sID = oNook.m_sID;
      
      oNook.m_iYet = oNook.m_iYet - 1;
      if (oNook.m_iYet <= 0)
      {
         oNook.m_iYet = oNook.m_iPriority;

         if (sNooks.length != 0)
         {
            sNooks = sNooks + Tygrik.Change.MarkerDo(Tygrik.MarkerList);
         }    
         sNooks = sNooks + sID;
      }
   }
   if (sNooks.length != 0)
   {
      var oAjax = new Tygrik.Ajax();
      oAjax.Parameter("Face", "Nooks");
      oAjax.Parameter("IDs", sNooks);
      oAjax.DoPost("Tygrik-Ajax", "Tygrik.Nook.onFireNooks");
   }
}

Tygrik.Nook.doUpdateAllNooks = function()
{
   setTimeout('Tygrik.Nook.onUpdateAllNooks()', 1000);
}

Tygrik.Nook.onUpdateAllNooks = function()
{
   var sNooks = "";
   var iNooks = Tygrik.Nook.qNooks.length;
   for(var iNook = 0; iNook < iNooks; iNook++)
   {
      var oNook = Tygrik.Nook.qNooks[iNook];
      var sID = oNook.m_sID;
      
      if (sNooks.length != 0)
      {
         sNooks = sNooks + Tygrik.Change.MarkerDo(Tygrik.MarkerList);
      }    
      sNooks = sNooks + sID;
   }

   if (sNooks.length != 0)
   {
      var oAjax = new Tygrik.Ajax();
      oAjax.Parameter("Face", "Nooks");
      oAjax.Parameter("IDs", sNooks);
      oAjax.DoPost("Tygrik-Ajax", "Tygrik.Nook.onFireNooks");
   }
}

Tygrik.Nook.onFireNooks = function(sResult)
{
   var qNookResults = sResult.split(Tygrik.Change.MarkerDo(Tygrik.MarkerList));
   var iNookResults = qNookResults.length;
   for(var iNookResult = 0; iNookResult < iNookResults; iNookResult++)
   {
      var sNookResult = qNookResults[iNookResult];

      var qNookItems = sNookResult.split(Tygrik.Change.MarkerDo(Tygrik.MarkerItem));
      if (qNookItems.length == 2)
      {
         var sID = qNookItems[0];
         var sInner = qNookItems[1];

         var boxNook = Tygrik.System.ByID(sID);
         if (boxNook != null)
         {
             boxNook.innerHTML = sInner;
         }    
      }
   }
}

