/*************************************** 
 *  CREATIVE SLIDER 1.0
 *  Ontwikkeld door Ewald Vanderveken
 *   
 *  http://www.creativedimension.be
 *  ewald@creativedimension.be   
 **************************************/  

(function($){
    var methods = {
        init: function(options) {
            var defaults = {  
            timer: 8000,
            breedte: 980,
            hoogte: 385,
            link_class: 'slider_links'
            };  
            
            var options = $.extend(defaults, options);       
            
            return this.each(function() {
                var container = this;
                
                // Timer
                if(options.timer>0) {
                    var functie = function() {
                        var huidige_banner = parseInt($("div." + options.link_class + " a.actief").attr('rel'));
                        var aantal_banners = parseInt($("ul li", container).length);
                        var nieuwe_banner = 0;
                        
                        if(huidige_banner === aantal_banners) {
                            nieuwe_banner = 1;
                        } else {
                            nieuwe_banner = huidige_banner + 1;
                        }

                        banner(nieuwe_banner, container);    
                    }
                    
                    var t = setInterval(functie, options.timer);
                }
                
                // Alle CSS goedzetten
                $(this).css({
                    position: 'absolute',
                    width: options.breedte + "px",
                    height: options.hoogte + "px",
                    overflow: 'hidden'
                });
                
                $("ul", this).css({
                    position: 'absolute'
                });
                
                $("ul li", this).css({
                    float: 'left'
                });
                
                // Aantal banners tellen en lijst juiste breedte geven
                var aantal_banners = parseInt($("ul li", this).length);
                var breedte = aantal_banners * options.breedte;
                
                $("ul", this).css("width", breedte + "px");
                
                // Per banner een link maken en id geven aan lijst
                $(this).append('<div class="' + options.link_class + '"></div>');
                
                var teller = 1;
                $("ul li", this).each(function() {
                    $(this).addClass("slider_lijst_" + teller);
                    $("div." + options.link_class).append('<a href="#" rel="' + teller + '"><span>' + teller + '</span></a>');
                    teller++;
                });
                
                $("a[rel='1']").addClass("actief");
                
                // Links doen werken
                $("div." + options.link_class + " a").click(function(e) {
                    e.preventDefault();         
                    if(options.timer>0) {
                        clearInterval(t);
                        t = setInterval(functie, options.timer);
                    }                               
                    banner(this.rel, container);
                }); 
                
                function banner(nummer, container) {
                    $("div." + options.link_class + " a").removeClass("actief");
                    $("div." + options.link_class + " a[rel='" + nummer + "']").addClass("actief");
                    
                    var banner = nummer;
                    var margin = (banner - 1) * options.breedte;

                    $("ul", container).stop().animate({
                        'margin-left': "-" + margin + "px"
                    }, 1000);                
                }               
            });
        }
    };
    
    $.fn.slider = function(method) {
        if(methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || ! method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' +  method + ' doesn\'t exists');
        }    
    };
})(jQuery);
