(function($){
	$.fn.createGallery = function(options) {
		var defaults = {
			galleryContainer:"gal",
			cycleOptions:{
				pause:1,
				before:onAfter
			},
			galPaused:0
		};
		
		var cycle = $.extend(options.cycleOptions, defaults.cycleOptions);
		var options = $.extend(defaults, options);
		
		
		return this.each(function() {
			var $obj = $(this);
			
			var $gal = $(document.createElement("div"))
						.attr("id",options.galleryContainer)
						//CSP sdb 092110 was .css({"position":"absolute","z-index":$obj.children().length+5});
						.css({"position":"absolute","z-index":$obj.children().length+25});
						
			
			$obj.append($gal);
			
			if(cycle.pager != null){
				var $pager = $(document.createElement("div"))
							.attr("id",cycle.pager.slice(1,cycle.pager.length))
							.css({"display":"none"})
							.addClass(cycle.pager.slice(1,cycle.pager.length));

				$gal.append($pager);
			}
			
			if(cycle.next != null && cycle.prev != null){
				var $buttons = $(document.createElement("div"))
								.attr("id","gal_buttons")
								.addClass("gal-buttons");
								
				$gal.append($buttons);
				
				var $next = $(document.createElement("div"))
								.attr("id",cycle.next.slice(1,cycle.next.length))
								.addClass(cycle.next.slice(1,cycle.next.length))
								.css({"display":"none"})
								.html("next");
								
				var $prev = $(document.createElement("div"))
								.attr("id",cycle.prev.slice(1,cycle.prev.length))
								.addClass(cycle.prev.slice(1,cycle.prev.length))
								.css({"display":"none"})
								.html("prev");
								
				$buttons.append($prev).append($next);
			}
			
			var $cap = $(document.createElement("div"))
						.attr("id","caption_container")
						.addClass("caption-container");
						//.css({"display":"none"})
			
			$gal.append($cap);
			
			
			var $captext = $(document.createElement("div"))
						.attr("id","caption")
						.addClass("caption");
			
			$cap.append($captext);
					
			//cycle it up
			try{
				$obj.cycle(cycle);
			}catch(ex){
				$.log("Error initializing Cycle Plugin: " + ex);
			}
			/*
			$gal.hover(function(){
				$obj.trigger("hover");
			    options.galPaused = 1;
			    if(cycle.pager != null){
			    	$pager.slideDown();
			    }
			    if(cycle.next != null && cycle.prev != null){
			    	$buttons.children().fadeIn("slow");
			    }
			    
			    if($captext.html().length > 0){
			    	$captext.parent().slideDown();
			    }
			},function(){
			    options.galPaused = 0;
			    if(cycle.next != null && cycle.prev != null){
			    	$buttons.children().fadeOut("fast");
			    }
			    if(cycle.pager != null){
			    	$pager.slideUp();
			    }
			    
			    $captext.parent().slideUp();
			    
			});
			*/
			
		});
		
		function onAfter(){
			var $cap = $("#caption");
			var cap = $(this).attr("cap");
			if(cap != undefined){
				$cap.html(cap);
			
				$cap.parent().slideDown();
				
			}else{
				$cap.html("");
				
				$cap.parent().slideUp();
				
			}
			
		}
	};
})(jQuery);

jQuery.log = function(message) {
 if(window.console) {
    console.debug(message);
 }else{
 	alert(message);
 }
};


/*
<div id="gal_cont">
	<div id="pager"></div>
    <div id="gal_buttons">
    	<div id="prev">prev</div>
    	<div id="next">next</div>
    </div>
    <div id="caption"></div>
</div>
*/
