var Tabs = Class.create(
	{
		initialize: function (elems, currentlyOpen)
		{
			this.open = false;
			elems.each(
				function (elem)
				{
					elem.observe('click', this.onClick.bind(this));
				}.bind(this)
			);

			if(typeof currentlyOpen !== 'undefined' && currentlyOpen != false)
			{
				this.openTab(currentlyOpen);
			}
		},

		onClick: function (evt)
		{
			evt.stop();

			this.openTab(evt.element());

			return false;
		},

		openTab: function (elem)
		{
			var rel = elem.up('li').down('a').readAttribute('rel');

			elem.up('ul.tabs').down('li.open').removeClassName('open');
			elem.up('li').addClassName('open');

			if(this.open)
			{
				$('tab_'+this.open).removeClassName('open').hide();
			}
			else
			{
				$$('ul.tabs')[0].next().down('.open').hide().removeClassName('open');
			}
			$('tab_'+rel).show().addClassName('open');

			this.open = rel;
		}
	}
);


if(typeof Prototype != 'undefined')
{

	document.observe(
		'dom:loaded',
		function ()
		{
			var currentlyOpen = false;
			if(document.location.hash)
			{
				var tab = unescape(document.location.hash.substring(1));
				switch(tab)
				{
					case 'in-the-news':
						currentlyOpen = $$('ul.tabs a[rel="in-the-news"]')[0];
						break;

					case 'photos':
						currentlyOpen = $$('ul.tabs a[rel="photos"]')[0];
						break;

					case 'videos':
						currentlyOpen = $$('ul.tabs a[rel="videos"]')[0];
						break;

					case 'news-releases':
					default:
						currentlyOpen = $$('ul.tabs a[rel="news-releases"]')[0];
						break;
				}
			}

			var tabs = new Tabs($$('ul.tabs li a'), currentlyOpen);
		}
	);
}

