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

YUKU.username =
{
   display : function ()
   {
      if (!window.gs || (window.gs && window.gs.isLoged == 0))
         return;

      var name = this.getName();
      var tags = YUKU.get_by_tag('span');

      for (var i = 0; l = tags.length, i < l; i++)
         if (YUKU.className.test(tags[i], 'yukuname'))
            tags[i].innerHTML = name;

      var tags = YUKU.get_by_tag('input');

      for (var i = 0; l = tags.length, i < l; i++)
         if (YUKU.className.test(tags[i], 'yukuname'))
            tags[i].value = name;

      tags = null;
   },

   titles : function (name)
   {
      if (window.gs && window.gs.isLoged == 1)
      {
         name = this.getName();
      }

      document.title = document.title.replace(/\[you\]/ig, name);

      // topic links, active members, last post etc
      var links = YUKU.get_by_tag('A', YUKU.get_by_id('wrapper'));
      for (var i = 0, l = links.length; i < l; i++)
         links[i].innerHTML = links[i].innerHTML.replace(/\[you\]/ig, name);

      // topic titles
      var heads = YUKU.get_by_tag('H3', YUKU.get_by_id('wrapper'));
      for (var i = 0, l = heads.length; i < l; i++)
         heads[i].innerHTML = heads[i].innerHTML.replace(/\[you\]/ig, name);

      // reply titles
      var spans = YUKU.get_by_tag('SPAN', YUKU.get_by_id('wrapper'));
      for (var i = 0, l = spans.length; i < l; i++)
         if (YUKU.class_name.test(spans[i], 'post-title'))
            spans[i].innerHTML = spans[i].innerHTML.replace(/\[you\]/ig, name);

      links = spans = heads = null;
   },

   replace : function (map, who)
   {
      var owner = who ? this.getWhosOnline() : YUKU.get_by_id('wrapper');
      if (!owner) return;

      var links = YUKU.get_by_tag('A', owner);
      for (var i = 0; l = links.length, i < l; i++)
      {
         var match = links[i].href.match("^http://([A-Za-z0-9\-]+)\\.([A-Za-z0-9]+)\\.yuku\\.com(\/)?$");
         if (match && links[i].getElementsByTagName('*').length == 0)
         {
            if (links[i].innerHTML.indexOf('(d)') != -1)
            {
               var name = links[i].innerHTML.toLowerCase() + '.u';
               if (map && map[name])
                  links[i].innerHTML = map[name];
            }

            if (links[i].innerHTML.toLowerCase().replace(/\s/g, '-').indexOf(match[1]) != -1)
            {
               var name = match[1] + '.' + match[2];
               if (map && map[name])
                  links[i].innerHTML = map[name];
            }
         }
      }

      links = null;
   },

   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.class_name.test(uls[i], 'users-online'))
         {
            uls[i].id = 'users-online';
            return uls[i];
         }
      }

      return null;
   },

   getName : function ()
   {
      if (window.gs.username)
         return window.gs.username;

      var p = YUKU.get_by_tag('P')[0];
      if (!YUKU.class_name.test(p, 'welcome-message'))
         return '';

      var a = YUKU.get_by_tag('A', p)[0];
      window.gs.username = a.innerHTML;

      return window.gs.username;
   }
}