/**
 * @author joomlaEnvy - http://www.joomlaEnvy.com
 * @version BETA
 */

/**
 * joomlaEnvy
 */
var joomlaEnvy = {				
	/**
	 * shadow style
	 */
	shadowStyle: {
		position:"absolute",
		background:"#000000",
		zIndex:1
	},
	
	/**
	 * creates a shadow
	 * @param {Object} element to shadow
	 * @param {Object} options for reflection
	 */
	shadow: function(element, options){
		this.options = Object.extend({
		/**
		 * shadow Color
		 */
		color:"#000000",
		/**
		 * startup opacity
		 */
		opacity: 1/6,
		/**
		 * amount of shadow to create
		 */
		amount: 1,
		/**
		 * Border style
		 */
		borderColor:"transparent"				
		},options || {});
		element = $(element);
		var parent = element.parentNode;
		var next = element.nextSibling;
		var times = 7*this.options.amount;
		var dist = 1.0/times;
		for(i=0;i<times;i++){
			var h = new Element("div");
			h.setStyles({
				position:"absolute",
				background:this.options.color,
				height:(element.height+(i*2))+"px",
				width:(element.width +(i*2))+"px",
				top: (element.getTop()-i)+"px",
				left:(element.getLeft()-i)+"px",
				zIndex:1
				
			});
			parent.insertBefore(h,next);
			h.setOpacity((1-dist*i)*this.options.opacity);
		}
		if (this.options.borderColor != "transparent")
		{
			var h = new Element("div");
			h.setStyles({
				position:"absolute",
				height:(element.height+2)+"px",
				width:(element.width +2)+"px",
				top: (element.getTop()-1)+"px",
				left:(element.getLeft()-1)+"px",
				zIndex:1,
				background:this.options.borderColor
			});
			parent.insertBefore(h,next);	
		}
	},
	
	/**
	 * Reflect a image
	 * @param {Object} element to reflect
	 * @param {Object} options for reflection
	 */
	reflect: function(element, options){
		this.options = Object.extend({
			/**
			 * amount of image to reflect
			 */
			amount: 1/3,
			/**
			 * startup opacity
			 */
			opacity: 1/2,
			/**
			 * space between image and reflection
			 */
			distance:0
			},options || {});
		element = $(element);
		var parent = element.parentNode;
		var next = element.nextSibling;
		var times = (element.height*this.options.amount);
		var dist = 1.0/times;
		if (this.options.distance>0)
		
		for(i=0;i<times;i++){
			var h = new Element("div");
			h.setStyles({height:'1px',overflow:'hidden'});
			var img = element.clone();
			img.setStyle("marginTop",'-'+(element.height-i-1)+'px');
			img.injectInside(h);
			parent.insertBefore(h,next);
			h.setOpacity((1-dist*i)*this.options.opacity);
		}
	}
};
