﻿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();
});

//
var LiSwitcher2 = function() { }


LiSwitcher2.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-viewport2";
        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 liSwitcher2 = new LiSwitcher2();
$(function() {
    liSwitcher2.initialize();
});
