/************************************************/
/* IPB3 Javascript								*/
/* -------------------------------------------- */
/* ips.forums.js - Forum view code				*/
/* (c) IPS, Inc 2008							*/
/* -------------------------------------------- */
/* Author: Rikki Tissier						*/
/************************************************/

var _hooks = window.IPBoard;

_hooks.prototype.hooks = {
	activeTab: 'forums',

	init: function()
	{
		Debug.write("Initializing ips.hooks.js");
		
		document.observe("dom:loaded", function(){
			ipb.hooks.initEvents();
		});
	},

	initEvents: function()
	{
		$$('.tab_toggle').each( function(elem){
			$(elem).observe('click', ipb.hooks.changeTabContent );
		});
		
		if( $('more-watched-forums') )
		{
			$('more-watched-forums').observe('click', ipb.hooks.toggleWatchedForums );
		}
		
		if( $('more-watched-topics') )
		{
			$('more-watched-topics').observe('click', ipb.hooks.toggleWatchedTopics );
		}
	},
	
	toggleWatchedForums: function(e)
	{
		Event.stop(e);
		
		$('more-watched-forums-container').toggle();
	},
	
	toggleWatchedTopics: function(e)
	{
		Event.stop(e);
		
		$('more-watched-topics-container').toggle();
	},
						
	changeTabContent: function(e)
	{
		Event.stop(e);
		elem = Event.findElement(e, 'li');
		if( !elem.hasClassName('tab_toggle') || !elem.id ){ return; }
		id = elem.id.replace('tab_link_', '');
		if( !id || id.blank() ){ return; }
		if( !$('tab_content_' + id ) ){ return; }
		
		if( ipb.hooks.activeTab == id )
		{
			return;
		}
		
		oldTab = ipb.hooks.activeTab;
		ipb.hooks.activeTab = id;
		
		// OK, we should have an ID. Does it exist already?
		
		if( !$('tab_' + id ) )
		{
			$$('.tab_toggle_content').each( function(otherelem){
				$(otherelem).hide();
			});
			
			$('tab_content_' + id ).show();
		}
		else
		{
			new Effect.Parallel( [
				new Effect.BlindUp( $('tab_content_' + oldTab), { sync: true } ),
				new Effect.BlindDown( $('tab_content_' + ipb.hooks.activeTab), { sync: true } )
			], { duration: 0.4 } );
		}
		
		$$('.tab_toggle').each( function(otherelem){
			$(otherelem).removeClassName('active');
		});
		
		$(elem).addClassName('active');
		
	}
}
ipb.hooks.init();

