var kdl = {
    
    idx:1,
    
    itemCount:0,
    
    showSpeed:5000,
    
    intervalKey:"",
    
    changeImage: function(){
        //If the image still animating, stop it and start the new one
        var main = $j("#MainImage");
        var newimg = $j(".tni").eq(kdl.idx);
        main.attr("g", newimg.attr("g")); 
        main.attr("alt", newimg.attr("alt")); 

        main.ImageStop(true,true);
        main.ImageSwitch({Type: "ScrollIn", Direction: "LeftRight", NewImage: newimg.attr("src").replace("_thumb","")});
        

        //Mark which thumbnail is displaying
        var nails = $j(".tni");
        nails.css("opacity","0.5");
        nails.eq(kdl.idx).css("opacity","1");
        
        //Set the next image will be display
        kdl.idx++;
        if(kdl.idx > kdl.itemCount){
            kdl.idx = 0;
        }
        //Start preload the next image
        $j.ImagePreload(newimg.attr("src").replace("_thumb",""));
    },

    start: function(){
        //When a thumbnail's clicked
        var nails = $j(".tni");
        
        nails.click(function(){
            kdl.idx = $j(".tni").index(this);
            kdl.changeImage();
            kdl.stop();
            $j(this).unbind("mouseout");
        });
        
        nails.unbind("mouseover");
        nails.mouseover(function(el){
            if(kdl.idx - 1 != $j(".tni").index(this))
                $j(this).css("opacity","1");
        });
        
        nails.unbind("mouseout");
        nails.mouseout(function(el){
            if(kdl.idx - 1 != $j(".tni").index(this))
                $j(this).css("opacity","0.5");
        });
    
        kdl.intervalKey = setInterval(kdl.changeImage, kdl.showSpeed);
        var ic = $j("#ImageControl");
        ic.unbind("click");
        ic.bind("click",kdl.stop);
        ic.attr("src", "/images/stop24.png");
    },

    stop: function(){
        clearInterval(kdl.intervalKey);
        var ic = $j("#ImageControl");
        ic.unbind("click");
        ic.bind("click",kdl.start);
        ic.attr("src", "/images/play24.png");
    },

    load: function(){
        var baseUrl = "galleries/1.xml?callback=?";
        $j.ajax({
            type: "GET",
            data: "",
            url: baseUrl,
            dataType: "xml",
            cache: true,
            success: function(xml)
            {
                var d = $j("#ThumbnailDiv");
                var m = $j("#DisplayDiv");
                var c = $j("#ImageControl");
                c.show();
                
                var pics = $j(xml).find("picture");
                kdl.itemCount = pics.length - 1;
                var randN = Math.floor(Math.random() * kdl.itemCount);
                
                pics.each(function(index){
                    var opac = "";
                    var turl = $j("url", this).text();
                    var tt = $j("title", this).text();
                    
                    if(index == randN)
                    {
                        var tsrc = $j("image", this).text();
                        m.append("<img alt='"+ tt +"' g='"+ turl +"' src='"+ tsrc +"' id='MainImage'/>");
                        opac = "opacity:1;filter:alpha(opacity:100);";
                    }
                    
                    var tsrc = $j("thumbnail", this).text();
                    d.append("<img alt='"+ tt +"' g='"+ turl +"' src='"+ tsrc +"' class='tni' style='" + opac + "'/>");
                    
                    
                });
                
                $j("#MainImage").click(function(){
                    var url = $j(this).attr("g");
                    
                    if(!url.indexOf("http://www.kdl.org"))
                        location.href = url
                    else
                        window.open(url);
                });
                
                kdl.idx = randN + 1;
                kdl.start();
            },
            error: function(XMLHttpRequest, textStatus, errorThrown)
            {
                var d = $j("#ThumbnailDiv");
                d.append("<span>Error while loading slide show.</span>");
            }
         });

    },
    
    init: function(){
        kdl.load();
        
        //special call for popular pages select box
        $j("#pop_pages_go").click(function(){
            var p = $j("#pop_page_links")
            var el = p.get(0);
            var ut = el.options[el.selectedIndex].getAttribute("ut");
            if(ut)
            {
               urchinTracker(ut);
            }
            location.href = p.val();
        
        });
        
        $j("#pop_page_links").bind("change", function(){
           $j("#pop_pages_go").click();
        });
    }
};