/*
          #      jQuery Slinky Slider Plugin
          #      ---------------------------
          #      Version:         1.0
          #      ---------------------------
          #      Author:            samhs
          #       http://ohwrite.co.uk/jquery/jquery-plugin-slinky-slider/
          #      http://docs.jquery.com/Plugins/SlinkySlider
          #
          #       Copyright (c) 2009 Sam Hampton-Smith
          #
          #      Dual licensed under the MIT and GPL licenses:
          #       http://www.opensource.org/licenses/mit-license.php
          #      http://www.gnu.org/licenses/gpl.html
          #
          #      Please view files mit.txt and gpl.txt for full license terms
          #      And include these two files if you redistribute this software
          */


(function($) {
         
         $.fn.slinkySlider = function(settings) {   
            // Utility variables - do not alter
            var currentpanel;
            var panelwidth;
            var goforward = true;
            var t;
            settings = $.extend({}, $.fn.slinkySlider.defaults, settings);   

            return $(this).each(function(){
               panelwidth = $(this).width();
               $(this).css("overflow","hidden");
               settings.largesize = panelwidth-((settings.numberofpanels-1)*(settings.smallsize+settings.panelspacing));
               container = $(this);
               elheight = container.height();
               for (var i=1;i<=settings.numberofpanels;i++) {
                  $(container).append("<div class='panelwrappers'><div class='panel'></div></div>");
                  $(".panelwrappers:last .panel").load(settings.panelname+i+".html").parents(".panelwrappers").data("number",i);
               }
               currentpanel = $(".panelwrappers:first");
               $(".panelwrappers").css({
                     "width"      :   settings.smallsize+"px",
                     "float"      :   "right",
                     "height"   :   elheight+"px"});
               $(".panels").css({
                     "width"      :   settings.largesize+"px",
                     "height"   :   "100%"});
               $(currentpanel).css("width",settings.largesize+"px");
               $(".panelwrappers").not(":last").css("margin-right",settings.panelspacing+"px");
               $(".panelwrappers").each(function(){
                  $(this).mouseover(function(){switchpanel(this);});
               });
               if (settings.doauto) t = setTimeout(function(){switchpanel(null);},settings.autotimer);
            });

            function switchpanel(newpanel) {
               if (newpanel==currentpanel) {
                  // do nothing because we're already on this panel
               } else {
                  var auto = false;
                  if (newpanel==null) {
                     auto = true;
                     if (goforward && $(currentpanel).data("number")==settings.numberofpanels) {
                        goforward=false;
                     }
                     if (!goforward && $(currentpanel).data("number")==1) {
                        goforward=true;
                     }                  
                     if (goforward) {
                        newpanel = $(currentpanel).next();
                     } else {
                        newpanel = $(currentpanel).prev();
                     }                     
                  }
                  else {
                     $(".panelwrappers").stop();
                     clearTimeout(t);
                  }
                  $(".panelwrappers").not(newpanel).animate({width: settings.smallsize+"px"},settings.transition, "swing");
                  $(newpanel).animate({width: settings.largesize+"px"},settings.transition, "swing");            
                  currentpanel = newpanel;
                  if (auto) t = setTimeout(function(){switchpanel(null);},settings.autotimer);
            }
         }
      }
         
      $.fn.slinkySlider.defaults = {
         autotimer:8000,
         transition:1000,
         panelspacing:3,
         smallsize:50,
         numberofpanels:5,
         largesize:0,
         doauto:true,
         panelname:"panel"
      }

})(jQuery); 
