Element.extend({
	fadeOut: function(ammount){
		this.effect('opacity',{
			duration: 200,
			wait: true,
			onComplete: function(){
				if(!ammount) this.hide()
			}.bind(this)
		}).start((ammount&&ammount>=.1&&ammount<=.9)?ammount:0);
		return this;
	},
	fadeIn: function(ammount){
		
		this.effect('opacity',{
			duration: 200,
			onStart:  function(){this.show()}.bind(this),
			wait: true
		}).start((ammount&&ammount>0&&ammount<=.9)?ammount:1);
		return this;
	},
	toggleFade: function(ammount){
		return this[this.isVisible() ? 'fadeOut' : 'fadeIn'](ammount);
	},
	isVisible: function(){
		return this.getStyle('display') != 'none';
	},
	toggleVisibility: function(){
		return this[this.isVisible() ? 'hide' : 'show']();
	},
	hide: function(){
		//console.log(this);
		this.originalDisplay = this.getStyle('display');
		//console.log("storing ",this.getStyle('display'));
		this.setStyle('display','none');
		//alert("hidden");
		//console.log("HIDDEN")
		return this;
	},
	show: function(display) {
		this.originalDisplay = (this.originalDisplay=="none")?'block':this.originalDisplay;
		this.setStyle('display',(display || this.originalDisplay || 'block'));
		//if(this.getStyle('opacity') == 0) { this.setStyle("opacity","1"); }
		//alert("shown");
		//console.log("SHOWN");
		return this;
	},
	rock: function(){
		
		var rock = $(this).effect("left",{unit:"%",duration:50});
		
		rock.start(50,45).chain(function(){
			rock.start(55).chain(function(){
				rock.start(45).chain(function(){
					rock.start(50);
				});
			})
		})

	}
});