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 2007/02/06 06:01:49 UTC

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,4 @@
+
+dojo.provide("dojo.crypto");dojo.crypto.cipherModes={ECB:0,CBC:1,PCBC:2,CFB:3,OFB:4,CTR:5
+};dojo.crypto.outputTypes={Base64:0,Hex:1,String:2,Raw:3
+};
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Blowfish.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Blowfish.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Blowfish.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Blowfish.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,76 @@
+
+dojo.require("dojo.crypto");dojo.provide("dojo.crypto.Blowfish");dojo.crypto.Blowfish = new function(){var POW2=Math.pow(2,2);var POW3=Math.pow(2,3);var POW4=Math.pow(2,4);var POW8=Math.pow(2,8);var POW16=Math.pow(2,16);var POW24=Math.pow(2,24);var iv=null;var boxes={p:[
+0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,0x9216d5d9, 0x8979fb1b
+],s0:[
+0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xa
 b5133a3, 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afc
 b56c, 0x2dd1d35b,0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,0xb6636521, 0xe7b9f9b6
 , 0xff34052e, 0xc5855664, 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a
+],s1:[
+0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe
 94b7d8c, 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319e
 e9d5, 0xc021b8f7,0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,0xc5c43465, 0x713e38d8
 , 0x3d28f89e, 0xf16dff20, 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7
+],s2:[
+0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5
 d886e17, 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745
 ae04, 0xd736fccc,0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,0x6fd5c7e7, 0x56e14ec4
 , 0x362abfce, 0xddc6c837, 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0
+],s3:[
+0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa
 93a072a, 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9
 317c, 0xe0b12b4f,0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,0x90d4f869, 0xa65cdea0
 , 0x3f09252d, 0xc208e69f, 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6
+]
+}
+function add(x,y){var sum=(x+y)&0xffffffff;if (sum<0){sum=-sum;return (0x10000*((sum>>16)^0xffff))+(((sum&0xffff)^0xffff)+1);}
+return sum;}
+function split(x){var r=x&0xffffffff;if(r<0) {r=-r;return [((r&0xffff)^0xffff)+1,(r>>16)^0xffff];}
+return [r&0xffff,(r>>16)];}
+function xor(x,y){var xs=split(x);var ys=split(y);return (0x10000*(xs[1]^ys[1]))+(xs[0]^ys[0]);}
+function $(v, box){var d=v&0xff; v>>=8;var c=v&0xff; v>>=8;var b=v&0xff; v>>=8;var a=v&0xff;var r=add(box.s0[a],box.s1[b]);r=xor(r,box.s2[c]);return add(r,box.s3[d]);}
+function eb(o, box){var l=o.left;var r=o.right;l=xor(l,box.p[0]);r=xor(r,xor($(l,box),box.p[1]));l=xor(l,xor($(r,box),box.p[2]));r=xor(r,xor($(l,box),box.p[3]));l=xor(l,xor($(r,box),box.p[4]));r=xor(r,xor($(l,box),box.p[5]));l=xor(l,xor($(r,box),box.p[6]));r=xor(r,xor($(l,box),box.p[7]));l=xor(l,xor($(r,box),box.p[8]));r=xor(r,xor($(l,box),box.p[9]));l=xor(l,xor($(r,box),box.p[10]));r=xor(r,xor($(l,box),box.p[11]));l=xor(l,xor($(r,box),box.p[12]));r=xor(r,xor($(l,box),box.p[13]));l=xor(l,xor($(r,box),box.p[14]));r=xor(r,xor($(l,box),box.p[15]));l=xor(l,xor($(r,box),box.p[16]));o.right=l;o.left=xor(r,box.p[17]);}
+function db(o, box){var l=o.left;var r=o.right;l=xor(l,box.p[17]);r=xor(r,xor($(l,box),box.p[16]));l=xor(l,xor($(r,box),box.p[15]));r=xor(r,xor($(l,box),box.p[14]));l=xor(l,xor($(r,box),box.p[13]));r=xor(r,xor($(l,box),box.p[12]));l=xor(l,xor($(r,box),box.p[11]));r=xor(r,xor($(l,box),box.p[10]));l=xor(l,xor($(r,box),box.p[9]));r=xor(r,xor($(l,box),box.p[8]));l=xor(l,xor($(r,box),box.p[7]));r=xor(r,xor($(l,box),box.p[6]));l=xor(l,xor($(r,box),box.p[5]));r=xor(r,xor($(l,box),box.p[4]));l=xor(l,xor($(r,box),box.p[3]));r=xor(r,xor($(l,box),box.p[2]));l=xor(l,xor($(r,box),box.p[1]));o.right=l;o.left=xor(r,box.p[0]);}
+function init(key){var k=key;if (typeof(k)=="string"){var a=[];for(var i=0; i<k.length; i++)
+a.push(k.charCodeAt(i)&0xff);k=a;}
+var box = { p:[], s0:[], s1:[], s2:[], s3:[] };for(var i=0; i<boxes.p.length; i++) box.p.push(boxes.p[i]);for(var i=0; i<boxes.s0.length; i++) box.s0.push(boxes.s0[i]);for(var i=0; i<boxes.s1.length; i++) box.s1.push(boxes.s1[i]);for(var i=0; i<boxes.s2.length; i++) box.s2.push(boxes.s2[i]);for(var i=0; i<boxes.s3.length; i++) box.s3.push(boxes.s3[i]);var pos=0;var data=0;for(var i=0; i < box.p.length; i++){for (var j=0; j<4; j++){data = (data*POW8) | k[pos];if(++pos==k.length) pos=0;}
+box.p[i] = xor(box.p[i], data);}
+var res={ left:0, right:0 };for(var i=0; i<box.p.length;){eb(res, box);box.p[i++]=res.left;box.p[i++]=res.right;}
+for (var i=0; i<4; i++){for(var j=0; j<box["s"+i].length;){eb(res, box);box["s"+i][j++]=res.left;box["s"+i][j++]=res.right;}}
+return box;}
+function toBase64(ba){var p="=";var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var s=[];var l=ba.length;var rm=l%3;var x=l-rm;for (var i=0; i<x;){var t=ba[i++]<<16|ba[i++]<<8|ba[i++];s.push(tab.charAt((t>>>18)&0x3f));s.push(tab.charAt((t>>>12)&0x3f));s.push(tab.charAt((t>>>6)&0x3f));s.push(tab.charAt(t&0x3f));}
+switch(rm){case 2:{var t=ba[i++]<<16|ba[i++]<<8;s.push(tab.charAt((t>>>18)&0x3f));s.push(tab.charAt((t>>>12)&0x3f));s.push(tab.charAt((t>>>6)&0x3f));s.push(p);break;}
+case 1:{var t=ba[i++]<<16;s.push(tab.charAt((t>>>18)&0x3f));s.push(tab.charAt((t>>>12)&0x3f));s.push(p);s.push(p);break;}}
+return s.join("");}
+function fromBase64(str){var s=str.split("");var p="=";var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var out=[];var l=s.length;while(s[--l]==p){ }
+for (var i=0; i<l;){var t=tab.indexOf(s[i++])<<18|tab.indexOf(s[i++])<<12|tab.indexOf(s[i++])<<6|tab.indexOf(s[i++]);out.push((t>>>16)&0xff);out.push((t>>>8)&0xff);out.push(t&0xff);}
+return out;}
+this.getIV=function( outputType){var out=outputType||dojo.crypto.outputTypes.Base64;switch(out){case dojo.crypto.outputTypes.Hex:{var s=[];for(var i=0; i<iv.length; i++)
+s.push((iv[i]).toString(16));return s.join("");}
+case dojo.crypto.outputTypes.String:{return iv.join("");}
+case dojo.crypto.outputTypes.Raw:{return iv;}
+default:{return toBase64(iv);}}
+};this.setIV=function(data, inputType){var ip=inputType||dojo.crypto.outputTypes.Base64;var ba=null;switch(ip){case dojo.crypto.outputTypes.String:{ba=[];for (var i=0; i<data.length; i++){ba.push(data.charCodeAt(i));}
+break;}
+case dojo.crypto.outputTypes.Hex:{ba=[];var i=0;while (i+1<data.length){ba.push(parseInt(data.substr(i,2),16));i+=2;}
+break;}
+case dojo.crypto.outputTypes.Raw:{ba=data;break;}
+default:{ba=fromBase64(data);break;}}
+iv={};iv.left=ba[0]*POW24|ba[1]*POW16|ba[2]*POW8|ba[3];iv.right=ba[4]*POW24|ba[5]*POW16|ba[6]*POW8|ba[7];}
+this.encrypt = function(plaintext, key, ao){var out=dojo.crypto.outputTypes.Base64;var mode=dojo.crypto.cipherModes.EBC;if (ao){if (ao.outputType) out=ao.outputType;if (ao.cipherMode) mode=ao.cipherMode;}
+var bx = init(key);var padding = 8-(plaintext.length&7);for (var i=0; i<padding; i++) plaintext+=String.fromCharCode(padding);var cipher=[];var count=plaintext.length >> 3;var pos=0;var o={};var isCBC=(mode==dojo.crypto.cipherModes.CBC);var vector={left:iv.left||null, right:iv.right||null};for(var i=0; i<count; i++){o.left=plaintext.charCodeAt(pos)*POW24
+|plaintext.charCodeAt(pos+1)*POW16
+|plaintext.charCodeAt(pos+2)*POW8
+|plaintext.charCodeAt(pos+3);o.right=plaintext.charCodeAt(pos+4)*POW24
+|plaintext.charCodeAt(pos+5)*POW16
+|plaintext.charCodeAt(pos+6)*POW8
+|plaintext.charCodeAt(pos+7);if(isCBC){o.left=xor(o.left, vector.left);o.right=xor(o.right, vector.right);}
+eb(o, bx);if(isCBC){vector.left=o.left;vector.right=o.right;dojo.crypto.outputTypes.Hex
+}
+cipher.push((o.left>>24)&0xff);cipher.push((o.left>>16)&0xff);cipher.push((o.left>>8)&0xff);cipher.push(o.left&0xff);cipher.push((o.right>>24)&0xff);cipher.push((o.right>>16)&0xff);cipher.push((o.right>>8)&0xff);cipher.push(o.right&0xff);pos+=8;}
+switch(out){case dojo.crypto.outputTypes.Hex:{var s=[];for(var i=0; i<cipher.length; i++)
+s.push((cipher[i]).toString(16));return s.join("");}
+case dojo.crypto.outputTypes.String:{return cipher.join("");}
+case dojo.crypto.outputTypes.Raw:{return cipher;}
+default:{return toBase64(cipher);}}
+};this.decrypt = function(ciphertext, key, ao){var ip=dojo.crypto.outputTypes.Base64;var mode=dojo.crypto.cipherModes.EBC;if (ao){if (ao.outputType) ip=ao.outputType;if (ao.cipherMode) mode=ao.cipherMode;}
+var bx = init(key);var pt=[];var c=null;switch(ip){case dojo.crypto.outputTypes.Hex:{c=[];var i=0;while (i+1<ciphertext.length){c.push(parseInt(ciphertext.substr(i,2),16));i+=2;}
+break;}
+case dojo.crypto.outputTypes.String:{c=[];for (var i=0; i<ciphertext.length; i++){c.push(ciphertext.charCodeAt(i));}
+break;}
+case dojo.crypto.outputTypes.Raw:{c=ciphertext;break;}
+default:{c=fromBase64(ciphertext);break;}}
+var count=c.length >> 3;var pos=0;var o={};var isCBC=(mode==dojo.crypto.cipherModes.CBC);var vector={left:iv.left||null, right:iv.right||null};for(var i=0; i<count; i++){o.left=c[pos]*POW24|c[pos+1]*POW16|c[pos+2]*POW8|c[pos+3];o.right=c[pos+4]*POW24|c[pos+5]*POW16|c[pos+6]*POW8|c[pos+7];if(isCBC){var left=o.left;var right=o.right;}
+db(o, bx);if(isCBC){o.left=xor(o.left, vector.left);o.right=xor(o.right, vector.right);vector.left=left;vector.right=right;}
+pt.push((o.left>>24)&0xff);pt.push((o.left>>16)&0xff);pt.push((o.left>>8)&0xff);pt.push(o.left&0xff);pt.push((o.right>>24)&0xff);pt.push((o.right>>16)&0xff);pt.push((o.right>>8)&0xff);pt.push(o.right&0xff);pos+=8;}
+if(pt[pt.length-1]==pt[pt.length-2]||pt[pt.length-1]==0x01){var n=pt[pt.length-1];pt.splice(pt.length-n, n);}
+for(var i=0; i<pt.length; i++)
+pt[i]=String.fromCharCode(pt[i]);return pt.join("");};this.setIV("0000000000000000", dojo.crypto.outputTypes.Hex);}();
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/LICENSE
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/LICENSE?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/LICENSE (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/LICENSE Mon Feb  5 21:01:25 2007
@@ -0,0 +1,11 @@
+License Disclaimer:
+
+All contents of this directory are Copyright (c) the Dojo Foundation, with the
+following exceptions:
+-------------------------------------------------------------------------------
+
+MD5.js, SHA1.js:
+	* Copyright 1998-2005, Paul Johnstone
+	  Distributed under the terms of the BSD License
+
+

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/MD5.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/MD5.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/MD5.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/MD5.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,26 @@
+dojo.require("dojo.crypto");dojo.provide("dojo.crypto.MD5");dojo.crypto.MD5 = new function(){var chrsz=8;var mask=(1<<chrsz)-1;function toWord(s) {var wa=[];for(var i=0; i<s.length*chrsz; i+=chrsz)
+wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(i%32);return wa;}
+function toString(wa){var s=[];for(var i=0; i<wa.length*32; i+=chrsz)
+s.push(String.fromCharCode((wa[i>>5]>>>(i%32))&mask));return s.join("");}
+function toHex(wa) {var h="0123456789abcdef";var s=[];for(var i=0; i<wa.length*4; i++){s.push(h.charAt((wa[i>>2]>>((i%4)*8+4))&0xF)+h.charAt((wa[i>>2]>>((i%4)*8))&0xF));}
+return s.join("");}
+function toBase64(wa){var p="=";var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var s=[];for(var i=0; i<wa.length*4; i+=3){var t=(((wa[i>>2]>>8*(i%4))&0xFF)<<16)|(((wa[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((wa[i+2>>2]>>8*((i+2)%4))&0xFF);for(var j=0; j<4; j++){if(i*8+j*6>wa.length*32) s.push(p);else s.push(tab.charAt((t>>6*(3-j))&0x3F));}}
+return s.join("");}
+function add(x,y) {var l=(x&0xFFFF)+(y&0xFFFF);var m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF);}
+function R(n,c){ return (n<<c)|(n>>>(32-c)); }
+function C(q,a,b,x,s,t){ return add(R(add(add(a,q),add(x,t)),s),b); }
+function FF(a,b,c,d,x,s,t){ return C((b&c)|((~b)&d),a,b,x,s,t); }
+function GG(a,b,c,d,x,s,t){ return C((b&d)|(c&(~d)),a,b,x,s,t); }
+function HH(a,b,c,d,x,s,t){ return C(b^c^d,a,b,x,s,t); }
+function II(a,b,c,d,x,s,t){ return C(c^(b|(~d)),a,b,x,s,t); }
+function core(x,len){x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a= 1732584193;var b=-271733879;var c=-1732584194;var d= 271733878;for(var i=0; i<x.length; i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;a=FF(a,b,c,d,x[i+ 0],7 ,-680876936);d=FF(d,a,b,c,x[i+ 1],12,-389564586);c=FF(c,d,a,b,x[i+ 2],17, 606105819);b=FF(b,c,d,a,x[i+ 3],22,-1044525330);a=FF(a,b,c,d,x[i+ 4],7 ,-176418897);d=FF(d,a,b,c,x[i+ 5],12, 1200080426);c=FF(c,d,a,b,x[i+ 6],17,-1473231341);b=FF(b,c,d,a,x[i+ 7],22,-45705983);a=FF(a,b,c,d,x[i+ 8],7 , 1770035416);d=FF(d,a,b,c,x[i+ 9],12,-1958414417);c=FF(c,d,a,b,x[i+10],17,-42063);b=FF(b,c,d,a,x[i+11],22,-1990404162);a=FF(a,b,c,d,x[i+12],7 , 1804603682);d=FF(d,a,b,c,x[i+13],12,-40341101);c=FF(c,d,a,b,x[i+14],17,-1502002290);b=FF(b,c,d,a,x[i+15],22, 1236535329);a=GG(a,b,c,d,x[i+ 1],5 ,-165796510);d=GG(d,a,b,c,x[i+ 6],9 ,-1069501632);c=GG(c,d,a,b,x[i+11],14, 643717713);b=GG(b,c,d,a,x[i+ 0],20,-373897302);a=GG(a,b,c,d,x[i+ 5],5 ,-701558691);d=GG
 (d,a,b,c,x[i+10],9 , 38016083);c=GG(c,d,a,b,x[i+15],14,-660478335);b=GG(b,c,d,a,x[i+ 4],20,-405537848);a=GG(a,b,c,d,x[i+ 9],5 , 568446438);d=GG(d,a,b,c,x[i+14],9 ,-1019803690);c=GG(c,d,a,b,x[i+ 3],14,-187363961);b=GG(b,c,d,a,x[i+ 8],20, 1163531501);a=GG(a,b,c,d,x[i+13],5 ,-1444681467);d=GG(d,a,b,c,x[i+ 2],9 ,-51403784);c=GG(c,d,a,b,x[i+ 7],14, 1735328473);b=GG(b,c,d,a,x[i+12],20,-1926607734);a=HH(a,b,c,d,x[i+ 5],4 ,-378558);d=HH(d,a,b,c,x[i+ 8],11,-2022574463);c=HH(c,d,a,b,x[i+11],16, 1839030562);b=HH(b,c,d,a,x[i+14],23,-35309556);a=HH(a,b,c,d,x[i+ 1],4 ,-1530992060);d=HH(d,a,b,c,x[i+ 4],11, 1272893353);c=HH(c,d,a,b,x[i+ 7],16,-155497632);b=HH(b,c,d,a,x[i+10],23,-1094730640);a=HH(a,b,c,d,x[i+13],4 , 681279174);d=HH(d,a,b,c,x[i+ 0],11,-358537222);c=HH(c,d,a,b,x[i+ 3],16,-722521979);b=HH(b,c,d,a,x[i+ 6],23, 76029189);a=HH(a,b,c,d,x[i+ 9],4 ,-640364487);d=HH(d,a,b,c,x[i+12],11,-421815835);c=HH(c,d,a,b,x[i+15],16, 530742520);b=HH(b,c,d,a,x[i+ 2],23,-995338651);a=II(a,b,c,d,x[i+ 
 0],6 ,-198630844);d=II(d,a,b,c,x[i+ 7],10, 1126891415);c=II(c,d,a,b,x[i+14],15,-1416354905);b=II(b,c,d,a,x[i+ 5],21,-57434055);a=II(a,b,c,d,x[i+12],6 , 1700485571);d=II(d,a,b,c,x[i+ 3],10,-1894986606);c=II(c,d,a,b,x[i+10],15,-1051523);b=II(b,c,d,a,x[i+ 1],21,-2054922799);a=II(a,b,c,d,x[i+ 8],6 , 1873313359);d=II(d,a,b,c,x[i+15],10,-30611744);c=II(c,d,a,b,x[i+ 6],15,-1560198380);b=II(b,c,d,a,x[i+13],21, 1309151649);a=II(a,b,c,d,x[i+ 4],6 ,-145523070);d=II(d,a,b,c,x[i+11],10,-1120210379);c=II(c,d,a,b,x[i+ 2],15, 718787259);b=II(b,c,d,a,x[i+ 9],21,-343485551);a = add(a,olda);b = add(b,oldb);c = add(c,oldc);d = add(d,oldd);}
+return [a,b,c,d];}
+function hmac(data,key){var wa=toWord(key);if(wa.length>16) wa=core(wa,key.length*chrsz);var l=[], r=[];for(var i=0; i<16; i++){l[i]=wa[i]^0x36363636;r[i]=wa[i]^0x5c5c5c5c;}
+var h=core(l.concat(toWord(data)),512+data.length*chrsz);return core(r.concat(h),640);}
+this.compute=function(data, outputType){var out=outputType||dojo.crypto.outputTypes.Base64;switch(out){case dojo.crypto.outputTypes.Hex:{return toHex(core(toWord(data),data.length*chrsz));}
+case dojo.crypto.outputTypes.String:{return toString(core(toWord(data),data.length*chrsz));}
+default:{return toBase64(core(toWord(data),data.length*chrsz));}}
+};this.getHMAC=function(data, key, outputType){var out=outputType||dojo.crypto.outputTypes.Base64;switch(out){case dojo.crypto.outputTypes.Hex:{return toHex(hmac(data,key));}
+case dojo.crypto.outputTypes.String:{return toString(hmac(data,key));}
+default:{return toBase64(hmac(data,key));}}
+};}();
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Rijndael.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Rijndael.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Rijndael.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/Rijndael.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.crypto.Rijndael");dojo.require("dojo.crypto");dojo.require("dojo.experimental");dojo.experimental("dojo.crypto.Rijndael");dojo.crypto.Rijndael = new function(){this.encrypt=function(plaintext, key){};this.decrypt=function(ciphertext, key){};}();
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA1.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA1.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA1.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA1.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,27 @@
+dojo.require("dojo.crypto");dojo.provide("dojo.crypto.SHA1");dojo.require("dojo.experimental");dojo.experimental("dojo.crypto.SHA1");dojo.crypto.SHA1 = new function(){var chrsz=8;var mask=(1<<chrsz)-1;function toWord(s) {var wa=[];for(var i=0; i<s.length*chrsz; i+=chrsz)
+wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(i%32);return wa;}
+function toString(wa){var s=[];for(var i=0; i<wa.length*32; i+=chrsz)
+s.push(String.fromCharCode((wa[i>>5]>>>(i%32))&mask));return s.join("");}
+function toHex(wa) {var h="0123456789abcdef";var s=[];for(var i=0; i<wa.length*4; i++){s.push(h.charAt((wa[i>>2]>>((i%4)*8+4))&0xF)+h.charAt((wa[i>>2]>>((i%4)*8))&0xF));}
+return s.join("");}
+function toBase64(wa){var p="=";var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var s=[];for(var i=0; i<wa.length*4; i+=3){var t=(((wa[i>>2]>>8*(i%4))&0xFF)<<16)|(((wa[i+1>>2]>>8*((i+1)%4))&0xFF)<<8)|((wa[i+2>>2]>>8*((i+2)%4))&0xFF);for(var j=0; j<4; j++){if(i*8+j*6>wa.length*32) s.push(p);else s.push(tab.charAt((t>>6*(3-j))&0x3F));}}
+return s.join("");}
+function add(x,y){var l=(x&0xffff)+(y&0xffff);var m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xffff);}
+function r(x,n){  return (x<<n)|(x>>>(32-n)); }
+function f(u,v,w){ return ((u&v)|(~u&w)); }
+function g(u,v,w){ return ((u&v)|(u&w)|(v&w)); }
+function h(u,v,w){ return (u^v^w); }
+function fn(i,u,v,w){if(i<20) return f(u,v,w);if(i<40) return h(u,v,w);if(i<60) return g(u,v,w);return h(u,v,w);}
+function cnst(i){if(i<20) return 1518500249;if(i<40) return 1859775393;if(i<60) return -1894007588;return -899497514;}
+function core(x,len){x[len>>5]|=0x80<<(24-len%32);x[((len+64>>9)<<4)+15]=len;var w=[];var a= 1732584193;var b=-271733879;var c=-1732584194;var d= 271733878;var e=-1009589776;for(var i=0; i<x.length; i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;var olde=e;for(var j=0; j<80; j++){if(j<16) w[j]=x[i+j];else w[j]=r(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=add(add(r(a,5),fn(j,b,c,d)),add(add(e,w[j]),cnst(j)));e=d; d=c; c=r(b,30); b=a; a=t;}
+a=add(a,olda);b=add(b,oldb);c=add(c,oldc);d=add(d,oldd);e=add(e,olde);}
+return [a,b,c,d,e];}
+function hmac(data,key){var wa=toWord(key);if(wa.length>16) wa=core(wa,key.length*chrsz);var l=[], r=[];for(var i=0; i<16; i++){l[i]=wa[i]^0x36363636;r[i]=wa[i]^0x5c5c5c5c;}
+var h=core(l.concat(toWord(data)),512+data.length*chrsz);return core(r.concat(h),640);}
+this.compute=function(data,outputType){var out=outputType||dojo.crypto.outputTypes.Base64;switch(out){case dojo.crypto.outputTypes.Hex:{return toHex(core(toWord(data),data.length*chrsz));}
+case dojo.crypto.outputTypes.String:{return toString(core(toWord(data),data.length*chrsz));}
+default:{return toBase64(core(toWord(data),data.length*chrsz));}}
+};this.getHMAC=function(data,key,outputType){var out=outputType||dojo.crypto.outputTypes.Base64;switch(out){case dojo.crypto.outputTypes.Hex:{return toHex(hmac(data,key));}
+case dojo.crypto.outputTypes.String:{return toString(hmac(data,key));}
+default:{return toBase64(hmac(data,key));}}
+};}();
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA256.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA256.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA256.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/crypto/SHA256.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,2 @@
+
+dojo.provide("dojo.crypto.SHA256");dojo.require("dojo.crypto");dojo.require("dojo.experimental");dojo.experimental("dojo.crypto.SHA256");dojo.crypto.SHA256 = new function(){this.compute=function(s){};}();
\ No newline at end of file

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

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

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/CsvStore.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/CsvStore.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/CsvStore.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/CsvStore.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,13 @@
+
+dojo.provide("dojo.data.CsvStore");dojo.require("dojo.data.core.RemoteStore");dojo.require("dojo.lang.assert");dojo.declare("dojo.data.CsvStore", dojo.data.core.RemoteStore, null, {_setupQueryRequest: function( result,  requestKw) {var serverQueryUrl = this._serverQueryUrl ? this._serverQueryUrl : "";var queryUrl = result.query ? result.query : "";requestKw.url = serverQueryUrl + queryUrl;requestKw.method = 'get';},_resultToQueryData: function( serverResponseData) {var csvFileContentString = serverResponseData;var arrayOfArrays = this._getArrayOfArraysFromCsvFileContents(csvFileContentString);var arrayOfObjects = this._getArrayOfObjectsFromArrayOfArrays(arrayOfArrays);var remoteStoreData = this._getRemoteStoreDataFromArrayOfObjects(arrayOfObjects);return remoteStoreData;},_setupSaveRequest: function( saveKeywordArgs,  requestKw) {},_getArrayOfArraysFromCsvFileContents: function( csvFileContents) {dojo.lang.assertType(csvFileContents, String);var lineEndingCharacters = new Re
 gExp("\r\n|\n|\r");var leadingWhiteSpaceCharacters = new RegExp("^\\s+",'g');var trailingWhiteSpaceCharacters = new RegExp("\\s+$",'g');var doubleQuotes = new RegExp('""','g');var arrayOfOutputRecords = [];var arrayOfInputLines = csvFileContents.split(lineEndingCharacters);for (var i = 0; i < arrayOfInputLines.length; ++i) {var singleLine = arrayOfInputLines[i];if (singleLine.length > 0) {var listOfFields = singleLine.split(',');var j = 0;while (j < listOfFields.length) {var space_field_space = listOfFields[j];var field_space = space_field_space.replace(leadingWhiteSpaceCharacters, '');var field = field_space.replace(trailingWhiteSpaceCharacters, '');var firstChar = field.charAt(0);var lastChar = field.charAt(field.length - 1);var secondToLastChar = field.charAt(field.length - 2);var thirdToLastChar = field.charAt(field.length - 3);if ((firstChar == '"') &&
+((lastChar != '"') ||
+((lastChar == '"') && (secondToLastChar == '"') && (thirdToLastChar != '"')) )) {if (j+1 === listOfFields.length) {return null;}
+var nextField = listOfFields[j+1];listOfFields[j] = field_space + ',' + nextField;listOfFields.splice(j+1, 1);} else {if ((firstChar == '"') && (lastChar == '"')) {field = field.slice(1, (field.length - 1));field = field.replace(doubleQuotes, '"');}
+listOfFields[j] = field;j += 1;}}
+arrayOfOutputRecords.push(listOfFields);}}
+return arrayOfOutputRecords;},_getArrayOfObjectsFromArrayOfArrays: function( arrayOfArrays) {dojo.lang.assertType(arrayOfArrays, Array);var arrayOfItems = [];if (arrayOfArrays.length > 1) {var arrayOfKeys = arrayOfArrays[0];for (var i = 1; i < arrayOfArrays.length; ++i) {var row = arrayOfArrays[i];var item = {};for (var j = 0; j < row.length; ++j) {var value = row[j];var key = arrayOfKeys[j];item[key] = value;}
+arrayOfItems.push(item);}}
+return arrayOfItems;},_getRemoteStoreDataFromArrayOfObjects: function( arrayOfObjects) {dojo.lang.assertType(arrayOfObjects, Array);var output = {};for (var i = 0; i < arrayOfObjects.length; ++i) {var object = arrayOfObjects[i];for (var key in object) {var value = object[key];object[key] = [value];}
+output[i] = object;}
+return output;},getFeatures: function() {var features = {'dojo.data.core.Read': true,'dojo.data.core.Write': false
+};return features;},newItem: function( attributes,  keywordArgs) {dojo.unimplemented('dojo.data.CsvStore.newItem');},deleteItem: function( item) {dojo.unimplemented('dojo.data.CsvStore.deleteItem');},setValues: function( item,  attribute,  values) {dojo.unimplemented('dojo.data.CsvStore.setValues');},set: function( item,  attribute,  value) {dojo.unimplemented('dojo.data.CsvStore.set');},unsetAttribute: function( item,  attribute) {dojo.unimplemented('dojo.data.CsvStore.unsetAttribute');},save: function( keywordArgs) {dojo.unimplemented('dojo.data.CsvStore.save');},revert: function() {dojo.unimplemented('dojo.data.CsvStore.revert');},isDirty: function( item) {dojo.unimplemented('dojo.data.CsvStore.isDirty');}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/DeliciousStore.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/DeliciousStore.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/DeliciousStore.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/DeliciousStore.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,4 @@
+
+dojo.provide("dojo.data.DeliciousStore");dojo.require("dojo.data.core.RemoteStore");dojo.require("dojo.lang.declare");dojo.require("dojo.io.ScriptSrcIO");dojo.declare("dojo.data.DeliciousStore", dojo.data.core.RemoteStore, null, {_setupQueryRequest: function(result, requestKw) {var count = result.count || 1;var sourceUrl = "http://del.icio.us/feeds/json/" + result.query + "?count=" + count;requestKw.url = sourceUrl;requestKw.transport = "ScriptSrcTransport";requestKw.mimetype = "text/json";requestKw.jsonParamName = 'callback';},_resultToQueryMetadata: function(json) {return json.ResultSet;},_resultToQueryData: function(json) {var data = {}
+for (var i = 0; i < json.length; ++i) {var record = json[i];var item = {};item["Bookmark"] = [record.u];item["Description"] = [record.d];item["Tags"] = [record.t];data[i] = item;}
+return data;}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/OpmlStore.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/OpmlStore.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/OpmlStore.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/OpmlStore.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,19 @@
+
+dojo.provide("dojo.data.OpmlStore");dojo.require("dojo.data.core.Read");dojo.require("dojo.data.core.Result");dojo.require("dojo.lang.assert");dojo.require("dojo.json");dojo.require("dojo.experimental");dojo.experimental("dojo.data.OpmlStore");dojo.declare("dojo.data.OpmlStore", null,function( keywordParameters) {this._arrayOfTopLevelItems = [];this._metadataNodes = null;this._loadFinished = false;this._opmlFileUrl = keywordParameters["url"];}, {_assertIsItem: function( item) {if (!this.isItem(item)) {throw new Error("dojo.data.OpmlStore: a function was passed an item argument that was not an item");}},_removeChildNodesThatAreNotElementNodes: function( node,  recursive) {var childNodes = node.childNodes;if (childNodes.length == 0) {return;}
+var nodesToRemove = [];var i, childNode;for (i = 0; i < childNodes.length; ++i) {childNode = childNodes[i];if (childNode.nodeType != Node.ELEMENT_NODE) {nodesToRemove.push(childNode);}};for (i = 0; i < nodesToRemove.length; ++i) {childNode = nodesToRemove[i];node.removeChild(childNode);}
+if (recursive) {for (i = 0; i < childNodes.length; ++i) {childNode = childNodes[i];this._removeChildNodesThatAreNotElementNodes(childNode, recursive);}}
+},_processRawXmlTree: function( rawXmlTree) {var headNodes = rawXmlTree.getElementsByTagName('head');var headNode = headNodes[0];this._removeChildNodesThatAreNotElementNodes(headNode);this._metadataNodes = headNode.childNodes;var bodyNodes = rawXmlTree.getElementsByTagName('body');var bodyNode = bodyNodes[0];this._removeChildNodesThatAreNotElementNodes(bodyNode, true);var bodyChildNodes = bodyNodes[0].childNodes;for (var i = 0; i < bodyChildNodes.length; ++i) {var node = bodyChildNodes[i];if (node.tagName == 'outline') {this._arrayOfTopLevelItems.push(node);}}
+},getValue: function( item,  attribute,  defaultValue) {this._assertIsItem(item);if (attribute == 'children') {return (item.firstChild || defaultValue);} else {var value = item.getAttribute(attribute);value = (value != undefined) ? value : defaultValue;return value;}},getValues: function( item,  attribute) {this._assertIsItem(item);if (attribute == 'children') {var array = [];for (var i = 0; i < item.childNodes.length; ++i) {array.push(item.childNodes[i]);}
+return array;} else {return [item.getAttribute(attribute)];}},getAttributes: function( item) {this._assertIsItem(item);var attributes = [];var xmlNode = item;var xmlAttributes = xmlNode.attributes;for (var i = 0; i < xmlAttributes.length; ++i) {var xmlAttribute = xmlAttributes.item(i);attributes.push(xmlAttribute.nodeName);}
+if (xmlNode.childNodes.length > 0) {attributes.push('children');}
+return attributes;},hasAttribute: function( item,  attribute) {return (this.getValues(item, attribute).length > 0);},containsValue: function( item,  attribute,  value) {var values = this.getValues(item, attribute);for (var i = 0; i < values.length; ++i) {var possibleValue = values[i];if (value == possibleValue) {return true;}}
+return false;},isItem: function( something) {return (something &&
+something.nodeType == Node.ELEMENT_NODE &&
+something.tagName == 'outline');},isItemLoaded: function( something) {return this.isItem(something);},loadItem: function( item) {this._assertIsItem(item);return item;},find: function( keywordArgs) {var result = null;if (keywordArgs instanceof dojo.data.core.Result) {result = keywordArgs;result.store = this;} else {result = new dojo.data.core.Result(keywordArgs, this);}
+var self = this;var bindHandler = function(type, data, evt) {var scope = result.scope || dj_global;if (type == "load") {self._processRawXmlTree(data);if (result.saveResult) {result.items = self._arrayOfTopLevelItems;}
+if (result.onbegin) {result.onbegin.call(scope, result);}
+for (var i=0; i < self._arrayOfTopLevelItems.length; i++) {var item = self._arrayOfTopLevelItems[i];if (result.onnext && !result._aborted) {result.onnext.call(scope, item, result);}}
+if (result.oncompleted && !result._aborted) {result.oncompleted.call(scope, result);}} else if(type == "error" || type == 'timeout') {var errorObject = data;if (result.onerror) {result.onerror.call(scope, data);}}
+};if (!this._loadFinished) {if (this._opmlFileUrl) {var bindRequest = dojo.io.bind({url: this._opmlFileUrl,handle: bindHandler,mimetype: "text/xml",sync: (result.sync || false) });result._abortFunc = bindRequest.abort;}}
+return result;},getFeatures: function() {var features = {'dojo.data.core.Read': true
+};return features;}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/RdfStore.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/RdfStore.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/RdfStore.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/RdfStore.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,28 @@
+
+dojo.provide("dojo.data.RdfStore");dojo.provide("dojo.data.RhizomeStore");dojo.require("dojo.lang.declare");dojo.require("dojo.data.core.RemoteStore");dojo.require("dojo.experimental");dojo.data.RdfDatatypeSerializer = function(type, convertFunc, uri) {this.type = type;this._converter = convertFunc;this.uri = uri;this.serialize = function(value) {return this._converter.call(value, value);};}
+dojo.declare("dojo.data.RdfStore", dojo.data.core.RemoteStore, null, {_datatypeMap: {literal: function(value) {var literal = value.value;if (value["xml:lang"]) {literal.lang = value["xml:lang"];}
+return literal;},uri: function(value) {return { id: value.value };},bnode: function(value) {return { id: '_:' + value.value };},'http://www.w3.org/2001/XMLSchema#int': function(value) {return parseInt(value.value);},'http://www.w3.org/2001/XMLSchema#integer': function(value) {return parseInt(value.value);},'http://www.w3.org/2001/XMLSchema#long': function(value) {return parseInt(value.value);},'http://www.w3.org/2001/XMLSchema#float': function(value) {return parseFloat(value.value);},'http://www.w3.org/2001/XMLSchema#double': function(value) {return parseFloat(value.value);},'http://www.w3.org/2001/XMLSchema#boolean': function(value) {return !value || value == "false" || value == "0" ? false : true;}},_datatypeSerializers: [
+new dojo.data.RdfDatatypeSerializer(Number, Number.toString, 'http://www.w3.org/2001/XMLSchema#float'),new dojo.data.RdfDatatypeSerializer(Boolean, Boolean.toString, 'http://www.w3.org/2001/XMLSchema#boolean')
+],_findDatatypeSerializer: function(value) {var length = this._datatypeSerializers.length;for (var i = 0; i < length; i++) {var datatype = this._datatypeSerializers[i];if (value instanceof datatype.type) {return datatype;}}
+},_toRDFValue: function(value) {var rdfvalue = {};if (value.id) {if (value.id.slice(0, 2) == '_:') {rdfvalue.type = 'bnode';rdfvalue.value = value.id.substring(2);} else {rdfvalue.type = 'uri';rdfvalue.value = value.id;}} else if (typeof value == "string" || value instanceof String) {rdfvalue.type = 'literal';rdfvalue.value = value;if (value.lang)
+rdfvalue["xml:lang"] = value.lang;} else {if (typeof value == "number")
+value = new Number(value);else if (typeof value == "boolean")
+value = new Boolean(value);var datatype = this._findDatatypeSerializer(value);if (datatype) {rdfvalue = {"type": "typed-literal","datatype": datatype.uri,"value": value.toString()
+};} else {rdfvalue = {"type": "literal","value": value.toString() };}}
+return rdfvalue;},_setupSaveRequest: function(saveKeywordArgs, requestKw) {var rdfResult = { "head":  {'vars': ['s','p','o']},"results": {'bindings': []}};var resources = [];for (var key in this._deleted) {resources.push(key);}
+rdfResult.results.deleted = resources;for (key in this._changed) {var subject = this._toRDFValue(this.getIdentity(key))
+var attributes = this._changed[key];for (var attr in attributes) {var predicate = {type:'uri', value: attr};var values = attributes[attr];if (!values.length)
+continue;var rdfvalues = [];for (var i = 0; i < values.length; i++) {var rdfvalue = this._toRDFValue(values[i]);rdfResult.results.bindings.push(
+{s: subject, p: predicate, o: rdfvalue});}}
+}
+var oldRegistry = dojo.json.jsonRegistry;dojo.json.jsonRegistry = this._jsonRegistry;var jsonString = dojo.json.serialize(rdfResult);dojo.json.jsonRegistry = oldRegistry;requestKw.postContent = jsonString;},_resultToQueryMetadata: function(json) {return json.head;},_resultToQueryData: function(json) {var items = {};var stmts = json.results.bindings;for (var i = 0; i < stmts.length; i++) {var stmt = stmts[i];var subject = stmt.s.value;if (stmt.s.type == 'bnode') {subject = '_:' + subject;}
+var attributes = data[subject];if (!attributes) {attributes = {};data[stmt.s] = attributes;}
+var attr = attributes[stmt.p.value];if (!attr) {attributes[stmt.p.value] = [stmt.o];} else {attr.push(stmt.o);}}
+return items;}});dojo.declare("dojo.data.RhizomeStore", dojo.data.RdfStore,function(kwArgs) {this._serverQueryUrl = kwArgs.baseUrl + 'search?view=json&searchType=RxPath&search=';this._serverSaveUrl = kwArgs.baseUrl + 'save-metadata';}, {_resultToQueryMetadata: function(json) {return json;},_resultToQueryData: function(json) {return json;},_setupSaveRequest: function(saveKeywordArgs, requestKw) {requestKw.url = this._serverSaveUrl;requestKw.method = 'post';requestKw.mimetype = "text/plain";var resources = [];for (var key in this._deleted) {resources.push(key);}
+var changes = {};for (key in this._changed) {if (!this._added[key]) {resources.push(key);}
+var attributes = this._changed[key];var rdfattributes = {};for (var attr in attributes) {var values = attributes[attr];if (!values.length)
+continue;var rdfvalues = [];for (var i = 0; i < values.length; i++) {var rdfvalue = this._toRDFValue(values[i]);rdfvalues.push(rdfvalue);}
+rdfattributes[attr] = rdfvalues;}
+changes[key] = rdfattributes;}
+var oldRegistry = dojo.json.jsonRegistry;dojo.json.jsonRegistry = this._jsonRegistry;var jsonString = dojo.json.serialize(changes);dojo.json.jsonRegistry = oldRegistry;requestKw.content = {rdfFormat: 'json',resource: resources,metadata: jsonString
+};}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/YahooStore.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/YahooStore.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/YahooStore.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/YahooStore.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,7 @@
+
+dojo.provide("dojo.data.YahooStore");dojo.require("dojo.data.core.RemoteStore");dojo.require("dojo.lang.declare");dojo.require("dojo.io.ScriptSrcIO");dojo.declare("dojo.data.YahooStore", dojo.data.core.RemoteStore, null, {_setupQueryRequest: function(result, requestKw) {var start = 1;var count = 1;if (result) {start = result.start || start;count = result.count || count;}
+var sourceUrl = "http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=dojo&language=en&query=" +
+result.query + "&start=" + start + "&results=" + count + "&output=json";requestKw.url = sourceUrl;requestKw.transport = "ScriptSrcTransport";requestKw.mimetype = "text/json";requestKw.jsonParamName = 'callback';},_resultToQueryMetadata: function(json) {return json.ResultSet;},_resultToQueryData: function(json) {var data = {}
+for (var i = 0; i < json.ResultSet.totalResultsReturned; ++i) {var record = json.ResultSet.Result[i];var item = {};item["Url"] = [record.Url];item["Title"] = [record.Title];item["Summary"] =[ record.Summary];var arrayIndex = (json.ResultSet.firstResultPosition - 1) + i;data[ arrayIndex.toString() ] = item;}
+return data;},getFeatures: function() {var features = {'dojo.data.core.Read': true
+};return features;}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Identity.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Identity.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Identity.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Identity.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.data.core.Identity");dojo.require("dojo.data.core.Read");dojo.require("dojo.lang.declare");dojo.require("dojo.experimental");dojo.experimental("dojo.data.core.Identity");dojo.declare("dojo.data.core.Identity", dojo.data.core.Read, null, {getFeatures: function() {var features = {'dojo.data.core.Read': true,'dojo.data.core.Identity': true
+};return features;},getIdentity: function( item) {dojo.unimplemented('dojo.data.core.Identity.getIdentity');var itemIdentityString = null;return itemIdentityString;},findByIdentity: function( identity) {dojo.unimplemented('dojo.data.core.Identity.findByIdentity');var item = null;return item;}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Read.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Read.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Read.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Read.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.data.core.Read");dojo.require("dojo.data.core.Result");dojo.require("dojo.lang.declare");dojo.require("dojo.experimental");dojo.experimental("dojo.data.core.Read");dojo.declare("dojo.data.core.Read", null, null, {getValue: function( item,  attribute,  defaultValue) {dojo.unimplemented('dojo.data.core.Read.getValue');var attributeValue = null;return attributeValue;},getValues: function( item,  attribute) {dojo.unimplemented('dojo.data.core.Read.getValues');var array = null;return array;},getAttributes: function( item) {dojo.unimplemented('dojo.data.core.Read.getAttributes');var array = null;return array;},hasAttribute: function( item,  attribute) {dojo.unimplemented('dojo.data.core.Read.hasAttribute');return false;},containsValue: function( item,  attribute,  value) {dojo.unimplemented('dojo.data.core.Read.containsValue');return false;},isItem: function( something) {dojo.unimplemented('dojo.data.core.Read.isItem');return false;},isItemLoaded: function( some
 thing) {dojo.unimplemented('dojo.data.core.Read.isItemLoaded');return false;},loadItem: function( item) {if (this.isItemLoaded(item)) {return item;} else {dojo.unimplemented('dojo.data.core.Read.loadItem');return item;}},find: function( keywordArgs) {dojo.unimplemented('dojo.data.core.Read.find');var result = null;return result;},getFeatures: function() {var features = {'dojo.data.core.Read': true
+};return features;}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/RemoteStore.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/RemoteStore.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/RemoteStore.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/RemoteStore.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,55 @@
+
+dojo.provide("dojo.data.core.RemoteStore");dojo.require("dojo.data.core.Read");dojo.require("dojo.data.core.Write");dojo.require("dojo.data.core.Result");dojo.require("dojo.experimental");dojo.require("dojo.Deferred");dojo.require("dojo.lang.declare");dojo.require("dojo.json");dojo.require("dojo.io.*");dojo.experimental("dojo.data.core.RemoteStore");dojo.lang.declare("dojo.data.core.RemoteStore", null,function( kwArgs) {if (!kwArgs) {kwArgs = {};}
+this._serverQueryUrl = kwArgs.queryUrl || "";this._serverSaveUrl = kwArgs.saveUrl || "";this._deleted = {};this._changed = {};this._added = {};this._results = {};this._data = {};this._numItems = 0;}, {_datatypeMap: {},_jsonRegistry: dojo.json.jsonRegistry,_setupQueryRequest: function( result,  requestKw) {result.query = result.query || "";requestKw.url = this._serverQueryUrl + encodeURIComponent(result.query);requestKw.method = 'get';requestKw.mimetype = "text/json";},_resultToQueryMetadata: function( serverResponseData) {return serverResponseData;},_resultToQueryData: function( serverResponseData) {return serverResponseData.data;},_remoteToLocalValues: function( attributes) {for (var key in attributes) {var values = attributes[key];for (var i = 0; i < values.length; i++) {var value = values[i];var type = value.datatype || value.type;if (type) {var localValue = value.value;if (this._datatypeMap[type])
+localValue = this._datatypeMap[type](value);values[i] = localValue;}}
+}
+return attributes;},_queryToQueryKey: function(query) {if (typeof query == "string")
+return query;else
+return dojo.json.serialize(query);},_assertIsIdentity: function(id) {if (!id) {throw new Error("dojo.data.RemoteStore: a function was passed an item argument that was not an item");}},getValue: function( item,  attribute,  defaultValue) {var valueArray = this.getValues(item, attribute);if (valueArray.length == 0) {return defaultValue;}
+return valueArray[0];},getValues: function( item,  attribute) {var itemIdentity = this.getIdentity(item);this._assertIsIdentity(itemIdentity);var changes = this._changed[itemIdentity];if (changes) {var newvalues = changes[attribute];if (newvalues !== undefined) {return newvalues;}
+else {return [];}}
+return this._data[itemIdentity][0][attribute];},getAttributes: function( item) {var itemIdentity = this.getIdentity(item);if (!itemIdentity)
+return undefined;var atts = [];var attrDict = this._data[itemIdentity][0];for (var att in attrDict) {atts.push(att);}
+return atts;},hasAttribute: function( item,  attribute) {var valueArray = this.getValues(item, attribute);return valueArray.length ? true : false;},containsValue: function( item,  attribute,  value) {var valueArray = this.getValues(item, attribute);for (var i=0; i < valueArray.length; i++) {if (valueArray[i] == value) {return true;}}
+return false;},isItem: function( something) {if (!something) {return false;}
+if (typeof something.id == "string" || something.id instanceof String) {return true;}
+return false;},isItemDeleted: function( something) {var itemIdentity = this.getIdentity(something);if (!itemIdentity) {return false;}
+if (this._deleted[itemIdentity]) {return true;}},isItemLoaded: function( something) {var itemIdentity = this.getIdentity(something);if (!itemIdentity) {return false;}
+if (this._data[itemIdentity]) { return true; }
+if (this._added[itemIdentity]) { return true; }
+return false;},loadItem: function(item) {var item = this.getIdentity(item);this._assertIsIdentity(item);if (this.isItemLoaded(item)) {return item;} else {return this.findByIdentity( item );}},find: function( keywordArgs) {var result = null;if (keywordArgs instanceof dojo.data.core.Result) {result = keywordArgs;result.store = this;} else {result = new dojo.data.core.Result(keywordArgs, this);}
+var query = result.query;var self = this;var bindfunc = function(type, data, evt) {var scope = result.scope || dj_global;if(type == "load") {result.resultMetadata = self._resultToQueryMetadata(data);var dataDict = self._resultToQueryData(data);if (result.onbegin) {result.onbegin.call(scope, result);}
+var count = 0;var resultData = [];var newItemCount = 0;for (var key in dataDict) {if (result._aborted) {break;}
+if (!self._deleted[key]) {var values = dataDict[key];var attributeDict = self._remoteToLocalValues(values);var existingValue = self._data[key];var refCount = 1;if (existingValue) {refCount = ++existingValue[1];} else {newItemCount++;}
+self._data[key] = [ attributeDict, refCount];resultData.push(key);count++;if (result.onnext) {result.onnext.call(scope, key, result);}}
+}
+self._results[self._queryToQueryKey(query)] = resultData;self._numItems += newItemCount;result.length = count;if (result.saveResult) {result.items = resultData;}
+if (!result._aborted && result.oncompleted) {result.oncompleted.call(scope, result);}} else if(type == "error" || type == 'timeout') {dojo.debug("find error: " + dojo.json.serialize(data));if (result.onerror) {result.onerror.call(scope, data);}}
+};var bindKw = keywordArgs ? (keywordArgs.bindArgs || {}) : {};bindKw.sync = result.sync;bindKw.handle = bindfunc;this._setupQueryRequest(result, bindKw);var waitForIt = false;if ((bindKw.transport == "ScriptSrcTransport") && (bindKw.sync == true)) {waitForIt = true;bindKw.sync = false;}
+var request = dojo.io.bind(bindKw);result._abortFunc = request.abort;if (waitForIt) {dojo.debug("ERROR in dojo.data.core.RemoteStore.find() -- find() was called with 'sync==true', but we're using 'transport==ScriptSrcTransport', and dojo.io.bind() only supports sync==false for ScriptSrcTransport.  We need to call dojo.io.bind() with sync=false, but then wait to return from find() until we hear back from bind()");}
+return result;},getFeatures: function() {var features = {'dojo.data.core.Read': true,'dojo.data.core.Identity': true,'dojo.data.core.Write': true
+};return features;},getIdentity: function( item) {var id = item.id ? item.id : item;if (typeof id == "string"
+|| id instanceof String) {return id;}
+return null;},findByIdentity: function( id) {var idQuery = "/" + "*[.='"+id+"']";result = this.find({query:idQuery, sync:true});if (result.items && result.items.length) {return result.items[0];}
+return null;},newItem: function( attributes,  keywordArgs) {var itemIdentity = keywordArgs['identity'];if (this._deleted[itemIdentity]) {delete this._deleted[itemIdentity];} else {this._added[itemIdentity] = 1;}
+if (attributes) {for (var attribute in attributes) {var valueOrArrayOfValues = attributes[attribute];if (dojo.lang.isArray(valueOrArrayOfValues)) {this.setValues(itemIdentity, attribute, valueOrArrayOfValues);} else {this.set(itemIdentity, attribute, valueOrArrayOfValues);}}
+}
+return { id: itemIdentity };},deleteItem: function( item) {var identity = this.getIdentity(item);if (!identity) {return false;}
+if (this._added[identity]) {delete this._added[identity];} else {this._deleted[identity] = 1;}
+if (this._changed[identity]) {delete this._changed[identity];}
+return true;},setValues: function( item,  attribute,  values) {var identity = this.getIdentity(item);if (!identity) {return undefined;}
+var changes = this._changed[identity];if (!changes) {changes = {}
+this._changed[identity] = changes;}
+changes[attribute] = values;return true;},set: function( item,  attribute,  value) {return this.setValues(item, attribute, [value]);},unsetAttribute: function( item,  attribute) {return this.setValues(item, attribute, []);},_initChanges: function() {this._deleted = {};this._changed = {};this._added = {};},_setupSaveRequest: function(saveKeywordArgs, requestKw) {requestKw.url = this._serverSaveUrl;requestKw.method = 'post';requestKw.mimetype = "text/plain";var deleted = [];for (var key in this._deleted) {deleted.push(key);}
+var saveStruct = {'changed': this._changed, 'deleted': deleted };var oldRegistry = dojo.json.jsonRegistry;dojo.json.jsonRegistry = this._jsonRegistry;var jsonString = dojo.json.serialize(saveStruct);dojo.json.jsonRegistry = oldRegistry;requestKw.postContent = jsonString;},save: function( keywordArgs) {keywordArgs = keywordArgs || {};var result = new dojo.Deferred();var self = this;var bindfunc = function(type, data, evt) {if(type == "load"){if (result.fired == 1) {return;}
+var key = null;for (key in self._added) {if (!self._data[key])
+self._data[key] = [{} , 1];}
+for (key in self._changed) {var existing = self._data[key];var changes = self._changed[key];if (existing) {existing[0] = changes;} else {self._data[key] = [changes, 1];}}
+for (key in self._deleted) {if (self._data[key]) {delete self._data[key];}}
+self._initChanges();result.callback(true);} else if(type == "error" || type == 'timeout'){result.errback(data);}};var bindKw = { sync: keywordArgs["sync"], handle: bindfunc };this._setupSaveRequest(keywordArgs, bindKw);var request = dojo.io.bind(bindKw);result.canceller = function(deferred) { request.abort(); };return result;},revert: function() {this._initChanges();return true;},isDirty: function( item) {if (item) {var identity = item.id || item;return this._deleted[identity] || this._changed[identity];} else {var key = null;for (key in this._changed) {return true;}
+for (key in this._deleted) {return true;}
+for (key in this._added) {return true;}
+return false;}},createReference: function(idstring) {return { id : idstring };},getSize: function() {return this._numItems;},forgetResults: function(query) {var queryKey = this._queryToQueryKey(query);var results = this._results[queryKey];if (!results) return false;var removed = 0;for (var i = 0; i < results.length; i++) {var key = results[i];var existingValue = this._data[key];if (existingValue[1] <= 1) {delete this._data[key];removed++;}
+else
+existingValue[1] = --existingValue[1];}
+delete this._results[queryKey];this._numItems -= removed;return true;}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Result.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Result.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Result.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Result.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.data.core.Result");dojo.require("dojo.lang.declare");dojo.require("dojo.experimental");dojo.experimental("dojo.data.core.Result");dojo.declare("dojo.data.core.Result", null,function( keywordArgs,  store) {this.fromKwArgs(keywordArgs || {});this.items = null;this.resultMetadata = null;this.length = -1;this.store = store;this._aborted = false;this._abortFunc = null;}, {sync: true,abort: function() {this._aborted = true;if (this._abortFunc) {this._abortFunc();}},fromKwArgs: function( kwArgs) {if (typeof kwArgs.saveResult == "undefined") {this.saveResult = kwArgs.onnext ? false : true;}
+dojo.lang.mixin(this, kwArgs);}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Write.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Write.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Write.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/Write.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.data.core.Write");dojo.require("dojo.data.core.Read");dojo.require("dojo.lang.declare");dojo.require("dojo.experimental");dojo.experimental("dojo.data.core.Write");dojo.declare("dojo.data.core.Write", dojo.data.core.Read, null, {getFeatures: function() {var features = {'dojo.data.core.Read': true,'dojo.data.core.Write': true
+};return features;},newItem: function( keywordArgs) {var newItem;dojo.unimplemented('dojo.data.core.Write.newItem');return newItem;},deleteItem: function( item) {dojo.unimplemented('dojo.data.core.Write.deleteItem');return false;},set: function( item,  attribute,  value) {dojo.unimplemented('dojo.data.core.Write.set');return false;},setValues: function( item,  attribute,  values) {dojo.unimplemented('dojo.data.core.Write.setValues');return false;},unsetAttribute: function( item,  attribute) {dojo.unimplemented('dojo.data.core.Write.clear');return false;},save: function() {dojo.unimplemented('dojo.data.core.Write.save');return false;},revert: function() {dojo.unimplemented('dojo.data.core.Write.revert');return false;},isDirty: function( item) {dojo.unimplemented('dojo.data.core.Write.isDirty');return false;}});
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/nestedTransaction.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/nestedTransaction.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/nestedTransaction.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/data/core/nestedTransaction.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,3 @@
+
+dojo.provide("dojo.data.core.nestedTransaction");dojo.require("dojo.data.core.Write");dojo.require("dojo.experimental");dojo.experimental("dojo.data.core.nestedTransaction");dojo.data.core.nestedTransaction.beginTransaction = function() {if (!this._countOfNestedTransactions) {this._countOfNestedTransactions = 0;}
+this._countOfNestedTransactions += 1;};dojo.data.core.nestedTransaction.endTransaction = function() {this._countOfNestedTransactions -= 1;dojo.lang.assert(this._countOfNestedTransactions >= 0);if (this._countOfNestedTransactions === 0) {return this.save();}};dojo.data.core.nestedTransaction.rollbackTransaction = function() {this._countOfNestedTransactions = 0;this.revert();};
\ No newline at end of file

Added: tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/date/common.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/date/common.js?view=auto&rev=503984
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/date/common.js (added)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/dojo/src/date/common.js Mon Feb  5 21:01:25 2007
@@ -0,0 +1,86 @@
+
+dojo.provide("dojo.date.common");dojo.date.setDayOfYear = function(dateObject, dayOfYear){dateObject.setMonth(0);dateObject.setDate(dayOfYear);return dateObject;}
+dojo.date.getDayOfYear = function(dateObject){var fullYear = dateObject.getFullYear();var lastDayOfPrevYear = new Date(fullYear-1, 11, 31);return Math.floor((dateObject.getTime() -
+lastDayOfPrevYear.getTime()) / 86400000);}
+dojo.date.setWeekOfYear = function(dateObject, week, firstDay){if(arguments.length == 2){ firstDay = 0; }
+dojo.unimplemented("dojo.date.setWeekOfYear");}
+dojo.date.getWeekOfYear = function(dateObject, firstDay){if(arguments.length == 1){ firstDay = 0; }
+var firstDayOfYear = new Date(dateObject.getFullYear(), 0, 1);var day = firstDayOfYear.getDay();firstDayOfYear.setDate(firstDayOfYear.getDate() -
+day + firstDay - (day > firstDay ? 7 : 0));return Math.floor((dateObject.getTime() -
+firstDayOfYear.getTime()) / 604800000);}
+dojo.date.setIsoWeekOfYear = function(dateObject, week, firstDay){if (arguments.length == 2) { firstDay = 1; }
+dojo.unimplemented("dojo.date.setIsoWeekOfYear");}
+dojo.date.getIsoWeekOfYear = function(dateObject, firstDay) {if (arguments.length == 1) { firstDay = 1; }
+dojo.unimplemented("dojo.date.getIsoWeekOfYear");}
+dojo.date.shortTimezones = ["IDLW", "BET", "HST", "MART", "AKST", "PST", "MST","CST", "EST", "AST", "NFT", "BST", "FST", "AT", "GMT", "CET", "EET", "MSK","IRT", "GST", "AFT", "AGTT", "IST", "NPT", "ALMT", "MMT", "JT", "AWST","JST", "ACST", "AEST", "LHST", "VUT", "NFT", "NZT", "CHAST", "PHOT","LINT"];dojo.date.timezoneOffsets = [-720, -660, -600, -570, -540, -480, -420, -360,-300, -240, -210, -180, -120, -60, 0, 60, 120, 180, 210, 240, 270, 300,330, 345, 360, 390, 420, 480, 540, 570, 600, 630, 660, 690, 720, 765, 780,840];dojo.date.getDaysInMonth = function(dateObject){var month = dateObject.getMonth();var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];if (month == 1 && dojo.date.isLeapYear(dateObject)) { return 29; }
+else { return days[month]; }}
+dojo.date.isLeapYear = function(dateObject){var year = dateObject.getFullYear();return (year%400 == 0) ? true : (year%100 == 0) ? false : (year%4 == 0) ? true : false;}
+dojo.date.getTimezoneName = function(dateObject){var str = dateObject.toString();var tz = '';var match;var pos = str.indexOf('(');if (pos > -1) {pos++;tz = str.substring(pos, str.indexOf(')'));}
+else{var pat = /([A-Z\/]+) \d{4}$/;if((match = str.match(pat))) {tz = match[1];}
+else{str = dateObject.toLocaleString();pat = / ([A-Z\/]+)$/;if((match = str.match(pat))) {tz = match[1];}}
+}
+return tz == 'AM' || tz == 'PM' ? '' : tz;}
+dojo.date.getOrdinal = function(dateObject){var date = dateObject.getDate();if(date%100 != 11 && date%10 == 1){ return "st"; }
+else if(date%100 != 12 && date%10 == 2){ return "nd"; }
+else if(date%100 != 13 && date%10 == 3){ return "rd"; }
+else{ return "th"; }}
+dojo.date.compareTypes={DATE:1, TIME:2
+};dojo.date.compare=function( dateA,  dateB,  options){var dA=dateA;var dB=dateB||new Date();var now=new Date();with(dojo.date.compareTypes){var opt=options||(DATE|TIME);var d1=new Date(
+(opt&DATE)?dA.getFullYear():now.getFullYear(),(opt&DATE)?dA.getMonth():now.getMonth(),(opt&DATE)?dA.getDate():now.getDate(),(opt&TIME)?dA.getHours():0,(opt&TIME)?dA.getMinutes():0,(opt&TIME)?dA.getSeconds():0
+);var d2=new Date(
+(opt&DATE)?dB.getFullYear():now.getFullYear(),(opt&DATE)?dB.getMonth():now.getMonth(),(opt&DATE)?dB.getDate():now.getDate(),(opt&TIME)?dB.getHours():0,(opt&TIME)?dB.getMinutes():0,(opt&TIME)?dB.getSeconds():0
+);}
+if(d1.valueOf()>d2.valueOf()){return 1;}
+if(d1.valueOf()<d2.valueOf()){return -1;}
+return 0;}
+dojo.date.dateParts={YEAR:0, MONTH:1, DAY:2, HOUR:3, MINUTE:4, SECOND:5, MILLISECOND:6, QUARTER:7, WEEK:8, WEEKDAY:9
+};dojo.date.add = function( dt,  interv,  incr){if(typeof dt == 'number'){dt = new Date(dt);}
+function fixOvershoot(){if (sum.getDate() < dt.getDate()){sum.setDate(0);}}
+var sum = new Date(dt);with(dojo.date.dateParts){switch(interv){case YEAR:
+sum.setFullYear(dt.getFullYear()+incr);fixOvershoot();break;case QUARTER:
+incr*=3;case MONTH:
+sum.setMonth(dt.getMonth()+incr);fixOvershoot();break;case WEEK:
+incr*=7;case DAY:
+sum.setDate(dt.getDate() + incr);break;case WEEKDAY:
+var dat = dt.getDate();var weeks = 0;var days = 0;var strt = 0;var trgt = 0;var adj = 0;var mod = incr % 5;if (mod == 0) {days = (incr > 0) ? 5 : -5;weeks = (incr > 0) ? ((incr-5)/5) : ((incr+5)/5);}
+else {days = mod;weeks = parseInt(incr/5);}
+strt = dt.getDay();if (strt == 6 && incr > 0) {adj = 1;}
+else if (strt == 0 && incr < 0) {adj = -1;}
+trgt = (strt + days);if (trgt == 0 || trgt == 6) {adj = (incr > 0) ? 2 : -2;}
+sum.setDate(dat + (7*weeks) + days + adj);break;case HOUR:
+sum.setHours(sum.getHours()+incr);break;case MINUTE:
+sum.setMinutes(sum.getMinutes()+incr);break;case SECOND:
+sum.setSeconds(sum.getSeconds()+incr);break;case MILLISECOND:
+sum.setMilliseconds(sum.getMilliseconds()+incr);break;default:
+break;}}
+return sum;};dojo.date.diff = function( dtA,  dtB,  interv){if(typeof dtA == 'number'){dtA = new Date(dtA);}
+if(typeof dtB == 'number'){dtB = new Date(dtB);}
+var yeaDiff = dtB.getFullYear() - dtA.getFullYear();var monDiff = (dtB.getMonth() - dtA.getMonth()) + (yeaDiff * 12);var msDiff = dtB.getTime() - dtA.getTime();var secDiff = msDiff/1000;var minDiff = secDiff/60;var houDiff = minDiff/60;var dayDiff = houDiff/24;var weeDiff = dayDiff/7;var delta = 0;with(dojo.date.dateParts){switch(interv){case YEAR:
+delta = yeaDiff;break;case QUARTER:
+var mA = dtA.getMonth();var mB = dtB.getMonth();var qA = Math.floor(mA/3) + 1;var qB = Math.floor(mB/3) + 1;qB += (yeaDiff * 4);delta = qB - qA;break;case MONTH:
+delta = monDiff;break;case WEEK:
+delta = parseInt(weeDiff);break;case DAY:
+delta = dayDiff;break;case WEEKDAY:
+var days = Math.round(dayDiff);var weeks = parseInt(days/7);var mod = days % 7;if (mod == 0) {days = weeks*5;}
+else {var adj = 0;var aDay = dtA.getDay();var bDay = dtB.getDay();weeks = parseInt(days/7);mod = days % 7;var dtMark = new Date(dtA);dtMark.setDate(dtMark.getDate()+(weeks*7));var dayMark = dtMark.getDay();if (dayDiff > 0) {switch (true) {case aDay == 6:
+adj = -1;break;case aDay == 0:
+adj = 0;break;case bDay == 6:
+adj = -1;break;case bDay == 0:
+adj = -2;break;case (dayMark + mod) > 5:
+adj = -2;break;default:
+break;}}
+else if (dayDiff < 0) {switch (true) {case aDay == 6:
+adj = 0;break;case aDay == 0:
+adj = 1;break;case bDay == 6:
+adj = 2;break;case bDay == 0:
+adj = 1;break;case (dayMark + mod) < 0:
+adj = 2;break;default:
+break;}}
+days += adj;days -= (weeks*2);}
+delta = days;break;case HOUR:
+delta = houDiff;break;case MINUTE:
+delta = minDiff;break;case SECOND:
+delta = secDiff;break;case MILLISECOND:
+delta = msDiff;break;default:
+break;}}
+return Math.round(delta);};
\ No newline at end of file