jQuery(document).ready(setupInlineLabel);
jQuery(document).ready(setupInlineMoreLink);
jQuery(document).ready(IE7fixes);

function setupInlineLabel() {
   var inlineLabels = jQuery('.ff_inlinelabel label');
   var inlineFields = jQuery('.ff_inlinelabel input');

   inlineFields.each(function () {
      if (this.value != '') {
         jQuery(this).prev().hide();
      }
   });
   inlineFields.focus(function () {
      jQuery(this).prev().fadeOut(100);
   });
   inlineFields.blur(function () {
      if (this.value.trim() == '') {
         jQuery(this).prev().fadeIn(700);
      }
   });
    //IE compat, since transparency is click-through
   inlineFields.click(function () {
      jQuery(this).prev().fadeOut(100);
   });

   inlineLabels.click(function () {
      jQuery(this).fadeOut(100);
      jQuery(this).next().focus();
   });
}

function setupInlineMoreLink() {
   jQuery('.list_item a.morelink').each(function () {
      var $more = jQuery(this);

      if ($more.prev().is('p')) {
         $more.prev().append($more);
      }
   });
}

function IE7fixes() {
   jQuery('.text h1:first-child').addClass('firstchild');
}

var AutoScroll = new Map();

AutoScroll.animationtime = 500;
AutoScroll.waittime = 4000;
AutoScroll.timer = 0;
AutoScroll.direction = 'horizontal';
AutoScroll.pos = '';
AutoScroll.dim = '';

AutoScroll.setup = function () {
   switch (AutoScroll.direction) {
      case 'vertical':
            AutoScroll.pos = 'top';
            AutoScroll.dim = 'height';
      break;
      case 'horizontal':
      default:
         AutoScroll.pos = 'left';
         AutoScroll.dim = 'width';
   }

   AutoScroll.blocks = jQuery('.offer_canvas > .offer_item');
   AutoScroll.blockSize = AutoScroll.blocks[AutoScroll.dim]();
   AutoScroll.currentBlockIndex = 0;

   // Do not initialize when list is empty or two small.
   if (AutoScroll.blocks.length < 2) {
      return;
   }

   // Distribute blocks
   AutoScroll.blocks.each(function (i) {
      var _css = new Object();
      _css[AutoScroll.pos] = i * AutoScroll.blockSize;
      jQuery(this).css(_css);
   });

   //set manual scroll events
   jQuery('.sb_aanbieding .sidebar_pager_prev').click(AutoScroll.manualPrev);
   jQuery('.sb_aanbieding .sidebar_pager_next').click(AutoScroll.manualNext);

   //initialise.
   AutoScroll.play();

   jQuery('.aanbieding_title').html(
      AutoScroll.blocks.eq(AutoScroll.currentBlockIndex).attr('offtitle')
   );
}
AutoScroll.play = function () {
   AutoScroll.timer = setInterval(
      function () {
         AutoScroll.next();
      },
      AutoScroll.waittime + AutoScroll.animationtime
   );
}

AutoScroll.next = function () {
   AutoScroll.blocks.each(function () {
      var jBlock = jQuery(this);
      var _blockoffset = parseInt(jBlock.css(AutoScroll.pos));
      var _index;
      var _css = new Object();
      _css[AutoScroll.pos] = _blockoffset - AutoScroll.blockSize;

      jBlock.animate(
         _css,
         {
            duration: AutoScroll.animationtime,
            complete: function () {
               //put uppermost block at bottom to wrap the scrolling.
               if (_blockoffset === 0) {
                  _css[AutoScroll.pos] = (AutoScroll.blocks.length-1) * AutoScroll.blockSize;
                  jBlock.css(_css);
               }

               //fill subtitles with title and price
               _index = (AutoScroll.currentBlockIndex % AutoScroll.blocks.length);

               jQuery('.aanbieding_title').html(AutoScroll.blocks.eq(_index).attr('offtitle'))
            }
         }
      );
   });
   AutoScroll.currentBlockIndex++;
}
AutoScroll.prev = function () {
   AutoScroll.blocks.each(function () {
      var jBlock = jQuery(this);
      var _index;
      var _css = new Object();


      var _blockoffset = parseInt(jBlock.css(AutoScroll.pos));

      //put bottommost block at top to wrap the scrolling.
      if (_blockoffset === (AutoScroll.blocks.length-1) * AutoScroll.blockSize) {
         _css[AutoScroll.pos] = -AutoScroll.blockSize;
         jBlock.css(_css);
         _blockoffset = -AutoScroll.blockSize;
      }

      _css[AutoScroll.pos] = _blockoffset + AutoScroll.blockSize;
      jBlock.animate(
         _css,
         {
            duration: AutoScroll.animationtime,
            complete: function () {
               //fill subtitles with title and price
               _index = (AutoScroll.currentBlockIndex % AutoScroll.blocks.length);
               jQuery('.aanbieding_title').html(AutoScroll.blocks.eq(_index).attr('offtitle'))
            }
         }
      );
   });
   AutoScroll.currentBlockIndex--;
}
AutoScroll.manualNext = function () {
   clearInterval( AutoScroll.timer );
   AutoScroll.next();

   return false;
}
AutoScroll.manualPrev = function () {
   clearInterval( AutoScroll.timer );
   AutoScroll.prev();

   return false;
}

jQuery(document).ready(AutoScroll.setup);

