﻿var scrollerGalleryRun = null;

function GetScrollerDelay(speedVal) {
    if(speedVal != null) {
        toReturn = speedVal * 1000;
        if(toReturn != null && toReturn != NaN)
        {
            return toReturn;
        }
    }

    return 5000;
}

function InitGallery() {

    //You have to specify width and height in #slider CSS properties
    //After that, the following script will set the width and height accordingly
    jQ('#mask-gallery, #gallery li').width(jQ('#slider').width());
    jQ('#gallery').width(jQ('#slider').width() * jQ('#gallery li').length);
    jQ('#mask-gallery, #gallery li, #mask-excerpt, #excerpt li').height(jQ('#slider').height());

    //Assign a timer, so it will run periodically
    scrollerGalleryRun = setInterval('newsscoller(0)', GetScrollerDelay(jQ('#slider #gallery li.selected input.delay').val()));

    jQ('#gallery li:first, #excerpt li:first').addClass('selected');

    //Pause the slidershow with clearInterval
    jQ('#btn-pause').click(function() {
        clearInterval(scrollerGalleryRun);
        return false;
    });

    //Continue the slideshow with setInterval
    jQ('#btn-play').click(function() {
    scrollerGalleryRun = setInterval('newsscoller(0)', GetScrollerDelay(jQ('#slider #gallery  li.selected input.delay').val()));
        return false;
    });

    //Next Slide by calling the function
    jQ('#btn-next').click(function() {
        newsscoller(0);
        return false;
    });

    //Previous slide by passing prev=1
    jQ('#btn-prev').click(function() {
        newsscoller(1);
        return false;
    });

    //Mouse over, pause it, on mouse out, resume the slider show
    jQ('#slider').hover(

		function() {
            clearInterval(scrollerGalleryRun);
		},
		function() {
		scrollerGalleryRun = setInterval('newsscoller(0)', GetScrollerDelay(jQ('#slider #gallery  li.selected input.delay').val()));
		}
	);
}

var IsNewsScrollerFirst = true;


function newsscoller(prev) {

    clearInterval(scrollerGalleryRun);
    //Get the current selected item (with selected class), if none was found, get the first item
    var current_image = jQ('#gallery li.selected').length ? jQ('#gallery li.selected') : jQ('#gallery li:first');
    var current_excerpt = jQ('#excerpt li.selected').length ? jQ('#excerpt li.selected') : jQ('#excerpt li:first');

    //if prev is set to 1 (previous item)
    if (prev) {

        //Get previous sibling
        var next_image = (current_image.prev().length) ? current_image.prev() : jQ('#gallery li:last');
        var next_excerpt = (current_excerpt.prev().length) ? current_excerpt.prev() : jQ('#excerpt li:last');

        //if prev is set to 0 (next item)
    } else {

        //Get next sibling
        var next_image = (current_image.next().length) ? current_image.next() : jQ('#gallery li:first');
        var next_excerpt = (current_excerpt.next().length) ? current_excerpt.next() : jQ('#excerpt li:first');
    }


    //clear the selected class
    jQ('#excerpt li, #gallery li').removeClass('selected');

    //reassign the selected class to current items
    next_image.addClass('selected');
    next_excerpt.addClass('selected');

    //Scroll the items
    jQ('#mask-gallery').scrollTo(next_image, 800);
    jQ('#mask-excerpt').scrollTo(next_excerpt, 800);


    

    if (IsNewsScrollerFirst) {
        scrollerGalleryRun = setInterval('newsscoller(0)', GetScrollerDelay(jQ('#slider #gallery  li.selected input.delay').val()));
    }
    else if (next_image.next().get(0) == undefined) {
        scrollerGalleryRun = setInterval('newsscoller(1)', GetScrollerDelay(jQ('#slider #gallery  li.selected input.delay').val()));
    }
    else if (next_image.prev().get(0) == undefined) {
        scrollerGalleryRun = setInterval('newsscoller(0)', GetScrollerDelay(jQ('#slider #gallery  li.selected input.delay').val()));
    }
    else if (!prev) {
        scrollerGalleryRun = setInterval('newsscoller(0)', GetScrollerDelay(jQ('#slider #gallery  li.selected input.delay').val()));
    }
    else if (prev) {
        scrollerGalleryRun = setInterval('newsscoller(1)', GetScrollerDelay(jQ('#slider #gallery  li.selected input.delay').val()));
    }
    

    IsNewsScrollerFirst = false;
}

