mirror of
https://github.com/dawidolko/Website-Templates.git
synced 2026-02-04 09:30:05 +00:00
Website templates
This commit is contained in:
489
kavin-corporate-bootstrap-responsive-web-template/js/animate.js
Normal file
489
kavin-corporate-bootstrap-responsive-web-template/js/animate.js
Normal file
@@ -0,0 +1,489 @@
|
||||
jQuery(document).ready(function($) {
|
||||
|
||||
|
||||
//animate effect
|
||||
$(".e_flash").hover(
|
||||
function () {
|
||||
$(this).addClass("animated flash");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated flash");
|
||||
}
|
||||
);
|
||||
$(".e_bounce").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounce");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounce");
|
||||
}
|
||||
);
|
||||
|
||||
$(".e_shake").hover(
|
||||
function () {
|
||||
$(this).addClass("animated shake");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated shake");
|
||||
}
|
||||
);
|
||||
$(".e_tada").hover(
|
||||
function () {
|
||||
$(this).addClass("animated tada");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated tada");
|
||||
}
|
||||
);
|
||||
$(".e_swing").hover(
|
||||
function () {
|
||||
$(this).addClass("animated swing");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated swing");
|
||||
}
|
||||
);
|
||||
$(".e_wobble").hover(
|
||||
function () {
|
||||
$(this).addClass("animated wobble");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated wobble");
|
||||
}
|
||||
);
|
||||
$(".e_wiggle").hover(
|
||||
function () {
|
||||
$(this).addClass("animated wiggle");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated wiggle");
|
||||
}
|
||||
);
|
||||
$(".e_pulse").hover(
|
||||
function () {
|
||||
$(this).addClass("animated pulse");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated pulse");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
$(".e_flip").hover(
|
||||
function () {
|
||||
$(this).addClass("animated flip");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated flip");
|
||||
}
|
||||
);
|
||||
$(".e_flipInX").hover(
|
||||
function () {
|
||||
$(this).addClass("animated flipInX");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated flipInX");
|
||||
}
|
||||
);
|
||||
$(".e_flipOutX").hover(
|
||||
function () {
|
||||
$(this).addClass("animated flipOutX");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated flipOutX");
|
||||
}
|
||||
);
|
||||
$(".e_flipInY").hover(
|
||||
function () {
|
||||
$(this).addClass("animated flipInY");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated flipInY");
|
||||
}
|
||||
);
|
||||
$(".e_flipOutY").hover(
|
||||
function () {
|
||||
$(this).addClass("animated flipOutY");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated flipOutY");
|
||||
}
|
||||
);
|
||||
|
||||
//Fading entrances
|
||||
$(".e_fadeIn").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeIn");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeIn");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInUp").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInUp");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInUp");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInDown").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInDown");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInDown");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInLeft");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInRight");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInUpBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInUpBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInUpBig");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInUpBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInUpBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInUpBig");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInDownBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInDownBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInDownBig");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInLeftBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInLeftBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInLeftBig");
|
||||
}
|
||||
);
|
||||
$(".e_fadeInRightBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeInRightBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeInRightBig");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
//Fading exits
|
||||
$(".e_fadeOut").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOut");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOut");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutUp").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutUp");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutUp");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutDown").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutDown");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutDown");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutLeft");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutRight");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutUpBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutUpBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutUpBig");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutDownBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutDownBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutDownBig");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutLeftBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutLeftBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutLeftBig");
|
||||
}
|
||||
);
|
||||
$(".e_fadeOutRightBig").hover(
|
||||
function () {
|
||||
$(this).addClass("animated fadeOutRightBig");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated fadeOutRightBig");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
//Bouncing entrances
|
||||
$(".e_bounceIn").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceIn");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceIn");
|
||||
}
|
||||
);
|
||||
$(".e_bounceInDown").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceInDown");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceInDown");
|
||||
}
|
||||
);
|
||||
$(".e_bounceInUp").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceInUp");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceInUp");
|
||||
}
|
||||
);
|
||||
$(".e_bounceInLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceInLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceInLeft");
|
||||
}
|
||||
);
|
||||
$(".e_bounceInRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceInRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceInRight");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
//Bouncing exits
|
||||
$(".e_bounceOut").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceOut");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceOut");
|
||||
}
|
||||
);
|
||||
$(".e_bounceOutDown").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceOutDown");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceOutDown");
|
||||
}
|
||||
);
|
||||
$(".e_bounceOutUp").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceOutUp");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceOutUp");
|
||||
}
|
||||
);
|
||||
$(".e_bounceOutLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceOutLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceOutLeft");
|
||||
}
|
||||
);
|
||||
$(".e_bounceOutRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated bounceOutRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated bounceOutRight");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
//Rotating entrances
|
||||
$(".e_rotateIn").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateIn");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateIn");
|
||||
}
|
||||
);
|
||||
$(".e_rotateInDownLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateInDownLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateInDownLeft");
|
||||
}
|
||||
);
|
||||
$(".e_rotateInDownRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateInDownRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateInDownRight");
|
||||
}
|
||||
);
|
||||
$(".e_rotateInUpRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateInUpRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateInUpRight");
|
||||
}
|
||||
);
|
||||
$(".e_rotateInUpLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateInUpLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateInUpLeft");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
//Rotating exits
|
||||
$(".e_rotateOut").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateOut");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateOut");
|
||||
}
|
||||
);
|
||||
$(".e_rotateOutDownLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateOutDownLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateOutDownLeft");
|
||||
}
|
||||
);
|
||||
$(".e_rotateOutDownRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateOutDownRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateOutDownRight");
|
||||
}
|
||||
);
|
||||
$(".e_rotateOutUpLeft").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateOutUpLeft");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateOutUpLeft");
|
||||
}
|
||||
);
|
||||
$(".e_rotateOutUpRight").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rotateOutUpRight");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rotateOutUpRight");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
//Lightspeed
|
||||
$(".e_lightSpeedIn").hover(
|
||||
function () {
|
||||
$(this).addClass("animated lightSpeedIn");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated lightSpeedIn");
|
||||
}
|
||||
);
|
||||
$(".e_lightSpeedOut").hover(
|
||||
function () {
|
||||
$(this).addClass("animated lightSpeedOut");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated lightSpeedOut");
|
||||
}
|
||||
);
|
||||
|
||||
//specials
|
||||
$(".e_hinge").hover(
|
||||
function () {
|
||||
$(this).addClass("animated hinge");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated hinge");
|
||||
}
|
||||
);
|
||||
$(".e_rollIn").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rollIn");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rollIn");
|
||||
}
|
||||
);
|
||||
$(".e_rollOut").hover(
|
||||
function () {
|
||||
$(this).addClass("animated rollOut");
|
||||
},
|
||||
function () {
|
||||
$(this).removeClass("animated rollOut");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
});
|
||||
6
kavin-corporate-bootstrap-responsive-web-template/js/bootstrap.min.js
vendored
Normal file
6
kavin-corporate-bootstrap-responsive-web-template/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
137
kavin-corporate-bootstrap-responsive-web-template/js/custom.js
Normal file
137
kavin-corporate-bootstrap-responsive-web-template/js/custom.js
Normal file
@@ -0,0 +1,137 @@
|
||||
/*global jQuery:false */
|
||||
jQuery(document).ready(function($) {
|
||||
"use strict";
|
||||
|
||||
|
||||
//add some elements with animate effect
|
||||
|
||||
$(".big-cta").hover(
|
||||
function () {
|
||||
$('.cta a').addClass("animated shake");
|
||||
},
|
||||
function () {
|
||||
$('.cta a').removeClass("animated shake");
|
||||
}
|
||||
);
|
||||
$(".box").hover(
|
||||
function () {
|
||||
$(this).find('.icon').addClass("animated fadeInDown");
|
||||
$(this).find('p').addClass("animated fadeInUp");
|
||||
},
|
||||
function () {
|
||||
$(this).find('.icon').removeClass("animated fadeInDown");
|
||||
$(this).find('p').removeClass("animated fadeInUp");
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
$('.accordion').on('show', function (e) {
|
||||
|
||||
$(e.target).prev('.accordion-heading').find('.accordion-toggle').addClass('active');
|
||||
$(e.target).prev('.accordion-heading').find('.accordion-toggle i').removeClass('icon-plus');
|
||||
$(e.target).prev('.accordion-heading').find('.accordion-toggle i').addClass('icon-minus');
|
||||
});
|
||||
|
||||
$('.accordion').on('hide', function (e) {
|
||||
$(this).find('.accordion-toggle').not($(e.target)).removeClass('active');
|
||||
$(this).find('.accordion-toggle i').not($(e.target)).removeClass('icon-minus');
|
||||
$(this).find('.accordion-toggle i').not($(e.target)).addClass('icon-plus');
|
||||
});
|
||||
|
||||
|
||||
// tooltip
|
||||
$('.social-network li a, .options_box .color a').tooltip();
|
||||
|
||||
// fancybox
|
||||
$(".fancybox").fancybox({
|
||||
padding : 0,
|
||||
autoResize: true,
|
||||
beforeShow: function () {
|
||||
this.title = $(this.element).attr('title');
|
||||
this.title = '<h4>' + this.title + '</h4>' + '<p>' + $(this.element).parent().find('img').attr('alt') + '</p>';
|
||||
},
|
||||
helpers : {
|
||||
title : { type: 'inside' },
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//scroll to top
|
||||
$(window).scroll(function(){
|
||||
if ($(this).scrollTop() > 100) {
|
||||
$('.scrollup').fadeIn();
|
||||
} else {
|
||||
$('.scrollup').fadeOut();
|
||||
}
|
||||
});
|
||||
$('.scrollup').click(function(){
|
||||
$("html, body").animate({ scrollTop: 0 }, 1000);
|
||||
return false;
|
||||
});
|
||||
$('#post-slider').flexslider({
|
||||
// Primary Controls
|
||||
controlNav : false, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
|
||||
directionNav : true, //Boolean: Create navigation for previous/next navigation? (true/false)
|
||||
prevText : "Previous", //String: Set the text for the "previous" directionNav item
|
||||
nextText : "Next", //String: Set the text for the "next" directionNav item
|
||||
|
||||
// Secondary Navigation
|
||||
keyboard : true, //Boolean: Allow slider navigating via keyboard left/right keys
|
||||
multipleKeyboard : false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
|
||||
mousewheel : false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
|
||||
pausePlay : false, //Boolean: Create pause/play dynamic element
|
||||
pauseText : 'Pause', //String: Set the text for the "pause" pausePlay item
|
||||
playText : 'Play', //String: Set the text for the "play" pausePlay item
|
||||
|
||||
// Special properties
|
||||
controlsContainer : "", //{UPDATED} Selector: USE CLASS SELECTOR. Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be ".flexslider-container". Property is ignored if given element is not found.
|
||||
manualControls : "", //Selector: Declare custom control navigation. Examples would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
|
||||
sync : "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
|
||||
asNavFor : "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
|
||||
});
|
||||
|
||||
$('#main-slider').flexslider({
|
||||
namespace : "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin
|
||||
selector : ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
|
||||
animation : "fade", //String: Select your animation type, "fade" or "slide"
|
||||
easing : "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
|
||||
direction : "horizontal", //String: Select the sliding direction, "horizontal" or "vertical"
|
||||
reverse : false, //{NEW} Boolean: Reverse the animation direction
|
||||
animationLoop : true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
|
||||
smoothHeight : false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
|
||||
startAt : 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
|
||||
slideshow : true, //Boolean: Animate slider automatically
|
||||
slideshowSpeed : 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
|
||||
animationSpeed : 600, //Integer: Set the speed of animations, in milliseconds
|
||||
initDelay : 0, //{NEW} Integer: Set an initialization delay, in milliseconds
|
||||
randomize : false, //Boolean: Randomize slide order
|
||||
|
||||
// Usability features
|
||||
pauseOnAction : true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
|
||||
pauseOnHover : false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
|
||||
useCSS : true, //{NEW} Boolean: Slider will use CSS3 transitions if available
|
||||
touch : true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
|
||||
video : false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
|
||||
|
||||
// Primary Controls
|
||||
controlNav : true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
|
||||
directionNav : true, //Boolean: Create navigation for previous/next navigation? (true/false)
|
||||
prevText : "Previous", //String: Set the text for the "previous" directionNav item
|
||||
nextText : "Next", //String: Set the text for the "next" directionNav item
|
||||
|
||||
// Secondary Navigation
|
||||
keyboard : true, //Boolean: Allow slider navigating via keyboard left/right keys
|
||||
multipleKeyboard : false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
|
||||
mousewheel : false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
|
||||
pausePlay : false, //Boolean: Create pause/play dynamic element
|
||||
pauseText : 'Pause', //String: Set the text for the "pause" pausePlay item
|
||||
playText : 'Play', //String: Set the text for the "play" pausePlay item
|
||||
|
||||
// Special properties
|
||||
controlsContainer : "", //{UPDATED} Selector: USE CLASS SELECTOR. Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be ".flexslider-container". Property is ignored if given element is not found.
|
||||
manualControls : "", //Selector: Declare custom control navigation. Examples would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
|
||||
sync : "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
|
||||
asNavFor : "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
|
||||
});
|
||||
|
||||
});
|
||||
@@ -0,0 +1,567 @@
|
||||
/*
|
||||
* jQuery FlexSlider v1.8
|
||||
* http://www.woothemes.com/flexslider/
|
||||
*
|
||||
* Copyright 2012 WooThemes
|
||||
* Free to use under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Contributing Author: Tyler Smith
|
||||
*/
|
||||
|
||||
;(function ($) {
|
||||
|
||||
//FlexSlider: Object Instance
|
||||
$.flexslider = function(el, options) {
|
||||
var slider = $(el);
|
||||
|
||||
// slider DOM reference for use outside of the plugin
|
||||
$.data(el, "flexslider", slider);
|
||||
|
||||
slider.init = function() {
|
||||
slider.vars = $.extend({}, $.flexslider.defaults, options);
|
||||
$.data(el, 'flexsliderInit', true);
|
||||
slider.container = $('.slides', slider).eq(0);
|
||||
slider.slides = $('.slides:first > li', slider);
|
||||
slider.count = slider.slides.length;
|
||||
slider.animating = false;
|
||||
slider.currentSlide = slider.vars.slideToStart;
|
||||
slider.animatingTo = slider.currentSlide;
|
||||
slider.atEnd = (slider.currentSlide == 0) ? true : false;
|
||||
slider.eventType = ('ontouchstart' in document.documentElement) ? 'touchstart' : 'click';
|
||||
slider.cloneCount = 0;
|
||||
slider.cloneOffset = 0;
|
||||
slider.manualPause = false;
|
||||
slider.vertical = (slider.vars.slideDirection == "vertical");
|
||||
slider.prop = (slider.vertical) ? "top" : "marginLeft";
|
||||
slider.args = {};
|
||||
|
||||
//Test for webbkit CSS3 Animations
|
||||
slider.transitions = "webkitTransition" in document.body.style && slider.vars.useCSS;
|
||||
if (slider.transitions) slider.prop = "-webkit-transform";
|
||||
|
||||
//Test for controlsContainer
|
||||
if (slider.vars.controlsContainer != "") {
|
||||
slider.controlsContainer = $(slider.vars.controlsContainer).eq($('.slides').index(slider.container));
|
||||
slider.containerExists = slider.controlsContainer.length > 0;
|
||||
}
|
||||
//Test for manualControls
|
||||
if (slider.vars.manualControls != "") {
|
||||
slider.manualControls = $(slider.vars.manualControls, ((slider.containerExists) ? slider.controlsContainer : slider));
|
||||
slider.manualExists = slider.manualControls.length > 0;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// FlexSlider: Randomize Slides
|
||||
if (slider.vars.randomize) {
|
||||
slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
|
||||
slider.container.empty().append(slider.slides);
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// FlexSlider: Slider Animation Initialize
|
||||
if (slider.vars.animation.toLowerCase() == "slide") {
|
||||
if (slider.transitions) {
|
||||
slider.setTransition(0);
|
||||
}
|
||||
slider.css({"overflow": "hidden"});
|
||||
if (slider.vars.animationLoop) {
|
||||
slider.cloneCount = 2;
|
||||
slider.cloneOffset = 1;
|
||||
slider.container.append(slider.slides.filter(':first').clone().addClass('clone')).prepend(slider.slides.filter(':last').clone().addClass('clone'));
|
||||
}
|
||||
//create newSlides to capture possible clones
|
||||
slider.newSlides = $('.slides:first > li', slider);
|
||||
var sliderOffset = (-1 * (slider.currentSlide + slider.cloneOffset));
|
||||
if (slider.vertical) {
|
||||
slider.newSlides.css({"display": "block", "width": "100%", "float": "left"});
|
||||
slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
|
||||
//Timeout function to give browser enough time to get proper height initially
|
||||
setTimeout(function() {
|
||||
slider.css({"position": "relative"}).height(slider.slides.filter(':first').height());
|
||||
slider.args[slider.prop] = (slider.transitions) ? "translate3d(0," + sliderOffset * slider.height() + "px,0)" : sliderOffset * slider.height() + "px";
|
||||
slider.container.css(slider.args);
|
||||
}, 100);
|
||||
|
||||
} else {
|
||||
slider.args[slider.prop] = (slider.transitions) ? "translate3d(" + sliderOffset * slider.width() + "px,0,0)" : sliderOffset * slider.width() + "px";
|
||||
slider.container.width((slider.count + slider.cloneCount) * 200 + "%").css(slider.args);
|
||||
//Timeout function to give browser enough time to get proper width initially
|
||||
setTimeout(function() {
|
||||
slider.newSlides.width(slider.width()).css({"float": "left", "display": "block"});
|
||||
}, 100);
|
||||
}
|
||||
|
||||
} else { //Default to fade
|
||||
//Not supporting fade CSS3 transitions right now
|
||||
slider.transitions = false;
|
||||
slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%"}).eq(slider.currentSlide).fadeIn(slider.vars.animationDuration);
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// FlexSlider: Control Nav
|
||||
if (slider.vars.controlNav) {
|
||||
if (slider.manualExists) {
|
||||
slider.controlNav = slider.manualControls;
|
||||
} else {
|
||||
var controlNavScaffold = $('<ol class="flex-control-nav"></ol>');
|
||||
var j = 1;
|
||||
for (var i = 0; i < slider.count; i++) {
|
||||
controlNavScaffold.append('<li><a>' + j + '</a></li>');
|
||||
j++;
|
||||
}
|
||||
|
||||
if (slider.containerExists) {
|
||||
$(slider.controlsContainer).append(controlNavScaffold);
|
||||
slider.controlNav = $('.flex-control-nav li a', slider.controlsContainer);
|
||||
} else {
|
||||
slider.append(controlNavScaffold);
|
||||
slider.controlNav = $('.flex-control-nav li a', slider);
|
||||
}
|
||||
}
|
||||
|
||||
slider.controlNav.eq(slider.currentSlide).addClass('active');
|
||||
|
||||
slider.controlNav.bind(slider.eventType, function(event) {
|
||||
event.preventDefault();
|
||||
if (!$(this).hasClass('active')) {
|
||||
(slider.controlNav.index($(this)) > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
|
||||
slider.flexAnimate(slider.controlNav.index($(this)), slider.vars.pauseOnAction);
|
||||
}
|
||||
});
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//FlexSlider: Direction Nav
|
||||
if (slider.vars.directionNav) {
|
||||
var directionNavScaffold = $('<ul class="flex-direction-nav"><li><a class="prev" href="#">' + slider.vars.prevText + '</a></li><li><a class="next" href="#">' + slider.vars.nextText + '</a></li></ul>');
|
||||
|
||||
if (slider.containerExists) {
|
||||
$(slider.controlsContainer).append(directionNavScaffold);
|
||||
slider.directionNav = $('.flex-direction-nav li a', slider.controlsContainer);
|
||||
} else {
|
||||
slider.append(directionNavScaffold);
|
||||
slider.directionNav = $('.flex-direction-nav li a', slider);
|
||||
}
|
||||
|
||||
//Set initial disable styles if necessary
|
||||
if (!slider.vars.animationLoop) {
|
||||
if (slider.currentSlide == 0) {
|
||||
slider.directionNav.filter('.prev').addClass('disabled');
|
||||
} else if (slider.currentSlide == slider.count - 1) {
|
||||
slider.directionNav.filter('.next').addClass('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
slider.directionNav.bind(slider.eventType, function(event) {
|
||||
event.preventDefault();
|
||||
var target = ($(this).hasClass('next')) ? slider.getTarget('next') : slider.getTarget('prev');
|
||||
|
||||
if (slider.canAdvance(target)) {
|
||||
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
||||
}
|
||||
});
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//FlexSlider: Keyboard Nav
|
||||
if (slider.vars.keyboardNav && $('ul.slides').length == 1) {
|
||||
function keyboardMove(event) {
|
||||
if (slider.animating) {
|
||||
return;
|
||||
} else if (event.keyCode != 39 && event.keyCode != 37){
|
||||
return;
|
||||
} else {
|
||||
if (event.keyCode == 39) {
|
||||
var target = slider.getTarget('next');
|
||||
} else if (event.keyCode == 37){
|
||||
var target = slider.getTarget('prev');
|
||||
}
|
||||
|
||||
if (slider.canAdvance(target)) {
|
||||
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
||||
}
|
||||
}
|
||||
}
|
||||
$(document).bind('keyup', keyboardMove);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// FlexSlider: Mousewheel interaction
|
||||
if (slider.vars.mousewheel) {
|
||||
slider.mousewheelEvent = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel";
|
||||
slider.bind(slider.mousewheelEvent, function(e) {
|
||||
e.preventDefault();
|
||||
e = e ? e : window.event;
|
||||
var wheelData = e.detail ? e.detail * -1 : e.originalEvent.wheelDelta / 40,
|
||||
target = (wheelData < 0) ? slider.getTarget('next') : slider.getTarget('prev');
|
||||
|
||||
if (slider.canAdvance(target)) {
|
||||
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
||||
}
|
||||
});
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//FlexSlider: Slideshow Setup
|
||||
if (slider.vars.slideshow) {
|
||||
//pauseOnHover
|
||||
if (slider.vars.pauseOnHover && slider.vars.slideshow) {
|
||||
slider.hover(function() {
|
||||
slider.pause();
|
||||
}, function() {
|
||||
if (!slider.manualPause) {
|
||||
slider.resume();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//Initialize animation
|
||||
slider.animatedSlides = setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//FlexSlider: Pause/Play
|
||||
if (slider.vars.pausePlay) {
|
||||
var pausePlayScaffold = $('<div class="flex-pauseplay"><span></span></div>');
|
||||
|
||||
if (slider.containerExists) {
|
||||
slider.controlsContainer.append(pausePlayScaffold);
|
||||
slider.pausePlay = $('.flex-pauseplay span', slider.controlsContainer);
|
||||
} else {
|
||||
slider.append(pausePlayScaffold);
|
||||
slider.pausePlay = $('.flex-pauseplay span', slider);
|
||||
}
|
||||
|
||||
var pausePlayState = (slider.vars.slideshow) ? 'pause' : 'play';
|
||||
slider.pausePlay.addClass(pausePlayState).text((pausePlayState == 'pause') ? slider.vars.pauseText : slider.vars.playText);
|
||||
|
||||
slider.pausePlay.bind(slider.eventType, function(event) {
|
||||
event.preventDefault();
|
||||
if ($(this).hasClass('pause')) {
|
||||
slider.pause();
|
||||
slider.manualPause = true;
|
||||
} else {
|
||||
slider.resume();
|
||||
slider.manualPause = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//FlexSlider:Touch Swip Gestures
|
||||
//Some brilliant concepts adapted from the following sources
|
||||
//Source: TouchSwipe - http://www.netcu.de/jquery-touchwipe-iphone-ipad-library
|
||||
//Source: SwipeJS - http://swipejs.com
|
||||
if ('ontouchstart' in document.documentElement && slider.vars.touch) {
|
||||
//For brevity, variables are named for x-axis scrolling
|
||||
//The variables are then swapped if vertical sliding is applied
|
||||
//This reduces redundant code...I think :)
|
||||
//If debugging, recognize variables are named for horizontal scrolling
|
||||
var startX,
|
||||
startY,
|
||||
offset,
|
||||
cwidth,
|
||||
dx,
|
||||
startT,
|
||||
scrolling = false;
|
||||
|
||||
slider.each(function() {
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
this.addEventListener('touchstart', onTouchStart, false);
|
||||
}
|
||||
});
|
||||
|
||||
function onTouchStart(e) {
|
||||
if (slider.animating) {
|
||||
e.preventDefault();
|
||||
} else if (e.touches.length == 1) {
|
||||
slider.pause();
|
||||
cwidth = (slider.vertical) ? slider.height() : slider.width();
|
||||
startT = Number(new Date());
|
||||
offset = (slider.vertical) ? (slider.currentSlide + slider.cloneOffset) * slider.height() : (slider.currentSlide + slider.cloneOffset) * slider.width();
|
||||
startX = (slider.vertical) ? e.touches[0].pageY : e.touches[0].pageX;
|
||||
startY = (slider.vertical) ? e.touches[0].pageX : e.touches[0].pageY;
|
||||
slider.setTransition(0);
|
||||
|
||||
this.addEventListener('touchmove', onTouchMove, false);
|
||||
this.addEventListener('touchend', onTouchEnd, false);
|
||||
}
|
||||
}
|
||||
|
||||
function onTouchMove(e) {
|
||||
dx = (slider.vertical) ? startX - e.touches[0].pageY : startX - e.touches[0].pageX;
|
||||
scrolling = (slider.vertical) ? (Math.abs(dx) < Math.abs(e.touches[0].pageX - startY)) : (Math.abs(dx) < Math.abs(e.touches[0].pageY - startY));
|
||||
|
||||
if (!scrolling) {
|
||||
e.preventDefault();
|
||||
if (slider.vars.animation == "slide" && slider.transitions) {
|
||||
if (!slider.vars.animationLoop) {
|
||||
dx = dx/((slider.currentSlide == 0 && dx < 0 || slider.currentSlide == slider.count - 1 && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);
|
||||
}
|
||||
slider.args[slider.prop] = (slider.vertical) ? "translate3d(0," + (-offset - dx) + "px,0)": "translate3d(" + (-offset - dx) + "px,0,0)";
|
||||
slider.container.css(slider.args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onTouchEnd(e) {
|
||||
slider.animating = false;
|
||||
if (slider.animatingTo == slider.currentSlide && !scrolling && !(dx == null)) {
|
||||
var target = (dx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
|
||||
if (slider.canAdvance(target) && Number(new Date()) - startT < 550 && Math.abs(dx) > 20 || Math.abs(dx) > cwidth/2) {
|
||||
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
||||
} else if (slider.vars.animation !== "fade") {
|
||||
slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction);
|
||||
}
|
||||
}
|
||||
|
||||
//Finish the touch by undoing the touch session
|
||||
this.removeEventListener('touchmove', onTouchMove, false);
|
||||
this.removeEventListener('touchend', onTouchEnd, false);
|
||||
startX = null;
|
||||
startY = null;
|
||||
dx = null;
|
||||
offset = null;
|
||||
}
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//FlexSlider: Resize Functions (If necessary)
|
||||
if (slider.vars.animation.toLowerCase() == "slide") {
|
||||
$(window).resize(function(){
|
||||
if (!slider.animating && slider.is(":visible")) {
|
||||
if (slider.vertical) {
|
||||
slider.height(slider.slides.filter(':first').height());
|
||||
slider.args[slider.prop] = (-1 * (slider.currentSlide + slider.cloneOffset))* slider.slides.filter(':first').height() + "px";
|
||||
if (slider.transitions) {
|
||||
slider.setTransition(0);
|
||||
slider.args[slider.prop] = (slider.vertical) ? "translate3d(0," + slider.args[slider.prop] + ",0)" : "translate3d(" + slider.args[slider.prop] + ",0,0)";
|
||||
}
|
||||
slider.container.css(slider.args);
|
||||
} else {
|
||||
slider.newSlides.width(slider.width());
|
||||
slider.args[slider.prop] = (-1 * (slider.currentSlide + slider.cloneOffset))* slider.width() + "px";
|
||||
if (slider.transitions) {
|
||||
slider.setTransition(0);
|
||||
slider.args[slider.prop] = (slider.vertical) ? "translate3d(0," + slider.args[slider.prop] + ",0)" : "translate3d(" + slider.args[slider.prop] + ",0,0)";
|
||||
}
|
||||
slider.container.css(slider.args);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
//FlexSlider: start() Callback
|
||||
slider.vars.start(slider);
|
||||
}
|
||||
|
||||
//FlexSlider: Animation Actions
|
||||
slider.flexAnimate = function(target, pause) {
|
||||
if (!slider.animating && slider.is(":visible")) {
|
||||
//Animating flag
|
||||
slider.animating = true;
|
||||
|
||||
//FlexSlider: before() animation Callback
|
||||
slider.animatingTo = target;
|
||||
slider.vars.before(slider);
|
||||
|
||||
//Optional paramter to pause slider when making an anmiation call
|
||||
if (pause) {
|
||||
slider.pause();
|
||||
}
|
||||
|
||||
//Update controlNav
|
||||
if (slider.vars.controlNav) {
|
||||
slider.controlNav.removeClass('active').eq(target).addClass('active');
|
||||
}
|
||||
|
||||
//Is the slider at either end
|
||||
slider.atEnd = (target == 0 || target == slider.count - 1) ? true : false;
|
||||
if (!slider.vars.animationLoop && slider.vars.directionNav) {
|
||||
if (target == 0) {
|
||||
slider.directionNav.removeClass('disabled').filter('.prev').addClass('disabled');
|
||||
} else if (target == slider.count - 1) {
|
||||
slider.directionNav.removeClass('disabled').filter('.next').addClass('disabled');
|
||||
} else {
|
||||
slider.directionNav.removeClass('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
if (!slider.vars.animationLoop && target == slider.count - 1) {
|
||||
slider.pause();
|
||||
//FlexSlider: end() of cycle Callback
|
||||
slider.vars.end(slider);
|
||||
}
|
||||
|
||||
if (slider.vars.animation.toLowerCase() == "slide") {
|
||||
var dimension = (slider.vertical) ? slider.slides.filter(':first').height() : slider.slides.filter(':first').width();
|
||||
|
||||
if (slider.currentSlide == 0 && target == slider.count - 1 && slider.vars.animationLoop && slider.direction != "next") {
|
||||
slider.slideString = "0px";
|
||||
} else if (slider.currentSlide == slider.count - 1 && target == 0 && slider.vars.animationLoop && slider.direction != "prev") {
|
||||
slider.slideString = (-1 * (slider.count + 1)) * dimension + "px";
|
||||
} else {
|
||||
slider.slideString = (-1 * (target + slider.cloneOffset)) * dimension + "px";
|
||||
}
|
||||
slider.args[slider.prop] = slider.slideString;
|
||||
|
||||
if (slider.transitions) {
|
||||
slider.setTransition(slider.vars.animationDuration);
|
||||
slider.args[slider.prop] = (slider.vertical) ? "translate3d(0," + slider.slideString + ",0)" : "translate3d(" + slider.slideString + ",0,0)";
|
||||
slider.container.css(slider.args).one("webkitTransitionEnd transitionend", function(){
|
||||
slider.wrapup(dimension);
|
||||
});
|
||||
} else {
|
||||
slider.container.animate(slider.args, slider.vars.animationDuration, function(){
|
||||
slider.wrapup(dimension);
|
||||
});
|
||||
}
|
||||
} else { //Default to Fade
|
||||
slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationDuration);
|
||||
slider.slides.eq(target).fadeIn(slider.vars.animationDuration, function() {
|
||||
slider.wrapup();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//FlexSlider: Function to minify redundant animation actions
|
||||
slider.wrapup = function(dimension) {
|
||||
if (slider.vars.animation == "slide") {
|
||||
//Jump the slider if necessary
|
||||
if (slider.currentSlide == 0 && slider.animatingTo == slider.count - 1 && slider.vars.animationLoop) {
|
||||
slider.args[slider.prop] = (-1 * slider.count) * dimension + "px";
|
||||
if (slider.transitions) {
|
||||
slider.setTransition(0);
|
||||
slider.args[slider.prop] = (slider.vertical) ? "translate3d(0," + slider.args[slider.prop] + ",0)" : "translate3d(" + slider.args[slider.prop] + ",0,0)";
|
||||
}
|
||||
slider.container.css(slider.args);
|
||||
} else if (slider.currentSlide == slider.count - 1 && slider.animatingTo == 0 && slider.vars.animationLoop) {
|
||||
slider.args[slider.prop] = -1 * dimension + "px";
|
||||
if (slider.transitions) {
|
||||
slider.setTransition(0);
|
||||
slider.args[slider.prop] = (slider.vertical) ? "translate3d(0," + slider.args[slider.prop] + ",0)" : "translate3d(" + slider.args[slider.prop] + ",0,0)";
|
||||
}
|
||||
slider.container.css(slider.args);
|
||||
}
|
||||
}
|
||||
slider.animating = false;
|
||||
slider.currentSlide = slider.animatingTo;
|
||||
//FlexSlider: after() animation Callback
|
||||
slider.vars.after(slider);
|
||||
}
|
||||
|
||||
//FlexSlider: Automatic Slideshow
|
||||
slider.animateSlides = function() {
|
||||
if (!slider.animating) {
|
||||
slider.flexAnimate(slider.getTarget("next"));
|
||||
}
|
||||
}
|
||||
|
||||
//FlexSlider: Automatic Slideshow Pause
|
||||
slider.pause = function() {
|
||||
clearInterval(slider.animatedSlides);
|
||||
if (slider.vars.pausePlay) {
|
||||
slider.pausePlay.removeClass('pause').addClass('play').text(slider.vars.playText);
|
||||
}
|
||||
}
|
||||
|
||||
//FlexSlider: Automatic Slideshow Start/Resume
|
||||
slider.resume = function() {
|
||||
slider.animatedSlides = setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
|
||||
if (slider.vars.pausePlay) {
|
||||
slider.pausePlay.removeClass('play').addClass('pause').text(slider.vars.pauseText);
|
||||
}
|
||||
}
|
||||
|
||||
//FlexSlider: Helper function for non-looping sliders
|
||||
slider.canAdvance = function(target) {
|
||||
if (!slider.vars.animationLoop && slider.atEnd) {
|
||||
if (slider.currentSlide == 0 && target == slider.count - 1 && slider.direction != "next") {
|
||||
return false;
|
||||
} else if (slider.currentSlide == slider.count - 1 && target == 0 && slider.direction == "next") {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//FlexSlider: Helper function to determine animation target
|
||||
slider.getTarget = function(dir) {
|
||||
slider.direction = dir;
|
||||
if (dir == "next") {
|
||||
return (slider.currentSlide == slider.count - 1) ? 0 : slider.currentSlide + 1;
|
||||
} else {
|
||||
return (slider.currentSlide == 0) ? slider.count - 1 : slider.currentSlide - 1;
|
||||
}
|
||||
}
|
||||
|
||||
//FlexSlider: Helper function to set CSS3 transitions
|
||||
slider.setTransition = function(dur) {
|
||||
slider.container.css({'-webkit-transition-duration': (dur/1000) + "s"});
|
||||
}
|
||||
|
||||
//FlexSlider: Initialize
|
||||
slider.init();
|
||||
}
|
||||
|
||||
//FlexSlider: Default Settings
|
||||
$.flexslider.defaults = {
|
||||
animation: "slide", //String: Select your animation type, "fade" or "slide"
|
||||
slideDirection: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical"
|
||||
slideshow: true, //Boolean: Animate slider automatically
|
||||
slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
|
||||
animationDuration: 600, //Integer: Set the speed of animations, in milliseconds
|
||||
directionNav: false, //Boolean: Create navigation for previous/next navigation? (true/false)
|
||||
controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
|
||||
keyboardNav: true, //Boolean: Allow slider navigating via keyboard left/right keys
|
||||
mousewheel: false, //Boolean: Allow slider navigating via mousewheel
|
||||
prevText: "Previous", //String: Set the text for the "previous" directionNav item
|
||||
nextText: "Next", //String: Set the text for the "next" directionNav item
|
||||
pausePlay: false, //Boolean: Create pause/play dynamic element
|
||||
pauseText: 'Pause', //String: Set the text for the "pause" pausePlay item
|
||||
playText: 'Play', //String: Set the text for the "play" pausePlay item
|
||||
randomize: false, //Boolean: Randomize slide order
|
||||
slideToStart: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
|
||||
animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
|
||||
pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
|
||||
pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
|
||||
useCSS: true, //Boolean: Override the use of CSS3 Translate3d animations
|
||||
touch: true, //Boolean: Disable touchswipe events
|
||||
controlsContainer: "", //Selector: Declare which container the navigation elements should be appended too. Default container is the flexSlider element. Example use would be ".flexslider-container", "#container", etc. If the given element is not found, the default action will be taken.
|
||||
manualControls: "", //Selector: Declare custom control navigation. Example would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
|
||||
start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide
|
||||
before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation
|
||||
after: function(){}, //Callback: function(slider) - Fires after each slider animation completes
|
||||
end: function(){} //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
|
||||
}
|
||||
|
||||
//FlexSlider: Plugin Function
|
||||
$.fn.flexslider = function(options) {
|
||||
return this.each(function() {
|
||||
var $slides = $(this).find('.slides > li');
|
||||
if ($slides.length === 1) {
|
||||
$slides.fadeIn(400);
|
||||
if (options && options.start) options.start($(this));
|
||||
}
|
||||
else if ($(this).data('flexsliderInit') != true) {
|
||||
new $.flexslider(this, options);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
$(window).load(function() {
|
||||
$('.flexslider').flexslider();
|
||||
});
|
||||
@@ -0,0 +1,30 @@
|
||||
.com { color: #93a1a1; }
|
||||
.lit { color: #195f91; }
|
||||
.pun, .opn, .clo { color: #93a1a1; }
|
||||
.fun { color: #dc322f; }
|
||||
.str, .atv { color: #D14; }
|
||||
.kwd, .prettyprint .tag { color: #1e347b; }
|
||||
.typ, .atn, .dec, .var { color: teal; }
|
||||
.pln { color: #48484c; }
|
||||
|
||||
.prettyprint {
|
||||
padding: 8px;
|
||||
background-color: #f7f7f9;
|
||||
border: 1px solid #e1e1e8;
|
||||
}
|
||||
.prettyprint.linenums {
|
||||
-webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
|
||||
-moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
|
||||
box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
|
||||
}
|
||||
|
||||
/* Specify class=linenums on a pre to get line numbering */
|
||||
ol.linenums {
|
||||
margin: 0 0 0 33px; /* IE indents via margin-left */
|
||||
}
|
||||
ol.linenums li {
|
||||
padding-left: 12px;
|
||||
color: #bebec5;
|
||||
line-height: 20px;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
|
||||
(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
|
||||
[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
|
||||
f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
|
||||
(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
|
||||
{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
|
||||
t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
|
||||
"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
|
||||
l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
|
||||
q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
|
||||
q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
|
||||
"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
|
||||
a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
|
||||
for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
|
||||
m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
|
||||
a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
|
||||
j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
|
||||
"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
|
||||
H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
|
||||
J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
|
||||
I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
|
||||
["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
|
||||
/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
|
||||
["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
|
||||
hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
|
||||
!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
|
||||
250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
|
||||
PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
|
||||
|
||||
// make code pretty
|
||||
window.prettyPrint && prettyPrint();
|
||||
@@ -0,0 +1,205 @@
|
||||
/*
|
||||
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
*
|
||||
* Uses the built in easing capabilities added In jQuery 1.1
|
||||
* to offer multiple easing options
|
||||
*
|
||||
* TERMS OF USE - jQuery Easing
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2008 George McGinley Smith
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
// t: current time, b: begInnIng value, c: change In value, d: duration
|
||||
jQuery.easing['jswing'] = jQuery.easing['swing'];
|
||||
|
||||
jQuery.extend( jQuery.easing,
|
||||
{
|
||||
def: 'easeOutQuad',
|
||||
swing: function (x, t, b, c, d) {
|
||||
//alert(jQuery.easing.default);
|
||||
return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
|
||||
},
|
||||
easeInQuad: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t + b;
|
||||
},
|
||||
easeOutQuad: function (x, t, b, c, d) {
|
||||
return -c *(t/=d)*(t-2) + b;
|
||||
},
|
||||
easeInOutQuad: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t + b;
|
||||
return -c/2 * ((--t)*(t-2) - 1) + b;
|
||||
},
|
||||
easeInCubic: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t + b;
|
||||
},
|
||||
easeOutCubic: function (x, t, b, c, d) {
|
||||
return c*((t=t/d-1)*t*t + 1) + b;
|
||||
},
|
||||
easeInOutCubic: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t + b;
|
||||
return c/2*((t-=2)*t*t + 2) + b;
|
||||
},
|
||||
easeInQuart: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t*t + b;
|
||||
},
|
||||
easeOutQuart: function (x, t, b, c, d) {
|
||||
return -c * ((t=t/d-1)*t*t*t - 1) + b;
|
||||
},
|
||||
easeInOutQuart: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
|
||||
return -c/2 * ((t-=2)*t*t*t - 2) + b;
|
||||
},
|
||||
easeInQuint: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t*t*t + b;
|
||||
},
|
||||
easeOutQuint: function (x, t, b, c, d) {
|
||||
return c*((t=t/d-1)*t*t*t*t + 1) + b;
|
||||
},
|
||||
easeInOutQuint: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
|
||||
return c/2*((t-=2)*t*t*t*t + 2) + b;
|
||||
},
|
||||
easeInSine: function (x, t, b, c, d) {
|
||||
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
|
||||
},
|
||||
easeOutSine: function (x, t, b, c, d) {
|
||||
return c * Math.sin(t/d * (Math.PI/2)) + b;
|
||||
},
|
||||
easeInOutSine: function (x, t, b, c, d) {
|
||||
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
|
||||
},
|
||||
easeInExpo: function (x, t, b, c, d) {
|
||||
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
|
||||
},
|
||||
easeOutExpo: function (x, t, b, c, d) {
|
||||
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
|
||||
},
|
||||
easeInOutExpo: function (x, t, b, c, d) {
|
||||
if (t==0) return b;
|
||||
if (t==d) return b+c;
|
||||
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
|
||||
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
|
||||
},
|
||||
easeInCirc: function (x, t, b, c, d) {
|
||||
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
|
||||
},
|
||||
easeOutCirc: function (x, t, b, c, d) {
|
||||
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
|
||||
},
|
||||
easeInOutCirc: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
|
||||
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
|
||||
},
|
||||
easeInElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
},
|
||||
easeOutElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
|
||||
},
|
||||
easeInOutElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
|
||||
},
|
||||
easeInBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
return c*(t/=d)*t*((s+1)*t - s) + b;
|
||||
},
|
||||
easeOutBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
|
||||
},
|
||||
easeInOutBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
|
||||
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
|
||||
},
|
||||
easeInBounce: function (x, t, b, c, d) {
|
||||
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
|
||||
},
|
||||
easeOutBounce: function (x, t, b, c, d) {
|
||||
if ((t/=d) < (1/2.75)) {
|
||||
return c*(7.5625*t*t) + b;
|
||||
} else if (t < (2/2.75)) {
|
||||
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
||||
} else if (t < (2.5/2.75)) {
|
||||
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
||||
} else {
|
||||
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
||||
}
|
||||
},
|
||||
easeInOutBounce: function (x, t, b, c, d) {
|
||||
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
|
||||
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
*
|
||||
* TERMS OF USE - EASING EQUATIONS
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2001 Robert Penner
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
@@ -0,0 +1,196 @@
|
||||
/*!
|
||||
* Media helper for fancyBox
|
||||
* version: 1.0.5 (Tue, 23 Oct 2012)
|
||||
* @requires fancyBox v2.0 or later
|
||||
*
|
||||
* Usage:
|
||||
* $(".fancybox").fancybox({
|
||||
* helpers : {
|
||||
* media: true
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Set custom URL parameters:
|
||||
* $(".fancybox").fancybox({
|
||||
* helpers : {
|
||||
* media: {
|
||||
* youtube : {
|
||||
* params : {
|
||||
* autoplay : 0
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Or:
|
||||
* $(".fancybox").fancybox({,
|
||||
* helpers : {
|
||||
* media: true
|
||||
* },
|
||||
* youtube : {
|
||||
* autoplay: 0
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Supports:
|
||||
*
|
||||
* Youtube
|
||||
* http://www.youtube.com/watch?v=opj24KnzrWo
|
||||
* http://www.youtube.com/embed/opj24KnzrWo
|
||||
* http://youtu.be/opj24KnzrWo
|
||||
* Vimeo
|
||||
* http://vimeo.com/40648169
|
||||
* http://vimeo.com/channels/staffpicks/38843628
|
||||
* http://vimeo.com/groups/surrealism/videos/36516384
|
||||
* http://player.vimeo.com/video/45074303
|
||||
* Metacafe
|
||||
* http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
|
||||
* http://www.metacafe.com/watch/7635964/
|
||||
* Dailymotion
|
||||
* http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
|
||||
* Twitvid
|
||||
* http://twitvid.com/QY7MD
|
||||
* Twitpic
|
||||
* http://twitpic.com/7p93st
|
||||
* Instagram
|
||||
* http://instagr.am/p/IejkuUGxQn/
|
||||
* http://instagram.com/p/IejkuUGxQn/
|
||||
* Google maps
|
||||
* http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
|
||||
* http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
|
||||
* http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
|
||||
*/
|
||||
(function ($) {
|
||||
"use strict";
|
||||
|
||||
//Shortcut for fancyBox object
|
||||
var F = $.fancybox,
|
||||
format = function( url, rez, params ) {
|
||||
params = params || '';
|
||||
|
||||
if ( $.type( params ) === "object" ) {
|
||||
params = $.param(params, true);
|
||||
}
|
||||
|
||||
$.each(rez, function(key, value) {
|
||||
url = url.replace( '$' + key, value || '' );
|
||||
});
|
||||
|
||||
if (params.length) {
|
||||
url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params;
|
||||
}
|
||||
|
||||
return url;
|
||||
};
|
||||
|
||||
//Add helper object
|
||||
F.helpers.media = {
|
||||
defaults : {
|
||||
youtube : {
|
||||
matcher : /(youtube\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
|
||||
params : {
|
||||
autoplay : 1,
|
||||
autohide : 1,
|
||||
fs : 1,
|
||||
rel : 0,
|
||||
hd : 1,
|
||||
wmode : 'opaque',
|
||||
enablejsapi : 1
|
||||
},
|
||||
type : 'iframe',
|
||||
url : '//www.youtube.com/embed/$3'
|
||||
},
|
||||
vimeo : {
|
||||
matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/,
|
||||
params : {
|
||||
autoplay : 1,
|
||||
hd : 1,
|
||||
show_title : 1,
|
||||
show_byline : 1,
|
||||
show_portrait : 0,
|
||||
fullscreen : 1
|
||||
},
|
||||
type : 'iframe',
|
||||
url : '//player.vimeo.com/video/$1'
|
||||
},
|
||||
metacafe : {
|
||||
matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/,
|
||||
params : {
|
||||
autoPlay : 'yes'
|
||||
},
|
||||
type : 'swf',
|
||||
url : function( rez, params, obj ) {
|
||||
obj.swf.flashVars = 'playerVars=' + $.param( params, true );
|
||||
|
||||
return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf';
|
||||
}
|
||||
},
|
||||
dailymotion : {
|
||||
matcher : /dailymotion.com\/video\/(.*)\/?(.*)/,
|
||||
params : {
|
||||
additionalInfos : 0,
|
||||
autoStart : 1
|
||||
},
|
||||
type : 'swf',
|
||||
url : '//www.dailymotion.com/swf/video/$1'
|
||||
},
|
||||
twitvid : {
|
||||
matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i,
|
||||
params : {
|
||||
autoplay : 0
|
||||
},
|
||||
type : 'iframe',
|
||||
url : '//www.twitvid.com/embed.php?guid=$1'
|
||||
},
|
||||
twitpic : {
|
||||
matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i,
|
||||
type : 'image',
|
||||
url : '//twitpic.com/show/full/$1/'
|
||||
},
|
||||
instagram : {
|
||||
matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
|
||||
type : 'image',
|
||||
url : '//$1/p/$2/media/'
|
||||
},
|
||||
google_maps : {
|
||||
matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
|
||||
type : 'iframe',
|
||||
url : function( rez ) {
|
||||
return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
beforeLoad : function(opts, obj) {
|
||||
var url = obj.href || '',
|
||||
type = false,
|
||||
what,
|
||||
item,
|
||||
rez,
|
||||
params;
|
||||
|
||||
for (what in opts) {
|
||||
item = opts[ what ];
|
||||
rez = url.match( item.matcher );
|
||||
|
||||
if (rez) {
|
||||
type = item.type;
|
||||
params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null));
|
||||
|
||||
url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (type) {
|
||||
obj.href = url;
|
||||
obj.type = type;
|
||||
|
||||
obj.autoHeight = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
}(jQuery));
|
||||
@@ -0,0 +1,45 @@
|
||||
/*! fancyBox v2.1.4 fancyapps.com | fancyapps.com/fancybox/#license */
|
||||
(function(C,z,f,r){var q=f(C),n=f(z),b=f.fancybox=function(){b.open.apply(this,arguments)},H=navigator.userAgent.match(/msie/),w=null,s=z.createTouch!==r,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},p=function(a){return a&&"string"===f.type(a)},F=function(a){return p(a)&&0<a.indexOf("%")},l=function(a,d){var e=parseInt(a,10)||0;d&&F(a)&&(e*=b.getViewport()[d]/100);return Math.ceil(e)},x=function(a,b){return l(a,b)+"px"};f.extend(b,{version:"2.1.4",defaults:{padding:15,margin:20,width:800,
|
||||
height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},keys:{next:{13:"left",
|
||||
34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+
|
||||
(H?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"><i class="font-icon-remove"></i></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span><i class="font-icon-arrow-simple-right"></i></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span><i class="font-icon-arrow-simple-left"></i></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,
|
||||
openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,
|
||||
isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,
|
||||
c.metadata())):k=c);g=d.href||k.href||(p(c)?c:null);h=d.title!==r?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));p(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":p(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(p(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&
|
||||
k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==r&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||
|
||||
b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=
|
||||
setTimeout(b.next,b.current.playSpeed))},c=function(){d();f("body").unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index<b.group.length-1))b.player.isActive=!0,f("body").bind({"afterShow.player onUpdate.player":e,"onCancel.player beforeClose.player":c,"beforeLoad.player":d}),e(),b.trigger("onPlayStart")}else c()},next:function(a){var d=b.current;d&&(p(a)||(a=d.direction.next),b.jumpto(d.index+1,a,"next"))},
|
||||
prev:function(a){var d=b.current;d&&(p(a)||(a=d.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:function(a,d,e){var c=b.current;c&&(a=l(a),b.direction=d||c.direction[a>=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==r&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},
|
||||
e.dim,k)))},update:function(a){var d=a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(w),w=null);b.isOpen&&!w&&(w=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),w=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),
|
||||
b.trigger("onUpdate")),b.update())},hideLoading:function(){n.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");n.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||
|
||||
!1,d={x:q.scrollLeft(),y:q.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&C.innerWidth?C.innerWidth:q.width(),d.h=s&&C.innerHeight?C.innerHeight:q.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");n.unbind(".fb");q.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(q.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&n.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=
|
||||
e.target||e.srcElement;if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1<a.group.length&&k[c]!==r)return b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bind("mousewheel.fb",function(d,c,k,g){for(var h=f(d.target||null),j=!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is(".fancybox-wrap");)j=h[0]&&!(h[0].style.overflow&&
|
||||
"hidden"===h[0].style.overflow)&&(h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");else if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,
|
||||
e){e&&(b.helpers[d]&&f.isFunction(b.helpers[d][a]))&&(e=f.extend(!0,{},b.helpers[d].defaults,e),b.helpers[d][a](e,c))});f.event.trigger(a+".fb")}},isImage:function(a){return p(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp)((\?|#).*)?$)/i)},isSWF:function(a){return p(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&
|
||||
(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=
|
||||
!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,x(d.padding[a]))});b.trigger("onReady");
|
||||
if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=
|
||||
this.width;b.coming.height=this.height;b._afterLoad()};a.onerror=function(){this.onload=this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,
|
||||
(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=
|
||||
b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();
|
||||
e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("<div>").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",
|
||||
!1)}));break;case "image":e=a.tpl.image.replace("{href}",g);break;case "swf":e='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+g+'"></param>',h="",f.each(a.swf,function(a,b){e+='<param name="'+a+'" value="'+b+'"></param>';h+=" "+a+'="'+b+'"'}),e+='<embed src="'+g+'" type="application/x-shockwave-flash" width="100%" height="100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");
|
||||
a.inner.css("overflow","yes"===k?"scroll":"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,
|
||||
v=h.maxHeight,s=h.scrolling,q=h.scrollOutside?h.scrollbarWidth:0,y=h.margin,p=l(y[1]+y[3]),r=l(y[0]+y[2]),z,A,t,D,B,G,C,E,w;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");y=l(k.outerWidth(!0)-k.width());z=l(k.outerHeight(!0)-k.height());A=p+y;t=r+z;D=F(c)?(a.w-A)*l(c)/100:c;B=F(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(w=h.content,h.autoHeight&&1===w.data("ready"))try{w[0].contentWindow.document.location&&(g.width(D).height(9999),G=w.contents().find("body"),q&&G.css("overflow-x",
|
||||
"hidden"),B=G.height())}catch(H){}}else if(h.autoWidth||h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(D),h.autoHeight||g.height(B),h.autoWidth&&(D=g.width()),h.autoHeight&&(B=g.height()),g.removeClass("fancybox-tmp");c=l(D);j=l(B);E=D/B;m=l(F(m)?l(m,"w")-A:m);n=l(F(n)?l(n,"w")-A:n);u=l(F(u)?l(u,"h")-t:u);v=l(F(v)?l(v,"h")-t:v);G=n;C=v;h.fitToView&&(n=Math.min(a.w-A,n),v=Math.min(a.h-t,v));A=a.w-p;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/E)),j>v&&(j=v,c=l(j*E)),c<m&&(c=m,j=l(c/E)),j<u&&
|
||||
(j=u,c=l(j*E))):(c=Math.max(m,Math.min(c,n)),h.autoHeight&&"iframe"!==h.type&&(g.width(c),j=g.height()),j=Math.max(u,Math.min(j,v)));if(h.fitToView)if(g.width(c).height(j),e.width(c+y),a=e.width(),p=e.height(),h.aspectRatio)for(;(a>A||p>r)&&(c>m&&j>u)&&!(19<d++);)j=Math.max(u,Math.min(v,j-10)),c=l(j*E),c<m&&(c=m,j=l(c/E)),c>n&&(c=n,j=l(c/E)),g.width(c).height(j),e.width(c+y),a=e.width(),p=e.height();else c=Math.max(m,Math.min(c,c-(a-A))),j=Math.max(u,Math.min(j,j-(p-r)));q&&("auto"===s&&j<B&&c+y+
|
||||
q<A)&&(c+=q);g.width(c).height(j);e.width(c+y);a=e.width();p=e.height();e=(a>A||p>r)&&c>m&&j>u;c=h.aspectRatio?c<G&&j<C&&c<D&&j<B:(c<G||j<C)&&(c<D||j<B);f.extend(h,{dim:{width:x(a),height:x(p)},origWidth:D,origHeight:B,canShrink:e,canExpand:c,wPadding:y,hPadding:z,wrapSpace:p-k.outerHeight(!0),skinSpace:k.height()-j});!w&&(h.autoHeight&&j>u&&j<v&&!c)&&g.height("auto")},_getPosition:function(a){var d=b.current,e=b.getViewport(),c=d.margin,f=b.wrap.width()+c[1]+c[3],g=b.wrap.height()+c[0]+c[2],c={position:"absolute",
|
||||
top:c[0],left:c[3]};d.autoCenter&&d.fixed&&!a&&g<=e.h&&f<=e.w?c.position="fixed":d.locked||(c.top+=e.y,c.left+=e.x);c.top=x(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=x(Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return c},_afterZoomIn:function(){var a=b.current;a&&(b.isOpen=b.isOpened=!0,b.wrap.css("overflow","visible").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1<b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",function(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&
|
||||
(d.preventDefault(),b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.arrows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.outer).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!a.loop&&a.index===a.group.length-1?b.play(!1):b.opts.autoPlay&&!b.player.isActive&&(b.opts.autoPlay=!1,b.play()))},_afterZoomOut:function(a){a=
|
||||
a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afterClose",a)}});b.transitions={getOrigPosition:function(){var a=b.current,d=a.element,e=a.orig,c={},f=50,g=50,h=a.hPadding,j=a.wPadding,m=b.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=d.find("img:first"),e.length||(e=d));t(e)?(c=e.offset(),e.is("img")&&(f=e.outerWidth(),g=e.outerHeight())):
|
||||
(c.top=m.y+(m.h-g)*a.topRatio,c.left=m.x+(m.w-f)*a.leftRatio);if("fixed"===b.wrap.css("position")||a.locked)c.top-=m.y,c.left-=m.x;return c={top:x(c.top-h*a.topRatio),left:x(c.left-j*a.leftRatio),width:x(f+j),height:x(g+h)}},step:function(a,d){var e,c,f=d.prop;c=b.current;var g=c.wrapSpace,h=c.skinSpace;if("width"===f||"height"===f)e=d.end===d.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=1-e),c="width"===f?c.wPadding:c.hPadding,c=a-c,b.skin[f](l("width"===f?c:c-g*e)),b.inner[f](l("width"===
|
||||
f?c:c-g*e-h*e))},zoomIn:function(){var a=b.current,d=a.pos,e=a.openEffect,c="elastic"===e,k=f.extend({opacity:1},d);delete k.position;c?(d=this.getOrigPosition(),a.openOpacity&&(d.opacity=0.1)):"fade"===e&&(d.opacity=0.1);b.wrap.css(d).animate(k,{duration:"none"===e?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,complete:b._afterZoomIn})},zoomOut:function(){var a=b.current,d=a.closeEffect,e="elastic"===d,c={opacity:0.1};e&&(c=this.getOrigPosition(),a.closeOpacity&&(c.opacity=0.1));b.wrap.animate(c,
|
||||
{duration:"none"===d?0:a.closeSpeed,easing:a.closeEasing,step:e?this.step:null,complete:b._afterZoomOut})},changeIn:function(){var a=b.current,d=a.nextEffect,e=a.pos,c={opacity:1},f=b.direction,g;e.opacity=0.1;"elastic"===d&&(g="down"===f||"up"===f?"top":"left","down"===f||"right"===f?(e[g]=x(l(e[g])-200),c[g]="+=200px"):(e[g]=x(l(e[g])+200),c[g]="-=200px"));"none"===d?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,easing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=
|
||||
b.previous,d=a.prevEffect,e={opacity:0.1},c=b.direction;"elastic"===d&&(e["down"===c||"up"===c?"top":"left"]=("up"===c||"left"===c?"-":"+")+"=200px");a.wrap.animate(e,{duration:"none"===d?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this).trigger("onReset").remove()}})}};b.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,fixed:!1,create:function(a){a=f.extend({},this.defaults,a);this.overlay&&this.close();this.overlay=f('<div class="fancybox-overlay"></div>').appendTo("body");
|
||||
this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(q.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){f(a.target).hasClass("fancybox-overlay")&&(b.isActive?b.close():d.close())});this.overlay.css(a.css).show()},
|
||||
close:function(){f(".fancybox-overlay").remove();q.unbind("resize.overlay");this.overlay=null;!1!==this.margin&&(f("body").css("margin-right",this.margin),this.margin=!1);this.el&&this.el.removeClass("fancybox-lock")},update:function(){var a="100%",b;this.overlay.width(a).height("100%");H?(b=Math.max(z.documentElement.offsetWidth,z.body.offsetWidth),n.width()>b&&(a=n.width())):n.width()>q.width()&&(a=n.width());this.overlay.width(a).height(n.height())},onReady:function(a,b){f(".fancybox-overlay").stop(!0,
|
||||
!0);this.overlay||(this.margin=n.height()>q.height()||"scroll"===f("body").css("overflow-y")?f("body").css("margin-right"):!1,this.el=z.all&&!z.querySelector?f("html"):f("body"),this.create(a));a.locked&&this.fixed&&(b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){b.locked&&(this.el.addClass("fancybox-lock"),!1!==this.margin&&f("body").css("margin-right",l(this.margin)+b.scrollbarWidth));this.open(a)},onUpdate:function(){this.fixed||
|
||||
this.update()},afterClose:function(a){this.overlay&&!b.isActive&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(p(e)&&""!==f.trim(e)){d=f('<div class="fancybox-title fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),
|
||||
H&&d.width(d.width()),d.wrapInner('<span class="child"></span>'),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+
|
||||
'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):n.undelegate(c,"click.fb-start").delegate(c+":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};n.ready(function(){f.scrollbarWidth===r&&(f.scrollbarWidth=function(){var a=f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),b=a.children(),
|
||||
b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===r){var a=f.support,d=f('<div style="position:fixed;top:20px;"></div>').appendTo("body"),e=20===d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")})})})(window,document,jQuery);
|
||||
@@ -0,0 +1,903 @@
|
||||
/*
|
||||
* jQuery FlexSlider v2.1
|
||||
* http://www.woothemes.com/flexslider/
|
||||
*
|
||||
* Copyright 2012 WooThemes
|
||||
* Free to use under the GPLv2 license.
|
||||
* http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* Contributing author: Tyler Smith (@mbmufffin)
|
||||
*/
|
||||
|
||||
;(function ($) {
|
||||
|
||||
//FlexSlider: Object Instance
|
||||
$.flexslider = function(el, options) {
|
||||
var slider = $(el),
|
||||
vars = $.extend({}, $.flexslider.defaults, options),
|
||||
namespace = vars.namespace,
|
||||
touch = ("ontouchstart" in window) || window.DocumentTouch && document instanceof DocumentTouch,
|
||||
eventType = (touch) ? "touchend" : "click",
|
||||
vertical = vars.direction === "vertical",
|
||||
reverse = vars.reverse,
|
||||
carousel = (vars.itemWidth > 0),
|
||||
fade = vars.animation === "fade",
|
||||
asNav = vars.asNavFor !== "",
|
||||
methods = {};
|
||||
|
||||
// Store a reference to the slider object
|
||||
$.data(el, "flexslider", slider);
|
||||
|
||||
// Privat slider methods
|
||||
methods = {
|
||||
init: function() {
|
||||
slider.animating = false;
|
||||
slider.currentSlide = vars.startAt;
|
||||
slider.animatingTo = slider.currentSlide;
|
||||
slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
|
||||
slider.containerSelector = vars.selector.substr(0,vars.selector.search(' '));
|
||||
slider.slides = $(vars.selector, slider);
|
||||
slider.container = $(slider.containerSelector, slider);
|
||||
slider.count = slider.slides.length;
|
||||
// SYNC:
|
||||
slider.syncExists = $(vars.sync).length > 0;
|
||||
// SLIDE:
|
||||
if (vars.animation === "slide") vars.animation = "swing";
|
||||
slider.prop = (vertical) ? "top" : "marginLeft";
|
||||
slider.args = {};
|
||||
// SLIDESHOW:
|
||||
slider.manualPause = false;
|
||||
// TOUCH/USECSS:
|
||||
slider.transitions = !vars.video && !fade && vars.useCSS && (function() {
|
||||
var obj = document.createElement('div'),
|
||||
props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
|
||||
for (var i in props) {
|
||||
if ( obj.style[ props[i] ] !== undefined ) {
|
||||
slider.pfx = props[i].replace('Perspective','').toLowerCase();
|
||||
slider.prop = "-" + slider.pfx + "-transform";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}());
|
||||
// CONTROLSCONTAINER:
|
||||
if (vars.controlsContainer !== "") slider.controlsContainer = $(vars.controlsContainer).length > 0 && $(vars.controlsContainer);
|
||||
// MANUAL:
|
||||
if (vars.manualControls !== "") slider.manualControls = $(vars.manualControls).length > 0 && $(vars.manualControls);
|
||||
|
||||
// RANDOMIZE:
|
||||
if (vars.randomize) {
|
||||
slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
|
||||
slider.container.empty().append(slider.slides);
|
||||
}
|
||||
|
||||
slider.doMath();
|
||||
|
||||
// ASNAV:
|
||||
if (asNav) methods.asNav.setup();
|
||||
|
||||
// INIT
|
||||
slider.setup("init");
|
||||
|
||||
// CONTROLNAV:
|
||||
if (vars.controlNav) methods.controlNav.setup();
|
||||
|
||||
// DIRECTIONNAV:
|
||||
if (vars.directionNav) methods.directionNav.setup();
|
||||
|
||||
// KEYBOARD:
|
||||
if (vars.keyboard && ($(slider.containerSelector).length === 1 || vars.multipleKeyboard)) {
|
||||
$(document).bind('keyup', function(event) {
|
||||
var keycode = event.keyCode;
|
||||
if (!slider.animating && (keycode === 39 || keycode === 37)) {
|
||||
var target = (keycode === 39) ? slider.getTarget('next') :
|
||||
(keycode === 37) ? slider.getTarget('prev') : false;
|
||||
slider.flexAnimate(target, vars.pauseOnAction);
|
||||
}
|
||||
});
|
||||
}
|
||||
// MOUSEWHEEL:
|
||||
if (vars.mousewheel) {
|
||||
slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {
|
||||
event.preventDefault();
|
||||
var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');
|
||||
slider.flexAnimate(target, vars.pauseOnAction);
|
||||
});
|
||||
}
|
||||
|
||||
// PAUSEPLAY
|
||||
if (vars.pausePlay) methods.pausePlay.setup();
|
||||
|
||||
// SLIDSESHOW
|
||||
if (vars.slideshow) {
|
||||
if (vars.pauseOnHover) {
|
||||
slider.hover(function() {
|
||||
if (!slider.manualPlay && !slider.manualPause) slider.pause();
|
||||
}, function() {
|
||||
if (!slider.manualPause && !slider.manualPlay) slider.play();
|
||||
});
|
||||
}
|
||||
// initialize animation
|
||||
(vars.initDelay > 0) ? setTimeout(slider.play, vars.initDelay) : slider.play();
|
||||
}
|
||||
|
||||
// TOUCH
|
||||
if (touch && vars.touch) methods.touch();
|
||||
|
||||
// FADE&&SMOOTHHEIGHT || SLIDE:
|
||||
if (!fade || (fade && vars.smoothHeight)) $(window).bind("resize focus", methods.resize);
|
||||
|
||||
|
||||
// API: start() Callback
|
||||
setTimeout(function(){
|
||||
vars.start(slider);
|
||||
}, 200);
|
||||
},
|
||||
asNav: {
|
||||
setup: function() {
|
||||
slider.asNav = true;
|
||||
slider.animatingTo = Math.floor(slider.currentSlide/slider.move);
|
||||
slider.currentItem = slider.currentSlide;
|
||||
slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide");
|
||||
slider.slides.click(function(e){
|
||||
e.preventDefault();
|
||||
var $slide = $(this),
|
||||
target = $slide.index();
|
||||
if (!$(vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {
|
||||
slider.direction = (slider.currentItem < target) ? "next" : "prev";
|
||||
slider.flexAnimate(target, vars.pauseOnAction, false, true, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
controlNav: {
|
||||
setup: function() {
|
||||
if (!slider.manualControls) {
|
||||
methods.controlNav.setupPaging();
|
||||
} else { // MANUALCONTROLS:
|
||||
methods.controlNav.setupManual();
|
||||
}
|
||||
},
|
||||
setupPaging: function() {
|
||||
var type = (vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
|
||||
j = 1,
|
||||
item;
|
||||
|
||||
slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>');
|
||||
|
||||
if (slider.pagingCount > 1) {
|
||||
for (var i = 0; i < slider.pagingCount; i++) {
|
||||
item = (vars.controlNav === "thumbnails") ? '<img src="' + slider.slides.eq(i).attr("data-thumb") + '"/>' : '<a>' + j + '</a>';
|
||||
slider.controlNavScaffold.append('<li>' + item + '</li>');
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
// CONTROLSCONTAINER:
|
||||
(slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);
|
||||
methods.controlNav.set();
|
||||
|
||||
methods.controlNav.active();
|
||||
|
||||
slider.controlNavScaffold.delegate('a, img', eventType, function(event) {
|
||||
event.preventDefault();
|
||||
var $this = $(this),
|
||||
target = slider.controlNav.index($this);
|
||||
|
||||
if (!$this.hasClass(namespace + 'active')) {
|
||||
slider.direction = (target > slider.currentSlide) ? "next" : "prev";
|
||||
slider.flexAnimate(target, vars.pauseOnAction);
|
||||
}
|
||||
});
|
||||
// Prevent iOS click event bug
|
||||
if (touch) {
|
||||
slider.controlNavScaffold.delegate('a', "click touchstart", function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
}
|
||||
},
|
||||
setupManual: function() {
|
||||
slider.controlNav = slider.manualControls;
|
||||
methods.controlNav.active();
|
||||
|
||||
slider.controlNav.live(eventType, function(event) {
|
||||
event.preventDefault();
|
||||
var $this = $(this),
|
||||
target = slider.controlNav.index($this);
|
||||
|
||||
if (!$this.hasClass(namespace + 'active')) {
|
||||
(target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
|
||||
slider.flexAnimate(target, vars.pauseOnAction);
|
||||
}
|
||||
});
|
||||
// Prevent iOS click event bug
|
||||
if (touch) {
|
||||
slider.controlNav.live("click touchstart", function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
}
|
||||
},
|
||||
set: function() {
|
||||
var selector = (vars.controlNav === "thumbnails") ? 'img' : 'a';
|
||||
slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);
|
||||
},
|
||||
active: function() {
|
||||
slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
|
||||
},
|
||||
update: function(action, pos) {
|
||||
if (slider.pagingCount > 1 && action === "add") {
|
||||
slider.controlNavScaffold.append($('<li><a>' + slider.count + '</a></li>'));
|
||||
} else if (slider.pagingCount === 1) {
|
||||
slider.controlNavScaffold.find('li').remove();
|
||||
} else {
|
||||
slider.controlNav.eq(pos).closest('li').remove();
|
||||
}
|
||||
methods.controlNav.set();
|
||||
(slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();
|
||||
}
|
||||
},
|
||||
directionNav: {
|
||||
setup: function() {
|
||||
var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li><a class="' + namespace + 'prev" href="#">' + vars.prevText + '</a></li><li><a class="' + namespace + 'next" href="#">' + vars.nextText + '</a></li></ul>');
|
||||
|
||||
// CONTROLSCONTAINER:
|
||||
if (slider.controlsContainer) {
|
||||
$(slider.controlsContainer).append(directionNavScaffold);
|
||||
slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);
|
||||
} else {
|
||||
slider.append(directionNavScaffold);
|
||||
slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);
|
||||
}
|
||||
|
||||
methods.directionNav.update();
|
||||
|
||||
slider.directionNav.bind(eventType, function(event) {
|
||||
event.preventDefault();
|
||||
var target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');
|
||||
slider.flexAnimate(target, vars.pauseOnAction);
|
||||
});
|
||||
// Prevent iOS click event bug
|
||||
if (touch) {
|
||||
slider.directionNav.bind("click touchstart", function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
}
|
||||
},
|
||||
update: function() {
|
||||
var disabledClass = namespace + 'disabled';
|
||||
if (slider.pagingCount === 1) {
|
||||
slider.directionNav.addClass(disabledClass);
|
||||
} else if (!vars.animationLoop) {
|
||||
if (slider.animatingTo === 0) {
|
||||
slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass);
|
||||
} else if (slider.animatingTo === slider.last) {
|
||||
slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass);
|
||||
} else {
|
||||
slider.directionNav.removeClass(disabledClass);
|
||||
}
|
||||
} else {
|
||||
slider.directionNav.removeClass(disabledClass);
|
||||
}
|
||||
}
|
||||
},
|
||||
pausePlay: {
|
||||
setup: function() {
|
||||
var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a></a></div>');
|
||||
|
||||
// CONTROLSCONTAINER:
|
||||
if (slider.controlsContainer) {
|
||||
slider.controlsContainer.append(pausePlayScaffold);
|
||||
slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);
|
||||
} else {
|
||||
slider.append(pausePlayScaffold);
|
||||
slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);
|
||||
}
|
||||
|
||||
methods.pausePlay.update((vars.slideshow) ? namespace + 'pause' : namespace + 'play');
|
||||
|
||||
slider.pausePlay.bind(eventType, function(event) {
|
||||
event.preventDefault();
|
||||
if ($(this).hasClass(namespace + 'pause')) {
|
||||
slider.manualPause = true;
|
||||
slider.manualPlay = false;
|
||||
slider.pause();
|
||||
} else {
|
||||
slider.manualPause = false;
|
||||
slider.manualPlay = true;
|
||||
slider.play();
|
||||
}
|
||||
});
|
||||
// Prevent iOS click event bug
|
||||
if (touch) {
|
||||
slider.pausePlay.bind("click touchstart", function(event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
}
|
||||
},
|
||||
update: function(state) {
|
||||
(state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').text(vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').text(vars.pauseText);
|
||||
}
|
||||
},
|
||||
touch: function() {
|
||||
var startX,
|
||||
startY,
|
||||
offset,
|
||||
cwidth,
|
||||
dx,
|
||||
startT,
|
||||
scrolling = false;
|
||||
|
||||
el.addEventListener('touchstart', onTouchStart, false);
|
||||
function onTouchStart(e) {
|
||||
if (slider.animating) {
|
||||
e.preventDefault();
|
||||
} else if (e.touches.length === 1) {
|
||||
slider.pause();
|
||||
// CAROUSEL:
|
||||
cwidth = (vertical) ? slider.h : slider. w;
|
||||
startT = Number(new Date());
|
||||
// CAROUSEL:
|
||||
offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
|
||||
(carousel && reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) :
|
||||
(carousel && slider.currentSlide === slider.last) ? slider.limit :
|
||||
(carousel) ? ((slider.itemW + vars.itemMargin) * slider.move) * slider.currentSlide :
|
||||
(reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
|
||||
startX = (vertical) ? e.touches[0].pageY : e.touches[0].pageX;
|
||||
startY = (vertical) ? e.touches[0].pageX : e.touches[0].pageY;
|
||||
|
||||
el.addEventListener('touchmove', onTouchMove, false);
|
||||
el.addEventListener('touchend', onTouchEnd, false);
|
||||
}
|
||||
}
|
||||
|
||||
function onTouchMove(e) {
|
||||
dx = (vertical) ? startX - e.touches[0].pageY : startX - e.touches[0].pageX;
|
||||
scrolling = (vertical) ? (Math.abs(dx) < Math.abs(e.touches[0].pageX - startY)) : (Math.abs(dx) < Math.abs(e.touches[0].pageY - startY));
|
||||
|
||||
if (!scrolling || Number(new Date()) - startT > 500) {
|
||||
e.preventDefault();
|
||||
if (!fade && slider.transitions) {
|
||||
if (!vars.animationLoop) {
|
||||
dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);
|
||||
}
|
||||
slider.setProps(offset + dx, "setTouch");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onTouchEnd(e) {
|
||||
// finish the touch by undoing the touch session
|
||||
el.removeEventListener('touchmove', onTouchMove, false);
|
||||
|
||||
if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
|
||||
var updateDx = (reverse) ? -dx : dx,
|
||||
target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
|
||||
|
||||
if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
|
||||
slider.flexAnimate(target, vars.pauseOnAction);
|
||||
} else {
|
||||
if (!fade) slider.flexAnimate(slider.currentSlide, vars.pauseOnAction, true);
|
||||
}
|
||||
}
|
||||
el.removeEventListener('touchend', onTouchEnd, false);
|
||||
startX = null;
|
||||
startY = null;
|
||||
dx = null;
|
||||
offset = null;
|
||||
}
|
||||
},
|
||||
resize: function() {
|
||||
if (!slider.animating && slider.is(':visible')) {
|
||||
if (!carousel) slider.doMath();
|
||||
|
||||
if (fade) {
|
||||
// SMOOTH HEIGHT:
|
||||
methods.smoothHeight();
|
||||
} else if (carousel) { //CAROUSEL:
|
||||
slider.slides.width(slider.computedW);
|
||||
slider.update(slider.pagingCount);
|
||||
slider.setProps();
|
||||
}
|
||||
else if (vertical) { //VERTICAL:
|
||||
slider.viewport.height(slider.h);
|
||||
slider.setProps(slider.h, "setTotal");
|
||||
} else {
|
||||
// SMOOTH HEIGHT:
|
||||
if (vars.smoothHeight) methods.smoothHeight();
|
||||
slider.newSlides.width(slider.computedW);
|
||||
slider.setProps(slider.computedW, "setTotal");
|
||||
}
|
||||
}
|
||||
},
|
||||
smoothHeight: function(dur) {
|
||||
if (!vertical || fade) {
|
||||
var $obj = (fade) ? slider : slider.viewport;
|
||||
(dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());
|
||||
}
|
||||
},
|
||||
sync: function(action) {
|
||||
var $obj = $(vars.sync).data("flexslider"),
|
||||
target = slider.animatingTo;
|
||||
|
||||
switch (action) {
|
||||
case "animate": $obj.flexAnimate(target, vars.pauseOnAction, false, true); break;
|
||||
case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;
|
||||
case "pause": $obj.pause(); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// public methods
|
||||
slider.flexAnimate = function(target, pause, override, withSync, fromNav) {
|
||||
if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";
|
||||
|
||||
if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {
|
||||
if (asNav && withSync) {
|
||||
var master = $(vars.asNavFor).data('flexslider');
|
||||
slider.atEnd = target === 0 || target === slider.count - 1;
|
||||
master.flexAnimate(target, true, false, true, fromNav);
|
||||
slider.direction = (slider.currentItem < target) ? "next" : "prev";
|
||||
master.direction = slider.direction;
|
||||
|
||||
if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {
|
||||
slider.currentItem = target;
|
||||
slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
|
||||
target = Math.floor(target/slider.visible);
|
||||
} else {
|
||||
slider.currentItem = target;
|
||||
slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
slider.animating = true;
|
||||
slider.animatingTo = target;
|
||||
// API: before() animation Callback
|
||||
vars.before(slider);
|
||||
|
||||
// SLIDESHOW:
|
||||
if (pause) slider.pause();
|
||||
|
||||
// SYNC:
|
||||
if (slider.syncExists && !fromNav) methods.sync("animate");
|
||||
|
||||
// CONTROLNAV
|
||||
if (vars.controlNav) methods.controlNav.active();
|
||||
|
||||
// !CAROUSEL:
|
||||
// CANDIDATE: slide active class (for add/remove slide)
|
||||
if (!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');
|
||||
|
||||
// INFINITE LOOP:
|
||||
// CANDIDATE: atEnd
|
||||
slider.atEnd = target === 0 || target === slider.last;
|
||||
|
||||
// DIRECTIONNAV:
|
||||
if (vars.directionNav) methods.directionNav.update();
|
||||
|
||||
if (target === slider.last) {
|
||||
// API: end() of cycle Callback
|
||||
vars.end(slider);
|
||||
// SLIDESHOW && !INFINITE LOOP:
|
||||
if (!vars.animationLoop) slider.pause();
|
||||
}
|
||||
|
||||
// SLIDE:
|
||||
if (!fade) {
|
||||
var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,
|
||||
margin, slideString, calcNext;
|
||||
|
||||
// INFINITE LOOP / REVERSE:
|
||||
if (carousel) {
|
||||
margin = (vars.itemWidth > slider.w) ? vars.itemMargin * 2 : vars.itemMargin;
|
||||
calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
|
||||
slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
|
||||
} else if (slider.currentSlide === 0 && target === slider.count - 1 && vars.animationLoop && slider.direction !== "next") {
|
||||
slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;
|
||||
} else if (slider.currentSlide === slider.last && target === 0 && vars.animationLoop && slider.direction !== "prev") {
|
||||
slideString = (reverse) ? 0 : (slider.count + 1) * dimension;
|
||||
} else {
|
||||
slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;
|
||||
}
|
||||
slider.setProps(slideString, "", vars.animationSpeed);
|
||||
if (slider.transitions) {
|
||||
if (!vars.animationLoop || !slider.atEnd) {
|
||||
slider.animating = false;
|
||||
slider.currentSlide = slider.animatingTo;
|
||||
}
|
||||
slider.container.unbind("webkitTransitionEnd transitionend");
|
||||
slider.container.bind("webkitTransitionEnd transitionend", function() {
|
||||
slider.wrapup(dimension);
|
||||
});
|
||||
} else {
|
||||
slider.container.animate(slider.args, vars.animationSpeed, vars.easing, function(){
|
||||
slider.wrapup(dimension);
|
||||
});
|
||||
}
|
||||
} else { // FADE:
|
||||
if (!touch) {
|
||||
slider.slides.eq(slider.currentSlide).fadeOut(vars.animationSpeed, vars.easing);
|
||||
slider.slides.eq(target).fadeIn(vars.animationSpeed, vars.easing, slider.wrapup);
|
||||
} else {
|
||||
slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
|
||||
slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
|
||||
|
||||
slider.slides.unbind("webkitTransitionEnd transitionend");
|
||||
slider.slides.eq(slider.currentSlide).bind("webkitTransitionEnd transitionend", function() {
|
||||
// API: after() animation Callback
|
||||
vars.after(slider);
|
||||
});
|
||||
|
||||
slider.animating = false;
|
||||
slider.currentSlide = slider.animatingTo;
|
||||
}
|
||||
}
|
||||
// SMOOTH HEIGHT:
|
||||
if (vars.smoothHeight) methods.smoothHeight(vars.animationSpeed);
|
||||
}
|
||||
}
|
||||
slider.wrapup = function(dimension) {
|
||||
// SLIDE:
|
||||
if (!fade && !carousel) {
|
||||
if (slider.currentSlide === 0 && slider.animatingTo === slider.last && vars.animationLoop) {
|
||||
slider.setProps(dimension, "jumpEnd");
|
||||
} else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && vars.animationLoop) {
|
||||
slider.setProps(dimension, "jumpStart");
|
||||
}
|
||||
}
|
||||
slider.animating = false;
|
||||
slider.currentSlide = slider.animatingTo;
|
||||
// API: after() animation Callback
|
||||
vars.after(slider);
|
||||
}
|
||||
|
||||
// SLIDESHOW:
|
||||
slider.animateSlides = function() {
|
||||
if (!slider.animating) slider.flexAnimate(slider.getTarget("next"));
|
||||
}
|
||||
// SLIDESHOW:
|
||||
slider.pause = function() {
|
||||
clearInterval(slider.animatedSlides);
|
||||
slider.playing = false;
|
||||
// PAUSEPLAY:
|
||||
if (vars.pausePlay) methods.pausePlay.update("play");
|
||||
// SYNC:
|
||||
if (slider.syncExists) methods.sync("pause");
|
||||
}
|
||||
// SLIDESHOW:
|
||||
slider.play = function() {
|
||||
slider.animatedSlides = setInterval(slider.animateSlides, vars.slideshowSpeed);
|
||||
slider.playing = true;
|
||||
// PAUSEPLAY:
|
||||
if (vars.pausePlay) methods.pausePlay.update("pause");
|
||||
// SYNC:
|
||||
if (slider.syncExists) methods.sync("play");
|
||||
}
|
||||
slider.canAdvance = function(target, fromNav) {
|
||||
// ASNAV:
|
||||
var last = (asNav) ? slider.pagingCount - 1 : slider.last;
|
||||
return (fromNav) ? true :
|
||||
(asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true :
|
||||
(asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false :
|
||||
(target === slider.currentSlide && !asNav) ? false :
|
||||
(vars.animationLoop) ? true :
|
||||
(slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false :
|
||||
(slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false :
|
||||
true;
|
||||
}
|
||||
slider.getTarget = function(dir) {
|
||||
slider.direction = dir;
|
||||
if (dir === "next") {
|
||||
return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;
|
||||
} else {
|
||||
return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;
|
||||
}
|
||||
}
|
||||
|
||||
// SLIDE:
|
||||
slider.setProps = function(pos, special, dur) {
|
||||
var target = (function() {
|
||||
var posCheck = (pos) ? pos : ((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo,
|
||||
posCalc = (function() {
|
||||
if (carousel) {
|
||||
return (special === "setTouch") ? pos :
|
||||
(reverse && slider.animatingTo === slider.last) ? 0 :
|
||||
(reverse) ? slider.limit - (((slider.itemW + vars.itemMargin) * slider.move) * slider.animatingTo) :
|
||||
(slider.animatingTo === slider.last) ? slider.limit : posCheck;
|
||||
} else {
|
||||
switch (special) {
|
||||
case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;
|
||||
case "setTouch": return (reverse) ? pos : pos;
|
||||
case "jumpEnd": return (reverse) ? pos : slider.count * pos;
|
||||
case "jumpStart": return (reverse) ? slider.count * pos : pos;
|
||||
default: return pos;
|
||||
}
|
||||
}
|
||||
}());
|
||||
return (posCalc * -1) + "px";
|
||||
}());
|
||||
|
||||
if (slider.transitions) {
|
||||
target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)";
|
||||
dur = (dur !== undefined) ? (dur/1000) + "s" : "0s";
|
||||
slider.container.css("-" + slider.pfx + "-transition-duration", dur);
|
||||
}
|
||||
|
||||
slider.args[slider.prop] = target;
|
||||
if (slider.transitions || dur === undefined) slider.container.css(slider.args);
|
||||
}
|
||||
|
||||
slider.setup = function(type) {
|
||||
// SLIDE:
|
||||
if (!fade) {
|
||||
var sliderOffset, arr;
|
||||
|
||||
if (type === "init") {
|
||||
slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container);
|
||||
// INFINITE LOOP:
|
||||
slider.cloneCount = 0;
|
||||
slider.cloneOffset = 0;
|
||||
// REVERSE:
|
||||
if (reverse) {
|
||||
arr = $.makeArray(slider.slides).reverse();
|
||||
slider.slides = $(arr);
|
||||
slider.container.empty().append(slider.slides);
|
||||
}
|
||||
}
|
||||
// INFINITE LOOP && !CAROUSEL:
|
||||
if (vars.animationLoop && !carousel) {
|
||||
slider.cloneCount = 2;
|
||||
slider.cloneOffset = 1;
|
||||
// clear out old clones
|
||||
if (type !== "init") slider.container.find('.clone').remove();
|
||||
slider.container.append(slider.slides.first().clone().addClass('clone')).prepend(slider.slides.last().clone().addClass('clone'));
|
||||
}
|
||||
slider.newSlides = $(vars.selector, slider);
|
||||
|
||||
sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;
|
||||
// VERTICAL:
|
||||
if (vertical && !carousel) {
|
||||
slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
|
||||
setTimeout(function(){
|
||||
slider.newSlides.css({"display": "block"});
|
||||
slider.doMath();
|
||||
slider.viewport.height(slider.h);
|
||||
slider.setProps(sliderOffset * slider.h, "init");
|
||||
}, (type === "init") ? 100 : 0);
|
||||
} else {
|
||||
slider.container.width((slider.count + slider.cloneCount) * 200 + "%");
|
||||
slider.setProps(sliderOffset * slider.computedW, "init");
|
||||
setTimeout(function(){
|
||||
slider.doMath();
|
||||
slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"});
|
||||
// SMOOTH HEIGHT:
|
||||
if (vars.smoothHeight) methods.smoothHeight();
|
||||
}, (type === "init") ? 100 : 0);
|
||||
}
|
||||
} else { // FADE:
|
||||
slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"});
|
||||
if (type === "init") {
|
||||
if (!touch) {
|
||||
slider.slides.eq(slider.currentSlide).fadeIn(vars.animationSpeed, vars.easing);
|
||||
} else {
|
||||
slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
|
||||
}
|
||||
}
|
||||
// SMOOTH HEIGHT:
|
||||
if (vars.smoothHeight) methods.smoothHeight();
|
||||
}
|
||||
// !CAROUSEL:
|
||||
// CANDIDATE: active slide
|
||||
if (!carousel) slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide");
|
||||
}
|
||||
|
||||
slider.doMath = function() {
|
||||
var slide = slider.slides.first(),
|
||||
slideMargin = vars.itemMargin,
|
||||
minItems = vars.minItems,
|
||||
maxItems = vars.maxItems;
|
||||
|
||||
slider.w = slider.width();
|
||||
slider.h = slide.height();
|
||||
slider.boxPadding = slide.outerWidth() - slide.width();
|
||||
|
||||
// CAROUSEL:
|
||||
if (carousel) {
|
||||
slider.itemT = vars.itemWidth + slideMargin;
|
||||
slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
|
||||
slider.maxW = (maxItems) ? maxItems * slider.itemT : slider.w;
|
||||
slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * minItems))/minItems :
|
||||
(slider.maxW < slider.w) ? (slider.w - (slideMargin * maxItems))/maxItems :
|
||||
(vars.itemWidth > slider.w) ? slider.w : vars.itemWidth;
|
||||
slider.visible = Math.floor(slider.w/(slider.itemW + slideMargin));
|
||||
slider.move = (vars.move > 0 && vars.move < slider.visible ) ? vars.move : slider.visible;
|
||||
slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);
|
||||
slider.last = slider.pagingCount - 1;
|
||||
slider.limit = (slider.pagingCount === 1) ? 0 :
|
||||
(vars.itemWidth > slider.w) ? ((slider.itemW + (slideMargin * 2)) * slider.count) - slider.w - slideMargin : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
|
||||
} else {
|
||||
slider.itemW = slider.w;
|
||||
slider.pagingCount = slider.count;
|
||||
slider.last = slider.count - 1;
|
||||
}
|
||||
slider.computedW = slider.itemW - slider.boxPadding;
|
||||
}
|
||||
|
||||
slider.update = function(pos, action) {
|
||||
slider.doMath();
|
||||
|
||||
// update currentSlide and slider.animatingTo if necessary
|
||||
if (!carousel) {
|
||||
if (pos < slider.currentSlide) {
|
||||
slider.currentSlide += 1;
|
||||
} else if (pos <= slider.currentSlide && pos !== 0) {
|
||||
slider.currentSlide -= 1;
|
||||
}
|
||||
slider.animatingTo = slider.currentSlide;
|
||||
}
|
||||
|
||||
// update controlNav
|
||||
if (vars.controlNav && !slider.manualControls) {
|
||||
if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) {
|
||||
methods.controlNav.update("add");
|
||||
} else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) {
|
||||
if (carousel && slider.currentSlide > slider.last) {
|
||||
slider.currentSlide -= 1;
|
||||
slider.animatingTo -= 1;
|
||||
}
|
||||
methods.controlNav.update("remove", slider.last);
|
||||
}
|
||||
}
|
||||
// update directionNav
|
||||
if (vars.directionNav) methods.directionNav.update();
|
||||
|
||||
}
|
||||
|
||||
slider.addSlide = function(obj, pos) {
|
||||
var $obj = $(obj);
|
||||
|
||||
slider.count += 1;
|
||||
slider.last = slider.count - 1;
|
||||
|
||||
// append new slide
|
||||
if (vertical && reverse) {
|
||||
(pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);
|
||||
} else {
|
||||
(pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);
|
||||
}
|
||||
|
||||
// update currentSlide, animatingTo, controlNav, and directionNav
|
||||
slider.update(pos, "add");
|
||||
|
||||
// update slider.slides
|
||||
slider.slides = $(vars.selector + ':not(.clone)', slider);
|
||||
// re-setup the slider to accomdate new slide
|
||||
slider.setup();
|
||||
|
||||
//FlexSlider: added() Callback
|
||||
vars.added(slider);
|
||||
}
|
||||
slider.removeSlide = function(obj) {
|
||||
var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;
|
||||
|
||||
// update count
|
||||
slider.count -= 1;
|
||||
slider.last = slider.count - 1;
|
||||
|
||||
// remove slide
|
||||
if (isNaN(obj)) {
|
||||
$(obj, slider.slides).remove();
|
||||
} else {
|
||||
(vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();
|
||||
}
|
||||
|
||||
// update currentSlide, animatingTo, controlNav, and directionNav
|
||||
slider.doMath();
|
||||
slider.update(pos, "remove");
|
||||
|
||||
// update slider.slides
|
||||
slider.slides = $(vars.selector + ':not(.clone)', slider);
|
||||
// re-setup the slider to accomdate new slide
|
||||
slider.setup();
|
||||
|
||||
// FlexSlider: removed() Callback
|
||||
vars.removed(slider);
|
||||
}
|
||||
|
||||
//FlexSlider: Initialize
|
||||
methods.init();
|
||||
}
|
||||
|
||||
//FlexSlider: Default Settings
|
||||
$.flexslider.defaults = {
|
||||
namespace: "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin
|
||||
selector: ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
|
||||
animation: "fade", //String: Select your animation type, "fade" or "slide"
|
||||
easing: "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
|
||||
direction: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical"
|
||||
reverse: false, //{NEW} Boolean: Reverse the animation direction
|
||||
animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
|
||||
smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
|
||||
startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
|
||||
slideshow: true, //Boolean: Animate slider automatically
|
||||
slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
|
||||
animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds
|
||||
initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds
|
||||
randomize: false, //Boolean: Randomize slide order
|
||||
|
||||
// Usability features
|
||||
pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
|
||||
pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
|
||||
useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available
|
||||
touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
|
||||
video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
|
||||
|
||||
// Primary Controls
|
||||
controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
|
||||
directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
|
||||
prevText: "Previous", //String: Set the text for the "previous" directionNav item
|
||||
nextText: "Next", //String: Set the text for the "next" directionNav item
|
||||
|
||||
// Secondary Navigation
|
||||
keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys
|
||||
multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
|
||||
mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
|
||||
pausePlay: false, //Boolean: Create pause/play dynamic element
|
||||
pauseText: "Pause", //String: Set the text for the "pause" pausePlay item
|
||||
playText: "Play", //String: Set the text for the "play" pausePlay item
|
||||
|
||||
// Special properties
|
||||
controlsContainer: "", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
|
||||
manualControls: "", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
|
||||
sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
|
||||
asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
|
||||
|
||||
// Carousel Options
|
||||
itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
|
||||
itemMargin: 0, //{NEW} Integer: Margin between carousel items.
|
||||
minItems: 0, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
|
||||
maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
|
||||
move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.
|
||||
|
||||
// Callback API
|
||||
start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide
|
||||
before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation
|
||||
after: function(){}, //Callback: function(slider) - Fires after each slider animation completes
|
||||
end: function(){}, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
|
||||
added: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is added
|
||||
removed: function(){} //{NEW} Callback: function(slider) - Fires after a slide is removed
|
||||
}
|
||||
|
||||
|
||||
//FlexSlider: Plugin Function
|
||||
$.fn.flexslider = function(options) {
|
||||
if (options === undefined) options = {};
|
||||
|
||||
if (typeof options === "object") {
|
||||
return this.each(function() {
|
||||
var $this = $(this),
|
||||
selector = (options.selector) ? options.selector : ".slides > li",
|
||||
$slides = $this.find(selector);
|
||||
|
||||
if ($slides.length === 1) {
|
||||
$slides.fadeIn(400);
|
||||
if (options.start) options.start($this);
|
||||
} else if ($this.data('flexslider') == undefined) {
|
||||
new $.flexslider(this, options);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Helper strings to quickly perform functions on the slider
|
||||
var $slider = $(this).data('flexslider');
|
||||
switch (options) {
|
||||
case "play": $slider.play(); break;
|
||||
case "pause": $slider.pause(); break;
|
||||
case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
|
||||
case "prev":
|
||||
case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
|
||||
default: if (typeof options === "number") $slider.flexAnimate(options, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})(jQuery);
|
||||
3
kavin-corporate-bootstrap-responsive-web-template/js/jquery.js
vendored
Normal file
3
kavin-corporate-bootstrap-responsive-web-template/js/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,307 @@
|
||||
/*
|
||||
|
||||
Quicksand 1.2.2
|
||||
|
||||
Reorder and filter items with a nice shuffling animation.
|
||||
|
||||
Copyright (c) 2010 Jacek Galanciak (razorjack.net) and agilope.com
|
||||
Big thanks for Piotr Petrus (riddle.pl) for deep code review and wonderful docs & demos.
|
||||
|
||||
Dual licensed under the MIT and GPL version 2 licenses.
|
||||
http://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt
|
||||
http://github.com/jquery/jquery/blob/master/GPL-LICENSE.txt
|
||||
|
||||
Project site: http://razorjack.net/quicksand
|
||||
Github site: http://github.com/razorjack/quicksand
|
||||
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
$.fn.quicksand = function (collection, customOptions) {
|
||||
var options = {
|
||||
duration: 750,
|
||||
easing: 'swing',
|
||||
attribute: 'data-id', // attribute to recognize same items within source and dest
|
||||
adjustHeight: 'auto', // 'dynamic' animates height during shuffling (slow), 'auto' adjusts it before or after the animation, false leaves height constant
|
||||
useScaling: true, // disable it if you're not using scaling effect or want to improve performance
|
||||
enhancement: function(c) {}, // Visual enhacement (eg. font replacement) function for cloned elements
|
||||
selector: '> *',
|
||||
dx: 0,
|
||||
dy: 0
|
||||
};
|
||||
$.extend(options, customOptions);
|
||||
|
||||
if ($.browser.msie || (typeof($.fn.scale) == 'undefined')) {
|
||||
// Got IE and want scaling effect? Kiss my ass.
|
||||
options.useScaling = false;
|
||||
}
|
||||
|
||||
var callbackFunction;
|
||||
if (typeof(arguments[1]) == 'function') {
|
||||
var callbackFunction = arguments[1];
|
||||
} else if (typeof(arguments[2] == 'function')) {
|
||||
var callbackFunction = arguments[2];
|
||||
}
|
||||
|
||||
|
||||
return this.each(function (i) {
|
||||
var val;
|
||||
var animationQueue = []; // used to store all the animation params before starting the animation; solves initial animation slowdowns
|
||||
var $collection = $(collection).clone(); // destination (target) collection
|
||||
var $sourceParent = $(this); // source, the visible container of source collection
|
||||
var sourceHeight = $(this).css('height'); // used to keep height and document flow during the animation
|
||||
|
||||
var destHeight;
|
||||
var adjustHeightOnCallback = false;
|
||||
|
||||
var offset = $($sourceParent).offset(); // offset of visible container, used in animation calculations
|
||||
var offsets = []; // coordinates of every source collection item
|
||||
|
||||
var $source = $(this).find(options.selector); // source collection items
|
||||
|
||||
// Replace the collection and quit if IE6
|
||||
if ($.browser.msie && $.browser.version.substr(0,1)<7) {
|
||||
$sourceParent.html('').append($collection);
|
||||
return;
|
||||
}
|
||||
|
||||
// Gets called when any animation is finished
|
||||
var postCallbackPerformed = 0; // prevents the function from being called more than one time
|
||||
var postCallback = function () {
|
||||
|
||||
if (!postCallbackPerformed) {
|
||||
postCallbackPerformed = 1;
|
||||
|
||||
// hack:
|
||||
// used to be: $sourceParent.html($dest.html()); // put target HTML into visible source container
|
||||
// but new webkit builds cause flickering when replacing the collections
|
||||
$toDelete = $sourceParent.find('> *');
|
||||
$sourceParent.prepend($dest.find('> *'));
|
||||
$toDelete.remove();
|
||||
|
||||
if (adjustHeightOnCallback) {
|
||||
$sourceParent.css('height', destHeight);
|
||||
}
|
||||
options.enhancement($sourceParent); // Perform custom visual enhancements on a newly replaced collection
|
||||
if (typeof callbackFunction == 'function') {
|
||||
callbackFunction.call(this);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Position: relative situations
|
||||
var $correctionParent = $sourceParent.offsetParent();
|
||||
var correctionOffset = $correctionParent.offset();
|
||||
if ($correctionParent.css('position') == 'relative') {
|
||||
if ($correctionParent.get(0).nodeName.toLowerCase() == 'body') {
|
||||
|
||||
} else {
|
||||
correctionOffset.top += (parseFloat($correctionParent.css('border-top-width')) || 0);
|
||||
correctionOffset.left +=( parseFloat($correctionParent.css('border-left-width')) || 0);
|
||||
}
|
||||
} else {
|
||||
correctionOffset.top -= (parseFloat($correctionParent.css('border-top-width')) || 0);
|
||||
correctionOffset.left -= (parseFloat($correctionParent.css('border-left-width')) || 0);
|
||||
correctionOffset.top -= (parseFloat($correctionParent.css('margin-top')) || 0);
|
||||
correctionOffset.left -= (parseFloat($correctionParent.css('margin-left')) || 0);
|
||||
}
|
||||
|
||||
// perform custom corrections from options (use when Quicksand fails to detect proper correction)
|
||||
if (isNaN(correctionOffset.left)) {
|
||||
correctionOffset.left = 0;
|
||||
}
|
||||
if (isNaN(correctionOffset.top)) {
|
||||
correctionOffset.top = 0;
|
||||
}
|
||||
|
||||
correctionOffset.left -= options.dx;
|
||||
correctionOffset.top -= options.dy;
|
||||
|
||||
// keeps nodes after source container, holding their position
|
||||
$sourceParent.css('height', $(this).height());
|
||||
|
||||
// get positions of source collections
|
||||
$source.each(function (i) {
|
||||
offsets[i] = $(this).offset();
|
||||
});
|
||||
|
||||
// stops previous animations on source container
|
||||
$(this).stop();
|
||||
var dx = 0; var dy = 0;
|
||||
$source.each(function (i) {
|
||||
$(this).stop(); // stop animation of collection items
|
||||
var rawObj = $(this).get(0);
|
||||
if (rawObj.style.position == 'absolute') {
|
||||
dx = -options.dx;
|
||||
dy = -options.dy;
|
||||
} else {
|
||||
dx = options.dx;
|
||||
dy = options.dy;
|
||||
}
|
||||
|
||||
rawObj.style.position = 'absolute';
|
||||
rawObj.style.margin = '0';
|
||||
|
||||
rawObj.style.top = (offsets[i].top - parseFloat(rawObj.style.marginTop) - correctionOffset.top + dy) + 'px';
|
||||
rawObj.style.left = (offsets[i].left - parseFloat(rawObj.style.marginLeft) - correctionOffset.left + dx) + 'px';
|
||||
});
|
||||
|
||||
// create temporary container with destination collection
|
||||
var $dest = $($sourceParent).clone();
|
||||
var rawDest = $dest.get(0);
|
||||
rawDest.innerHTML = '';
|
||||
rawDest.setAttribute('id', '');
|
||||
rawDest.style.height = 'auto';
|
||||
rawDest.style.width = $sourceParent.width() + 'px';
|
||||
$dest.append($collection);
|
||||
// insert node into HTML
|
||||
// Note that the node is under visible source container in the exactly same position
|
||||
// The browser render all the items without showing them (opacity: 0.0)
|
||||
// No offset calculations are needed, the browser just extracts position from underlayered destination items
|
||||
// and sets animation to destination positions.
|
||||
$dest.insertBefore($sourceParent);
|
||||
$dest.css('opacity', 0.0);
|
||||
rawDest.style.zIndex = -1;
|
||||
|
||||
rawDest.style.margin = '0';
|
||||
rawDest.style.position = 'absolute';
|
||||
rawDest.style.top = offset.top - correctionOffset.top + 'px';
|
||||
rawDest.style.left = offset.left - correctionOffset.left + 'px';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (options.adjustHeight === 'dynamic') {
|
||||
// If destination container has different height than source container
|
||||
// the height can be animated, adjusting it to destination height
|
||||
$sourceParent.animate({height: $dest.height()}, options.duration, options.easing);
|
||||
} else if (options.adjustHeight === 'auto') {
|
||||
destHeight = $dest.height();
|
||||
if (parseFloat(sourceHeight) < parseFloat(destHeight)) {
|
||||
// Adjust the height now so that the items don't move out of the container
|
||||
$sourceParent.css('height', destHeight);
|
||||
} else {
|
||||
// Adjust later, on callback
|
||||
adjustHeightOnCallback = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Now it's time to do shuffling animation
|
||||
// First of all, we need to identify same elements within source and destination collections
|
||||
$source.each(function (i) {
|
||||
var destElement = [];
|
||||
if (typeof(options.attribute) == 'function') {
|
||||
|
||||
val = options.attribute($(this));
|
||||
$collection.each(function() {
|
||||
if (options.attribute(this) == val) {
|
||||
destElement = $(this);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
destElement = $collection.filter('[' + options.attribute + '=' + $(this).attr(options.attribute) + ']');
|
||||
}
|
||||
if (destElement.length) {
|
||||
// The item is both in source and destination collections
|
||||
// It it's under different position, let's move it
|
||||
if (!options.useScaling) {
|
||||
animationQueue.push(
|
||||
{
|
||||
element: $(this),
|
||||
animation:
|
||||
{top: destElement.offset().top - correctionOffset.top,
|
||||
left: destElement.offset().left - correctionOffset.left,
|
||||
opacity: 1.0
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
animationQueue.push({
|
||||
element: $(this),
|
||||
animation: {top: destElement.offset().top - correctionOffset.top,
|
||||
left: destElement.offset().left - correctionOffset.left,
|
||||
opacity: 1.0,
|
||||
scale: '1.0'
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
} else {
|
||||
// The item from source collection is not present in destination collections
|
||||
// Let's remove it
|
||||
if (!options.useScaling) {
|
||||
animationQueue.push({element: $(this),
|
||||
animation: {opacity: '0.0'}});
|
||||
} else {
|
||||
animationQueue.push({element: $(this), animation: {opacity: '0.0',
|
||||
scale: '0.0'}});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$collection.each(function (i) {
|
||||
// Grab all items from target collection not present in visible source collection
|
||||
|
||||
var sourceElement = [];
|
||||
var destElement = [];
|
||||
if (typeof(options.attribute) == 'function') {
|
||||
val = options.attribute($(this));
|
||||
$source.each(function() {
|
||||
if (options.attribute(this) == val) {
|
||||
sourceElement = $(this);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$collection.each(function() {
|
||||
if (options.attribute(this) == val) {
|
||||
destElement = $(this);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
sourceElement = $source.filter('[' + options.attribute + '=' + $(this).attr(options.attribute) + ']');
|
||||
destElement = $collection.filter('[' + options.attribute + '=' + $(this).attr(options.attribute) + ']');
|
||||
}
|
||||
|
||||
var animationOptions;
|
||||
if (sourceElement.length === 0) {
|
||||
// No such element in source collection...
|
||||
if (!options.useScaling) {
|
||||
animationOptions = {
|
||||
opacity: '1.0'
|
||||
};
|
||||
} else {
|
||||
animationOptions = {
|
||||
opacity: '1.0',
|
||||
scale: '1.0'
|
||||
};
|
||||
}
|
||||
// Let's create it
|
||||
d = destElement.clone();
|
||||
var rawDestElement = d.get(0);
|
||||
rawDestElement.style.position = 'absolute';
|
||||
rawDestElement.style.margin = '0';
|
||||
rawDestElement.style.top = destElement.offset().top - correctionOffset.top + 'px';
|
||||
rawDestElement.style.left = destElement.offset().left - correctionOffset.left + 'px';
|
||||
d.css('opacity', 0.0); // IE
|
||||
if (options.useScaling) {
|
||||
d.css('transform', 'scale(0.0)');
|
||||
}
|
||||
d.appendTo($sourceParent);
|
||||
|
||||
animationQueue.push({element: $(d),
|
||||
animation: animationOptions});
|
||||
}
|
||||
});
|
||||
|
||||
$dest.remove();
|
||||
options.enhancement($sourceParent); // Perform custom visual enhancements during the animation
|
||||
for (i = 0; i < animationQueue.length; i++) {
|
||||
animationQueue[i].element.animate(animationQueue[i].animation, options.duration, options.easing, postCallback);
|
||||
}
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
jQuery(document).ready(function($){
|
||||
|
||||
if (jQuery().quicksand) {
|
||||
|
||||
// Clone applications to get a second collection
|
||||
var $data = $(".portfolio").clone();
|
||||
|
||||
//NOTE: Only filter on the main portfolio page, not on the subcategory pages
|
||||
$('.filter li').click(function(e) {
|
||||
$(".filter li").removeClass("active");
|
||||
// Use the last category class as the category to filter by. This means that multiple categories are not supported (yet)
|
||||
var filterClass=$(this).attr('class').split(' ').slice(-1)[0];
|
||||
|
||||
if (filterClass == 'all') {
|
||||
var $filteredData = $data.find('.item-thumbs');
|
||||
} else {
|
||||
var $filteredData = $data.find('.item-thumbs[data-type=' + filterClass + ']');
|
||||
}
|
||||
$(".portfolio").quicksand($filteredData, {
|
||||
duration: 600,
|
||||
adjustHeight: 'auto'
|
||||
}, function () {
|
||||
|
||||
// Portfolio fancybox
|
||||
$(".fancybox").fancybox({
|
||||
padding : 0,
|
||||
beforeShow: function () {
|
||||
this.title = $(this.element).attr('title');
|
||||
this.title = '<h4>' + this.title + '</h4>' + '<p>' + $(this.element).parent().find('img').attr('alt') + '</p>';
|
||||
},
|
||||
helpers : {
|
||||
title : { type: 'inside' },
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
$(this).addClass("active");
|
||||
return false;
|
||||
});
|
||||
|
||||
}//if quicksand
|
||||
|
||||
});
|
||||
@@ -0,0 +1,307 @@
|
||||
/*
|
||||
|
||||
Quicksand 1.2.2
|
||||
|
||||
Reorder and filter items with a nice shuffling animation.
|
||||
|
||||
Copyright (c) 2010 Jacek Galanciak (razorjack.net) and agilope.com
|
||||
Big thanks for Piotr Petrus (riddle.pl) for deep code review and wonderful docs & demos.
|
||||
|
||||
Dual licensed under the MIT and GPL version 2 licenses.
|
||||
http://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt
|
||||
http://github.com/jquery/jquery/blob/master/GPL-LICENSE.txt
|
||||
|
||||
Project site: http://razorjack.net/quicksand
|
||||
Github site: http://github.com/razorjack/quicksand
|
||||
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
$.fn.quicksand = function (collection, customOptions) {
|
||||
var options = {
|
||||
duration: 750,
|
||||
easing: 'swing',
|
||||
attribute: 'data-id', // attribute to recognize same items within source and dest
|
||||
adjustHeight: 'auto', // 'dynamic' animates height during shuffling (slow), 'auto' adjusts it before or after the animation, false leaves height constant
|
||||
useScaling: true, // disable it if you're not using scaling effect or want to improve performance
|
||||
enhancement: function(c) {}, // Visual enhacement (eg. font replacement) function for cloned elements
|
||||
selector: '> *',
|
||||
dx: 0,
|
||||
dy: 0
|
||||
};
|
||||
$.extend(options, customOptions);
|
||||
|
||||
if ($.browser.msie || (typeof($.fn.scale) == 'undefined')) {
|
||||
// Got IE and want scaling effect? Kiss my ass.
|
||||
options.useScaling = false;
|
||||
}
|
||||
|
||||
var callbackFunction;
|
||||
if (typeof(arguments[1]) == 'function') {
|
||||
var callbackFunction = arguments[1];
|
||||
} else if (typeof(arguments[2] == 'function')) {
|
||||
var callbackFunction = arguments[2];
|
||||
}
|
||||
|
||||
|
||||
return this.each(function (i) {
|
||||
var val;
|
||||
var animationQueue = []; // used to store all the animation params before starting the animation; solves initial animation slowdowns
|
||||
var $collection = $(collection).clone(); // destination (target) collection
|
||||
var $sourceParent = $(this); // source, the visible container of source collection
|
||||
var sourceHeight = $(this).css('height'); // used to keep height and document flow during the animation
|
||||
|
||||
var destHeight;
|
||||
var adjustHeightOnCallback = false;
|
||||
|
||||
var offset = $($sourceParent).offset(); // offset of visible container, used in animation calculations
|
||||
var offsets = []; // coordinates of every source collection item
|
||||
|
||||
var $source = $(this).find(options.selector); // source collection items
|
||||
|
||||
// Replace the collection and quit if IE6
|
||||
if ($.browser.msie && $.browser.version.substr(0,1)<7) {
|
||||
$sourceParent.html('').append($collection);
|
||||
return;
|
||||
}
|
||||
|
||||
// Gets called when any animation is finished
|
||||
var postCallbackPerformed = 0; // prevents the function from being called more than one time
|
||||
var postCallback = function () {
|
||||
|
||||
if (!postCallbackPerformed) {
|
||||
postCallbackPerformed = 1;
|
||||
|
||||
// hack:
|
||||
// used to be: $sourceParent.html($dest.html()); // put target HTML into visible source container
|
||||
// but new webkit builds cause flickering when replacing the collections
|
||||
$toDelete = $sourceParent.find('> *');
|
||||
$sourceParent.prepend($dest.find('> *'));
|
||||
$toDelete.remove();
|
||||
|
||||
if (adjustHeightOnCallback) {
|
||||
$sourceParent.css('height', destHeight);
|
||||
}
|
||||
options.enhancement($sourceParent); // Perform custom visual enhancements on a newly replaced collection
|
||||
if (typeof callbackFunction == 'function') {
|
||||
callbackFunction.call(this);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Position: relative situations
|
||||
var $correctionParent = $sourceParent.offsetParent();
|
||||
var correctionOffset = $correctionParent.offset();
|
||||
if ($correctionParent.css('position') == 'relative') {
|
||||
if ($correctionParent.get(0).nodeName.toLowerCase() == 'body') {
|
||||
|
||||
} else {
|
||||
correctionOffset.top += (parseFloat($correctionParent.css('border-top-width')) || 0);
|
||||
correctionOffset.left +=( parseFloat($correctionParent.css('border-left-width')) || 0);
|
||||
}
|
||||
} else {
|
||||
correctionOffset.top -= (parseFloat($correctionParent.css('border-top-width')) || 0);
|
||||
correctionOffset.left -= (parseFloat($correctionParent.css('border-left-width')) || 0);
|
||||
correctionOffset.top -= (parseFloat($correctionParent.css('margin-top')) || 0);
|
||||
correctionOffset.left -= (parseFloat($correctionParent.css('margin-left')) || 0);
|
||||
}
|
||||
|
||||
// perform custom corrections from options (use when Quicksand fails to detect proper correction)
|
||||
if (isNaN(correctionOffset.left)) {
|
||||
correctionOffset.left = 0;
|
||||
}
|
||||
if (isNaN(correctionOffset.top)) {
|
||||
correctionOffset.top = 0;
|
||||
}
|
||||
|
||||
correctionOffset.left -= options.dx;
|
||||
correctionOffset.top -= options.dy;
|
||||
|
||||
// keeps nodes after source container, holding their position
|
||||
$sourceParent.css('height', $(this).height());
|
||||
|
||||
// get positions of source collections
|
||||
$source.each(function (i) {
|
||||
offsets[i] = $(this).offset();
|
||||
});
|
||||
|
||||
// stops previous animations on source container
|
||||
$(this).stop();
|
||||
var dx = 0; var dy = 0;
|
||||
$source.each(function (i) {
|
||||
$(this).stop(); // stop animation of collection items
|
||||
var rawObj = $(this).get(0);
|
||||
if (rawObj.style.position == 'absolute') {
|
||||
dx = -options.dx;
|
||||
dy = -options.dy;
|
||||
} else {
|
||||
dx = options.dx;
|
||||
dy = options.dy;
|
||||
}
|
||||
|
||||
rawObj.style.position = 'absolute';
|
||||
rawObj.style.margin = '0';
|
||||
|
||||
rawObj.style.top = (offsets[i].top - parseFloat(rawObj.style.marginTop) - correctionOffset.top + dy) + 'px';
|
||||
rawObj.style.left = (offsets[i].left - parseFloat(rawObj.style.marginLeft) - correctionOffset.left + dx) + 'px';
|
||||
});
|
||||
|
||||
// create temporary container with destination collection
|
||||
var $dest = $($sourceParent).clone();
|
||||
var rawDest = $dest.get(0);
|
||||
rawDest.innerHTML = '';
|
||||
rawDest.setAttribute('id', '');
|
||||
rawDest.style.height = 'auto';
|
||||
rawDest.style.width = $sourceParent.width() + 'px';
|
||||
$dest.append($collection);
|
||||
// insert node into HTML
|
||||
// Note that the node is under visible source container in the exactly same position
|
||||
// The browser render all the items without showing them (opacity: 0.0)
|
||||
// No offset calculations are needed, the browser just extracts position from underlayered destination items
|
||||
// and sets animation to destination positions.
|
||||
$dest.insertBefore($sourceParent);
|
||||
$dest.css('opacity', 0.0);
|
||||
rawDest.style.zIndex = -1;
|
||||
|
||||
rawDest.style.margin = '0';
|
||||
rawDest.style.position = 'absolute';
|
||||
rawDest.style.top = offset.top - correctionOffset.top + 'px';
|
||||
rawDest.style.left = offset.left - correctionOffset.left + 'px';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (options.adjustHeight === 'dynamic') {
|
||||
// If destination container has different height than source container
|
||||
// the height can be animated, adjusting it to destination height
|
||||
$sourceParent.animate({height: $dest.height()}, options.duration, options.easing);
|
||||
} else if (options.adjustHeight === 'auto') {
|
||||
destHeight = $dest.height();
|
||||
if (parseFloat(sourceHeight) < parseFloat(destHeight)) {
|
||||
// Adjust the height now so that the items don't move out of the container
|
||||
$sourceParent.css('height', destHeight);
|
||||
} else {
|
||||
// Adjust later, on callback
|
||||
adjustHeightOnCallback = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Now it's time to do shuffling animation
|
||||
// First of all, we need to identify same elements within source and destination collections
|
||||
$source.each(function (i) {
|
||||
var destElement = [];
|
||||
if (typeof(options.attribute) == 'function') {
|
||||
|
||||
val = options.attribute($(this));
|
||||
$collection.each(function() {
|
||||
if (options.attribute(this) == val) {
|
||||
destElement = $(this);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
destElement = $collection.filter('[' + options.attribute + '=' + $(this).attr(options.attribute) + ']');
|
||||
}
|
||||
if (destElement.length) {
|
||||
// The item is both in source and destination collections
|
||||
// It it's under different position, let's move it
|
||||
if (!options.useScaling) {
|
||||
animationQueue.push(
|
||||
{
|
||||
element: $(this),
|
||||
animation:
|
||||
{top: destElement.offset().top - correctionOffset.top,
|
||||
left: destElement.offset().left - correctionOffset.left,
|
||||
opacity: 1.0
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
animationQueue.push({
|
||||
element: $(this),
|
||||
animation: {top: destElement.offset().top - correctionOffset.top,
|
||||
left: destElement.offset().left - correctionOffset.left,
|
||||
opacity: 1.0,
|
||||
scale: '1.0'
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
} else {
|
||||
// The item from source collection is not present in destination collections
|
||||
// Let's remove it
|
||||
if (!options.useScaling) {
|
||||
animationQueue.push({element: $(this),
|
||||
animation: {opacity: '0.0'}});
|
||||
} else {
|
||||
animationQueue.push({element: $(this), animation: {opacity: '0.0',
|
||||
scale: '0.0'}});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$collection.each(function (i) {
|
||||
// Grab all items from target collection not present in visible source collection
|
||||
|
||||
var sourceElement = [];
|
||||
var destElement = [];
|
||||
if (typeof(options.attribute) == 'function') {
|
||||
val = options.attribute($(this));
|
||||
$source.each(function() {
|
||||
if (options.attribute(this) == val) {
|
||||
sourceElement = $(this);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$collection.each(function() {
|
||||
if (options.attribute(this) == val) {
|
||||
destElement = $(this);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
sourceElement = $source.filter('[' + options.attribute + '=' + $(this).attr(options.attribute) + ']');
|
||||
destElement = $collection.filter('[' + options.attribute + '=' + $(this).attr(options.attribute) + ']');
|
||||
}
|
||||
|
||||
var animationOptions;
|
||||
if (sourceElement.length === 0) {
|
||||
// No such element in source collection...
|
||||
if (!options.useScaling) {
|
||||
animationOptions = {
|
||||
opacity: '1.0'
|
||||
};
|
||||
} else {
|
||||
animationOptions = {
|
||||
opacity: '1.0',
|
||||
scale: '1.0'
|
||||
};
|
||||
}
|
||||
// Let's create it
|
||||
d = destElement.clone();
|
||||
var rawDestElement = d.get(0);
|
||||
rawDestElement.style.position = 'absolute';
|
||||
rawDestElement.style.margin = '0';
|
||||
rawDestElement.style.top = destElement.offset().top - correctionOffset.top + 'px';
|
||||
rawDestElement.style.left = destElement.offset().left - correctionOffset.left + 'px';
|
||||
d.css('opacity', 0.0); // IE
|
||||
if (options.useScaling) {
|
||||
d.css('transform', 'scale(0.0)');
|
||||
}
|
||||
d.appendTo($sourceParent);
|
||||
|
||||
animationQueue.push({element: $(d),
|
||||
animation: animationOptions});
|
||||
}
|
||||
});
|
||||
|
||||
$dest.remove();
|
||||
options.enhancement($sourceParent); // Perform custom visual enhancements during the animation
|
||||
for (i = 0; i < animationQueue.length; i++) {
|
||||
animationQueue[i].element.animate(animationQueue[i].animation, options.duration, options.easing, postCallback);
|
||||
}
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,30 @@
|
||||
jQuery.noConflict();
|
||||
jQuery(document).ready(function($){
|
||||
|
||||
if (jQuery().quicksand) {
|
||||
|
||||
// Clone applications to get a second collection
|
||||
var $data = $(".portfolio-area").clone();
|
||||
|
||||
//NOTE: Only filter on the main portfolio page, not on the subcategory pages
|
||||
$('.portfolio-categ li').click(function(e) {
|
||||
$(".filter li").removeClass("active");
|
||||
// Use the last category class as the category to filter by. This means that multiple categories are not supported (yet)
|
||||
var filterClass=$(this).attr('class').split(' ').slice(-1)[0];
|
||||
|
||||
if (filterClass == 'all') {
|
||||
var $filteredData = $data.find('.item-thumbs');
|
||||
} else {
|
||||
var $filteredData = $data.find('.item-thumbs[data-type=' + filterClass + ']');
|
||||
}
|
||||
$(".portfolio-area").quicksand($filteredData, {
|
||||
duration: 600,
|
||||
adjustHeight: 'auto'
|
||||
}
|
||||
$(this).addClass("active");
|
||||
return false;
|
||||
});
|
||||
|
||||
}//if quicksand
|
||||
|
||||
});
|
||||
106
kavin-corporate-bootstrap-responsive-web-template/js/validate.js
Normal file
106
kavin-corporate-bootstrap-responsive-web-template/js/validate.js
Normal file
@@ -0,0 +1,106 @@
|
||||
/*global jQuery:false */
|
||||
jQuery(document).ready(function($) {
|
||||
"use strict";
|
||||
|
||||
//Contact
|
||||
$('form.validateform').submit(function(){
|
||||
|
||||
var f = $(this).find('.field'),
|
||||
ferror = false,
|
||||
emailExp = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i;
|
||||
|
||||
f.children('input').each(function(){ // run all inputs
|
||||
|
||||
var i = $(this); // current input
|
||||
var rule = i.attr('data-rule');
|
||||
|
||||
if( rule != undefined ){
|
||||
var ierror=false; // error flag for current input
|
||||
var pos = rule.indexOf( ':', 0 );
|
||||
if( pos >= 0 ){
|
||||
var exp = rule.substr( pos+1, rule.length );
|
||||
rule = rule.substr(0, pos);
|
||||
}else{
|
||||
rule = rule.substr( pos+1, rule.length );
|
||||
}
|
||||
|
||||
switch( rule ){
|
||||
case 'required':
|
||||
if( i.val()=='' ){ ferror=ierror=true; }
|
||||
break;
|
||||
|
||||
case 'maxlen':
|
||||
if( i.val().length<parseInt(exp) ){ ferror=ierror=true; }
|
||||
break;
|
||||
|
||||
case 'email':
|
||||
if( !emailExp.test(i.val()) ){ ferror=ierror=true; }
|
||||
break;
|
||||
|
||||
|
||||
case 'checked':
|
||||
if( !i.attr('checked') ){ ferror=ierror=true; }
|
||||
break;
|
||||
|
||||
case 'regexp':
|
||||
exp = new RegExp(exp);
|
||||
if( !exp.test(i.val()) ){ ferror=ierror=true; }
|
||||
break;
|
||||
}
|
||||
i.next('.validation').html( ( ierror ? (i.attr('data-msg') != undefined ? i.attr('data-msg') : 'wrong Input') : '' ) ).show('blind');
|
||||
}
|
||||
});
|
||||
f.children('textarea').each(function(){ // run all inputs
|
||||
|
||||
var i = $(this); // current input
|
||||
var rule = i.attr('data-rule');
|
||||
|
||||
if( rule != undefined ){
|
||||
var ierror=false; // error flag for current input
|
||||
var pos = rule.indexOf( ':', 0 );
|
||||
if( pos >= 0 ){
|
||||
var exp = rule.substr( pos+1, rule.length );
|
||||
rule = rule.substr(0, pos);
|
||||
}else{
|
||||
rule = rule.substr( pos+1, rule.length );
|
||||
}
|
||||
|
||||
switch( rule ){
|
||||
case 'required':
|
||||
if( i.val()=='' ){ ferror=ierror=true; }
|
||||
break;
|
||||
|
||||
case 'maxlen':
|
||||
if( i.val().length<parseInt(exp) ){ ferror=ierror=true; }
|
||||
break;
|
||||
}
|
||||
i.next('.validation').html( ( ierror ? (i.attr('data-msg') != undefined ? i.attr('data-msg') : 'wrong Input') : '' ) ).show('blind');
|
||||
}
|
||||
});
|
||||
if( ferror ) return false;
|
||||
else var str = $(this).serialize();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "contact/contact.php",
|
||||
data: str,
|
||||
success: function(msg){
|
||||
$("#sendmessage").addClass("show");
|
||||
$("#errormessage").ajaxComplete(function(event, request, settings){
|
||||
|
||||
if(msg == 'OK')
|
||||
{
|
||||
$("#sendmessage").addClass("show");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#sendmessage").removeClass("show");
|
||||
result = msg;
|
||||
}
|
||||
|
||||
$(this).html(result);});}});
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user