// found at http://davidwalsh.name/mootools-pulsefade-plugin
var PulseFade = new Class({
			
	//implements
	Implements: [Options,Events],

	//options
	options: {
		min: 0,
		max: 1,
		duration: 200,
		times: 5
	},
	
	//initialization
	initialize: function(el,options) {
		//set options
		this.setOptions(options);
		this.element = $(el);
		this.times = 0;
	},
	
	//starts the pulse fade
	start: function(times) {
		if(!times) times = this.options.times * 2;
		this.running = 1;
		this.fireEvent('start').run(times -1);
	},
	
	//stops the pulse fade
	stop: function() {
		this.running = 0;
		this.fireEvent('stop');
	},
	
	//runs the shizzle
	run: function(times) {
		//make it happen
		var self = this;
		var to = self.element.get('opacity') == self.options.min ? self.options.max : self.options.min;
		self.fx = new Fx.Tween(self.element,{
			duration: self.options.duration / 2,
			onComplete: function() {
				self.fireEvent('tick');
				if(self.running && times)
				{
					self.run(times-1);
				}
				else
				{
					self.fireEvent('complete');
				}
			}
		}).start('opacity',to);
	}
});

window.addEvent('domready',function() {
	var pf = new PulseFade('pulse-fade',{
		min: 0,
		max: 1,
		duration: 500,
		times: 5,
		onComplete: function() {
			//alert('complete!');
		},
		onStart: function() {
			//alert('started!');
		},
		onStop: function() {
			//alert('stopped!');
		},
		onTick: function() {
			//alert('tick!');
		}
	})
	pf.start()
});

