/*
* nwt.slider.js
*
* version 1.0
*
* author: Simon Fernley <webmaster@nwtcharity.org>
*
* description:
*
* for front-page only on NWT 2010 Theme
* set up functionality for slider from content
*
*/
jQuery(document)
    .ready(
        function($)
        {
            // $() will work as an alias for jQuery() inside of this function
            function create_slide_button(id, arrow, width, height)
            {
                var button = $('<div/>')
                    .attr('id', id)
                    .attr('title', 'More')
                    .attr('class', 'slide-button')
                    .html(arrow)
                    .css('width', width)
                    .css('height', height)
                    .css('line-height', height+'px')
                    .attr('unselectable', 'on')
                    .bind
                        (
                            'selectstart.ui',
                            function() 
                            {
                                return false;
                            }
                        );
                return button;
            }
    
            $('div.slider')
                .delegate
                (
                    'div#slide-right-button',
                    'click',
                    function()
                    {
                        var slider_tray = $('div.slider-tray');
                        if(slider_tray.queue("fx").length > 0)
                        {
                            return false;
                        }
                        var slider = $('div.slider');
                        var current = parseInt(slider_tray.css('left'), 10);
                        var slide_width = $('a.slider-slide:eq(1)').outerWidth(true);
                        var move_to = current - slide_width;
                        if(move_to + parseInt(slider_tray.width(), 10) >= slider.width()-slide_width)
                        {
                            slider_tray.animate({'left': move_to},500, 'swing');
                        }
                    }
                )
                .delegate
                (
                    'div#slide-left-button',
                    'click',
                    function()
                    {
                        var slider_tray = $('div.slider-tray');
                        if(slider_tray.queue("fx").length > 0)
                        {
                            return false;
                        }
                        var current = parseInt(slider_tray.css('left'), 10);
                        var slide_width = $('a.slider-slide:eq(1)').outerWidth(true);
                        var move_to = current + slide_width;
                        if(move_to < slide_width)
                        {
                            slider_tray.animate({'left': move_to},500, 'swing');
                        }
                    }
                )
                .delegate
                (
                    'div#slide-left-button, div#slide-right-button',
                    'hover',
                    function(event)
                    {
                        if(event.type=='mouseover')
                        {
                            $(this).css('color', '#fff');
                        } else
                        {
                            $(this).css('color', '#aaa');
                        }
                    }
                )
            
            //get slider elements
            var slider = $('div.slider');
            var slider_tray = $('div.slider-tray');
            var slider_slide = $('a.slider-slide:first');
            
            var num_slides = $('a.slider-slide').size();
            
            var slider_width = slider.outerWidth(true);

            var slide_width = slider_slide.outerWidth(true);
            var slide_height = slider_slide.outerHeight(true);
            var slider_tray_width = slide_width * num_slides;

            slider_tray.width(slider_tray_width);

            slider.css('overflow', 'hidden');
            slider.height(slide_height);
            
            //centre tray
            var slider_tray_start = parseInt(slider_width - slider_tray_width, 10) / 2;
            slider_tray.css('left', slider_tray_start-3);
            
            //slide buttons
            var slide_right = create_slide_button('slide-right-button', '}', '115px' , slider.innerHeight());
            slide_right
                .css('right', 0)
                .css('-moz-box-shadow', '0 3px 8px #000')
                .appendTo(slider);
            
            var slide_left = create_slide_button('slide-left-button', '{', '115px' , slider.innerHeight());
            slide_left
                .css('left', 0)
                .css('-moz-box-shadow', '0 -3px 8px #000')
                .prependTo(slider);

        }
    );

