
function Toggler (ids, mouseover, remember)
{
   this.ids = ids;
   this.els = {};
   this.mouseover = mouseover;
   this.remember = remember;
}

Toggler.prototype = new ObjectEvents();

Toggler.prototype.init = function ()
{
   var links = YUKU.get_by_tag('A', YUKU.get_by_id('wrapper'));
   for (var i = 0, l = links.length; i < l; i++)
   {
      var a = links[i];
      if (a.rel && YUKU.in_array(this.ids, a.rel))
      {
         if (this.mouseover)
            this.addEvent(a, 'mouseover', 'toggle');
         else
            this.addEvent(a, 'click', 'toggle');

         this.els[a.rel] = YUKU.get_by_id(a.rel);
      }
   }

   links = null;

   if (this.remember)
   {
      var id = YUKU.get_cookie('toggler', false);
      if (id)
         this.hide_except(id);
   }
}

Toggler.prototype.toggle = function (e)
{
   var src = YUKU.get_target(e);
   var els = this.els;

   if (src.nodeName != 'A' || !src.rel || (src.rel && !els[src.rel]))
      return;

   if (!this.mouseover)
      YUKU.prevent_default(e);

   this.hide_except(src.rel);
};

Toggler.prototype.hide_except = function (id)
{
   var els = this.els;
   for (var i in els)
   {
      if (id == i)
         YUKU.class_name.kill(els[i], 'toggle-hidden');
      else
         YUKU.class_name.add(els[i], 'toggle-hidden');
   }

   if (this.remember)
      YUKU.set_cookie('toggler', id);
}