if (!window.YUKU) var YUKU = {}

YUKU.whosonline = {

   members : function (title, groups, showKey, prettyKey, showEmpty)
   {
      if (!YUKU.get_by_id('directory_default') && !YUKU.get_by_id('forum_view'))
         return;

      var total = 0;
      var wol = this.getWhosOnline();
      var links = YUKU.get_by_tag('a', wol);

      if (links.length < 1 && !showEmpty)
         return;

      for (i = 0; i < groups.length; i++)
      {
         groups[i].count = 0;
         for (j = 0; j < groups[i].members.length; j++)
         {
            for (k = 0; k < links.length; k++)
            {
               if (links[k].href.indexOf(groups[i].members[j]) != -1)
               {
                  style_el(links[k], groups[i].style);

                  if (!showKey)
                     links[k].title = groups[i].title;

                  if (groups[i].suffix)
                     links[k].innerHTML += groups[i].suffix;

                  if (groups[i].prefix)
                     links[k].innerHTML = groups[i].prefix + links[k].innerHTML;

                  groups[i].count++;
                  total++;
               }
            }
         }
      }

      if (showKey && (total > 0 || showEmpty))
      {
         var gol = make_el('UL', {className: 'custom-online'}, wol.parentNode);

         var li = make_el('LI', {className: 'first'}, gol);
         var label = make_el('STRONG', title, li);

         for (i = 0; i < groups.length; i++)
         {
            if (groups[i].count > 0 || showEmpty)
            {
               var li = make_el('LI', gol);

               if (prettyKey)
                  var span = make_el('SPAN', {style: groups[i].style}, li);
               else
                  var span = make_el('SPAN', li);

               span.innerHTML = groups[i].count + ' ' + groups[i].title;
            }
         }

         YUKU.className.add(li, 'last');
      }
   },

   groups : function (title, groups, showKey, prettyKey, showEmpty)
   {
      if (!YUKU.get_by_id('directory_default') && !YUKU.get_by_id('forum_view'))
         return;

      var total = 0;
      var wol = this.getWhosOnline();
      var lis = YUKU.get_by_tag('li', wol);

      if (lis.length < 2)
         return;

      for (i = 0; i < groups.length; i++)
      {
         groups[i].count = 0;
         for (j = 0; j < lis.length; j++)
         {
            if (YUKU.className.test(lis[j], groups[i].name))
            {
               var link = YUKU.get_by_tag('A', lis[j])[0];
               style_el(link, groups[i].style);

               if (!showKey)
                  link.title = groups[i].title;

               if (groups[i].suffix)
                  link.innerHTML += groups[i].suffix;

               if (groups[i].prefix)
                  link.innerHTML = groups[i].prefix + link.innerHTML;

               groups[i].count++;
               total++;
            }
         }
      }

      if (showKey && (total > 0 || showEmpty))
      {
         var gol = make_el('UL', {className: 'custom-online'}, wol.parentNode);

         var li = make_el('LI', {className: 'first'}, gol);
         var label = make_el('STRONG', title, li);

         for (i = 0; i < groups.length; i++)
         {
            if (groups[i].count > 0 || showEmpty)
            {
               var li = make_el('LI', gol);

               if (prettyKey)
                  var span = make_el('SPAN', {style: groups[i].style}, li);
               else
                  var span = make_el('SPAN', li);

               span.innerHTML = groups[i].count + ' ' + groups[i].title;
            }
         }

         YUKU.className.add(li, 'last');
      }
   },

   getWhosOnline : function ()
   {
      if (YUKU.get_by_id('users-online'))
         return YUKU.get_by_id('users-online');

      var uls = YUKU.get_by_tag('ul', YUKU.get_by_id('wrapper'));
      for (var i = 0; i < uls.length; i++)
      {
         if (YUKU.className.test(uls[i], 'users-online'))
         {
            uls[i].id = 'users-online';
            return uls[i];
         }
      }
   },

   text2images : function (images)
   {
      if (!YUKU.get_by_id('directory_default') && !YUKU.get_by_id('forum_view'))
         return;

      var visitors = this.getVisitorsOnline();
      var online = this.getWhosOnline();
      var lis = YUKU.get_by_tag('LI', visitors);

      if (images.active) {
         lis[0].innerHTML = '<img src="'+images.active+'" alt="'+lis[0].firstChild.innerHTML+'" title="'+lis[0].firstChild.innerHTML+'">';
      }

      if (images.total) {
         var temp = lis[1].innerHTML.split(/\s/);
         var num = temp.shift(), text = temp.join(' ');

         lis[1].innerHTML = num + ' ' + '<img src="'+images.total+'" alt="'+text+'" title="'+text+'">';
      }

      if (images.registered) {
         var temp = lis[2].innerHTML.split(/\s/);
         var num = temp.shift(), text = temp.join(' ');

         lis[2].innerHTML = num + ' ' + '<img src="'+images.registered+'" alt="'+text+'" title="'+text+'">';
      }

      if (images.guests) {
         var temp = lis[3].innerHTML.split(/\s/);
         var num = temp.shift(), text = temp.join(' ');

         lis[3].innerHTML = num + ' ' + '<img src="'+images.guests+'" alt="'+text+'" title="'+text+'">';
      }

      if (images.anonymous) {
         var temp = lis[4].innerHTML.split(/\s/);
         var num = temp.shift(), text = temp.join(' ');

         lis[4].innerHTML = num + ' ' + '<img src="'+images.anonymous+'" alt="'+text+'" title="'+text+'">';
      }

      if (images.lastday) {
         var temp = lis[5].innerHTML.split(/\s/);
         var num = temp.shift(), text = temp.join(' ');

         lis[5].innerHTML = num + ' ' + '<img src="'+images.lastday+'" alt="'+text+'" title="'+text+'">';
      }

      if (images.mostever) {
         var temp = lis[6].innerHTML.split(/\:/);
         var text = temp.shift(), num = temp.join(' ');

         lis[6].innerHTML = '<img src="'+images.mostever+'" alt="'+text+'" title="'+text+'"> ' + num;
      }

      if (images.whosonline)
      {
         var lis = YUKU.get_by_tag('LI', online);
         lis[0].innerHTML = '<img src="'+images.whosonline+'" alt="'+lis[0].firstChild.innerHTML+'" title="'+lis[0].firstChild.innerHTML+'">';
      }
   },

   getVisitorsOnline : function ()
   {
      if (YUKU.get_by_id('visitors-online'))
         return YUKU.get_by_id('visitors-online');

      var uls = YUKU.get_by_tag('ul', YUKU.get_by_id('wrapper'));
      for (var i = 0; i < uls.length; i++)
      {
         if (YUKU.className.test(uls[i], 'visitors'))
         {
            uls[i].id = 'visitors-online';
            return uls[i];
         }
      }
   }
}