function MakeSlider(p_target) {
    this.sliderId = p_target;
    this.slideContainer = $('#' + this.sliderId).children('.sliderContainer');
    this.itemArray = new Array();
    this.currentItem = 1;
    this.nextItem = null;
    this.tickInterval = 7500;

    this.isEnabled = true;

    var self = this;        // to prevent confusing this with jQuery this

    this.init = function () {
        var itemArray = this.itemArray;
        var p_sliderId = this.sliderId;


        // put all of the items into an array and populate the nav
        var i = 0;
        //check the length

        if ($('#' + this.sliderId).children('.sliderContainer').children('.sliderItem').length > 1) {
            $('#' + this.sliderId).children('.sliderContainer').children('.sliderItem').each(function () {
                itemArray.push(this);
                i++;    // increment the item that we're working on
                if (i > 1) {
                    $('#' + p_sliderId).children('.sliderControls').html(
                        $('#' + p_sliderId).children('.sliderControls').html() +
                        '<a href="" class="sliderNum" id="' + p_sliderId + '_' + i + '">' +
                        '<span class="sliderDivider"></span><span class="sliderNumber">' + i + '</span></a>'
                    );
                } else {

                    $('#' + p_sliderId).children('.sliderControls').html(
                        $('#' + p_sliderId).children('.sliderControls').html() +
                        '<a href="" class="sliderNum" id="' + p_sliderId + '_' + i + '"><span class="sliderNumber selected">' + i + '</span></a>'
                    );
                }

            });
       
        }

        $('#' + this.sliderId).children('.sliderControls').children('.sliderNum').click(function (e) {
            clearInterval(self.interval);
            self.interval = null;
            self.sendTo(this.id, false);
            return false;
        });


    }
    
    this.sendTo = function(p_viewItem, resetLast) {
        // specifically going to a numbered section
        viewItem = p_viewItem.split('_');
        
        var parent = viewItem[0];
        var itemNum = viewItem[1];
        try {
            var itemPos = $(self.itemArray[itemNum - 1]).position().left;
        } catch(err) {
            // weird IE fix
            var itemPos = 0;
        }
        
        var speed = 1000 * Math.abs(itemNum - self.currentItem);

        $('#' + parent).children('.sliderContainer').stop(true, true).animate({
            left: '-' + itemPos
        }, speed, function() {
        
            // clear selected and set it to the new one
            $('#' + parent).children('.sliderControls').children('.sliderNum').children('.sliderNumber').removeClass('selected');
            $('#' + parent).children('.sliderControls').children('#' + parent + '_' + itemNum).children('.sliderNumber').addClass('selected');
        
            if(resetLast) {
                $(self.itemArray[self.itemArray.length - 1]).appendTo(self.slideContainer);
                $(self.slideContainer).css('left', 0);
            }
            
            if(!self.interval) {
                self.interval = setInterval(self.tick, self.tickInterval);
            }
            
        });
        
        this.currentItem = itemNum;
    }
    
    this.tick = function() {
        // moves along to the next one at a set interval time
        
        if(self.currentItem == self.itemArray.length) {
            // bump the next item in front of it
            
            for (j in self.itemArray) {
                if( j < (self.itemArray.length - 1) ) {
                    $(self.slideContainer).css('left', 0);
                    $(self.itemArray[j]).appendTo(self.slideContainer);
                }
            }
            
            //  clearInterval(self.interval);
            self.currentItem = 0;
            self.sendTo(self.sliderId + '_1', true);
            
        } else {
            self.sendTo(self.sliderId + '_' + (parseInt(self.currentItem) + 1));
        }
    }
    
    this.next = function() {
        // let's go to the next item
        
    }
    
    this.prev = function() {
        // let's go to the previous item
        
    }
    
    this.stop = function() {
        clearInterval(self.interval);
    }

    this.start = function() {
        self.interval = setInterval(self.tick, self.tickInterval);
    }

    this.init();
    self.interval = setInterval(self.tick, self.tickInterval);

}
