﻿var $$ = $.fn;

$$.extend({

    SplitID: function() { return this.attr('id').split('-').pop(); },   /*  Gets the last character of the element name. */

    Slideshow: {                                               /* Responds to nav clicks and hovers. Changes the slide and the active button. */
        Ready: function()                                        /* The Ready method runs once the DOM has finished loading */
        {
            $('div.slide').hide();                                  /* Hides all the slides */
            $('div#control-right')                                  /* Responds to the forward arrow navigation button */
        .hover(
          function() { $(this).addClass('controlOn'); },        /* onHover    */
          function() { $(this).removeClass('controlOn'); }      /* onMouseout */
        )
        .click(
          function() {
              $$.Slideshow.Interrupted = true;                  /* Show stops if user clicks the right nav button */
              $$.Slideshow.Last = $$.Slideshow.Counter - 1;
              if ($$.Slideshow.Last < 1) { $$.Slideshow.Last = 4; }
              $('div#slide-' + $$.Slideshow.Last).fadeOut('fast');
              $('div.control').removeClass('controlActive');
              $('div#control-' + $$.Slideshow.Counter).addClass('controlActive');
              $('div#slide-' + $$.Slideshow.Counter).fadeIn('fast');
              $$.Slideshow.Counter++;
              if ($$.Slideshow.Counter > 4) {
                  $$.Slideshow.Counter = 1;
              }
          }
        );

            $('div#control-left')                                 /* Responds to the back arrow navigation button */
          .hover(
            function() { $(this).addClass('controlOn'); },
            function() { $(this).removeClass('controlOn'); }
          )
          .click(
            function() {
                $$.Slideshow.Interrupted = true;
                $$.Slideshow.Current = $$.Slideshow.Counter - 1;
                if ($$.Slideshow.Current < 1) { $$.Slideshow.Current = 4; }
                $$.Slideshow.Back = $$.Slideshow.Current - 1;
                if ($$.Slideshow.Back < 1) { $$.Slideshow.Back = 4; }
                $('div#slide-' + $$.Slideshow.Current).fadeOut('slow');
                $('div.control').removeClass('controlActive');
                $('div#slide-' + $$.Slideshow.Back).fadeIn('slow');
                $('div#control-' + $$.Slideshow.Back).addClass('controlActive');
                $$.Slideshow.Counter--;
                if ($$.Slideshow.Counter < 1) {
                    $$.Slideshow.Counter = 4;
                }
            }
          );

            $('div.control')
          .hover(
            function() { $(this).addClass('controlOn'); },
            function() { $(this).removeClass('controlOn'); }
          )
          .click(
            function() {
                $$.Slideshow.Interrupted = true;
                $('div.slide').hide();
                $('div.control').removeClass('controlActive');
                $('div#slide-' + $(this).SplitID()).show();
                $(this).addClass('controlActive');
            }
          );

            this.Counter = 1;
            this.Interrupted = false;
            this.Transition();
        },

        Transition: function()                                     /* The Transition method runs until user interrupts show by clicking a nav button. */
        {
            if (this.Interrupted) { return; }
            this.Last = this.Counter - 1;
            if (this.Last < 1) { this.Last = 4; }
            $('div#slide-' + this.Last).fadeOut('slow');
            $('div#control-' + $$.Slideshow.Last).removeClass('controlActive');
            $('div#control-' + $$.Slideshow.Counter).addClass('controlActive');
            $('div#slide-' + $$.Slideshow.Counter).fadeIn('slow');
            $$.Slideshow.Counter++;
            if ($$.Slideshow.Counter > 4) {
                $$.Slideshow.Counter = 1;
            }
            setTimeout('$$.Slideshow.Transition();', 5000);           /* Delay between slide changes, in milliseconds. 5000 ms = 5 seconds. */
        }
    }
});

$(document).ready(                                              /* We begin manipulating the DOM only after jQuery says the DOM is ready */
  function() {
      $$.Slideshow.Ready();                                       /* Calls the slideshow plugin's Ready method */
  }
);