(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.t('Toggle') + ''); Drupal.advanced_forum.expand(id); } else { $(this).append('' + Drupal.t('Toggle') + ''); 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);