/*
Script:
	FancyShadow 1
	
Author:
	Yichuan Shen, <http://labs.hostsen.net/>

License:
	MIT-style license
*/

var FancyShadow = new Class({
	options: {
		duration: 500,
		showMethod: 'in'
	},
	
	initialize: function(elements, options) {
		this.setOptions(options);
		
		elements.each(function(el) {
			if(el.getStyle('display') == 'inline') {
				var parent = new Element('div', { 'class': 'fancyshadow-wrapper', 'styles': { 'width': el.getSize().x } }).inject(el, 'before');
				parent.grab(el);
				
				el = parent;
			}
			
			if(el.getStyle('position') != 'absolute') el.setStyle('position', 'relative');
			
			var sels = [];
			sels[0] = new Element('div', { 'class': 'fancyshadow top'   , 'styles': { 'opacity': 0 } }).inject(el);
			sels[1] = new Element('div', { 'class': 'fancyshadow left'  , 'styles': { 'opacity': 0 } }).inject(el);
			sels[2] = new Element('div', { 'class': 'fancyshadow right' , 'styles': { 'opacity': 0 } }).inject(el);
			sels[3] = new Element('div', { 'class': 'fancyshadow bottom', 'styles': { 'opacity': 0 } }).inject(el);
			sels[4] = new Element('div', { 'class': 'fancyshadow lt'    , 'styles': { 'opacity': 0 } }).inject(el);
			sels[5] = new Element('div', { 'class': 'fancyshadow rt'    , 'styles': { 'opacity': 0 } }).inject(el);
			sels[6] = new Element('div', { 'class': 'fancyshadow lb'    , 'styles': { 'opacity': 0 } }).inject(el);
			sels[7] = new Element('div', { 'class': 'fancyshadow rb'    , 'styles': { 'opacity': 0 } }).inject(el);
			
			sels.each(function(sel) {
				if(!Browser.Engine.trident || Browser.Engine.trident5) {
					if(!Browser.Engine.trident5) {
						sel.set('tween', { duration: this.options.duration }).fade(this.options.showMethod);
					} else {
						sel.fade('show');
					}
				}
			}.bind(this));
		}.bind(this));
	}
});
FancyShadow.implement(new Options);

//<![CDATA[
	window.addEvent('load', function() {
		new FancyShadow($$('.shadow'));
	});
//]]>