(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));
					var container = $(this);
					var elheight = container.height();
					for (var i=1;i<=settings.numberofpanels;i++) {
						$(this).append("<div class='slider_panelwrappers' id='slider_panelwrapper" + i + "' style='left: " + (settings.smallsize * (i-1)) + "px; z-index: " + (20+i) + ";'><div class='slider_panel'></div></div>");
						$(".slider_panelwrappers:last .slider_panel").load(settings.panelname+i+".html").parents(".slider_panelwrappers").data("number",i);
					}
					currentpanel = $(".slider_panelwrappers:last");
					$(".slider_panelwrappers").css({
							"position"	:	"absolute",
							"top"		:	"0px",
							"width"		:	(settings.smallsize+5)+"px", 
							"height"	:	elheight+"px"});
					$(".slider_panels").css({
							"width"		:	settings.largesize+"px",
							"height"	:	"100%"}); 
					$(currentpanel).css("width",(settings.largesize+5)+"px");
					$(".slider_panelwrappers").not(":last").css("margin-right",settings.panelspacing+"px");
					$(".slider_panelwrappers").each(function(){
						$(this).mouseover(function(){switchpanel(this);});
					});
					if (settings.doauto) t = setTimeout(function(){switchpanel(null);},settings.autotimer);
				});

				function switchpanel(newpanel) {
					if (newpanel!=currentpanel) {
						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 {
							$(".slider_panelwrappers").stop();
							clearTimeout(t);
						}
						var idvalue = $(newpanel).attr('id');
						idvalue = parseInt(idvalue.replace(/slider_panelwrapper/,""));
						$(newpanel).animate({width: (settings.largesize+5)+"px", left: (settings.smallsize * (idvalue - 1)) + "px"},settings.transition, settings.easing);				
						for (var i=1;i<=settings.numberofpanels;i++) {
							if (i < idvalue) {$("#slider_panelwrapper" + i).animate({width: (settings.smallsize+5)+"px", left: (settings.smallsize * (i - 1)) + "px"},settings.transition, settings.easing);}
							else if (i > idvalue) {$("#slider_panelwrapper" + i).animate({width: (settings.smallsize+5)+"px", left: (settings.smallsize * (i - 2)) + settings.largesize + "px"},settings.transition, settings.easing);}
							//if ($("#slider_panelwrapper" + i).attr('id')!=$(newpanel).attr('id')) {$("#slider_panelwrapper" + i).animate({width: settings.smallsize+"px", left: (settings.smallsize * (i - 2)) + settings.largesize + "px"},settings.transition, settings.easing);}
						}
						currentpanel = newpanel;
						if (auto) t = setTimeout(function(){switchpanel(null);},settings.autotimer); 
				}
			}
		}
			
		$.fn.slinkySlider.defaults = {
			autotimer:8000,
			transition:1000,
			panelspacing:3,
			smallsize:20,
			numberofpanels:5,
			largesize:0,
			doauto:true,
			panelname:"panel",
			easing: null // "swing", "linear", null
		}

})(jQuery);
