Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 5511

Show
Ignore:
Timestamp:
11/13/06 10:32:12 (2 years ago)
Author:
madrobby
Message:

script.aculo.us: Update to Prototype 1.5.0_rc2

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/scriptaculous/CHANGELOG

    r5468 r5511  
     1* Update to Prototype 1.5.0_rc2 
     2 
    13*V1.6.5* (November 8, 2006) 
    24 
  • spinoffs/scriptaculous/lib/prototype.js

    r5468 r5511  
    1 /*  Prototype JavaScript framework, version 1.5.0_rc1 
    2  *  (c) 2005 Sam Stephenson <sam@conio.net> 
     1/*  Prototype JavaScript framework, version 1.5.0_rc2 
     2 *  (c) 2005, 2006 Sam Stephenson <sam@conio.net> 
    33 * 
    44 *  Prototype is freely distributable under the terms of an MIT-style license. 
     
    88 
    99var Prototype = { 
    10   Version: '1.5.0_rc1', 
     10  Version: '1.5.0_rc2', 
    1111  BrowserFeatures: { 
    1212    XPath: !!document.evaluate 
     
    101101    var returnValue; 
    102102 
    103     for (var i = 0; i < arguments.length; i++) { 
     103    for (var i = 0, length = arguments.length; i < length; i++) { 
    104104      var lambda = arguments[i]; 
    105105      try { 
     
    222222  }, 
    223223 
    224   toQueryParams: function() { 
    225     var match = this.strip().match(/[^?]*$/)[0]
     224  toQueryParams: function(separator) { 
     225    var match = this.strip().match(/([^?#]*)(#.*)?$/)
    226226    if (!match) return {}; 
    227     var pairs = match.split('&'); 
    228     return pairs.inject({}, function(params, pairString) { 
    229       var pair  = pairString.split('='); 
    230       var value = pair[1] ? decodeURIComponent(pair[1]) : undefined; 
    231       params[decodeURIComponent(pair[0])] = value; 
    232       return params; 
     227 
     228    return match[1].split(separator || '&').inject({}, function(hash, pair) { 
     229      if ((pair = pair.split('='))[0]) { 
     230        var name = decodeURIComponent(pair[0]); 
     231        var value = pair[1] ? decodeURIComponent(pair[1]) : undefined; 
     232 
     233        if (hash[name] !== undefined) { 
     234          if (hash[name].constructor != Array) 
     235            hash[name] = [hash[name]]; 
     236          if (value) hash[name].push(value); 
     237        } 
     238        else hash[name] = value; 
     239      } 
     240      return hash; 
    233241    }); 
    234242  }, 
     
    603611  toQueryString: function() { 
    604612    return this.map(function(pair) { 
    605       if (!pair.value && pair.value !== 0) pair[1] = ''; 
    606       if (!pair.key) return; 
     613      if (!pair.key) return null; 
     614 
     615      if (pair.value && pair.value.constructor == Array) { 
     616        pair.value = pair.value.compact(); 
     617 
     618        if (pair.value.length < 2) { 
     619          pair.value = pair.value.reduce(); 
     620        } else { 
     621          var key = encodeURIComponent(pair.key); 
     622          return pair.value.map(function(value) { 
     623            return key + '=' + encodeURIComponent(value); 
     624                          }).join('&'); 
     625        } 
     626      } 
     627 
     628      if (pair.value == undefined) pair[1] = ''; 
    607629      return pair.map(encodeURIComponent).join('='); 
    608630    }).join('&'); 
     
    806828 
    807829      if (typeof extras.push == 'function') 
    808         for (var i = 0; i < extras.length; i += 2) 
     830        for (var i = 0, length = extras.length; i < length; i += 2) 
    809831          headers[extras[i]] = extras[i+1]; 
    810832      else 
     
    9781000    var query = document.evaluate(expression, $(parentElement) || document, 
    9791001      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); 
    980     for (var i = 0, len = query.snapshotLength; i < len; i++) 
     1002    for (var i = 0, length = query.snapshotLength; i < length; i++) 
    9811003      results.push(query.snapshotItem(i)); 
    9821004    return results; 
     
    10171039      Object.extend(methods, Form.Element.Methods); 
    10181040 
     1041    Object.extend(methods, Element.Methods.Simulated); 
     1042 
    10191043    for (var property in methods) { 
    10201044      var value = methods[property]; 
    1021       if (typeof value == 'function') 
    1022         element[property] = cache.findOrStore(value); 
    1023     } 
    1024  
    1025     var methods = Object.clone(Element.Methods.Simulated), cache = Element.extend.cache; 
    1026     for (var property in methods) { 
    1027       var value = methods[property]; 
    1028       if ('function' == typeof value && !(property in element)) 
     1045      if (typeof value == 'function' && !(property in element)) 
    10291046        element[property] = cache.findOrStore(value); 
    10301047    } 
     
    11201137  }, 
    11211138 
     1139  immediateDescendants: function(element) { 
     1140    if (!(element = $(element).firstChild)) return []; 
     1141    while (element && element.nodeType != 1) element = element.nextSibling; 
     1142    if (element) return [element].concat($(element).nextSiblings()); 
     1143    return []; 
     1144  }, 
     1145 
    11221146  previousSiblings: function(element) { 
    11231147    return $(element).recursivelyCollect('previousSibling'); 
     
    11641188    element = $(element); 
    11651189    return document.getElementsByClassName(className, element); 
     1190  }, 
     1191 
     1192  readAttribute: function(element, name) { 
     1193    return $(element).getAttribute(name); 
    11661194  }, 
    11671195 
     
    13441372    html = typeof html == 'undefined' ? '' : html.toString(); 
    13451373    var tagName = element.tagName.toUpperCase(); 
    1346     if (['THEAD','TBODY','TR','TD'].indexOf(tagName) > -1) { 
     1374    if (['THEAD','TBODY','TR','TD'].include(tagName)) { 
    13471375      var div = document.createElement('div'); 
    13481376      switch (tagName) { 
     
    14291457        this.element.insertAdjacentHTML(this.adjacency, this.content); 
    14301458      } catch (e) { 
    1431         var tagName = this.element.tagName.toLowerCase(); 
    1432         if (tagName == 'tbody' || tagName == 'tr') { 
     1459        var tagName = this.element.tagName.toUpperCase(); 
     1460        if (['TBODY', 'TR'].include(tagName)) { 
    14331461          this.insertContent(this.contentFromAnonymousTable()); 
    14341462        } else { 
     
    15911619      conditions.push('element.tagName.toUpperCase() == ' + clause.inspect()); 
    15921620    if ((clause = params.classNames).length > 0) 
    1593       for (var i = 0; i < clause.length; i++) 
     1621      for (var i = 0, length = clause.length; i < length; i++) 
    15941622        conditions.push('Element.hasClassName(element, ' + clause[i].inspect() + ')'); 
    15951623    if (clause = params.attributes) { 
     
    18701898  selectMany: function(element) { 
    18711899    var value = []; 
    1872     for (var i = 0; i < element.length; i++) { 
     1900    for (var i = 0, length = element.length; i < length; i++) { 
    18731901      var opt = Element.extend(element.options[i]); 
    18741902      if (opt.selected)