/*
* jQuery FlexSlider v1.8
* http://flex.madebymufffin.com
* Copyright 2011, Tyler Smith
*/
(function (a) {
    a.flexslider = function (c, b) {
        var d = c; d.init = function () {
            d.vars = a.extend({}, a.flexslider.defaults, b);
            d.data("flexslider", true);
            d.container = a(".slides", d);
            d.slides = a(".slides > li", d);
            d.count = d.slides.length;
            d.animating = false;
            d.currentSlide = d.vars.slideToStart;
            d.animatingTo = d.currentSlide;
            d.atEnd = (d.currentSlide == 0) ? true : false;
            d.eventType = ("ontouchstart" in document.documentElement) ? "touchstart" : "click"; d.cloneCount = 0;
            d.cloneOffset = 0; d.manualPause = false; d.vertical = (d.vars.slideDirection == "vertical");
            d.prop = (d.vertical) ? "top" : "marginLeft"; d.args = {};
            d.transitions = "webkitTransition" in document.body.style;
            if (d.transitions) { d.prop = "-webkit-transform" } if (d.vars.controlsContainer != "") {
                d.controlsContainer = a(d.vars.controlsContainer).eq(a(".slides").index(d.container));
                d.containerExists = d.controlsContainer.length > 0
            }
            if (d.vars.manualControls != "") {
                d.manualControls = a(d.vars.manualControls, ((d.containerExists) ? d.controlsContainer : d)); d.manualExists = d.manualControls.length > 0
            }
            if (d.vars.randomize) {
                d.slides.sort(function () { return (Math.round(Math.random()) - 0.5) }); d.container.empty().append(d.slides)
            }
            if (d.vars.animation.toLowerCase() == "slide") {
                if (d.transitions)
                { d.setTransition(0) } d.css({ overflow: "hidden" });
                if (d.vars.animationLoop) {
                    d.cloneCount = 2; d.cloneOffset = 1;
                    d.container.append(d.slides.filter(":first").clone().addClass("clone")).prepend(d.slides.filter(":last").clone().addClass("clone"))
                }
                d.newSlides = a(".slides > li", d);
                var m = (-1 * (d.currentSlide + d.cloneOffset));
                if (d.vertical) {
                    d.newSlides.css({ display: "block", width: "100%", "float": "left" });
                    d.container.height((d.count + d.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
                    setTimeout(function () {
                        d.css({ position: "relative" }).height(d.slides.filter(":first").height());
                        d.args[d.prop] = (d.transitions) ? "translate3d(0," + m * d.height() + "px,0)" : m * d.height() + "px"; d.container.css(d.args)
                    }, 100)
                }
                else {
                    d.args[d.prop] = (d.transitions) ? "translate3d(" + m * d.width() + "px,0,0)" : m * d.width() + "px";
                    d.container.width((d.count + d.cloneCount) * 200 + "%").css(d.args);
                    setTimeout(function () {
                        d.newSlides.width(d.width()).css({ "float": "left", display: "block" })
                    }, 100)
                }
            }
            else {
                d.transitions = false; d.slides.css({ width: "100%", "float": "left", marginRight: "-100%" }).eq(d.currentSlide).fadeIn(d.vars.animationDuration)
            } if (d.vars.controlNav) {
                if (d.manualExists) { d.controlNav = d.manualControls }
                else {
                    var e = a('<ol class="flex-control-nav"></ol>');
                    var s = 1; for (var t = 0; t < d.count; t++) { e.append("<li><a>" + s + "</a></li>"); s++ }
                    if (d.containerExists) {
                        a(d.controlsContainer).append(e); d.controlNav = a(".flex-control-nav li a", d.controlsContainer)
                    } else
                    { d.append(e); d.controlNav = a(".flex-control-nav li a", d) }
                }
                d.controlNav.eq(d.currentSlide).addClass("active"); d.controlNav.bind(d.eventType, function (i) {
                    i.preventDefault();
                    if (!a(this).hasClass("active")) {
                        (d.controlNav.index(a(this)) > d.currentSlide) ? d.direction = "next" : d.direction = "prev"; d.flexAnimate(d.controlNav.index(a(this)), d.vars.pauseOnAction)
                    }
                })
            }
            if (d.vars.directionNav) {
                var v = a('<ul class="flex-direction-nav"><li><a class="prev" href="#">' + d.vars.prevText + '</a></li><li><a class="next" href="#">' + d.vars.nextText + "</a></li></ul>");
                if (d.containerExists) { a(d.controlsContainer).append(v); d.directionNav = a(".flex-direction-nav li a", d.controlsContainer) }
                else { d.append(v); d.directionNav = a(".flex-direction-nav li a", d) }
                if (!d.vars.animationLoop) {
                    if (d.currentSlide == 0) { d.directionNav.filter(".prev").addClass("disabled") }
                    else {
                        if (d.currentSlide == d.count - 1) { d.directionNav.filter(".next").addClass("disabled") }
                    }
                } d.directionNav.bind(d.eventType, function (i) {
                    i.preventDefault();
                    var j = (a(this).hasClass("next")) ? d.getTarget("next") : d.getTarget("prev");
                    if (d.canAdvance(j)) { d.flexAnimate(j, d.vars.pauseOnAction) }
                })
            }
            if (d.vars.keyboardNav && a("ul.slides").length == 1) {
                function h(i) {
                    if (d.animating) { return } else {
                        if (i.keyCode != 39 && i.keyCode != 37) { return }
                        else {
                            if (i.keyCode == 39)
                            { var j = d.getTarget("next") }
                            else { if (i.keyCode == 37) { var j = d.getTarget("prev") } }
                            if (d.canAdvance(j)) { d.flexAnimate(j, d.vars.pauseOnAction) }
                        }
                    }
                } a(document).bind("keyup", h)
            }
            if (d.vars.mousewheel) {
                d.mousewheelEvent = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel"; d.bind(d.mousewheelEvent, function (y) {
                    y.preventDefault(); y = y ? y : window.event; var i = y.detail ? y.detail * -1 : y.wheelDelta / 40, j = (i < 0) ? d.getTarget("next") : d.getTarget("prev");
                    if (d.canAdvance(j)) { d.flexAnimate(j, d.vars.pauseOnAction) } 
                })
            } if (d.vars.slideshow) {
                if (d.vars.pauseOnHover && d.vars.slideshow) {
                    d.hover(function () { d.pause() }, function () {
                        if (!d.manualPause) { d.resume() }
                    })
                } d.animatedSlides = setInterval(d.animateSlides, d.vars.slideshowSpeed)
            }
            if (d.vars.pausePlay) {
                var q = a('<div class="flex-pauseplay"><span></span></div>');
                if (d.containerExists) { d.controlsContainer.append(q); d.pausePlay = a(".flex-pauseplay span", d.controlsContainer) }
                else { d.append(q); d.pausePlay = a(".flex-pauseplay span", d) } var n = (d.vars.slideshow) ? "pause" : "play"; d.pausePlay.addClass(n).text((n == "pause") ? d.vars.pauseText : d.vars.playText);
                d.pausePlay.bind(d.eventType, function (i) {
                    i.preventDefault();
                    if (a(this).hasClass("pause")) { d.pause(); d.manualPause = true }
                    else { d.resume(); d.manualPause = false }
                })
            }
            if ("ontouchstart" in document.documentElement) {
                var w, u, l, r, o, x, p = false; d.each(function () {
                    if ("ontouchstart" in document.documentElement) { this.addEventListener("touchstart", g, false) }
                }); function g(i) {
                    if (d.animating) { i.preventDefault() }
                    else {
                        if (i.touches.length == 1) {
                            d.pause(); r = (d.vertical) ? d.height() : d.width(); x = Number(new Date()); l = (d.vertical) ? (d.currentSlide + d.cloneOffset) * d.height() : (d.currentSlide + d.cloneOffset) * d.width(); w = (d.vertical) ? i.touches[0].pageY : i.touches[0].pageX; u = (d.vertical) ? i.touches[0].pageX : i.touches[0].pageY; d.setTransition(0);
                            this.addEventListener("touchmove", k, false);
                            this.addEventListener("touchend", f, false)
                        }
                    }
                } function k(i) {
                    o = (d.vertical) ? w - i.touches[0].pageY : w - i.touches[0].pageX; p = (d.vertical) ? (Math.abs(o) < Math.abs(i.touches[0].pageX - u)) : (Math.abs(o) < Math.abs(i.touches[0].pageY - u));
                    if (!p) {
                        i.preventDefault();
                        if (d.vars.animation == "slide" && d.transitions) {
                            if (!d.vars.animationLoop) { o = o / ((d.currentSlide == 0 && o < 0 || d.currentSlide == d.count - 1 && o > 0) ? (Math.abs(o) / r + 2) : 1) } d.args[d.prop] = (d.vertical) ? "translate3d(0," + (-l - o) + "px,0)" : "translate3d(" + (-l - o) + "px,0,0)"; d.container.css(d.args)
                        }
                    }
                } function f(j) {
                    d.animating = false;
                    if (d.animatingTo == d.currentSlide && !p && !(o == null)) {
                        var i = (o > 0) ? d.getTarget("next") : d.getTarget("prev"); if
                        (d.canAdvance(i) && Number(new Date()) - x < 550 && Math.abs(o) > 20 || Math.abs(o) > r / 2) { d.flexAnimate(i, d.vars.pauseOnAction) }
                        else { d.flexAnimate(d.currentSlide, d.vars.pauseOnAction) }
                    } this.removeEventListener("touchmove", k, false);
                    this.removeEventListener("touchend", f, false); w = null; u = null; o = null; l = null
                }
            } if (d.vars.animation.toLowerCase() == "slide") {
                a(window).resize(function () {
                    if (!d.animating) {
                        if (d.vertical) {
                            d.height(d.slides.filter(":first").height()); d.args[d.prop] = (-1 * (d.currentSlide + d.cloneOffset)) * d.slides.filter(":first").height() + "px";
                            if (d.transitions) { d.setTransition(0); d.args[d.prop] = (d.vertical) ? "translate3d(0," + d.args[d.prop] + ",0)" : "translate3d(" + d.args[d.prop] + ",0,0)" } d.container.css(d.args)
                        } else {
                            d.newSlides.width(d.width()); d.args[d.prop] = (-1 * (d.currentSlide + d.cloneOffset)) * d.width() + "px";
                            if (d.transitions) { d.setTransition(0); d.args[d.prop] = (d.vertical) ? "translate3d(0," + d.args[d.prop] + ",0)" : "translate3d(" + d.args[d.prop] + ",0,0)" } d.container.css(d.args)
                        }
                    }
                })
            } d.vars.start(d)
        }; d.flexAnimate = function (g, f) {
            if (!d.animating) {
                d.animating = true; d.animatingTo = g; d.vars.before(d);
                if (f) { d.pause() }
                if (d.vars.controlNav) { d.controlNav.removeClass("active").eq(g).addClass("active") } d.atEnd = (g == 0 || g == d.count - 1) ? true : false;
                if (!d.vars.animationLoop && d.vars.directionNav) {
                    if (g == 0) { d.directionNav.removeClass("disabled").filter(".prev").addClass("disabled") }
                    else {
                        if (g == d.count - 1) { d.directionNav.removeClass("disabled").filter(".next").addClass("disabled") }
                        else { d.directionNav.removeClass("disabled") }
                    }
                } if (!d.vars.animationLoop && g == d.count - 1) { d.pause(); d.vars.end(d) }
                if (d.vars.animation.toLowerCase() == "slide") {
                    var e = (d.vertical) ? d.slides.filter(":first").height() : d.slides.filter(":first").width(); if (d.currentSlide == 0 && g == d.count - 1 && d.vars.animationLoop && d.direction != "next") { d.slideString = "0px" } else {
                        if (d.currentSlide == d.count - 1 && g == 0 && d.vars.animationLoop && d.direction != "prev") { d.slideString = (-1 * (d.count + 1)) * e + "px" }
                        else { d.slideString = (-1 * (g + d.cloneOffset)) * e + "px" }
                    } d.args[d.prop] = d.slideString;
                    if (d.transitions) { d.setTransition(d.vars.animationDuration); d.args[d.prop] = (d.vertical) ? "translate3d(0," + d.slideString + ",0)" : "translate3d(" + d.slideString + ",0,0)"; d.container.css(d.args).one("webkitTransitionEnd transitionend", function () { d.wrapup(e) }) }
                    else { d.container.animate(d.args, d.vars.animationDuration, function () { d.wrapup(e) }) }
                } else { d.slides.eq(d.currentSlide).fadeOut(d.vars.animationDuration); d.slides.eq(g).fadeIn(d.vars.animationDuration, function () { d.wrapup() }) }
            }
        }; d.wrapup = function (e) {
            if (d.vars.animation == "slide") {
                if (d.currentSlide == 0 && d.animatingTo == d.count - 1 && d.vars.animationLoop) { d.args[d.prop] = (-1 * d.count) * e + "px"; if (d.transitions) { d.setTransition(0); d.args[d.prop] = (d.vertical) ? "translate3d(0," + d.args[d.prop] + ",0)" : "translate3d(" + d.args[d.prop] + ",0,0)" } d.container.css(d.args) }
                else { if (d.currentSlide == d.count - 1 && d.animatingTo == 0 && d.vars.animationLoop) { d.args[d.prop] = -1 * e + "px"; if (d.transitions) { d.setTransition(0); d.args[d.prop] = (d.vertical) ? "translate3d(0," + d.args[d.prop] + ",0)" : "translate3d(" + d.args[d.prop] + ",0,0)" } d.container.css(d.args) } }
            } d.animating = false;
            d.currentSlide = d.animatingTo; d.vars.after(d)
        }; d.animateSlides = function () { if (!d.animating) { d.flexAnimate(d.getTarget("next")) } }; d.pause = function () {
            clearInterval(d.animatedSlides);
            if (d.vars.pausePlay) { d.pausePlay.removeClass("pause").addClass("play").text(d.vars.playText) }
        }; d.resume = function () {
            d.animatedSlides = setInterval(d.animateSlides, d.vars.slideshowSpeed);
            if (d.vars.pausePlay) { d.pausePlay.removeClass("play").addClass("pause").text(d.vars.pauseText) }
        }; d.canAdvance = function (e) {
            if (!d.vars.animationLoop && d.atEnd) {
                if (d.currentSlide == 0 && e == d.count - 1 && d.direction != "next") { return false }
                else { if (d.currentSlide == d.count - 1 && e == 0 && d.direction == "next") { return false } else { return true } }
            } else { return true }
        }; d.getTarget = function (e) {
            d.direction = e; if (e == "next") { return (d.currentSlide == d.count - 1) ? 0 : d.currentSlide + 1 }
            else { return (d.currentSlide == 0) ? d.count - 1 : d.currentSlide - 1 }
        }; d.setTransition = function (e) { d.container.css({ "-webkit-transition-duration": (e / 1000) + "s" }) }; d.init()
    }; a.flexslider.defaults = { animation: "fade", slideDirection: "horizontal", slideshow: true, slideshowSpeed: 7000, animationDuration: 600, directionNav: true, controlNav: true, keyboardNav: true, mousewheel: false, prevText: "Previous",
        nextText: "Next", pausePlay: false, pauseText: "Pause", playText: "Play", randomize: false, slideToStart: 0, animationLoop: true, pauseOnAction: true, pauseOnHover: false, controlsContainer: "", manualControls: "", start: function () { }, before: function () { }, after: function () { }, end: function () { }
    }; a.fn.flexslider = function (b) {
        return this.each(function () {
            if (a(this).find(".slides li").length == 1) { a(this).find(".slides li").fadeIn(400) } else { if (a(this).data("flexslider") != true) { new a.flexslider(a(this), b) } }
        })
    }
})(jQuery);
