| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | (function ($) {Drupal.settings.views = Drupal.settings.views || {'ajax_path': '/views/ajax'};Drupal.quicktabs = Drupal.quicktabs || {};Drupal.quicktabs.getQTName = function (el) {  return el.id.substring(el.id.indexOf('-') +1);}Drupal.behaviors.quicktabs = {  attach: function (context, settings) {    $.extend(true, Drupal.settings, settings);    $('.quicktabs-wrapper', context).once(function(){      Drupal.quicktabs.prepare(this);    });  }}// Setting up the inital behavioursDrupal.quicktabs.prepare = function(el) {  // el.id format: "quicktabs-$name"  var qt_name = Drupal.quicktabs.getQTName(el);  var $ul = $(el).find('ul.quicktabs-tabs:first');  $ul.find('li a').each(function(i, element){    element.myTabIndex = i;    element.qt_name = qt_name;    var tab = new Drupal.quicktabs.tab(element);    var parent_li = $(element).parents('li').get(0);    if ($(parent_li).hasClass('active')) {      $(element).addClass('quicktabs-loaded');    }    $(element).once(function() {$(this).bind('click', {tab: tab}, Drupal.quicktabs.clickHandler);});  });}Drupal.quicktabs.clickHandler = function(event) {  var tab = event.data.tab;  var element = this;  // Set clicked tab to active.  $(this).parents('li').siblings().removeClass('active');  $(this).parents('li').addClass('active');  // Hide all tabpages.  tab.container.children().addClass('quicktabs-hide');    if (!tab.tabpage.hasClass("quicktabs-tabpage")) {    tab = new Drupal.quicktabs.tab(element);  }  tab.tabpage.removeClass('quicktabs-hide');  return false;}// Constructor for an individual tabDrupal.quicktabs.tab = function (el) {  this.element = el;  this.tabIndex = el.myTabIndex;  var qtKey = 'qt_' + el.qt_name;  var i = 0;  for (var key in Drupal.settings.quicktabs[qtKey].tabs) {    if (i == this.tabIndex) {      this.tabObj = Drupal.settings.quicktabs[qtKey].tabs[key];      this.tabKey = key;    }    i++;  }  this.tabpage_id = 'quicktabs-tabpage-' + el.qt_name + '-' + this.tabKey;  this.container = $('#quicktabs-container-' + el.qt_name);  this.tabpage = this.container.find('#' + this.tabpage_id);}if (Drupal.ajax) {  /**   * Handle an event that triggers an AJAX response.   *   * We unfortunately need to override this function, which originally comes from   * misc/ajax.js, in order to be able to cache loaded tabs, i.e. once a tab   * content has loaded it should not need to be loaded again.   *   * I have removed all comments that were in the original core function, so that   * the only comments inside this function relate to the Quicktabs modification   * of it.   */  Drupal.ajax.prototype.eventResponse = function (element, event) {    var ajax = this;    if (ajax.ajaxing) {      return false;    }      try {      if (ajax.form) {        if (ajax.setClick) {          element.form.clk = element;        }          ajax.form.ajaxSubmit(ajax.options);      }      else {        // Do not perform an ajax request for already loaded Quicktabs content.        if (!$(element).hasClass('quicktabs-loaded')) {          ajax.beforeSerialize(ajax.element, ajax.options);          $.ajax(ajax.options);          if ($(element).parents('ul').hasClass('quicktabs-tabs')) {            $(element).addClass('quicktabs-loaded');          }        }      }    }    catch (e) {      ajax.ajaxing = false;      alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);    }    return false;  };}})(jQuery);
 |