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/04 05:39:55 UTC

svn commit: r471116 [17/31] - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/services/impl/ js/dojo/ js/dojo/nls/ js/dojo/src/ js/dojo/src/animation/ js/dojo/src/cal/ js/dojo/src/charting/ js/dojo/src/charting/svg/ js/doj...

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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 2006
@@ -0,0 +1,39 @@
+
+dojo.provide("dojo.selection.Selection");dojo.require("dojo.lang.array");dojo.require("dojo.lang.func");dojo.require("dojo.math");dojo.selection.Selection = function(items, isCollection) {this.items = [];this.selection = [];this._pivotItems = [];this.clearItems();if(items) {if(isCollection) {this.setItemsCollection(items);} else {this.setItems(items);}}}
+dojo.lang.extend(dojo.selection.Selection, {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;},addItems: 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;},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=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,9 @@
+
+dojo.provide("dojo.storage");dojo.require("dojo.lang.*");dojo.require("dojo.event.*");dojo.storage.StorageProvider = {}
+dojo.declare("dojo.storage", null, {SUCCESS: "success",FAILED: "failed",PENDING: "pending",SIZE_NOT_AVAILABLE: "Size not available",SIZE_NO_LIMIT: "No size limit","namespace": "dojoStorage",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);},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.storage.showSettingsUI");},hideSettingsUI: function(){dojo.u
 nimplemented("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"] = "dojo.storage";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(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(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){dojo.debug("exception="+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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 2006
@@ -0,0 +1,2 @@
+
+dojo.kwCompoundRequire({common: ["dojo.storage"],browser: ["dojo.storage.browser"],dashboard: ["dojo.storage.dashboard"]});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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 2006
@@ -0,0 +1,15 @@
+
+dojo.provide("dojo.storage.browser");dojo.require("dojo.storage");dojo.require("dojo.flash");dojo.require("dojo.json");dojo.require("dojo.uri.*");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;}
+return this._available;},setNamespace: function(ns){this["namespace"] = ns;},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){},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.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.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/dashboard.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/dashboard.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/dashboard.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/dashboard.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,7 @@
+
+dojo.require("dojo.storage");dojo.require("dojo.json");dojo.provide("dojo.storage.dashboard");dojo.storage.dashboard.StorageProvider = function(){this.initialized = false;}
+dojo.inherits(dojo.storage.dashboard.StorageProvider, dojo.storage.StorageProvider);dojo.lang.extend(dojo.storage.dashboard.StorageProvider, {storageOnLoad: function(){this.initialized = true;},set: function(key, value, ns){if (ns && widget.system){widget.system("/bin/mkdir " + ns);var system = widget.system("/bin/echo " + value + " >" + ns + "/" + key);if(system.errorString){return false;}
+return true;}
+return widget.setPreferenceForKey(dojo.json.serialize(value), key);},get: function(key, ns){if (ns && widget.system) {var system = widget.system("/bin/cat " + ns + "/" + key);if(system.errorString){return "";}
+return system.outputString;}
+return dojo.json.evalJson(widget.preferenceForKey(key));}});dojo.storage.setProvider(new dojo.storage.dashboard.StorageProvider());
\ No newline at end of file

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/storage/dashboard.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=471116
==============================================================================
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=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/string.js Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 2006
@@ -0,0 +1,14 @@
+
+dojo.provide("dojo.string.Builder");dojo.require("dojo.string");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.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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/style.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/style.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/style.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/style.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.style");dojo.kwCompoundRequire({browser: ["dojo.html.style"]});dojo.deprecated("dojo.style", "replaced by dojo.html.style", "0.5");
\ No newline at end of file

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

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=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/svg.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/svg.js Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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=471116
==============================================================================
--- 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 Fri Nov  3 20:39:29 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