function update_shop_search_fieldset_preview($fieldset, items) {
    if (!items) {
        items = $('div.formfield-input-checkbox', $fieldset);
    }
    active_items = items.has('input:checked');
    if (active_items.length > 0) {
        $('> .preview', $fieldset).html($.map(active_items, function(item, index) {
            var text = $('label span', item).html();
            return '<span title="' + text + '">' + cropText(text, 20, '..') + '</span>';
        }).join(' ♦ '));
        $fieldset.addClass('active');
    } else {
        $('> .preview', $fieldset).html('<span>alle</span>');
        $fieldset.removeClass('active');
    }
}

function update_shop_search_select_fieldset($fieldset) {
    if ($('option[data-articles]', $fieldset).filter(':selected').length > 0) {
        $fieldset.addClass('active');
    } else {
        $fieldset.removeClass('active');
    }
}

function update_shop_search_input_fieldset($fieldset) {
    if ($('input', $fieldset).val().length > 0) {
        $fieldset.addClass('active');
    } else {
        $fieldset.removeClass('active');
    }
}

function update_shop_search_fields() {
    var selected_containers = {
        'limitation': $('#formfieldgroup_shop_search_limitation'),
        'origin': $('#formcheckboxlist_shop_search_origin'),
        'manufacturer': $('#formcheckboxlist_shop_search_manufacturer'),
        'grape': $('#formcheckboxlist_shop_search_grape'),
    }
    
    var selected = {}
    $.each(['limitation', 'origin', 'manufacturer', 'grape'], function(index, field) {
        var $fields = $('div.formfield', selected_containers[field]).has('input:checked');
        if ($fields.length > 0) {
            selected[field] = $fields.map(function() {return $(this).data('articles');}).get();
        } else {
            selected[field] = [];
        }
    });
    
    $.each(['vintage_from', 'shelf_life_from', 'alcohol_concentration_from', 'serving_temperature_from', 'price_from'], function(index, field) {
        var $field_option = $('option[data-articles]', '#field_input_shop_search_' + field).filter(':selected');
        if ($field_option.length > 0) {
            selected[field] = $field_option.add($field_option.nextAll()).map(function() {return $(this).data('articles')}).get();
        } else {
            selected[field] = [];
        }
    });
    $.each(['vintage_to', 'shelf_life_to', 'alcohol_concentration_to', 'serving_temperature_to', 'price_to'], function(index, field) {
        var $field_option = $('option[data-articles]', '#field_input_shop_search_' + field).filter(':selected');
        if ($field_option.length > 0) {
            selected[field] = $field_option.add($field_option.prevAll('[data-articles]')).map(function() {return $(this).data('articles')}).get();
        } else {
            selected[field] = [];
        }
    });
    
    $.each(['limitation', 'origin', 'manufacturer', 'grape'], function(index, field) {
        var all_articles = [];
        $.each(selected, function(key, articles) {
            if (key != field && articles.length) {
                if (all_articles.length == 0) {
                    $.merge(all_articles, articles)
                } else {
                    var temp_articles = [];
                    $.each(articles, function(index, article) {
                        if ($.inArray(article, all_articles) >= 0) {
                            temp_articles.push(article);
                        }
                    });
                    all_articles = $.merge([], temp_articles);
                }
            }
        });
        var $fields = $('div.formfield', selected_containers[field]);
        var $inputs = $('input', $fields);
        if (all_articles.length > 0) {
            $fields.each(function() {
                var $input = $('input', $(this));
                var enabled = $input.is(':checked');
                if (!enabled) {
                    $.each($(this).data('articles'), function(index, article) {
                        if ($.inArray(article, all_articles) >= 0){
                            enabled = true;
                            return false;
                        }
                    });
                }
                if (enabled) {
                    $(this).removeClass('disabled');
                    $('input', $(this)).removeAttr('disabled');
                } else {
                    if (!$(this).hasClass('disabled')) {
                        $(this).addClass('disabled');
                    }
                    $('input', $(this)).attr('disabled', 'disabled');
                }
            });
        } else {
            $fields.removeClass('disabled');
            $inputs.removeAttr('disabled');
        }
    });
    
    $.each(['vintage', 'shelf_life', 'alcohol_concentration', 'serving_temperature', 'price'], function(index, base_field) {
        var field = base_field + '_from';
        var all_articles = [];
        $.each(selected, function(key, articles) {
            if (key != field && articles.length) {
                if (all_articles.length == 0) {
                    $.merge(all_articles, articles)
                } else {
                    var temp_articles = [];
                    $.each(articles, function(index, article) {
                        if ($.inArray(article, all_articles) >= 0) {
                            temp_articles.push(article);
                        }
                    });
                    all_articles = $.merge([], temp_articles);
                }
            }
        });
        var $options = $('option[data-articles]', '#field_input_shop_search_' + field);
        if (all_articles.length > 0) {
            $.merge(all_articles, selected[field]);
            var to_field_index = $('option[data-articles]', '#field_input_shop_search_' + base_field + '_to').filter(':selected').index();
            $options.each(function() {
                var enabled = false;
                if (to_field_index == -1 || $(this).index() <= to_field_index) {
                    $.each($(this).data('articles'), function(index, article) {
                        if ($.inArray(article, all_articles) >= 0){
                            enabled = true;
                            return false;
                        }
                    });
                }
                if (enabled) {
                    $(this).removeClass('disabled');
                } else {
                    if (!$(this).hasClass('disabled')) {
                        $(this).addClass('disabled');
                    }
                }
            });
        } else {
            $options.removeClass('disabled');
        }
        
        var field = base_field + '_to';
        var all_articles = [];
        $.each(selected, function(key, articles) {
            if (key != field && articles.length) {
                if (all_articles.length == 0) {
                    $.merge(all_articles, articles)
                } else {
                    var temp_articles = [];
                    $.each(articles, function(index, article) {
                        if ($.inArray(article, all_articles) >= 0) {
                            temp_articles.push(article);
                        }
                    });
                    all_articles = $.merge([], temp_articles);
                }
            }
        });
        var $options = $('option[data-articles]', '#field_input_shop_search_' + field);
        if (all_articles.length > 0) {
            $.merge(all_articles, selected[field]);
            var from_field_index = $('option[data-articles]', '#field_input_shop_search_' + base_field + '_from').filter(':selected').index();
            $options.each(function() {
                var enabled = false;
                if (from_field_index == -1 || $(this).index() >= from_field_index) {
                    $.each($(this).data('articles'), function(index, article) {
                        if ($.inArray(article, all_articles) >= 0){
                            enabled = true;
                            return false;
                        }
                    });
                }
                if (enabled) {
                    $(this).removeClass('disabled');
                } else {
                    if (!$(this).hasClass('disabled')) {
                        $(this).addClass('disabled');
                    }
                }
            });
        } else {
            $options.removeClass('disabled');
        }
    });
}

function init_shop_search_form() {
    var $form_shop_search = $('#form_shop_search');
    
    var $origins = $('div.formfield-input-checkbox', '#formcheckboxlist_shop_search_origin');
    var $countries = $('div.formfield-input-checkbox_country', '#formcheckboxlist_shop_search_origin');
    var $regions = $('div.formfield-input-checkbox_region', '#formcheckboxlist_shop_search_origin');
    var $subregions = $('div.formfield-input-checkbox_subregion', '#formcheckboxlist_shop_search_origin');
    
    $countries.each(function() {
        $(this).add($(this).nextUntil('div.formfield-input-checkbox_country')).wrapAll('<div class="grouped_country"></div>');
    });
    
    var origin_columns = 4;
    var origin_column_items_length = Math.ceil($origins.length/origin_columns);
    var $current_countries = $();
    $('.grouped_country', '#formcheckboxlist_shop_search_origin').each(function() {
        if ($current_countries.length == 0 || $('div.formfield-input-checkbox', $current_countries).length + $(this).children().length <= origin_column_items_length + 4) {
            $current_countries = $current_countries.add($(this));
        } else {
            $current_countries.wrapAll('<div class="column"></div>');
            $current_countries = $(this);
        }
    });
    if ($current_countries.length > 0) {
        $current_countries.wrapAll('<div class="column"></div>');
    }
    
    var $manufacturers = $('> div.innercontent > div.formfield', '#formcheckboxlist_shop_search_manufacturer');
    var manufacturer_columns = 5;
    var manufacturer_column_items_length = Math.ceil($manufacturers.length/manufacturer_columns);
    for (var start=0; start < manufacturer_columns * manufacturer_column_items_length; start += manufacturer_column_items_length) {
        $manufacturers.slice(start, start + manufacturer_column_items_length).wrapAll('<div class="column"></div>');
    }
    
    var $grapes = $('> div.innercontent > div.formfield', '#formcheckboxlist_shop_search_grape');
    var grape_columns = 6;
    var grape_column_items_length = Math.ceil($grapes.length/grape_columns);
    for (var start=0; start < grape_columns * grape_column_items_length; start += grape_column_items_length) {
        $grapes.slice(start, start + grape_column_items_length).wrapAll('<div class="column"></div>');
    }
    
    var $checkboxlist_fieldsets = $('#formfieldgroup_shop_search_limitation, #formcheckboxlist_shop_search_origin, #formcheckboxlist_shop_search_manufacturer, #formcheckboxlist_shop_search_grape');
    var $select_fieldsets = $('#formfieldgroup_shop_search_vintage, #formfieldgroup_shop_search_shelf_life, #formfieldgroup_shop_search_alcohol_concentration, #formfieldgroup_shop_search_serving_temperature, #formfieldgroup_shop_search_price');
    var $input_fieldsets = $('#formfield_shop_search_name, #formfield_shop_search_color, #formfield_shop_search_bouquet, #formfield_shop_search_taste, #formfield_shop_search_fits');
    
    $('div.formfield', $checkboxlist_fieldsets).add($('.formfield-select option[data-articles]', '#form_shop_search')).each(function() {
        $(this).data('articles', $.parseJSON(decodeURIComponent($(this).data('articles'))));
    });
    
    $checkboxlist_fieldsets.delegate('a.btn_edit_fieldset_content', 'click', function(event) {
        event.preventDefault();
        try {
            $(this).data('qtip').show();
        } catch (e) {
            var $fieldset = $(this).parentsUntil('fieldset').parent();
            if ($fieldset.attr('id') == 'formfieldgroup_shop_search_limitation') {
                var my = 'right top';
                var at = 'left top';
                var $target = $(this);
            } else {
                var my = 'top center';
                var at = 'top center';
                var $target = $('#mainpane');
            }
            $(this).qtip({
                id: $fieldset.attr('id'),
                overwrite: true,
                content: {
                    title: {
                        text: $fieldset.children('legend').html(),
                        button: getLangStr('btn_close', lang)
                    },
                    text: $fieldset.children('div.innercontent')
                },
                hide: {
                    fixed: true,
                    event: false
                },
                show: {
                    ready: true,
                    event: false
                },
                position: {
                    my: my,
                    at: at,
                    target: $target,
                    container: $fieldset
                },
                style: {
                    tip: false
                }
            });
        }
    });
    
    $form_shop_search.delegate('button[type="reset"]', 'click', function(event) {
        event.preventDefault();
        $.cookies.set('form_shop_search', {});
        $checkboxlist_fieldsets.each(function() {
            $('input', $(this)).removeAttr('checked');
            $('div.formfield', $(this)).removeClass('active');
            update_shop_search_fieldset_preview($(this));
        });
        $select_fieldsets.each(function() {
            $('select option', $(this)).removeAttr('selected');
            update_shop_search_select_fieldset($(this));
        });
        $input_fieldsets.each(function() {
            $('input', $(this)).val('');
            update_shop_search_input_fieldset($(this));
        });
        update_shop_search_fields();
    });
    
    $checkboxlist_fieldsets.delegate('a.btn_clear_fieldset_content', 'click', function(event) {
        event.preventDefault();
        var $fieldset = $(this).parentsUntil('fieldset').parent();
        var $inputs = $('input', $fieldset);
        $inputs.removeAttr('checked');
        $inputs.cookifyFormfield('form_shop_search');
        $('div.formfield', $fieldset).removeClass('active');
        update_shop_search_fieldset_preview($fieldset);
        update_shop_search_fields();
    });
    $select_fieldsets.delegate('a.btn_clear_fieldset_content', 'click', function(event) {
        event.preventDefault();
        var $fieldset = $(this).parentsUntil('fieldset').parent();
        var $selects = $('select option', $fieldset);
        $selects.removeAttr('selected');
        $selects.cookifyFormfield('form_shop_search');
        update_shop_search_select_fieldset($fieldset);
        update_shop_search_fields();
    });
    $input_fieldsets.delegate('a.btn_clear_fieldset_content', 'click', function(event) {
        event.preventDefault();
        var $fieldset = $(this).parentsUntil('.formfield').parent();
        var $inputs = $('input', $fieldset);
        $inputs.val('');
        $inputs.cookifyFormfield('form_shop_search');
        update_shop_search_input_fieldset($fieldset);
    });
    
    $('> legend', $checkboxlist_fieldsets).after('<div class="preview"></div>').after('<div class="functions"><a class="btn_edit_fieldset_content" href="#" title="Auswahl bearbeiten"><span>Auswahl bearbeiten</span></a><a class="btn_clear_fieldset_content" href="#" title="Auswahl löschen"><span>Auswahl löschen</span></a></div>');
    $('> legend', $select_fieldsets).after('<div class="functions"><a class="btn_clear_fieldset_content" href="#" title="Auswahl löschen"><span>Auswahl löschen</span></a></div>');
    $('> .field_label', $input_fieldsets).after('<div class="functions"><a class="btn_clear_fieldset_content" href="#" title="Auswahl löschen"><span>Auswahl löschen</span></a></div>');
    
    $checkboxlist_fieldsets.delegate('input', 'change', function(event) {
        var $fieldset = $(this).parentsUntil('fieldset').parent();
        while (true) {
            $parent_fieldset = $($fieldset.parentsUntil('fieldset').parent()[0]);
            if ($parent_fieldset.is('fieldset')) {
                $fieldset = $parent_fieldset;
            } else {
                break;
            }
        }
        $(this).cookifyFormfield('form_shop_search');
        update_shop_search_fieldset_preview($fieldset);
        update_shop_search_fields();
    });
    
    $select_fieldsets.delegate('select', 'change', function(event) {
        $(this).cookifyFormfield('form_shop_search');
        update_shop_search_select_fieldset($(this).parentsUntil('fieldset').parent());
        update_shop_search_fields();
    });

    $input_fieldsets.delegate('input', 'change', function(event) {
        $(this).cookifyFormfield('form_shop_search');
        update_shop_search_input_fieldset($(this).parentsUntil('.formfield').parent());
    });
    
    cookieFillform('form_shop_search');
    
    $checkboxlist_fieldsets.each(function() {
        update_shop_search_fieldset_preview($(this));
    });
    $select_fieldsets.each(function() {
        update_shop_search_select_fieldset($(this));
    });
    $input_fieldsets.each(function() {
        update_shop_search_input_fieldset($(this));
    });
    
    update_shop_search_fields();
    
    $('#form_shop_search').addClass('loaded');
}

function init_shop_search() {
    $('#body_search').delegate('input.raw', 'focus mouseenter', function() {
        try {
            $(this).data('qtip').show();
        } catch (e) {
            $(this).qtip({
                id: 'body_search_input',
                overwrite: true,
                content: {
                    text: 'Artikelnummer, -bezeichnung, Land, Hersteller, etc...'
                },
                show: {
                    ready: true
                },
                position: {
                    my: 'bottom right',
                    at: 'top center'
                },
                style: {
                    classes: 'ui-tooltip-rounded ui-tooltip-title',
                    tip: true
                }
            });
        }
    });
    
    $('body').delegate('#body_search a.btn_search_advanced', 'click', function(event) {
        if (!event.ctrlKey && !event.altKey && !event.shiftKey) {
            event.preventDefault();
            if (!$('#content #form_shop_search').length > 0) {
                try {
                    $('#body_search').data('qtip').show();
                } catch (e) {
                    $('#body_search').qtip({
                        id: 'shop_search',
                        overwrite: true,
                        content: {
                            title: {
                                text: getLangStr('label_search', lang),
                                button: getLangStr('btn_close', lang)
                            },
                            text: getLangStr('message_shop_search_loading', lang),
                            ajax: {
                                url: $(this).attr('href') + '&amp;contentonly=1',
                                type: 'GET',
                                success: function(data, status) {
                                    this.set('content.text', data);
                                    $('#field_input_shop_search_search_advanced').val('0');
                                    init_shop_search_form();
                                }
                            }
                        },
                        hide: {
                            fixed: true,
                            event: false
                        },
                        show: {
                            ready: true,
                            event: false
                        },
                        position: {
                            my: 'right top',
                            at: 'right top'
                        },
                        style: {
                            tip: false
                        }
                    });
                }
            }
        }
    });
    
    if ($('#form_shop_search').length > 0) {
        init_shop_search_form();
    }
}

function init_shop_basket_orderdata() {
    var $form_shop_basket_orderdata = $('#form_shop_basket_orderdata');
    if ($form_shop_basket_orderdata.length > 0) {
        if ($('#field_input_shop_basket_orderdata_shipping_selection_delivery').is(':checked')) {
            $('#formfieldset_shop_basket_orderdata_delivery_address').show();
        } else {
            $('#formfieldset_shop_basket_orderdata_delivery_address').hide();
        }
        if ($('#field_input_shop_basket_orderdata_delivery_address_eq_billing_address').is(':checked')) {
            $('#formfieldset_shop_basket_orderdata_delivery_address > .innercontent').hide();
        } else {
            $('#formfieldset_shop_basket_orderdata_delivery_address > .innercontent').show();
        }
    }
}

function init_form_create_tablecard() {
    var $form_create_tablecard = $('#form_create_tablecard');
    if ($form_create_tablecard.length > 0) {
        $('.formfield_layout', '#formradiolist_create_tablecard_layout').each(function() {
            var $this = $(this);
            var $formfield = $this;
            var $this_id = $this.attr('id');
            var $field_preview = $('<div class="field_preview"></div>');
            $.each($.parseJSON(decodeURIComponent($this.data('previewimages'))), function(index, images) {
                $('<a href="' + images['big_url'] + '" style="background-image:url(' + images['thumb_url'] + ');" rel="' + $formfield.attr('id') + '"><img src="' + images['preview_url'] + '" /></a>').appendTo($field_preview);
            });
            $('.field_input', $this).before($field_preview);
        });

        $.getScript('/++resource++zmshooks/tiny_mce/jquery.tinymce.js', function() {
            $('#field_input_create_tablecard_text').tinymce({
                script_url: '/++resource++zmshooks/tiny_mce/tiny_mce.js',

                add_unload_trigger: false,

                language: {'ger': 'de', 'eng': 'en', 'fra': 'fr', 'ita': 'it'}[lang],
                //content_css: theme_url + '/css/tablecards_editor.css',

                theme: 'advanced',

                theme_advanced_toolbar_location: 'top',
                theme_advanced_toolbar_align: 'left',
                theme_advanced_statusbar_location: 'bottom',

                theme_advanced_resizing: false,

                paste_convert_headers_to_strong: false,
                paste_strip_class_attributes: 'all',
                paste_remove_spans: true,
                paste_remove_styles: true,

                plugins: 'table,advlist,searchreplace,paste,fullscreen,safari,inlinepopups,tabfocus,contextmenu',
                tabfocus_elements: ':prev,:next',
                accessibility_warnings: false,

                theme_advanced_buttons1: 'code,undo,redo,|,visualaid,|,fullscreen,|,help,|,formatselect,|,removeformat,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull',
                theme_advanced_buttons2: 'bullist,numlist,|,outdent,indent,blockquote,|,sub,sup,|,hr,|,charmap,|,tablecontrols',
                theme_advanced_buttons3: '',
                
//                 style_formats: [
//                     {title: 'Beschriftung', selector: 'td', classes: 'label'}
//                 ],
                
                invalid_elements: 'img',
                extended_valid_elements: ''
                    + '-table[class|id|rules|summary|title],'
                    + '#td[align<center?char?justify?left?right|class|colspan|headers|id|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup|title],'
                    + '#th[align<center?char?justify?left?right|class|colspan|headers|id|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup|title]'
            });
        });
    }
}

$(function() {
    $('body').delegate('#navigation li.home a', 'mouseenter', function(event) {
        event.preventDefault();
        try {
            $(this).data('qtip').show();
        } catch(e) {
            $(this).qtip({
                overwrite: true,
                content: {
                    text: 'Startseite'
                },
                show: {
                    ready: true
                },
                position: {
                    my: 'bottom left',
                    at: 'top center',
                },
                style: {
                    classes: 'ui-tooltip-rounded ui-tooltip-title',
                    tip: true
                }
            });
        }
    });
    
    $('body').delegate('#navigation li.newsletter a, #navigation li.sitemap a, #navigation li.company ul a, #navigation li.promotions a, #navigation li.recommendations a, #navigation li.terms a, #navigation li.basket a, .form_add_article button, #body_search button, #body_search a.btn_search_advanced, #form_body_login button, #body_login_header_functions a, #body_account_header_functions a, #shop_search_results > .navigation a[title], #contentpane > .body_functions a[title], #shop_basket_cart input[title], #shop_basket_cart th.delete, #form_shop_search button[title], #body_shop_basket_cart .article a, a.btn_create_tablecard', 'mouseenter', function(event) {
        event.preventDefault();
        try {
            $(this).data('qtip').show();
        } catch(e) {
            $(this).qtip({
                overwrite: true,
                show: {
                    ready: true
                },
                position: {
                    my: 'bottom left',
                    at: 'top center',
                    viewport: $(window)
                },
                style: {
                    classes: 'ui-tooltip-rounded ui-tooltip-title',
                    tip: true
                }
            });
        }
    });
    
    $('body').delegate('#shop_basket_navigation li:has(a)', 'mouseenter', function() {
        $(this).addClass('hover');
    });
    $('body').delegate('#shop_basket_navigation li:has(a)', 'mouseleave', function() {
        $(this).removeClass('hover');
    });
    
    $('body').delegate('#shop_basket_cart input.field_amount', 'focus', function() {
        $(this).select();
    });
    
    $('body').delegate('#formradiolist_shop_basket_orderdata_shipping_selection input', 'change', function() {
        if ($(this).val() == 'delivery') {
            $('#formfieldset_shop_basket_orderdata_delivery_address').show();
        } else {
            $('#formfieldset_shop_basket_orderdata_delivery_address').hide();
        }
    });
    $('body').delegate('#field_input_shop_basket_orderdata_delivery_address_eq_billing_address', 'change', function() {
        if ($(this).is(':checked')) {
            $('#formfieldset_shop_basket_orderdata_delivery_address > .innercontent').hide();
        } else {
            $('#formfieldset_shop_basket_orderdata_delivery_address > .innercontent').show();
        }
    });
    $('body').delegate('#formfield_shop_basket_orderdata_shop_terms_shop_terms_link a', 'click', function(event) {
        if (!event.ctrlKey && !event.altKey && !event.shiftKey) {
            event.preventDefault();
            $.nmManual(
                $(this).attr('href') + '?contentonly=1',
                {
                    title: 'Konditionen und Lieferbedingungen',
                    callbacks: {
                        beforeShowCont: function(nm) {
                            if (nm.store.title) {
                                nm.store.title.remove();
                            }
                            nm.store.title = $('<h1 />', {
                                text: nm.title
                            }).addClass('nyroModalTitle nmReposition');
                            nm.elts.cont.prepend(nm.store.title);
                        },
                        close: function(nm) {
                            if (nm.store.title) {
                                nm.store.title.remove();
                                nm.store.title = undefined;
                                delete(nm.store.title);
                            }
                        }
                    }
                }
            );
        }
    });
    
    $('body').delegate('form.form_add_article', 'submit', function(event) {
        try {
            try {
                $('#ui-tooltip-add_shop_basket_cart_item_response').qtip('api').destroy();
            } catch(e) {}
            
            $(this).qtip({
                id: 'add_shop_basket_cart_item_response',
                overwrite: true,
                content: {
                    title: {
                        text: '... lege Artikel in den Warenkorb',
                        button: getLangStr('btn_close', lang)
                    },
                    text: '...',
                    ajax: {
                        url: 'ajax_add_shop_basket_cart_item',
                        type: 'POST',
                        data: {
                            lang: lang,
                            add_article: $('input[name="add_article"]', this).val(),
                            amount: $('input[name="amount"]', this).val()
                        },
                        success: function(data, status) {
                            if (data['success']) {
                                $('#body_shop_basket_content').html(data['body_shop_basket_content']);
                                $('#body_shop_basket_cart_item_' + data['success']).addClass('added');
                                this.set('content.title.text', 'Artikel wurde in den Warenkorb gelegt');
                                this.set('content.text', '<ul class="functions"><li><a href="' + location.href + '" class="btn_continue_shopping" title="weiter einkaufen"><span>weiter einkaufen</span></a></li><li><a href="' + shop_basket_url + '" class="btn_checkout" title="zur Kasse"><span>zur Kasse</span></a></li></ul>');
                            } else if (data['error']) {
                                this.set('content.text', '<div class="message error">' + data['error'] + '</div><ul class="functions"><li><a href="' + location.href + '" class="btn_continue_shopping" title="weiter einkaufen"><span>weiter einkaufen</span></a></li><li><a href="' + shop_basket_url + '" class="btn_checkout" title="zur Kasse"><span>zur Kasse</span></a></li></ul>');
                            }
                        }
                    }
                },
                hide: {
                    fixed: true,
                    event: false
                },
                show: {
                    ready: true,
                    event: false
                },
                position: {
                    my: 'bottom right',
                    at: 'top left',
                    target: $('input[name="amount"]', this)
                },
                style: {
                    classes: 'ui-tooltip-rounded',
                    tip: false,
                },
                events: {
                    hide: function(event, api) {
                        api.destroy();
                    }
                }
            });
            
            event.preventDefault();
        } catch(e) {}
    });
    
    $('body').delegate('#ui-tooltip-add_shop_basket_cart_item_response a.btn_continue_shopping', 'click', function(event) {
        $('#ui-tooltip-add_shop_basket_cart_item_response').data('qtip').destroy();
        event.preventDefault();
    });
    
    $('body').delegate('#formradiolist_create_tablecard_layout .formfield_layout .field_preview', 'mouseenter', function(event) {
        event.preventDefault();
        var $this = $(this);
        try {
            $this.data('qtip').show();
        } catch (e) {
            var formfield_id = $this.parent().attr('id');
            $this.qtip({
                content: {
                    title: {
                        text: $('.field_label', $this.parent()).text()
                    },
                    text: $this.html().replace('rel="' + formfield_id + '"', 'rel="' + formfield_id + '_preview"')
                },
                hide: {
                    fixed: true
                },
                show: {
                    ready: true,
                    event: false
                },
                position: {
                    my: 'top center',
                    at: 'top center',
                    adjust: {
                        y: -50
                    },
                    viewport: $(window)
                },
                style: {
                    classes: 'ui-tooltip-tablecard_preview',
                    tip: false
                }
            });
        }
    });
    
    $('body').delegate('#formradiolist_create_tablecard_layout .formfield_layout .field_preview a, .ui-tooltip-tablecard_preview .ui-tooltip-content a', 'click', function(event) {
        if (!event.ctrlKey && !event.altKey && !event.shiftKey) {
            event.preventDefault();
            var $this = $(this);
            $this.nyroModal({
                closeButton: '<a href="#" class="nyroModalClose nyroModalCloseButton nmReposition" title="' + getLangStr('Close', lang) + '">' + getLangStr('Close', lang) + '</a>'
            });
            $this.nmCall();
        }
    });
    
    $('body').delegate('a.btn_create_tablecard', 'click', function(event) {
        if (!event.ctrlKey && !event.altKey && !event.shiftKey) {
            if (!$('#content #form_create_tablecard').length > 0) {
                event.preventDefault();
                var $this = $(this);
                var $parent = $this.parent();
                try {
                    $parent.data('qtip').show();
                } catch (e) {
                    $parent.qtip({
                        id: 'create_tablecard',
                        overwrite: true,
                        content: {
                            title: {
                                text: $this.attr('title'),
                                button: getLangStr('btn_close', lang)
                            },
                            text: getLangStr('message_create_tablecard_loading', lang),
                            ajax: {
                                url: $this.data('ajaxurl'),
                                type: 'GET',
                                success: function(data, status) {
                                    this.set('content.text', data);
                                    init_form_create_tablecard();
                                }
                            }
                        },
                        hide: {
                            fixed: true,
                            event: false
                        },
                        show: {
                            ready: true,
                            event: false
                        },
                        position: {
                            my: 'top center',
                            at: 'top center',
                            target: $('#mainpane')
                        },
                        style: {
                            tip: false
                        }
                    });
                }
            }
        }
    });
    
    init_shop_search();
    init_shop_basket_orderdata();
    init_form_create_tablecard();
});
