jQuery.fn.addFlower = function(options) {
    options = options || {};
    var bg_fade_color = options.color||'black';
    var bg_fade_opacity = options.opacity||'0.7';
    var bg_hide = options.hide||false;
    var bg_style = options.style||'flower-wrapper';
    var bg_top = options.top||0;
    var bg_left = options.left||0;
    var flower = options.flower||'flower1';
    var flower_w = options.flowerW||32;
    var flower_h = options.flowerH||32;
    
    if(typeof(options.center)=='undefined')
    {
    	var center = true;
    }
    else
    {
    	var center = options.center;
    }
    return this.each(function() {
    	if(this.flower_object == undefined)
    	{
    		var self = $(this);
			var pos = self.offset();
			if(bg_hide)self.addClass(bg_style+'-hidden');
		
			var container = $('<div class="'+bg_style+'"></div>');
			container.css({
				'z-index': self . css('z-index')+1000,
				top: pos . top,
				left: bg_left||pos . left,
				width: self . width (),
				height: self . height (),
				background: bg_fade_color,
				opacity:bg_fade_opacity
			});
			bg_top = parseInt(bg_top);
			bg_left = parseInt(bg_left);
			var background= $('<div class="'+flower+'"></div>') ;
			background . css ({
				position: 'absolute',
				width: flower_w+'px',
				height:flower_h+'px'
			}) ;
			if(center)
			{
				background . css ({
					left: 	(self . width ()/2)-(flower_w/2)+bg_left,
					top:	(self . height ()/2)-(flower_h/2)+bg_top
				}) ;
			}
			else
			{
				background . css ({
					left: 	bg_left,
					top:	bg_top
				}) ;
			}
			container.mousedown(function(){return false});
			container.mouseup(function(){return false});
			$('body:first').append(container);
			container . append ( background ) ;
			this.flower_object = {container:container,hide:bg_hide, style:bg_style};
    	}
	});
};

jQuery.fn.hideFlower = function(options) {
	return this.each(function() {
		if(typeof(this.flower_object)!="undefined")
		{
			if(this.flower_object.hide)
			{
				$(this).removeClass(this.flower_object.style+"-hidden");
			}
			$(this.flower_object.container).remove();
		}
		this.flower_object = undefined;
	});
}
