

$(document).ready(function() {
    entityslidebox = new Entityslidebox();
});

function Entityslidebox() {
    this.createSlideshow();
    this.sliding = false;
}

Entityslidebox.prototype = {
    createSlideshow: function() {
        var reference = this;

        buttons = "<div class='entityslidebox_down ui-corner-left' style='display: none;'></div>"
                + "<div class='entityslidebox_up ui-corner-right' style='display: none;'></div>";

        jQuery('.entityslidebox').append(buttons)
        .bind("mouseenter", function() {
            jQuery(".entityslidebox_down").show();
            jQuery(".entityslidebox_up").show();
        })
        .bind("mouseleave", function() {
            jQuery(".entityslidebox_down").hide();
            jQuery(".entityslidebox_up").hide();
        })
        .find("div.content").cycle({
            fx:     'scrollLeft',
            timeout: 5000,
            pause: true,
            //random: true,
            next: "div.entityslidebox_up",
            prev: "div.entityslidebox_down"
        });

        /*
        jQuery('.entityslidebox div').first().css("display", "block");

       

        jQuery('.entityslidebox').append(buttons);

        jQuery('.entityslidebox_up').bind("click", function() {
            reference.stopInterval();
            div = jQuery('.entityslidebox div:visible');
            reference.showNext(div);
        });

        jQuery('.entityslidebox_down').bind("click", function() {
            reference.stopInterval();
            div = jQuery('.entityslidebox div:visible');
            reference.showPrevious(div);
        })

        jQuery('.entityslidebox div').bind("click", function() {
            reference.showNext(this);
        });

        reference.startInterval();
        */
    },

    startInterval: function() {
        var reference = this;
        jQuery('.entityslidebox').everyTime(5000, function() {
            div = jQuery('.entityslidebox div:visible');
            reference.showNext(div);
        });
    },

    stopInterval: function() {
        jQuery('.entityslidebox').stopTime();
    },

    showNext: function(div) {
        var reference = this;

        if(!this.sliding) {
            this.sliding = true;
            jQuery(div).slideUp(2000, function() {
                    reference.endSliding()
                }
            );

            nextdiv = jQuery(div).next("div").slideDown(2000, function() {
                    reference.endSliding()
                }
            );

            if(nextdiv.length == 0) {
                jQuery(".entityslidebox div").first().slideDown(2000, function() {
                        reference.endSliding()
                    }
                );
            }

        }
    },

    showPrevious: function(div) {
        var reference = this;

        if(!this.sliding) {
            this.sliding = true;
            jQuery(div).slideUp(2000, function() {
                    reference.endSliding()
                }
            );

            prevdiv = jQuery(div).prev("div").slideDown(2000, function() {
                    reference.endSliding()
                }
            );

            if(prevdiv.length == 0) {
                jQuery(".entityslidebox div").last().slideDown(2000, function() {
                        reference.endSliding()
                    }
                );
            }
        }
    },

    endSliding: function() {
        this.sliding = false;
    }
}
