document.observe('dom:loaded', function() {
  /**
   * Sets up the toggle display for the "+ Add Comment" button in news posts
   */
  if($('add-comment-form'))
  {
    $('add-comment').down('a').addEventListener('click', function() {
      $('add-comment-form').toggle();
      $('comment_body').focus();
    })
  }
  
  /**
   * Home page fact sheets select dropdown
   */
  if($('fact-sheets-select'))
  {
    $('fact-sheets-select').observe('change', function() {
      var select = $('fact-sheets-select');
      _gaq.push(['_trackEvent', 'Factsheet Downloads', select.childElements()[select.selectedIndex].innerHTML, '/']);
      window.open($('fact-sheets-select').value);
    });
  }
  
  /**
   * Event register interest modal form
   */
  if ($('form-template-register-interest'))
  {
    // Fetch template
    window.register_interest_form = $('form-template-register-interest').remove().show();
  }
    
  /**
   * Attach behaviour to email a friend trigger
   */
  $$('.trigger-register-interest').invoke('observe', 'click', function (event)
  {
    event.stop();
    if(!window.register_interest_form) return false;
    window.register_interest_form.down('form').reset();
    window.register_interest_form.down('form').down('.ajax-loader').hide();
    window.register_interest_form.down('form').down('.trigger-submit').show();
    displayModalForm(window.register_interest_form);
  });
  
  /**
   * Auto add GA tracking to all external link clicks
   */
  $$('.external').invoke('observe', 'click', function (event) {
      _gaq.push(['_trackEvent', 'External Link', event.target.readAttribute('href'), window.location.pathname]);
  });
  
  /**
   * Superfast prototype slideshow
   * src: http://snippets.dzone.com/posts/show/1068
   */
  start_slideshow(1, 5, 5000);

  function start_slideshow(start_frame, end_frame, delay) {
      setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
  }

  function switch_slides(frame, start_frame, end_frame, delay) {
      return (function() {
          Effect.Fade('feature-img-' + frame, { duration: 0.7 });
          if (frame == end_frame) { frame = start_frame; } else { frame = frame + 1; }
          Effect.Appear('feature-img-' + frame, { duration: 0.5 });
          setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay + 850);
      })
  }
});

