    var LiSwitcher = function() {}  
      
    LiSwitcher.prototype = {  
        initialize: function(CONTROLS, VIEWPORT) {  
            this.CONTROLS = CONTROLS || "div#liSwitcher-controls";  
            this.PREVIOUS = $(this.CONTROLS).children("a#liSwitcher-previous");  
            this.NEXT = $(this.CONTROLS).children("a#liSwitcher-next");  
            this.VIEWPORT = VIEWPORT || "div#liSwitcher-viewport";  
            this.ITEMS = $(this.VIEWPORT).children("ul").children("li");  
           this.INTERVAL = 5000;  
           this.index = 0;  
           var Scope = this;  
           this.timer = setInterval(function() { Scope.nextImage(); }, this.INTERVAL);  
           this.jsActive(this.CONTROLS, this.ITEMS);  
           this.eventHandlers(this.PREVIOUS, this.NEXT);  
       },  
         
       jsActive: function(CONTROLS, ITEMS) {  
           $(CONTROLS).show();  
           $(ITEMS).not(":first").hide();  
       },  
         
       fadeIn: function(index) {  
           this.ITEMS.eq(index).fadeIn();  
       },  
         
       hide: function(index) {  
           this.ITEMS.eq(index).hide();  
       },      
         
       nextImage: function() {  
           this.hide(this.index);  
           this.index++;  
           if(this.index >= this.ITEMS.length) {  
               this.index = 0;  
           }  
           this.fadeIn(this.index);  
       },  
         
       previousImage: function() {  
           this.hide(this.index);  
           this.index--;  
           if(this.index <= -1) {  
               this.index = this.ITEMS.length - 1;  
           }  
           this.fadeIn(this.index);  
         
       },  
         
      eventHandlers: function(PREVIOUS, NEXT) {  
           var Scope = this;  
           $(PREVIOUS).bind("click",function() {  
               Scope.previousImage();  
               clearInterval(Scope.timer);  
               return false;  
           });  
           $(NEXT).bind("click",function() {  
               Scope.nextImage();  
               clearInterval(Scope.timer);  
               return false;  
           });  
       }  
     
   };  
     
     
   var liSwitcher = new LiSwitcher();  
   $(function() {  
       liSwitcher.initialize();  
   });  
