//try replicate the itunes slider

window.addEvent('domready', function()
{
        if(!$('course_browser'))
                return;
        
        $('course_browser').style.overflow = "hidden";
        
        var steps = $('course_browser').getScrollSize().x - $('course_browser').getSize().x;

        if(steps > 0)
        {
                $('slider_container').style.visibility = "visible";
                //work out link positions
                
                var addToNext = 0;
                var i = 0;
                var toAdd = [];
                $each($$('ul#groupCont li'), function(el)
                {
                        var span = el.getElement('span');
                        
                        toAdd[i] = {element: span.clone(), left: span.getPosition('slider').x + addToNext, width: span.getSize().x, contWidth: el.getSize().x};
                        toAdd[i].element.addClass('groupInit');
                        
                        /*toAdd[i].addClass('groupInit').setStyle('left', span.getPosition('slider').x + addToNext);
                        
                        if(span.getSize().x > el.getSize().x)
                                addToNext = addToNext + (span.getSize().x - el.getSize().x);*/
                        
                        //handle elements that are too small on left side
                        if(toAdd[i].width > toAdd[i].contWidth)
                                addToNext = addToNext + (toAdd[i].width - toAdd[i].contWidth);
                        
                        i++;

                });
                
                if($('groupCont'))
                        $('groupCont').destroy();
                
                var maxWidth = $('slider').getSize().x;
                
                //handle things too far over right side
                for(i = (toAdd.length - 1); i >= 0; i--)
                {
                        if((toAdd[i].left + toAdd[i].width) > maxWidth)
                        {
                                toAdd[i].left = maxWidth - toAdd[i].width;
                                maxWidth = maxWidth - toAdd[i].width;
                        }
                }
                
                for(i = 0; i < toAdd.length; i++)
                {
                        toAdd[i].element.inject('slider');
                        toAdd[i].element.setStyle('left', toAdd[i].left);
                        /*toAdd[i].element.addEvent('click', function(e)
                        {
                                new Event(e).stop();     
                        });*/
                }
                
        }
        else
                return;

        var scrollAmount = 250;

        var scroller = new Fx.Scroll('course_browser',
                                     {
                                      link: 'cancel',
                                      duration: '250'
                                     });

        var currentX = 0;

        var animateStep = 75;


        var cookieStep = ($('course_browser') && ($('course_browser').className != '')) ? parseInt(Cookie.read('slider_status_' + $('course_browser').className)) : 0;
        //alert(cookieStep);

        var courseSlider = new Slider('slider', 'knob',{
                steps: steps,
                onChange: function(step)
                {
                        if(((currentX < step) && ((currentX + animateStep) > step))
                           || ((currentX > step) && ((currentX - animateStep) < step)))
                                scroller.set(step,0);
                        else
                                scroller.start(step,0);
                        //scroller.set(step,0);
                        currentX = step;
                        
                        //try set a cookie of the step to maintain this between pages
                        if($('course_browser') && ($('course_browser').className != ''))
                        {
                                //Cookie.dispose('slider_status_' + $('course_browser').className);
                                Cookie.write('slider_status_' + $('course_browser').className, currentX, {path: '/'});
                        }
                }
        }).set(cookieStep);


        $(document.body).addEvent('mouseleave',function(){courseSlider.drag.stop()});

        //arrows
        
        $('leftarrow').addEvent('click', function()
        {
                courseSlider.set((courseSlider.step - scrollAmount) ? (courseSlider.step - scrollAmount) : 0);
        });
        

        $('rightarrow').addEvent('click', function()
        {
                courseSlider.set(((courseSlider.step + scrollAmount) > steps) ? steps : (courseSlider.step + scrollAmount));
        });
        
        
        return;

});
