$(document).ready(function() {
  $('.ugc').each(function() {
    if (!$(this).hasClass('nofelix')) {
      var text = $(this).find('p:first-child').html();

      if (text != null) {
        $(this).find('p:first-child').html(text.replace(/^([^&<])/g, '<span class="felix">$1</span>'));
      }
    }
  });

  Cufon.replace('.felix');

  setTimeout(function(){
    var ch = $('#contact').outerHeight() - 3;

    $('#contact').css({
      top: '-' + ch + 'px'
    });
  }, 500);

  $('.contact_form').click(function() {
    if (!$('#contact').hasClass('active')) {
      $('#contact').animate({
        top: '0px'
      }).addClass('active');
    }

    return false;
  });

  $('.producer .selector .wines .wine').click(function() {
    return false;
  })

  $('.producer .selector .wines .wine').hover(function() {
    var id = $(this).attr('href');

    showWineInfo(id);
  }, function() {
    var id = $(this).attr('href');

    hideWineInfo(id);
  });

  $('.producer .selector ol li').hover(function() {
    var id = '#'+$(this).attr('id');
    var $wines = $(this).parents('.selector').find('.wines');
    var offset = parseInt($wines.offset().left);
    var left = parseInt($(id+'_image').offset().left);

    if ($wines.find('.wine').length > 4) {
      var move = false;

      if (left >= offset + 540) {
        move = Math.max($(id+'_image').attr('name') -4, 0) * -135;
      } else if (left < offset) {
        move = ($(id+'_image').attr('name') - 1) * -135;
      }

      if (move !== false) {
        $wines.find('.inner').stop(true, true).animate({
          left: move + "px"
        }, {
          duration: 1000,
          complete: function() {
            hideWineInfo(id);
            showWineInfo(id);
          }
        });
      } else {
        showWineInfo(id);
      }
    } else {
      showWineInfo(id);
    }
  }, function() {
    var id = '#'+$(this).attr('id');

    hideWineInfo(id);
  });

  $('.selector').each(function() {
    var height = $(this).outerHeight() + 40;

    $(this).find('.info').css({
      bottom: height + 'px'
    })
  });

  $('#media a').click(function() {
    $('#media a').removeClass('active');
    $(this).addClass('active');
    $('#info li').hide();
    $($(this).attr('href')).fadeIn('fast');

    return false;
  });

  if ($('#media').length > 0) {
    Shadowbox.init({
      overlayOpacity: 0.8
    });
  }

  $('#contact .tab a').click(function() {
    if ($('#contact').hasClass('active')) {
      $('#contact').find('.error').remove();
      $('#contact').find('.error_list').remove();

      var height = $('#contact').outerHeight() - 3;

      $('#contact').animate({
        top: '-' + height + 'px'
      }).removeClass('active');
    } else {
      $('#contact').animate({
        top: '0px'
      }).addClass('active');
    }

    return false;
  });
});

var showWineInfo = function(id) {
  if ($.browser.msie) {
    $(id).parents('.selector').find('.arrow').hide();
  }
  $(id+'_info').stop(true, true).fadeIn(function() {
    $(this).addClass('ie');
    if ($.browser.msie) {
      $(this).find('.arrow').show();
    }
  });

  $(id).parents('.selector').find('ol li').addClass('faded');
  $(id).removeClass('faded');

  $(id+'_image').siblings().css({
    opacity: 0.5
  });

  $(id+'_image').css({
    opacity: 1.0
  });

  var offset = parseInt($(id).parents('.selector').find('.wines').offset().left);
  var wine_left = parseInt($(id+'_image').offset().left);
  var arrow_offset = wine_left - offset;
  var left = 335 + ($(id+'_image').outerWidth() / 2) + arrow_offset;

  $(id).parents('.selector').find('.arrow').css({
    left: left + 'px'
  });
};

var hideWineInfo = function(id) {
  if ($.browser.msie) {
    $(id).parents('.selector').find('.arrow').hide();
  }
  $(id).parents('.selector').find('.info').stop(true, true).removeClass('ie').delay(300).fadeOut('fast');

  $(id).parents('.selector').find('ol li').removeClass('faded');

  $(id).parents().find('.wine').css({
    opacity: 1.0
  });
};
