@ -0,0 +1,162 @@ | |||
jQuery(document).ready(function() { | |||
"use strict"; | |||
/* ------- Preloader ------ */ | |||
jQuery(window).load(function() { | |||
jQuery(".status").fadeOut(); | |||
jQuery(".preloader").delay(1000).fadeOut("slow"); | |||
}); | |||
/* -------- Appears Menu ------ */ | |||
$(window).on('ready , scroll', function() { | |||
if ($(window).scrollTop() > 30) { | |||
$('.main-menu').addClass('minified'); | |||
} else { | |||
$('.main-menu').removeClass('minified'); | |||
} | |||
}); | |||
/* ---------- Hide Menu-------- */ | |||
jQuery(".nav a").on("click", function () { | |||
jQuery("#nav-menu").removeClass("in").addClass("collapse"); | |||
}); | |||
/* --------- One Page Navigation -------- */ | |||
$('#collapsingNavbar').onePageNav({ | |||
currentClass: 'active', | |||
scrollSpeed: 500, | |||
easing: 'linear' | |||
}); | |||
/* ---------- Wow Js ---------- */ | |||
var wow = new WOW( | |||
{ | |||
boxClass: 'wow', // animated element css class (default is wow) | |||
animateClass: 'animated', // animation css class (default is animated) | |||
offset: 250, // distance to the element when triggering the animation (default is 0) | |||
mobile: true, // trigger animations on mobile devices (default is true) | |||
live: true, // act on asynchronously loaded content (default is true) | |||
callback: function(box) { | |||
// the callback is fired every time an animation is started | |||
// the argument that is passed in is the DOM node being animated | |||
} | |||
} | |||
); | |||
wow.init(); | |||
/* --------- Scroll Up --------- */ | |||
$.scrollUp({ | |||
scrollName: 'scrollUp', // Element ID | |||
scrollDistance: 300, // Distance from top/bottom before showing element (px) | |||
scrollFrom: 'top', // 'top' or 'bottom' | |||
scrollSpeed: 5000, // Speed back to top (ms) | |||
easingType: 'linear', // Scroll to top easing (see http://easings.net/) | |||
animation: 'fade', // Fade, slide, none | |||
animationInSpeed: 200, // Animation in speed (ms) | |||
animationOutSpeed: 200, // Animation out speed (ms) | |||
scrollText: 'Scroll to top', // Text for element, can contain HTML | |||
scrollTitle: false, // Set a custom <a> title if required. Defaults to scrollText | |||
scrollImg: true, // Set true to use image | |||
activeOverlay: false, // Set CSS color to display scrollUp active point, e.g '#00FFFF' | |||
zIndex: 99998 // Z-Index for the overlay | |||
}); | |||
/* ---------- lightbox ---------- */ | |||
$('.featured-work-img').magnificPopup({ | |||
type: 'image', | |||
gallery:{ | |||
enabled:true | |||
} | |||
}); | |||
$('.flickr-gallery-img').magnificPopup({ | |||
type: 'image', | |||
gallery:{ | |||
enabled:true | |||
} | |||
}); | |||
/* --------- Carousel Slider ---------- */ | |||
// Feature Works | |||
$("#teams").owlCarousel({ | |||
items : 3, | |||
itemsDesktop: [1199,1], | |||
itemsDesktopSmall: [979,1], | |||
itemsTablet: [768,1], | |||
itemsMobile : [520,1], | |||
autoPlay: 5000 | |||
}); | |||
/* ------------ Stellar ----------- */ | |||
$(window).stellar({ | |||
responsive: true, | |||
positionProperty: 'position' | |||
}); | |||
/* ---------- ISoptope --------- */ | |||
var $container = $('.portfolio-items'); | |||
// filter items on button click | |||
$container.isotope({ | |||
filter: '*', | |||
itemSelector: '.item', | |||
animationOptions: { | |||
duration: 750, | |||
easing: 'linear', | |||
queue: false | |||
} | |||
}); | |||
$('#portfolio-filter ul li a').on('click',function(){ | |||
var selector = $(this).attr('data-filter'); | |||
$container.isotope({ | |||
filter: selector, | |||
animationOptions: { | |||
duration: 750, | |||
easing: 'linear', | |||
queue: false | |||
} | |||
}); | |||
return false; | |||
}); | |||
var $optionSets = $('#portfolio-filter ul'), | |||
$optionLinks = $optionSets.find('a'); | |||
$optionLinks.on('click',function(){ | |||
var $this = $(this); | |||
// don't proceed if already selected | |||
if ( $this.hasClass('selected') ) { | |||
return false; | |||
} | |||
var $optionSet = $this.parents('#portfolio-filter ul'); | |||
$optionSet.find('.selected').removeClass('selected'); | |||
$this.addClass('selected'); | |||
}); | |||
/* ------------ Home Slider ------------- */ | |||
$( '#slider' ).sliderPro({ | |||
width: '100%', | |||
height: 800, | |||
fade: true, | |||
waitForLayers: true, | |||
buttons: true, | |||
autoplay: true, | |||
autoScaleLayers: false, | |||
slideAnimationDuration: 1500, | |||
breakpoints: { | |||
600: { | |||
height: 480 | |||
} | |||
} | |||
}); | |||
}); | |||
@ -0,0 +1,4 @@ | |||
/** | |||
* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed | |||
*/ | |||
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); |
@ -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,360 @@ | |||
/**! | |||
* easyPieChart | |||
* Lightweight plugin to render simple, animated and retina optimized pie charts | |||
* | |||
* @license | |||
* @author Robert Fleischmann <rendro87@gmail.com> (http://robert-fleischmann.de) | |||
* @version 2.1.6 | |||
**/ | |||
(function(root, factory) { | |||
if(typeof exports === 'object') { | |||
module.exports = factory(require('jquery')); | |||
} | |||
else if(typeof define === 'function' && define.amd) { | |||
define(['jquery'], factory); | |||
} | |||
else { | |||
factory(root.jQuery); | |||
} | |||
}(this, function($) { | |||
/** | |||
* Renderer to render the chart on a canvas object | |||
* @param {DOMElement} el DOM element to host the canvas (root of the plugin) | |||
* @param {object} options options object of the plugin | |||
*/ | |||
var CanvasRenderer = function(el, options) { | |||
var cachedBackground; | |||
var canvas = document.createElement('canvas'); | |||
el.appendChild(canvas); | |||
if (typeof(G_vmlCanvasManager) !== 'undefined') { | |||
G_vmlCanvasManager.initElement(canvas); | |||
} | |||
var ctx = canvas.getContext('2d'); | |||
canvas.width = canvas.height = options.size; | |||
// canvas on retina devices | |||
var scaleBy = 1; | |||
if (window.devicePixelRatio > 1) { | |||
scaleBy = window.devicePixelRatio; | |||
canvas.style.width = canvas.style.height = [options.size, 'px'].join(''); | |||
canvas.width = canvas.height = options.size * scaleBy; | |||
ctx.scale(scaleBy, scaleBy); | |||
} | |||
// move 0,0 coordinates to the center | |||
ctx.translate(options.size / 2, options.size / 2); | |||
// rotate canvas -90deg | |||
ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); | |||
var radius = (options.size - options.lineWidth) / 2; | |||
if (options.scaleColor && options.scaleLength) { | |||
radius -= options.scaleLength + 2; // 2 is the distance between scale and bar | |||
} | |||
// IE polyfill for Date | |||
Date.now = Date.now || function() { | |||
return +(new Date()); | |||
}; | |||
/** | |||
* Draw a circle around the center of the canvas | |||
* @param {strong} color Valid CSS color string | |||
* @param {number} lineWidth Width of the line in px | |||
* @param {number} percent Percentage to draw (float between -1 and 1) | |||
*/ | |||
var drawCircle = function(color, lineWidth, percent) { | |||
percent = Math.min(Math.max(-1, percent || 0), 1); | |||
var isNegative = percent <= 0 ? true : false; | |||
ctx.beginPath(); | |||
ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, isNegative); | |||
ctx.strokeStyle = color; | |||
ctx.lineWidth = lineWidth; | |||
ctx.stroke(); | |||
}; | |||
/** | |||
* Draw the scale of the chart | |||
*/ | |||
var drawScale = function() { | |||
var offset; | |||
var length; | |||
ctx.lineWidth = 1; | |||
ctx.fillStyle = options.scaleColor; | |||
ctx.save(); | |||
for (var i = 24; i > 0; --i) { | |||
if (i % 6 === 0) { | |||
length = options.scaleLength; | |||
offset = 0; | |||
} else { | |||
length = options.scaleLength * 0.6; | |||
offset = options.scaleLength - length; | |||
} | |||
ctx.fillRect(-options.size/2 + offset, 0, length, 1); | |||
ctx.rotate(Math.PI / 12); | |||
} | |||
ctx.restore(); | |||
}; | |||
/** | |||
* Request animation frame wrapper with polyfill | |||
* @return {function} Request animation frame method or timeout fallback | |||
*/ | |||
var reqAnimationFrame = (function() { | |||
return window.requestAnimationFrame || | |||
window.webkitRequestAnimationFrame || | |||
window.mozRequestAnimationFrame || | |||
function(callback) { | |||
window.setTimeout(callback, 1000 / 60); | |||
}; | |||
}()); | |||
/** | |||
* Draw the background of the plugin including the scale and the track | |||
*/ | |||
var drawBackground = function() { | |||
if(options.scaleColor) drawScale(); | |||
if(options.trackColor) drawCircle(options.trackColor, options.trackWidth || options.lineWidth, 1); | |||
}; | |||
/** | |||
* Canvas accessor | |||
*/ | |||
this.getCanvas = function() { | |||
return canvas; | |||
}; | |||
/** | |||
* Canvas 2D context 'ctx' accessor | |||
*/ | |||
this.getCtx = function() { | |||
return ctx; | |||
}; | |||
/** | |||
* Clear the complete canvas | |||
*/ | |||
this.clear = function() { | |||
ctx.clearRect(options.size / -2, options.size / -2, options.size, options.size); | |||
}; | |||
/** | |||
* Draw the complete chart | |||
* @param {number} percent Percent shown by the chart between -100 and 100 | |||
*/ | |||
this.draw = function(percent) { | |||
// do we need to render a background | |||
if (!!options.scaleColor || !!options.trackColor) { | |||
// getImageData and putImageData are supported | |||
if (ctx.getImageData && ctx.putImageData) { | |||
if (!cachedBackground) { | |||
drawBackground(); | |||
cachedBackground = ctx.getImageData(0, 0, options.size * scaleBy, options.size * scaleBy); | |||
} else { | |||
ctx.putImageData(cachedBackground, 0, 0); | |||
} | |||
} else { | |||
this.clear(); | |||
drawBackground(); | |||
} | |||
} else { | |||
this.clear(); | |||
} | |||
ctx.lineCap = options.lineCap; | |||
// if barcolor is a function execute it and pass the percent as a value | |||
var color; | |||
if (typeof(options.barColor) === 'function') { | |||
color = options.barColor(percent); | |||
} else { | |||
color = options.barColor; | |||
} | |||
// draw bar | |||
drawCircle(color, options.lineWidth, percent / 100); | |||
}.bind(this); | |||
/** | |||
* Animate from some percent to some other percentage | |||
* @param {number} from Starting percentage | |||
* @param {number} to Final percentage | |||
*/ | |||
this.animate = function(from, to) { | |||
var startTime = Date.now(); | |||
options.onStart(from, to); | |||
var animation = function() { | |||
var process = Math.min(Date.now() - startTime, options.animate.duration); | |||
var currentValue = options.easing(this, process, from, to - from, options.animate.duration); | |||
this.draw(currentValue); | |||
options.onStep(from, to, currentValue); | |||
if (process >= options.animate.duration) { | |||
options.onStop(from, to); | |||
} else { | |||
reqAnimationFrame(animation); | |||
} | |||
}.bind(this); | |||
reqAnimationFrame(animation); | |||
}.bind(this); | |||
}; | |||
var EasyPieChart = function(el, opts) { | |||
var defaultOptions = { | |||
barColor: '#ef1e25', | |||
trackColor: '#f9f9f9', | |||
scaleColor: '#dfe0e0', | |||
scaleLength: 5, | |||
lineCap: 'round', | |||
lineWidth: 3, | |||
trackWidth: undefined, | |||
size: 110, | |||
rotate: 0, | |||
animate: { | |||
duration: 1000, | |||
enabled: true | |||
}, | |||
easing: function (x, t, b, c, d) { // more can be found here: http://gsgd.co.uk/sandbox/jquery/easing/ | |||
t = t / (d/2); | |||
if (t < 1) { | |||
return c / 2 * t * t + b; | |||
} | |||
return -c/2 * ((--t)*(t-2) - 1) + b; | |||
}, | |||
onStart: function(from, to) { | |||
return; | |||
}, | |||
onStep: function(from, to, currentValue) { | |||
return; | |||
}, | |||
onStop: function(from, to) { | |||
return; | |||
} | |||
}; | |||
// detect present renderer | |||
if (typeof(CanvasRenderer) !== 'undefined') { | |||
defaultOptions.renderer = CanvasRenderer; | |||
} else if (typeof(SVGRenderer) !== 'undefined') { | |||
defaultOptions.renderer = SVGRenderer; | |||
} else { | |||
throw new Error('Please load either the SVG- or the CanvasRenderer'); | |||
} | |||
var options = {}; | |||
var currentValue = 0; | |||
/** | |||
* Initialize the plugin by creating the options object and initialize rendering | |||
*/ | |||
var init = function() { | |||
this.el = el; | |||
this.options = options; | |||
// merge user options into default options | |||
for (var i in defaultOptions) { | |||
if (defaultOptions.hasOwnProperty(i)) { | |||
options[i] = opts && typeof(opts[i]) !== 'undefined' ? opts[i] : defaultOptions[i]; | |||
if (typeof(options[i]) === 'function') { | |||
options[i] = options[i].bind(this); | |||
} | |||
} | |||
} | |||
// check for jQuery easing | |||
if (typeof(options.easing) === 'string' && typeof(jQuery) !== 'undefined' && jQuery.isFunction(jQuery.easing[options.easing])) { | |||
options.easing = jQuery.easing[options.easing]; | |||
} else { | |||
options.easing = defaultOptions.easing; | |||
} | |||
// process earlier animate option to avoid bc breaks | |||
if (typeof(options.animate) === 'number') { | |||
options.animate = { | |||
duration: options.animate, | |||
enabled: true | |||
}; | |||
} | |||
if (typeof(options.animate) === 'boolean' && !options.animate) { | |||
options.animate = { | |||
duration: 1000, | |||
enabled: options.animate | |||
}; | |||
} | |||
// create renderer | |||
this.renderer = new options.renderer(el, options); | |||
// initial draw | |||
this.renderer.draw(currentValue); | |||
// initial update | |||
if (el.dataset && el.dataset.percent) { | |||
this.update(parseFloat(el.dataset.percent)); | |||
} else if (el.getAttribute && el.getAttribute('data-percent')) { | |||
this.update(parseFloat(el.getAttribute('data-percent'))); | |||
} | |||
}.bind(this); | |||
/** | |||
* Update the value of the chart | |||
* @param {number} newValue Number between 0 and 100 | |||
* @return {object} Instance of the plugin for method chaining | |||
*/ | |||
this.update = function(newValue) { | |||
newValue = parseFloat(newValue); | |||
if (options.animate.enabled) { | |||
this.renderer.animate(currentValue, newValue); | |||
} else { | |||
this.renderer.draw(newValue); | |||
} | |||
currentValue = newValue; | |||
return this; | |||
}.bind(this); | |||
/** | |||
* Disable animation | |||
* @return {object} Instance of the plugin for method chaining | |||
*/ | |||
this.disableAnimation = function() { | |||
options.animate.enabled = false; | |||
return this; | |||
}; | |||
/** | |||
* Enable animation | |||
* @return {object} Instance of the plugin for method chaining | |||
*/ | |||
this.enableAnimation = function() { | |||
options.animate.enabled = true; | |||
return this; | |||
}; | |||
init(); | |||
}; | |||
$.fn.easyPieChart = function(options) { | |||
return this.each(function() { | |||
var instanceOptions; | |||
if (!$.data(this, 'easyPieChart')) { | |||
instanceOptions = $.extend({}, options, $(this).data()); | |||
$.data(this, 'easyPieChart', new EasyPieChart(this, instanceOptions)); | |||
} | |||
}); | |||
}; | |||
})); |
@ -0,0 +1,83 @@ | |||
/*global jQuery */ | |||
/*jshint browser:true */ | |||
/*! | |||
* FitVids 1.1 | |||
* | |||
* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com | |||
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ | |||
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/ | |||
* | |||
*/ | |||
;(function( $ ){ | |||
'use strict'; | |||
$.fn.fitVids = function( options ) { | |||
var settings = { | |||
customSelector: null, | |||
ignore: null | |||
}; | |||
if(!document.getElementById('fit-vids-style')) { | |||
// appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js | |||
var head = document.head || document.getElementsByTagName('head')[0]; | |||
var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}'; | |||
var div = document.createElement("div"); | |||
div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>'; | |||
head.appendChild(div.childNodes[1]); | |||
} | |||
if ( options ) { | |||
$.extend( settings, options ); | |||
} | |||
return this.each(function(){ | |||
var selectors = [ | |||
'iframe[src*="player.vimeo.com"]', | |||
'iframe[src*="youtube.com"]', | |||
'iframe[src*="youtube-nocookie.com"]', | |||
'iframe[src*="kickstarter.com"][src*="video.html"]', | |||
'object', | |||
'embed' | |||
]; | |||
if (settings.customSelector) { | |||
selectors.push(settings.customSelector); | |||
} | |||
var ignoreList = '.fitvidsignore'; | |||
if(settings.ignore) { | |||
ignoreList = ignoreList + ', ' + settings.ignore; | |||
} | |||
var $allVideos = $(this).find(selectors.join(',')); | |||
$allVideos = $allVideos.not('object object'); // SwfObj conflict patch | |||
$allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. | |||
$allVideos.each(function(count){ | |||
var $this = $(this); | |||
if($this.parents(ignoreList).length > 0) { | |||
return; // Disable FitVids on this video. | |||
} | |||
if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } | |||
if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) | |||
{ | |||
$this.attr('height', 9); | |||
$this.attr('width', 16); | |||
} | |||
var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), | |||
width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), | |||
aspectRatio = height / width; | |||
if(!$this.attr('id')){ | |||
var videoID = 'fitvid' + count; | |||
$this.attr('id', videoID); | |||
} | |||
$this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); | |||
$this.removeAttr('height').removeAttr('width'); | |||
}); | |||
}); | |||
}; | |||
// Works with either jQuery or Zepto | |||
})( window.jQuery || window.Zepto ); |
@ -0,0 +1,223 @@ | |||
/* | |||
* jQuery One Page Nav Plugin | |||
* http://github.com/davist11/jQuery-One-Page-Nav | |||
* | |||
* Copyright (c) 2010 Trevor Davis (http://trevordavis.net) | |||
* Dual licensed under the MIT and GPL licenses. | |||
* Uses the same license as jQuery, see: | |||
* http://jquery.org/license | |||
* | |||
* @version 3.0.0 | |||
* | |||
* Example usage: | |||
* $('#nav').onePageNav({ | |||
* currentClass: 'current', | |||
* changeHash: false, | |||
* scrollSpeed: 750 | |||
* }); | |||
*/ | |||
;(function($, window, document, undefined){ | |||
// our plugin constructor | |||
var OnePageNav = function(elem, options){ | |||
this.elem = elem; | |||
this.$elem = $(elem); | |||
this.options = options; | |||
this.metadata = this.$elem.data('plugin-options'); | |||
this.$win = $(window); | |||
this.sections = {}; | |||
this.didScroll = false; | |||
this.$doc = $(document); | |||
this.docHeight = this.$doc.height(); | |||
}; | |||
// the plugin prototype | |||
OnePageNav.prototype = { | |||
defaults: { | |||
navItems: 'a', | |||
currentClass: 'current', | |||
changeHash: false, | |||
easing: 'swing', | |||
filter: '', | |||
scrollSpeed: 750, | |||
scrollThreshold: 0.5, | |||
begin: false, | |||
end: false, | |||
scrollChange: false | |||
}, | |||
init: function() { | |||
// Introduce defaults that can be extended either | |||
// globally or using an object literal. | |||
this.config = $.extend({}, this.defaults, this.options, this.metadata); | |||
this.$nav = this.$elem.find(this.config.navItems); | |||
//Filter any links out of the nav | |||
if(this.config.filter !== '') { | |||
this.$nav = this.$nav.filter(this.config.filter); | |||
} | |||
//Handle clicks on the nav | |||
this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this)); | |||
//Get the section positions | |||
this.getPositions(); | |||
//Handle scroll changes | |||
this.bindInterval(); | |||
//Update the positions on resize too | |||
this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this)); | |||
return this; | |||
}, | |||
adjustNav: function(self, $parent) { | |||
self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass); | |||
$parent.addClass(self.config.currentClass); | |||
}, | |||
bindInterval: function() { | |||
var self = this; | |||
var docHeight; | |||
self.$win.on('scroll.onePageNav', function() { | |||
self.didScroll = true; | |||
}); | |||
self.t = setInterval(function() { | |||
docHeight = self.$doc.height(); | |||
//If it was scrolled | |||
if(self.didScroll) { | |||
self.didScroll = false; | |||
self.scrollChange(); | |||
} | |||
//If the document height changes | |||
if(docHeight !== self.docHeight) { | |||
self.docHeight = docHeight; | |||
self.getPositions(); | |||
} | |||
}, 250); | |||
}, | |||
getHash: function($link) { | |||
return $link.attr('href').split('#')[1]; | |||
}, | |||
getPositions: function() { | |||
var self = this; | |||
var linkHref; | |||
var topPos; | |||
var $target; | |||
self.$nav.each(function() { | |||
linkHref = self.getHash($(this)); | |||
$target = $('#' + linkHref); | |||
if($target.length) { | |||
topPos = $target.offset().top; | |||
self.sections[linkHref] = Math.round(topPos); | |||
} | |||
}); | |||
}, | |||
getSection: function(windowPos) { | |||
var returnValue = null; | |||
var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold); | |||
for(var section in this.sections) { | |||
if((this.sections[section] - windowHeight) < windowPos) { | |||
returnValue = section; | |||
} | |||
} | |||
return returnValue; | |||
}, | |||
handleClick: function(e) { | |||
var self = this; | |||
var $link = $(e.currentTarget); | |||
var $parent = $link.parent(); | |||
var newLoc = '#' + self.getHash($link); | |||
if(!$parent.hasClass(self.config.currentClass)) { | |||
//Start callback | |||
if(self.config.begin) { | |||
self.config.begin(); | |||
} | |||
//Change the highlighted nav item | |||
self.adjustNav(self, $parent); | |||
//Removing the auto-adjust on scroll | |||
self.unbindInterval(); | |||
//Scroll to the correct position | |||
self.scrollTo(newLoc, function() { | |||
//Do we need to change the hash? | |||
if(self.config.changeHash) { | |||
window.location.hash = newLoc; | |||
} | |||
//Add the auto-adjust on scroll back in | |||
self.bindInterval(); | |||
//End callback | |||
if(self.config.end) { | |||
self.config.end(); | |||
} | |||
}); | |||
} | |||
e.preventDefault(); | |||
}, | |||
scrollChange: function() { | |||
var windowTop = this.$win.scrollTop(); | |||
var position = this.getSection(windowTop); | |||
var $parent; | |||
//If the position is set | |||
if(position !== null) { | |||
$parent = this.$elem.find('a[href$="#' + position + '"]').parent(); | |||
//If it's not already the current section | |||
if(!$parent.hasClass(this.config.currentClass)) { | |||
//Change the highlighted nav item | |||
this.adjustNav(this, $parent); | |||
//If there is a scrollChange callback | |||
if(this.config.scrollChange) { | |||
this.config.scrollChange($parent); | |||
} | |||
} | |||
} | |||
}, | |||
scrollTo: function(target, callback) { | |||
var offset = $(target).offset().top; | |||
$('html, body').animate({ | |||
scrollTop: offset | |||
}, this.config.scrollSpeed, this.config.easing, callback); | |||
}, | |||
unbindInterval: function() { | |||
clearInterval(this.t); | |||
this.$win.unbind('scroll.onePageNav'); | |||
} | |||
}; | |||
OnePageNav.defaults = OnePageNav.prototype.defaults; | |||
$.fn.onePageNav = function(options) { | |||
return this.each(function() { | |||
new OnePageNav(this, options).init(); | |||
}); | |||
}; | |||
})( jQuery, window , document ); |
@ -0,0 +1,7 @@ | |||
/*! | |||
* scrollup v2.4.1 | |||
* Url: http://markgoodyear.com/labs/scrollup/ | |||
* Copyright (c) Mark Goodyear — @markgdyr — http://markgoodyear.com | |||
* License: MIT | |||
*/ | |||
!function(l,o,e){"use strict";l.fn.scrollUp=function(o){l.data(e.body,"scrollUp")||(l.data(e.body,"scrollUp",!0),l.fn.scrollUp.init(o))},l.fn.scrollUp.init=function(r){var s,t,c,i,n,a,d,p=l.fn.scrollUp.settings=l.extend({},l.fn.scrollUp.defaults,r),f=!1;switch(d=p.scrollTrigger?l(p.scrollTrigger):l("<a/>",{id:p.scrollName,href:"#top"}),p.scrollTitle&&d.attr("title",p.scrollTitle),d.appendTo("body"),p.scrollImg||p.scrollTrigger||d.html(p.scrollText),d.css({display:"none",position:"fixed",zIndex:p.zIndex}),p.activeOverlay&&l("<div/>",{id:p.scrollName+"-active"}).css({position:"absolute",top:p.scrollDistance+"px",width:"100%",borderTop:"1px dotted"+p.activeOverlay,zIndex:p.zIndex}).appendTo("body"),p.animation){case"fade":s="fadeIn",t="fadeOut",c=p.animationSpeed;break;case"slide":s="slideDown",t="slideUp",c=p.animationSpeed;break;default:s="show",t="hide",c=0}i="top"===p.scrollFrom?p.scrollDistance:l(e).height()-l(o).height()-p.scrollDistance,n=l(o).scroll(function(){l(o).scrollTop()>i?f||(d[s](c),f=!0):f&&(d[t](c),f=!1)}),p.scrollTarget?"number"==typeof p.scrollTarget?a=p.scrollTarget:"string"==typeof p.scrollTarget&&(a=Math.floor(l(p.scrollTarget).offset().top)):a=0,d.click(function(o){o.preventDefault(),l("html, body").animate({scrollTop:a},p.scrollSpeed,p.easingType)})},l.fn.scrollUp.defaults={scrollName:"scrollUp",scrollDistance:300,scrollFrom:"top",scrollSpeed:300,easingType:"linear",animation:"fade",animationSpeed:200,scrollTrigger:!1,scrollTarget:!1,scrollText:"Scroll to top",scrollTitle:!1,scrollImg:!1,activeOverlay:!1,zIndex:2147483647},l.fn.scrollUp.destroy=function(r){l.removeData(e.body,"scrollUp"),l("#"+l.fn.scrollUp.settings.scrollName).remove(),l("#"+l.fn.scrollUp.settings.scrollName+"-active").remove(),l.fn.jquery.split(".")[1]>=7?l(o).off("scroll",r):l(o).unbind("scroll",r)},l.scrollUp=l.fn.scrollUp}(jQuery,window,document); |
@ -0,0 +1,47 @@ | |||
"function"!==typeof Object.create&&(Object.create=function(f){function g(){}g.prototype=f;return new g}); | |||
(function(f,g,k){var l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function a(a){var d,e="";if("function"===typeof b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var b=this,e;"function"===typeof b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);"string"===typeof b.options.jsonPath? | |||
(e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data("owl-originalStyles",this.$elem.attr("style"));this.$elem.data("owl-originalClasses",this.$elem.attr("class"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length; | |||
this.wrapItems();this.$owlItems=this.$elem.find(".owl-item");this.$owlWrapper=this.$elem.find(".owl-wrapper");this.playDirection="next";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&& | |||
(this.options.autoPlay=5E3);this.play();this.$elem.find(".owl-wrapper").css("display","block");this.$elem.is(":visible")?this.$elem.css("opacity",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();"function"===typeof this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();"function"===typeof this.options.afterAction&&this.options.afterAction.apply(this, | |||
[this.$elem])},updateVars:function(){"function"===typeof this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();"function"===typeof this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var a=this;if(!1===a.$elem.is(":visible"))a.$elem.css({opacity:0}), | |||
g.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(":visible")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('<div class="owl-wrapper">').wrap('<div class="owl-item"></div>');this.$elem.find(".owl-wrapper").wrap('<div class="owl-wrapper-outer">');this.wrapperOuter=this.$elem.find(".owl-wrapper-outer");this.$elem.css("display","block")}, | |||
baseClass:function(){var a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall= | |||
!1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),b=0;b<this.options.itemsCustom.length;b+=1)this.options.itemsCustom[b][0]<=a&&(this.options.items=this.options.itemsCustom[b][1]);else a<=this.options.itemsDesktop[0]&&!1!==this.options.itemsDesktop&&(this.options.items=this.options.itemsDesktop[1]), | |||
a<=this.options.itemsDesktopSmall[0]&&!1!==this.options.itemsDesktopSmall&&(this.options.items=this.options.itemsDesktopSmall[1]),a<=this.options.itemsTablet[0]&&!1!==this.options.itemsTablet&&(this.options.items=this.options.itemsTablet[1]),a<=this.options.itemsTabletSmall[0]&&!1!==this.options.itemsTabletSmall&&(this.options.items=this.options.itemsTabletSmall[1]),a<=this.options.itemsMobile[0]&&!1!==this.options.itemsMobile&&(this.options.items=this.options.itemsMobile[1]);this.options.items>this.itemsAmount&& | |||
!0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.autoPlay&&this.checkAp()},appendItemsSizes:function(){var a= | |||
this,b=0,e=a.itemsAmount-a.options.items;a.$owlItems.each(function(c){var d=f(this);d.css({width:a.itemWidth}).data("owl-item",Number(c));if(0===c%a.options.items||c===e)c>e||(b+=1);d.data("owl-roundPages",b)})},appendWrapperSizes:function(){this.$owlWrapper.css({width:this.$owlItems.length*this.itemWidth*2,left:0});this.appendItemsSizes()},calculateAll:function(){this.calculateWidth();this.appendWrapperSizes();this.loops();this.max()},calculateWidth:function(){this.itemWidth=Math.round(this.$elem.width()/ | |||
this.options.items)},max:function(){var a=-1*(this.itemsAmount*this.itemWidth-this.options.items*this.itemWidth);this.options.items>this.itemsAmount?this.maximumPixels=a=this.maximumItem=0:(this.maximumItem=this.itemsAmount-this.options.items,this.maximumPixels=a);return a},min:function(){return 0},loops:function(){var a=0,b=0,e,c;this.positionsInArray=[0];this.pagesInArray=[];for(e=0;e<this.itemsAmount;e+=1)b+=this.itemWidth,this.positionsInArray.push(-b),!0===this.options.scrollPerPage&&(c=f(this.$owlItems[e]), | |||
c=c.data("owl-roundPages"),c!==a&&(this.pagesInArray[a]=this.positionsInArray[e],a=c))},buildControls:function(){if(!0===this.options.navigation||!0===this.options.pagination)this.owlControls=f('<div class="owl-controls"/>').toggleClass("clickable",!this.browser.isTouch).appendTo(this.$elem);!0===this.options.pagination&&this.buildPagination();!0===this.options.navigation&&this.buildButtons()},buildButtons:function(){var a=this,b=f('<div class="owl-buttons"/>');a.owlControls.append(b);a.buttonPrev= | |||
f("<div/>",{"class":"owl-prev",html:a.options.navigationText[0]||""});a.buttonNext=f("<div/>",{"class":"owl-next",html:a.options.navigationText[1]||""});b.append(a.buttonPrev).append(a.buttonNext);b.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(a){a.preventDefault()});b.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(b){b.preventDefault();f(this).hasClass("owl-next")?a.next():a.prev()})},buildPagination:function(){var a=this;a.paginationWrapper= | |||
f('<div class="owl-pagination"/>');a.owlControls.append(a.paginationWrapper);a.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(b){b.preventDefault();Number(f(this).data("owl-page"))!==a.currentItem&&a.goTo(Number(f(this).data("owl-page")),!0)})},updatePagination:function(){var a,b,e,c,d,g;if(!1===this.options.pagination)return!1;this.paginationWrapper.html("");a=0;b=this.itemsAmount-this.itemsAmount%this.options.items;for(c=0;c<this.itemsAmount;c+=1)0===c%this.options.items&& | |||
(a+=1,b===c&&(e=this.itemsAmount-this.options.items),d=f("<div/>",{"class":"owl-page"}),g=f("<span></span>",{text:!0===this.options.paginationNumbers?a:"","class":!0===this.options.paginationNumbers?"owl-numbers":""}),d.append(g),d.data("owl-page",b===c?e:c),d.data("owl-roundPages",a),this.paginationWrapper.append(d));this.checkPagination()},checkPagination:function(){var a=this;if(!1===a.options.pagination)return!1;a.paginationWrapper.find(".owl-page").each(function(){f(this).data("owl-roundPages")=== | |||
f(a.$owlItems[a.currentItem]).data("owl-roundPages")&&(a.paginationWrapper.find(".owl-page").removeClass("active"),f(this).addClass("active"))})},checkNavigation:function(){if(!1===this.options.navigation)return!1;!1===this.options.rewindNav&&(0===this.currentItem&&0===this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.addClass("disabled")):0===this.currentItem&&0!==this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.removeClass("disabled")):this.currentItem=== | |||
this.maximumItem?(this.buttonPrev.removeClass("disabled"),this.buttonNext.addClass("disabled")):0!==this.currentItem&&this.currentItem!==this.maximumItem&&(this.buttonPrev.removeClass("disabled"),this.buttonNext.removeClass("disabled")))},updateControls:function(){this.updatePagination();this.checkNavigation();this.owlControls&&(this.options.items>=this.itemsAmount?this.owlControls.hide():this.owlControls.show())},destroyControls:function(){this.owlControls&&this.owlControls.remove()},next:function(a){if(this.isTransition)return!1; | |||
this.currentItem+=!0===this.options.scrollPerPage?this.options.items:1;if(this.currentItem>this.maximumItem+(!0===this.options.scrollPerPage?this.options.items-1:0))if(!0===this.options.rewindNav)this.currentItem=0,a="rewind";else return this.currentItem=this.maximumItem,!1;this.goTo(this.currentItem,a)},prev:function(a){if(this.isTransition)return!1;this.currentItem=!0===this.options.scrollPerPage&&0<this.currentItem&&this.currentItem<this.options.items?0:this.currentItem-(!0===this.options.scrollPerPage? | |||
this.options.items:1);if(0>this.currentItem)if(!0===this.options.rewindNav)this.currentItem=this.maximumItem,a="rewind";else return this.currentItem=0,!1;this.goTo(this.currentItem,a)},goTo:function(a,b,e){var c=this;if(c.isTransition)return!1;"function"===typeof c.options.beforeMove&&c.options.beforeMove.apply(this,[c.$elem]);a>=c.maximumItem?a=c.maximumItem:0>=a&&(a=0);c.currentItem=c.owl.currentItem=a;if(!1!==c.options.transitionStyle&&"drag"!==e&&1===c.options.items&&!0===c.browser.support3d)return c.swapSpeed(0), | |||
!0===c.browser.support3d?c.transition3d(c.positionsInArray[a]):c.css2slide(c.positionsInArray[a],1),c.afterGo(),c.singleItemTransition(),!1;a=c.positionsInArray[a];!0===c.browser.support3d?(c.isCss3Finish=!1,!0===b?(c.swapSpeed("paginationSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},c.options.paginationSpeed)):"rewind"===b?(c.swapSpeed(c.options.rewindSpeed),g.setTimeout(function(){c.isCss3Finish=!0},c.options.rewindSpeed)):(c.swapSpeed("slideSpeed"),g.setTimeout(function(){c.isCss3Finish=!0}, | |||
c.options.slideSpeed)),c.transition3d(a)):!0===b?c.css2slide(a,c.options.paginationSpeed):"rewind"===b?c.css2slide(a,c.options.rewindSpeed):c.css2slide(a,c.options.slideSpeed);c.afterGo()},jumpTo:function(a){"function"===typeof this.options.beforeMove&&this.options.beforeMove.apply(this,[this.$elem]);a>=this.maximumItem||-1===a?a=this.maximumItem:0>=a&&(a=0);this.swapSpeed(0);!0===this.browser.support3d?this.transition3d(this.positionsInArray[a]):this.css2slide(this.positionsInArray[a],1);this.currentItem= | |||
this.owl.currentItem=a;this.afterGo()},afterGo:function(){this.prevArr.push(this.currentItem);this.prevItem=this.owl.prevItem=this.prevArr[this.prevArr.length-2];this.prevArr.shift(0);this.prevItem!==this.currentItem&&(this.checkPagination(),this.checkNavigation(),this.eachMoveUpdate(),!1!==this.options.autoPlay&&this.checkAp());"function"===typeof this.options.afterMove&&this.prevItem!==this.currentItem&&this.options.afterMove.apply(this,[this.$elem])},stop:function(){this.apStatus="stop";g.clearInterval(this.autoPlayInterval)}, | |||
checkAp:function(){"stop"!==this.apStatus&&this.play()},play:function(){var a=this;a.apStatus="play";if(!1===a.options.autoPlay)return!1;g.clearInterval(a.autoPlayInterval);a.autoPlayInterval=g.setInterval(function(){a.next(!0)},a.options.autoPlay)},swapSpeed:function(a){"slideSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)):"paginationSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)):"string"!==typeof a&&this.$owlWrapper.css(this.addCssSpeed(a))}, | |||
addCssSpeed:function(a){return{"-webkit-transition":"all "+a+"ms ease","-moz-transition":"all "+a+"ms ease","-o-transition":"all "+a+"ms ease",transition:"all "+a+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(a){return{"-webkit-transform":"translate3d("+a+"px, 0px, 0px)","-moz-transform":"translate3d("+a+"px, 0px, 0px)","-o-transform":"translate3d("+a+"px, 0px, 0px)","-ms-transform":"translate3d("+ | |||
a+"px, 0px, 0px)",transform:"translate3d("+a+"px, 0px,0px)"}},transition3d:function(a){this.$owlWrapper.css(this.doTranslate(a))},css2move:function(a){this.$owlWrapper.css({left:a})},css2slide:function(a,b){var e=this;e.isCssFinish=!1;e.$owlWrapper.stop(!0,!0).animate({left:a},{duration:b||e.options.slideSpeed,complete:function(){e.isCssFinish=!0}})},checkBrowser:function(){var a=k.createElement("div");a.style.cssText=" -moz-transform:translate3d(0px, 0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); -o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 0px, 0px); transform:translate3d(0px, 0px, 0px)"; | |||
a=a.style.cssText.match(/translate3d\(0px, 0px, 0px\)/g);this.browser={support3d:null!==a&&1===a.length,isTouch:"ontouchstart"in g||g.navigator.msMaxTouchPoints}},moveEvents:function(){if(!1!==this.options.mouseDrag||!1!==this.options.touchDrag)this.gestures(),this.disabledEvents()},eventTypes:function(){var a=["s","e","x"];this.ev_types={};!0===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]: | |||
!1===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:!0===this.options.mouseDrag&&!1===this.options.touchDrag&&(a=["mousedown.owl","mousemove.owl","mouseup.owl"]);this.ev_types.start=a[0];this.ev_types.move=a[1];this.ev_types.end=a[2]},disabledEvents:function(){this.$elem.on("dragstart.owl",function(a){a.preventDefault()});this.$elem.on("mousedown.disableTextSelect",function(a){return f(a.target).is("input, textarea, select, option")})}, | |||
gestures:function(){function a(a){if(void 0!==a.touches)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(void 0===a.touches){if(void 0!==a.pageX)return{x:a.pageX,y:a.pageY};if(void 0===a.pageX)return{x:a.clientX,y:a.clientY}}}function b(a){"on"===a?(f(k).on(d.ev_types.move,e),f(k).on(d.ev_types.end,c)):"off"===a&&(f(k).off(d.ev_types.move),f(k).off(d.ev_types.end))}function e(b){b=b.originalEvent||b||g.event;d.newPosX=a(b).x-h.offsetX;d.newPosY=a(b).y-h.offsetY;d.newRelativeX=d.newPosX-h.relativePos; | |||
"function"===typeof d.options.startDragging&&!0!==h.dragging&&0!==d.newRelativeX&&(h.dragging=!0,d.options.startDragging.apply(d,[d.$elem]));(8<d.newRelativeX||-8>d.newRelativeX)&&!0===d.browser.isTouch&&(void 0!==b.preventDefault?b.preventDefault():b.returnValue=!1,h.sliding=!0);(10<d.newPosY||-10>d.newPosY)&&!1===h.sliding&&f(k).off("touchmove.owl");d.newPosX=Math.max(Math.min(d.newPosX,d.newRelativeX/5),d.maximumPixels+d.newRelativeX/5);!0===d.browser.support3d?d.transition3d(d.newPosX):d.css2move(d.newPosX)} | |||
function c(a){a=a.originalEvent||a||g.event;var c;a.target=a.target||a.srcElement;h.dragging=!1;!0!==d.browser.isTouch&&d.$owlWrapper.removeClass("grabbing");d.dragDirection=0>d.newRelativeX?d.owl.dragDirection="left":d.owl.dragDirection="right";0!==d.newRelativeX&&(c=d.getNewPosition(),d.goTo(c,!1,"drag"),h.targetElement===a.target&&!0!==d.browser.isTouch&&(f(a.target).on("click.disable",function(a){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();f(a.target).off("click.disable")}), | |||
a=f._data(a.target,"events").click,c=a.pop(),a.splice(0,0,c)));b("off")}var d=this,h={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};d.isCssFinish=!0;d.$elem.on(d.ev_types.start,".owl-wrapper",function(c){c=c.originalEvent||c||g.event;var e;if(3===c.which)return!1;if(!(d.itemsAmount<=d.options.items)){if(!1===d.isCssFinish&&!d.options.dragBeforeAnimFinish||!1===d.isCss3Finish&&!d.options.dragBeforeAnimFinish)return!1; | |||
!1!==d.options.autoPlay&&g.clearInterval(d.autoPlayInterval);!0===d.browser.isTouch||d.$owlWrapper.hasClass("grabbing")||d.$owlWrapper.addClass("grabbing");d.newPosX=0;d.newRelativeX=0;f(this).css(d.removeTransition());e=f(this).position();h.relativePos=e.left;h.offsetX=a(c).x-e.left;h.offsetY=a(c).y-e.top;b("on");h.sliding=!1;h.targetElement=c.target||c.srcElement}})},getNewPosition:function(){var a=this.closestItem();a>this.maximumItem?a=this.currentItem=this.maximumItem:0<=this.newPosX&&(this.currentItem= | |||
a=0);return a},closestItem:function(){var a=this,b=!0===a.options.scrollPerPage?a.pagesInArray:a.positionsInArray,e=a.newPosX,c=null;f.each(b,function(d,g){e-a.itemWidth/20>b[d+1]&&e-a.itemWidth/20<g&&"left"===a.moveDirection()?(c=g,a.currentItem=!0===a.options.scrollPerPage?f.inArray(c,a.positionsInArray):d):e+a.itemWidth/20<g&&e+a.itemWidth/20>(b[d+1]||b[d]-a.itemWidth)&&"right"===a.moveDirection()&&(!0===a.options.scrollPerPage?(c=b[d+1]||b[b.length-1],a.currentItem=f.inArray(c,a.positionsInArray)): | |||
(c=b[d+1],a.currentItem=d+1))});return a.currentItem},moveDirection:function(){var a;0>this.newRelativeX?(a="right",this.playDirection="next"):(a="left",this.playDirection="prev");return a},customEvents:function(){var a=this;a.$elem.on("owl.next",function(){a.next()});a.$elem.on("owl.prev",function(){a.prev()});a.$elem.on("owl.play",function(b,e){a.options.autoPlay=e;a.play();a.hoverStatus="play"});a.$elem.on("owl.stop",function(){a.stop();a.hoverStatus="stop"});a.$elem.on("owl.goTo",function(b,e){a.goTo(e)}); | |||
a.$elem.on("owl.jumpTo",function(b,e){a.jumpTo(e)})},stopOnHover:function(){var a=this;!0===a.options.stopOnHover&&!0!==a.browser.isTouch&&!1!==a.options.autoPlay&&(a.$elem.on("mouseover",function(){a.stop()}),a.$elem.on("mouseout",function(){"stop"!==a.hoverStatus&&a.play()}))},lazyLoad:function(){var a,b,e,c,d;if(!1===this.options.lazyLoad)return!1;for(a=0;a<this.itemsAmount;a+=1)b=f(this.$owlItems[a]),"loaded"!==b.data("owl-loaded")&&(e=b.data("owl-item"),c=b.find(".lazyOwl"),"string"!==typeof c.data("src")? | |||
b.data("owl-loaded","loaded"):(void 0===b.data("owl-loaded")&&(c.hide(),b.addClass("loading").data("owl-loaded","checked")),(d=!0===this.options.lazyFollow?e>=this.currentItem:!0)&&e<this.currentItem+this.options.items&&c.length&&this.lazyPreload(b,c)))},lazyPreload:function(a,b){function e(){a.data("owl-loaded","loaded").removeClass("loading");b.removeAttr("data-src");"fade"===d.options.lazyEffect?b.fadeIn(400):b.show();"function"===typeof d.options.afterLazyLoad&&d.options.afterLazyLoad.apply(this, | |||
[d.$elem])}function c(){f+=1;d.completeImg(b.get(0))||!0===k?e():100>=f?g.setTimeout(c,100):e()}var d=this,f=0,k;"DIV"===b.prop("tagName")?(b.css("background-image","url("+b.data("src")+")"),k=!0):b[0].src=b.data("src");c()},autoHeight:function(){function a(){var a=f(e.$owlItems[e.currentItem]).height();e.wrapperOuter.css("height",a+"px");e.wrapperOuter.hasClass("autoHeight")||g.setTimeout(function(){e.wrapperOuter.addClass("autoHeight")},0)}function b(){d+=1;e.completeImg(c.get(0))?a():100>=d?g.setTimeout(b, | |||
100):e.wrapperOuter.css("height","")}var e=this,c=f(e.$owlItems[e.currentItem]).find("img"),d;void 0!==c.get(0)?(d=0,b()):a()},completeImg:function(a){return!a.complete||"undefined"!==typeof a.naturalWidth&&0===a.naturalWidth?!1:!0},onVisibleItems:function(){var a;!0===this.options.addClassActive&&this.$owlItems.removeClass("active");this.visibleItems=[];for(a=this.currentItem;a<this.currentItem+this.options.items;a+=1)this.visibleItems.push(a),!0===this.options.addClassActive&&f(this.$owlItems[a]).addClass("active"); | |||
this.owl.visibleItems=this.visibleItems},transitionTypes:function(a){this.outClass="owl-"+a+"-out";this.inClass="owl-"+a+"-in"},singleItemTransition:function(){var a=this,b=a.outClass,e=a.inClass,c=a.$owlItems.eq(a.currentItem),d=a.$owlItems.eq(a.prevItem),f=Math.abs(a.positionsInArray[a.currentItem])+a.positionsInArray[a.prevItem],g=Math.abs(a.positionsInArray[a.currentItem])+a.itemWidth/2;a.isTransition=!0;a.$owlWrapper.addClass("owl-origin").css({"-webkit-transform-origin":g+"px","-moz-perspective-origin":g+ | |||
"px","perspective-origin":g+"px"});d.css({position:"relative",left:f+"px"}).addClass(b).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend",function(){a.endPrev=!0;d.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend");a.clearTransStyle(d,b)});c.addClass(e).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend",function(){a.endCurrent=!0;c.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend");a.clearTransStyle(c,e)})},clearTransStyle:function(a, | |||
b){a.css({position:"",left:""}).removeClass(b);this.endPrev&&this.endCurrent&&(this.$owlWrapper.removeClass("owl-origin"),this.isTransition=this.endCurrent=this.endPrev=!1)},owlStatus:function(){this.owl={userOptions:this.userOptions,baseElement:this.$elem,userItems:this.$userItems,owlItems:this.$owlItems,currentItem:this.currentItem,prevItem:this.prevItem,visibleItems:this.visibleItems,isTouch:this.browser.isTouch,browser:this.browser,dragDirection:this.dragDirection}},clearEvents:function(){this.$elem.off(".owl owl mousedown.disableTextSelect"); | |||
f(k).off(".owl owl");f(g).off("resize",this.resizer)},unWrap:function(){0!==this.$elem.children().length&&(this.$owlWrapper.unwrap(),this.$userItems.unwrap().unwrap(),this.owlControls&&this.owlControls.remove());this.clearEvents();this.$elem.attr("style",this.$elem.data("owl-originalStyles")||"").attr("class",this.$elem.data("owl-originalClasses"))},destroy:function(){this.stop();g.clearInterval(this.checkVisible);this.unWrap();this.$elem.removeData()},reinit:function(a){a=f.extend({},this.userOptions, | |||
a);this.unWrap();this.init(a,this.$elem)},addItem:function(a,b){var e;if(!a)return!1;if(0===this.$elem.children().length)return this.$elem.append(a),this.setVars(),!1;this.unWrap();e=void 0===b||-1===b?-1:b;e>=this.$userItems.length||-1===e?this.$userItems.eq(-1).after(a):this.$userItems.eq(e).before(a);this.setVars()},removeItem:function(a){if(0===this.$elem.children().length)return!1;a=void 0===a||-1===a?-1:a;this.unWrap();this.$userItems.eq(a).remove();this.setVars()}};f.fn.owlCarousel=function(a){return this.each(function(){if(!0=== | |||
f(this).data("owl-init"))return!1;f(this).data("owl-init",!0);var b=Object.create(l);b.init(a,this);f.data(this,"owlCarousel",b)})};f.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1E3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1, | |||
responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:g,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}})(jQuery,window,document); |
@ -0,0 +1 @@ | |||
window.matchMedia=window.matchMedia||function(a){"use strict";var c,d=a.documentElement,e=d.firstElementChild||d.firstChild,f=a.createElement("body"),g=a.createElement("div");return g.id="mq-test-1",g.style.cssText="position:absolute;top:-100em",f.style.background="none",f.appendChild(g),function(a){return g.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',d.insertBefore(f,e),c=42===g.offsetWidth,d.removeChild(f),{matches:c,media:a}}}(document);(function(a){"use strict";function x(){u(!0)}var b={};if(a.respond=b,b.update=function(){},b.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,!b.mediaQueriesSupported){var q,r,t,c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=c.getElementsByTagName("base")[0],l=j.getElementsByTagName("link"),m=[],n=function(){for(var b=0;l.length>b;b++){var c=l[b],d=c.href,e=c.media,f=c.rel&&"stylesheet"===c.rel.toLowerCase();d&&f&&!h[d]&&(c.styleSheet&&c.styleSheet.rawCssText?(p(c.styleSheet.rawCssText,d,e),h[d]=!0):(!/^([a-zA-Z:]*\/\/)/.test(d)&&!k||d.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&m.push({href:d,media:e}))}o()},o=function(){if(m.length){var b=m.shift();v(b.href,function(c){p(c,b.href,b.media),h[b.href]=!0,a.setTimeout(function(){o()},0)})}},p=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),g=d&&d.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c;b.length&&(b+="/"),i&&(g=1);for(var j=0;g>j;j++){var k,l,m,n;i?(k=c,f.push(h(a))):(k=d[j].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],e.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:f.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},s=function(){var a,b=c.createElement("div"),e=c.body,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",e||(e=f=c.createElement("body"),e.style.background="none"),e.appendChild(b),d.insertBefore(e,d.firstChild),a=b.offsetWidth,f?d.removeChild(e):e.removeChild(b),a=t=parseFloat(a)},u=function(b){var h="clientWidth",k=d[h],m="CSS1Compat"===c.compatMode&&k||c.body[h]||k,n={},o=l[l.length-1],p=(new Date).getTime();if(b&&q&&i>p-q)return a.clearTimeout(r),r=a.setTimeout(u,i),void 0;q=p;for(var v in e)if(e.hasOwnProperty(v)){var w=e[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?t||s():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?t||s():1)),w.hasquery&&(z&&A||!(z||m>=x)||!(A||y>=m))||(n[w.media]||(n[w.media]=[]),n[w.media].push(f[w.rules]))}for(var C in g)g.hasOwnProperty(C)&&g[C]&&g[C].parentNode===j&&j.removeChild(g[C]);for(var D in n)if(n.hasOwnProperty(D)){var E=c.createElement("style"),F=n[D].join("\n");E.type="text/css",E.media=D,j.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(c.createTextNode(F)),g.push(E)}},v=function(a,b){var c=w();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},w=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();n(),b.update=n,a.addEventListener?a.addEventListener("resize",x,!1):a.attachEvent&&a.attachEvent("onresize",x)}})(this); |
@ -0,0 +1,485 @@ | |||
/* | |||
selectivizr v1.0.3b - (c) Keith Clark, freely distributable under the terms | |||
of the MIT license. | |||
selectivizr.com | |||
*/ | |||
/* | |||
Notes about this source | |||
----------------------- | |||
* The #DEBUG_START and #DEBUG_END comments are used to mark blocks of code | |||
that will be removed prior to building a final release version (using a | |||
pre-compression script) | |||
References: | |||
----------- | |||
* CSS Syntax : http://www.w3.org/TR/2003/WD-css3-syntax-20030813/#style | |||
* Selectors : http://www.w3.org/TR/css3-selectors/#selectors | |||
* IE Compatability : http://msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx | |||
* W3C Selector Tests : http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/html/tests/ | |||
*/ | |||
(function(win) { | |||
// Determine IE version and stop execution if browser isn't IE. This | |||
// handles the script being loaded by non IE browsers because the | |||
// developer didn't use conditional comments. | |||
var ieUserAgent = navigator.userAgent.match(/MSIE (\d+)/); | |||
if (!ieUserAgent) { | |||
return false; | |||
} | |||
// =========================== Init Objects ============================ | |||
var doc = document; | |||
var root = doc.documentElement; | |||
var xhr = getXHRObject(); | |||
var ieVersion = ieUserAgent[1]; | |||
// If were not in standards mode, IE is too old / new or we can't create | |||
// an XMLHttpRequest object then we should get out now. | |||
if (doc.compatMode != 'CSS1Compat' || ieVersion<6 || ieVersion>8 || !xhr) { | |||
return; | |||
} | |||
// ========================= Common Objects ============================ | |||
// Compatiable selector engines in order of CSS3 support. Note: '*' is | |||
// a placholder for the object key name. (basically, crude compression) | |||
var selectorEngines = { | |||
"NW" : "*.Dom.select", | |||
"MooTools" : "$$", | |||
"DOMAssistant" : "*.$", | |||
"Prototype" : "$$", | |||
"YAHOO" : "*.util.Selector.query", | |||
"Sizzle" : "*", | |||
"jQuery" : "*", | |||
"dojo" : "*.query" | |||
}; | |||
var selectorMethod; | |||
var enabledWatchers = []; // array of :enabled/:disabled elements to poll | |||
var domPatches = []; | |||
var ie6PatchID = 0; // used to solve ie6's multiple class bug | |||
var patchIE6MultipleClasses = true; // if true adds class bloat to ie6 | |||
var namespace = "slvzr"; | |||
// Stylesheet parsing regexp's | |||
var RE_COMMENT = /(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*?/g; | |||
var RE_IMPORT = /@import\s*(?:(?:(?:url\(\s*(['"]?)(.*)\1)\s*\))|(?:(['"])(.*)\3))\s*([^;]*);/g; | |||
var RE_ASSET_URL = /(behavior\s*?:\s*)?\burl\(\s*(["']?)(?!data:)([^"')]+)\2\s*\)/g; | |||
var RE_PSEUDO_STRUCTURAL = /^:(empty|(first|last|only|nth(-last)?)-(child|of-type))$/; | |||
var RE_PSEUDO_ELEMENTS = /:(:first-(?:line|letter))/g; | |||
var RE_SELECTOR_GROUP = /((?:^|(?:\s*})+)(?:\s*@media[^{]+{)?)\s*([^\{]*?[\[:][^{]+)/g; | |||
var RE_SELECTOR_PARSE = /([ +~>])|(:[a-z-]+(?:\(.*?\)+)?)|(\[.*?\])/g; | |||
var RE_LIBRARY_INCOMPATIBLE_PSEUDOS = /(:not\()?:(hover|enabled|disabled|focus|checked|target|active|visited|first-line|first-letter)\)?/g; | |||
var RE_PATCH_CLASS_NAME_REPLACE = /[^\w-]/g; | |||
// HTML UI element regexp's | |||
var RE_INPUT_ELEMENTS = /^(INPUT|SELECT|TEXTAREA|BUTTON)$/; | |||
var RE_INPUT_CHECKABLE_TYPES = /^(checkbox|radio)$/; | |||
// Broken attribute selector implementations (IE7/8 native [^=""], [$=""] and [*=""]) | |||
var BROKEN_ATTR_IMPLEMENTATIONS = ieVersion>6 ? /[\$\^*]=(['"])\1/ : null; | |||
// Whitespace normalization regexp's | |||
var RE_TIDY_TRAILING_WHITESPACE = /([(\[+~])\s+/g; | |||
var RE_TIDY_LEADING_WHITESPACE = /\s+([)\]+~])/g; | |||
var RE_TIDY_CONSECUTIVE_WHITESPACE = /\s+/g; | |||
var RE_TIDY_TRIM_WHITESPACE = /^\s*((?:[\S\s]*\S)?)\s*$/; | |||
// String constants | |||
var EMPTY_STRING = ""; | |||
var SPACE_STRING = " "; | |||
var PLACEHOLDER_STRING = "$1"; | |||
// =========================== Patching ================================ | |||
// --[ patchStyleSheet() ]---------------------------------------------- | |||
// Scans the passed cssText for selectors that require emulation and | |||
// creates one or more patches for each matched selector. | |||
function patchStyleSheet( cssText ) { | |||
return cssText.replace(RE_PSEUDO_ELEMENTS, PLACEHOLDER_STRING). | |||
replace(RE_SELECTOR_GROUP, function(m, prefix, selectorText) { | |||
var selectorGroups = selectorText.split(","); | |||
for (var c = 0, cs = selectorGroups.length; c < cs; c++) { | |||
var selector = normalizeSelectorWhitespace(selectorGroups[c]) + SPACE_STRING; | |||
var patches = []; | |||
selectorGroups[c] = selector.replace(RE_SELECTOR_PARSE, | |||
function(match, combinator, pseudo, attribute, index) { | |||
if (combinator) { | |||
if (patches.length>0) { | |||
domPatches.push( { selector: selector.substring(0, index), patches: patches } ) | |||
patches = []; | |||
} | |||
return combinator; | |||
} | |||
else { | |||
var patch = (pseudo) ? patchPseudoClass( pseudo ) : patchAttribute( attribute ); | |||
if (patch) { | |||
patches.push(patch); | |||
return "." + patch.className; | |||
} | |||
return match; | |||
} | |||
} | |||
); | |||
} | |||
return prefix + selectorGroups.join(","); | |||
}); | |||
}; | |||
// --[ patchAttribute() ]----------------------------------------------- | |||
// returns a patch for an attribute selector. | |||
function patchAttribute( attr ) { | |||
return (!BROKEN_ATTR_IMPLEMENTATIONS || BROKEN_ATTR_IMPLEMENTATIONS.test(attr)) ? | |||
{ className: createClassName(attr), applyClass: true } : null; | |||
}; | |||
// --[ patchPseudoClass() ]--------------------------------------------- | |||
// returns a patch for a pseudo-class | |||
function patchPseudoClass( pseudo ) { | |||
var applyClass = true; | |||
var className = createClassName(pseudo.slice(1)); | |||
var isNegated = pseudo.substring(0, 5) == ":not("; | |||
var activateEventName; | |||
var deactivateEventName; | |||
// if negated, remove :not() | |||
if (isNegated) { | |||
pseudo = pseudo.slice(5, -1); | |||
} | |||
// bracket contents are irrelevant - remove them | |||
var bracketIndex = pseudo.indexOf("(") | |||
if (bracketIndex > -1) { | |||
pseudo = pseudo.substring(0, bracketIndex); | |||
} | |||
// check we're still dealing with a pseudo-class | |||
if (pseudo.charAt(0) == ":") { | |||
switch (pseudo.slice(1)) { | |||
case "root": | |||
applyClass = function(e) { | |||
return isNegated ? e != root : e == root; | |||
} | |||
break; | |||
case "target": | |||
// :target is only supported in IE8 | |||
if (ieVersion == 8) { | |||
applyClass = function(e) { | |||
var handler = function() { | |||
var hash = location.hash; | |||
var hashID = hash.slice(1); | |||
return isNegated ? (hash == EMPTY_STRING || e.id != hashID) : (hash != EMPTY_STRING && e.id == hashID); | |||
}; | |||
addEvent( win, "hashchange", function() { | |||
toggleElementClass(e, className, handler()); | |||
}) | |||
return handler(); | |||
} | |||
break; | |||
} | |||
return false; | |||
case "checked": | |||
applyClass = function(e) { | |||
if (RE_INPUT_CHECKABLE_TYPES.test(e.type)) { | |||
addEvent( e, "propertychange", function() { | |||
if (event.propertyName == "checked") { | |||
toggleElementClass( e, className, e.checked !== isNegated ); | |||
} | |||
}) | |||
} | |||
return e.checked !== isNegated; | |||
} | |||
break; | |||
case "disabled": | |||
isNegated = !isNegated; | |||
case "enabled": | |||
applyClass = function(e) { | |||
if (RE_INPUT_ELEMENTS.test(e.tagName)) { | |||
addEvent( e, "propertychange", function() { | |||
if (event.propertyName == "$disabled") { | |||
toggleElementClass( e, className, e.$disabled === isNegated ); | |||
} | |||
}); | |||
enabledWatchers.push(e); | |||
e.$disabled = e.disabled; | |||
return e.disabled === isNegated; | |||
} | |||
return pseudo == ":enabled" ? isNegated : !isNegated; | |||
} | |||
break; | |||
case "focus": | |||
activateEventName = "focus"; | |||
deactivateEventName = "blur"; | |||
case "hover": | |||
if (!activateEventName) { | |||
activateEventName = "mouseenter"; | |||
deactivateEventName = "mouseleave"; | |||
} | |||
applyClass = function(e) { | |||
addEvent( e, isNegated ? deactivateEventName : activateEventName, function() { | |||
toggleElementClass( e, className, true ); | |||
}) | |||
addEvent( e, isNegated ? activateEventName : deactivateEventName, function() { | |||
toggleElementClass( e, className, false ); | |||
}) | |||
return isNegated; | |||
} | |||
break; | |||
// everything else | |||
default: | |||
// If we don't support this pseudo-class don't create | |||
// a patch for it | |||
if (!RE_PSEUDO_STRUCTURAL.test(pseudo)) { | |||
return false; | |||
} | |||
break; | |||
} | |||
} | |||
return { className: className, applyClass: applyClass }; | |||
}; | |||
// --[ applyPatches() ]------------------------------------------------- | |||
function applyPatches() { | |||
var elms, selectorText, patches, domSelectorText; | |||
for (var c=0; c<domPatches.length; c++) { | |||
selectorText = domPatches[c].selector; | |||
patches = domPatches[c].patches; | |||
// Although some selector libraries can find :checked :enabled etc. | |||
// we need to find all elements that could have that state because | |||
// it can be changed by the user. | |||
domSelectorText = selectorText.replace(RE_LIBRARY_INCOMPATIBLE_PSEUDOS, EMPTY_STRING); | |||
// If the dom selector equates to an empty string or ends with | |||
// whitespace then we need to append a universal selector (*) to it. | |||
if (domSelectorText == EMPTY_STRING || domSelectorText.charAt(domSelectorText.length - 1) == SPACE_STRING) { | |||
domSelectorText += "*"; | |||
} | |||
// Ensure we catch errors from the selector library | |||
try { | |||
elms = selectorMethod( domSelectorText ); | |||
} catch (ex) { | |||
// #DEBUG_START | |||
log( "Selector '" + selectorText + "' threw exception '" + ex + "'" ); | |||
// #DEBUG_END | |||
} | |||
if (elms) { | |||
for (var d = 0, dl = elms.length; d < dl; d++) { | |||
var elm = elms[d]; | |||
var cssClasses = elm.className; | |||
for (var f = 0, fl = patches.length; f < fl; f++) { | |||
var patch = patches[f]; | |||
if (!hasPatch(elm, patch)) { | |||
if (patch.applyClass && (patch.applyClass === true || patch.applyClass(elm) === true)) { | |||
cssClasses = toggleClass(cssClasses, patch.className, true ); | |||
} | |||
} | |||
} | |||
elm.className = cssClasses; | |||
} | |||
} | |||
} | |||
}; | |||
// --[ hasPatch() ]----------------------------------------------------- | |||
// checks for the exsistence of a patch on an element | |||
function hasPatch( elm, patch ) { | |||
return new RegExp("(^|\\s)" + patch.className + "(\\s|$)").test(elm.className); | |||
}; | |||
// =========================== Utility ================================= | |||
function createClassName( className ) { | |||
return namespace + "-" + ((ieVersion == 6 && patchIE6MultipleClasses) ? | |||
ie6PatchID++ | |||
: | |||
className.replace(RE_PATCH_CLASS_NAME_REPLACE, function(a) { return a.charCodeAt(0) })); | |||
}; | |||
// --[ log() ]---------------------------------------------------------- | |||
// #DEBUG_START | |||
function log( message ) { | |||
if (win.console) { | |||
win.console.log(message); | |||
} | |||
}; | |||
// #DEBUG_END | |||
// --[ trim() ]--------------------------------------------------------- | |||
// removes leading, trailing whitespace from a string | |||
function trim( text ) { | |||
return text.replace(RE_TIDY_TRIM_WHITESPACE, PLACEHOLDER_STRING); | |||
}; | |||
// --[ normalizeWhitespace() ]------------------------------------------ | |||
// removes leading, trailing and consecutive whitespace from a string | |||
function normalizeWhitespace( text ) { | |||
return trim(text).replace(RE_TIDY_CONSECUTIVE_WHITESPACE, SPACE_STRING); | |||
}; | |||
// --[ normalizeSelectorWhitespace() ]---------------------------------- | |||
// tidies whitespace around selector brackets and combinators | |||
function normalizeSelectorWhitespace( selectorText ) { | |||
return normalizeWhitespace(selectorText. | |||
replace(RE_TIDY_TRAILING_WHITESPACE, PLACEHOLDER_STRING). | |||
replace(RE_TIDY_LEADING_WHITESPACE, PLACEHOLDER_STRING) | |||
); | |||
}; | |||
// --[ toggleElementClass() ]------------------------------------------- | |||
// toggles a single className on an element | |||
function toggleElementClass( elm, className, on ) { | |||
var oldClassName = elm.className; | |||
var newClassName = toggleClass(oldClassName, className, on); | |||
if (newClassName != oldClassName) { | |||
elm.className = newClassName; | |||
elm.parentNode.className += EMPTY_STRING; | |||
} | |||
}; | |||
// --[ toggleClass() ]-------------------------------------------------- | |||
// adds / removes a className from a string of classNames. Used to | |||
// manage multiple class changes without forcing a DOM redraw | |||
function toggleClass( classList, className, on ) { | |||
var re = RegExp("(^|\\s)" + className + "(\\s|$)"); | |||
var classExists = re.test(classList); | |||
if (on) { | |||
return classExists ? classList : classList + SPACE_STRING + className; | |||
} else { | |||
return classExists ? trim(classList.replace(re, PLACEHOLDER_STRING)) : classList; | |||
} | |||
}; | |||
// --[ addEvent() ]----------------------------------------------------- | |||
function addEvent(elm, eventName, eventHandler) { | |||
elm.attachEvent("on" + eventName, eventHandler); | |||
}; | |||
// --[ getXHRObject() ]------------------------------------------------- | |||
function getXHRObject() { | |||
if (win.XMLHttpRequest) { | |||
return new XMLHttpRequest; | |||
} | |||
try { | |||
return new ActiveXObject('Microsoft.XMLHTTP'); | |||
} catch(e) { | |||
return null; | |||
} | |||
}; | |||
// --[ loadStyleSheet() ]----------------------------------------------- | |||
function loadStyleSheet( url ) { | |||
xhr.open("GET", url, false); | |||
xhr.send(); | |||
return (xhr.status==200) ? xhr.responseText : EMPTY_STRING; | |||
}; | |||
// --[ resolveUrl() ]--------------------------------------------------- | |||
// Converts a URL fragment to a fully qualified URL using the specified | |||
// context URL. Returns null if same-origin policy is broken | |||
function resolveUrl( url, contextUrl, ignoreSameOriginPolicy ) { | |||
function getProtocol( url ) { | |||
return url.substring(0, url.indexOf("//")); | |||
}; | |||
function getProtocolAndHost( url ) { | |||
return url.substring(0, url.indexOf("/", 8)); | |||
}; | |||
if (!contextUrl) { | |||
contextUrl = baseUrl; | |||
} | |||
// protocol-relative path | |||
if (url.substring(0,2)=="//") { | |||
url = getProtocol(contextUrl) + url; | |||
} | |||
// absolute path | |||
if (/^https?:\/\//i.test(url)) { | |||
return !ignoreSameOriginPolicy && getProtocolAndHost(contextUrl) != getProtocolAndHost(url) ? null : url ; | |||
} | |||
// root-relative path | |||
if (url.charAt(0)=="/") { | |||
return getProtocolAndHost(contextUrl) + url; | |||
} | |||
// relative path | |||
var contextUrlPath = contextUrl.split(/[?#]/)[0]; // ignore query string in the contextUrl | |||
if (url.charAt(0) != "?" && contextUrlPath.charAt(contextUrlPath.length - 1) != "/") { | |||
contextUrlPath = contextUrlPath.substring(0, contextUrlPath.lastIndexOf("/") + 1); | |||
} | |||
return contextUrlPath + url; | |||
}; | |||
// --[ parseStyleSheet() ]---------------------------------------------- | |||
// Downloads the stylesheet specified by the URL, removes it's comments | |||
// and recursivly replaces @import rules with their contents, ultimately | |||
// returning the full cssText. | |||
function parseStyleSheet( url ) { | |||
if (url) { | |||
return loadStyleSheet(url).replace(RE_COMMENT, EMPTY_STRING). | |||
replace(RE_IMPORT, function( match, quoteChar, importUrl, quoteChar2, importUrl2, media ) { | |||
var cssText = parseStyleSheet(resolveUrl(importUrl || importUrl2, url)); | |||
return (media) ? "@media " + media + " {" + cssText + "}" : cssText; | |||
}). | |||
replace(RE_ASSET_URL, function( match, isBehavior, quoteChar, assetUrl ) { | |||
quoteChar = quoteChar || EMPTY_STRING; | |||
return isBehavior ? match : " url(" + quoteChar + resolveUrl(assetUrl, url, true) + quoteChar + ") "; | |||
}); | |||
} | |||
return EMPTY_STRING; | |||
}; | |||
// --[ getStyleSheets() ]----------------------------------------------- | |||
function getStyleSheets() { | |||
var url, stylesheet; | |||
for (var c = 0; c < doc.styleSheets.length; c++) { | |||
stylesheet = doc.styleSheets[c]; | |||
if (stylesheet.href != EMPTY_STRING) { | |||
url = resolveUrl(stylesheet.href); | |||
if (url) { | |||
stylesheet.cssText = stylesheet["rawCssText"] = patchStyleSheet( parseStyleSheet( url ) ); | |||
} | |||
} | |||
} | |||
}; | |||
// --[ init() ]--------------------------------------------------------- | |||
function init() { | |||
applyPatches(); | |||
// :enabled & :disabled polling script (since we can't hook | |||
// onpropertychange event when an element is disabled) | |||
if (enabledWatchers.length > 0) { | |||
setInterval( function() { | |||
for (var c = 0, cl = enabledWatchers.length; c < cl; c++) { | |||
var e = enabledWatchers[c]; | |||
if (e.disabled !== e.$disabled) { | |||
if (e.disabled) { | |||
e.disabled = false; | |||
e.$disabled = true; | |||
e.disabled = true; | |||
} | |||
else { | |||
e.$disabled = e.disabled; | |||
} | |||
} | |||
} | |||
}, 250) | |||
} | |||
}; | |||
// Determine the baseUrl and download the stylesheets | |||
var baseTags = doc.getElementsByTagName("BASE"); | |||
var baseUrl = (baseTags.length > 0) ? baseTags[0].href : doc.location.href; | |||
getStyleSheets(); | |||
// Bind selectivizr to the ContentLoaded event. | |||
ContentLoaded(win, function() { | |||
// Determine the "best fit" selector engine | |||
for (var engine in selectorEngines) { | |||
var members, member, context = win; | |||
if (win[engine]) { | |||
members = selectorEngines[engine].replace("*", engine).split("."); | |||
while ((member = members.shift()) && (context = context[member])) {} | |||
if (typeof context == "function") { | |||
selectorMethod = context; | |||
init(); | |||
return; | |||
} | |||
} | |||
} | |||
}); | |||
/*! | |||
* ContentLoaded.js by Diego Perini, modified for IE<9 only (to save space) | |||
* | |||
* Author: Diego Perini (diego.perini at gmail.com) | |||
* Summary: cross-browser wrapper for DOMContentLoaded | |||
* Updated: 20101020 | |||
* License: MIT | |||
* Version: 1.2 | |||
* | |||
* URL: | |||
* http://javascript.nwbox.com/ContentLoaded/ | |||
* http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE | |||
* | |||
*/ | |||
// @w window reference | |||
// @f function reference | |||
function ContentLoaded(win, fn) { | |||
var done = false, top = true, | |||
init = function(e) { | |||
if (e.type == "readystatechange" && doc.readyState != "complete") return; | |||
(e.type == "load" ? win : doc).detachEvent("on" + e.type, init, false); | |||
if (!done && (done = true)) fn.call(win, e.type || e); | |||
}, | |||
poll = function() { | |||
try { root.doScroll("left"); } catch(e) { setTimeout(poll, 50); return; } | |||
init('poll'); | |||
}; | |||
if (doc.readyState == "complete") fn.call(win, EMPTY_STRING); | |||
else { | |||
if (doc.createEventObject && root.doScroll) { | |||
try { top = !win.frameElement; } catch(e) { } | |||
if (top) poll(); | |||
} | |||
addEvent(doc,"readystatechange", init); | |||
addEvent(win,"load", init); | |||
} | |||
}; | |||
})(this); |