//Button Effetcs
Element.extend({
    fxButton: function(){
		this.setOpacity(0.9)
		this.addEvent('mousedown',function(){
			this.setStyle('position','relative')
			this.setStyle('top',1)
			this.setStyle('left',1)
		})
		this.addEvent('mouseup',function(){
			this.setStyle('top',0)
			this.setStyle('left',0)
		})
		this.addEvent('mouseenter',function(){
			this.setOpacity(1)				
		})
		this.addEvent('mouseleave',function(){
			this.setOpacity(0.9)				
		})
    }
});
//shake effect
Shake = new Class({
	initialize: function(element,options){
		this.options = $merge({			
			'delta': 1,			
			'interval': 1000			
		}, options);	
		this.shake=false;
		this.element = $(element)
		this.enable=true;
		if(this.element.getStyle('position')=='') this.element.setStyle('position','relative')		
		this.startLeft= this.element.getStyle('left')		
		this.startTop= this.element.getStyle('top')
		
		var pdSetPosition= this.setPosition.create({'periodical':1,bind:this})
		pdSetPosition()		
		
		this.myfSetShake = this.setShake.create({'delay':this.options.interval,bind:this})
		this.myfSetShake()
		
	},
	getRandom:function(){				
		return $random((this.options.delta/2)*-1,this.options.delta/2)
	},
	setPosition:function(){
		if(this.enable){
			if(this.shake){
				this.element.setStyle('left',Number.toInt(this.startLeft)+this.getRandom())
				this.element.setStyle('top',Number.toInt(this.startTop)+this.getRandom())
			}	
		}
	},
	setShake:function(){
		if(this.shake){
			this.shake=false
			this.element.setStyle('left',Number.toInt(this.startLeft))
			this.element.setStyle('top',Number.toInt(this.startTop))
			this.myfSetShake()
		}else{
			this.shake=true
			this.myfSetShake()
		}
	},
	turnOff:function(){
		this.enable=false;
	},
	turnOn:function(){
		this.enable=true;
	}
})