var LacasaHeader = {
	elements: [],
	movable_element: null,
	default_index: null,
	hover_item: null,
	initialize: function(elements, movable_element, default_index, hover_item){
		LacasaHeader.movable_element = $(movable_element);
		if( !LacasaHeader.movable_element ){
			throw "LacasaHeader: invalid movable element";
			return null;
		}
		var j = 0;
		for( var i=0; i<elements.length; i++){
			var elm = $(elements[i].id);
			if( elm ){
				elm.observe('mouseover', LacasaHeader.moveElement.bindAsEventListener(LacasaHeader, j));
				elm.observe('mouseout', LacasaHeader.moveElement.bindAsEventListener(LacasaHeader));
				elements[i].element = elm;
				LacasaHeader.elements.push(elements[i]);
				++j;
			}
		}
		LacasaHeader.default_index = default_index || 0;
		LacasaHeader.hover_item = hover_item || null;
	},
	moveElement: function(){
		var index = LacasaHeader.default_index;
		if( arguments.length == 2){
			arguments[0].stop();
			index = arguments[1];
		}else if( arguments.length == 1){
			try {
				arguments[0].stop();
			} 
			catch (ex) {
				index = arguments[0];
			}
		}
		if( LacasaHeader.animation ){
			LacasaHeader.animation.cancel();
		}
		var enable_hover_item = (index==LacasaHeader.default_index?true:false);
		po = LacasaHeader.elements[index].element.positionedOffset();
		LacasaHeader.animation = new Effect.Morph(LacasaHeader.movable_element, {
			style: Object.extend( LacasaHeader.elements[index].style, {left: po.left + 'px'}),
			duration: 0.3,
			beforeStart: function(){
				LacasaHeader.movable_element.update(LacasaHeader.elements[index].text);
				if( LacasaHeader.hover_item && !enable_hover_item ){
					LacasaHeader.hover_item.disable();
				}
			},
			afterFinish: function(){
				if( LacasaHeader.hover_item && enable_hover_item ){
					LacasaHeader.hover_item.enable();
				}
			}
		});
	}
};
