﻿//Global Variables
var CurrentImage = 0;       //CurrentImage
var FadeSpeed = 500;       //Speed of the fade in/fade out
var DelaySpeed = 5000;      //Speed of the Delay
var Images;                 //Array of all the images
var AnimationTimeout;       //AnimationTimeOut
var MaxImagesLength;        //MaxImagesLength

//Ready Function
jQuery(document).ready(function()
{
    //Get all images
    Images = jQuery(".heroimage");

    //Return
    if (Images.length == 0)
    {
        return;
    }

    //Set user Fade and Delay Speed
    if (jQuery(".banners").attr("FadeSpeed") != undefined && jQuery(".banners").attr("FadeSpeed") != "")
    {
        FadeSpeed = jQuery(".banners").attr("FadeSpeed") * 1000;
    }
    if (jQuery(".banners").attr("DelaySpeed") != undefined && jQuery(".banners").attr("DelaySpeed") != "")
    {
        DelaySpeed = jQuery(".banners").attr("DelaySpeed") * 1000;
    }

    //Get total images
    MaxImagesLength = (Images.length - 1);

    //Set Current Image
    CurrentImage = MaxImagesLength;

    //Init First
    jQuery(Images[MaxImagesLength]).css("visibility", "visible");

    //Start FadeIn
    FadeIn(Images[CurrentImage]);

    //Set all images visible with a delays
    AnimationTimeout = setTimeout(function()
    {
        Images.each(function(index)
        {
            if (index != MaxImagesLength)
            {
                jQuery(Images[index]).css("visibility", "visible");
            }
        });
    }, 750);
});

//Fade in image
function FadeIn(image)
{
    //FadeIn
    jQuery(image).fadeTo(FadeSpeed, 1.0, function()
    {
        //FadeOut with delay(set timeout in var)
        AnimationTimeout = setTimeout(function()
        {
            FadeOut(image)
        }, DelaySpeed);
    });
}

//Fade out image
function FadeOut(image)
{
    //FadeOut
    jQuery(image).fadeTo(FadeSpeed, 0.0)

    //Higher the Counter
    CurrentImage--;

    if (CurrentImage == -1)
    {
        //Clear TimeOut
        clearTimeout(AnimationTimeout);

        //Reset Fader
        CurrentImage = MaxImagesLength;
    }

    //Get new image
    image = Images[CurrentImage];

    //Call FadeIn
    FadeIn(image);
}
