You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sv...@apache.org on 2005/08/22 18:11:16 UTC

svn commit: r234511 - /myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/resource/prototype.js

Author: svieujot
Date: Mon Aug 22 09:11:04 2005
New Revision: 234511

URL: http://svn.apache.org/viewcvs?rev=234511&view=rev
Log:
Update prototype.js to version 1.3.1.

Modified:
    myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/resource/prototype.js

Modified: myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/resource/prototype.js
URL: http://svn.apache.org/viewcvs/myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/resource/prototype.js?rev=234511&r1=234510&r2=234511&view=diff
==============================================================================
--- myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/resource/prototype.js (original)
+++ myfaces/sandbox/trunk/src/java/org/apache/myfaces/custom/inputsuggestajax/resource/prototype.js Mon Aug 22 09:11:04 2005
@@ -1,8 +1,8 @@
-/*  Prototype JavaScript framework, version 1.3.0
+/*  Prototype JavaScript framework, version 1.3.1
  *  (c) 2005 Sam Stephenson <sa...@conio.net>
  *
  *  THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
- *  against the source tree, available from the Prototype darcs repository.
+ *  against the source tree, available from the Prototype darcs repository. 
  *
  *  Prototype is freely distributable under the terms of an MIT-style license.
  *
@@ -11,13 +11,13 @@
 /*--------------------------------------------------------------------------*/
 
 var Prototype = {
-  Version: '1.3.0',
+  Version: '1.3.1',
   emptyFunction: function() {}
 }
 
 var Class = {
   create: function() {
-    return function() {
+    return function() { 
       this.initialize.apply(this, arguments);
     }
   }
@@ -31,11 +31,11 @@
   }
   return destination;
 }
-/*
+
 Object.prototype.extend = function(object) {
   return Object.extend.apply(this, [this, object]);
 }
-*/
+
 Function.prototype.bind = function(object) {
   var __method = this;
   return function() {
@@ -90,10 +90,10 @@
 
   onTimerEvent: function() {
     if (!this.currentlyExecuting) {
-      try {
+      try { 
         this.currentlyExecuting = true;
-        this.callback();
-      } finally {
+        this.callback(); 
+      } finally { 
         this.currentlyExecuting = false;
       }
     }
@@ -110,7 +110,7 @@
     if (typeof element == 'string')
       element = document.getElementById(element);
 
-    if (arguments.length == 1)
+    if (arguments.length == 1) 
       return element;
 
     elements.push(element);
@@ -134,20 +134,20 @@
     var parameterStrings = new Array();
     if (!object)     object = window;
     if (!parameters) parameters = new Array();
-
+    
     for (var i = 0; i < parameters.length; i++)
       parameterStrings[i] = 'parameters[' + i + ']';
-
+    
     object.__apply__ = this;
-    var result = eval('object.__apply__(' +
-      parameterStrings[i].join(', ') + ')');
+    var result = eval('object.__apply__(' + 
+      parameterStrings.join(', ') + ')');
     object.__apply__ = null;
-
+    
     return result;
   }
 }
 
-Object.extend(String.prototype, {
+String.prototype.extend({
   stripTags: function() {
     return this.replace(/<\/?[^>]+>/gi, '');
   },
@@ -179,16 +179,16 @@
 Ajax.Base = function() {};
 Ajax.Base.prototype = {
   setOptions: function(options) {
-    this.options = Object.extend({
+    this.options = {
       method:       'post',
       asynchronous: true,
       parameters:   ''
-    }, options || {});
+    }.extend(options || {});
   },
 
   responseIsSuccess: function() {
     return this.transport.status == undefined
-        || this.transport.status == 0
+        || this.transport.status == 0 
         || (this.transport.status >= 200 && this.transport.status < 300);
   },
 
@@ -198,10 +198,10 @@
 }
 
 Ajax.Request = Class.create();
-Ajax.Request.Events =
+Ajax.Request.Events = 
   ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
 
-Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
+Ajax.Request.prototype = (new Ajax.Base()).extend({
   initialize: function(url, options) {
     this.transport = Ajax.getTransport();
     this.setOptions(options);
@@ -234,17 +234,17 @@
   },
 
   setRequestHeaders: function() {
-    var requestHeaders =
+    var requestHeaders = 
       ['X-Requested-With', 'XMLHttpRequest',
        'X-Prototype-Version', Prototype.Version];
 
     if (this.options.method == 'post') {
-      requestHeaders.push('Content-type',
+      requestHeaders.push('Content-type', 
         'application/x-www-form-urlencoded');
 
       /* Force "Connection: close" for Mozilla browsers to work around
        * a bug where XMLHttpReqeuest sends an incorrect Content-length
-       * header. See Mozilla Bugzilla #246651.
+       * header. See Mozilla Bugzilla #246651. 
        */
       if (this.transport.overrideMimeType)
         requestHeaders.push('Connection', 'close');
@@ -268,17 +268,21 @@
 
     if (event == 'Complete')
       (this.options['on' + this.transport.status]
-       || this.options['on' + this.responseIsSuccess ? 'Success' : 'Failure']
+       || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]
        || Prototype.emptyFunction)(this.transport);
 
     (this.options['on' + event] || Prototype.emptyFunction)(this.transport);
+
+    /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
+    if (event == 'Complete')
+      this.transport.onreadystatechange = Prototype.emptyFunction;
   }
 });
 
 Ajax.Updater = Class.create();
 Ajax.Updater.ScriptFragment = '(?:<script.*?>)((\n|.)*?)(?:<\/script>)';
 
-Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
+Ajax.Updater.prototype.extend(Ajax.Request.prototype).extend({
   initialize: function(container, url, options) {
     this.containers = {
       success: container.success ? $(container.success) : $(container),
@@ -331,7 +335,7 @@
 });
 
 Ajax.PeriodicalUpdater = Class.create();
-Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
+Ajax.PeriodicalUpdater.prototype = (new Ajax.Base()).extend({
   initialize: function(container, url, options) {
     this.setOptions(options);
     this.onComplete = this.options.onComplete;
@@ -359,12 +363,12 @@
 
   updateComplete: function(request) {
     if (this.options.decay) {
-      this.decay = (request.responseText == this.lastText ?
+      this.decay = (request.responseText == this.lastText ? 
         this.decay * this.options.decay : 1);
 
       this.lastText = request.responseText;
     }
-    this.timer = setTimeout(this.onTimerEvent.bind(this),
+    this.timer = setTimeout(this.onTimerEvent.bind(this), 
       this.decay * this.frequency * 1000);
   },
 
@@ -376,7 +380,7 @@
 document.getElementsByClassName = function(className) {
   var children = document.getElementsByTagName('*') || document.all;
   var elements = new Array();
-
+  
   for (var i = 0; i < children.length; i++) {
     var child = children[i];
     var classNames = child.className.split(' ');
@@ -387,7 +391,7 @@
       }
     }
   }
-
+  
   return elements;
 }
 
@@ -401,7 +405,7 @@
   toggle: function() {
     for (var i = 0; i < arguments.length; i++) {
       var element = $(arguments[i]);
-      element.style.display =
+      element.style.display = 
         (element.style.display == 'none' ? '' : 'none');
     }
   },
@@ -424,10 +428,10 @@
     element = $(element);
     element.parentNode.removeChild(element);
   },
-
+   
   getHeight: function(element) {
     element = $(element);
-    return element.offsetHeight;
+    return element.offsetHeight; 
   },
 
   hasClassName: function(element, className) {
@@ -463,13 +467,13 @@
     }
     element.className = newClassName;
   },
-
+  
   // removes whitespace-only text node children
   cleanWhitespace: function(element) {
     var element = $(element);
     for (var i = 0; i < element.childNodes.length; i++) {
       var node = element.childNodes[i];
-      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+      if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) 
         Element.remove(node);
     }
   }
@@ -488,7 +492,7 @@
   initialize: function(element, content) {
     this.element = $(element);
     this.content = content;
-
+    
     if (this.adjacency && this.element.insertAdjacentHTML) {
       this.element.insertAdjacentHTML(this.adjacency, this.content);
     } else {
@@ -503,48 +507,48 @@
 var Insertion = new Object();
 
 Insertion.Before = Class.create();
-Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
+Insertion.Before.prototype = (new Abstract.Insertion('beforeBegin')).extend({
   initializeRange: function() {
     this.range.setStartBefore(this.element);
   },
-
+  
   insertContent: function() {
     this.element.parentNode.insertBefore(this.fragment, this.element);
   }
 });
 
 Insertion.Top = Class.create();
-Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
+Insertion.Top.prototype = (new Abstract.Insertion('afterBegin')).extend({
   initializeRange: function() {
     this.range.selectNodeContents(this.element);
     this.range.collapse(true);
   },
-
-  insertContent: function() {
+  
+  insertContent: function() {  
     this.element.insertBefore(this.fragment, this.element.firstChild);
   }
 });
 
 Insertion.Bottom = Class.create();
-Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
+Insertion.Bottom.prototype = (new Abstract.Insertion('beforeEnd')).extend({
   initializeRange: function() {
     this.range.selectNodeContents(this.element);
     this.range.collapse(this.element);
   },
-
+  
   insertContent: function() {
     this.element.appendChild(this.fragment);
   }
 });
 
 Insertion.After = Class.create();
-Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
+Insertion.After.prototype = (new Abstract.Insertion('afterEnd')).extend({
   initializeRange: function() {
     this.range.setStartAfter(this.element);
   },
-
+  
   insertContent: function() {
-    this.element.parentNode.insertBefore(this.fragment,
+    this.element.parentNode.insertBefore(this.fragment, 
       this.element.nextSibling);
   }
 });
@@ -558,17 +562,17 @@
   focus: function(element) {
     $(element).focus();
   },
-
+  
   present: function() {
     for (var i = 0; i < arguments.length; i++)
       if ($(arguments[i]).value == '') return false;
     return true;
   },
-
+  
   select: function(element) {
     $(element).select();
   },
-
+   
   activate: function(element) {
     $(element).focus();
     $(element).select();
@@ -581,16 +585,16 @@
   serialize: function(form) {
     var elements = Form.getElements($(form));
     var queryComponents = new Array();
-
+    
     for (var i = 0; i < elements.length; i++) {
       var queryComponent = Form.Element.serialize(elements[i]);
       if (queryComponent)
         queryComponents.push(queryComponent);
     }
-
+    
     return queryComponents.join('&');
   },
-
+  
   getElements: function(form) {
     var form = $(form);
     var elements = new Array();
@@ -602,19 +606,19 @@
     }
     return elements;
   },
-
+  
   getInputs: function(form, typeName, name) {
     var form = $(form);
     var inputs = form.getElementsByTagName('input');
-
+    
     if (!typeName && !name)
       return inputs;
-
+      
     var matchingInputs = new Array();
     for (var i = 0; i < inputs.length; i++) {
       var input = inputs[i];
       if ((typeName && input.type != typeName) ||
-          (name && input.name != name))
+          (name && input.name != name)) 
         continue;
       matchingInputs.push(input);
     }
@@ -661,18 +665,18 @@
     var element = $(element);
     var method = element.tagName.toLowerCase();
     var parameter = Form.Element.Serializers[method](element);
-
+    
     if (parameter)
-      return encodeURIComponent(parameter[0]) + '=' +
-        encodeURIComponent(parameter[1]);
+      return encodeURIComponent(parameter[0]) + '=' + 
+        encodeURIComponent(parameter[1]);                   
   },
-
+  
   getValue: function(element) {
     var element = $(element);
     var method = element.tagName.toLowerCase();
     var parameter = Form.Element.Serializers[method](element);
-
-    if (parameter)
+    
+    if (parameter) 
       return parameter[1];
   }
 }
@@ -685,7 +689,7 @@
       case 'password':
       case 'text':
         return Form.Element.Serializers.textarea(element);
-      case 'checkbox':
+      case 'checkbox':  
       case 'radio':
         return Form.Element.Serializers.inputSelector(element);
     }
@@ -731,15 +735,15 @@
     this.frequency = frequency;
     this.element   = $(element);
     this.callback  = callback;
-
+    
     this.lastValue = this.getValue();
     this.registerCallback();
   },
-
+  
   registerCallback: function() {
     setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
   },
-
+  
   onTimerEvent: function() {
     var value = this.getValue();
     if (this.lastValue != value) {
@@ -750,14 +754,14 @@
 }
 
 Form.Element.Observer = Class.create();
-Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+Form.Element.Observer.prototype = (new Abstract.TimedObserver()).extend({
   getValue: function() {
     return Form.Element.getValue(this.element);
   }
 });
 
 Form.Observer = Class.create();
-Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+Form.Observer.prototype = (new Abstract.TimedObserver()).extend({
   getValue: function() {
     return Form.serialize(this.element);
   }
@@ -770,14 +774,14 @@
   initialize: function(element, callback) {
     this.element  = $(element);
     this.callback = callback;
-
+    
     this.lastValue = this.getValue();
     if (this.element.tagName.toLowerCase() == 'form')
       this.registerFormCallbacks();
     else
       this.registerCallback(this.element);
   },
-
+  
   onElementEvent: function() {
     var value = this.getValue();
     if (this.lastValue != value) {
@@ -785,22 +789,22 @@
       this.lastValue = value;
     }
   },
-
+  
   registerFormCallbacks: function() {
     var elements = Form.getElements(this.element);
     for (var i = 0; i < elements.length; i++)
       this.registerCallback(elements[i]);
   },
-
+  
   registerCallback: function(element) {
     if (element.type) {
       switch (element.type.toLowerCase()) {
-        case 'checkbox':
+        case 'checkbox':  
         case 'radio':
           element.target = this;
           element.prev_onclick = element.onclick || Prototype.emptyFunction;
           element.onclick = function() {
-            this.prev_onclick();
+            this.prev_onclick(); 
             this.target.onElementEvent();
           }
           break;
@@ -812,24 +816,24 @@
           element.target = this;
           element.prev_onchange = element.onchange || Prototype.emptyFunction;
           element.onchange = function() {
-            this.prev_onchange();
+            this.prev_onchange(); 
             this.target.onElementEvent();
           }
           break;
       }
-    }
+    }    
   }
 }
 
 Form.Element.EventObserver = Class.create();
-Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+Form.Element.EventObserver.prototype = (new Abstract.EventObserver()).extend({
   getValue: function() {
     return Form.Element.getValue(this.element);
   }
 });
 
 Form.EventObserver = Class.create();
-Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+Form.EventObserver.prototype = (new Abstract.EventObserver()).extend({
   getValue: function() {
     return Form.serialize(this.element);
   }
@@ -861,19 +865,19 @@
   },
 
   pointerX: function(event) {
-    return event.pageX || (event.clientX +
+    return event.pageX || (event.clientX + 
       (document.documentElement.scrollLeft || document.body.scrollLeft));
   },
 
   pointerY: function(event) {
-    return event.pageY || (event.clientY +
+    return event.pageY || (event.clientY + 
       (document.documentElement.scrollTop || document.body.scrollTop));
   },
 
   stop: function(event) {
-    if (event.preventDefault) {
-      event.preventDefault();
-      event.stopPropagation();
+    if (event.preventDefault) { 
+      event.preventDefault(); 
+      event.stopPropagation(); 
     } else {
       event.returnValue = false;
     }
@@ -890,22 +894,22 @@
   },
 
   observers: false,
-
+  
   _observeAndCache: function(element, name, observer, useCapture) {
-    if(!this.observers) this.observers = [];
-    if(element.addEventListener) {
-      this.observers.push([element,name,observer,useCapture]);
+    if (!this.observers) this.observers = [];
+    if (element.addEventListener) {
+      this.observers.push([element, name, observer, useCapture]);
       element.addEventListener(name, observer, useCapture);
     } else if (element.attachEvent) {
-      this.observers.push([element,name,observer,useCapture]);
-      element.attachEvent('on'+name, observer);
+      this.observers.push([element, name, observer, useCapture]);
+      element.attachEvent('on' + name, observer);
     }
   },
-
+  
   unloadCache: function() {
-    if(!Event.observers) return;
-    for(var i=0; i<Event.observers.length; i++) {
-      Event.stopObserving(Event.observers[i][0],Event.observers[i][1],Event.observers[i][2],Event.observers[i][3]);
+    if (!Event.observers) return;
+    for (var i = 0; i < Event.observers.length; i++) {
+      Event.stopObserving.apply(this, Event.observers[i]);
       Event.observers[i][0] = null;
     }
     Event.observers = false;
@@ -914,62 +918,52 @@
   observe: function(element, name, observer, useCapture) {
     var element = $(element);
     useCapture = useCapture || false;
-
-    if (name == 'keypress') {
-      if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
-        this._observeAndCache(element, 'keydown', observer, useCapture);
-        return;
-      }
-      this._observeAndCache(element, 'keypress', observer, useCapture);
-    } else {
-      this._observeAndCache(element, name, observer, useCapture);
-    }
+    
+    if (name == 'keypress' &&
+        ((navigator.appVersion.indexOf('AppleWebKit') > 0) 
+        || element.attachEvent))
+      name = 'keydown';
+    
+    this._observeAndCache(element, name, observer, useCapture);
   },
 
   stopObserving: function(element, name, observer, useCapture) {
     var element = $(element);
     useCapture = useCapture || false;
-
-    if (name == 'keypress') {
-      if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
-        element.removeEventListener('keydown', observer, useCapture);
-        return;
-      }
-      if (element.removeEventListener) {
-        element.removeEventListener('keypress', observer, useCapture);
-      } else if (element.detachEvent) {
-        element.detachEvent('onkeydown', observer);
-      }
-    } else {
-      if (element.removeEventListener) {
-        element.removeEventListener(name, observer, useCapture);
-      } else if (element.detachEvent) {
-        element.detachEvent('on' + name, observer);
-      }
+    
+    if (name == 'keypress' &&
+        ((navigator.appVersion.indexOf('AppleWebKit') > 0) 
+        || element.detachEvent))
+      name = 'keydown';
+    
+    if (element.removeEventListener) {
+      element.removeEventListener(name, observer, useCapture);
+    } else if (element.detachEvent) {
+      element.detachEvent('on' + name, observer);
     }
   }
 });
 
-// prevent memory leaks
-Event.observe(window,'unload', Event.unloadCache, false);
+/* prevent memory leaks in IE */
+Event.observe(window, 'unload', Event.unloadCache, false);
 
 var Position = {
 
   // set to true if needed, warning: firefox performance problems
   // NOT neeeded for page scrolling, only if draggable contained in
   // scrollable elements
-  includeScrollOffsets: false,
+  includeScrollOffsets: false, 
 
   // must be called before calling withinIncludingScrolloffset, every time the
   // page is scrolled
   prepare: function() {
-    this.deltaX =  window.pageXOffset
-                || document.documentElement.scrollLeft
-                || document.body.scrollLeft
+    this.deltaX =  window.pageXOffset 
+                || document.documentElement.scrollLeft 
+                || document.body.scrollLeft 
                 || 0;
-    this.deltaY =  window.pageYOffset
-                || document.documentElement.scrollTop
-                || document.body.scrollTop
+    this.deltaY =  window.pageYOffset 
+                || document.documentElement.scrollTop 
+                || document.body.scrollTop 
                 || 0;
   },
 
@@ -977,7 +971,7 @@
     var valueT = 0, valueL = 0;
     do {
       valueT += element.scrollTop  || 0;
-      valueL += element.scrollLeft || 0;
+      valueL += element.scrollLeft || 0; 
       element = element.parentNode;
     } while (element);
     return [valueL, valueT];
@@ -1003,7 +997,7 @@
 
     return (y >= this.offset[1] &&
             y <  this.offset[1] + element.offsetHeight &&
-            x >= this.offset[0] &&
+            x >= this.offset[0] && 
             x <  this.offset[0] + element.offsetWidth);
   },
 
@@ -1016,18 +1010,18 @@
 
     return (this.ycomp >= this.offset[1] &&
             this.ycomp <  this.offset[1] + element.offsetHeight &&
-            this.xcomp >= this.offset[0] &&
+            this.xcomp >= this.offset[0] && 
             this.xcomp <  this.offset[0] + element.offsetWidth);
   },
 
   // within must be called directly before
-  overlap: function(mode, element) {
-    if (!mode) return 0;
-    if (mode == 'vertical')
-      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+  overlap: function(mode, element) {  
+    if (!mode) return 0;  
+    if (mode == 'vertical') 
+      return ((this.offset[1] + element.offsetHeight) - this.ycomp) / 
         element.offsetHeight;
     if (mode == 'horizontal')
-      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+      return ((this.offset[0] + element.offsetWidth) - this.xcomp) / 
         element.offsetWidth;
   },