(function($){
    /**
     * Ein Wordpress Plugin, das auf Facebook Photo-Fetcher basiert.
     * Erstellt einen <div> Container in einem übergebenen Element, und sucht in Posts auf der aktuellen Seite nach <a>.fbPhoto Elementen.
     * Diese Elemente werden gecuttet und in den neuen Widgetcontainer eingefügt.
     * Aufruf z.B. $('#content').fbPhotoWidget(params);
     * Dann wird in $('#content') ein neues Widget CSS-Klasse fbPhotoWidget und übergebene id aus params hinzugefügt
     */
    $.fn.fbPhotoWidget = function( params ) {

        var defaults = {
            title           :   'Fotos',    //Der Titel wird in <h2> gewrappt
            fadeInSpeed     :   2000,       //Geschwindigkeit des Einfadens des widgetContainers
            widgetID        :   '',         //Die id des Widgets. Wenn leer, wird keine angelegt
            postContainer   :   '',         //Dieser Container enthält die Bildergalerie, er muss übergeben werden
            hideOriginalPost:   false       //Soll der Originalcontainer ausgeblendet werden?
        }

        var config = $.extend(defaults, params);

        var postContainer = $(config.postContainer);
        var arAllImages = postContainer.find('.gallery-item'); //Finde alle <a> Tags mit Klasse .fbPhoto
		
		//Nur wenn Bilder gefunden wurden auch ausführen
		if(arAllImages.length > 0){
			
			var selectedImages = Array(); //Die ersten X Bilder aus der Liste
			var widgetContainer = $("<div class='fbPhotoWidget'></div>");
			var widgetContainerTop = $("<div class='fbPhotoWidgetTop'></div>")
			var widgetContainerContent = $("<div class='fbPhotoWidgetContent'></div>");
			var widgetContainerBottom =  $("<div class='fbPhotoWidgetBottom'></div>");
			

			//Den Postcontainer verstecken
			if(config.hideOriginalPost){
				postContainer.hide();
			}

			//Wenn der Pstcontainer fehlt Abbruch
			if(config.postContainer == undefined){
				alert("fbPhotoWidget missing postContainer!");
				return false;
			}

		   

			//Den Widgetcontainer aufbauen
			if(config.widgetID){
				widgetContainer.attr('id', config.widgetID);
			}
			widgetContainerContent.append( $('<h2>' + config.title + '</h2>') );

			//Alle gefundenen Bilder von hinten durchgehen und so viele wie gefordert in selectedImages ablegen
			for(var i=arAllImages.length-1;i>=arAllImages.length-4;i--){
				widgetContainerContent.append(arAllImages[i]);
			}
			
			widgetContainer.append(widgetContainerTop);
			widgetContainer.append(widgetContainerContent);
			widgetContainer.append(widgetContainerBottom);
			
			//Den widgetContainerContent zum Hauptcontainer hinzufügen
			$(this).append( widgetContainer );


			//Das Widget einfaden
			widgetContainer.find('.fbPhotoWidgetContent').hide();
			widgetContainer.fadeIn(config.fadeInSpeed, function(){
				widgetContainer.find('.fbPhotoWidgetContent').slideDown('slow');
			});
		}

        
    }

})(jQuery);
