(function ($) {
Drupal.advanced_forum = Drupal.advanced_forum || {};
Drupal.behaviors.advanced_forum = {
attach: function(context) {
Drupal.advanced_forum.img_expand = Drupal.settings.basePath + Drupal.settings.advanced_forum.modulePath + '/styles/naked/images/container_expand.png';
Drupal.advanced_forum.img_collapse = Drupal.settings.basePath + Drupal.settings.advanced_forum.modulePath + '/styles/naked/images/container_collapse.png';
// Retrieve the collapsed status from a stored cookie.
var collapsed_cookie = $.cookie('Drupal.advanced_forum.collapsed_' + Drupal.encodePath(window.location.pathname));
//Load the items or a new array if null.
Drupal.advanced_forum.collapsed_items = collapsed_cookie ? collapsed_cookie.split(/,/) : new Array();
var handleHeader = $('thead.forum-header th:first-child', context);
// Set initial collapsed state
handleHeader.once('forum-header', Drupal.advanced_forum.init);
$('img', handleHeader).addClass('clickable').click(function() {
// get forum id
var id = $(this).closest('thead').attr('id').split('-')[2];
var imageSource = $(this).attr('src');
if ( imageSource == Drupal.advanced_forum.img_collapse ) {
Drupal.advanced_forum.collapse(id);
// Set collapsed variable
Drupal.advanced_forum.collapsed_items.push(id);
}
else {
Drupal.advanced_forum.expand(id);
// Unset collapsed variable
for (x in Drupal.advanced_forum.collapsed_items) {
if (Drupal.advanced_forum.collapsed_items[x] == id) {
Drupal.advanced_forum.collapsed_items.splice(x,1);
}
}
}
// Save new cookie
$.cookie(
'Drupal.advanced_forum.collapsed_' + Drupal.encodePath(window.location.pathname),
Drupal.advanced_forum.collapsed_items.toString(),
{
//path: Drupal.settings.basePath,
// The cookie should "never" expire.
expires: 36500
}
);
});
}
};
/**
* Initialize and set collapsible status
*/
Drupal.advanced_forum.init = function() {
// get forum id
var id = $(this).closest('thead').attr('id').split('-')[2];
// Check if item is collapsed
status = false;
for (x in Drupal.advanced_forum.collapsed_items) {
if (Drupal.advanced_forum.collapsed_items[x] == id) {
status = true;
break;
}
}
if (!status) {
$(this).append('
');
Drupal.advanced_forum.expand(id);
}
else {
$(this).append('
');
Drupal.advanced_forum.collapse(id);
}
};
Drupal.advanced_forum.collapse = function(id) {
if (Drupal.settings.advanced_forum.effect == 'toggle') {
$('#forum_collapse_' + id).attr('src', Drupal.advanced_forum.img_expand).closest('table').children('tbody').hide();
} else {
$('#forum_collapse_' + id).attr('src', Drupal.advanced_forum.img_expand).closest('table').children('tbody').fadeOut();
}
};
Drupal.advanced_forum.expand = function(id) {
if (Drupal.settings.advanced_forum.effect == 'toggle') {
$('#forum_collapse_' + id).attr('src', Drupal.advanced_forum.img_collapse).closest('table').children('tbody').show();
} else {
$('#forum_collapse_' + id).attr('src', Drupal.advanced_forum.img_collapse).closest('table').children('tbody').fadeIn();
}
};
})(jQuery);