jquery.flexslider-min.js 20.7 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465
(function(a) {
    a.flexslider = function(c, b) {
        var d = a(c);
        a.data(c, "flexslider", d);
        d.init = function() {
            d.vars = a.extend({}, a.flexslider.defaults, b);
            a.data(c, "flexsliderInit", true);
            d.container = a(".slides", d).first();
            d.slides = a(".slides:first > 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()) - .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:first > 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.originalEvent.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 && d.is(":visible")) {
                        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);
                        }
                    }
                });
            }
            
            var back_color=d.slides.eq(d.currentSlide).attr("back");
			$("#sec_famous").css("background-color",back_color);
			
            d.vars.start(d);
        };
        d.flexAnimate = function(g, f) {
            if (!d.animating && d.is(":visible")) {
                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);
        	
            var back_color=d.slides.eq(d.currentSlide).attr("back");
			$("#sec_famous").css("background-color",back_color);
        };
        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 / 1e3 + "s"
            });
        };
        d.init();
    };
    a.flexslider.defaults = {
        animation: "fade",
        slideDirection: "horizontal",
        slideshow: true,
        slideshowSpeed: 7e3,
        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("flexsliderInit") != true) {
                    new a.flexslider(this, b);
                }
            }
        });
    };
})(jQuery);