$(function() {
    $('.fancybox').fancybox({
        centerOnScroll: true,
        titlePosition: 'over',
        transitionIn: 'elastic',
        transitionOut: 'fade'
    });

    FW_JW_initSlideshow();
});

var FW_JW_animation = false, FW_JW_interval = null;

function FW_JW_initSlideshow() {
    $('.workpreview').slice(1).hide();
    $('.workpreviewdesc').slice(1).hide();

    $('.workpreviewdesc .prev').click(FW_JS_prev);
    $('.workpreviewdesc .next').click(FW_JS_next);

    FW_JW_setInterval();

    $('.workpreview, .workpreviewdesc').mouseenter(function () {
        FW_JW_clearInterval();
    }).mouseleave(function () {
        FW_JW_setInterval();
    });
}

function FW_JW_setInterval() {
    FW_JW_interval = window.setInterval(FW_JS_next, 6000);
}

function FW_JW_clearInterval() {
    window.clearInterval(FW_JW_interval);
    FW_JW_interval = null;
}

function FW_JS_next(e) {
    if ($.isFunction(e.preventDefault)) {
        e.preventDefault();
    }

    if (FW_JW_animation) {
        return false;
    }

    var curimg = $('.workpreview:visible');
    var curdesc = $('.workpreviewdesc:visible');

    FW_JW_animation = true;

    curimg.fadeOut(500, function() {
        var next = curimg.next();

        if (next.length == 0) {
            next = $('.workpreview').eq(0);
        }

        next.fadeIn(500, function() {
            FW_JW_animation = false;
        });
    });

    curdesc.fadeOut(500, function() {
        var next = curdesc.next();

        if (next.length == 0) {
            next = $('.workpreviewdesc').eq(0);
        }

        next.fadeIn(500, function() {
            FW_JW_animation = false;
        });
    });

    return true;
}

function FW_JS_prev(e) {
    if (e != undefined) {
        e.preventDefault();
    }

    if (FW_JW_animation) {
        return false;
    }

    var curimg = $('.workpreview:visible');
    var curdesc = $('.workpreviewdesc:visible');

    FW_JW_animation = true;

    curimg.fadeOut(500, function() {
        var prev = curimg.prev();

        if (prev.length == 0) {
            prev = $('.workpreview').eq($('.workpreview').length - 1);
        }

        prev.fadeIn(500, function() {
            FW_JW_animation = false;
        });
    });

    curdesc.fadeOut(500, function() {
        var prev = curdesc.prev();

        if (prev.length == 0) {
            prev = $('.workpreviewdesc').eq($('.workpreviewdesc').length - 1);
        }

        prev.fadeIn(500, function() {
            FW_JW_animation = false;
        });
    });

    return true;
}
