var faqObject = {
  scrollContent: function(event) {
    element = event.findElement('li.faqListQuestion');
    var targetQuestion = "faqAnswer_" + element.questionNumber;
    Effect.ScrollTo(targetQuestion);
    Event.stop(event);
  },
  
  returnScroll: function(event) {
    Effect.ScrollTo('top');
    Event.stop(event);
  }
}

var collapseObject = {
  blind: function(obj) {
    var clickedElement = obj.element;
    var currentModule = clickedElement.up();
    Event.stopObserving(currentModule, 'click');
  },
  
  unBlind: function(obj) {
    var clickedElement = obj.element;
    var currentModule = clickedElement.up();
    Event.observe(currentModule, 'click', collapseObject.b_slideContent);
  },
  
  slideContent: function(event) {
    element = event.findElement('div.collapse_module');
    var previewContent = element.firstDescendant();
    var fullContent = previewContent.next();
    
    if (element.state1) {
      Effect.BlindUp(previewContent, {beforeStart: collapseObject.blind});
      Effect.BlindDown(fullContent, {afterFinish: collapseObject.unBlind});
      element.state1 = false;
    }
    else {
      Effect.BlindUp(fullContent, {beforeStart: collapseObject.blind});
      Effect.BlindDown(previewContent, {afterFinish: collapseObject.unBlind});
      element.state1 = true;
    }
  }
}

Event.observe(window, 'load', function() {
  /* FAQ Scroll Effects */
  var questionSet = $$('.faqListQuestion');
  var questionCount = questionSet.length;
  console.log (questionCount);
  
  questionSet.each(function(element) {
    //questionCount++;
    element.questionNumber = questionCount;
    
    faqObject.b_scrollContent = faqObject.scrollContent.bindAsEventListener(faqObject);
    Event.observe(element, 'click', faqObject.b_scrollContent);
    questionCount--;
  });
  
  $$('.faqReturn').each(function(element) {
    faqObject.b_returnScroll = faqObject.returnScroll.bindAsEventListener(faqObject);
    Event.observe(element, 'click', faqObject.b_returnScroll);
  });
  
  /* Smooth Collapsing Modules */
  $$('.collapse_module').each(function(element) {
    element.state1 = true;
    collapseObject.b_slideContent = collapseObject.slideContent.bindAsEventListener(collapseObject);
    Event.observe(element, 'click', collapseObject.b_slideContent);
  });
});