var g_fadeFlag = false;

var CaseStudies = {
    init : function() {
        $("case_studies").effects().start({
            "height"  : 348,
            "opacity" : 0
        });
        
        $("hide_ctl").setStyle("opacity", "0").addEvent("click", CaseStudies.fadeOut);
    },
    loadStudy : function() {
        var slides = $$("#carousel img");
        var loadMe = slides[1].id.replace("slide_", "");
        
        caseStudy = new Element("div", {
            "id"     : "case_study",
            "styles" : {"opacity" : 0}
        }).injectInside("case_studies");
        
        detailImages = new Element("div", {"id" : "detail_images"}).injectInside("case_study");
        
        for (var j=0; j<Data[loadMe].img.detail.length; j++) {
            var detailImg;
            var detailImgSrc = caseStudyPath + Data[loadMe].img.detail[j];
            
            detailImg = {
                "src" : detailImgSrc,
                "styles" : {"opacity" : 0}
            };
            
            new Element("img", detailImg).injectInside("detail_images");
        }
        
        new Element("div", {"id" : "case_study_content"}).injectInside("case_study");
        new Element("img", {"src" : caseStudyPath + Data[loadMe].img.header}).injectInside("case_study_content");
		
        new Element("p").setText(Data[loadMe].description).injectInside("case_study_content");
        // new Element("a", {
        //     "href"   : path + "pdf/" + Data[loadMe].pdf.file,
        //     "target" : "_new",
        //     "id"     : "download"
        // }).setHTML("download case study <span>(PDF" + Data[loadMe].pdf.filesize + ")</span>").injectInside("case_study");
        
        $("hide_ctl").setStyle("display", "block");
        
        CaseStudies.fadeIn();
        Rotators.buildCtls($("detail_images"));
    },
    fadeOut : function() {
        var myEffect = $("case_studies").effects({duration: 1000});
        
        Rotators.clearLoop($("detail_images"));
        $("detail_images").getElement("img").effect("opacity", {duration: 1000}).start(1,0);
        $("hide_ctl").effect("opacity", {duration: 1000}).start(1,0);
        
        $("case_study").effect("opacity", {duration: 1000}).start(1,0).chain(function() {
            $("case_study_ctls").effect("top", {duration: 1000}).start(270);
            $("detail_ctl").effect("opacity", {duration: 1000}).start(1,0);
            $("view_ctl").effect("opacity", {duration: 1000}).start(0,1);
            $("case_study").remove();
            
            myEffect.start({"height" : 348}).chain(function() {
                $("slide_container").effect("opacity", {duration: 1000}).start(0.125,1);
                $("bottom_container").effect("opacity", {duration: 1000}).start(0.125,1);
                myEffect.start({"opacity" : 0});
                SlideShow.addSlideEvents();
                $("slide_ctl_container").getElements("a").removeClass("not-active");
                $("detail_ctl").remove();
            });
        });
    },
    fadeIn : function() {
        var myEffect = $("case_studies").effects({duration: 1000});
        
        $("slide_ctl_container").getElements("a").removeEvents("click");
        $("slide_ctl_container").getElements("a").addClass("not-active");
        $("slide_container").effect("opacity", {duration: 1000}).start(1,0.125);
        $("bottom_container").effect("opacity", {duration: 1000}).start(1,0.125);
        
        myEffect.start({"opacity" : 1}).chain(function() {
            $("case_study_ctls").effect("top", {duration: 1000}).start(363);
            $("view_ctl").effect("opacity", {duration: 1000}).start(1,0);
            $("detail_ctl").effect("opacity", {duration: 1000}).start(0,1);
            myEffect.start({"height" : 508});
        }).chain(function() {
            $("case_study").effect("opacity", {duration: 1000}).start(0,1);
            $("detail_images").getElement("img").effect("opacity", {duration: 1000}).start(0,1);
            $("hide_ctl").effect("opacity", {duration: 1000}).start(0,1);
            Rotators.initLoop($("detail_images"));
        });
    }
};

/* Rotators
--------------------------------------------------------------------------- */
var Rotators = {
    fadeOut : function(el) {
        el.effect("opacity", {duration: 1000}).start(1,0);        
    },
    fadeIn : function(el) {
        g_fadeFlag = true;
        el.effect("opacity", {duration: 1000}).start(0,1).chain(
            function() {
                g_fadeFlag = false;
            }
        );
    },
    buildCtls : function(div) {
        var items = div.getElements("img");
        var count = items.length;
        
        new Element("ul", {
            "id"     : "detail_ctl",
            "styles" : {"opacity" : 0}
        }).injectInside("case_study_ctls");
        
        items.each(function(li, i) {
            var li = new Element("li").injectInside("detail_ctl");
            li.addEvent("click", function(){
                if(this.hasClass("on")) return;
                Rotators.clearLoop(div);
                Rotators.rotate(div, i);
            });
            
            if(i == 0) {
                li.addClass("on").setStyle("background-image", "url(" + utilityPath + "case-study-ctl-on.gif)");
            } else {
                li.setStyle("background-image", "url(" + utilityPath + "case-study-ctl.gif)");
            }
        });
    },
    initLoop : function(div) {        
        div.periodical = Rotators.loop.periodical(5000, div);
    },
    loop : function() {        
        var j;
        var div = this;
        var lis = div.getElements("img");
        
        lis.each(function(li, i) {            
            if(li.getStyle("opacity") == "0") return;
            j = [++i == lis.length ? 0 : i];
            if(j == 0) Rotators.clearLoop(div);
        });
        
        Rotators.rotate(div, j);
    },
    clearLoop : function(div) {
        $clear(div.periodical);
    },
    ctlSelect : function(div, i) {
        var ctls = $$("#detail_ctl li");
        
        ctls.each(function(ctl){
            ctl.removeClass("on").setStyle("background-image", "url(" + utilityPath + "case-study-ctl.gif)");
        });
        ctls[i].addClass("on").setStyle("background-image", "url(" + utilityPath + "case-study-ctl-on.gif)");
    },
    rotate : function(div, i) {
        var hideMe;
        var items = div.getElements("img");
        
        items.each(function(li) {
            if(li.getStyle("opacity") == "0") return;
            hideMe = li;
        });
        
        if (!g_fadeFlag)
        {                        
            Rotators.fadeOut(hideMe); 
            Rotators.fadeIn(items[i]);
            Rotators.ctlSelect(div, i);
         }
    }
};
