var SlideShow = {
    init : function() {
        // we assume there are at least three Case Studies
        SlideShow.injectSlide(Data.length - 1);
        SlideShow.injectSlide(0);
        SlideShow.injectSlide(1);
        
        SlideShow.setNumber("ctl_left", Data.length);
        SlideShow.setNumber("case_study_ctls", 1);
        SlideShow.setNumber("ctl_right", 2);
        
        SlideShow.setLogo(0);
        
        $("spinner").remove();
        $("carousel").effect("opacity").start(0,1);
        $("ctl_left").effect('left').start(-25,0);
        $("ctl_right").effect('right').start(-25,0).chain(function() {
            SlideShow.addSlideEvents();
            $("case_study_ctls").effect("opacity").start(0,1);
        });
    },
    addSlideEvents : function() {
        $("ctl_left").addEvent("click", function() {SlideShow.slideEvent("right");});
        $("ctl_right").addEvent("click", function() {SlideShow.slideEvent("left");});
        $("view_ctl").addEvent("click", CaseStudies.loadStudy);
    },
    injectSlide : function(i, dir) {
        var slide = new Element("img", {
            src : caseStudyPath + Data[i].img.lifestyle,
            id  : "slide_" + i
        });
        
        switch(dir) {
            case "left":
                var loaded = $$("#carousel img");
                
                slide.injectInside("carousel");
                loaded[0].effect("width", {duration: 500}).start(0).chain(function() {
                    loaded[0].remove();
                    SlideShow.addSlideEvents();
                });
                break;
            case "right":
                slide.setStyle("width", 0).injectTop("carousel");
                slide.effect("width", {duration: 500}).start(550).chain(function() {
                    $$("#carousel img").getLast().remove();
                    SlideShow.addSlideEvents();
                });
                break;
            default:
                slide.injectInside("carousel");
                break;
        }
    },
    setNumber : function(ctl, i) {
        var j, imgSrc, tail;
        
        if(ctl == "case_study_ctls") {
            tail = ".gif";
        } else {
            tail = "-off.gif";
        }
        
        if(i<=0) {
            j = Data.length;
        } else if(i>Data.length) {
            j = 1;
        } else {
            j = i;
        }
        
        if(j<10) {
            imgSrc = utilityPath + "numbers/0" + j + tail;
        }else{
            imgSrc = utilityPath + "numbers/" + j + tail;
        }
        
        $(ctl).getElement(".number").setProperty('src', imgSrc);
    },
    setLogo : function(i, dir) {
        switch(dir) {
            case "right":
                j = ++i;
                break;
            case "left":
                j = --i;
                break;
            default:
                j = i;
                break;
        }
        
        if(j>Data.length - 1){
            k = 0;
        }else if(j<0){
            k = Data.length - 1;
        }else{
            k = j;
        }
        
        $("logo").setProperty("src", caseStudyPath + Data[k].img.logo);
    },
    slideEvent : function(dir) {
        var loadMe, pos, lNumber, cNumber, rNumber, foo;
        var loaded = $$("#carousel img");
        var onRight = loaded[2].id.replace("slide_", "").toInt();
        var onCenter = loaded[1].id.replace("slide_", "").toInt();
        var onLeft = loaded[0].id.replace("slide_", "").toInt();
        
        switch(dir) {
            case "right":
                loadMe = onLeft > 0 ? (onLeft - 1) : (Data.length - 1);
                lNumber = onLeft;
                cNumber = ++onLeft;
                rNumber = ++onCenter;
                break;
            case "left":
                loadMe = onRight < (Data.length - 1) ? (++onRight) : 0;
                lNumber = ++onCenter;
                cNumber = ++onCenter;
                rNumber = (loadMe + 1);
                break;
        }
        
        SlideShow.setNumber("ctl_left", lNumber);
        SlideShow.setNumber("case_study_ctls", cNumber);
        SlideShow.setNumber("ctl_right", rNumber);
        
        $("slide_ctl_container").getElements("a").removeEvents("click");
        SlideShow.injectSlide(loadMe, dir);
        SlideShow.setLogo(loadMe, dir);
    }
};
