/**
 * @author neo
 */

 MathmosEffectClass = new Class({
	Implements: [Options, Events],
    options: {
		colorElement:$('test'),
		direction: 'lighter',
		startColor: 0,
		lowerLimit:0,
		upperLimit:0,
		changeFunction: null,
		delta: 40
    },
	initialize: function(options){
		this.setOptions(options);
		this.options.colorElement = $(this.options.colorElement);
		this.options.startColor = this.options.colorElement.getStyle('background-color');
		this.myColor = new Color(this.options.startColor);
		this.setLimits();
		
	},
	setLimits: function(){
		this.options.lowerLimit = this.myColor[1] - this.options.delta;
		this.options.upperLimit = this.myColor[1] + this.options.delta;
		if (this.options.lowerLimit<0){this.options.lowerLimit=0};
		if (this.options.upperLimit>255){this.options.upperLimit=255};
	},
	changeColor: function(){
		this.myColor = new Color(this.options.colorElement.getStyle('background-color'));
		var val = this.myColor[1];
				
		if (val>=this.options.upperLimit){
			this.options.direction = 'darker';
		} else if (val<=this.options.lowerLimit){
			this.options.direction = 'lighter';
		} 
		
		if (this.options.direction == 'lighter'){
			val++;			
		} else {
			val--;	
		}
		this.myColor[1] = val;
		this.options.colorElement.setStyle('background-color',this.myColor);
	},
	start: function(delay){
		this.changeFunction = this.changeColor.periodical(delay,this);
	} 
	  
  
});

