qAccordion = {
  
  className: '.accordion',
  termIDPrefix: 'accordion_term_',
  descIDPrefix: 'accordion_desc_',
  toggleMode: true,
  listAccordionsItems: null,
  openingTerm: null,
  openingDesc: null,
  closingTerm: null,
  closingDesc: null,
  
  init: function() {
    var listAccordions = $(qAccordion.className);
    qAccordion.listAccordionsItems = new Array();
    
    for (var a = 0; a < listAccordions.length; a++)
    {
      var listTerms = $(listAccordions[a]).find('dt');
      var listDescs = $(listAccordions[a]).find('dd');
      qAccordion.listAccordionsItems.push({'id':a, 'listTerms':listTerms, 'listDescs':listDescs});
      
      for (var b = 0; b < listTerms.length; b++)
      {
        $(listTerms[b]).css('cursor', 'pointer');
        $(listTerms[b]).addClass('closed');
        $(listTerms[b]).attr('id', qAccordion.termIDPrefix +''+ a +'_'+ b);
        $(listDescs[b]).attr('id', qAccordion.descIDPrefix +''+ a +'_'+ b);
        if (b != 0)
        {
          $(listDescs[b]).slideUp();
        }
        
        $(listTerms[b]).click(function(){
          qAccordion.clickTerm($(this).attr('id'));
        });
      }
      
      qAccordion.toggleDesc(Number(a), 0);
    }
    
  },
  
  clickTerm: function(termID) {
    var ids = termID.split('_');
    qAccordion.toggleDesc(Number(ids[ids.length-2]), Number(ids[ids.length-1]));
  },
  
  toggleDesc: function(accID, itemID) {
    var termItemSelector = $('#'+ qAccordion.termIDPrefix +''+ accID +'_'+ itemID);
    
    if ($(termItemSelector).hasClass('closed') == true)
    {
      qAccordion.showItem(accID, itemID);
    } else {
      qAccordion.hideItem(accID, itemID);
    }
    
    if (qAccordion.toggleMode === true)
    {
      for (var a = 0; a < qAccordion.listAccordionsItems[accID].listTerms.length; a++)
      {
        if (a != itemID)
        {
          qAccordion.hideItem(accID, a);
        }
        //listAccordions
      }
    }
  },
  
  showItem: function(accID, itemID) {
    var termItemSelector = $('#'+ qAccordion.termIDPrefix +''+ accID +'_'+ itemID);
    var descItemSelector = $('#'+ qAccordion.descIDPrefix +''+ accID +'_'+ itemID);
    
    $(termItemSelector).removeClass('closed');
    $(descItemSelector).removeClass('closed');
    $(descItemSelector).slideDown(250);
    /*
    $(descItemSelector).animate({
    	height: '300px',
    }, 250, function() {
    });
    */
  },
  hideItem: function(accID, itemID) {
    var termItemSelector = $('#'+ qAccordion.termIDPrefix +''+ accID +'_'+ itemID);
    var descItemSelector = $('#'+ qAccordion.descIDPrefix +''+ accID +'_'+ itemID);
    
    qAccordion.closingTerm = termItemSelector;
    
    $(termItemSelector).addClass('closed');
    $(descItemSelector).addClass('closed');
    $(descItemSelector).slideUp(250, function() {
//      console.log(qAccordion.closingTerm);
//      $(qAccordion.closingTerm).addClass('closed');
    });
    /*
    $(descItemSelector).animate({
    	height: '0',
    }, 250, function() {
    });
    */
  }
  
};

$(document).ready(function()
{
  qAccordion.init();
});
