| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 | (function() {	var MutationObserver, Util, WeakMap, getComputedStyle, getComputedStyleRX, __bind = function(fn, me) {			return function() {				return fn.apply(me, arguments);			};		},		__indexOf = [].indexOf || function(item) {			for(var i = 0, l = this.length; i < l; i++) {				if(i in this && this[i] === item) return i;			}			return -1;		};	Util = (function() {		function Util() {}		Util.prototype.extend = function(custom, defaults) {			var key, value;			for(key in defaults) {				value = defaults[key];				if(custom[key] == null) {					custom[key] = value;				}			}			return custom;		};		Util.prototype.isMobile = function(agent) {			return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);		};		Util.prototype.addEvent = function(elem, event, fn) {			if(elem.addEventListener != null) {				return elem.addEventListener(event, fn, false);			} else if(elem.attachEvent != null) {				return elem.attachEvent("on" + event, fn);			} else {				return elem[event] = fn;			}		};		Util.prototype.removeEvent = function(elem, event, fn) {			if(elem.removeEventListener != null) {				return elem.removeEventListener(event, fn, false);			} else if(elem.detachEvent != null) {				return elem.detachEvent("on" + event, fn);			} else {				return delete elem[event];			}		};		Util.prototype.innerHeight = function() {			if('innerHeight' in window) {				return window.innerHeight;			} else {				return document.documentElement.clientHeight;			}		};		return Util;	})();	WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() {		function WeakMap() {			this.keys = [];			this.values = [];		}		WeakMap.prototype.get = function(key) {			var i, item, _i, _len, _ref;			_ref = this.keys;			for(i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {				item = _ref[i];				if(item === key) {					return this.values[i];				}			}		};		WeakMap.prototype.set = function(key, value) {			var i, item, _i, _len, _ref;			_ref = this.keys;			for(i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {				item = _ref[i];				if(item === key) {					this.values[i] = value;					return;				}			}			this.keys.push(key);			return this.values.push(value);		};		return WeakMap;	})());	MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() {		function MutationObserver() {			if(typeof console !== "undefined" && console !== null) {				console.warn('MutationObserver is not supported by your browser.');			}			if(typeof console !== "undefined" && console !== null) {				console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');			}		}		MutationObserver.notSupported = true;		MutationObserver.prototype.observe = function() {};		return MutationObserver;	})());	getComputedStyle = this.getComputedStyle || function(el, pseudo) {		this.getPropertyValue = function(prop) {			var _ref;			if(prop === 'float') {				prop = 'styleFloat';			}			if(getComputedStyleRX.test(prop)) {				prop.replace(getComputedStyleRX, function(_, _char) {					return _char.toUpperCase();				});			}			return((_ref = el.currentStyle) != null ? _ref[prop] : void 0) || null;		};		return this;	};	getComputedStyleRX = /(\-([a-z]){1})/g;	this.WOW = (function() {		WOW.prototype.defaults = {			boxClass: 'wow',			animateClass: 'animated',			offset: 0,			mobile: true,			live: true		};		function WOW(options) {			if(options == null) {				options = {};			}			this.scrollCallback = __bind(this.scrollCallback, this);			this.scrollHandler = __bind(this.scrollHandler, this);			this.start = __bind(this.start, this);			this.scrolled = true;			this.config = this.util().extend(options, this.defaults);			this.animationNameCache = new WeakMap();		}		WOW.prototype.init = function() {			var _ref;			this.element = window.document.documentElement;			if((_ref = document.readyState) === "interactive" || _ref === "complete") {				this.start();			} else {				this.util().addEvent(document, 'DOMContentLoaded', this.start);			}			return this.finished = [];		};		WOW.prototype.start = function() {			var box, _i, _len, _ref;			this.stopped = false;			this.boxes = (function() {				var _i, _len, _ref, _results;				_ref = this.element.querySelectorAll("." + this.config.boxClass);				_results = [];				for(_i = 0, _len = _ref.length; _i < _len; _i++) {					box = _ref[_i];					_results.push(box);				}				return _results;			}).call(this);			this.all = (function() {				var _i, _len, _ref, _results;				_ref = this.boxes;				_results = [];				for(_i = 0, _len = _ref.length; _i < _len; _i++) {					box = _ref[_i];					_results.push(box);				}				return _results;			}).call(this);			if(this.boxes.length) {				if(this.disabled()) {					this.resetStyle();				} else {					_ref = this.boxes;					for(_i = 0, _len = _ref.length; _i < _len; _i++) {						box = _ref[_i];						this.applyStyle(box, true);					}				}			}			if(!this.disabled()) {				this.util().addEvent(window, 'scroll', this.scrollHandler);				this.util().addEvent(window, 'resize', this.scrollHandler);				this.interval = setInterval(this.scrollCallback, 50);			}			if(this.config.live) {				return new MutationObserver((function(_this) {					return function(records) {						var node, record, _j, _len1, _results;						_results = [];						for(_j = 0, _len1 = records.length; _j < _len1; _j++) {							record = records[_j];							_results.push((function() {								var _k, _len2, _ref1, _results1;								_ref1 = record.addedNodes || [];								_results1 = [];								for(_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {									node = _ref1[_k];									_results1.push(this.doSync(node));								}								return _results1;							}).call(_this));						}						return _results;					};				})(this)).observe(document.body, {					childList: true,					subtree: true				});			}		};		WOW.prototype.stop = function() {			this.stopped = true;			this.util().removeEvent(window, 'scroll', this.scrollHandler);			this.util().removeEvent(window, 'resize', this.scrollHandler);			if(this.interval != null) {				return clearInterval(this.interval);			}		};		WOW.prototype.sync = function(element) {			if(MutationObserver.notSupported) {				return this.doSync(this.element);			}		};		WOW.prototype.doSync = function(element) {			var box, _i, _len, _ref, _results;			if(element == null) {				element = this.element;			}			if(element.nodeType !== 1) {				return;			}			element = element.parentNode || element;			_ref = element.querySelectorAll("." + this.config.boxClass);			_results = [];			for(_i = 0, _len = _ref.length; _i < _len; _i++) {				box = _ref[_i];				if(__indexOf.call(this.all, box) < 0) {					this.boxes.push(box);					this.all.push(box);					if(this.stopped || this.disabled()) {						this.resetStyle();					} else {						this.applyStyle(box, true);					}					_results.push(this.scrolled = true);				} else {					_results.push(void 0);				}			}			return _results;		};		WOW.prototype.show = function(box) {			this.applyStyle(box);			return box.className = "" + box.className + " " + this.config.animateClass;		};		WOW.prototype.applyStyle = function(box, hidden) {			var delay, duration, iteration;			duration = box.getAttribute('data-wow-duration');			delay = box.getAttribute('data-wow-delay');			iteration = box.getAttribute('data-wow-iteration');			return this.animate((function(_this) {				return function() {					return _this.customStyle(box, hidden, duration, delay, iteration);				};			})(this));		};		WOW.prototype.animate = (function() {			if('requestAnimationFrame' in window) {				return function(callback) {					return window.requestAnimationFrame(callback);				};			} else {				return function(callback) {					return callback();				};			}		})();		WOW.prototype.resetStyle = function() {			var box, _i, _len, _ref, _results;			_ref = this.boxes;			_results = [];			for(_i = 0, _len = _ref.length; _i < _len; _i++) {				box = _ref[_i];				_results.push(box.style.visibility = 'visible');			}			return _results;		};		WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) {			if(hidden) {				this.cacheAnimationName(box);			}			box.style.visibility = hidden ? 'hidden' : 'visible';			if(duration) {				this.vendorSet(box.style, {					animationDuration: duration				});			}			if(delay) {				this.vendorSet(box.style, {					animationDelay: delay				});			}			if(iteration) {				this.vendorSet(box.style, {					animationIterationCount: iteration				});			}			this.vendorSet(box.style, {				animationName: hidden ? 'none' : this.cachedAnimationName(box)			});			return box;		};		WOW.prototype.vendors = ["moz", "webkit"];		WOW.prototype.vendorSet = function(elem, properties) {			var name, value, vendor, _results;			_results = [];			for(name in properties) {				value = properties[name];				elem["" + name] = value;				_results.push((function() {					var _i, _len, _ref, _results1;					_ref = this.vendors;					_results1 = [];					for(_i = 0, _len = _ref.length; _i < _len; _i++) {						vendor = _ref[_i];						_results1.push(elem["" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value);					}					return _results1;				}).call(this));			}			return _results;		};		WOW.prototype.vendorCSS = function(elem, property) {			var result, style, vendor, _i, _len, _ref;			style = getComputedStyle(elem);			result = style.getPropertyCSSValue(property);			_ref = this.vendors;			for(_i = 0, _len = _ref.length; _i < _len; _i++) {				vendor = _ref[_i];				result = result || style.getPropertyCSSValue("-" + vendor + "-" + property);			}			return result;		};		WOW.prototype.animationName = function(box) {			var animationName;			try {				animationName = this.vendorCSS(box, 'animation-name').cssText;			} catch(_error) {				animationName = getComputedStyle(box).getPropertyValue('animation-name');			}			if(animationName === 'none') {				return '';			} else {				return animationName;			}		};		WOW.prototype.cacheAnimationName = function(box) {			return this.animationNameCache.set(box, this.animationName(box));		};		WOW.prototype.cachedAnimationName = function(box) {			return this.animationNameCache.get(box);		};		WOW.prototype.scrollHandler = function() {			return this.scrolled = true;		};		WOW.prototype.scrollCallback = function() {			var box;			if(this.scrolled) {				this.scrolled = false;				this.boxes = (function() {					var _i, _len, _ref, _results;					_ref = this.boxes;					_results = [];					for(_i = 0, _len = _ref.length; _i < _len; _i++) {						box = _ref[_i];						if(!(box)) {							continue;						}						if(this.isVisible(box)) {							this.show(box);							continue;						}						_results.push(box);					}					return _results;				}).call(this);				if(!(this.boxes.length || this.config.live)) {					return this.stop();				}			}		};		WOW.prototype.offsetTop = function(element) {			var top;			while(element.offsetTop === void 0) {				element = element.parentNode;			}			top = element.offsetTop;			while(element = element.offsetParent) {				top += element.offsetTop;			}			return top;		};		WOW.prototype.isVisible = function(box) {			var bottom, offset, top, viewBottom, viewTop;			offset = box.getAttribute('data-wow-offset') || this.config.offset;			viewTop = window.pageYOffset;			viewBottom = viewTop + Math.min(this.element.clientHeight, this.util().innerHeight()) - offset;			top = this.offsetTop(box);			bottom = top + box.clientHeight;			return top <= viewBottom && bottom >= viewTop;		};		WOW.prototype.util = function() {			return this._util != null ? this._util : this._util = new Util();		};		WOW.prototype.disabled = function() {			return !this.config.mobile && this.util().isMobile(navigator.userAgent);		};		return WOW;	})();}).call(this);
 |