    $(document).ready(function() {

        var domain_path = "http://"+location.host+"/fileadmin/php_scripts/";
        var lang_var = $('#lang_var').attr('value');

        //alert(location.host);

		// Initialization
            var treffer_nachladen = 10;
            var treffer_max_moglich;
            var treffer_angezeigt;
            var ajax_load = "<img src='/fileadmin/user_upload/tpl_images/load.gif' alt='loading...' />";
            var ajax_load_small = "<img src='/fileadmin/user_upload/tpl_images/load_small.gif' alt='loading...' />";
            var merkzettel_post_ar = [];
            var buffer_von_top = 210;
            //var treffer_angezeigt = 0;

        // wie viel treffer f?r bestimmte suchtyp und suchfeld gibt
        function get_max_treffer() {
            var loadUrl_alle = domain_path+"call_antwort_num.php?nur_zahl=1&suchtyp="+$('#treffer_suchtyp').attr('longdesc')+"&term="+encodeURIComponent($('#treffer_suchfeld').attr('longdesc'))+"&term_filter="+encodeURIComponent($('#treffer_plus_suchfeld').attr('longdesc'));
            //alert(loadUrl_alle);
            /*$.get(encodeURI(loadUrl_alle), function(data){
                treffer_max_moglich = data;
                $('#alle_treffer').text(treffer_max_moglich);
                //alert (treffer_max_moglich);
            });*/
            $.ajax({
                 async: false,
                 type: 'GET',
                 url: loadUrl_alle,
                 success: function(data) {
                    treffer_max_moglich = data;
                    $('#alle_treffer').text(treffer_max_moglich);
                 }
            });

        }

        function get_current_treffer() {
            treffer_angezeigt = $('#catalog .treffer-item').length;
        }

        function clear_merkzettel() {
            //$.get("save_session.php?delete_all=1");
            // alle items von liste loschen
            $('#cart ol li').remove();

            // alle items von session loschen
            check_merkzettel_show(1);

            // enable alle draggables
            $('#catalog .treffer-item').removeClass('marked').draggable('enable');
        }

        $("#dialog-confirm").dialog({
            autoOpen: false,
            resizable: false,
			height:140,
			modal: true,
			buttons: {
				"Delete all items": function() {
                    clear_merkzettel();
                    $( this ).dialog( "close" );
				},
				Cancel: function() {
					$( this ).dialog( "close" );
				}
			}
		});


        $('#merkzettel-clear').live('click', function(){
            $( "#dialog-confirm" ).dialog( "open" );
        });

        function check_merkzettel_show(clearit) {
            //console.log($( "#cart ol li" ).length+'llllll');
            if($( "#cart ol li" ).length > 0) {
                $('#merkzettel-funktionen').show();
                var _redirect_params = '';
                var _counter=0;
                $( "#cart ol li" ).each(function() {
                    _redirect_params += 'mzp['+_counter+']='+$(this).attr('longdesc')+'-'+$(this).attr('id')+'&';
                    _counter++;
                    //console.log($(this).attr('id'));
                });
                if(_counter < 1) {
                    $.get(domain_path+"save_session.php?delete_all=1");
                    //console.log('Cleanup');
                }
                else {
                    $.get(domain_path+"save_session.php?"+_redirect_params);
                    //console.log('Saving');
                }
                //console.log(_counter);
                //console.log(merkzettel_post_ar);

                //window.location = _redirect_url+'?'+_redirect_params;

            }
            else {
                $('#merkzettel-funktionen').hide();
                if(clearit) $.get(domain_path+"save_session.php?delete_all=1");
            }


        }

        function compare_filter_merkzettel_und_liste() {
            var angezeigte_ar = [];
            var merkzettel_ar = [];
            // get angezeigte
            $( "#catalog .treffer-item" ).each(function() { angezeigte_ar.push($(this).attr('id')) });
            angezeigte_ar.sort();
            //console.log(angezeigte_ar);
            // get merkzettel
            $( "#cart ol li" ).each(function() { merkzettel_ar.push($(this).attr('id')) });

            merkzettel_ar.sort();
            //console.log(merkzettel_ar);

            // angezeigte durchlaufen und im merkzettel suchen
            if( merkzettel_ar.length > 0 && angezeigte_ar.length > 0 ) {
                var i;
                for (i=0;i<=angezeigte_ar.length;i++) {
                    if($.inArray(angezeigte_ar[i], merkzettel_ar)!=-1) {
                        // gefunden, muss mann das element unDRAGabble machen
                        $('#catalog #'+angezeigte_ar[i]+'').addClass('marked').draggable('disable');
                    }
                }

            }

        }

        function compare_two_td() {
            // von der Liste nehmen



            // height of the search
            var height_search_sp = $('.inhalt_spalte').height();
            var merkzettel_buffer = 115;
            var merkzettel_top = 50;

            if($('#cart .ui-droppable li:last').length > 0) {
                var offset_ol = $('#cart .ui-droppable').position().top;
                var offset_li = $('#cart .ui-droppable li:last').position().top;
                var merkzettel_list = offset_li - offset_ol + 20;
                var merkzettel_buttons = $('#merkzettel-funktionen').height();
            }

            // height of the markzettel
            if(merkzettel_list > 0) height_merkzettel_sp = merkzettel_list + merkzettel_buttons;
            else  height_merkzettel_sp = merkzettel_buffer;


            if(height_search_sp >= height_merkzettel_sp) {
                height_merkzettel_sp = height_search_sp - merkzettel_buffer;
                var merkzettel_spec = 0;
            } else {
                height_merkzettel_sp = height_merkzettel_sp + merkzettel_buffer;
                var merkzettel_spec = merkzettel_buffer;
                //height_merkzettel_sp = merkzettel_list
                //height_merkzettel_sp = merkzettel_list + merkzettel_buttons - merkzettel_buffer;
            }

            // save all sizes
            $('#info_spalte_ganz').height(height_merkzettel_sp);
            $('#info_spalte_ganz .info_spalte:first').height(height_merkzettel_sp);
            $('#cart .ui-droppable').height(height_merkzettel_sp - merkzettel_buttons - merkzettel_spec);

            // ins rechte spalte und cart reinschreiben


            //console.log(height_need);
            //console.log($('#info_spalte_ganz .info_spalte:first').height());
        }

        function redirect_user(_redirect_url) {
            var _redirect_params = '';
            var _counter=0;
            $( "#cart ol li" ).each(function() {
                //_redirect_params += 'mzp['+_counter+']='+$(this).attr('longdesc')+'-'+$(this).attr('id')+'&';
                _counter++;
            });

            //console.log(merkzettel_post_ar);

            window.location = _redirect_url+'&'+_redirect_params;
        }

        draggable_params = {
			appendTo: "body",
			helper: "clone",
            revert: "invalid",
            cursor: "move",
            //handle: 'div.treffer-icon',
            cursorAt: {top: 25, left: 5},
            start: function(e,ui){
               //$(this).css('cursor','-moz-grabbing');
               //ui.helper.find('.treffer-icon').show();
               ui.helper.find('.treffer-inhalt-name').hide();
               ui.helper.find('.treffer-zusatz-info').hide();
               ui.helper.find('.treffer-info').hide();
            },
            stop: function(e,ui){
               //$(this).removeClass('fade');
               //ui.helper.find('.treffer-icon').hide();
               ui.helper.find('.treffer-inhalt').show();
            }

		}



        $( "#catalog .treffer-item" ).draggable(draggable_params);
		$( "#cart ol" ).droppable({
			activeClass: "ui-state-default",
			hoverClass: "ui-state-hover",
			accept: ":not(.ui-sortable-helper)",
            tolerance: 'pointer',
            //accept: "*",
			drop: function( event, ui ) {
				//$( this ).find( ".placeholder" ).hide();
                //console.log(ui.draggable.find('.treffer-position-halle'));
				$( "<li id='"+ui.draggable.attr("id")+"' longdesc='"+ui.draggable.attr("longdesc")+"'></li>" ).html( (ui.draggable.find('.treffer-position-halle').parent().html())+"   <div class='item-loschen'><img src='fileadmin/user_upload/tpl_images/merkzettel_loschen.png'></div>" ).appendTo( this );
                $('#catalog #'+ui.draggable.attr("id")).addClass('marked').draggable('disable');
                //ui.draggable.addClass('marked');

                check_merkzettel_show();
                compare_two_td();
                //ui.draggable('option','cancel','li'); // not draggable
			}
		}).sortable({
			items: "li:not(.placeholder)",
			sort: function() {
				// gets added unintentionally by droppable interacting with sortable
				// using connectWithSortable fixes this, but doesn't allow you to customize active/hoverClass options
				$( this ).removeClass( "ui-state-default" );
			}
		});

        //$( "#catalog li.marked" ).live('mouseover',function(){$(this).draggable({disabled: true})}); // works too



        $("#cart .item-loschen").live('click', function(event, ui) {
            //alert($(this).parent().attr('id'));

                //$(this).draggable({disabled: true}); // ausblenden
            $('#catalog #'+$(this).parent().attr("id")).removeClass('marked').draggable('enable');
            $(this).parent().fadeOut(500, function() {
              // Animation complete.
              $(this).remove();
              var clearit = 1;
              check_merkzettel_show(clearit);
            });

        });



        $('#filter_button_id').live('click', function(){
            // wert muss mehr als 0 buchstaben haben
            var filter_text_id = decodeURI($('#filter_text_id').attr('value'));

            //alert(filter_text_id);

            var filter_plus_text_id = $('#filter_plus_text_id').val();
            var filter_type_id = $('#filter_type_id').attr('value');
            //console.log(filter_plus_text_id);
            //console.log(filter_type_id);
            if(filter_text_id.length > 0) {
                //$('#catalog #alle_treffer').html('');
                //console.log(filter_plus_text_id);
                //console.log(filter_text_id);
                $('#catalog .treffer-item').remove();
                $('#treffer_suchfeld').attr('longdesc', filter_text_id);
                $('#treffer_plus_suchfeld').attr('longdesc', filter_plus_text_id);
                $('#treffer_suchtyp').attr('longdesc', $('#filter_type').attr('value'));

                //alert(filter_text_id);
                $('#gesucht_feld_show').html('"'+filter_text_id+'"');

                get_max_treffer();

                //alert(treffer_max_moglich);
                //$('#mehr-item-list').show();
                $('#mehr-item-list').click();
            }
        });


        $('#mehr-item-list').bind('click', function(){
            //console.log('doing');
            $('#weitere_treffer_platz').show();

            get_max_treffer();

            get_current_treffer();

            //alert(treffer_max_moglich+" "+treffer_angezeigt);
            // neue antr?ge nachladen
            if(treffer_max_moglich > treffer_angezeigt && treffer_max_moglich > 0) {
                    //$('#mehr-item-list').html('');
                    $(this).show();
                    var _suche_url = encodeURI(domain_path+"call_antwort_liste.php?zeigen_start="+treffer_angezeigt+"&zeigen_end="+(treffer_nachladen)+"&suchtyp="+$('#treffer_suchtyp').attr('longdesc'))+"&term="+encodeURIComponent($('#treffer_suchfeld').attr('longdesc'))+"&term_filter="+encodeURIComponent($('#treffer_plus_suchfeld').attr('longdesc'));
                    //console.log(_suche_url);
                	$.ajax({
                        async: false,
                        url: _suche_url,
                		success: function(html){
                			if(html){
                				//$("#postswrapper").append(html);

                                //console.log(html);

                                $('#catalog #alle_treffer_liste').append(html);
                				//$('#loadmorebutton').html('Load More');
                                //alert(html);
                                $( "#catalog .treffer-item" ).draggable(draggable_params);
                                // Alle sind schon da?
                                //var treffer_angezeigt_check = $('#catalog .treffer-item').length;
                                get_current_treffer();

                                //console.log('Jetzt'+treffer_angezeigt);
                                //console.log('Max'+treffer_max_moglich);

                                if(treffer_max_moglich <= treffer_angezeigt) $('#mehr-item-list').hide();

                                compare_filter_merkzettel_und_liste();

                                 $('#weitere_treffer_platz').hide();

                			}else{
                				$('#mehr-item-list').hide();
                			}
                            $('#weitere_treffer_platz').hide();
                		},
                        error: function(error_code) {
                            $('#weitere_treffer_platz').hide();
                        }
                	});
            } else  {$('#weitere_treffer_platz').hide();$(this).hide();}
            compare_two_td();
        });

        var slide_down = 1200;
        var slide_up = 600;

        $('.treffer-details-fire-open').live('click', function(e){
            e.preventDefault();
            var loadUrl_details = domain_path+"call_antwort_details.php?lang="+lang_var+"&suchtyp="+$(this).attr('longdesc')+"&suchid="+$(this).attr('desc');
            //console.log(loadUrl_details);
            var this_element = $(this);

            $.ajax({
                 async: false,
                 type: 'GET',
                 url: encodeURI(loadUrl_details),
                 success: function(data) {
                    this_element.parent().find('.treffer-details-info-inhalt').html(data);
                    this_element.parent().find('.treffer-details-info-inhalt-innen').show();
                    p_el = this_element.parents('.treffer-item');

                    var plus_height = this_element.parent().find('.treffer-details-info-inhalt-innen').height();

                    var orig_height = p_el.height();

                    p_el.attr('shortdesc',plus_height);
                    p_el.attr('desc', orig_height);
                    //this_element.parents('.treffer-item').attr('longdesc', this_element.parent().find('.treffer-details-info-inhalt-innen').height());
                    p_el.animate({"height": orig_height + plus_height + "px"}, {duration: slide_down });

                    this_element.addClass('treffer-details-fire-close').removeClass('treffer-details-fire-open');
                 }
            });

        });

        $('.treffer-details-fire-close').live('click', function(e){
            close_treffer_item($(this).parents('.treffer-item'));
            e.preventDefault();
        });

        $('#merkzettel-show').live('click', function(e){
            if(lang_var == 'en') var redirect_url = 'en/merkzettel.html?';
            else var redirect_url = 'merkzettel.html?';
            //alert(lang_var);
            redirect_user(redirect_url);
            e.preventDefault();
        });

        function close_treffer_item(spec_element) {
            //alert(spec_element.attr('longdesc'));

            spec_element.animate({"height": spec_element.attr('desc') + "px"}, {duration: slide_up });
            spec_element.find('.treffer-details-info-inhalt-innen').hide();

            spec_element.find('.treffer-details-fire-close').addClass('treffer-details-fire-open').removeClass('treffer-details-fire-close');
        }


        //$('#cart').scrollFollow({container: 'info_spalte_ganz'});

        //get_max_treffer();
        //get_current_treffer();
            /* erste laden */

        /* tf rausgenommen */
        /*$('#info_spalte_ganz .info_spalte:first').next().hide();        */
        $('#info_spalte_ganz .info_spalte:first').css('background-color','#fff');

        $('#mehr-item-list').click();

        check_merkzettel_show();
	});
