You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2007/02/06 06:01:49 UTC

svn commit: r503984 [12/29] - in /tapestry/tapestry4/trunk: ./ tapestry-examples/TimeTracker/src/context/WEB-INF/ tapestry-framework/ tapestry-framework/src/java/org/apache/tapestry/asset/ tapestry-framework/src/java/org/apache/tapestry/dojo/ tapestry-...

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_rhino.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_rhino.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_rhino.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_rhino.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,27 @@
+
+dojo.hostenv.println=function(line){if(arguments.length > 0){print(arguments[0]);for(var i=1; i<arguments.length; i++){var valid=false;for (var p in arguments[i]){valid=true;break;}
+if(valid){dojo.debugShallow(arguments[i]);}}
+} else {print(line);}}
+dojo.locale = dojo.locale || java.util.Locale.getDefault().toString().replace('_','-').toLowerCase();dojo.render.name = dojo.hostenv.name_ = 'rhino';dojo.hostenv.getVersion = function() {return version();};if (dj_undef("byId")) {dojo.byId = function(id, doc){if(id && (typeof id == "string" || id instanceof String)){if(!doc){ doc = document; }
+return doc.getElementById(id);}
+return id;}}
+dojo.hostenv.loadUri = function(uri, cb){try{var local = (new java.io.File(uri)).exists();if(!local){try{var stream = (new java.net.URL(uri)).openStream();stream.close();}catch(e){return false;}}
+if(cb){var contents = (local ? readText : readUri)(uri, "UTF-8");cb(eval('('+contents+')'));}else{load(uri);}
+return true;}catch(e){dojo.debug("rhino load('" + uri + "') failed. Exception: " + e);return false;}}
+dojo.hostenv.exit = function(exitcode){quit(exitcode);}
+function dj_rhino_current_script_via_java(depth) {var optLevel = Packages.org.mozilla.javascript.Context.getCurrentContext().getOptimizationLevel();var caw = new java.io.CharArrayWriter();var pw = new java.io.PrintWriter(caw);var exc = new java.lang.Exception();var s = caw.toString();var matches = s.match(/[^\(]*\.js\)/gi);if(!matches){throw Error("cannot parse printStackTrace output: " + s);}
+var fname = ((typeof depth != 'undefined')&&(depth)) ? matches[depth + 1] : matches[matches.length - 1];var fname = matches[3];if(!fname){ fname = matches[1]; }
+if (!fname){ throw Error("could not find js file in printStackTrace output: " + s); }
+return fname;}
+function readText(path, encoding){encoding = encoding || "utf-8";var jf = new java.io.File(path);var is = new java.io.FileInputStream(jf);return dj_readInputStream(is, encoding);}
+function readUri(uri, encoding){var conn = (new java.net.URL(uri)).openConnection();encoding = encoding || conn.getContentEncoding() || "utf-8";var is = conn.getInputStream();return dj_readInputStream(is, encoding);}
+function dj_readInputStream(is, encoding){var input = new java.io.BufferedReader(new java.io.InputStreamReader(is, encoding));try {var sb = new java.lang.StringBuffer();var line = "";while((line = input.readLine()) !== null){sb.append(line);sb.append(java.lang.System.getProperty("line.separator"));}
+return sb.toString();} finally {input.close();}}
+if(!djConfig.libraryScriptUri.length){try{djConfig.libraryScriptUri = dj_rhino_current_script_via_java(1);}catch(e){if(djConfig["isDebug"]){print("\n");print("we have no idea where Dojo is located.");print("Please try loading rhino in a non-interpreted mode or set a");print("\n\tdjConfig.libraryScriptUri\n");print("Setting the dojo path to './'");print("This is probably wrong!");print("\n");print("Dojo will try to load anyway");}
+djConfig.libraryScriptUri = "./";}}
+dojo.doc = function(){return document;}
+dojo.body = function(){return document.body;}
+function setTimeout(func, delay){var def={sleepTime:delay,hasSlept:false,run:function(){if (!this.hasSlept){this.hasSlept=true;java.lang.Thread.currentThread().sleep(this.sleepTime);}
+try {func();} catch(e){dojo.debug("Error running setTimeout thread:" + e);}}
+};var runnable=new java.lang.Runnable(def);var thread=new java.lang.Thread(runnable);thread.start();}
+dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_spidermonkey.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_spidermonkey.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_spidermonkey.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_spidermonkey.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,11 @@
+
+dojo.hostenv.name_ = 'spidermonkey';dojo.hostenv.println = print;dojo.hostenv.exit = function(exitcode){quit(exitcode);}
+dojo.hostenv.getVersion = function(){ return version(); }
+if(typeof line2pc == 'undefined'){dojo.raise("attempt to use SpiderMonkey host environment when no 'line2pc' global");}
+function dj_spidermonkey_current_file(depth){var s = '';try{throw Error("whatever");}catch(e){s = e.stack;}
+var matches = s.match(/[^@]*\.js/gi);if(!matches){dojo.raise("could not parse stack string: '" + s + "'");}
+var fname = (typeof depth != 'undefined' && depth) ? matches[depth + 1] : matches[matches.length - 1];if(!fname){dojo.raise("could not find file name in stack string '" + s + "'");}
+return fname;}
+if(!dojo.hostenv.library_script_uri_){dojo.hostenv.library_script_uri_ = dj_spidermonkey_current_file(0);}
+dojo.hostenv.loadUri = function(uri){var ok = load(uri);return 1;}
+dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_svg.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_svg.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_svg.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_svg.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,26 @@
+
+if(typeof window == 'undefined'){dojo.raise("attempt to use adobe svg hostenv when no window object");}
+dojo.debug = function(){if (!djConfig.isDebug) { return; }
+var args = arguments;var isJUM = dj_global["jum"];var s = isJUM ? "": "DEBUG: ";for (var i = 0; i < args.length; ++i){ s += args[i]; }
+if (isJUM){jum.debug(s);} else{dojo.hostenv.println(s);}};dojo.render.name = navigator.appName;dojo.render.ver = parseFloat(navigator.appVersion, 10);switch(navigator.platform){case "MacOS":
+dojo.render.os.osx =  true;break;case "Linux":
+dojo.render.os.linux =  true;break;case "Windows":
+dojo.render.os.win =  true;break;default:
+dojo.render.os.linux = true;break;};dojo.render.svg.capable = true;dojo.render.svg.support.builtin = true;dojo.render.svg.moz = ((navigator.userAgent.indexOf("Gecko") >= 0) && (!((navigator.appVersion.indexOf("Konqueror") >= 0) || (navigator.appVersion.indexOf("Safari") >= 0))));dojo.render.svg.adobe = (window.parseXML != null);dojo.hostenv.startPackage("dojo.hostenv");dojo.hostenv.println = function(s){try {var ti = document.createElement("text");ti.setAttribute("x","50");ti.setAttribute("y", (25 + 15 * document.getElementsByTagName("text").length));ti.appendChild(document.createTextNode(s));document.documentElement.appendChild(ti);} catch(e){ }};dojo.hostenv.name_ = "svg";dojo.hostenv.registerModulePath = function(module, prefix){ };dojo.hostenv.getModulePrefix = function(module){ };dojo.hostenv.getTextStack = [];dojo.hostenv.loadUriStack = [];dojo.hostenv.loadedUris = [];dojo.hostenv.modules_ = {};dojo.hostenv.modulesLoadedFired = false;dojo.hostenv.modulesLoadedListeners
  = [];dojo.hostenv.getText = function(uri, cb, data){if (!cb) var cb = function(result){ window.alert(result); };if (!data) {window.getUrl(uri, cb);} else {window.postUrl(uri, data, cb);}};dojo.hostenv.getLibaryScriptUri = function(){ };dojo.hostenv.loadUri = function(uri){ };dojo.hostenv.loadUriAndCheck = function(uri, module){ };dojo.hostenv.loadModule = function(moduleName){var a = moduleName.split(".");var currentObj = window;var s = [];for (var i = 0; i < a.length; i++){if (a[i] == "*") continue;s.push(a[i]);if (!currentObj[a[i]]){dojo.raise("dojo.require('" + moduleName + "'): module does not exist.");} else currentObj = currentObj[a[i]];}
+return;};dojo.hostenv.startPackage = function(moduleName){var a = moduleName.split(".");var currentObj = window;var s = [];for (var i = 0; i < a.length; i++){if (a[i] == "*") continue;s.push(a[i]);if (!currentObj[a[i]]) currentObj[a[i]] = {};currentObj = currentObj[a[i]];}
+return;};if (window.parseXML){window.XMLSerialzer = function(){function nodeToString(n, a) {function fixText(s) { return String(s).replace(/\&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;"); }
+function fixAttribute(s) { return fixText(s).replace(/\"/g, "&quot;"); }
+switch (n.nodeType) {case 1:{var name = n.nodeName;a.push("<" + name);for (var i = 0; i < n.attributes.length; i++) {if (n.attributes.item(i).specified) {a.push(" " + n.attributes.item(i).nodeName.toLowerCase() + "=\"" + fixAttribute(n.attributes.item(i).nodeValue) + "\"");}}
+if (n.canHaveChildren || n.hasChildNodes()) {a.push(">");for (var i = 0; i < n.childNodes.length; i++) nodeToString(n.childNodes.item(i), a);a.push("</" + name + ">\n");} else a.push(" />\n");break;}
+case 3: {a.push(fixText(n.nodeValue));break;}
+case 4: {a.push("<![CDA" + "TA[\n" + n.nodeValue + "\n]" + "]>");break;}
+case 7:{a.push(n.nodeValue);if (/(^<\?xml)|(^<\!DOCTYPE)/.test(n.nodeValue)) a.push("\n");break;}
+case 8:{a.push("<!-- " + n.nodeValue + " -->\n");break;}
+case 9:
+case 11:{for (var i = 0; i < n.childNodes.length; i++) nodeToString(n.childNodes.item(i), a);break;}
+default:{a.push("<!--\nNot Supported:\n\n" + "nodeType: " + n.nodeType + "\nnodeName: " + n.nodeName + "\n-->");}}
+}
+this.serializeToString = function(node){var a = [];nodeToString(node, a);return a.join("");};};window.DOMParser = function(){this.parseFromString = function(s){return parseXML(s, window.document);}};window.XMLHttpRequest = function(){var uri = null;var method = "POST";var isAsync = true;var cb = function(d){this.responseText = d.content;try {this.responseXML = parseXML(this.responseText, window.document);} catch(e){}
+this.status = "200";this.statusText = "OK";if (!d.success) {this.status = "500";this.statusText = "Internal Server Error";}
+this.onload();this.onreadystatechange();};this.onload = function(){};this.readyState = 4;this.onreadystatechange = function(){};this.status = 0;this.statusText = "";this.responseBody = null;this.responseStream = null;this.responseXML = null;this.responseText = null;this.abort = function(){ return; };this.getAllResponseHeaders = function(){ return []; };this.getResponseHeader = function(n){ return null; };this.setRequestHeader = function(nm, val){ };this.open = function(meth, url, async){method = meth;uri = url;};this.send = function(data){var d = data || null;if (method == "GET") getURL(uri, cb);else postURL(uri, data, cb);};};}
+dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_wsh.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_wsh.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_wsh.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/hostenv_wsh.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,7 @@
+
+dojo.hostenv.name_ = 'wsh';if(typeof WScript == 'undefined'){dojo.raise("attempt to use WSH host environment when no WScript global");}
+dojo.hostenv.println = WScript.Echo;dojo.hostenv.getCurrentScriptUri = function(){return WScript.ScriptFullName();}
+dojo.hostenv.getText = function(fpath){var fso = new ActiveXObject("Scripting.FileSystemObject");var istream = fso.OpenTextFile(fpath, 1);if(!istream){return null;}
+var contents = istream.ReadAll();istream.Close();return contents;}
+dojo.hostenv.exit = function(exitcode){ WScript.Quit(exitcode); }
+dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/__package__.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/__package__.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/__package__.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/__package__.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,3 @@
+
+dojo.kwCompoundRequire({common: [ "dojo.html.common","dojo.html.style" ]
+});dojo.provide("dojo.html.*");
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/color.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/color.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/color.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/color.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,5 @@
+
+dojo.require("dojo.html.style");dojo.provide("dojo.html.color");dojo.require("dojo.gfx.color");dojo.require("dojo.lang.common");dojo.html.getBackgroundColor = function(node){node = dojo.byId(node);var color;do{color = dojo.html.getStyle(node, "background-color");if(color.toLowerCase() == "rgba(0, 0, 0, 0)") { color = "transparent"; }
+if(node == document.getElementsByTagName("body")[0]) { node = null; break; }
+node = node.parentNode;}while(node && dojo.lang.inArray(["transparent", ""], color));if(color == "transparent"){color = [255, 255, 255, 0];}else{color = dojo.gfx.color.extractRGB(color);}
+return color;}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/common.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/common.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/common.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/common.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,14 @@
+
+dojo.provide("dojo.html.common");dojo.require("dojo.lang.common");dojo.require("dojo.dom");dojo.lang.mixin(dojo.html, dojo.dom);dojo.html.getEventTarget = function(evt){if(!evt) { evt = dojo.global().event || {}};var t = (evt.srcElement ? evt.srcElement : (evt.target ? evt.target : null));while((t)&&(t.nodeType!=1)){ t = t.parentNode; }
+return t;};dojo.html.getViewport = function(){var _window = dojo.global();var _document = dojo.doc();var w = 0;var h = 0;if(dojo.render.html.mozilla){w = _document.documentElement.clientWidth;h = _window.innerHeight;}else if(!dojo.render.html.opera && _window.innerWidth){w = _window.innerWidth;h = _window.innerHeight;}else if (!dojo.render.html.opera && dojo.exists("documentElement.clientWidth", _document)){var w2 = _document.documentElement.clientWidth;if(!w || w2 && w2 < w) {w = w2;}
+h = _document.documentElement.clientHeight;}else if (dojo.body().clientWidth){w = dojo.body().clientWidth;h = dojo.body().clientHeight;}
+return { width: w, height: h };};dojo.html.getScroll = function(){var _window = dojo.global();var _document = dojo.doc();var top = _window.pageYOffset || _document.documentElement.scrollTop || dojo.body().scrollTop || 0;var left = _window.pageXOffset || _document.documentElement.scrollLeft || dojo.body().scrollLeft || 0;return {top: top,left: left,offset:{ x: left, y: top }};};dojo.html.getParentByType = function(node, type) {var _document = dojo.doc();var parent = dojo.byId(node);type = type.toLowerCase();while((parent)&&(parent.nodeName.toLowerCase()!=type)){if(parent==(_document["body"]||_document["documentElement"])){return null;}
+parent = parent.parentNode;}
+return parent;};dojo.html.getAttribute = function(node, attr){node = dojo.byId(node);if((!node)||(!node.getAttribute)){return null;}
+var ta = typeof attr == 'string' ? attr : new String(attr);var v = node.getAttribute(ta.toUpperCase());if((v)&&(typeof v == 'string')&&(v!="")){return v;}
+if(v && v.value){return v.value;}
+if((node.getAttributeNode)&&(node.getAttributeNode(ta))){return (node.getAttributeNode(ta)).value;}else if(node.getAttribute(ta)){return node.getAttribute(ta);}else if(node.getAttribute(ta.toLowerCase())){return node.getAttribute(ta.toLowerCase());}
+return null;};dojo.html.hasAttribute = function(node, attr){return dojo.html.getAttribute(dojo.byId(node), attr) ? true : false;};dojo.html.getCursorPosition = function(e){e = e || dojo.global().event;var cursor = {x:0, y:0};if(e.pageX || e.pageY){cursor.x = e.pageX;cursor.y = e.pageY;}else{var de = dojo.doc().documentElement;var db = dojo.body();cursor.x = e.clientX + ((de||db)["scrollLeft"]) - ((de||db)["clientLeft"]);cursor.y = e.clientY + ((de||db)["scrollTop"]) - ((de||db)["clientTop"]);}
+return cursor;};dojo.html.isTag = function(node) {node = dojo.byId(node);if(node && node.tagName) {for (var i=1; i<arguments.length; i++){if (node.tagName.toLowerCase()==String(arguments[i]).toLowerCase()){return String(arguments[i]).toLowerCase();}}
+}
+return "";};if(dojo.render.html.ie && !dojo.render.html.ie70){if(window.location.href.substr(0,6).toLowerCase() != "https:"){(function(){var xscript = dojo.doc().createElement('script');xscript.src = "javascript:'dojo.html.createExternalElement=function(doc, tag){ return doc.createElement(tag); }'";dojo.doc().getElementsByTagName("head")[0].appendChild(xscript);})();}}else{dojo.html.createExternalElement = function(doc, tag){return doc.createElement(tag);}}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/display.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/display.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/display.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/display.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,25 @@
+
+dojo.provide("dojo.html.display");dojo.require("dojo.html.style");dojo.html._toggle = function(node, tester, setter){node = dojo.byId(node);setter(node, !tester(node));return tester(node);}
+dojo.html.show = function(node){node = dojo.byId(node);if(dojo.html.getStyleProperty(node, 'display')=='none'){var djDisplayCache = dojo.html.getAttribute('djDisplayCache');dojo.html.setStyle(node, 'display', (djDisplayCache||''));node.removeAttribute('djDisplayCache');}}
+dojo.html.hide = function(node){node = dojo.byId(node);var djDisplayCache = dojo.html.getAttribute('djDisplayCache');if(djDisplayCache == null){var d = dojo.html.getStyleProperty(node, 'display')
+if(d!='none'){node.setAttribute('djDisplayCache', d);}}
+dojo.html.setStyle(node, 'display', 'none');}
+dojo.html.setShowing = function(node, showing){dojo.html[(showing ? 'show' : 'hide')](node);}
+dojo.html.isShowing = function(node){return (dojo.html.getStyleProperty(node, 'display') != 'none');}
+dojo.html.toggleShowing = function(node){return dojo.html._toggle(node, dojo.html.isShowing, dojo.html.setShowing);}
+dojo.html.displayMap = { tr: '', td: '', th: '', img: 'inline', span: 'inline', input: 'inline', button: 'inline' };dojo.html.suggestDisplayByTagName = function(node){node = dojo.byId(node);if(node && node.tagName){var tag = node.tagName.toLowerCase();return (tag in dojo.html.displayMap ? dojo.html.displayMap[tag] : 'block');}}
+dojo.html.setDisplay = function(node, display){dojo.html.setStyle(node, 'display', ((display instanceof String || typeof display == "string") ? display : (display ? dojo.html.suggestDisplayByTagName(node) : 'none')));}
+dojo.html.isDisplayed = function(node){return (dojo.html.getComputedStyle(node, 'display') != 'none');}
+dojo.html.toggleDisplay = function(node){return dojo.html._toggle(node, dojo.html.isDisplayed, dojo.html.setDisplay);}
+dojo.html.setVisibility = function(node, visibility){dojo.html.setStyle(node, 'visibility', ((visibility instanceof String || typeof visibility == "string") ? visibility : (visibility ? 'visible' : 'hidden')));}
+dojo.html.isVisible = function(node){return (dojo.html.getComputedStyle(node, 'visibility') != 'hidden');}
+dojo.html.toggleVisibility = function(node){return dojo.html._toggle(node, dojo.html.isVisible, dojo.html.setVisibility);}
+dojo.html.setOpacity = function(node, opacity, dontFixOpacity){node = dojo.byId(node);var h = dojo.render.html;if(!dontFixOpacity){if( opacity >= 1.0){if(h.ie){dojo.html.clearOpacity(node);return;}else{opacity = 0.999999;}}else if( opacity < 0.0){ opacity = 0; }}
+if(h.ie){if(node.nodeName.toLowerCase() == "tr"){var tds = node.getElementsByTagName("td");for(var x=0; x<tds.length; x++){tds[x].style.filter = "Alpha(Opacity="+opacity*100+")";}}
+node.style.filter = "Alpha(Opacity="+opacity*100+")";}else if(h.moz){node.style.opacity = opacity;node.style.MozOpacity = opacity;}else if(h.safari){node.style.opacity = opacity;node.style.KhtmlOpacity = opacity;}else{node.style.opacity = opacity;}}
+dojo.html.clearOpacity = function(node){node = dojo.byId(node);var ns = node.style;var h = dojo.render.html;if(h.ie){try {if( node.filters && node.filters.alpha ){ns.filter = "";}} catch(e) {}}else if(h.moz){ns.opacity = 1;ns.MozOpacity = 1;}else if(h.safari){ns.opacity = 1;ns.KhtmlOpacity = 1;}else{ns.opacity = 1;}}
+dojo.html.getOpacity = function(node){node = dojo.byId(node);var h = dojo.render.html;if(h.ie){var opac = (node.filters && node.filters.alpha &&
+typeof node.filters.alpha.opacity == "number"
+? node.filters.alpha.opacity : 100) / 100;}else{var opac = node.style.opacity || node.style.MozOpacity ||
+node.style.KhtmlOpacity || 1;}
+return opac >= 0.999999 ? 1.0 : Number(opac);}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/iframe.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/iframe.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/iframe.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/iframe.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,15 @@
+
+dojo.provide("dojo.html.iframe");dojo.require("dojo.html.util");dojo.html.iframeContentWindow = function(iframe_el) {var win = dojo.html.getDocumentWindow(dojo.html.iframeContentDocument(iframe_el)) ||
+dojo.html.iframeContentDocument(iframe_el)['__parent__'] ||
+(iframe_el.name && document.frames[iframe_el.name]) || null;return win;};dojo.html.iframeContentDocument = function(iframe_el){var doc = iframe_el.contentDocument
+|| ((iframe_el.contentWindow)&&(iframe_el.contentWindow.document))
+|| ((iframe_el.name)&&(document.frames[iframe_el.name])&&(document.frames[iframe_el.name].document))
+|| null;return doc;};dojo.html.BackgroundIframe = function(node) {if(dojo.render.html.ie55 || dojo.render.html.ie60) {var html="<iframe src='javascript:false'"
++ " style='position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
++ "z-index: -1; filter:Alpha(Opacity=\"0\");' "
++ ">";this.iframe = dojo.doc().createElement(html);this.iframe.tabIndex = -1;if(node){node.appendChild(this.iframe);this.domNode=node;}else{dojo.body().appendChild(this.iframe);this.iframe.style.display="none";}}
+};dojo.lang.extend(dojo.html.BackgroundIframe, {iframe: null,onResized: function(){if(this.iframe && this.domNode && this.domNode.parentNode){var outer = dojo.html.getMarginBox(this.domNode);if (outer.width  == 0 || outer.height == 0 ){dojo.lang.setTimeout(this, this.onResized, 100);return;}
+this.iframe.style.width = outer.width + "px";this.iframe.style.height = outer.height + "px";}},size: function(node) {if(!this.iframe){ return; }
+var coords = dojo.html.toCoordinateObject(node, true, dojo.html.boxSizing.BORDER_BOX);with(this.iframe.style){width = coords.width + "px";height = coords.height + "px";left = coords.left + "px";top = coords.top + "px";}},setZIndex: function(node){if(!this.iframe){ return; }
+if(dojo.dom.isNode(node)){this.iframe.style.zIndex = dojo.html.getStyle(node, "z-index") - 1;}else if(!isNaN(node)){this.iframe.style.zIndex = node;}},show: function(){if(this.iframe){this.iframe.style.display = "block";}},hide: function(){if(this.iframe){this.iframe.style.display = "none";}},remove: function(){if(this.iframe){dojo.html.removeNode(this.iframe, true);delete this.iframe;this.iframe=null;}}
+});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowB.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowB.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowB.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowBL.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowBL.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowBL.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowBR.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowBR.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowBR.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowL.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowL.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowL.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowR.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowR.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowR.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowT.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowT.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowT.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowTL.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowTL.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowTL.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowTR.png
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowTR.png?view=auto&rev=503984
==============================================================================
Binary file - no diff available.

Propchange: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/images/shadowTR.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/layout.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/layout.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/layout.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/layout.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,94 @@
+
+dojo.provide("dojo.html.layout");dojo.require("dojo.html.common");dojo.require("dojo.html.style");dojo.require("dojo.html.display");dojo.html.sumAncestorProperties = function(node, prop){node = dojo.byId(node);if(!node){ return 0; }
+var retVal = 0;while(node){if(dojo.html.getComputedStyle(node, 'position') == 'fixed'){return 0;}
+var val = node[prop];if(val){retVal += val - 0;if(node==dojo.body()){ break; }}
+node = node.parentNode;}
+return retVal;}
+dojo.html.setStyleAttributes = function(node, attributes) {node = dojo.byId(node);var splittedAttribs=attributes.replace(/(;)?\s*$/, "").split(";");for(var i=0; i<splittedAttribs.length; i++){var nameValue=splittedAttribs[i].split(":");var name=nameValue[0].replace(/\s*$/, "").replace(/^\s*/, "").toLowerCase();var value=nameValue[1].replace(/\s*$/, "").replace(/^\s*/, "");switch(name){case "opacity":
+dojo.html.setOpacity(node, value);break;case "content-height":
+dojo.html.setContentBox(node, {height: value});break;case "content-width":
+dojo.html.setContentBox(node, {width: value});break;case "outer-height":
+dojo.html.setMarginBox(node, {height: value});break;case "outer-width":
+dojo.html.setMarginBox(node, {width: value});break;default:
+node.style[dojo.html.toCamelCase(name)]=value;}}
+}
+dojo.html.boxSizing = {MARGIN_BOX: "margin-box",BORDER_BOX: "border-box",PADDING_BOX: "padding-box",CONTENT_BOX: "content-box"
+};dojo.html.getAbsolutePosition = dojo.html.abs = function(node, includeScroll, boxType){node = dojo.byId(node);var ownerDocument = dojo.doc();var ret = {x: 0,y: 0
+};var bs = dojo.html.boxSizing;if(!boxType) { boxType = bs.CONTENT_BOX; }
+var nativeBoxType = 2;var targetBoxType;switch(boxType){case bs.MARGIN_BOX:
+targetBoxType = 3;break;case bs.BORDER_BOX:
+targetBoxType = 2;break;case bs.PADDING_BOX:
+default:
+targetBoxType = 1;break;case bs.CONTENT_BOX:
+targetBoxType = 0;break;}
+var h = dojo.render.html;var db = ownerDocument["body"]||ownerDocument["documentElement"];if(h.ie){with(node.getBoundingClientRect()){ret.x = left-2;ret.y = top-2;}}else if(ownerDocument['getBoxObjectFor']){nativeBoxType = 1;try{var bo = ownerDocument.getBoxObjectFor(node);ret.x = bo.x - dojo.html.sumAncestorProperties(node, "scrollLeft");ret.y = bo.y - dojo.html.sumAncestorProperties(node, "scrollTop");}catch(e){}}else{if(node["offsetParent"]){var endNode;if((h.safari)&&
+(node.style.getPropertyValue("position") == "absolute")&&
+(node.parentNode == db)){endNode = db;}else{endNode = db.parentNode;}
+if(node.parentNode != db){var nd = node;if(dojo.render.html.opera){ nd = db; }
+ret.x -= dojo.html.sumAncestorProperties(nd, "scrollLeft");ret.y -= dojo.html.sumAncestorProperties(nd, "scrollTop");}
+var curnode = node;do{var n = curnode["offsetLeft"];if(!h.opera || n>0){ret.x += isNaN(n) ? 0 : n;}
+var m = curnode["offsetTop"];ret.y += isNaN(m) ? 0 : m;curnode = curnode.offsetParent;}while((curnode != endNode)&&(curnode != null));}else if(node["x"]&&node["y"]){ret.x += isNaN(node.x) ? 0 : node.x;ret.y += isNaN(node.y) ? 0 : node.y;}}
+if(includeScroll){var scroll = dojo.html.getScroll();ret.y += scroll.top;ret.x += scroll.left;}
+var extentFuncArray=[dojo.html.getPaddingExtent, dojo.html.getBorderExtent, dojo.html.getMarginExtent];if(nativeBoxType > targetBoxType){for(var i=targetBoxType;i<nativeBoxType;++i){ret.y += extentFuncArray[i](node, 'top');ret.x += extentFuncArray[i](node, 'left');}}else if(nativeBoxType < targetBoxType){for(var i=targetBoxType;i>nativeBoxType;--i){ret.y -= extentFuncArray[i-1](node, 'top');ret.x -= extentFuncArray[i-1](node, 'left');}}
+ret.top = ret.y;ret.left = ret.x;return ret;}
+dojo.html.isPositionAbsolute = function(node){return (dojo.html.getComputedStyle(node, 'position') == 'absolute');}
+dojo.html._getComponentPixelValues = function(node, componentPrefix,getPixels, autoIsZero){var sides = ["top", "bottom", "left", "right"];var obj = {};for (var i in sides){side = sides[i];obj[side] = getPixels(node, componentPrefix+side, autoIsZero);}
+obj.width = obj.left + obj.right;obj.height = obj.top + obj.bottom;return obj;}
+dojo.html.getMargin = function(node){return dojo.html._getComponentPixelValues(node, "margin-", dojo.html.getPixelValue, dojo.html.isPositionAbsolute(node));}
+dojo.html.getBorder = function(node){return dojo.html._getComponentPixelValues(node, "", dojo.html.getBorderExtent);}
+dojo.html.getBorderExtent = function(node, side){return (dojo.html.getStyle(node, 'border-' + side + '-style') == 'none' ? 0 : dojo.html.getPixelValue(node, 'border-' + side + '-width'));}
+dojo.html.getMarginExtent = function(node, side){return dojo.html.getPixelValue(node, "margin-" + side, dojo.html.isPositionAbsolute(node));}
+dojo.html.getPaddingExtent = function(node, side){return dojo.html.getPixelValue(node, "padding-" + side, true);}
+dojo.html.getPadding = function(node){return dojo.html._getComponentPixelValues(node, "padding-", dojo.html.getPixelValue, true);}
+dojo.html.getPadBorder = function(node){var pad = dojo.html.getPadding(node);var border = dojo.html.getBorder(node);return { width: pad.width + border.width, height: pad.height + border.height };}
+dojo.html.getBoxSizing = function(node){var h = dojo.render.html;var bs = dojo.html.boxSizing;if(((h.ie)||(h.opera)) && node.nodeName!="IMG"){var cm = document["compatMode"];if((cm == "BackCompat")||(cm == "QuirksMode")){return bs.BORDER_BOX;}else{return bs.CONTENT_BOX;}}else{if(arguments.length == 0){ node = document.documentElement; }
+var sizing = dojo.html.getStyle(node, "-moz-box-sizing");if(!sizing){ sizing = dojo.html.getStyle(node, "box-sizing"); }
+return (sizing ? sizing : bs.CONTENT_BOX);}}
+dojo.html.isBorderBox = function(node){return (dojo.html.getBoxSizing(node) == dojo.html.boxSizing.BORDER_BOX);}
+dojo.html.getBorderBox = function(node){node = dojo.byId(node);return { width: node.offsetWidth, height: node.offsetHeight };}
+dojo.html.getPaddingBox = function(node){var box = dojo.html.getBorderBox(node);var border = dojo.html.getBorder(node);return {width: box.width - border.width,height:box.height - border.height
+};}
+dojo.html.getContentBox = function(node){node = dojo.byId(node);var padborder = dojo.html.getPadBorder(node);return {width: node.offsetWidth - padborder.width,height: node.offsetHeight - padborder.height
+};}
+dojo.html.setContentBox = function(node, args){node = dojo.byId(node);var width = 0; var height = 0;var isbb = dojo.html.isBorderBox(node);var padborder = (isbb ? dojo.html.getPadBorder(node) : { width: 0, height: 0});var ret = {};if(typeof args.width != "undefined"){width = args.width + padborder.width;ret.width = dojo.html.setPositivePixelValue(node, "width", width);}
+if(typeof args.height != "undefined"){height = args.height + padborder.height;ret.height = dojo.html.setPositivePixelValue(node, "height", height);}
+return ret;}
+dojo.html.getMarginBox = function(node){var borderbox = dojo.html.getBorderBox(node);var margin = dojo.html.getMargin(node);return { width: borderbox.width + margin.width, height: borderbox.height + margin.height };}
+dojo.html.setMarginBox = function(node, args){node = dojo.byId(node);var width = 0; var height = 0;var isbb = dojo.html.isBorderBox(node);var padborder = (!isbb ? dojo.html.getPadBorder(node) : { width: 0, height: 0 });var margin = dojo.html.getMargin(node);var ret = {};if(typeof args.width != "undefined"){width = args.width - padborder.width;width -= margin.width;ret.width = dojo.html.setPositivePixelValue(node, "width", width);}
+if(typeof args.height != "undefined"){height = args.height - padborder.height;height -= margin.height;ret.height = dojo.html.setPositivePixelValue(node, "height", height);}
+return ret;}
+dojo.html.getElementBox = function(node, type){var bs = dojo.html.boxSizing;switch(type){case bs.MARGIN_BOX:
+return dojo.html.getMarginBox(node);case bs.BORDER_BOX:
+return dojo.html.getBorderBox(node);case bs.PADDING_BOX:
+return dojo.html.getPaddingBox(node);case bs.CONTENT_BOX:
+default:
+return dojo.html.getContentBox(node);}}
+dojo.html.toCoordinateObject = dojo.html.toCoordinateArray = function(coords, includeScroll, boxtype) {if(!coords.nodeType && !(coords instanceof String || typeof coords == "string") &&
+('width' in coords || 'height' in coords || 'left' in coords ||
+'x' in coords || 'top' in coords || 'y' in coords)){var ret = {left: coords.left||coords.x||0,top: coords.top||coords.y||0,width: coords.width||0,height: coords.height||0
+};}else{var node = dojo.byId(coords);var pos = dojo.html.abs(node, includeScroll, boxtype);var marginbox = dojo.html.getMarginBox(node);var ret = {left: pos.left,top: pos.top,width: marginbox.width,height: marginbox.height
+};}
+ret.x = ret.left;ret.y = ret.top;return ret;}
+dojo.html.setMarginBoxWidth = dojo.html.setOuterWidth = function(node, width){return dojo.html._callDeprecated("setMarginBoxWidth", "setMarginBox", arguments, "width");}
+dojo.html.setMarginBoxHeight = dojo.html.setOuterHeight = function(){return dojo.html._callDeprecated("setMarginBoxHeight", "setMarginBox", arguments, "height");}
+dojo.html.getMarginBoxWidth = dojo.html.getOuterWidth = function(){return dojo.html._callDeprecated("getMarginBoxWidth", "getMarginBox", arguments, null, "width");}
+dojo.html.getMarginBoxHeight = dojo.html.getOuterHeight = function(){return dojo.html._callDeprecated("getMarginBoxHeight", "getMarginBox", arguments, null, "height");}
+dojo.html.getTotalOffset = function(node, type, includeScroll){return dojo.html._callDeprecated("getTotalOffset", "getAbsolutePosition", arguments, null, type);}
+dojo.html.getAbsoluteX = function(node, includeScroll){return dojo.html._callDeprecated("getAbsoluteX", "getAbsolutePosition", arguments, null, "x");}
+dojo.html.getAbsoluteY = function(node, includeScroll){return dojo.html._callDeprecated("getAbsoluteY", "getAbsolutePosition", arguments, null, "y");}
+dojo.html.totalOffsetLeft = function(node, includeScroll){return dojo.html._callDeprecated("totalOffsetLeft", "getAbsolutePosition", arguments, null, "left");}
+dojo.html.totalOffsetTop = function(node, includeScroll){return dojo.html._callDeprecated("totalOffsetTop", "getAbsolutePosition", arguments, null, "top");}
+dojo.html.getMarginWidth = function(node){return dojo.html._callDeprecated("getMarginWidth", "getMargin", arguments, null, "width");}
+dojo.html.getMarginHeight = function(node){return dojo.html._callDeprecated("getMarginHeight", "getMargin", arguments, null, "height");}
+dojo.html.getBorderWidth = function(node){return dojo.html._callDeprecated("getBorderWidth", "getBorder", arguments, null, "width");}
+dojo.html.getBorderHeight = function(node){return dojo.html._callDeprecated("getBorderHeight", "getBorder", arguments, null, "height");}
+dojo.html.getPaddingWidth = function(node){return dojo.html._callDeprecated("getPaddingWidth", "getPadding", arguments, null, "width");}
+dojo.html.getPaddingHeight = function(node){return dojo.html._callDeprecated("getPaddingHeight", "getPadding", arguments, null, "height");}
+dojo.html.getPadBorderWidth = function(node){return dojo.html._callDeprecated("getPadBorderWidth", "getPadBorder", arguments, null, "width");}
+dojo.html.getPadBorderHeight = function(node){return dojo.html._callDeprecated("getPadBorderHeight", "getPadBorder", arguments, null, "height");}
+dojo.html.getBorderBoxWidth = dojo.html.getInnerWidth = function(){return dojo.html._callDeprecated("getBorderBoxWidth", "getBorderBox", arguments, null, "width");}
+dojo.html.getBorderBoxHeight = dojo.html.getInnerHeight = function(){return dojo.html._callDeprecated("getBorderBoxHeight", "getBorderBox", arguments, null, "height");}
+dojo.html.getContentBoxWidth = dojo.html.getContentWidth = function(){return dojo.html._callDeprecated("getContentBoxWidth", "getContentBox", arguments, null, "width");}
+dojo.html.getContentBoxHeight = dojo.html.getContentHeight = function(){return dojo.html._callDeprecated("getContentBoxHeight", "getContentBox", arguments, null, "height");}
+dojo.html.setContentBoxWidth = dojo.html.setContentWidth = function(node, width){return dojo.html._callDeprecated("setContentBoxWidth", "setContentBox", arguments, "width");}
+dojo.html.setContentBoxHeight = dojo.html.setContentHeight = function(node, height){return dojo.html._callDeprecated("setContentBoxHeight", "setContentBox", arguments, "height");}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/metrics.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/metrics.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/metrics.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/metrics.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,36 @@
+
+dojo.provide("dojo.html.metrics");dojo.require("dojo.html.layout");dojo.html.getScrollbar=function(){var scroll = document.createElement("div");scroll.style.width="100px";scroll.style.height="100px";scroll.style.overflow="scroll";scroll.style.position="absolute";scroll.style.top="-300px";scroll.style.left="0px"
+var test = document.createElement("div");test.style.width="400px";test.style.height="400px";scroll.appendChild(test);dojo.body().appendChild(scroll);var width=scroll.offsetWidth - scroll.clientWidth;dojo.body().removeChild(scroll);scroll.removeChild(test);scroll=test=null;return { width: width };};dojo.html.getFontMeasurements = function(){var heights = {'1em':0, '1ex':0, '100%':0, '12pt':0, '16px':0, 'xx-small':0, 'x-small':0,'small':0, 'medium':0, 'large':0, 'x-large':0, 'xx-large':0
+};if(dojo.render.html.ie){document.documentElement.style.fontSize="100%";}
+var div=document.createElement("div");div.style.position="absolute";div.style.left="-100px";div.style.top="0";div.style.width="30px";div.style.height="1000em";div.style.border="0";div.style.margin="0";div.style.padding="0";div.style.outline="0";div.style.lineHeight="1";div.style.overflow="hidden";dojo.body().appendChild(div);for(var p in heights){div.style.fontSize = p;heights[p] = Math.round(div.offsetHeight * 12/16) * 16/12 / 1000;}
+dojo.body().removeChild(div);div = null;return heights;};dojo.html._fontMeasurements = null;dojo.html.getCachedFontMeasurements = function(recalculate){if(recalculate || !dojo.html._fontMeasurements){dojo.html._fontMeasurements = dojo.html.getFontMeasurements();}
+return dojo.html._fontMeasurements;};dojo.html.onFontResize = function(){ };dojo.html._fontresize = function(){dojo.html.onFontResize();};dojo.html.initOnFontResize = function(){dojo.html.getFontMeasurements();dojo.html._metrics={};dojo.html._metrics.iframeNode = document.createElement('iframe');var s=dojo.html._metrics.iframeNode.style;s.position="absolute";s.width="5em";s.height="10em";s.top="-10000px";if(dojo.render.html.ie){dojo.html._metrics.iframeNode.onreadystatechange = function(){if(dojo.html._metrics.iframeNode.contentWindow.document.readyState == "complete"){dojo.html._metrics.iframeNode.onresize = Function('window.parent.dojo.html._fontresize()');}};} else {dojo.html._metrics.iframeNode.onload = function(){dojo.html._metrics.iframeNode.contentWindow.onresize = Function('window.parent.dojo.html._fontresize()');};}
+dojo.body().appendChild(dojo.html._metrics.iframeNode);};dojo.html.measureFragment = function(node, html, boxType){var clone = node.cloneNode(true);clone.innerHTML = html;node.parentNode.appendChild(clone);var ret = dojo.html.getElementBox(clone, boxType);node.parentNode.removeChild(clone);clone=null;return ret;};dojo.html.getFittedFragment = function(node, html){function cl(node){var element = document.createElement(node.tagName);element.id = node.id + "-clone";element.className = node.className;for (var j = 0; j < node.attributes.length; j++) {if (node.attributes[j].specified) {if (node.attributes[j].nodeName.toLowerCase() != "style" 
+&& node.attributes[j].nodeName.toLowerCase() != "edited" 
+&& node.attributes[j].nodeName.toLowerCase() != "contenteditable"
+&& node.attributes[j].nodeName.toLowerCase() != "id"
+&& node.attributes[j].nodeName.toLowerCase() != "class"
+){element.setAttribute(node.attributes[j].nodeName.toLowerCase(), node.attributes[j].nodeValue);}}
+}
+return element;}
+var height = dojo.html.getFontMeasurements()["16px"];var n=cl(node);n.style.width=dojo.html.getBorderBox(node).width+"px";n.style.height=(height+4)+"px";node.parentNode.appendChild(n);var rem = dojo.html.fitToElement(n, html);var ret = n.innerHTML;n.parentNode.removeChild(n);return ret;};dojo.html.fitToElement = function(node, html){function cl(node){var element = document.createElement(node.tagName);element.id = node.id + "-clone";element.className = node.className;for (var j = 0; j < node.attributes.length; j++) {if (node.attributes[j].specified) {if (node.attributes[j].nodeName.toLowerCase() != "style" 
+&& node.attributes[j].nodeName.toLowerCase() != "edited" 
+&& node.attributes[j].nodeName.toLowerCase() != "contenteditable"
+&& node.attributes[j].nodeName.toLowerCase() != "id"
+&& node.attributes[j].nodeName.toLowerCase() != "class"
+){element.setAttribute(node.attributes[j].nodeName.toLowerCase(), node.attributes[j].nodeValue);}}
+}
+return element;}
+var clone = cl(node);node.parentNode.appendChild(clone);var t=dojo.html.getBorderBox(node);clone.style.width = t.width+"px";var singletons = ["br","img", "hr", "input", "!--"];var chop = ["<BR>","<br>","<br/>","<br />","<p></p>","<P></P>"];var openTags = [];var str = html;var i = 0;var limit = str.length;var add = 0;var doLoop = true;clone.innerHTML = str;while (doLoop) {add = Math.round((limit - i) / 2);if (add <= 1) doLoop = false;i += add;clone.innerHTML = str.substr(0, i);if (clone.offsetHeight > t.height) {limit = i;i -= add;}}
+if (str.substr(0, i) != str) {var lastSpace = str.substr(0, i).lastIndexOf(" ");var lastNewLine = str.substr(0, i).lastIndexOf("\n");var lastGreater = str.substr(0, i).lastIndexOf(">");var lastLess = str.substr(0, i).lastIndexOf("<");if (lastLess <= lastGreater && lastNewLine == i - 1) i = i;else if (lastSpace != -1 && lastSpace > lastGreater && lastGreater > lastLess) i = lastSpace + 1;else if (lastLess > lastGreater) i = lastLess;else if (lastGreater != -1) i = lastGreater + 1;}
+str = str.substr(0, i);var ret = html.substr(str.length);var doPush = true;var tags = str.split("<");tags.shift();for (var j = 0; j < tags.length; j++) {tags[j] = tags[j].split(">")[0];if (tags[j].charAt(tags[j].length - 1) == "/"){ continue; }
+if (tags[j].charAt(0) != "/") {for (var k = 0; k < singletons.length; k++) {if (tags[j].split(" ")[0].toLowerCase() == singletons[k]){doPush = false;}}
+if (doPush){openTags.push(tags[j]);}
+doPush = true;} else {openTags.pop();}}
+for(var j=0; j<chop.length; j++){if(ret.charAt(0) == "\n"){ ret = ret.substr(1); }
+while(ret.indexOf(chop[j]) == 0){ret = ret.substr(chop[j].length);}}
+for(var j=openTags.length-1; j>=0; j--){if(str.lastIndexOf(openTags[j]) == (str.length-openTags[j].length-1)){str = str.substring(0, str.lastIndexOf(openTags[j]));} else {str += "</"+openTags[j]+">";}
+if(ret.length > 0){ret = "<"+openTags[j]+">"+ret;}}
+for(var j=0; j<chop.length; j++){if(ret.charAt(0) == "\n"){ ret = ret.substr(1); }
+while(ret.indexOf(chop[j]) == 0){ret = ret.substr(chop[j].length);}}
+node.innerHTML = str;clone.parentNode.removeChild(clone);clone = null;return ret;};
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/selection.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/selection.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/selection.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/selection.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,33 @@
+
+dojo.require("dojo.html.common");dojo.provide("dojo.html.selection");dojo.require("dojo.dom");dojo.require("dojo.lang.common");dojo.html.selectionType = {NONE : 0,TEXT : 1,CONTROL : 2
+};dojo.html.clearSelection = function(){var _window = dojo.global();var _document = dojo.doc();try{if(_window["getSelection"]){if(dojo.render.html.safari){_window.getSelection().collapse();}else{_window.getSelection().removeAllRanges();}}else if(_document.selection){if(_document.selection.empty){_document.selection.empty();}else if(_document.selection.clear){_document.selection.clear();}}
+return true;}catch(e){dojo.debug(e);return false;}};dojo.html.disableSelection = function(element){element = dojo.byId(element)||dojo.body();var h = dojo.render.html;if(h.mozilla){element.style.MozUserSelect = "none";}else if(h.safari){element.style.KhtmlUserSelect = "none";}else if(h.ie){element.unselectable = "on";}else{return false;}
+return true;};dojo.html.enableSelection = function(element){element = dojo.byId(element)||dojo.body();var h = dojo.render.html;if(h.mozilla){element.style.MozUserSelect = "";}else if(h.safari){element.style.KhtmlUserSelect = "";}else if(h.ie){element.unselectable = "off";}else{return false;}
+return true;};dojo.html.selectInputText = function(element){var _window = dojo.global();var _document = dojo.doc();element = dojo.byId(element);if(_document["selection"] && dojo.body()["createTextRange"]){var range = element.createTextRange();range.moveStart("character", 0);range.moveEnd("character", element.value.length);range.select();}else if(_window["getSelection"]){var selection = _window.getSelection();element.setSelectionRange(0, element.value.length);}
+element.focus();};dojo.lang.mixin(dojo.html.selection, {getType: function() {if(dojo.doc()["selection"]){return dojo.html.selectionType[dojo.doc().selection.type.toUpperCase()];}else{var stype = dojo.html.selectionType.TEXT;var oSel;try {oSel = dojo.global().getSelection();}
+catch (e) {}
+if(oSel && oSel.rangeCount==1){var oRange = oSel.getRangeAt(0);if (oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1
+&& oRange.startContainer.nodeType != dojo.dom.TEXT_NODE) {stype = dojo.html.selectionType.CONTROL;}}
+return stype;}},isCollapsed: function() {var _window = dojo.global();var _document = dojo.doc();if(_document["selection"]){return _document.selection.createRange().text == "";}else if(_window["getSelection"]){var selection = _window.getSelection();if(dojo.lang.isString(selection)){return selection == "";}else{return selection.isCollapsed || selection.toString() == "";}}
+},getSelectedElement: function() {if ( dojo.html.selection.getType() == dojo.html.selectionType.CONTROL ){if(dojo.doc()["selection"]){var range = dojo.doc().selection.createRange();if ( range && range.item ){return dojo.doc().selection.createRange().item(0);}}else{var selection = dojo.global().getSelection();return selection.anchorNode.childNodes[ selection.anchorOffset ];}}
+},getParentElement: function() {if(dojo.html.selection.getType() == dojo.html.selectionType.CONTROL){var p = dojo.html.selection.getSelectedElement();if(p){ return p.parentNode; }}else{if(dojo.doc()["selection"]){return dojo.doc().selection.createRange().parentElement();}else{var selection = dojo.global().getSelection();if(selection){var node = selection.anchorNode;while ( node && node.nodeType != dojo.dom.ELEMENT_NODE ){node = node.parentNode;}
+return node;}}
+}},getSelectedText: function(){if(dojo.doc()["selection"]){if(dojo.html.selection.getType() == dojo.html.selectionType.CONTROL){return null;}
+return dojo.doc().selection.createRange().text;}else{var selection = dojo.global().getSelection();if(selection){return selection.toString();}}
+},getSelectedHtml: function(){if(dojo.doc()["selection"]){if(dojo.html.selection.getType() == dojo.html.selectionType.CONTROL){return null;}
+return dojo.doc().selection.createRange().htmlText;}else{var selection = dojo.global().getSelection();if(selection && selection.rangeCount){var frag = selection.getRangeAt(0).cloneContents();var div = document.createElement("div");div.appendChild(frag);return div.innerHTML;}
+return null;}},hasAncestorElement: function(tagName ){return (dojo.html.selection.getAncestorElement.apply(this, arguments) != null);},getAncestorElement: function(tagName ){var node = dojo.html.selection.getSelectedElement() || dojo.html.selection.getParentElement();return dojo.html.selection.getParentOfType(node, arguments);},getParentOfType: function(node, tags){while(node){if(dojo.html.selection.isTag(node, tags).length>0){return node;}
+node = node.parentNode;}
+return null;},isTag: function(node, tags) {if(node && node.tagName) {for (var i=0; i<tags.length; i++){if (node.tagName.toLowerCase()==String(tags[i]).toLowerCase()){return String(tags[i]).toLowerCase();}}
+}
+return "";},selectElement: function(element) {var _window = dojo.global();var _document = dojo.doc();element = dojo.byId(element);if(_document.selection && dojo.body().createTextRange){try{var range = dojo.body().createControlRange();range.addElement(element);range.select();}catch(e){dojo.html.selection.selectElementChildren(element);}}else if(_window["getSelection"]){var selection = _window.getSelection();if(selection["removeAllRanges"]){var range = _document.createRange() ;range.selectNode(element) ;selection.removeAllRanges() ;selection.addRange(range) ;}}
+},selectElementChildren: function(element){var _window = dojo.global();var _document = dojo.doc();element = dojo.byId(element);if(_document.selection && dojo.body().createTextRange){var range = dojo.body().createTextRange();range.moveToElementText(element);range.select();}else if(_window["getSelection"]){var selection = _window.getSelection();if(selection["setBaseAndExtent"]){selection.setBaseAndExtent(element, 0, element, element.innerText.length - 1);} else if(selection["selectAllChildren"]){selection.selectAllChildren(element);}}
+},getBookmark: function(){var bookmark;var _document = dojo.doc();if(_document["selection"]){var range = _document.selection.createRange();bookmark = range.getBookmark();}else{var selection;try {selection = dojo.global().getSelection();}
+catch (e) {}
+if(selection){var range = selection.getRangeAt(0);bookmark = range.cloneRange();}else{dojo.debug("No idea how to store the current selection for this browser!");}}
+return bookmark;},moveToBookmark: function(bookmark){var _document = dojo.doc();if(_document["selection"]){var range = _document.selection.createRange();range.moveToBookmark(bookmark);range.select();}else{var selection;try {selection = dojo.global().getSelection();}
+catch (e) {}
+if(selection && selection['removeAllRanges']){selection.removeAllRanges() ;selection.addRange(bookmark) ;}else{dojo.debug("No idea how to restore selection for this browser!");}}
+},collapse: function(beginning) {if(dojo.global()['getSelection']){var selection = dojo.global().getSelection();if(selection.removeAllRanges){if(beginning){selection.collapseToStart();}else{selection.collapseToEnd();}}else{dojo.global().getSelection().collapse(beginning);}}else if(dojo.doc().selection){var range = dojo.doc().selection.createRange();range.collapse(beginning);range.select();}},remove: function() {if(dojo.doc().selection) {var selection = dojo.doc().selection;if ( selection.type.toUpperCase() != "NONE" ){selection.clear();}
+return selection;}else{var selection = dojo.global().getSelection();selection.deleteFromDocument();return selection;}}
+});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/style.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/style.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/style.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/style.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,98 @@
+
+dojo.provide("dojo.html.style");dojo.require("dojo.html.common");dojo.require("dojo.uri.Uri");dojo.html.getClass = function(node){node = dojo.byId(node);if(!node){ return ""; }
+var cs = "";if(node.className){cs = node.className;}else if(dojo.html.hasAttribute(node, "class")){cs = dojo.html.getAttribute(node, "class");}
+return cs.replace(/^\s+|\s+$/g, "");}
+dojo.html.getClasses = function(node) {var c = dojo.html.getClass(node);return (c == "") ? [] : c.split(/\s+/g);}
+dojo.html.hasClass = function(node, classname){return (new RegExp('(^|\\s+)'+classname+'(\\s+|$)')).test(dojo.html.getClass(node))
+}
+dojo.html.prependClass = function(node, classStr){classStr += " " + dojo.html.getClass(node);return dojo.html.setClass(node, classStr);}
+dojo.html.addClass = function(node, classStr){if (dojo.html.hasClass(node, classStr)) {return false;}
+classStr = (dojo.html.getClass(node) + " " + classStr).replace(/^\s+|\s+$/g,"");return dojo.html.setClass(node, classStr);}
+dojo.html.setClass = function(node, classStr){node = dojo.byId(node);var cs = new String(classStr);try{if(typeof node.className == "string"){node.className = cs;}else if(node.setAttribute){node.setAttribute("class", classStr);node.className = cs;}else{return false;}}catch(e){dojo.debug("dojo.html.setClass() failed", e);}
+return true;}
+dojo.html.removeClass = function(node, classStr, allowPartialMatches){try{if (!allowPartialMatches) {var newcs = dojo.html.getClass(node).replace(new RegExp('(^|\\s+)'+classStr+'(\\s+|$)'), "$1$2");} else {var newcs = dojo.html.getClass(node).replace(classStr,'');}
+dojo.html.setClass(node, newcs);}catch(e){dojo.debug("dojo.html.removeClass() failed", e);}
+return true;}
+dojo.html.replaceClass = function(node, newClass, oldClass) {dojo.html.removeClass(node, oldClass);dojo.html.addClass(node, newClass);}
+dojo.html.classMatchType = {ContainsAll : 0,ContainsAny : 1,IsOnly : 2
+}
+dojo.html.getElementsByClass = function(
+classStr,parent,nodeType,classMatchType,useNonXpath
+){useNonXpath = false;var _document = dojo.doc();parent = dojo.byId(parent) || _document;var classes = classStr.split(/\s+/g);var nodes = [];if( classMatchType != 1 && classMatchType != 2 ) classMatchType = 0;var reClass = new RegExp("(\\s|^)((" + classes.join(")|(") + "))(\\s|$)");var srtLength = classes.join(" ").length;var candidateNodes = [];if(!useNonXpath && _document.evaluate) {var xpath = ".//" + (nodeType || "*") + "[contains(";if(classMatchType != dojo.html.classMatchType.ContainsAny){xpath += "concat(' ',@class,' '), ' " +
+classes.join(" ') and contains(concat(' ',@class,' '), ' ") +
+" ')";if (classMatchType == 2) {xpath += " and string-length(@class)="+srtLength+"]";}else{xpath += "]";}}else{xpath += "concat(' ',@class,' '), ' " +
+classes.join(" ') or contains(concat(' ',@class,' '), ' ") +
+" ')]";}
+var xpathResult = _document.evaluate(xpath, parent, null, XPathResult.ANY_TYPE, null);var result = xpathResult.iterateNext();while(result){try{candidateNodes.push(result);result = xpathResult.iterateNext();}catch(e){ break; }}
+return candidateNodes;}else{if(!nodeType){nodeType = "*";}
+candidateNodes = parent.getElementsByTagName(nodeType);var node, i = 0;outer:
+while(node = candidateNodes[i++]){var nodeClasses = dojo.html.getClasses(node);if(nodeClasses.length == 0){ continue outer; }
+var matches = 0;for(var j = 0; j < nodeClasses.length; j++){if(reClass.test(nodeClasses[j])){if(classMatchType == dojo.html.classMatchType.ContainsAny){nodes.push(node);continue outer;}else{matches++;}}else{if(classMatchType == dojo.html.classMatchType.IsOnly){continue outer;}}
+}
+if(matches == classes.length){if((classMatchType == dojo.html.classMatchType.IsOnly)&&
+(matches == nodeClasses.length)){nodes.push(node);}else if(classMatchType == dojo.html.classMatchType.ContainsAll){nodes.push(node);}}
+}
+return nodes;}}
+dojo.html.getElementsByClassName = dojo.html.getElementsByClass;dojo.html.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.html.toSelectorCase = function(selector){return selector.replace(/([A-Z])/g, "-$1" ).toLowerCase();}
+dojo.html.getComputedStyle = function(node, cssSelector, inValue){node = dojo.byId(node);var cssSelector = dojo.html.toSelectorCase(cssSelector);var property = dojo.html.toCamelCase(cssSelector);if(!node || !node.style){return inValue;} else if (document.defaultView && dojo.html.isDescendantOf(node, node.ownerDocument)){try{var cs = document.defaultView.getComputedStyle(node, "");if(cs){return cs.getPropertyValue(cssSelector);}}catch(e){if(node.style.getPropertyValue){return node.style.getPropertyValue(cssSelector);} else {return inValue;}}
+} else if(node.currentStyle){return node.currentStyle[property];}
+if(node.style.getPropertyValue){return node.style.getPropertyValue(cssSelector);}else{return inValue;}}
+dojo.html.getStyleProperty = function(node, cssSelector){node = dojo.byId(node);return (node && node.style ? node.style[dojo.html.toCamelCase(cssSelector)] : undefined);}
+dojo.html.getStyle = function(node, cssSelector){var value = dojo.html.getStyleProperty(node, cssSelector);return (value ? value : dojo.html.getComputedStyle(node, cssSelector));}
+dojo.html.setStyle = function(node, cssSelector, value){node = dojo.byId(node);if(node && node.style){var camelCased = dojo.html.toCamelCase(cssSelector);node.style[camelCased] = value;}}
+dojo.html.setStyleText = function (target, text) {try {target.style.cssText = text;} catch (e) {target.setAttribute("style", text);}}
+dojo.html.copyStyle = function(target, source){if(!source.style.cssText){target.setAttribute("style", source.getAttribute("style"));}else{target.style.cssText = source.style.cssText;}
+dojo.html.addClass(target, dojo.html.getClass(source));}
+dojo.html.getUnitValue = function(node, cssSelector, autoIsZero){var s = dojo.html.getComputedStyle(node, cssSelector);if((!s)||((s == 'auto')&&(autoIsZero))){return { value: 0, units: 'px' };}
+var match = s.match(/(\-?[\d.]+)([a-z%]*)/i);if (!match){return dojo.html.getUnitValue.bad;}
+return { value: Number(match[1]), units: match[2].toLowerCase() };}
+dojo.html.getUnitValue.bad = { value: NaN, units: '' };dojo.html.getPixelValue = function(node, cssSelector, autoIsZero){var result = dojo.html.getUnitValue(node, cssSelector, autoIsZero);if(isNaN(result.value)){return 0;}
+if((result.value)&&(result.units != 'px')){return NaN;}
+return result.value;}
+dojo.html.setPositivePixelValue = function(node, selector, value){if(isNaN(value)){return false;}
+node.style[selector] = Math.max(0, value) + 'px';return true;}
+dojo.html.styleSheet = null;dojo.html.insertCssRule = function(selector, declaration, index) {if (!dojo.html.styleSheet) {if (document.createStyleSheet) {dojo.html.styleSheet = document.createStyleSheet();} else if (document.styleSheets[0]) {dojo.html.styleSheet = document.styleSheets[0];} else {return null;}}
+if (arguments.length < 3) {if (dojo.html.styleSheet.cssRules) {index = dojo.html.styleSheet.cssRules.length;} else if (dojo.html.styleSheet.rules) {index = dojo.html.styleSheet.rules.length;} else {return null;}}
+if (dojo.html.styleSheet.insertRule) {var rule = selector + " { " + declaration + " }";return dojo.html.styleSheet.insertRule(rule, index);} else if (dojo.html.styleSheet.addRule) {return dojo.html.styleSheet.addRule(selector, declaration, index);} else {return null;}}
+dojo.html.removeCssRule = function(index){if(!dojo.html.styleSheet){dojo.debug("no stylesheet defined for removing rules");return false;}
+if(dojo.render.html.ie){if(!index){index = dojo.html.styleSheet.rules.length;dojo.html.styleSheet.removeRule(index);}}else if(document.styleSheets[0]){if(!index){index = dojo.html.styleSheet.cssRules.length;}
+dojo.html.styleSheet.deleteRule(index);}
+return true;}
+dojo.html._insertedCssFiles = [];dojo.html.insertCssFile = function(URI, doc, checkDuplicates, fail_ok){if(!URI){ return; }
+if(!doc){ doc = document; }
+var cssStr = dojo.hostenv.getText(URI, false, fail_ok);if(cssStr===null){ return; }
+cssStr = dojo.html.fixPathsInCssText(cssStr, URI);if(checkDuplicates){var idx = -1, node, ent = dojo.html._insertedCssFiles;for(var i = 0; i < ent.length; i++){if((ent[i].doc == doc) && (ent[i].cssText == cssStr)){idx = i; node = ent[i].nodeRef;break;}}
+if(node){var styles = doc.getElementsByTagName("style");for(var i = 0; i < styles.length; i++){if(styles[i] == node){return;}}
+dojo.html._insertedCssFiles.shift(idx, 1);}}
+var style = dojo.html.insertCssText(cssStr, doc);dojo.html._insertedCssFiles.push({'doc': doc, 'cssText': cssStr, 'nodeRef': style});if(style && djConfig.isDebug){style.setAttribute("dbgHref", URI);}
+return style;}
+dojo.html.insertCssText = function(cssStr, doc, URI){if(!cssStr){return;}
+if(!doc){ doc = document; }
+if(URI){cssStr = dojo.html.fixPathsInCssText(cssStr, URI);}
+var style = doc.createElement("style");style.setAttribute("type", "text/css");var head = doc.getElementsByTagName("head")[0];if(!head){dojo.debug("No head tag in document, aborting styles");return;}else{head.appendChild(style);}
+if(style.styleSheet){var setFunc = function(){try{style.styleSheet.cssText = cssStr;}catch(e){ dojo.debug(e); }};if(style.styleSheet.disabled){setTimeout(setFunc, 10);}else{setFunc();}}else{var cssText = doc.createTextNode(cssStr);style.appendChild(cssText);}
+return style;}
+dojo.html.fixPathsInCssText = function(cssStr, URI){if(!cssStr || !URI){ return; }
+var match, str = "", url = "", urlChrs = "[\\t\\s\\w\\(\\)\\/\\.\\\\'\"-:#=&?~]+";var regex = new RegExp('url\\(\\s*('+urlChrs+')\\s*\\)');var regexProtocol = /(file|https?|ftps?):\/\//;regexTrim = new RegExp("^[\\s]*(['\"]?)("+urlChrs+")\\1[\\s]*?$");if(dojo.render.html.ie55 || dojo.render.html.ie60){var regexIe = new RegExp("AlphaImageLoader\\((.*)src\=['\"]("+urlChrs+")['\"]");while(match = regexIe.exec(cssStr)){url = match[2].replace(regexTrim, "$2");if(!regexProtocol.exec(url)){url = (new dojo.uri.Uri(URI, url).toString());}
+str += cssStr.substring(0, match.index) + "AlphaImageLoader(" + match[1] + "src='" + url + "'";cssStr = cssStr.substr(match.index + match[0].length);}
+cssStr = str + cssStr;str = "";}
+while(match = regex.exec(cssStr)){url = match[1].replace(regexTrim, "$2");if(!regexProtocol.exec(url)){url = (new dojo.uri.Uri(URI, url).toString());}
+str += cssStr.substring(0, match.index) + "url(" + url + ")";cssStr = cssStr.substr(match.index + match[0].length);}
+return str + cssStr;}
+dojo.html.setActiveStyleSheet = function(title){var i = 0, a, els = dojo.doc().getElementsByTagName("link");while (a = els[i++]) {if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")){a.disabled = true;if (a.getAttribute("title") == title) { a.disabled = false; }}
+}}
+dojo.html.getActiveStyleSheet = function(){var i = 0, a, els = dojo.doc().getElementsByTagName("link");while (a = els[i++]) {if (a.getAttribute("rel").indexOf("style") != -1
+&& a.getAttribute("title")
+&& !a.disabled
+){return a.getAttribute("title");}}
+return null;}
+dojo.html.getPreferredStyleSheet = function(){var i = 0, a, els = dojo.doc().getElementsByTagName("link");while (a = els[i++]) {if(a.getAttribute("rel").indexOf("style") != -1
+&& a.getAttribute("rel").indexOf("alt") == -1
+&& a.getAttribute("title")
+){return a.getAttribute("title");}}
+return null;}
+dojo.html.applyBrowserClass = function(node){var drh=dojo.render.html;var classes = {dj_ie: drh.ie,dj_ie55: drh.ie55,dj_ie6: drh.ie60,dj_ie7: drh.ie70,dj_iequirks: drh.ie && drh.quirks,dj_opera: drh.opera,dj_opera8: drh.opera && (Math.floor(dojo.render.version)==8),dj_opera9: drh.opera && (Math.floor(dojo.render.version)==9),dj_khtml: drh.khtml,dj_safari: drh.safari,dj_gecko: drh.mozilla
+};for(var p in classes){if(classes[p]){dojo.html.addClass(node, p);}}
+};
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/units.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/units.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/units.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/units.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,36 @@
+
+dojo.provide("dojo.html.units");dojo.require("dojo.html.style");dojo.html.units.constants = {cm_in_pt: 2.54 / 72,mm_in_pt: 25.4 / 72
+};dojo.html._getLength = function(len, passAuto){if(typeof len != "string"){ return len; }
+if(len.length == 0){ return 0; }
+if(len == "auto"){ return passAuto ? len : 0; }
+var val  = parseFloat(len);var unit = len.match(/%|[a-zA-Z]{2}\s*$/);if(unit){switch(unit[0]){case "px": return val;case "pt": return val * this.px_in_pt;case "in": return val * 72 * this.px_in_pt;case "pc": return val * 12 * this.px_in_pt;case "mm": return val / dojo.html.units.constants.mm_in_pt * this.px_in_pt;case "cm": return val / dojo.html.units.constants.cm_in_pt * this.px_in_pt;case "em": return val * this["1em"];case "ex": return val * this["1ex"];case "%":  return val / 100 * this["100%"];}}
+return val;};dojo.html._measureSettings = function(node){var s = node.style;s.position="absolute";s.left="-100px";s.top="0";s.width="30px";s.height="1000em";s.border="0";s.margin="0";s.padding="0";s.outline="0";s.lineHeight="1";s.overflow="hidden";};dojo.html._measure = function(parent, sibling, callback){var heights = {'1em':0, '1ex':0, '100%':0, '12pt':0, '16px':0, 'xx-small':0, 'x-small':0,'small':0, 'medium':0, 'large':0, 'x-large':0, 'xx-large':0
+};if(dojo.render.html.ie){document.documentElement.style.fontSize="100%";}
+var node = document.createElement("div");if(callback){ callback(node); }
+dojo.html._measureSettings(node);if(sibling){parent.insertBefore(node, sibling);}else{parent.appendChild(node);}
+var s = node.style;for(var p in heights){s.fontSize = p;heights[p] = Math.round(node.offsetHeight * 12/16) * 16/12 / 1000;}
+parent.removeChild(node);node = null;heights.px_in_pt = heights["12pt"] / 12;heights.getLength = dojo.html._getLength;return heights;};dojo.html.measure = function(){var parent = null, base = 0, args = [];if(arguments.length > 0 && typeof arguments[0] != "string"){parent = arguments[0];base = 1;}
+if(!parent){parent = dojo.body();}
+for(var i = base; i < arguments.length; ++i){args.push(arguments[i]);}
+if(args.length == 0){returnnull;}
+var f = function(node){var s = node.style;s.fontFamily = args[0];if(args.length > 1){ s.fontWeight  = args[1]; }
+if(args.length > 2){ s.fontStyle   = args[2]; }
+if(args.length > 3){ s.fontVariant = args[3]; }};if(args.length == 2){switch(args[1]){case "class":
+f = function(div){ div.className = args[0]; };break;case "style":
+f = function(div){ div.style.cssText = args[0]; };break;}}
+var node = document.createElement("div");f(node);dojo.html._measureSettings(node);parent.appendChild(node);var heights = dojo.html._measure(node);parent.removeChild(node);node = null;return heights;};dojo.html._measureNode = function(node){node = dojo.byId(node);return dojo.html._measure(node.parentNode, node, function(div){div.style.cssText = node.style.cssText;div.className     = node.className;});};dojo.html._defaultFontMeasurements = null;dojo.html.measureDefaults = function(recalc){if(recalc || !dojo.html._defaultFontMeasurements){dojo.html._defaultFontMeasurements = dojo.html._measure(dojo.body());}
+return dojo.html._defaultFontMeasurements;};dojo.html._getDefaultLength = function(len, passAuto){if(typeof len != "string"){ return len; }
+if(len.length == 0){ return 0; }
+if(len == "auto"){ return passAuto ? len : 0; }
+var val = parseFloat(len);if(len.length > 2){switch(len.slice(-2)){case "px": return val;case "pt": return val * this.px_in_pt;case "in": return val * 72 * this.px_in_pt;case "pc": return val * 12 * this.px_in_pt;case "mm": return val / dojo.html.units.constants.mm_in_pt * this.px_in_pt;case "cm": return val / dojo.html.units.constants.cm_in_pt * this.px_in_pt;case "em":
+case "ex":
+case "%":
+var t = dojo.html._measureNode(this.node);var empty = {};for(var i in t){if(!(i in empty) && typeof t[i] == "number"){this[i] = t[i];}}
+this.getLength = dojo.html._getLength;return this.getLength(len, passAuto);}}
+return val;};dojo.html.measureNode = function(node){var t = dojo.html.measureDefaults();t.node = dojo.byId(node);t.getLength = dojo.html._getDefaultLength;return t;};dojo.html.getStyleValue = function(node, cssSelector){var f;node = dojo.byId(node);if(!node || !node.style){return;}
+if (document.defaultView && dojo.html.isDescendantOf(node, node.ownerDocument)){if(node.style.getPropertyValue){f = dojo.html._getStyleValueW3;}else{f = dojo.html._getStyleValueGeckoKhtml;}} else if(node.currentStyle){f = dojo.html._getStyleValueIe;}
+dojo.html.getStyleValue = function(node, cssSelector){return dojo.html._getStyleValueWrapper(node, cssSelector, f);}
+return dojo.html.getStyleValue(node, cssSelector);};dojo.html._getStyleValueWrapper = function(node, cssSelector, f){node = dojo.byId(node);if(!node || !node.style){return;}
+var cssSelector = dojo.html.toSelectorCase(cssSelector);return f(node, cssSelector);};dojo.html._getStyleValueW3 = function(node, cssSelector){try{var cs = document.defaultView.getComputedStyle(node, "");if(cs){return cs.getPropertyValue(cssSelector);}}catch(e){}
+return node.style.getPropertyValue(cssSelector);};dojo.html._getStyleValueGeckoKhtml = function(node, cssSelector){try{var cs = document.defaultView.getComputedStyle(node, "");if(cs){return cs.getPropertyValue(cssSelector);}}catch(e){}
+return;};dojo.html._getStyleValueIe = function(node, cssSelector){var property = dojo.html.toCamelCase(cssSelector);return node.currentStyle[property];};
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/util.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/util.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/util.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/html/util.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,73 @@
+
+dojo.provide("dojo.html.util");dojo.require("dojo.html.layout");dojo.html.getElementWindow = function(element){return dojo.html.getDocumentWindow( element.ownerDocument );}
+dojo.html.getDocumentWindow = function(doc){if(dojo.render.html.safari && !doc._parentWindow){var fix=function(win){win.document._parentWindow=win;for(var i=0; i<win.frames.length; i++){fix(win.frames[i]);}}
+fix(window.top);}
+if(dojo.render.html.ie && window !== document.parentWindow && !doc._parentWindow){doc.parentWindow.execScript("document._parentWindow = window;", "Javascript");var win = doc._parentWindow;doc._parentWindow = null;return win;}
+return doc._parentWindow || doc.parentWindow || doc.defaultView;}
+dojo.html.getAbsolutePositionExt = function(node, includeScroll, boxType, topwin){var curwin = dojo.html.getElementWindow(node);var ret = dojo.withGlobal(curwin, 'getAbsolutePosition', dojo.html, arguments);var win = dojo.html.getElementWindow(node);if(topwin != win && win.frameElement){var ext = dojo.html.getAbsolutePositionExt(win.frameElement,includeScroll,boxType,topwin);ret.x += ext.x;ret.y += ext.y;}
+ret.top = ret.y;ret.left = ret.x;return ret;}
+dojo.html.gravity = function(node, e){node = dojo.byId(node);var mouse = dojo.html.getCursorPosition(e);with (dojo.html) {var absolute = getAbsolutePosition(node, true);var bb = getBorderBox(node);var nodecenterx = absolute.x + (bb.width / 2);var nodecentery = absolute.y + (bb.height / 2);}
+with (dojo.html.gravity) {return ((mouse.x < nodecenterx ? WEST : EAST) | (mouse.y < nodecentery ? NORTH : SOUTH));}}
+dojo.html.gravity.NORTH = 1;dojo.html.gravity.SOUTH = 1 << 1;dojo.html.gravity.EAST = 1 << 2;dojo.html.gravity.WEST = 1 << 3;dojo.html.overElement = function(element, e){element = dojo.byId(element);var mouse = dojo.html.getCursorPosition(e);var bb = dojo.html.getBorderBox(element);var absolute = dojo.html.getAbsolutePosition(element, true, dojo.html.boxSizing.BORDER_BOX);var top = absolute.y;var bottom = top + bb.height;var left = absolute.x;var right = left + bb.width;return (mouse.x >= left
+&& mouse.x <= right
+&& mouse.y >= top
+&& mouse.y <= bottom
+);}
+dojo.html.renderedTextContent = function(node){node = dojo.byId(node);var result = "";if (node == null) { return result; }
+for (var i = 0; i < node.childNodes.length; i++) {switch (node.childNodes[i].nodeType) {case 1:
+case 5:
+var display = "unknown";try {display = dojo.html.getStyle(node.childNodes[i], "display");} catch(E) {}
+switch (display) {case "block": case "list-item": case "run-in":
+case "table": case "table-row-group": case "table-header-group":
+case "table-footer-group": case "table-row": case "table-column-group":
+case "table-column": case "table-cell": case "table-caption":
+result += "\n";result += dojo.html.renderedTextContent(node.childNodes[i]);result += "\n";break;case "none": break;default:
+if(node.childNodes[i].tagName && node.childNodes[i].tagName.toLowerCase() == "br") {result += "\n";} else {result += dojo.html.renderedTextContent(node.childNodes[i]);}
+break;}
+break;case 3:
+case 2:
+case 4:
+var text = node.childNodes[i].nodeValue;var textTransform = "unknown";try {textTransform = dojo.html.getStyle(node, "text-transform");} catch(E) {}
+switch (textTransform){case "capitalize":
+var words = text.split(' ');for(var i=0; i<words.length; i++){words[i] = words[i].charAt(0).toUpperCase() + words[i].substring(1);}
+text = words.join(" ");break;case "uppercase": text = text.toUpperCase(); break;case "lowercase": text = text.toLowerCase(); break;default: break;}
+switch (textTransform){case "nowrap": break;case "pre-wrap": break;case "pre-line": break;case "pre": break;default:
+text = text.replace(/\s+/, " ");if (/\s$/.test(result)) { text.replace(/^\s/, ""); }
+break;}
+result += text;break;default:
+break;}}
+return result;}
+dojo.html.createNodesFromText = function(txt, trim){if(trim) { txt = txt.replace(/^\s+|\s+$/g, ""); }
+var tn = dojo.doc().createElement("div");tn.style.visibility= "hidden";dojo.body().appendChild(tn);var tableType = "none";if((/^<t[dh][\s\r\n>]/i).test(txt.replace(/^\s+/))) {txt = "<table><tbody><tr>" + txt + "</tr></tbody></table>";tableType = "cell";} else if((/^<tr[\s\r\n>]/i).test(txt.replace(/^\s+/))) {txt = "<table><tbody>" + txt + "</tbody></table>";tableType = "row";} else if((/^<(thead|tbody|tfoot)[\s\r\n>]/i).test(txt.replace(/^\s+/))) {txt = "<table>" + txt + "</table>";tableType = "section";}
+tn.innerHTML = txt;if(tn["normalize"]){tn.normalize();}
+var parent = null;switch(tableType) {case "cell":
+parent = tn.getElementsByTagName("tr")[0];break;case "row":
+parent = tn.getElementsByTagName("tbody")[0];break;case "section":
+parent = tn.getElementsByTagName("table")[0];break;default:
+parent = tn;break;}
+var nodes = [];for(var x=0; x<parent.childNodes.length; x++){nodes.push(parent.childNodes[x].cloneNode(true));}
+tn.style.display = "none";dojo.html.destroyNode(tn);return nodes;}
+dojo.html.placeOnScreen = function(
+node,desiredX,desiredY,padding,hasScroll,corners,tryOnly
+){if(desiredX instanceof Array || typeof desiredX == "array") {tryOnly = corners;corners = hasScroll;hasScroll = padding;padding = desiredY;desiredY = desiredX[1];desiredX = desiredX[0];}
+if(corners instanceof String || typeof corners == "string"){corners = corners.split(",");}
+if(!isNaN(padding)) {padding = [Number(padding), Number(padding)];} else if(!(padding instanceof Array || typeof padding == "array")) {padding = [0, 0];}
+var scroll = dojo.html.getScroll().offset;var view = dojo.html.getViewport();node = dojo.byId(node);var oldDisplay = node.style.display;node.style.display="";var bb = dojo.html.getBorderBox(node);var w = bb.width;var h = bb.height;node.style.display=oldDisplay;if(!(corners instanceof Array || typeof corners == "array")){corners = ['TL'];}
+var bestx, besty, bestDistance = Infinity, bestCorner;for(var cidex=0; cidex<corners.length; ++cidex){var corner = corners[cidex];var match = true;var tryX = desiredX - (corner.charAt(1)=='L' ? 0 : w) + padding[0]*(corner.charAt(1)=='L' ? 1 : -1);var tryY = desiredY - (corner.charAt(0)=='T' ? 0 : h) + padding[1]*(corner.charAt(0)=='T' ? 1 : -1);if(hasScroll) {tryX -= scroll.x;tryY -= scroll.y;}
+if(tryX < 0){tryX = 0;match = false;}
+if(tryY < 0){tryY = 0;match = false;}
+var x = tryX + w;if(x > view.width) {x = view.width - w;match = false;} else {x = tryX;}
+x = Math.max(padding[0], x) + scroll.x;var y = tryY + h;if(y > view.height) {y = view.height - h;match = false;} else {y = tryY;}
+y = Math.max(padding[1], y) + scroll.y;if(match){bestx = x;besty = y;bestDistance = 0;bestCorner = corner;break;}else{var dist = Math.pow(x-tryX-scroll.x,2)+Math.pow(y-tryY-scroll.y,2);if(bestDistance > dist){bestDistance = dist;bestx = x;besty = y;bestCorner = corner;}}
+}
+if(!tryOnly){node.style.left = bestx + "px";node.style.top = besty + "px";}
+return { left: bestx, top: besty, x: bestx, y: besty, dist: bestDistance, corner:  bestCorner};}
+dojo.html.placeOnScreenAroundElement = function(
+node,aroundNode,padding,aroundType,aroundCorners,tryOnly
+){var best, bestDistance=Infinity;aroundNode = dojo.byId(aroundNode);var oldDisplay = aroundNode.style.display;aroundNode.style.display="";var mb = dojo.html.getElementBox(aroundNode, aroundType);var aroundNodeW = mb.width;var aroundNodeH = mb.height;var aroundNodePos = dojo.html.getAbsolutePosition(aroundNode, true, aroundType);aroundNode.style.display=oldDisplay;for(var nodeCorner in aroundCorners){var pos, desiredX, desiredY;var corners = aroundCorners[nodeCorner];desiredX = aroundNodePos.x + (nodeCorner.charAt(1)=='L' ? 0 : aroundNodeW);desiredY = aroundNodePos.y + (nodeCorner.charAt(0)=='T' ? 0 : aroundNodeH);pos = dojo.html.placeOnScreen(node, desiredX, desiredY, padding, true, corners, true);if(pos.dist == 0){best = pos;break;}else{if(bestDistance > pos.dist){bestDistance = pos.dist;best = pos;}}
+}
+if(!tryOnly){node.style.left = best.left + "px";node.style.top = best.top + "px";}
+return best;}
+dojo.html.scrollIntoView = function(node){if(!node){ return; }
+if(dojo.render.html.ie){if(dojo.html.getBorderBox(node.parentNode).height <= node.parentNode.scrollHeight){node.scrollIntoView(false);}}else if(dojo.render.html.mozilla){node.scrollIntoView(false);}else{var parent = node.parentNode;var parentBottom = parent.scrollTop + dojo.html.getBorderBox(parent).height;var nodeBottom = node.offsetTop + dojo.html.getMarginBox(node).height;if(parentBottom < nodeBottom){parent.scrollTop += (nodeBottom - parentBottom);}else if(parent.scrollTop > node.offsetTop){parent.scrollTop -= (parent.scrollTop - node.offsetTop);}}
+}

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/README
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/README?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/README (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/README Mon Feb  5 21:01:25 2007
@@ -0,0 +1,6 @@
+All files within this directory and subdirectories were manually derived from http://unicode.org/cldr
+
+See terms of use: http://www.unicode.org/copyright.html#Exhibit1
+
+Eventually, this data should be generated directly from the XML in the CLDR repository to provide
+accurate and full support for the full set of locales.

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/de/gregorian.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/de/gregorian.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/de/gregorian.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/de/gregorian.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"field-weekday":"Wochentag","dateFormat-medium":"dd.MM.yyyy","field-second":"Sekunde","field-week":"Woche","pm":"nachm.","timeFormat-full":"H:mm' Uhr 'z","months-standAlone-narrow":["J","F","M","A","M","J","J","A","S","O","N","D"],"am":"vorm.","days-standAlone-narrow":["S","M","D","M","D","F","S"],"field-year":"Jahr","eras":["v. Chr.","n. Chr."],"field-hour":"Stunde","dateFormat-long":"d. MMMM yyyy","field-day":"Tag","field-dayperiod":"Tageshälfte","field-month":"Monat","dateFormat-short":"dd.MM.yy","months-format-wide":["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"field-era":"Epoche","months-format-abbr":["Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],"days-format-wide":["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],"dateFormat-full":"EEEE, d. MMMM yyyy","field-zone":"Zone","days-format-abbr":["So","Mo","Di","Mi","Do","Fr","Sa"],"field-minute":"Minu
 te","timeFormat-medium":"HH:mm:ss","timeFormat-short":"HH:mm","timeFormat-long":"HH:mm:ss z"})
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/en-in/number.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/en-in/number.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/en-in/number.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/i18n/cldr/nls/en-in/number.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+({"decimalFormat":"#,##,##0.###","currencyFormat":"¤ #,##,##0.00","percentFormat":"#,##,##0%","group":",","percentSign":"%","scientificFormat":"#E0","infinity":"∞","list":";","exponential":"E","patternDigit":"#","decimal":".","minusSign":"-","nan":"NaN","nativeZeroDigit":"0","perMille":"‰","plusSign":"+"})
\ No newline at end of file