function ContentFader(){
	TIME = 3000;
	revealing = false;
	function initialize(){
		Event.observe(document, 'mousemove', onMouseMoved, false);
		new Insertion.Top(document.body,"<div id='debug'></div>");
		resetTimeout();
	}
	function onMouseMoved(event){
		resetTimeout();
		revealContent();
		revealing = true;
	}
	function debug(message){
		$('debug').innerHTML = message;
	}
	function resetTimeout(){
		clearTimeout(this.timeout);
		this.timeout = setTimeout(hideContent,TIME);
	}
	function hideContent(){
		revealing = false;
		$$(".fadeable").each(function(element){ element.fade({duration:1, to:0.01, afterUpdate:ensureHiding}); })
	}
	function ensureHiding(){ revealing = false;}
	function revealContent(){
		if(revealing) return;
		revealing = true;	
		$$(".fadeable").each(function(element){ 
			element.appear({duration:0.2}); 
		})
	}
	initialize();	
}
new ContentFader();
