You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/10/29 02:53:03 UTC

svn commit: r468816 [19/32] - in /tapestry/tapestry4/trunk/tapestry-framework: ./ src/java/org/apache/tapestry/dojo/form/ src/js/dojo/ src/js/dojo/nls/ src/js/dojo/src/ src/js/dojo/src/animation/ src/js/dojo/src/cal/ src/js/dojo/src/charting/ src/js/do...

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/svg.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/svg.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/svg.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/svg.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,13 @@
+
+dojo.provide("dojo.svg");dojo.require("dojo.lang.common");dojo.require("dojo.dom");dojo.mixin(dojo.svg, dojo.dom);dojo.svg.graphics=dojo.svg.g=new function( d){this.suspend=function(){try { d.documentElement.suspendRedraw(0); } catch(e){ }};this.resume=function(){try { d.documentElement.unsuspendRedraw(0); } catch(e){ }};this.force=function(){try { d.documentElement.forceRedraw(); } catch(e){ }};}(document);dojo.svg.animations=dojo.svg.anim=new function( d){this.arePaused=function(){try {return d.documentElement.animationsPaused();} catch(e){return false;}} ;this.pause=function(){try { d.documentElement.pauseAnimations(); } catch(e){ }};this.resume=function(){try { d.documentElement.unpauseAnimations(); } catch(e){ }};}(document);dojo.svg.toCamelCase=function( selector){var arr=selector.split('-'), cc=arr[0];for(var i=1; i < arr.length; i++) {cc += arr[i].charAt(0).toUpperCase() + arr[i].substring(1);}
+return cc;};dojo.svg.toSelectorCase=function( selector) {return selector.replace(/([A-Z])/g, "-$1" ).toLowerCase();};dojo.svg.getStyle=function( node,  cssSelector){return document.defaultView.getComputedStyle(node, cssSelector);};dojo.svg.getNumericStyle=function( node,  cssSelector){return parseFloat(dojo.svg.getStyle(node, cssSelector));};dojo.svg.getOpacity=function(node){return Math.min(1.0, dojo.svg.getNumericStyle(node, "fill-opacity"));};dojo.svg.setOpacity=function( node,  opacity){node.setAttributeNS(this.xmlns.svg, "fill-opacity", opacity);node.setAttributeNS(this.xmlns.svg, "stroke-opacity", opacity);};dojo.svg.clearOpacity=function( node){node.setAttributeNS(this.xmlns.svg, "fill-opacity", "1.0");node.setAttributeNS(this.xmlns.svg, "stroke-opacity", "1.0");};dojo.svg.getCoords=function( node){if (node.getBBox) {var box=node.getBBox();return { x: box.x, y: box.y };}
+return null;};dojo.svg.setCoords=function(node, coords){var p=dojo.svg.getCoords();if (!p) return;var dx=p.x - coords.x;var dy=p.y - coords.y;dojo.svg.translate(node, dx, dy);};dojo.svg.getDimensions=function(node){if (node.getBBox){var box=node.getBBox();return { width: box.width, height : box.height };}
+return null;};dojo.svg.setDimensions=function(node, dim){if (node.width){node.width.baseVal.value=dim.width;node.height.baseVal.value=dim.height;}
+else if (node.r){node.r.baseVal.value=Math.min(dim.width, dim.height)/2;}
+else if (node.rx){node.rx.baseVal.value=dim.width/2;node.ry.baseVal.value=dim.height/2;}};dojo.svg.translate=function(node, dx, dy){if (node.transform && node.ownerSVGElement && node.ownerSVGElement.createSVGTransform){var t=node.ownerSVGElement.createSVGTransform();t.setTranslate(dx, dy);node.transform.baseVal.appendItem(t);}};dojo.svg.scale=function(node, scaleX, scaleY){if (!scaleY) var scaleY=scaleX;if (node.transform && node.ownerSVGElement && node.ownerSVGElement.createSVGTransform){var t=node.ownerSVGElement.createSVGTransform();t.setScale(scaleX, scaleY);node.transform.baseVal.appendItem(t);}};dojo.svg.rotate=function(node, ang, cx, cy){if (node.transform && node.ownerSVGElement && node.ownerSVGElement.createSVGTransform){var t=node.ownerSVGElement.createSVGTransform();if (cx == null) t.setMatrix(t.matrix.rotate(ang));else t.setRotate(ang, cx, cy);node.transform.baseVal.appendItem(t);}};dojo.svg.skew=function(node, ang, axis){var dir=axis || "x";if (node.transform &&
  node.ownerSVGElement && node.ownerSVGElement.createSVGTransform){var t=node.ownerSVGElement.createSVGTransform();if (dir != "x") t.setSkewY(ang);else t.setSkewX(ang);node.transform.baseVal.appendItem(t);}};dojo.svg.flip=function(node, axis){var dir=axis || "x";if (node.transform && node.ownerSVGElement && node.ownerSVGElement.createSVGTransform){var t=node.ownerSVGElement.createSVGTransform();t.setMatrix((dir != "x") ? t.matrix.flipY() : t.matrix.flipX());node.transform.baseVal.appendItem(t);}};dojo.svg.invert=function(node){if (node.transform && node.ownerSVGElement && node.ownerSVGElement.createSVGTransform){var t=node.ownerSVGElement.createSVGTransform();t.setMatrix(t.matrix.inverse());node.transform.baseVal.appendItem(t);}};dojo.svg.applyMatrix=function(
+node,a,b,c,d,e,f
+){if (node.transform && node.ownerSVGElement && node.ownerSVGElement.createSVGTransform){var m;if (b){var m=node.ownerSVGElement.createSVGMatrix();m.a=a;m.b=b;m.c=c;m.d=d;m.e=e;m.f=f;} else m=a;var t=node.ownerSVGElement.createSVGTransform();t.setMatrix(m);node.transform.baseVal.appendItem(t);}};dojo.svg.group=function(nodes){var p=nodes.item(0).parentNode;var g=document.createElementNS(this.xmlns.svg, "g");for (var i=0; i < nodes.length; i++) g.appendChild(nodes.item(i));p.appendChild(g);return g;};dojo.svg.ungroup=function(g){var p=g.parentNode;while (g.childNodes.length > 0) p.appendChild(g.childNodes.item(0));p.removeChild(g);};dojo.svg.getGroup=function(node){var a=this.getAncestors(node);for (var i=0; i < a.length; i++){if (a[i].nodeType == this.ELEMENT_NODE && a[i].nodeName.toLowerCase() == "g")
+return a[i];}
+return null;};dojo.svg.bringToFront=function(node){var n=this.getGroup(node) || node;n.ownerSVGElement.appendChild(n);};dojo.svg.sendToBack=function(node){var n=this.getGroup(node) || node;n.ownerSVGElement.insertBefore(n, n.ownerSVGElement.firstChild);};dojo.svg.bringForward=function(node){var n=this.getGroup(node) || node;if (this.getLastChildElement(n.parentNode) != n){this.insertAfter(n, this.getNextSiblingElement(n), true);}};dojo.svg.sendBackward=function(node){var n=this.getGroup(node) || node;if (this.getFirstChildElement(n.parentNode) != n){this.insertBefore(n, this.getPreviousSiblingElement(n), true);}};dojo.svg.createNodesFromText=function( txt,  wrap){var docFrag=(new DOMParser()).parseFromString(txt, "text/xml").normalize();if(wrap){return [docFrag.firstChild.cloneNode(true)];}
+var nodes=[];for(var x=0; x<docFrag.childNodes.length; x++){nodes.push(docFrag.childNodes.item(x).cloneNode(true));}
+return nodes;}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/svg.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/__package__.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/__package__.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,4 @@
+
+dojo.kwCompoundRequire({common: [
+"dojo.text.String","dojo.text.Builder"
+]});dojo.deprecated("dojo.text", "textDirectory moved to cal, text.String and text.Builder havne't been here for awhile", "0.5");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/textDirectory.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/textDirectory.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/textDirectory.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/textDirectory.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,2 @@
+
+dojo.require("dojo.cal.textDirectory");dojo.deprecate("dojo.text.textDirectory", "use dojo.cal.textDirectory", "0.5");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/text/textDirectory.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/Manager.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/Manager.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/Manager.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/Manager.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,16 @@
+
+dojo.provide("dojo.undo.Manager");dojo.require("dojo.lang.common");dojo.undo.Manager = function(parent) {this.clear();this._parent = parent;};dojo.extend(dojo.undo.Manager, {_parent: null,_undoStack: null,_redoStack: null,_currentManager: null,canUndo: false,canRedo: false,isUndoing: false,isRedoing: false,onUndo: function(manager, item) {},onRedo: function(manager, item) {},onUndoAny: function(manager, item) {},onRedoAny: function(manager, item) {},_updateStatus: function() {this.canUndo = this._undoStack.length > 0;this.canRedo = this._redoStack.length > 0;},clear: function() {this._undoStack = [];this._redoStack = [];this._currentManager = this;this.isUndoing = false;this.isRedoing = false;this._updateStatus();},undo: function() {if(!this.canUndo) { return false; }
+this.endAllTransactions();this.isUndoing = true;var top = this._undoStack.pop();if(top instanceof dojo.undo.Manager){top.undoAll();}else{top.undo();}
+if(top.redo){this._redoStack.push(top);}
+this.isUndoing = false;this._updateStatus();this.onUndo(this, top);if(!(top instanceof dojo.undo.Manager)) {this.getTop().onUndoAny(this, top);}
+return true;},redo: function() {if(!this.canRedo){ return false; }
+this.isRedoing = true;var top = this._redoStack.pop();if(top instanceof dojo.undo.Manager) {top.redoAll();}else{top.redo();}
+this._undoStack.push(top);this.isRedoing = false;this._updateStatus();this.onRedo(this, top);if(!(top instanceof dojo.undo.Manager)){this.getTop().onRedoAny(this, top);}
+return true;},undoAll: function() {while(this._undoStack.length > 0) {this.undo();}},redoAll: function() {while(this._redoStack.length > 0) {this.redo();}},push: function(undo, redo , description ) {if(!undo) { return; }
+if(this._currentManager == this) {this._undoStack.push({undo: undo,redo: redo,description: description});} else {this._currentManager.push.apply(this._currentManager, arguments);}
+this._redoStack = [];this._updateStatus();},concat: function(manager) {if ( !manager ) { return; }
+if (this._currentManager == this ) {for(var x=0; x < manager._undoStack.length; x++) {this._undoStack.push(manager._undoStack[x]);}
+if (manager._undoStack.length > 0) {this._redoStack = [];}
+this._updateStatus();} else {this._currentManager.concat.apply(this._currentManager, arguments);}},beginTransaction: function(description ) {if(this._currentManager == this) {var mgr = new dojo.undo.Manager(this);mgr.description = description ? description : "";this._undoStack.push(mgr);this._currentManager = mgr;return mgr;} else {this._currentManager = this._currentManager.beginTransaction.apply(this._currentManager, arguments);}},endTransaction: function(flatten ) {if(this._currentManager == this) {if(this._parent) {this._parent._currentManager = this._parent;if(this._undoStack.length == 0 || flatten) {var idx = dojo.lang.find(this._parent._undoStack, this);if (idx >= 0) {this._parent._undoStack.splice(idx, 1);if (flatten) {for(var x=0; x < this._undoStack.length; x++){this._parent._undoStack.splice(idx++, 0, this._undoStack[x]);}
+this._updateStatus();}}}
+return this._parent;}} else {this._currentManager = this._currentManager.endTransaction.apply(this._currentManager, arguments);}},endAllTransactions: function() {while(this._currentManager != this) {this.endTransaction();}},getTop: function() {if(this._parent) {return this._parent.getTop();} else {return this;}}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/Manager.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/__package__.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/__package__.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,2 @@
+
+dojo.require("dojo.undo.Manager");dojo.provide("dojo.undo.*");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/browser.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/browser.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/browser.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/browser.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,25 @@
+
+dojo.provide("dojo.undo.browser");dojo.require("dojo.io.common");try{if((!djConfig["preventBackButtonFix"])&&(!dojo.hostenv.post_load_)){document.write("<iframe style='border: 0px; width: 1px; height: 1px; position: absolute; bottom: 0px; right: 0px; visibility: visible;' name='djhistory' id='djhistory' src='"+(dojo.hostenv.getBaseScriptUri()+'iframe_history.html')+"'></iframe>");}}catch(e){}
+if(dojo.render.html.opera){dojo.debug("Opera is not supported with dojo.undo.browser, so back/forward detection will not work.");}
+dojo.undo.browser = {initialHref: window.location.href,initialHash: window.location.hash,moveForward: false,historyStack: [],forwardStack: [],historyIframe: null,bookmarkAnchor: null,locationTimer: null,setInitialState: function(args){this.initialState = this._createState(this.initialHref, args, this.initialHash);},addToHistory: function(args){this.forwardStack = [];var hash = null;var url = null;if(!this.historyIframe){this.historyIframe = window.frames["djhistory"];}
+if(!this.bookmarkAnchor){this.bookmarkAnchor = document.createElement("a");dojo.body().appendChild(this.bookmarkAnchor);this.bookmarkAnchor.style.display = "none";}
+if(args["changeUrl"]){hash = "#"+ ((args["changeUrl"]!==true) ? args["changeUrl"] : (new Date()).getTime());if(this.historyStack.length == 0 && this.initialState.urlHash == hash){this.initialState = this._createState(url, args, hash);return;}else if(this.historyStack.length > 0 && this.historyStack[this.historyStack.length - 1].urlHash == hash){this.historyStack[this.historyStack.length - 1] = this._createState(url, args, hash);return;}
+this.changingUrl = true;setTimeout("window.location.href = '"+hash+"'; dojo.undo.browser.changingUrl = false;", 1);this.bookmarkAnchor.href = hash;if(dojo.render.html.ie){url = this._loadIframeHistory();var oldCB = args["back"]||args["backButton"]||args["handle"];var tcb = function(handleName){if(window.location.hash != ""){setTimeout("window.location.href = '"+hash+"';", 1);}
+oldCB.apply(this, [handleName]);}
+if(args["back"]){args.back = tcb;}else if(args["backButton"]){args.backButton = tcb;}else if(args["handle"]){args.handle = tcb;}
+var oldFW = args["forward"]||args["forwardButton"]||args["handle"];var tfw = function(handleName){if(window.location.hash != ""){window.location.href = hash;}
+if(oldFW){oldFW.apply(this, [handleName]);}}
+if(args["forward"]){args.forward = tfw;}else if(args["forwardButton"]){args.forwardButton = tfw;}else if(args["handle"]){args.handle = tfw;}}else if(dojo.render.html.moz){if(!this.locationTimer){this.locationTimer = setInterval("dojo.undo.browser.checkLocation();", 200);}}}else{url = this._loadIframeHistory();}
+this.historyStack.push(this._createState(url, args, hash));},checkLocation: function(){if (!this.changingUrl){var hsl = this.historyStack.length;if((window.location.hash == this.initialHash||window.location.href == this.initialHref)&&(hsl == 1)){this.handleBackButton();return;}
+if(this.forwardStack.length > 0){if(this.forwardStack[this.forwardStack.length-1].urlHash == window.location.hash){this.handleForwardButton();return;}}
+if((hsl >= 2)&&(this.historyStack[hsl-2])){if(this.historyStack[hsl-2].urlHash==window.location.hash){this.handleBackButton();return;}}}},iframeLoaded: function(evt, ifrLoc){if(!dojo.render.html.opera){var query = this._getUrlQuery(ifrLoc.href);if(query == null){if(this.historyStack.length == 1){this.handleBackButton();}
+return;}
+if(this.moveForward){this.moveForward = false;return;}
+if(this.historyStack.length >= 2 && query == this._getUrlQuery(this.historyStack[this.historyStack.length-2].url)){this.handleBackButton();}
+else if(this.forwardStack.length > 0 && query == this._getUrlQuery(this.forwardStack[this.forwardStack.length-1].url)){this.handleForwardButton();}}},handleBackButton: function(){var current = this.historyStack.pop();if(!current){ return; }
+var last = this.historyStack[this.historyStack.length-1];if(!last && this.historyStack.length == 0){last = this.initialState;}
+if (last){if(last.kwArgs["back"]){last.kwArgs["back"]();}else if(last.kwArgs["backButton"]){last.kwArgs["backButton"]();}else if(last.kwArgs["handle"]){last.kwArgs.handle("back");}}
+this.forwardStack.push(current);},handleForwardButton: function(){var last = this.forwardStack.pop();if(!last){ return; }
+if(last.kwArgs["forward"]){last.kwArgs.forward();}else if(last.kwArgs["forwardButton"]){last.kwArgs.forwardButton();}else if(last.kwArgs["handle"]){last.kwArgs.handle("forward");}
+this.historyStack.push(last);},_createState: function(url, args, hash){return {"url": url, "kwArgs": args, "urlHash": hash};},_getUrlQuery: function(url){var segments = url.split("?");if (segments.length < 2){return null;}
+else{return segments[1];}},_loadIframeHistory: function(){var url = dojo.hostenv.getBaseScriptUri()+"iframe_history.html?"+(new Date()).getTime();this.moveForward = true;dojo.io.setIFrameSrc(this.historyIframe, url, false);return url;}}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/undo/browser.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/Uri.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/Uri.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/Uri.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/Uri.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,15 @@
+
+dojo.provide("dojo.uri.Uri");dojo.uri = new function() {var authorityPattern = new RegExp("^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$");var uriPattern = new RegExp("(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$");this.dojoUri = function (uri) {return new dojo.uri.Uri(dojo.hostenv.getBaseScriptUri(), uri);}
+this.moduleUri = function(module, uri){var loc = dojo.hostenv.getModuleSymbols(module).join('/');if(!loc){return null;}
+if(loc.lastIndexOf("/") != loc.length-1){loc += "/";}
+return new dojo.uri.Uri(dojo.hostenv.getBaseScriptUri()+loc,uri);}
+this.Uri = function () {var uri = arguments[0];for (var i = 1; i < arguments.length; i++) {if(!arguments[i]) { continue; }
+var relobj = new dojo.uri.Uri(arguments[i].toString());var uriobj = new dojo.uri.Uri(uri.toString());if ((relobj.path=="")&&(relobj.scheme==null)&&(relobj.authority==null)&&(relobj.query==null)) {if (relobj.fragment != null) { uriobj.fragment = relobj.fragment; }
+relobj = uriobj;}
+if (relobj.scheme != null && relobj.authority != null)
+uri = "";if (relobj.scheme != null) { uri += relobj.scheme + ":"; }
+if (relobj.authority != null) { uri += "//" + relobj.authority; }
+uri += relobj.path;if (relobj.query != null) { uri += "?" + relobj.query; }
+if (relobj.fragment != null) { uri += "#" + relobj.fragment; }}
+this.uri = uri.toString();var r = this.uri.match(uriPattern);this.scheme = r[2] || (r[1] ? "" : null);this.authority = r[4] || (r[3] ? "" : null);this.path = r[5];this.query = r[7] || (r[6] ? "" : null);this.fragment  = r[9] || (r[8] ? "" : null);if (this.authority != null) {r = this.authority.match(authorityPattern);this.user = r[3] || null;this.password = r[4] || null;this.host = r[5];this.port = r[7] || null;}
+this.toString = function(){ return this.uri; }}};
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/Uri.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/__package__.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/__package__.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,2 @@
+
+dojo.kwCompoundRequire({common: [["dojo.uri.Uri", false, false]]});dojo.provide("dojo.uri.*");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uri/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/LightweightGenerator.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/LightweightGenerator.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/LightweightGenerator.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/LightweightGenerator.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,5 @@
+
+dojo.provide("dojo.uuid.LightweightGenerator");dojo.uuid.LightweightGenerator = new function() {var HEX_RADIX = 16;function _generateRandomEightCharacterHexString() {var random32bitNumber = Math.floor( (Math.random() % 1) * Math.pow(2, 32) );var eightCharacterHexString = random32bitNumber.toString(HEX_RADIX);while (eightCharacterHexString.length < 8) {eightCharacterHexString = "0" + eightCharacterHexString;}
+return eightCharacterHexString;}
+this.generate = function( returnType) {var hyphen = "-";var versionCodeForRandomlyGeneratedUuids = "4";var variantCodeForDCEUuids = "8";var a = _generateRandomEightCharacterHexString();var b = _generateRandomEightCharacterHexString();b = b.substring(0, 4) + hyphen + versionCodeForRandomlyGeneratedUuids + b.substring(5, 8);var c = _generateRandomEightCharacterHexString();c = variantCodeForDCEUuids + c.substring(1, 4) + hyphen + c.substring(4, 8);var d = _generateRandomEightCharacterHexString();var returnValue = a + hyphen + b + hyphen + c + d;returnValue = returnValue.toLowerCase();if (returnType && (returnType != String)) {returnValue = new returnType(returnValue);}
+return returnValue;};}();
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/LightweightGenerator.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NameBasedGenerator.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NameBasedGenerator.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NameBasedGenerator.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NameBasedGenerator.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.uuid.NameBasedGenerator");dojo.uuid.NameBasedGenerator = new function() {this.generate = function( returnType) {dojo.unimplemented('dojo.uuid.NameBasedGenerator.generate');var returnValue = "00000000-0000-0000-0000-000000000000";if (returnType && (returnType != String)) {returnValue = new returnType(returnValue);}
+return returnValue;};}();
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NameBasedGenerator.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NilGenerator.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NilGenerator.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NilGenerator.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NilGenerator.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.uuid.NilGenerator");dojo.uuid.NilGenerator = new function() {this.generate = function( returnType) {var returnValue = "00000000-0000-0000-0000-000000000000";if (returnType && (returnType != String)) {returnValue = new returnType(returnValue);}
+return returnValue;};}();
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/NilGenerator.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/RandomGenerator.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/RandomGenerator.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/RandomGenerator.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/RandomGenerator.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.uuid.RandomGenerator");dojo.uuid.RandomGenerator = new function() {this.generate = function( returnType) {dojo.unimplemented('dojo.uuid.RandomGenerator.generate');var returnValue = "00000000-0000-0000-0000-000000000000";if (returnType && (returnType != String)) {returnValue = new returnType(returnValue);}
+return returnValue;};}();
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/RandomGenerator.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/TimeBasedGenerator.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/TimeBasedGenerator.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/TimeBasedGenerator.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/TimeBasedGenerator.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,30 @@
+
+dojo.provide("dojo.uuid.TimeBasedGenerator");dojo.require("dojo.lang.common");dojo.require("dojo.lang.type");dojo.require("dojo.lang.assert");dojo.uuid.TimeBasedGenerator = new function() {this.GREGORIAN_CHANGE_OFFSET_IN_HOURS = 3394248;var _uuidPseudoNodeString = null;var _uuidClockSeqString = null;var _dateValueOfPreviousUuid = null;var _nextIntraMillisecondIncrement = 0;var _cachedMillisecondsBetween1582and1970 = null;var _cachedHundredNanosecondIntervalsPerMillisecond = null;var _uniformNode = null;var HEX_RADIX = 16;function _carry( arrayA) {arrayA[2] += arrayA[3] >>> 16;arrayA[3] &= 0xFFFF;arrayA[1] += arrayA[2] >>> 16;arrayA[2] &= 0xFFFF;arrayA[0] += arrayA[1] >>> 16;arrayA[1] &= 0xFFFF;dojo.lang.assert((arrayA[0] >>> 16) === 0);}
+function _get64bitArrayFromFloat( x) {var result = new Array(0, 0, 0, 0);result[3] = x % 0x10000;x -= result[3];x /= 0x10000;result[2] = x % 0x10000;x -= result[2];x /= 0x10000;result[1] = x % 0x10000;x -= result[1];x /= 0x10000;result[0] = x;return result;}
+function _addTwo64bitArrays( arrayA,  arrayB) {dojo.lang.assertType(arrayA, Array);dojo.lang.assertType(arrayB, Array);dojo.lang.assert(arrayA.length == 4);dojo.lang.assert(arrayB.length == 4);var result = new Array(0, 0, 0, 0);result[3] = arrayA[3] + arrayB[3];result[2] = arrayA[2] + arrayB[2];result[1] = arrayA[1] + arrayB[1];result[0] = arrayA[0] + arrayB[0];_carry(result);return result;}
+function _multiplyTwo64bitArrays( arrayA,  arrayB) {dojo.lang.assertType(arrayA, Array);dojo.lang.assertType(arrayB, Array);dojo.lang.assert(arrayA.length == 4);dojo.lang.assert(arrayB.length == 4);var overflow = false;if (arrayA[0] * arrayB[0] !== 0) { overflow = true; }
+if (arrayA[0] * arrayB[1] !== 0) { overflow = true; }
+if (arrayA[0] * arrayB[2] !== 0) { overflow = true; }
+if (arrayA[1] * arrayB[0] !== 0) { overflow = true; }
+if (arrayA[1] * arrayB[1] !== 0) { overflow = true; }
+if (arrayA[2] * arrayB[0] !== 0) { overflow = true; }
+dojo.lang.assert(!overflow);var result = new Array(0, 0, 0, 0);result[0] += arrayA[0] * arrayB[3];_carry(result);result[0] += arrayA[1] * arrayB[2];_carry(result);result[0] += arrayA[2] * arrayB[1];_carry(result);result[0] += arrayA[3] * arrayB[0];_carry(result);result[1] += arrayA[1] * arrayB[3];_carry(result);result[1] += arrayA[2] * arrayB[2];_carry(result);result[1] += arrayA[3] * arrayB[1];_carry(result);result[2] += arrayA[2] * arrayB[3];_carry(result);result[2] += arrayA[3] * arrayB[2];_carry(result);result[3] += arrayA[3] * arrayB[3];_carry(result);return result;}
+function _padWithLeadingZeros( string,  desiredLength) {while (string.length < desiredLength) {string = "0" + string;}
+return string;}
+function _generateRandomEightCharacterHexString() {var random32bitNumber = Math.floor( (Math.random() % 1) * Math.pow(2, 32) );var eightCharacterString = random32bitNumber.toString(HEX_RADIX);while (eightCharacterString.length < 8) {eightCharacterString = "0" + eightCharacterString;}
+return eightCharacterString;}
+function _generateUuidString( node) {dojo.lang.assertType(node, String, {optional: true});if (node) {dojo.lang.assert(node.length == 12);} else {if (_uniformNode) {node = _uniformNode;} else {if (!_uuidPseudoNodeString) {var pseudoNodeIndicatorBit = 0x8000;var random15bitNumber = Math.floor( (Math.random() % 1) * Math.pow(2, 15) );var leftmost4HexCharacters = (pseudoNodeIndicatorBit | random15bitNumber).toString(HEX_RADIX);_uuidPseudoNodeString = leftmost4HexCharacters + _generateRandomEightCharacterHexString();}
+node = _uuidPseudoNodeString;}}
+if (!_uuidClockSeqString) {var variantCodeForDCEUuids = 0x8000;var random14bitNumber = Math.floor( (Math.random() % 1) * Math.pow(2, 14) );_uuidClockSeqString = (variantCodeForDCEUuids | random14bitNumber).toString(HEX_RADIX);}
+var now = new Date();var millisecondsSince1970 = now.valueOf();var nowArray = _get64bitArrayFromFloat(millisecondsSince1970);if (!_cachedMillisecondsBetween1582and1970) {var arraySecondsPerHour = _get64bitArrayFromFloat(60 * 60);var arrayHoursBetween1582and1970 = _get64bitArrayFromFloat(dojo.uuid.TimeBasedGenerator.GREGORIAN_CHANGE_OFFSET_IN_HOURS);var arraySecondsBetween1582and1970 = _multiplyTwo64bitArrays(arrayHoursBetween1582and1970, arraySecondsPerHour);var arrayMillisecondsPerSecond = _get64bitArrayFromFloat(1000);_cachedMillisecondsBetween1582and1970 = _multiplyTwo64bitArrays(arraySecondsBetween1582and1970, arrayMillisecondsPerSecond);_cachedHundredNanosecondIntervalsPerMillisecond = _get64bitArrayFromFloat(10000);}
+var arrayMillisecondsSince1970 = nowArray;var arrayMillisecondsSince1582 = _addTwo64bitArrays(_cachedMillisecondsBetween1582and1970, arrayMillisecondsSince1970);var arrayHundredNanosecondIntervalsSince1582 = _multiplyTwo64bitArrays(arrayMillisecondsSince1582, _cachedHundredNanosecondIntervalsPerMillisecond);if (now.valueOf() == _dateValueOfPreviousUuid) {arrayHundredNanosecondIntervalsSince1582[3] += _nextIntraMillisecondIncrement;_carry(arrayHundredNanosecondIntervalsSince1582);_nextIntraMillisecondIncrement += 1;if (_nextIntraMillisecondIncrement == 10000) {while (now.valueOf() == _dateValueOfPreviousUuid) {now = new Date();}}} else {_dateValueOfPreviousUuid = now.valueOf();_nextIntraMillisecondIncrement = 1;}
+var hexTimeLowLeftHalf  = arrayHundredNanosecondIntervalsSince1582[2].toString(HEX_RADIX);var hexTimeLowRightHalf = arrayHundredNanosecondIntervalsSince1582[3].toString(HEX_RADIX);var hexTimeLow = _padWithLeadingZeros(hexTimeLowLeftHalf, 4) + _padWithLeadingZeros(hexTimeLowRightHalf, 4);var hexTimeMid = arrayHundredNanosecondIntervalsSince1582[1].toString(HEX_RADIX);hexTimeMid = _padWithLeadingZeros(hexTimeMid, 4);var hexTimeHigh = arrayHundredNanosecondIntervalsSince1582[0].toString(HEX_RADIX);hexTimeHigh = _padWithLeadingZeros(hexTimeHigh, 3);var hyphen = "-";var versionCodeForTimeBasedUuids = "1";var resultUuid = hexTimeLow + hyphen + hexTimeMid + hyphen +
+versionCodeForTimeBasedUuids + hexTimeHigh + hyphen +
+_uuidClockSeqString + hyphen + node;resultUuid = resultUuid.toLowerCase();return resultUuid;}
+this.setNode = function( node) {dojo.lang.assert((node === null) || (node.length == 12));_uniformNode = node;};this.getNode = function() {return _uniformNode;};this.generate = function( input) {var nodeString = null;var returnType = null;if (input) {if (dojo.lang.isObject(input) && !dojo.lang.isBuiltIn(input)) {var namedParameters = input;dojo.lang.assertValidKeywords(namedParameters, ["node", "hardwareNode", "pseudoNode", "returnType"]);var node = namedParameters["node"];var hardwareNode = namedParameters["hardwareNode"];var pseudoNode = namedParameters["pseudoNode"];nodeString = (node || pseudoNode || hardwareNode);if (nodeString) {var firstCharacter = nodeString.charAt(0);var firstDigit = parseInt(firstCharacter, HEX_RADIX);if (hardwareNode) {dojo.lang.assert((firstDigit >= 0x0) && (firstDigit <= 0x7));}
+if (pseudoNode) {dojo.lang.assert((firstDigit >= 0x8) && (firstDigit <= 0xF));}}
+returnType = namedParameters["returnType"];dojo.lang.assertType(returnType, Function, {optional: true});} else {if (dojo.lang.isString(input)) {nodeString = input;returnType = null;} else {if (dojo.lang.isFunction(input)) {nodeString = null;returnType = input;}}}
+if (nodeString) {dojo.lang.assert(nodeString.length == 12);var integer = parseInt(nodeString, HEX_RADIX);dojo.lang.assert(isFinite(integer));}
+dojo.lang.assertType(returnType, Function, {optional: true});}
+var uuidString = _generateUuidString(nodeString);var returnValue;if (returnType && (returnType != String)) {returnValue = new returnType(uuidString);} else {returnValue = uuidString;}
+return returnValue;};}();
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/TimeBasedGenerator.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/Uuid.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/Uuid.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/Uuid.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/Uuid.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,22 @@
+
+dojo.provide("dojo.uuid.Uuid");dojo.require("dojo.lang.common");dojo.require("dojo.lang.assert");dojo.uuid.Uuid = function( input) {this._uuidString = dojo.uuid.Uuid.NIL_UUID;if (input) {if (dojo.lang.isString(input)) {this._uuidString = input.toLowerCase();dojo.lang.assert(this.isValid());} else {if (dojo.lang.isObject(input) && input.generate) {var generator = input;this._uuidString = generator.generate();dojo.lang.assert(this.isValid());} else {dojo.lang.assert(false, "The dojo.uuid.Uuid() constructor must be initializated with a UUID string.");}}} else {var ourGenerator = dojo.uuid.Uuid.getGenerator();if (ourGenerator) {this._uuidString = ourGenerator.generate();dojo.lang.assert(this.isValid());}}};dojo.uuid.Uuid.NIL_UUID = "00000000-0000-0000-0000-000000000000";dojo.uuid.Uuid.Version = {UNKNOWN: 0,TIME_BASED: 1,DCE_SECURITY: 2,NAME_BASED_MD5: 3,RANDOM: 4,NAME_BASED_SHA1: 5 };dojo.uuid.Uuid.Variant = {NCS: "0",DCE: "10",MICROSOFT: "110",UNKNOWN: "111" };dojo.uuid.Uuid.HE
 X_RADIX = 16;dojo.uuid.Uuid.compare = function( uuidOne,  uuidTwo) {var uuidStringOne = uuidOne.toString();var uuidStringTwo = uuidTwo.toString();if (uuidStringOne > uuidStringTwo) return 1;if (uuidStringOne < uuidStringTwo) return -1;return 0;};dojo.uuid.Uuid.setGenerator = function( generator) {dojo.lang.assert(!generator || (dojo.lang.isObject(generator) && generator.generate));dojo.uuid.Uuid._ourGenerator = generator;};dojo.uuid.Uuid.getGenerator = function() {return dojo.uuid.Uuid._ourGenerator;};dojo.uuid.Uuid.prototype.toString = function(format) {if (format) {switch (format) {case '{}':
+return '{' + this._uuidString + '}';break;case '()':
+return '(' + this._uuidString + ')';break;case '""':
+return '"' + this._uuidString + '"';break;case "''":
+return "'" + this._uuidString + "'";break;case 'urn':
+return 'urn:uuid:' + this._uuidString;break;case '!-':
+return this._uuidString.split('-').join('');break;default:
+dojo.lang.assert(false, "The toString() method of dojo.uuid.Uuid was passed a bogus format.");}} else {return this._uuidString;}};dojo.uuid.Uuid.prototype.compare = function( otherUuid) {return dojo.uuid.Uuid.compare(this, otherUuid);};dojo.uuid.Uuid.prototype.isEqual = function( otherUuid) {return (this.compare(otherUuid) == 0);};dojo.uuid.Uuid.prototype.isValid = function() {try {dojo.lang.assertType(this._uuidString, String);dojo.lang.assert(this._uuidString.length == 36);dojo.lang.assert(this._uuidString == this._uuidString.toLowerCase());var arrayOfParts = this._uuidString.split("-");dojo.lang.assert(arrayOfParts.length == 5);dojo.lang.assert(arrayOfParts[0].length == 8);dojo.lang.assert(arrayOfParts[1].length == 4);dojo.lang.assert(arrayOfParts[2].length == 4);dojo.lang.assert(arrayOfParts[3].length == 4);dojo.lang.assert(arrayOfParts[4].length == 12);for (var i in arrayOfParts) {var part = arrayOfParts[i];var integer = parseInt(part, dojo.uuid.Uuid.HEX_RADIX);dojo.lan
 g.assert(isFinite(integer));}
+return true;} catch (e) {return false;}};dojo.uuid.Uuid.prototype.getVariant = function() {var variantCharacter = this._uuidString.charAt(19);var variantNumber = parseInt(variantCharacter, dojo.uuid.Uuid.HEX_RADIX);dojo.lang.assert((variantNumber >= 0) && (variantNumber <= 16));if (!dojo.uuid.Uuid._ourVariantLookupTable) {var Variant = dojo.uuid.Uuid.Variant;var lookupTable = [];lookupTable[0x0] = Variant.NCS;lookupTable[0x1] = Variant.NCS;lookupTable[0x2] = Variant.NCS;lookupTable[0x3] = Variant.NCS;lookupTable[0x4] = Variant.NCS;lookupTable[0x5] = Variant.NCS;lookupTable[0x6] = Variant.NCS;lookupTable[0x7] = Variant.NCS;lookupTable[0x8] = Variant.DCE;lookupTable[0x9] = Variant.DCE;lookupTable[0xA] = Variant.DCE;lookupTable[0xB] = Variant.DCE;lookupTable[0xC] = Variant.MICROSOFT;lookupTable[0xD] = Variant.MICROSOFT;lookupTable[0xE] = Variant.UNKNOWN;lookupTable[0xF] = Variant.UNKNOWN;dojo.uuid.Uuid._ourVariantLookupTable = lookupTable;}
+return dojo.uuid.Uuid._ourVariantLookupTable[variantNumber];};dojo.uuid.Uuid.prototype.getVersion = function() {if (!this._versionNumber) {var errorMessage = "Called getVersion() on a dojo.uuid.Uuid that was not a DCE Variant UUID.";dojo.lang.assert(this.getVariant() == dojo.uuid.Uuid.Variant.DCE, errorMessage);var versionCharacter = this._uuidString.charAt(14);this._versionNumber = parseInt(versionCharacter, dojo.uuid.Uuid.HEX_RADIX);}
+return this._versionNumber;};dojo.uuid.Uuid.prototype.getNode = function() {if (!this._nodeString) {var errorMessage = "Called getNode() on a dojo.uuid.Uuid that was not a TIME_BASED UUID.";dojo.lang.assert(this.getVersion() == dojo.uuid.Uuid.Version.TIME_BASED, errorMessage);var arrayOfStrings = this._uuidString.split('-');this._nodeString = arrayOfStrings[4];}
+return this._nodeString;};dojo.uuid.Uuid.prototype.getTimestamp = function( returnType) {var errorMessage = "Called getTimestamp() on a dojo.uuid.Uuid that was not a TIME_BASED UUID.";dojo.lang.assert(this.getVersion() == dojo.uuid.Uuid.Version.TIME_BASED, errorMessage);if (!returnType) {returnType = null};switch (returnType) {case "string":
+case String:
+return this.getTimestamp(Date).toUTCString();break;case "hex":
+if (!this._timestampAsHexString) {var arrayOfStrings = this._uuidString.split('-');var hexTimeLow = arrayOfStrings[0];var hexTimeMid = arrayOfStrings[1];var hexTimeHigh = arrayOfStrings[2];hexTimeHigh = hexTimeHigh.slice(1);this._timestampAsHexString = hexTimeHigh + hexTimeMid + hexTimeLow;dojo.lang.assert(this._timestampAsHexString.length == 15);}
+return this._timestampAsHexString;break;case null:
+case "date":
+case Date:
+if (!this._timestampAsDate) {var GREGORIAN_CHANGE_OFFSET_IN_HOURS = 3394248;var arrayOfParts = this._uuidString.split('-');var timeLow = parseInt(arrayOfParts[0], dojo.uuid.Uuid.HEX_RADIX);var timeMid = parseInt(arrayOfParts[1], dojo.uuid.Uuid.HEX_RADIX);var timeHigh = parseInt(arrayOfParts[2], dojo.uuid.Uuid.HEX_RADIX);var hundredNanosecondIntervalsSince1582 = timeHigh & 0x0FFF;hundredNanosecondIntervalsSince1582 <<= 16;hundredNanosecondIntervalsSince1582 += timeMid;hundredNanosecondIntervalsSince1582 *= 0x100000000;hundredNanosecondIntervalsSince1582 += timeLow;var millisecondsSince1582 = hundredNanosecondIntervalsSince1582 / 10000;var secondsPerHour = 60 * 60;var hoursBetween1582and1970 = GREGORIAN_CHANGE_OFFSET_IN_HOURS;var secondsBetween1582and1970 = hoursBetween1582and1970 * secondsPerHour;var millisecondsBetween1582and1970 = secondsBetween1582and1970 * 1000;var millisecondsSince1970 = millisecondsSince1582 - millisecondsBetween1582and1970;this._timestampAsDate = new D
 ate(millisecondsSince1970);}
+return this._timestampAsDate;break;default:
+dojo.lang.assert(false, "The getTimestamp() method dojo.uuid.Uuid was passed a bogus returnType: " + returnType);break;}};
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/Uuid.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/__package__.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/__package__.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,4 @@
+
+dojo.kwCompoundRequire({common: [
+"dojo.uuid.Uuid","dojo.uuid.LightweightGenerator","dojo.uuid.RandomGenerator","dojo.uuid.TimeBasedGenerator","dojo.uuid.NameBasedGenerator","dojo.uuid.NilGenerator"
+]});dojo.provide("dojo.uuid.*");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/uuid/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.validate");dojo.require("dojo.validate.common");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/__package__.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/__package__.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,3 @@
+
+dojo.require("dojo.validate");dojo.kwCompoundRequire({common:		["dojo.validate.check","dojo.validate.datetime","dojo.validate.de","dojo.validate.jp","dojo.validate.us","dojo.validate.web"
+]});dojo.provide("dojo.validate.*");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/__package__.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,50 @@
+
+dojo.provide("dojo.validate.check");dojo.require("dojo.validate.common");dojo.require("dojo.lang.common");dojo.validate.check = function(form, profile){var missing = [];var invalid = [];var results = {isSuccessful: function() {return ( !this.hasInvalid() && !this.hasMissing() );},hasMissing: function() {return ( missing.length > 0 );},getMissing: function() {return missing;},isMissing: function(elemname) {for(var i = 0; i < missing.length; i++){if(elemname == missing[i]){ return true; }}
+return false;},hasInvalid: function() {return ( invalid.length > 0 );},getInvalid: function() {return invalid;},isInvalid: function(elemname){for(var i = 0; i < invalid.length; i++){if(elemname == invalid[i]){ return true; }}
+return false;}};if(profile.trim instanceof Array){for(var i = 0; i < profile.trim.length; i++){var elem = form[profile.trim[i]];if(dj_undef("type", elem) || elem.type != "text" && elem.type != "textarea" && elem.type != "password"){ continue; }
+elem.value = elem.value.replace(/(^\s*|\s*$)/g, "");}}
+if(profile.uppercase instanceof Array){for(var i = 0; i < profile.uppercase.length; i++){var elem = form[profile.uppercase[i]];if(dj_undef("type", elem) || elem.type != "text" && elem.type != "textarea" && elem.type != "password"){ continue; }
+elem.value = elem.value.toUpperCase();}}
+if(profile.lowercase instanceof Array){for (var i = 0; i < profile.lowercase.length; i++){var elem = form[profile.lowercase[i]];if(dj_undef("type", elem) || elem.type != "text" && elem.type != "textarea" && elem.type != "password"){ continue; }
+elem.value = elem.value.toLowerCase();}}
+if(profile.ucfirst instanceof Array){for(var i = 0; i < profile.ucfirst.length; i++){var elem = form[profile.ucfirst[i]];if(dj_undef("type", elem) || elem.type != "text" && elem.type != "textarea" && elem.type != "password"){ continue; }
+elem.value = elem.value.replace(/\b\w+\b/g, function(word) { return word.substring(0,1).toUpperCase() + word.substring(1).toLowerCase(); });}}
+if(profile.digit instanceof Array){for(var i = 0; i < profile.digit.length; i++){var elem = form[profile.digit[i]];if(dj_undef("type", elem) || elem.type != "text" && elem.type != "textarea" && elem.type != "password"){ continue; }
+elem.value = elem.value.replace(/\D/g, "");}}
+if(profile.required instanceof Array){for(var i = 0; i < profile.required.length; i++){if(!dojo.lang.isString(profile.required[i])){ continue; }
+var elem = form[profile.required[i]];if(!dj_undef("type", elem) && (elem.type == "text" || elem.type == "textarea" || elem.type == "password") && /^\s*$/.test(elem.value)){missing[missing.length] = elem.name;}
+else if(!dj_undef("type", elem) && (elem.type == "select-one" || elem.type == "select-multiple")
+&& (elem.selectedIndex == -1
+|| /^\s*$/.test(elem.options[elem.selectedIndex].value))){missing[missing.length] = elem.name;}
+else if(elem instanceof Array){var checked = false;for(var j = 0; j < elem.length; j++){if (elem[j].checked) { checked = true; }}
+if(!checked){missing[missing.length] = elem[0].name;}}}}
+if(profile.required instanceof Array){for (var i = 0; i < profile.required.length; i++){if(!dojo.lang.isObject(profile.required[i])){ continue; }
+var elem, numRequired;for(var name in profile.required[i]){elem = form[name];numRequired = profile.required[i][name];}
+if(elem instanceof Array){var checked = 0;for(var j = 0; j < elem.length; j++){if(elem[j].checked){ checked++; }}
+if(checked < numRequired){missing[missing.length] = elem[0].name;}}
+else if(!dj_undef("type", elem) && elem.type == "select-multiple" ){var selected = 0;for(var j = 0; j < elem.options.length; j++){if (elem.options[j].selected && !/^\s*$/.test(elem.options[j].value)) { selected++; }}
+if(selected < numRequired){missing[missing.length] = elem.name;}}}}
+if(dojo.lang.isObject(profile.dependencies) || dojo.lang.isObject(profile.dependancies)){if(profile["dependancies"]){dojo.deprecated("dojo.validate.check", "profile 'dependancies' is deprecated, please use "
++ "'dependencies'", "0.5");profile.dependencies=profile.dependancies;}
+for(name in profile.dependencies){var elem = form[name];if(dj_undef("type", elem)){continue;}
+if(elem.type != "text" && elem.type != "textarea" && elem.type != "password"){ continue; }
+if(/\S+/.test(elem.value)){ continue; }
+if(results.isMissing(elem.name)){ continue; }
+var target = form[profile.dependencies[name]];if(target.type != "text" && target.type != "textarea" && target.type != "password"){ continue; }
+if(/^\s*$/.test(target.value)){ continue; }
+missing[missing.length] = elem.name;}}
+if(dojo.lang.isObject(profile.constraints)){for(name in profile.constraints){var elem = form[name];if(dj_undef("type", elem) || (elem.type != "text")&&
+(elem.type != "textarea")&&
+(elem.type != "password")){continue;}
+if(/^\s*$/.test(elem.value)){ continue; }
+var isValid = true;if(dojo.lang.isFunction(profile.constraints[name])){isValid = profile.constraints[name](elem.value);}else if(dojo.lang.isArray(profile.constraints[name])){if(dojo.lang.isArray(profile.constraints[name][0])){for (var i=0; i<profile.constraints[name].length; i++){isValid = dojo.validate.evaluateConstraint(profile, profile.constraints[name][i], name, elem);if(!isValid){ break; }}}else{isValid = dojo.validate.evaluateConstraint(profile, profile.constraints[name], name, elem);}}
+if(!isValid){invalid[invalid.length] = elem.name;}}}
+if(dojo.lang.isObject(profile.confirm)){for(name in profile.confirm){var elem = form[name];var target = form[profile.confirm[name]];if (dj_undef("type", elem) || dj_undef("type", target) || (elem.type != "text" && elem.type != "textarea" && elem.type != "password")
+||(target.type != elem.type)
+||(target.value == elem.value)
+||(results.isInvalid(elem.name))
+||(/^\s*$/.test(target.value)))
+{continue;}
+invalid[invalid.length] = elem.name;}}
+return results;};dojo.validate.evaluateConstraint=function(profile, constraint, fieldName, elem){var isValidSomething = constraint[0];var params = constraint.slice(1);params.unshift(elem.value);if(typeof isValidSomething != "undefined"){return isValidSomething.apply(null, params);}
+return false;}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/check.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/common.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/common.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/common.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/common.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,19 @@
+
+dojo.provide("dojo.validate.common");dojo.require("dojo.regexp");dojo.validate.isText = function(value, flags){flags = (typeof flags == "object") ? flags : {};if(/^\s*$/.test(value)){ return false; }
+if(typeof flags.length == "number" && flags.length != value.length){ return false; }
+if(typeof flags.minlength == "number" && flags.minlength > value.length){ return false; }
+if(typeof flags.maxlength == "number" && flags.maxlength < value.length){ return false; }
+return true;}
+dojo.validate.isInteger = function(value, flags){var re = new RegExp("^" + dojo.regexp.integer(flags) + "$");return re.test(value);}
+dojo.validate.isRealNumber = function(value, flags){var re = new RegExp("^" + dojo.regexp.realNumber(flags) + "$");return re.test(value);}
+dojo.validate.isCurrency = function(value, flags){var re = new RegExp("^" + dojo.regexp.currency(flags) + "$");return re.test(value);}
+dojo.validate.isInRange = function(value, flags){value = value.replace(dojo.lang.has(flags,'separator')?flags.separator:',', '', 'g').
+replace(dojo.lang.has(flags,'symbol')?flags.symbol:'$', '');if(isNaN(value)){return false;}
+flags = (typeof flags == "object") ? flags : {};var max = (typeof flags.max == "number") ? flags.max : Infinity;var min = (typeof flags.min == "number") ? flags.min : -Infinity;var dec = (typeof flags.decimal == "string") ? flags.decimal : ".";var pattern = "[^" + dec + "\\deE+-]";value = value.replace(RegExp(pattern, "g"), "");value = value.replace(/^([+-]?)(\D*)/, "$1");value = value.replace(/(\D*)$/, "");pattern = "(\\d)[" + dec + "](\\d)";value = value.replace(RegExp(pattern, "g"), "$1.$2");value = Number(value);if ( value < min || value > max ) { return false; }
+return true;}
+dojo.validate.isNumberFormat = function(value, flags){var re = new RegExp("^" + dojo.regexp.numberFormat(flags) + "$", "i");return re.test(value);}
+dojo.validate.isValidLuhn = function(value){var sum, parity, curDigit;if(typeof value!='string'){value = String(value);}
+value = value.replace(/[- ]/g,'');parity = value.length%2;sum=0;for(var i=0;i<value.length;i++){curDigit = parseInt(value.charAt(i));if(i%2==parity){curDigit*=2;}
+if(curDigit>9){curDigit-=9;}
+sum+=curDigit;}
+return !(sum%10);}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/common.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/creditCard.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/creditCard.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/creditCard.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/creditCard.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,16 @@
+
+dojo.provide('dojo.validate.creditCard');dojo.require("dojo.lang.common");dojo.require("dojo.validate.common");dojo.validate.isValidCreditCard = function(value,ccType){if(value&&ccType&&((ccType.toLowerCase()=='er'||dojo.validate.isValidLuhn(value))&&(dojo.validate.isValidCreditCardNumber(value,ccType.toLowerCase())))){return true;}
+return false;}
+dojo.validate.isValidCreditCardNumber = function(value,ccType) {if(typeof value!='string'){value = String(value);}
+value = value.replace(/[- ]/g,'');var results=[];var cardinfo = {'mc':'5[1-5][0-9]{14}','ec':'5[1-5][0-9]{14}','vi':'4([0-9]{12}|[0-9]{15})','ax':'3[47][0-9]{13}', 'dc':'3(0[0-5][0-9]{11}|[68][0-9]{12})','bl':'3(0[0-5][0-9]{11}|[68][0-9]{12})','di':'6011[0-9]{12}','jcb':'(3[0-9]{15}|(2131|1800)[0-9]{11})','er':'2(014|149)[0-9]{11}'};if(ccType&&dojo.lang.has(cardinfo,ccType.toLowerCase())){return Boolean(value.match(cardinfo[ccType.toLowerCase()]));}else{for(var p in cardinfo){if(value.match('^'+cardinfo[p]+'$')!=null){results.push(p);}}
+return (results.length)?results.join('|'):false;}}
+dojo.validate.isValidCvv = function(value, ccType) {if(typeof value!='string'){value=String(value);}
+var format;switch (ccType.toLowerCase()){case 'mc':
+case 'ec':
+case 'vi':
+case 'di':
+format = '###';break;case 'ax':
+format = '####';break;default:
+return false;}
+var flags = {format:format};if ((value.length == format.length)&&(dojo.validate.isNumberFormat(value, flags))){return true;}
+return false;}
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/creditCard.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/datetime.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/datetime.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/datetime.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/datetime.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,16 @@
+
+dojo.provide("dojo.validate.datetime");dojo.require("dojo.validate.common");dojo.validate.isValidTime = function(value, flags) {dojo.deprecated("dojo.validate.datetime", "use dojo.date.parse instead", "0.5");var re = new RegExp("^" + dojo.regexp.time(flags) + "$", "i");return re.test(value);}
+dojo.validate.is12HourTime = function(value) {dojo.deprecated("dojo.validate.datetime", "use dojo.date.parse instead", "0.5");return dojo.validate.isValidTime(value, {format: ["h:mm:ss t", "h:mm t"]});}
+dojo.validate.is24HourTime = function(value) {dojo.deprecated("dojo.validate.datetime", "use dojo.date.parse instead", "0.5");return dojo.validate.isValidTime(value, {format: ["HH:mm:ss", "HH:mm"]} );}
+dojo.validate.isValidDate = function(dateValue, format) {dojo.deprecated("dojo.validate.datetime", "use dojo.date.parse instead", "0.5");if (typeof format == "object" && typeof format.format == "string"){ format = format.format; }
+if (typeof format != "string") { format = "MM/DD/YYYY"; }
+var reLiteral = format.replace(/([$^.*+?=!:|\/\\\(\)\[\]\{\}])/g, "\\$1");reLiteral = reLiteral.replace( "YYYY", "([0-9]{4})" );reLiteral = reLiteral.replace( "MM", "(0[1-9]|10|11|12)" );reLiteral = reLiteral.replace( "M", "([1-9]|10|11|12)" );reLiteral = reLiteral.replace( "DDD", "(00[1-9]|0[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6])" );reLiteral = reLiteral.replace( "DD", "(0[1-9]|[12][0-9]|30|31)" );reLiteral = reLiteral.replace( "D", "([1-9]|[12][0-9]|30|31)" );reLiteral = reLiteral.replace( "ww", "(0[1-9]|[1-4][0-9]|5[0-3])" );reLiteral = reLiteral.replace( "d", "([1-7])" );reLiteral = "^" + reLiteral + "$";var re = new RegExp(reLiteral);if (!re.test(dateValue))  return false;var year = 0, month = 1, date = 1, dayofyear = 1, week = 1, day = 1;var tokens = format.match( /(YYYY|MM|M|DDD|DD|D|ww|d)/g );var values = re.exec(dateValue);for (var i = 0; i < tokens.length; i++) {switch (tokens[i]) {case "YYYY":
+year = Number(values[i+1]); break;case "M":
+case "MM":
+month = Number(values[i+1]); break;case "D":
+case "DD":
+date = Number(values[i+1]); break;case "DDD":
+dayofyear = Number(values[i+1]); break;case "ww":
+week = Number(values[i+1]); break;case "d":
+day = Number(values[i+1]); break;}}
+var leapyear = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));if (date == 31 && (month == 4 || month == 6 || month == 9 || month == 11)) return false;if (date >= 30 && month == 2) return false;if (date == 29 && month == 2 && !leapyear) return false;if (dayofyear == 366 && !leapyear)  return false;return true;}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/datetime.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/de.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/de.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/de.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/de.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.validate.de");dojo.require("dojo.validate.common");dojo.validate.isGermanCurrency = function(value) {var flags = {symbol: "\u20AC",placement: "after",signPlacement: "begin",decimal: ",",separator: "."};return dojo.validate.isCurrency(value, flags);}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/de.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.validate.jp");dojo.require("dojo.validate.common");dojo.validate.isJapaneseCurrency = function(value) {var flags = {symbol: "\u00a5",fractional: false};return dojo.validate.isCurrency(value, flags);}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/us.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/us.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/us.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/us.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,12 @@
+
+dojo.provide("dojo.validate.us");dojo.require("dojo.validate.common");dojo.validate.us.isCurrency = function(value, flags){return dojo.validate.isCurrency(value, flags);}
+dojo.validate.us.isState = function(value, flags){var re = new RegExp("^" + dojo.regexp.us.state(flags) + "$", "i");return re.test(value);}
+dojo.validate.us.isPhoneNumber = function(value){var flags = {format: [
+"###-###-####","(###) ###-####","(###) ### ####","###.###.####","###/###-####","### ### ####","###-###-#### x#???","(###) ###-#### x#???","(###) ### #### x#???","###.###.#### x#???","###/###-#### x#???","### ### #### x#???","##########"
+]};return dojo.validate.isNumberFormat(value, flags);}
+dojo.validate.us.isSocialSecurityNumber = function(value){var flags = {format: [
+"###-##-####","### ## ####","#########"
+]};return dojo.validate.isNumberFormat(value, flags);}
+dojo.validate.us.isZipCode = function(value){var flags = {format: [
+"#####-####","##### ####","#########","#####"
+]};return dojo.validate.isNumberFormat(value, flags);}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/us.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/web.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/web.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/web.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/web.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,9 @@
+
+dojo.provide("dojo.validate.web");dojo.require("dojo.validate.common");dojo.validate.isIpAddress = function(value, flags) {var re = new RegExp("^" + dojo.regexp.ipAddress(flags) + "$", "i");return re.test(value);}
+dojo.validate.isUrl = function(value, flags) {var re = new RegExp("^" + dojo.regexp.url(flags) + "$", "i");return re.test(value);}
+dojo.validate.isEmailAddress = function(value, flags) {var re = new RegExp("^" + dojo.regexp.emailAddress(flags) + "$", "i");return re.test(value);}
+dojo.validate.isEmailAddressList = function(value, flags) {var re = new RegExp("^" + dojo.regexp.emailAddressList(flags) + "$", "i");return re.test(value);}
+dojo.validate.getEmailAddressList = function(value, flags) {if(!flags) { flags = {}; }
+if(!flags.listSeparator) { flags.listSeparator = "\\s;,"; }
+if ( dojo.validate.isEmailAddressList(value, flags) ) {return value.split(new RegExp("\\s*[" + flags.listSeparator + "]\\s*"));}
+return [];}

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/web.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AccordionContainer.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AccordionContainer.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AccordionContainer.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AccordionContainer.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,10 @@
+
+dojo.provide("dojo.widget.AccordionContainer");dojo.require("dojo.widget.*");dojo.require("dojo.html.*");dojo.require("dojo.lfx.html");dojo.require("dojo.html.selection");dojo.require("dojo.widget.html.layout");dojo.require("dojo.widget.PageContainer");dojo.widget.defineWidget(
+"dojo.widget.AccordionContainer",dojo.widget.HtmlWidget,{isContainer: true,labelNodeClass: "label",containerNodeClass: "accBody",duration: 250,fillInTemplate: function(){with(this.domNode.style){if(position!="absolute"){position="relative";}
+overflow="hidden";}},addChild: function( widget){var child = this._addChild(widget);this._setSizes();return child;},_addChild: function( widget){if(widget.open){dojo.deprecated("open parameter deprecated, use 'selected=true' instead will be removed in ", "0.5");dojo.debug(widget.widgetId + ": open == " + widget.open);widget.selected=true;}
+if (widget.widgetType != "AccordionPane") {var wrapper=dojo.widget.createWidget("AccordionPane",{label: widget.label, selected: widget.selected, labelNodeClass: this.labelNodeClass, containerNodeClass: this.containerNodeClass, allowCollapse: this.allowCollapse });wrapper.addChild(widget);this.addWidgetAsDirectChild(wrapper);this.registerChild(wrapper, this.children.length);return wrapper;} else {dojo.html.addClass(widget.containerNode, this.containerNodeClass);dojo.html.addClass(widget.labelNode, this.labelNodeClass);this.addWidgetAsDirectChild(widget);this.registerChild(widget, this.children.length);return widget;}},postCreate: function() {var tmpChildren = this.children;this.children=[];dojo.html.removeChildren(this.domNode);dojo.lang.forEach(tmpChildren, dojo.lang.hitch(this,"_addChild"));this._setSizes();},removeChild: function( widget) {dojo.widget.AccordionContainer.superclass.removeChild.call(this, widget);this._setSizes();},onResized: function(){this._setSizes();},_s
 etSizes: function() {var totalCollapsedHeight = 0;var openIdx = 0;dojo.lang.forEach(this.children, function(child, idx){totalCollapsedHeight += child.getLabelHeight();if(child.selected){ openIdx=idx; }});var mySize=dojo.html.getContentBox(this.domNode);var y = 0;dojo.lang.forEach(this.children, function(child, idx){var childCollapsedHeight = child.getLabelHeight();child.resizeTo(mySize.width, mySize.height-totalCollapsedHeight+childCollapsedHeight);child.domNode.style.zIndex=idx+1;child.domNode.style.position="absolute";child.domNode.style.top = y+"px";y += (idx==openIdx) ? dojo.html.getBorderBox(child.domNode).height : childCollapsedHeight;});},selectChild: function( page){dojo.lang.forEach(this.children, function(child){child.setSelected(child==page);});var y = 0;var anims = [];dojo.lang.forEach(this.children, function(child, idx){if(child.domNode.style.top != (y+"px")){anims.push(dojo.lfx.html.slideTo(child.domNode, {top: y, left: 0}, this.duration));}
+y += child.selected ? dojo.html.getBorderBox(child.domNode).height : child.getLabelHeight();});dojo.lfx.combine(anims).play();}}
+);dojo.widget.defineWidget(
+"dojo.widget.AccordionPane",dojo.widget.HtmlWidget,{label: "","class": "dojoAccordionPane",labelNodeClass: "label",containerNodeClass: "accBody",selected: false,templatePath: dojo.uri.dojoUri("src/widget/templates/AccordionPane.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/AccordionPane.css"),isContainer: true,fillInTemplate: function() {dojo.html.addClass(this.domNode, this["class"]);dojo.widget.AccordionPane.superclass.fillInTemplate.call(this);dojo.html.disableSelection(this.labelNode);this.setSelected(this.selected);},setLabel: function( label) {this.labelNode.innerHTML=label;},resizeTo: function(width, height){dojo.html.setMarginBox(this.domNode, {width: width, height: height});var children = [
+{domNode: this.labelNode, layoutAlign: "top"},{domNode: this.containerNode, layoutAlign: "client"}
+];dojo.widget.html.layout(this.domNode, children);var childSize = dojo.html.getContentBox(this.containerNode);this.children[0].resizeTo(childSize.width, childSize.height);},getLabelHeight: function() {return dojo.html.getMarginBox(this.labelNode).height;},onLabelClick: function() {this.parent.selectChild(this);},setSelected: function( isSelected){this.selected=isSelected;(isSelected ? dojo.html.addClass : dojo.html.removeClass)(this.domNode, this["class"]+"-selected");var child = this.children[0];if(child){if(isSelected){if(!child.isShowing()){child.show();}else{child.onShow();}}else{child.onHide();}}}});dojo.lang.extend(dojo.widget.Widget, {open: false});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AccordionContainer.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AnimatedPng.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AnimatedPng.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AnimatedPng.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AnimatedPng.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,4 @@
+
+dojo.provide("dojo.widget.AnimatedPng");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.widget.defineWidget(
+"dojo.widget.AnimatedPng",dojo.widget.HtmlWidget,{isContainer: false,width: 0,height: 0,aniSrc: '',interval: 100,_blankSrc: dojo.uri.dojoUri("src/widget/templates/images/blank.gif"),templateString: '<img class="dojoAnimatedPng" />',postCreate: function(){this.cellWidth = this.width;this.cellHeight = this.height;var img = new Image();var self = this;img.onload = function(){ self._initAni(img.width, img.height); };img.src = this.aniSrc;},_initAni: function(w, h){this.domNode.src = this._blankSrc;this.domNode.width = this.cellWidth;this.domNode.height = this.cellHeight;this.domNode.style.backgroundImage = 'url('+this.aniSrc+')';this.domNode.style.backgroundRepeat = 'no-repeat';this.aniCols = Math.floor(w/this.cellWidth);this.aniRows = Math.floor(h/this.cellHeight);this.aniCells = this.aniCols * this.aniRows;this.aniFrame = 0;window.setInterval(dojo.lang.hitch(this, '_tick'), this.interval);},_tick: function(){this.aniFrame++;if (this.aniFrame == this.aniCells) this.aniFrame = 0
 ;var col = this.aniFrame % this.aniCols;var row = Math.floor(this.aniFrame / this.aniCols);var bx = -1 * col * this.cellWidth;var by = -1 * row * this.cellHeight;this.domNode.style.backgroundPosition = bx+'px '+by+'px';}}
+);
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/AnimatedPng.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Button.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Button.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Button.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Button.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,26 @@
+
+dojo.provide("dojo.widget.Button");dojo.require("dojo.lang.extras");dojo.require("dojo.html.*");dojo.require("dojo.html.selection");dojo.require("dojo.widget.*");dojo.widget.defineWidget(
+"dojo.widget.Button",dojo.widget.HtmlWidget,{isContainer: true,caption: "",disabled: false,templatePath: dojo.uri.dojoUri("src/widget/templates/ButtonTemplate.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/ButtonTemplate.css"),inactiveImg: "src/widget/templates/images/soriaButton-",activeImg: "src/widget/templates/images/soriaActive-",pressedImg: "src/widget/templates/images/soriaPressed-",disabledImg: "src/widget/templates/images/soriaDisabled-",width2height: 1.0/3.0,fillInTemplate: function(){if(this.caption){this.containerNode.appendChild(document.createTextNode(this.caption));}
+dojo.html.disableSelection(this.containerNode);},postCreate: function(){this._sizeMyself();},_sizeMyself: function(){if(this.domNode.parentNode){var placeHolder = document.createElement("span");dojo.html.insertBefore(placeHolder, this.domNode);}
+dojo.body().appendChild(this.domNode);this._sizeMyselfHelper();if(placeHolder){dojo.html.insertBefore(this.domNode, placeHolder);dojo.html.removeNode(placeHolder);}},_sizeMyselfHelper: function(){var mb = dojo.html.getMarginBox(this.containerNode);this.height = mb.height;this.containerWidth = mb.width;var endWidth= this.height * this.width2height;this.containerNode.style.left=endWidth+"px";this.leftImage.height = this.rightImage.height = this.centerImage.height = this.height;this.leftImage.width = this.rightImage.width = endWidth+1;this.centerImage.width = this.containerWidth;this.centerImage.style.left=endWidth+"px";this._setImage(this.disabled ? this.disabledImg : this.inactiveImg);if ( this.disabled ) {dojo.html.prependClass(this.domNode, "dojoButtonDisabled");this.domNode.removeAttribute("tabIndex");dojo.widget.wai.setAttr(this.domNode, "waiState", "disabled", true);} else {dojo.html.removeClass(this.domNode, "dojoButtonDisabled");this.domNode.setAttribute("tabIndex", "0
 ");dojo.widget.wai.setAttr(this.domNode, "waiState", "disabled", false);}
+this.domNode.style.height=this.height + "px";this.domNode.style.width= (this.containerWidth+2*endWidth) + "px";},onMouseOver: function( e){if( this.disabled ){ return; }
+dojo.html.prependClass(this.buttonNode, "dojoButtonHover");this._setImage(this.activeImg);},onMouseDown: function( e){if( this.disabled ){ return; }
+dojo.html.prependClass(this.buttonNode, "dojoButtonDepressed");dojo.html.removeClass(this.buttonNode, "dojoButtonHover");this._setImage(this.pressedImg);},onMouseUp: function( e){if( this.disabled ){ return; }
+dojo.html.prependClass(this.buttonNode, "dojoButtonHover");dojo.html.removeClass(this.buttonNode, "dojoButtonDepressed");this._setImage(this.activeImg);},onMouseOut: function( e){if( this.disabled ){ return; }
+if( e.toElement && dojo.html.isDescendantOf(e.toElement, this.buttonNode) ){return;}
+dojo.html.removeClass(this.buttonNode, "dojoButtonHover");this._setImage(this.inactiveImg);},onKey: function( e){if (!e.key) { return; }
+var menu = dojo.widget.getWidgetById(this.menuId);if (e.key == e.KEY_ENTER || e.key == " "){this.onMouseDown(e);this.buttonClick(e);dojo.lang.setTimeout(this, "onMouseUp", 75, e);dojo.event.browser.stopEvent(e);}
+if(menu && menu.isShowingNow && e.key == e.KEY_DOWN_ARROW){dojo.event.disconnect(this.domNode, "onblur", this, "onBlur");}},onFocus: function( e){var menu = dojo.widget.getWidgetById(this.menuId);if (menu){dojo.event.connectOnce(this.domNode, "onblur", this, "onBlur");}},onBlur: function( e){var menu = dojo.widget.getWidgetById(this.menuId);if ( !menu ) { return; }
+if ( menu.close && menu.isShowingNow ){menu.close();}},buttonClick: function( e){if(!this.disabled){try { this.domNode.focus(); } catch(e2) {};this.onClick(e);}},onClick: function( e) {},_setImage: function( prefix){this.leftImage.src=dojo.uri.dojoUri(prefix + "l.gif");this.centerImage.src=dojo.uri.dojoUri(prefix + "c.gif");this.rightImage.src=dojo.uri.dojoUri(prefix + "r.gif");},_toggleMenu: function( menuId){var menu = dojo.widget.getWidgetById(menuId);if ( !menu ) { return; }
+if ( menu.open && !menu.isShowingNow) {var pos = dojo.html.getAbsolutePosition(this.domNode, false);menu.open(pos.x, pos.y+this.height, this);} else if ( menu.close && menu.isShowingNow ){menu.close();} else {menu.toggle();}},setCaption: function( content){this.caption=content;this.containerNode.innerHTML=content;this._sizeMyself();},setDisabled: function( disabled){this.disabled=disabled;this._sizeMyself();}});dojo.widget.defineWidget(
+"dojo.widget.DropDownButton",dojo.widget.Button,{menuId: "",downArrow: "src/widget/templates/images/whiteDownArrow.gif",disabledDownArrow: "src/widget/templates/images/whiteDownArrow.gif",fillInTemplate: function(){dojo.widget.DropDownButton.superclass.fillInTemplate.apply(this, arguments);this.arrow = document.createElement("img");dojo.html.setClass(this.arrow, "downArrow");dojo.widget.wai.setAttr(this.domNode, "waiState", "haspopup", this.menuId);},_sizeMyselfHelper: function(){this.arrow.src = dojo.uri.dojoUri(this.disabled ? this.disabledDownArrow : this.downArrow);this.containerNode.appendChild(this.arrow);dojo.widget.DropDownButton.superclass._sizeMyselfHelper.call(this);},onClick: function( e){this._toggleMenu(this.menuId);}});dojo.widget.defineWidget(
+"dojo.widget.ComboButton",dojo.widget.Button,{menuId: "",templatePath: dojo.uri.dojoUri("src/widget/templates/ComboButtonTemplate.html"),splitWidth: 2,arrowWidth: 5,_sizeMyselfHelper: function( e){var mb = dojo.html.getMarginBox(this.containerNode);this.height = mb.height;this.containerWidth = mb.width;var endWidth= this.height/3;if(this.disabled){dojo.widget.wai.setAttr(this.domNode, "waiState", "disabled", true);this.domNode.removeAttribute("tabIndex");}
+else {dojo.widget.wai.setAttr(this.domNode, "waiState", "disabled", false);this.domNode.setAttribute("tabIndex", "0");}
+this.leftImage.height = this.rightImage.height = this.centerImage.height =
+this.arrowBackgroundImage.height = this.height;this.leftImage.width = endWidth+1;this.centerImage.width = this.containerWidth;this.buttonNode.style.height = this.height + "px";this.buttonNode.style.width = endWidth + this.containerWidth + "px";this._setImage(this.disabled ? this.disabledImg : this.inactiveImg);this.arrowBackgroundImage.width=this.arrowWidth;this.rightImage.width = endWidth+1;this.rightPart.style.height = this.height + "px";this.rightPart.style.width = this.arrowWidth + endWidth + "px";this._setImageR(this.disabled ? this.disabledImg : this.inactiveImg);this.domNode.style.height=this.height + "px";var totalWidth = this.containerWidth+this.splitWidth+this.arrowWidth+2*endWidth;this.domNode.style.width= totalWidth + "px";},_setImage: function(prefix){this.leftImage.src=dojo.uri.dojoUri(prefix + "l.gif");this.centerImage.src=dojo.uri.dojoUri(prefix + "c.gif");},rightOver: function( e){if( this.disabled ){ return; }
+dojo.html.prependClass(this.rightPart, "dojoButtonHover");this._setImageR(this.activeImg);},rightDown: function( e){if( this.disabled ){ return; }
+dojo.html.prependClass(this.rightPart, "dojoButtonDepressed");dojo.html.removeClass(this.rightPart, "dojoButtonHover");this._setImageR(this.pressedImg);},rightUp: function( e){if( this.disabled ){ return; }
+dojo.html.prependClass(this.rightPart, "dojoButtonHover");dojo.html.removeClass(this.rightPart, "dojoButtonDepressed");this._setImageR(this.activeImg);},rightOut: function( e){if( this.disabled ){ return; }
+dojo.html.removeClass(this.rightPart, "dojoButtonHover");this._setImageR(this.inactiveImg);},rightClick: function( e){if( this.disabled ){ return; }
+try { this.domNode.focus(); } catch(e2) {};this._toggleMenu(this.menuId);},_setImageR: function(prefix){this.arrowBackgroundImage.src=dojo.uri.dojoUri(prefix + "c.gif");this.rightImage.src=dojo.uri.dojoUri(prefix + "r.gif");},onKey: function( e){if (!e.key) { return; }
+var menu = dojo.widget.getWidgetById(this.menuId);if(e.key== e.KEY_ENTER || e.key == " "){this.onMouseDown(e);this.buttonClick(e);dojo.lang.setTimeout(this, "onMouseUp", 75, e);dojo.event.browser.stopEvent(e);} else if (e.key == e.KEY_DOWN_ARROW && e.altKey){this.rightDown(e);this.rightClick(e);dojo.lang.setTimeout(this, "rightUp", 75, e);dojo.event.browser.stopEvent(e);} else if(menu && menu.isShowingNow && e.key == e.KEY_DOWN_ARROW){dojo.event.disconnect(this.domNode, "onblur", this, "onBlur");}}});
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Button.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Chart.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Chart.js?view=auto&rev=468816
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Chart.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Chart.js Sat Oct 28 18:52:42 2006
@@ -0,0 +1,30 @@
+
+dojo.provide("dojo.widget.Chart");dojo.require("dojo.widget.*");dojo.require("dojo.gfx.color");dojo.require("dojo.gfx.color.hsl");dojo.declare(
+"dojo.widget.Chart",null,function(){this.series = [];},{isContainer: false,assignColors: function(){var hue=30;var sat=120;var lum=120;var steps = Math.round(330/this.series.length);for(var i=0; i<this.series.length; i++){var c=dojo.gfx.color.hsl2rgb(hue,sat,lum);if(!this.series[i].color){this.series[i].color = dojo.gfx.color.rgb2hex(c[0],c[1],c[2]);}
+hue += steps;}},parseData: function(table){var thead=table.getElementsByTagName("thead")[0];var tbody=table.getElementsByTagName("tbody")[0];if(!(thead&&tbody)) dojo.raise("dojo.widget.Chart: supplied table must define a head and a body.");var columns=thead.getElementsByTagName("tr")[0].getElementsByTagName("th");for (var i=1; i<columns.length; i++){var key="column"+i;var label=columns[i].innerHTML;var plotType=columns[i].getAttribute("plotType")||"line";var color=columns[i].getAttribute("color");var ds=new dojo.widget.Chart.DataSeries(key,label,plotType,color);this.series.push(ds);}
+var rows=tbody.rows;var xMin=Number.MAX_VALUE,xMax=Number.MIN_VALUE;var yMin=Number.MAX_VALUE,yMax=Number.MIN_VALUE;var ignore = [
+"accesskey","align","bgcolor","class","colspan","height","id","nowrap","rowspan","style","tabindex","title","valign","width"
+];for(var i=0; i<rows.length; i++){var row=rows[i];var cells=row.cells;var x=Number.MIN_VALUE;for (var j=0; j<cells.length; j++){if (j==0){x=parseFloat(cells[j].innerHTML);xMin=Math.min(xMin, x);xMax=Math.max(xMax, x);} else {var ds=this.series[j-1];var y=parseFloat(cells[j].innerHTML);yMin=Math.min(yMin,y);yMax=Math.max(yMax,y);var o={x:x, value:y};var attrs=cells[j].attributes;for(var k=0; k<attrs.length; k++){var attr=attrs.item(k);var bIgnore=false;for (var l=0; l<ignore.length; l++){if (attr.nodeName.toLowerCase()==ignore[l]){bIgnore=true;break;}}
+if(!bIgnore) o[attr.nodeName]=attr.nodeValue;}
+ds.add(o);}}}
+return { x:{ min:xMin, max:xMax}, y:{ min:yMin, max:yMax}};}});dojo.declare(
+"dojo.widget.Chart.DataSeries",null,function(key, label, plotType, color){this.id = "DataSeries"+dojo.widget.Chart.DataSeries.count++;this.key = key;this.label = label||this.id;this.plotType = plotType||"line";this.color = color;this.values = [];},{add: function(v){if(v.x==null||v.value==null){dojo.raise("dojo.widget.Chart.DataSeries.add: v must have both an 'x' and 'value' property.");}
+this.values.push(v);},clear: function(){this.values=[];},createRange: function(len){var idx = this.values.length-1;var length = (len||this.values.length);return { "index": idx, "length": length, "start":Math.max(idx-length,0) };},getMean: function(len){var range = this.createRange(len);if(range.index<0){ return 0; }
+var t = 0;var c = 0;for(var i=range.index; i>=range.start; i--){var n = parseFloat(this.values[i].value);if(!isNaN(n)){ t += n; c++; }}
+t /= Math.max(c,1);return t;},getMovingAverage: function(len){var range = this.createRange(len);if(range.index<0){ return 0; }
+var t = 0;var c = 0;for(var i=range.index; i>=range.start; i--){var n = parseFloat(this.values[i].value);if(!isNaN(n)){ t += n; c++; }}
+t /= Math.max(c,1);return t;},getVariance: function(len){var range = this.createRange(len);if(range.index < 0){ return 0; }
+var t = 0;var s = 0;var c = 0;for(var i=range.index; i>=range.start; i--){var n = parseFloat(this.values[i].value);if(!isNaN(n)){t += n;s += Math.pow(n,2);c++;}}
+return (s/c)-Math.pow(t/c,2);},getStandardDeviation: function(len){return Math.sqrt(this.getVariance(len));},getMax: function(len){var range = this.createRange(len);if(range.index < 0){ return 0; }
+var t = 0;for (var i=range.index; i>=range.start; i--){var n=parseFloat(this.values[i].value);if (!isNaN(n)){t=Math.max(n,t);}}
+return t;},getMin: function(len){var range=this.createRange(len);if(range.index < 0){ return 0; }
+var t = 0;for(var i=range.index; i>=range.start; i--){var n = parseFloat(this.values[i].value);if(!isNaN(n)){t=Math.min(n,t);}}
+return t;},getMedian: function(len){var range = this.createRange(len);if(range.index<0){ return 0; }
+var a = [];for (var i=range.index; i>=range.start; i--){var n=parseFloat(this.values[i].value);if (!isNaN(n)){var b=false;for(var j=0; j<a.length&&!b; j++){if (n==a[j]) b=true;}
+if(!b){ a.push(n); }}}
+a.sort();if(a.length>0){ return a[Math.ceil(a.length/2)]; }
+return 0;},getMode: function(len){var range=this.createRange(len);if(range.index<0){ return 0; }
+var o = {};var ret = 0
+var m = 0;for(var i=range.index; i>=range.start; i--){var n=parseFloat(this.values[i].value);if(!isNaN(n)){if (!o[this.values[i].value]) o[this.values[i].value] = 1;else o[this.values[i].value]++;}}
+for(var p in o){if(m<o[p]){ m=o[p]; ret=p; }}
+return parseFloat(ret);}});dojo["requireIf"](dojo.render.svg.capable, "dojo.widget.svg.Chart");dojo["requireIf"](!dojo.render.svg.capable && dojo.render.vml.capable, "dojo.widget.vml.Chart");
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Chart.js
------------------------------------------------------------------------------
    svn:eol-style = native