_frontend = {
  _working: false,
  _interval: 0,

  setOpacity: function(_id, _opacity)
  {
    var _o = $(_id);

    if (_opacity < 0)
      _opacity = 0;
    else if (_opacity > 100)
      _opacity = 100;

    // IE.
    _o.style.filter = 'alpha(opacity=' + _opacity + ')';
    // Old mozilla and firefox
    _o.style.MozOpacity = _opacity/100;
    // Everything else.
    _o.style.opacity = _opacity/100;
  },

  _fadePic: function(_index, _opacity, _prevOpacity)
  {
    var _o = $('vip-product-' + _index);

    if (_opacity <= 0)
    {
      _frontend.setOpacity('white', _opacity + 100);
    }

    if (_prevOpacity <= 0 && _opacity >= 0)
    {
      _frontend.setOpacity('white', 100);

      $$('div.vip-product').each(function(_e) { _e.hide(); });
      _o.show();
    }

    if (_opacity >= 0)
    {
      _frontend.setOpacity('white', 100 - _opacity);
    }

    if (_opacity < 100)
    {
      _frontend._cur_opacity = _opacity + 10;
      _frontend._timeout = window.setTimeout('_frontend._fadePic("' + _index + '", ' + _frontend._cur_opacity + ', ' + _opacity + ');', 15);
    }
    else
    {
      $('white').hide();
      _frontend._working = false;
    }
  },

  fadePic: function(_index, _fadeIn)
  {
    $$('div.vip-product-thumbs a').each(function(_e) { _e.removeClassName('selected'); });
    $("vip-product-thumb-" + _index).addClassName('selected');

    if (_frontend._working)
    {
      window.clearTimeout(_frontend._timeout);

      if (_frontend._cur_opacity < 0)
      {
        _frontend._timeout = window.setTimeout('_frontend._fadePic("' + _index + '", ' + _frontend._cur_opacity + ', ' + _frontend._cur_opacity + ');', 15);
      }
      else
      {
        _frontend._timeout = window.setTimeout('_frontend._fadePic("' + _index + '", ' + (- _frontend._cur_opacity) + ', ' + (- _frontend._cur_opacity) + ');', 15);
      }

      return;
    }

    $('white').show();
    _frontend._working = true;

    if (_fadeIn)
    {
      _frontend._fadePic(_index, -100, -100);
    }
    else
    {
      _frontend.setOpacity('white', 100);
      _frontend._fadePic(_index, 0, -100);
    }
  },

  myFadePic: function(_index, _fadeIn)
  {
    if (_frontend._interval != 0)
    {
      window.clearInterval(_frontend._interval);
      _frontend._interval = 0;
    }

    _frontend.fadePic(_index, _fadeIn);
  },





  initialize: function()
  {
    _frontend.fadePic(0, false);
  },

  initializeInterval: function(_count)
  {
    _frontend._count = _count;
    _frontend._cur = 0;
    _frontend._interval = window.setInterval('_frontend._next();', 5000);
  },

  _next: function()
  {
    _frontend._cur++;
    if (_frontend._cur >= _frontend._count)
      _frontend._cur = 0;

    _frontend.fadePic(_frontend._cur, true);
  }
}

Event.observe(window, 'load', _frontend.initialize);

