/**
 * @author Daniel Stockhammer, BSc
 * @copyright 2011, Netzmühle Internetagentur OG
 * @since 12.12.2011
 */

(function ($) {
    $.fn.shoppingCart = function (settings) {
        $.extend(this, {
            load: function (url, options, expand) {
                if (url == undefined) {
                    url = settings.url + '/list';
                }
                
                $(this).find('div#shopping_cart').remove();

                var $cart = $('<div />', {
                        id: 'shopping_cart',
                        className: 'ajaxloader'
                    }).appendTo($(this));

                $cart.load(url, options, function() {
                    $cart.removeClass('ajaxloader').find('div.content').fadeIn();

                    if (expand) {
                        $('html,body').animate({
                            scrollTop: $('a#top').offset().top
                        }, 800 , function (){location.hash = 'a#top';});
                        $('#sc_checkout a').parent().hide();
                        $('#sc_cart').slideDown().delay(2500).slideUp(function() {
                            $('#sc_checkout a').parent().fadeIn();
                        });
                    }
                });
            },

            add: function(data) {
                this.load(settings.url + '/add', {
                    data: data
                }, true);
            },

            remove: function(key) {
                this.load(settings.url + '/remove', {
                    key: key
                }, true);
            }
        });

        // warenkorb laden
        this.load();

        // add 2 cart formular abschicken
        $('#addtocart_form.addtocart').submit($.proxy(function() {
            var items = new Array();

            $('#addtocart_form select.priceSel').each(function() {
                if ($(this).val() > 0) {
                    items.push($.extend({amount: ($(this).val())}, $(this).data()));
                }
            });

            if (items.length > 0) {
                $('div.add_to_cart').effect('transfer', {to: 'div#shopping_cart'}, 800, $.proxy(function() {
                    this.add($.toJSON(items));
                }, this));

                $('p#addSuccess').fadeIn('fast').delay(1500).fadeOut('slow');

                $('#addtocart_form select.priceSel').each(function() {
                    $(this).val(0);
                });

            } else {
                alert(NmRia_Translation.translate('Please select at least one ticket.'));
            }

            return false;
        }, this));

        // warenkorb ausklappen
        $('#sc_toggle a').live('click', function() {
            if ($(this).hasClass('visible')) {
                $(this).removeClass('visible');
                $('#sc_cart').slideUp(function() {
                    $('#sc_checkout a').parent().fadeIn();
                });
            } else {
                $(this).addClass('visible');
                $('#sc_cart').slideDown();
                $('#sc_checkout a').parent().hide();
            }

            return false;
        });

        // einen eintrag aus dem warenkorb entfernen
        var $this = this;
        $('#sc_cart ul li p.delete a').live('click', function() {
            if (confirm(NmRia_Translation.translate('Remove %title% from cart?', {'title': $(this).data('title')}))) {
                $this.remove($(this).data('key'));
            }
            return false;
        });
    }
})(jQuery);
