(function($) {
	$.ajax_load_url = {
			reset_wweForms: function ( $text ) {

			    	// wwEdit-Formularsteuerung zurücksetzen
			    	// üble Sache diese globalen Variablen
			    	$text.find('input[name^=wwe3_marker]').each(function(){
			    		form_id = this.name.replace(/.*\[(.*)\]/, "$1");
			        	window.deps[ form_id ] = new Array();
			        	window.depcache[ form_id ] = new Array();
			        	window.later[ form_id ] = new Array();
			        	window.fld_save[ form_id ] = new Object();
			    	});
			}
	};

    $.fn.ajax_load_url = function(options) {

        var settings = {
        	// dieser Selektor bestimmt, welcher Teil der geladenen Seite angezeigt wird
        	filter_result: '#page_body_main_content > div',
       		event      : 'click',
       		loaded_content_container: '#ajax_load_window',
       		eval_scripts: true,
       		useBlockUI : true,
		useBlockUIversion: 1,
       		doReplaceText : false
        }

        if(options) {
            $.extend(settings, options);
        }

        return this.each(function() {
        	$(this)[settings.event](function(e) {
                formReadyCallback = function(text){
                	var filtered_text = $(text).find(settings.filter_result);

                	// wwEdit-Formularsteuerung zurücksetzen
                	// üble Sache diese globalen Variablen
                	$.ajax_load_url.reset_wweForms( filtered_text );
        			load_window.empty().append( filtered_text );
					$(text).find('script').each(function(){
						eval($(this).text());
					});

        			load_window.show();
        			load_control.show();
        			load_wait.hide();
        			$('input[type=submit]', load_window).click(function() {
        				var thisform = $('form',load_window).get(0);
                		load_window.hide();
                		load_control.show();
                		load_wait.show();
                		chk_bobby(thisform);
                		$.post(thisform.action.replace(/#.*/,''),$(thisform).serialize(),formReadyCallback );
        				return false;
        			});
        		}

        		if ( settings.useBlockUI ) {
                    var load_container = $(settings.loaded_content_container).clone();
        		} else {
        		    var load_container = $(settings.loaded_content_container);
        		}

        		var load_window    = $('.content', load_container);
        		var load_wait      = $('.wait', load_container);
        		var load_control   = $('.control', load_container);
        		var filterurl = encodeURI(this.href) + " "+settings.filter_result
        		var url = encodeURI(this.href);

        		$('.cancel',load_control).click ( function(){
        			load_container.remove();
        			if ( settings.useBlockUI ) {
        			  $.unblockUI();
        			}
        			return false;
        		});
        		load_window.hide();
        		load_control.show();
        		load_wait.show();
        		if ( settings.useBlockUI ) {
				if ( settings.useBlockUIversion == 2 ) {
        		    		$.blockUI ( { message: load_container } );
				} else {
					$.blockUI ( load_container );
				}
        		}
        		load_container.show();
        		load_window.wwload( filterurl, {
        				callback:function(text){

        				    if ( settings.doReplaceText ){
        				        if ( typeof settings.replacementObj != null && typeof settings.replacementItemsName != null ) {
        				            settings.replacementObj.replaceText( settings.replacementItemsName );
        				        }
        				        // replaceText ( window.ajaxLoadItems );
        				    }

        					var filtered_text = $(text).find(settings.filter_result);
        					$.ajax_load_url.reset_wweForms( filtered_text );
        					load_window.show();
		        			load_control.show();
		        			load_wait.hide();
		        			$('input[type=submit]', load_window).click(function() {
		        				load_window.hide();
		        				load_control.show();
		        				load_wait.show();
		        				chk_bobby(this.form);
		        				$.post(this.form.action.replace(/#.*/,''),$(this.form).serialize(),formReadyCallback );
		        				return false;
		        			});
        				},
        				eval_scripts: true
        		});
        		return false;
        	});
        });
    };
})(jQuery);
