var TextDropShadow = new Class({
		options: {
			color: '#333',
			left: 1,
			top: 1,
			position: 'absolute'
		},

		initialize: function(obj, options){
				this.setOptions(options)
				this.createDropShadows(obj);
		},
		
		createDropShadows: function(obj){
			if('element' == $type(obj)) {
				this.applyDropShadow(obj)
			} else if('array' == $type(obj)) {
				obj.each( function(el) {
					this.applyDropShadow(el);
				}, this);
			} else {
				return false;
			}
		},
		
		applyDropShadow: function(el){
			var original = el.clone();
			var shadow = el.clone();

			var offsetY = this.options.top ? this.options.top.toInt() : this.options.bottom.toInt();
			if(offsetY < 0) offsetY = offsetY * (-1);
			
			var offsetX = this.options.left ? this.options.left.toInt() : this.options.right.toInt();
			if(offsetX < 0) offsetX = offsetX * (-1);
			
			var container = new Element('div', {
					'styles': {
							position: 'relative',
							left: 0,
							top: 0,
							height: el.getSize().size.y + offsetY,
							width: el.getSize().size.x + offsetX
					}
			});

			original.setStyles({position: 'absolute', left: 0, top: 0});
			shadow.setStyles(this.options);
						
			container.adopt(shadow).adopt(original);
			container.injectAfter(el);
			el.remove();
		}
});
TextDropShadow.implement(new Options, new Events);