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 [19/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/widget/ComboBox.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ComboBox.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ComboBox.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ComboBox.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,68 @@
+
+dojo.provide("dojo.widget.ComboBox");dojo.require("dojo.widget.*");dojo.require("dojo.event.*");dojo.require("dojo.io.*");dojo.require("dojo.lfx.*");dojo.require("dojo.html.*");dojo.require("dojo.html.display");dojo.require("dojo.html.layout");dojo.require("dojo.html.iframe");dojo.require("dojo.string");dojo.require("dojo.widget.html.stabile");dojo.require("dojo.widget.PopupContainer");dojo.widget.incrementalComboBoxDataProvider = function( url,  limit,  timeout){this.searchUrl = url;this.inFlight = false;this.activeRequest = null;this.allowCache = false;this.cache = {};this.init = function( cbox){this.searchUrl = cbox.dataUrl;};this.addToCache = function( keyword,  data){if(this.allowCache){this.cache[keyword] = data;}};this.startSearch = function( searchStr,  type,  ignoreLimit){if(this.inFlight){}
+var tss = encodeURIComponent(searchStr);var realUrl = dojo.string.substituteParams(this.searchUrl, {"searchString": tss});var _this = this;var request = dojo.io.bind({url: realUrl,method: "get",mimetype: "text/json",load: function(type, data, evt){_this.inFlight = false;if(!dojo.lang.isArray(data)){var arrData = [];for(var key in data){arrData.push([data[key], key]);}
+data = arrData;}
+_this.addToCache(searchStr, data);_this.provideSearchResults(data);}});this.inFlight = true;};};dojo.widget.ComboBoxDataProvider = function( dataPairs,  limit,  timeout){this.data = [];this.searchTimeout = timeout || 500;this.searchLimit = limit || 30;this.searchType = "STARTSTRING";this.caseSensitive = false;this._lastSearch = "";this._lastSearchResults = null;this.init = function( cbox,  node){if(!dojo.string.isBlank(cbox.dataUrl)){this.getData(cbox.dataUrl);}else{if((node)&&(node.nodeName.toLowerCase() == "select")){var opts = node.getElementsByTagName("option");var ol = opts.length;var data = [];for(var x=0; x<ol; x++){var text = opts[x].textContent || opts[x].innerText || opts[x].innerHTML;var keyValArr = [String(text), String(opts[x].value)];data.push(keyValArr);if(opts[x].selected){cbox.setAllValues(keyValArr[0], keyValArr[1]);}}
+this.setData(data);}}};this.getData = function( url){dojo.io.bind({url: url,load: dojo.lang.hitch(this, function(type, data, evt){if(!dojo.lang.isArray(data)){var arrData = [];for(var key in data){arrData.push([data[key], key]);}
+data = arrData;}
+this.setData(data);}),mimetype: "text/json"});};this.startSearch = function( searchStr,  type,  ignoreLimit){this._preformSearch(searchStr, type, ignoreLimit);};this._preformSearch = function( searchStr,  type,  ignoreLimit){var st = type||this.searchType;var ret = [];if(!this.caseSensitive){searchStr = searchStr.toLowerCase();}
+for(var x=0; x<this.data.length; x++){if((!ignoreLimit)&&(ret.length >= this.searchLimit)){break;}
+var dataLabel = new String((!this.caseSensitive) ? this.data[x][0].toLowerCase() : this.data[x][0]);if(dataLabel.length < searchStr.length){continue;}
+if(st == "STARTSTRING"){if(searchStr == dataLabel.substr(0, searchStr.length)){ret.push(this.data[x]);}}else if(st == "SUBSTRING"){if(dataLabel.indexOf(searchStr) >= 0){ret.push(this.data[x]);}}else if(st == "STARTWORD"){var idx = dataLabel.indexOf(searchStr);if(idx == 0){ret.push(this.data[x]);}
+if(idx <= 0){continue;}
+var matches = false;while(idx!=-1){if(" ,/(".indexOf(dataLabel.charAt(idx-1)) != -1){matches = true; break;}
+idx = dataLabel.indexOf(searchStr, idx+1);}
+if(!matches){continue;}else{ret.push(this.data[x]);}}}
+this.provideSearchResults(ret);};this.provideSearchResults = function( resultsDataPairs){};this.addData = function( pairs){this.data = this.data.concat(pairs);};this.setData = function( pdata){this.data = pdata;};if(dataPairs){this.setData(dataPairs);}};dojo.widget.defineWidget(
+"dojo.widget.ComboBox",dojo.widget.HtmlWidget,{isContainer: false,forceValidOption: false,searchType: "stringstart",dataProvider: null,startSearch: function( searchString){},selectNextResult: function(){},selectPrevResult: function(){},setSelectedResult: function(){},autoComplete: true,name: "",textInputNode: null,comboBoxValue: null,comboBoxSelectionValue: null,optionsListWrapper: null,optionsListNode: null,downArrowNode: null,searchTimer: null,searchDelay: 100,dataUrl: "",fadeTime: 200,maxListLength: 8,mode: "local",selectedResult: null,_highlighted_option: null,_prev_key_backspace: false,_prev_key_esc: false,_gotFocus: false,_mouseover_list: false,dataProviderClass: "dojo.widget.ComboBoxDataProvider",buttonSrc: dojo.uri.dojoUri("src/widget/templates/images/combo_box_arrow.png"),dropdownToggle: "fade",templatePath: dojo.uri.dojoUri("src/widget/templates/ComboBox.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/ComboBox.css"),setValue: function( value){this.co
 mboBoxValue.value = value;if (this.textInputNode.value != value){this.textInputNode.value = value;dojo.widget.html.stabile.setState(this.widgetId, this.getState(), true);this.onValueChanged(value);}},onValueChanged: function(){ },getValue: function(){return this.comboBoxValue.value;},getState: function(){return {value: this.getValue()};},setState: function( state){this.setValue(state.value);},enable:function(){this.disabled=false;this.textInputNode.removeAttribute("disabled");},disable: function(){this.disabled = true;this.textInputNode.setAttribute("disabled",true);},getCaretPos: function( element){if(dojo.lang.isNumber(element.selectionStart)){return element.selectionStart;}else if(dojo.render.html.ie){var tr = document.selection.createRange().duplicate();var ntr = element.createTextRange();tr.move("character",0);ntr.move("character",0);try {ntr.setEndPoint("EndToEnd", tr);return String(ntr.text).replace(/\r/g,"").length;} catch (e){return 0;}}},setCaretPos: function( elem
 ent,  location){location = parseInt(location);this.setSelectedRange(element, location, location);},setSelectedRange: function( element,  start,  end){if(!end){ end = element.value.length; }
+if(element.setSelectionRange){element.focus();element.setSelectionRange(start, end);}else if(element.createTextRange){var range = element.createTextRange();with(range){collapse(true);moveEnd('character', end);moveStart('character', start);select();}}else{element.value = element.value;element.blur();element.focus();var dist = parseInt(element.value.length)-end;var tchar = String.fromCharCode(37);var tcc = tchar.charCodeAt(0);for(var x = 0; x < dist; x++){var te = document.createEvent("KeyEvents");te.initKeyEvent("keypress", true, true, null, false, false, false, false, tcc, tcc);element.dispatchEvent(te);}}},_handleKeyEvents: function( evt){if(evt.ctrlKey || evt.altKey || !evt.key){ return; }
+this._prev_key_backspace = false;this._prev_key_esc = false;var k = dojo.event.browser.keys;var doSearch = true;switch(evt.key){case k.KEY_DOWN_ARROW:
+if(!this.popupWidget.isShowingNow){this.startSearchFromInput();}
+this.highlightNextOption();dojo.event.browser.stopEvent(evt);return;case k.KEY_UP_ARROW:
+this.highlightPrevOption();dojo.event.browser.stopEvent(evt);return;case k.KEY_TAB:
+if(!this.autoComplete && this.popupWidget.isShowingNow && this._highlighted_option){dojo.event.browser.stopEvent(evt);this.selectOption({ 'target': this._highlighted_option, 'noHide': false});this.setSelectedRange(this.textInputNode, this.textInputNode.value.length, null);}else{this.selectOption();return;}
+break;case k.KEY_ENTER:
+if(this.popupWidget.isShowingNow){dojo.event.browser.stopEvent(evt);}
+if(this.autoComplete){this.selectOption();return;}
+case " ":
+if(this.popupWidget.isShowingNow && this._highlighted_option){dojo.event.browser.stopEvent(evt);this.selectOption();this.hideResultList();return;}
+break;case k.KEY_ESCAPE:
+this.hideResultList();this._prev_key_esc = true;return;case k.KEY_BACKSPACE:
+this._prev_key_backspace = true;if(!this.textInputNode.value.length){this.setAllValues("", "");this.hideResultList();doSearch = false;}
+break;case k.KEY_RIGHT_ARROW:
+case k.KEY_LEFT_ARROW:
+doSearch = false;break;default:// non char keys (F1-F12 etc..)  shouldn't open list
+if(evt.charCode==0){doSearch = false;}}
+if(this.searchTimer){clearTimeout(this.searchTimer);}
+if(doSearch){this.blurOptionNode();this.searchTimer = setTimeout(dojo.lang.hitch(this, this.startSearchFromInput), this.searchDelay);}},compositionEnd: function( evt){evt.key = evt.keyCode;this._handleKeyEvents(evt);},onKeyUp: function( evt){this.setValue(this.textInputNode.value);},setSelectedValue: function( value){this.comboBoxSelectionValue.value = value;},setAllValues: function( value1,  value2){this.setSelectedValue(value2);this.setValue(value1);},focusOptionNode: function( node){if(this._highlighted_option != node){this.blurOptionNode();this._highlighted_option = node;dojo.html.addClass(this._highlighted_option, "dojoComboBoxItemHighlight");}},blurOptionNode: function(){if(this._highlighted_option){dojo.html.removeClass(this._highlighted_option, "dojoComboBoxItemHighlight");this._highlighted_option = null;}},highlightNextOption: function(){if((!this._highlighted_option) || !this._highlighted_option.parentNode){this.focusOptionNode(this.optionsListNode.firstChild);}els
 e if(this._highlighted_option.nextSibling){this.focusOptionNode(this._highlighted_option.nextSibling);}
+dojo.html.scrollIntoView(this._highlighted_option);},highlightPrevOption: function(){if(this._highlighted_option && this._highlighted_option.previousSibling){this.focusOptionNode(this._highlighted_option.previousSibling);}else{this._highlighted_option = null;this.hideResultList();return;}
+dojo.html.scrollIntoView(this._highlighted_option);},itemMouseOver: function( evt){if (evt.target === this.optionsListNode){ return; }
+this.focusOptionNode(evt.target);dojo.html.addClass(this._highlighted_option, "dojoComboBoxItemHighlight");},itemMouseOut: function( evt){if (evt.target === this.optionsListNode){ return; }
+this.blurOptionNode();},onResize: function(){var inputSize = dojo.html.getContentBox(this.textInputNode);if( inputSize.height == 0 ){dojo.lang.setTimeout(this, "onResize", 50);return;}
+var buttonSize = { width: inputSize.height, height: inputSize.height};dojo.html.setContentBox(this.downArrowNode, buttonSize);},fillInTemplate: function( args,  frag){dojo.html.applyBrowserClass(this.domNode);var source = this.getFragNodeRef(frag);if (! this.name && source.name){ this.name = source.name; }
+this.comboBoxValue.name = this.name;this.comboBoxSelectionValue.name = this.name+"_selected";dojo.html.copyStyle(this.domNode, source);dojo.html.copyStyle(this.textInputNode, source);dojo.html.copyStyle(this.downArrowNode, source);with (this.downArrowNode.style){width = "0px";height = "0px";}
+var dpClass;if(this.mode == "remote"){dpClass = dojo.widget.incrementalComboBoxDataProvider;}else if(typeof this.dataProviderClass == "string"){dpClass = dojo.evalObjPath(this.dataProviderClass)}else{dpClass = this.dataProviderClass;}
+this.dataProvider = new dpClass();this.dataProvider.init(this, this.getFragNodeRef(frag));this.popupWidget = new dojo.widget.createWidget("PopupContainer",{toggle: this.dropdownToggle, toggleDuration: this.toggleDuration});dojo.event.connect(this, 'destroy', this.popupWidget, 'destroy');this.optionsListNode = this.popupWidget.domNode;this.domNode.appendChild(this.optionsListNode);dojo.html.addClass(this.optionsListNode, 'dojoComboBoxOptions');dojo.event.connect(this.optionsListNode, 'onclick', this, 'selectOption');dojo.event.connect(this.optionsListNode, 'onmouseover', this, '_onMouseOver');dojo.event.connect(this.optionsListNode, 'onmouseout', this, '_onMouseOut');dojo.event.connect(this.optionsListNode, "onmouseover", this, "itemMouseOver");dojo.event.connect(this.optionsListNode, "onmouseout", this, "itemMouseOut");},focus: function(){this.tryFocus();},openResultList: function( results){if (this.disabled){return;}
+this.clearResultList();if(!results.length){this.hideResultList();}
+if(	(this.autoComplete)&&
+(results.length)&&
+(!this._prev_key_backspace)&&
+(this.textInputNode.value.length > 0)){var cpos = this.getCaretPos(this.textInputNode);if((cpos+1) > this.textInputNode.value.length){this.textInputNode.value += results[0][0].substr(cpos);this.setSelectedRange(this.textInputNode, cpos, this.textInputNode.value.length);}}
+var even = true;while(results.length){var tr = results.shift();if(tr){var td = document.createElement("div");td.appendChild(document.createTextNode(tr[0]));td.setAttribute("resultName", tr[0]);td.setAttribute("resultValue", tr[1]);td.className = "dojoComboBoxItem "+((even) ? "dojoComboBoxItemEven" : "dojoComboBoxItemOdd");even = (!even);this.optionsListNode.appendChild(td);}}
+this.showResultList();},onFocusInput: function(){this._hasFocus = true;},onBlurInput: function(){this._hasFocus = false;this._handleBlurTimer(true, 500);},_handleBlurTimer: function(clear,  millisec){if(this.blurTimer && (clear || millisec)){clearTimeout(this.blurTimer);}
+if(millisec){this.blurTimer = dojo.lang.setTimeout(this, "checkBlurred", millisec);}},_onMouseOver: function( evt){if(!this._mouseover_list){this._handleBlurTimer(true, 0);this._mouseover_list = true;}},_onMouseOut:function( evt){var relTarget = evt.relatedTarget;if(!relTarget || relTarget.parentNode!=this.optionsListNode){this._mouseover_list = false;this._handleBlurTimer(true, 100);this.tryFocus();}},_isInputEqualToResult: function( result){var input = this.textInputNode.value;if(!this.dataProvider.caseSensitive){input = input.toLowerCase();result = result.toLowerCase();}
+return (input == result);},_isValidOption: function(){var tgt = dojo.html.firstElement(this.optionsListNode);var isValidOption = false;while(!isValidOption && tgt){if(this._isInputEqualToResult(tgt.getAttribute("resultName"))){isValidOption = true;}else{tgt = dojo.html.nextElement(tgt);}}
+return isValidOption;},checkBlurred: function(){if(!this._hasFocus && !this._mouseover_list){this.hideResultList();if(!this.textInputNode.value.length){this.setAllValues("", "");return;}
+var isValidOption = this._isValidOption();if(this.forceValidOption && !isValidOption){this.setAllValues("", "");return;}
+if(!isValidOption){this.setSelectedValue("");}}},sizeBackgroundIframe: function(){var mb = dojo.html.getMarginBox(this.optionsListNode);if( mb.width==0 || mb.height==0 ){dojo.lang.setTimeout(this, "sizeBackgroundIframe", 100);return;}},selectOption: function( evt){var tgt = null;if(!evt){evt = { target: this._highlighted_option };}
+if(!dojo.html.isDescendantOf(evt.target, this.optionsListNode)){if(!this.textInputNode.value.length){return;}
+tgt = dojo.html.firstElement(this.optionsListNode);if(!tgt || !this._isInputEqualToResult(tgt.getAttribute("resultName"))){return;}}else{tgt = evt.target;}
+while((tgt.nodeType!=1)||(!tgt.getAttribute("resultName"))){tgt = tgt.parentNode;if(tgt === dojo.body()){return false;}}
+this.selectedResult = [tgt.getAttribute("resultName"), tgt.getAttribute("resultValue")];this.setAllValues(tgt.getAttribute("resultName"), tgt.getAttribute("resultValue"));if(!evt.noHide){this.hideResultList();this.setSelectedRange(this.textInputNode, 0, null);}
+this.tryFocus();},clearResultList: function(){if(this.optionsListNode.innerHTML){this.optionsListNode.innerHTML = "";}},hideResultList: function(){this.popupWidget.close();},showResultList: function(){var childs = this.optionsListNode.childNodes;if(childs.length){var visibleCount = this.maxListLength;if(childs.length < visibleCount){visibleCount = childs.length;}
+with(this.optionsListNode.style)
+{display = "";if(visibleCount == childs.length){height = "";}else{height = visibleCount * dojo.html.getMarginBox(childs[0]).height +"px";}
+width = (dojo.html.getMarginBox(this.domNode).width-2)+"px";}
+this.popupWidget.open(this.domNode, this, this.downArrowNode);}else{this.hideResultList();}},handleArrowClick: function(){this._handleBlurTimer(true, 0);this.tryFocus();if(this.popupWidget.isShowingNow){this.hideResultList();}else{this.startSearch("");}},tryFocus: function(){try {this.textInputNode.focus();} catch (e){};},startSearchFromInput: function(){this.startSearch(this.textInputNode.value);},postCreate: function(){this.onResize();dojo.event.connect(this, "startSearch", this.dataProvider, "startSearch");dojo.event.connect(this.dataProvider, "provideSearchResults", this, "openResultList");dojo.event.connect(this.textInputNode, "onblur", this, "onBlurInput");dojo.event.connect(this.textInputNode, "onfocus", this, "onFocusInput");if (this.disabled){this.disable();}
+var s = dojo.widget.html.stabile.getState(this.widgetId);if (s){this.setState(s);}}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ContentPane.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ContentPane.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ContentPane.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ContentPane.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,59 @@
+
+dojo.provide("dojo.widget.ContentPane");dojo.require("dojo.widget.*");dojo.require("dojo.io.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.string");dojo.require("dojo.string.extras");dojo.require("dojo.html.style");dojo.widget.defineWidget(
+"dojo.widget.ContentPane",dojo.widget.HtmlWidget,function(){this._styleNodes =  [];this._onLoadStack = [];this._onUnloadStack = [];this._callOnUnload = false;this._ioBindObj;this.scriptScope;this.bindArgs = {};}, {isContainer: true,adjustPaths: true,href: "",extractContent: true,parseContent:	true,cacheContent:	true,preload: false,refreshOnShow: false,handler: "",executeScripts: false,scriptSeparation: true,loadingMessage: "Loading...",isLoaded: false,postCreate: function(args, frag, parentComp){if (this.handler!==""){this.setHandler(this.handler);}
+if(this.isShowing() || this.preload){this.loadContents();}},show: function(){if(this.refreshOnShow){this.refresh();}else{this.loadContents();}
+dojo.widget.ContentPane.superclass.show.call(this);},refresh: function(){this.isLoaded=false;this.loadContents();},loadContents: function() {if ( this.isLoaded ){return;}
+if ( dojo.lang.isFunction(this.handler)) {this._runHandler();} else if ( this.href != "" ) {this._downloadExternalContent(this.href, this.cacheContent && !this.refreshOnShow);}},setUrl: function( url) {this.href = url;this.isLoaded = false;if ( this.preload || this.isShowing() ){this.loadContents();}},abort: function(){var bind = this._ioBindObj;if(!bind || !bind.abort){ return; }
+bind.abort();delete this._ioBindObj;},_downloadExternalContent: function(url, useCache) {this.abort();this._handleDefaults(this.loadingMessage, "onDownloadStart");var self = this;this._ioBindObj = dojo.io.bind(
+this._cacheSetting({url: url,mimetype: "text/html",handler: function(type, data, xhr){delete self._ioBindObj;if(type=="load"){self.onDownloadEnd.call(self, url, data);}else{var e = {responseText: xhr.responseText,status: xhr.status,statusText: xhr.statusText,responseHeaders: xhr.getAllResponseHeaders(),text: "Error loading '" + url + "' (" + xhr.status + " "+  xhr.statusText + ")"};self._handleDefaults.call(self, e, "onDownloadError");self.onLoad();}}}, useCache)
+);},_cacheSetting: function(bindObj, useCache){for(var x in this.bindArgs){if(dojo.lang.isUndefined(bindObj[x])){bindObj[x] = this.bindArgs[x];}}
+if(dojo.lang.isUndefined(bindObj.useCache)){ bindObj.useCache = useCache; }
+if(dojo.lang.isUndefined(bindObj.preventCache)){ bindObj.preventCache = !useCache; }
+if(dojo.lang.isUndefined(bindObj.mimetype)){ bindObj.mimetype = "text/html"; }
+return bindObj;},onLoad: function(e){this._runStack("_onLoadStack");this.isLoaded=true;},onUnLoad: function(e){dojo.deprecated(this.widgetType+".onUnLoad, use .onUnload (lowercased load)", 0.5);},onUnload: function(e){this._runStack("_onUnloadStack");delete this.scriptScope;if(this.onUnLoad !== dojo.widget.ContentPane.prototype.onUnLoad){this.onUnLoad.apply(this, arguments);}},_runStack: function(stName){var st = this[stName]; var err = "";var scope = this.scriptScope || window;for(var i = 0;i < st.length; i++){try{st[i].call(scope);}catch(e){err += "\n"+st[i]+" failed: "+e.description;}}
+this[stName] = [];if(err.length){var name = (stName== "_onLoadStack") ? "addOnLoad" : "addOnUnLoad";this._handleDefaults(name+" failure\n "+err, "onExecError", "debug");}},addOnLoad: function(obj, func){this._pushOnStack(this._onLoadStack, obj, func);},addOnUnload: function(obj, func){this._pushOnStack(this._onUnloadStack, obj, func);},addOnUnLoad: function(){dojo.deprecated(this.widgetType + ".addOnUnLoad, use addOnUnload instead. (lowercased Load)", 0.5);this.addOnUnload.apply(this, arguments);},_pushOnStack: function(stack, obj, func){if(typeof func == 'undefined') {stack.push(obj);}else{stack.push(function(){ obj[func](); });}},destroy: function(){this.onUnload();dojo.widget.ContentPane.superclass.destroy.call(this);},onExecError: function(e){},onContentError: function(e){},onDownloadError: function(e){},onDownloadStart: function(e){},onDownloadEnd: function(url, data){data = this.splitAndFixPaths(data, url);this.setContent(data);},_handleDefaults: function(e, handler, m
 essType){if(!handler){ handler = "onContentError"; }
+if(dojo.lang.isString(e)){ e = {text: e}; }
+if(!e.text){ e.text = e.toString(); }
+e.toString = function(){ return this.text; };if(typeof e.returnValue != "boolean"){e.returnValue = true;}
+if(typeof e.preventDefault != "function"){e.preventDefault = function(){ this.returnValue = false; };}
+this[handler](e);if(e.returnValue){switch(messType){case true:
+case "alert":
+alert(e.toString()); break;case "debug":
+dojo.debug(e.toString()); break;default:
+if(this._callOnUnload){ this.onUnload(); }
+this._callOnUnload = false;if(arguments.callee._loopStop){dojo.debug(e.toString());}else{arguments.callee._loopStop = true;this._setContent(e.toString());}}}
+arguments.callee._loopStop = false;},splitAndFixPaths: function(s, url){var titles = [], scripts = [],tmp = [];var match = [], requires = [], attr = [], styles = [];var str = '', path = '', fix = '', tagFix = '', tag = '', origPath = '';if(!url) { url = "./"; }
+if(s){var regex = /<title[^>]*>([\s\S]*?)<\/title>/i;while(match = regex.exec(s)){titles.push(match[1]);s = s.substring(0, match.index) + s.substr(match.index + match[0].length);};if(this.adjustPaths){var regexFindTag = /<[a-z][a-z0-9]*[^>]*\s(?:(?:src|href|style)=[^>])+[^>]*>/i;var regexFindAttr = /\s(src|href|style)=(['"]?)([\w()\[\]\/.,\\'"-:;#=&?\s@]+?)\2/i;var regexProtocols = /^(?:[#]|(?:(?:https?|ftps?|file|javascript|mailto|news):))/;while(tag = regexFindTag.exec(s)){str += s.substring(0, tag.index);s = s.substring((tag.index + tag[0].length), s.length);tag = tag[0];tagFix = '';while(attr = regexFindAttr.exec(tag)){path = ""; origPath = attr[3];switch(attr[1].toLowerCase()){case "src":// falltrough
+case "href":
+if(regexProtocols.exec(origPath)){path = origPath;} else {path = (new dojo.uri.Uri(url, origPath).toString());}
+break;case "style":// style
+path = dojo.html.fixPathsInCssText(origPath, url);break;default:
+path = origPath;}
+fix = " " + attr[1] + "=" + attr[2] + path + attr[2];tagFix += tag.substring(0, attr.index) + fix;tag = tag.substring((attr.index + attr[0].length), tag.length);}
+str += tagFix + tag;}
+s = str+s;}
+regex = /(?:<(style)[^>]*>([\s\S]*?)<\/style>|<link ([^>]*rel=['"]?stylesheet['"]?[^>]*)>)/i;while(match = regex.exec(s)){if(match[1] && match[1].toLowerCase() == "style"){styles.push(dojo.html.fixPathsInCssText(match[2],url));}else if(attr = match[3].match(/href=(['"]?)([^'">]*)\1/i)){styles.push({path: attr[2]});}
+s = s.substring(0, match.index) + s.substr(match.index + match[0].length);};var regex = /<script([^>]*)>([\s\S]*?)<\/script>/i;var regexSrc = /src=(['"]?)([^"']*)\1/i;var regexDojoJs = /.*(\bdojo\b\.js(?:\.uncompressed\.js)?)$/;var regexInvalid = /(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g;var regexRequires = /dojo\.(?:(?:require(?:After)?(?:If)?)|(?:widget\.(?:manager\.)?registerWidgetPackage)|(?:(?:hostenv\.)?setModulePrefix|registerModulePath)|defineNamespace)\((['"]).*?\1\)\s*;?/;while(match = regex.exec(s)){if(this.executeScripts && match[1]){if(attr = regexSrc.exec(match[1])){if(regexDojoJs.exec(attr[2])){dojo.debug("Security note! inhibit:"+attr[2]+" from  being loaded again.");}else{scripts.push({path: attr[2]});}}}
+if(match[2]){var sc = match[2].replace(regexInvalid, "");if(!sc){ continue; }
+while(tmp = regexRequires.exec(sc)){requires.push(tmp[0]);sc = sc.substring(0, tmp.index) + sc.substr(tmp.index + tmp[0].length);}
+if(this.executeScripts){scripts.push(sc);}}
+s = s.substr(0, match.index) + s.substr(match.index + match[0].length);}
+if(this.extractContent){match = s.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(match) { s = match[1]; }}
+if(this.executeScripts && this.scriptSeparation){var regex = /(<[a-zA-Z][a-zA-Z0-9]*\s[^>]*?\S=)((['"])[^>]*scriptScope[^>]*>)/;var regexAttr = /([\s'";:\(])scriptScope(.*)/;str = "";while(tag = regex.exec(s)){tmp = ((tag[3]=="'") ? '"': "'");fix= "";str += s.substring(0, tag.index) + tag[1];while(attr = regexAttr.exec(tag[2])){tag[2] = tag[2].substring(0, attr.index) + attr[1] + "dojo.widget.byId("+ tmp + this.widgetId + tmp + ").scriptScope" + attr[2];}
+str += tag[2];s = s.substr(tag.index + tag[0].length);}
+s = str + s;}}
+return {"xml": 		s,"styles":		styles,"titles": 		titles,"requires": 	requires,"scripts": 		scripts,"url": 			url};},_setContent: function(cont){this.destroyChildren();for(var i = 0; i < this._styleNodes.length; i++){if(this._styleNodes[i] && this._styleNodes[i].parentNode){this._styleNodes[i].parentNode.removeChild(this._styleNodes[i]);}}
+this._styleNodes = [];var node = this.containerNode || this.domNode;while(node.firstChild){try{dojo.event.browser.clean(node.firstChild);}catch(e){}
+node.removeChild(node.firstChild);}
+try{if(typeof cont != "string"){node.innerHTML = "";node.appendChild(cont);}else{node.innerHTML = cont;}}catch(e){e.text = "Couldn't load content:"+e.description;this._handleDefaults(e, "onContentError");}},setContent: function(data){this.abort();if(this._callOnUnload){ this.onUnload(); }
+this._callOnUnload = true;if(!data || dojo.html.isNode(data)){this._setContent(data);this.onResized();this.onLoad();}else{if(typeof data.xml != "string"){this.href = "";data = this.splitAndFixPaths(data);}
+this._setContent(data.xml);for(var i = 0; i < data.styles.length; i++){if(data.styles[i].path){this._styleNodes.push(dojo.html.insertCssFile(data.styles[i].path));}else{this._styleNodes.push(dojo.html.insertCssText(data.styles[i]));}}
+if(this.parseContent){for(var i = 0; i < data.requires.length; i++){try{eval(data.requires[i]);} catch(e){e.text = "ContentPane: error in package loading calls, " + (e.description||e);this._handleDefaults(e, "onContentError", "debug");}}}
+var _self = this;function asyncParse(){if(_self.executeScripts){_self._executeScripts(data.scripts);}
+if(_self.parseContent){var node = _self.containerNode || _self.domNode;var parser = new dojo.xml.Parse();var frag = parser.parseElement(node, null, true);dojo.widget.getParser().createSubComponents(frag, _self);}
+_self.onResized();_self.onLoad();}
+if(dojo.hostenv.isXDomain && data.requires.length){dojo.addOnLoad(asyncParse);}else{asyncParse();}}},setHandler: function( handler) {var fcn = dojo.lang.isFunction(handler) ? handler : window[handler];if(!dojo.lang.isFunction(fcn)) {this._handleDefaults("Unable to set handler, '" + handler + "' not a function.", "onExecError", true);return;}
+this.handler = function() {return fcn.apply(this, arguments);}},_runHandler: function() {var ret = true;if(dojo.lang.isFunction(this.handler)) {this.handler(this, this.domNode);ret = false;}
+this.onLoad();return ret;},_executeScripts: function(scripts) {var self = this;var tmp = "", code = "";for(var i = 0; i < scripts.length; i++){if(scripts[i].path){dojo.io.bind(this._cacheSetting({"url": 		scripts[i].path,"load":     function(type, scriptStr){dojo.lang.hitch(self, tmp = ";"+scriptStr);},"error":    function(type, error){error.text = type + " downloading remote script";self._handleDefaults.call(self, error, "onExecError", "debug");},"mimetype": "text/plain","sync":     true}, this.cacheContent));code += tmp;}else{code += scripts[i];}}
+try{if(this.scriptSeparation){delete this.scriptScope;this.scriptScope = new (new Function('_container_', code+'; return this;'))(self);}else{var djg = dojo.global();if(djg.execScript){djg.execScript(code);}else{var djd = dojo.doc();var sc = djd.createElement("script");sc.appendChild(djd.createTextNode(code));(this.containerNode||this.domNode).appendChild(sc);}}}catch(e){e.text = "Error running scripts from content:\n"+e.description;this._handleDefaults(e, "onExecError", "debug");}}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/CurrencyTextbox.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/CurrencyTextbox.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/CurrencyTextbox.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/CurrencyTextbox.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.CurrencyTextbox");dojo.require("dojo.widget.IntegerTextbox");dojo.require("dojo.validate.common");dojo.widget.defineWidget(
+"dojo.widget.CurrencyTextbox",dojo.widget.IntegerTextbox,{mixInProperties: function(localProperties, frag){dojo.widget.CurrencyTextbox.superclass.mixInProperties.apply(this, arguments);if(localProperties.fractional){this.flags.fractional = (localProperties.fractional == "true");}else if(localProperties.cents){dojo.deprecated("dojo.widget.IntegerTextbox", "use fractional attr instead of cents", "0.5");this.flags.fractional = (localProperties.cents == "true");}
+if(localProperties.symbol){this.flags.symbol = localProperties.symbol;}
+if(localProperties.min){this.flags.min = parseFloat(localProperties.min);}
+if(localProperties.max){this.flags.max = parseFloat(localProperties.max);}},isValid: function(){return dojo.validate.isCurrency(this.textbox.value, this.flags);},isInRange: function(){return dojo.validate.isInRange(this.textbox.value, this.flags);}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DatePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DatePicker.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DatePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DatePicker.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,56 @@
+
+dojo.provide("dojo.widget.DatePicker");dojo.require("dojo.date.common");dojo.require("dojo.date.format");dojo.require("dojo.date.serialize");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.event.*");dojo.require("dojo.dom");dojo.require("dojo.html.style");dojo.widget.defineWidget(
+"dojo.widget.DatePicker",dojo.widget.HtmlWidget,{value: "",name: "",displayWeeks: 6,adjustWeeks: false,startDate: "1492-10-12",endDate: "2941-10-12",weekStartsOn: "",storedDate: "",staticDisplay: false,dayWidth: 'narrow',classNames: {previous: "previousMonth",disabledPrevious: "previousMonthDisabled",current: "currentMonth",disabledCurrent: "currentMonthDisabled",next: "nextMonth",disabledNext: "nextMonthDisabled",currentDate: "currentDate",selectedDate: "selectedItem"},templatePath:  dojo.uri.dojoUri("src/widget/templates/DatePicker.html"),templateCssPath:  dojo.uri.dojoUri("src/widget/templates/DatePicker.css"),postMixInProperties: function(){dojo.widget.DatePicker.superclass.postMixInProperties.apply(this, arguments);if(this.storedDate){dojo.deprecated("dojo.widget.DatePicker", "use 'value' instead of 'storedDate'", "0.5");this.value=this.storedDate;}
+this.startDate = dojo.date.fromRfc3339(this.startDate);this.endDate = dojo.date.fromRfc3339(this.endDate);this.startDate.setHours(0,0,0,0);this.endDate.setHours(24,0,0,-1);if(!this.weekStartsOn){this.weekStartsOn=dojo.date.getFirstDayOfWeek(this.lang);}
+this.today = new Date();this.today.setHours(0,0,0,0);if(typeof(this.value)=='string'&&this.value.toLowerCase()=='today'){this.value = new Date();}else if(this.value && (typeof this.value=="string") && (this.value.split("-").length > 2)) {this.value = dojo.date.fromRfc3339(this.value);this.value.setHours(0,0,0,0);}},fillInTemplate: function(args, frag) {dojo.widget.DatePicker.superclass.fillInTemplate.apply(this, arguments);var source = this.getFragNodeRef(frag);dojo.html.copyStyle(this.domNode, source);this.weekTemplate = dojo.dom.removeNode(this.calendarWeekTemplate);this._preInitUI(this.value ? this.value : this.today, false, true);var dayLabels = dojo.lang.unnest(dojo.date.getNames('days', this.dayWidth, 'standAlone', this.lang));if(this.weekStartsOn > 0){for(var i=0;i<this.weekStartsOn;i++){dayLabels.push(dayLabels.shift());}}
+var dayLabelNodes = this.dayLabelsRow.getElementsByTagName("td");for(i=0; i<7; i++) {dayLabelNodes.item(i).innerHTML = dayLabels[i];}
+if(this.value){this.setValue(this.value);}},getValue: function() {return dojo.date.toRfc3339(new Date(this.value),'dateOnly');},getDate: function() {return this.value;},setValue: function(rfcDate) {this.setDate(rfcDate);},setDate: function(dateObj) {if(typeof dateObj=="string"){this.value = dojo.date.fromRfc3339(dateObj);}else{this.value = new Date(dateObj);}
+this.value.setHours(0,0,0,0);if(this.selectedNode!=null){dojo.html.removeClass(this.selectedNode,this.classNames.selectedDate);}
+if(this.clickedNode!=null){dojo.html.addClass(this.clickedNode,this.classNames.selectedDate);this.selectedNode = this.clickedNode;}else{this._preInitUI(this.value,false,true);}
+this.clickedNode=null;this.onValueChanged(this.value);},_preInitUI: function(dateObj,initFirst,initUI) {if(dateObj<this.startDate||dateObj>this.endDate){dateObj = new Date((dateObj<this.startDate)?this.startDate:this.endDate);}
+this.firstDay = this._initFirstDay(dateObj,initFirst);this.selectedIsUsed = false;this.currentIsUsed = false;var nextDate = new Date(this.firstDay);var tmpMonth = nextDate.getMonth();this.curMonth = new Date(nextDate);this.curMonth.setDate(nextDate.getDate()+6);this.curMonth.setDate(1);if(this.displayWeeks=="" || this.adjustWeeks){this.adjustWeeks = true;this.displayWeeks = Math.ceil((dojo.date.getDaysInMonth(this.curMonth) + this._getAdjustedDay(this.curMonth))/7);}
+var days = this.displayWeeks*7;if(dojo.date.diff(this.startDate,this.endDate, dojo.date.dateParts.DAY) < days){this.staticDisplay = true;if(dojo.date.diff(nextDate,this.endDate, dojo.date.dateParts.DAY) > days){this._preInitUI(this.startDate,true,false);nextDate = new Date(this.firstDay);}
+this.curMonth = new Date(nextDate);this.curMonth.setDate(nextDate.getDate()+6);this.curMonth.setDate(1);var curClass = (nextDate.getMonth() == this.curMonth.getMonth())?'current':'previous';}
+if(initUI){this._initUI(days);}},_initUI: function(days) {dojo.dom.removeChildren(this.calendarDatesContainerNode);for(var i=0;i<this.displayWeeks;i++){this.calendarDatesContainerNode.appendChild(this.weekTemplate.cloneNode(true));}
+var nextDate = new Date(this.firstDay);this._setMonthLabel(this.curMonth.getMonth());this._setYearLabels(this.curMonth.getFullYear());var calendarNodes = this.calendarDatesContainerNode.getElementsByTagName("td");var calendarRows = this.calendarDatesContainerNode.getElementsByTagName("tr");var currentCalendarNode;for(i=0;i<days;i++){currentCalendarNode = calendarNodes.item(i);currentCalendarNode.innerHTML = nextDate.getDate();var curClass = (nextDate.getMonth()<this.curMonth.getMonth())?'previous':(nextDate.getMonth()==this.curMonth.getMonth())?'current':'next';var mappedClass = curClass;if(this._isDisabledDate(nextDate)){var classMap={previous:"disabledPrevious",current:"disabledCurrent",next:"disabledNext"};mappedClass=classMap[curClass];}
+dojo.html.setClass(currentCalendarNode, this._getDateClassName(nextDate, mappedClass));if(dojo.html.hasClass(currentCalendarNode,this.classNames.selectedDate)){this.selectedNode = currentCalendarNode;}
+nextDate = dojo.date.add(nextDate, dojo.date.dateParts.DAY, 1);}
+this.lastDay = dojo.date.add(nextDate,dojo.date.dateParts.DAY,-1);this._initControls();},_initControls: function(){var d = this.firstDay;var d2 = this.lastDay;var decWeek, incWeek, decMonth, incMonth, decYear, incYear;decWeek = incWeek = decMonth = incMonth = decYear = incYear = !this.staticDisplay;with(dojo.date.dateParts){var add = dojo.date.add;if(decWeek && add(d,DAY,(-1*(this._getAdjustedDay(d)+1)))<this.startDate){decWeek = decMonth = decYear = false;}
+if(incWeek && d2>this.endDate){incWeek = incMonth = incYear = false;}
+if(decMonth && add(d,DAY,-1)<this.startDate){decMonth = decYear = false;}
+if(incMonth && add(d2,DAY,1)>this.endDate){incMonth = incYear = false;}
+if(decYear && add(d2,YEAR,-1)<this.startDate){decYear = false;}
+if(incYear && add(d,YEAR,1)>this.endDate){incYear = false;}}
+function enableControl(node, enabled){dojo.html.setVisibility(node, enabled ? '' : 'hidden');}
+enableControl(this.decreaseWeekNode,decWeek);enableControl(this.increaseWeekNode,incWeek);enableControl(this.decreaseMonthNode,decMonth);enableControl(this.increaseMonthNode,incMonth);enableControl(this.previousYearLabelNode,decYear);enableControl(this.nextYearLabelNode,incYear);},_incrementWeek: function(evt) {var d = new Date(this.firstDay);switch(evt.target) {case this.increaseWeekNode.getElementsByTagName("img").item(0):
+case this.increaseWeekNode:
+var tmpDate = dojo.date.add(d, dojo.date.dateParts.WEEK, 1);if(tmpDate < this.endDate){d = dojo.date.add(d, dojo.date.dateParts.WEEK, 1);}
+break;case this.decreaseWeekNode.getElementsByTagName("img").item(0):
+case this.decreaseWeekNode:
+if(d >= this.startDate){d = dojo.date.add(d, dojo.date.dateParts.WEEK, -1);}
+break;}
+this._preInitUI(d,true,true);},_incrementMonth: function(evt) {var d = new Date(this.curMonth);var tmpDate = new Date(this.firstDay);switch(evt.currentTarget) {case this.increaseMonthNode.getElementsByTagName("img").item(0):
+case this.increaseMonthNode:
+tmpDate = dojo.date.add(tmpDate, dojo.date.dateParts.DAY, this.displayWeeks*7);if(tmpDate < this.endDate){d = dojo.date.add(d, dojo.date.dateParts.MONTH, 1);}else{var revertToEndDate = true;}
+break;case this.decreaseMonthNode.getElementsByTagName("img").item(0):
+case this.decreaseMonthNode:
+if(tmpDate > this.startDate){d = dojo.date.add(d, dojo.date.dateParts.MONTH, -1);}else{var revertToStartDate = true;}
+break;}
+if(revertToStartDate){d = new Date(this.startDate);}else if(revertToEndDate){d = new Date(this.endDate);}
+this._preInitUI(d,false,true);},_incrementYear: function(evt) {var year = this.curMonth.getFullYear();var tmpDate = new Date(this.firstDay);switch(evt.target) {case this.nextYearLabelNode:
+tmpDate = dojo.date.add(tmpDate, dojo.date.dateParts.YEAR, 1);if(tmpDate<this.endDate){year++;}else{var revertToEndDate = true;}
+break;case this.previousYearLabelNode:
+tmpDate = dojo.date.add(tmpDate, dojo.date.dateParts.YEAR, -1);if(tmpDate>this.startDate){year--;}else{var revertToStartDate = true;}
+break;}
+var d;if(revertToStartDate){d = new Date(this.startDate);}else if(revertToEndDate){d = new Date(this.endDate);}else{d = new Date(year, this.curMonth.getMonth(), 1);}
+this._preInitUI(d,false,true);},onIncrementWeek: function(evt) {evt.stopPropagation();if(!this.staticDisplay){this._incrementWeek(evt);}},onIncrementMonth: function(evt) {evt.stopPropagation();if(!this.staticDisplay){this._incrementMonth(evt);}},onIncrementYear: function(evt) {evt.stopPropagation();if(!this.staticDisplay){this._incrementYear(evt);}},_setMonthLabel: function(monthIndex) {this.monthLabelNode.innerHTML = dojo.date.getNames('months', 'wide', 'standAlone', this.lang)[monthIndex];},_setYearLabels: function(year) {var y = year - 1;var that = this;function f(n){that[n+"YearLabelNode"].innerHTML =
+dojo.date.format(new Date(y++, 0), {formatLength:'yearOnly', locale:that.lang});}
+f("previous");f("current");f("next");},_getDateClassName: function(date, monthState) {var currentClassName = this.classNames[monthState];if ((!this.selectedIsUsed && this.value) && (Number(date) == Number(this.value))) {currentClassName = this.classNames.selectedDate + " " + currentClassName;this.selectedIsUsed = true;}
+if((!this.currentIsUsed) && (Number(date) == Number(this.today))) {currentClassName = currentClassName + " "  + this.classNames.currentDate;this.currentIsUsed = true;}
+return currentClassName;},onClick: function(evt) {dojo.event.browser.stopEvent(evt);},_handleUiClick: function(evt) {var eventTarget = evt.target;if(eventTarget.nodeType != dojo.dom.ELEMENT_NODE){eventTarget = eventTarget.parentNode;}
+dojo.event.browser.stopEvent(evt);this.selectedIsUsed = this.todayIsUsed = false;var month = this.curMonth.getMonth();var year = this.curMonth.getFullYear();if(dojo.html.hasClass(eventTarget, this.classNames["disabledPrevious"])||dojo.html.hasClass(eventTarget, this.classNames["disabledCurrent"])||dojo.html.hasClass(eventTarget, this.classNames["disabledNext"])){return;}else if (dojo.html.hasClass(eventTarget, this.classNames["next"])) {month = ++month % 12;if(month===0){++year;}} else if (dojo.html.hasClass(eventTarget, this.classNames["previous"])) {month = --month % 12;if(month==11){--year;}}
+this.clickedNode = eventTarget;this.setDate(new Date(year, month, eventTarget.innerHTML));},onValueChanged: function(date) {},_isDisabledDate: function(dateObj){if(dateObj<this.startDate||dateObj>this.endDate){return true;}
+return this.isDisabledDate(dateObj, this.lang);},isDisabledDate: function(dateObj, locale){return false;},_initFirstDay: function(dateObj, adj){var d = new Date(dateObj);if(!adj){d.setDate(1);}
+d.setDate(d.getDate()-this._getAdjustedDay(d,this.weekStartsOn));d.setHours(0,0,0,0);return d;},_getAdjustedDay: function(dateObj){var days = [0,1,2,3,4,5,6];if(this.weekStartsOn>0){for(var i=0;i<this.weekStartsOn;i++){days.unshift(days.pop());}}
+return days[dateObj.getDay()];}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DateTextbox.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DateTextbox.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DateTextbox.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DateTextbox.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,10 @@
+
+dojo.provide("dojo.widget.DateTextbox");dojo.require("dojo.widget.ValidationTextbox");dojo.require("dojo.date.format");dojo.require("dojo.validate.datetime");dojo.widget.defineWidget(
+"dojo.widget.DateTextbox",dojo.widget.ValidationTextbox,{displayFormat: "",formatLength: "short",mixInProperties: function(localProperties){dojo.widget.DateTextbox.superclass.mixInProperties.apply(this, arguments);if(localProperties.format){this.flags.format = localProperties.format;}},isValid: function(){if(this.flags.format){dojo.deprecated("dojo.widget.DateTextbox", "format attribute is deprecated; use displayFormat or formatLength instead", "0.5");return dojo.validate.isValidDate(this.textbox.value, this.flags.format);}
+return dojo.date.parse(this.textbox.value, {formatLength:this.formatLength, selector:'dateOnly', locale:this.lang, datePattern: this.displayFormat});}}
+);dojo.widget.defineWidget(
+"dojo.widget.TimeTextbox",dojo.widget.ValidationTextbox,{displayFormat: "",formatLength: "short",mixInProperties: function(localProperties){dojo.widget.TimeTextbox.superclass.mixInProperties.apply(this, arguments);if(localProperties.format){this.flags.format = localProperties.format;}
+if(localProperties.amsymbol){this.flags.amSymbol = localProperties.amsymbol;}
+if(localProperties.pmsymbol){this.flags.pmSymbol = localProperties.pmsymbol;}},isValid: function(){if(this.flags.format){dojo.deprecated("dojo.widget.TimeTextbox", "format attribute is deprecated; use displayFormat or formatLength instead", "0.5");return dojo.validate.isValidTime(this.textbox.value, this.flags);}
+return dojo.date.parse(this.textbox.value, {formatLength:this.formatLength, selector:'timeOnly', locale:this.lang, timePattern: this.displayFormat});}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DebugConsole.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DebugConsole.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DebugConsole.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DebugConsole.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.widget.DebugConsole");dojo.require("dojo.widget.Widget");dojo.require("dojo.widget.*");dojo.require("dojo.widget.FloatingPane");dojo.widget.defineWidget(
+"dojo.widget.DebugConsole",dojo.widget.FloatingPane,{fillInTemplate: function() {dojo.widget.DebugConsole.superclass.fillInTemplate.apply(this, arguments);this.containerNode.id = "debugConsoleClientPane";djConfig.isDebug = true;djConfig.debugContainerId = this.containerNode.id;}});
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Dialog.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Dialog.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Dialog.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Dialog.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,20 @@
+
+dojo.provide("dojo.widget.Dialog");dojo.require("dojo.widget.*");dojo.require("dojo.widget.ContentPane");dojo.require("dojo.event.*");dojo.require("dojo.gfx.color");dojo.require("dojo.html.layout");dojo.require("dojo.html.display");dojo.require("dojo.html.iframe");dojo.declare(
+"dojo.widget.ModalDialogBase",null,{isContainer: true,shared: {bg: null, bgIframe: null},focusElement: "",bgColor: "black",bgOpacity: 0.4,followScroll: true,trapTabs: function( e){if(e.target == this.tabStartOuter) {if(this._fromTrap) {this.tabStart.focus();this._fromTrap = false;} else {this._fromTrap = true;this.tabEnd.focus();}} else if (e.target == this.tabStart) {if(this._fromTrap) {this._fromTrap = false;} else {this._fromTrap = true;this.tabEnd.focus();}} else if(e.target == this.tabEndOuter) {if(this._fromTrap) {this.tabEnd.focus();this._fromTrap = false;} else {this._fromTrap = true;this.tabStart.focus();}} else if(e.target == this.tabEnd) {if(this._fromTrap) {this._fromTrap = false;} else {this._fromTrap = true;this.tabStart.focus();}}},clearTrap: function( e) {var _this = this;setTimeout(function() {_this._fromTrap = false;}, 100);},postCreate: function() {with(this.domNode.style){position = "absolute";zIndex = 999;display = "none";overflow = "visible";}
+var b = dojo.body();b.appendChild(this.domNode);if(!this.shared.bg){this.shared.bg = document.createElement("div");this.shared.bg.className = "dialogUnderlay";with(this.shared.bg.style){position = "absolute";left = top = "0px";zIndex = 998;display = "none";}
+this.setBackgroundColor(this.bgColor);b.appendChild(this.shared.bg);this.shared.bgIframe = new dojo.html.BackgroundIframe(this.shared.bg);}},setBackgroundColor: function( color) {if(arguments.length >= 3) {color = new dojo.gfx.color.Color(arguments[0], arguments[1], arguments[2]);} else {color = new dojo.gfx.color.Color(color);}
+this.shared.bg.style.backgroundColor = color.toString();return this.bgColor = color;},setBackgroundOpacity: function( op) {if(arguments.length == 0) { op = this.bgOpacity; }
+dojo.html.setOpacity(this.shared.bg, op);try {this.bgOpacity = dojo.html.getOpacity(this.shared.bg);} catch (e) {this.bgOpacity = op;}
+return this.bgOpacity;},_sizeBackground: function() {if(this.bgOpacity > 0) {var viewport = dojo.html.getViewport();var h = viewport.height;var w = viewport.width;with(this.shared.bg.style){width = w + "px";height = h + "px";}
+var scroll_offset = dojo.html.getScroll().offset;this.shared.bg.style.top = scroll_offset.y + "px";this.shared.bg.style.left = scroll_offset.x + "px";var viewport = dojo.html.getViewport();if (viewport.width != w) { this.shared.bg.style.width = viewport.width + "px"; }
+if (viewport.height != h) { this.shared.bg.style.height = viewport.height + "px"; }}},_showBackground: function() {if(this.bgOpacity > 0) {this.shared.bg.style.display = "block";}},placeModalDialog: function() {var scroll_offset = dojo.html.getScroll().offset;var viewport_size = dojo.html.getViewport();var mb;if(this.isShowing()){mb = dojo.html.getMarginBox(this.domNode);}else{dojo.html.setVisibility(this.domNode, false);dojo.html.show(this.domNode);mb = dojo.html.getMarginBox(this.domNode);dojo.html.hide(this.domNode);dojo.html.setVisibility(this.domNode, true);}
+var x = scroll_offset.x + (viewport_size.width - mb.width)/2;var y = scroll_offset.y + (viewport_size.height - mb.height)/2;with(this.domNode.style){left = x + "px";top = y + "px";}},showModalDialog: function() {if (this.followScroll && !this._scrollConnected){this._scrollConnected = true;dojo.event.connect(window, "onscroll", this, "_onScroll");}
+this.placeModalDialog();this.setBackgroundOpacity();this._sizeBackground();this._showBackground();},hideModalDialog: function(){if (this.focusElement) {dojo.byId(this.focusElement).focus();dojo.byId(this.focusElement).blur();}
+this.shared.bg.style.display = "none";this.shared.bg.style.width = this.shared.bg.style.height = "1px";if (this._scrollConnected){this._scrollConnected = false;dojo.event.disconnect(window, "onscroll", this, "_onScroll");}},_onScroll: function(){var scroll_offset = dojo.html.getScroll().offset;this.shared.bg.style.top = scroll_offset.y + "px";this.shared.bg.style.left = scroll_offset.x + "px";this.placeModalDialog();},checkSize: function() {if(this.isShowing()){this._sizeBackground();this.placeModalDialog();this.onResized();}}});dojo.widget.defineWidget(
+"dojo.widget.Dialog",[dojo.widget.ContentPane, dojo.widget.ModalDialogBase],{templatePath: dojo.uri.dojoUri("src/widget/templates/Dialog.html"),blockDuration: 0,lifetime: 0,show: function() {if(this.lifetime){this.timeRemaining = this.lifetime;if(!this.blockDuration){dojo.event.connect(this.shared.bg, "onclick", this, "hide");}else{dojo.event.disconnect(this.shared.bg, "onclick", this, "hide");}
+if(this.timerNode){this.timerNode.innerHTML = Math.ceil(this.timeRemaining/1000);}
+if(this.blockDuration && this.closeNode){if(this.lifetime > this.blockDuration){this.closeNode.style.visibility = "hidden";}else{this.closeNode.style.display = "none";}}
+this.timer = setInterval(dojo.lang.hitch(this, "_onTick"), 100);}
+this.showModalDialog();dojo.widget.Dialog.superclass.show.call(this);},onLoad: function(){this.placeModalDialog();dojo.widget.Dialog.superclass.onLoad.call(this);},fillInTemplate: function(){},hide: function(){this.hideModalDialog();dojo.widget.Dialog.superclass.hide.call(this);if(this.timer){clearInterval(this.timer);}},setTimerNode: function(node){this.timerNode = node;},setCloseControl: function(node) {this.closeNode = node;dojo.event.connect(node, "onclick", this, "hide");},setShowControl: function(node) {dojo.event.connect(node, "onclick", this, "show");},_onTick: function(){if(this.timer){this.timeRemaining -= 100;if(this.lifetime - this.timeRemaining >= this.blockDuration){dojo.event.connect(this.shared.bg, "onclick", this, "hide");if(this.closeNode){this.closeNode.style.visibility = "visible";}}
+if(!this.timeRemaining){clearInterval(this.timer);this.hide();}else if(this.timerNode){this.timerNode.innerHTML = Math.ceil(this.timeRemaining/1000);}}}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DocPane.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DocPane.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DocPane.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DocPane.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,34 @@
+
+dojo.provide("dojo.widget.DocPane");dojo.require("dojo.widget.*");dojo.require("dojo.io.*");dojo.require("dojo.event.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.Editor2");dojo.require("dojo.widget.Dialog");dojo.require("dojo.html.common");dojo.require("dojo.html.display");dojo.widget.DocPane = function(){dojo.event.topic.subscribe("/docs/function/results", this, "onDocResults");dojo.event.topic.subscribe("/docs/package/results", this, "onPkgResults");dojo.event.topic.subscribe("/docs/function/detail", this, "onDocSelectFunction");}
+dojo.widget.defineWidget(
+"dojo.widget.DocPane",dojo.widget.HtmlWidget,{dialog: null,dialogBg: null,dialogFg: null,logIn: null,edit: null,save: null,cancel: null,detail: null,result: null,packag: null,fn: null,fnLink: null,count: null,row: null,summary: null,description: null,variables: null,vRow: null,vLink: null,vDesc: null,methods: null,mRow: null,mLink: null,mDesc: null,requires: null,rRow: null,rRow2: null,rH3: null,rLink: null,parameters: null,pRow: null,pLink: null,pDesc: null,pOpt: null,pType: null,sType: null,sName: null,sParams: null,sPType: null,sPTypeSave: null,sPName: null,sPNameSave: null,pkgDescription: null,_appends: [],templatePath: dojo.uri.dojoUri("src/widget/templates/DocPane.html"),templateCssPath: dojo.uri.dojoUri("src/widget/templates/DocPane.css"),isContainer: true,fillInTemplate: function(){this.requires = dojo.html.removeNode(this.requires);this.rRow.style.display = "none";this.rRow2.style.display = "none";this.methods = dojo.html.removeNode(this.methods);this.mRow.style.dis
 play = "none";this.dialog = dojo.widget.createWidget("dialog", {}, this.dialog);this.dialog.setCloseControl(this.cancel);dojo.html.setOpacity(this.dialogBg, 0.8);dojo.html.setOpacity(this.dialogFg, 1);dojo.event.connect(this.edit, "onclick", dojo.lang.hitch(this, function(){if(!this._isLoggedIn){this.dialog.show();}}));dojo.event.connect(this.logIn, "onclick", this, "_logIn");dojo.event.connect(this.save, "onclick", this, "_save");dojo.event.connect(dojo.docs, "logInSuccess", this, "_loggedIn");this.homeSave = this.containerNode.cloneNode(true);this.detailSave = dojo.html.removeNode(this.detail);this.resultSave = dojo.html.removeNode(this.result);this.packageSave = dojo.html.removeNode(this.packag);this.results = dojo.html.removeNode(this.results);this.rowParent = this.row.parentNode;this.rowSave = dojo.html.removeNode(this.row);this.vParent = this.vRow.parentNode;this.vSave = dojo.html.removeNode(this.vRow);this.pParent = this.pRow.parentNode;this.pSave = dojo.html.removeNo
 de(this.pRow);this.sPTypeSave = dojo.html.removeNode(this.sPType);this.sPNameSave = dojo.html.removeNode(this.sPName);this.navSave = dojo.html.removeNode(this.nav);},_logIn: function(){dojo.docs.setUserName(this.userName.value);dojo.docs.setPassword(this.password.value);},_loggedIn: function(){this._isLoggedIn = true;this.dialog.hide();this.pkgEditor = dojo.widget.createWidget("editor2", {toolbarAlwaysVisible: true}, this.pkgDescription);},_save: function(){if(this.pkgEditor){dojo.docs.savePackage(this._pkgPath, {description: this.pkgEditor.getEditorContent()});}},onDocSelectFunction: function(message){dojo.debug("onDocSelectFunction()");for(var key in message){dojo.debug(key + ": " + dojo.json.serialize(message[key]));}
+var meta = message.meta;if(meta){var variables = meta.variables;var this_variables = meta.this_variables;var child_variables = meta.child_variables;var parameters = meta.parameters;}
+var doc = message.doc;dojo.debug(dojo.json.serialize(doc));var appends = this._appends;dojo.html.removeChildren(this.domNode);this.fn.innerHTML = message.name;this.variables.style.display = "block";var all = [];if(variables){all = variables;}
+if(this_variables){all = all.concat(this_variables);}
+if(child_variables){all = all.concat(child_variables);}
+if(!all.length){this.variables.style.display = "none";}else{for(var i = 0, one; one = all[i]; i++){this.vLink.innerHTML = one;this.vDesc.parentNode.style.display = "none";appends.push(this.vParent.appendChild(this.vSave.cloneNode(true)));}}
+this.sParams.innerHTML = "";var first = true;for(var param in parameters){var paramType = parameters[param].type;var paramSummary = parameters[param].summary;var paramName = param;this.parameters.style.display = "block";this.pLink.innerHTML = paramName;this.pOpt.style.display = "none";if(parameters[param].opt){this.pOpt.style.display = "inline";}
+this.pType.parentNode.style.display = "none";if(parameters[param][0]){this.pType.parentNode.style.display = "inline";this.pType.innerHTML = paramType;}
+this.pDesc.parentNode.style.display = "none";if(paramSummary){this.pDesc.parentNode.style.display = "inline";this.pDesc.innerHTML = paramSummary;}
+appends.push(this.pParent.appendChild(this.pSave.cloneNode(true)));if(!first) {this.sParams.appendChild(document.createTextNode(", "));}
+first = false;if(paramType){dojo.debug(this.sPTypeSave);this.sPTypeSave.innerHTML = paramType;this.sParams.appendChild(this.sPTypeSave.cloneNode(true));this.sParams.appendChild(document.createTextNode(" "));}
+dojo.debug(this.sPNameSave);this.sPNameSave.innerHTML = paramName;this.sParams.appendChild(this.sPNameSave.cloneNode(true))}
+if(message.returns){this.sType.innerHTML = message.returns;}else{this.sType.innerHTML = "void";}
+this.sName.innerHTML = message.name;this.domNode.appendChild(this.navSave);this.domNode.appendChild(this.detailSave.cloneNode(true));for(var i = 0, append; append = appends[i]; i++){dojo.html.removeNode(append);}},onPkgResult: function( results){if(this.pkgEditor){this.pkgEditor.close(true);dojo.debug(this.pkgDescription);}
+var methods = results.methods;var requires = results.requires;var description = results.description;this._pkgPath = results.path;var requireLinks = [];var appends = this._appends;while(appends.length){dojo.html.removeNode(appends.shift());}
+dojo.html.removeChildren(this.domNode);this.pkg.innerHTML = results.pkg;var hasRequires = false;for(var env in requires){hasRequires = true;this.rH3.style.display = "none";if(env != "common"){this.rH3.style.display = "";this.rH3.innerHTML = env;}
+for(var i = 0, require; require = requires[env][i]; i++){requireLinks.push({name: require});this.rLink.innerHTML = require;this.rLink.href = "#" + require;var rRow2 = this.rRow2.parentNode.insertBefore(this.rRow2.cloneNode(true), this.rRow2);rRow2.style.display = "";appends.push(rRow2);}
+var rRow = this.rRow.parentNode.insertBefore(this.rRow.cloneNode(true), this.rRow);rRow.style.display = "";appends.push(rRow);}
+if(hasRequires){appends.push(this.packageSave.appendChild(this.requires.cloneNode(true)));}
+if(results.size){for(var i = 0, method; method = methods[i]; i++){this.mLink.innerHTML = method.name;this.mLink.href = "#" + method.name;this.mDesc.parentNode.style.display = "none";if(method.summary){this.mDesc.parentNode.style.display = "inline";this.mDesc.innerHTML = method.summary;}
+var mRow = this.mRow.parentNode.insertBefore(this.mRow.cloneNode(true), this.mRow);mRow.style.display = "";appends.push(mRow);}
+appends.push(this.packageSave.appendChild(this.methods.cloneNode(true)));}
+this.domNode.appendChild(this.packageSave);this.pkgDescription.innerHTML = description;function makeSelect(fOrP, x){return function(e) {dojo.event.topic.publish("/docs/" + fOrP + "/select", x);}}
+var as = this.domNode.getElementsByTagName("a");for(var i = 0, a; a = as[i]; i++){if(a.className == "docMLink"){dojo.event.connect(a, "onclick", makeSelect("function", methods[i]));}else if(a.className == "docRLink"){dojo.event.connect(a, "onclick", makeSelect("package", requireLinks[i]));}}},onDocResults: function(fns){dojo.debug("onDocResults(): called");if(fns.length == 1){dojo.event.topic.publish("/docs/function/select", fns[0]);return;}
+dojo.html.removeChildren(this.domNode);this.count.innerHTML = fns.length;var appends = [];for(var i = 0, fn; fn = fns[i]; i++){this.fnLink.innerHTML = fn.name;this.fnLink.href = "#" + fn.name;if(fn.id){this.fnLink.href = this.fnLink.href + "," + fn.id;}
+this.summary.parentNode.style.display = "none";if(fn.summary){this.summary.parentNode.style.display = "inline";this.summary.innerHTML = fn.summary;}
+appends.push(this.rowParent.appendChild(this.rowSave.cloneNode(true)));}
+function makeSelect(x){return function(e) {dojo.event.topic.publish("/docs/function/select", x);}}
+this.domNode.appendChild(this.resultSave.cloneNode(true));var as = this.domNode.getElementsByTagName("a");for(var i = 0, a; a = as[i]; i++){dojo.event.connect(a, "onclick", makeSelect(fns[i]));}
+for(var i = 0, append; append = appends[i]; i++){this.rowParent.removeChild(append);}}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DomWidget.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DomWidget.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DomWidget.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DomWidget.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,78 @@
+
+dojo.provide("dojo.widget.DomWidget");dojo.require("dojo.event.*");dojo.require("dojo.io.*");dojo.require("dojo.widget.Widget");dojo.require("dojo.dom");dojo.require("dojo.html.style");dojo.require("dojo.xml.Parse");dojo.require("dojo.uri.*");dojo.require("dojo.lang.func");dojo.require("dojo.lang.extras");dojo.widget._cssFiles = {};dojo.widget._cssStrings = {};dojo.widget._templateCache = {};dojo.widget.defaultStrings = {dojoRoot: dojo.hostenv.getBaseScriptUri(),baseScriptUri: dojo.hostenv.getBaseScriptUri()};dojo.widget.fillFromTemplateCache = function(obj, templatePath, templateString, avoidCache){var tpath = templatePath || obj.templatePath;var tmplts = dojo.widget._templateCache;if(!tpath && !obj["widgetType"]) {do {var dummyName = "__dummyTemplate__" + dojo.widget._templateCache.dummyCount++;} while(tmplts[dummyName]);obj.widgetType = dummyName;}
+var wt = tpath?tpath.toString():obj.widgetType;var ts = tmplts[wt];if(!ts){tmplts[wt] = {"string": null, "node": null};if(avoidCache){ts = {};}else{ts = tmplts[wt];}}
+if((!obj.templateString)&&(!avoidCache)){obj.templateString = templateString || ts["string"];}
+if((!obj.templateNode)&&(!avoidCache)){obj.templateNode = ts["node"];}
+if((!obj.templateNode)&&(!obj.templateString)&&(tpath)){var tstring = dojo.hostenv.getText(tpath);if(tstring){tstring = tstring.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, "");var matches = tstring.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(matches){tstring = matches[1];}}else{tstring = "";}
+obj.templateString = tstring;if(!avoidCache){tmplts[wt]["string"] = tstring;}}
+if((!ts["string"])&&(!avoidCache)){ts.string = obj.templateString;}}
+dojo.widget._templateCache.dummyCount = 0;dojo.widget.attachProperties = ["dojoAttachPoint", "id"];dojo.widget.eventAttachProperty = "dojoAttachEvent";dojo.widget.onBuildProperty = "dojoOnBuild";dojo.widget.waiNames  = ["waiRole", "waiState"];dojo.widget.wai = {waiRole: {name: "waiRole","namespace": "http://www.w3.org/TR/xhtml2",alias: "x2",prefix: "wairole:"},waiState: {name: "waiState","namespace": "http://www.w3.org/2005/07/aaa",alias: "aaa",prefix: ""},setAttr: function(node,  ns,  attr, value){if(dojo.render.html.ie){node.setAttribute(this[ns].alias+":"+ attr, this[ns].prefix+value);}else{node.setAttributeNS(this[ns]["namespace"], attr, this[ns].prefix+value);}},getAttr: function( node,  ns,  attr){if(dojo.render.html.ie){return node.getAttribute(this[ns].alias+":"+attr);}else{return node.getAttributeNS(this[ns]["namespace"], attr);}},removeAttr: function( node,  ns,  attr){var success = true;if(dojo.render.html.ie){success = node.removeAttribute(this[ns].alias+":"+attr
 );}else{node.removeAttributeNS(this[ns]["namespace"], attr);}
+return success;}};dojo.widget.attachTemplateNodes = function(rootNode,  targetObj, events ){var elementNodeType = dojo.dom.ELEMENT_NODE;function trim(str){return str.replace(/^\s+|\s+$/g, "");}
+if(!rootNode){rootNode = targetObj.domNode;}
+if(rootNode.nodeType != elementNodeType){return;}
+var nodes = rootNode.all || rootNode.getElementsByTagName("*");var _this = targetObj;for(var x=-1; x<nodes.length; x++){var baseNode = (x == -1) ? rootNode : nodes[x];var attachPoint = [];if(!targetObj.widgetsInTemplate || !baseNode.getAttribute('dojoType')){for(var y=0; y<this.attachProperties.length; y++){var tmpAttachPoint = baseNode.getAttribute(this.attachProperties[y]);if(tmpAttachPoint){attachPoint = tmpAttachPoint.split(";");for(var z=0; z<attachPoint.length; z++){if(dojo.lang.isArray(targetObj[attachPoint[z]])){targetObj[attachPoint[z]].push(baseNode);}else{targetObj[attachPoint[z]]=baseNode;}}
+break;}}
+var attachEvent = baseNode.getAttribute(this.eventAttachProperty);if(attachEvent){var evts = attachEvent.split(";");for(var y=0; y<evts.length; y++){if((!evts[y])||(!evts[y].length)){ continue; }
+var thisFunc = null;var tevt = trim(evts[y]);if(evts[y].indexOf(":") >= 0){var funcNameArr = tevt.split(":");tevt = trim(funcNameArr[0]);thisFunc = trim(funcNameArr[1]);}
+if(!thisFunc){thisFunc = tevt;}
+var tf = function(){var ntf = new String(thisFunc);return function(evt){if(_this[ntf]){_this[ntf](dojo.event.browser.fixEvent(evt, this));}};}();dojo.event.browser.addListener(baseNode, tevt, tf, false, true);}}
+for(var y=0; y<events.length; y++){var evtVal = baseNode.getAttribute(events[y]);if((evtVal)&&(evtVal.length)){var thisFunc = null;var domEvt = events[y].substr(4);thisFunc = trim(evtVal);var funcs = [thisFunc];if(thisFunc.indexOf(";")>=0){funcs = dojo.lang.map(thisFunc.split(";"), trim);}
+for(var z=0; z<funcs.length; z++){if(!funcs[z].length){ continue; }
+var tf = function(){var ntf = new String(funcs[z]);return function(evt){if(_this[ntf]){_this[ntf](dojo.event.browser.fixEvent(evt, this));}}}();dojo.event.browser.addListener(baseNode, domEvt, tf, false, true);}}}}
+var tmpltPoint = baseNode.getAttribute(this.templateProperty);if(tmpltPoint){targetObj[tmpltPoint]=baseNode;}
+dojo.lang.forEach(dojo.widget.waiNames, function(name){var wai = dojo.widget.wai[name];var val = baseNode.getAttribute(wai.name);if(val){if(val.indexOf('-') == -1){dojo.widget.wai.setAttr(baseNode, wai.name, "role", val);}else{var statePair = val.split('-');dojo.widget.wai.setAttr(baseNode, wai.name, statePair[0], statePair[1]);}}}, this);var onBuild = baseNode.getAttribute(this.onBuildProperty);if(onBuild){eval("var node = baseNode; var widget = targetObj; "+onBuild);}}}
+dojo.widget.getDojoEventsFromStr = function(str){var re = /(dojoOn([a-z]+)(\s?))=/gi;var evts = str ? str.match(re)||[] : [];var ret = [];var lem = {};for(var x=0; x<evts.length; x++){if(evts[x].length < 1){ continue; }
+var cm = evts[x].replace(/\s/, "");cm = (cm.slice(0, cm.length-1));if(!lem[cm]){lem[cm] = true;ret.push(cm);}}
+return ret;}
+dojo.declare("dojo.widget.DomWidget",dojo.widget.Widget,function(){if((arguments.length>0)&&(typeof arguments[0] == "object")){this.create(arguments[0]);}},{templateNode: null,templateString: null,templateCssString: null,preventClobber: false,domNode: null,containerNode: null,widgetsInTemplate: false,addChild: function(	widget, overrideContainerNode, pos, ref, insertIndex){if(!this.isContainer){dojo.debug("dojo.widget.DomWidget.addChild() attempted on non-container widget");return null;}else{if(insertIndex == undefined){insertIndex = this.children.length;}
+this.addWidgetAsDirectChild(widget, overrideContainerNode, pos, ref, insertIndex);this.registerChild(widget, insertIndex);}
+return widget;},addWidgetAsDirectChild: function(	widget, overrideContainerNode, pos, ref, insertIndex){if((!this.containerNode)&&(!overrideContainerNode)){this.containerNode = this.domNode;}
+var cn = (overrideContainerNode) ? overrideContainerNode : this.containerNode;if(!pos){ pos = "after"; }
+if(!ref){if(!cn){ cn = dojo.body(); }
+ref = cn.lastChild;}
+if(!insertIndex) { insertIndex = 0; }
+widget.domNode.setAttribute("dojoinsertionindex", insertIndex);if(!ref){cn.appendChild(widget.domNode);}else{if (pos == 'insertAtIndex'){dojo.dom.insertAtIndex(widget.domNode, ref.parentNode, insertIndex);}else{if((pos == "after")&&(ref === cn.lastChild)){cn.appendChild(widget.domNode);}else{dojo.dom.insertAtPosition(widget.domNode, cn, pos);}}}},registerChild: function(widget, insertionIndex){widget.dojoInsertionIndex = insertionIndex;var idx = -1;for(var i=0; i<this.children.length; i++){if (this.children[i].dojoInsertionIndex <= insertionIndex){idx = i;}}
+this.children.splice(idx+1, 0, widget);widget.parent = this;widget.addedTo(this, idx+1);delete dojo.widget.manager.topWidgets[widget.widgetId];},removeChild: function( widget){dojo.dom.removeNode(widget.domNode);return dojo.widget.DomWidget.superclass.removeChild.call(this, widget);},getFragNodeRef: function(frag){if(!frag){return null;}
+if(!frag[this.getNamespacedType()]){dojo.raise("Error: no frag for widget type " + this.getNamespacedType()
++ ", id " + this.widgetId
++ " (maybe a widget has set it's type incorrectly)");}
+return frag[this.getNamespacedType()]["nodeRef"];},postInitialize: function( args,  frag,  parentComp){var sourceNodeRef = this.getFragNodeRef(frag);if (parentComp && (parentComp.snarfChildDomOutput || !sourceNodeRef)){parentComp.addWidgetAsDirectChild(this, "", "insertAtIndex", "",  args["dojoinsertionindex"], sourceNodeRef);} else if (sourceNodeRef){if(this.domNode && (this.domNode !== sourceNodeRef)){var oldNode = sourceNodeRef.parentNode.replaceChild(this.domNode, sourceNodeRef);}}
+if ( parentComp ) {parentComp.registerChild(this, args.dojoinsertionindex);} else {dojo.widget.manager.topWidgets[this.widgetId]=this;}
+if(this.widgetsInTemplate){var parser = new dojo.xml.Parse();var subContainerNode;var subnodes = this.domNode.getElementsByTagName("*");for(var i=0;i<subnodes.length;i++){if(subnodes[i].getAttribute('dojoAttachPoint') == 'subContainerWidget'){subContainerNode = subnodes[i];}
+if(subnodes[i].getAttribute('dojoType')){subnodes[i].setAttribute('_isSubWidget', true);}}
+if (this.isContainer && !this.containerNode){if(subContainerNode){var src = this.getFragNodeRef(frag);if (src){dojo.dom.moveChildren(src, subContainerNode);frag['dojoDontFollow'] = true;}}else{dojo.debug("No subContainerWidget node can be found in template file for widget "+this);}}
+var templatefrag = parser.parseElement(this.domNode, null, true);dojo.widget.getParser().createSubComponents(templatefrag, this);var subwidgets = [];var stack = [this];var w;while((w = stack.pop())){for(var i = 0; i < w.children.length; i++){var cwidget = w.children[i];if(cwidget._processedSubWidgets || !cwidget.extraArgs['_issubwidget']){ continue; }
+subwidgets.push(cwidget);if(cwidget.isContainer){stack.push(cwidget);}}}
+for(var i = 0; i < subwidgets.length; i++){var widget = subwidgets[i];if(widget._processedSubWidgets){dojo.debug("This should not happen: widget._processedSubWidgets is already true!");return;}
+widget._processedSubWidgets = true;if(widget.extraArgs['dojoattachevent']){var evts = widget.extraArgs['dojoattachevent'].split(";");for(var j=0; j<evts.length; j++){var thisFunc = null;var tevt = dojo.string.trim(evts[j]);if(tevt.indexOf(":") >= 0){var funcNameArr = tevt.split(":");tevt = dojo.string.trim(funcNameArr[0]);thisFunc = dojo.string.trim(funcNameArr[1]);}
+if(!thisFunc){thisFunc = tevt;}
+if(dojo.lang.isFunction(widget[tevt])){dojo.event.kwConnect({srcObj: widget,srcFunc: tevt,targetObj: this,targetFunc: thisFunc});}else{alert(tevt+" is not a function in widget "+widget);}}}
+if(widget.extraArgs['dojoattachpoint']){this[widget.extraArgs['dojoattachpoint']] = widget;}}}
+if(this.isContainer && !frag["dojoDontFollow"]){dojo.widget.getParser().createSubComponents(frag, this);}},buildRendering: function( args,  frag){var ts = dojo.widget._templateCache[this.widgetType];if(args["templatecsspath"]){args["templateCssPath"] = args["templatecsspath"];}
+var cpath = args["templateCssPath"] || this.templateCssPath;if(cpath && !dojo.widget._cssFiles[cpath.toString()]){if((!this.templateCssString)&&(cpath)){this.templateCssString = dojo.hostenv.getText(cpath);this.templateCssPath = null;}
+dojo.widget._cssFiles[cpath.toString()] = true;}
+if((this["templateCssString"])&&(!this.templateCssString["loaded"])){dojo.html.insertCssText(this.templateCssString, null, cpath);if(!this.templateCssString){ this.templateCssString = ""; }
+this.templateCssString.loaded = true;}
+if(
+(!this.preventClobber)&&(
+(this.templatePath)||
+(this.templateNode)||
+(
+(this["templateString"])&&(this.templateString.length)
+)||
+(
+(typeof ts != "undefined")&&( (ts["string"])||(ts["node"]) )
+)
+)
+){this.buildFromTemplate(args, frag);}else{this.domNode = this.getFragNodeRef(frag);}
+this.fillInTemplate(args, frag);},buildFromTemplate: function( args,  frag){var avoidCache = false;if(args["templatepath"]){args["templatePath"] = args["templatepath"];}
+dojo.widget.fillFromTemplateCache(	this,args["templatePath"],null,avoidCache);var ts = dojo.widget._templateCache[this.templatePath?this.templatePath.toString():this.widgetType];if((ts)&&(!avoidCache)){if(!this.templateString.length){this.templateString = ts["string"];}
+if(!this.templateNode){this.templateNode = ts["node"];}}
+var matches = false;var node = null;var tstr = this.templateString;if((!this.templateNode)&&(this.templateString)){matches = this.templateString.match(/\$\{([^\}]+)\}/g);if(matches) {var hash = this.strings || {};for(var key in dojo.widget.defaultStrings) {if(dojo.lang.isUndefined(hash[key])) {hash[key] = dojo.widget.defaultStrings[key];}}
+for(var i = 0; i < matches.length; i++) {var key = matches[i];key = key.substring(2, key.length-1);var kval = (key.substring(0, 5) == "this.") ? dojo.lang.getObjPathValue(key.substring(5), this) : hash[key];var value;if((kval)||(dojo.lang.isString(kval))){value = new String((dojo.lang.isFunction(kval)) ? kval.call(this, key, this.templateString) : kval);while (value.indexOf("\"") > -1) {value=value.replace("\"","&quot;");}
+tstr = tstr.replace(matches[i], value);}}}else{this.templateNode = this.createNodesFromText(this.templateString, true)[0];if(!avoidCache){ts.node = this.templateNode;}}}
+if((!this.templateNode)&&(!matches)){dojo.debug("DomWidget.buildFromTemplate: could not create template");return false;}else if(!matches){node = this.templateNode.cloneNode(true);if(!node){ return false; }}else{node = this.createNodesFromText(tstr, true)[0];}
+this.domNode = node;this.attachTemplateNodes();if (this.isContainer && this.containerNode){var src = this.getFragNodeRef(frag);if (src){dojo.dom.moveChildren(src, this.containerNode);}}},attachTemplateNodes: function(baseNode, targetObj){if(!baseNode){ baseNode = this.domNode; }
+if(!targetObj){ targetObj = this; }
+return dojo.widget.attachTemplateNodes(baseNode, targetObj,dojo.widget.getDojoEventsFromStr(this.templateString));},fillInTemplate: function(){},destroyRendering: function(){try{delete this.domNode;}catch(e){  }},createNodesFromText: function(){dojo.unimplemented("dojo.widget.DomWidget.createNodesFromText");}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownContainer.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.widget.DropdownContainer");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.PopupContainer");dojo.require("dojo.event.*");dojo.require("dojo.html.layout");dojo.require("dojo.html.display");dojo.require("dojo.html.iframe");dojo.require("dojo.html.util");dojo.widget.defineWidget(
+"dojo.widget.DropdownContainer",dojo.widget.HtmlWidget,{inputWidth: "7em",id: "",inputId: "",inputName: "",iconURL: dojo.uri.dojoUri("src/widget/templates/images/combo_box_arrow.png"),iconAlt: "",containerToggle: "plain",containerToggleDuration: 150,templateString: '<span style="white-space:nowrap"><input type="hidden" name="" value="" dojoAttachPoint="valueNode" /><input name="" type="text" value="" style="vertical-align:middle;" dojoAttachPoint="inputNode" autocomplete="off" /> <img src="${this.iconURL}" alt="${this.iconAlt}" dojoAttachEvent="onclick:onIconClick" dojoAttachPoint="buttonNode" style="vertical-align:middle; cursor:pointer; cursor:hand" /></span>',templateCssPath: "",isContainer: true,attachTemplateNodes: function(){dojo.widget.DropdownContainer.superclass.attachTemplateNodes.apply(this, arguments);this.popup = dojo.widget.createWidget("PopupContainer", {toggle: this.containerToggle, toggleDuration: this.containerToggleDuration});this.containerNode = this.popu
 p.domNode;},fillInTemplate: function(){this.domNode.appendChild(this.popup.domNode);if(this.id) { this.domNode.id = this.id; }
+if(this.inputId){ this.inputNode.id = this.inputId; }
+if(this.inputName){ this.inputNode.name = this.inputName; }
+this.inputNode.style.width = this.inputWidth;this.inputNode.disabled = this.disabled;dojo.event.connect(this.inputNode, "onchange", this, "onInputChange");},onIconClick: function( evt){if(this.disabled) return;if(!this.popup.isShowingNow){this.popup.open(this.inputNode, this, this.buttonNode);}else{this.popup.close();}},hideContainer: function(){if(this.popup.isShowingNow){this.popup.close();}},onInputChange: function(){},enable: function() {this.inputNode.disabled = false;dojo.widget.DropdownContainer.superclass.enable.apply(this, arguments);},disable: function() {this.inputNode.disabled = true;dojo.widget.DropdownContainer.superclass.disable.apply(this, arguments);}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/DropdownDatePicker.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,14 @@
+
+dojo.provide("dojo.widget.DropdownDatePicker");dojo.require("dojo.widget.*");dojo.require("dojo.widget.DropdownContainer");dojo.require("dojo.widget.DatePicker");dojo.require("dojo.event.*");dojo.require("dojo.html.*");dojo.require("dojo.date.format");dojo.require("dojo.date.serialize");dojo.require("dojo.string.common");dojo.require("dojo.i18n.common");dojo.requireLocalization("dojo.widget", "DropdownDatePicker");dojo.widget.defineWidget(
+"dojo.widget.DropdownDatePicker",dojo.widget.DropdownContainer,{iconURL: dojo.uri.dojoUri("src/widget/templates/images/dateIcon.gif"),zIndex: "10",formatLength: "short",displayFormat: "",dateFormat: "",saveFormat: "",value: "",name: "",displayWeeks: 6,adjustWeeks: false,startDate: "1492-10-12",endDate: "2941-10-12",weekStartsOn: "",staticDisplay: false,postMixInProperties: function(localProperties, frag){dojo.widget.DropdownDatePicker.superclass.postMixInProperties.apply(this, arguments);var messages = dojo.i18n.getLocalization("dojo.widget", "DropdownDatePicker", this.lang);this.iconAlt = messages.selectDate;if(typeof(this.value)=='string'&&this.value.toLowerCase()=='today'){this.value = new Date();}
+if(this.value && isNaN(this.value)){var orig = this.value;this.value = dojo.date.fromRfc3339(this.value);if(!this.value){this.value = new Date(orig); dojo.deprecated("dojo.widget.DropdownDatePicker", "date attributes must be passed in Rfc3339 format", "0.5");}}
+if(this.value && !isNaN(this.value)){this.value = new Date(this.value);}},fillInTemplate: function(args, frag){dojo.widget.DropdownDatePicker.superclass.fillInTemplate.call(this, args, frag);var dpArgs = {widgetContainerId: this.widgetId, lang: this.lang, value: this.value,startDate: this.startDate, endDate: this.endDate, displayWeeks: this.displayWeeks,weekStartsOn: this.weekStartsOn, adjustWeeks: this.adjustWeeks, staticDisplay: this.staticDisplay};this.datePicker = dojo.widget.createWidget("DatePicker", dpArgs, this.containerNode, "child");dojo.event.connect(this.datePicker, "onValueChanged", this, "_updateText");if(this.value){this._updateText();}
+this.containerNode.style.zIndex = this.zIndex;this.containerNode.explodeClassName = "calendarBodyContainer";this.valueNode.name=this.name;},getValue: function(){return this.valueNode.value;},getDate: function(){return this.datePicker.value;},setValue: function(rfcDate){this.setDate(rfcDate);},setDate: function(dateObj){this.datePicker.setDate(dateObj);this._syncValueNode();},_updateText: function(){if(this.dateFormat){dojo.deprecated("dojo.widget.DropdownDatePicker","Must use displayFormat attribute instead of dateFormat.  See dojo.date.format for specification.", "0.5");this.inputNode.value = dojo.date.strftime(this.datePicker.value, this.dateFormat, this.lang);}else{this.inputNode.value = dojo.date.format(this.datePicker.value,{formatLength:this.formatLength, datePattern:this.displayFormat, selector:'dateOnly', locale:this.lang});}
+if(this.value < this.datePicker.startDate||this.value>this.datePicker.endDate){this.inputNode.value = "";}
+this._syncValueNode();this.onValueChanged(this.getDate());this.hideContainer();},onValueChanged: function(dateObj){},onInputChange: function(){if(this.dateFormat){dojo.deprecated("dojo.widget.DropdownDatePicker","Cannot parse user input.  Must use displayFormat attribute instead of dateFormat.  See dojo.date.format for specification.", "0.5");}else{var input = dojo.string.trim(this.inputNode.value);if(input){var inputDate = dojo.date.parse(input,{formatLength:this.formatLength, datePattern:this.displayFormat, selector:'dateOnly', locale:this.lang});if(inputDate){this.setDate(inputDate);}} else {this.valueNode.value = input;}}
+if(input){ this._updateText(); }},_syncValueNode: function(){var date = this.datePicker.value;var value;switch(this.saveFormat.toLowerCase()){case "rfc": case "iso": case "":
+value = dojo.date.toRfc3339(date, 'dateOnly');break;case "posix": case "unix":
+value = Number(date);break;default:
+value = dojo.date.format(date, {datePattern:this.saveFormat, selector:'dateOnly', locale:this.lang});}
+this.valueNode.value = value;},destroy: function(finalize){this.datePicker.destroy(finalize);dojo.widget.DropdownDatePicker.superclass.destroy.apply(this, arguments);}}
+);
\ No newline at end of file

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