vendor: 25,394 bytes, lines 1-336
1/*! jQuery Mobile | Copyright 2010, 2014 jQuery Foundation, Inc. | jquery.org/license */ 2 3/*! 4 * @fileOverview TouchSwipe - jQuery Plugin 5 * @version 1.6.18 6 * 7 * @author Matt Bryson http://www.github.com/mattbryson 8 * @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin 9 * @see http://labs.rampinteractive.co.uk/touchSwipe/ 10 * @see http://plugins.jquery.com/project/touchSwipe 11 * @license 12 * Copyright (c) 2010-2015 Matt Bryson 13 * Dual licensed under the MIT or GPL Version 2 licenses. 14 * 15 */ 16! function(factory) { "function" == typeof define && define.amd && define.amd.jQuery ? define(["jquery"], factory) : factory("undefined" != typeof module && module.exports ? require("jquery") : jQuery) }(function($) { 17 "use strict"; 18 19 function init(options) { 20 return !options || void 0 !== options.allowPageScroll || void 0 === options.swipe && void 0 === options.swipeStatus || (options.allowPageScroll = NONE), void 0 !== options.click && void 0 === options.tap && (options.tap = options.click), options || (options = {}), options = $.extend({}, $.fn.swipe.defaults, options), this.each(function() { 21 var $this = $(this), 22 plugin = $this.data(PLUGIN_NS); 23 plugin || (plugin = new TouchSwipe(this, options), $this.data(PLUGIN_NS, plugin)) 24 }) 25 } 26 27 function TouchSwipe(element, options) { 28 function touchStart(jqEvent) { 29 if (!(getTouchInProgress() || $(jqEvent.target).closest(options.excludedElements, $element).length > 0)) { 30 var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent; 31 if (!event.pointerType || "mouse" != event.pointerType || 0 != options.fallbackToMouseEvents) { 32 var ret, touches = event.touches, 33 evt = touches ? touches[0] : event; 34 return phase = PHASE_START, touches ? fingerCount = touches.length : options.preventDefaultEvents !== !1 && jqEvent.preventDefault(), distance = 0, direction = null, currentDirection = null, pinchDirection = null, duration = 0, startTouchesDistance = 0, endTouchesDistance = 0, pinchZoom = 1, pinchDistance = 0, maximumsMap = createMaximumsData(), cancelMultiFingerRelease(), createFingerData(0, evt), !touches || fingerCount === options.fingers || options.fingers === ALL_FINGERS || hasPinches() ? (startTime = getTimeStamp(), 2 == fingerCount && (createFingerData(1, touches[1]), startTouchesDistance = endTouchesDistance = calculateTouchesDistance(fingerData[0].start, fingerData[1].start)), (options.swipeStatus || options.pinchStatus) && (ret = triggerHandler(event, phase))) : ret = !1, ret === !1 ? (phase = PHASE_CANCEL, triggerHandler(event, phase), ret) : (options.hold && (holdTimeout = setTimeout($.proxy(function() { $element.trigger("hold", [event.target]), options.hold && (ret = options.hold.call($element, event, event.target)) }, this), options.longTapThreshold)), setTouchInProgress(!0), null) 35 } 36 } 37 } 38 39 function touchMove(jqEvent) { 40 var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent; 41 if (phase !== PHASE_END && phase !== PHASE_CANCEL && !inMultiFingerRelease()) { 42 var ret, touches = event.touches, 43 evt = touches ? touches[0] : event, 44 currentFinger = updateFingerData(evt); 45 if (endTime = getTimeStamp(), touches && (fingerCount = touches.length), options.hold && clearTimeout(holdTimeout), phase = PHASE_MOVE, 2 == fingerCount && (0 == startTouchesDistance ? (createFingerData(1, touches[1]), startTouchesDistance = endTouchesDistance = calculateTouchesDistance(fingerData[0].start, fingerData[1].start)) : (updateFingerData(touches[1]), endTouchesDistance = calculateTouchesDistance(fingerData[0].end, fingerData[1].end), pinchDirection = calculatePinchDirection(fingerData[0].end, fingerData[1].end)), pinchZoom = calculatePinchZoom(startTouchesDistance, endTouchesDistance), pinchDistance = Math.abs(startTouchesDistance - endTouchesDistance)), fingerCount === options.fingers || options.fingers === ALL_FINGERS || !touches || hasPinches()) { 46 if (direction = calculateDirection(currentFinger.start, currentFinger.end), currentDirection = calculateDirection(currentFinger.last, currentFinger.end), validateDefaultEvent(jqEvent, currentDirection), distance = calculateDistance(currentFinger.start, currentFinger.end), duration = calculateDuration(), setMaxDistance(direction, distance), ret = triggerHandler(event, phase), !options.triggerOnTouchEnd || options.triggerOnTouchLeave) { 47 var inBounds = !0; 48 if (options.triggerOnTouchLeave) { 49 var bounds = getbounds(this); 50 inBounds = isInBounds(currentFinger.end, bounds) 51 }!options.triggerOnTouchEnd && inBounds ? phase = getNextPhase(PHASE_MOVE) : options.triggerOnTouchLeave && !inBounds && (phase = getNextPhase(PHASE_END)), phase != PHASE_CANCEL && phase != PHASE_END || triggerHandler(event, phase) 52 } 53 } else phase = PHASE_CANCEL, triggerHandler(event, phase); 54 ret === !1 && (phase = PHASE_CANCEL, triggerHandler(event, phase)) 55 } 56 } 57 58 function touchEnd(jqEvent) { 59 var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent, 60 touches = event.touches; 61 if (touches) { if (touches.length && !inMultiFingerRelease()) return startMultiFingerRelease(event), !0; if (touches.length && inMultiFingerRelease()) return !0 } 62 return inMultiFingerRelease() && (fingerCount = fingerCountAtRelease), endTime = getTimeStamp(), duration = calculateDuration(), didSwipeBackToCancel() || !validateSwipeDistance() ? (phase = PHASE_CANCEL, triggerHandler(event, phase)) : options.triggerOnTouchEnd || options.triggerOnTouchEnd === !1 && phase === PHASE_MOVE ? (options.preventDefaultEvents !== !1 && jqEvent.preventDefault(), phase = PHASE_END, triggerHandler(event, phase)) : !options.triggerOnTouchEnd && hasTap() ? (phase = PHASE_END, triggerHandlerForGesture(event, phase, TAP)) : phase === PHASE_MOVE && (phase = PHASE_CANCEL, triggerHandler(event, phase)), setTouchInProgress(!1), null 63 } 64 65 function touchCancel() { fingerCount = 0, endTime = 0, startTime = 0, startTouchesDistance = 0, endTouchesDistance = 0, pinchZoom = 1, cancelMultiFingerRelease(), setTouchInProgress(!1) } 66 67 function touchLeave(jqEvent) { 68 var event = jqEvent.originalEvent ? jqEvent.originalEvent : jqEvent; 69 options.triggerOnTouchLeave && (phase = getNextPhase(PHASE_END), triggerHandler(event, phase)) 70 } 71 72 function removeListeners() { $element.unbind(START_EV, touchStart), $element.unbind(CANCEL_EV, touchCancel), $element.unbind(MOVE_EV, touchMove), $element.unbind(END_EV, touchEnd), LEAVE_EV && $element.unbind(LEAVE_EV, touchLeave), setTouchInProgress(!1) } 73 74 function getNextPhase(currentPhase) { 75 var nextPhase = currentPhase, 76 validTime = validateSwipeTime(), 77 validDistance = validateSwipeDistance(), 78 didCancel = didSwipeBackToCancel(); 79 return !validTime || didCancel ? nextPhase = PHASE_CANCEL : !validDistance || currentPhase != PHASE_MOVE || options.triggerOnTouchEnd && !options.triggerOnTouchLeave ? !validDistance && currentPhase == PHASE_END && options.triggerOnTouchLeave && (nextPhase = PHASE_CANCEL) : nextPhase = PHASE_END, nextPhase 80 } 81 82 function triggerHandler(event, phase) { var ret, touches = event.touches; return (didSwipe() || hasSwipes()) && (ret = triggerHandlerForGesture(event, phase, SWIPE)), (didPinch() || hasPinches()) && ret !== !1 && (ret = triggerHandlerForGesture(event, phase, PINCH)), didDoubleTap() && ret !== !1 ? ret = triggerHandlerForGesture(event, phase, DOUBLE_TAP) : didLongTap() && ret !== !1 ? ret = triggerHandlerForGesture(event, phase, LONG_TAP) : didTap() && ret !== !1 && (ret = triggerHandlerForGesture(event, phase, TAP)), phase === PHASE_CANCEL && touchCancel(event), phase === PHASE_END && (touches ? touches.length || touchCancel(event) : touchCancel(event)), ret } 83 84 function triggerHandlerForGesture(event, phase, gesture) { 85 var ret; 86 if (gesture == SWIPE) { 87 if ($element.trigger("swipeStatus", [phase, direction || null, distance || 0, duration || 0, fingerCount, fingerData, currentDirection]), options.swipeStatus && (ret = options.swipeStatus.call($element, event, phase, direction || null, distance || 0, duration || 0, fingerCount, fingerData, currentDirection), ret === !1)) return !1; 88 if (phase == PHASE_END && validateSwipe()) { 89 if (clearTimeout(singleTapTimeout), clearTimeout(holdTimeout), $element.trigger("swipe", [direction, distance, duration, fingerCount, fingerData, currentDirection]), options.swipe && (ret = options.swipe.call($element, event, direction, distance, duration, fingerCount, fingerData, currentDirection), ret === !1)) return !1; 90 switch (direction) { 91 case LEFT: 92 $element.trigger("swipeLeft", [direction, distance, duration, fingerCount, fingerData, currentDirection]), options.swipeLeft && (ret = options.swipeLeft.call($element, event, direction, distance, duration, fingerCount, fingerData, currentDirection)); 93 break; 94 case RIGHT: 95 $element.trigger("swipeRight", [direction, distance, duration, fingerCount, fingerData, currentDirection]), options.swipeRight && (ret = options.swipeRight.call($element, event, direction, distance, duration, fingerCount, fingerData, currentDirection)); 96 break; 97 case UP: 98 $element.trigger("swipeUp", [direction, distance, duration, fingerCount, fingerData, currentDirection]), options.swipeUp && (ret = options.swipeUp.call($element, event, direction, distance, duration, fingerCount, fingerData, currentDirection)); 99 break; 100 case DOWN: 101 $element.trigger("swipeDown", [direction, distance, duration, fingerCount, fingerData, currentDirection]), options.swipeDown && (ret = options.swipeDown.call($element, event, direction, distance, duration, fingerCount, fingerData, currentDirection)) 102 } 103 } 104 } 105 if (gesture == PINCH) { 106 if ($element.trigger("pinchStatus", [phase, pinchDirection || null, pinchDistance || 0, duration || 0, fingerCount, pinchZoom, fingerData]), options.pinchStatus && (ret = options.pinchStatus.call($element, event, phase, pinchDirection || null, pinchDistance || 0, duration || 0, fingerCount, pinchZoom, fingerData), ret === !1)) return !1; 107 if (phase == PHASE_END && validatePinch()) switch (pinchDirection) { 108 case IN: 109 $element.trigger("pinchIn", [pinchDirection || null, pinchDistance || 0, duration || 0, fingerCount, pinchZoom, fingerData]), options.pinchIn && (ret = options.pinchIn.call($element, event, pinchDirection || null, pinchDistance || 0, duration || 0, fingerCount, pinchZoom, fingerData)); 110 break; 111 case OUT: 112 $element.trigger("pinchOut", [pinchDirection || null, pinchDistance || 0, duration || 0, fingerCount, pinchZoom, fingerData]), options.pinchOut && (ret = options.pinchOut.call($element, event, pinchDirection || null, pinchDistance || 0, duration || 0, fingerCount, pinchZoom, fingerData)) 113 } 114 } 115 return gesture == TAP ? phase !== PHASE_CANCEL && phase !== PHASE_END || (clearTimeout(singleTapTimeout), clearTimeout(holdTimeout), hasDoubleTap() && !inDoubleTap() ? (doubleTapStartTime = getTimeStamp(), singleTapTimeout = setTimeout($.proxy(function() { doubleTapStartTime = null, $element.trigger("tap", [event.target]), options.tap && (ret = options.tap.call($element, event, event.target)) }, this), options.doubleTapThreshold)) : (doubleTapStartTime = null, $element.trigger("tap", [event.target]), options.tap && (ret = options.tap.call($element, event, event.target)))) : gesture == DOUBLE_TAP ? phase !== PHASE_CANCEL && phase !== PHASE_END || (clearTimeout(singleTapTimeout), clearTimeout(holdTimeout), doubleTapStartTime = null, $element.trigger("doubletap", [event.target]), options.doubleTap && (ret = options.doubleTap.call($element, event, event.target))) : gesture == LONG_TAP && (phase !== PHASE_CANCEL && phase !== PHASE_END || (clearTimeout(singleTapTimeout), doubleTapStartTime = null, $element.trigger("longtap", [event.target]), options.longTap && (ret = options.longTap.call($element, event, event.target)))), ret 116 } 117 118 function validateSwipeDistance() { var valid = !0; return null !== options.threshold && (valid = distance >= options.threshold), valid } 119 120 function didSwipeBackToCancel() { var cancelled = !1; return null !== options.cancelThreshold && null !== direction && (cancelled = getMaxDistance(direction) - distance >= options.cancelThreshold), cancelled } 121 122 function validatePinchDistance() { return null !== options.pinchThreshold ? pinchDistance >= options.pinchThreshold : !0 } 123 124 function validateSwipeTime() { var result; return result = options.maxTimeThreshold ? !(duration >= options.maxTimeThreshold) : !0 } 125 126 function validateDefaultEvent(jqEvent, direction) { 127 if (options.preventDefaultEvents !== !1) 128 if (options.allowPageScroll === NONE) jqEvent.preventDefault(); 129 else { 130 var auto = options.allowPageScroll === AUTO; 131 switch (direction) { 132 case LEFT: 133 (options.swipeLeft && auto || !auto && options.allowPageScroll != HORIZONTAL) && jqEvent.preventDefault(); 134 break; 135 case RIGHT: 136 (options.swipeRight && auto || !auto && options.allowPageScroll != HORIZONTAL) && jqEvent.preventDefault(); 137 break; 138 case UP: 139 (options.swipeUp && auto || !auto && options.allowPageScroll != VERTICAL) && jqEvent.preventDefault(); 140 break; 141 case DOWN: 142 (options.swipeDown && auto || !auto && options.allowPageScroll != VERTICAL) && jqEvent.preventDefault(); 143 break; 144 case NONE: 145 } 146 } 147 } 148 149 function validatePinch() { 150 var hasCorrectFingerCount = validateFingers(), 151 hasEndPoint = validateEndPoint(), 152 hasCorrectDistance = validatePinchDistance(); 153 return hasCorrectFingerCount && hasEndPoint && hasCorrectDistance 154 } 155 156 function hasPinches() { return !!(options.pinchStatus || options.pinchIn || options.pinchOut) } 157 158 function didPinch() { return !(!validatePinch() || !hasPinches()) } 159 160 function validateSwipe() { 161 var hasValidTime = validateSwipeTime(), 162 hasValidDistance = validateSwipeDistance(), 163 hasCorrectFingerCount = validateFingers(), 164 hasEndPoint = validateEndPoint(), 165 didCancel = didSwipeBackToCancel(), 166 valid = !didCancel && hasEndPoint && hasCorrectFingerCount && hasValidDistance && hasValidTime; 167 return valid 168 } 169 170 function hasSwipes() { return !!(options.swipe || options.swipeStatus || options.swipeLeft || options.swipeRight || options.swipeUp || options.swipeDown) } 171 172 function didSwipe() { return !(!validateSwipe() || !hasSwipes()) } 173 174 function validateFingers() { return fingerCount === options.fingers || options.fingers === ALL_FINGERS || !SUPPORTS_TOUCH } 175 176 function validateEndPoint() { return 0 !== fingerData[0].end.x } 177 178 function hasTap() { return !!options.tap } 179 180 function hasDoubleTap() { return !!options.doubleTap } 181 182 function hasLongTap() { return !!options.longTap } 183 184 function validateDoubleTap() { if (null == doubleTapStartTime) return !1; var now = getTimeStamp(); return hasDoubleTap() && now - doubleTapStartTime <= options.doubleTapThreshold } 185 186 function inDoubleTap() { return validateDoubleTap() } 187 188 function validateTap() { return (1 === fingerCount || !SUPPORTS_TOUCH) && (isNaN(distance) || distance < options.threshold) } 189 190 function validateLongTap() { return duration > options.longTapThreshold && DOUBLE_TAP_THRESHOLD > distance } 191 192 function didTap() { return !(!validateTap() || !hasTap()) } 193 194 function didDoubleTap() { return !(!validateDoubleTap() || !hasDoubleTap()) } 195 196 function didLongTap() { return !(!validateLongTap() || !hasLongTap()) } 197 198 function startMultiFingerRelease(event) { previousTouchEndTime = getTimeStamp(), fingerCountAtRelease = event.touches.length + 1 } 199 200 function cancelMultiFingerRelease() { previousTouchEndTime = 0, fingerCountAtRelease = 0 } 201 202 function inMultiFingerRelease() { 203 var withinThreshold = !1; 204 if (previousTouchEndTime) { 205 var diff = getTimeStamp() - previousTouchEndTime; 206 diff <= options.fingerReleaseThreshold && (withinThreshold = !0) 207 } 208 return withinThreshold 209 } 210 211 function getTouchInProgress() { return !($element.data(PLUGIN_NS + "_intouch") !== !0) } 212 213 function setTouchInProgress(val) { $element && (val === !0 ? ($element.bind(MOVE_EV, touchMove), $element.bind(END_EV, touchEnd), LEAVE_EV && $element.bind(LEAVE_EV, touchLeave)) : ($element.unbind(MOVE_EV, touchMove, !1), $element.unbind(END_EV, touchEnd, !1), LEAVE_EV && $element.unbind(LEAVE_EV, touchLeave, !1)), $element.data(PLUGIN_NS + "_intouch", val === !0)) } 214 215 function createFingerData(id, evt) { var f = { start: { x: 0, y: 0 }, last: { x: 0, y: 0 }, end: { x: 0, y: 0 } }; return f.start.x = f.last.x = f.end.x = evt.pageX || evt.clientX, f.start.y = f.last.y = f.end.y = evt.pageY || evt.clientY, fingerData[id] = f, f } 216 217 function updateFingerData(evt) { 218 var id = void 0 !== evt.identifier ? evt.identifier : 0, 219 f = getFingerData(id); 220 return null === f && (f = createFingerData(id, evt)), f.last.x = f.end.x, f.last.y = f.end.y, f.end.x = evt.pageX || evt.clientX, f.end.y = evt.pageY || evt.clientY, f 221 } 222 223 function getFingerData(id) { return fingerData[id] || null } 224 225 function setMaxDistance(direction, distance) { direction != NONE && (distance = Math.max(distance, getMaxDistance(direction)), maximumsMap[direction].distance = distance) } 226 227 function getMaxDistance(direction) { return maximumsMap[direction] ? maximumsMap[direction].distance : void 0 } 228 229 function createMaximumsData() { var maxData = {}; return maxData[LEFT] = createMaximumVO(LEFT), maxData[RIGHT] = createMaximumVO(RIGHT), maxData[UP] = createMaximumVO(UP), maxData[DOWN] = createMaximumVO(DOWN), maxData } 230 231 function createMaximumVO(dir) { return { direction: dir, distance: 0 } } 232 233 function calculateDuration() { return endTime - startTime } 234 235 function calculateTouchesDistance(startPoint, endPoint) { 236 var diffX = Math.abs(startPoint.x - endPoint.x), 237 diffY = Math.abs(startPoint.y - endPoint.y); 238 return Math.round(Math.sqrt(diffX * diffX + diffY * diffY)) 239 } 240 241 function calculatePinchZoom(startDistance, endDistance) { var percent = endDistance / startDistance * 1; return percent.toFixed(2) } 242 243 function calculatePinchDirection() { return 1 > pinchZoom ? OUT : IN } 244 245 function calculateDistance(startPoint, endPoint) { return Math.round(Math.sqrt(Math.pow(endPoint.x - startPoint.x, 2) + Math.pow(endPoint.y - startPoint.y, 2))) } 246 247 function calculateAngle(startPoint, endPoint) { 248 var x = startPoint.x - endPoint.x, 249 y = endPoint.y - startPoint.y, 250 r = Math.atan2(y, x), 251 angle = Math.round(180 * r / Math.PI); 252 return 0 > angle && (angle = 360 - Math.abs(angle)), angle 253 } 254 255 function calculateDirection(startPoint, endPoint) { if (comparePoints(startPoint, endPoint)) return NONE; var angle = calculateAngle(startPoint, endPoint); return 45 >= angle && angle >= 0 ? LEFT : 360 >= angle && angle >= 315 ? LEFT : angle >= 135 && 225 >= angle ? RIGHT : angle > 45 && 135 > angle ? DOWN : UP } 256 257 function getTimeStamp() { var now = new Date; return now.getTime() } 258 259 function getbounds(el) { 260 el = $(el); 261 var offset = el.offset(), 262 bounds = { left: offset.left, right: offset.left + el.outerWidth(), top: offset.top, bottom: offset.top + el.outerHeight() }; 263 return bounds 264 } 265 266 function isInBounds(point, bounds) { return point.x > bounds.left && point.x < bounds.right && point.y > bounds.top && point.y < bounds.bottom } 267 268 function comparePoints(pointA, pointB) { return pointA.x == pointB.x && pointA.y == pointB.y } 269 var options = $.extend({}, options), 270 useTouchEvents = SUPPORTS_TOUCH || SUPPORTS_POINTER || !options.fallbackToMouseEvents, 271 START_EV = useTouchEvents ? SUPPORTS_POINTER ? SUPPORTS_POINTER_IE10 ? "MSPointerDown" : "pointerdown" : "touchstart" : "mousedown", 272 MOVE_EV = useTouchEvents ? SUPPORTS_POINTER ? SUPPORTS_POINTER_IE10 ? "MSPointerMove" : "pointermove" : "touchmove" : "mousemove", 273 END_EV = useTouchEvents ? SUPPORTS_POINTER ? SUPPORTS_POINTER_IE10 ? "MSPointerUp" : "pointerup" : "touchend" : "mouseup", 274 LEAVE_EV = useTouchEvents ? SUPPORTS_POINTER ? "mouseleave" : null : "mouseleave", 275 CANCEL_EV = SUPPORTS_POINTER ? SUPPORTS_POINTER_IE10 ? "MSPointerCancel" : "pointercancel" : "touchcancel", 276 distance = 0, 277 direction = null, 278 currentDirection = null, 279 duration = 0, 280 startTouchesDistance = 0, 281 endTouchesDistance = 0, 282 pinchZoom = 1, 283 pinchDistance = 0, 284 pinchDirection = 0, 285 maximumsMap = null, 286 $element = $(element), 287 phase = "start", 288 fingerCount = 0, 289 fingerData = {}, 290 startTime = 0, 291 endTime = 0, 292 previousTouchEndTime = 0, 293 fingerCountAtRelease = 0, 294 doubleTapStartTime = 0, 295 singleTapTimeout = null, 296 holdTimeout = null; 297 try { $element.bind(START_EV, touchStart), $element.bind(CANCEL_EV, touchCancel) } catch (e) { $.error("events not supported " + START_EV + "," + CANCEL_EV + " on jQuery.swipe") } 298 this.enable = function() { return this.disable(), $element.bind(START_EV, touchStart), $element.bind(CANCEL_EV, touchCancel), $element }, this.disable = function() { return removeListeners(), $element }, this.destroy = function() { removeListeners(), $element.data(PLUGIN_NS, null), $element = null }, this.option = function(property, value) { 299 if ("object" == typeof property) options = $.extend(options, property); 300 else if (void 0 !== options[property]) { 301 if (void 0 === value) return options[property]; 302 options[property] = value 303 } else { 304 if (!property) return options; 305 $.error("Option " + property + " does not exist on jQuery.swipe.options") 306 } 307 return null 308 } 309 } 310 var VERSION = "1.6.18", 311 LEFT = "left", 312 RIGHT = "right", 313 UP = "up", 314 DOWN = "down", 315 IN = "in", 316 OUT = "out", 317 NONE = "none", 318 AUTO = "auto", 319 SWIPE = "swipe", 320 PINCH = "pinch", 321 TAP = "tap", 322 DOUBLE_TAP = "doubletap", 323 LONG_TAP = "longtap", 324 HORIZONTAL = "horizontal", 325 VERTICAL = "vertical", 326 ALL_FINGERS = "all", 327 DOUBLE_TAP_THRESHOLD = 10, 328 PHASE_START = "start", 329 PHASE_MOVE = "move", 330 PHASE_END = "end", 331 PHASE_CANCEL = "cancel", 332 SUPPORTS_TOUCH = "ontouchstart" in window, 333 SUPPORTS_POINTER_IE10 = window.navigator.msPointerEnabled && !window.navigator.pointerEnabled && !SUPPORTS_TOUCH, 334 SUPPORTS_POINTER = (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) && !SUPPORTS_TOUCH, 335 PLUGIN_NS = "TouchSwipe", 336 defaults = { fingers: 1, threshold: 75, cancelThreshold: null, pinchThreshold: 20, maxTimeThreshold: null, fingerReleaseThreshold: 250, longTapThreshold: 500, doubleTapThreshold: 200, swipe: null, swipeLeft: null, swipeRight: null, swipeUp: null, swipeDown: null, swipeStatus: null, pinchIn: null, pinchOut: null, pinchStatus: null, click: null, tap: null, doubleTap: null, longTap: null, hold: null, triggerOnTouchEnd: !0, triggerOnTouchLeave: !1, allowPageScroll: "auto", fallbackToMouseEvents: !0, excludedElements: ".n
336oSwipe", preventDefaultEvents: !0 }; 337 $.fn.swipe = function(method) { 338 var $this = $(this), 339 plugin = $this.data(PLUGIN_NS); 340 if (plugin && "string" == typeof method) { 341 if (plugin[method]) return plugin[method].apply(plugin, Array.prototype.slice.call(arguments, 1)); 342 $.error("Method " + method + " does not exist on jQuery.swipe") 343 } else if (plugin && "object" == typeof method) plugin.option.apply(plugin, arguments); 344 else if (!(plugin || "object" != typeof method && method)) return init.apply(this, arguments); 345 return $this 346 }, $.fn.swipe.version = VERSION, $.fn.swipe.defaults = defaults, $.fn.swipe.phases = { PHASE_START: PHASE_START, PHASE_MOVE: PHASE_MOVE, PHASE_END: PHASE_END, PHASE_CANCEL: PHASE_CANCEL }, $.fn.swipe.directions = { LEFT: LEFT, RIGHT: RIGHT, UP: UP, DOWN: DOWN, IN: IN, OUT: OUT }, $.fn.swipe.pageScroll = { NONE: NONE, HORIZONTAL: HORIZONTAL, VERTICAL: VERTICAL, AUTO: AUTO }, $.fn.swipe.fingers = { ONE: 1, TWO: 2, THREE: 3, FOUR: 4, FIVE: 5, ALL: ALL_FINGERS } 347}); 348 349// Thanks to Maaaaark - https://github.com/maaaaark/bcSwipe/blob/master/jquery.bcSwipe.min.js 350//!function(t){t.fn.bcSwipe=function(e){var n={threshold:50};return e&&t.extend(n,e),this.each(function(){function e(t){1==t.touches.length&&(u=t.touches[0].pageX,c=!0,this.addEventListener("touchmove",o,!1))}function o(e){if(c){var o=e.touches[0].pageX,i=u-o;Math.abs(i)>=n.threshold&&(h(),t(this).carousel(i>0?"next":"prev"))}}function h(){this.removeEventListener("touchmove",o),u=null,c=!1}var u,c=!1;"ontouchstart"in document.documentElement&&this.addEventListener("touchstart",e,!1)}),this}}(jQuery); 351 352 353//https://github.com/tysonmatanich/viewportSize 354/*! viewportSize | Author: Tyson Matanich, 2013 | License: MIT */ 355(function(n) { 356 n.viewportSize = {}, n.viewportSize.getHeight = function() { return t("Height") }, n.viewportSize.getWidth = function() { return t("Width") }; 357 var t = function(t) { 358 var f, o = t.toLowerCase(), 359 e = n.document, 360 i = e.documentElement, 361 r, u; 362 return n["inner" + t] === undefined ? f = i["client" + t] : n["inner" + t] != i["client" + t] ? (r = e.createElement("body"), r.id = "vpw-test-b", r.style.cssText = "overflow:scroll", u = e.createElement("div"), u.id = "vpw-test-d", u.style.cssText = "position:absolute;top:-1000px", u.innerHTML = "<style>@media(" + o + ":" + i["client" + t] + "px){body#vpw-test-b div#vpw-test-d{" + o + ":7px!important}}<\/style>", r.appendChild(u), i.insertBefore(r, e.head), f = u["offset" + t] == 7 ? i["client" + t] : n["inner" + t], i.removeChild(r)) : f = n["inner" + t], f 363 } 364})(this); 365 366$(document).ready(function() { 367 // Tabellen verschönern 368 $('.tabelle table').addClass('table table-sm'); 369 $('.tabelle table').attr('style', ''); 370 $('.tabelle table tr').attr('style', ''); 371 $('.tabelle table td').attr('style', ''); 372 //$('.headback').append('<div class="headback-bg"></div>'); 373 374 // Ausklapp-Infos ergänzen 375 $('#mobil-navi .navbody li a').each(function() { 376 377 // Marker ergänzen 378 if ($(this).parent().children("ul").length) { 379 $(this).append('<span class="pfeil"></span>'); 380 } 381 }); 382 383 // Slider oder Raster: auswerten 384 $('.sliderraster ').each(function() { 385 386 var realscreenwidth = viewportSize.getWidth(); 387 if (realscreenwidth > 991) { 388 if (window.console) console.log('PC: Raster'); 389 $(this).find('.optbt').remove(); 390 } else { 391 if (window.console) console.log('Mobil: Slider'); 392 $(this).find('.addtype').addClass('btitemslider'); 393 $(this).find('.item').first().addClass('active'); 394 } 395 396 }); 397 398 // Links in neuem Fenster öffnen 399 $('a[href$=".pdf"]').prop('target', '_blank'); 400 $('a[href$=".doc"]').prop('target', '_blank'); 401 $('a[href$=".docx"]').prop('target', '_blank'); 402 $('a.newwindow').prop('target', '_blank'); 403 $("a[href^=http]").each(function() { 404 405 if (typeof(excludes) != "undefined" && excludes !== null) { 406 if (excludes.length) { 407 408 for (i = 0; i < excludes.length; i++) { 409 if (this.href.indexOf(excludes[i]) != -1) { 410 return true; // continue each() with next link 411 } 412 } 413 414 if (this.href.indexOf(location.hostname) == -1) { 415 $(this).attr({ 416 target: "_blank" 417 //title: "Opens in a new window" 418 }); 419 } 420 } 421 } 422 }); 423 424 // Menu andocken
425 var position = $(window).scrollTop(); 426 $(window).scroll(function() { 427 var scroll = $(window).scrollTop(); 428 if (scroll > position) { 429 $('body').removeClass('scrolledup'); 430 } else { 431 if ($('#aftertopnavi').length) { 432 //var relativetopNaviPos = parseInt( $('#aftertopnavi').offset().top ); 433 //if ( relativetopNaviPos < scroll ) 434 $('body').addClass('scrolledup'); 435 } 436 } 437 438 if (position < 1) { 439 $('body').removeClass('scrolled'); 440 } else { 441 $('body').addClass('scrolled'); 442 } 443 position = scroll; 444 445 if ($('#aftertopnavi').length) { 446 var relativetopNaviPos = parseInt($('#aftertopnavi').offset().top); 447 //if ($('body').hasClass('scrolledup')) {} 448 //else 449 //{ 450 //$('ul li.hotelhead').text( relativetopNaviPos + 'Pixel versus scroll ' + scroll + ' Pixel'); 451 452 if (relativetopNaviPos < scroll) $('body').addClass('fixed'); 453 else $('body').removeClass('fixed'); 454 if ($('body').hasClass('scrolledup')) $('body').addClass('fixed'); 455 //} 456 } 457 458 if (scroll < 2) { 459 $('body').removeClass('scrolledup'); 460 $('body').removeClass('fixed'); 461 } 462 463 }); 464 465 // Lightbox 466 lightbox.option({ 467 'albumLabel': "Bild %1 von %2", 468 'showImageNumberLabel': false 469 }) 470 471 // Modal Bilder 472 // Gets the img src from the data-src on each button 473 var $imageSrc; 474 $('img.showmodal').click(function() { 475 $imageSrc = $(this).data('bigimage'); 476 }); 477 //console.log($imageSrc); 478 479 // when the modal is opened autoplay it 480 $('#myModal').on('shown.bs.modal', function(e) { 481 $("#image").attr('src', $imageSrc); 482 }); 483 484 // reset the modal image 485 $('#myModal').on('hide.bs.modal', function(e) { 486 // a poor man's stop video 487 $("#image").attr('src', './css/loading.gif'); 488 }); 489 490 // Topmenu ausklappen 491 $('#mobil-header .togglemobmenu').on("click", function(e) { 492 e.preventDefault(); 493 e.stopPropagation(); 494 $('#mobil-navi').removeClass('eingeklappt'); 495 }); 496 $('#mobil-navi .navitoggle').on("click", function(e) { 497 e.preventDefault(); 498 e.stopPropagation(); 499 $('#mobil-navi').addClass('eingeklappt'); 500 }); 501 502 // Mobilmenu Ausklapp-Funktion 503 $('#mobil-navi .navbody ul li a').on("click", function(e) { 504 e.preventDefault(); 505 //$('#navi ul.nav > li').removeClass('hovered'); 506 //$(this).parent().addClass('hovered'); 507 if ($(this).parent().children('ul').length) { 508 $(this).parent().toggleClass('active'); 509 } else { window.location.href = $(this).attr('href'); } 510 }); 511 512 // Scroll-Button nach oben 513 $('#gotop').hide(); 514 $(window).scroll(function() { 515 if ($(document).scrollTop() > 100) $('#gotop').fadeIn(); 516 else $('#gotop').fadeOut(); 517 }); 518 519 // Smooth Scrolling 520 $('#gotop').on('click touchstart', function() { 521 $('html, body').animate({ 522 scrollTop: 0 523 }, 500); 524 return false; 525 }); 526 527 // Smooth Scrolling 528 $('a.softscroll').on('click touchstart', function() { 529 $('html, body').animate({ 530 scrollTop: $($.attr(this, 'href')).offset().top 531 }, 500); 532 533 history.pushState(stateObj, $(this).text(), $(this).attr('href')); 534 return false; 535 }); 536 537 // Langtext Ausklapp-Funktion 538 $('.button.showlong a').on("click", function(e) { 539 e.preventDefault(); 540 var realscreenwidth = viewportSize.getWidth(); 541 if (($(this).hasClass('nachoben')) && (realscreenwidth > 991)) { 542 if (window.console) console.log('Hoch'); 543 //$(this).parent().hide(); 544 //$(this).parent().remove(); 545 $($(this).attr('data-target')).find('.longtext').prepend($($(this).attr('data-target')).parent().find('.intro').html()); 546 $($(this).attr('data-target')).find('.button.showlong').remove(); 547 $($(this).attr('data-target')).removeClass('eingeklappt'); 548 } else { 549 $($(this).attr('data-target')).removeClass('eingeklappt'); 550 $(this).parent().hide(); 551 } 552 }); 553 554 // Umklapp-Funktion 555 $('.mehrtext .eventdetails a.lupe').on("click touchstart", function(e) { 556 e.preventDefault(); 557 $(this).parent().parent().removeClass('eingeklappt'); 558 $(this).parent().parent().addClass('ausgeklappt'); 559 }); 560 $('.mehrtext .eventbild').on("click touchstart", function(e) { 561 e.preventDefault(); 562 $(this).parent().removeClass('eingeklappt'); 563 $(this).parent().addClass('ausgeklappt'); 564 }); 565 $('.mehrtext .text-close').on("click touchstart", function(e) { 566 e.preventDefault(); 567 $(this).parent().addClass('eingeklappt'); 568 $(this).parent().removeClass('ausgeklappt'); 569 }); 570 571 572 // BT Grid item slider 573 // Anfangszustand 574 $('a.btitemslider-prev').addClass('inactive'); 575 $('a.btitemslider-next').addClass('inactive'); 576 $('.btitemslider').each(function() { 577 var totalItems = $(this).find(' .row .item').length; 578 var realscreenwidth = viewportSize.getWidth(); 579 if (realscreenwidth > 991) var itemsPerSlide = parseInt($(this).find('a.btitemslider-next').attr("data-items-lg")); 580 else if (realscreenwidth > 577) var itemsPerSlide = parseInt($(this).find('a.btitemslider-next').attr("data-items-sm")); 581 else var itemsPerSlide = parseInt($(this).find('a.btitemslider-next').attr("data-items-xs")); 582 583 if (totalItems > itemsPerSlide) $(this).find('a.btitemslider-next').removeClass('inactive'); 584 $(this).find('a.btitemslider-prev').addClass('inactive'); 585 //if (window.console) console.log('BT Slider Items: ' + totalItems ); 586 //if (window.console) console.log('BT per Slide: ' + itemsPerSlide ); 587 588 }); 589 590}); 591 592 593 594// Aktion bei Klick 595$('a.btitemslider-prev, a.btitemslider-next').on('click', function(e) { 596 597 e.preventDefault(); 598 var realscreenwidth = viewportSize.getWidth(); 599 if (realscreenwidth > 991) var itemsPerSlide = parseInt($(this).attr("data-items-lg")); 600 else if (realscreenwidth > 577) var itemsPerSlide = parseInt($(this).attr("data-items-sm")); 601 else var itemsPerSlide = parseInt($(this).attr("data-items-xs")); 602 603 var sliderid = $(this).attr('href'); 604 var totalItems = $(sliderid + ' .row .item').length; 605 if ($(this).hasClass('btitemslider-prev')) var direction = "prev"; 606 else var direction = "next"; 607 if (window.console) console.log('BT Items: ' + totalItems + ' /per Slide: ' + itemsPerSlide); 608 609 //alert ( "Anzahl " + totalItems ); 610 if (direction == "prev") { 611 $(sliderid + ' .row .item.active').prev('.item').addClass('prev'); 612 $(sliderid + ' .row .item').removeClass('active'); 613 $(sliderid + ' .row .item.prev').addClass('active'); 614 $(sliderid + ' .row .item').removeClass('prev'); 615 616 } else { 617 $(sliderid + ' .row .item.active').next('.item').addClass('next'); 618 $(sliderid + ' .row .item').removeClass('active'); 619 $(sliderid + ' .row .item.next').addClass('active'); 620 $(sliderid + ' .row .item').removeClass('next'); 621 } 622 623 var it = totalItems - itemsPerSlide; 624 625 if ($(sliderid + ' .row .item').eq(0).hasClass('active')) $(sliderid + ' a.btitemslider-prev').addClass('inactive'); 626 else $(sliderid + ' a.btitemslider-prev').removeClass('inactive'); 627 628 if (it > 0) { 629 if ($(sliderid + ' .row .item').eq(it).hasClass('active')) $(sliderid + ' a.btitemslider-next').addClass('inactive'); 630 else $(sliderid + ' a.btitemslider-next').removeClass('inactive'); 631 } else $(sliderid + ' a.btitemslider-next').addClass('inactive'); 632 633}); 634 635// Swipe functions for BT Item Carousel
636if ($('.btitemslider').length) { 637 //$('.carousel').carousel({interval: 7000, pause: false }); 638 $(".btitemslider").swipe({ 639 swipe: function(event, direction, distance, duration, fingerCount, fingerData) { 640 if (direction == 'left') { var sliderid = $(this).attr('href'); if ($(this).find(' a.btitemslider-next').hasClass('inactive')) {} else $(this).find(' a.btitemslider-next').trigger("click"); }; 641 if (direction == 'right') { var sliderid = $(this).attr('href'); if ($(this).find(' a.btitemslider-prev').hasClass('inactive')) {} else $(this).find(' a.btitemslider-prev').trigger("click"); }; 642 //alert ("SWYPE " + direction ); 643 }, 644 allowPageScroll: "vertical" 645 }); 646} 647 648 649// Swipe functions for Bootstrap Carousel 650if ($('.carousel').length) { 651 //$('.carousel').carousel({interval: 7000, pause: false }); 652 $(".carousel").swipe({ 653 swipe: function(event, direction, distance, duration, fingerCount, fingerData) { 654 if (direction == 'left') { 655 if ($(this).find('.carousel-item.active').hasClass('lastallowed')) { 656 //alert ("ENDE"); 657 } else $(this).carousel('next'); 658 } 659 if (direction == 'right') { 660 if ($(this).find('.carousel-item.active').hasClass('firstallowed')) { 661 //alert ("START"); 662 } else $(this).carousel('prev'); 663 } 664 }, 665 allowPageScroll: "vertical" 666 }); 667} 668 669//Carusel New 670var movement = 0; 671var item_size; 672var item_resize; 673var item_count = $(".l-smothslide .item").length; 674var item_passed_counter = 3; 675 676if ($(window).width() > 991) { 677 five_row = true 678} else { 679 five_row = false 680} 681 682$(window).resize(function() { 683 var new_margin = 0; 684 $('.row.l-smothslide').css("margin-left", new_margin + "px"); 685 var overflow_box = $(".overflow-box").width(); 686 $(".btitemslider-smothslide-prev").css("display", "none"); 687 $(".btitemslider-smothslide-next").css("display", "block"); 688 item_passed_counter = 0; 689 movement = 0; 690 691 if ($(window).width() > 991) { 692 693 item_resize = (overflow_box) / 5; 694 five_row = true; 695 696 } else if ($(window).width() > 575) { 697 698 if ($(window).width() < 991) { 699 700 five_row = false; 701 item_resize = (overflow_box) / 2; 702 703 } 704 } 705 706 $(".l-smothslide .item").css("width", item_resize + "px"); 707 var max_content = item_count * item_resize; 708 $(".l-smothslide").css("width", max_content + "px"); //hier 709 slider_auto_scroll(); 710}); 711 712$(".btitemslider-smothslide-prev").css("display", "none"); 713 714//prev button 715$('.btitemslider-smothslide-prev').on("click touchstart", function(e) { 716 e.preventDefault(); 717 slider_prev() 718}) 719 720//next button 721$('.btitemslider-smothslide-next').on("click touchstart", function(e) { 722 e.preventDefault(); 723 slider_next(); 724}) 725 726function slider_next() { 727 item_size = $(".l-smothslide .item").width(); 728 item_passed_counter = item_passed_counter + 1; 729 movement = movement - item_size; 730 731 $('.row.l-smothslide').css("margin-left", movement + "px"); 732 if (five_row) { 733 734 if (item_passed_counter >= item_count - 5) { 735 736 $(".btitemslider-smothslide-next").css("display", "none"); 737 $(".btitemslider-smothslide-prev").css("display", "block"); 738 739 } else { 740 741 $(".btitemslider-smothslide-prev").css("display", "block"); 742 743 } 744 } else { 745 746 if (item_passed_counter >= item_count - 2) { 747 748 $(".btitemslider-smothslide-next").css("display", "none"); 749 $(".btitemslider-smothslide-prev").css("display", "block"); 750 751 } else { 752 753 $(".btitemslider-smothslide-prev").css("display", "block"); 754 755 } 756 } 757} 758 759function slider_prev() { 760 item_size = $(".l-smothslide .item").width(); 761 movement = movement + item_size; 762 item_passed_counter = item_passed_counter - 1; 763 764 $('.row.l-smothslide').css("margin-left", movement + "px"); 765 766 if (item_passed_counter == 0) { 767 768 $(".btitemslider-smothslide-prev").css("display", "none");
769 $(".btitemslider-smothslide-next").css("display", "block"); 770 771 } else { 772 773 $(".btitemslider-smothslide-next").css("display", "none"); 774 $(".btitemslider-smothslide-prev").css("display", "block"); 775 776 } 777} 778//Auto Vorspringen 779if (itemjump == null) { 780 var itemjump = 0; 781} 782var rex_value1 = itemjump; 783slider_auto_scroll(); 784 785function slider_auto_scroll() { 786 if ($(window).width() > 991) { 787 if ($(".l-smothslide .item").length - 5 >= rex_value1 && rex_value1 > 0) { 788 789 for (index = 0; index < rex_value1 - 1; index++) { 790 791 slider_next(); 792 // console.log ("Check " +rex_value1) 793 794 } 795 796 } else if ($(".l-smothslide .item").length - 5 <= rex_value1 && rex_value1 <= $(".l-smothslide .item").length) { 797 798 for (index = 0; index < $(".l-smothslide .item").length - 5; index++) { 799 800 slider_next(); 801 // console.log ("Check " +rex_value1) 802 803 } 804 805 } 806 } else { 807 if ($(".l-smothslide .item").length - 2 >= rex_value1 && rex_value1 > 0) { 808 809 for (index = 0; index < rex_value1 - 1; index++) { 810 811 slider_next(); 812 // console.log ("Check " +rex_value1) 813 814 } 815 816 } else if ($(".l-smothslide .item").length - 2 <= rex_value1 && rex_value1 <= $(".l-smothslide .item").length) { 817 818 for (index = 0; index < $(".l-smothslide .item").length - 2; index++) { 819 820 slider_next(); 821 // console.log ("Check " +rex_value1) 822 823 } 824 825 } 826 } 827} 828//END Slider 829// // Swipe functions for BT Item Carousel 830// if($('.btitemslider').length){ 831// //$('.carousel').carousel({interval: 7000, pause: false }); 832// $(".btitemslider").swipe({ swipe: function(event, direction, distance, duration, fingerCount, fingerData) { 833// if (direction == 'left') { var sliderid = $(this).attr('href'); if ( $(this).find(' a.btitemslider-next' ).hasClass('inactive') ) {} else $(this).find(' a.btitemslider-next' ).trigger("click"); }; 834// if (direction == 'right') { var sliderid = $(this).attr('href'); if ( $(this).find(' a.btitemslider-prev' ).hasClass('inactive') ) {} else $(this).find(' a.btitemslider-prev' ).trigger("click"); }; 835// //alert ("SWYPE " + direction ); 836// }, allowPageScroll:"vertical" }); 837// } 838 839 840// // Swipe functions for Bootstrap Carousel 841// if($('.carousel').length){ 842// //$('.carousel').carousel({interval: 7000, pause: false }); 843// $(".carousel").swipe({ swipe: function(event, direction, distance, duration, fingerCount, fingerData) 844// { 845// if (direction == 'left') 846// { 847// if ( $(this).find('.carousel-item.active').hasClass('lastallowed') ) 848// { 849// //alert ("ENDE"); 850// } 851// else $(this).carousel('next'); 852// } 853// if (direction == 'right') 854// { 855// if ( $(this).find('.carousel-item.active').hasClass('firstallowed') ) 856// { 857// //alert ("START"); 858// } 859// else $(this).carousel('prev'); 860// } 861// }, allowPageScroll:"vertical" }); 862// } 863 864// AJAX-Lightbox-Button 865$('a.newlight').on('click', function(e) { 866 e.preventDefault(); 867 868 var realscreenwidth = viewportSize.getWidth(); 869 var ajaxurl = $('#libcover').attr('data-ajaxurl'); 870 var ajaxlang = $('#libcover').attr('data-ajaxlang'); 871 //var topbottom = $(window).height() - $(this).offset().top - $(this).height(); 872 if (realscreenwidth > 577) { 873 874 var topbottom = window.pageYOffset; 875 // alert(topbottom); 876 } else { 877 878 var topbottom = window.pageYOffset - 15; 879 880 }; 881 //if (window.console) console.log( "XPos: " + $(this).offset().top ); 882 //if (window.console) console.log( "XHeight: " + $(this).height() ); 883 884 $('body').removeClass('mitmenu'); 885 $('html').addClass('mitlib'); 886 $('body').addClass('mitlib'); 887 $('#libcover').hide(); 888 $('body.mitlib #libcover').css('top', topbottom + 'px'); 889 $('#libcover').fadeIn('slow'); 890 891 $('#libinner').html('<center><br /><br /><br /><br /><img src="./css/loading.gif" alt="Wird geladen..." width=32 height=32 /></center>'); 892 //window.history.pushState(null, null, $(this).attr('href') ); 893 894 if ($(this).attr('data-do') == "getimage") Abfrage = "do=getimage" + "&dataid=" + $(this).attr('data-imageid') + "&datalang=" + ajaxlang; 895 else Abfrage = "do=getpage" + "&dataid=" + $(this).attr('data-linkid') + "&datalang=" + ajaxlang; 896 //alert ( ajaxid + '?' + Abfrage ); 897 $.post(ajaxurl, Abfrage, function(data) { 898 899 if (data.result == "OK") { 900 $('#libinner').html(data.content); 901 902 // Swipe functions for Bootstrap Carousel
903 if ($('.carousel').length) { 904 //$('.carousel').carousel({interval: 7000, pause: false }); 905 $(".carousel").swipe({ swipe: function(event, direction, distance, duration, fingerCount, fingerData) { if (direction == 'left') $(this).carousel('next'); if (direction == 'right') $(this).carousel('prev'); }, allowPageScroll: "vertical" }); 906 } 907 } else { 908 //$('#libinner').html( data.content ); 909 $('#libinner').html('Leider ist ein Fehler aufgetreten [1].' + data.content); 910 //if (window.console) console.log( "Abfrage: " + ajaxurl + "?" + Abfrage ); 911 } 912 }, 'json').fail(function() { 913 $('#libinner').html('Leider ist ein Fehler aufgetreten [2].'); 914 //if (window.console) console.log( "Abfrage: " + ajaxurl + "?" + Abfrage ); 915 }); 916 //$('#libinner').css( 'height', parseInt( $('#libcover').height() - 1 ) + 'px'); 917 918}); 919 920// Lightbox schliessen 921$('#libclose').click(function(e) { 922 $('#libcover').show(); 923 $('#libcover').fadeOut('slow', function() { 924 $('html').removeClass('mitlib'); 925 $('body').removeClass('mitlib'); 926 }); 927 //$('html').removeClass('mitlib'); 928 //$('body').removeClass('mitlib'); 929}); 930 931// lslider 932function lslider_prev() { 933 // if(1==1){ 934 // $('.carousel.slide .carousel-inner .carousel-item.active').prev('.carousel-item').addClass('prev'); 935 // $('.carousel.slide .carousel-inner .carousel-item').removeClass('active'); 936 // $('.carousel.slide .carousel-inner .carousel-item.prev').addClass('active'); 937 // $('.carousel.slide .carousel-inner .carousel-item').removeClass('prev'); 938 // }; 939 // console.log("prev"); 940 $('.carousel').carousel('prev'); 941}; 942 943function lslider_next() { 944 // if(1==1){ 945 // $('.carousel.slide .carousel-inner .carousel-item.active').next('.carousel-item').addClass('next'); 946 // $('.carousel.slide .carousel-inner .carousel-item').removeClass('active'); 947 // $('.carousel.slide .carousel-inner .carousel-item.next').addClass('active'); 948 // $('.carousel.slide .carousel-inner .carousel-item').removeClass('next'); 949 // }; 950 // console.log("next"); 951 $('.carousel').carousel('next'); 952}; 953 954$(window).on("load", function(e) { 955 //alert ("Load"); 956 $(window).on('resize', function() { 957 //alert ("resize"); 958 var realscreenwidth = viewportSize.getWidth(); // caused problems with scrollbars 959 var realscreenheight = viewportSize.getHeight(); // caused problems with scrollbars 960 961 $('#inhalt').css('min-height', parseInt(realscreenheight - $('footer').height() + 1) + 'px') 962 963 964 }).trigger('resize'); 965 966 967}); 968 969if ($(".togglemobmenu")[0]) { 970 971 blendin(); 972} 973 974function blendin() { 975 976 const $window = $(window); 977 978 $window.on('scroll resize', check_view); 979 $window.trigger('scroll'); 980 981 function check_view() { 982 983 984 var $header = $('#header-bild'); 985 var headerHeight = $header.outerHeight(); 986 var headerTopPosition = $header.offset().top; 987 var headerBottomPosition = (headerHeight + headerTopPosition); 988 989 if ($(".togglemobmenu")[0]) { 990 var classses = document.getElementsByClassName(".togglemobmenu"); 991 var $ulmenu = $('.togglemobmenu'); 992 993 var j; 994 for (j = 0; j < 2; j++) { 995 classses[j] 996 $ulmenu.each(function() { 997 var ulmenuHeight = $(this).outerHeight(); 998 var ulmenuTopPosition = $(this).offset().top; 999 var ulmenuBottomPosition = (ulmenuTopPosition + ulmenuHeight); 1000 1001 if ((ulmenuTopPosition <= headerBottomPosition) && 1002 (ulmenuBottomPosition >= headerTopPosition)) { 1003 $(this).addClass('headeractive'); 1004 document.getElementById('menuchange').src = '../media/burgermenue_hell_1.svg'; 1005 } else if ('loopRepeat' == 'loopRepeat') { 1006 $(this).removeClass('headeractive'); 1007 document.getElementById('menuchange').src = '../media/burgermenue_gruen_1.svg'; 1008 }; 1009 }); 1010 1011 } 1012 1013 1014 } 1015 }; 1016}; 1017 1018function stoerer_entfernen() { 1019 $('#stoerer-hinweis').addClass('geklickt'); 1020} 1021 1022function stoerer() { 1023 $('#stoerer-hinweis').removeClass('geklickt'); 1024} 1025 1026$(document).ready(function() { 1027 1028 $('#stoerer-hinweis').on("click", function(e) { 1029 stoerer_entfernen() 1030 }); 1031 1032 $(window).scroll(function() { 1033 stoerer_entfernen() 1034 }); 1035 // stoerer_entfernen() 1036});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.