﻿/* Script for the Company Bio Slider on the About the Show page */

var companySlider = Class.create({
    initialize: function() {
        this.div_sliderWrap = $$("div.company_bios_slider")[0];
        
        if (this.div_sliderWrap) {
			this.div_slider = this.div_sliderWrap.down("div ul");
			this.a_slideLeft = this.div_sliderWrap.down("a#slide_left");
			this.a_slideRight = this.div_sliderWrap.down("a#slide_right");
			this.numBioLinks = this.div_slider.childElements().length;
			this.curPos = 0;
			this.animating = false;
	        
			this.div_sliderWrap.addClassName("dynamic");
	        
			this.disableEnableArrowBtns();
	        
			this.a_slideLeft.observe("click", this.slideLeft.bindAsEventListener(this));
			this.a_slideRight.observe("click", this.slideRight.bindAsEventListener(this));
        }
    },
    
    slideLeft: function(event) {
        Event.stop(event);
        if (this.curPos != 0 && !this.animating) {
            new Effect.Move(this.div_slider, {
                x: 443,
                y: 0,
                mode: 'relative',
                duration: 0.75,
                beforeStart: function(fx) {
                    this.animating = true;
                }.bind(this),
                afterFinish:  function(fx) {
                    this.animating = false;
                }.bind(this)
            });
            this.curPos -= 3;
        }
        this.disableEnableArrowBtns();
    },
    
    slideRight: function(event) {
        Event.stop(event);
        if (this.numBioLinks - this.curPos > 3 && !this.animating) {
            new Effect.Move(this.div_slider, {
                x: -443,
                y: 0,
                mode: 'relative',
                duration: 0.75,
                beforeStart: function(fx) {
                    this.animating = true;
                }.bind(this),
                afterFinish:  function(fx) {
                    this.animating = false;
                }.bind(this)
            });
            this.curPos += 3;
        }
        this.disableEnableArrowBtns();
    },
    
    disableEnableArrowBtns: function() {
        this.a_slideLeft.removeClassName("disabled");
        this.a_slideRight.removeClassName("disabled");
        
        if (this.curPos == 0) {
            this.a_slideLeft.addClassName("disabled");
        } else if (this.numBioLinks - this.curPos <= 3) {
            this.a_slideRight.addClassName("disabled");
        }
    }
});

document.observe("dom:loaded", function() {
    slider = new companySlider();
});