var OfficeSelector = Class.create();

OfficeSelector.prototype = {
	initialize : function(initial){
		this.setup();
		this.selectLocation(initial);		
	},
	setup : function(){
		var self = this;
		$$('.mappoint, #sidebar ul li a').each(function(el){
			var loc = $(el).readAttribute('id').substring(4);
			
			var kick = $(loc); if (! kick) return true;
			el.observe('mouseover', self.kickOut.bind(self, kick));
			(el.tagName == "A" ? el : kick)
				.observe('mouseleave', self.kickIn.bind(self, kick))
				.observe('click', function(){self.selectLocation(loc);}.bind(self));
		});
	},
	selectLocation : function(location){
		if(this.currentLocation)
			$("lnk_" + this.currentLocation).setStyle({color: '#559fca'});
		location = location.replace("+",'');
		this.currentLocation = location;
		$("lnk_" + location).setStyle({color: '#124464'});
		$$('.tabContent div').each(Element.hide);
		$('content_'+location).show();
		$('directions_'+location).show();
	},
	kickOut : function(kick){
		$("lnk_" + kick.id).setStyle({color: '#124464'});
		if (kick._effect) kick._effect.cancel();
		kick._effect = new Effect.Appear(kick, {duration:.2});
	},
	kickIn : function(kick){
		if(this.currentLocation != kick.id)
			$("lnk_" + kick.id).setStyle({color: '#559fca'});
		if (kick._effect) kick._effect.cancel();
		kick._effect = new Effect.Fade(kick, {duration:.2});
	}
};

/************ dom ready function calls *************/
document.observe('dom:loaded', function() {
	new Tabs('tabsLocations', 0);
	
	var params = document.location.search.toQueryParams();
	new OfficeSelector(params.office || "Greenwich");
});