
;(function($) {

    $.b8_slider = function(el, options) {

        var defaults = {
          slideInterval: '10', 	// sec
          autoStart: true, 			// autostart slider
          rootObject: null 			// id of slider object
        };

        var plugin = this;

        plugin.settings = {};

        var init = function() {
            plugin.settings = $.extend({}, defaults, options);
            plugin.el = el;
            
            //plugin.bo = null;
            plugin.currentSlide = 0;
            
            plugin.settings.rootObject = $(plugin.settings.rootObject);
            
						if (plugin.settings.rootObject) {
		
							$(plugin.settings.rootObject)
								.addClass('b8_slider')
								.append($('<ul/>')
									.attr('id', 'gallery-marker')
								);
			
							plugin.settings.rootObject.find('.slide').each(function(index){
								if (index > 0) {
									$(this).fadeOut(0);
								}
								plugin.settings.rootObject.find('#gallery-marker')
									.append($('<li/>')
										.append($('<div/>'))
									);
							});
							
							plugin.settings.rootObject.find('#gallery-marker li').eq(0).addClass('selected');
							
							var manualselect = function() {
								plugin.settings.rootObject.find('#gallery-marker li').unbind('click', manualselect);
								stopSlider();	
		
								var slides = plugin.settings.rootObject.find('.slide');
			
								slides.eq(plugin.currentSlide).fadeOut(1000);
								plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).removeClass('selected');
								
								plugin.currentSlide = plugin.settings.rootObject.find('#gallery-marker li').index(this);
								
								slides.eq(plugin.currentSlide).fadeIn(1000);
								plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).addClass('selected');
								
								$.doTimeout(1000, function(){
									plugin.settings.rootObject.find('#gallery-marker li').bind('click', manualselect);
									
								});
								
								$.doTimeout(10000, function(){
									startSlider();
								});
		
							};
							
							plugin.settings.rootObject.find('#gallery-marker li').bind('click', manualselect);
						}
						
						resetSlider();
						
						if (plugin.settings.autoStart) {
							startSlider();
						}
        };

        plugin.foo_public_method = function() {
            // code goes here
        };

				// reset slider and set currentSlide to 0
				var resetSlider = function() {
					stopSlider();

					plugin.currentSlide = 0;
					var slides = plugin.settings.rootObject.find('.slide');

					slides.hide();
					plugin.settings.rootObject.find('#gallery-marker li').removeClass('selected');
					
					plugin.settings.rootObject.find('.slide:eq(0)').show();
					plugin.settings.rootObject.find('#gallery-marker li:eq(0)').addClass('selected');
				};
				
				// stop slider
				// private
				var stopSlider = function() {
					if (plugin.bo) {
						clearInterval(plugin.bo);
						plugin.bo = null;
					}
				};
				
				// start sliding
				// private
				var startSlider = function() {
					if (plugin.bo) {
						clearInterval(plugin.bo);
						plugin.bo = null;
					}
					plugin.bo = setInterval(blendOver, 5000);
				};
				
				var blendOver = function() {
					var slides = plugin.settings.rootObject.find('.slide');

					slides.eq(plugin.currentSlide).fadeOut(1000);
					plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).removeClass('selected');
					
					if (plugin.currentSlide + 1 > slides.length - 1) {
						plugin.currentSlide = 0;
					} else {
						plugin.currentSlide++;
					}
					
					slides.eq(plugin.currentSlide).fadeIn(1000);
					plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).addClass('selected');
				};
        
        // initialize plugin
        init();

    };











    $.b8_slider2 = function(el, options) {

        var defaults = {
          slideInterval: '10', 	// sec
          autoStart: true, 			// autostart slider
          rootObject: null 			// id of slider object
        };

        var plugin = this;

        plugin.settings = {};

        var init = function() {
            plugin.settings = $.extend({}, defaults, options);
            plugin.el = el;
            
            //plugin.bo = null;
            plugin.currentSlide = 0;
            
            plugin.settings.rootObject = $(plugin.settings.rootObject);
            
						if (plugin.settings.rootObject) {
		
							$(plugin.settings.rootObject)
								.addClass('b8_slider2')
								.append($('<ul/>')
									.attr('id', 'gallery-marker')
								);
			
							plugin.settings.rootObject.find('.slide').each(function(index){
								if (index > 0) {
									$(this).fadeOut(0);
								}
								plugin.settings.rootObject.find('#gallery-marker')
									.append($('<li/>')
										.append($('<div/>'))
									);
							});
							
							plugin.settings.rootObject.find('#gallery-marker li').eq(0).addClass('selected');
							
							var manualselect = function() {
								plugin.settings.rootObject.find('#gallery-marker li').unbind('click', manualselect);
								stopSlider();	
		
								var slides = plugin.settings.rootObject.find('.slide');
			
								slides.eq(plugin.currentSlide).fadeOut(1000);
								plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).removeClass('selected');
								
								plugin.currentSlide = plugin.settings.rootObject.find('#gallery-marker li').index(this);
								
								slides.eq(plugin.currentSlide).fadeIn(1000);
								plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).addClass('selected');
								
								$.doTimeout(1000, function(){
									plugin.settings.rootObject.find('#gallery-marker li').bind('click', manualselect);
									
								});
								
								$.doTimeout(10000, function(){
									startSlider();
								});
		
							};
							
							plugin.settings.rootObject.find('#gallery-marker li').bind('click', manualselect);
						}
						
						resetSlider();
						
						if (plugin.settings.autoStart) {
							startSlider();
						}
        };

        plugin.foo_public_method = function() {
            // code goes here
        };

				// reset slider and set currentSlide to 0
				var resetSlider = function() {
					stopSlider();

					plugin.currentSlide = 0;
					var slides = plugin.settings.rootObject.find('.slide');

					slides.hide();
					plugin.settings.rootObject.find('#gallery-marker li').removeClass('selected');
					
					plugin.settings.rootObject.find('.slide:eq(0)').show();
					plugin.settings.rootObject.find('#gallery-marker li:eq(0)').addClass('selected');
				};
				
				// stop slider
				// private
				var stopSlider = function() {
					if (plugin.bo) {
						clearInterval(plugin.bo);
						plugin.bo = null;
					}
				};
				
				// start sliding
				// private
				var startSlider = function() {
					if (plugin.bo) {
						clearInterval(plugin.bo);
						plugin.bo = null;
					}
					plugin.bo = setInterval(blendOver, 5000);
				};
				
				var blendOver = function() {
					var slides = plugin.settings.rootObject.find('.slide');

					slides.eq(plugin.currentSlide).fadeOut(1000);
					plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).removeClass('selected');
					
					if (plugin.currentSlide + 1 > slides.length - 1) {
						plugin.currentSlide = 0;
					} else {
						plugin.currentSlide++;
					}
					
					slides.eq(plugin.currentSlide).fadeIn(1000);
					plugin.settings.rootObject.find('#gallery-marker li').eq(plugin.currentSlide).addClass('selected');
				};
        
        // initialize plugin
        init();

    };



})(jQuery);
