/*
	Supersized - Fullscreen Slideshow jQuery Plugin
	Version 3.1.3
	www.buildinternet.com/project/supersized
	
	By Sam Dunn / One Mighty Roar (www.onemightyroar.com)
	Released under MIT License / GPL License
*/

(function (a) {
    a(document).ready(function () {
        a("body").prepend('<!-- <div id="supersized-loader"></div> --->').prepend('<div id="supersized"></div>')
    });
    a.supersized = function (t) {
        var c = {
            slideshow: 1,
            autoplay: 1,
            start_slide: 1,
            random: 0,
            slide_interval: 5000,
            transition: 1,
            transition_speed: 750,
            new_window: 1,
            pause_hover: 0,
            keyboard_nav: 1,
            performance: 1,
            image_protect: 1,
            image_path: "img/",
            min_width: 0,
            min_height: 0,
            vertical_center: 1,
            horizontal_center: 1,
            fit_portrait: 0,
            fit_landscape: 0,
            navigation: 1,
            thumbnail_navigation: 0,
            slide_counter: 1,
            slide_captions: 1
        };
        var k = a("#supersized");
        var d = "#pauseplay";
        if (t) {
            var t = a.extend(c, t)
        } else {
            var t = a.extend(c)
        }
        var b = false;
        var n = false;
        var m = t.image_path;
        if (t.start_slide) {
            var l = t.start_slide - 1
        } else {
            var l = Math.floor(Math.random() * t.slides.length)
        }
        var s = t.new_window ? ' target="_blank"' : "";
        if (t.performance == 3) {
            k.addClass("speed")
        } else {
            if ((t.performance == 1) || (t.performance == 2)) {
                k.addClass("quality")
            }
        }
        if (t.random) {
            arr = t.slides;
            for (var f, q, h = arr.length; h; f = parseInt(Math.random() * h), q = arr[--h], arr[h] = arr[f], arr[f] = q) {}
            t.slides = arr
        }
        if (t.slides.length > 1) {
            l - 1 < 0 ? loadPrev = t.slides.length - 1 : loadPrev = l - 1;
            var e = (t.slides[loadPrev].url) ? "href='" + t.slides[loadPrev].url + "'" : "";
            a("<img/>").attr("src", t.slides[loadPrev].image).appendTo(k).wrap("<a " + e + s + "></a>")
        }
        e = (t.slides[l].url) ? "href='" + t.slides[l].url + "'" : "";
        a("<img/>").attr("src", t.slides[l].image).appendTo(k).wrap('<a class="activeslide" ' + e + s + "></a>");
        if (t.slides.length > 1) {
            l == t.slides.length - 1 ? loadNext = 0 : loadNext = l + 1;
            e = (t.slides[loadNext].url) ? "href='" + t.slides[loadNext].url + "'" : "";
            a("<img/>").attr("src", t.slides[loadNext].image).appendTo(k).wrap("<a " + e + s + "></a>")
        }
        k.hide();
        a("#controls-wrapper").hide();
        a(document).ready(function () {
            r()
        });
        a(window).load(function () {
            a("#supersized-loader").hide();
            k.fadeIn("fast");
            a("#controls-wrapper").show();
            if (t.thumbnail_navigation) {
                l - 1 < 0 ? prevThumb = t.slides.length - 1 : prevThumb = l - 1;
                a("#prevthumb").show().html(a("<img/>").attr("src", t.slides[prevThumb].image));
                l == t.slides.length - 1 ? nextThumb = 0 : nextThumb = l + 1;
                a("#nextthumb").show().html(a("<img/>").attr("src", t.slides[nextThumb].image))
            }
            r();
            if (t.slide_captions) {
                a("#slidecaption").html(t.slides[l].title)
            }
            if (!(t.navigation)) {
                a("#navigation").hide()
            }
            if (t.slideshow && t.slides.length > 1) {
                if (t.slide_counter) {
                    a("#slidecounter .slidenumber").html(l + 1);
                    a("#slidecounter .totalslides").html(t.slides.length)
                }
                slideshow_interval = setInterval(o, t.slide_interval);
                if (!(t.autoplay)) {
                    clearInterval(slideshow_interval);
                    n = true;
                    if (a(d).attr("src")) {
                        a(d).attr("src", m + "play_dull.png")
                    }
                }
                if (t.thumbnail_navigation) {
                    a("#nextthumb").click(function () {
                        if (b) {
                            return false
                        }
                        clearInterval(slideshow_interval);
                        o(k, t);
                        if (!(n)) {
                            slideshow_interval = setInterval(o, t.slide_interval)
                        }
                        return false
                    });
                    a("#prevthumb").click(function () {
                        if (b) {
                            return false
                        }
                        clearInterval(slideshow_interval);
                        g(k, t);
                        if (!(n)) {
                            slideshow_interval = setInterval(o, t.slide_interval)
                        }
                        return false
                    })
                }
                if (t.navigation) {
                    a("#navigation a").click(function () {
                        a(this).blur();
                        return false
                    });
                    a("#nextslide").click(function () {
                        if (b) {
                            return false
                        }
                        clearInterval(slideshow_interval);
                        o();
                        if (!(n)) {
                            slideshow_interval = setInterval(o, t.slide_interval)
                        }
                        return false
                    });
                    if (a("#nextslide").attr("src")) {
                        a("#nextslide").mousedown(function () {
                            a(this).attr("src", m + "forward.png")
                        });
                        a("#nextslide").mouseup(function () {
                            a(this).attr("src", m + "forward_dull.png")
                        });
                        a("#nextslide").mouseout(function () {
                            a(this).attr("src", m + "forward_dull.png")
                        })
                    }
                    a("#prevslide").click(function () {
                        if (b) {
                            return false
                        }
                        clearInterval(slideshow_interval);
                        g();
                        if (!(n)) {
                            slideshow_interval = setInterval(o, t.slide_interval)
                        }
                        return false
                    });
                    if (a("#prevslide").attr("src")) {
                        a("#prevslide").mousedown(function () {
                            a(this).attr("src", m + "back.png")
                        });
                        a("#prevslide").mouseup(function () {
                            a(this).attr("src", m + "back_dull.png")
                        });
                        a("#prevslide").mouseout(function () {
                            a(this).attr("src", m + "back_dull.png")
                        })
                    }
                    a(d).click(function () {
                        if (b) {
                            return false
                        }
                        if (n) {
                            if (a(d).attr("src")) {
                                a(d).attr("src", m + "pause_dull.png")
                            }
                            n = false;
                            slideshow_interval = setInterval(o, t.slide_interval)
                        } else {
                            if (a(d).attr("src")) {
                                a(d).attr("src", m + "play_dull.png")
                            }
                            clearInterval(slideshow_interval);
                            n = true
                        }
                        return false
                    })
                }
            }
        });
        if (t.keyboard_nav) {
            a(document.documentElement).keydown(function (i) {
                if ((i.keyCode == 37) || (i.keyCode == 40)) {
                    if (a("#prevslide").attr("src")) {
                        a("#prevslide").attr("src", m + "back.png")
                    }
                } else {
                    if ((i.keyCode == 39) || (i.keyCode == 38)) {
                        if (a("#nextslide").attr("src")) {
                            a("#nextslide").attr("src", m + "forward.png")
                        }
                    }
                }
            });
            a(document.documentElement).keyup(function (i) {
                clearInterval(slideshow_interval);
                if ((i.keyCode == 37) || (i.keyCode == 40)) {
                    if (a("#prevslide").attr("src")) {
                        a("#prevslide").attr("src", m + "back_dull.png")
                    }
                    if (b) {
                        return false
                    }
                    clearInterval(slideshow_interval);
                    g();
                    if (!(n)) {
                        slideshow_interval = setInterval(o, t.slide_interval)
                    }
                    return false
                } else {
                    if ((i.keyCode == 39) || (i.keyCode == 38)) {
                        if (a("#nextslide").attr("src")) {
                            a("#nextslide").attr("src", m + "forward_dull.png")
                        }
                        if (b) {
                            return false
                        }
                        clearInterval(slideshow_interval);
                        o();
                        if (!(n)) {
                            slideshow_interval = setInterval(o, t.slide_interval)
                        }
                        return false
                    } else {
                        if (i.keyCode == 32) {
                            if (b) {
                                return false
                            }
                            if (n) {
                                if (a(d).attr("src")) {
                                    a(d).attr("src", m + "pause_dull.png")
                                }
                                n = false;
                                slideshow_interval = setInterval(o, t.slide_interval)
                            } else {
                                if (a(d).attr("src")) {
                                    a(d).attr("src", m + "play_dull.png")
                                }
                                n = true
                            }
                            return false
                        }
                    }
                }
            })
        }
        if (t.slideshow && t.pause_hover) {
            a(k).hover(function () {
                if (b) {
                    return false
                }
                if (!(n) && t.navigation) {
                    if (a(d).attr("src")) {
                        a(d).attr("src", m + "pause.png")
                    }
                    clearInterval(slideshow_interval)
                }
            }, function () {
                if (!(n) && t.navigation) {
                    if (a(d).attr("src")) {
                        a(d).attr("src", m + "pause_dull.png")
                    }
                    slideshow_interval = setInterval(o, t.slide_interval)
                }
            })
        }
        a(window).resize(function () {
            r()
        });

        function r() {
            return k.each(function () {
                var i = a("img", k);
                a(i).each(function () {
                    var u = (a(this).height() / a(this).width()).toFixed(2);
                    thisSlide = a(this);
                    var j = a(window).width();
                    var w = a(window).height();
                    var x;
                    if ((w <= t.min_height) && (j <= t.min_width)) {
                        if ((w / j) > u) {
                            t.fit_landscape && u <= 1 ? v(true) : y(true)
                        } else {
                            t.fit_portrait && u > 1 ? y(true) : v(true)
                        }
                    } else {
                        if (j <= t.min_width) {
                            if ((w / j) > u) {
                                t.fit_landscape && u <= 1 ? v(true) : y()
                            } else {
                                t.fit_portrait && u > 1 ? y() : v(true)
                            }
                        } else {
                            if (w <= t.min_height) {
                                if ((w / j) > u) {
                                    t.fit_landscape && u <= 1 ? v() : y(true)
                                } else {
                                    t.fit_portrait && u > 1 ? y(true) : v()
                                }
                            } else {
                                if ((w / j) > u) {
                                    t.fit_landscape && u <= 1 ? v() : y()
                                } else {
                                    t.fit_portrait && u > 1 ? y() : v()
                                }
                            }
                        }
                    }
                    function v(z) {
                        if (z) {
                            if (thisSlide.width() < j || thisSlide.width() < t.min_width) {
                                if (thisSlide.width() * u >= t.min_height) {
                                    thisSlide.width(t.min_width);
                                    thisSlide.height(thisSlide.width() * u)
                                } else {
                                    y()
                                }
                            }
                        } else {
                            if (t.min_height >= w && !t.fit_landscape) {
                                if (j * u >= t.min_height || (j * u >= t.min_height && u <= 1)) {
                                    thisSlide.width(j);
                                    thisSlide.height(j * u)
                                } else {
                                    if (u > 1) {
                                        thisSlide.height(t.min_height);
                                        thisSlide.width(thisSlide.height() / u)
                                    } else {
                                        if (thisSlide.width() < j) {
                                            thisSlide.width(j);
                                            thisSlide.height(thisSlide.width() * u)
                                        }
                                    }
                                }
                            } else {
                                thisSlide.width(j);
                                thisSlide.height(j * u)
                            }
                        }
                    }
                    function y(z) {
                        if (z) {
                            if (thisSlide.height() < w) {
                                if (thisSlide.height() / u >= t.min_width) {
                                    thisSlide.height(t.min_height);
                                    thisSlide.width(thisSlide.height() / u)
                                } else {
                                    v(true)
                                }
                            }
                        } else {
                            if (t.min_width >= j) {
                                if (w / u >= t.min_width || u > 1) {
                                    thisSlide.height(w);
                                    thisSlide.width(w / u)
                                } else {

                                    if (u <= 1) {
                                        thisSlide.width(t.min_width);
                                        thisSlide.height(thisSlide.width() * u)
                                    }
                                }
                            } else {
                                thisSlide.height(w);
                                thisSlide.width(w / u)
                            }
                        }
                    }
                    if (t.horizontal_center) {
                        a(this).css("left", (j - a(this).width()) / 2)
                    }
                    if (t.vertical_center) {
                        a(this).css("top", (w - a(this).height()) / 2)
                    }
                });
                if (t.image_protect) {
                    a("img", k).bind("contextmenu", function () {
                        return false
                    });
                    a("img", k).bind("mousedown", function () {
                        return false
                    })
                }
                return false
            })
        }
        function o() {
            if (b) {
                return false
            } else {
                b = true
            }
            var u = t.slides;
            var j = k.find(".activeslide");
            j.removeClass("activeslide");
            if (j.length == 0) {
                j = k.find("a:last")
            }
            var i = j.next().length ? j.next() : k.find("a:first");
            var v = i.prev().length ? i.prev() : k.find("a:last");
            a(".prevslide").removeClass("prevslide");
            v.addClass("prevslide");
            l + 1 == u.length ? l = 0 : l++;
            if (t.performance == 1) {
                k.removeClass("quality").addClass("speed")
            }
            loadSlide = false;
            l == u.length - 1 ? loadSlide = 0 : loadSlide = l + 1;
            e = (t.slides[loadSlide].url) ? "href='" + t.slides[loadSlide].url + "'" : "";
            a("<img/>").attr("src", t.slides[loadSlide].image).appendTo(k).wrap("<a " + e + s + "></a>");
            if (t.thumbnail_navigation == 1) {
                l - 1 < 0 ? prevThumb = u.length - 1 : prevThumb = l - 1;
                a("#prevthumb").html(a("<img/>").attr("src", t.slides[prevThumb].image));
                nextThumb = loadSlide;
                a("#nextthumb").html(a("<img/>").attr("src", t.slides[nextThumb].image))
            }
            j.prev().remove();
            if (t.slide_counter) {
                a("#slidecounter .slidenumber").html(l + 1)
            }
            if (t.slide_captions) {
                (t.slides[l].title) ? a("#slidecaption").html(t.slides[l].title) : a("#slidecaption").html("")
            }
            i.hide().addClass("activeslide");
            switch (t.transition) {
            case 0:
                i.show();
                b = false;
                break;
            case 1:
                i.fadeTo(t.transition_speed, 1, function () {
                    p()
                });
                break;
            case 2:
                i.animate({
                    top: -a(window).height()
                }, 0).show().animate({
                    top: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 3:
                i.animate({
                    left: a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 4:
                i.animate({
                    top: a(window).height()
                }, 0).show().animate({
                    top: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 5:
                i.animate({
                    left: -a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 6:
                i.animate({
                    left: a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                j.animate({
                    left: -a(window).width()
                }, t.transition_speed);
                break;
            case 7:
                i.animate({
                    left: -a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                j.animate({
                    left: a(window).width()
                }, t.transition_speed);
                break
            }
        }
        function g() {
            if (b) {
                return false
            } else {
                b = true
            }
            var u = t.slides;
            var j = k.find(".activeslide");
            j.removeClass("activeslide");
            if (j.length == 0) {
                j = a(k).find("a:first")
            }
            var i = j.prev().length ? j.prev() : a(k).find("a:last");
            var v = i.next().length ? i.next() : a(k).find("a:first");
            a(".prevslide").removeClass("prevslide");
            v.addClass("prevslide");
            l == 0 ? l = u.length - 1 : l--;
            if (t.performance == 1) {
                k.removeClass("quality").addClass("speed")
            }
            loadSlide = false;
            l - 1 < 0 ? loadSlide = u.length - 1 : loadSlide = l - 1;
            e = (t.slides[loadSlide].url) ? "href='" + t.slides[loadSlide].url + "'" : "";
            a("<img/>").attr("src", t.slides[loadSlide].image).prependTo(k).wrap("<a " + e + s + "></a>");
            if (t.thumbnail_navigation == 1) {
                prevThumb = loadSlide;
                a("#prevthumb").html(a("<img/>").attr("src", t.slides[prevThumb].image));
                l == u.length - 1 ? nextThumb = 0 : nextThumb = l + 1;
                a("#nextthumb").html(a("<img/>").attr("src", t.slides[nextThumb].image))
            }
            j.next().remove();
            if (t.slide_counter) {
                a("#slidecounter .slidenumber").html(l + 1)
            }
            if (t.slide_captions) {
                (t.slides[l].title) ? a("#slidecaption").html(t.slides[l].title) : a("#slidecaption").html("")
            }
            i.hide().addClass("activeslide");
            switch (t.transition) {
            case 0:
                i.show();
                b = false;
                break;
            case 1:
                i.fadeTo(t.transition_speed, 1, function () {
                    p()
                });
                break;
            case 2:
                i.animate({
                    top: a(window).height()
                }, 0).show().animate({
                    top: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 3:
                i.animate({
                    left: -a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 4:
                i.animate({
                    top: -a(window).height()
                }, 0).show().animate({
                    top: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 5:
                i.animate({
                    left: a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                break;
            case 6:
                i.animate({
                    left: -a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                j.animate({
                    left: a(window).width()
                }, t.transition_speed);
                break;
            case 7:
                i.animate({
                    left: a(window).width()
                }, 0).show().animate({
                    left: 0
                }, t.transition_speed, function () {
                    p()
                });
                j.animate({
                    left: -a(window).width()
                }, t.transition_speed);
                break
            }
        }
        function p() {
            b = false;
            if (t.performance == 1) {
                k.removeClass("speed").addClass("quality")
            }
            r()
        }
    }
})(jQuery);
