﻿//jwslider

(function($){
    $.fn.jwslider = function(options) {

        var defaults = {
            stopAtEnd: false,
            effect: 'fade',
            showNav: true
        };
        
        var options = $.extend(defaults, options);
    
        return this.each(function() {
        
            var vars = {
				currentSlide: 0,
				currentImage: '',
				totalSlides: 0,
				width: 774,
				height: 215
			};
                   
            //Get this slider
			var slider = $(this);
			slider.css({position: 'relative'});
								
			//Line up Kids
            var kids = slider.children();
            kids.each(function() {
                var child = $(this);
                if(!child.is('img')){
                    child = child.find('img:first');
                }
                child.css({display: 'none', position: 'absolute', top: 0, left: 0});
                vars.totalSlides++;
            });  
            
            //Add Nav if showNav = true
            if(options.showNav == true) {
			    var navControl = $('<div class="jw-Nav" style="position:absolute; top:5px; right:5px; width:75px;"></div>');
			    slider.append(navControl);
                for(var i = 0; i < vars.totalSlides; i++){
                    navControl.append('<a class="jw-Nav-Item" style="position:relative; display:inline-block; font:5px; height:10px; width:10px; margin:3px;" rel="'+ i +'"></a>');
                }
                $('.jw-Nav a', slider).live('click', function(){
					    clearInterval(timer);
					    getSlide($(this).attr('rel'));
					    timer = setInterval(function(){ RunSlides(slider, kids, options, vars); }, 7000);
				    });
		        $('.jw-Nav a:eq('+ vars.currentSlide +')', slider).addClass('active');
            }
            //Used by Nav to Set Specific Slide
            function getSlide(index) {
                vars.currentSlide = index-1;
                RunSlides(slider, kids, options, vars);     
            }
            
            //Show Slider
            slider.css({ display: 'block', width: '774px', height: '198px'});
            
            //Get initial image
			vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
			    
			//Show initial image
			vars.currentImage.css({display: 'block'});
            
            
            // Lets go
            //timer = setTimeout(function(){ RunSlides(slider, kids, vars); }, 4000);
            timer = setInterval(function(){ RunSlides(slider, kids, options, vars); }, 7000);
            
        });      
          
        function RunSlides(slider, kids, options, vars){
			    
			    var next = vars.currentSlide + 1;
			    
			    // If Last Slide
			    if(next == vars.totalSlides) {
			        if(options.stopAtEnd == true) {
			            return false;
			        }
			        next = 0;
			    }
			    
			    //Set Active if showNav = true
			    if(options.showNav == true) {
			        $('.jw-Nav a', slider).removeClass('active');
				    $('.jw-Nav a:eq('+ next +')', slider).addClass('active');
				}
					    
			    // Set Background to New Image
			    SetBackground(slider, next);
			    
			    // Slide Current Image off
			    if(options.effect == 'hide') {
			    	vars.currentImage.hide('slow', function() {
                        setNextSlide()
                    });
			    } else {
			        vars.currentImage.fadeOut('slow', function() {
                        setNextSlide()
                    });
                }
                
                function setNextSlide() {
                    // Set Current Image Display to  None (Hide will actually do this by default)
			        vars.currentImage.css({display: 'none'});
    			    
			        // Set Current Slide to Next
			        vars.currentSlide = next;
    			    
			        // Get Next Image
			        vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
    			    
			        // Show Next Image
			        vars.currentImage.css({display: 'block'});
                }
        }
            
        function SetBackground(slider, imgIndex) {  
            
            var kids = slider.children();
              
			//Get initial image
			var img = $(kids[imgIndex]).find('img:first');                

			//Set first background
			slider.css('background','url('+ img.attr('src') +') no-repeat'); 
        }    

    };
})(jQuery);
