// JavaScript Document
if (!window.jQuery) {
	throw("jQuery must be referenced before using slideshow");
} else {	
	(function() { 
		jQuery.fn.slideshow = function(params) {
			var slider = this;
			var total = 0;
			var lastImg = '';
			
			params = jQuery.extend({
				current				: 1,	
				realign_buttons		: true,
				always_show_buttons	: false,
				effects				: true
			},params);
			
			slideshow_init();
			init_buttons();
			
			function slideshow_init(){
				var i = 1;
				slider.find("li").each(function(){
					$(this).attr("rel","image_"+i);						
					if(i == params['current']){
						$(this).css("display","block");
						params['current'] = i;
						if(params['always_show_buttons'] == false && params['current'] == 1){
							slider.find("a[@rel='prev']").hide();	
						}
						if(params['realign_buttons'] == true){
							realign_buttons($(this).height());
						}
					} else {				
						$(this).css("display","none");
					}
					i++;
				});
				total = i-1;	
			};
			
			function init_buttons(){
				slider.find("a").each(function(){
					if($(this).attr("rel") == "next"){
						$(this).click(function(){	
							lastImg = params['current'];
							params['current'] += 1;
							show_image(params['current']);						
							return false;
						});
					}
					if($(this).attr("rel") == "prev"){
						$(this).click(function(){
							lastImg = params['current'];
							params['current'] -= 1;
							show_image(params['current']);
							return false;
						});
					}
				});	
			}
			
			function realign_buttons(height){
				slider.find("a").each(function(){
					if($(this).attr("rel") != ""){
						newmargin = (height/2)-($(this).height()/2);
						$(this).css("margin-top",newmargin);
					}
				});
			}
			
			function show_image(newcurrent){
				if(newcurrent > total){
					params['current'] = 1;					
				}
				if(params['current'] == total){
					if(params['always_show_buttons'] == false){
						slider.find("a[@rel='next']").hide();	
					}	
				} else {
					if(params['always_show_buttons'] == false){
						slider.find("a[@rel='next']").show();	
					}	
				}
				if(params['current'] == 1){
					if(params['always_show_buttons'] == false){
						slider.find("a[@rel='prev']").hide();	
					}	
				} else {
					if(params['always_show_buttons'] == false){
						slider.find("a[@rel='prev']").show();	
					}	
				}
				if(newcurrent < 1){
					params['current'] = total;					
				}
				var i = 1;
				slider.find("li").each(function(){							
					if(i == params['current']){
						if(params['effects'] == false){
							$(this).css("display","block");
						} else {		
							$(this).fadeIn("normal");					
						}//end if
						if(params['realign_buttons'] == true){
							realign_buttons($(this).height());
						}
					} else {				
						$(this).css("display","none");
					}
					i++;
				});
			};
		}
	})(jQuery); 
}