jQuery(document).ready(function () {

    var $slider_type = 'fading';
    var $slider_speed = 4000;
    var $slider_disable = 'false';

    if ($slider_type == 'fading') { $slider_img_class = "div[class^='single_fading_slide']"; $loadingID = '.fading_slides'; }
    if ($slider_type == 'tabbed') { $slider_img_class = "div[class^='single_tabbed_slide']"; $loadingID = '#tabbed_slides'; }

    if ($slider_disable == 'false') { $disable_slider = false; }
    if ($slider_disable == 'true') { $disable_slider = true; }


    /**
    * Slider Image Preloader
    * 
    */
    jQuery(function () {

        // grab the images
        var $slider_images = jQuery($slider_img_class + ' span img');

        // image length
        var $max_slides = $slider_images.length;

        // remove them from DOM to prevent normal load
        jQuery('.rm_slider_img').remove();

        // start loading
        if ($max_slides > 0) {
            LoadSliderImage(0, $max_slides);
        }

        // loading function handler
        function LoadSliderImage(index, $max_slides) {

            if (index < $max_slides) {

                // add list to div
                jQuery('<span id="slider_img' + (index + 1) + '"></span>').each(function () {
                    jQuery(this).appendTo(jQuery($loadingID + ' .load_slider_img').eq(index));
                });

                // new image object
                var $img = new Image();

                // current image
                var $curr = jQuery("#slider_img" + (index + 1));

                // load current image
                jQuery($img).load(function () {

                    // hide it first + .hide() failed in safari
                    jQuery(this).css('display', 'none');

                    //add alt attr
                    jQuery(this).attr({ alt: "" });

                    // remove loading class from div and insert the image into it
                    jQuery($curr).append(this);

                    // fade it in
                    jQuery(this).fadeIn(250, function () {

                        if (index == ($max_slides - 1)) {
                            // remove loading div after all images loaded then start slider
                            jQuery('#loading_slider').remove();

                            if ($slider_type == 'fading') { fadingStart(); }

                            if ($slider_type == 'tabbed') {
                                jQuery(".single_tabbed_slide").removeClass("noscript");
                                jQuery("#thumbs").removeClass("noscript");
                                tabbedStart();
                            }


                        } else {
                            // we are loading next item
                            LoadSliderImage(index + 1, $max_slides);
                        }
                    });

                }).error(function () {
                    // if loading error remove div
                    jQuery($curr).remove();
                    // try to load next item
                    LoadSliderImage(index + 1, $max_slides);
                }).attr('src', jQuery($slider_images[index]).attr('src')).attr('class', jQuery($slider_images[index]).attr('class'));
            }
        }
    });

    /**
    * jQuery Tools Slideshow
    * 
    */
    function fadingStart() {

        jQuery(".slidetabs").tabs(".fading_slides > div.single_fading_slide", {

            // enable "cross-fading" effect
            effect: 'fade',
            fadeOutSpeed: "slow",

            // start from the beginning after the last tab
            rotate: true,

            onBeforeClick: function (event, index) {
                var CurrentTab = this.getCurrentPane();
                CurrentTab.next().find('.slider_content').css('display', 'none');
                CurrentTab.find('.slider_content').css('display', 'none');
            },

            onClick: function (event, index) {
                var CurrentTab = this.getCurrentPane();
                CurrentTab.find('.slider_content').css('display', 'block');
            }


            // use the slideshow plugin. It accepts its own configuration
        }).slideshow({ clickable: false, autoplay: $disable_slider, interval: $slider_speed });

        jQuery('.fading_slides').css("display", "block");
    }

    /**
    * jQuery Tools Tabbed Slider
    * 
    */
    function tabbedStart() {

        // initialize scrollable and return the programming API
        jQuery("#webtreats_tabbed_slider").scrollable({

            items: '#tabbed_slides',
            size: 1,
            clickable: false,
            circular: true

            // use the navigator plugin
        }).autoscroll({ autoplay: $disable_slider, interval: $slider_speed }).navigator({ api: true });
    }

});
