diff --git a/html/js/prototype.js b/html/js/prototype.js index cc89dafcd..5c7ed2bd4 100644 --- a/html/js/prototype.js +++ b/html/js/prototype.js @@ -1,4 +1,4 @@ -/* Prototype JavaScript framework, version 1.7.3 +/* Prototype JavaScript framework, version 1.7.2 * (c) 2005-2010 Sam Stephenson * * Prototype is freely distributable under the terms of an MIT-style license. @@ -8,7 +8,7 @@ var Prototype = { - Version: '1.7.3', + Version: '1.7.2', Browser: (function(){ var ua = navigator.userAgent; @@ -621,7 +621,7 @@ Object.extend(String.prototype, (function() { } function stripTags() { - return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?(\/)?>|<\/\w+>/gi, ''); + return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, ''); } function stripScripts() { @@ -734,7 +734,7 @@ Object.extend(String.prototype, (function() { function evalJSON(sanitize) { var json = this.unfilterJSON(), - cx = /[\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff\u0000]/g; + cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; if (cx.test(json)) { json = json.replace(cx, function (a) { return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); @@ -1332,9 +1332,10 @@ Array.from = $A; } if (arrayProto.some) { - some = wrapNative(Array.prototype.some); + var some = wrapNative(Array.prototype.some); } + function every(iterator) { if (this == null) throw new TypeError(); iterator = iterator || Prototype.K; @@ -1351,16 +1352,22 @@ Array.from = $A; } if (arrayProto.every) { - every = wrapNative(Array.prototype.every); + var every = wrapNative(Array.prototype.every); } + var _reduce = arrayProto.reduce; + function inject(memo, iterator) { + iterator = iterator || Prototype.K; + var context = arguments[2]; + return _reduce.call(this, iterator.bind(context), memo); + } + + if (!arrayProto.reduce) { + var inject = Enumerable.inject; + } Object.extend(arrayProto, Enumerable); - if (arrayProto.entries === Enumerable.entries) { - delete arrayProto.entries; - } - if (!arrayProto._reverse) arrayProto._reverse = arrayProto.reverse; @@ -1376,6 +1383,7 @@ Array.from = $A; any: some, every: every, all: every, + inject: inject, clear: clear, first: first, @@ -2138,12 +2146,12 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { function visible(element) { - return $(element).getStyle('display') !== 'none'; + return $(element).style.display !== 'none'; } function toggle(element, bool) { element = $(element); - if (typeof bool !== 'boolean') + if (Object.isUndefined(bool)) bool = !Element.visible(element); Element[bool ? 'show' : 'hide'](element); @@ -2675,7 +2683,6 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { function descendantOf_DOM(element, ancestor) { element = $(element), ancestor = $(ancestor); - if (!element || !ancestor) return false; while (element = element.parentNode) if (element === ancestor) return true; return false; @@ -2683,14 +2690,12 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { function descendantOf_contains(element, ancestor) { element = $(element), ancestor = $(ancestor); - if (!element || !ancestor) return false; if (!ancestor.contains) return descendantOf_DOM(element, ancestor); return ancestor.contains(element) && ancestor !== element; } function descendantOf_compareDocumentPosition(element, ancestor) { element = $(element), ancestor = $(ancestor); - if (!element || !ancestor) return false; return (element.compareDocumentPosition(ancestor) & 8) === 8; } @@ -2795,10 +2800,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { for (var attr in attributes) { name = table.names[attr] || attr; value = attributes[attr]; - if (table.values[attr]) { - value = table.values[attr](element, value); - if (Object.isUndefined(value)) continue; - } + if (table.values[attr]) + name = table.values[attr](element, value) || name; if (value === false || value === null) element.removeAttribute(name); else if (value === true) @@ -2976,9 +2979,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { values: { checked: function(element, value) { - value = !!value; - element.checked = value; - return value ? 'checked' : null; + element.checked = !!value; }, style: function(element, value) { @@ -3123,11 +3124,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { value = element.currentStyle[style]; } - if (style === 'opacity') { - if (!STANDARD_CSS_OPACITY_SUPPORTED) - return getOpacity_IE(element); - else return value ? parseFloat(value) : 1.0; - } + if (style === 'opacity' && !STANDARD_CSS_OPACITY_SUPPORTED) + return getOpacity_IE(element); if (value === 'auto') { if ((style === 'width' || style === 'height') && Element.visible(element)) @@ -3179,7 +3177,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { if (value < 0.00001) value = 0; style.filter = stripAlphaFromFilter_IE(filter) + - ' alpha(opacity=' + (value * 100) + ')'; + 'alpha(opacity=' + (value * 100) + ')'; return element; } @@ -3195,7 +3193,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { var filter = Element.getStyle(element, 'filter'); if (filter.length === 0) return 1.0; - var match = (filter || '').match(/alpha\(opacity=(.*)\)/i); + var match = (filter || '').match(/alpha\(opacity=(.*)\)/); if (match && match[1]) return parseFloat(match[1]) / 100; return 1.0; } @@ -3521,7 +3519,7 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { return boxWidth - bl - br - pl - pr; } - if (!Object.isUndefined(document.documentElement.currentStyle) && !Prototype.Browser.Opera) { + if ('currentStyle' in document.documentElement) { getRawStyle = getRawStyle_IE; } @@ -4049,19 +4047,15 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { function getOffsetParent(element) { element = $(element); - function selfOrBody(element) { - return isHtml(element) ? $(document.body) : $(element); - } - if (isDocument(element) || isDetached(element) || isBody(element) || isHtml(element)) return $(document.body); var isInline = (Element.getStyle(element, 'display') === 'inline'); - if (!isInline && element.offsetParent) return selfOrBody(element.offsetParent); + if (!isInline && element.offsetParent) return $(element.offsetParent); while ((element = element.parentNode) && element !== document.body) { if (Element.getStyle(element, 'position') !== 'static') { - return selfOrBody(element); + return isHtml(element) ? $(document.body) : $(element); } } @@ -4099,8 +4093,8 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { } } while (element); - valueL -= layout.get('margin-left'); - valueT -= layout.get('margin-top'); + valueL -= layout.get('margin-top'); + valueT -= layout.get('margin-left'); return new Element.Offset(valueL, valueT); } @@ -4271,8 +4265,6 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { offsetLeft: 0 }, options || {}); - var docEl = document.documentElement; - source = $(source); element = $(element); var p, delta, layout, styles = {}; @@ -4286,41 +4278,19 @@ Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { } } - function pageScrollXY() { - var x = 0, y = 0; - if (Object.isNumber(window.pageXOffset)) { - x = window.pageXOffset; - y = window.pageYOffset; - } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) { - x = document.body.scrollLeft; - y = document.body.scrollTop; - } else if (docEl && (docEl.scrollLeft || docEl.scrollTop)) { - x = docEl.scrollLeft; - y = docEl.scrollTop; - } - return { x: x, y: y }; - } - - var pageXY = pageScrollXY(); - - if (options.setWidth || options.setHeight) { layout = Element.getLayout(source); } if (options.setLeft) - styles.left = (p[0] + pageXY.x - delta[0] + options.offsetLeft) + 'px'; + styles.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; if (options.setTop) - styles.top = (p[1] + pageXY.y - delta[1] + options.offsetTop) + 'px'; + styles.top = (p[1] - delta[1] + options.offsetTop) + 'px'; - var currentLayout = element.getLayout(); - - if (options.setWidth) { - styles.width = layout.get('width') + 'px'; - } - if (options.setHeight) { - styles.height = layout.get('height') + 'px'; - } + if (options.setWidth) + styles.width = layout.get('border-box-width') + 'px'; + if (options.setHeight) + styles.height = layout.get('border-box-height') + 'px'; return Element.setStyle(element, styles); } @@ -4518,29 +4488,15 @@ Prototype.Selector = (function() { }; })(); Prototype._original_property = window.Sizzle; - -;(function () { - function fakeDefine(fn) { - Prototype._actual_sizzle = fn(); - } - fakeDefine.amd = true; - - if (typeof define !== 'undefined' && define.amd) { - Prototype._original_define = define; - Prototype._actual_sizzle = null; - window.define = fakeDefine; - } -})(); - /*! - * Sizzle CSS Selector Engine v1.10.18 + * Sizzle CSS Selector Engine v@VERSION * http://sizzlejs.com/ * * Copyright 2013 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * - * Date: 2014-02-05 + * Date: @DATE */ (function( window ) { @@ -6273,22 +6229,6 @@ if ( typeof define === "function" && define.amd ) { })( window ); -;(function() { - if (typeof Sizzle !== 'undefined') { - return; - } - - if (typeof define !== 'undefined' && define.amd) { - window.Sizzle = Prototype._actual_sizzle; - window.define = Prototype._original_define; - delete Prototype._actual_sizzle; - delete Prototype._original_define; - } else if (typeof module !== 'undefined' && module.exports) { - window.Sizzle = module.exports; - module.exports = {}; - } -})(); - ;(function(engine) { var extendElements = Prototype.Selector.extendElements; @@ -6930,7 +6870,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, { Event._isCustomEvent = isCustomEvent; - function getOrCreateRegistryFor(element, uid) { + function getRegistryForElement(element, uid) { var CACHE = GLOBAL.Event.cache; if (Object.isUndefined(uid)) uid = getUniqueElementID(element); @@ -6946,7 +6886,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, { function register(element, eventName, handler) { - var registry = getOrCreateRegistryFor(element); + var registry = getRegistryForElement(element); if (!registry[eventName]) registry[eventName] = []; var entries = registry[eventName]; @@ -6966,8 +6906,9 @@ Form.EventObserver = Class.create(Abstract.EventObserver, { } function unregister(element, eventName, handler) { - var registry = getOrCreateRegistryFor(element); - var entries = registry[eventName] || []; + var registry = getRegistryForElement(element); + var entries = registry[eventName]; + if (!entries) return; var i = entries.length, entry; while (i--) { @@ -6977,16 +6918,10 @@ Form.EventObserver = Class.create(Abstract.EventObserver, { } } - if (entry) { - var index = entries.indexOf(entry); - entries.splice(index, 1); - } + if (!entry) return; - if (entries.length === 0) { - delete registry[eventName]; - if (Object.keys(registry).length === 1 && ('element' in registry)) - destroyRegistryForElement(element); - } + var index = entries.indexOf(entry); + entries.splice(index, 1); return entry; } @@ -7085,24 +7020,14 @@ Form.EventObserver = Class.create(Abstract.EventObserver, { } function stopObservingEventName(element, eventName) { - var registry = getOrCreateRegistryFor(element); + var registry = getRegistryForElement(element); var entries = registry[eventName]; - if (entries) { - delete registry[eventName]; - } - - entries = entries || []; + if (!entries) return; + delete registry[eventName]; var i = entries.length; while (i--) removeEvent(element, eventName, entries[i].responder); - - for (var name in registry) { - if (name === 'element') continue; - return; // There is another registered event - } - - destroyRegistryForElement(element); } @@ -7269,8 +7194,7 @@ Form.EventObserver = Class.create(Abstract.EventObserver, { function createResponderForCustomEvent(uid, eventName, handler) { return function(event) { - var cache = Event.cache[uid]; - var element = cache && cache.element; + var element = Event.cache[uid].element; if (Object.isUndefined(event.eventName)) return false; @@ -7359,9 +7283,7 @@ Hash.toQueryString = Object.toQueryString; var Toggle = { display: Element.toggle }; -Element.addMethods({ - childOf: Element.Methods.descendantOf -}); +Element.Methods.childOf = Element.Methods.descendantOf; var Insertion = { Before: function(element, content) {