﻿(function ($) {

    //Add in Supersized elements
    $(document).ready(function () {
        $('body').prepend('<div id="backgroundImg"></div>');
    });

    $.backgroundSet = function (options) {

        var settings = {
            slideshow: 1,      //show on/off
            fadeToColor: 1,      //Fade to a color on/off
            fadeColor: '#fff',   //Color to fade to
            slideSpeed: 10000,   //speed on slides
            transitSpeed: 1000,   //the time the transit takes
            slideType: 1,      //type of slide show 1 = fade in/out
            defaultStartImg: 0      //0 dersom start bildet er random, ellers onsket startbilde
        }; //end settings

        var omraade = $('#backgroundImg');
        var animering = false;
        var firstrun = true;

        var counter = 0;
        //sett opp default settings og settings fra filen
        if (options) {
            var options = $.extend(settings, options); //Pull from both defaults and supplied options
        } else {
            var options = $.extend(settings); 		//Only pull from default settings		
        }

        //Determine starting slide (random or defined)
        if (options.start_slide) {
            var currentSlide = options.start_slide - 1; //Default to defined start slide
        } else {
            var currentSlide = Math.floor(Math.random() * options.slides.length); //Generate random slide number
        }

        //Shuffle slide order if needed		
        if (!options.defaultStartImg) {
            arr = options.slides;
            for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); //Fisher-Yates shuffle algorithm (jsfromhell.com/array/shuffle)
            options.slides = arr;
        }

        for (var i = 0; i < options.slides.length; i++) {
            if (i == 0) {
                $("<img/>").attr("src", options.slides[i].image).attr("id", "bgimg" + i).appendTo(omraade);
            } else {
                $("<img/>").attr("src", options.slides[i].image).attr("id", "bgimg" + i).attr("style", "display:none").appendTo(omraade);
            }
        }


        //$("#bgimg0").fadeIn(settings.transitSpeed, function () { });
        //$("#bgimg1").fadeOut("slow");

        //nextSlide();
        window.setInterval(changeSlide, options.slideSpeed);

        function changeSlide() {
            switch (options.slideType) {
                case 1: //fader
                    var t = fadeImageOut();
                    nextSlide();
                    fadeImageIn();
                    break;
            };
        }

        function nextSlide() {
            if (counter + 1 == options.slides.length) {
                counter = 0;
            } else {
                counter++;
            }

            /*
            //alert('CurrentSlide: ' + currentSlide);
            if (animering) return false;
            else animering = true;
            var slides = options.slides;
            switch (options.slideType) {
            case 1: //fader
            fadeImage();
            break;
            };
            selectNewSlide();
            animering = false;
            */
        }

        function fadeImageIn() {
            $('#bgimg' + counter).delay(settings.transitSpeed).fadeIn(settings.transitSpeed, function () { });
        }
        function fadeImageOut() {
            $('#bgimg' + counter).fadeOut(settings.transitSpeed, function () { });
        }

    };

})(jQuery);
