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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/validate/jp.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.validate.jp");dojo.require("dojo.validate.common");dojo.validate.isJapaneseCurrency = function(value) {var flags = {symbol: "\u00a5",fractional: false};return dojo.validate.isCurrency(value, flags);}

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

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

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

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

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

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

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

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

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

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

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

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

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Checkbox.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Checkbox.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Checkbox.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Checkbox.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,9 @@
+
+dojo.provide("dojo.widget.Checkbox");dojo.require("dojo.widget.*");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.event.*");dojo.require("dojo.html.style");dojo.require("dojo.html.selection");dojo.widget.defineWidget(
+"dojo.widget.Checkbox",dojo.widget.HtmlWidget,{templatePath: dojo.uri.dojoUri('src/widget/templates/Checkbox.html'),templateCssPath: dojo.uri.dojoUri('src/widget/templates/Checkbox.css'),name: "",id: "",checked: false,tabIndex: "",value: "on",postMixInProperties: function(){dojo.widget.Checkbox.superclass.postMixInProperties.apply(this, arguments);if(!this.disabled && this.tabIndex==""){ this.tabIndex="0"; }},fillInTemplate: function(){this._setInfo();},postCreate: function(){var notcon = true;this.id = this.id !="" ? this.id : this.widgetId;if(this.id != ""){var labels = document.getElementsByTagName("label");if (labels != null && labels.length > 0){for(var i=0; i<labels.length; i++){if (labels[i].htmlFor == this.id){labels[i].id = (labels[i].htmlFor + "label");this._connectEvents(labels[i]);dojo.widget.wai.setAttr(this.domNode, "waiState", "labelledby", labels[i].id);break;}}}}
+this._connectEvents(this.domNode);this.inputNode.checked=this.checked;},_connectEvents: function( node){dojo.event.connect(node, "onmouseover", this, "mouseOver");dojo.event.connect(node, "onmouseout", this, "mouseOut");dojo.event.connect(node, "onkey", this, "onKey");dojo.event.connect(node, "onclick", this, "_onClick");dojo.html.disableSelection(node);},_onClick: function( e){if(this.disabled == false){this.checked = !this.checked;this._setInfo();}
+e.preventDefault();e.stopPropagation();this.onClick();},setValue: function( bool){if(this.disabled == false){this.checked = bool;this._setInfo();}},onClick: function(){},onKey: function( e){var k = dojo.event.browser.keys;if(e.key == " "){this._onClick(e);}},mouseOver: function( e){this._hover(e, true);},mouseOut: function( e){this._hover(e, false);},_hover: function( e,  isOver){if (this.disabled == false){var state = this.checked ? "On" : "Off";var style = "dojoHtmlCheckbox" + state + "Hover";if (isOver){dojo.html.addClass(this.imageNode, style);}else{dojo.html.removeClass(this.imageNode,style);}}},_setInfo: function(){var state = "dojoHtmlCheckbox" + (this.disabled ? "Disabled" : "") + (this.checked ? "On" : "Off");dojo.html.setClass(this.imageNode, "dojoHtmlCheckbox " + state);this.inputNode.checked = this.checked;if(this.disabled){this.inputNode.setAttribute("disabled",true);}else{this.inputNode.removeAttribute("disabled");}
+dojo.widget.wai.setAttr(this.domNode, "waiState", "checked", this.checked);}}
+);dojo.widget.defineWidget(
+"dojo.widget.a11y.Checkbox",dojo.widget.Checkbox,{templatePath: dojo.uri.dojoUri('src/widget/templates/CheckboxA11y.html'),fillInTemplate: function(){},postCreate: function(args, frag){this.inputNode.checked=this.checked;if (this.disabled){this.inputNode.setAttribute("disabled",true);}},_onClick: function(){this.onClick();}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Clock.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Clock.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Clock.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/Clock.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,25 @@
+
+dojo.provide("dojo.widget.Clock");dojo.require("dojo.widget.*");dojo.require("dojo.gfx.*");dojo.require("dojo.uri.Uri");dojo.require("dojo.lang.common");dojo.require("dojo.lang.timing.Timer");dojo.widget.defineWidget(
+"dojo.widget.Clock",dojo.widget.HtmlWidget,function(){var self=this;this.timeZoneOffset=0;this.label="";this.date=new Date();this.handColor="#788598";this.handStroke="#6f7b8c";this.secondHandColor=[201, 4, 5, 0.8];this.topLabelColor="#efefef";this.labelColor="#fff";this.timer = new dojo.lang.timing.Timer(1000);this.center={ x:75, y:75 };this.hands={hour:null,minute:null,second:null};this.shadows={hour:{ shadow:null, shift:{ dx:2, dy:2}},minute:{ shadow:null, shift:{ dx:2, dy:3}},second:{ shadow:null, shift:{ dx:4, dy:4}}};this.image = dojo.uri.dojoUri("src/widget/templates/images/clock.png");this.surface=null;this.labelNode=null;this.topLabelNode=null;this.draw=function(){self.date=new Date();var h=(self.date.getHours()+self.timeZoneOffset) % 12;var m=self.date.getMinutes();var s=self.date.getSeconds();self.placeHour(h, m, s);self.placeMinute(m, s);self.placeSecond(s);self.topLabelNode.innerHTML=((self.date.getHours()+self.timeZoneOffset)>11)?"PM":"AM";};this.timer.onTick=se
 lf.draw;},{set:function(dt){this.date=dt;if(!this.timer.isRunning){this.draw();}},start:function(){ this.timer.start(); },stop:function(){ this.timer.stop(); },_initPoly:function(parent, points){var path = parent.createPath();var first = true;dojo.lang.forEach(points, function(c){if(first){path.moveTo(c.x, c.y);first=false;} else {path.lineTo(c.x, c.y);}});return path;},_placeHand:function(shape, angle, shift){var move = { dx:this.center.x + (shift?shift.dx:0), dy:this.center.y+(shift?shift.dy:0) };return shape.setTransform([move, dojo.gfx.matrix.rotateg(-angle)]);},placeHour:function(h, m, s){var angle=30 *(h + m/60 + s/3600);this._placeHand(this.hands.hour, angle);this._placeHand(this.shadows.hour.shadow, angle, this.shadows.hour.shift);},placeMinute:function(m, s){var angle=6 * (m + s/60);this._placeHand(this.hands.minute, angle);this._placeHand(this.shadows.minute.shadow, angle, this.shadows.minute.shift);},placeSecond:function(s){var angle=6 * s;this._placeHand(this.han
 ds.second, angle);this._placeHand(this.shadows.second.shadow, angle, this.shadows.second.shift);},init:function(){if(this.domNode.style.position != "absolute"){this.domNode.style.position = "relative";}
+while(this.domNode.childNodes.length>0){this.domNode.removeChild(this.domNode.childNodes[0]);}
+this.domNode.style.width="150px";this.domNode.style.height="150px";this.surface=dojo.gfx.createSurface(this.domNode, 150, 150);this.surface.createRect({width: 150, height: 150});this.surface.createImage({width: 150, height: 150, src: this.image+""});var hP=[ {x: -3, y: -4}, {x: 3, y: -4}, {x: 1, y: -27}, { x:-1, y:-27}, {x: -3, y: -4} ];var mP=[ {x: -3, y: -4}, {x: 3, y: -4}, {x: 1, y: -38}, {x:-1, y:-38}, {x: -3, y: -4} ];var sP=[ {x: -2, y: -2}, {x: 2, y: -2}, {x: 1, y: -45}, {x: -1, y: -45}, {x: -2, y: -2} ];this.shadows.hour.shadow = this._initPoly(this.surface, hP)
+.setFill([0, 0, 0, 0.1]);this.hands.hour = this._initPoly(this.surface, hP)
+.setStroke({color: this.handStroke, width:1 })
+.setFill({type:"linear", 
+x1:0, y1:0, x2:0, y2:-27, 
+colors:[{offset:0, color:"#fff"}, {offset:0.33, color:this.handColor}]});this.shadows.minute.shadow = this._initPoly(this.surface, mP)
+.setFill([0, 0, 0, 0.1]);this.hands.minute = this._initPoly(this.surface, mP)
+.setStroke({color: this.handStroke, width:1 })
+.setFill({type:"linear", 
+x1:0, y1:0, x2:0, y2:-38, 
+colors:[{offset:0, color:"#fff"}, {offset:0.33, color:this.handColor}]});this.surface.createCircle({r: 6})
+.setStroke({color: this.handStroke, width:2 })
+.setFill("#fff")
+.setTransform({dx: 75, dy: 75});this.shadows.second.shadow = this._initPoly(this.surface, sP)
+.setFill([0, 0, 0, 0.1]);this.hands.second = this._initPoly(this.surface, sP)
+.setFill(this.secondHandColor);this.surface.createCircle({r: 4})
+.setFill(this.secondHandColor)
+.setTransform({dx: 75, dy: 75});this.topLabelNode=document.createElement("div");with(this.topLabelNode.style){position="absolute";top="3px";left="0px";color=this.topLabelColor;textAlign="center";width="150px";fontFamily="sans-serif";fontSize="11px";textTransform="uppercase";fontWeight="bold";}
+this.topLabelNode.innerHTML=((this.date.getHours()+this.timeZoneOffset)>11)?"PM":"AM";this.domNode.appendChild(this.topLabelNode);this.labelNode=document.createElement("div");with(this.labelNode.style){position="absolute";top="134px";left="0px";color=this.labelColor;textAlign="center";width="150px";fontFamily="sans-serif";fontSize="10px";textTransform="uppercase";fontWeight="bold";}
+this.labelNode.innerHTML=this.label||"&nbsp;";this.domNode.appendChild(this.labelNode);this.draw();},postCreate:function(){this.init();this.start();}}
+);
\ No newline at end of file

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ColorPalette.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ColorPalette.js?view=auto&rev=471116
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ColorPalette.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/widget/ColorPalette.js Fri Nov  3 20:39:29 2006
@@ -0,0 +1,11 @@
+
+dojo.provide("dojo.widget.ColorPalette");dojo.require("dojo.widget.*");dojo.require("dojo.html.layout");dojo.require("dojo.html.display");dojo.require("dojo.html.selection");dojo.widget.defineWidget(
+"dojo.widget.ColorPalette",dojo.widget.HtmlWidget,{palette: "7x10",bgIframe: null,palettes: {"7x10": [["fff", "fcc", "fc9", "ff9", "ffc", "9f9", "9ff", "cff", "ccf", "fcf"],["ccc", "f66", "f96", "ff6", "ff3", "6f9", "3ff", "6ff", "99f", "f9f"],["c0c0c0", "f00", "f90", "fc6", "ff0", "3f3", "6cc", "3cf", "66c", "c6c"],["999", "c00", "f60", "fc3", "fc0", "3c0", "0cc", "36f", "63f", "c3c"],["666", "900", "c60", "c93", "990", "090", "399", "33f", "60c", "939"],["333", "600", "930", "963", "660", "060", "366", "009", "339", "636"],["000", "300", "630", "633", "330", "030", "033", "006", "309", "303"]],"3x4": [["ffffff", "00ff00", "008000", "0000ff"],["c0c0c0", "ffff00", "ff00ff", "000080"],["808080", "ff0000", "800080", "000000"]]},buildRendering: function () {this.domNode = document.createElement("table");dojo.html.disableSelection(this.domNode);dojo.event.connect(this.domNode, "onmousedown", function (e) {e.preventDefault();});with (this.domNode) {cellPadding = "0"; cellSpacing 
 = "1"; border = "1";style.backgroundColor = "white";}
+var colors = this.palettes[this.palette];for (var i = 0; i < colors.length; i++) {var tr = this.domNode.insertRow(-1);for (var j = 0; j < colors[i].length; j++) {if (colors[i][j].length == 3) {colors[i][j] = colors[i][j].replace(/(.)(.)(.)/, "$1$1$2$2$3$3");}
+var td = tr.insertCell(-1);with (td.style) {backgroundColor = "#" + colors[i][j];border = "1px solid gray";width = height = "15px";fontSize = "1px";}
+td.color = "#" + colors[i][j];td.onmouseover = function (e) { this.style.borderColor = "white"; }
+td.onmouseout = function (e) { this.style.borderColor = "gray"; }
+dojo.event.connect(td, "onmousedown", this, "click");td.innerHTML = "&nbsp;";}}
+if(dojo.render.html.ie){this.bgIframe = document.createElement("<iframe frameborder='0' src='javascript:void(0);'>");with(this.bgIframe.style){position = "absolute";left = top = "0px";display = "none";}
+dojo.body().appendChild(this.bgIframe);dojo.html.setOpacity(this.bgIframe, 0);}},click: function (e) {this.onColorSelect(e.currentTarget.color);e.currentTarget.style.borderColor = "gray";},onColorSelect: function (color) { },hide: function (){this.domNode.parentNode.removeChild(this.domNode);if(this.bgIframe){this.bgIframe.style.display = "none";}},showAt: function (x, y) {with(this.domNode.style){top = y + "px";left = x + "px";zIndex = 999;}
+dojo.body().appendChild(this.domNode);if(this.bgIframe){with(this.bgIframe.style){display = "block";top = y + "px";left = x + "px";zIndex = 998;var s = dojo.html.getMarginBox(this.domNode);width = s.width + "px";height = s.height + "px";}}}});
\ No newline at end of file

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