99 lines
2.2 KiB
JavaScript
99 lines
2.2 KiB
JavaScript
/************************************************/
|
|
/* 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();
|