function Scroller(el){
    //Reference to self
    var self = this;

    //Set Variables for the scroll banner
    this.holder = el;
    this.holderWidth = this.holder.width();
    this.scroller = this.holder.find('[class~="scrollTable"]');
    this.navigation = this.holder.parent().find('[class~="scrollNav"]').find('tr');
    this.items = this.scroller.find('.scrollItem').length;
    this.left = 0;
    this.current = 1;
    this.interval = null;
    this.path = '';


    //Functions
    this.setPath = function(){
        var location = new String(window.location);
        var admin = location.indexOf('admin') != -1;
        if(admin){
            this.path = '../';
        }
    }
    this.setPath();



    this.createNav = function(){
        for(var i = 1; i <= this.items; i++){
            var newCell = $('<td></td>');
            newCell.append('<img class="navBtn pointer nav'+i+'" src="'+self.path+'images/btn_circle.png" alt="Scroll To This" width="25" height="24"/>');
            newCell.find('img').click(function(){
                var classNames = $(this).attr('class');
                var num = '';
                for(var i = 0; i < classNames.length; i++){
                    if(classNames.charAt(i) >= '0' && classNames.charAt(i) <= '9'){
                    num += classNames.charAt(i);
                }
            }
            self.scrollToNum(num);
            });
            this.navigation.append(newCell);
        }
    }


    this.highlightCurrentBtn = function(){
        this.navigation.find('[class~="navBtn"]').each(function(){
            $(this).attr({src: self.path+'images/btn_circle.png'});
        });
        var search = '[class~="nav'+this.current+'"]';
        var btn = this.navigation.find(search);
        btn.attr({src: self.path+'images/btn_circle_on.png'});
    }

    
    this.scrollRight = function(){
        if(this.current < this.items){
            this.left = this.left - this.holderWidth;
            var left = this.left;
            this.scroller.animate({left: left + 'px'},700,function(){
                self.current++;
                self.highlightCurrentBtn();
            });
        }else{
            self.scrollLeft();
        }
    }


    this.scrollLeft = function(){
        this.scroller.animate({left: '0'},700,function(){
            self.left = 0;
            self.current = 1;
            self.highlightCurrentBtn();
        });
    }

    this.scrollToNum = function(num){
        clearInterval(this.interval);
        if(num != this.current && num < this.current){
            self.scrollLeftTo(num);
        }else if(num != this.current && num > this.current){
            self.scrollRightTo(num);
        }
    }


    this.scrollLeftTo = function(num){//alert('scrollLeftTo('+num+')');
        var steps = this.current - num;
        var left = this.left + (this.holderWidth * steps);
        this.scroller.animate({left: left+'px'},700,function(){
            self.left = left;
            self.current = num;
            self.highlightCurrentBtn();
        });
    }

    this.scrollRightTo = function(num){//alert('scrollRightTo('+num+')');
        var steps = num - this.current;
        var left = this.left - (this.holderWidth * steps);
        this.scroller.animate({left: left+'px'},700,function(){
            self.left = left;
            self.current = num;
            self.highlightCurrentBtn();
        });
    }

    this.prev = function(el){
        clearInterval(this.interval);
        if(this.current > 1){
            el.unbind('click');
            var left = (this.left + this.holderWidth);
            this.scroller.animate({left: left+'px'},700,function(){
                self.left = left;
                self.current--;
                self.highlightCurrentBtn();
                el.bind('click', function(){
                    self.prev($(this));
                });
            });
        }
    }

    this.right = function(el){
        clearInterval(this.interval);
        if(this.current < this.items){
            el.unbind('click');
            var left = (this.left - this.holderWidth);
            this.scroller.animate({left: left+'px'},700,function(){
                self.left = left;
                self.current++;
                self.highlightCurrentBtn();
                el.bind('click', function(){
                    self.right($(this));
                });
            });
        }
    }
    

    this.begin = function(){
        self.scrollRight();
    }

    this.createNav();
    this.highlightCurrentBtn();
    
    this.interval = setInterval(function(){
        self.begin();
    },7000);



    

}
