dojo-rails 0.9.9 → 0.9.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (646) hide show
  1. data/lib/dojo/rails/version.rb +1 -1
  2. data/lib/dojo/version.rb +2 -2
  3. data/vendor/assets/javascripts/dojo.js +1 -1
  4. data/vendor/assets/javascripts/dojo/AdapterRegistry.js.uncompressed.js +11 -18
  5. data/vendor/assets/javascripts/dojo/Deferred.js +178 -0
  6. data/vendor/assets/javascripts/dojo/Deferred.js.uncompressed.js +314 -0
  7. data/vendor/assets/javascripts/dojo/DeferredList.js.uncompressed.js +4 -6
  8. data/vendor/assets/javascripts/dojo/Evented.js.uncompressed.js +15 -12
  9. data/vendor/assets/javascripts/dojo/LICENSE +1 -1
  10. data/vendor/assets/javascripts/dojo/NodeList-data.js.uncompressed.js +84 -73
  11. data/vendor/assets/javascripts/dojo/NodeList-dom.js +1 -1
  12. data/vendor/assets/javascripts/dojo/NodeList-dom.js.uncompressed.js +121 -66
  13. data/vendor/assets/javascripts/dojo/NodeList-fx.js +28 -27
  14. data/vendor/assets/javascripts/dojo/NodeList-fx.js.uncompressed.js +46 -47
  15. data/vendor/assets/javascripts/dojo/NodeList-html.js.uncompressed.js +19 -21
  16. data/vendor/assets/javascripts/dojo/NodeList-manipulate.js.uncompressed.js +172 -178
  17. data/vendor/assets/javascripts/dojo/NodeList-traverse.js.uncompressed.js +125 -130
  18. data/vendor/assets/javascripts/dojo/NodeList.js +10 -0
  19. data/vendor/assets/javascripts/dojo/NodeList.js.uncompressed.js +6 -0
  20. data/vendor/assets/javascripts/dojo/OpenAjax.js +13 -15
  21. data/vendor/assets/javascripts/dojo/Stateful.js +65 -41
  22. data/vendor/assets/javascripts/dojo/Stateful.js.uncompressed.js +110 -36
  23. data/vendor/assets/javascripts/dojo/_base/Color.js.uncompressed.js +34 -40
  24. data/vendor/assets/javascripts/dojo/_base/Deferred.js +84 -84
  25. data/vendor/assets/javascripts/dojo/_base/Deferred.js.uncompressed.js +57 -74
  26. data/vendor/assets/javascripts/dojo/_base/NodeList.js +2 -3
  27. data/vendor/assets/javascripts/dojo/_base/NodeList.js.uncompressed.js +58 -48
  28. data/vendor/assets/javascripts/dojo/_base/array.js +63 -67
  29. data/vendor/assets/javascripts/dojo/_base/array.js.uncompressed.js +259 -259
  30. data/vendor/assets/javascripts/dojo/_base/browser.js.uncompressed.js +10 -3
  31. data/vendor/assets/javascripts/dojo/_base/config.js.uncompressed.js +85 -72
  32. data/vendor/assets/javascripts/dojo/_base/configFirefoxExtension.js +15 -13
  33. data/vendor/assets/javascripts/dojo/_base/configNode.js +5 -5
  34. data/vendor/assets/javascripts/dojo/_base/configRhino.js +1 -1
  35. data/vendor/assets/javascripts/dojo/_base/configSpidermonkey.js +5 -9
  36. data/vendor/assets/javascripts/dojo/_base/connect.js +1 -1
  37. data/vendor/assets/javascripts/dojo/_base/connect.js.uncompressed.js +177 -203
  38. data/vendor/assets/javascripts/dojo/_base/declare.js +94 -90
  39. data/vendor/assets/javascripts/dojo/_base/declare.js.uncompressed.js +397 -402
  40. data/vendor/assets/javascripts/dojo/_base/event.js +16 -13
  41. data/vendor/assets/javascripts/dojo/_base/event.js.uncompressed.js +41 -33
  42. data/vendor/assets/javascripts/dojo/_base/fx.js +187 -183
  43. data/vendor/assets/javascripts/dojo/_base/fx.js.uncompressed.js +134 -130
  44. data/vendor/assets/javascripts/dojo/_base/html.js.uncompressed.js +14 -11
  45. data/vendor/assets/javascripts/dojo/_base/json.js.uncompressed.js +12 -6
  46. data/vendor/assets/javascripts/dojo/_base/kernel.js +35 -38
  47. data/vendor/assets/javascripts/dojo/_base/kernel.js.uncompressed.js +59 -62
  48. data/vendor/assets/javascripts/dojo/_base/lang.js +99 -98
  49. data/vendor/assets/javascripts/dojo/_base/lang.js.uncompressed.js +435 -537
  50. data/vendor/assets/javascripts/dojo/_base/loader.js +179 -154
  51. data/vendor/assets/javascripts/dojo/_base/loader.js.uncompressed.js +252 -194
  52. data/vendor/assets/javascripts/dojo/_base/query.js +2 -2
  53. data/vendor/assets/javascripts/dojo/_base/query.js.uncompressed.js +12 -2
  54. data/vendor/assets/javascripts/dojo/_base/sniff.js +6 -58
  55. data/vendor/assets/javascripts/dojo/_base/sniff.js.uncompressed.js +60 -151
  56. data/vendor/assets/javascripts/dojo/_base/unload.js +10 -9
  57. data/vendor/assets/javascripts/dojo/_base/unload.js.uncompressed.js +44 -43
  58. data/vendor/assets/javascripts/dojo/_base/url.js.uncompressed.js +1 -3
  59. data/vendor/assets/javascripts/dojo/_base/window.js +32 -35
  60. data/vendor/assets/javascripts/dojo/_base/window.js.uncompressed.js +117 -109
  61. data/vendor/assets/javascripts/dojo/_base/xhr.js +147 -263
  62. data/vendor/assets/javascripts/dojo/_base/xhr.js.uncompressed.js +253 -378
  63. data/vendor/assets/javascripts/dojo/_firebug/firebug.js +459 -458
  64. data/vendor/assets/javascripts/dojo/_firebug/firebug.js.uncompressed.js +39 -31
  65. data/vendor/assets/javascripts/dojo/aspect.js +71 -63
  66. data/vendor/assets/javascripts/dojo/aspect.js.uncompressed.js +111 -99
  67. data/vendor/assets/javascripts/dojo/back.js +11 -10
  68. data/vendor/assets/javascripts/dojo/back.js.uncompressed.js +59 -59
  69. data/vendor/assets/javascripts/dojo/behavior.js +49 -47
  70. data/vendor/assets/javascripts/dojo/behavior.js.uncompressed.js +26 -25
  71. data/vendor/assets/javascripts/dojo/cache.js +1 -1
  72. data/vendor/assets/javascripts/dojo/cache.js.uncompressed.js +2 -4
  73. data/vendor/assets/javascripts/dojo/cldr/monetary.js +13 -12
  74. data/vendor/assets/javascripts/dojo/cldr/monetary.js.uncompressed.js +15 -10
  75. data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js +1 -1
  76. data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js.uncompressed.js +85 -70
  77. data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js +1 -1
  78. data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js.uncompressed.js +6 -6
  79. data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js +1 -1
  80. data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js.uncompressed.js +157 -141
  81. data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js +1 -1
  82. data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js.uncompressed.js +62 -45
  83. data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js +1 -1
  84. data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js.uncompressed.js +112 -80
  85. data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js +1 -1
  86. data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js.uncompressed.js +11 -10
  87. data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js +1 -1
  88. data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js.uncompressed.js +110 -109
  89. data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js +1 -1
  90. data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js.uncompressed.js +6 -6
  91. data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js +1 -1
  92. data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js.uncompressed.js +176 -161
  93. data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js +1 -1
  94. data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js.uncompressed.js +9 -10
  95. data/vendor/assets/javascripts/dojo/cldr/nls/cs/buddhist.js +8 -0
  96. data/vendor/assets/javascripts/dojo/cldr/nls/cs/buddhist.js.uncompressed.js +170 -0
  97. data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js +1 -1
  98. data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js.uncompressed.js +9 -9
  99. data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js +1 -1
  100. data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js.uncompressed.js +166 -139
  101. data/vendor/assets/javascripts/dojo/cldr/nls/cs/islamic.js +8 -0
  102. data/vendor/assets/javascripts/dojo/cldr/nls/cs/islamic.js.uncompressed.js +99 -0
  103. data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js +1 -1
  104. data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js.uncompressed.js +9 -10
  105. data/vendor/assets/javascripts/dojo/cldr/nls/currency.js +1 -1
  106. data/vendor/assets/javascripts/dojo/cldr/nls/currency.js.uncompressed.js +5 -4
  107. data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js +1 -1
  108. data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js.uncompressed.js +91 -89
  109. data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js +1 -1
  110. data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js.uncompressed.js +6 -6
  111. data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js +1 -1
  112. data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js.uncompressed.js +174 -156
  113. data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js +1 -1
  114. data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js.uncompressed.js +60 -56
  115. data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js +1 -1
  116. data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js.uncompressed.js +9 -10
  117. data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js +1 -1
  118. data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js.uncompressed.js +92 -80
  119. data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js +1 -1
  120. data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js.uncompressed.js +8 -8
  121. data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js +1 -1
  122. data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js.uncompressed.js +176 -158
  123. data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js +1 -1
  124. data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js.uncompressed.js +63 -143
  125. data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js +1 -1
  126. data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js.uncompressed.js +9 -10
  127. data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js +1 -1
  128. data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js.uncompressed.js +144 -70
  129. data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js +1 -1
  130. data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js.uncompressed.js +6 -5
  131. data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js +1 -1
  132. data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js.uncompressed.js +170 -153
  133. data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js +1 -1
  134. data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js.uncompressed.js +78 -37
  135. data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js +1 -1
  136. data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js.uncompressed.js +9 -9
  137. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js +1 -1
  138. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js.uncompressed.js +15 -8
  139. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js +1 -1
  140. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js.uncompressed.js +12 -10
  141. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js +1 -1
  142. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js.uncompressed.js +69 -64
  143. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js +1 -1
  144. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js.uncompressed.js +16 -12
  145. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js +1 -1
  146. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js.uncompressed.js +40 -127
  147. data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js +1 -1
  148. data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js.uncompressed.js +77 -72
  149. data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js +1 -1
  150. data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js.uncompressed.js +7 -7
  151. data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js +1 -1
  152. data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js.uncompressed.js +154 -140
  153. data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js +1 -1
  154. data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js.uncompressed.js +52 -139
  155. data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js +1 -1
  156. data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js.uncompressed.js +9 -11
  157. data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js +1 -1
  158. data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js.uncompressed.js +104 -78
  159. data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js +1 -1
  160. data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js.uncompressed.js +8 -7
  161. data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js +1 -1
  162. data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js.uncompressed.js +177 -156
  163. data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js +1 -1
  164. data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js.uncompressed.js +74 -145
  165. data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js +1 -1
  166. data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js.uncompressed.js +9 -9
  167. data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js +1 -1
  168. data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js.uncompressed.js +150 -102
  169. data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js +1 -1
  170. data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js.uncompressed.js +7 -12
  171. data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js +1 -1
  172. data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js.uncompressed.js +163 -144
  173. data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js +1 -1
  174. data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js.uncompressed.js +130 -95
  175. data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js +1 -1
  176. data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js.uncompressed.js +119 -83
  177. data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js +1 -1
  178. data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js.uncompressed.js +9 -10
  179. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js +1 -1
  180. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js.uncompressed.js +2 -2
  181. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js +1 -1
  182. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js.uncompressed.js +2 -2
  183. data/vendor/assets/javascripts/dojo/cldr/nls/fr/buddhist.js +8 -0
  184. data/vendor/assets/javascripts/dojo/cldr/nls/fr/buddhist.js.uncompressed.js +160 -0
  185. data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js +1 -1
  186. data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js.uncompressed.js +11 -12
  187. data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js +1 -1
  188. data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js.uncompressed.js +171 -157
  189. data/vendor/assets/javascripts/dojo/cldr/nls/fr/hebrew.js +8 -0
  190. data/vendor/assets/javascripts/dojo/cldr/nls/fr/hebrew.js.uncompressed.js +139 -0
  191. data/vendor/assets/javascripts/dojo/cldr/nls/fr/islamic.js +8 -0
  192. data/vendor/assets/javascripts/dojo/cldr/nls/fr/islamic.js.uncompressed.js +177 -0
  193. data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js +1 -1
  194. data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js.uncompressed.js +9 -10
  195. data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js +1 -1
  196. data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js.uncompressed.js +127 -125
  197. data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js +1 -1
  198. data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js.uncompressed.js +6 -6
  199. data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js +1 -1
  200. data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js.uncompressed.js +168 -140
  201. data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js +1 -1
  202. data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js.uncompressed.js +83 -40
  203. data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js +1 -1
  204. data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js.uncompressed.js +56 -40
  205. data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js +1 -1
  206. data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js.uncompressed.js +9 -10
  207. data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js +1 -1
  208. data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js.uncompressed.js +138 -132
  209. data/vendor/assets/javascripts/dojo/cldr/nls/hu/buddhist.js +8 -0
  210. data/vendor/assets/javascripts/dojo/cldr/nls/hu/buddhist.js.uncompressed.js +209 -0
  211. data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js +1 -1
  212. data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js.uncompressed.js +7 -7
  213. data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js +1 -1
  214. data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js.uncompressed.js +161 -138
  215. data/vendor/assets/javascripts/dojo/cldr/nls/hu/hebrew.js +8 -0
  216. data/vendor/assets/javascripts/dojo/cldr/nls/hu/hebrew.js.uncompressed.js +187 -0
  217. data/vendor/assets/javascripts/dojo/cldr/nls/hu/islamic.js +8 -0
  218. data/vendor/assets/javascripts/dojo/cldr/nls/hu/islamic.js.uncompressed.js +199 -0
  219. data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js +1 -1
  220. data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js.uncompressed.js +8 -9
  221. data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js +1 -1
  222. data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js.uncompressed.js +137 -132
  223. data/vendor/assets/javascripts/dojo/cldr/nls/it/buddhist.js +8 -0
  224. data/vendor/assets/javascripts/dojo/cldr/nls/it/buddhist.js.uncompressed.js +192 -0
  225. data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js +1 -1
  226. data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js.uncompressed.js +6 -6
  227. data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js +1 -1
  228. data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js.uncompressed.js +161 -146
  229. data/vendor/assets/javascripts/dojo/cldr/nls/it/islamic.js +8 -0
  230. data/vendor/assets/javascripts/dojo/cldr/nls/it/islamic.js.uncompressed.js +104 -0
  231. data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js +1 -1
  232. data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js.uncompressed.js +9 -3
  233. data/vendor/assets/javascripts/dojo/cldr/nls/ja/buddhist.js +8 -0
  234. data/vendor/assets/javascripts/dojo/cldr/nls/ja/buddhist.js.uncompressed.js +101 -0
  235. data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js +1 -1
  236. data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js.uncompressed.js +8 -8
  237. data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js +1 -1
  238. data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js.uncompressed.js +159 -139
  239. data/vendor/assets/javascripts/dojo/cldr/nls/ja/hebrew.js +8 -0
  240. data/vendor/assets/javascripts/dojo/cldr/nls/ja/hebrew.js.uncompressed.js +168 -0
  241. data/vendor/assets/javascripts/dojo/cldr/nls/ja/islamic.js +8 -0
  242. data/vendor/assets/javascripts/dojo/cldr/nls/ja/islamic.js.uncompressed.js +128 -0
  243. data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js +1 -1
  244. data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js.uncompressed.js +5 -3
  245. data/vendor/assets/javascripts/dojo/cldr/nls/ko/buddhist.js +8 -0
  246. data/vendor/assets/javascripts/dojo/cldr/nls/ko/buddhist.js.uncompressed.js +127 -0
  247. data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js +1 -1
  248. data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js.uncompressed.js +6 -6
  249. data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js +1 -1
  250. data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js.uncompressed.js +153 -137
  251. data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js +1 -1
  252. data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js.uncompressed.js +9 -10
  253. data/vendor/assets/javascripts/dojo/cldr/nls/nb/buddhist.js +8 -0
  254. data/vendor/assets/javascripts/dojo/cldr/nls/nb/buddhist.js.uncompressed.js +206 -0
  255. data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js +1 -1
  256. data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js.uncompressed.js +6 -14
  257. data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js +1 -1
  258. data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js.uncompressed.js +176 -153
  259. data/vendor/assets/javascripts/dojo/cldr/nls/nb/islamic.js +8 -0
  260. data/vendor/assets/javascripts/dojo/cldr/nls/nb/islamic.js.uncompressed.js +133 -0
  261. data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js +1 -1
  262. data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js.uncompressed.js +9 -10
  263. data/vendor/assets/javascripts/dojo/cldr/nls/nl/buddhist.js +8 -0
  264. data/vendor/assets/javascripts/dojo/cldr/nls/nl/buddhist.js.uncompressed.js +133 -0
  265. data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js +1 -1
  266. data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js.uncompressed.js +6 -6
  267. data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js +1 -1
  268. data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js.uncompressed.js +180 -162
  269. data/vendor/assets/javascripts/dojo/cldr/nls/nl/hebrew.js +8 -0
  270. data/vendor/assets/javascripts/dojo/cldr/nls/nl/hebrew.js.uncompressed.js +123 -0
  271. data/vendor/assets/javascripts/dojo/cldr/nls/nl/islamic.js +8 -0
  272. data/vendor/assets/javascripts/dojo/cldr/nls/nl/islamic.js.uncompressed.js +163 -0
  273. data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js +1 -1
  274. data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js.uncompressed.js +9 -10
  275. data/vendor/assets/javascripts/dojo/cldr/nls/number.js +1 -1
  276. data/vendor/assets/javascripts/dojo/cldr/nls/number.js.uncompressed.js +17 -19
  277. data/vendor/assets/javascripts/dojo/cldr/nls/pl/buddhist.js +8 -0
  278. data/vendor/assets/javascripts/dojo/cldr/nls/pl/buddhist.js.uncompressed.js +203 -0
  279. data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js +1 -1
  280. data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js.uncompressed.js +6 -6
  281. data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js +1 -1
  282. data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js.uncompressed.js +169 -149
  283. data/vendor/assets/javascripts/dojo/cldr/nls/pl/hebrew.js +8 -0
  284. data/vendor/assets/javascripts/dojo/cldr/nls/pl/hebrew.js.uncompressed.js +166 -0
  285. data/vendor/assets/javascripts/dojo/cldr/nls/pl/islamic.js +8 -0
  286. data/vendor/assets/javascripts/dojo/cldr/nls/pl/islamic.js.uncompressed.js +196 -0
  287. data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js +1 -1
  288. data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js.uncompressed.js +9 -10
  289. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/buddhist.js +8 -0
  290. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/buddhist.js.uncompressed.js +127 -0
  291. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/currency.js +8 -0
  292. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/currency.js.uncompressed.js +8 -0
  293. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js +1 -1
  294. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js.uncompressed.js +78 -62
  295. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/islamic.js +8 -0
  296. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/islamic.js.uncompressed.js +82 -0
  297. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js +1 -1
  298. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js.uncompressed.js +3 -2
  299. data/vendor/assets/javascripts/dojo/cldr/nls/pt/buddhist.js +8 -0
  300. data/vendor/assets/javascripts/dojo/cldr/nls/pt/buddhist.js.uncompressed.js +130 -0
  301. data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js +1 -1
  302. data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js.uncompressed.js +6 -6
  303. data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js +1 -1
  304. data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js.uncompressed.js +185 -166
  305. data/vendor/assets/javascripts/dojo/cldr/nls/pt/hebrew.js +8 -0
  306. data/vendor/assets/javascripts/dojo/cldr/nls/pt/hebrew.js.uncompressed.js +137 -0
  307. data/vendor/assets/javascripts/dojo/cldr/nls/pt/islamic.js +8 -0
  308. data/vendor/assets/javascripts/dojo/cldr/nls/pt/islamic.js.uncompressed.js +101 -0
  309. data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js +1 -1
  310. data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js.uncompressed.js +9 -10
  311. data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js +1 -1
  312. data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js.uncompressed.js +148 -62
  313. data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js +1 -1
  314. data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js.uncompressed.js +6 -5
  315. data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js +1 -1
  316. data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js.uncompressed.js +170 -159
  317. data/vendor/assets/javascripts/dojo/cldr/nls/ro/hebrew.js +8 -0
  318. data/vendor/assets/javascripts/dojo/cldr/nls/ro/hebrew.js.uncompressed.js +169 -0
  319. data/vendor/assets/javascripts/dojo/cldr/nls/ro/islamic.js +8 -0
  320. data/vendor/assets/javascripts/dojo/cldr/nls/ro/islamic.js.uncompressed.js +117 -0
  321. data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js +1 -1
  322. data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js.uncompressed.js +9 -10
  323. data/vendor/assets/javascripts/dojo/cldr/nls/ru/buddhist.js +8 -0
  324. data/vendor/assets/javascripts/dojo/cldr/nls/ru/buddhist.js.uncompressed.js +203 -0
  325. data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js +1 -1
  326. data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js.uncompressed.js +7 -6
  327. data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js +1 -1
  328. data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js.uncompressed.js +184 -155
  329. data/vendor/assets/javascripts/dojo/cldr/nls/ru/hebrew.js +8 -0
  330. data/vendor/assets/javascripts/dojo/cldr/nls/ru/hebrew.js.uncompressed.js +169 -0
  331. data/vendor/assets/javascripts/dojo/cldr/nls/ru/islamic.js +8 -0
  332. data/vendor/assets/javascripts/dojo/cldr/nls/ru/islamic.js.uncompressed.js +197 -0
  333. data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js +1 -1
  334. data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js.uncompressed.js +10 -10
  335. data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js +1 -1
  336. data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js.uncompressed.js +7 -7
  337. data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js +1 -1
  338. data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js.uncompressed.js +172 -148
  339. data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js +1 -1
  340. data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js.uncompressed.js +5 -2
  341. data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js +1 -1
  342. data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js.uncompressed.js +7 -7
  343. data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js +1 -1
  344. data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js.uncompressed.js +157 -134
  345. data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js +1 -1
  346. data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js.uncompressed.js +9 -10
  347. data/vendor/assets/javascripts/dojo/cldr/nls/sv/buddhist.js +8 -0
  348. data/vendor/assets/javascripts/dojo/cldr/nls/sv/buddhist.js.uncompressed.js +209 -0
  349. data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js +1 -1
  350. data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js.uncompressed.js +7 -9
  351. data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js +1 -1
  352. data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js.uncompressed.js +164 -152
  353. data/vendor/assets/javascripts/dojo/cldr/nls/sv/hebrew.js +8 -0
  354. data/vendor/assets/javascripts/dojo/cldr/nls/sv/hebrew.js.uncompressed.js +167 -0
  355. data/vendor/assets/javascripts/dojo/cldr/nls/sv/islamic.js +8 -0
  356. data/vendor/assets/javascripts/dojo/cldr/nls/sv/islamic.js.uncompressed.js +189 -0
  357. data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js +1 -1
  358. data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js.uncompressed.js +9 -10
  359. data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js +1 -1
  360. data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js.uncompressed.js +91 -65
  361. data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js +1 -1
  362. data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js.uncompressed.js +7 -7
  363. data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js +1 -1
  364. data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js.uncompressed.js +161 -138
  365. data/vendor/assets/javascripts/dojo/cldr/nls/th/hebrew.js +8 -0
  366. data/vendor/assets/javascripts/dojo/cldr/nls/th/hebrew.js.uncompressed.js +139 -0
  367. data/vendor/assets/javascripts/dojo/cldr/nls/th/islamic.js +8 -0
  368. data/vendor/assets/javascripts/dojo/cldr/nls/th/islamic.js.uncompressed.js +134 -0
  369. data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js +1 -1
  370. data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js.uncompressed.js +9 -10
  371. data/vendor/assets/javascripts/dojo/cldr/nls/tr/buddhist.js +8 -0
  372. data/vendor/assets/javascripts/dojo/cldr/nls/tr/buddhist.js.uncompressed.js +203 -0
  373. data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js +1 -1
  374. data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js.uncompressed.js +8 -8
  375. data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js +1 -1
  376. data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js.uncompressed.js +160 -146
  377. data/vendor/assets/javascripts/dojo/cldr/nls/tr/hebrew.js +8 -0
  378. data/vendor/assets/javascripts/dojo/cldr/nls/tr/hebrew.js.uncompressed.js +161 -0
  379. data/vendor/assets/javascripts/dojo/cldr/nls/tr/islamic.js +8 -0
  380. data/vendor/assets/javascripts/dojo/cldr/nls/tr/islamic.js.uncompressed.js +181 -0
  381. data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js +1 -1
  382. data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js.uncompressed.js +9 -10
  383. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js +1 -1
  384. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js.uncompressed.js +141 -95
  385. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js +1 -1
  386. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js.uncompressed.js +7 -6
  387. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js +1 -1
  388. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js.uncompressed.js +144 -146
  389. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/hebrew.js +8 -0
  390. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/hebrew.js.uncompressed.js +182 -0
  391. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js +1 -1
  392. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js.uncompressed.js +153 -54
  393. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js +1 -1
  394. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js.uncompressed.js +2 -0
  395. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js +1 -1
  396. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js.uncompressed.js +6 -6
  397. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js +1 -1
  398. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js.uncompressed.js +34 -37
  399. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js +1 -1
  400. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js.uncompressed.js +1 -1
  401. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js +1 -1
  402. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js.uncompressed.js +5 -4
  403. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js +1 -1
  404. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js.uncompressed.js +51 -49
  405. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/number.js +8 -0
  406. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/number.js.uncompressed.js +7 -0
  407. data/vendor/assets/javascripts/dojo/cldr/nls/zh/buddhist.js +8 -0
  408. data/vendor/assets/javascripts/dojo/cldr/nls/zh/buddhist.js.uncompressed.js +205 -0
  409. data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js +1 -1
  410. data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js.uncompressed.js +6 -6
  411. data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js +1 -1
  412. data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js.uncompressed.js +152 -135
  413. data/vendor/assets/javascripts/dojo/cldr/nls/zh/hebrew.js +8 -0
  414. data/vendor/assets/javascripts/dojo/cldr/nls/zh/hebrew.js.uncompressed.js +181 -0
  415. data/vendor/assets/javascripts/dojo/cldr/nls/zh/islamic.js +8 -0
  416. data/vendor/assets/javascripts/dojo/cldr/nls/zh/islamic.js.uncompressed.js +137 -0
  417. data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js +1 -1
  418. data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js.uncompressed.js +4 -3
  419. data/vendor/assets/javascripts/dojo/cldr/supplemental.js +25 -28
  420. data/vendor/assets/javascripts/dojo/cldr/supplemental.js.uncompressed.js +46 -39
  421. data/vendor/assets/javascripts/dojo/colors.js +2 -1
  422. data/vendor/assets/javascripts/dojo/colors.js.uncompressed.js +22 -22
  423. data/vendor/assets/javascripts/dojo/cookie.js.uncompressed.js +30 -30
  424. data/vendor/assets/javascripts/dojo/currency.js +14 -13
  425. data/vendor/assets/javascripts/dojo/currency.js.uncompressed.js +64 -66
  426. data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js +138 -138
  427. data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js.uncompressed.js +251 -245
  428. data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js +1 -1
  429. data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js.uncompressed.js +80 -69
  430. data/vendor/assets/javascripts/dojo/data/ObjectStore.js +176 -169
  431. data/vendor/assets/javascripts/dojo/data/ObjectStore.js.uncompressed.js +122 -83
  432. data/vendor/assets/javascripts/dojo/data/api/Identity.js +6 -7
  433. data/vendor/assets/javascripts/dojo/data/api/Identity.js.uncompressed.js +35 -33
  434. data/vendor/assets/javascripts/dojo/data/api/Item.js +10 -0
  435. data/vendor/assets/javascripts/dojo/data/api/Item.js.uncompressed.js +13 -0
  436. data/vendor/assets/javascripts/dojo/data/api/Notification.js +5 -6
  437. data/vendor/assets/javascripts/dojo/data/api/Notification.js.uncompressed.js +39 -51
  438. data/vendor/assets/javascripts/dojo/data/api/Read.js +2 -3
  439. data/vendor/assets/javascripts/dojo/data/api/Read.js.uncompressed.js +85 -84
  440. data/vendor/assets/javascripts/dojo/data/api/Request.js +2 -3
  441. data/vendor/assets/javascripts/dojo/data/api/Request.js.uncompressed.js +10 -13
  442. data/vendor/assets/javascripts/dojo/data/api/Write.js +9 -10
  443. data/vendor/assets/javascripts/dojo/data/api/Write.js.uncompressed.js +28 -43
  444. data/vendor/assets/javascripts/dojo/data/util/filter.js +3 -2
  445. data/vendor/assets/javascripts/dojo/data/util/filter.js.uncompressed.js +19 -16
  446. data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js +37 -40
  447. data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js.uncompressed.js +202 -57
  448. data/vendor/assets/javascripts/dojo/data/util/sorter.js +3 -2
  449. data/vendor/assets/javascripts/dojo/data/util/sorter.js.uncompressed.js +16 -16
  450. data/vendor/assets/javascripts/dojo/date.js +106 -105
  451. data/vendor/assets/javascripts/dojo/date.js.uncompressed.js +46 -47
  452. data/vendor/assets/javascripts/dojo/date/locale.js +196 -183
  453. data/vendor/assets/javascripts/dojo/date/locale.js.uncompressed.js +105 -81
  454. data/vendor/assets/javascripts/dojo/date/stamp.js +10 -9
  455. data/vendor/assets/javascripts/dojo/date/stamp.js.uncompressed.js +40 -42
  456. data/vendor/assets/javascripts/dojo/dnd/AutoSource.js +2 -2
  457. data/vendor/assets/javascripts/dojo/dnd/AutoSource.js.uncompressed.js +3 -4
  458. data/vendor/assets/javascripts/dojo/dnd/Avatar.js +32 -30
  459. data/vendor/assets/javascripts/dojo/dnd/Avatar.js.uncompressed.js +45 -34
  460. data/vendor/assets/javascripts/dojo/dnd/Container.js +99 -96
  461. data/vendor/assets/javascripts/dojo/dnd/Container.js.uncompressed.js +123 -99
  462. data/vendor/assets/javascripts/dojo/dnd/Manager.js +58 -52
  463. data/vendor/assets/javascripts/dojo/dnd/Manager.js.uncompressed.js +52 -42
  464. data/vendor/assets/javascripts/dojo/dnd/Moveable.js +41 -39
  465. data/vendor/assets/javascripts/dojo/dnd/Moveable.js.uncompressed.js +72 -60
  466. data/vendor/assets/javascripts/dojo/dnd/Mover.js +19 -17
  467. data/vendor/assets/javascripts/dojo/dnd/Mover.js.uncompressed.js +37 -32
  468. data/vendor/assets/javascripts/dojo/dnd/Selector.js +52 -50
  469. data/vendor/assets/javascripts/dojo/dnd/Selector.js.uncompressed.js +51 -46
  470. data/vendor/assets/javascripts/dojo/dnd/Source.js +109 -106
  471. data/vendor/assets/javascripts/dojo/dnd/Source.js.uncompressed.js +60 -67
  472. data/vendor/assets/javascripts/dojo/dnd/Target.js +3 -3
  473. data/vendor/assets/javascripts/dojo/dnd/Target.js.uncompressed.js +7 -7
  474. data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js +19 -20
  475. data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js.uncompressed.js +9 -14
  476. data/vendor/assets/javascripts/dojo/dnd/autoscroll.js +48 -39
  477. data/vendor/assets/javascripts/dojo/dnd/autoscroll.js.uncompressed.js +77 -46
  478. data/vendor/assets/javascripts/dojo/dnd/common.js +11 -10
  479. data/vendor/assets/javascripts/dojo/dnd/common.js.uncompressed.js +19 -13
  480. data/vendor/assets/javascripts/dojo/dnd/move.js +31 -34
  481. data/vendor/assets/javascripts/dojo/dnd/move.js.uncompressed.js +31 -27
  482. data/vendor/assets/javascripts/dojo/dojo.js +12 -1869
  483. data/vendor/assets/javascripts/dojo/dojo.js.uncompressed.js +7168 -5874
  484. data/vendor/assets/javascripts/dojo/dojo.profile.js +6 -6
  485. data/vendor/assets/javascripts/dojo/dom-attr.js +30 -31
  486. data/vendor/assets/javascripts/dojo/dom-attr.js.uncompressed.js +71 -89
  487. data/vendor/assets/javascripts/dojo/dom-class.js.uncompressed.js +161 -155
  488. data/vendor/assets/javascripts/dojo/dom-construct.js +1 -1
  489. data/vendor/assets/javascripts/dojo/dom-construct.js.uncompressed.js +159 -202
  490. data/vendor/assets/javascripts/dojo/dom-form.js.uncompressed.js +60 -77
  491. data/vendor/assets/javascripts/dojo/dom-geometry.js +43 -45
  492. data/vendor/assets/javascripts/dojo/dom-geometry.js.uncompressed.js +257 -403
  493. data/vendor/assets/javascripts/dojo/dom-prop.js +36 -37
  494. data/vendor/assets/javascripts/dojo/dom-prop.js.uncompressed.js +33 -42
  495. data/vendor/assets/javascripts/dojo/dom-style.js +2 -2
  496. data/vendor/assets/javascripts/dojo/dom-style.js.uncompressed.js +127 -142
  497. data/vendor/assets/javascripts/dojo/dom.js +3 -1
  498. data/vendor/assets/javascripts/dojo/dom.js.uncompressed.js +77 -85
  499. data/vendor/assets/javascripts/dojo/domReady.js +2 -2
  500. data/vendor/assets/javascripts/dojo/domReady.js.uncompressed.js +4 -2
  501. data/vendor/assets/javascripts/dojo/errors/CancelError.js +10 -0
  502. data/vendor/assets/javascripts/dojo/errors/CancelError.js.uncompressed.js +13 -0
  503. data/vendor/assets/javascripts/dojo/errors/RequestError.js +12 -0
  504. data/vendor/assets/javascripts/dojo/errors/RequestError.js.uncompressed.js +15 -0
  505. data/vendor/assets/javascripts/dojo/errors/RequestTimeoutError.js +10 -0
  506. data/vendor/assets/javascripts/dojo/errors/RequestTimeoutError.js.uncompressed.js +15 -0
  507. data/vendor/assets/javascripts/dojo/errors/create.js +36 -0
  508. data/vendor/assets/javascripts/dojo/errors/create.js.uncompressed.js +41 -0
  509. data/vendor/assets/javascripts/dojo/fx.js.uncompressed.js +27 -34
  510. data/vendor/assets/javascripts/dojo/fx/Toggler.js.uncompressed.js +9 -11
  511. data/vendor/assets/javascripts/dojo/fx/easing.js.uncompressed.js +7 -15
  512. data/vendor/assets/javascripts/dojo/gears.js +10 -9
  513. data/vendor/assets/javascripts/dojo/gears.js.uncompressed.js +18 -14
  514. data/vendor/assets/javascripts/dojo/has.js +35 -35
  515. data/vendor/assets/javascripts/dojo/has.js.uncompressed.js +55 -60
  516. data/vendor/assets/javascripts/dojo/hash.js +74 -74
  517. data/vendor/assets/javascripts/dojo/hash.js.uncompressed.js +62 -49
  518. data/vendor/assets/javascripts/dojo/hccss.js +23 -0
  519. data/vendor/assets/javascripts/dojo/hccss.js.uncompressed.js +51 -0
  520. data/vendor/assets/javascripts/dojo/html.js +81 -64
  521. data/vendor/assets/javascripts/dojo/html.js.uncompressed.js +107 -76
  522. data/vendor/assets/javascripts/dojo/i18n.js +155 -139
  523. data/vendor/assets/javascripts/dojo/i18n.js.uncompressed.js +234 -198
  524. data/vendor/assets/javascripts/dojo/io-query.js +28 -30
  525. data/vendor/assets/javascripts/dojo/io-query.js.uncompressed.js +14 -15
  526. data/vendor/assets/javascripts/dojo/io/iframe.js +49 -207
  527. data/vendor/assets/javascripts/dojo/io/iframe.js.uncompressed.js +127 -313
  528. data/vendor/assets/javascripts/dojo/io/script.js +60 -84
  529. data/vendor/assets/javascripts/dojo/io/script.js.uncompressed.js +121 -128
  530. data/vendor/assets/javascripts/dojo/jaxer.js +2 -1
  531. data/vendor/assets/javascripts/dojo/jaxer.js.uncompressed.js +2 -4
  532. data/vendor/assets/javascripts/dojo/json.js +2 -0
  533. data/vendor/assets/javascripts/dojo/json.js.uncompressed.js +38 -35
  534. data/vendor/assets/javascripts/dojo/keys.js +2 -2
  535. data/vendor/assets/javascripts/dojo/keys.js.uncompressed.js +73 -76
  536. data/vendor/assets/javascripts/dojo/main.js +10 -10
  537. data/vendor/assets/javascripts/dojo/main.js.uncompressed.js +13 -11
  538. data/vendor/assets/javascripts/dojo/mouse.js +25 -4
  539. data/vendor/assets/javascripts/dojo/mouse.js.uncompressed.js +78 -34
  540. data/vendor/assets/javascripts/dojo/nls/az/colors.js.uncompressed.js +2 -4
  541. data/vendor/assets/javascripts/dojo/nls/colors.js.uncompressed.js +1 -1
  542. data/vendor/assets/javascripts/dojo/nls/he/colors.js.uncompressed.js +2 -5
  543. data/vendor/assets/javascripts/dojo/nls/hr/colors.js +1 -1
  544. data/vendor/assets/javascripts/dojo/nls/hr/colors.js.uncompressed.js +149 -149
  545. data/vendor/assets/javascripts/dojo/nls/sl/colors.js +1 -1
  546. data/vendor/assets/javascripts/dojo/nls/sl/colors.js.uncompressed.js +7 -7
  547. data/vendor/assets/javascripts/dojo/node.js +18 -0
  548. data/vendor/assets/javascripts/dojo/node.js.uncompressed.js +27 -0
  549. data/vendor/assets/javascripts/dojo/number.js +38 -37
  550. data/vendor/assets/javascripts/dojo/number.js.uncompressed.js +94 -122
  551. data/vendor/assets/javascripts/dojo/on.js +146 -116
  552. data/vendor/assets/javascripts/dojo/on.js.uncompressed.js +135 -92
  553. data/vendor/assets/javascripts/dojo/package.json +1 -1
  554. data/vendor/assets/javascripts/dojo/parser.js +325 -200
  555. data/vendor/assets/javascripts/dojo/parser.js.uncompressed.js +677 -406
  556. data/vendor/assets/javascripts/dojo/promise/Promise.js +37 -0
  557. data/vendor/assets/javascripts/dojo/promise/Promise.js.uncompressed.js +133 -0
  558. data/vendor/assets/javascripts/dojo/promise/all.js +60 -0
  559. data/vendor/assets/javascripts/dojo/promise/all.js.uncompressed.js +76 -0
  560. data/vendor/assets/javascripts/dojo/promise/first.js +34 -0
  561. data/vendor/assets/javascripts/dojo/promise/first.js.uncompressed.js +49 -0
  562. data/vendor/assets/javascripts/dojo/promise/instrumentation.js +86 -0
  563. data/vendor/assets/javascripts/dojo/promise/instrumentation.js.uncompressed.js +103 -0
  564. data/vendor/assets/javascripts/dojo/promise/tracer.js +37 -0
  565. data/vendor/assets/javascripts/dojo/promise/tracer.js.uncompressed.js +85 -0
  566. data/vendor/assets/javascripts/dojo/query.js +8 -8
  567. data/vendor/assets/javascripts/dojo/query.js.uncompressed.js +206 -214
  568. data/vendor/assets/javascripts/dojo/ready.js +1 -7
  569. data/vendor/assets/javascripts/dojo/ready.js.uncompressed.js +31 -33
  570. data/vendor/assets/javascripts/dojo/regexp.js +14 -13
  571. data/vendor/assets/javascripts/dojo/regexp.js.uncompressed.js +15 -18
  572. data/vendor/assets/javascripts/dojo/request.js +10 -0
  573. data/vendor/assets/javascripts/dojo/request.js.uncompressed.js +75 -0
  574. data/vendor/assets/javascripts/dojo/request/default.js +28 -0
  575. data/vendor/assets/javascripts/dojo/request/default.js.uncompressed.js +32 -0
  576. data/vendor/assets/javascripts/dojo/request/handlers.js +47 -0
  577. data/vendor/assets/javascripts/dojo/request/handlers.js.uncompressed.js +62 -0
  578. data/vendor/assets/javascripts/dojo/request/iframe.js +290 -0
  579. data/vendor/assets/javascripts/dojo/request/iframe.js.uncompressed.js +429 -0
  580. data/vendor/assets/javascripts/dojo/request/node.js +81 -0
  581. data/vendor/assets/javascripts/dojo/request/node.js.uncompressed.js +188 -0
  582. data/vendor/assets/javascripts/dojo/request/notify.js +38 -0
  583. data/vendor/assets/javascripts/dojo/request/notify.js.uncompressed.js +73 -0
  584. data/vendor/assets/javascripts/dojo/request/registry.js +68 -0
  585. data/vendor/assets/javascripts/dojo/request/registry.js.uncompressed.js +85 -0
  586. data/vendor/assets/javascripts/dojo/request/script.js +111 -0
  587. data/vendor/assets/javascripts/dojo/request/script.js.uncompressed.js +211 -0
  588. data/vendor/assets/javascripts/dojo/request/util.js +113 -0
  589. data/vendor/assets/javascripts/dojo/request/util.js.uncompressed.js +145 -0
  590. data/vendor/assets/javascripts/dojo/request/watch.js +73 -0
  591. data/vendor/assets/javascripts/dojo/request/watch.js.uncompressed.js +109 -0
  592. data/vendor/assets/javascripts/dojo/request/xhr.js +184 -0
  593. data/vendor/assets/javascripts/dojo/request/xhr.js.uncompressed.js +317 -0
  594. data/vendor/assets/javascripts/dojo/resources/dnd.css +3 -3
  595. data/vendor/assets/javascripts/dojo/router.js +10 -0
  596. data/vendor/assets/javascripts/dojo/router.js.uncompressed.js +28 -0
  597. data/vendor/assets/javascripts/dojo/router/RouterBase.js +160 -0
  598. data/vendor/assets/javascripts/dojo/router/RouterBase.js.uncompressed.js +350 -0
  599. data/vendor/assets/javascripts/dojo/rpc/JsonService.js +20 -21
  600. data/vendor/assets/javascripts/dojo/rpc/JsonService.js.uncompressed.js +29 -27
  601. data/vendor/assets/javascripts/dojo/rpc/JsonpService.js +14 -15
  602. data/vendor/assets/javascripts/dojo/rpc/JsonpService.js.uncompressed.js +28 -29
  603. data/vendor/assets/javascripts/dojo/rpc/RpcService.js +50 -51
  604. data/vendor/assets/javascripts/dojo/rpc/RpcService.js.uncompressed.js +39 -36
  605. data/vendor/assets/javascripts/dojo/selector/_loader.js.uncompressed.js +4 -2
  606. data/vendor/assets/javascripts/dojo/selector/acme.js +442 -408
  607. data/vendor/assets/javascripts/dojo/selector/acme.js.uncompressed.js +160 -147
  608. data/vendor/assets/javascripts/dojo/selector/lite.js +136 -127
  609. data/vendor/assets/javascripts/dojo/selector/lite.js.uncompressed.js +62 -43
  610. data/vendor/assets/javascripts/dojo/sniff.js +41 -0
  611. data/vendor/assets/javascripts/dojo/sniff.js.uncompressed.js +70 -0
  612. data/vendor/assets/javascripts/dojo/store/Cache.js +7 -6
  613. data/vendor/assets/javascripts/dojo/store/Cache.js.uncompressed.js +48 -51
  614. data/vendor/assets/javascripts/dojo/store/DataStore.js +88 -65
  615. data/vendor/assets/javascripts/dojo/store/DataStore.js.uncompressed.js +48 -16
  616. data/vendor/assets/javascripts/dojo/store/JsonRest.js +44 -40
  617. data/vendor/assets/javascripts/dojo/store/JsonRest.js.uncompressed.js +74 -40
  618. data/vendor/assets/javascripts/dojo/store/Memory.js +30 -29
  619. data/vendor/assets/javascripts/dojo/store/Memory.js.uncompressed.js +40 -37
  620. data/vendor/assets/javascripts/dojo/store/Observable.js +90 -79
  621. data/vendor/assets/javascripts/dojo/store/Observable.js.uncompressed.js +35 -23
  622. data/vendor/assets/javascripts/dojo/store/README +5 -9
  623. data/vendor/assets/javascripts/dojo/store/api/Store.js +12 -24
  624. data/vendor/assets/javascripts/dojo/store/api/Store.js.uncompressed.js +31 -41
  625. data/vendor/assets/javascripts/dojo/store/util/QueryResults.js +4 -4
  626. data/vendor/assets/javascripts/dojo/store/util/QueryResults.js.uncompressed.js +13 -14
  627. data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js +11 -10
  628. data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js.uncompressed.js +18 -16
  629. data/vendor/assets/javascripts/dojo/string.js +23 -22
  630. data/vendor/assets/javascripts/dojo/string.js.uncompressed.js +38 -38
  631. data/vendor/assets/javascripts/dojo/text.js +50 -50
  632. data/vendor/assets/javascripts/dojo/text.js.uncompressed.js +129 -127
  633. data/vendor/assets/javascripts/dojo/topic.js.uncompressed.js +17 -12
  634. data/vendor/assets/javascripts/dojo/touch.js +35 -7
  635. data/vendor/assets/javascripts/dojo/touch.js.uncompressed.js +146 -34
  636. data/vendor/assets/javascripts/dojo/uacss.js +1 -1
  637. data/vendor/assets/javascripts/dojo/uacss.js.uncompressed.js +19 -10
  638. data/vendor/assets/javascripts/dojo/when.js +31 -0
  639. data/vendor/assets/javascripts/dojo/when.js.uncompressed.js +55 -0
  640. data/vendor/assets/javascripts/dojo/window.js +26 -27
  641. data/vendor/assets/javascripts/dojo/window.js.uncompressed.js +160 -161
  642. metadata +152 -6
  643. data/Gemfile +0 -4
  644. data/LICENSE +0 -22
  645. data/Rakefile +0 -3
  646. data/vendor/assets/javascripts/dojo/resources/_modules.js +0 -36
@@ -1,27 +1,30 @@
1
- define("dojo/dnd/common", ["../main"], function(dojo) {
2
- // module:
3
- // dojo/dnd/common
1
+ define("dojo/dnd/common", ["../_base/connect", "../_base/kernel", "../_base/lang", "../dom"],
2
+ function(connect, kernel, lang, dom){
3
+
4
+ // module:
5
+ // dojo/dnd/common
6
+
7
+ var exports = {
4
8
  // summary:
5
9
  // TODOC
10
+ };
6
11
 
7
- dojo.getObject("dnd", true, dojo);
8
-
9
- dojo.dnd.getCopyKeyState = dojo.isCopyKey;
12
+ exports.getCopyKeyState = connect.isCopyKey;
10
13
 
11
- dojo.dnd._uniqueId = 0;
12
- dojo.dnd.getUniqueId = function(){
14
+ exports._uniqueId = 0;
15
+ exports.getUniqueId = function(){
13
16
  // summary:
14
17
  // returns a unique string for use with any DOM element
15
18
  var id;
16
19
  do{
17
- id = dojo._scopeName + "Unique" + (++dojo.dnd._uniqueId);
18
- }while(dojo.byId(id));
20
+ id = kernel._scopeName + "Unique" + (++exports._uniqueId);
21
+ }while(dom.byId(id));
19
22
  return id;
20
23
  };
21
24
 
22
- dojo.dnd._empty = {};
25
+ exports._empty = {};
23
26
 
24
- dojo.dnd.isFormElement = function(/*Event*/ e){
27
+ exports.isFormElement = function(/*Event*/ e){
25
28
  // summary:
26
29
  // returns true if user clicked on a form element
27
30
  var t = e.target;
@@ -31,5 +34,8 @@ dojo.dnd.isFormElement = function(/*Event*/ e){
31
34
  return " button textarea input select option ".indexOf(" " + t.tagName.toLowerCase() + " ") >= 0; // Boolean
32
35
  };
33
36
 
34
- return dojo.dnd;
37
+ // For back-compat, remove for 2.0.
38
+ lang.mixin(lang.getObject("dojo.dnd", true), exports);
39
+
40
+ return exports;
35
41
  });
@@ -5,62 +5,59 @@
5
5
  */
6
6
 
7
7
  //>>built
8
- define("dojo/dnd/move",["../main","./Mover","./Moveable"],function(_1){
9
- _1.declare("dojo.dnd.move.constrainedMoveable",_1.dnd.Moveable,{constraints:function(){
10
- },within:false,constructor:function(_2,_3){
11
- if(!_3){
12
- _3={};
8
+ define("dojo/dnd/move",["../_base/declare","../dom-geometry","../dom-style","./common","./Mover","./Moveable"],function(_1,_2,_3,_4,_5,_6){
9
+ var _7=_1("dojo.dnd.move.constrainedMoveable",_6,{constraints:function(){
10
+ },within:false,constructor:function(_8,_9){
11
+ if(!_9){
12
+ _9={};
13
13
  }
14
- this.constraints=_3.constraints;
15
- this.within=_3.within;
16
- },onFirstMove:function(_4){
17
- var c=this.constraintBox=this.constraints.call(this,_4);
14
+ this.constraints=_9.constraints;
15
+ this.within=_9.within;
16
+ },onFirstMove:function(_a){
17
+ var c=this.constraintBox=this.constraints.call(this,_a);
18
18
  c.r=c.l+c.w;
19
19
  c.b=c.t+c.h;
20
20
  if(this.within){
21
- var mb=_1._getMarginSize(_4.node);
21
+ var mb=_2.getMarginSize(_a.node);
22
22
  c.r-=mb.w;
23
23
  c.b-=mb.h;
24
24
  }
25
- },onMove:function(_5,_6){
26
- var c=this.constraintBox,s=_5.node.style;
27
- this.onMoving(_5,_6);
28
- _6.l=_6.l<c.l?c.l:c.r<_6.l?c.r:_6.l;
29
- _6.t=_6.t<c.t?c.t:c.b<_6.t?c.b:_6.t;
30
- s.left=_6.l+"px";
31
- s.top=_6.t+"px";
32
- this.onMoved(_5,_6);
25
+ },onMove:function(_b,_c){
26
+ var c=this.constraintBox,s=_b.node.style;
27
+ this.onMoving(_b,_c);
28
+ _c.l=_c.l<c.l?c.l:c.r<_c.l?c.r:_c.l;
29
+ _c.t=_c.t<c.t?c.t:c.b<_c.t?c.b:_c.t;
30
+ s.left=_c.l+"px";
31
+ s.top=_c.t+"px";
32
+ this.onMoved(_b,_c);
33
33
  }});
34
- _1.declare("dojo.dnd.move.boxConstrainedMoveable",_1.dnd.move.constrainedMoveable,{box:{},constructor:function(_7,_8){
35
- var _9=_8&&_8.box;
34
+ var _d=_1("dojo.dnd.move.boxConstrainedMoveable",_7,{box:{},constructor:function(_e,_f){
35
+ var box=_f&&_f.box;
36
36
  this.constraints=function(){
37
- return _9;
37
+ return box;
38
38
  };
39
39
  }});
40
- _1.declare("dojo.dnd.move.parentConstrainedMoveable",_1.dnd.move.constrainedMoveable,{area:"content",constructor:function(_a,_b){
41
- var _c=_b&&_b.area;
40
+ var _10=_1("dnd.move.parentConstrainedMoveable",_7,{area:"content",constructor:function(_11,_12){
41
+ var _13=_12&&_12.area;
42
42
  this.constraints=function(){
43
- var n=this.node.parentNode,s=_1.getComputedStyle(n),mb=_1._getMarginBox(n,s);
44
- if(_c=="margin"){
43
+ var n=this.node.parentNode,s=_3.getComputedStyle(n),mb=_2.getMarginBox(n,s);
44
+ if(_13=="margin"){
45
45
  return mb;
46
46
  }
47
- var t=_1._getMarginExtents(n,s);
47
+ var t=_2.getMarginExtents(n,s);
48
48
  mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;
49
- if(_c=="border"){
49
+ if(_13=="border"){
50
50
  return mb;
51
51
  }
52
- t=_1._getBorderExtents(n,s);
52
+ t=_2.getBorderExtents(n,s);
53
53
  mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;
54
- if(_c=="padding"){
54
+ if(_13=="padding"){
55
55
  return mb;
56
56
  }
57
- t=_1._getPadExtents(n,s);
57
+ t=_2.getPadExtents(n,s);
58
58
  mb.l+=t.l,mb.t+=t.t,mb.w-=t.w,mb.h-=t.h;
59
59
  return mb;
60
60
  };
61
61
  }});
62
- _1.dnd.constrainedMover=_1.dnd.move.constrainedMover;
63
- _1.dnd.boxConstrainedMover=_1.dnd.move.boxConstrainedMover;
64
- _1.dnd.parentConstrainedMover=_1.dnd.move.parentConstrainedMover;
65
- return _1.dnd.move;
62
+ return {constrainedMoveable:_7,boxConstrainedMoveable:_d,parentConstrainedMoveable:_10};
66
63
  });
@@ -1,12 +1,14 @@
1
- define("dojo/dnd/move", ["../main", "./Mover", "./Moveable"], function(dojo) {
2
- // module:
3
- // dojo/dnd/move
4
- // summary:
5
- // TODOC
1
+ define("dojo/dnd/move", [
2
+ "../_base/declare",
3
+ "../dom-geometry", "../dom-style",
4
+ "./common", "./Mover", "./Moveable"
5
+ ], function(declare, domGeom, domStyle, dnd, Mover, Moveable){
6
6
 
7
+ // module:
8
+ // dojo/dnd/move
7
9
 
8
10
  /*=====
9
- dojo.declare("dojo.dnd.move.__constrainedMoveableArgs", [dojo.dnd.__MoveableArgs], {
11
+ var __constrainedMoveableArgs = declare([Moveable.__MoveableArgs], {
10
12
  // constraints: Function
11
13
  // Calculates a constraint box.
12
14
  // It is called in a context of the moveable object.
@@ -18,7 +20,7 @@ dojo.declare("dojo.dnd.move.__constrainedMoveableArgs", [dojo.dnd.__MoveableArgs
18
20
  });
19
21
  =====*/
20
22
 
21
- dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, {
23
+ var constrainedMoveable = declare("dojo.dnd.move.constrainedMoveable", Moveable, {
22
24
  // object attributes (for markup)
23
25
  constraints: function(){},
24
26
  within: false,
@@ -28,14 +30,14 @@ dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, {
28
30
  // an object that makes a node moveable
29
31
  // node: Node
30
32
  // a node (or node's id) to be moved
31
- // params: dojo.dnd.move.__constrainedMoveableArgs?
33
+ // params: __constrainedMoveableArgs?
32
34
  // an optional object with additional parameters;
33
35
  // the rest is passed to the base class
34
36
  if(!params){ params = {}; }
35
37
  this.constraints = params.constraints;
36
38
  this.within = params.within;
37
39
  },
38
- onFirstMove: function(/* dojo.dnd.Mover */ mover){
40
+ onFirstMove: function(/*Mover*/ mover){
39
41
  // summary:
40
42
  // called during the very first move notification;
41
43
  // can be used to initialize coordinates, can be overwritten.
@@ -43,12 +45,12 @@ dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, {
43
45
  c.r = c.l + c.w;
44
46
  c.b = c.t + c.h;
45
47
  if(this.within){
46
- var mb = dojo._getMarginSize(mover.node);
48
+ var mb = domGeom.getMarginSize(mover.node);
47
49
  c.r -= mb.w;
48
50
  c.b -= mb.h;
49
51
  }
50
52
  },
51
- onMove: function(/* dojo.dnd.Mover */ mover, /* Object */ leftTop){
53
+ onMove: function(/*Mover*/ mover, /*Object*/ leftTop){
52
54
  // summary:
53
55
  // called during every move notification;
54
56
  // should actually move the node; can be overwritten.
@@ -63,14 +65,14 @@ dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, {
63
65
  });
64
66
 
65
67
  /*=====
66
- dojo.declare("dojo.dnd.move.__boxConstrainedMoveableArgs", [dojo.dnd.move.__constrainedMoveableArgs], {
68
+ var __boxConstrainedMoveableArgs = declare([__constrainedMoveableArgs], {
67
69
  // box: Object
68
70
  // a constraint box
69
71
  box: {}
70
72
  });
71
73
  =====*/
72
74
 
73
- dojo.declare("dojo.dnd.move.boxConstrainedMoveable", dojo.dnd.move.constrainedMoveable, {
75
+ var boxConstrainedMoveable = declare("dojo.dnd.move.boxConstrainedMoveable", constrainedMoveable, {
74
76
  // box:
75
77
  // object attributes (for markup)
76
78
  box: {},
@@ -80,7 +82,7 @@ dojo.declare("dojo.dnd.move.boxConstrainedMoveable", dojo.dnd.move.constrainedMo
80
82
  // an object, which makes a node moveable
81
83
  // node: Node
82
84
  // a node (or node's id) to be moved
83
- // params: dojo.dnd.move.__boxConstrainedMoveableArgs?
85
+ // params: __boxConstrainedMoveableArgs?
84
86
  // an optional object with parameters
85
87
  var box = params && params.box;
86
88
  this.constraints = function(){ return box; };
@@ -88,7 +90,7 @@ dojo.declare("dojo.dnd.move.boxConstrainedMoveable", dojo.dnd.move.constrainedMo
88
90
  });
89
91
 
90
92
  /*=====
91
- dojo.declare("dojo.dnd.move.__parentConstrainedMoveableArgs", [dojo.dnd.move.__constrainedMoveableArgs], {
93
+ var __parentConstrainedMoveableArgs = declare( [__constrainedMoveableArgs], {
92
94
  // area: String
93
95
  // A parent's area to restrict the move.
94
96
  // Can be "margin", "border", "padding", or "content".
@@ -96,7 +98,7 @@ dojo.declare("dojo.dnd.move.__parentConstrainedMoveableArgs", [dojo.dnd.move.__c
96
98
  });
97
99
  =====*/
98
100
 
99
- dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constrainedMoveable, {
101
+ var parentConstrainedMoveable = declare("dnd.move.parentConstrainedMoveable", constrainedMoveable, {
100
102
  // area:
101
103
  // object attributes (for markup)
102
104
  area: "content",
@@ -106,38 +108,40 @@ dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constraine
106
108
  // an object, which makes a node moveable
107
109
  // node: Node
108
110
  // a node (or node's id) to be moved
109
- // params: dojo.dnd.move.__parentConstrainedMoveableArgs?
111
+ // params: __parentConstrainedMoveableArgs?
110
112
  // an optional object with parameters
111
113
  var area = params && params.area;
112
114
  this.constraints = function(){
113
115
  var n = this.node.parentNode,
114
- s = dojo.getComputedStyle(n),
115
- mb = dojo._getMarginBox(n, s);
116
+ s = domStyle.getComputedStyle(n),
117
+ mb = domGeom.getMarginBox(n, s);
116
118
  if(area == "margin"){
117
119
  return mb; // Object
118
120
  }
119
- var t = dojo._getMarginExtents(n, s);
121
+ var t = domGeom.getMarginExtents(n, s);
120
122
  mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h;
121
123
  if(area == "border"){
122
124
  return mb; // Object
123
125
  }
124
- t = dojo._getBorderExtents(n, s);
126
+ t = domGeom.getBorderExtents(n, s);
125
127
  mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h;
126
128
  if(area == "padding"){
127
129
  return mb; // Object
128
130
  }
129
- t = dojo._getPadExtents(n, s);
131
+ t = domGeom.getPadExtents(n, s);
130
132
  mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h;
131
133
  return mb; // Object
132
134
  };
133
135
  }
134
136
  });
135
137
 
136
- // patching functions one level up for compatibility
137
138
 
138
- dojo.dnd.constrainedMover = dojo.dnd.move.constrainedMover;
139
- dojo.dnd.boxConstrainedMover = dojo.dnd.move.boxConstrainedMover;
140
- dojo.dnd.parentConstrainedMover = dojo.dnd.move.parentConstrainedMover;
139
+ return {
140
+ // summary:
141
+ // TODOC
142
+ constrainedMoveable: constrainedMoveable,
143
+ boxConstrainedMoveable: boxConstrainedMoveable,
144
+ parentConstrainedMoveable: parentConstrainedMoveable
145
+ };
141
146
 
142
- return dojo.dnd.move;
143
147
  });
@@ -1,1872 +1,15 @@
1
- (function(
2
- userConfig,
3
- defaultConfig
4
- ){
5
- // summary:
6
- // This is the "source loader" and is the entry point for Dojo during development. You may also load Dojo with
7
- // any AMD-compliant loader via the package main module dojo/main.
8
- // description:
9
- // This is the "source loader" for Dojo. It provides an AMD-compliant loader that can be configured
10
- // to operate in either synchronous or asynchronous modes. After the loader is defined, dojo is loaded
11
- // IAW the package main module dojo/main. In the event you wish to use a foreign loader, you may load dojo as a package
12
- // via the package main module dojo/main and this loader is not required; see dojo/package.json for details.
13
- //
14
- // In order to keep compatibility with the v1.x line, this loader includes additional machinery that enables
15
- // the dojo.provide, dojo.require et al API. This machinery is loaded by default, but may be dynamically removed
16
- // via the has.js API and statically removed via the build system.
17
- //
18
- // This loader includes sniffing machinery to determine the environment; the following environments are supported:
19
- //
20
- // * browser
21
- // * node.js
22
- // * rhino
23
- //
24
- // This is the so-called "source loader". As such, it includes many optional features that may be discadred by
25
- // building a customized verion with the build system.
1
+ /*
2
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
3
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
4
+ see: http://dojotoolkit.org/license for details
5
+ */
26
6
 
27
- // Design and Implementation Notes
28
- //
29
- // This is a dojo-specific adaption of bdLoad, donated to the dojo foundation by Altoviso LLC.
30
- //
31
- // This function defines an AMD-compliant (http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition)
32
- // loader that can be configured to operate in either synchronous or asynchronous modes.
33
- //
34
- // Since this machinery implements a loader, it does not have the luxury of using a load system and/or
35
- // leveraging a utility library. This results in an unpleasantly long file; here is a road map of the contents:
36
- //
37
- // 1. Small library for use implementing the loader.
38
- // 2. Define the has.js API; this is used throughout the loader to bracket features.
39
- // 3. Define the node.js and rhino sniffs and sniff.
40
- // 4. Define the loader's data.
41
- // 5. Define the configuration machinery.
42
- // 6. Define the script element sniffing machinery and sniff for configuration data.
43
- // 7. Configure the loader IAW the provided user, default, and sniffing data.
44
- // 8. Define the global require function.
45
- // 9. Define the module resolution machinery.
46
- // 10. Define the module and plugin module definition machinery
47
- // 11. Define the script injection machinery.
48
- // 12. Define the window load detection.
49
- // 13. Define the logging API.
50
- // 14. Define the tracing API.
51
- // 16. Define the AMD define function.
52
- // 17. Define the dojo v1.x provide/require machinery--so called "legacy" modes.
53
- // 18. Publish global variables.
54
- //
55
- // Language and Acronyms and Idioms
56
- //
57
- // moduleId: a CJS module identifier, (used for public APIs)
58
- // mid: moduleId (used internally)
59
- // packageId: a package identifier (used for public APIs)
60
- // pid: packageId (used internally); the implied system or default package has pid===""
61
- // pack: package is used internally to reference a package object (since javascript has reserved words including "package")
62
- // prid: plugin resource identifier
63
- // The integer constant 1 is used in place of true and 0 in place of false.
7
+ /*
8
+ This is an optimized version of Dojo, built for deployment and not for
9
+ development. To get sources and documentation, please visit:
64
10
 
65
- // define a minimal library to help build the loader
66
- var noop = function(){
67
- },
11
+ http://dojotoolkit.org
12
+ */
68
13
 
69
- isEmpty = function(it){
70
- for(var p in it){
71
- return 0;
72
- }
73
- return 1;
74
- },
75
-
76
- toString = {}.toString,
77
-
78
- isFunction = function(it){
79
- return toString.call(it) == "[object Function]";
80
- },
81
-
82
- isString = function(it){
83
- return toString.call(it) == "[object String]";
84
- },
85
-
86
- isArray = function(it){
87
- return toString.call(it) == "[object Array]";
88
- },
89
-
90
- forEach = function(vector, callback){
91
- if(vector){
92
- for(var i = 0; i < vector.length;){
93
- callback(vector[i++]);
94
- }
95
- }
96
- },
97
-
98
- mix = function(dest, src){
99
- for(var p in src){
100
- dest[p] = src[p];
101
- }
102
- return dest;
103
- },
104
-
105
- makeError = function(error, info){
106
- return mix(new Error(error), {src:"dojoLoader", info:info});
107
- },
108
-
109
- uidSeed = 1,
110
-
111
- uid = function(){
112
- // Returns a unique indentifier (within the lifetime of the document) of the form /_d+/.
113
- return "_" + uidSeed++;
114
- },
115
-
116
- // FIXME: how to doc window.require() api
117
-
118
- // this will be the global require function; define it immediately so we can start hanging things off of it
119
- req = function(
120
- config, //(object, optional) hash of configuration properties
121
- dependencies, //(array of commonjs.moduleId, optional) list of modules to be loaded before applying callback
122
- callback //(function, optional) lamda expression to apply to module values implied by dependencies
123
- ){
124
- return contextRequire(config, dependencies, callback, 0, req);
125
- },
126
-
127
- // the loader uses the has.js API to control feature inclusion/exclusion; define then use throughout
128
- global = this,
129
-
130
- doc = global.document,
131
-
132
- element = doc && doc.createElement("DiV"),
133
-
134
- has = req.has = function(name){
135
- return isFunction(hasCache[name]) ? (hasCache[name] = hasCache[name](global, doc, element)) : hasCache[name];
136
- },
137
-
138
- hasCache = has.cache = defaultConfig.hasCache;
139
-
140
- has.add = function(name, test, now, force){
141
- (hasCache[name]===undefined || force) && (hasCache[name] = test);
142
- return now && has(name);
143
- };
144
-
145
- has.add("host-node", userConfig.has && "host-node" in userConfig.has ?
146
- userConfig.has["host-node"] :
147
- (typeof process == "object" && process.versions && process.versions.node && process.versions.v8));
148
- if(has("host-node")){
149
- // fixup the default config for node.js environment
150
- require("./_base/configNode.js").config(defaultConfig);
151
- // remember node's require (with respect to baseUrl==dojo's root)
152
- defaultConfig.loaderPatch.nodeRequire = require;
153
- }
154
-
155
- has.add("host-rhino", userConfig.has && "host-rhino" in userConfig.has ?
156
- userConfig.has["host-rhino"] :
157
- (typeof load == "function" && (typeof Packages == "function" || typeof Packages == "object")));
158
- if(has("host-rhino")){
159
- // owing to rhino's lame feature that hides the source of the script, give the user a way to specify the baseUrl...
160
- for(var baseUrl = userConfig.baseUrl || ".", arg, rhinoArgs = this.arguments, i = 0; i < rhinoArgs.length;){
161
- arg = (rhinoArgs[i++] + "").split("=");
162
- if(arg[0] == "baseUrl"){
163
- baseUrl = arg[1];
164
- break;
165
- }
166
- }
167
- load(baseUrl + "/_base/configRhino.js");
168
- rhinoDojoConfig(defaultConfig, baseUrl, rhinoArgs);
169
- }
170
-
171
- // userConfig has tests override defaultConfig has tests; do this after the environment detection because
172
- // the environment detection usually sets some has feature values in the hasCache.
173
- for(var p in userConfig.has){
174
- has.add(p, userConfig.has[p], 0, 1);
175
- }
176
-
177
- //
178
- // define the loader data
179
- //
180
-
181
- // the loader will use these like symbols if the loader has the traceApi; otherwise
182
- // define magic numbers so that modules can be provided as part of defaultConfig
183
- var requested = 1,
184
- arrived = 2,
185
- nonmodule = 3,
186
- executing = 4,
187
- executed = 5;
188
-
189
- if(has("dojo-trace-api")){
190
- // these make debugging nice; but using strings for symbols is a gross rookie error; don't do it for production code
191
- requested = "requested";
192
- arrived = "arrived";
193
- nonmodule = "not-a-module";
194
- executing = "executing";
195
- executed = "executed";
196
- }
197
-
198
- var legacyMode = 0,
199
- sync = "sync",
200
- xd = "xd",
201
- syncExecStack = [],
202
- dojoRequirePlugin = 0,
203
- checkDojoRequirePlugin = noop,
204
- transformToAmd = noop,
205
- getXhr;
206
- if(has("dojo-sync-loader")){
207
- req.isXdUrl = noop;
208
-
209
- req.initSyncLoader = function(dojoRequirePlugin_, checkDojoRequirePlugin_, transformToAmd_){
210
- if(!dojoRequirePlugin){
211
- dojoRequirePlugin = dojoRequirePlugin_;
212
- checkDojoRequirePlugin = checkDojoRequirePlugin_;
213
- transformToAmd = transformToAmd_;
214
- }
215
- return {
216
- sync:sync,
217
- xd:xd,
218
- arrived:arrived,
219
- nonmodule:nonmodule,
220
- executing:executing,
221
- executed:executed,
222
- syncExecStack:syncExecStack,
223
- modules:modules,
224
- execQ:execQ,
225
- getModule:getModule,
226
- injectModule:injectModule,
227
- setArrived:setArrived,
228
- signal:signal,
229
- finishExec:finishExec,
230
- execModule:execModule,
231
- dojoRequirePlugin:dojoRequirePlugin,
232
- getLegacyMode:function(){return legacyMode;},
233
- holdIdle:function(){checkCompleteGuard++;},
234
- releaseIdle:function(){checkIdle();}
235
- };
236
- };
237
-
238
- if(has("dom")){
239
- // in legacy sync mode, the loader needs a minimal XHR library to load dojo/_base/loader and dojo/_base/xhr
240
-
241
- var locationProtocol = location.protocol,
242
- locationHost = location.host,
243
- fileProtocol = !locationHost;
244
- req.isXdUrl = function(url){
245
- if(fileProtocol || /^\./.test(url)){
246
- // begins with a dot is always relative to page URL; therefore not xdomain
247
- return false;
248
- }
249
- if(/^\/\//.test(url)){
250
- // for v1.6- backcompat, url starting with // indicates xdomain
251
- return true;
252
- }
253
- // get protocol and host
254
- var match = url.match(/^([^\/\:]+\:)\/\/([^\/]+)/);
255
- return match && (match[1] != locationProtocol || match[2] != locationHost);
256
- };
257
-
258
- // note: to get the file:// protocol to work in FF, you must set security.fileuri.strict_origin_policy to false in about:config
259
- has.add("dojo-xhr-factory", 1);
260
- has.add("dojo-force-activex-xhr", has("host-browser") && !doc.addEventListener && window.location.protocol == "file:");
261
- has.add("native-xhr", typeof XMLHttpRequest != "undefined");
262
- if(has("native-xhr") && !has("dojo-force-activex-xhr")){
263
- getXhr = function(){
264
- return new XMLHttpRequest();
265
- };
266
- }else{
267
- // if in the browser an old IE; find an xhr
268
- for(var XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'], progid, i = 0; i < 3;){
269
- try{
270
- progid = XMLHTTP_PROGIDS[i++];
271
- if(new ActiveXObject(progid)){
272
- // this progid works; therefore, use it from now on
273
- break;
274
- }
275
- }catch(e){
276
- // squelch; we're just trying to find a good ActiveX progid
277
- // if they all fail, then progid ends up as the last attempt and that will signal the error
278
- // the first time the client actually tries to exec an xhr
279
- }
280
- }
281
- getXhr = function(){
282
- return new ActiveXObject(progid);
283
- };
284
- }
285
- req.getXhr = getXhr;
286
-
287
- has.add("dojo-gettext-api", 1);
288
- req.getText = function(url, async, onLoad){
289
- var xhr = getXhr();
290
- xhr.open('GET', fixupUrl(url), false);
291
- xhr.send(null);
292
- if(xhr.status == 200 || (!location.host && !xhr.status)){
293
- if(onLoad){
294
- onLoad(xhr.responseText, async);
295
- }
296
- }else{
297
- throw makeError("xhrFailed", xhr.status);
298
- }
299
- return xhr.responseText;
300
- };
301
- }
302
- }else{
303
- req.async = 1;
304
- }
305
-
306
- //
307
- // loader eval
308
- //
309
- var eval_ =
310
- // use the function constructor so our eval is scoped close to (but not in) in the global space with minimal pollution
311
- new Function('return eval(arguments[0]);');
312
-
313
- req.eval =
314
- function(text, hint){
315
- return eval_(text + "\r\n////@ sourceURL=" + hint);
316
- };
317
-
318
- //
319
- // loader micro events API
320
- //
321
- var listenerQueues = {},
322
- error = "error",
323
- signal = req.signal = function(type, args){
324
- var queue = listenerQueues[type];
325
- // notice we run a copy of the queue; this allows listeners to add/remove
326
- // other listeners without affecting this particular signal
327
- forEach(queue && queue.slice(0), function(listener){
328
- listener.apply(null, isArray(args) ? args : [args]);
329
- });
330
- },
331
- on = req.on = function(type, listener){
332
- // notice a queue is not created until a client actually connects
333
- var queue = listenerQueues[type] || (listenerQueues[type] = []);
334
- queue.push(listener);
335
- return {
336
- remove:function(){
337
- for(var i = 0; i<queue.length; i++){
338
- if(queue[i]===listener){
339
- queue.splice(i, 1);
340
- return;
341
- }
342
- }
343
- }
344
- };
345
- };
346
-
347
- // configuration machinery; with an optimized/built defaultConfig, all configuration machinery can be discarded
348
- // lexical variables hold key loader data structures to help with minification; these may be completely,
349
- // one-time initialized by defaultConfig for optimized/built versions
350
- var
351
- aliases
352
- // a vector of pairs of [regexs or string, replacement] => (alias, actual)
353
- = [],
354
-
355
- paths
356
- // CommonJS paths
357
- = {},
358
-
359
- pathsMapProg
360
- // list of (from-path, to-path, regex, length) derived from paths;
361
- // a "program" to apply paths; see computeMapProg
362
- = [],
363
-
364
- packs
365
- // a map from packageId to package configuration object; see fixupPackageInfo
366
- = {},
367
-
368
- packageMap
369
- // map from package name to local-installed package name
370
- = {},
371
-
372
- packageMapProg
373
- // list of (from-package, to-package, regex, length) derived from packageMap;
374
- // a "program" to apply paths; see computeMapProg
375
- = [],
376
-
377
- modules
378
- // A hash:(mid) --> (module-object) the module namespace
379
- //
380
- // pid: the package identifier to which the module belongs (e.g., "dojo"); "" indicates the system or default package
381
- // mid: the fully-resolved (i.e., mappings have been applied) module identifier without the package identifier (e.g., "dojo/io/script")
382
- // url: the URL from which the module was retrieved
383
- // pack: the package object of the package to which the module belongs
384
- // executed: 0 => not executed; executing => in the process of tranversing deps and running factory; executed => factory has been executed
385
- // deps: the dependency vector for this module (vector of modules objects)
386
- // def: the factory for this module
387
- // result: the result of the running the factory for this module
388
- // injected: (requested | arrived | nonmodule) the status of the module; nonmodule means the resource did not call define
389
- // load: plugin load function; applicable only for plugins
390
- //
391
- // Modules go through several phases in creation:
392
- //
393
- // 1. Requested: some other module's definition or a require application contained the requested module in
394
- // its dependency vector or executing code explicitly demands a module via req.require.
395
- //
396
- // 2. Injected: a script element has been appended to the insert-point element demanding the resource implied by the URL
397
- //
398
- // 3. Loaded: the resource injected in [2] has been evalated.
399
- //
400
- // 4. Defined: the resource contained a define statement that advised the loader about the module. Notice that some
401
- // resources may just contain a bundle of code and never formally define a module via define
402
- //
403
- // 5. Evaluated: the module was defined via define and the loader has evaluated the factory and computed a result.
404
- = {},
405
-
406
- cacheBust
407
- // query string to append to module URLs to bust browser cache
408
- = "",
409
-
410
- cache
411
- // hash:(mid)-->(function)
412
- //
413
- // Gives the contents of a cached resource; function should cause the same actions as if the given mid was downloaded
414
- // and evaluated by the host environment
415
- = {},
416
-
417
- pendingCacheInsert
418
- // hash:(mid)-->(function)
419
- //
420
- // Gives a set of cache modules pending entry into cache. When cached modules are published to the loader, they are
421
- // entered into pendingCacheInsert; modules are then pressed into cache upon (1) AMD define or (2) upon receiving another
422
- // independent set of cached modules. (1) is the usual case, and this case allows normalizing mids given in the pending
423
- // cache for the local configuration, possibly relocating modules.
424
- = {},
425
-
426
- dojoSniffConfig
427
- // map of configuration variables
428
- // give the data-dojo-config as sniffed from the document (if any)
429
- = {};
430
-
431
- if(has("dojo-config-api")){
432
- var consumePendingCacheInsert = function(referenceModule){
433
- var p, item, match, now;
434
- for(p in pendingCacheInsert){
435
- item = pendingCacheInsert[p];
436
- match = p.match(/^url\:(.+)/);
437
- if(match){
438
- cache[toUrl(match[1], referenceModule)] = item;
439
- }else if(p=="*now"){
440
- now = item;
441
- }else if(p!="*noref"){
442
- cache[getModuleInfo(p, referenceModule).mid] = item;
443
- }
444
- }
445
- if(now){
446
- now(createRequire(referenceModule));
447
- }
448
- pendingCacheInsert = {};
449
- },
450
-
451
- computeMapProg = function(map, dest, packName){
452
- // This routine takes a map target-prefix(string)-->replacement(string) into a vector
453
- // of quads (target-prefix, replacement, regex-for-target-prefix, length-of-target-prefix)
454
- //
455
- // The loader contains processes that map one string prefix to another. These
456
- // are encountered when applying the requirejs paths configuration and when mapping
457
- // package names. We can make the mapping and any replacement easier and faster by
458
- // replacing the map with a vector of quads and then using this structure in the simple machine runMapProg.
459
- dest.splice(0, dest.length);
460
- var p, i, item, reverseName = 0;
461
- for(p in map){
462
- dest.push([p, map[p]]);
463
- if(map[p]==packName){
464
- reverseName = p;
465
- }
466
- }
467
- dest.sort(function(lhs, rhs){
468
- return rhs[0].length - lhs[0].length;
469
- });
470
- for(i = 0; i < dest.length;){
471
- item = dest[i++];
472
- item[2] = new RegExp("^" + item[0].replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(c){ return "\\" + c; }) + "(\/|$)");
473
- item[3] = item[0].length + 1;
474
- }
475
- return reverseName;
476
- },
477
-
478
- fixupPackageInfo = function(packageInfo, baseUrl){
479
- // calculate the precise (name, baseUrl, main, mappings) for a package
480
- var name = packageInfo.name;
481
- if(!name){
482
- // packageInfo must be a string that gives the name
483
- name = packageInfo;
484
- packageInfo = {name:name};
485
- }
486
- packageInfo = mix({main:"main", mapProg:[]}, packageInfo);
487
- packageInfo.location = (baseUrl || "") + (packageInfo.location ? packageInfo.location : name);
488
- packageInfo.reverseName = computeMapProg(packageInfo.packageMap, packageInfo.mapProg, name);
489
-
490
- if(!packageInfo.main.indexOf("./")){
491
- packageInfo.main = packageInfo.main.substring(2);
492
- }
493
-
494
- // allow paths to be specified in the package info
495
- // TODO: this is not supported; remove
496
- mix(paths, packageInfo.paths);
497
-
498
- // now that we've got a fully-resolved package object, push it into the configuration
499
- packs[name] = packageInfo;
500
- packageMap[name] = name;
501
- },
502
-
503
- config = function(config, booting){
504
- for(var p in config){
505
- if(p=="waitSeconds"){
506
- req.waitms = (config[p] || 0) * 1000;
507
- }
508
- if(p=="cacheBust"){
509
- cacheBust = config[p] ? (isString(config[p]) ? config[p] : (new Date()).getTime() + "") : "";
510
- }
511
- if(p=="baseUrl" || p=="combo"){
512
- req[p] = config[p];
513
- }
514
- if(has("dojo-sync-loader") && p=="async"){
515
- // falsy or "sync" => legacy sync loader
516
- // "xd" => sync but loading xdomain tree and therefore loading asynchronously (not configurable, set automatically by the loader)
517
- // "legacyAsync" => permanently in "xd" by choice
518
- // "debugAtAllCosts" => trying to load everything via script injection (not implemented)
519
- // otherwise, must be truthy => AMD
520
- // legacyMode: sync | legacyAsync | xd | false
521
- var mode = config[p];
522
- req.legacyMode = legacyMode = (isString(mode) && /sync|legacyAsync/.test(mode) ? mode : (!mode ? "sync" : false));
523
- req.async = !legacyMode;
524
- }
525
- if(config[p]!==hasCache){
526
- // accumulate raw config info for client apps which can use this to pass their own config
527
- req.rawConfig[p] = config[p];
528
- p!="has" && has.add("config-"+p, config[p], 0, booting);
529
- }
530
- }
531
-
532
- // make sure baseUrl exists
533
- if(!req.baseUrl){
534
- req.baseUrl = "./";
535
- }
536
- // make sure baseUrl ends with a slash
537
- if(!/\/$/.test(req.baseUrl)){
538
- req.baseUrl += "/";
539
- }
540
-
541
- // now do the special work for has, packages, packagePaths, paths, aliases, and cache
542
-
543
- for(p in config.has){
544
- has.add(p, config.has[p], 0, booting);
545
- }
546
-
547
- // for each package found in any packages config item, augment the packs map owned by the loader
548
- forEach(config.packages, fixupPackageInfo);
549
-
550
- // for each packagePath found in any packagePaths config item, augment the packs map owned by the loader
551
- for(baseUrl in config.packagePaths){
552
- forEach(config.packagePaths[baseUrl], function(packageInfo){
553
- fixupPackageInfo(packageInfo, baseUrl + "/");
554
- });
555
- }
556
-
557
- // push in any paths and recompute the internal pathmap
558
- // warning: this cann't be done until the package config is processed since packages may include path info
559
- computeMapProg(mix(paths, config.paths), pathsMapProg);
560
-
561
- // aliases
562
- forEach(config.aliases, function(pair){
563
- if(isString(pair[0])){
564
- pair[0] = new RegExp("^" + pair[0].replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(c){return "\\" + c;}) + "$");
565
- }
566
- aliases.push(pair);
567
- });
568
-
569
- // mix any packageMap config item and recompute the internal packageMapProg
570
- computeMapProg(mix(packageMap, config.packageMap), packageMapProg);
571
-
572
- // push in any new cache values
573
- if(config.cache){
574
- consumePendingCacheInsert();
575
- pendingCacheInsert = config.cache;
576
- if(config.cache["*noref"]){
577
- consumePendingCacheInsert();
578
- }
579
- }
580
-
581
- signal("config", [config, req.rawConfig]);
582
- };
583
-
584
- //
585
- // execute the various sniffs
586
- //
587
-
588
- if(has("dojo-cdn") || has("dojo-sniff")){
589
- for(var dojoDir, src, match, scripts = doc.getElementsByTagName("script"), i = 0; i < scripts.length && !match; i++){
590
- if((src = scripts[i].getAttribute("src")) && (match = src.match(/(.*)\/?dojo\.js(\W|$)/i))){
591
- // if baseUrl wasn't explicitly set, set it here to the dojo directory; this is the 1.6- behavior
592
- userConfig.baseUrl = dojoDir = userConfig.baseUrl || defaultConfig.baseUrl || match[1];
593
-
594
- // see if there's a dojo configuration stuffed into the node
595
- src = (scripts[i].getAttribute("data-dojo-config") || scripts[i].getAttribute("djConfig"));
596
- if(src){
597
- dojoSniffConfig = req.eval("({ " + src + " })", "data-dojo-config");
598
- }
599
- if(has("dojo-requirejs-api")){
600
- var dataMain = scripts[i].getAttribute("data-main");
601
- if(dataMain){
602
- dojoSniffConfig.deps = dojoSniffConfig.deps || [dataMain];
603
- }
604
- }
605
- }
606
- }
607
- }
608
-
609
- if(has("dojo-test-sniff")){
610
- // pass down doh.testConfig from parent as if it were a data-dojo-config
611
- try{
612
- if(window.parent != window && window.parent.require){
613
- var doh = window.parent.require("doh");
614
- doh && mix(dojoSniffConfig, doh.testConfig);
615
- }
616
- }catch(e){}
617
- }
618
-
619
- // configure the loader; let the user override defaults
620
- req.rawConfig = {};
621
- config(defaultConfig, 1);
622
- config(userConfig, 1);
623
- config(dojoSniffConfig, 1);
624
-
625
- if(has("dojo-cdn")){
626
- packs.dojo.location = dojoDir;
627
- packs.dijit.location = dojoDir + "../dijit/";
628
- packs.dojox.location = dojoDir + "../dojox/";
629
- }
630
-
631
- }else{
632
- // no config API, assume defaultConfig has everything the loader needs...for the entire lifetime of the application
633
- paths = defaultConfig.paths;
634
- pathsMapProg = defaultConfig.pathsMapProg;
635
- packs = defaultConfig.packs;
636
- aliases = defaultConfig.aliases;
637
- packageMap = defaultConfig.packageMap;
638
- packageMapProg = defaultConfig.packageMapProg;
639
- modules = defaultConfig.modules;
640
- cache = defaultConfig.cache;
641
- cacheBust = defaultConfig.cacheBust;
642
-
643
- // remember the default config for other processes (e.g., dojo/config)
644
- req.rawConfig = defaultConfig;
645
- }
646
-
647
-
648
- if(has("dojo-combo-api")){
649
- req.combo = req.combo || {add:noop};
650
- var comboPending = 0,
651
- combosPending = [],
652
- comboPendingTimer = null;
653
- }
654
-
655
-
656
- // build the loader machinery iaw configuration, including has feature tests
657
- var injectDependencies = function(module){
658
- // checkComplete!=0 holds the idle signal; we're not idle if we're injecting dependencies
659
- checkCompleteGuard++;
660
- forEach(module.deps, injectModule);
661
- if(has("dojo-combo-api") && comboPending && !comboPendingTimer){
662
- comboPendingTimer = setTimeout(function() {
663
- comboPending = 0;
664
- comboPendingTimer = null;
665
- req.combo.done(function(mids, url) {
666
- var onLoadCallback= function(){
667
- // defQ is a vector of module definitions 1-to-1, onto mids
668
- runDefQ(0, mids);
669
- checkComplete();
670
- };
671
- combosPending.push(mids);
672
- injectingModule = mids;
673
- req.injectUrl(url, onLoadCallback, mids);
674
- injectingModule = 0;
675
- }, req);
676
- }, 0);
677
- }
678
- checkIdle();
679
- },
680
-
681
- contextRequire = function(a1, a2, a3, referenceModule, contextRequire){
682
- var module, syntheticMid;
683
- if(isString(a1)){
684
- // signature is (moduleId)
685
- module = getModule(a1, referenceModule, true);
686
- if(module && module.executed){
687
- return module.result;
688
- }
689
- throw makeError("undefinedModule", a1);
690
- }
691
- if(!isArray(a1)){
692
- // a1 is a configuration
693
- config(a1);
694
-
695
- // juggle args; (a2, a3) may be (dependencies, callback)
696
- a1 = a2;
697
- a2 = a3;
698
- }
699
- if(isArray(a1)){
700
- // signature is (requestList [,callback])
701
- if(!a1.length){
702
- a2 && a2();
703
- }else{
704
- syntheticMid = "require*" + uid();
705
-
706
- // resolve the request list with respect to the reference module
707
- for(var mid, deps = [], i = 0; i < a1.length;){
708
- mid = a1[i++];
709
- if(mid in {exports:1, module:1}){
710
- throw makeError("illegalModuleId", mid);
711
- }
712
- deps.push(getModule(mid, referenceModule));
713
- }
714
-
715
- // construct a synthetic module to control execution of the requestList, and, optionally, callback
716
- module = mix(makeModuleInfo("", syntheticMid, 0, ""), {
717
- injected: arrived,
718
- deps: deps,
719
- def: a2 || noop,
720
- require: referenceModule ? referenceModule.require : req
721
- });
722
- modules[module.mid] = module;
723
-
724
- // checkComplete!=0 holds the idle signal; we're not idle if we're injecting dependencies
725
- injectDependencies(module);
726
-
727
- // try to immediately execute
728
- // if already traversing a factory tree, then strict causes circular dependency to abort the execution; maybe
729
- // it's possible to execute this require later after the current traversal completes and avoid the circular dependency.
730
- // ...but *always* insist on immediate in synch mode
731
- var strict = checkCompleteGuard && req.async;
732
- checkCompleteGuard++;
733
- execModule(module, strict);
734
- checkIdle();
735
- if(!module.executed){
736
- // some deps weren't on board or circular dependency detected and strict; therefore, push into the execQ
737
- execQ.push(module);
738
- }
739
- checkComplete();
740
- }
741
- }
742
- return contextRequire;
743
- },
744
-
745
- createRequire = function(module){
746
- if(!module){
747
- return req;
748
- }
749
- var result = module.require;
750
- if(!result){
751
- result = function(a1, a2, a3){
752
- return contextRequire(a1, a2, a3, module, result);
753
- };
754
- module.require = mix(result, req);
755
- result.module = module;
756
- result.toUrl = function(name){
757
- return toUrl(name, module);
758
- };
759
- result.toAbsMid = function(mid){
760
- return toAbsMid(mid, module);
761
- };
762
- if(has("dojo-undef-api")){
763
- result.undef = function(mid){
764
- req.undef(mid, module);
765
- };
766
- }
767
- if(has("dojo-sync-loader")){
768
- result.syncLoadNls = function(mid){
769
- var nlsModuleInfo = getModuleInfo(mid, module),
770
- nlsModule = modules[nlsModuleInfo.mid];
771
- if(!nlsModule || !nlsModule.executed){
772
- cached = cache[nlsModuleInfo.mid] || cache[nlsModuleInfo.cacheId];
773
- if(cached){
774
- evalModuleText(cached);
775
- nlsModule = modules[nlsModuleInfo.mid];
776
- }
777
- }
778
- return nlsModule && nlsModule.executed && nlsModule.result;
779
- };
780
- }
781
-
782
- }
783
- return result;
784
- },
785
-
786
- execQ =
787
- // The list of modules that need to be evaluated.
788
- [],
789
-
790
- defQ =
791
- // The queue of define arguments sent to loader.
792
- [],
793
-
794
- waiting =
795
- // The set of modules upon which the loader is waiting for definition to arrive
796
- {},
797
-
798
- setRequested = function(module){
799
- module.injected = requested;
800
- waiting[module.mid] = 1;
801
- if(module.url){
802
- waiting[module.url] = module.pack || 1;
803
- }
804
- },
805
-
806
- setArrived = function(module){
807
- module.injected = arrived;
808
- delete waiting[module.mid];
809
- if(module.url){
810
- delete waiting[module.url];
811
- }
812
- if(isEmpty(waiting)){
813
- clearTimer();
814
- has("dojo-sync-loader") && legacyMode==xd && (legacyMode = sync);
815
- }
816
- },
817
-
818
- execComplete = req.idle =
819
- // says the loader has completed (or not) its work
820
- function(){
821
- return !defQ.length && isEmpty(waiting) && !execQ.length && !checkCompleteGuard;
822
- },
823
-
824
- runMapProg = function(targetMid, map){
825
- // search for targetMid in map; return the map item if found; falsy otherwise
826
- for(var i = 0; i < map.length; i++){
827
- if(map[i][2].test(targetMid)){
828
- return map[i];
829
- }
830
- }
831
- return 0;
832
- },
833
-
834
- compactPath = function(path){
835
- var result = [],
836
- segment, lastSegment;
837
- path = path.replace(/\\/g, '/').split('/');
838
- while(path.length){
839
- segment = path.shift();
840
- if(segment==".." && result.length && lastSegment!=".."){
841
- result.pop();
842
- lastSegment = result[result.length - 1];
843
- }else if(segment!="."){
844
- result.push(lastSegment= segment);
845
- } // else ignore "."
846
- }
847
- return result.join("/");
848
- },
849
-
850
- makeModuleInfo = function(pid, mid, pack, url, cacheId){
851
- if(has("dojo-sync-loader")){
852
- var xd= req.isXdUrl(url);
853
- return {pid:pid, mid:mid, pack:pack, url:url, executed:0, def:0, isXd:xd, isAmd:!!(xd || (packs[pid] && packs[pid].isAmd)), cacheId:cacheId};
854
- }else{
855
- return {pid:pid, mid:mid, pack:pack, url:url, executed:0, def:0, cacheId:cacheId};
856
- }
857
- },
858
-
859
- getModuleInfo_ = function(mid, referenceModule, packs, modules, baseUrl, packageMapProg, pathsMapProg, alwaysCreate){
860
- // arguments are passed instead of using lexical variables so that this function my be used independent of the loader (e.g., the builder)
861
- // alwaysCreate is useful in this case so that getModuleInfo never returns references to real modules owned by the loader
862
- var pid, pack, midInPackage, mapProg, mapItem, path, url, result, isRelative, requestedMid, cacheId=0;
863
- requestedMid = mid;
864
- isRelative = /^\./.test(mid);
865
- if(/(^\/)|(\:)|(\.js$)/.test(mid) || (isRelative && !referenceModule)){
866
- // absolute path or protocol of .js filetype, or relative path but no reference module and therefore relative to page
867
- // whatever it is, it's not a module but just a URL of some sort
868
- return makeModuleInfo(0, mid, 0, mid);
869
- }else{
870
- // relative module ids are relative to the referenceModule; get rid of any dots
871
- mid = compactPath(isRelative ? (referenceModule.mid + "/../" + mid) : mid);
872
- if(/^\./.test(mid)){
873
- throw makeError("irrationalPath", mid);
874
- }
875
- // find the package indicated by the mid, if any
876
- mapProg = referenceModule && referenceModule.pack && referenceModule.pack.mapProg;
877
- mapItem = (mapProg && runMapProg(mid, mapProg)) || runMapProg(mid, packageMapProg);
878
- if(mapItem){
879
- // mid specified a module that's a member of a package; figure out the package id and module id
880
- // notice we expect pack.main to be valid with no pre or post slash
881
- pid = mapItem[1];
882
- mid = mid.substring(mapItem[3]);
883
- pack = packs[pid];
884
- if(!mid){
885
- mid= pack.main;
886
- }
887
- midInPackage = mid;
888
- cacheId = pack.reverseName + "/" + mid;
889
- mid = pid + "/" + mid;
890
- }else{
891
- pid = "";
892
- }
893
-
894
- // search aliases
895
- var candidateLength = 0,
896
- candidate = 0;
897
- forEach(aliases, function(pair){
898
- var match = mid.match(pair[0]);
899
- if(match && match.length>candidateLength){
900
- candidate = isFunction(pair[1]) ? mid.replace(pair[0], pair[1]) : pair[1];
901
- }
902
- });
903
- if(candidate){
904
- return getModuleInfo_(candidate, 0, packs, modules, baseUrl, packageMapProg, pathsMapProg, alwaysCreate);
905
- }
906
-
907
- result = modules[mid];
908
- if(result){
909
- return alwaysCreate ? makeModuleInfo(result.pid, result.mid, result.pack, result.url, cacheId) : modules[mid];
910
- }
911
- }
912
- // get here iff the sought-after module does not yet exist; therefore, we need to compute the URL given the
913
- // fully resolved (i.e., all relative indicators and package mapping resolved) module id
914
-
915
- mapItem = runMapProg(mid, pathsMapProg);
916
- if(mapItem){
917
- url = mapItem[1] + mid.substring(mapItem[3] - 1);
918
- }else if(pid){
919
- url = pack.location + "/" + midInPackage;
920
- }else if(has("config-tlmSiblingOfDojo")){
921
- url = "../" + mid;
922
- }else{
923
- url = mid;
924
- }
925
- // if result is not absolute, add baseUrl
926
- if(!(/(^\/)|(\:)/.test(url))){
927
- url = baseUrl + url;
928
- }
929
- url += ".js";
930
- return makeModuleInfo(pid, mid, pack, compactPath(url), cacheId);
931
- },
932
-
933
- getModuleInfo = function(mid, referenceModule){
934
- return getModuleInfo_(mid, referenceModule, packs, modules, req.baseUrl, packageMapProg, pathsMapProg);
935
- },
936
-
937
- resolvePluginResourceId = function(plugin, prid, referenceModule){
938
- return plugin.normalize ? plugin.normalize(prid, function(mid){return toAbsMid(mid, referenceModule);}) : toAbsMid(prid, referenceModule);
939
- },
940
-
941
- dynamicPluginUidGenerator = 0,
942
-
943
- getModule = function(mid, referenceModule, immediate){
944
- // compute and optionally construct (if necessary) the module implied by the mid with respect to referenceModule
945
- var match, plugin, prid, result;
946
- match = mid.match(/^(.+?)\!(.*)$/);
947
- if(match){
948
- // name was <plugin-module>!<plugin-resource-id>
949
- plugin = getModule(match[1], referenceModule, immediate);
950
-
951
- if(has("dojo-sync-loader") && legacyMode == sync && !plugin.executed){
952
- injectModule(plugin);
953
- if(plugin.injected===arrived && !plugin.executed){
954
- checkCompleteGuard++;
955
- execModule(plugin);
956
- checkIdle();
957
- }
958
- if(plugin.executed){
959
- promoteModuleToPlugin(plugin);
960
- }else{
961
- // we are in xdomain mode for some reason
962
- execQ.unshift(plugin);
963
- }
964
- }
965
-
966
-
967
-
968
- if(plugin.executed === executed && !plugin.load){
969
- // executed the module not knowing it was a plugin
970
- promoteModuleToPlugin(plugin);
971
- }
972
-
973
- // if the plugin has not been loaded, then can't resolve the prid and must assume this plugin is dynamic until we find out otherwise
974
- if(plugin.load){
975
- prid = resolvePluginResourceId(plugin, match[2], referenceModule);
976
- mid = (plugin.mid + "!" + (plugin.dynamic ? ++dynamicPluginUidGenerator + "!" : "") + prid);
977
- }else{
978
- prid = match[2];
979
- mid = plugin.mid + "!" + (++dynamicPluginUidGenerator) + "!waitingForPlugin";
980
- }
981
- result = {plugin:plugin, mid:mid, req:createRequire(referenceModule), prid:prid};
982
- }else{
983
- result = getModuleInfo(mid, referenceModule);
984
- }
985
- return modules[result.mid] || (!immediate && (modules[result.mid] = result));
986
- },
987
-
988
- toAbsMid = req.toAbsMid = function(mid, referenceModule){
989
- return getModuleInfo(mid, referenceModule).mid;
990
- },
991
-
992
- toUrl = req.toUrl = function(name, referenceModule){
993
- var moduleInfo = getModuleInfo(name+"/x", referenceModule),
994
- url = moduleInfo.url;
995
- return fixupUrl(moduleInfo.pid===0 ?
996
- // if pid===0, then name had a protocol or absolute path; either way, toUrl is the identify function in such cases
997
- name :
998
- // "/x.js" since getModuleInfo automatically appends ".js" and we appended "/x" to make name look likde a module id
999
- url.substring(0, url.length-5)
1000
- );
1001
- },
1002
-
1003
- nonModuleProps = {
1004
- injected: arrived,
1005
- executed: executed,
1006
- def: nonmodule,
1007
- result: nonmodule
1008
- },
1009
-
1010
- makeCjs = function(mid){
1011
- return modules[mid] = mix({mid:mid}, nonModuleProps);
1012
- },
1013
-
1014
- cjsRequireModule = makeCjs("require"),
1015
- cjsExportsModule = makeCjs("exports"),
1016
- cjsModuleModule = makeCjs("module"),
1017
-
1018
- runFactory = function(module, args){
1019
- req.trace("loader-run-factory", [module.mid]);
1020
- var factory = module.def,
1021
- result;
1022
- has("dojo-sync-loader") && syncExecStack.unshift(module);
1023
- if(has("config-dojo-loader-catches")){
1024
- try{
1025
- result= isFunction(factory) ? factory.apply(null, args) : factory;
1026
- }catch(e){
1027
- signal(error, module.result = makeError("factoryThrew", [module, e]));
1028
- }
1029
- }else{
1030
- result= isFunction(factory) ? factory.apply(null, args) : factory;
1031
- }
1032
- module.result = result===undefined && module.cjs ? module.cjs.exports : result;
1033
- has("dojo-sync-loader") && syncExecStack.shift(module);
1034
- },
1035
-
1036
- abortExec = {},
1037
-
1038
- defOrder = 0,
1039
-
1040
- promoteModuleToPlugin = function(pluginModule){
1041
- var plugin = pluginModule.result;
1042
- pluginModule.dynamic = plugin.dynamic;
1043
- pluginModule.normalize = plugin.normalize;
1044
- pluginModule.load = plugin.load;
1045
- return pluginModule;
1046
- },
1047
-
1048
- resolvePluginLoadQ = function(plugin){
1049
- // plugins is a newly executed module that has a loadQ waiting to run
1050
-
1051
- // step 1: traverse the loadQ and fixup the mid and prid; remember the map from original mid to new mid
1052
- // recall the original mid was created before the plugin was on board and therefore it was impossible to
1053
- // compute the final mid; accordingly, prid may or may not change, but the mid will definitely change
1054
- var map = {};
1055
- forEach(plugin.loadQ, function(pseudoPluginResource){
1056
- // manufacture and insert the real module in modules
1057
- var pseudoMid = pseudoPluginResource.mid,
1058
- prid = resolvePluginResourceId(plugin, pseudoPluginResource.prid, pseudoPluginResource.req.module),
1059
- mid = plugin.dynamic ? pseudoPluginResource.mid.replace(/waitingForPlugin$/, prid) : (plugin.mid + "!" + prid),
1060
- pluginResource = mix(mix({}, pseudoPluginResource), {mid:mid, prid:prid, injected:0});
1061
- if(!modules[mid]){
1062
- // create a new (the real) plugin resource and inject it normally now that the plugin is on board
1063
- injectPlugin(modules[mid] = pluginResource);
1064
- } // else this was a duplicate request for the same (plugin, rid) for a nondynamic plugin
1065
-
1066
- // pluginResource is really just a placeholder with the wrong mid (because we couldn't calculate it until the plugin was on board)
1067
- // mark is as arrived and delete it from modules; the real module was requested above
1068
- map[pseudoPluginResource.mid] = modules[mid];
1069
- setArrived(pseudoPluginResource);
1070
- delete modules[pseudoPluginResource.mid];
1071
- });
1072
- plugin.loadQ = 0;
1073
-
1074
- // step2: replace all references to any placeholder modules with real modules
1075
- var substituteModules = function(module){
1076
- for(var replacement, deps = module.deps || [], i = 0; i<deps.length; i++){
1077
- replacement = map[deps[i].mid];
1078
- if(replacement){
1079
- deps[i] = replacement;
1080
- }
1081
- }
1082
- };
1083
- for(var p in modules){
1084
- substituteModules(modules[p]);
1085
- }
1086
- forEach(execQ, substituteModules);
1087
- },
1088
-
1089
- finishExec = function(module){
1090
- req.trace("loader-finish-exec", [module.mid]);
1091
- module.executed = executed;
1092
- module.defOrder = defOrder++;
1093
- has("dojo-sync-loader") && forEach(module.provides, function(cb){ cb(); });
1094
- if(module.loadQ){
1095
- // the module was a plugin
1096
- promoteModuleToPlugin(module);
1097
- resolvePluginLoadQ(module);
1098
- }
1099
- // remove all occurences of this module from the execQ
1100
- for(i = 0; i < execQ.length;){
1101
- if(execQ[i] === module){
1102
- execQ.splice(i, 1);
1103
- }else{
1104
- i++;
1105
- }
1106
- }
1107
- },
1108
-
1109
- circleTrace = [],
1110
-
1111
- execModule = function(module, strict){
1112
- // run the dependency vector, then run the factory for module
1113
- if(module.executed === executing){
1114
- req.trace("loader-circular-dependency", [circleTrace.concat(mid).join("->")]);
1115
- return (!module.def || strict) ? abortExec : (module.cjs && module.cjs.exports);
1116
- }
1117
- // at this point the module is either not executed or fully executed
1118
-
1119
-
1120
- if(!module.executed){
1121
- if(!module.def){
1122
- return abortExec;
1123
- }
1124
- var mid = module.mid,
1125
- deps = module.deps || [],
1126
- arg, argResult,
1127
- args = [],
1128
- i = 0;
1129
-
1130
- if(has("dojo-trace-api")){
1131
- circleTrace.push(mid);
1132
- req.trace("loader-exec-module", ["exec", circleTrace.length, mid]);
1133
- }
1134
-
1135
- // for circular dependencies, assume the first module encountered was executed OK
1136
- // modules that circularly depend on a module that has not run its factory will get
1137
- // the premade cjs.exports===module.result. They can take a reference to this object and/or
1138
- // add properties to it. When the module finally runs its factory, the factory can
1139
- // read/write/replace this object. Notice that so long as the object isn't replaced, any
1140
- // reference taken earlier while walking the deps list is still valid.
1141
- module.executed = executing;
1142
- while(i < deps.length){
1143
- arg = deps[i++];
1144
- argResult = ((arg === cjsRequireModule) ? createRequire(module) :
1145
- ((arg === cjsExportsModule) ? module.cjs.exports :
1146
- ((arg === cjsModuleModule) ? module.cjs :
1147
- execModule(arg, strict))));
1148
- if(argResult === abortExec){
1149
- module.executed = 0;
1150
- req.trace("loader-exec-module", ["abort", mid]);
1151
- has("dojo-trace-api") && circleTrace.pop();
1152
- return abortExec;
1153
- }
1154
- args.push(argResult);
1155
- }
1156
- runFactory(module, args);
1157
- finishExec(module);
1158
- }
1159
- // at this point the module is guaranteed fully executed
1160
-
1161
- has("dojo-trace-api") && circleTrace.pop();
1162
- return module.result;
1163
- },
1164
-
1165
-
1166
- checkCompleteGuard = 0,
1167
-
1168
- checkComplete = function(){
1169
- // keep going through the execQ as long as at least one factory is executed
1170
- // plugins, recursion, cached modules all make for many execution path possibilities
1171
- if(checkCompleteGuard){
1172
- return;
1173
- }
1174
- checkCompleteGuard++;
1175
- checkDojoRequirePlugin();
1176
- for(var currentDefOrder, module, i = 0; i < execQ.length;){
1177
- currentDefOrder = defOrder;
1178
- module = execQ[i];
1179
- execModule(module);
1180
- if(currentDefOrder!=defOrder){
1181
- // defOrder was bumped one or more times indicating something was executed (note, this indicates
1182
- // the execQ was modified, maybe a lot (for example a later module causes an earlier module to execute)
1183
- checkDojoRequirePlugin();
1184
- i = 0;
1185
- }else{
1186
- // nothing happened; check the next module in the exec queue
1187
- i++;
1188
- }
1189
- }
1190
- checkIdle();
1191
- },
1192
-
1193
- checkIdle = function(){
1194
- checkCompleteGuard--;
1195
- if(execComplete()){
1196
- signal("idle", []);
1197
- }
1198
- };
1199
-
1200
-
1201
- if(has("dojo-undef-api")){
1202
- req.undef = function(moduleId, referenceModule){
1203
- // In order to reload a module, it must be undefined (this routine) and then re-requested.
1204
- // This is useful for testing frameworks (at least).
1205
- var module = getModule(moduleId, referenceModule);
1206
- setArrived(module);
1207
- delete modules[module.mid];
1208
- };
1209
- }
1210
-
1211
- if(has("dojo-inject-api")){
1212
- if(has("dojo-loader-eval-hint-url")===undefined){
1213
- has.add("dojo-loader-eval-hint-url", 1);
1214
- }
1215
-
1216
- var fixupUrl= function(url){
1217
- url += ""; // make sure url is a Javascript string (some paths may be a Java string)
1218
- return url + (cacheBust ? ((/\?/.test(url) ? "&" : "?") + cacheBust) : "");
1219
- },
1220
-
1221
- injectPlugin = function(
1222
- module
1223
- ){
1224
- // injects the plugin module given by module; may have to inject the plugin itself
1225
- var plugin = module.plugin;
1226
-
1227
- if(plugin.executed === executed && !plugin.load){
1228
- // executed the module not knowing it was a plugin
1229
- promoteModuleToPlugin(plugin);
1230
- }
1231
-
1232
- var onLoad = function(def){
1233
- module.result = def;
1234
- setArrived(module);
1235
- finishExec(module);
1236
- checkComplete();
1237
- };
1238
-
1239
- if(plugin.load){
1240
- plugin.load(module.prid, module.req, onLoad);
1241
- }else if(plugin.loadQ){
1242
- plugin.loadQ.push(module);
1243
- }else{
1244
- // the unshift instead of push is important: we don't want plugins to execute as
1245
- // dependencies of some other module because this may cause circles when the plugin
1246
- // loadQ is run; also, generally, we want plugins to run early since they may load
1247
- // several other modules and therefore can potentially unblock many modules
1248
- plugin.loadQ = [module];
1249
- execQ.unshift(plugin);
1250
- injectModule(plugin);
1251
- }
1252
- },
1253
-
1254
- // for IE, injecting a module may result in a recursive execution if the module is in the cache
1255
-
1256
- cached = 0,
1257
-
1258
- injectingModule = 0,
1259
-
1260
- injectingCachedModule = 0,
1261
-
1262
- evalModuleText = function(text, module){
1263
- // see def() for the injectingCachedModule bracket; it simply causes a short, safe curcuit
1264
- injectingCachedModule = 1;
1265
- if(has("config-dojo-loader-catches")){
1266
- try{
1267
- if(text===cached){
1268
- cached.call(null);
1269
- }else{
1270
- req.eval(text, has("dojo-loader-eval-hint-url") ? module.url : module.mid);
1271
- }
1272
- }catch(e){
1273
- signal(error, makeError("evalModuleThrew", module));
1274
- }
1275
- }else{
1276
- if(text===cached){
1277
- cached.call(null);
1278
- }else{
1279
- req.eval(text, has("dojo-loader-eval-hint-url") ? module.url : module.mid);
1280
- }
1281
- }
1282
- injectingCachedModule = 0;
1283
- },
1284
-
1285
- injectModule = function(module){
1286
- // Inject the module. In the browser environment, this means appending a script element into
1287
- // the document; in other environments, it means loading a file.
1288
- //
1289
- // If in synchronous mode, then get the module synchronously if it's not xdomainLoading.
1290
-
1291
- var mid = module.mid,
1292
- url = module.url;
1293
- if(module.executed || module.injected || waiting[mid] || (module.url && ((module.pack && waiting[module.url]===module.pack) || waiting[module.url]==1))){
1294
- return;
1295
- }
1296
- setRequested(module);
1297
-
1298
- if(has("dojo-combo-api")){
1299
- var viaCombo = 0;
1300
- if(module.plugin && module.plugin.isCombo){
1301
- // a combo plugin; therefore, must be handled by combo service
1302
- // the prid should have already been converted to a URL (if required by the plugin) during
1303
- // the normalze process; in any event, there is no way for the loader to know how to
1304
- // to the conversion; therefore the third argument is zero
1305
- req.combo.add(module.plugin.mid, module.prid, 0, req);
1306
- viaCombo = 1;
1307
- }else if(!module.plugin){
1308
- viaCombo = req.combo.add(0, module.mid, module.url, req);
1309
- }
1310
- if(viaCombo){
1311
- comboPending= 1;
1312
- return;
1313
- }
1314
- }
1315
-
1316
- if(module.plugin){
1317
- injectPlugin(module);
1318
- return;
1319
- } // else a normal module (not a plugin)
1320
-
1321
-
1322
- var onLoadCallback = function(){
1323
- runDefQ(module);
1324
- if(module.injected !== arrived){
1325
- // the script that contained the module arrived and has been executed yet
1326
- // nothing was added to the defQ (so it wasn't an AMD module) and the module
1327
- // wasn't marked as arrived by dojo.provide (so it wasn't a v1.6- module);
1328
- // therefore, it must not have been a module; adjust state accordingly
1329
- setArrived(module);
1330
- mix(module, nonModuleProps);
1331
- }
1332
-
1333
- if(has("dojo-sync-loader") && legacyMode){
1334
- // must call checkComplete even in for sync loader because we may be in xdomainLoading mode;
1335
- // but, if xd loading, then don't call checkComplete until out of the current sync traversal
1336
- // in order to preserve order of execution of the dojo.required modules
1337
- !syncExecStack.length && checkComplete();
1338
- }else{
1339
- checkComplete();
1340
- }
1341
- };
1342
- cached = cache[mid] || cache[module.cacheId];
1343
- if(cached){
1344
- req.trace("loader-inject", ["cache", module.mid, url]);
1345
- evalModuleText(cached, module);
1346
- onLoadCallback();
1347
- return;
1348
- }
1349
- if(has("dojo-sync-loader") && legacyMode){
1350
- if(module.isXd){
1351
- // switch to async mode temporarily; if current legacyMode!=sync, then is must be one of {legacyAsync, xd, false}
1352
- legacyMode==sync && (legacyMode = xd);
1353
- // fall through and load via script injection
1354
- }else if(module.isAmd && legacyMode!=sync){
1355
- // fall through and load via script injection
1356
- }else{
1357
- // mode may be sync, xd/legacyAsync, or async; module may be AMD or legacy; but module is always located on the same domain
1358
- var xhrCallback = function(text){
1359
- if(legacyMode==sync){
1360
- // the top of syncExecStack gives the current synchronously executing module; the loader needs
1361
- // to know this if it has to switch to async loading in the middle of evaluating a legacy module
1362
- // this happens when a modules dojo.require's a module that must be loaded async because it's xdomain
1363
- // (using unshift/shift because there is no back() methods for Javascript arrays)
1364
- syncExecStack.unshift(module);
1365
- evalModuleText(text, module);
1366
- syncExecStack.shift();
1367
-
1368
- // maybe the module was an AMD module
1369
- runDefQ(module);
1370
-
1371
- // legacy modules never get to defineModule() => cjs and injected never set; also evaluation implies executing
1372
- if(!module.cjs){
1373
- setArrived(module);
1374
- finishExec(module);
1375
- }
1376
-
1377
- if(module.finish){
1378
- // while synchronously evaluating this module, dojo.require was applied referencing a module
1379
- // that had to be loaded async; therefore, the loader stopped answering all dojo.require
1380
- // requests so they could be answered completely in the correct sequence; module.finish gives
1381
- // the list of dojo.requires that must be re-applied once all target modules are available;
1382
- // make a synthetic module to execute the dojo.require's in the correct order
1383
-
1384
- // compute a guarnateed-unique mid for the synthetic finish module; remember the finish vector; remove it from the reference module
1385
- // TODO: can we just leave the module.finish...what's it hurting?
1386
- var finishMid = mid + "*finish",
1387
- finish = module.finish;
1388
- delete module.finish;
1389
-
1390
- def(finishMid, ["dojo", ("dojo/require!" + finish.join(",")).replace(/\./g, "/")], function(dojo){
1391
- forEach(finish, function(mid){ dojo.require(mid); });
1392
- });
1393
- // unshift, not push, which causes the current traversal to be reattempted from the top
1394
- execQ.unshift(getModule(finishMid));
1395
- }
1396
- onLoadCallback();
1397
- }else{
1398
- text = transformToAmd(module, text);
1399
- if(text){
1400
- evalModuleText(text, module);
1401
- onLoadCallback();
1402
- }else{
1403
- // if transformToAmd returned falsy, then the module was already AMD and it can be script-injected
1404
- // do so to improve debugability(even though it means another download...which probably won't happen with a good browser cache)
1405
- injectingModule = module;
1406
- req.injectUrl(fixupUrl(url), onLoadCallback, module);
1407
- injectingModule = 0;
1408
- }
1409
- }
1410
- };
1411
-
1412
- req.trace("loader-inject", ["xhr", module.mid, url, legacyMode!=sync]);
1413
- if(has("config-dojo-loader-catches")){
1414
- try{
1415
- req.getText(url, legacyMode!=sync, xhrCallback);
1416
- }catch(e){
1417
- signal(error, makeError("xhrInjectFailed", [module, e]));
1418
- }
1419
- }else{
1420
- req.getText(url, legacyMode!=sync, xhrCallback);
1421
- }
1422
- return;
1423
- }
1424
- } // else async mode or fell through in xdomain loading mode; either way, load by script injection
1425
- req.trace("loader-inject", ["script", module.mid, url]);
1426
- injectingModule = module;
1427
- req.injectUrl(fixupUrl(url), onLoadCallback, module);
1428
- injectingModule = 0;
1429
- },
1430
-
1431
- defineModule = function(module, deps, def){
1432
- req.trace("loader-define-module", [module.mid, deps]);
1433
-
1434
- if(has("dojo-combo-api") && module.plugin && module.plugin.isCombo){
1435
- // the module is a plugin resource loaded by the combo service
1436
- // note: check for module.plugin should be enough since normal plugin resources should
1437
- // not follow this path; module.plugin.isCombo is future-proofing belt and suspenders
1438
- module.result = isFunction(def) ? def() : def;
1439
- setArrived(module);
1440
- finishExec(module);
1441
- return module;
1442
- };
1443
-
1444
- var mid = module.mid;
1445
- if(module.injected === arrived){
1446
- signal(error, makeError("multipleDefine", module));
1447
- return module;
1448
- }
1449
- mix(module, {
1450
- deps: deps,
1451
- def: def,
1452
- cjs: {
1453
- id: module.mid,
1454
- uri: module.url,
1455
- exports: (module.result = {}),
1456
- setExports: function(exports){
1457
- module.cjs.exports = exports;
1458
- }
1459
- }
1460
- });
1461
-
1462
- // resolve deps with respect to this module
1463
- for(var i = 0; i < deps.length; i++){
1464
- deps[i] = getModule(deps[i], module);
1465
- }
1466
-
1467
- if(has("dojo-sync-loader") && legacyMode && !waiting[mid]){
1468
- // the module showed up without being asked for; it was probably in a <script> element
1469
- injectDependencies(module);
1470
- execQ.push(module);
1471
- checkComplete();
1472
- }
1473
- setArrived(module);
1474
-
1475
- if(!isFunction(def) && !deps.length){
1476
- module.result = def;
1477
- finishExec(module);
1478
- }
1479
-
1480
- return module;
1481
- },
1482
-
1483
- runDefQ = function(referenceModule, mids){
1484
- // defQ is an array of [id, dependencies, factory]
1485
- // mids (if any) is a vector of mids given by a combo service
1486
- var definedModules = [],
1487
- module, args;
1488
- while(defQ.length){
1489
- args = defQ.shift();
1490
- mids && (args[0]= mids.shift());
1491
- // explicit define indicates possible multiple modules in a single file; delay injecting dependencies until defQ fully
1492
- // processed since modules earlier in the queue depend on already-arrived modules that are later in the queue
1493
- // TODO: what if no args[0] and no referenceModule
1494
- module = (args[0] && getModule(args[0])) || referenceModule;
1495
- definedModules.push([module, args[1], args[2]]);
1496
- }
1497
- consumePendingCacheInsert(referenceModule);
1498
- forEach(definedModules, function(args){
1499
- injectDependencies(defineModule.apply(null, args));
1500
- });
1501
- };
1502
- }
1503
-
1504
- var timerId = 0,
1505
- clearTimer = noop,
1506
- startTimer = noop;
1507
- if(has("dojo-timeout-api")){
1508
- // Timer machinery that monitors how long the loader is waiting and signals an error when the timer runs out.
1509
- clearTimer = function(){
1510
- timerId && clearTimeout(timerId);
1511
- timerId = 0;
1512
- },
1513
-
1514
- startTimer = function(){
1515
- clearTimer();
1516
- req.waitms && (timerId = setTimeout(function(){
1517
- clearTimer();
1518
- signal(error, makeError("timeout", waiting));
1519
- }, req.waitms));
1520
- };
1521
- }
1522
-
1523
- if(has("dom")){
1524
- has.add("ie-event-behavior", doc.attachEvent && (typeof opera === "undefined" || opera.toString() != "[object Opera]"));
1525
- }
1526
-
1527
- if(has("dom") && (has("dojo-inject-api") || has("dojo-dom-ready-api"))){
1528
- var domOn = function(node, eventName, ieEventName, handler){
1529
- // Add an event listener to a DOM node using the API appropriate for the current browser;
1530
- // return a function that will disconnect the listener.
1531
- if(!has("ie-event-behavior")){
1532
- node.addEventListener(eventName, handler, false);
1533
- return function(){
1534
- node.removeEventListener(eventName, handler, false);
1535
- };
1536
- }else{
1537
- node.attachEvent(ieEventName, handler);
1538
- return function(){
1539
- node.detachEvent(ieEventName, handler);
1540
- };
1541
- }
1542
- },
1543
- windowOnLoadListener = domOn(window, "load", "onload", function(){
1544
- req.pageLoaded = 1;
1545
- doc.readyState!="complete" && (doc.readyState = "complete");
1546
- windowOnLoadListener();
1547
- });
1548
-
1549
- if(has("dojo-inject-api")){
1550
- // if the loader is on the page, there must be at least one script element
1551
- // getting its parent and then doing insertBefore solves the "Operation Aborted"
1552
- // error in IE from appending to a node that isn't properly closed; see
1553
- // dojo/tests/_base/loader/requirejs/simple-badbase.html for an example
1554
- var sibling = doc.getElementsByTagName("script")[0],
1555
- insertPoint= sibling.parentNode;
1556
- req.injectUrl = function(url, callback, owner){
1557
- // insert a script element to the insert-point element with src=url;
1558
- // apply callback upon detecting the script has loaded.
1559
-
1560
- startTimer();
1561
- var node = owner.node = doc.createElement("script"),
1562
- onLoad = function(e){
1563
- e = e || window.event;
1564
- var node = e.target || e.srcElement;
1565
- if(e.type === "load" || /complete|loaded/.test(node.readyState)){
1566
- disconnector();
1567
- callback && callback();
1568
- }
1569
- },
1570
- disconnector = domOn(node, "load", "onreadystatechange", onLoad);
1571
- node.type = "text/javascript";
1572
- node.charset = "utf-8";
1573
- node.src = url;
1574
- insertPoint.insertBefore(node, sibling);
1575
- return node;
1576
- };
1577
- }
1578
- }
1579
-
1580
- if(has("dojo-log-api")){
1581
- req.log = function(){
1582
- try{
1583
- for(var i = 0; i < arguments.length; i++){
1584
- console.log(arguments[i]);
1585
- }
1586
- }catch(e){}
1587
- };
1588
- }else{
1589
- req.log = noop;
1590
- }
1591
-
1592
- if(has("dojo-trace-api")){
1593
- var trace = req.trace = function(
1594
- group, // the trace group to which this application belongs
1595
- args // the contents of the trace
1596
- ){
1597
- ///
1598
- // Tracing interface by group.
1599
- //
1600
- // Sends the contents of args to the console iff (req.trace.on && req.trace[group])
1601
-
1602
- if(trace.on && trace.group[group]){
1603
- signal("trace", [group, args]);
1604
- for(var arg, dump = [], text= "trace:" + group + (args.length ? (":" + args[0]) : ""), i= 1; i<args.length;){
1605
- arg = args[i++];
1606
- if(isString(arg)){
1607
- text += ", " + arg;
1608
- }else{
1609
- dump.push(arg);
1610
- }
1611
- }
1612
- req.log(text);
1613
- dump.length && dump.push(".");
1614
- req.log.apply(req, dump);
1615
- }
1616
- };
1617
- mix(trace, {
1618
- on:1,
1619
- group:{},
1620
- set:function(group, value){
1621
- if(isString(group)){
1622
- trace.group[group]= value;
1623
- }else{
1624
- mix(trace.group, group);
1625
- }
1626
- }
1627
- });
1628
- trace.set(mix(mix(mix({}, defaultConfig.trace), userConfig.trace), dojoSniffConfig.trace));
1629
- on("config", function(config){
1630
- config.trace && trace.set(config.trace);
1631
- });
1632
- }else{
1633
- req.trace = noop;
1634
- }
1635
-
1636
- var def = function(
1637
- mid, //(commonjs.moduleId, optional) list of modules to be loaded before running factory
1638
- dependencies, //(array of commonjs.moduleId, optional)
1639
- factory //(any)
1640
- ){
1641
- ///
1642
- // Advises the loader of a module factory. //Implements http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition.
1643
- ///
1644
- //note
1645
- // CommonJS factory scan courtesy of http://requirejs.org
1646
-
1647
- var arity = arguments.length,
1648
- args = 0,
1649
- defaultDeps = ["require", "exports", "module"];
1650
-
1651
- if(has("dojo-amd-factory-scan")){
1652
- if(arity == 1 && isFunction(mid)){
1653
- dependencies = [];
1654
- mid.toString()
1655
- .replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg, "")
1656
- .replace(/require\(["']([\w\!\-_\.\/]+)["']\)/g, function (match, dep){
1657
- dependencies.push(dep);
1658
- });
1659
- args = [0, defaultDeps.concat(dependencies), mid];
1660
- }
1661
- }
1662
- if(!args){
1663
- args = arity == 1 ? [0, defaultDeps, mid] :
1664
- (arity == 2 ? (isArray(mid) ? [0, mid, dependencies] : (isFunction(dependencies) ? [mid, defaultDeps, dependencies] : [mid, [], dependencies])) :
1665
- [mid, dependencies, factory]);
1666
- }
1667
- req.trace("loader-define", args.slice(0, 2));
1668
- var targetModule = args[0] && getModule(args[0]),
1669
- module;
1670
- if(targetModule && !waiting[targetModule.mid]){
1671
- // given a mid that hasn't been requested; therefore, defined through means other than injecting
1672
- // consequent to a require() or define() application; examples include defining modules on-the-fly
1673
- // due to some code path or including a module in a script element. In any case,
1674
- // there is no callback waiting to finish processing and nothing to trigger the defQ and the
1675
- // dependencies are never requested; therefore, do it here.
1676
- injectDependencies(defineModule(targetModule, args[1], args[2]));
1677
- }else if(!has("ie-event-behavior") || !has("host-browser") || injectingCachedModule){
1678
- // not IE path: anonymous module and therefore must have been injected; therefore, onLoad will fire immediately
1679
- // after script finishes being evaluated and the defQ can be run from that callback to detect the module id
1680
- defQ.push(args);
1681
- }else{
1682
- // IE path: possibly anonymous module and therefore injected; therefore, cannot depend on 1-to-1,
1683
- // in-order exec of onLoad with script eval (since it's IE) and must manually detect here
1684
- targetModule = targetModule || injectingModule;
1685
- if(!targetModule){
1686
- for(mid in waiting){
1687
- module = modules[mid];
1688
- if(module && module.node && module.node.readyState === 'interactive'){
1689
- targetModule = module;
1690
- break;
1691
- }
1692
- }
1693
- if(has("dojo-combo-api") && !targetModule){
1694
- for(var i = 0; i<combosPending.length; i++){
1695
- targetModule = combosPending[i];
1696
- if(targetModule.node && targetModule.node.readyState === 'interactive'){
1697
- break;
1698
- }
1699
- targetModule= 0;
1700
- }
1701
- }
1702
- }
1703
- if(has("dojo-combo-api") && isArray(targetModule)){
1704
- injectDependencies(defineModule(getModule(targetModule.shift()), args[1], args[2]));
1705
- if(!targetModule.length){
1706
- combosPending.splice(i, 1);
1707
- }
1708
- }else if(targetModule){
1709
- consumePendingCacheInsert(targetModule);
1710
- injectDependencies(defineModule(targetModule, args[1], args[2]));
1711
- }else{
1712
- signal(error, makeError("ieDefineFailed", args[0]));
1713
- }
1714
- checkComplete();
1715
- }
1716
- };
1717
- def.amd = {
1718
- vendor:"dojotoolkit.org"
1719
- };
1720
-
1721
- if(has("dojo-requirejs-api")){
1722
- req.def = def;
1723
- }
1724
-
1725
- // allow config to override default implemention of named functions; this is useful for
1726
- // non-browser environments, e.g., overriding injectUrl, getText, log, etc. in node.js, Rhino, etc.
1727
- // also useful for testing and monkey patching loader
1728
- mix(mix(req, defaultConfig.loaderPatch), userConfig.loaderPatch);
1729
-
1730
- // now that req is fully initialized and won't change, we can hook it up to the error signal
1731
- on(error, function(arg){
1732
- try{
1733
- console.error(arg);
1734
- if(arg instanceof Error){
1735
- for(var p in arg){
1736
- console.log(p + ":", arg[p]);
1737
- }
1738
- console.log(".");
1739
- }
1740
- }catch(e){}
1741
- });
1742
-
1743
- // always publish these
1744
- mix(req, {
1745
- uid:uid,
1746
- cache:cache,
1747
- packs:packs
1748
- });
1749
-
1750
-
1751
- if(has("dojo-publish-privates")){
1752
- mix(req, {
1753
- // these may be interesting to look at when debugging
1754
- paths:paths,
1755
- aliases:aliases,
1756
- packageMap:packageMap,
1757
- modules:modules,
1758
- legacyMode:legacyMode,
1759
- execQ:execQ,
1760
- defQ:defQ,
1761
- waiting:waiting,
1762
-
1763
- // these are used for testing
1764
- // TODO: move testing infrastructure to a different has feature
1765
- pathsMapProg:pathsMapProg,
1766
- packageMapProg:packageMapProg,
1767
- listenerQueues:listenerQueues,
1768
-
1769
- // these are used by the builder (at least)
1770
- computeMapProg:computeMapProg,
1771
- runMapProg:runMapProg,
1772
- compactPath:compactPath,
1773
- getModuleInfo:getModuleInfo_
1774
- });
1775
- }
1776
-
1777
- // the loader can be defined exactly once; look for global define which is the symbol AMD loaders are
1778
- // *required* to define (as opposed to require, which is optional)
1779
- if(global.define){
1780
- if(has("dojo-log-api")){
1781
- signal(error, makeError("defineAlreadyDefined", 0));
1782
- }
1783
- }else{
1784
- global.define = def;
1785
- global.require = req;
1786
- }
1787
-
1788
- if(has("dojo-combo-api") && req.combo && req.combo.plugins){
1789
- var plugins = req.combo.plugins,
1790
- pluginName;
1791
- for(pluginName in plugins){
1792
- mix(mix(getModule(pluginName), plugins[pluginName]), {isCombo:1, executed:"executed", load:1});
1793
- }
1794
- }
1795
-
1796
- if(has("dojo-config-api")){
1797
- var bootDeps = dojoSniffConfig.deps || userConfig.deps || defaultConfig.deps,
1798
- bootCallback = dojoSniffConfig.callback || userConfig.callback || defaultConfig.callback;
1799
- req.boot = (bootDeps || bootCallback) ? [bootDeps || [], bootCallback] : 0;
1800
- }
1801
- if(!has("dojo-built")){
1802
- !req.async && req(["dojo"]);
1803
- req.boot && req.apply(null, req.boot);
1804
- }
1805
- })
1806
- //>>excludeStart("replaceLoaderConfig", kwArgs.replaceLoaderConfig);
1807
- (
1808
- // userConfig
1809
- (function(){
1810
- // make sure we're looking at global dojoConfig etc.
1811
- return this.dojoConfig || this.djConfig || this.require || {};
1812
- })(),
1813
-
1814
- // defaultConfig
1815
- {
1816
- // the default configuration for a browser; this will be modified by other environments
1817
- hasCache:{
1818
- "host-browser":1,
1819
- "dom":1,
1820
- "dojo-amd-factory-scan":1,
1821
- "dojo-loader":1,
1822
- "dojo-has-api":1,
1823
- "dojo-inject-api":1,
1824
- "dojo-timeout-api":1,
1825
- "dojo-trace-api":1,
1826
- "dojo-log-api":1,
1827
- "dojo-dom-ready-api":1,
1828
- "dojo-publish-privates":1,
1829
- "dojo-config-api":1,
1830
- "dojo-sniff":1,
1831
- "dojo-sync-loader":1,
1832
- "dojo-test-sniff":1,
1833
- "config-tlmSiblingOfDojo":1
1834
- },
1835
- packages:[{
1836
- // note: like v1.6-, this bootstrap computes baseUrl to be the dojo directory
1837
- name:'dojo',
1838
- location:'.'
1839
- },{
1840
- name:'tests',
1841
- location:'./tests'
1842
- },{
1843
- name:'dijit',
1844
- location:'../dijit'
1845
- },{
1846
- name:'build',
1847
- location:'../util/build'
1848
- },{
1849
- name:'doh',
1850
- location:'../util/doh'
1851
- },{
1852
- name:'dojox',
1853
- location:'../dojox'
1854
- },{
1855
- name:'demos',
1856
- location:'../demos'
1857
- }],
1858
- trace:{
1859
- // these are listed so it's simple to turn them on/off while debugging loading
1860
- "loader-inject":0,
1861
- "loader-define":0,
1862
- "loader-exec-module":0,
1863
- "loader-run-factory":0,
1864
- "loader-finish-exec":0,
1865
- "loader-define-module":0,
1866
- "loader-circular-dependency":0
1867
- },
1868
- async:0,
1869
- waitSeconds:15
1870
- }
1871
- );
1872
- //>>excludeEnd("replaceLoaderConfig")
14
+ //>>built
15
+ (function(_1,_2){var _3=function(){},_4=function(it){for(var p in it){return 0;}return 1;},_5={}.toString,_6=function(it){return _5.call(it)=="[object Function]";},_7=function(it){return _5.call(it)=="[object String]";},_8=function(it){return _5.call(it)=="[object Array]";},_9=function(_a,_b){if(_a){for(var i=0;i<_a.length;){_b(_a[i++]);}}},_c=function(_d,_e){for(var p in _e){_d[p]=_e[p];}return _d;},_f=function(_10,_11){return _c(new Error(_10),{src:"dojoLoader",info:_11});},_12=1,uid=function(){return "_"+_12++;},req=function(_13,_14,_15){return _16(_13,_14,_15,0,req);},_17=this,doc=_17.document,_18=doc&&doc.createElement("DiV"),has=req.has=function(_19){return _6(_1a[_19])?(_1a[_19]=_1a[_19](_17,doc,_18)):_1a[_19];},_1a=has.cache=_2.hasCache;has.add=function(_1b,_1c,now,_1d){(_1a[_1b]===undefined||_1d)&&(_1a[_1b]=_1c);return now&&has(_1b);};0&&has.add("host-node",_1.has&&"host-node" in _1.has?_1.has["host-node"]:(typeof process=="object"&&process.versions&&process.versions.node&&process.versions.v8));if(0){require("./_base/configNode.js").config(_2);_2.loaderPatch.nodeRequire=require;}0&&has.add("host-rhino",_1.has&&"host-rhino" in _1.has?_1.has["host-rhino"]:(typeof load=="function"&&(typeof Packages=="function"||typeof Packages=="object")));if(0){for(var _1e=_1.baseUrl||".",arg,_1f=this.arguments,i=0;i<_1f.length;){arg=(_1f[i++]+"").split("=");if(arg[0]=="baseUrl"){_1e=arg[1];break;}}load(_1e+"/_base/configRhino.js");rhinoDojoConfig(_2,_1e,_1f);}for(var p in _1.has){has.add(p,_1.has[p],0,1);}var _20=1,_21=2,_22=3,_23=4,_24=5;if(0){_20="requested";_21="arrived";_22="not-a-module";_23="executing";_24="executed";}var _25=0,_26="sync",xd="xd",_27=[],_28=0,_29=_3,_2a=_3,_2b;if(1){req.isXdUrl=_3;req.initSyncLoader=function(_2c,_2d,_2e){if(!_28){_28=_2c;_29=_2d;_2a=_2e;}return {sync:_26,requested:_20,arrived:_21,nonmodule:_22,executing:_23,executed:_24,syncExecStack:_27,modules:_2f,execQ:_30,getModule:_31,injectModule:_32,setArrived:_33,signal:_34,finishExec:_35,execModule:_36,dojoRequirePlugin:_28,getLegacyMode:function(){return _25;},guardCheckComplete:_37};};if(1){var _38=location.protocol,_39=location.host;req.isXdUrl=function(url){if(/^\./.test(url)){return false;}if(/^\/\//.test(url)){return true;}var _3a=url.match(/^([^\/\:]+\:)\/+([^\/]+)/);return _3a&&(_3a[1]!=_38||(_39&&_3a[2]!=_39));};1||has.add("dojo-xhr-factory",1);has.add("dojo-force-activex-xhr",1&&!doc.addEventListener&&window.location.protocol=="file:");has.add("native-xhr",typeof XMLHttpRequest!="undefined");if(has("native-xhr")&&!has("dojo-force-activex-xhr")){_2b=function(){return new XMLHttpRequest();};}else{for(var _3b=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],_3c,i=0;i<3;){try{_3c=_3b[i++];if(new ActiveXObject(_3c)){break;}}catch(e){}}_2b=function(){return new ActiveXObject(_3c);};}req.getXhr=_2b;has.add("dojo-gettext-api",1);req.getText=function(url,_3d,_3e){var xhr=_2b();xhr.open("GET",_3f(url),false);xhr.send(null);if(xhr.status==200||(!location.host&&!xhr.status)){if(_3e){_3e(xhr.responseText,_3d);}}else{throw _f("xhrFailed",xhr.status);}return xhr.responseText;};}}else{req.async=1;}var _40=new Function("return eval(arguments[0]);");req.eval=function(_41,_42){return _40(_41+"\r\n////@ sourceURL="+_42);};var _43={},_44="error",_34=req.signal=function(_45,_46){var _47=_43[_45];_9(_47&&_47.slice(0),function(_48){_48.apply(null,_8(_46)?_46:[_46]);});},on=req.on=function(_49,_4a){var _4b=_43[_49]||(_43[_49]=[]);_4b.push(_4a);return {remove:function(){for(var i=0;i<_4b.length;i++){if(_4b[i]===_4a){_4b.splice(i,1);return;}}}};};var _4c=[],_4d={},_4e=[],_4f={},map=req.map={},_50=[],_2f={},_51="",_52={},_53="url:",_54={},_55={};if(1){var _56=function(_57){var p,_58,_59,now,m;for(p in _54){_58=_54[p];_59=p.match(/^url\:(.+)/);if(_59){_52[_53+_5a(_59[1],_57)]=_58;}else{if(p=="*now"){now=_58;}else{if(p!="*noref"){m=_5b(p,_57);_52[m.mid]=_52[_53+m.url]=_58;}}}}if(now){now(_5c(_57));}_54={};},_5d=function(s){return s.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(c){return "\\"+c;});},_5e=function(map,_5f){_5f.splice(0,_5f.length);for(var p in map){_5f.push([p,map[p],new RegExp("^"+_5d(p)+"(/|$)"),p.length]);}_5f.sort(function(lhs,rhs){return rhs[3]-lhs[3];});return _5f;},_60=function(_61){var _62=_61.name;if(!_62){_62=_61;_61={name:_62};}_61=_c({main:"main"},_61);_61.location=_61.location?_61.location:_62;if(_61.packageMap){map[_62]=_61.packageMap;}if(!_61.main.indexOf("./")){_61.main=_61.main.substring(2);}_4f[_62]=_61;},_63=function(_64,_65,_66){for(var p in _64){if(p=="waitSeconds"){req.waitms=(_64[p]||0)*1000;}if(p=="cacheBust"){_51=_64[p]?(_7(_64[p])?_64[p]:(new Date()).getTime()+""):"";}if(p=="baseUrl"||p=="combo"){req[p]=_64[p];}if(1&&p=="async"){var _67=_64[p];req.legacyMode=_25=(_7(_67)&&/sync|legacyAsync/.test(_67)?_67:(!_67?_26:false));req.async=!_25;}if(_64[p]!==_1a){req.rawConfig[p]=_64[p];p!="has"&&has.add("config-"+p,_64[p],0,_65);}}if(!req.baseUrl){req.baseUrl="./";}if(!/\/$/.test(req.baseUrl)){req.baseUrl+="/";}for(p in _64.has){has.add(p,_64.has[p],0,_65);}_9(_64.packages,_60);for(_1e in _64.packagePaths){_9(_64.packagePaths[_1e],function(_68){var _69=_1e+"/"+_68;if(_7(_68)){_68={name:_68};}_68.location=_69;_60(_68);});}_5e(_c(map,_64.map),_50);_9(_50,function(_6a){_6a[1]=_5e(_6a[1],[]);if(_6a[0]=="*"){_50.star=_6a[1];}});_5e(_c(_4d,_64.paths),_4e);_9(_64.aliases,function(_6b){if(_7(_6b[0])){_6b[0]=new RegExp("^"+_5d(_6b[0])+"$");}_4c.push(_6b);});for(p in _64.config){var _6c=_31(p,_66);_6c.config=_c(_6c.config||{},_64.config[p]);}if(_64.cache){_56();_54=_64.cache;if(_64.cache["*noref"]){_56();}}_34("config",[_64,req.rawConfig]);};if(has("dojo-cdn")||1){var _6d=doc.getElementsByTagName("script"),i=0,_6e,_6f,src,_70;while(i<_6d.length){_6e=_6d[i++];if((src=_6e.getAttribute("src"))&&(_70=src.match(/(((.*)\/)|^)dojo\.js(\W|$)/i))){_6f=_70[3]||"";_2.baseUrl=_2.baseUrl||_6f;src=(_6e.getAttribute("data-dojo-config")||_6e.getAttribute("djConfig"));if(src){_55=req.eval("({ "+src+" })","data-dojo-config");}if(0){var _71=_6e.getAttribute("data-main");if(_71){_55.deps=_55.deps||[_71];}}break;}}}if(0){try{if(window.parent!=window&&window.parent.require){var doh=window.parent.require("doh");doh&&_c(_55,doh.testConfig);}}catch(e){}}req.rawConfig={};_63(_2,1);if(has("dojo-cdn")){_4f.dojo.location=_6f;if(_6f){_6f+="/";}_4f.dijit.location=_6f+"../dijit/";_4f.dojox.location=_6f+"../dojox/";}_63(_1,1);_63(_55,1);}else{_4d=_2.paths;_4e=_2.pathsMapProg;_4f=_2.packs;_4c=_2.aliases;_50=_2.mapProgs;_2f=_2.modules;_52=_2.cache;_51=_2.cacheBust;req.rawConfig=_2;}if(0){req.combo=req.combo||{add:_3};var _72=0,_73=[],_74=null;}var _75=function(_76){_37(function(){_9(_76.deps,_32);if(0&&_72&&!_74){_74=setTimeout(function(){_72=0;_74=null;req.combo.done(function(_77,url){var _78=function(){_79(0,_77);_7a();};_73.push(_77);_7b=_77;req.injectUrl(url,_78,_77);_7b=0;},req);},0);}});},_16=function(a1,a2,a3,_7c,_7d){var _7e,_7f;if(_7(a1)){_7e=_31(a1,_7c,true);if(_7e&&_7e.executed){return _7e.result;}throw _f("undefinedModule",a1);}if(!_8(a1)){_63(a1,0,_7c);a1=a2;a2=a3;}if(_8(a1)){if(!a1.length){a2&&a2();}else{_7f="require*"+uid();for(var mid,_80=[],i=0;i<a1.length;){mid=a1[i++];_80.push(_31(mid,_7c));}_7e=_c(_81("",_7f,0,""),{injected:_21,deps:_80,def:a2||_3,require:_7c?_7c.require:req,gc:1});_2f[_7e.mid]=_7e;_75(_7e);var _82=_83&&_25!=_26;_37(function(){_36(_7e,_82);});if(!_7e.executed){_30.push(_7e);}_7a();}}return _7d;},_5c=function(_84){if(!_84){return req;}var _85=_84.require;if(!_85){_85=function(a1,a2,a3){return _16(a1,a2,a3,_84,_85);};_84.require=_c(_85,req);_85.module=_84;_85.toUrl=function(_86){return _5a(_86,_84);};_85.toAbsMid=function(mid){return _b3(mid,_84);};if(0){_85.undef=function(mid){req.undef(mid,_84);};}if(1){_85.syncLoadNls=function(mid){var _87=_5b(mid,_84),_88=_2f[_87.mid];if(!_88||!_88.executed){_89=_52[_87.mid]||_52[_53+_87.url];if(_89){_8a(_89);_88=_2f[_87.mid];}}return _88&&_88.executed&&_88.result;};}}return _85;},_30=[],_8b=[],_8c={},_8d=function(_8e){_8e.injected=_20;_8c[_8e.mid]=1;if(_8e.url){_8c[_8e.url]=_8e.pack||1;}_8f();},_33=function(_90){_90.injected=_21;delete _8c[_90.mid];if(_90.url){delete _8c[_90.url];}if(_4(_8c)){_91();1&&_25==xd&&(_25=_26);}},_92=req.idle=function(){return !_8b.length&&_4(_8c)&&!_30.length&&!_83;},_93=function(_94,map){if(map){for(var i=0;i<map.length;i++){if(map[i][2].test(_94)){return map[i];}}}return 0;},_95=function(_96){var _97=[],_98,_99;_96=_96.replace(/\\/g,"/").split("/");while(_96.length){_98=_96.shift();if(_98==".."&&_97.length&&_99!=".."){_97.pop();_99=_97[_97.length-1];}else{if(_98!="."){_97.push(_99=_98);}}}return _97.join("/");},_81=function(pid,mid,_9a,url){if(1){var xd=req.isXdUrl(url);return {pid:pid,mid:mid,pack:_9a,url:url,executed:0,def:0,isXd:xd,isAmd:!!(xd||(_4f[pid]&&_4f[pid].isAmd))};}else{return {pid:pid,mid:mid,pack:_9a,url:url,executed:0,def:0};}},_9b=function(mid,_9c,_9d,_9e,_9f,_a0,_a1,_a2){var pid,_a3,_a4,_a5,_a6,url,_a7,_a8,_a9;_a9=mid;_a8=/^\./.test(mid);if(/(^\/)|(\:)|(\.js$)/.test(mid)||(_a8&&!_9c)){return _81(0,mid,0,mid);}else{mid=_95(_a8?(_9c.mid+"/../"+mid):mid);if(/^\./.test(mid)){throw _f("irrationalPath",mid);}if(_9c){_a6=_93(_9c.mid,_a0);}_a6=_a6||_a0.star;_a6=_a6&&_93(mid,_a6[1]);if(_a6){mid=_a6[1]+mid.substring(_a6[3]);}_70=mid.match(/^([^\/]+)(\/(.+))?$/);pid=_70?_70[1]:"";if((_a3=_9d[pid])){mid=pid+"/"+(_a4=(_70[3]||_a3.main));}else{pid="";}var _aa=0,_ab=0;_9(_4c,function(_ac){var _ad=mid.match(_ac[0]);if(_ad&&_ad.length>_aa){_ab=_6(_ac[1])?mid.replace(_ac[0],_ac[1]):_ac[1];}});if(_ab){return _9b(_ab,0,_9d,_9e,_9f,_a0,_a1,_a2);}_a7=_9e[mid];if(_a7){return _a2?_81(_a7.pid,_a7.mid,_a7.pack,_a7.url):_9e[mid];}}_a6=_93(mid,_a1);if(_a6){url=_a6[1]+mid.substring(_a6[3]);}else{if(pid){url=_a3.location+"/"+_a4;}else{if(has("config-tlmSiblingOfDojo")){url="../"+mid;}else{url=mid;}}}if(!(/(^\/)|(\:)/.test(url))){url=_9f+url;}url+=".js";return _81(pid,mid,_a3,_95(url));},_5b=function(mid,_ae){return _9b(mid,_ae,_4f,_2f,req.baseUrl,_50,_4e);},_af=function(_b0,_b1,_b2){return _b0.normalize?_b0.normalize(_b1,function(mid){return _b3(mid,_b2);}):_b3(_b1,_b2);},_b4=0,_31=function(mid,_b5,_b6){var _b7,_b8,_b9,_ba;_b7=mid.match(/^(.+?)\!(.*)$/);if(_b7){_b8=_31(_b7[1],_b5,_b6);if(1&&_25==_26&&!_b8.executed){_32(_b8);if(_b8.injected===_21&&!_b8.executed){_37(function(){_36(_b8);});}if(_b8.executed){_bb(_b8);}else{_30.unshift(_b8);}}if(_b8.executed===_24&&!_b8.load){_bb(_b8);}if(_b8.load){_b9=_af(_b8,_b7[2],_b5);mid=(_b8.mid+"!"+(_b8.dynamic?++_b4+"!":"")+_b9);}else{_b9=_b7[2];mid=_b8.mid+"!"+(++_b4)+"!waitingForPlugin";}_ba={plugin:_b8,mid:mid,req:_5c(_b5),prid:_b9};}else{_ba=_5b(mid,_b5);}return _2f[_ba.mid]||(!_b6&&(_2f[_ba.mid]=_ba));},_b3=req.toAbsMid=function(mid,_bc){return _5b(mid,_bc).mid;},_5a=req.toUrl=function(_bd,_be){var _bf=_5b(_bd+"/x",_be),url=_bf.url;return _3f(_bf.pid===0?_bd:url.substring(0,url.length-5));},_c0={injected:_21,executed:_24,def:_22,result:_22},_c1=function(mid){return _2f[mid]=_c({mid:mid},_c0);},_c2=_c1("require"),_c3=_c1("exports"),_c4=_c1("module"),_c5=function(_c6,_c7){req.trace("loader-run-factory",[_c6.mid]);var _c8=_c6.def,_c9;1&&_27.unshift(_c6);if(has("config-dojo-loader-catches")){try{_c9=_6(_c8)?_c8.apply(null,_c7):_c8;}catch(e){_34(_44,_c6.result=_f("factoryThrew",[_c6,e]));}}else{_c9=_6(_c8)?_c8.apply(null,_c7):_c8;}_c6.result=_c9===undefined&&_c6.cjs?_c6.cjs.exports:_c9;1&&_27.shift(_c6);},_ca={},_cb=0,_bb=function(_cc){var _cd=_cc.result;_cc.dynamic=_cd.dynamic;_cc.normalize=_cd.normalize;_cc.load=_cd.load;return _cc;},_ce=function(_cf){var map={};_9(_cf.loadQ,function(_d0){var _d1=_af(_cf,_d0.prid,_d0.req.module),mid=_cf.dynamic?_d0.mid.replace(/waitingForPlugin$/,_d1):(_cf.mid+"!"+_d1),_d2=_c(_c({},_d0),{mid:mid,prid:_d1,injected:0});if(!_2f[mid]){_e4(_2f[mid]=_d2);}map[_d0.mid]=_2f[mid];_33(_d0);delete _2f[_d0.mid];});_cf.loadQ=0;var _d3=function(_d4){for(var _d5,_d6=_d4.deps||[],i=0;i<_d6.length;i++){_d5=map[_d6[i].mid];if(_d5){_d6[i]=_d5;}}};for(var p in _2f){_d3(_2f[p]);}_9(_30,_d3);},_35=function(_d7){req.trace("loader-finish-exec",[_d7.mid]);_d7.executed=_24;_d7.defOrder=_cb++;1&&_9(_d7.provides,function(cb){cb();});if(_d7.loadQ){_bb(_d7);_ce(_d7);}for(i=0;i<_30.length;){if(_30[i]===_d7){_30.splice(i,1);}else{i++;}}if(/^require\*/.test(_d7.mid)){delete _2f[_d7.mid];}},_d8=[],_36=function(_d9,_da){if(_d9.executed===_23){req.trace("loader-circular-dependency",[_d8.concat(_d9.mid).join("->")]);return (!_d9.def||_da)?_ca:(_d9.cjs&&_d9.cjs.exports);}if(!_d9.executed){if(!_d9.def){return _ca;}var mid=_d9.mid,_db=_d9.deps||[],arg,_dc,_dd=[],i=0;if(0){_d8.push(mid);req.trace("loader-exec-module",["exec",_d8.length,mid]);}_d9.executed=_23;while(i<_db.length){arg=_db[i++];_dc=((arg===_c2)?_5c(_d9):((arg===_c3)?_d9.cjs.exports:((arg===_c4)?_d9.cjs:_36(arg,_da))));if(_dc===_ca){_d9.executed=0;req.trace("loader-exec-module",["abort",mid]);0&&_d8.pop();return _ca;}_dd.push(_dc);}_c5(_d9,_dd);_35(_d9);0&&_d8.pop();}return _d9.result;},_83=0,_37=function(_de){try{_83++;_de();}finally{_83--;}if(_92()){_34("idle",[]);}},_7a=function(){if(_83){return;}_37(function(){_29();for(var _df,_e0,i=0;i<_30.length;){_df=_cb;_e0=_30[i];_36(_e0);if(_df!=_cb){_29();i=0;}else{i++;}}});};if(0){req.undef=function(_e1,_e2){var _e3=_31(_e1,_e2);_33(_e3);delete _2f[_e3.mid];};}if(1){if(has("dojo-loader-eval-hint-url")===undefined){has.add("dojo-loader-eval-hint-url",1);}var _3f=function(url){url+="";return url+(_51?((/\?/.test(url)?"&":"?")+_51):"");},_e4=function(_e5){var _e6=_e5.plugin;if(_e6.executed===_24&&!_e6.load){_bb(_e6);}var _e7=function(def){_e5.result=def;_33(_e5);_35(_e5);_7a();};if(_e6.load){_e6.load(_e5.prid,_e5.req,_e7);}else{if(_e6.loadQ){_e6.loadQ.push(_e5);}else{_e6.loadQ=[_e5];_30.unshift(_e6);_32(_e6);}}},_89=0,_7b=0,_e8=0,_8a=function(_e9,_ea){if(has("config-stripStrict")){_e9=_e9.replace(/"use strict"/g,"");}_e8=1;if(has("config-dojo-loader-catches")){try{if(_e9===_89){_89.call(null);}else{req.eval(_e9,has("dojo-loader-eval-hint-url")?_ea.url:_ea.mid);}}catch(e){_34(_44,_f("evalModuleThrew",_ea));}}else{if(_e9===_89){_89.call(null);}else{req.eval(_e9,has("dojo-loader-eval-hint-url")?_ea.url:_ea.mid);}}_e8=0;},_32=function(_eb){var mid=_eb.mid,url=_eb.url;if(_eb.executed||_eb.injected||_8c[mid]||(_eb.url&&((_eb.pack&&_8c[_eb.url]===_eb.pack)||_8c[_eb.url]==1))){return;}_8d(_eb);if(0){var _ec=0;if(_eb.plugin&&_eb.plugin.isCombo){req.combo.add(_eb.plugin.mid,_eb.prid,0,req);_ec=1;}else{if(!_eb.plugin){_ec=req.combo.add(0,_eb.mid,_eb.url,req);}}if(_ec){_72=1;return;}}if(_eb.plugin){_e4(_eb);return;}var _ed=function(){_79(_eb);if(_eb.injected!==_21){_33(_eb);_c(_eb,_c0);req.trace("loader-define-nonmodule",[_eb.url]);}if(1&&_25){!_27.length&&_7a();}else{_7a();}};_89=_52[mid]||_52[_53+_eb.url];if(_89){req.trace("loader-inject",["cache",_eb.mid,url]);_8a(_89,_eb);_ed();return;}if(1&&_25){if(_eb.isXd){_25==_26&&(_25=xd);}else{if(_eb.isAmd&&_25!=_26){}else{var _ee=function(_ef){if(_25==_26){_27.unshift(_eb);_8a(_ef,_eb);_27.shift();_79(_eb);if(!_eb.cjs){_33(_eb);_35(_eb);}if(_eb.finish){var _f0=mid+"*finish",_f1=_eb.finish;delete _eb.finish;def(_f0,["dojo",("dojo/require!"+_f1.join(",")).replace(/\./g,"/")],function(_f2){_9(_f1,function(mid){_f2.require(mid);});});_30.unshift(_31(_f0));}_ed();}else{_ef=_2a(_eb,_ef);if(_ef){_8a(_ef,_eb);_ed();}else{_7b=_eb;req.injectUrl(_3f(url),_ed,_eb);_7b=0;}}};req.trace("loader-inject",["xhr",_eb.mid,url,_25!=_26]);if(has("config-dojo-loader-catches")){try{req.getText(url,_25!=_26,_ee);}catch(e){_34(_44,_f("xhrInjectFailed",[_eb,e]));}}else{req.getText(url,_25!=_26,_ee);}return;}}}req.trace("loader-inject",["script",_eb.mid,url]);_7b=_eb;req.injectUrl(_3f(url),_ed,_eb);_7b=0;},_f3=function(_f4,_f5,def){req.trace("loader-define-module",[_f4.mid,_f5]);if(0&&_f4.plugin&&_f4.plugin.isCombo){_f4.result=_6(def)?def():def;_33(_f4);_35(_f4);return _f4;}var mid=_f4.mid;if(_f4.injected===_21){_34(_44,_f("multipleDefine",_f4));return _f4;}_c(_f4,{deps:_f5,def:def,cjs:{id:_f4.mid,uri:_f4.url,exports:(_f4.result={}),setExports:function(_f6){_f4.cjs.exports=_f6;},config:function(){return _f4.config;}}});for(var i=0;i<_f5.length;i++){_f5[i]=_31(_f5[i],_f4);}if(1&&_25&&!_8c[mid]){_75(_f4);_30.push(_f4);_7a();}_33(_f4);if(!_6(def)&&!_f5.length){_f4.result=def;_35(_f4);}return _f4;},_79=function(_f7,_f8){var _f9=[],_fa,_fb;while(_8b.length){_fb=_8b.shift();_f8&&(_fb[0]=_f8.shift());_fa=(_fb[0]&&_31(_fb[0]))||_f7;_f9.push([_fa,_fb[1],_fb[2]]);}_56(_f7);_9(_f9,function(_fc){_75(_f3.apply(null,_fc));});};}var _fd=0,_91=_3,_8f=_3;if(1){_91=function(){_fd&&clearTimeout(_fd);_fd=0;},_8f=function(){_91();if(req.waitms){_fd=window.setTimeout(function(){_91();_34(_44,_f("timeout",_8c));},req.waitms);}};}if(1){has.add("ie-event-behavior",!!doc.attachEvent&&(typeof opera==="undefined"||opera.toString()!="[object Opera]"));}if(1&&(1||1)){var _fe=function(_ff,_100,_101,_102){if(!has("ie-event-behavior")){_ff.addEventListener(_100,_102,false);return function(){_ff.removeEventListener(_100,_102,false);};}else{_ff.attachEvent(_101,_102);return function(){_ff.detachEvent(_101,_102);};}},_103=_fe(window,"load","onload",function(){req.pageLoaded=1;doc.readyState!="complete"&&(doc.readyState="complete");_103();});if(1){var _104=doc.getElementsByTagName("script")[0],_105=_104.parentNode;req.injectUrl=function(url,_106,_107){var node=_107.node=doc.createElement("script"),_108=function(e){e=e||window.event;var node=e.target||e.srcElement;if(e.type==="load"||/complete|loaded/.test(node.readyState)){_109();_10a();_106&&_106();}},_109=_fe(node,"load","onreadystatechange",_108),_10a=_fe(node,"error","onerror",function(e){_109();_10a();_34(_44,_f("scriptError",[url,e]));});node.type="text/javascript";node.charset="utf-8";node.src=url;_105.insertBefore(node,_104);return node;};}}if(1){req.log=function(){try{for(var i=0;i<arguments.length;i++){}}catch(e){}};}else{req.log=_3;}if(0){var _10b=req.trace=function(_10c,args){if(_10b.on&&_10b.group[_10c]){_34("trace",[_10c,args]);for(var arg,dump=[],text="trace:"+_10c+(args.length?(":"+args[0]):""),i=1;i<args.length;){arg=args[i++];if(_7(arg)){text+=", "+arg;}else{dump.push(arg);}}req.log(text);dump.length&&dump.push(".");req.log.apply(req,dump);}};_c(_10b,{on:1,group:{},set:function(_10d,_10e){if(_7(_10d)){_10b.group[_10d]=_10e;}else{_c(_10b.group,_10d);}}});_10b.set(_c(_c(_c({},_2.trace),_1.trace),_55.trace));on("config",function(_10f){_10f.trace&&_10b.set(_10f.trace);});}else{req.trace=_3;}var def=function(mid,_110,_111){var _112=arguments.length,_113=["require","exports","module"],args=[0,mid,_110];if(_112==1){args=[0,(_6(mid)?_113:[]),mid];}else{if(_112==2&&_7(mid)){args=[mid,(_6(_110)?_113:[]),_110];}else{if(_112==3){args=[mid,_110,_111];}}}if(0&&args[1]===_113){args[2].toString().replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,"").replace(/require\(["']([\w\!\-_\.\/]+)["']\)/g,function(_114,dep){args[1].push(dep);});}req.trace("loader-define",args.slice(0,2));var _115=args[0]&&_31(args[0]),_116;if(_115&&!_8c[_115.mid]){_75(_f3(_115,args[1],args[2]));}else{if(!has("ie-event-behavior")||!1||_e8){_8b.push(args);}else{_115=_115||_7b;if(!_115){for(mid in _8c){_116=_2f[mid];if(_116&&_116.node&&_116.node.readyState==="interactive"){_115=_116;break;}}if(0&&!_115){for(var i=0;i<_73.length;i++){_115=_73[i];if(_115.node&&_115.node.readyState==="interactive"){break;}_115=0;}}}if(0&&_8(_115)){_75(_f3(_31(_115.shift()),args[1],args[2]));if(!_115.length){_73.splice(i,1);}}else{if(_115){_56(_115);_75(_f3(_115,args[1],args[2]));}else{_34(_44,_f("ieDefineFailed",args[0]));}}_7a();}}};def.amd={vendor:"dojotoolkit.org"};if(0){req.def=def;}_c(_c(req,_2.loaderPatch),_1.loaderPatch);on(_44,function(arg){try{console.error(arg);if(arg instanceof Error){for(var p in arg){}}}catch(e){}});_c(req,{uid:uid,cache:_52,packs:_4f});if(0){_c(req,{paths:_4d,aliases:_4c,modules:_2f,legacyMode:_25,execQ:_30,defQ:_8b,waiting:_8c,packs:_4f,mapProgs:_50,pathsMapProg:_4e,listenerQueues:_43,computeMapProg:_5e,runMapProg:_93,compactPath:_95,getModuleInfo:_9b});}if(_17.define){if(1){_34(_44,_f("defineAlreadyDefined",0));}return;}else{_17.define=def;_17.require=req;if(0){require=req;}}if(0&&req.combo&&req.combo.plugins){var _117=req.combo.plugins,_118;for(_118 in _117){_c(_c(_31(_118),_117[_118]),{isCombo:1,executed:"executed",load:1});}}if(1){var _119=_55.deps||_1.deps||_2.deps,_11a=_55.callback||_1.callback||_2.callback;req.boot=(_119||_11a)?[_119||[],_11a]:0;}if(!1){!req.async&&req(["dojo"]);req.boot&&req.apply(null,req.boot);}})(this.dojoConfig||this.djConfig||this.require||{},{async:0,hasCache:{"config-selectorEngine":"acme","config-tlmSiblingOfDojo":1,"dojo-built":1,"dojo-loader":1,dom:1,"host-browser":1},packages:[{location:"../dijit",name:"dijit"},{location:"../dojox",name:"dojox"},{location:".",name:"dojo"}]});require({cache:{"dojo/_base/fx":function(){define(["./kernel","./config","./lang","../Evented","./Color","./connect","./sniff","../dom","../dom-style"],function(dojo,_11b,lang,_11c,_11d,_11e,has,dom,_11f){var _120=lang.mixin;var _121={};var _122=_121._Line=function(_123,end){this.start=_123;this.end=end;};_122.prototype.getValue=function(n){return ((this.end-this.start)*n)+this.start;};var _124=_121.Animation=function(args){_120(this,args);if(lang.isArray(this.curve)){this.curve=new _122(this.curve[0],this.curve[1]);}};_124.prototype=new _11c();lang.extend(_124,{duration:350,repeat:0,rate:20,_percent:0,_startRepeatCount:0,_getStep:function(){var _125=this._percent,_126=this.easing;return _126?_126(_125):_125;},_fire:function(evt,args){var a=args||[];if(this[evt]){if(_11b.debugAtAllCosts){this[evt].apply(this,a);}else{try{this[evt].apply(this,a);}catch(e){console.error("exception in animation handler for:",evt);console.error(e);}}}return this;},play:function(_127,_128){var _129=this;if(_129._delayTimer){_129._clearTimer();}if(_128){_129._stopTimer();_129._active=_129._paused=false;_129._percent=0;}else{if(_129._active&&!_129._paused){return _129;}}_129._fire("beforeBegin",[_129.node]);var de=_127||_129.delay,_12a=lang.hitch(_129,"_play",_128);if(de>0){_129._delayTimer=setTimeout(_12a,de);return _129;}_12a();return _129;},_play:function(_12b){var _12c=this;if(_12c._delayTimer){_12c._clearTimer();}_12c._startTime=new Date().valueOf();if(_12c._paused){_12c._startTime-=_12c.duration*_12c._percent;}_12c._active=true;_12c._paused=false;var _12d=_12c.curve.getValue(_12c._getStep());if(!_12c._percent){if(!_12c._startRepeatCount){_12c._startRepeatCount=_12c.repeat;}_12c._fire("onBegin",[_12d]);}_12c._fire("onPlay",[_12d]);_12c._cycle();return _12c;},pause:function(){var _12e=this;if(_12e._delayTimer){_12e._clearTimer();}_12e._stopTimer();if(!_12e._active){return _12e;}_12e._paused=true;_12e._fire("onPause",[_12e.curve.getValue(_12e._getStep())]);return _12e;},gotoPercent:function(_12f,_130){var _131=this;_131._stopTimer();_131._active=_131._paused=true;_131._percent=_12f;if(_130){_131.play();}return _131;},stop:function(_132){var _133=this;if(_133._delayTimer){_133._clearTimer();}if(!_133._timer){return _133;}_133._stopTimer();if(_132){_133._percent=1;}_133._fire("onStop",[_133.curve.getValue(_133._getStep())]);_133._active=_133._paused=false;return _133;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){var _134=this;if(_134._active){var curr=new Date().valueOf();var step=_134.duration===0?1:(curr-_134._startTime)/(_134.duration);if(step>=1){step=1;}_134._percent=step;if(_134.easing){step=_134.easing(step);}_134._fire("onAnimate",[_134.curve.getValue(step)]);if(_134._percent<1){_134._startTimer();}else{_134._active=false;if(_134.repeat>0){_134.repeat--;_134.play(null,true);}else{if(_134.repeat==-1){_134.play(null,true);}else{if(_134._startRepeatCount){_134.repeat=_134._startRepeatCount;_134._startRepeatCount=0;}}}_134._percent=0;_134._fire("onEnd",[_134.node]);!_134.repeat&&_134._stopTimer();}}return _134;},_clearTimer:function(){clearTimeout(this._delayTimer);delete this._delayTimer;}});var ctr=0,_135=null,_136={run:function(){}};lang.extend(_124,{_startTimer:function(){if(!this._timer){this._timer=_11e.connect(_136,"run",this,"_cycle");ctr++;}if(!_135){_135=setInterval(lang.hitch(_136,"run"),this.rate);}},_stopTimer:function(){if(this._timer){_11e.disconnect(this._timer);this._timer=null;ctr--;}if(ctr<=0){clearInterval(_135);_135=null;ctr=0;}}});var _137=has("ie")?function(node){var ns=node.style;if(!ns.width.length&&_11f.get(node,"width")=="auto"){ns.width="auto";}}:function(){};_121._fade=function(args){args.node=dom.byId(args.node);var _138=_120({properties:{}},args),_139=(_138.properties.opacity={});_139.start=!("start" in _138)?function(){return +_11f.get(_138.node,"opacity")||0;}:_138.start;_139.end=_138.end;var anim=_121.animateProperty(_138);_11e.connect(anim,"beforeBegin",lang.partial(_137,_138.node));return anim;};_121.fadeIn=function(args){return _121._fade(_120({end:1},args));};_121.fadeOut=function(args){return _121._fade(_120({end:0},args));};_121._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _13a=function(_13b){this._properties=_13b;for(var p in _13b){var prop=_13b[p];if(prop.start instanceof _11d){prop.tempColor=new _11d();}}};_13a.prototype.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p],_13c=prop.start;if(_13c instanceof _11d){ret[p]=_11d.blendColors(_13c,prop.end,r,prop.tempColor).toCss();}else{if(!lang.isArray(_13c)){ret[p]=((prop.end-_13c)*r)+_13c+(p!="opacity"?prop.units||"px":0);}}}return ret;};_121.animateProperty=function(args){var n=args.node=dom.byId(args.node);if(!args.easing){args.easing=dojo._defaultEasing;}var anim=new _124(args);_11e.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){if(p=="width"||p=="height"){this.node.display="block";}var prop=this.properties[p];if(lang.isFunction(prop)){prop=prop(n);}prop=pm[p]=_120({},(lang.isObject(prop)?prop:{end:prop}));if(lang.isFunction(prop.start)){prop.start=prop.start(n);}if(lang.isFunction(prop.end)){prop.end=prop.end(n);}var _13d=(p.toLowerCase().indexOf("color")>=0);function _13e(node,p){var v={height:node.offsetHeight,width:node.offsetWidth}[p];if(v!==undefined){return v;}v=_11f.get(node,p);return (p=="opacity")?+v:(_13d?v:parseFloat(v));};if(!("end" in prop)){prop.end=_13e(n,p);}else{if(!("start" in prop)){prop.start=_13e(n,p);}}if(_13d){prop.start=new _11d(prop.start);prop.end=new _11d(prop.end);}else{prop.start=(p=="opacity")?+prop.start:parseFloat(prop.start);}}this.curve=new _13a(pm);});_11e.connect(anim,"onAnimate",lang.hitch(_11f,"set",anim.node));return anim;};_121.anim=function(node,_13f,_140,_141,_142,_143){return _121.animateProperty({node:node,duration:_140||_124.prototype.duration,properties:_13f,easing:_141,onEnd:_142}).play(_143||0);};if(1){_120(dojo,_121);dojo._Animation=_124;}return _121;});},"dojo/dom-form":function(){define(["./_base/lang","./dom","./io-query","./json"],function(lang,dom,ioq,json){function _144(obj,name,_145){if(_145===null){return;}var val=obj[name];if(typeof val=="string"){obj[name]=[val,_145];}else{if(lang.isArray(val)){val.push(_145);}else{obj[name]=_145;}}};var _146="file|submit|image|reset|button";var form={fieldToObject:function fieldToObject(_147){var ret=null;_147=dom.byId(_147);if(_147){var _148=_147.name,type=(_147.type||"").toLowerCase();if(_148&&type&&!_147.disabled){if(type=="radio"||type=="checkbox"){if(_147.checked){ret=_147.value;}}else{if(_147.multiple){ret=[];var _149=[_147.firstChild];while(_149.length){for(var node=_149.pop();node;node=node.nextSibling){if(node.nodeType==1&&node.tagName.toLowerCase()=="option"){if(node.selected){ret.push(node.value);}}else{if(node.nextSibling){_149.push(node.nextSibling);}if(node.firstChild){_149.push(node.firstChild);}break;}}}}else{ret=_147.value;}}}}return ret;},toObject:function formToObject(_14a){var ret={},_14b=dom.byId(_14a).elements;for(var i=0,l=_14b.length;i<l;++i){var item=_14b[i],_14c=item.name,type=(item.type||"").toLowerCase();if(_14c&&type&&_146.indexOf(type)<0&&!item.disabled){_144(ret,_14c,form.fieldToObject(item));if(type=="image"){ret[_14c+".x"]=ret[_14c+".y"]=ret[_14c].x=ret[_14c].y=0;}}}return ret;},toQuery:function formToQuery(_14d){return ioq.objectToQuery(form.toObject(_14d));},toJson:function formToJson(_14e,_14f){return json.stringify(form.toObject(_14e),null,_14f?4:0);}};return form;});},"dojo/i18n":function(){define(["./_base/kernel","require","./has","./_base/array","./_base/config","./_base/lang","./_base/xhr","./json","module"],function(dojo,_150,has,_151,_152,lang,xhr,json,_153){has.add("dojo-preload-i18n-Api",1);1||has.add("dojo-v1x-i18n-Api",1);var _154=dojo.i18n={},_155=/(^.*(^|\/)nls)(\/|$)([^\/]*)\/?([^\/]*)/,_156=function(root,_157,_158,_159){for(var _15a=[_158+_159],_15b=_157.split("-"),_15c="",i=0;i<_15b.length;i++){_15c+=(_15c?"-":"")+_15b[i];if(!root||root[_15c]){_15a.push(_158+_15c+"/"+_159);}}return _15a;},_15d={},_15e=function(_15f,_160,_161){_161=_161?_161.toLowerCase():dojo.locale;_15f=_15f.replace(/\./g,"/");_160=_160.replace(/\./g,"/");return (/root/i.test(_161))?(_15f+"/nls/"+_160):(_15f+"/nls/"+_161+"/"+_160);},_162=dojo.getL10nName=function(_163,_164,_165){return _163=_153.id+"!"+_15e(_163,_164,_165);},_166=function(_167,_168,_169,_16a,_16b,load){_167([_168],function(root){var _16c=lang.clone(root.root),_16d=_156(!root._v1x&&root,_16b,_169,_16a);_167(_16d,function(){for(var i=1;i<_16d.length;i++){_16c=lang.mixin(lang.clone(_16c),arguments[i]);}var _16e=_168+"/"+_16b;_15d[_16e]=_16c;load();});});},_16f=function(id,_170){return /^\./.test(id)?_170(id):id;},_171=function(_172){var list=_152.extraLocale||[];list=lang.isArray(list)?list:[list];list.push(_172);return list;},load=function(id,_173,load){if(has("dojo-preload-i18n-Api")){var _174=id.split("*"),_175=_174[1]=="preload";if(_175){if(!_15d[id]){_15d[id]=1;_176(_174[2],json.parse(_174[3]),1,_173);}load(1);}if(_175||_177(id,_173,load)){return;}}var _178=_155.exec(id),_179=_178[1]+"/",_17a=_178[5]||_178[4],_17b=_179+_17a,_17c=(_178[5]&&_178[4]),_17d=_17c||dojo.locale,_17e=_17b+"/"+_17d,_17f=_17c?[_17d]:_171(_17d),_180=_17f.length,_181=function(){if(!--_180){load(lang.delegate(_15d[_17e]));}};_151.forEach(_17f,function(_182){var _183=_17b+"/"+_182;if(has("dojo-preload-i18n-Api")){_184(_183);}if(!_15d[_183]){_166(_173,_17b,_179,_17a,_182,_181);}else{_181();}});};if(has("dojo-unit-tests")){var _185=_154.unitTests=[];}if(has("dojo-preload-i18n-Api")||1){var _186=_154.normalizeLocale=function(_187){var _188=_187?_187.toLowerCase():dojo.locale;return _188=="root"?"ROOT":_188;},isXd=function(mid,_189){return (1&&1)?_189.isXdUrl(_150.toUrl(mid+".js")):true;},_18a=0,_18b=[],_176=_154._preloadLocalizations=function(_18c,_18d,_18e,_18f){_18f=_18f||_150;function _190(mid,_191){if(isXd(mid,_18f)||_18e){_18f([mid],_191);}else{_19b([mid],_191,_18f);}};function _192(_193,func){var _194=_193.split("-");while(_194.length){if(func(_194.join("-"))){return;}_194.pop();}func("ROOT");};function _195(_196){_196=_186(_196);_192(_196,function(loc){if(_151.indexOf(_18d,loc)>=0){var mid=_18c.replace(/\./g,"/")+"_"+loc;_18a++;_190(mid,function(_197){for(var p in _197){_15d[_150.toAbsMid(p)+"/"+loc]=_197[p];}--_18a;while(!_18a&&_18b.length){load.apply(null,_18b.shift());}});return true;}return false;});};_195();_151.forEach(dojo.config.extraLocale,_195);},_177=function(id,_198,load){if(_18a){_18b.push([id,_198,load]);}return _18a;},_184=function(){};}if(1){var _199={},_19a=new Function("__bundle","__checkForLegacyModules","__mid","__amdValue","var define = function(mid, factory){define.called = 1; __amdValue.result = factory || mid;},"+"\t require = function(){define.called = 1;};"+"try{"+"define.called = 0;"+"eval(__bundle);"+"if(define.called==1)"+"return __amdValue;"+"if((__checkForLegacyModules = __checkForLegacyModules(__mid)))"+"return __checkForLegacyModules;"+"}catch(e){}"+"try{"+"return eval('('+__bundle+')');"+"}catch(e){"+"return e;"+"}"),_19b=function(deps,_19c,_19d){var _19e=[];_151.forEach(deps,function(mid){var url=_19d.toUrl(mid+".js");function load(text){var _19f=_19a(text,_184,mid,_199);if(_19f===_199){_19e.push(_15d[url]=_199.result);}else{if(_19f instanceof Error){console.error("failed to evaluate i18n bundle; url="+url,_19f);_19f={};}_19e.push(_15d[url]=(/nls\/[^\/]+\/[^\/]+$/.test(url)?_19f:{root:_19f,_v1x:1}));}};if(_15d[url]){_19e.push(_15d[url]);}else{var _1a0=_19d.syncLoadNls(mid);if(_1a0){_19e.push(_1a0);}else{if(!xhr){try{_19d.getText(url,true,load);}catch(e){_19e.push(_15d[url]={});}}else{xhr.get({url:url,sync:true,load:load,error:function(){_19e.push(_15d[url]={});}});}}}});_19c&&_19c.apply(null,_19e);};_184=function(_1a1){for(var _1a2,_1a3=_1a1.split("/"),_1a4=dojo.global[_1a3[0]],i=1;_1a4&&i<_1a3.length-1;_1a4=_1a4[_1a3[i++]]){}if(_1a4){_1a2=_1a4[_1a3[i]];if(!_1a2){_1a2=_1a4[_1a3[i].replace(/-/g,"_")];}if(_1a2){_15d[_1a1]=_1a2;}}return _1a2;};_154.getLocalization=function(_1a5,_1a6,_1a7){var _1a8,_1a9=_15e(_1a5,_1a6,_1a7);load(_1a9,(!isXd(_1a9,_150)?function(deps,_1aa){_19b(deps,_1aa,_150);}:_150),function(_1ab){_1a8=_1ab;});return _1a8;};if(has("dojo-unit-tests")){_185.push(function(doh){doh.register("tests.i18n.unit",function(t){var _1ac;_1ac=_19a("{prop:1}",_184,"nonsense",_199);t.is({prop:1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("({prop:1})",_184,"nonsense",_199);t.is({prop:1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("{'prop-x':1}",_184,"nonsense",_199);t.is({"prop-x":1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("({'prop-x':1})",_184,"nonsense",_199);t.is({"prop-x":1},_1ac);t.is(undefined,_1ac[1]);_1ac=_19a("define({'prop-x':1})",_184,"nonsense",_199);t.is(_199,_1ac);t.is({"prop-x":1},_199.result);_1ac=_19a("define('some/module', {'prop-x':1})",_184,"nonsense",_199);t.is(_199,_1ac);t.is({"prop-x":1},_199.result);_1ac=_19a("this is total nonsense and should throw an error",_184,"nonsense",_199);t.is(_1ac instanceof Error,true);});});}}return lang.mixin(_154,{dynamic:true,normalize:_16f,load:load,cache:_15d});});},"dojo/promise/tracer":function(){define(["../_base/lang","./Promise","../Evented"],function(lang,_1ad,_1ae){"use strict";var _1af=new _1ae;var emit=_1af.emit;_1af.emit=null;function _1b0(args){setTimeout(function(){emit.apply(_1af,args);},0);};_1ad.prototype.trace=function(){var args=lang._toArray(arguments);this.then(function(_1b1){_1b0(["resolved",_1b1].concat(args));},function(_1b2){_1b0(["rejected",_1b2].concat(args));},function(_1b3){_1b0(["progress",_1b3].concat(args));});return this;};_1ad.prototype.traceRejected=function(){var args=lang._toArray(arguments);this.otherwise(function(_1b4){_1b0(["rejected",_1b4].concat(args));});return this;};return _1af;});},"dojo/errors/RequestError":function(){define(["./create"],function(_1b5){return _1b5("RequestError",function(_1b6,_1b7){this.response=_1b7;});});},"dojo/_base/html":function(){define("dojo/_base/html",["./kernel","../dom","../dom-style","../dom-attr","../dom-prop","../dom-class","../dom-construct","../dom-geometry"],function(dojo,dom,_1b8,attr,prop,cls,ctr,geom){dojo.byId=dom.byId;dojo.isDescendant=dom.isDescendant;dojo.setSelectable=dom.setSelectable;dojo.getAttr=attr.get;dojo.setAttr=attr.set;dojo.hasAttr=attr.has;dojo.removeAttr=attr.remove;dojo.getNodeProp=attr.getNodeProp;dojo.attr=function(node,name,_1b9){if(arguments.length==2){return attr[typeof name=="string"?"get":"set"](node,name);}return attr.set(node,name,_1b9);};dojo.hasClass=cls.contains;dojo.addClass=cls.add;dojo.removeClass=cls.remove;dojo.toggleClass=cls.toggle;dojo.replaceClass=cls.replace;dojo._toDom=dojo.toDom=ctr.toDom;dojo.place=ctr.place;dojo.create=ctr.create;dojo.empty=function(node){ctr.empty(node);};dojo._destroyElement=dojo.destroy=function(node){ctr.destroy(node);};dojo._getPadExtents=dojo.getPadExtents=geom.getPadExtents;dojo._getBorderExtents=dojo.getBorderExtents=geom.getBorderExtents;dojo._getPadBorderExtents=dojo.getPadBorderExtents=geom.getPadBorderExtents;dojo._getMarginExtents=dojo.getMarginExtents=geom.getMarginExtents;dojo._getMarginSize=dojo.getMarginSize=geom.getMarginSize;dojo._getMarginBox=dojo.getMarginBox=geom.getMarginBox;dojo.setMarginBox=geom.setMarginBox;dojo._getContentBox=dojo.getContentBox=geom.getContentBox;dojo.setContentSize=geom.setContentSize;dojo._isBodyLtr=dojo.isBodyLtr=geom.isBodyLtr;dojo._docScroll=dojo.docScroll=geom.docScroll;dojo._getIeDocumentElementOffset=dojo.getIeDocumentElementOffset=geom.getIeDocumentElementOffset;dojo._fixIeBiDiScrollLeft=dojo.fixIeBiDiScrollLeft=geom.fixIeBiDiScrollLeft;dojo.position=geom.position;dojo.marginBox=function marginBox(node,box){return box?geom.setMarginBox(node,box):geom.getMarginBox(node);};dojo.contentBox=function contentBox(node,box){return box?geom.setContentSize(node,box):geom.getContentBox(node);};dojo.coords=function(node,_1ba){dojo.deprecated("dojo.coords()","Use dojo.position() or dojo.marginBox().");node=dom.byId(node);var s=_1b8.getComputedStyle(node),mb=geom.getMarginBox(node,s);var abs=geom.position(node,_1ba);mb.x=abs.x;mb.y=abs.y;return mb;};dojo.getProp=prop.get;dojo.setProp=prop.set;dojo.prop=function(node,name,_1bb){if(arguments.length==2){return prop[typeof name=="string"?"get":"set"](node,name);}return prop.set(node,name,_1bb);};dojo.getStyle=_1b8.get;dojo.setStyle=_1b8.set;dojo.getComputedStyle=_1b8.getComputedStyle;dojo.__toPixelValue=dojo.toPixelValue=_1b8.toPixelValue;dojo.style=function(node,name,_1bc){switch(arguments.length){case 1:return _1b8.get(node);case 2:return _1b8[typeof name=="string"?"get":"set"](node,name);}return _1b8.set(node,name,_1bc);};return dojo;});},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(has,_1bd,_1be,_1bf){var i,p,_1c0={},_1c1={},dojo={config:_1bd,global:this,dijit:_1c0,dojox:_1c1};var _1c2={dojo:["dojo",dojo],dijit:["dijit",_1c0],dojox:["dojox",_1c1]},_1c3=(_1be.map&&_1be.map[_1bf.id.match(/[^\/]+/)[0]]),item;for(p in _1c3){if(_1c2[p]){_1c2[p][0]=_1c3[p];}else{_1c2[p]=[_1c3[p],{}];}}for(p in _1c2){item=_1c2[p];item[1]._scopeName=item[0];if(!_1bd.noGlobals){this[item[0]]=item[1];}}dojo.scopeMap=_1c2;dojo.baseUrl=dojo.config.baseUrl=_1be.baseUrl;dojo.isAsync=!1||_1be.async;dojo.locale=_1bd.locale;var rev="$Rev: 29458 $".match(/\d+/);dojo.version={major:1,minor:8,patch:0,flag:"",revision:rev?+rev[0]:NaN,toString:function(){var v=dojo.version;return v.major+"."+v.minor+"."+v.patch+v.flag+" ("+v.revision+")";}};1||has.add("extend-dojo",1);(Function("d","d.eval = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}"))(dojo);if(0){dojo.exit=function(_1c4){quit(_1c4);};}else{dojo.exit=function(){};}1||has.add("dojo-guarantee-console",1);if(1){typeof console!="undefined"||(console={});var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var tn;i=0;while((tn=cn[i++])){if(!console[tn]){(function(){var tcn=tn+"";console[tcn]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(tcn+":");console["log"](a.join(" "));}:function(){};console[tcn]._fake=true;})();}}}has.add("dojo-debug-messages",!!_1bd.isDebug);dojo.deprecated=dojo.experimental=function(){};if(has("dojo-debug-messages")){dojo.deprecated=function(_1c5,_1c6,_1c7){var _1c8="DEPRECATED: "+_1c5;if(_1c6){_1c8+=" "+_1c6;}if(_1c7){_1c8+=" -- will be removed in version: "+_1c7;}console.warn(_1c8);};dojo.experimental=function(_1c9,_1ca){var _1cb="EXPERIMENTAL: "+_1c9+" -- APIs subject to change without notice.";if(_1ca){_1cb+=" "+_1ca;}console.warn(_1cb);};}1||has.add("dojo-modulePaths",1);if(1){if(_1bd.modulePaths){dojo.deprecated("dojo.modulePaths","use paths configuration");var _1cc={};for(p in _1bd.modulePaths){_1cc[p.replace(/\./g,"/")]=_1bd.modulePaths[p];}_1be({paths:_1cc});}}1||has.add("dojo-moduleUrl",1);if(1){dojo.moduleUrl=function(_1cd,url){dojo.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var _1ce=null;if(_1cd){_1ce=_1be.toUrl(_1cd.replace(/\./g,"/")+(url?("/"+url):"")+"/*.*").replace(/\/\*\.\*/,"")+(url?"":"/");}return _1ce;};}dojo._hasResource={};return dojo;});},"dojo/io-query":function(){define(["./_base/lang"],function(lang){var _1cf={};return {objectToQuery:function objectToQuery(map){var enc=encodeURIComponent,_1d0=[];for(var name in map){var _1d1=map[name];if(_1d1!=_1cf[name]){var _1d2=enc(name)+"=";if(lang.isArray(_1d1)){for(var i=0,l=_1d1.length;i<l;++i){_1d0.push(_1d2+enc(_1d1[i]));}}else{_1d0.push(_1d2+enc(_1d1));}}}return _1d0.join("&");},queryToObject:function queryToObject(str){var dec=decodeURIComponent,qp=str.split("&"),ret={},name,val;for(var i=0,l=qp.length,item;i<l;++i){item=qp[i];if(item.length){var s=item.indexOf("=");if(s<0){name=dec(item);val="";}else{name=dec(item.slice(0,s));val=dec(item.slice(s+1));}if(typeof ret[name]=="string"){ret[name]=[ret[name]];}if(lang.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}}return ret;}};});},"dojo/_base/Deferred":function(){define(["./kernel","../Deferred","../promise/Promise","../errors/CancelError","../has","./lang","../when"],function(dojo,_1d3,_1d4,_1d5,has,lang,when){var _1d6=function(){};var _1d7=Object.freeze||function(){};var _1d8=dojo.Deferred=function(_1d9){var _1da,_1db,_1dc,head,_1dd;var _1de=(this.promise=new _1d4());function _1df(_1e0){if(_1db){throw new Error("This deferred has already been resolved");}_1da=_1e0;_1db=true;_1e1();};function _1e1(){var _1e2;while(!_1e2&&_1dd){var _1e3=_1dd;_1dd=_1dd.next;if((_1e2=(_1e3.progress==_1d6))){_1db=false;}var func=(_1dc?_1e3.error:_1e3.resolved);if(has("config-useDeferredInstrumentation")){if(_1dc&&_1d3.instrumentRejected){_1d3.instrumentRejected(_1da,!!func);}}if(func){try{var _1e4=func(_1da);if(_1e4&&typeof _1e4.then==="function"){_1e4.then(lang.hitch(_1e3.deferred,"resolve"),lang.hitch(_1e3.deferred,"reject"),lang.hitch(_1e3.deferred,"progress"));continue;}var _1e5=_1e2&&_1e4===undefined;if(_1e2&&!_1e5){_1dc=_1e4 instanceof Error;}_1e3.deferred[_1e5&&_1dc?"reject":"resolve"](_1e5?_1da:_1e4);}catch(e){_1e3.deferred.reject(e);}}else{if(_1dc){_1e3.deferred.reject(_1da);}else{_1e3.deferred.resolve(_1da);}}}};this.resolve=this.callback=function(_1e6){this.fired=0;this.results=[_1e6,null];_1df(_1e6);};this.reject=this.errback=function(_1e7){_1dc=true;this.fired=1;if(has("config-useDeferredInstrumentation")){if(_1d3.instrumentRejected){_1d3.instrumentRejected(_1e7,!!_1dd);}}_1df(_1e7);this.results=[null,_1e7];};this.progress=function(_1e8){var _1e9=_1dd;while(_1e9){var _1ea=_1e9.progress;_1ea&&_1ea(_1e8);_1e9=_1e9.next;}};this.addCallbacks=function(_1eb,_1ec){this.then(_1eb,_1ec,_1d6);return this;};_1de.then=this.then=function(_1ed,_1ee,_1ef){var _1f0=_1ef==_1d6?this:new _1d8(_1de.cancel);var _1f1={resolved:_1ed,error:_1ee,progress:_1ef,deferred:_1f0};if(_1dd){head=head.next=_1f1;}else{_1dd=head=_1f1;}if(_1db){_1e1();}return _1f0.promise;};var _1f2=this;_1de.cancel=this.cancel=function(){if(!_1db){var _1f3=_1d9&&_1d9(_1f2);if(!_1db){if(!(_1f3 instanceof Error)){_1f3=new _1d5(_1f3);}_1f3.log=false;_1f2.reject(_1f3);}}};_1d7(_1de);};lang.extend(_1d8,{addCallback:function(_1f4){return this.addCallbacks(lang.hitch.apply(dojo,arguments));},addErrback:function(_1f5){return this.addCallbacks(null,lang.hitch.apply(dojo,arguments));},addBoth:function(_1f6){var _1f7=lang.hitch.apply(dojo,arguments);return this.addCallbacks(_1f7,_1f7);},fired:-1});_1d8.when=dojo.when=when;return _1d8;});},"dojo/NodeList-dom":function(){define(["./_base/kernel","./query","./_base/array","./_base/lang","./dom-class","./dom-construct","./dom-geometry","./dom-attr","./dom-style"],function(dojo,_1f8,_1f9,lang,_1fa,_1fb,_1fc,_1fd,_1fe){var _1ff=function(a){return a.length==1&&(typeof a[0]=="string");};var _200=function(node){var p=node.parentNode;if(p){p.removeChild(node);}};var _201=_1f8.NodeList,awc=_201._adaptWithCondition,aafe=_201._adaptAsForEach,aam=_201._adaptAsMap;function _202(_203){return function(node,name,_204){if(arguments.length==2){return _203[typeof name=="string"?"get":"set"](node,name);}return _203.set(node,name,_204);};};lang.extend(_201,{_normalize:function(_205,_206){var _207=_205.parse===true;if(typeof _205.template=="string"){var _208=_205.templateFunc||(dojo.string&&dojo.string.substitute);_205=_208?_208(_205.template,_205):_205;}var type=(typeof _205);if(type=="string"||type=="number"){_205=_1fb.toDom(_205,(_206&&_206.ownerDocument));if(_205.nodeType==11){_205=lang._toArray(_205.childNodes);}else{_205=[_205];}}else{if(!lang.isArrayLike(_205)){_205=[_205];}else{if(!lang.isArray(_205)){_205=lang._toArray(_205);}}}if(_207){_205._runParse=true;}return _205;},_cloneNode:function(node){return node.cloneNode(true);},_place:function(ary,_209,_20a,_20b){if(_209.nodeType!=1&&_20a=="only"){return;}var _20c=_209,_20d;var _20e=ary.length;for(var i=_20e-1;i>=0;i--){var node=(_20b?this._cloneNode(ary[i]):ary[i]);if(ary._runParse&&dojo.parser&&dojo.parser.parse){if(!_20d){_20d=_20c.ownerDocument.createElement("div");}_20d.appendChild(node);dojo.parser.parse(_20d);node=_20d.firstChild;while(_20d.firstChild){_20d.removeChild(_20d.firstChild);}}if(i==_20e-1){_1fb.place(node,_20c,_20a);}else{_20c.parentNode.insertBefore(node,_20c);}_20c=node;}},position:aam(_1fc.position),attr:awc(_202(_1fd),_1ff),style:awc(_202(_1fe),_1ff),addClass:aafe(_1fa.add),removeClass:aafe(_1fa.remove),toggleClass:aafe(_1fa.toggle),replaceClass:aafe(_1fa.replace),empty:aafe(_1fb.empty),removeAttr:aafe(_1fd.remove),marginBox:aam(_1fc.getMarginBox),place:function(_20f,_210){var item=_1f8(_20f)[0];return this.forEach(function(node){_1fb.place(node,item,_210);});},orphan:function(_211){return (_211?_1f8._filterResult(this,_211):this).forEach(_200);},adopt:function(_212,_213){return _1f8(_212).place(this[0],_213)._stash(this);},query:function(_214){if(!_214){return this;}var ret=new _201;this.map(function(node){_1f8(_214,node).forEach(function(_215){if(_215!==undefined){ret.push(_215);}});});return ret._stash(this);},filter:function(_216){var a=arguments,_217=this,_218=0;if(typeof _216=="string"){_217=_1f8._filterResult(this,a[0]);if(a.length==1){return _217._stash(this);}_218=1;}return this._wrap(_1f9.filter(_217,a[_218],a[_218+1]),this);},addContent:function(_219,_21a){_219=this._normalize(_219,this[0]);for(var i=0,node;(node=this[i]);i++){this._place(_219,node,_21a,i>0);}return this;}});return _201;});},"dojo/query":function(){define(["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(dojo,has,dom,on,_21b,lang,_21c,_21d){"use strict";has.add("array-extensible",function(){return lang.delegate([],{length:1}).length==1&&!has("bug-for-in-skips-shadowed");});var ap=Array.prototype,aps=ap.slice,apc=ap.concat,_21e=_21b.forEach;var tnl=function(a,_21f,_220){var _221=new (_220||this._NodeListCtor||nl)(a);return _21f?_221._stash(_21f):_221;};var _222=function(f,a,o){a=[0].concat(aps.call(a,0));o=o||dojo.global;return function(node){a[0]=node;return f.apply(o,a);};};var _223=function(f,o){return function(){this.forEach(_222(f,arguments,o));return this;};};var _224=function(f,o){return function(){return this.map(_222(f,arguments,o));};};var _225=function(f,o){return function(){return this.filter(_222(f,arguments,o));};};var _226=function(f,g,o){return function(){var a=arguments,body=_222(f,a,o);if(g.call(o||dojo.global,a)){return this.map(body);}this.forEach(body);return this;};};var _227=function(_228){var _229=this instanceof nl&&has("array-extensible");if(typeof _228=="number"){_228=Array(_228);}var _22a=(_228&&"length" in _228)?_228:arguments;if(_229||!_22a.sort){var _22b=_229?this:[],l=_22b.length=_22a.length;for(var i=0;i<l;i++){_22b[i]=_22a[i];}if(_229){return _22b;}_22a=_22b;}lang._mixin(_22a,nlp);_22a._NodeListCtor=function(_22c){return nl(_22c);};return _22a;};var nl=_227,nlp=nl.prototype=has("array-extensible")?[]:{};nl._wrap=nlp._wrap=tnl;nl._adaptAsMap=_224;nl._adaptAsForEach=_223;nl._adaptAsFilter=_225;nl._adaptWithCondition=_226;_21e(["slice","splice"],function(name){var f=ap[name];nlp[name]=function(){return this._wrap(f.apply(this,arguments),name=="slice"?this:null);};});_21e(["indexOf","lastIndexOf","every","some"],function(name){var f=_21b[name];nlp[name]=function(){return f.apply(dojo,[this].concat(aps.call(arguments,0)));};});lang.extend(_227,{constructor:nl,_NodeListCtor:nl,toString:function(){return this.join(",");},_stash:function(_22d){this._parent=_22d;return this;},on:function(_22e,_22f){var _230=this.map(function(node){return on(node,_22e,_22f);});_230.remove=function(){for(var i=0;i<_230.length;i++){_230[i].remove();}};return _230;},end:function(){if(this._parent){return this._parent;}else{return new this._NodeListCtor(0);}},concat:function(item){var t=aps.call(this,0),m=_21b.map(arguments,function(a){return aps.call(a,0);});return this._wrap(apc.apply(t,m),this);},map:function(func,obj){return this._wrap(_21b.map(this,func,obj),this);},forEach:function(_231,_232){_21e(this,_231,_232);return this;},filter:function(_233){var a=arguments,_234=this,_235=0;if(typeof _233=="string"){_234=_236._filterResult(this,a[0]);if(a.length==1){return _234._stash(this);}_235=1;}return this._wrap(_21b.filter(_234,a[_235],a[_235+1]),this);},instantiate:function(_237,_238){var c=lang.isFunction(_237)?_237:lang.getObject(_237);_238=_238||{};return this.forEach(function(node){new c(_238,node);});},at:function(){var t=new this._NodeListCtor(0);_21e(arguments,function(i){if(i<0){i=this.length+i;}if(this[i]){t.push(this[i]);}},this);return t._stash(this);}});function _239(_23a,_23b){var _23c=function(_23d,root){if(typeof root=="string"){root=dom.byId(root);if(!root){return new _23b([]);}}var _23e=typeof _23d=="string"?_23a(_23d,root):_23d?_23d.orphan?_23d:[_23d]:[];if(_23e.orphan){return _23e;}return new _23b(_23e);};_23c.matches=_23a.match||function(node,_23f,root){return _23c.filter([node],_23f,root).length>0;};_23c.filter=_23a.filter||function(_240,_241,root){return _23c(_241,root).filter(function(node){return _21b.indexOf(_240,node)>-1;});};if(typeof _23a!="function"){var _242=_23a.search;_23a=function(_243,root){return _242(root||document,_243);};}return _23c;};var _236=_239(_21d,_227);dojo.query=_239(_21d,function(_244){return _227(_244);});_236.load=function(id,_245,_246){_21c.load(id,_245,function(_247){_246(_239(_247,_227));});};dojo._filterQueryResult=_236._filterResult=function(_248,_249,root){return new _227(_236.filter(_248,_249,root));};dojo.NodeList=_236.NodeList=_227;return _236;});},"dojo/has":function(){define(["require","module"],function(_24a,_24b){var has=_24a.has||function(){};if(!1){var _24c=typeof window!="undefined"&&typeof location!="undefined"&&typeof document!="undefined"&&window.location==location&&window.document==document,_24d=this,doc=_24c&&document,_24e=doc&&doc.createElement("DiV"),_24f=(_24b.config&&_24b.config())||{};has=function(name){return typeof _24f[name]=="function"?(_24f[name]=_24f[name](_24d,doc,_24e)):_24f[name];};has.cache=_24f;has.add=function(name,test,now,_250){(typeof _24f[name]=="undefined"||_250)&&(_24f[name]=test);return now&&has(name);};1||has.add("host-browser",_24c);1||has.add("dom",_24c);1||has.add("dojo-dom-ready-api",1);1||has.add("dojo-sniff",1);}if(1){has.add("dom-addeventlistener",!!document.addEventListener);has.add("touch","ontouchstart" in document);has.add("device-width",screen.availWidth||innerWidth);var form=document.createElement("form");has.add("dom-attributes-explicit",form.attributes.length==0);has.add("dom-attributes-specified-flag",form.attributes.length>0&&form.attributes.length<40);}has.clearElement=function(_251){_251.innerHTML="";return _251;};has.normalize=function(id,_252){var _253=id.match(/[\?:]|[^:\?]*/g),i=0,get=function(skip){var term=_253[i++];if(term==":"){return 0;}else{if(_253[i++]=="?"){if(!skip&&has(term)){return get();}else{get(true);return get(skip);}}return term||0;}};id=get();return id&&_252(id);};has.load=function(id,_254,_255){if(id){_254([id],_255);}else{_255();}};return has;});},"dojo/_base/loader":function(){define(["./kernel","../has","require","module","./json","./lang","./array"],function(dojo,has,_256,_257,json,lang,_258){if(!1){console.error("cannot load the Dojo v1.x loader with a foreign loader");return 0;}1||has.add("dojo-fast-sync-require",1);var _259=function(id){return {src:_257.id,id:id};},_25a=function(name){return name.replace(/\./g,"/");},_25b=/\/\/>>built/,_25c=[],_25d=[],_25e=function(mid,_25f,_260){_25c.push(_260);_258.forEach(mid.split(","),function(mid){var _261=_262(mid,_25f.module);_25d.push(_261);_263(_261);});_264();},_264=(1?function(){var _265,mid;for(mid in _266){_265=_266[mid];if(_265.noReqPluginCheck===undefined){_265.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(!_265.executed&&!_265.noReqPluginCheck&&_265.injected==_267){return;}}_268(function(){var _269=_25c;_25c=[];_258.forEach(_269,function(cb){cb(1);});});}:(function(){var _26a,_26b=function(m){_26a[m.mid]=1;for(var t,_26c,deps=m.deps||[],i=0;i<deps.length;i++){_26c=deps[i];if(!(t=_26a[_26c.mid])){if(t===0||!_26b(_26c)){_26a[m.mid]=0;return false;}}}return true;};return function(){var _26d,mid;_26a={};for(mid in _266){_26d=_266[mid];if(_26d.executed||_26d.noReqPluginCheck){_26a[mid]=1;}else{if(_26d.noReqPluginCheck!==0){_26d.noReqPluginCheck=/loadInit\!/.test(mid)||/require\!/.test(mid)?1:0;}if(_26d.noReqPluginCheck){_26a[mid]=1;}else{if(_26d.injected!==_299){_26a[mid]=0;}}}}for(var t,i=0,end=_25d.length;i<end;i++){_26d=_25d[i];if(!(t=_26a[_26d.mid])){if(t===0||!_26b(_26d)){return;}}}_268(function(){var _26e=_25c;_25c=[];_258.forEach(_26e,function(cb){cb(1);});});};})()),_26f=function(mid,_270,_271){_270([mid],function(_272){_270(_272.names,function(){for(var _273="",args=[],i=0;i<arguments.length;i++){_273+="var "+_272.names[i]+"= arguments["+i+"]; ";args.push(arguments[i]);}eval(_273);var _274=_270.module,_275=[],_276,_277={provide:function(_278){_278=_25a(_278);var _279=_262(_278,_274);if(_279!==_274){_29f(_279);}},require:function(_27a,_27b){_27a=_25a(_27a);_27b&&(_262(_27a,_274).result=_29a);_275.push(_27a);},requireLocalization:function(_27c,_27d,_27e){if(!_276){_276=["dojo/i18n"];}_27e=(_27e||dojo.locale).toLowerCase();_27c=_25a(_27c)+"/nls/"+(/root/i.test(_27e)?"":_27e+"/")+_25a(_27d);if(_262(_27c,_274).isXd){_276.push("dojo/i18n!"+_27c);}},loadInit:function(f){f();}},hold={},p;try{for(p in _277){hold[p]=dojo[p];dojo[p]=_277[p];}_272.def.apply(null,args);}catch(e){_27f("error",[_259("failedDojoLoadInit"),e]);}finally{for(p in _277){dojo[p]=hold[p];}}if(_276){_275=_275.concat(_276);}if(_275.length){_25e(_275.join(","),_270,_271);}else{_271();}});});},_280=function(text,_281,_282){var _283=/\(|\)/g,_284=1,_285;_283.lastIndex=_281;while((_285=_283.exec(text))){if(_285[0]==")"){_284-=1;}else{_284+=1;}if(_284==0){break;}}if(_284!=0){throw "unmatched paren around character "+_283.lastIndex+" in: "+text;}return [dojo.trim(text.substring(_282,_283.lastIndex))+";\n",_283.lastIndex];},_286=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,_287=/(^|\s)dojo\.(loadInit|require|provide|requireLocalization|requireIf|requireAfterIf|platformRequire)\s*\(/mg,_288=/(^|\s)(require|define)\s*\(/m,_289=function(text,_28a){var _28b,_28c,_28d,_28e,_28f=[],_290=[],_291=[];_28a=_28a||text.replace(_286,function(_292){_287.lastIndex=_288.lastIndex=0;return (_287.test(_292)||_288.test(_292))?"":_292;});while((_28b=_287.exec(_28a))){_28c=_287.lastIndex;_28d=_28c-_28b[0].length;_28e=_280(_28a,_28c,_28d);if(_28b[2]=="loadInit"){_28f.push(_28e[0]);}else{_290.push(_28e[0]);}_287.lastIndex=_28e[1];}_291=_28f.concat(_290);if(_291.length||!_288.test(_28a)){return [text.replace(/(^|\s)dojo\.loadInit\s*\(/g,"\n0 && dojo.loadInit("),_291.join(""),_291];}else{return 0;}},_293=function(_294,text){var _295,id,_296=[],_297=[];if(_25b.test(text)||!(_295=_289(text))){return 0;}id=_294.mid+"-*loadInit";for(var p in _262("dojo",_294).result.scopeMap){_296.push(p);_297.push("\""+p+"\"");}return "// xdomain rewrite of "+_294.mid+"\n"+"define('"+id+"',{\n"+"\tnames:"+dojo.toJson(_296)+",\n"+"\tdef:function("+_296.join(",")+"){"+_295[1]+"}"+"});\n\n"+"define("+dojo.toJson(_296.concat(["dojo/loadInit!"+id]))+", function("+_296.join(",")+"){\n"+_295[0]+"});";},_298=_256.initSyncLoader(_25e,_264,_293),sync=_298.sync,_267=_298.requested,_299=_298.arrived,_29a=_298.nonmodule,_29b=_298.executing,_29c=_298.executed,_29d=_298.syncExecStack,_266=_298.modules,_29e=_298.execQ,_262=_298.getModule,_263=_298.injectModule,_29f=_298.setArrived,_27f=_298.signal,_2a0=_298.finishExec,_2a1=_298.execModule,_2a2=_298.getLegacyMode,_268=_298.guardCheckComplete;_25e=_298.dojoRequirePlugin;dojo.provide=function(mid){var _2a3=_29d[0],_2a4=lang.mixin(_262(_25a(mid),_256.module),{executed:_29b,result:lang.getObject(mid,true)});_29f(_2a4);if(_2a3){(_2a3.provides||(_2a3.provides=[])).push(function(){_2a4.result=lang.getObject(mid);delete _2a4.provides;_2a4.executed!==_29c&&_2a0(_2a4);});}return _2a4.result;};has.add("config-publishRequireResult",1,0,0);dojo.require=function(_2a5,_2a6){function _2a7(mid,_2a8){var _2a9=_262(_25a(mid),_256.module);if(_29d.length&&_29d[0].finish){_29d[0].finish.push(mid);return undefined;}if(_2a9.executed){return _2a9.result;}_2a8&&(_2a9.result=_29a);var _2aa=_2a2();_263(_2a9);_2aa=_2a2();if(_2a9.executed!==_29c&&_2a9.injected===_299){_298.guardCheckComplete(function(){_2a1(_2a9);});}if(_2a9.executed){return _2a9.result;}if(_2aa==sync){if(_2a9.cjs){_29e.unshift(_2a9);}else{_29d.length&&(_29d[0].finish=[mid]);}}else{_29e.push(_2a9);}return undefined;};var _2ab=_2a7(_2a5,_2a6);if(has("config-publishRequireResult")&&!lang.exists(_2a5)&&_2ab!==undefined){lang.setObject(_2a5,_2ab);}return _2ab;};dojo.loadInit=function(f){f();};dojo.registerModulePath=function(_2ac,_2ad){var _2ae={};_2ae[_2ac.replace(/\./g,"/")]=_2ad;_256({paths:_2ae});};dojo.platformRequire=function(_2af){var _2b0=(_2af.common||[]).concat(_2af[dojo._name]||_2af["default"]||[]),temp;while(_2b0.length){if(lang.isArray(temp=_2b0.shift())){dojo.require.apply(dojo,temp);}else{dojo.require(temp);}}};dojo.requireIf=dojo.requireAfterIf=function(_2b1,_2b2,_2b3){if(_2b1){dojo.require(_2b2,_2b3);}};dojo.requireLocalization=function(_2b4,_2b5,_2b6){_256(["../i18n"],function(i18n){i18n.getLocalization(_2b4,_2b5,_2b6);});};return {extractLegacyApiApplications:_289,require:_25e,loadInit:_26f};});},"dojo/json":function(){define(["./has"],function(has){"use strict";var _2b7=typeof JSON!="undefined";has.add("json-parse",_2b7);has.add("json-stringify",_2b7&&JSON.stringify({a:0},function(k,v){return v||1;})=="{\"a\":1}");if(has("json-stringify")){return JSON;}else{var _2b8=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};return {parse:has("json-parse")?JSON.parse:function(str,_2b9){if(_2b9&&!/^([\s\[\{]*(?:"(?:\\.|[^"])+"|-?\d[\d\.]*(?:[Ee][+-]?\d+)?|null|true|false|)[\s\]\}]*(?:,|:|$))+$/.test(str)){throw new SyntaxError("Invalid characters in JSON");}return eval("("+str+")");},stringify:function(_2ba,_2bb,_2bc){var _2bd;if(typeof _2bb=="string"){_2bc=_2bb;_2bb=null;}function _2be(it,_2bf,key){if(_2bb){it=_2bb(key,it);}var val,_2c0=typeof it;if(_2c0=="number"){return isFinite(it)?it+"":"null";}if(_2c0=="boolean"){return it+"";}if(it===null){return "null";}if(typeof it=="string"){return _2b8(it);}if(_2c0=="function"||_2c0=="undefined"){return _2bd;}if(typeof it.toJSON=="function"){return _2be(it.toJSON(key),_2bf,key);}if(it instanceof Date){return "\"{FullYear}-{Month+}-{Date}T{Hours}:{Minutes}:{Seconds}Z\"".replace(/\{(\w+)(\+)?\}/g,function(t,prop,plus){var num=it["getUTC"+prop]()+(plus?1:0);return num<10?"0"+num:num;});}if(it.valueOf()!==it){return _2be(it.valueOf(),_2bf,key);}var _2c1=_2bc?(_2bf+_2bc):"";var sep=_2bc?" ":"";var _2c2=_2bc?"\n":"";if(it instanceof Array){var itl=it.length,res=[];for(key=0;key<itl;key++){var obj=it[key];val=_2be(obj,_2c1,key);if(typeof val!="string"){val="null";}res.push(_2c2+_2c1+val);}return "["+res.join(",")+_2c2+_2bf+"]";}var _2c3=[];for(key in it){var _2c4;if(it.hasOwnProperty(key)){if(typeof key=="number"){_2c4="\""+key+"\"";}else{if(typeof key=="string"){_2c4=_2b8(key);}else{continue;}}val=_2be(it[key],_2c1,key);if(typeof val!="string"){continue;}_2c3.push(_2c2+_2c1+_2c4+":"+sep+val);}}return "{"+_2c3.join(",")+_2c2+_2bf+"}";};return _2be(_2ba,"","");}};}});},"dojo/_base/declare":function(){define(["./kernel","../has","./lang"],function(dojo,has,lang){var mix=lang.mixin,op=Object.prototype,opts=op.toString,xtor=new Function,_2c5=0,_2c6="constructor";function err(msg,cls){throw new Error("declare"+(cls?" "+cls:"")+": "+msg);};function _2c7(_2c8,_2c9){var _2ca=[],_2cb=[{cls:0,refs:[]}],_2cc={},_2cd=1,l=_2c8.length,i=0,j,lin,base,top,_2ce,rec,name,refs;for(;i<l;++i){base=_2c8[i];if(!base){err("mixin #"+i+" is unknown. Did you use dojo.require to pull it in?",_2c9);}else{if(opts.call(base)!="[object Function]"){err("mixin #"+i+" is not a callable constructor.",_2c9);}}lin=base._meta?base._meta.bases:[base];top=0;for(j=lin.length-1;j>=0;--j){_2ce=lin[j].prototype;if(!_2ce.hasOwnProperty("declaredClass")){_2ce.declaredClass="uniqName_"+(_2c5++);}name=_2ce.declaredClass;if(!_2cc.hasOwnProperty(name)){_2cc[name]={count:0,refs:[],cls:lin[j]};++_2cd;}rec=_2cc[name];if(top&&top!==rec){rec.refs.push(top);++top.count;}top=rec;}++top.count;_2cb[0].refs.push(top);}while(_2cb.length){top=_2cb.pop();_2ca.push(top.cls);--_2cd;while(refs=top.refs,refs.length==1){top=refs[0];if(!top||--top.count){top=0;break;}_2ca.push(top.cls);--_2cd;}if(top){for(i=0,l=refs.length;i<l;++i){top=refs[i];if(!--top.count){_2cb.push(top);}}}}if(_2cd){err("can't build consistent linearization",_2c9);}base=_2c8[0];_2ca[0]=base?base._meta&&base===_2ca[_2ca.length-base._meta.bases.length]?base._meta.bases.length:1:0;return _2ca;};function _2cf(args,a,f){var name,_2d0,_2d1,_2d2,meta,base,_2d3,opf,pos,_2d4=this._inherited=this._inherited||{};if(typeof args=="string"){name=args;args=a;a=f;}f=0;_2d2=args.callee;name=name||_2d2.nom;if(!name){err("can't deduce a name to call inherited()",this.declaredClass);}meta=this.constructor._meta;_2d1=meta.bases;pos=_2d4.p;if(name!=_2c6){if(_2d4.c!==_2d2){pos=0;base=_2d1[0];meta=base._meta;if(meta.hidden[name]!==_2d2){_2d0=meta.chains;if(_2d0&&typeof _2d0[name]=="string"){err("calling chained method with inherited: "+name,this.declaredClass);}do{meta=base._meta;_2d3=base.prototype;if(meta&&(_2d3[name]===_2d2&&_2d3.hasOwnProperty(name)||meta.hidden[name]===_2d2)){break;}}while(base=_2d1[++pos]);pos=base?pos:-1;}}base=_2d1[++pos];if(base){_2d3=base.prototype;if(base._meta&&_2d3.hasOwnProperty(name)){f=_2d3[name];}else{opf=op[name];do{_2d3=base.prototype;f=_2d3[name];if(f&&(base._meta?_2d3.hasOwnProperty(name):f!==opf)){break;}}while(base=_2d1[++pos]);}}f=base&&f||op[name];}else{if(_2d4.c!==_2d2){pos=0;meta=_2d1[0]._meta;if(meta&&meta.ctor!==_2d2){_2d0=meta.chains;if(!_2d0||_2d0.constructor!=="manual"){err("calling chained constructor with inherited",this.declaredClass);}while(base=_2d1[++pos]){meta=base._meta;if(meta&&meta.ctor===_2d2){break;}}pos=base?pos:-1;}}while(base=_2d1[++pos]){meta=base._meta;f=meta?meta.ctor:base;if(f){break;}}f=base&&f;}_2d4.c=f;_2d4.p=pos;if(f){return a===true?f:f.apply(this,a||args);}};function _2d5(name,args){if(typeof name=="string"){return this.__inherited(name,args,true);}return this.__inherited(name,true);};function _2d6(args,a1,a2){var f=this.getInherited(args,a1);if(f){return f.apply(this,a2||a1||args);}};var _2d7=dojo.config.isDebug?_2d6:_2cf;function _2d8(cls){var _2d9=this.constructor._meta.bases;for(var i=0,l=_2d9.length;i<l;++i){if(_2d9[i]===cls){return true;}}return this instanceof cls;};function _2da(_2db,_2dc){for(var name in _2dc){if(name!=_2c6&&_2dc.hasOwnProperty(name)){_2db[name]=_2dc[name];}}if(has("bug-for-in-skips-shadowed")){for(var _2dd=lang._extraNames,i=_2dd.length;i;){name=_2dd[--i];if(name!=_2c6&&_2dc.hasOwnProperty(name)){_2db[name]=_2dc[name];}}}};function _2de(_2df,_2e0){var name,t;for(name in _2e0){t=_2e0[name];if((t!==op[name]||!(name in op))&&name!=_2c6){if(opts.call(t)=="[object Function]"){t.nom=name;}_2df[name]=t;}}if(has("bug-for-in-skips-shadowed")){for(var _2e1=lang._extraNames,i=_2e1.length;i;){name=_2e1[--i];t=_2e0[name];if((t!==op[name]||!(name in op))&&name!=_2c6){if(opts.call(t)=="[object Function]"){t.nom=name;}_2df[name]=t;}}}return _2df;};function _2e2(_2e3){_2e4.safeMixin(this.prototype,_2e3);return this;};function _2e5(_2e6){return _2e4([this].concat(_2e6));};function _2e7(_2e8,_2e9){return function(){var a=arguments,args=a,a0=a[0],f,i,m,l=_2e8.length,_2ea;if(!(this instanceof a.callee)){return _2eb(a);}if(_2e9&&(a0&&a0.preamble||this.preamble)){_2ea=new Array(_2e8.length);_2ea[0]=a;for(i=0;;){a0=a[0];if(a0){f=a0.preamble;if(f){a=f.apply(this,a)||a;}}f=_2e8[i].prototype;f=f.hasOwnProperty("preamble")&&f.preamble;if(f){a=f.apply(this,a)||a;}if(++i==l){break;}_2ea[i]=a;}}for(i=l-1;i>=0;--i){f=_2e8[i];m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,_2ea?_2ea[i]:a);}}f=this.postscript;if(f){f.apply(this,args);}};};function _2ec(ctor,_2ed){return function(){var a=arguments,t=a,a0=a[0],f;if(!(this instanceof a.callee)){return _2eb(a);}if(_2ed){if(a0){f=a0.preamble;if(f){t=f.apply(this,t)||t;}}f=this.preamble;if(f){f.apply(this,t);}}if(ctor){ctor.apply(this,a);}f=this.postscript;if(f){f.apply(this,a);}};};function _2ee(_2ef){return function(){var a=arguments,i=0,f,m;if(!(this instanceof a.callee)){return _2eb(a);}for(;f=_2ef[i];++i){m=f._meta;f=m?m.ctor:f;if(f){f.apply(this,a);break;}}f=this.postscript;if(f){f.apply(this,a);}};};function _2f0(name,_2f1,_2f2){return function(){var b,m,f,i=0,step=1;if(_2f2){i=_2f1.length-1;step=-1;}for(;b=_2f1[i];i+=step){m=b._meta;f=(m?m.hidden:b.prototype)[name];if(f){f.apply(this,arguments);}}};};function _2f3(ctor){xtor.prototype=ctor.prototype;var t=new xtor;xtor.prototype=null;return t;};function _2eb(args){var ctor=args.callee,t=_2f3(ctor);ctor.apply(t,args);return t;};function _2e4(_2f4,_2f5,_2f6){if(typeof _2f4!="string"){_2f6=_2f5;_2f5=_2f4;_2f4="";}_2f6=_2f6||{};var _2f7,i,t,ctor,name,_2f8,_2f9,_2fa=1,_2fb=_2f5;if(opts.call(_2f5)=="[object Array]"){_2f8=_2c7(_2f5,_2f4);t=_2f8[0];_2fa=_2f8.length-t;_2f5=_2f8[_2fa];}else{_2f8=[0];if(_2f5){if(opts.call(_2f5)=="[object Function]"){t=_2f5._meta;_2f8=_2f8.concat(t?t.bases:_2f5);}else{err("base class is not a callable constructor.",_2f4);}}else{if(_2f5!==null){err("unknown base class. Did you use dojo.require to pull it in?",_2f4);}}}if(_2f5){for(i=_2fa-1;;--i){_2f7=_2f3(_2f5);if(!i){break;}t=_2f8[i];(t._meta?_2da:mix)(_2f7,t.prototype);ctor=new Function;ctor.superclass=_2f5;ctor.prototype=_2f7;_2f5=_2f7.constructor=ctor;}}else{_2f7={};}_2e4.safeMixin(_2f7,_2f6);t=_2f6.constructor;if(t!==op.constructor){t.nom=_2c6;_2f7.constructor=t;}for(i=_2fa-1;i;--i){t=_2f8[i]._meta;if(t&&t.chains){_2f9=mix(_2f9||{},t.chains);}}if(_2f7["-chains-"]){_2f9=mix(_2f9||{},_2f7["-chains-"]);}t=!_2f9||!_2f9.hasOwnProperty(_2c6);_2f8[0]=ctor=(_2f9&&_2f9.constructor==="manual")?_2ee(_2f8):(_2f8.length==1?_2ec(_2f6.constructor,t):_2e7(_2f8,t));ctor._meta={bases:_2f8,hidden:_2f6,chains:_2f9,parents:_2fb,ctor:_2f6.constructor};ctor.superclass=_2f5&&_2f5.prototype;ctor.extend=_2e2;ctor.createSubclass=_2e5;ctor.prototype=_2f7;_2f7.constructor=ctor;_2f7.getInherited=_2d5;_2f7.isInstanceOf=_2d8;_2f7.inherited=_2d7;_2f7.__inherited=_2cf;if(_2f4){_2f7.declaredClass=_2f4;lang.setObject(_2f4,ctor);}if(_2f9){for(name in _2f9){if(_2f7[name]&&typeof _2f9[name]=="string"&&name!=_2c6){t=_2f7[name]=_2f0(name,_2f8,_2f9[name]==="after");t.nom=name;}}}return ctor;};dojo.safeMixin=_2e4.safeMixin=_2de;dojo.declare=_2e4;return _2e4;});},"dojo/dom":function(){define(["./sniff","./_base/lang","./_base/window"],function(has,lang,win){if(has("ie")<=7){try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}}var dom={};if(has("ie")){dom.byId=function(id,doc){if(typeof id!="string"){return id;}var _2fc=doc||win.doc,te=id&&_2fc.getElementById(id);if(te&&(te.attributes.id.value==id||te.id==id)){return te;}else{var eles=_2fc.all[id];if(!eles||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if((te.attributes&&te.attributes.id&&te.attributes.id.value==id)||te.id==id){return te;}}}};}else{dom.byId=function(id,doc){return ((typeof id=="string")?(doc||win.doc).getElementById(id):id)||null;};}dom.isDescendant=function(node,_2fd){try{node=dom.byId(node);_2fd=dom.byId(_2fd);while(node){if(node==_2fd){return true;}node=node.parentNode;}}catch(e){}return false;};dom.setSelectable=function(node,_2fe){node=dom.byId(node);if(has("mozilla")){node.style.MozUserSelect=_2fe?"":"none";}else{if(has("khtml")||has("webkit")){node.style.KhtmlUserSelect=_2fe?"auto":"none";}else{if(has("ie")){var v=(node.unselectable=_2fe?"":"on"),cs=node.getElementsByTagName("*"),i=0,l=cs.length;for(;i<l;++i){cs.item(i).unselectable=v;}}}}};return dom;});},"dojo/_base/browser":function(){if(require.has){require.has.add("config-selectorEngine","acme");}define(["../ready","./kernel","./connect","./unload","./window","./event","./html","./NodeList","../query","./xhr","./fx"],function(dojo){return dojo;});},"dojo/selector/acme":function(){define(["../dom","../sniff","../_base/array","../_base/lang","../_base/window"],function(dom,has,_2ff,lang,win){var trim=lang.trim;var each=_2ff.forEach;var _300=function(){return win.doc;};var _301=(_300().compatMode)=="BackCompat";var _302=">~+";var _303=false;var _304=function(){return true;};var _305=function(_306){if(_302.indexOf(_306.slice(-1))>=0){_306+=" * ";}else{_306+=" ";}var ts=function(s,e){return trim(_306.slice(s,e));};var _307=[];var _308=-1,_309=-1,_30a=-1,_30b=-1,_30c=-1,inId=-1,_30d=-1,_30e,lc="",cc="",_30f;var x=0,ql=_306.length,_310=null,_311=null;var _312=function(){if(_30d>=0){var tv=(_30d==x)?null:ts(_30d,x);_310[(_302.indexOf(tv)<0)?"tag":"oper"]=tv;_30d=-1;}};var _313=function(){if(inId>=0){_310.id=ts(inId,x).replace(/\\/g,"");inId=-1;}};var _314=function(){if(_30c>=0){_310.classes.push(ts(_30c+1,x).replace(/\\/g,""));_30c=-1;}};var _315=function(){_313();_312();_314();};var _316=function(){_315();if(_30b>=0){_310.pseudos.push({name:ts(_30b+1,x)});}_310.loops=(_310.pseudos.length||_310.attrs.length||_310.classes.length);_310.oquery=_310.query=ts(_30f,x);_310.otag=_310.tag=(_310["oper"])?null:(_310.tag||"*");if(_310.tag){_310.tag=_310.tag.toUpperCase();}if(_307.length&&(_307[_307.length-1].oper)){_310.infixOper=_307.pop();_310.query=_310.infixOper.query+" "+_310.query;}_307.push(_310);_310=null;};for(;lc=cc,cc=_306.charAt(x),x<ql;x++){if(lc=="\\"){continue;}if(!_310){_30f=x;_310={query:null,pseudos:[],attrs:[],classes:[],tag:null,oper:null,id:null,getTag:function(){return _303?this.otag:this.tag;}};_30d=x;}if(_30e){if(cc==_30e){_30e=null;}continue;}else{if(cc=="'"||cc=="\""){_30e=cc;continue;}}if(_308>=0){if(cc=="]"){if(!_311.attr){_311.attr=ts(_308+1,x);}else{_311.matchFor=ts((_30a||_308+1),x);}var cmf=_311.matchFor;if(cmf){if((cmf.charAt(0)=="\"")||(cmf.charAt(0)=="'")){_311.matchFor=cmf.slice(1,-1);}}if(_311.matchFor){_311.matchFor=_311.matchFor.replace(/\\/g,"");}_310.attrs.push(_311);_311=null;_308=_30a=-1;}else{if(cc=="="){var _317=("|~^$*".indexOf(lc)>=0)?lc:"";_311.type=_317+cc;_311.attr=ts(_308+1,x-_317.length);_30a=x+1;}}}else{if(_309>=0){if(cc==")"){if(_30b>=0){_311.value=ts(_309+1,x);}_30b=_309=-1;}}else{if(cc=="#"){_315();inId=x+1;}else{if(cc=="."){_315();_30c=x;}else{if(cc==":"){_315();_30b=x;}else{if(cc=="["){_315();_308=x;_311={};}else{if(cc=="("){if(_30b>=0){_311={name:ts(_30b+1,x),value:null};_310.pseudos.push(_311);}_309=x;}else{if((cc==" ")&&(lc!=cc)){_316();}}}}}}}}}return _307;};var _318=function(_319,_31a){if(!_319){return _31a;}if(!_31a){return _319;}return function(){return _319.apply(window,arguments)&&_31a.apply(window,arguments);};};var _31b=function(i,arr){var r=arr||[];if(i){r.push(i);}return r;};var _31c=function(n){return (1==n.nodeType);};var _31d="";var _31e=function(elem,attr){if(!elem){return _31d;}if(attr=="class"){return elem.className||_31d;}if(attr=="for"){return elem.htmlFor||_31d;}if(attr=="style"){return elem.style.cssText||_31d;}return (_303?elem.getAttribute(attr):elem.getAttribute(attr,2))||_31d;};var _31f={"*=":function(attr,_320){return function(elem){return (_31e(elem,attr).indexOf(_320)>=0);};},"^=":function(attr,_321){return function(elem){return (_31e(elem,attr).indexOf(_321)==0);};},"$=":function(attr,_322){return function(elem){var ea=" "+_31e(elem,attr);var _323=ea.lastIndexOf(_322);return _323>-1&&(_323==(ea.length-_322.length));};},"~=":function(attr,_324){var tval=" "+_324+" ";return function(elem){var ea=" "+_31e(elem,attr)+" ";return (ea.indexOf(tval)>=0);};},"|=":function(attr,_325){var _326=_325+"-";return function(elem){var ea=_31e(elem,attr);return ((ea==_325)||(ea.indexOf(_326)==0));};},"=":function(attr,_327){return function(elem){return (_31e(elem,attr)==_327);};}};var _328=(typeof _300().firstChild.nextElementSibling=="undefined");var _329=!_328?"nextElementSibling":"nextSibling";var _32a=!_328?"previousElementSibling":"previousSibling";var _32b=(_328?_31c:_304);var _32c=function(node){while(node=node[_32a]){if(_32b(node)){return false;}}return true;};var _32d=function(node){while(node=node[_329]){if(_32b(node)){return false;}}return true;};var _32e=function(node){var root=node.parentNode;root=root.nodeType!=7?root:root.nextSibling;var i=0,tret=root.children||root.childNodes,ci=(node["_i"]||node.getAttribute("_i")||-1),cl=(root["_l"]||(typeof root.getAttribute!=="undefined"?root.getAttribute("_l"):-1));if(!tret){return -1;}var l=tret.length;if(cl==l&&ci>=0&&cl>=0){return ci;}if(has("ie")&&typeof root.setAttribute!=="undefined"){root.setAttribute("_l",l);}else{root["_l"]=l;}ci=-1;for(var te=root["firstElementChild"]||root["firstChild"];te;te=te[_329]){if(_32b(te)){if(has("ie")){te.setAttribute("_i",++i);}else{te["_i"]=++i;}if(node===te){ci=i;}}}return ci;};var _32f=function(elem){return !((_32e(elem))%2);};var _330=function(elem){return ((_32e(elem))%2);};var _331={"checked":function(name,_332){return function(elem){return !!("checked" in elem?elem.checked:elem.selected);};},"disabled":function(name,_333){return function(elem){return elem.disabled;};},"enabled":function(name,_334){return function(elem){return !elem.disabled;};},"first-child":function(){return _32c;},"last-child":function(){return _32d;},"only-child":function(name,_335){return function(node){return _32c(node)&&_32d(node);};},"empty":function(name,_336){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt===1)||(nt==3)){return false;}}return true;};},"contains":function(name,_337){var cz=_337.charAt(0);if(cz=="\""||cz=="'"){_337=_337.slice(1,-1);}return function(elem){return (elem.innerHTML.indexOf(_337)>=0);};},"not":function(name,_338){var p=_305(_338)[0];var _339={el:1};if(p.tag!="*"){_339.tag=1;}if(!p.classes.length){_339.classes=1;}var ntf=_33a(p,_339);return function(elem){return (!ntf(elem));};},"nth-child":function(name,_33b){var pi=parseInt;if(_33b=="odd"){return _330;}else{if(_33b=="even"){return _32f;}}if(_33b.indexOf("n")!=-1){var _33c=_33b.split("n",2);var pred=_33c[0]?((_33c[0]=="-")?-1:pi(_33c[0])):1;var idx=_33c[1]?pi(_33c[1]):0;var lb=0,ub=-1;if(pred>0){if(idx<0){idx=(idx%pred)&&(pred+(idx%pred));}else{if(idx>0){if(idx>=pred){lb=idx-idx%pred;}idx=idx%pred;}}}else{if(pred<0){pred*=-1;if(idx>0){ub=idx;idx=idx%pred;}}}if(pred>0){return function(elem){var i=_32e(elem);return (i>=lb)&&(ub<0||i<=ub)&&((i%pred)==idx);};}else{_33b=idx;}}var _33d=pi(_33b);return function(elem){return (_32e(elem)==_33d);};}};var _33e=(has("ie")&&(has("ie")<9||has("quirks")))?function(cond){var clc=cond.toLowerCase();if(clc=="class"){cond="className";}return function(elem){return (_303?elem.getAttribute(cond):elem[cond]||elem[clc]);};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};var _33a=function(_33f,_340){if(!_33f){return _304;}_340=_340||{};var ff=null;if(!("el" in _340)){ff=_318(ff,_31c);}if(!("tag" in _340)){if(_33f.tag!="*"){ff=_318(ff,function(elem){return (elem&&((_303?elem.tagName:elem.tagName.toUpperCase())==_33f.getTag()));});}}if(!("classes" in _340)){each(_33f.classes,function(_341,idx,arr){var re=new RegExp("(?:^|\\s)"+_341+"(?:\\s|$)");ff=_318(ff,function(elem){return re.test(elem.className);});ff.count=idx;});}if(!("pseudos" in _340)){each(_33f.pseudos,function(_342){var pn=_342.name;if(_331[pn]){ff=_318(ff,_331[pn](pn,_342.value));}});}if(!("attrs" in _340)){each(_33f.attrs,function(attr){var _343;var a=attr.attr;if(attr.type&&_31f[attr.type]){_343=_31f[attr.type](a,attr.matchFor);}else{if(a.length){_343=_33e(a);}}if(_343){ff=_318(ff,_343);}});}if(!("id" in _340)){if(_33f.id){ff=_318(ff,function(elem){return (!!elem&&(elem.id==_33f.id));});}}if(!ff){if(!("default" in _340)){ff=_304;}}return ff;};var _344=function(_345){return function(node,ret,bag){while(node=node[_329]){if(_328&&(!_31c(node))){continue;}if((!bag||_346(node,bag))&&_345(node)){ret.push(node);}break;}return ret;};};var _347=function(_348){return function(root,ret,bag){var te=root[_329];while(te){if(_32b(te)){if(bag&&!_346(te,bag)){break;}if(_348(te)){ret.push(te);}}te=te[_329];}return ret;};};var _349=function(_34a){_34a=_34a||_304;return function(root,ret,bag){var te,x=0,tret=root.children||root.childNodes;while(te=tret[x++]){if(_32b(te)&&(!bag||_346(te,bag))&&(_34a(te,x))){ret.push(te);}}return ret;};};var _34b=function(node,root){var pn=node.parentNode;while(pn){if(pn==root){break;}pn=pn.parentNode;}return !!pn;};var _34c={};var _34d=function(_34e){var _34f=_34c[_34e.query];if(_34f){return _34f;}var io=_34e.infixOper;var oper=(io?io.oper:"");var _350=_33a(_34e,{el:1});var qt=_34e.tag;var _351=("*"==qt);var ecs=_300()["getElementsByClassName"];if(!oper){if(_34e.id){_350=(!_34e.loops&&_351)?_304:_33a(_34e,{el:1,id:1});_34f=function(root,arr){var te=dom.byId(_34e.id,(root.ownerDocument||root));if(!te||!_350(te)){return;}if(9==root.nodeType){return _31b(te,arr);}else{if(_34b(te,root)){return _31b(te,arr);}}};}else{if(ecs&&/\{\s*\[native code\]\s*\}/.test(String(ecs))&&_34e.classes.length&&!_301){_350=_33a(_34e,{el:1,classes:1,id:1});var _352=_34e.classes.join(" ");_34f=function(root,arr,bag){var ret=_31b(0,arr),te,x=0;var tret=root.getElementsByClassName(_352);while((te=tret[x++])){if(_350(te,root)&&_346(te,bag)){ret.push(te);}}return ret;};}else{if(!_351&&!_34e.loops){_34f=function(root,arr,bag){var ret=_31b(0,arr),te,x=0;var tag=_34e.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_346(te,bag)){ret.push(te);}}return ret;};}else{_350=_33a(_34e,{el:1,tag:1,id:1});_34f=function(root,arr,bag){var ret=_31b(0,arr),te,x=0;var tag=_34e.getTag(),tret=tag?root.getElementsByTagName(tag):[];while((te=tret[x++])){if(_350(te,root)&&_346(te,bag)){ret.push(te);}}return ret;};}}}}else{var _353={el:1};if(_351){_353.tag=1;}_350=_33a(_34e,_353);if("+"==oper){_34f=_344(_350);}else{if("~"==oper){_34f=_347(_350);}else{if(">"==oper){_34f=_349(_350);}}}}return _34c[_34e.query]=_34f;};var _354=function(root,_355){var _356=_31b(root),qp,x,te,qpl=_355.length,bag,ret;for(var i=0;i<qpl;i++){ret=[];qp=_355[i];x=_356.length-1;if(x>0){bag={};ret.nozip=true;}var gef=_34d(qp);for(var j=0;(te=_356[j]);j++){gef(te,ret,bag);}if(!ret.length){break;}_356=ret;}return ret;};var _357={},_358={};var _359=function(_35a){var _35b=_305(trim(_35a));if(_35b.length==1){var tef=_34d(_35b[0]);return function(root){var r=tef(root,[]);if(r){r.nozip=true;}return r;};}return function(root){return _354(root,_35b);};};var _35c=has("ie")?"commentStrip":"nozip";var qsa="querySelectorAll";var _35d=!!_300()[qsa];var _35e=/\\[>~+]|n\+\d|([^ \\])?([>~+])([^ =])?/g;var _35f=function(_360,pre,ch,post){return ch?(pre?pre+" ":"")+ch+(post?" "+post:""):_360;};var _361=/([^[]*)([^\]]*])?/g;var _362=function(_363,_364,att){return _364.replace(_35e,_35f)+(att||"");};var _365=function(_366,_367){_366=_366.replace(_361,_362);if(_35d){var _368=_358[_366];if(_368&&!_367){return _368;}}var _369=_357[_366];if(_369){return _369;}var qcz=_366.charAt(0);var _36a=(-1==_366.indexOf(" "));if((_366.indexOf("#")>=0)&&(_36a)){_367=true;}var _36b=(_35d&&(!_367)&&(_302.indexOf(qcz)==-1)&&(!has("ie")||(_366.indexOf(":")==-1))&&(!(_301&&(_366.indexOf(".")>=0)))&&(_366.indexOf(":contains")==-1)&&(_366.indexOf(":checked")==-1)&&(_366.indexOf("|=")==-1));if(_36b){var tq=(_302.indexOf(_366.charAt(_366.length-1))>=0)?(_366+" *"):_366;return _358[_366]=function(root){try{if(!((9==root.nodeType)||_36a)){throw "";}var r=root[qsa](tq);r[_35c]=true;return r;}catch(e){return _365(_366,true)(root);}};}else{var _36c=_366.match(/([^\s,](?:"(?:\\.|[^"])+"|'(?:\\.|[^'])+'|[^,])*)/g);return _357[_366]=((_36c.length<2)?_359(_366):function(root){var _36d=0,ret=[],tp;while((tp=_36c[_36d++])){ret=ret.concat(_359(tp)(root));}return ret;});}};var _36e=0;var _36f=has("ie")?function(node){if(_303){return (node.getAttribute("_uid")||node.setAttribute("_uid",++_36e)||_36e);}else{return node.uniqueID;}}:function(node){return (node._uid||(node._uid=++_36e));};var _346=function(node,bag){if(!bag){return 1;}var id=_36f(node);if(!bag[id]){return bag[id]=1;}return 0;};var _370="_zipIdx";var _371=function(arr){if(arr&&arr.nozip){return arr;}var ret=[];if(!arr||!arr.length){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_36e++;var x,te;if(has("ie")&&_303){var _372=_36e+"";arr[0].setAttribute(_370,_372);for(x=1;te=arr[x];x++){if(arr[x].getAttribute(_370)!=_372){ret.push(te);}te.setAttribute(_370,_372);}}else{if(has("ie")&&arr.commentStrip){try{for(x=1;te=arr[x];x++){if(_31c(te)){ret.push(te);}}}catch(e){}}else{if(arr[0]){arr[0][_370]=_36e;}for(x=1;te=arr[x];x++){if(arr[x][_370]!=_36e){ret.push(te);}te[_370]=_36e;}}}return ret;};var _373=function(_374,root){root=root||_300();var od=root.ownerDocument||root;_303=(od.createElement("div").tagName==="div");var r=_365(_374)(root);if(r&&r.nozip){return r;}return _371(r);};_373.filter=function(_375,_376,root){var _377=[],_378=_305(_376),_379=(_378.length==1&&!/[^\w#\.]/.test(_376))?_33a(_378[0]):function(node){return _2ff.indexOf(_373(_376,dom.byId(root)),node)!=-1;};for(var x=0,te;te=_375[x];x++){if(_379(te)){_377.push(te);}}return _377;};return _373;});},"dojo/errors/RequestTimeoutError":function(){define("dojo/errors/RequestTimeoutError",["./create","./RequestError"],function(_37a,_37b){return _37a("RequestTimeoutError",null,_37b,{dojoType:"timeout"});});},"dojo/dom-geometry":function(){define(["./sniff","./_base/window","./dom","./dom-style"],function(has,win,dom,_37c){var geom={};geom.boxModel="content-box";if(has("ie")){geom.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box";}geom.getPadExtents=function getPadExtents(node,_37d){node=dom.byId(node);var s=_37d||_37c.getComputedStyle(node),px=_37c.toPixelValue,l=px(node,s.paddingLeft),t=px(node,s.paddingTop),r=px(node,s.paddingRight),b=px(node,s.paddingBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};var none="none";geom.getBorderExtents=function getBorderExtents(node,_37e){node=dom.byId(node);var px=_37c.toPixelValue,s=_37e||_37c.getComputedStyle(node),l=s.borderLeftStyle!=none?px(node,s.borderLeftWidth):0,t=s.borderTopStyle!=none?px(node,s.borderTopWidth):0,r=s.borderRightStyle!=none?px(node,s.borderRightWidth):0,b=s.borderBottomStyle!=none?px(node,s.borderBottomWidth):0;return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};geom.getPadBorderExtents=function getPadBorderExtents(node,_37f){node=dom.byId(node);var s=_37f||_37c.getComputedStyle(node),p=geom.getPadExtents(node,s),b=geom.getBorderExtents(node,s);return {l:p.l+b.l,t:p.t+b.t,r:p.r+b.r,b:p.b+b.b,w:p.w+b.w,h:p.h+b.h};};geom.getMarginExtents=function getMarginExtents(node,_380){node=dom.byId(node);var s=_380||_37c.getComputedStyle(node),px=_37c.toPixelValue,l=px(node,s.marginLeft),t=px(node,s.marginTop),r=px(node,s.marginRight),b=px(node,s.marginBottom);return {l:l,t:t,r:r,b:b,w:l+r,h:t+b};};geom.getMarginBox=function getMarginBox(node,_381){node=dom.byId(node);var s=_381||_37c.getComputedStyle(node),me=geom.getMarginExtents(node,s),l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode,px=_37c.toPixelValue,pcs;if(has("mozilla")){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl;t=st;}else{if(p&&p.style){pcs=_37c.getComputedStyle(p);if(pcs.overflow!="visible"){l+=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):0;t+=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0;}}}}else{if(has("opera")||(has("ie")==8&&!has("quirks"))){if(p){pcs=_37c.getComputedStyle(p);l-=pcs.borderLeftStyle!=none?px(node,pcs.borderLeftWidth):0;t-=pcs.borderTopStyle!=none?px(node,pcs.borderTopWidth):0;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};geom.getContentBox=function getContentBox(node,_382){node=dom.byId(node);var s=_382||_37c.getComputedStyle(node),w=node.clientWidth,h,pe=geom.getPadExtents(node,s),be=geom.getBorderExtents(node,s);if(!w){w=node.offsetWidth;h=node.offsetHeight;}else{h=node.clientHeight;be.w=be.h=0;}if(has("opera")){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};function _383(node,l,t,w,h,u){u=u||"px";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};function _384(node){return node.tagName.toLowerCase()=="button"||node.tagName.toLowerCase()=="input"&&(node.getAttribute("type")||"").toLowerCase()=="button";};function _385(node){return geom.boxModel=="border-box"||node.tagName.toLowerCase()=="table"||_384(node);};geom.setContentSize=function setContentSize(node,box,_386){node=dom.byId(node);var w=box.w,h=box.h;if(_385(node)){var pb=geom.getPadBorderExtents(node,_386);if(w>=0){w+=pb.w;}if(h>=0){h+=pb.h;}}_383(node,NaN,NaN,w,h);};var _387={l:0,t:0,w:0,h:0};geom.setMarginBox=function setMarginBox(node,box,_388){node=dom.byId(node);var s=_388||_37c.getComputedStyle(node),w=box.w,h=box.h,pb=_385(node)?_387:geom.getPadBorderExtents(node,s),mb=geom.getMarginExtents(node,s);if(has("webkit")){if(_384(node)){var ns=node.style;if(w>=0&&!ns.width){ns.width="4px";}if(h>=0&&!ns.height){ns.height="4px";}}}if(w>=0){w=Math.max(w-pb.w-mb.w,0);}if(h>=0){h=Math.max(h-pb.h-mb.h,0);}_383(node,box.l,box.t,w,h);};geom.isBodyLtr=function isBodyLtr(doc){doc=doc||win.doc;return (win.body(doc).dir||doc.documentElement.dir||"ltr").toLowerCase()=="ltr";};geom.docScroll=function docScroll(doc){doc=doc||win.doc;var node=win.doc.parentWindow||win.doc.defaultView;return "pageXOffset" in node?{x:node.pageXOffset,y:node.pageYOffset}:(node=has("quirks")?win.body(doc):doc.documentElement)&&{x:geom.fixIeBiDiScrollLeft(node.scrollLeft||0,doc),y:node.scrollTop||0};};if(has("ie")){geom.getIeDocumentElementOffset=function getIeDocumentElementOffset(doc){doc=doc||win.doc;var de=doc.documentElement;if(has("ie")<8){var r=de.getBoundingClientRect(),l=r.left,t=r.top;if(has("ie")<7){l+=de.clientLeft;t+=de.clientTop;}return {x:l<0?0:l,y:t<0?0:t};}else{return {x:0,y:0};}};}geom.fixIeBiDiScrollLeft=function fixIeBiDiScrollLeft(_389,doc){doc=doc||win.doc;var ie=has("ie");if(ie&&!geom.isBodyLtr(doc)){var qk=has("quirks"),de=qk?win.body(doc):doc.documentElement,pwin=win.global;if(ie==6&&!qk&&pwin.frameElement&&de.scrollHeight>de.clientHeight){_389+=de.clientLeft;}return (ie<8||qk)?(_389+de.clientWidth-de.scrollWidth):-_389;}return _389;};geom.position=function(node,_38a){node=dom.byId(node);var db=win.body(node.ownerDocument),ret=node.getBoundingClientRect();ret={x:ret.left,y:ret.top,w:ret.right-ret.left,h:ret.bottom-ret.top};if(has("ie")){var _38b=geom.getIeDocumentElementOffset(node.ownerDocument);ret.x-=_38b.x+(has("quirks")?db.clientLeft+db.offsetLeft:0);ret.y-=_38b.y+(has("quirks")?db.clientTop+db.offsetTop:0);}if(_38a){var _38c=geom.docScroll(node.ownerDocument);ret.x+=_38c.x;ret.y+=_38c.y;}return ret;};geom.getMarginSize=function getMarginSize(node,_38d){node=dom.byId(node);var me=geom.getMarginExtents(node,_38d||_37c.getComputedStyle(node));var size=node.getBoundingClientRect();return {w:(size.right-size.left)+me.w,h:(size.bottom-size.top)+me.h};};geom.normalizeEvent=function(_38e){if(!("layerX" in _38e)){_38e.layerX=_38e.offsetX;_38e.layerY=_38e.offsetY;}if(!has("dom-addeventlistener")){var se=_38e.target;var doc=(se&&se.ownerDocument)||document;var _38f=has("quirks")?doc.body:doc.documentElement;var _390=geom.getIeDocumentElementOffset(doc);_38e.pageX=_38e.clientX+geom.fixIeBiDiScrollLeft(_38f.scrollLeft||0,doc)-_390.x;_38e.pageY=_38e.clientY+(_38f.scrollTop||0)-_390.y;}};return geom;});},"dojo/dom-style":function(){define("dojo/dom-style",["./sniff","./dom"],function(has,dom){var _391,_392={};if(has("webkit")){_391=function(node){var s;if(node.nodeType==1){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(has("ie")&&(has("ie")<9||has("quirks"))){_391=function(node){return node.nodeType==1&&node.currentStyle?node.currentStyle:{};};}else{_391=function(node){return node.nodeType==1?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}_392.getComputedStyle=_391;var _393;if(!has("ie")){_393=function(_394,_395){return parseFloat(_395)||0;};}else{_393=function(_396,_397){if(!_397){return 0;}if(_397=="medium"){return 4;}if(_397.slice&&_397.slice(-2)=="px"){return parseFloat(_397);}var s=_396.style,rs=_396.runtimeStyle,cs=_396.currentStyle,_398=s.left,_399=rs.left;rs.left=cs.left;try{s.left=_397;_397=s.pixelLeft;}catch(e){_397=0;}s.left=_398;rs.left=_399;return _397;};}_392.toPixelValue=_393;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};var _39a=has("ie")<9||(has("ie")&&has("quirks"))?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return _391(node).opacity;};var _39b=has("ie")<9||(has("ie")&&has("quirks"))?function(node,_39c){var ov=_39c*100,_39d=_39c==1;node.style.zoom=_39d?"":1;if(!af(node)){if(_39d){return _39c;}node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}af(node,1).Enabled=!_39d;if(node.tagName.toLowerCase()=="tr"){for(var td=node.firstChild;td;td=td.nextSibling){if(td.tagName.toLowerCase()=="td"){_39b(td,_39c);}}}return _39c;}:function(node,_39e){return node.style.opacity=_39e;};var _39f={left:true,top:true};var _3a0=/margin|padding|width|height|max|min|offset/;function _3a1(node,type,_3a2){type=type.toLowerCase();if(has("ie")){if(_3a2=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_3a2){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _39f)){_39f[type]=_3a0.test(type);}return _39f[type]?_393(node,_3a2):_3a2;};var _3a3=has("ie")?"styleFloat":"cssFloat",_3a4={"cssFloat":_3a3,"styleFloat":_3a3,"float":_3a3};_392.get=function getStyle(node,name){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");if(l==2&&op){return _39a(n);}name=_3a4[name]||name;var s=_392.getComputedStyle(n);return (l==1)?s:_3a1(n,name,s[name]||n.style[name]);};_392.set=function setStyle(node,name,_3a5){var n=dom.byId(node),l=arguments.length,op=(name=="opacity");name=_3a4[name]||name;if(l==3){return op?_39b(n,_3a5):n.style[name]=_3a5;}for(var x in name){_392.set(node,x,name[x]);}return _392.getComputedStyle(n);};return _392;});},"dojo/dom-prop":function(){define(["exports","./_base/kernel","./sniff","./_base/lang","./dom","./dom-style","./dom-construct","./_base/connect"],function(_3a6,dojo,has,lang,dom,_3a7,ctr,conn){var _3a8={},_3a9=0,_3aa=dojo._scopeName+"attrid";_3a6.names={"class":"className","for":"htmlFor",tabindex:"tabIndex",readonly:"readOnly",colspan:"colSpan",frameborder:"frameBorder",rowspan:"rowSpan",valuetype:"valueType"};_3a6.get=function getProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3ab=_3a6.names[lc]||name;return node[_3ab];};_3a6.set=function setProp(node,name,_3ac){node=dom.byId(node);var l=arguments.length;if(l==2&&typeof name!="string"){for(var x in name){_3a6.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_3ad=_3a6.names[lc]||name;if(_3ad=="style"&&typeof _3ac!="string"){_3a7.set(node,_3ac);return node;}if(_3ad=="innerHTML"){if(has("ie")&&node.tagName.toLowerCase() in {col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1}){ctr.empty(node);node.appendChild(ctr.toDom(_3ac,node.ownerDocument));}else{node[_3ad]=_3ac;}return node;}if(lang.isFunction(_3ac)){var _3ae=node[_3aa];if(!_3ae){_3ae=_3a9++;node[_3aa]=_3ae;}if(!_3a8[_3ae]){_3a8[_3ae]={};}var h=_3a8[_3ae][_3ad];if(h){conn.disconnect(h);}else{try{delete node[_3ad];}catch(e){}}if(_3ac){_3a8[_3ae][_3ad]=conn.connect(node,_3ad,_3ac);}else{node[_3ad]=null;}return node;}node[_3ad]=_3ac;return node;};});},"dojo/when":function(){define(["./Deferred","./promise/Promise"],function(_3af,_3b0){"use strict";return function when(_3b1,_3b2,_3b3,_3b4){var _3b5=_3b1&&typeof _3b1.then==="function";var _3b6=_3b5&&_3b1 instanceof _3b0;if(!_3b5){if(_3b2){return _3b2(_3b1);}else{return new _3af().resolve(_3b1);}}else{if(!_3b6){var _3b7=new _3af(_3b1.cancel);_3b1.then(_3b7.resolve,_3b7.reject,_3b7.progress);_3b1=_3b7.promise;}}if(_3b2||_3b3||_3b4){return _3b1.then(_3b2,_3b3,_3b4);}return _3b1;};});},"dojo/dom-attr":function(){define(["exports","./sniff","./_base/lang","./dom","./dom-style","./dom-prop"],function(_3b8,has,lang,dom,_3b9,prop){var _3ba={innerHTML:1,className:1,htmlFor:has("ie"),value:1},_3bb={classname:"class",htmlfor:"for",tabindex:"tabIndex",readonly:"readOnly"};function _3bc(node,name){var attr=node.getAttributeNode&&node.getAttributeNode(name);return attr&&attr.specified;};_3b8.has=function hasAttr(node,name){var lc=name.toLowerCase();return _3ba[prop.names[lc]||name]||_3bc(dom.byId(node),_3bb[lc]||name);};_3b8.get=function getAttr(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3bd=prop.names[lc]||name,_3be=_3ba[_3bd],_3bf=node[_3bd];if(_3be&&typeof _3bf!="undefined"){return _3bf;}if(_3bd!="href"&&(typeof _3bf=="boolean"||lang.isFunction(_3bf))){return _3bf;}var _3c0=_3bb[lc]||name;return _3bc(node,_3c0)?node.getAttribute(_3c0):null;};_3b8.set=function setAttr(node,name,_3c1){node=dom.byId(node);if(arguments.length==2){for(var x in name){_3b8.set(node,x,name[x]);}return node;}var lc=name.toLowerCase(),_3c2=prop.names[lc]||name,_3c3=_3ba[_3c2];if(_3c2=="style"&&typeof _3c1!="string"){_3b9.set(node,_3c1);return node;}if(_3c3||typeof _3c1=="boolean"||lang.isFunction(_3c1)){return prop.set(node,name,_3c1);}node.setAttribute(_3bb[lc]||name,_3c1);return node;};_3b8.remove=function removeAttr(node,name){dom.byId(node).removeAttribute(_3bb[name.toLowerCase()]||name);};_3b8.getNodeProp=function getNodeProp(node,name){node=dom.byId(node);var lc=name.toLowerCase(),_3c4=prop.names[lc]||name;if((_3c4 in node)&&_3c4!="href"){return node[_3c4];}var _3c5=_3bb[lc]||name;return _3bc(node,_3c5)?node.getAttribute(_3c5):null;};});},"dojo/dom-construct":function(){define(["exports","./_base/kernel","./sniff","./_base/window","./dom","./dom-attr","./on"],function(_3c6,dojo,has,win,dom,attr,on){var _3c7={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},_3c8=/<\s*([\w\:]+)/,_3c9={},_3ca=0,_3cb="__"+dojo._scopeName+"ToDomId";for(var _3cc in _3c7){if(_3c7.hasOwnProperty(_3cc)){var tw=_3c7[_3cc];tw.pre=_3cc=="option"?"<select multiple=\"multiple\">":"<"+tw.join("><")+">";tw.post="</"+tw.reverse().join("></")+">";}}function _3cd(node,ref){var _3ce=ref.parentNode;if(_3ce){_3ce.insertBefore(node,ref);}};function _3cf(node,ref){var _3d0=ref.parentNode;if(_3d0){if(_3d0.lastChild==ref){_3d0.appendChild(node);}else{_3d0.insertBefore(node,ref.nextSibling);}}};var _3d1=null,_3d2;on(window,"unload",function(){_3d1=null;});_3c6.toDom=function toDom(frag,doc){doc=doc||win.doc;var _3d3=doc[_3cb];if(!_3d3){doc[_3cb]=_3d3=++_3ca+"";_3c9[_3d3]=doc.createElement("div");}frag+="";var _3d4=frag.match(_3c8),tag=_3d4?_3d4[1].toLowerCase():"",_3d5=_3c9[_3d3],wrap,i,fc,df;if(_3d4&&_3c7[tag]){wrap=_3c7[tag];_3d5.innerHTML=wrap.pre+frag+wrap.post;for(i=wrap.length;i;--i){_3d5=_3d5.firstChild;}}else{_3d5.innerHTML=frag;}if(_3d5.childNodes.length==1){return _3d5.removeChild(_3d5.firstChild);}df=doc.createDocumentFragment();while(fc=_3d5.firstChild){df.appendChild(fc);}return df;};_3c6.place=function place(node,_3d6,_3d7){_3d6=dom.byId(_3d6);if(typeof node=="string"){node=/^\s*</.test(node)?_3c6.toDom(node,_3d6.ownerDocument):dom.byId(node);}if(typeof _3d7=="number"){var cn=_3d6.childNodes;if(!cn.length||cn.length<=_3d7){_3d6.appendChild(node);}else{_3cd(node,cn[_3d7<0?0:_3d7]);}}else{switch(_3d7){case "before":_3cd(node,_3d6);break;case "after":_3cf(node,_3d6);break;case "replace":_3d6.parentNode.replaceChild(node,_3d6);break;case "only":_3c6.empty(_3d6);_3d6.appendChild(node);break;case "first":if(_3d6.firstChild){_3cd(node,_3d6.firstChild);break;}default:_3d6.appendChild(node);}}return node;};_3c6.create=function create(tag,_3d8,_3d9,pos){var doc=win.doc;if(_3d9){_3d9=dom.byId(_3d9);doc=_3d9.ownerDocument;}if(typeof tag=="string"){tag=doc.createElement(tag);}if(_3d8){attr.set(tag,_3d8);}if(_3d9){_3c6.place(tag,_3d9,pos);}return tag;};_3c6.empty=has("ie")?function(node){node=dom.byId(node);for(var c;c=node.lastChild;){_3c6.destroy(c);}}:function(node){dom.byId(node).innerHTML="";};_3c6.destroy=function destroy(node){node=dom.byId(node);try{var doc=node.ownerDocument;if(!_3d1||_3d2!=doc){_3d1=doc.createElement("div");_3d2=doc;}_3d1.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_3d1.innerHTML="";}catch(e){}};});},"dojo/request/xhr":function(){define("dojo/request/xhr",["../errors/RequestError","./watch","./handlers","./util","../has"],function(_3da,_3db,_3dc,util,has){has.add("native-xhr",function(){return typeof XMLHttpRequest!=="undefined";});has.add("dojo-force-activex-xhr",function(){return has("activex")&&!document.addEventListener&&window.location.protocol==="file:";});has.add("native-xhr2",function(){if(!has("native-xhr")){return;}var x=new XMLHttpRequest();return typeof x["addEventListener"]!=="undefined"&&(typeof opera==="undefined"||typeof x["upload"]!=="undefined");});has.add("native-formdata",function(){return typeof FormData==="function";});function _3dd(_3de,_3df){var _3e0=_3de.xhr;_3de.status=_3de.xhr.status;_3de.text=_3e0.responseText;if(_3de.options.handleAs==="xml"){_3de.data=_3e0.responseXML;}if(!_3df){try{_3dc(_3de);}catch(e){_3df=e;}}if(_3df){this.reject(_3df);}else{if(util.checkStatus(_3e0.status)){this.resolve(_3de);}else{_3df=new _3da("Unable to load "+_3de.url+" status: "+_3e0.status,_3de);this.reject(_3df);}}};var _3e1,_3e2,_3e3,_3e4;if(has("native-xhr2")){_3e1=function(_3e5){return !this.isFulfilled();};_3e4=function(dfd,_3e6){_3e6.xhr.abort();};_3e3=function(_3e7,dfd,_3e8){function _3e9(evt){dfd.handleResponse(_3e8);};function _3ea(evt){var _3eb=evt.target;var _3ec=new _3da("Unable to load "+_3e8.url+" status: "+_3eb.status,_3e8);dfd.handleResponse(_3e8,_3ec);};function _3ed(evt){if(evt.lengthComputable){_3e8.loaded=evt.loaded;_3e8.total=evt.total;dfd.progress(_3e8);}};_3e7.addEventListener("load",_3e9,false);_3e7.addEventListener("error",_3ea,false);_3e7.addEventListener("progress",_3ed,false);return function(){_3e7.removeEventListener("load",_3e9,false);_3e7.removeEventListener("error",_3ea,false);_3e7.removeEventListener("progress",_3ed,false);};};}else{_3e1=function(_3ee){return _3ee.xhr.readyState;};_3e2=function(_3ef){return 4===_3ef.xhr.readyState;};_3e4=function(dfd,_3f0){var xhr=_3f0.xhr;var _3f1=typeof xhr.abort;if(_3f1==="function"||_3f1==="object"||_3f1==="unknown"){xhr.abort();}};}var _3f2,_3f3={data:null,query:null,sync:false,method:"GET",headers:{"Content-Type":"application/x-www-form-urlencoded"}};function xhr(url,_3f4,_3f5){var _3f6=util.parseArgs(url,util.deepCreate(_3f3,_3f4),has("native-formdata")&&_3f4&&_3f4.data&&_3f4.data instanceof FormData);url=_3f6.url;_3f4=_3f6.options;var _3f7,last=function(){_3f7&&_3f7();};var dfd=util.deferred(_3f6,_3e4,_3e1,_3e2,_3dd,last);var _3f8=_3f6.xhr=xhr._create();if(!_3f8){dfd.cancel(new _3da("XHR was not created"));return _3f5?dfd:dfd.promise;}_3f6.getHeader=function(_3f9){return this.xhr.getResponseHeader(_3f9);};if(_3e3){_3f7=_3e3(_3f8,dfd,_3f6);}var data=_3f4.data,_3fa=!_3f4.sync,_3fb=_3f4.method;try{_3f8.open(_3fb,url,_3fa,_3f4.user||_3f2,_3f4.password||_3f2);if(_3f4.withCredentials){_3f8.withCredentials=_3f4.withCredentials;}var _3fc=_3f4.headers,_3fd;if(_3fc){for(var hdr in _3fc){if(hdr.toLowerCase()==="content-type"){_3fd=_3fc[hdr];}else{if(_3fc[hdr]){_3f8.setRequestHeader(hdr,_3fc[hdr]);}}}}if(_3fd&&_3fd!==false){_3f8.setRequestHeader("Content-Type",_3fd);}if(!_3fc||!("X-Requested-With" in _3fc)){_3f8.setRequestHeader("X-Requested-With","XMLHttpRequest");}if(util.notify){util.notify.emit("send",_3f6,dfd.promise.cancel);}_3f8.send(data);}catch(e){dfd.reject(e);}_3db(dfd);_3f8=null;return _3f5?dfd:dfd.promise;};xhr._create=function(){throw new Error("XMLHTTP not available");};if(has("native-xhr")&&!has("dojo-force-activex-xhr")){xhr._create=function(){return new XMLHttpRequest();};}else{if(has("activex")){try{new ActiveXObject("Msxml2.XMLHTTP");xhr._create=function(){return new ActiveXObject("Msxml2.XMLHTTP");};}catch(e){try{new ActiveXObject("Microsoft.XMLHTTP");xhr._create=function(){return new ActiveXObject("Microsoft.XMLHTTP");};}catch(e){}}}}util.addCommonMethods(xhr);return xhr;});},"dojo/text":function(){define(["./_base/kernel","require","./has","./_base/xhr"],function(dojo,_3fe,has,xhr){var _3ff;if(1){_3ff=function(url,sync,load){xhr("GET",{url:url,sync:!!sync,load:load,headers:dojo.config.textPluginHeaders||{}});};}else{if(_3fe.getText){_3ff=_3fe.getText;}else{console.error("dojo/text plugin failed to load because loader does not support getText");}}var _400={},_401=function(text){if(text){text=text.replace(/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,"");var _402=text.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);if(_402){text=_402[1];}}else{text="";}return text;},_403={},_404={};dojo.cache=function(_405,url,_406){var key;if(typeof _405=="string"){if(/\//.test(_405)){key=_405;_406=url;}else{key=_3fe.toUrl(_405.replace(/\./g,"/")+(url?("/"+url):""));}}else{key=_405+"";_406=url;}var val=(_406!=undefined&&typeof _406!="string")?_406.value:_406,_407=_406&&_406.sanitize;if(typeof val=="string"){_400[key]=val;return _407?_401(val):val;}else{if(val===null){delete _400[key];return null;}else{if(!(key in _400)){_3ff(key,true,function(text){_400[key]=text;});}return _407?_401(_400[key]):_400[key];}}};return {dynamic:true,normalize:function(id,_408){var _409=id.split("!"),url=_409[0];return (/^\./.test(url)?_408(url):url)+(_409[1]?"!"+_409[1]:"");},load:function(id,_40a,load){var _40b=id.split("!"),_40c=_40b.length>1,_40d=_40b[0],url=_40a.toUrl(_40b[0]),_40e="url:"+url,text=_403,_40f=function(text){load(_40c?_401(text):text);};if(_40d in _400){text=_400[_40d];}else{if(_40e in _40a.cache){text=_40a.cache[_40e];}else{if(url in _400){text=_400[url];}}}if(text===_403){if(_404[url]){_404[url].push(_40f);}else{var _410=_404[url]=[_40f];_3ff(url,!_40a.async,function(text){_400[_40d]=_400[url]=text;for(var i=0;i<_410.length;){_410[i++](text);}delete _404[url];});}}else{_40f(text);}}};});},"dojo/keys":function(){define("dojo/keys",["./_base/kernel","./sniff"],function(dojo,has){return dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:has("webkit")?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,UP_DPAD:175,DOWN_DPAD:176,LEFT_DPAD:177,RIGHT_DPAD:178,copyKey:has("mac")&&!has("air")?(has("safari")?91:224):17};});},"dojo/domReady":function(){define(["./has"],function(has){var _411=this,doc=document,_412={"loaded":1,"complete":1},_413=typeof doc.readyState!="string",_414=!!_412[doc.readyState];if(_413){doc.readyState="loading";}if(!_414){var _415=[],_416=[],_417=function(evt){evt=evt||_411.event;if(_414||(evt.type=="readystatechange"&&!_412[doc.readyState])){return;}_414=1;if(_413){doc.readyState="complete";}while(_415.length){(_415.shift())(doc);}},on=function(node,_418){node.addEventListener(_418,_417,false);_415.push(function(){node.removeEventListener(_418,_417,false);});};if(!has("dom-addeventlistener")){on=function(node,_419){_419="on"+_419;node.attachEvent(_419,_417);_415.push(function(){node.detachEvent(_419,_417);});};var div=doc.createElement("div");try{if(div.doScroll&&_411.frameElement===null){_416.push(function(){try{div.doScroll("left");return 1;}catch(e){}});}}catch(e){}}on(doc,"DOMContentLoaded");on(_411,"load");if("onreadystatechange" in doc){on(doc,"readystatechange");}else{if(!_413){_416.push(function(){return _412[doc.readyState];});}}if(_416.length){var _41a=function(){if(_414){return;}var i=_416.length;while(i--){if(_416[i]()){_417("poller");return;}}setTimeout(_41a,30);};_41a();}}function _41b(_41c){if(_414){_41c(doc);}else{_415.push(_41c);}};_41b.load=function(id,req,load){_41b(load);};return _41b;});},"dojo/_base/lang":function(){define("dojo/_base/lang",["./kernel","../has","../sniff"],function(dojo,has){has.add("bug-for-in-skips-shadowed",function(){for(var i in {toString:1}){return 0;}return 1;});var _41d=has("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],_41e=_41d.length,_41f=function(_420,_421,_422){var p,i=0,_423=dojo.global;if(!_422){if(!_420.length){return _423;}else{p=_420[i++];try{_422=dojo.scopeMap[p]&&dojo.scopeMap[p][1];}catch(e){}_422=_422||(p in _423?_423[p]:(_421?_423[p]={}:undefined));}}while(_422&&(p=_420[i++])){_422=(p in _422?_422[p]:(_421?_422[p]={}:undefined));}return _422;},opts=Object.prototype.toString,_424=function(obj,_425,_426){return (_426||[]).concat(Array.prototype.slice.call(obj,_425||0));},_427=/\{([^\}]+)\}/g;var lang={_extraNames:_41d,_mixin:function(dest,_428,_429){var name,s,i,_42a={};for(name in _428){s=_428[name];if(!(name in dest)||(dest[name]!==s&&(!(name in _42a)||_42a[name]!==s))){dest[name]=_429?_429(s):s;}}if(has("bug-for-in-skips-shadowed")){if(_428){for(i=0;i<_41e;++i){name=_41d[i];s=_428[name];if(!(name in dest)||(dest[name]!==s&&(!(name in _42a)||_42a[name]!==s))){dest[name]=_429?_429(s):s;}}}}return dest;},mixin:function(dest,_42b){if(!dest){dest={};}for(var i=1,l=arguments.length;i<l;i++){lang._mixin(dest,arguments[i]);}return dest;},setObject:function(name,_42c,_42d){var _42e=name.split("."),p=_42e.pop(),obj=_41f(_42e,true,_42d);return obj&&p?(obj[p]=_42c):undefined;},getObject:function(name,_42f,_430){return _41f(name.split("."),_42f,_430);},exists:function(name,obj){return lang.getObject(name,false,obj)!==undefined;},isString:function(it){return (typeof it=="string"||it instanceof String);},isArray:function(it){return it&&(it instanceof Array||typeof it=="array");},isFunction:function(it){return opts.call(it)==="[object Function]";},isObject:function(it){return it!==undefined&&(it===null||typeof it=="object"||lang.isArray(it)||lang.isFunction(it));},isArrayLike:function(it){return it&&it!==undefined&&!lang.isString(it)&&!lang.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(lang.isArray(it)||isFinite(it.length));},isAlien:function(it){return it&&!lang.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));},extend:function(ctor,_431){for(var i=1,l=arguments.length;i<l;i++){lang._mixin(ctor.prototype,arguments[i]);}return ctor;},_hitchArgs:function(_432,_433){var pre=lang._toArray(arguments,2);var _434=lang.isString(_433);return function(){var args=lang._toArray(arguments);var f=_434?(_432||dojo.global)[_433]:_433;return f&&f.apply(_432||this,pre.concat(args));};},hitch:function(_435,_436){if(arguments.length>2){return lang._hitchArgs.apply(dojo,arguments);}if(!_436){_436=_435;_435=null;}if(lang.isString(_436)){_435=_435||dojo.global;if(!_435[_436]){throw (["lang.hitch: scope[\"",_436,"\"] is null (scope=\"",_435,"\")"].join(""));}return function(){return _435[_436].apply(_435,arguments||[]);};}return !_435?_436:function(){return _436.apply(_435,arguments||[]);};},delegate:(function(){function TMP(){};return function(obj,_437){TMP.prototype=obj;var tmp=new TMP();TMP.prototype=null;if(_437){lang._mixin(tmp,_437);}return tmp;};})(),_toArray:has("ie")?(function(){function slow(obj,_438,_439){var arr=_439||[];for(var x=_438||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};return function(obj){return ((obj.item)?slow:_424).apply(this,arguments);};})():_424,partial:function(_43a){var arr=[null];return lang.hitch.apply(dojo,arr.concat(lang._toArray(arguments)));},clone:function(src){if(!src||typeof src!="object"||lang.isFunction(src)){return src;}if(src.nodeType&&"cloneNode" in src){return src.cloneNode(true);}if(src instanceof Date){return new Date(src.getTime());}if(src instanceof RegExp){return new RegExp(src);}var r,i,l;if(lang.isArray(src)){r=[];for(i=0,l=src.length;i<l;++i){if(i in src){r.push(lang.clone(src[i]));}}}else{r=src.constructor?new src.constructor():{};}return lang._mixin(r,src,lang.clone);},trim:String.prototype.trim?function(str){return str.trim();}:function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");},replace:function(tmpl,map,_43b){return tmpl.replace(_43b||_427,lang.isFunction(map)?map:function(_43c,k){return lang.getObject(k,false,map);});}};1&&lang.mixin(dojo,lang);return lang;});},"dojo/request/util":function(){define("dojo/request/util",["exports","../errors/RequestError","../errors/CancelError","../Deferred","../io-query","../_base/array","../_base/lang"],function(_43d,_43e,_43f,_440,_441,_442,lang){_43d.deepCopy=function deepCopy(_443,_444){for(var name in _444){var tval=_443[name],sval=_444[name];if(tval!==sval){if(tval&&typeof tval==="object"&&sval&&typeof sval==="object"){_43d.deepCopy(tval,sval);}else{_443[name]=sval;}}}return _443;};_43d.deepCreate=function deepCreate(_445,_446){_446=_446||{};var _447=lang.delegate(_445),name,_448;for(name in _445){_448=_445[name];if(_448&&typeof _448==="object"){_447[name]=_43d.deepCreate(_448,_446[name]);}}return _43d.deepCopy(_447,_446);};var _449=Object.freeze||function(obj){return obj;};function _44a(_44b){return _449(_44b);};_43d.deferred=function deferred(_44c,_44d,_44e,_44f,_450,last){var def=new _440(function(_451){_44d&&_44d(def,_44c);if(!_451||!(_451 instanceof _43e)&&!(_451 instanceof _43f)){return new _43f("Request canceled",_44c);}return _451;});def.response=_44c;def.isValid=_44e;def.isReady=_44f;def.handleResponse=_450;function _452(_453){_453.response=_44c;throw _453;};var _454=def.then(_44a).otherwise(_452);if(_43d.notify){_454.then(lang.hitch(_43d.notify,"emit","load"),lang.hitch(_43d.notify,"emit","error"));}var _455=_454.then(function(_456){return _456.data||_456.text;});var _457=_449(lang.delegate(_455,{response:_454}));if(last){def.then(function(_458){last.call(def,_458);},function(_459){last.call(def,_44c,_459);});}def.promise=_457;def.then=_457.then;return def;};_43d.addCommonMethods=function addCommonMethods(_45a,_45b){_442.forEach(_45b||["GET","POST","PUT","DELETE"],function(_45c){_45a[(_45c==="DELETE"?"DEL":_45c).toLowerCase()]=function(url,_45d){_45d=lang.delegate(_45d||{});_45d.method=_45c;return _45a(url,_45d);};});};_43d.parseArgs=function parseArgs(url,_45e,_45f){var data=_45e.data,_460=_45e.query;if(data&&!_45f){if(typeof data==="object"){_45e.data=_441.objectToQuery(data);}}if(_460){if(typeof _460==="object"){_460=_441.objectToQuery(_460);}if(_45e.preventCache){_460+=(_460?"&":"")+"request.preventCache="+(+(new Date));}}else{if(_45e.preventCache){_460="request.preventCache="+(+(new Date));}}if(url&&_460){url+=(~url.indexOf("?")?"&":"?")+_460;}return {url:url,options:_45e,getHeader:function(_461){return null;}};};_43d.checkStatus=function(stat){stat=stat||0;return (stat>=200&&stat<300)||stat===304||stat===1223||!stat;};});},"dojo/Evented":function(){define("dojo/Evented",["./aspect","./on"],function(_462,on){"use strict";var _463=_462.after;function _464(){};_464.prototype={on:function(type,_465){return on.parse(this,type,_465,function(_466,type){return _463(_466,"on"+type,_465,true);});},emit:function(type,_467){var args=[this];args.push.apply(args,arguments);return on.emit.apply(on,args);}};return _464;});},"dojo/mouse":function(){define("dojo/mouse",["./_base/kernel","./on","./has","./dom","./_base/window"],function(dojo,on,has,dom,win){has.add("dom-quirks",win.doc&&win.doc.compatMode=="BackCompat");has.add("events-mouseenter",win.doc&&"onmouseenter" in win.doc.createElement("div"));has.add("events-mousewheel",win.doc&&"onmousewheel" in win.doc);var _468;if(has("dom-quirks")||!has("dom-addeventlistener")){_468={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,_469){return e.button&_469;},isLeft:function(e){return e.button&1;},isMiddle:function(e){return e.button&4;},isRight:function(e){return e.button&2;}};}else{_468={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,_46a){return e.button==_46a;},isLeft:function(e){return e.button==0;},isMiddle:function(e){return e.button==1;},isRight:function(e){return e.button==2;}};}dojo.mouseButtons=_468;function _46b(type,_46c){var _46d=function(node,_46e){return on(node,type,function(evt){if(_46c){return _46c(evt,_46e);}if(!dom.isDescendant(evt.relatedTarget,node)){return _46e.call(this,evt);}});};_46d.bubble=function(_46f){return _46b(type,function(evt,_470){var _471=_46f(evt.target);var _472=evt.relatedTarget;if(_471&&(_471!=(_472&&_472.nodeType==1&&_46f(_472)))){return _470.call(_471,evt);}});};return _46d;};var _473;if(has("events-mousewheel")){_473="mousewheel";}else{_473=function(node,_474){return on(node,"DOMMouseScroll",function(evt){evt.wheelDelta=-evt.detail;_474.call(this,evt);});};}return {_eventHandler:_46b,enter:_46b("mouseover"),leave:_46b("mouseout"),wheel:_473,isLeft:_468.isLeft,isMiddle:_468.isMiddle,isRight:_468.isRight};});},"dojo/_base/xhr":function(){define("dojo/_base/xhr",["./kernel","./sniff","require","../io-query","../dom","../dom-form","./Deferred","./config","./json","./lang","./array","../on","../aspect","../request/watch","../request/xhr","../request/util"],function(dojo,has,_475,ioq,dom,_476,_477,_478,json,lang,_479,on,_47a,_47b,_47c,util){dojo._xhrObj=_47c._create;var cfg=dojo.config;dojo.objectToQuery=ioq.objectToQuery;dojo.queryToObject=ioq.queryToObject;dojo.fieldToObject=_476.fieldToObject;dojo.formToObject=_476.toObject;dojo.formToQuery=_476.toQuery;dojo.formToJson=_476.toJson;dojo._blockAsync=false;var _47d=dojo._contentHandlers=dojo.contentHandlers={"text":function(xhr){return xhr.responseText;},"json":function(xhr){return json.fromJson(xhr.responseText||null);},"json-comment-filtered":function(xhr){if(!_478.useCommentedJson){console.warn("Consider using the standard mimetype:application/json."+" json-commenting can introduce security issues. To"+" decrease the chances of hijacking, use the standard the 'json' handler and"+" prefix your json with: {}&&\n"+"Use djConfig.useCommentedJson=true to turn off this message.");}var _47e=xhr.responseText;var _47f=_47e.indexOf("/*");var _480=_47e.lastIndexOf("*/");if(_47f==-1||_480==-1){throw new Error("JSON was not comment filtered");}return json.fromJson(_47e.substring(_47f+2,_480));},"javascript":function(xhr){return dojo.eval(xhr.responseText);},"xml":function(xhr){var _481=xhr.responseXML;if(has("ie")){if((!_481||!_481.documentElement)){var ms=function(n){return "MSXML"+n+".DOMDocument";};var dp=["Microsoft.XMLDOM",ms(6),ms(4),ms(3),ms(2)];_479.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(xhr.responseText);_481=dom;}catch(e){return false;}return true;});}}return _481;},"json-comment-optional":function(xhr){if(xhr.responseText&&/^[^{\[]*\/\*/.test(xhr.responseText)){return _47d["json-comment-filtered"](xhr);}else{return _47d["json"](xhr);}}};dojo._ioSetArgs=function(args,_482,_483,_484){var _485={args:args,url:args.url};var _486=null;if(args.form){var form=dom.byId(args.form);var _487=form.getAttributeNode("action");_485.url=_485.url||(_487?_487.value:null);_486=_476.toObject(form);}var _488=[{}];if(_486){_488.push(_486);}if(args.content){_488.push(args.content);}if(args.preventCache){_488.push({"dojo.preventCache":new Date().valueOf()});}_485.query=ioq.objectToQuery(lang.mixin.apply(null,_488));_485.handleAs=args.handleAs||"text";var d=new _477(function(dfd){dfd.canceled=true;_482&&_482(dfd);var err=dfd.ioArgs.error;if(!err){err=new Error("request cancelled");err.dojoType="cancel";dfd.ioArgs.error=err;}return err;});d.addCallback(_483);var ld=args.load;if(ld&&lang.isFunction(ld)){d.addCallback(function(_489){return ld.call(args,_489,_485);});}var err=args.error;if(err&&lang.isFunction(err)){d.addErrback(function(_48a){return err.call(args,_48a,_485);});}var _48b=args.handle;if(_48b&&lang.isFunction(_48b)){d.addBoth(function(_48c){return _48b.call(args,_48c,_485);});}d.addErrback(function(_48d){return _484(_48d,d);});if(cfg.ioPublish&&dojo.publish&&_485.args.ioPublish!==false){d.addCallbacks(function(res){dojo.publish("/dojo/io/load",[d,res]);return res;},function(res){dojo.publish("/dojo/io/error",[d,res]);return res;});d.addBoth(function(res){dojo.publish("/dojo/io/done",[d,res]);return res;});}d.ioArgs=_485;return d;};var _48e=function(dfd){var ret=_47d[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);return ret===undefined?null:ret;};var _48f=function(_490,dfd){if(!dfd.ioArgs.args.failOk){console.error(_490);}return _490;};var _491=function(dfd){if(_492<=0){_492=0;if(cfg.ioPublish&&dojo.publish&&(!dfd||dfd&&dfd.ioArgs.args.ioPublish!==false)){dojo.publish("/dojo/io/stop");}}};var _492=0;_47a.after(_47b,"_onAction",function(){_492-=1;});_47a.after(_47b,"_onInFlight",_491);dojo._ioCancelAll=_47b.cancelAll;dojo._ioNotifyStart=function(dfd){if(cfg.ioPublish&&dojo.publish&&dfd.ioArgs.args.ioPublish!==false){if(!_492){dojo.publish("/dojo/io/start");}_492+=1;dojo.publish("/dojo/io/send",[dfd]);}};dojo._ioWatch=function(dfd,_493,_494,_495){var args=dfd.ioArgs.options=dfd.ioArgs.args;lang.mixin(dfd,{response:dfd.ioArgs,isValid:function(_496){return _493(dfd);},isReady:function(_497){return _494(dfd);},handleResponse:function(_498){return _495(dfd);}});_47b(dfd);_491(dfd);};var _499="application/x-www-form-urlencoded";dojo._ioAddQueryToUrl=function(_49a){if(_49a.query.length){_49a.url+=(_49a.url.indexOf("?")==-1?"?":"&")+_49a.query;_49a.query=null;}};dojo.xhr=function(_49b,args,_49c){var rDfd;var dfd=dojo._ioSetArgs(args,function(dfd){rDfd&&rDfd.cancel();},_48e,_48f);var _49d=dfd.ioArgs;if("postData" in args){_49d.query=args.postData;}else{if("putData" in args){_49d.query=args.putData;}else{if("rawBody" in args){_49d.query=args.rawBody;}else{if((arguments.length>2&&!_49c)||"POST|PUT".indexOf(_49b.toUpperCase())===-1){dojo._ioAddQueryToUrl(_49d);}}}}var _49e={method:_49b,handleAs:"text",timeout:args.timeout,withCredentials:args.withCredentials,ioArgs:_49d};if(typeof args.headers!=="undefined"){_49e.headers=args.headers;}if(typeof args.contentType!=="undefined"){if(!_49e.headers){_49e.headers={};}_49e.headers["Content-Type"]=args.contentType;}if(typeof _49d.query!=="undefined"){_49e.data=_49d.query;}if(typeof args.sync!=="undefined"){_49e.sync=args.sync;}dojo._ioNotifyStart(dfd);try{rDfd=_47c(_49d.url,_49e,true);}catch(e){dfd.cancel();return dfd;}dfd.ioArgs.xhr=rDfd.response.xhr;rDfd.then(function(){dfd.resolve(dfd);}).otherwise(function(_49f){_49d.error=_49f;dfd.reject(_49f);});return dfd;};dojo.xhrGet=function(args){return dojo.xhr("GET",args);};dojo.rawXhrPost=dojo.xhrPost=function(args){return dojo.xhr("POST",args,true);};dojo.rawXhrPut=dojo.xhrPut=function(args){return dojo.xhr("PUT",args,true);};dojo.xhrDelete=function(args){return dojo.xhr("DELETE",args);};dojo._isDocumentOk=function(x){return util.checkStatus(x.status);};dojo._getText=function(url){var _4a0;dojo.xhrGet({url:url,sync:true,load:function(text){_4a0=text;}});return _4a0;};lang.mixin(dojo.xhr,{_xhrObj:dojo._xhrObj,fieldToObject:_476.fieldToObject,formToObject:_476.toObject,objectToQuery:ioq.objectToQuery,formToQuery:_476.toQuery,formToJson:_476.toJson,queryToObject:ioq.queryToObject,contentHandlers:_47d,_ioSetArgs:dojo._ioSetArgs,_ioCancelAll:dojo._ioCancelAll,_ioNotifyStart:dojo._ioNotifyStart,_ioWatch:dojo._ioWatch,_ioAddQueryToUrl:dojo._ioAddQueryToUrl,_isDocumentOk:dojo._isDocumentOk,_getText:dojo._getText,get:dojo.xhrGet,post:dojo.xhrPost,put:dojo.xhrPut,del:dojo.xhrDelete});return dojo.xhr;});},"dojo/topic":function(){define("dojo/topic",["./Evented"],function(_4a1){var hub=new _4a1;return {publish:function(_4a2,_4a3){return hub.emit.apply(hub,arguments);},subscribe:function(_4a4,_4a5){return hub.on.apply(hub,arguments);}};});},"dojo/loadInit":function(){define("dojo/loadInit",["./_base/loader"],function(_4a6){return {dynamic:0,normalize:function(id){return id;},load:_4a6.loadInit};});},"dojo/_base/unload":function(){define(["./kernel","./lang","../on"],function(dojo,lang,on){var win=window;var _4a7={addOnWindowUnload:function(obj,_4a8){if(!dojo.windowUnloaded){on(win,"unload",(dojo.windowUnloaded=function(){}));}on(win,"unload",lang.hitch(obj,_4a8));},addOnUnload:function(obj,_4a9){on(win,"beforeunload",lang.hitch(obj,_4a9));}};dojo.addOnWindowUnload=_4a7.addOnWindowUnload;dojo.addOnUnload=_4a7.addOnUnload;return _4a7;});},"dojo/Deferred":function(){define(["./has","./_base/lang","./errors/CancelError","./promise/Promise","./promise/instrumentation"],function(has,lang,_4aa,_4ab,_4ac){"use strict";var _4ad=0,_4ae=1,_4af=2;var _4b0="This deferred has already been fulfilled.";var _4b1=Object.freeze||function(){};var _4b2=function(_4b3,type,_4b4,_4b5,_4b6){if(1){if(type===_4af&&_4b7.instrumentRejected&&_4b3.length===0){_4b7.instrumentRejected(_4b4,false,_4b5,_4b6);}}for(var i=0;i<_4b3.length;i++){_4b8(_4b3[i],type,_4b4,_4b5);}};var _4b8=function(_4b9,type,_4ba,_4bb){var func=_4b9[type];var _4bc=_4b9.deferred;if(func){try{var _4bd=func(_4ba);if(_4bd&&typeof _4bd.then==="function"){_4b9.cancel=_4bd.cancel;_4bd.then(_4be(_4bc,_4ae),_4be(_4bc,_4af),_4be(_4bc,_4ad));return;}_4bf(_4bc,_4ae,_4bd);}catch(error){_4bf(_4bc,_4af,error);}}else{_4bf(_4bc,type,_4ba);}if(1){if(type===_4af&&_4b7.instrumentRejected){_4b7.instrumentRejected(_4ba,!!func,_4bb,_4bc.promise);}}};var _4be=function(_4c0,type){return function(_4c1){_4bf(_4c0,type,_4c1);};};var _4bf=function(_4c2,type,_4c3){if(!_4c2.isCanceled()){switch(type){case _4ad:_4c2.progress(_4c3);break;case _4ae:_4c2.resolve(_4c3);break;case _4af:_4c2.reject(_4c3);break;}}};var _4b7=function(_4c4){var _4c5=this.promise=new _4ab();var _4c6=this;var _4c7,_4c8,_4c9;var _4ca=false;var _4cb=[];if(1&&Error.captureStackTrace){Error.captureStackTrace(_4c6,_4b7);Error.captureStackTrace(_4c5,_4b7);}this.isResolved=_4c5.isResolved=function(){return _4c7===_4ae;};this.isRejected=_4c5.isRejected=function(){return _4c7===_4af;};this.isFulfilled=_4c5.isFulfilled=function(){return !!_4c7;};this.isCanceled=_4c5.isCanceled=function(){return _4ca;};this.progress=function(_4cc,_4cd){if(!_4c7){_4b2(_4cb,_4ad,_4cc,null,_4c6);return _4c5;}else{if(_4cd===true){throw new Error(_4b0);}else{return _4c5;}}};this.resolve=function(_4ce,_4cf){if(!_4c7){_4b2(_4cb,_4c7=_4ae,_4c8=_4ce,null,_4c6);_4cb=null;return _4c5;}else{if(_4cf===true){throw new Error(_4b0);}else{return _4c5;}}};var _4d0=this.reject=function(_4d1,_4d2){if(!_4c7){if(1&&Error.captureStackTrace){Error.captureStackTrace(_4c9={},_4d0);}_4b2(_4cb,_4c7=_4af,_4c8=_4d1,_4c9,_4c6);_4cb=null;return _4c5;}else{if(_4d2===true){throw new Error(_4b0);}else{return _4c5;}}};this.then=_4c5.then=function(_4d3,_4d4,_4d5){var _4d6=[_4d5,_4d3,_4d4];_4d6.cancel=_4c5.cancel;_4d6.deferred=new _4b7(function(_4d7){return _4d6.cancel&&_4d6.cancel(_4d7);});if(_4c7&&!_4cb){_4b8(_4d6,_4c7,_4c8,_4c9);}else{_4cb.push(_4d6);}return _4d6.deferred.promise;};this.cancel=_4c5.cancel=function(_4d8,_4d9){if(!_4c7){if(_4c4){var _4da=_4c4(_4d8);_4d8=typeof _4da==="undefined"?_4d8:_4da;}_4ca=true;if(!_4c7){if(typeof _4d8==="undefined"){_4d8=new _4aa();}_4d0(_4d8);return _4d8;}else{if(_4c7===_4af&&_4c8===_4d8){return _4d8;}}}else{if(_4d9===true){throw new Error(_4b0);}}};_4b1(_4c5);};_4b7.prototype.toString=function(){return "[object Deferred]";};if(_4ac){_4ac(_4b7);}return _4b7;});},"dojo/_base/NodeList":function(){define("dojo/_base/NodeList",["./kernel","../query","./array","./html","../NodeList-dom"],function(dojo,_4db,_4dc){var _4dd=_4db.NodeList,nlp=_4dd.prototype;nlp.connect=_4dd._adaptAsForEach(function(){return dojo.connect.apply(this,arguments);});nlp.coords=_4dd._adaptAsMap(dojo.coords);_4dd.events=["blur","focus","change","click","error","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","submit"];_4dc.forEach(_4dd.events,function(evt){var _4de="on"+evt;nlp[_4de]=function(a,b){return this.connect(_4de,a,b);};});dojo.NodeList=_4dd;return _4dd;});},"dojo/_base/Color":function(){define(["./kernel","./lang","./array","./config"],function(dojo,lang,_4df,_4e0){var _4e1=dojo.Color=function(_4e2){if(_4e2){this.setColor(_4e2);}};_4e1.named={"black":[0,0,0],"silver":[192,192,192],"gray":[128,128,128],"white":[255,255,255],"maroon":[128,0,0],"red":[255,0,0],"purple":[128,0,128],"fuchsia":[255,0,255],"green":[0,128,0],"lime":[0,255,0],"olive":[128,128,0],"yellow":[255,255,0],"navy":[0,0,128],"blue":[0,0,255],"teal":[0,128,128],"aqua":[0,255,255],"transparent":_4e0.transparentColor||[0,0,0,0]};lang.extend(_4e1,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_4e3){if(lang.isString(_4e3)){_4e1.fromString(_4e3,this);}else{if(lang.isArray(_4e3)){_4e1.fromArray(_4e3,this);}else{this._set(_4e3.r,_4e3.g,_4e3.b,_4e3.a);if(!(_4e3 instanceof _4e1)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=_4df.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_4e4){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_4e4?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});_4e1.blendColors=dojo.blendColors=function(_4e5,end,_4e6,obj){var t=obj||new _4e1();_4df.forEach(["r","g","b","a"],function(x){t[x]=_4e5[x]+(end[x]-_4e5[x])*_4e6;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};_4e1.fromRgb=dojo.colorFromRgb=function(_4e7,obj){var m=_4e7.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&_4e1.fromArray(m[1].split(/\s*,\s*/),obj);};_4e1.fromHex=dojo.colorFromHex=function(_4e8,obj){var t=obj||new _4e1(),bits=(_4e8.length==4)?4:8,mask=(1<<bits)-1;_4e8=Number("0x"+_4e8.substr(1));if(isNaN(_4e8)){return null;}_4df.forEach(["b","g","r"],function(x){var c=_4e8&mask;_4e8>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};_4e1.fromArray=dojo.colorFromArray=function(a,obj){var t=obj||new _4e1();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};_4e1.fromString=dojo.colorFromString=function(str,obj){var a=_4e1.named[str];return a&&_4e1.fromArray(a,obj)||_4e1.fromRgb(str,obj)||_4e1.fromHex(str,obj);};return _4e1;});},"dojo/promise/instrumentation":function(){define(["./tracer","../has","../_base/lang","../_base/array"],function(_4e9,has,lang,_4ea){function _4eb(_4ec,_4ed,_4ee){var _4ef="";if(_4ec&&_4ec.stack){_4ef+=_4ec.stack;}if(_4ed&&_4ed.stack){_4ef+="\n ----------------------------------------\n rejected"+_4ed.stack.split("\n").slice(1).join("\n").replace(/^\s+/," ");}if(_4ee&&_4ee.stack){_4ef+="\n ----------------------------------------\n"+_4ee.stack;}console.error(_4ec,_4ef);};function _4f0(_4f1,_4f2,_4f3,_4f4){if(!_4f2){_4eb(_4f1,_4f3,_4f4);}};var _4f5=[];var _4f6=false;var _4f7=1000;function _4f8(_4f9,_4fa,_4fb,_4fc){if(_4fa){_4ea.some(_4f5,function(obj,ix){if(obj.error===_4f9){_4f5.splice(ix,1);return true;}});}else{if(!_4ea.some(_4f5,function(obj){return obj.error===_4f9;})){_4f5.push({error:_4f9,rejection:_4fb,deferred:_4fc,timestamp:new Date().getTime()});}}if(!_4f6){_4f6=setTimeout(_4fd,_4f7);}};function _4fd(){var now=new Date().getTime();var _4fe=now-_4f7;_4f5=_4ea.filter(_4f5,function(obj){if(obj.timestamp<_4fe){_4eb(obj.error,obj.rejection,obj.deferred);return false;}return true;});if(_4f5.length){_4f6=setTimeout(_4fd,_4f5[0].timestamp+_4f7-now);}};return function(_4ff){var _500=has("config-useDeferredInstrumentation");if(_500){_4e9.on("resolved",lang.hitch(console,"log","resolved"));_4e9.on("rejected",lang.hitch(console,"log","rejected"));_4e9.on("progress",lang.hitch(console,"log","progress"));var args=[];if(typeof _500==="string"){args=_500.split(",");_500=args.shift();}if(_500==="report-rejections"){_4ff.instrumentRejected=_4f0;}else{if(_500==="report-unhandled-rejections"||_500===true||_500===1){_4ff.instrumentRejected=_4f8;_4f7=parseInt(args[0],10)||_4f7;}else{throw new Error("Unsupported instrumentation usage <"+_500+">");}}}};});},"dojo/selector/_loader":function(){define(["../has","require"],function(has,_501){"use strict";var _502=document.createElement("div");has.add("dom-qsa2.1",!!_502.querySelectorAll);has.add("dom-qsa3",function(){try{_502.innerHTML="<p class='TEST'></p>";return _502.querySelectorAll(".TEST:empty").length==1;}catch(e){}});var _503;var acme="./acme",lite="./lite";return {load:function(id,_504,_505,_506){var req=_501;id=id=="default"?has("config-selectorEngine")||"css3":id;id=id=="css2"||id=="lite"?lite:id=="css2.1"?has("dom-qsa2.1")?lite:acme:id=="css3"?has("dom-qsa3")?lite:acme:id=="acme"?acme:(req=_504)&&id;if(id.charAt(id.length-1)=="?"){id=id.substring(0,id.length-1);var _507=true;}if(_507&&(has("dom-compliant-qsa")||_503)){return _505(_503);}req([id],function(_508){if(id!="./lite"){_503=_508;}_505(_508);});}};});},"dojo/promise/Promise":function(){define(["../_base/lang"],function(lang){"use strict";function _509(){throw new TypeError("abstract");};return lang.extend(function Promise(){},{then:function(_50a,_50b,_50c){_509();},cancel:function(_50d,_50e){_509();},isResolved:function(){_509();},isRejected:function(){_509();},isFulfilled:function(){_509();},isCanceled:function(){_509();},always:function(_50f){return this.then(_50f,_50f);},otherwise:function(_510){return this.then(null,_510);},trace:function(){return this;},traceRejected:function(){return this;},toString:function(){return "[object Promise]";}});});},"dojo/request/watch":function(){define(["./util","../errors/RequestTimeoutError","../errors/CancelError","../_base/array","../_base/window","../has!host-browser?dom-addeventlistener?:../on:"],function(util,_511,_512,_513,win,on){var _514=null,_515=[];function _516(){var now=+(new Date);for(var i=0,dfd;i<_515.length&&(dfd=_515[i]);i++){var _517=dfd.response,_518=_517.options;if((dfd.isCanceled&&dfd.isCanceled())||(dfd.isValid&&!dfd.isValid(_517))){_515.splice(i--,1);_519._onAction&&_519._onAction();}else{if(dfd.isReady&&dfd.isReady(_517)){_515.splice(i--,1);dfd.handleResponse(_517);_519._onAction&&_519._onAction();}else{if(dfd.startTime){if(dfd.startTime+(_518.timeout||0)<now){_515.splice(i--,1);dfd.cancel(new _511(_517));_519._onAction&&_519._onAction();}}}}}_519._onInFlight&&_519._onInFlight(dfd);if(!_515.length){clearInterval(_514);_514=null;}};function _519(dfd){if(dfd.response.options.timeout){dfd.startTime=+(new Date);}if(dfd.isFulfilled()){return;}_515.push(dfd);if(!_514){_514=setInterval(_516,50);}if(dfd.response.options.sync){_516();}};_519.cancelAll=function cancelAll(){try{_513.forEach(_515,function(dfd){try{dfd.cancel(new _512("All requests canceled."));}catch(e){}});}catch(e){}};if(win&&on&&win.doc.attachEvent){on(win.global,"unload",function(){_519.cancelAll();});}return _519;});},"dojo/on":function(){define(["./has!dom-addeventlistener?:./aspect","./_base/kernel","./has"],function(_51a,dojo,has){"use strict";if(1){var _51b=window.ScriptEngineMajorVersion;has.add("jscript",_51b&&(_51b()+ScriptEngineMinorVersion()/10));has.add("event-orientationchange",has("touch")&&!has("android"));has.add("event-stopimmediatepropagation",window.Event&&!!window.Event.prototype&&!!window.Event.prototype.stopImmediatePropagation);}var on=function(_51c,type,_51d,_51e){if(_51c.on&&typeof type!="function"){return _51c.on(type,_51d);}return on.parse(_51c,type,_51d,_51f,_51e,this);};on.pausable=function(_520,type,_521,_522){var _523;var _524=on(_520,type,function(){if(!_523){return _521.apply(this,arguments);}},_522);_524.pause=function(){_523=true;};_524.resume=function(){_523=false;};return _524;};on.once=function(_525,type,_526,_527){var _528=on(_525,type,function(){_528.remove();return _526.apply(this,arguments);});return _528;};on.parse=function(_529,type,_52a,_52b,_52c,_52d){if(type.call){return type.call(_52d,_529,_52a);}if(type.indexOf(",")>-1){var _52e=type.split(/\s*,\s*/);var _52f=[];var i=0;var _530;while(_530=_52e[i++]){_52f.push(_52b(_529,_530,_52a,_52c,_52d));}_52f.remove=function(){for(var i=0;i<_52f.length;i++){_52f[i].remove();}};return _52f;}return _52b(_529,type,_52a,_52c,_52d);};var _531=/^touch/;function _51f(_532,type,_533,_534,_535){var _536=type.match(/(.*):(.*)/);if(_536){type=_536[2];_536=_536[1];return on.selector(_536,type).call(_535,_532,_533);}if(has("touch")){if(_531.test(type)){_533=_537(_533);}if(!has("event-orientationchange")&&(type=="orientationchange")){type="resize";_532=window;_533=_537(_533);}}if(_538){_533=_538(_533);}if(_532.addEventListener){var _539=type in _53a,_53b=_539?_53a[type]:type;_532.addEventListener(_53b,_533,_539);return {remove:function(){_532.removeEventListener(_53b,_533,_539);}};}type="on"+type;if(_53c&&_532.attachEvent){return _53c(_532,type,_533);}throw new Error("Target must be an event emitter");};on.selector=function(_53d,_53e,_53f){return function(_540,_541){var _542=typeof _53d=="function"?{matches:_53d}:this,_543=_53e.bubble;function _544(_545){_542=_542&&_542.matches?_542:dojo.query;while(!_542.matches(_545,_53d,_540)){if(_545==_540||_53f===false||!(_545=_545.parentNode)||_545.nodeType!=1){return;}}return _545;};if(_543){return on(_540,_543(_544),_541);}return on(_540,_53e,function(_546){var _547=_544(_546.target);return _547&&_541.call(_547,_546);});};};function _548(){this.cancelable=false;};function _549(){this.bubbles=false;};var _54a=[].slice,_54b=on.emit=function(_54c,type,_54d){var args=_54a.call(arguments,2);var _54e="on"+type;if("parentNode" in _54c){var _54f=args[0]={};for(var i in _54d){_54f[i]=_54d[i];}_54f.preventDefault=_548;_54f.stopPropagation=_549;_54f.target=_54c;_54f.type=type;_54d=_54f;}do{_54c[_54e]&&_54c[_54e].apply(_54c,args);}while(_54d&&_54d.bubbles&&(_54c=_54c.parentNode));return _54d&&_54d.cancelable&&_54d;};var _53a={};if(!has("event-stopimmediatepropagation")){var _550=function(){this.immediatelyStopped=true;this.modified=true;};var _538=function(_551){return function(_552){if(!_552.immediatelyStopped){_552.stopImmediatePropagation=_550;return _551.apply(this,arguments);}};};}if(has("dom-addeventlistener")){_53a={focusin:"focus",focusout:"blur"};if(has("opera")){_53a.keydown="keypress";}on.emit=function(_553,type,_554){if(_553.dispatchEvent&&document.createEvent){var _555=_553.ownerDocument.createEvent("HTMLEvents");_555.initEvent(type,!!_554.bubbles,!!_554.cancelable);for(var i in _554){var _556=_554[i];if(!(i in _555)){_555[i]=_554[i];}}return _553.dispatchEvent(_555)&&_555;}return _54b.apply(on,arguments);};}else{on._fixEvent=function(evt,_557){if(!evt){var w=_557&&(_557.ownerDocument||_557.document||_557).parentWindow||window;evt=w.event;}if(!evt){return evt;}if(_558&&evt.type==_558.type){evt=_558;}if(!evt.target){evt.target=evt.srcElement;evt.currentTarget=(_557||evt.srcElement);if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}if(!evt.stopPropagation){evt.stopPropagation=_559;evt.preventDefault=_55a;}switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;_55b(evt);break;}}return evt;};var _558,_55c=function(_55d){this.handle=_55d;};_55c.prototype.remove=function(){delete _dojoIEListeners_[this.handle];};var _55e=function(_55f){return function(evt){evt=on._fixEvent(evt,this);var _560=_55f.call(this,evt);if(evt.modified){if(!_558){setTimeout(function(){_558=null;});}_558=evt;}return _560;};};var _53c=function(_561,type,_562){_562=_55e(_562);if(((_561.ownerDocument?_561.ownerDocument.parentWindow:_561.parentWindow||_561.window||window)!=top||has("jscript")<5.8)&&!has("config-_allow_leaks")){if(typeof _dojoIEListeners_=="undefined"){_dojoIEListeners_=[];}var _563=_561[type];if(!_563||!_563.listeners){var _564=_563;_563=Function("event","var callee = arguments.callee; for(var i = 0; i<callee.listeners.length; i++){var listener = _dojoIEListeners_[callee.listeners[i]]; if(listener){listener.call(this,event);}}");_563.listeners=[];_561[type]=_563;_563.global=this;if(_564){_563.listeners.push(_dojoIEListeners_.push(_564)-1);}}var _565;_563.listeners.push(_565=(_563.global._dojoIEListeners_.push(_562)-1));return new _55c(_565);}return _51a.after(_561,type,_562,true);};var _55b=function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _559=function(){this.cancelBubble=true;};var _55a=on._preventDefault=function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){try{this.keyCode=0;}catch(e){}}this.defaultPrevented=true;this.returnValue=false;};}if(has("touch")){var _566=function(){};var _567=window.orientation;var _537=function(_568){return function(_569){var _56a=_569.corrected;if(!_56a){var type=_569.type;try{delete _569.type;}catch(e){}if(_569.type){_566.prototype=_569;var _56a=new _566;_56a.preventDefault=function(){_569.preventDefault();};_56a.stopPropagation=function(){_569.stopPropagation();};}else{_56a=_569;_56a.type=type;}_569.corrected=_56a;if(type=="resize"){if(_567==window.orientation){return null;}_567=window.orientation;_56a.type="orientationchange";return _568.call(this,_56a);}if(!("rotation" in _56a)){_56a.rotation=0;_56a.scale=1;}var _56b=_56a.changedTouches[0];for(var i in _56b){delete _56a[i];_56a[i]=_56b[i];}}return _568.call(this,_56a);};};}return on;});},"dojo/_base/sniff":function(){define(["./kernel","./lang","../sniff"],function(dojo,lang,has){if(!1){return has;}dojo._name="browser";lang.mixin(dojo,{isBrowser:true,isFF:has("ff"),isIE:has("ie"),isKhtml:has("khtml"),isWebKit:has("webkit"),isMozilla:has("mozilla"),isMoz:has("mozilla"),isOpera:has("opera"),isSafari:has("safari"),isChrome:has("chrome"),isMac:has("mac"),isIos:has("ios"),isAndroid:has("android"),isWii:has("wii"),isQuirks:has("quirks"),isAir:has("air")});dojo.locale=dojo.locale||(has("ie")?navigator.userLanguage:navigator.language).toLowerCase();return has;});},"dojo/errors/create":function(){define(["../_base/lang"],function(lang){return function(name,ctor,base,_56c){base=base||Error;var _56d=function(_56e){if(base===Error){if(Error.captureStackTrace){Error.captureStackTrace(this,_56d);}var err=Error.call(this,_56e),prop;for(prop in err){if(err.hasOwnProperty(prop)){this[prop]=err[prop];}}this.message=_56e;this.stack=err.stack;}else{base.apply(this,arguments);}if(ctor){ctor.apply(this,arguments);}};_56d.prototype=lang.delegate(base.prototype,_56c);_56d.prototype.name=name;_56d.prototype.constructor=_56d;return _56d;};});},"dojo/_base/array":function(){define(["./kernel","../has","./lang"],function(dojo,has,lang){var _56f={},u;function _570(fn){return _56f[fn]=new Function("item","index","array",fn);};function _571(some){var _572=!some;return function(a,fn,o){var i=0,l=a&&a.length||0,_573;if(l&&typeof a=="string"){a=a.split("");}if(typeof fn=="string"){fn=_56f[fn]||_570(fn);}if(o){for(;i<l;++i){_573=!fn.call(o,a[i],i,a);if(some^_573){return !_573;}}}else{for(;i<l;++i){_573=!fn(a[i],i,a);if(some^_573){return !_573;}}}return _572;};};function _574(up){var _575=1,_576=0,_577=0;if(!up){_575=_576=_577=-1;}return function(a,x,from,last){if(last&&_575>0){return _578.lastIndexOf(a,x,from);}var l=a&&a.length||0,end=up?l+_577:_576,i;if(from===u){i=up?_576:l+_577;}else{if(from<0){i=l+from;if(i<0){i=_576;}}else{i=from>=l?l+_577:from;}}if(l&&typeof a=="string"){a=a.split("");}for(;i!=end;i+=_575){if(a[i]==x){return i;}}return -1;};};var _578={every:_571(false),some:_571(true),indexOf:_574(true),lastIndexOf:_574(false),forEach:function(arr,_579,_57a){var i=0,l=arr&&arr.length||0;if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _579=="string"){_579=_56f[_579]||_570(_579);}if(_57a){for(;i<l;++i){_579.call(_57a,arr[i],i,arr);}}else{for(;i<l;++i){_579(arr[i],i,arr);}}},map:function(arr,_57b,_57c,Ctr){var i=0,l=arr&&arr.length||0,out=new (Ctr||Array)(l);if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _57b=="string"){_57b=_56f[_57b]||_570(_57b);}if(_57c){for(;i<l;++i){out[i]=_57b.call(_57c,arr[i],i,arr);}}else{for(;i<l;++i){out[i]=_57b(arr[i],i,arr);}}return out;},filter:function(arr,_57d,_57e){var i=0,l=arr&&arr.length||0,out=[],_57f;if(l&&typeof arr=="string"){arr=arr.split("");}if(typeof _57d=="string"){_57d=_56f[_57d]||_570(_57d);}if(_57e){for(;i<l;++i){_57f=arr[i];if(_57d.call(_57e,_57f,i,arr)){out.push(_57f);}}}else{for(;i<l;++i){_57f=arr[i];if(_57d(_57f,i,arr)){out.push(_57f);}}}return out;},clearCache:function(){_56f={};}};1&&lang.mixin(dojo,_578);return _578;});},"dojo/_base/json":function(){define(["./kernel","../json"],function(dojo,json){dojo.fromJson=function(js){return eval("("+js+")");};dojo._escapeString=json.stringify;dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_580){return json.stringify(it,function(key,_581){if(_581){var tf=_581.__json__||_581.json;if(typeof tf=="function"){return tf.call(_581);}}return _581;},_580&&dojo.toJsonIndentStr);};return dojo;});},"dojo/_base/window":function(){define("dojo/_base/window",["./kernel","./lang","../sniff"],function(dojo,lang,has){var ret={global:dojo.global,doc:this["document"]||null,body:function(doc){doc=doc||dojo.doc;return doc.body||doc.getElementsByTagName("body")[0];},setContext:function(_582,_583){dojo.global=ret.global=_582;dojo.doc=ret.doc=_583;},withGlobal:function(_584,_585,_586,_587){var _588=dojo.global;try{dojo.global=ret.global=_584;return ret.withDoc.call(null,_584.document,_585,_586,_587);}finally{dojo.global=ret.global=_588;}},withDoc:function(_589,_58a,_58b,_58c){var _58d=ret.doc,oldQ=has("quirks"),_58e=has("ie"),isIE,mode,pwin;try{dojo.doc=ret.doc=_589;dojo.isQuirks=has.add("quirks",dojo.doc.compatMode=="BackCompat",true,true);if(has("ie")){if((pwin=_589.parentWindow)&&pwin.navigator){isIE=parseFloat(pwin.navigator.appVersion.split("MSIE ")[1])||undefined;mode=_589.documentMode;if(mode&&mode!=5&&Math.floor(isIE)!=mode){isIE=mode;}dojo.isIE=has.add("ie",isIE,true,true);}}if(_58b&&typeof _58a=="string"){_58a=_58b[_58a];}return _58a.apply(_58b,_58c||[]);}finally{dojo.doc=ret.doc=_58d;dojo.isQuirks=has.add("quirks",oldQ,true,true);dojo.isIE=has.add("ie",_58e,true,true);}}};1&&lang.mixin(dojo,ret);return ret;});},"dojo/dom-class":function(){define(["./_base/lang","./_base/array","./dom"],function(lang,_58f,dom){var _590="className";var cls,_591=/\s+/,a1=[""];function _592(s){if(typeof s=="string"||s instanceof String){if(s&&!_591.test(s)){a1[0]=s;return a1;}var a=s.split(_591);if(a.length&&!a[0]){a.shift();}if(a.length&&!a[a.length-1]){a.pop();}return a;}if(!s){return [];}return _58f.filter(s,function(x){return x;});};var _593={};cls={contains:function containsClass(node,_594){return ((" "+dom.byId(node)[_590]+" ").indexOf(" "+_594+" ")>=0);},add:function addClass(node,_595){node=dom.byId(node);_595=_592(_595);var cls=node[_590],_596;cls=cls?" "+cls+" ":" ";_596=cls.length;for(var i=0,len=_595.length,c;i<len;++i){c=_595[i];if(c&&cls.indexOf(" "+c+" ")<0){cls+=c+" ";}}if(_596<cls.length){node[_590]=cls.substr(1,cls.length-2);}},remove:function removeClass(node,_597){node=dom.byId(node);var cls;if(_597!==undefined){_597=_592(_597);cls=" "+node[_590]+" ";for(var i=0,len=_597.length;i<len;++i){cls=cls.replace(" "+_597[i]+" "," ");}cls=lang.trim(cls);}else{cls="";}if(node[_590]!=cls){node[_590]=cls;}},replace:function replaceClass(node,_598,_599){node=dom.byId(node);_593[_590]=node[_590];cls.remove(_593,_599);cls.add(_593,_598);if(node[_590]!==_593[_590]){node[_590]=_593[_590];}},toggle:function toggleClass(node,_59a,_59b){node=dom.byId(node);if(_59b===undefined){_59a=_592(_59a);for(var i=0,len=_59a.length,c;i<len;++i){c=_59a[i];cls[cls.contains(node,c)?"remove":"add"](node,c);}}else{cls[_59b?"add":"remove"](node,_59a);}return _59b;}};return cls;});},"dojo/_base/config":function(){define(["../has","require"],function(has,_59c){var _59d={};if(1){var src=_59c.rawConfig,p;for(p in src){_59d[p]=src[p];}}else{var _59e=function(_59f,_5a0,_5a1){for(p in _59f){p!="has"&&has.add(_5a0+p,_59f[p],0,_5a1);}};_59d=1?_59c.rawConfig:this.dojoConfig||this.djConfig||{};_59e(_59d,"config",1);_59e(_59d.has,"",1);}return _59d;});},"dojo/main":function(){define(["./_base/kernel","./has","require","./sniff","./_base/lang","./_base/array","./_base/config","./ready","./_base/declare","./_base/connect","./_base/Deferred","./_base/json","./_base/Color","./has!dojo-firebug?./_firebug/firebug","./_base/browser","./_base/loader"],function(_5a2,has,_5a3,_5a4,lang,_5a5,_5a6,_5a7){if(_5a6.isDebug){_5a3(["./_firebug/firebug"]);}1||has.add("dojo-config-require",1);if(1){var deps=_5a6.require;if(deps){deps=_5a5.map(lang.isArray(deps)?deps:[deps],function(item){return item.replace(/\./g,"/");});if(_5a2.isAsync){_5a3(deps);}else{_5a7(1,function(){_5a3(deps);});}}}return _5a2;});},"dojo/_base/event":function(){define("dojo/_base/event",["./kernel","../on","../has","../dom-geometry"],function(dojo,on,has,dom){if(on._fixEvent){var _5a8=on._fixEvent;on._fixEvent=function(evt,se){evt=_5a8(evt,se);if(evt){dom.normalizeEvent(evt);}return evt;};}var ret={fix:function(evt,_5a9){if(on._fixEvent){return on._fixEvent(evt,_5a9);}return evt;},stop:function(evt){if(has("dom-addeventlistener")||(evt&&evt.preventDefault)){evt.preventDefault();evt.stopPropagation();}else{evt=evt||window.event;evt.cancelBubble=true;on._preventDefault.call(evt);}}};if(1){dojo.fixEvent=ret.fix;dojo.stopEvent=ret.stop;}return ret;});},"dojo/sniff":function(){define(["./has"],function(has){if(1){var n=navigator,dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);has.add("air",dua.indexOf("AdobeAIR")>=0),has.add("khtml",dav.indexOf("Konqueror")>=0?tv:undefined);has.add("webkit",parseFloat(dua.split("WebKit/")[1])||undefined);has.add("chrome",parseFloat(dua.split("Chrome/")[1])||undefined);has.add("safari",dav.indexOf("Safari")>=0&&!has("chrome")?parseFloat(dav.split("Version/")[1]):undefined);has.add("mac",dav.indexOf("Macintosh")>=0);has.add("quirks",document.compatMode=="BackCompat");has.add("ios",/iPhone|iPod|iPad/.test(dua));has.add("android",parseFloat(dua.split("Android ")[1])||undefined);if(!has("webkit")){if(dua.indexOf("Opera")>=0){has.add("opera",tv>=9.8?parseFloat(dua.split("Version/")[1])||tv:tv);}if(dua.indexOf("Gecko")>=0&&!has("khtml")&&!has("webkit")){has.add("mozilla",tv);}if(has("mozilla")){has.add("ff",parseFloat(dua.split("Firefox/")[1]||dua.split("Minefield/")[1])||undefined);}if(document.all&&!has("opera")){var isIE=parseFloat(dav.split("MSIE ")[1])||undefined;var mode=document.documentMode;if(mode&&mode!=5&&Math.floor(isIE)!=mode){isIE=mode;}has.add("ie",isIE);}has.add("wii",typeof opera!="undefined"&&opera.wiiremote);}}return has;});},"dojo/request/handlers":function(){define(["../json","../_base/kernel","../_base/array","../has"],function(JSON,_5aa,_5ab,has){has.add("activex",typeof ActiveXObject!=="undefined");var _5ac;if(has("activex")){var dp=["Msxml2.DOMDocument.6.0","Msxml2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML.DOMDocument"];_5ac=function(_5ad){var _5ae=_5ad.data;if(!_5ae||!_5ae.documentElement){var text=_5ad.text;_5ab.some(dp,function(p){try{var dom=new ActiveXObject(p);dom.async=false;dom.loadXML(text);_5ae=dom;}catch(e){return false;}return true;});}return _5ae;};}var _5af={"javascript":function(_5b0){return _5aa.eval(_5b0.text||"");},"json":function(_5b1){return JSON.parse(_5b1.text||null);},"xml":_5ac};function _5b2(_5b3){var _5b4=_5af[_5b3.options.handleAs];_5b3.data=_5b4?_5b4(_5b3):(_5b3.data||_5b3.text);return _5b3;};_5b2.register=function(name,_5b5){_5af[name]=_5b5;};return _5b2;});},"dojo/aspect":function(){define("dojo/aspect",[],function(){"use strict";var _5b6,_5b7=0;function _5b8(_5b9,type,_5ba,_5bb){var _5bc=_5b9[type];var _5bd=type=="around";var _5be;if(_5bd){var _5bf=_5ba(function(){return _5bc.advice(this,arguments);});_5be={remove:function(){_5be.cancelled=true;},advice:function(_5c0,args){return _5be.cancelled?_5bc.advice(_5c0,args):_5bf.apply(_5c0,args);}};}else{_5be={remove:function(){var _5c1=_5be.previous;var next=_5be.next;if(!next&&!_5c1){delete _5b9[type];}else{if(_5c1){_5c1.next=next;}else{_5b9[type]=next;}if(next){next.previous=_5c1;}}},id:_5b7++,advice:_5ba,receiveArguments:_5bb};}if(_5bc&&!_5bd){if(type=="after"){var next=_5bc;while(next){_5bc=next;next=next.next;}_5bc.next=_5be;_5be.previous=_5bc;}else{if(type=="before"){_5b9[type]=_5be;_5be.next=_5bc;_5bc.previous=_5be;}}}else{_5b9[type]=_5be;}return _5be;};function _5c2(type){return function(_5c3,_5c4,_5c5,_5c6){var _5c7=_5c3[_5c4],_5c8;if(!_5c7||_5c7.target!=_5c3){_5c3[_5c4]=_5c8=function(){var _5c9=_5b7;var args=arguments;var _5ca=_5c8.before;while(_5ca){args=_5ca.advice.apply(this,args)||args;_5ca=_5ca.next;}if(_5c8.around){var _5cb=_5c8.around.advice(this,args);}var _5cc=_5c8.after;while(_5cc&&_5cc.id<_5c9){if(_5cc.receiveArguments){var _5cd=_5cc.advice.apply(this,args);_5cb=_5cd===_5b6?_5cb:_5cd;}else{_5cb=_5cc.advice.call(this,_5cb,args);}_5cc=_5cc.next;}return _5cb;};if(_5c7){_5c8.around={advice:function(_5ce,args){return _5c7.apply(_5ce,args);}};}_5c8.target=_5c3;}var _5cf=_5b8((_5c8||_5c7),type,_5c5,_5c6);_5c5=null;return _5cf;};};var _5d0=_5c2("after");var _5d1=_5c2("before");var _5d2=_5c2("around");return {before:_5d1,around:_5d2,after:_5d0};});},"dojo/ready":function(){define("dojo/ready",["./_base/kernel","./has","require","./domReady","./_base/lang"],function(dojo,has,_5d3,_5d4,lang){var _5d5=0,_5d6,_5d7=[],_5d8=0,_5d9=function(){_5d5=1;dojo._postLoad=dojo.config.afterOnLoad=true;if(_5d7.length){_5d6(_5da);}},_5da=function(){if(_5d5&&!_5d8&&_5d7.length){_5d8=1;var f=_5d7.shift();try{f();}finally{_5d8=0;}_5d8=0;if(_5d7.length){_5d6(_5da);}}};_5d3.on("idle",_5da);_5d6=function(){if(_5d3.idle()){_5da();}};var _5db=dojo.ready=dojo.addOnLoad=function(_5dc,_5dd,_5de){var _5df=lang._toArray(arguments);if(typeof _5dc!="number"){_5de=_5dd;_5dd=_5dc;_5dc=1000;}else{_5df.shift();}_5de=_5de?lang.hitch.apply(dojo,_5df):function(){_5dd();};_5de.priority=_5dc;for(var i=0;i<_5d7.length&&_5dc>=_5d7[i].priority;i++){}_5d7.splice(i,0,_5de);_5d6();};1||has.add("dojo-config-addOnLoad",1);if(1){var dca=dojo.config.addOnLoad;if(dca){_5db[(lang.isArray(dca)?"apply":"call")](dojo,dca);}}if(1&&dojo.config.parseOnLoad&&!dojo.isAsync){_5db(99,function(){if(!dojo.parser){dojo.deprecated("Add explicit require(['dojo/parser']);","","2.0");_5d3(["dojo/parser"]);}});}if(1){_5d4(_5d9);}else{_5d9();}return _5db;});},"dojo/_base/connect":function(){define(["./kernel","../on","../topic","../aspect","./event","../mouse","./sniff","./lang","../keys"],function(dojo,on,hub,_5e0,_5e1,_5e2,has,lang){has.add("events-keypress-typed",function(){var _5e3={charCode:0};try{_5e3=document.createEvent("KeyboardEvent");(_5e3.initKeyboardEvent||_5e3.initKeyEvent).call(_5e3,"keypress",true,true,null,false,false,false,false,9,3);}catch(e){}return _5e3.charCode==0&&!has("opera");});function _5e4(obj,_5e5,_5e6,_5e7,_5e8){_5e7=lang.hitch(_5e6,_5e7);if(!obj||!(obj.addEventListener||obj.attachEvent)){return _5e0.after(obj||dojo.global,_5e5,_5e7,true);}if(typeof _5e5=="string"&&_5e5.substring(0,2)=="on"){_5e5=_5e5.substring(2);}if(!obj){obj=dojo.global;}if(!_5e8){switch(_5e5){case "keypress":_5e5=_5e9;break;case "mouseenter":_5e5=_5e2.enter;break;case "mouseleave":_5e5=_5e2.leave;break;}}return on(obj,_5e5,_5e7,_5e8);};var _5ea={106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39,229:113};var _5eb=has("mac")?"metaKey":"ctrlKey";var _5ec=function(evt,_5ed){var faux=lang.mixin({},evt,_5ed);_5ee(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};function _5ee(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;};var _5e9;if(has("events-keypress-typed")){var _5ef=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};_5e9=function(_5f0,_5f1){var _5f2=on(_5f0,"keydown",function(evt){var k=evt.keyCode;var _5f3=(k!=13)&&k!=32&&(k!=27||!has("ie"))&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222)&&k!=229;if(_5f3||evt.ctrlKey){var c=_5f3?0:k;if(evt.ctrlKey){if(k==3||k==13){return _5f1.call(evt.currentTarget,evt);}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=_5ea[c]||c;}}}}var faux=_5ec(evt,{type:"keypress",faux:true,charCode:c});_5f1.call(evt.currentTarget,faux);if(has("ie")){_5ef(evt,faux.keyCode);}}});var _5f4=on(_5f0,"keypress",function(evt){var c=evt.charCode;c=c>=32?c:0;evt=_5ec(evt,{charCode:c,faux:true});return _5f1.call(this,evt);});return {remove:function(){_5f2.remove();_5f4.remove();}};};}else{if(has("opera")){_5e9=function(_5f5,_5f6){return on(_5f5,"keypress",function(evt){var c=evt.which;if(c==3){c=99;}c=c<32&&!evt.shiftKey?0:c;if(evt.ctrlKey&&!evt.shiftKey&&c>=65&&c<=90){c+=32;}return _5f6.call(this,_5ec(evt,{charCode:c}));});};}else{_5e9=function(_5f7,_5f8){return on(_5f7,"keypress",function(evt){_5ee(evt);return _5f8.call(this,evt);});};}}var _5f9={_keypress:_5e9,connect:function(obj,_5fa,_5fb,_5fc,_5fd){var a=arguments,args=[],i=0;args.push(typeof a[0]=="string"?null:a[i++],a[i++]);var a1=a[i+1];args.push(typeof a1=="string"||typeof a1=="function"?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){args.push(a[i]);}return _5e4.apply(this,args);},disconnect:function(_5fe){if(_5fe){_5fe.remove();}},subscribe:function(_5ff,_600,_601){return hub.subscribe(_5ff,lang.hitch(_600,_601));},publish:function(_602,args){return hub.publish.apply(hub,[_602].concat(args));},connectPublisher:function(_603,obj,_604){var pf=function(){_5f9.publish(_603,arguments);};return _604?_5f9.connect(obj,_604,pf):_5f9.connect(obj,pf);},isCopyKey:function(e){return e[_5eb];}};_5f9.unsubscribe=_5f9.disconnect;1&&lang.mixin(dojo,_5f9);return _5f9;});},"dojo/errors/CancelError":function(){define(["./create"],function(_605){return _605("CancelError",null,null,{dojoType:"cancel"});});}}});(function(){var _606=this.require;_606({cache:{}});!_606.async&&_606(["dojo"]);_606.boot&&_606.apply(null,_606.boot);})();