You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/11/20 19:54:48 UTC

svn commit: r477287 [18/32] - in /tapestry/tapestry4/trunk: tapestry-examples/TimeTracker/ tapestry-examples/TimeTracker/src/config/ tapestry-examples/TimeTracker/src/context/WEB-INF/ tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetrack...

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/matrix.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/matrix.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/matrix.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/matrix.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,59 @@
+
+dojo.provide("dojo.math.matrix");dojo.math.matrix.iDF = 0;dojo.math.matrix.ALMOST_ZERO = 1e-10;dojo.math.matrix.multiply = function(a, b){var ay = a.length;var ax = a[0].length;var by = b.length;var bx = b[0].length;if (ax != by){dojo.debug("Can't multiply matricies of sizes "+ax+','+ay+' and '+bx+','+by);return [[0]];}
+var c = [];for(var k=0; k<ay; k++){c[k] = [];for(var i=0; i<bx; i++){c[k][i] = 0;for(var m=0; m<ax; m++){c[k][i] += a[k][m]*b[m][i];}}}
+return c;}
+dojo.math.matrix.product = function() {if (arguments.length==0) {dojo.debug ("can't multiply 0 matrices!");return 1;}
+var result = arguments[0];for (var i=1; i<arguments.length; i++){result = dojo.math.matrix.multiply(result,arguments[i]);}
+return result;}
+dojo.math.matrix.sum = function() {if (arguments.length==0) {dojo.debug ("can't sum 0 matrices!");return 0;}
+var result = dojo.math.matrix.copy(arguments[0]);var rows = result.length;if (rows==0) {dojo.debug ("can't deal with matrices of 0 rows!");return 0;}
+var cols = result[0].length;if (cols==0) {dojo.debug ("can't deal with matrices of 0 cols!");return 0;}
+for (var i=1; i<arguments.length; ++i) {var arg = arguments[i];if (arg.length!=rows || arg[0].length!=cols) {dojo.debug ("can't add matrices of different dimensions: first dimensions were " + rows + "x" + cols + ", current dimensions are "+arg.length + "x" + arg[0].length);return 0;}
+for (var r=0; r<rows; r++){for (var c=0; c<cols; c++){result[r][c] += arg[r][c];}}}
+return result;}
+dojo.math.matrix.inverse = function(a){if (a.length==1 && a[0].length==1){return [[ 1 / a[0][0] ]];}
+var tms = a.length;var m = dojo.math.matrix.create(tms, tms);var mm = dojo.math.matrix.adjoint(a);var det = dojo.math.matrix.determinant(a);var dd = 0;if(det == 0){dojo.debug("Determinant Equals 0, Not Invertible.");return [[0]];}else{dd = 1 / det;}
+for (var i = 0; i < tms; i++){for (var j = 0; j < tms; j++) {m[i][j] = dd * mm[i][j];}}
+return m;}
+dojo.math.matrix.determinant = function(a){if (a.length != a[0].length){dojo.debug("Can't calculate the determiant of a non-squre matrix!");return 0;}
+var tms = a.length;var det = 1;var b = dojo.math.matrix.upperTriangle(a);for (var i=0; i < tms; i++){var bii = b[i][i];if (Math.abs(bii) < dojo.math.matrix.ALMOST_ZERO){return 0;}
+det *= bii;}
+det = det * dojo.math.matrix.iDF;return det;}
+dojo.math.matrix.upperTriangle = function(m){m = dojo.math.matrix.copy(m);var f1 = 0;var temp = 0;var tms = m.length;var v = 1;dojo.math.matrix.iDF = 1;for (var col = 0; col < tms - 1; col++) {if (typeof m[col][col] != 'number'){dojo.debug("non-numeric entry found in a numeric matrix: m["+col+"]["+col+"]="+m[col][col]);}
+v = 1;var stop_loop = 0;while ((m[col][col] == 0) && !stop_loop) {if (col + v >= tms){dojo.math.matrix.iDF = 0;stop_loop = 1;}else{for (var r = 0; r < tms; r++) {temp = m[col][r];m[col][r] = m[col + v][r];m[col + v][r] = temp;}
+v++;dojo.math.matrix.iDF *= -1;}}
+for (var row = col + 1; row < tms; row++) {if (typeof m[row][col] != 'number'){dojo.debug("non-numeric entry found in a numeric matrix: m["+row+"]["+col+"]="+m[row][col]);}
+if (typeof m[col][row] != 'number'){dojo.debug("non-numeric entry found in a numeric matrix: m["+col+"]["+row+"]="+m[col][row]);}
+if (m[col][col] != 0) {var f1 = (-1) * m[row][col] / m[col][col];for (var i = col; i < tms; i++) {m[row][i] = f1 * m[col][i] + m[row][i];}}}}
+return m;}
+dojo.math.matrix.create = function(a, b, value){if(!value){value = 0;}
+var m = [];for(var i=0; i<b; i++){m[i] = [];for(var j=0; j<a; j++){m[i][j] = value;}}
+return m;}
+dojo.math.matrix.ones = function(a,b) {return dojo.math.matrix.create(a,b,1);}
+dojo.math.matrix.zeros = function(a,b) {return dojo.math.matrix.create(a,b,0);}
+dojo.math.matrix.identity = function(size, scale){if (!scale){scale = 1;}
+var m = [];for(var i=0; i<size; i++){m[i] = [];for(var j=0; j<size; j++){m[i][j] = (i==j? scale: 0);}}
+return m;}
+dojo.math.matrix.adjoint = function(a){var tms = a.length;if (tms <= 1){dojo.debug("Can't find the adjoint of a matrix with a dimension less than 2");return [[0]];}
+if (a.length != a[0].length){dojo.debug("Can't find the adjoint of a non-square matrix");return [[0]];}
+var m = dojo.math.matrix.create(tms, tms);var ii = 0;var jj = 0;var ia = 0;var ja = 0;var det = 0;var ap = dojo.math.matrix.create(tms-1, tms-1);for (var i = 0; i < tms; i++){for (var j = 0; j < tms; j++){ia = 0;for (ii = 0; ii < tms; ii++) {if (ii==i){continue;}
+ja = 0;for (jj = 0; jj < tms; jj++) {if (jj==j){continue;}
+ap[ia][ja] = a[ii][jj];ja++;}
+ia++;}
+det = dojo.math.matrix.determinant(ap);m[i][j] = Math.pow(-1 , (i + j)) * det;}}
+m = dojo.math.matrix.transpose(m);return m;}
+dojo.math.matrix.transpose = function(a){var m = dojo.math.matrix.create(a.length, a[0].length);for (var i = 0; i < a.length; i++){for (var j = 0; j < a[i].length; j++){m[j][i] = a[i][j];}}
+return m;}
+dojo.math.matrix.format = function(a, decimal_points){if (arguments.length<=1){decimal_points = 5;}
+function format_int(x, dp){var fac = Math.pow(10 , dp);var a = Math.round(x*fac)/fac;var b = a.toString();if (b.charAt(0) != '-'){ b = ' ' + b;}
+var has_dp = 0;for(var i=1; i<b.length; i++){if (b.charAt(i) == '.'){ has_dp = 1; }}
+if (!has_dp){ b += '.'; }
+while(b.length < dp+3){ b += '0'; }
+return b;}
+var ya = a.length;var xa = ya>0? a[0].length: 0;var buffer = '';for (var y=0; y<ya; y++){buffer += '| ';for (var x=0; x<xa; x++){buffer += format_int(a[y][x], decimal_points) + ' ';}
+buffer += '|\n';}
+return buffer;}
+dojo.math.matrix.copy = function(a){var ya = a.length;var xa = a[0].length;var m = dojo.math.matrix.create(xa, ya);for (var y=0; y<ya; y++){for (var x=0; x<xa; x++){m[y][x] = a[y][x];}}
+return m;}
+dojo.math.matrix.scale = function(k, a){a = dojo.math.matrix.copy(a);var ya = a.length;var xa = a[0].length;for (var y=0; y<ya; y++){for (var x=0; x<xa; x++){a[y][x] *= k;}}
+return a;}

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/points.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/points.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/points.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/math/points.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.math.points");dojo.require("dojo.math");dojo.math.points = {translate: function(a, b) {if( a.length != b.length ) {dojo.raise("dojo.math.translate: points not same size (a:[" + a + "], b:[" + b + "])");}
+var c = new Array(a.length);for(var i = 0; i < a.length; i++) {c[i] = a[i] + b[i];}
+return c;},midpoint: function(a, b) {if( a.length != b.length ) {dojo.raise("dojo.math.midpoint: points not same size (a:[" + a + "], b:[" + b + "])");}
+var c = new Array(a.length);for(var i = 0; i < a.length; i++) {c[i] = (a[i] + b[i]) / 2;}
+return c;},invert: function(a) {var b = new Array(a.length);for(var i = 0; i < a.length; i++) { b[i] = -a[i]; }
+return b;},distance: function(a, b) {return Math.sqrt(Math.pow(b[0]-a[0], 2) + Math.pow(b[1]-a[1], 2));}};
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/namespaces/dojo.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/namespaces/dojo.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/namespaces/dojo.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/namespaces/dojo.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,5 @@
+
+dojo.provide("dojo.namespaces.dojo");dojo.require("dojo.ns");(function(){var map = {html: {"accordioncontainer": "dojo.widget.AccordionContainer","animatedpng": "dojo.widget.AnimatedPng","button": "dojo.widget.Button","chart": "dojo.widget.Chart","checkbox": "dojo.widget.Checkbox","clock": "dojo.widget.Clock","colorpalette": "dojo.widget.ColorPalette","combobox": "dojo.widget.ComboBox","combobutton": "dojo.widget.Button","contentpane": "dojo.widget.ContentPane","currencytextbox": "dojo.widget.CurrencyTextbox","datepicker": "dojo.widget.DatePicker","datetextbox": "dojo.widget.DateTextbox","debugconsole": "dojo.widget.DebugConsole","dialog": "dojo.widget.Dialog","dropdownbutton": "dojo.widget.Button","dropdowndatepicker": "dojo.widget.DropdownDatePicker","dropdowntimepicker": "dojo.widget.DropdownTimePicker","emaillisttextbox": "dojo.widget.InternetTextbox","emailtextbox": "dojo.widget.InternetTextbox","editor": "dojo.widget.Editor","editor2": "dojo.widget.Editor2","filteringt
 able": "dojo.widget.FilteringTable","fisheyelist": "dojo.widget.FisheyeList","fisheyelistitem": "dojo.widget.FisheyeList","floatingpane": "dojo.widget.FloatingPane","modalfloatingpane": "dojo.widget.FloatingPane","form": "dojo.widget.Form","googlemap": "dojo.widget.GoogleMap","inlineeditbox": "dojo.widget.InlineEditBox","integerspinner": "dojo.widget.Spinner","integertextbox": "dojo.widget.IntegerTextbox","ipaddresstextbox": "dojo.widget.InternetTextbox","layoutcontainer": "dojo.widget.LayoutContainer","linkpane": "dojo.widget.LinkPane","popupmenu2": "dojo.widget.Menu2","menuitem2": "dojo.widget.Menu2","menuseparator2": "dojo.widget.Menu2","menubar2": "dojo.widget.Menu2","menubaritem2": "dojo.widget.Menu2","pagecontainer": "dojo.widget.PageContainer","pagecontroller": "dojo.widget.PageContainer","popupcontainer": "dojo.widget.PopupContainer","progressbar": "dojo.widget.ProgressBar","radiogroup": "dojo.widget.RadioGroup","realnumbertextbox": "dojo.widget.RealNumberTextbox","r
 egexptextbox": "dojo.widget.RegexpTextbox","repeater": "dojo.widget.Repeater","resizabletextarea": "dojo.widget.ResizableTextarea","richtext": "dojo.widget.RichText","select": "dojo.widget.Select","show": "dojo.widget.Show","showaction": "dojo.widget.ShowAction","showslide": "dojo.widget.ShowSlide","slidervertical": "dojo.widget.Slider","sliderhorizontal": "dojo.widget.Slider","slider":"dojo.widget.Slider","slideshow": "dojo.widget.SlideShow","sortabletable": "dojo.widget.SortableTable","splitcontainer": "dojo.widget.SplitContainer","tabcontainer": "dojo.widget.TabContainer","tabcontroller": "dojo.widget.TabContainer","taskbar": "dojo.widget.TaskBar","textbox": "dojo.widget.Textbox","timepicker": "dojo.widget.TimePicker","timetextbox": "dojo.widget.DateTextbox","titlepane": "dojo.widget.TitlePane","toaster": "dojo.widget.Toaster","toggler": "dojo.widget.Toggler","toolbar": "dojo.widget.Toolbar","toolbarcontainer": "dojo.widget.Toolbar","toolbaritem": "dojo.widget.Toolbar","t
 oolbarbuttongroup": "dojo.widget.Toolbar","toolbarbutton": "dojo.widget.Toolbar","toolbardialog": "dojo.widget.Toolbar","toolbarmenu": "dojo.widget.Toolbar","toolbarseparator": "dojo.widget.Toolbar","toolbarspace": "dojo.widget.Toolbar","toolbarselect": "dojo.widget.Toolbar","toolbarcolordialog": "dojo.widget.Toolbar","tooltip": "dojo.widget.Tooltip","tree": "dojo.widget.Tree","treebasiccontroller": "dojo.widget.TreeBasicController","treecontextmenu": "dojo.widget.TreeContextMenu","treedisablewrapextension": "dojo.widget.TreeDisableWrapExtension","treedociconextension": "dojo.widget.TreeDocIconExtension","treeeditor": "dojo.widget.TreeEditor","treeemphasizeonselect": "dojo.widget.TreeEmphasizeOnSelect","treeexpandtonodeonselect": "dojo.widget.TreeExpandToNodeOnSelect","treelinkextension": "dojo.widget.TreeLinkExtension","treeloadingcontroller": "dojo.widget.TreeLoadingController","treemenuitem": "dojo.widget.TreeContextMenu","treenode": "dojo.widget.TreeNode","treerpccontrol
 ler": "dojo.widget.TreeRPCController","treeselector": "dojo.widget.TreeSelector","treetoggleonselect": "dojo.widget.TreeToggleOnSelect","treev3": "dojo.widget.TreeV3","treebasiccontrollerv3": "dojo.widget.TreeBasicControllerV3","treecontextmenuv3": "dojo.widget.TreeContextMenuV3","treedndcontrollerv3": "dojo.widget.TreeDndControllerV3","treeloadingcontrollerv3": "dojo.widget.TreeLoadingControllerV3","treemenuitemv3": "dojo.widget.TreeContextMenuV3","treerpccontrollerv3": "dojo.widget.TreeRpcControllerV3","treeselectorv3": "dojo.widget.TreeSelectorV3","urltextbox": "dojo.widget.InternetTextbox","usphonenumbertextbox": "dojo.widget.UsTextbox","ussocialsecuritynumbertextbox": "dojo.widget.UsTextbox","usstatetextbox": "dojo.widget.UsTextbox","usziptextbox": "dojo.widget.UsTextbox","validationtextbox": "dojo.widget.ValidationTextbox","treeloadingcontroller": "dojo.widget.TreeLoadingController","wizardcontainer": "dojo.widget.Wizard","wizardpane": "dojo.widget.Wizard","yahoomap": 
 "dojo.widget.YahooMap"},svg: {"chart": "dojo.widget.svg.Chart"},vml: {"chart": "dojo.widget.vml.Chart"}};dojo.addDojoNamespaceMapping = function(shortName, packageName){map[shortName]=packageName;};function dojoNamespaceResolver(name, domain){if(!domain){ domain="html"; }
+if(!map[domain]){ return null; }
+return map[domain][name];}
+dojo.registerNamespaceResolver("dojo", dojoNamespaceResolver);})();
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/ns.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/ns.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/ns.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/ns.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,20 @@
+
+dojo.provide("dojo.ns");dojo.ns = {namespaces: {},failed: {},loading: {},loaded: {},register: function(name, module, resolver, noOverride){if(!noOverride || !this.namespaces[name]){this.namespaces[name] = new dojo.ns.Ns(name, module, resolver);}},allow: function(name){if(this.failed[name]){return false;}
+if((djConfig.excludeNamespace)&&(dojo.lang.inArray(djConfig.excludeNamespace, name))){return false;}
+return((name==this.dojo)||(!djConfig.includeNamespace)||(dojo.lang.inArray(djConfig.includeNamespace, name)));},get: function(name){return this.namespaces[name];},require: function(name){var ns = this.namespaces[name];if((ns)&&(this.loaded[name])){return ns;}
+if(!this.allow(name)){return false;}
+if(this.loading[name]){dojo.debug('dojo.namespace.require: re-entrant request to load namespace "' + name + '" must fail.'); 
+return false;}
+var req = dojo.require;this.loading[name] = true;try {if(name=="dojo"){req("dojo.namespaces.dojo");}else{if(!dojo.hostenv.moduleHasPrefix(name)){dojo.registerModulePath(name, "../" + name);}
+req([name, 'manifest'].join('.'), false, true);}
+if(!this.namespaces[name]){this.failed[name] = true;}}finally{this.loading[name]=false;}
+return this.namespaces[name];}}
+dojo.ns.Ns = function(name, module, resolver){this.name = name;this.module = module;this.resolver = resolver;this._loaded = [ ];this._failed = [ ];}
+dojo.ns.Ns.prototype.resolve = function(name, domain, omitModuleCheck){if(!this.resolver || djConfig["skipAutoRequire"]){return false;}
+var fullName = this.resolver(name, domain);if((fullName)&&(!this._loaded[fullName])&&(!this._failed[fullName])){var req = dojo.require;req(fullName, false, true);if(dojo.hostenv.findModule(fullName, false)){this._loaded[fullName] = true;}else{if(!omitModuleCheck){dojo.raise("dojo.ns.Ns.resolve: module '" + fullName + "' not found after loading via namespace '" + this.name + "'");} 
+this._failed[fullName] = true;}}
+return Boolean(this._loaded[fullName]);}
+dojo.registerNamespace = function(name, module, resolver){dojo.ns.register.apply(dojo.ns, arguments);}
+dojo.registerNamespaceResolver = function(name, resolver){var n = dojo.ns.namespaces[name];if(n){n.resolver = resolver;}}
+dojo.registerNamespaceManifest = function(module, path, name, widgetModule, resolver){dojo.registerModulePath(name, path);dojo.registerNamespace(name, widgetModule, resolver);}
+dojo.registerNamespace("dojo", "dojo.widget");
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/profile.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/profile.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/profile.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/profile.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,12 @@
+
+dojo.provide("dojo.profile");dojo.profile = {_profiles: {},_pns: [],start:function( name){if(!this._profiles[name]){this._profiles[name] = {iters: 0, total: 0};this._pns[this._pns.length] = name;}else{if(this._profiles[name]["start"]){this.end(name);}}
+this._profiles[name].end = null;this._profiles[name].start = new Date();},end:function( name){var ed = new Date();if((this._profiles[name])&&(this._profiles[name]["start"])){with(this._profiles[name]){end = ed;total += (end - start);start = null;iters++;}}else{return true;}},dump:function( appendToDoc){var tbl = document.createElement("table");with(tbl.style){border = "1px solid black";borderCollapse = "collapse";}
+var hdr = tbl.createTHead();var hdrtr = hdr.insertRow(0);var cols = ["Identifier","Calls","Total","Avg"];for(var x=0; x<cols.length; x++){var ntd = hdrtr.insertCell(x);with(ntd.style){backgroundColor = "#225d94";color = "white";borderBottom = "1px solid black";borderRight = "1px solid black";fontFamily = "tahoma";fontWeight = "bolder";paddingLeft = paddingRight = "5px";}
+ntd.appendChild(document.createTextNode(cols[x]));}
+for(var x=0; x < this._pns.length; x++){var prf = this._profiles[this._pns[x]];this.end(this._pns[x]);if(prf.iters>0){var bdytr = tbl.insertRow(true);var vals = [this._pns[x], prf.iters, prf.total, parseInt(prf.total/prf.iters)];for(var y=0; y<vals.length; y++){var cc = bdytr.insertCell(y);cc.appendChild(document.createTextNode(vals[y]));with(cc.style){borderBottom = "1px solid gray";paddingLeft = paddingRight = "5px";if(x%2){backgroundColor = "#e1f1ff";}
+if(y>0){textAlign = "right";borderRight = "1px solid gray";}else{borderRight = "1px solid black";}}}}}
+if(appendToDoc){var ne = document.createElement("div");ne.id = "profileOutputTable";with(ne.style){fontFamily = "Courier New, monospace";fontSize = "12px";lineHeight = "16px";borderTop = "1px solid black";padding = "10px";}
+if(document.getElementById("profileOutputTable")){dojo.body().replaceChild(ne, document.getElementById("profileOutputTable"));}else{dojo.body().appendChild(ne);}
+ne.appendChild(tbl);}
+return tbl;}}
+dojo.profile.stop = dojo.profile.end;
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/regexp.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/regexp.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/regexp.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/regexp.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,106 @@
+
+dojo.provide("dojo.regexp");dojo.evalObjPath("dojo.regexp.us", true);dojo.regexp.tld = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.allowCC != "boolean"){ flags.allowCC = true; }
+if(typeof flags.allowInfra != "boolean"){ flags.allowInfra = true; }
+if(typeof flags.allowGeneric != "boolean"){ flags.allowGeneric = true; }
+var infraRE = "arpa";var genericRE =
+"aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|xxx|jobs|mobi|post";var ccRE =
+"ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|" +
+"bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|" +
+"ec|ee|eg|er|eu|es|et|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|"
++
+"gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|kw|ky|kz|" +
+"la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|" +
+"my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|" +
+"re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sk|sl|sm|sn|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|" +
+"tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw";var a = [];if(flags.allowInfra){ a.push(infraRE); }
+if(flags.allowGeneric){ a.push(genericRE); }
+if(flags.allowCC){ a.push(ccRE); }
+var tldRE = "";if (a.length > 0) {tldRE = "(" + a.join("|") + ")";}
+return tldRE;}
+dojo.regexp.ipAddress = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.allowDottedDecimal != "boolean"){ flags.allowDottedDecimal = true; }
+if(typeof flags.allowDottedHex != "boolean"){ flags.allowDottedHex = true; }
+if(typeof flags.allowDottedOctal != "boolean"){ flags.allowDottedOctal = true; }
+if(typeof flags.allowDecimal != "boolean"){ flags.allowDecimal = true; }
+if(typeof flags.allowHex != "boolean"){ flags.allowHex = true; }
+if(typeof flags.allowIPv6 != "boolean"){ flags.allowIPv6 = true; }
+if(typeof flags.allowHybrid != "boolean"){ flags.allowHybrid = true; }
+var dottedDecimalRE =
+"((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])";var dottedHexRE = "(0[xX]0*[\\da-fA-F]?[\\da-fA-F]\\.){3}0[xX]0*[\\da-fA-F]?[\\da-fA-F]";var dottedOctalRE = "(0+[0-3][0-7][0-7]\\.){3}0+[0-3][0-7][0-7]";var decimalRE =  "(0|[1-9]\\d{0,8}|[1-3]\\d{9}|4[01]\\d{8}|42[0-8]\\d{7}|429[0-3]\\d{6}|" +
+"4294[0-8]\\d{5}|42949[0-5]\\d{4}|429496[0-6]\\d{3}|4294967[01]\\d{2}|42949672[0-8]\\d|429496729[0-5])";var hexRE = "0[xX]0*[\\da-fA-F]{1,8}";var ipv6RE = "([\\da-fA-F]{1,4}\\:){7}[\\da-fA-F]{1,4}";var hybridRE = "([\\da-fA-F]{1,4}\\:){6}" +
+"((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])";var a = [];if(flags.allowDottedDecimal){ a.push(dottedDecimalRE); }
+if(flags.allowDottedHex){ a.push(dottedHexRE); }
+if(flags.allowDottedOctal){ a.push(dottedOctalRE); }
+if(flags.allowDecimal){ a.push(decimalRE); }
+if(flags.allowHex){ a.push(hexRE); }
+if(flags.allowIPv6){ a.push(ipv6RE); }
+if(flags.allowHybrid){ a.push(hybridRE); }
+var ipAddressRE = "";if(a.length > 0){ipAddressRE = "(" + a.join("|") + ")";}
+return ipAddressRE;}
+dojo.regexp.host = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.allowIP != "boolean"){ flags.allowIP = true; }
+if(typeof flags.allowLocal != "boolean"){ flags.allowLocal = false; }
+if(typeof flags.allowPort != "boolean"){ flags.allowPort = true; }
+var domainNameRE = "([0-9a-zA-Z]([-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?\\.)+" + dojo.regexp.tld(flags);var portRE = ( flags.allowPort ) ? "(\\:" + dojo.regexp.integer({signed: false}) + ")?" : "";var hostNameRE = domainNameRE;if(flags.allowIP){ hostNameRE += "|" +  dojo.regexp.ipAddress(flags); }
+if(flags.allowLocal){ hostNameRE += "|localhost"; }
+return "(" + hostNameRE + ")" + portRE;}
+dojo.regexp.url = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.scheme == "undefined"){ flags.scheme = [true, false]; }
+var protocolRE = dojo.regexp.buildGroupRE(flags.scheme,function(q){ if(q){ return "(https?|ftps?)\\://"; } return ""; }
+);var pathRE = "(/([^?#\\s/]+/)*)?([^?#\\s/]+(\\?[^?#\\s/]*)?(#[A-Za-z][\\w.:-]*)?)?";return protocolRE + dojo.regexp.host(flags) + pathRE;}
+dojo.regexp.emailAddress = function(flags){flags = (typeof flags == "object") ? flags : {};if (typeof flags.allowCruft != "boolean") { flags.allowCruft = false; }
+flags.allowPort = false;var usernameRE = "([\\da-z]+[-._+&'])*[\\da-z]+";var emailAddressRE = usernameRE + "@" + dojo.regexp.host(flags);if ( flags.allowCruft ) {emailAddressRE = "<?(mailto\\:)?" + emailAddressRE + ">?";}
+return emailAddressRE;}
+dojo.regexp.emailAddressList = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.listSeparator != "string"){ flags.listSeparator = "\\s;,"; }
+var emailAddressRE = dojo.regexp.emailAddress(flags);var emailAddressListRE = "(" + emailAddressRE + "\\s*[" + flags.listSeparator + "]\\s*)*" +
+emailAddressRE + "\\s*[" + flags.listSeparator + "]?\\s*";return emailAddressListRE;}
+dojo.regexp.integer = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.signed == "undefined"){ flags.signed = [true, false]; }
+if(typeof flags.separator == "undefined"){flags.separator = "";} else if(typeof flags.groupSize == "undefined"){flags.groupSize = 3;}
+var signRE = dojo.regexp.buildGroupRE(flags.signed,function(q) { return q ? "[-+]" : ""; }
+);var numberRE = dojo.regexp.buildGroupRE(flags.separator,function(sep){if(sep == ""){return "(0|[1-9]\\d*)";}
+var grp = flags.groupSize, grp2 = flags.groupSize2;if(typeof grp2 != "undefined"){var grp2RE = "(0|[1-9]\\d{0," + (grp2-1) + "}([" + sep + "]\\d{" + grp2 + "})*[" + sep + "]\\d{" + grp + "})";return ((grp-grp2) > 0) ? "(" + grp2RE + "|(0|[1-9]\\d{0," + (grp-1) + "}))" : grp2RE;}
+return  "(0|[1-9]\\d{0," + (grp-1) + "}([" + sep + "]\\d{" + grp + "})*)";}
+);return signRE + numberRE;}
+dojo.regexp.realNumber = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.places != "number"){ flags.places = Infinity; }
+if(typeof flags.decimal != "string"){ flags.decimal = "."; }
+if(typeof flags.fractional == "undefined"){ flags.fractional = [true, false]; }
+if(typeof flags.exponent == "undefined"){ flags.exponent = [true, false]; }
+if(typeof flags.eSigned == "undefined"){ flags.eSigned = [true, false]; }
+var integerRE = dojo.regexp.integer(flags);var decimalRE = dojo.regexp.buildGroupRE(flags.fractional,function(q){var re = "";if(q && (flags.places > 0)){re = "\\" + flags.decimal;if(flags.places == Infinity){re = "(" + re + "\\d+)?";}else{re = re + "\\d{" + flags.places + "}";}}
+return re;}
+);var exponentRE = dojo.regexp.buildGroupRE(flags.exponent,function(q){if(q){ return "([eE]" + dojo.regexp.integer({ signed: flags.eSigned}) + ")"; }
+return "";}
+);return integerRE + decimalRE + exponentRE;}
+dojo.regexp.currency = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.signed == "undefined"){ flags.signed = [true, false]; }
+if(typeof flags.symbol == "undefined"){ flags.symbol = "$"; }
+if(typeof flags.placement != "string"){ flags.placement = "before"; }
+if(typeof flags.signPlacement != "string"){ flags.signPlacement = "before"; }
+if(typeof flags.separator == "undefined"){ flags.separator = ","; }
+if(typeof flags.fractional == "undefined" && typeof flags.cents != "undefined"){dojo.deprecated("dojo.regexp.currency: flags.cents", "use flags.fractional instead", "0.5");flags.fractional = flags.cents;}
+if(typeof flags.decimal != "string"){ flags.decimal = "."; }
+var signRE = dojo.regexp.buildGroupRE(flags.signed,function(q){ if (q){ return "[-+]"; } return ""; }
+);var symbolRE = dojo.regexp.buildGroupRE(flags.symbol,function(symbol){return "\\s?" + symbol.replace( /([.$?*!=:|\\\/^])/g, "\\$1") + "\\s?";}
+);switch (flags.signPlacement){case "before":
+symbolRE = signRE + symbolRE;break;case "after":
+symbolRE = symbolRE + signRE;break;}
+var flagsCopy = flags;flagsCopy.signed = false; flagsCopy.exponent = false;var numberRE = dojo.regexp.realNumber(flagsCopy);var currencyRE;switch (flags.placement){case "before":
+currencyRE = symbolRE + numberRE;break;case "after":
+currencyRE = numberRE + symbolRE;break;}
+switch (flags.signPlacement){case "around":
+currencyRE = "(" + currencyRE + "|" + "\\(" + currencyRE + "\\)" + ")";break;case "begin":
+currencyRE = signRE + currencyRE;break;case "end":
+currencyRE = currencyRE + signRE;break;}
+return currencyRE;}
+dojo.regexp.us.state = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.allowTerritories != "boolean"){ flags.allowTerritories = true; }
+if(typeof flags.allowMilitary != "boolean"){ flags.allowMilitary = true; }
+var statesRE =
+"AL|AK|AZ|AR|CA|CO|CT|DE|DC|FL|GA|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|" +
+"NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VT|VA|WA|WV|WI|WY";var territoriesRE = "AS|FM|GU|MH|MP|PW|PR|VI";var militaryRE = "AA|AE|AP";if(flags.allowTerritories){ statesRE += "|" + territoriesRE; }
+if(flags.allowMilitary){ statesRE += "|" + militaryRE; }
+return "(" + statesRE + ")";}
+dojo.regexp.time = function(flags){dojo.deprecated("dojo.regexp.time", "Use dojo.date.parse instead", "0.5");flags = (typeof flags == "object") ? flags : {};if(typeof flags.format == "undefined"){ flags.format = "h:mm:ss t"; }
+if(typeof flags.amSymbol != "string"){ flags.amSymbol = "AM"; }
+if(typeof flags.pmSymbol != "string"){ flags.pmSymbol = "PM"; }
+var timeRE = function(format){format = format.replace( /([.$?*!=:|{}\(\)\[\]\\\/^])/g, "\\$1");var amRE = flags.amSymbol.replace( /([.$?*!=:|{}\(\)\[\]\\\/^])/g, "\\$1");var pmRE = flags.pmSymbol.replace( /([.$?*!=:|{}\(\)\[\]\\\/^])/g, "\\$1");format = format.replace("hh", "(0[1-9]|1[0-2])");format = format.replace("h", "([1-9]|1[0-2])");format = format.replace("HH", "([01][0-9]|2[0-3])");format = format.replace("H", "([0-9]|1[0-9]|2[0-3])");format = format.replace("mm", "([0-5][0-9])");format = format.replace("m", "([1-5][0-9]|[0-9])");format = format.replace("ss", "([0-5][0-9])");format = format.replace("s", "([1-5][0-9]|[0-9])");format = format.replace("t", "\\s?(" + amRE + "|" + pmRE + ")\\s?" );return format;};return dojo.regexp.buildGroupRE(flags.format, timeRE);}
+dojo.regexp.numberFormat = function(flags){flags = (typeof flags == "object") ? flags : {};if(typeof flags.format == "undefined"){ flags.format = "###-###-####"; }
+var digitRE = function(format){format = format.replace( /([.$*!=:|{}\(\)\[\]\\\/^])/g, "\\$1");format = format.replace(/\?/g, "\\d?");format = format.replace(/#/g, "\\d");return format;};return dojo.regexp.buildGroupRE(flags.format, digitRE);}
+dojo.regexp.buildGroupRE = function(a, re){if(!(a instanceof Array)){return re(a);}
+var b = [];for (var i = 0; i < a.length; i++){b.push(re(a[i]));}
+return "(" + b.join("|") + ")";}

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/Deferred.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/Deferred.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/Deferred.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/Deferred.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.rpc.Deferred");dojo.require("dojo.Deferred");dojo.deprecated("dojo.rpc.Deferred", "replaced by dojo.Deferred", "0.6");dojo.rpc.Deferred = dojo.Deferred;dojo.rpc.Deferred.prototype = dojo.Deferred.prototype;
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JotService.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JotService.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JotService.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JotService.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.rpc.JotService");dojo.require("dojo.rpc.RpcService"); dojo.require("dojo.rpc.JsonService"); dojo.require("dojo.json"); dojo.rpc.JotService = function(){this.serviceUrl = "/_/jsonrpc";}
+dojo.inherits(dojo.rpc.JotService, dojo.rpc.JsonService);dojo.lang.extend(dojo.rpc.JotService, {bind: function(method, parameters, deferredRequestHandler, url){dojo.io.bind({url: url||this.serviceUrl,content: {json: this.createRequest(method, parameters)},method: "POST",mimetype: "text/json",load: this.resultCallback(deferredRequestHandler),error: this.errorCallback(deferredRequestHandler),preventCache: true});},createRequest: function(method, params){var req = { "params": params, "method": method, "id": this.lastSubmissionId++ };return dojo.json.serialize(req);}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JsonService.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JsonService.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JsonService.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/JsonService.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,8 @@
+
+dojo.provide("dojo.rpc.JsonService");dojo.require("dojo.rpc.RpcService");dojo.require("dojo.io.*");dojo.require("dojo.json");dojo.require("dojo.lang.common");dojo.rpc.JsonService = function(args){if(args){if(dojo.lang.isString(args)){this.connect(args);}else{if(args["smdUrl"]){this.connect(args.smdUrl);}
+if(args["smdStr"]){this.processSmd(dj_eval("("+args.smdStr+")"));}
+if(args["smdObj"]){this.processSmd(args.smdObj);}
+if(args["serviceUrl"]){this.serviceUrl = args.serviceUrl;}
+if(typeof args["strictArgChecks"] != "undefined"){this.strictArgChecks = args.strictArgChecks;}}}}
+dojo.inherits(dojo.rpc.JsonService, dojo.rpc.RpcService);dojo.extend(dojo.rpc.JsonService, {bustCache: false,contentType: "application/json-rpc",lastSubmissionId: 0,callRemote: function(method, params){var deferred = new dojo.Deferred();this.bind(method, params, deferred);return deferred;},bind: function(method, parameters, deferredRequestHandler, url){dojo.io.bind({url: url||this.serviceUrl,postContent: this.createRequest(method, parameters),method: "POST",contentType: this.contentType,mimetype: "text/json",load: this.resultCallback(deferredRequestHandler),error: this.errorCallback(deferredRequestHandler),preventCache:this.bustCache});},createRequest: function(method, params){var req = { "params": params, "method": method, "id": ++this.lastSubmissionId };var data = dojo.json.serialize(req);dojo.debug("JsonService: JSON-RPC Request: " + data);return data;},parseResults: function(obj){if(!obj){ return; }
+if (obj["Result"]!=null){return obj["Result"];}else if(obj["result"]!=null){return obj["result"];}else if(obj["ResultSet"]){return obj["ResultSet"];}else{return obj;}}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/RpcService.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/RpcService.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/RpcService.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/RpcService.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,9 @@
+
+dojo.provide("dojo.rpc.RpcService");dojo.require("dojo.io.*");dojo.require("dojo.json");dojo.require("dojo.lang.func");dojo.require("dojo.Deferred");dojo.rpc.RpcService = function(url){if(url){this.connect(url);}}
+dojo.lang.extend(dojo.rpc.RpcService, {strictArgChecks: true,serviceUrl: "",parseResults: function(obj){return obj;},errorCallback: function( deferredRequestHandler){return function(type, e){deferredRequestHandler.errback(new Error(e.message));}},resultCallback: function( deferredRequestHandler){var tf = dojo.lang.hitch(this,function(type, obj, e){if (obj["error"]!=null) {var err = new Error(obj.error);err.id = obj.id;deferredRequestHandler.errback(err);} else {var results = this.parseResults(obj);deferredRequestHandler.callback(results);}}
+);return tf;},generateMethod: function( method,  parameters,  url){return dojo.lang.hitch(this, function(){var deferredRequestHandler = new dojo.Deferred();if( (this.strictArgChecks) &&
+(parameters != null) &&
+(arguments.length != parameters.length)
+){dojo.raise("Invalid number of parameters for remote method.");} else {this.bind(method, arguments, deferredRequestHandler, url);}
+return deferredRequestHandler;});},processSmd: function( object){dojo.debug("RpcService: Processing returned SMD.");if(object.methods){dojo.lang.forEach(object.methods, function(m){if(m && m["name"]){dojo.debug("RpcService: Creating Method: this.", m.name, "()");this[m.name] = this.generateMethod(	m.name,m.parameters,m["url"]||m["serviceUrl"]||m["serviceURL"]);if(dojo.lang.isFunction(this[m.name])){dojo.debug("RpcService: Successfully created", m.name, "()");}else{dojo.debug("RpcService: Failed to create", m.name, "()");}}}, this);}
+this.serviceUrl = object.serviceUrl||object.serviceURL;dojo.debug("RpcService: Dojo RpcService is ready for use.");},connect: function( smdUrl){dojo.debug("RpcService: Attempting to load SMD document from:", smdUrl);dojo.io.bind({url: smdUrl,mimetype: "text/json",load: dojo.lang.hitch(this, function(type, object, e){ return this.processSmd(object); }),sync: true});}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/YahooService.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/YahooService.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/YahooService.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/YahooService.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,6 @@
+
+dojo.provide("dojo.rpc.YahooService");dojo.require("dojo.rpc.RpcService");dojo.require("dojo.rpc.JsonService");dojo.require("dojo.json");dojo.require("dojo.uri.*");dojo.require("dojo.io.ScriptSrcIO");dojo.rpc.YahooService = function(appId){this.appId = appId;if(!appId){this.appId = "dojotoolkit";dojo.debug(	"please initialize the YahooService class with your own","application ID. Using the default may cause problems during","deployment of your application");}
+this.connect(dojo.uri.dojoUri("src/rpc/yahoo.smd"));this.strictArgChecks = false;}
+dojo.inherits(dojo.rpc.YahooService, dojo.rpc.JsonService);dojo.lang.extend(dojo.rpc.YahooService, {strictArgChecks: false,bind: function(method, parameters, deferredRequestHandler, url){var params = parameters;if(	(dojo.lang.isArrayLike(parameters))&&
+(parameters.length == 1)){params = parameters[0];}
+params.output = "json";params.appid= this.appId;dojo.io.bind({url: url||this.serviceUrl,transport: "ScriptSrcTransport",content: params,jsonParamName: "callback",mimetype: "text/json",load: this.resultCallback(deferredRequestHandler),error: this.errorCallback(deferredRequestHandler),preventCache: true});}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/__package__.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/__package__.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,2 @@
+
+dojo.kwCompoundRequire({common: [["dojo.rpc.JsonService", false, false]]});dojo.provide("dojo.rpc.*");
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/yahoo.smd
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/yahoo.smd?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/yahoo.smd (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/rpc/yahoo.smd Mon Nov 20 10:54:21 2006
@@ -0,0 +1,289 @@
+{
+	"SMDVersion":".1",
+	"objectName":"yahoo",
+	"serviceType":"JSON-P",
+	"methods":[
+		//
+		// MAPS 
+		//
+		{
+			// http://developer.yahoo.com/maps/rest/V1/mapImage.html
+			"name":"mapImage",
+			"serviceURL": "http://api.local.yahoo.com/MapsService/V1/mapImage",
+			"parameters":[
+				{ "name":"street", "type":"STRING" },
+				{ "name":"city", "type":"STRING" },
+				{ "name":"zip", "type":"INTEGER" },
+				{ "name":"location", "type":"STRING" },
+				{ "name":"longitude", "type":"FLOAT" },
+				{ "name":"latitude", "type":"FLOAT" },
+				{ "name":"image_type", "type":"STRING" },
+				{ "name":"image_width", "type":"INTEGER" },
+				{ "name":"image_height", "type":"INTEGER" },
+				{ "name":"zoom", "type":"INTEGER" },
+				{ "name":"radius", "type":"INTEGER" }
+			]
+		},
+		{
+			// http://developer.yahoo.com/traffic/rest/V1/index.html
+			"name":"trafficData",
+			"serviceURL": "http://api.local.yahoo.com/MapsService/V1/trafficData",
+			"parameters":[
+				{ "name":"street", "type":"STRING" },
+				{ "name":"city", "type":"STRING" },
+				{ "name":"zip", "type":"INTEGER" },
+				{ "name":"location", "type":"STRING" },
+				{ "name":"longitude", "type":"FLOAT" },
+				{ "name":"latitude", "type":"FLOAT" },
+				{ "name":"severity", "type":"INTEGER" },
+				{ "name":"include_map", "type":"INTEGER" },
+				{ "name":"image_type", "type":"STRING" },
+				{ "name":"image_width", "type":"INTEGER" },
+				{ "name":"image_height", "type":"INTEGER" },
+				{ "name":"zoom", "type":"INTEGER" },
+				{ "name":"radius", "type":"INTEGER" }
+			]
+		},
+		/*
+			// Yahoo's geocoding service is f'd for JSON and Y! advises that it
+			// may not be returning
+		{
+			// http://developer.yahoo.com/maps/rest/V1/geocode.html
+			"name":"geocode",
+			"serviceURL": "http://api.local.yahoo.com/MapsService/V1/geocode",
+			"parameters":[
+				{ "name":"street", "type":"STRING" },
+				{ "name":"city", "type":"STRING" },
+				{ "name":"zip", "type":"INTEGER" },
+				{ "name":"location", "type":"STRING" }
+			]
+		},
+		*/
+		//
+		// LOCAL SEARCH
+		//
+		{
+			// http://developer.yahoo.com/search/local/V3/localSearch.html
+			"name":"localSearch",
+			"serviceURL": "http://api.local.yahoo.com/LocalSearchService/V3/localSearch",
+			"parameters":[
+				{ "name":"street", "type":"STRING" },
+				{ "name":"city", "type":"STRING" },
+				{ "name":"zip", "type":"INTEGER" },
+				{ "name":"location", "type":"STRING" },
+				{ "name":"listing_id", "type":"STRING" },
+				{ "name":"sort", "type":"STRING" }, // "relevence", "title", "distance", or "rating"
+				{ "name":"start", "type":"INTEGER" },
+				{ "name":"radius", "type":"FLOAT" },
+				{ "name":"results", "type":"INTEGER" }, // 1-50, defaults to 10
+				{ "name":"longitude", "type":"FLOAT" },
+				{ "name":"latitude", "type":"FLOAT" },
+				{ "name":"category", "type":"INTEGER" },
+				{ "name":"omit_category", "type":"INTEGER" },
+				{ "name":"minimum_rating", "type":"INTEGER" }
+			]
+		},
+		//
+		// WEB SEARCH
+		//
+		{
+			// http://developer.yahoo.com/search/web/V1/webSearch.html 
+			"name":"webSearch",
+			"serviceURL": "http://api.search.yahoo.com/WebSearchService/V1/webSearch",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // defaults to "all"
+				{ "name":"region", "type":"STRING" }, // defaults to "us"
+				{ "name":"results", "type":"INTEGER" }, // defaults to 10
+				{ "name":"start", "type":"INTEGER" }, // defaults to 1
+				{ "name":"format", "type":"STRING" }, // defaults to "any", can be "html", "msword", "pdf", "ppt", "rst", "txt", or "xls"
+				{ "name":"adult_ok", "type":"INTEGER" }, // defaults to null
+				{ "name":"similar_ok", "type":"INTEGER" }, // defaults to null
+				{ "name":"language", "type":"STRING" }, // defaults to null
+				{ "name":"country", "type":"STRING" }, // defaults to null
+				{ "name":"site", "type":"STRING" }, // defaults to null
+				{ "name":"subscription", "type":"STRING" }, // defaults to null
+				{ "name":"license", "type":"STRING" } // defaults to "any"
+			]
+		},
+		{
+			// http://developer.yahoo.com/search/web/V1/spellingSuggestion.html
+			"name":"spellingSuggestion",
+			"serviceURL": "http://api.search.yahoo.com/WebSearchService/V1/spellingSuggestion",
+			"parameters":[ { "name":"query", "type":"STRING" } ]
+		},
+		{
+			// http://developer.yahoo.com/search/web/V1/relatedSuggestion.html
+			"name":"spellingSuggestion",
+			"serviceURL": "http://api.search.yahoo.com/WebSearchService/V1/relatedSuggestion",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"results", "type":"INTEGER" } // 1-50, defaults to 10
+			]
+		},
+		{
+			// http://developer.yahoo.com/search/content/V1/termExtraction.html
+			"name":"termExtraction",
+			"serviceURL": "http://search.yahooapis.com/ContentAnalysisService/V1/termExtraction",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"context", "type":"STRING" },
+				{ "name":"results", "type":"INTEGER" } // 1-50, defaults to 10
+			]
+		},
+		{
+			// http://developer.yahoo.com/search/web/V1/contextSearch.html
+			"name":"contextSearch",
+			"serviceURL": "http://search.yahooapis.com/WebSearchService/V1/contextSearch",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"context", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // defaults to "all"
+				{ "name":"results", "type":"INTEGER" }, // defaults to 10
+				{ "name":"start", "type":"INTEGER" }, // defaults to 1
+				{ "name":"format", "type":"STRING" }, // defaults to "any", can be "html", "msword", "pdf", "ppt", "rst", "txt", or "xls"
+				{ "name":"adult_ok", "type":"INTEGER" }, // defaults to null
+				{ "name":"similar_ok", "type":"INTEGER" }, // defaults to null
+				{ "name":"language", "type":"STRING" }, // defaults to null
+				{ "name":"country", "type":"STRING" }, // defaults to null
+				{ "name":"site", "type":"STRING" }, // defaults to null
+				{ "name":"license", "type":"STRING" } // defaults to "any", could be "cc_any", "cc_commercial", "cc_modifiable"
+			]
+		},
+		//
+		// IMAGE SEARCH
+		//
+		{
+			// http://developer.yahoo.com/search/image/V1/imageSearch.html
+			"name":"imageSearch",
+			"serviceURL": "http://api.search.yahoo.com/ImageSearchService/V1/imageSearch",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // defaults to "all", can by "any" or "phrase"
+				{ "name":"results", "type":"INTEGER" }, // defaults to 10
+				{ "name":"start", "type":"INTEGER" }, // defaults to 1
+				{ "name":"format", "type":"STRING" }, // defaults to "any", can be "bmp", "gif", "jpeg", or "png"
+				{ "name":"adult_ok", "type":"INTEGER" }, // defaults to null
+				{ "name":"coloration", "type":"STRING" }, // "any", "color", or "bw"
+				{ "name":"site", "type":"STRING" } // defaults to null
+			]
+		},
+		//
+		// SITE EXPLORER
+		//
+		{
+			// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html 
+			"name":"inlinkData",
+			"serviceURL": "http://api.search.yahoo.com/SiteExplorerService/V1/inlinkData",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // defaults to "all", can by "any" or "phrase"
+				{ "name":"entire_site", "type":"INTEGER" }, // defaults to null
+				{ "name":"omit_inlinks", "type":"STRING" }, // "domain" or "subdomain", defaults to null
+				{ "name":"results", "type":"INTEGER" }, // defaults to 50
+				{ "name":"start", "type":"INTEGER" }, // defaults to 1
+				{ "name":"site", "type":"STRING" } // defaults to null
+			]
+		},
+		{
+			// http://developer.yahoo.com/search/siteexplorer/V1/pageData.html
+			"name":"pageData",
+			"serviceURL": "http://api.search.yahoo.com/SiteExplorerService/V1/pageData",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // defaults to "all", can by "any" or "phrase"
+				{ "name":"domain_only", "type":"INTEGER" }, // defaults to null
+				{ "name":"results", "type":"INTEGER" }, // defaults to 50
+				{ "name":"start", "type":"INTEGER" }, // defaults to 1
+				{ "name":"site", "type":"STRING" } // defaults to null
+			]
+		},
+		//
+		// MUSIC SEARCH
+		//
+		{
+			// http://developer.yahoo.com/search/audio/V1/artistSearch.html
+			"name":"artistSearch",
+			"serviceURL": "http://api.search.yahoo.com/AudioSearchService/V1/artistSearch",
+			"parameters":[
+				{ "name":"artist", "type":"STRING" },
+				{ "name":"artistid", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // "all", "any", or "phrase"
+				{ "name":"results", "type":"INTEGER" }, // 1-50, defaults to 10
+				{ "name":"start", "type":"INTEGER" } // defaults to 1
+			]
+		},
+		{
+			// http://developer.yahoo.com/search/audio/V1/albumSearch.html
+			"name":"albumSearch",
+			"serviceURL": "http://api.search.yahoo.com/AudioSearchService/V1/albumSearch",
+			"parameters":[
+				{ "name":"artist", "type":"STRING" },
+				{ "name":"artistid", "type":"STRING" },
+				{ "name":"album", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // "all", "any", or "phrase"
+				{ "name":"results", "type":"INTEGER" }, // 1-50, defaults to 10
+				{ "name":"start", "type":"INTEGER" } // defaults to 1
+			]
+		},
+		{
+			// http://developer.yahoo.com/search/audio/V1/songSearch.html
+			"name":"songSearch",
+			"serviceURL": "http://api.search.yahoo.com/AudioSearchService/V1/songSearch",
+			"parameters":[
+				{ "name":"artist", "type":"STRING" },
+				{ "name":"artistid", "type":"STRING" },
+				{ "name":"album", "type":"STRING" },
+				{ "name":"albumid", "type":"STRING" },
+				{ "name":"song", "type":"STRING" },
+				{ "name":"songid", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // "all", "any", or "phrase"
+				{ "name":"results", "type":"INTEGER" }, // 1-50, defaults to 10
+				{ "name":"start", "type":"INTEGER" } // defaults to 1
+			]
+		},
+		{
+			// http://developer.yahoo.com/search/audio/V1/songDownloadLocation.html
+			"name":"songDownloadLocation",
+			"serviceURL": "http://api.search.yahoo.com/AudioSearchService/V1/songDownloadLocation",
+			"parameters":[
+				{ "name":"songid", "type":"STRING" },
+				// "source" can contain:
+				//	audiolunchbox artistdirect buymusic dmusic
+				//	emusic epitonic garageband itunes yahoo
+				//	livedownloads mp34u msn musicmatch mapster passalong
+				//	rhapsody soundclick theweb
+				{ "name":"source", "type":"STRING" },
+				{ "name":"results", "type":"INTEGER" }, // 1-50, defaults to 10
+				{ "name":"start", "type":"INTEGER" } // defaults to 1
+			]
+		},
+		//
+		// NEWS SEARCH
+		//
+		{
+			// http://developer.yahoo.com/search/news/V1/newsSearch.html
+			"name":"newsSearch",
+			"serviceURL": "http://api.search.yahoo.com/NewsSearchService/V1/newsSearch",
+			"parameters":[
+				{ "name":"query", "type":"STRING" },
+				{ "name":"type", "type":"STRING" }, // defaults to "all"
+				{ "name":"results", "type":"INTEGER" }, // defaults to 10
+				{ "name":"start", "type":"INTEGER" }, // defaults to 1
+				{ "name":"sort", "type":"STRING" }, // "rank" or "date"
+				{ "name":"language", "type":"STRING" }, // defaults to null
+				{ "name":"site", "type":"STRING" } // defaults to null
+			]
+		}
+		/*
+		{
+			// 
+			"name":"",
+			"serviceURL": "",
+			"parameters":[
+				{ "name":"street", "type":"STRING" },
+			]
+		}
+		*/
+	]
+}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/selection/Selection.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/selection/Selection.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/selection/Selection.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/selection/Selection.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,39 @@
+
+dojo.provide("dojo.selection.Selection");dojo.require("dojo.lang.array");dojo.require("dojo.lang.func");dojo.require("dojo.lang.common");dojo.require("dojo.math");dojo.declare("dojo.selection.Selection", null,{initializer: function(items, isCollection){this.items = [];this.selection = [];this._pivotItems = [];this.clearItems();if(items) {if(isCollection) {this.setItemsCollection(items);} else {this.setItems(items);}}},items: null,selection: null,lastSelected: null,allowImplicit: true,length: 0,isGrowable: true,_pivotItems: null,_pivotItem: null,onSelect: function(item){},onDeselect: function(item){},onSelectChange: function(item, selected){},_find: function(item, inSelection) {if(inSelection) {return dojo.lang.find(this.selection, item);} else {return dojo.lang.find(this.items, item);}},isSelectable: function(item){return true;},setItems: function(){this.clearItems();this.addItems.call(this, arguments);},setItemsCollection: function(collection){this.items = collection;},addI
 tems: function(){var args = dojo.lang.unnest(arguments);for(var i = 0; i < args.length; i++){this.items.push(args[i]);}},addItemsAt: function(item, before ){if(this.items.length == 0){return this.addItems(dojo.lang.toArray(arguments, 2));}
+if(!this.isItem(item)){item = this.items[item];}
+if(!item){ throw new Error("addItemsAt: item doesn't exist"); }
+var idx = this._find(item);if(idx > 0 && before){ idx--; }
+for(var i = 2; i < arguments.length; i++){if(!this.isItem(arguments[i])){this.items.splice(idx++, 0, arguments[i]);}}},removeItem: function(item){var idx = this._find(item);if(idx > -1) {this.items.splice(idx, 1);}
+idx = this._find(item, true);if(idx > -1) {this.selection.splice(idx, 1);}},clearItems: function(){this.items = [];this.deselectAll();},isItem: function(item){return this._find(item) > -1;},isSelected: function(item){return this._find(item, true) > -1;},selectFilter: function(item, selection, add, grow) {return true;},update: function(item, add, grow, noToggle) {if(!this.isItem(item)){ return false; }
+if(this.isGrowable && grow){if( (!this.isSelected(item)) &&
+this.selectFilter(item, this.selection, false, true) ){this.grow(item);this.lastSelected = item;}}else if(add){if(this.selectFilter(item, this.selection, true, false)){if(noToggle){if(this.select(item)){this.lastSelected = item;}}else if(this.toggleSelected(item)){this.lastSelected = item;}}}else{this.deselectAll();this.select(item);}
+this.length = this.selection.length;return true;},grow: function(toItem, fromItem){if(!this.isGrowable){ return; }
+if(arguments.length == 1){fromItem = this._pivotItem;if(!fromItem && this.allowImplicit){fromItem = this.items[0];}}
+if(!toItem || !fromItem){ return false; }
+var fromIdx = this._find(fromItem);var toDeselect = {};var lastIdx = -1;if(this.lastSelected){lastIdx = this._find(this.lastSelected);var step = fromIdx < lastIdx ? -1 : 1;var range = dojo.math.range(lastIdx, fromIdx, step);for(var i = 0; i < range.length; i++){toDeselect[range[i]] = true;}}
+var toIdx = this._find(toItem);var step = fromIdx < toIdx ? -1 : 1;var shrink = lastIdx >= 0 && step == 1 ? lastIdx < toIdx : lastIdx > toIdx;var range = dojo.math.range(toIdx, fromIdx, step);if(range.length){for(var i = range.length-1; i >= 0; i--){var item = this.items[range[i]];if(this.selectFilter(item, this.selection, false, true)){if(this.select(item, true) || shrink){this.lastSelected = item;}
+if(range[i] in toDeselect){delete toDeselect[range[i]];}}}}else{this.lastSelected = fromItem;}
+for(var i in toDeselect){if(this.items[i] == this.lastSelected){}
+this.deselect(this.items[i]);}
+this._updatePivot();},growUp: function(){if(!this.isGrowable){ return; }
+var idx = this._find(this.lastSelected) - 1;while(idx >= 0){if(this.selectFilter(this.items[idx], this.selection, false, true)){this.grow(this.items[idx]);break;}
+idx--;}},growDown: function(){if(!this.isGrowable){ return; }
+var idx = this._find(this.lastSelected);if(idx < 0 && this.allowImplicit){this.select(this.items[0]);idx = 0;}
+idx++;while(idx > 0 && idx < this.items.length){if(this.selectFilter(this.items[idx], this.selection, false, true)){this.grow(this.items[idx]);break;}
+idx++;}},toggleSelected: function(item, noPivot){if(this.isItem(item)){if(this.select(item, noPivot)){ return 1; }
+if(this.deselect(item)){ return -1; }}
+return 0;},select: function(item, noPivot){if(this.isItem(item) && !this.isSelected(item)
+&& this.isSelectable(item)){this.selection.push(item);this.lastSelected = item;this.onSelect(item);this.onSelectChange(item, true);if(!noPivot){this._addPivot(item);}
+this.length = this.selection.length;return true;}
+return false;},deselect: function(item){var idx = this._find(item, true);if(idx > -1){this.selection.splice(idx, 1);this.onDeselect(item);this.onSelectChange(item, false);if(item == this.lastSelected){this.lastSelected = null;}
+this._removePivot(item);this.length = this.selection.length;return true;}
+return false;},selectAll: function(){for(var i = 0; i < this.items.length; i++){this.select(this.items[i]);}},deselectAll: function(){while(this.selection && this.selection.length){this.deselect(this.selection[0]);}},selectNext: function(){var idx = this._find(this.lastSelected);while(idx > -1 && ++idx < this.items.length){if(this.isSelectable(this.items[idx])){this.deselectAll();this.select(this.items[idx]);return true;}}
+return false;},selectPrevious: function(){var idx = this._find(this.lastSelected);while(idx-- > 0){if(this.isSelectable(this.items[idx])){this.deselectAll();this.select(this.items[idx]);return true;}}
+return false;},selectFirst: function(){this.deselectAll();var idx = 0;while(this.items[idx] && !this.select(this.items[idx])){idx++;}
+return this.items[idx] ? true : false;},selectLast: function(){this.deselectAll();var idx = this.items.length-1;while(this.items[idx] && !this.select(this.items[idx])) {idx--;}
+return this.items[idx] ? true : false;},_addPivot: function(item, andClear){this._pivotItem = item;if(andClear){this._pivotItems = [item];}else{this._pivotItems.push(item);}},_removePivot: function(item){var i = dojo.lang.find(this._pivotItems, item);if(i > -1){this._pivotItems.splice(i, 1);this._pivotItem = this._pivotItems[this._pivotItems.length-1];}
+this._updatePivot();},_updatePivot: function(){if(this._pivotItems.length == 0){if(this.lastSelected){this._addPivot(this.lastSelected);}}},sorted: function(){return dojo.lang.toArray(this.selection).sort(
+dojo.lang.hitch(this, function(a, b){var A = this._find(a), B = this._find(b);if(A > B){return 1;}else if(A < B){return -1;}else{return 0;}})
+);},updateSelected: function(){for(var i = 0; i < this.selection.length; i++) {if(this._find(this.selection[i]) < 0) {var removed = this.selection.splice(i, 1);this._removePivot(removed[0]);}}
+this.length = this.selection.length;}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,12 @@
+
+dojo.provide("dojo.storage");dojo.require("dojo.lang.*");dojo.require("dojo.event.*");dojo.storage = new function(){}
+dojo.declare("dojo.storage", null, {SUCCESS: "success",FAILED: "failed",PENDING: "pending",SIZE_NOT_AVAILABLE: "Size not available",SIZE_NO_LIMIT: "No size limit",namespace: "default",onHideSettingsUI: null,initialize: function(){dojo.unimplemented("dojo.storage.initialize");},isAvailable: function(){dojo.unimplemented("dojo.storage.isAvailable");},put: function(	 key,value,resultsHandler){dojo.unimplemented("dojo.storage.put");},get: function( key){dojo.unimplemented("dojo.storage.get");},hasKey: function( key){return (this.get(key) != null);},getKeys: function(){dojo.unimplemented("dojo.storage.getKeys");},clear: function(){dojo.unimplemented("dojo.storage.clear");},remove: function(key){dojo.unimplemented("dojo.storage.remove");},isPermanent: function(){dojo.unimplemented("dojo.storage.isPermanent");},getMaximumSize: function(){dojo.unimplemented("dojo.storage.getMaximumSize");},hasSettingsUI: function(){return false;},showSettingsUI: function(){dojo.unimplemented("dojo.s
 torage.showSettingsUI");},hideSettingsUI: function(){dojo.unimplemented("dojo.storage.hideSettingsUI");},getType: function(){dojo.unimplemented("dojo.storage.getType");},isValidKey: function( keyName){if((keyName == null)||(typeof keyName == "undefined")){return false;}
+return /^[0-9A-Za-z_]*$/.test(keyName);}});dojo.storage.manager = new function(){this.currentProvider = null;this.available = false;this._initialized = false;this._providers = [];this.namespace = "default";this.initialize = function(){this.autodetect();};this.register = function( name,  instance) {this._providers[this._providers.length] = instance;this._providers[name] = instance;};this.setProvider = function(storageClass){};this.autodetect = function(){if(this._initialized == true){return;}
+var providerToUse = null;for(var i = 0; i < this._providers.length; i++){providerToUse = this._providers[i];if(dojo.lang.isUndefined(djConfig["forceStorageProvider"]) == false
+&& providerToUse.getType() == djConfig["forceStorageProvider"]){providerToUse.isAvailable();break;}else if(dojo.lang.isUndefined(djConfig["forceStorageProvider"]) == true
+&& providerToUse.isAvailable()){break;}}
+if(providerToUse == null){this._initialized = true;this.available = false;this.currentProvider = null;dojo.raise("No storage provider found for this platform");}
+this.currentProvider = providerToUse;for(var i in providerToUse){dojo.storage[i] = providerToUse[i];}
+dojo.storage.manager = this;dojo.storage.initialize();this._initialized = true;this.available = true;};this.isAvailable = function(){return this.available;};this.isInitialized = function(){if(this.currentProvider.getType() == "dojo.storage.browser.FlashStorageProvider"
+&& dojo.flash.ready == false){return false;}else{return this._initialized;}};this.supportsProvider = function( storageClass){try{var provider = eval("new " + storageClass + "()");var results = provider.isAvailable();if(results == null || typeof results == "undefined")
+return false;return results;}catch (exception){return false;}};this.getProvider = function(){return this.currentProvider;};this.loaded = function(){};};
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/Storage.as
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/Storage.as?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/Storage.as (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/Storage.as Mon Nov 20 10:54:21 2006
@@ -0,0 +1,146 @@
+/*
+	Copyright (c) 2004-2006, The Dojo Foundation
+	All Rights Reserved.
+
+	Licensed under the Academic Free License version 2.1 or above OR the
+	modified BSD license. For more information on Dojo licensing, see:
+
+		http://dojotoolkit.org/community/licensing.shtml
+*/
+
+import DojoExternalInterface;
+
+class Storage {
+	public static var SUCCESS = "success";
+	public static var FAILED = "failed";
+	public static var PENDING = "pending";
+	
+	public var so;
+	
+	public function Storage(){
+		//getURL("javascript:dojo.debug('FLASH:Storage constructor')");
+		DojoExternalInterface.initialize();
+		DojoExternalInterface.addCallback("put", this, put);
+		DojoExternalInterface.addCallback("get", this, get);
+		DojoExternalInterface.addCallback("showSettings", this, showSettings);
+		DojoExternalInterface.addCallback("clear", this, clear);
+		DojoExternalInterface.addCallback("getKeys", this, getKeys);
+		DojoExternalInterface.addCallback("remove", this, remove);
+		DojoExternalInterface.loaded();
+		
+		// preload the System Settings finished button movie for offline
+		// access so it is in the cache
+		_root.createEmptyMovieClip("_settingsBackground", 1);
+		// getURL("javascript:alert('"+DojoExternalInterface.dojoPath+"');");
+		_root._settingsBackground.loadMovie(DojoExternalInterface.dojoPath + "storage_dialog.swf");
+	}
+
+	public function put(keyName, keyValue, namespace){
+		// Get the SharedObject for these values and save it
+		so = SharedObject.getLocal(namespace);
+		
+		// prepare a storage status handler
+		var self = this;
+		so.onStatus = function(infoObject:Object){
+			//getURL("javascript:dojo.debug('FLASH: onStatus, infoObject="+infoObject.code+"')");
+			
+			// delete the data value if the request was denied
+			if (infoObject.code == "SharedObject.Flush.Failed"){
+				delete self.so.data[keyName];
+			}
+			
+			var statusResults;
+			if(infoObject.code == "SharedObject.Flush.Failed"){
+				statusResults = Storage.FAILED;
+			}else if(infoObject.code == "SharedObject.Flush.Pending"){
+				statusResults = Storage.PENDING;
+			}else if(infoObject.code == "SharedObject.Flush.Success"){
+				statusResults = Storage.SUCCESS;
+			}
+			//getURL("javascript:dojo.debug('FLASH: onStatus, statusResults="+statusResults+"')");
+			
+			// give the status results to JavaScript
+			DojoExternalInterface.call("dojo.storage._onStatus", null, statusResults, 
+																 keyName);
+		}
+		
+		// save the key and value
+		so.data[keyName] = keyValue;
+		var flushResults = so.flush();
+		
+		// return results of this command to JavaScript
+		var statusResults;
+		if(flushResults == true){
+			statusResults = Storage.SUCCESS;
+		}else if(flushResults == "pending"){
+			statusResults = Storage.PENDING;
+		}else{
+			statusResults = Storage.FAILED;
+		}
+		
+		DojoExternalInterface.call("dojo.storage._onStatus", null, statusResults, 
+															 keyName);
+	}
+
+	public function get(keyName, namespace){
+		// Get the SharedObject for these values and save it
+		so = SharedObject.getLocal(namespace);
+		var results = so.data[keyName];
+		
+		return results;
+	}
+	
+	public function showSettings(){
+		// Show the configuration options for the Flash player, opened to the
+		// section for local storage controls (pane 1)
+		System.showSettings(1);
+		
+		// there is no way we can intercept when the Close button is pressed, allowing us
+		// to hide the Flash dialog. Instead, we need to load a movie in the
+		// background that we can show a close button on.
+		_root.createEmptyMovieClip("_settingsBackground", 1);
+		_root._settingsBackground.loadMovie(DojoExternalInterface.dojoPath + "storage_dialog.swf");
+	}
+	
+	public function clear(namespace){
+		so = SharedObject.getLocal(namespace);
+		so.clear();
+		so.flush();
+	}
+	
+	public function getKeys(namespace){
+		// Returns a list of the available keys in this namespace
+		
+		// get the storage object
+		so = SharedObject.getLocal(namespace);
+		
+		// get all of the keys
+		var results = new Array();
+		for(var i in so.data)
+			results.push(i);	
+		
+		// join the keys together in a comma seperated string
+		results = results.join(",");
+		
+		return results;
+	}
+	
+	public function remove(keyName, namespace){
+		// Removes a key
+
+		// get the storage object
+		so = SharedObject.getLocal(namespace);
+		
+		// delete this value
+		delete so.data[keyName];
+		
+		// save the changes
+		so.flush();
+	}
+
+	static function main(mc){
+		//getURL("javascript:dojo.debug('FLASH: storage loaded')");
+		_root.app = new Storage(); 
+	}
+}
+

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/__package__.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/__package__.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,2 @@
+
+dojo.kwCompoundRequire({common: ["dojo.storage"],browser: ["dojo.storage.browser"]});dojo.provide("dojo.storage.*");
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/browser.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/browser.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/browser.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/browser.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,26 @@
+
+dojo.provide("dojo.storage.browser");dojo.require("dojo.storage");dojo.require("dojo.flash");dojo.require("dojo.json");dojo.require("dojo.uri.*");dojo.storage.browser.WhatWGStorageProvider = function(){}
+dojo.inherits(dojo.storage.browser.WhatWGStorageProvider, dojo.storage);dojo.lang.extend(dojo.storage.browser.WhatWGStorageProvider, {namespace: "default",initialized: false,_domain: null,_available: null,_statusHandler: null,initialize: function(){if(djConfig["disableWhatWGStorage"] == true){return;}
+this._domain = location.hostname;this.initialized = true;dojo.storage.manager.loaded();},isAvailable: function(){try{var myStorage = globalStorage[location.hostname];}catch(e){this._available = false;return this._available;}
+this._available = true;return this._available;},put: function(key, value, resultsHandler){if(this.isValidKey(key) == false){dojo.raise("Invalid key given: " + key);}
+this._statusHandler = resultsHandler;if(dojo.lang.isString(value)){value = "string:" + value;}else{value = dojo.json.serialize(value);}
+window.addEventListener("storage", function(evt){resultsHandler.call(null, dojo.storage.SUCCESS, key);}, false);try{var myStorage = globalStorage[this._domain];myStorage.setItem(key,value);}catch(e){this._statusHandler.call(null, dojo.storage.FAILED,key, e.toString());}},get: function(key){if(this.isValidKey(key) == false){dojo.raise("Invalid key given: " + key);}
+var myStorage = globalStorage[this._domain];var results = myStorage.getItem(key);if(results == null){return null;}
+results = results.value;if(!dojo.lang.isUndefined(results) && results != null
+&& /^string:/.test(results)){results = results.substring("string:".length);}else{results = dojo.json.evalJson(results);}
+return results;},getKeys: function(){var myStorage = globalStorage[this._domain];var keysArray = new Array();for(i=0; i<myStorage.length;i++){keysArray[i] = myStorage.key(i);}
+return keysArray;},clear: function(){var myStorage = globalStorage[this._domain];var keys = new Array();for(var i = 0; i < myStorage.length; i++){keys[keys.length] = myStorage.key(i);}
+for(var i = 0; i < keys.length; i++){myStorage.removeItem(keys[i]);}},remove: function(key){var myStorage = globalStorage[this._domain];myStorage.removeItem(key);},isPermanent: function(){return true;},getMaximumSize: function(){return dojo.storage.SIZE_NO_LIMIT;},hasSettingsUI: function(){return false;},showSettingsUI: function(){dojo.raise(this.getType() + " does not support a storage settings user-interface");},hideSettingsUI: function(){dojo.raise(this.getType() + " does not support a storage settings user-interface");},getType: function(){return "dojo.storage.browser.WhatWGProvider";}});dojo.storage.browser.FlashStorageProvider = function(){}
+dojo.inherits(dojo.storage.browser.FlashStorageProvider, dojo.storage);dojo.lang.extend(dojo.storage.browser.FlashStorageProvider, {namespace: "default",initialized: false,_available: null,_statusHandler: null,initialize: function(){if(djConfig["disableFlashStorage"] == true){return;}
+var loadedListener = function(){dojo.storage._flashLoaded();}
+dojo.flash.addLoadedListener(loadedListener);var swfloc6 = dojo.uri.dojoUri("Storage_version6.swf").toString();var swfloc8 = dojo.uri.dojoUri("Storage_version8.swf").toString();dojo.flash.setSwf({flash6: swfloc6, flash8: swfloc8, visible: false});},isAvailable: function(){if(djConfig["disableFlashStorage"] == true){this._available = false;}else{this._available = true;}
+return this._available;},put: function(key, value, resultsHandler){if(this.isValidKey(key) == false){dojo.raise("Invalid key given: " + key);}
+this._statusHandler = resultsHandler;if(dojo.lang.isString(value)){value = "string:" + value;}else{value = dojo.json.serialize(value);}
+dojo.flash.comm.put(key, value, this.namespace);},get: function(key){if(this.isValidKey(key) == false){dojo.raise("Invalid key given: " + key);}
+var results = dojo.flash.comm.get(key, this.namespace);if(results == ""){return null;}
+if(!dojo.lang.isUndefined(results) && results != null
+&& /^string:/.test(results)){results = results.substring("string:".length);}else{results = dojo.json.evalJson(results);}
+return results;},getKeys: function(){var results = dojo.flash.comm.getKeys(this.namespace);if(results == ""){return [];}
+return results.split(",");},clear: function(){dojo.flash.comm.clear(this.namespace);},remove: function(key){dojo.unimplemented("dojo.storage.browser.FlashStorageProvider.remove");},isPermanent: function(){return true;},getMaximumSize: function(){return dojo.storage.SIZE_NO_LIMIT;},hasSettingsUI: function(){return true;},showSettingsUI: function(){dojo.flash.comm.showSettings();dojo.flash.obj.setVisible(true);dojo.flash.obj.center();},hideSettingsUI: function(){dojo.flash.obj.setVisible(false);if(dojo.storage.onHideSettingsUI != null &&
+!dojo.lang.isUndefined(dojo.storage.onHideSettingsUI)){dojo.storage.onHideSettingsUI.call(null);}},getType: function(){return "dojo.storage.browser.FlashStorageProvider";},_flashLoaded: function(){this._initialized = true;dojo.storage.manager.loaded();},_onStatus: function(statusResult, key){var ds = dojo.storage;var dfo = dojo.flash.obj;if(statusResult == ds.PENDING){dfo.center();dfo.setVisible(true);}else{dfo.setVisible(false);}
+if((!dj_undef("_statusHandler", ds))&&(ds._statusHandler != null)){ds._statusHandler.call(null, statusResult, key);}}});dojo.storage.manager.register("dojo.storage.browser.WhatWGStorageProvider",new dojo.storage.browser.WhatWGStorageProvider());dojo.storage.manager.register("dojo.storage.browser.FlashStorageProvider",new dojo.storage.browser.FlashStorageProvider());dojo.storage.manager.initialize();
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/storage_dialog.fla
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/storage_dialog.fla?view=auto&rev=477287
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/storage_dialog.fla
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.string");dojo.require("dojo.string.common");
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/Builder.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/Builder.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/Builder.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/Builder.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,14 @@
+
+dojo.provide("dojo.string.Builder");dojo.require("dojo.lang.common");dojo.string.Builder = function(str){this.arrConcat = (dojo.render.html.capable && dojo.render.html["ie"]);var a = [];var b = "";var length = this.length = b.length;if(this.arrConcat){if(b.length > 0){a.push(b);}
+b = "";}
+this.toString = this.valueOf = function(){return (this.arrConcat) ? a.join("") : b;};this.append = function(){for(var x=0; x<arguments.length; x++){var s = arguments[x];if(dojo.lang.isArrayLike(s)){this.append.apply(this, s);} else {if(this.arrConcat){a.push(s);}else{b+=s;}
+length += s.length;this.length = length;}}
+return this;};this.concat = function(){return this.append.apply(this, arguments);};this.clear = function(){a = [];b = "";length = this.length = 0;return this;};this.remove = function(f, l){var s = "";if(this.arrConcat){b = a.join("");}
+a=[];if(f>0){s = b.substring(0, (f-1));}
+b = s + b.substring(f + l);length = this.length = b.length;if(this.arrConcat){a.push(b);b="";}
+return this;};this.replace = function(o, n){if(this.arrConcat){b = a.join("");}
+a = [];b = b.replace(o,n);length = this.length = b.length;if(this.arrConcat){a.push(b);b="";}
+return this;};this.insert = function(idx, s){if(this.arrConcat){b = a.join("");}
+a=[];if(idx == 0){b = s + b;}else{var t = b.split("");t.splice(idx,0,s);b = t.join("")}
+length = this.length = b.length;if(this.arrConcat){a.push(b);b="";}
+return this;};this.append.apply(this, arguments);};
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/__package__.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/__package__.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,4 @@
+
+dojo.kwCompoundRequire({common: [
+"dojo.string","dojo.string.common","dojo.string.extras","dojo.string.Builder"
+]});dojo.provide("dojo.string.*");
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/common.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/common.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/common.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/common.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,14 @@
+
+dojo.provide("dojo.string.common");dojo.string.trim = function(str, wh){if(!str.replace){ return str; }
+if(!str.length){ return str; }
+var re = (wh > 0) ? (/^\s+/) : (wh < 0) ? (/\s+$/) : (/^\s+|\s+$/g);return str.replace(re, "");}
+dojo.string.trimStart = function(str) {return dojo.string.trim(str, 1);}
+dojo.string.trimEnd = function(str) {return dojo.string.trim(str, -1);}
+dojo.string.repeat = function(str, count, separator) {var out = "";for(var i = 0; i < count; i++) {out += str;if(separator && i < count - 1) {out += separator;}}
+return out;}
+dojo.string.pad = function(str, len,  c, dir) {var out = String(str);if(!c) {c = '0';}
+if(!dir) {dir = 1;}
+while(out.length < len) {if(dir > 0) {out = c + out;} else {out += c;}}
+return out;}
+dojo.string.padLeft = function(str, len, c) {return dojo.string.pad(str, len, c, 1);}
+dojo.string.padRight = function(str, len, c) {return dojo.string.pad(str, len, c, -1);}

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/extras.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/extras.js?view=auto&rev=477287
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/extras.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string/extras.js Mon Nov 20 10:54:21 2006
@@ -0,0 +1,53 @@
+
+dojo.provide("dojo.string.extras");dojo.require("dojo.string.common");dojo.require("dojo.lang.common");dojo.require("dojo.lang.array");dojo.string.substituteParams = function(template, hash){var map = (typeof hash == 'object') ? hash : dojo.lang.toArray(arguments, 1);return template.replace(/\%\{(\w+)\}/g, function(match, key){if(typeof(map[key]) != "undefined" && map[key] != null){return map[key];}
+dojo.raise("Substitution not found: " + key);});};dojo.string.capitalize = function(str){if(!dojo.lang.isString(str)){ return ""; }
+if(arguments.length == 0){ str = this; }
+var words = str.split(' ');for(var i=0; i<words.length; i++){words[i] = words[i].charAt(0).toUpperCase() + words[i].substring(1);}
+return words.join(" ");}
+dojo.string.isBlank = function(str){if(!dojo.lang.isString(str)){ return true; }
+return (dojo.string.trim(str).length == 0);}
+dojo.string.encodeAscii = function(str){if(!dojo.lang.isString(str)){ return str; }
+var ret = "";var value = escape(str);var match, re = /%u([0-9A-F]{4})/i;while((match = value.match(re))){var num = Number("0x"+match[1]);var newVal = escape("&#" + num + ";");ret += value.substring(0, match.index) + newVal;value = value.substring(match.index+match[0].length);}
+ret += value.replace(/\+/g, "%2B");return ret;}
+dojo.string.escape = function(type, str){var args = dojo.lang.toArray(arguments, 1);switch(type.toLowerCase()){case "xml":
+case "html":
+case "xhtml":
+return dojo.string.escapeXml.apply(this, args);case "sql":
+return dojo.string.escapeSql.apply(this, args);case "regexp":
+case "regex":
+return dojo.string.escapeRegExp.apply(this, args);case "javascript":
+case "jscript":
+case "js":
+return dojo.string.escapeJavaScript.apply(this, args);case "ascii":
+return dojo.string.encodeAscii.apply(this, args);default:
+return str;}}
+dojo.string.escapeXml = function(str, noSingleQuotes){str = str.replace(/&/gm, "&amp;").replace(/</gm, "&lt;")
+.replace(/>/gm, "&gt;").replace(/"/gm, "&quot;");if(!noSingleQuotes){ str = str.replace(/'/gm, "&#39;"); }
+return str;}
+dojo.string.escapeSql = function(str){return str.replace(/'/gm, "''");}
+dojo.string.escapeRegExp = function(str){return str.replace(/\\/gm, "\\\\").replace(/([\f\b\n\t\r[\^$|?*+(){}])/gm, "\\$1");}
+dojo.string.escapeJavaScript = function(str){return str.replace(/(["'\f\b\n\t\r])/gm, "\\$1");}
+dojo.string.escapeString = function(str){return ('"' + str.replace(/(["\\])/g, '\\$1') + '"'
+).replace(/[\f]/g, "\\f"
+).replace(/[\b]/g, "\\b"
+).replace(/[\n]/g, "\\n"
+).replace(/[\t]/g, "\\t"
+).replace(/[\r]/g, "\\r");}
+dojo.string.summary = function(str, len){if(!len || str.length <= len){return str;}
+return str.substring(0, len).replace(/\.+$/, "") + "...";}
+dojo.string.endsWith = function(str, end, ignoreCase){if(ignoreCase){str = str.toLowerCase();end = end.toLowerCase();}
+if((str.length - end.length) < 0){return false;}
+return str.lastIndexOf(end) == str.length - end.length;}
+dojo.string.endsWithAny = function(str ){for(var i = 1; i < arguments.length; i++) {if(dojo.string.endsWith(str, arguments[i])) {return true;}}
+return false;}
+dojo.string.startsWith = function(str, start, ignoreCase){if(ignoreCase) {str = str.toLowerCase();start = start.toLowerCase();}
+return str.indexOf(start) == 0;}
+dojo.string.startsWithAny = function(str ){for(var i = 1; i < arguments.length; i++) {if(dojo.string.startsWith(str, arguments[i])) {return true;}}
+return false;}
+dojo.string.has = function(str ) {for(var i = 1; i < arguments.length; i++) {if(str.indexOf(arguments[i]) > -1){return true;}}
+return false;}
+dojo.string.normalizeNewlines = function(text, newlineChar){if (newlineChar == "\n"){text = text.replace(/\r\n/g, "\n");text = text.replace(/\r/g, "\n");} else if (newlineChar == "\r"){text = text.replace(/\r\n/g, "\r");text = text.replace(/\n/g, "\r");}else{text = text.replace(/([^\r])\n/g, "$1\r\n").replace(/\r([^\n])/g, "\r\n$1");}
+return text;}
+dojo.string.splitEscaped = function(str, charac){var components = [];for (var i = 0, prevcomma = 0; i < str.length; i++){if (str.charAt(i) == '\\'){ i++; continue; }
+if (str.charAt(i) == charac){components.push(str.substring(prevcomma, i));prevcomma = i + 1;}}
+components.push(str.substr(prevcomma));return components;}

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