Behaviour.register( {
			'.contexthead': function(element){
		var toggleEl = Element.childrenWithClassName(element.parentNode, 'toggleable')[0] || null;
		element.onclick = function(){
			if(toggleEl != null){ 
				new Effect.toggle(toggleEl, 'blind');
			}
		}
	}
});

var bounceController = {
	setNext: Prototype.emptyFunction
};

Event.observe(window, 'load', function(evt){
	var ball = $('bounceBall');
	ball.show();
	bounceController = new BounceController(ball, { height: 105 });
	bounceController.ballWidth = Element.getDimensions(ball).width;
	$$('div#navigation a').each(function(item){ 
		updateBouncePos(item);
		Event.observe(item, 'mouseover', setBouncePosition.bind(null, item)); 
	});
});

var updateBouncePos = function(item){

	item._bouncePosition = findBounceX(item);
}

var setBouncePosition = function(item){
	debug('Setting next bounce position: ' + item);
	bounceController.setNext(item._bouncePosition);	
}

Event.observe(window, 'resize', function(){ $$('div#navigation a').each(updateBouncePos); });

var findBounceX = function(element){
	return Position.cumulativeOffset(element)[0] + 
		(Element.getDimensions(element).width/2) - 
		(bounceController.ballWidth/2);
}

var debug = Prototype.emptyFunction;