$(document).ready(function() {
  /* Search */
  $('.button-search').bind('click', function() {
    url = 'index.php?route=product/search';

    var filter_name = $('input[name=\'filter_name\']').attr('value')

    if (filter_name) {
      url += '&filter_name=' + encodeURIComponent(filter_name);
    }

    location = url;
  });

  $('#header input[name=\'filter_name\']').keydown(function(e) {
    if (e.keyCode == 13) {
      url = 'index.php?route=product/search';

      var filter_name = $('input[name=\'filter_name\']').attr('value')

      if (filter_name) {
        url += '&filter_name=' + encodeURIComponent(filter_name);
      }

      location = url;
    }
  });

  /* Ajax Cart */
  $('#cart > .heading a').bind('click', function() {
    $('#cart').addClass('active');

    $.ajax({
      url: 'index.php?route=checkout/cart/update',
      dataType: 'json',
      success: function(json) {
        if (json['output']) {
          //$('#cart .content').html(json['output']);
          //changed for shopping cart module
          $('#cart .content, #module_cart .cart-module').html(json['output']);
        }
      }
    });

    $('#cart').bind('mouseleave', function() {
      $(this).removeClass('active');
    });
  });

  /* Mega Menu */
  $('#menu ul > li > a + div').each(function(index, element) {
    // IE6 & IE7 Fixes
    if ($.browser.msie && ($.browser.version == 7 || $.browser.version == 6)) {
      var category = $(element).find('a');
      var columns = $(element).find('ul').length;

      $(element).css('width', (columns * 143) + 'px');
      $(element).find('ul').css('float', 'left');
    }

    var menu = $('#menu').offset();
    var dropdown = $(this).parent().offset();

    i = (dropdown.left + $(this).outerWidth()) - (menu.left + $('#menu').outerWidth());

    if (i > 0) {
      $(this).css('margin-left', '-' + (i + 5) + 'px');
    }
  });

  // IE6 & IE7 Fixes
  if ($.browser.msie) {
    if ($.browser.version <= 6) {
      $('#column-left + #column-right + #content, #column-left + #content').css('margin-left', '195px');

      $('#column-right + #content').css('margin-right', '195px');

      $('.box-category ul li a.active + ul').css('display', 'block');
    }

    if ($.browser.version <= 7) {
      $('#menu > ul > li').bind('mouseover', function() {
        $(this).addClass('active');
      });

      $('#menu > ul > li').bind('mouseout', function() {
        $(this).removeClass('active');
      });
    }
  }
});

$('.success img, .warning img, .attention img, .information img').live('click', function() {
  $(this).parent().fadeOut('slow', function() {
    $(this).remove();
  });
});

function addToCart(product_id) {
  $.ajax({
    url: 'index.php?route=checkout/cart/update',
    type: 'post',
    data: 'product_id=' + product_id,
    dataType: 'json',
    success: function(json) {
      $('.success, .warning, .attention, .information, .error').remove();

      if (json['redirect']) {
        location = json['redirect'];
      }

      if (json['error']) {
        if (json['error']['warning']) {
          $('#notification').html('<div class="warning" style="display: none;">' + json['error']['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
        }
      }

      if (json['success']) {
        $('#notification').html('<div class="attention" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

        $('.attention').fadeIn('slow');

        $('#cart_total').html(json['total']);

        //shopping cart module
        $('#module_cart .cart-module').html(json['output']);

        $('html, body').animate({ scrollTop: 0 }, 'slow');
      }
    }
  });
}

function removeCart(key) {
  $.ajax({
    url: 'index.php?route=checkout/cart/update',
    type: 'post',
    data: 'remove=' + key,
    dataType: 'json',
    success: function(json) {
      $('.success, .warning, .attention, .information').remove();

      if (json['output']) {
        $('#cart_total').html(json['total']);

        //$('#cart .content').html(json['output']);
        //changed for shopping cart module
        $('#cart .content, #module_cart .cart-module').html(json['output']);
      }
    }
  });
}

function removeVoucher(key) {
  $.ajax({
    url: 'index.php?route=checkout/cart/update',
    type: 'post',
    data: 'voucher=' + key,
    dataType: 'json',
    success: function(json) {
      $('.success, .warning, .attention, .information').remove();

      if (json['output']) {
        $('#cart_total').html(json['total']);

        //$('#cart .content').html(json['output']);
        //changed for shopping cart module
        $('#cart .content, #module_cart .cart-module').html(json['output']);
      }
    }
  });
}

function addToWishList(product_id) {
  $.ajax({
    url: 'index.php?route=account/wishlist/update',
    type: 'post',
    data: 'product_id=' + product_id,
    dataType: 'json',
    success: function(json) {
      $('.success, .warning, .attention, .information').remove();

      if (json['success']) {
        $('#notification').html('<div class="attention" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

        $('.attention').fadeIn('slow');

        $('#wishlist_total').html(json['total']);

        $('html, body').animate({ scrollTop: 0 }, 'slow');
      }
    }
  });
}

function addToCompare(product_id) {
  $.ajax({
    url: 'index.php?route=product/compare/update',
    type: 'post',
    data: 'product_id=' + product_id,
    dataType: 'json',
    success: function(json) {
      $('.success, .warning, .attention, .information').remove();

      if (json['success']) {
        $('#notification').html('<div class="attention" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

        $('.attention').fadeIn('slow');

        $('#compare_total').html(json['total']);

        $('html, body').animate({ scrollTop: 0 }, 'slow');
      }
    }
  });
}

