/trunk/src/MyShop.UI.Web.MainSite/Scripts/MicrosoftAjax.debug.js

# · JavaScript · 6850 lines · 6072 code · 113 blank · 665 comment · 1453 complexity · 24cdbf995d405f5d448c89744ce431d7 MD5 · raw file

  1. // Name: MicrosoftAjax.debug.js
  2. // Assembly: System.Web.Extensions
  3. // Version: 3.5.0.0
  4. // FileVersion: 3.5.30729.1
  5. //-----------------------------------------------------------------------
  6. // Copyright (C) Microsoft Corporation. All rights reserved.
  7. //-----------------------------------------------------------------------
  8. // MicrosoftAjax.js
  9. // Microsoft AJAX Framework.
  10. Function.__typeName = 'Function';
  11. Function.__class = true;
  12. Function.createCallback = function Function$createCallback(method, context) {
  13. /// <summary locid="M:J#Function.createCallback" />
  14. /// <param name="method" type="Function"></param>
  15. /// <param name="context" mayBeNull="true"></param>
  16. /// <returns type="Function"></returns>
  17. var e = Function._validateParams(arguments, [
  18. {name: "method", type: Function},
  19. {name: "context", mayBeNull: true}
  20. ]);
  21. if (e) throw e;
  22. return function() {
  23. var l = arguments.length;
  24. if (l > 0) {
  25. var args = [];
  26. for (var i = 0; i < l; i++) {
  27. args[i] = arguments[i];
  28. }
  29. args[l] = context;
  30. return method.apply(this, args);
  31. }
  32. return method.call(this, context);
  33. }
  34. }
  35. Function.createDelegate = function Function$createDelegate(instance, method) {
  36. /// <summary locid="M:J#Function.createDelegate" />
  37. /// <param name="instance" mayBeNull="true"></param>
  38. /// <param name="method" type="Function"></param>
  39. /// <returns type="Function"></returns>
  40. var e = Function._validateParams(arguments, [
  41. {name: "instance", mayBeNull: true},
  42. {name: "method", type: Function}
  43. ]);
  44. if (e) throw e;
  45. return function() {
  46. return method.apply(instance, arguments);
  47. }
  48. }
  49. Function.emptyFunction = Function.emptyMethod = function Function$emptyMethod() {
  50. /// <summary locid="M:J#Function.emptyMethod" />
  51. if (arguments.length !== 0) throw Error.parameterCount();
  52. }
  53. Function._validateParams = function Function$_validateParams(params, expectedParams) {
  54. var e;
  55. e = Function._validateParameterCount(params, expectedParams);
  56. if (e) {
  57. e.popStackFrame();
  58. return e;
  59. }
  60. for (var i=0; i < params.length; i++) {
  61. var expectedParam = expectedParams[Math.min(i, expectedParams.length - 1)];
  62. var paramName = expectedParam.name;
  63. if (expectedParam.parameterArray) {
  64. paramName += "[" + (i - expectedParams.length + 1) + "]";
  65. }
  66. e = Function._validateParameter(params[i], expectedParam, paramName);
  67. if (e) {
  68. e.popStackFrame();
  69. return e;
  70. }
  71. }
  72. return null;
  73. }
  74. Function._validateParameterCount = function Function$_validateParameterCount(params, expectedParams) {
  75. var maxParams = expectedParams.length;
  76. var minParams = 0;
  77. for (var i=0; i < expectedParams.length; i++) {
  78. if (expectedParams[i].parameterArray) {
  79. maxParams = Number.MAX_VALUE;
  80. }
  81. else if (!expectedParams[i].optional) {
  82. minParams++;
  83. }
  84. }
  85. if (params.length < minParams || params.length > maxParams) {
  86. var e = Error.parameterCount();
  87. e.popStackFrame();
  88. return e;
  89. }
  90. return null;
  91. }
  92. Function._validateParameter = function Function$_validateParameter(param, expectedParam, paramName) {
  93. var e;
  94. var expectedType = expectedParam.type;
  95. var expectedInteger = !!expectedParam.integer;
  96. var expectedDomElement = !!expectedParam.domElement;
  97. var mayBeNull = !!expectedParam.mayBeNull;
  98. e = Function._validateParameterType(param, expectedType, expectedInteger, expectedDomElement, mayBeNull, paramName);
  99. if (e) {
  100. e.popStackFrame();
  101. return e;
  102. }
  103. var expectedElementType = expectedParam.elementType;
  104. var elementMayBeNull = !!expectedParam.elementMayBeNull;
  105. if (expectedType === Array && typeof(param) !== "undefined" && param !== null &&
  106. (expectedElementType || !elementMayBeNull)) {
  107. var expectedElementInteger = !!expectedParam.elementInteger;
  108. var expectedElementDomElement = !!expectedParam.elementDomElement;
  109. for (var i=0; i < param.length; i++) {
  110. var elem = param[i];
  111. e = Function._validateParameterType(elem, expectedElementType,
  112. expectedElementInteger, expectedElementDomElement, elementMayBeNull,
  113. paramName + "[" + i + "]");
  114. if (e) {
  115. e.popStackFrame();
  116. return e;
  117. }
  118. }
  119. }
  120. return null;
  121. }
  122. Function._validateParameterType = function Function$_validateParameterType(param, expectedType, expectedInteger, expectedDomElement, mayBeNull, paramName) {
  123. var e;
  124. if (typeof(param) === "undefined") {
  125. if (mayBeNull) {
  126. return null;
  127. }
  128. else {
  129. e = Error.argumentUndefined(paramName);
  130. e.popStackFrame();
  131. return e;
  132. }
  133. }
  134. if (param === null) {
  135. if (mayBeNull) {
  136. return null;
  137. }
  138. else {
  139. e = Error.argumentNull(paramName);
  140. e.popStackFrame();
  141. return e;
  142. }
  143. }
  144. if (expectedType && expectedType.__enum) {
  145. if (typeof(param) !== 'number') {
  146. e = Error.argumentType(paramName, Object.getType(param), expectedType);
  147. e.popStackFrame();
  148. return e;
  149. }
  150. if ((param % 1) === 0) {
  151. var values = expectedType.prototype;
  152. if (!expectedType.__flags || (param === 0)) {
  153. for (var i in values) {
  154. if (values[i] === param) return null;
  155. }
  156. }
  157. else {
  158. var v = param;
  159. for (var i in values) {
  160. var vali = values[i];
  161. if (vali === 0) continue;
  162. if ((vali & param) === vali) {
  163. v -= vali;
  164. }
  165. if (v === 0) return null;
  166. }
  167. }
  168. }
  169. e = Error.argumentOutOfRange(paramName, param, String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
  170. e.popStackFrame();
  171. return e;
  172. }
  173. if (expectedDomElement) {
  174. var val;
  175. if (typeof(param.nodeType) !== 'number') {
  176. var doc = param.ownerDocument || param.document || param;
  177. if (doc != param) {
  178. var w = doc.defaultView || doc.parentWindow;
  179. val = (w != param) && !(w.document && param.document && (w.document === param.document));
  180. }
  181. else {
  182. val = (typeof(doc.body) === 'undefined');
  183. }
  184. }
  185. else {
  186. val = (param.nodeType === 3);
  187. }
  188. if (val) {
  189. e = Error.argument(paramName, Sys.Res.argumentDomElement);
  190. e.popStackFrame();
  191. return e;
  192. }
  193. }
  194. if (expectedType && !expectedType.isInstanceOfType(param)) {
  195. e = Error.argumentType(paramName, Object.getType(param), expectedType);
  196. e.popStackFrame();
  197. return e;
  198. }
  199. if (expectedType === Number && expectedInteger) {
  200. if ((param % 1) !== 0) {
  201. e = Error.argumentOutOfRange(paramName, param, Sys.Res.argumentInteger);
  202. e.popStackFrame();
  203. return e;
  204. }
  205. }
  206. return null;
  207. }
  208. Error.__typeName = 'Error';
  209. Error.__class = true;
  210. Error.create = function Error$create(message, errorInfo) {
  211. /// <summary locid="M:J#Error.create" />
  212. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  213. /// <param name="errorInfo" optional="true" mayBeNull="true"></param>
  214. /// <returns type="Error"></returns>
  215. var e = Function._validateParams(arguments, [
  216. {name: "message", type: String, mayBeNull: true, optional: true},
  217. {name: "errorInfo", mayBeNull: true, optional: true}
  218. ]);
  219. if (e) throw e;
  220. var e = new Error(message);
  221. e.message = message;
  222. if (errorInfo) {
  223. for (var v in errorInfo) {
  224. e[v] = errorInfo[v];
  225. }
  226. }
  227. e.popStackFrame();
  228. return e;
  229. }
  230. Error.argument = function Error$argument(paramName, message) {
  231. /// <summary locid="M:J#Error.argument" />
  232. /// <param name="paramName" type="String" optional="true" mayBeNull="true"></param>
  233. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  234. /// <returns></returns>
  235. var e = Function._validateParams(arguments, [
  236. {name: "paramName", type: String, mayBeNull: true, optional: true},
  237. {name: "message", type: String, mayBeNull: true, optional: true}
  238. ]);
  239. if (e) throw e;
  240. var displayMessage = "Sys.ArgumentException: " + (message ? message : Sys.Res.argument);
  241. if (paramName) {
  242. displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
  243. }
  244. var e = Error.create(displayMessage, { name: "Sys.ArgumentException", paramName: paramName });
  245. e.popStackFrame();
  246. return e;
  247. }
  248. Error.argumentNull = function Error$argumentNull(paramName, message) {
  249. /// <summary locid="M:J#Error.argumentNull" />
  250. /// <param name="paramName" type="String" optional="true" mayBeNull="true"></param>
  251. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  252. /// <returns></returns>
  253. var e = Function._validateParams(arguments, [
  254. {name: "paramName", type: String, mayBeNull: true, optional: true},
  255. {name: "message", type: String, mayBeNull: true, optional: true}
  256. ]);
  257. if (e) throw e;
  258. var displayMessage = "Sys.ArgumentNullException: " + (message ? message : Sys.Res.argumentNull);
  259. if (paramName) {
  260. displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
  261. }
  262. var e = Error.create(displayMessage, { name: "Sys.ArgumentNullException", paramName: paramName });
  263. e.popStackFrame();
  264. return e;
  265. }
  266. Error.argumentOutOfRange = function Error$argumentOutOfRange(paramName, actualValue, message) {
  267. /// <summary locid="M:J#Error.argumentOutOfRange" />
  268. /// <param name="paramName" type="String" optional="true" mayBeNull="true"></param>
  269. /// <param name="actualValue" optional="true" mayBeNull="true"></param>
  270. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  271. /// <returns></returns>
  272. var e = Function._validateParams(arguments, [
  273. {name: "paramName", type: String, mayBeNull: true, optional: true},
  274. {name: "actualValue", mayBeNull: true, optional: true},
  275. {name: "message", type: String, mayBeNull: true, optional: true}
  276. ]);
  277. if (e) throw e;
  278. var displayMessage = "Sys.ArgumentOutOfRangeException: " + (message ? message : Sys.Res.argumentOutOfRange);
  279. if (paramName) {
  280. displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
  281. }
  282. if (typeof(actualValue) !== "undefined" && actualValue !== null) {
  283. displayMessage += "\n" + String.format(Sys.Res.actualValue, actualValue);
  284. }
  285. var e = Error.create(displayMessage, {
  286. name: "Sys.ArgumentOutOfRangeException",
  287. paramName: paramName,
  288. actualValue: actualValue
  289. });
  290. e.popStackFrame();
  291. return e;
  292. }
  293. Error.argumentType = function Error$argumentType(paramName, actualType, expectedType, message) {
  294. /// <summary locid="M:J#Error.argumentType" />
  295. /// <param name="paramName" type="String" optional="true" mayBeNull="true"></param>
  296. /// <param name="actualType" type="Type" optional="true" mayBeNull="true"></param>
  297. /// <param name="expectedType" type="Type" optional="true" mayBeNull="true"></param>
  298. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  299. /// <returns></returns>
  300. var e = Function._validateParams(arguments, [
  301. {name: "paramName", type: String, mayBeNull: true, optional: true},
  302. {name: "actualType", type: Type, mayBeNull: true, optional: true},
  303. {name: "expectedType", type: Type, mayBeNull: true, optional: true},
  304. {name: "message", type: String, mayBeNull: true, optional: true}
  305. ]);
  306. if (e) throw e;
  307. var displayMessage = "Sys.ArgumentTypeException: ";
  308. if (message) {
  309. displayMessage += message;
  310. }
  311. else if (actualType && expectedType) {
  312. displayMessage +=
  313. String.format(Sys.Res.argumentTypeWithTypes, actualType.getName(), expectedType.getName());
  314. }
  315. else {
  316. displayMessage += Sys.Res.argumentType;
  317. }
  318. if (paramName) {
  319. displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
  320. }
  321. var e = Error.create(displayMessage, {
  322. name: "Sys.ArgumentTypeException",
  323. paramName: paramName,
  324. actualType: actualType,
  325. expectedType: expectedType
  326. });
  327. e.popStackFrame();
  328. return e;
  329. }
  330. Error.argumentUndefined = function Error$argumentUndefined(paramName, message) {
  331. /// <summary locid="M:J#Error.argumentUndefined" />
  332. /// <param name="paramName" type="String" optional="true" mayBeNull="true"></param>
  333. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  334. /// <returns></returns>
  335. var e = Function._validateParams(arguments, [
  336. {name: "paramName", type: String, mayBeNull: true, optional: true},
  337. {name: "message", type: String, mayBeNull: true, optional: true}
  338. ]);
  339. if (e) throw e;
  340. var displayMessage = "Sys.ArgumentUndefinedException: " + (message ? message : Sys.Res.argumentUndefined);
  341. if (paramName) {
  342. displayMessage += "\n" + String.format(Sys.Res.paramName, paramName);
  343. }
  344. var e = Error.create(displayMessage, { name: "Sys.ArgumentUndefinedException", paramName: paramName });
  345. e.popStackFrame();
  346. return e;
  347. }
  348. Error.format = function Error$format(message) {
  349. /// <summary locid="M:J#Error.format" />
  350. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  351. /// <returns></returns>
  352. var e = Function._validateParams(arguments, [
  353. {name: "message", type: String, mayBeNull: true, optional: true}
  354. ]);
  355. if (e) throw e;
  356. var displayMessage = "Sys.FormatException: " + (message ? message : Sys.Res.format);
  357. var e = Error.create(displayMessage, {name: 'Sys.FormatException'});
  358. e.popStackFrame();
  359. return e;
  360. }
  361. Error.invalidOperation = function Error$invalidOperation(message) {
  362. /// <summary locid="M:J#Error.invalidOperation" />
  363. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  364. /// <returns></returns>
  365. var e = Function._validateParams(arguments, [
  366. {name: "message", type: String, mayBeNull: true, optional: true}
  367. ]);
  368. if (e) throw e;
  369. var displayMessage = "Sys.InvalidOperationException: " + (message ? message : Sys.Res.invalidOperation);
  370. var e = Error.create(displayMessage, {name: 'Sys.InvalidOperationException'});
  371. e.popStackFrame();
  372. return e;
  373. }
  374. Error.notImplemented = function Error$notImplemented(message) {
  375. /// <summary locid="M:J#Error.notImplemented" />
  376. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  377. /// <returns></returns>
  378. var e = Function._validateParams(arguments, [
  379. {name: "message", type: String, mayBeNull: true, optional: true}
  380. ]);
  381. if (e) throw e;
  382. var displayMessage = "Sys.NotImplementedException: " + (message ? message : Sys.Res.notImplemented);
  383. var e = Error.create(displayMessage, {name: 'Sys.NotImplementedException'});
  384. e.popStackFrame();
  385. return e;
  386. }
  387. Error.parameterCount = function Error$parameterCount(message) {
  388. /// <summary locid="M:J#Error.parameterCount" />
  389. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  390. /// <returns></returns>
  391. var e = Function._validateParams(arguments, [
  392. {name: "message", type: String, mayBeNull: true, optional: true}
  393. ]);
  394. if (e) throw e;
  395. var displayMessage = "Sys.ParameterCountException: " + (message ? message : Sys.Res.parameterCount);
  396. var e = Error.create(displayMessage, {name: 'Sys.ParameterCountException'});
  397. e.popStackFrame();
  398. return e;
  399. }
  400. Error.prototype.popStackFrame = function Error$popStackFrame() {
  401. /// <summary locid="M:J#checkParam" />
  402. if (arguments.length !== 0) throw Error.parameterCount();
  403. if (typeof(this.stack) === "undefined" || this.stack === null ||
  404. typeof(this.fileName) === "undefined" || this.fileName === null ||
  405. typeof(this.lineNumber) === "undefined" || this.lineNumber === null) {
  406. return;
  407. }
  408. var stackFrames = this.stack.split("\n");
  409. var currentFrame = stackFrames[0];
  410. var pattern = this.fileName + ":" + this.lineNumber;
  411. while(typeof(currentFrame) !== "undefined" &&
  412. currentFrame !== null &&
  413. currentFrame.indexOf(pattern) === -1) {
  414. stackFrames.shift();
  415. currentFrame = stackFrames[0];
  416. }
  417. var nextFrame = stackFrames[1];
  418. if (typeof(nextFrame) === "undefined" || nextFrame === null) {
  419. return;
  420. }
  421. var nextFrameParts = nextFrame.match(/@(.*):(\d+)$/);
  422. if (typeof(nextFrameParts) === "undefined" || nextFrameParts === null) {
  423. return;
  424. }
  425. this.fileName = nextFrameParts[1];
  426. this.lineNumber = parseInt(nextFrameParts[2]);
  427. stackFrames.shift();
  428. this.stack = stackFrames.join("\n");
  429. }
  430. Object.__typeName = 'Object';
  431. Object.__class = true;
  432. Object.getType = function Object$getType(instance) {
  433. /// <summary locid="M:J#Object.getType" />
  434. /// <param name="instance"></param>
  435. /// <returns type="Type"></returns>
  436. var e = Function._validateParams(arguments, [
  437. {name: "instance"}
  438. ]);
  439. if (e) throw e;
  440. var ctor = instance.constructor;
  441. if (!ctor || (typeof(ctor) !== "function") || !ctor.__typeName || (ctor.__typeName === 'Object')) {
  442. return Object;
  443. }
  444. return ctor;
  445. }
  446. Object.getTypeName = function Object$getTypeName(instance) {
  447. /// <summary locid="M:J#Object.getTypeName" />
  448. /// <param name="instance"></param>
  449. /// <returns type="String"></returns>
  450. var e = Function._validateParams(arguments, [
  451. {name: "instance"}
  452. ]);
  453. if (e) throw e;
  454. return Object.getType(instance).getName();
  455. }
  456. String.__typeName = 'String';
  457. String.__class = true;
  458. String.prototype.endsWith = function String$endsWith(suffix) {
  459. /// <summary locid="M:J#String.endsWith" />
  460. /// <param name="suffix" type="String"></param>
  461. /// <returns type="Boolean"></returns>
  462. var e = Function._validateParams(arguments, [
  463. {name: "suffix", type: String}
  464. ]);
  465. if (e) throw e;
  466. return (this.substr(this.length - suffix.length) === suffix);
  467. }
  468. String.prototype.startsWith = function String$startsWith(prefix) {
  469. /// <summary locid="M:J#String.startsWith" />
  470. /// <param name="prefix" type="String"></param>
  471. /// <returns type="Boolean"></returns>
  472. var e = Function._validateParams(arguments, [
  473. {name: "prefix", type: String}
  474. ]);
  475. if (e) throw e;
  476. return (this.substr(0, prefix.length) === prefix);
  477. }
  478. String.prototype.trim = function String$trim() {
  479. /// <summary locid="M:J#String.trim" />
  480. /// <returns type="String"></returns>
  481. if (arguments.length !== 0) throw Error.parameterCount();
  482. return this.replace(/^\s+|\s+$/g, '');
  483. }
  484. String.prototype.trimEnd = function String$trimEnd() {
  485. /// <summary locid="M:J#String.trimEnd" />
  486. /// <returns type="String"></returns>
  487. if (arguments.length !== 0) throw Error.parameterCount();
  488. return this.replace(/\s+$/, '');
  489. }
  490. String.prototype.trimStart = function String$trimStart() {
  491. /// <summary locid="M:J#String.trimStart" />
  492. /// <returns type="String"></returns>
  493. if (arguments.length !== 0) throw Error.parameterCount();
  494. return this.replace(/^\s+/, '');
  495. }
  496. String.format = function String$format(format, args) {
  497. /// <summary locid="M:J#String.format" />
  498. /// <param name="format" type="String"></param>
  499. /// <param name="args" parameterArray="true" mayBeNull="true"></param>
  500. /// <returns type="String"></returns>
  501. var e = Function._validateParams(arguments, [
  502. {name: "format", type: String},
  503. {name: "args", mayBeNull: true, parameterArray: true}
  504. ]);
  505. if (e) throw e;
  506. return String._toFormattedString(false, arguments);
  507. }
  508. String.localeFormat = function String$localeFormat(format, args) {
  509. /// <summary locid="M:J#String.localeFormat" />
  510. /// <param name="format" type="String"></param>
  511. /// <param name="args" parameterArray="true" mayBeNull="true"></param>
  512. /// <returns type="String"></returns>
  513. var e = Function._validateParams(arguments, [
  514. {name: "format", type: String},
  515. {name: "args", mayBeNull: true, parameterArray: true}
  516. ]);
  517. if (e) throw e;
  518. return String._toFormattedString(true, arguments);
  519. }
  520. String._toFormattedString = function String$_toFormattedString(useLocale, args) {
  521. var result = '';
  522. var format = args[0];
  523. for (var i=0;;) {
  524. var open = format.indexOf('{', i);
  525. var close = format.indexOf('}', i);
  526. if ((open < 0) && (close < 0)) {
  527. result += format.slice(i);
  528. break;
  529. }
  530. if ((close > 0) && ((close < open) || (open < 0))) {
  531. if (format.charAt(close + 1) !== '}') {
  532. throw Error.argument('format', Sys.Res.stringFormatBraceMismatch);
  533. }
  534. result += format.slice(i, close + 1);
  535. i = close + 2;
  536. continue;
  537. }
  538. result += format.slice(i, open);
  539. i = open + 1;
  540. if (format.charAt(i) === '{') {
  541. result += '{';
  542. i++;
  543. continue;
  544. }
  545. if (close < 0) throw Error.argument('format', Sys.Res.stringFormatBraceMismatch);
  546. var brace = format.substring(i, close);
  547. var colonIndex = brace.indexOf(':');
  548. var argNumber = parseInt((colonIndex < 0)? brace : brace.substring(0, colonIndex), 10) + 1;
  549. if (isNaN(argNumber)) throw Error.argument('format', Sys.Res.stringFormatInvalid);
  550. var argFormat = (colonIndex < 0)? '' : brace.substring(colonIndex + 1);
  551. var arg = args[argNumber];
  552. if (typeof(arg) === "undefined" || arg === null) {
  553. arg = '';
  554. }
  555. if (arg.toFormattedString) {
  556. result += arg.toFormattedString(argFormat);
  557. }
  558. else if (useLocale && arg.localeFormat) {
  559. result += arg.localeFormat(argFormat);
  560. }
  561. else if (arg.format) {
  562. result += arg.format(argFormat);
  563. }
  564. else
  565. result += arg.toString();
  566. i = close + 1;
  567. }
  568. return result;
  569. }
  570. Boolean.__typeName = 'Boolean';
  571. Boolean.__class = true;
  572. Boolean.parse = function Boolean$parse(value) {
  573. /// <summary locid="M:J#Boolean.parse" />
  574. /// <param name="value" type="String"></param>
  575. /// <returns type="Boolean"></returns>
  576. var e = Function._validateParams(arguments, [
  577. {name: "value", type: String}
  578. ]);
  579. if (e) throw e;
  580. var v = value.trim().toLowerCase();
  581. if (v === 'false') return false;
  582. if (v === 'true') return true;
  583. throw Error.argumentOutOfRange('value', value, Sys.Res.boolTrueOrFalse);
  584. }
  585. Date.__typeName = 'Date';
  586. Date.__class = true;
  587. Date._appendPreOrPostMatch = function Date$_appendPreOrPostMatch(preMatch, strBuilder) {
  588. var quoteCount = 0;
  589. var escaped = false;
  590. for (var i = 0, il = preMatch.length; i < il; i++) {
  591. var c = preMatch.charAt(i);
  592. switch (c) {
  593. case '\'':
  594. if (escaped) strBuilder.append("'");
  595. else quoteCount++;
  596. escaped = false;
  597. break;
  598. case '\\':
  599. if (escaped) strBuilder.append("\\");
  600. escaped = !escaped;
  601. break;
  602. default:
  603. strBuilder.append(c);
  604. escaped = false;
  605. break;
  606. }
  607. }
  608. return quoteCount;
  609. }
  610. Date._expandFormat = function Date$_expandFormat(dtf, format) {
  611. if (!format) {
  612. format = "F";
  613. }
  614. if (format.length === 1) {
  615. switch (format) {
  616. case "d":
  617. return dtf.ShortDatePattern;
  618. case "D":
  619. return dtf.LongDatePattern;
  620. case "t":
  621. return dtf.ShortTimePattern;
  622. case "T":
  623. return dtf.LongTimePattern;
  624. case "F":
  625. return dtf.FullDateTimePattern;
  626. case "M": case "m":
  627. return dtf.MonthDayPattern;
  628. case "s":
  629. return dtf.SortableDateTimePattern;
  630. case "Y": case "y":
  631. return dtf.YearMonthPattern;
  632. default:
  633. throw Error.format(Sys.Res.formatInvalidString);
  634. }
  635. }
  636. return format;
  637. }
  638. Date._expandYear = function Date$_expandYear(dtf, year) {
  639. if (year < 100) {
  640. var curr = new Date().getFullYear();
  641. year += curr - (curr % 100);
  642. if (year > dtf.Calendar.TwoDigitYearMax) {
  643. return year - 100;
  644. }
  645. }
  646. return year;
  647. }
  648. Date._getParseRegExp = function Date$_getParseRegExp(dtf, format) {
  649. if (!dtf._parseRegExp) {
  650. dtf._parseRegExp = {};
  651. }
  652. else if (dtf._parseRegExp[format]) {
  653. return dtf._parseRegExp[format];
  654. }
  655. var expFormat = Date._expandFormat(dtf, format);
  656. expFormat = expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, "\\\\$1");
  657. var regexp = new Sys.StringBuilder("^");
  658. var groups = [];
  659. var index = 0;
  660. var quoteCount = 0;
  661. var tokenRegExp = Date._getTokenRegExp();
  662. var match;
  663. while ((match = tokenRegExp.exec(expFormat)) !== null) {
  664. var preMatch = expFormat.slice(index, match.index);
  665. index = tokenRegExp.lastIndex;
  666. quoteCount += Date._appendPreOrPostMatch(preMatch, regexp);
  667. if ((quoteCount%2) === 1) {
  668. regexp.append(match[0]);
  669. continue;
  670. }
  671. switch (match[0]) {
  672. case 'dddd': case 'ddd':
  673. case 'MMMM': case 'MMM':
  674. regexp.append("(\\D+)");
  675. break;
  676. case 'tt': case 't':
  677. regexp.append("(\\D*)");
  678. break;
  679. case 'yyyy':
  680. regexp.append("(\\d{4})");
  681. break;
  682. case 'fff':
  683. regexp.append("(\\d{3})");
  684. break;
  685. case 'ff':
  686. regexp.append("(\\d{2})");
  687. break;
  688. case 'f':
  689. regexp.append("(\\d)");
  690. break;
  691. case 'dd': case 'd':
  692. case 'MM': case 'M':
  693. case 'yy': case 'y':
  694. case 'HH': case 'H':
  695. case 'hh': case 'h':
  696. case 'mm': case 'm':
  697. case 'ss': case 's':
  698. regexp.append("(\\d\\d?)");
  699. break;
  700. case 'zzz':
  701. regexp.append("([+-]?\\d\\d?:\\d{2})");
  702. break;
  703. case 'zz': case 'z':
  704. regexp.append("([+-]?\\d\\d?)");
  705. break;
  706. }
  707. Array.add(groups, match[0]);
  708. }
  709. Date._appendPreOrPostMatch(expFormat.slice(index), regexp);
  710. regexp.append("$");
  711. var regexpStr = regexp.toString().replace(/\s+/g, "\\s+");
  712. var parseRegExp = {'regExp': regexpStr, 'groups': groups};
  713. dtf._parseRegExp[format] = parseRegExp;
  714. return parseRegExp;
  715. }
  716. Date._getTokenRegExp = function Date$_getTokenRegExp() {
  717. return /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g;
  718. }
  719. Date.parseLocale = function Date$parseLocale(value, formats) {
  720. /// <summary locid="M:J#Date.parseLocale" />
  721. /// <param name="value" type="String"></param>
  722. /// <param name="formats" parameterArray="true" optional="true" mayBeNull="true"></param>
  723. /// <returns type="Date"></returns>
  724. var e = Function._validateParams(arguments, [
  725. {name: "value", type: String},
  726. {name: "formats", mayBeNull: true, optional: true, parameterArray: true}
  727. ]);
  728. if (e) throw e;
  729. return Date._parse(value, Sys.CultureInfo.CurrentCulture, arguments);
  730. }
  731. Date.parseInvariant = function Date$parseInvariant(value, formats) {
  732. /// <summary locid="M:J#Date.parseInvariant" />
  733. /// <param name="value" type="String"></param>
  734. /// <param name="formats" parameterArray="true" optional="true" mayBeNull="true"></param>
  735. /// <returns type="Date"></returns>
  736. var e = Function._validateParams(arguments, [
  737. {name: "value", type: String},
  738. {name: "formats", mayBeNull: true, optional: true, parameterArray: true}
  739. ]);
  740. if (e) throw e;
  741. return Date._parse(value, Sys.CultureInfo.InvariantCulture, arguments);
  742. }
  743. Date._parse = function Date$_parse(value, cultureInfo, args) {
  744. var custom = false;
  745. for (var i = 1, il = args.length; i < il; i++) {
  746. var format = args[i];
  747. if (format) {
  748. custom = true;
  749. var date = Date._parseExact(value, format, cultureInfo);
  750. if (date) return date;
  751. }
  752. }
  753. if (! custom) {
  754. var formats = cultureInfo._getDateTimeFormats();
  755. for (var i = 0, il = formats.length; i < il; i++) {
  756. var date = Date._parseExact(value, formats[i], cultureInfo);
  757. if (date) return date;
  758. }
  759. }
  760. return null;
  761. }
  762. Date._parseExact = function Date$_parseExact(value, format, cultureInfo) {
  763. value = value.trim();
  764. var dtf = cultureInfo.dateTimeFormat;
  765. var parseInfo = Date._getParseRegExp(dtf, format);
  766. var match = new RegExp(parseInfo.regExp).exec(value);
  767. if (match === null) return null;
  768. var groups = parseInfo.groups;
  769. var year = null, month = null, date = null, weekDay = null;
  770. var hour = 0, min = 0, sec = 0, msec = 0, tzMinOffset = null;
  771. var pmHour = false;
  772. for (var j = 0, jl = groups.length; j < jl; j++) {
  773. var matchGroup = match[j+1];
  774. if (matchGroup) {
  775. switch (groups[j]) {
  776. case 'dd': case 'd':
  777. date = parseInt(matchGroup, 10);
  778. if ((date < 1) || (date > 31)) return null;
  779. break;
  780. case 'MMMM':
  781. month = cultureInfo._getMonthIndex(matchGroup);
  782. if ((month < 0) || (month > 11)) return null;
  783. break;
  784. case 'MMM':
  785. month = cultureInfo._getAbbrMonthIndex(matchGroup);
  786. if ((month < 0) || (month > 11)) return null;
  787. break;
  788. case 'M': case 'MM':
  789. var month = parseInt(matchGroup, 10) - 1;
  790. if ((month < 0) || (month > 11)) return null;
  791. break;
  792. case 'y': case 'yy':
  793. year = Date._expandYear(dtf,parseInt(matchGroup, 10));
  794. if ((year < 0) || (year > 9999)) return null;
  795. break;
  796. case 'yyyy':
  797. year = parseInt(matchGroup, 10);
  798. if ((year < 0) || (year > 9999)) return null;
  799. break;
  800. case 'h': case 'hh':
  801. hour = parseInt(matchGroup, 10);
  802. if (hour === 12) hour = 0;
  803. if ((hour < 0) || (hour > 11)) return null;
  804. break;
  805. case 'H': case 'HH':
  806. hour = parseInt(matchGroup, 10);
  807. if ((hour < 0) || (hour > 23)) return null;
  808. break;
  809. case 'm': case 'mm':
  810. min = parseInt(matchGroup, 10);
  811. if ((min < 0) || (min > 59)) return null;
  812. break;
  813. case 's': case 'ss':
  814. sec = parseInt(matchGroup, 10);
  815. if ((sec < 0) || (sec > 59)) return null;
  816. break;
  817. case 'tt': case 't':
  818. var upperToken = matchGroup.toUpperCase();
  819. pmHour = (upperToken === dtf.PMDesignator.toUpperCase());
  820. if (!pmHour && (upperToken !== dtf.AMDesignator.toUpperCase())) return null;
  821. break;
  822. case 'f':
  823. msec = parseInt(matchGroup, 10) * 100;
  824. if ((msec < 0) || (msec > 999)) return null;
  825. break;
  826. case 'ff':
  827. msec = parseInt(matchGroup, 10) * 10;
  828. if ((msec < 0) || (msec > 999)) return null;
  829. break;
  830. case 'fff':
  831. msec = parseInt(matchGroup, 10);
  832. if ((msec < 0) || (msec > 999)) return null;
  833. break;
  834. case 'dddd':
  835. weekDay = cultureInfo._getDayIndex(matchGroup);
  836. if ((weekDay < 0) || (weekDay > 6)) return null;
  837. break;
  838. case 'ddd':
  839. weekDay = cultureInfo._getAbbrDayIndex(matchGroup);
  840. if ((weekDay < 0) || (weekDay > 6)) return null;
  841. break;
  842. case 'zzz':
  843. var offsets = matchGroup.split(/:/);
  844. if (offsets.length !== 2) return null;
  845. var hourOffset = parseInt(offsets[0], 10);
  846. if ((hourOffset < -12) || (hourOffset > 13)) return null;
  847. var minOffset = parseInt(offsets[1], 10);
  848. if ((minOffset < 0) || (minOffset > 59)) return null;
  849. tzMinOffset = (hourOffset * 60) + (matchGroup.startsWith('-')? -minOffset : minOffset);
  850. break;
  851. case 'z': case 'zz':
  852. var hourOffset = parseInt(matchGroup, 10);
  853. if ((hourOffset < -12) || (hourOffset > 13)) return null;
  854. tzMinOffset = hourOffset * 60;
  855. break;
  856. }
  857. }
  858. }
  859. var result = new Date();
  860. if (year === null) {
  861. year = result.getFullYear();
  862. }
  863. if (month === null) {
  864. month = result.getMonth();
  865. }
  866. if (date === null) {
  867. date = result.getDate();
  868. }
  869. result.setFullYear(year, month, date);
  870. if (result.getDate() !== date) return null;
  871. if ((weekDay !== null) && (result.getDay() !== weekDay)) {
  872. return null;
  873. }
  874. if (pmHour && (hour < 12)) {
  875. hour += 12;
  876. }
  877. result.setHours(hour, min, sec, msec);
  878. if (tzMinOffset !== null) {
  879. var adjustedMin = result.getMinutes() - (tzMinOffset + result.getTimezoneOffset());
  880. result.setHours(result.getHours() + parseInt(adjustedMin/60, 10), adjustedMin%60);
  881. }
  882. return result;
  883. }
  884. Date.prototype.format = function Date$format(format) {
  885. /// <summary locid="M:J#Date.format" />
  886. /// <param name="format" type="String"></param>
  887. /// <returns type="String"></returns>
  888. var e = Function._validateParams(arguments, [
  889. {name: "format", type: String}
  890. ]);
  891. if (e) throw e;
  892. return this._toFormattedString(format, Sys.CultureInfo.InvariantCulture);
  893. }
  894. Date.prototype.localeFormat = function Date$localeFormat(format) {
  895. /// <summary locid="M:J#Date.localeFormat" />
  896. /// <param name="format" type="String"></param>
  897. /// <returns type="String"></returns>
  898. var e = Function._validateParams(arguments, [
  899. {name: "format", type: String}
  900. ]);
  901. if (e) throw e;
  902. return this._toFormattedString(format, Sys.CultureInfo.CurrentCulture);
  903. }
  904. Date.prototype._toFormattedString = function Date$_toFormattedString(format, cultureInfo) {
  905. if (!format || (format.length === 0) || (format === 'i')) {
  906. if (cultureInfo && (cultureInfo.name.length > 0)) {
  907. return this.toLocaleString();
  908. }
  909. else {
  910. return this.toString();
  911. }
  912. }
  913. var dtf = cultureInfo.dateTimeFormat;
  914. format = Date._expandFormat(dtf, format);
  915. var ret = new Sys.StringBuilder();
  916. var hour;
  917. function addLeadingZero(num) {
  918. if (num < 10) {
  919. return '0' + num;
  920. }
  921. return num.toString();
  922. }
  923. function addLeadingZeros(num) {
  924. if (num < 10) {
  925. return '00' + num;
  926. }
  927. if (num < 100) {
  928. return '0' + num;
  929. }
  930. return num.toString();
  931. }
  932. var quoteCount = 0;
  933. var tokenRegExp = Date._getTokenRegExp();
  934. for (;;) {
  935. var index = tokenRegExp.lastIndex;
  936. var ar = tokenRegExp.exec(format);
  937. var preMatch = format.slice(index, ar ? ar.index : format.length);
  938. quoteCount += Date._appendPreOrPostMatch(preMatch, ret);
  939. if (!ar) break;
  940. if ((quoteCount%2) === 1) {
  941. ret.append(ar[0]);
  942. continue;
  943. }
  944. switch (ar[0]) {
  945. case "dddd":
  946. ret.append(dtf.DayNames[this.getDay()]);
  947. break;
  948. case "ddd":
  949. ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
  950. break;
  951. case "dd":
  952. ret.append(addLeadingZero(this.getDate()));
  953. break;
  954. case "d":
  955. ret.append(this.getDate());
  956. break;
  957. case "MMMM":
  958. ret.append(dtf.MonthNames[this.getMonth()]);
  959. break;
  960. case "MMM":
  961. ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
  962. break;
  963. case "MM":
  964. ret.append(addLeadingZero(this.getMonth() + 1));
  965. break;
  966. case "M":
  967. ret.append(this.getMonth() + 1);
  968. break;
  969. case "yyyy":
  970. ret.append(this.getFullYear());
  971. break;
  972. case "yy":
  973. ret.append(addLeadingZero(this.getFullYear() % 100));
  974. break;
  975. case "y":
  976. ret.append(this.getFullYear() % 100);
  977. break;
  978. case "hh":
  979. hour = this.getHours() % 12;
  980. if (hour === 0) hour = 12;
  981. ret.append(addLeadingZero(hour));
  982. break;
  983. case "h":
  984. hour = this.getHours() % 12;
  985. if (hour === 0) hour = 12;
  986. ret.append(hour);
  987. break;
  988. case "HH":
  989. ret.append(addLeadingZero(this.getHours()));
  990. break;
  991. case "H":
  992. ret.append(this.getHours());
  993. break;
  994. case "mm":
  995. ret.append(addLeadingZero(this.getMinutes()));
  996. break;
  997. case "m":
  998. ret.append(this.getMinutes());
  999. break;
  1000. case "ss":
  1001. ret.append(addLeadingZero(this.getSeconds()));
  1002. break;
  1003. case "s":
  1004. ret.append(this.getSeconds());
  1005. break;
  1006. case "tt":
  1007. ret.append((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator);
  1008. break;
  1009. case "t":
  1010. ret.append(((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator).charAt(0));
  1011. break;
  1012. case "f":
  1013. ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
  1014. break;
  1015. case "ff":
  1016. ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, 2));
  1017. break;
  1018. case "fff":
  1019. ret.append(addLeadingZeros(this.getMilliseconds()));
  1020. break;
  1021. case "z":
  1022. hour = this.getTimezoneOffset() / 60;
  1023. ret.append(((hour <= 0) ? '+' : '-') + Math.floor(Math.abs(hour)));
  1024. break;
  1025. case "zz":
  1026. hour = this.getTimezoneOffset() / 60;
  1027. ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))));
  1028. break;
  1029. case "zzz":
  1030. hour = this.getTimezoneOffset() / 60;
  1031. ret.append(((hour <= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))) +
  1032. dtf.TimeSeparator + addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
  1033. break;
  1034. }
  1035. }
  1036. return ret.toString();
  1037. }
  1038. Number.__typeName = 'Number';
  1039. Number.__class = true;
  1040. Number.parseLocale = function Number$parseLocale(value) {
  1041. /// <summary locid="M:J#Number.parseLocale" />
  1042. /// <param name="value" type="String"></param>
  1043. /// <returns type="Number"></returns>
  1044. var e = Function._validateParams(arguments, [
  1045. {name: "value", type: String}
  1046. ]);
  1047. if (e) throw e;
  1048. return Number._parse(value, Sys.CultureInfo.CurrentCulture);
  1049. }
  1050. Number.parseInvariant = function Number$parseInvariant(value) {
  1051. /// <summary locid="M:J#Number.parseInvariant" />
  1052. /// <param name="value" type="String"></param>
  1053. /// <returns type="Number"></returns>
  1054. var e = Function._validateParams(arguments, [
  1055. {name: "value", type: String}
  1056. ]);
  1057. if (e) throw e;
  1058. return Number._parse(value, Sys.CultureInfo.InvariantCulture);
  1059. }
  1060. Number._parse = function Number$_parse(value, cultureInfo) {
  1061. value = value.trim();
  1062. if (value.match(/^[+-]?infinity$/i)) {
  1063. return parseFloat(value);
  1064. }
  1065. if (value.match(/^0x[a-f0-9]+$/i)) {
  1066. return parseInt(value);
  1067. }
  1068. var numFormat = cultureInfo.numberFormat;
  1069. var signInfo = Number._parseNumberNegativePattern(value, numFormat, numFormat.NumberNegativePattern);
  1070. var sign = signInfo[0];
  1071. var num = signInfo[1];
  1072. if ((sign === '') && (numFormat.NumberNegativePattern !== 1)) {
  1073. signInfo = Number._parseNumberNegativePattern(value, numFormat, 1);
  1074. sign = signInfo[0];
  1075. num = signInfo[1];
  1076. }
  1077. if (sign === '') sign = '+';
  1078. var exponent;
  1079. var intAndFraction;
  1080. var exponentPos = num.indexOf('e');
  1081. if (exponentPos < 0) exponentPos = num.indexOf('E');
  1082. if (exponentPos < 0) {
  1083. intAndFraction = num;
  1084. exponent = null;
  1085. }
  1086. else {
  1087. intAndFraction = num.substr(0, exponentPos);
  1088. exponent = num.substr(exponentPos + 1);
  1089. }
  1090. var integer;
  1091. var fraction;
  1092. var decimalPos = intAndFraction.indexOf(numFormat.NumberDecimalSeparator);
  1093. if (decimalPos < 0) {
  1094. integer = intAndFraction;
  1095. fraction = null;
  1096. }
  1097. else {
  1098. integer = intAndFraction.substr(0, decimalPos);
  1099. fraction = intAndFraction.substr(decimalPos + numFormat.NumberDecimalSeparator.length);
  1100. }
  1101. integer = integer.split(numFormat.NumberGroupSeparator).join('');
  1102. var altNumGroupSeparator = numFormat.NumberGroupSeparator.replace(/\u00A0/g, " ");
  1103. if (numFormat.NumberGroupSeparator !== altNumGroupSeparator) {
  1104. integer = integer.split(altNumGroupSeparator).join('');
  1105. }
  1106. var p = sign + integer;
  1107. if (fraction !== null) {
  1108. p += '.' + fraction;
  1109. }
  1110. if (exponent !== null) {
  1111. var expSignInfo = Number._parseNumberNegativePattern(exponent, numFormat, 1);
  1112. if (expSignInfo[0] === '') {
  1113. expSignInfo[0] = '+';
  1114. }
  1115. p += 'e' + expSignInfo[0] + expSignInfo[1];
  1116. }
  1117. if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
  1118. return parseFloat(p);
  1119. }
  1120. return Number.NaN;
  1121. }
  1122. Number._parseNumberNegativePattern = function Number$_parseNumberNegativePattern(value, numFormat, numberNegativePattern) {
  1123. var neg = numFormat.NegativeSign;
  1124. var pos = numFormat.PositiveSign;
  1125. switch (numberNegativePattern) {
  1126. case 4:
  1127. neg = ' ' + neg;
  1128. pos = ' ' + pos;
  1129. case 3:
  1130. if (value.endsWith(neg)) {
  1131. return ['-', value.substr(0, value.length - neg.length)];
  1132. }
  1133. else if (value.endsWith(pos)) {
  1134. return ['+', value.substr(0, value.length - pos.length)];
  1135. }
  1136. break;
  1137. case 2:
  1138. neg += ' ';
  1139. pos += ' ';
  1140. case 1:
  1141. if (value.startsWith(neg)) {
  1142. return ['-', value.substr(neg.length)];
  1143. }
  1144. else if (value.startsWith(pos)) {
  1145. return ['+', value.substr(pos.length)];
  1146. }
  1147. break;
  1148. case 0:
  1149. if (value.startsWith('(') && value.endsWith(')')) {
  1150. return ['-', value.substr(1, value.length - 2)];
  1151. }
  1152. break;
  1153. }
  1154. return ['', value];
  1155. }
  1156. Number.prototype.format = function Number$format(format) {
  1157. /// <summary locid="M:J#Number.format" />
  1158. /// <param name="format" type="String"></param>
  1159. /// <returns type="String"></returns>
  1160. var e = Function._validateParams(arguments, [
  1161. {name: "format", type: String}
  1162. ]);
  1163. if (e) throw e;
  1164. return this._toFormattedString(format, Sys.CultureInfo.InvariantCulture);
  1165. }
  1166. Number.prototype.localeFormat = function Number$localeFormat(format) {
  1167. /// <summary locid="M:J#Number.localeFormat" />
  1168. /// <param name="format" type="String"></param>
  1169. /// <returns type="String"></returns>
  1170. var e = Function._validateParams(arguments, [
  1171. {name: "format", type: String}
  1172. ]);
  1173. if (e) throw e;
  1174. return this._toFormattedString(format, Sys.CultureInfo.CurrentCulture);
  1175. }
  1176. Number.prototype._toFormattedString = function Number$_toFormattedString(format, cultureInfo) {
  1177. if (!format || (format.length === 0) || (format === 'i')) {
  1178. if (cultureInfo && (cultureInfo.name.length > 0)) {
  1179. return this.toLocaleString();
  1180. }
  1181. else {
  1182. return this.toString();
  1183. }
  1184. }
  1185. var _percentPositivePattern = ["n %", "n%", "%n" ];
  1186. var _percentNegativePattern = ["-n %", "-n%", "-%n"];
  1187. var _numberNegativePattern = ["(n)","-n","- n","n-","n -"];
  1188. var _currencyPositivePattern = ["$n","n$","$ n","n $"];
  1189. var _currencyNegativePattern = ["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"];
  1190. function zeroPad(str, count, left) {
  1191. for (var l=str.length; l < count; l++) {
  1192. str = (left ? ('0' + str) : (str + '0'));
  1193. }
  1194. return str;
  1195. }
  1196. function expandNumber(number, precision, groupSizes, sep, decimalChar) {
  1197. var curSize = groupSizes[0];
  1198. var curGroupIndex = 1;
  1199. var factor = Math.pow(10, precision);
  1200. var rounded = (Math.round(number * factor) / factor);
  1201. if (!isFinite(rounded)) {
  1202. rounded = number;
  1203. }
  1204. number = rounded;
  1205. var numberString = number.toString();
  1206. var right = "";
  1207. var exponent;
  1208. var split = numberString.split(/e/i);
  1209. numberString = split[0];
  1210. exponent = (split.length > 1 ? parseInt(split[1]) : 0);
  1211. split = numberString.split('.');
  1212. numberString = split[0];
  1213. right = split.length > 1 ? split[1] : "";
  1214. var l;
  1215. if (exponent > 0) {
  1216. right = zeroPad(right, exponent, false);
  1217. numberString += right.slice(0, exponent);
  1218. right = right.substr(exponent);
  1219. }
  1220. else if (exponent < 0) {
  1221. exponent = -exponent;
  1222. numberString = zeroPad(numberString, exponent+1, true);
  1223. right = numberString.slice(-exponent, numberString.length) + right;
  1224. numberString = numberString.slice(0, -exponent);
  1225. }
  1226. if (precision > 0) {
  1227. if (right.length > precision) {
  1228. right = right.slice(0, precision);
  1229. }
  1230. else {
  1231. right = zeroPad(right, precision, false);
  1232. }
  1233. right = decimalChar + right;
  1234. }
  1235. else {
  1236. right = "";
  1237. }
  1238. var stringIndex = numberString.length-1;
  1239. var ret = "";
  1240. while (stringIndex >= 0) {
  1241. if (curSize === 0 || curSize > stringIndex) {
  1242. if (ret.length > 0)
  1243. return numberString.slice(0, stringIndex + 1) + sep + ret + right;
  1244. else
  1245. return numberString.slice(0, stringIndex + 1) + right;
  1246. }
  1247. if (ret.length > 0)
  1248. ret = numberString.slice(stringIndex - curSize + 1, stringIndex+1) + sep + ret;
  1249. else
  1250. ret = numberString.slice(stringIndex - curSize + 1, stringIndex+1);
  1251. stringIndex -= curSize;
  1252. if (curGroupIndex < groupSizes.length) {
  1253. curSize = groupSizes[curGroupIndex];
  1254. curGroupIndex++;
  1255. }
  1256. }
  1257. return numberString.slice(0, stringIndex + 1) + sep + ret + right;
  1258. }
  1259. var nf = cultureInfo.numberFormat;
  1260. var number = Math.abs(this);
  1261. if (!format)
  1262. format = "D";
  1263. var precision = -1;
  1264. if (format.length > 1) precision = parseInt(format.slice(1), 10);
  1265. var pattern;
  1266. switch (format.charAt(0)) {
  1267. case "d":
  1268. case "D":
  1269. pattern = 'n';
  1270. if (precision !== -1) {
  1271. number = zeroPad(""+number, precision, true);
  1272. }
  1273. if (this < 0) number = -number;
  1274. break;
  1275. case "c":
  1276. case "C":
  1277. if (this < 0) pattern = _currencyNegativePattern[nf.CurrencyNegativePattern];
  1278. else pattern = _currencyPositivePattern[nf.CurrencyPositivePattern];
  1279. if (precision === -1) precision = nf.CurrencyDecimalDigits;
  1280. number = expandNumber(Math.abs(this), precision, nf.CurrencyGroupSizes, nf.CurrencyGroupSeparator, nf.CurrencyDecimalSeparator);
  1281. break;
  1282. case "n":
  1283. case "N":
  1284. if (this < 0) pattern = _numberNegativePattern[nf.NumberNegativePattern];
  1285. else pattern = 'n';
  1286. if (precision === -1) precision = nf.NumberDecimalDigits;
  1287. number = expandNumber(Math.abs(this), precision, nf.NumberGroupSizes, nf.NumberGroupSeparator, nf.NumberDecimalSeparator);
  1288. break;
  1289. case "p":
  1290. case "P":
  1291. if (this < 0) pattern = _percentNegativePattern[nf.PercentNegativePattern];
  1292. else pattern = _percentPositivePattern[nf.PercentPositivePattern];
  1293. if (precision === -1) precision = nf.PercentDecimalDigits;
  1294. number = expandNumber(Math.abs(this) * 100, precision, nf.PercentGroupSizes, nf.PercentGroupSeparator, nf.PercentDecimalSeparator);
  1295. break;
  1296. default:
  1297. throw Error.format(Sys.Res.formatBadFormatSpecifier);
  1298. }
  1299. var regex = /n|\$|-|%/g;
  1300. var ret = "";
  1301. for (;;) {
  1302. var index = regex.lastIndex;
  1303. var ar = regex.exec(pattern);
  1304. ret += pattern.slice(index, ar ? ar.index : pattern.length);
  1305. if (!ar)
  1306. break;
  1307. switch (ar[0]) {
  1308. case "n":
  1309. ret += number;
  1310. break;
  1311. case "$":
  1312. ret += nf.CurrencySymbol;
  1313. break;
  1314. case "-":
  1315. ret += nf.NegativeSign;
  1316. break;
  1317. case "%":
  1318. ret += nf.PercentSymbol;
  1319. break;
  1320. }
  1321. }
  1322. return ret;
  1323. }
  1324. RegExp.__typeName = 'RegExp';
  1325. RegExp.__class = true;
  1326. Array.__typeName = 'Array';
  1327. Array.__class = true;
  1328. Array.add = Array.enqueue = function Array$enqueue(array, item) {
  1329. /// <summary locid="M:J#Array.enqueue" />
  1330. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1331. /// <param name="item" mayBeNull="true"></param>
  1332. var e = Function._validateParams(arguments, [
  1333. {name: "array", type: Array, elementMayBeNull: true},
  1334. {name: "item", mayBeNull: true}
  1335. ]);
  1336. if (e) throw e;
  1337. array[array.length] = item;
  1338. }
  1339. Array.addRange = function Array$addRange(array, items) {
  1340. /// <summary locid="M:J#Array.addRange" />
  1341. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1342. /// <param name="items" type="Array" elementMayBeNull="true"></param>
  1343. var e = Function._validateParams(arguments, [
  1344. {name: "array", type: Array, elementMayBeNull: true},
  1345. {name: "items", type: Array, elementMayBeNull: true}
  1346. ]);
  1347. if (e) throw e;
  1348. array.push.apply(array, items);
  1349. }
  1350. Array.clear = function Array$clear(array) {
  1351. /// <summary locid="M:J#Array.clear" />
  1352. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1353. var e = Function._validateParams(arguments, [
  1354. {name: "array", type: Array, elementMayBeNull: true}
  1355. ]);
  1356. if (e) throw e;
  1357. array.length = 0;
  1358. }
  1359. Array.clone = function Array$clone(array) {
  1360. /// <summary locid="M:J#Array.clone" />
  1361. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1362. /// <returns type="Array" elementMayBeNull="true"></returns>
  1363. var e = Function._validateParams(arguments, [
  1364. {name: "array", type: Array, elementMayBeNull: true}
  1365. ]);
  1366. if (e) throw e;
  1367. if (array.length === 1) {
  1368. return [array[0]];
  1369. }
  1370. else {
  1371. return Array.apply(null, array);
  1372. }
  1373. }
  1374. Array.contains = function Array$contains(array, item) {
  1375. /// <summary locid="M:J#Array.contains" />
  1376. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1377. /// <param name="item" mayBeNull="true"></param>
  1378. /// <returns type="Boolean"></returns>
  1379. var e = Function._validateParams(arguments, [
  1380. {name: "array", type: Array, elementMayBeNull: true},
  1381. {name: "item", mayBeNull: true}
  1382. ]);
  1383. if (e) throw e;
  1384. return (Array.indexOf(array, item) >= 0);
  1385. }
  1386. Array.dequeue = function Array$dequeue(array) {
  1387. /// <summary locid="M:J#Array.dequeue" />
  1388. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1389. /// <returns mayBeNull="true"></returns>
  1390. var e = Function._validateParams(arguments, [
  1391. {name: "array", type: Array, elementMayBeNull: true}
  1392. ]);
  1393. if (e) throw e;
  1394. return array.shift();
  1395. }
  1396. Array.forEach = function Array$forEach(array, method, instance) {
  1397. /// <summary locid="M:J#Array.forEach" />
  1398. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1399. /// <param name="method" type="Function"></param>
  1400. /// <param name="instance" optional="true" mayBeNull="true"></param>
  1401. var e = Function._validateParams(arguments, [
  1402. {name: "array", type: Array, elementMayBeNull: true},
  1403. {name: "method", type: Function},
  1404. {name: "instance", mayBeNull: true, optional: true}
  1405. ]);
  1406. if (e) throw e;
  1407. for (var i = 0, l = array.length; i < l; i++) {
  1408. var elt = array[i];
  1409. if (typeof(elt) !== 'undefined') method.call(instance, elt, i, array);
  1410. }
  1411. }
  1412. Array.indexOf = function Array$indexOf(array, item, start) {
  1413. /// <summary locid="M:J#Array.indexOf" />
  1414. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1415. /// <param name="item" optional="true" mayBeNull="true"></param>
  1416. /// <param name="start" optional="true" mayBeNull="true"></param>
  1417. /// <returns type="Number"></returns>
  1418. var e = Function._validateParams(arguments, [
  1419. {name: "array", type: Array, elementMayBeNull: true},
  1420. {name: "item", mayBeNull: true, optional: true},
  1421. {name: "start", mayBeNull: true, optional: true}
  1422. ]);
  1423. if (e) throw e;
  1424. if (typeof(item) === "undefined") return -1;
  1425. var length = array.length;
  1426. if (length !== 0) {
  1427. start = start - 0;
  1428. if (isNaN(start)) {
  1429. start = 0;
  1430. }
  1431. else {
  1432. if (isFinite(start)) {
  1433. start = start - (start % 1);
  1434. }
  1435. if (start < 0) {
  1436. start = Math.max(0, length + start);
  1437. }
  1438. }
  1439. for (var i = start; i < length; i++) {
  1440. if ((typeof(array[i]) !== "undefined") && (array[i] === item)) {
  1441. return i;
  1442. }
  1443. }
  1444. }
  1445. return -1;
  1446. }
  1447. Array.insert = function Array$insert(array, index, item) {
  1448. /// <summary locid="M:J#Array.insert" />
  1449. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1450. /// <param name="index" mayBeNull="true"></param>
  1451. /// <param name="item" mayBeNull="true"></param>
  1452. var e = Function._validateParams(arguments, [
  1453. {name: "array", type: Array, elementMayBeNull: true},
  1454. {name: "index", mayBeNull: true},
  1455. {name: "item", mayBeNull: true}
  1456. ]);
  1457. if (e) throw e;
  1458. array.splice(index, 0, item);
  1459. }
  1460. Array.parse = function Array$parse(value) {
  1461. /// <summary locid="M:J#Array.parse" />
  1462. /// <param name="value" type="String" mayBeNull="true"></param>
  1463. /// <returns type="Array" elementMayBeNull="true"></returns>
  1464. var e = Function._validateParams(arguments, [
  1465. {name: "value", type: String, mayBeNull: true}
  1466. ]);
  1467. if (e) throw e;
  1468. if (!value) return [];
  1469. var v = eval(value);
  1470. if (!Array.isInstanceOfType(v)) throw Error.argument('value', Sys.Res.arrayParseBadFormat);
  1471. return v;
  1472. }
  1473. Array.remove = function Array$remove(array, item) {
  1474. /// <summary locid="M:J#Array.remove" />
  1475. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1476. /// <param name="item" mayBeNull="true"></param>
  1477. /// <returns type="Boolean"></returns>
  1478. var e = Function._validateParams(arguments, [
  1479. {name: "array", type: Array, elementMayBeNull: true},
  1480. {name: "item", mayBeNull: true}
  1481. ]);
  1482. if (e) throw e;
  1483. var index = Array.indexOf(array, item);
  1484. if (index >= 0) {
  1485. array.splice(index, 1);
  1486. }
  1487. return (index >= 0);
  1488. }
  1489. Array.removeAt = function Array$removeAt(array, index) {
  1490. /// <summary locid="M:J#Array.removeAt" />
  1491. /// <param name="array" type="Array" elementMayBeNull="true"></param>
  1492. /// <param name="index" mayBeNull="true"></param>
  1493. var e = Function._validateParams(arguments, [
  1494. {name: "array", type: Array, elementMayBeNull: true},
  1495. {name: "index", mayBeNull: true}
  1496. ]);
  1497. if (e) throw e;
  1498. array.splice(index, 1);
  1499. }
  1500. if (!window) this.window = this;
  1501. window.Type = Function;
  1502. Type.__fullyQualifiedIdentifierRegExp = new RegExp("^[^.0-9 \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
  1503. Type.__identifierRegExp = new RegExp("^[^.0-9 \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. \\s|,;:&*=+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");
  1504. Type.prototype.callBaseMethod = function Type$callBaseMethod(instance, name, baseArguments) {
  1505. /// <summary locid="M:J#Type.callBaseMethod" />
  1506. /// <param name="instance"></param>
  1507. /// <param name="name" type="String"></param>
  1508. /// <param name="baseArguments" type="Array" optional="true" mayBeNull="true" elementMayBeNull="true"></param>
  1509. /// <returns></returns>
  1510. var e = Function._validateParams(arguments, [
  1511. {name: "instance"},
  1512. {name: "name", type: String},
  1513. {name: "baseArguments", type: Array, mayBeNull: true, optional: true, elementMayBeNull: true}
  1514. ]);
  1515. if (e) throw e;
  1516. var baseMethod = this.getBaseMethod(instance, name);
  1517. if (!baseMethod) throw Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
  1518. if (!baseArguments) {
  1519. return baseMethod.apply(instance);
  1520. }
  1521. else {
  1522. return baseMethod.apply(instance, baseArguments);
  1523. }
  1524. }
  1525. Type.prototype.getBaseMethod = function Type$getBaseMethod(instance, name) {
  1526. /// <summary locid="M:J#Type.getBaseMethod" />
  1527. /// <param name="instance"></param>
  1528. /// <param name="name" type="String"></param>
  1529. /// <returns type="Function" mayBeNull="true"></returns>
  1530. var e = Function._validateParams(arguments, [
  1531. {name: "instance"},
  1532. {name: "name", type: String}
  1533. ]);
  1534. if (e) throw e;
  1535. if (!this.isInstanceOfType(instance)) throw Error.argumentType('instance', Object.getType(instance), this);
  1536. var baseType = this.getBaseType();
  1537. if (baseType) {
  1538. var baseMethod = baseType.prototype[name];
  1539. return (baseMethod instanceof Function) ? baseMethod : null;
  1540. }
  1541. return null;
  1542. }
  1543. Type.prototype.getBaseType = function Type$getBaseType() {
  1544. /// <summary locid="M:J#Type.getBaseType" />
  1545. /// <returns type="Type" mayBeNull="true"></returns>
  1546. if (arguments.length !== 0) throw Error.parameterCount();
  1547. return (typeof(this.__baseType) === "undefined") ? null : this.__baseType;
  1548. }
  1549. Type.prototype.getInterfaces = function Type$getInterfaces() {
  1550. /// <summary locid="M:J#Type.getInterfaces" />
  1551. /// <returns type="Array" elementType="Type" mayBeNull="false" elementMayBeNull="false"></returns>
  1552. if (arguments.length !== 0) throw Error.parameterCount();
  1553. var result = [];
  1554. var type = this;
  1555. while(type) {
  1556. var interfaces = type.__interfaces;
  1557. if (interfaces) {
  1558. for (var i = 0, l = interfaces.length; i < l; i++) {
  1559. var interfaceType = interfaces[i];
  1560. if (!Array.contains(result, interfaceType)) {
  1561. result[result.length] = interfaceType;
  1562. }
  1563. }
  1564. }
  1565. type = type.__baseType;
  1566. }
  1567. return result;
  1568. }
  1569. Type.prototype.getName = function Type$getName() {
  1570. /// <summary locid="M:J#Type.getName" />
  1571. /// <returns type="String"></returns>
  1572. if (arguments.length !== 0) throw Error.parameterCount();
  1573. return (typeof(this.__typeName) === "undefined") ? "" : this.__typeName;
  1574. }
  1575. Type.prototype.implementsInterface = function Type$implementsInterface(interfaceType) {
  1576. /// <summary locid="M:J#Type.implementsInterface" />
  1577. /// <param name="interfaceType" type="Type"></param>
  1578. /// <returns type="Boolean"></returns>
  1579. var e = Function._validateParams(arguments, [
  1580. {name: "interfaceType", type: Type}
  1581. ]);
  1582. if (e) throw e;
  1583. this.resolveInheritance();
  1584. var interfaceName = interfaceType.getName();
  1585. var cache = this.__interfaceCache;
  1586. if (cache) {
  1587. var cacheEntry = cache[interfaceName];
  1588. if (typeof(cacheEntry) !== 'undefined') return cacheEntry;
  1589. }
  1590. else {
  1591. cache = this.__interfaceCache = {};
  1592. }
  1593. var baseType = this;
  1594. while (baseType) {
  1595. var interfaces = baseType.__interfaces;
  1596. if (interfaces) {
  1597. if (Array.indexOf(interfaces, interfaceType) !== -1) {
  1598. return cache[interfaceName] = true;
  1599. }
  1600. }
  1601. baseType = baseType.__baseType;
  1602. }
  1603. return cache[interfaceName] = false;
  1604. }
  1605. Type.prototype.inheritsFrom = function Type$inheritsFrom(parentType) {
  1606. /// <summary locid="M:J#Type.inheritsFrom" />
  1607. /// <param name="parentType" type="Type"></param>
  1608. /// <returns type="Boolean"></returns>
  1609. var e = Function._validateParams(arguments, [
  1610. {name: "parentType", type: Type}
  1611. ]);
  1612. if (e) throw e;
  1613. this.resolveInheritance();
  1614. var baseType = this.__baseType;
  1615. while (baseType) {
  1616. if (baseType === parentType) {
  1617. return true;
  1618. }
  1619. baseType = baseType.__baseType;
  1620. }
  1621. return false;
  1622. }
  1623. Type.prototype.initializeBase = function Type$initializeBase(instance, baseArguments) {
  1624. /// <summary locid="M:J#Type.initializeBase" />
  1625. /// <param name="instance"></param>
  1626. /// <param name="baseArguments" type="Array" optional="true" mayBeNull="true" elementMayBeNull="true"></param>
  1627. /// <returns></returns>
  1628. var e = Function._validateParams(arguments, [
  1629. {name: "instance"},
  1630. {name: "baseArguments", type: Array, mayBeNull: true, optional: true, elementMayBeNull: true}
  1631. ]);
  1632. if (e) throw e;
  1633. if (!this.isInstanceOfType(instance)) throw Error.argumentType('instance', Object.getType(instance), this);
  1634. this.resolveInheritance();
  1635. if (this.__baseType) {
  1636. if (!baseArguments) {
  1637. this.__baseType.apply(instance);
  1638. }
  1639. else {
  1640. this.__baseType.apply(instance, baseArguments);
  1641. }
  1642. }
  1643. return instance;
  1644. }
  1645. Type.prototype.isImplementedBy = function Type$isImplementedBy(instance) {
  1646. /// <summary locid="M:J#Type.isImplementedBy" />
  1647. /// <param name="instance" mayBeNull="true"></param>
  1648. /// <returns type="Boolean"></returns>
  1649. var e = Function._validateParams(arguments, [
  1650. {name: "instance", mayBeNull: true}
  1651. ]);
  1652. if (e) throw e;
  1653. if (typeof(instance) === "undefined" || instance === null) return false;
  1654. var instanceType = Object.getType(instance);
  1655. return !!(instanceType.implementsInterface && instanceType.implementsInterface(this));
  1656. }
  1657. Type.prototype.isInstanceOfType = function Type$isInstanceOfType(instance) {
  1658. /// <summary locid="M:J#Type.isInstanceOfType" />
  1659. /// <param name="instance" mayBeNull="true"></param>
  1660. /// <returns type="Boolean"></returns>
  1661. var e = Function._validateParams(arguments, [
  1662. {name: "instance", mayBeNull: true}
  1663. ]);
  1664. if (e) throw e;
  1665. if (typeof(instance) === "undefined" || instance === null) return false;
  1666. if (instance instanceof this) return true;
  1667. var instanceType = Object.getType(instance);
  1668. return !!(instanceType === this) ||
  1669. (instanceType.inheritsFrom && instanceType.inheritsFrom(this)) ||
  1670. (instanceType.implementsInterface && instanceType.implementsInterface(this));
  1671. }
  1672. Type.prototype.registerClass = function Type$registerClass(typeName, baseType, interfaceTypes) {
  1673. /// <summary locid="M:J#Type.registerClass" />
  1674. /// <param name="typeName" type="String"></param>
  1675. /// <param name="baseType" type="Type" optional="true" mayBeNull="true"></param>
  1676. /// <param name="interfaceTypes" parameterArray="true" type="Type"></param>
  1677. /// <returns type="Type"></returns>
  1678. var e = Function._validateParams(arguments, [
  1679. {name: "typeName", type: String},
  1680. {name: "baseType", type: Type, mayBeNull: true, optional: true},
  1681. {name: "interfaceTypes", type: Type, parameterArray: true}
  1682. ]);
  1683. if (e) throw e;
  1684. if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw Error.argument('typeName', Sys.Res.notATypeName);
  1685. var parsedName;
  1686. try {
  1687. parsedName = eval(typeName);
  1688. }
  1689. catch(e) {
  1690. throw Error.argument('typeName', Sys.Res.argumentTypeName);
  1691. }
  1692. if (parsedName !== this) throw Error.argument('typeName', Sys.Res.badTypeName);
  1693. if (Sys.__registeredTypes[typeName]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, typeName));
  1694. if ((arguments.length > 1) && (typeof(baseType) === 'undefined')) throw Error.argumentUndefined('baseType');
  1695. if (baseType && !baseType.__class) throw Error.argument('baseType', Sys.Res.baseNotAClass);
  1696. this.prototype.constructor = this;
  1697. this.__typeName = typeName;
  1698. this.__class = true;
  1699. if (baseType) {
  1700. this.__baseType = baseType;
  1701. this.__basePrototypePending = true;
  1702. }
  1703. Sys.__upperCaseTypes[typeName.toUpperCase()] = this;
  1704. if (interfaceTypes) {
  1705. this.__interfaces = [];
  1706. this.resolveInheritance();
  1707. for (var i = 2, l = arguments.length; i < l; i++) {
  1708. var interfaceType = arguments[i];
  1709. if (!interfaceType.__interface) throw Error.argument('interfaceTypes[' + (i - 2) + ']', Sys.Res.notAnInterface);
  1710. for (var methodName in interfaceType.prototype) {
  1711. var method = interfaceType.prototype[methodName];
  1712. if (!this.prototype[methodName]) {
  1713. this.prototype[methodName] = method;
  1714. }
  1715. }
  1716. this.__interfaces.push(interfaceType);
  1717. }
  1718. }
  1719. Sys.__registeredTypes[typeName] = true;
  1720. return this;
  1721. }
  1722. Type.prototype.registerInterface = function Type$registerInterface(typeName) {
  1723. /// <summary locid="M:J#Type.registerInterface" />
  1724. /// <param name="typeName" type="String"></param>
  1725. /// <returns type="Type"></returns>
  1726. var e = Function._validateParams(arguments, [
  1727. {name: "typeName", type: String}
  1728. ]);
  1729. if (e) throw e;
  1730. if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw Error.argument('typeName', Sys.Res.notATypeName);
  1731. var parsedName;
  1732. try {
  1733. parsedName = eval(typeName);
  1734. }
  1735. catch(e) {
  1736. throw Error.argument('typeName', Sys.Res.argumentTypeName);
  1737. }
  1738. if (parsedName !== this) throw Error.argument('typeName', Sys.Res.badTypeName);
  1739. if (Sys.__registeredTypes[typeName]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, typeName));
  1740. Sys.__upperCaseTypes[typeName.toUpperCase()] = this;
  1741. this.prototype.constructor = this;
  1742. this.__typeName = typeName;
  1743. this.__interface = true;
  1744. Sys.__registeredTypes[typeName] = true;
  1745. return this;
  1746. }
  1747. Type.prototype.resolveInheritance = function Type$resolveInheritance() {
  1748. /// <summary locid="M:J#Type.resolveInheritance" />
  1749. if (arguments.length !== 0) throw Error.parameterCount();
  1750. if (this.__basePrototypePending) {
  1751. var baseType = this.__baseType;
  1752. baseType.resolveInheritance();
  1753. for (var memberName in baseType.prototype) {
  1754. var memberValue = baseType.prototype[memberName];
  1755. if (!this.prototype[memberName]) {
  1756. this.prototype[memberName] = memberValue;
  1757. }
  1758. }
  1759. delete this.__basePrototypePending;
  1760. }
  1761. }
  1762. Type.getRootNamespaces = function Type$getRootNamespaces() {
  1763. /// <summary locid="M:J#Type.getRootNamespaces" />
  1764. /// <returns type="Array"></returns>
  1765. if (arguments.length !== 0) throw Error.parameterCount();
  1766. return Array.clone(Sys.__rootNamespaces);
  1767. }
  1768. Type.isClass = function Type$isClass(type) {
  1769. /// <summary locid="M:J#Type.isClass" />
  1770. /// <param name="type" mayBeNull="true"></param>
  1771. /// <returns type="Boolean"></returns>
  1772. var e = Function._validateParams(arguments, [
  1773. {name: "type", mayBeNull: true}
  1774. ]);
  1775. if (e) throw e;
  1776. if ((typeof(type) === 'undefined') || (type === null)) return false;
  1777. return !!type.__class;
  1778. }
  1779. Type.isInterface = function Type$isInterface(type) {
  1780. /// <summary locid="M:J#Type.isInterface" />
  1781. /// <param name="type" mayBeNull="true"></param>
  1782. /// <returns type="Boolean"></returns>
  1783. var e = Function._validateParams(arguments, [
  1784. {name: "type", mayBeNull: true}
  1785. ]);
  1786. if (e) throw e;
  1787. if ((typeof(type) === 'undefined') || (type === null)) return false;
  1788. return !!type.__interface;
  1789. }
  1790. Type.isNamespace = function Type$isNamespace(object) {
  1791. /// <summary locid="M:J#Type.isNamespace" />
  1792. /// <param name="object" mayBeNull="true"></param>
  1793. /// <returns type="Boolean"></returns>
  1794. var e = Function._validateParams(arguments, [
  1795. {name: "object", mayBeNull: true}
  1796. ]);
  1797. if (e) throw e;
  1798. if ((typeof(object) === 'undefined') || (object === null)) return false;
  1799. return !!object.__namespace;
  1800. }
  1801. Type.parse = function Type$parse(typeName, ns) {
  1802. /// <summary locid="M:J#Type.parse" />
  1803. /// <param name="typeName" type="String" mayBeNull="true"></param>
  1804. /// <param name="ns" optional="true" mayBeNull="true"></param>
  1805. /// <returns type="Type" mayBeNull="true"></returns>
  1806. var e = Function._validateParams(arguments, [
  1807. {name: "typeName", type: String, mayBeNull: true},
  1808. {name: "ns", mayBeNull: true, optional: true}
  1809. ]);
  1810. if (e) throw e;
  1811. var fn;
  1812. if (ns) {
  1813. fn = Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + typeName.toUpperCase()];
  1814. return fn || null;
  1815. }
  1816. if (!typeName) return null;
  1817. if (!Type.__htClasses) {
  1818. Type.__htClasses = {};
  1819. }
  1820. fn = Type.__htClasses[typeName];
  1821. if (!fn) {
  1822. fn = eval(typeName);
  1823. if (typeof(fn) !== 'function') throw Error.argument('typeName', Sys.Res.notATypeName);
  1824. Type.__htClasses[typeName] = fn;
  1825. }
  1826. return fn;
  1827. }
  1828. Type.registerNamespace = function Type$registerNamespace(namespacePath) {
  1829. /// <summary locid="M:J#Type.registerNamespace" />
  1830. /// <param name="namespacePath" type="String"></param>
  1831. var e = Function._validateParams(arguments, [
  1832. {name: "namespacePath", type: String}
  1833. ]);
  1834. if (e) throw e;
  1835. if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
  1836. var rootObject = window;
  1837. var namespaceParts = namespacePath.split('.');
  1838. for (var i = 0; i < namespaceParts.length; i++) {
  1839. var currentPart = namespaceParts[i];
  1840. var ns = rootObject[currentPart];
  1841. if (ns && !ns.__namespace) {
  1842. throw Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, namespaceParts.splice(0, i + 1).join('.')));
  1843. }
  1844. if (!ns) {
  1845. ns = rootObject[currentPart] = {
  1846. __namespace: true,
  1847. __typeName: namespaceParts.slice(0, i + 1).join('.')
  1848. };
  1849. if (i === 0) {
  1850. Sys.__rootNamespaces[Sys.__rootNamespaces.length] = ns;
  1851. }
  1852. var parsedName;
  1853. try {
  1854. parsedName = eval(ns.__typeName);
  1855. }
  1856. catch(e) {
  1857. parsedName = null;
  1858. }
  1859. if (parsedName !== ns) {
  1860. delete rootObject[currentPart];
  1861. throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
  1862. }
  1863. ns.getName = function ns$getName() {return this.__typeName;}
  1864. }
  1865. rootObject = ns;
  1866. }
  1867. }
  1868. window.Sys = {
  1869. __namespace: true,
  1870. __typeName: "Sys",
  1871. getName: function() {return "Sys";},
  1872. __upperCaseTypes: {}
  1873. };
  1874. Sys.__rootNamespaces = [Sys];
  1875. Sys.__registeredTypes = {};
  1876. Sys.IDisposable = function Sys$IDisposable() {
  1877. throw Error.notImplemented();
  1878. }
  1879. function Sys$IDisposable$dispose() {
  1880. throw Error.notImplemented();
  1881. }
  1882. Sys.IDisposable.prototype = {
  1883. dispose: Sys$IDisposable$dispose
  1884. }
  1885. Sys.IDisposable.registerInterface('Sys.IDisposable');
  1886. Sys.StringBuilder = function Sys$StringBuilder(initialText) {
  1887. /// <summary locid="M:J#Sys.StringBuilder.#ctor" />
  1888. /// <param name="initialText" optional="true" mayBeNull="true"></param>
  1889. var e = Function._validateParams(arguments, [
  1890. {name: "initialText", mayBeNull: true, optional: true}
  1891. ]);
  1892. if (e) throw e;
  1893. this._parts = (typeof(initialText) !== 'undefined' && initialText !== null && initialText !== '') ?
  1894. [initialText.toString()] : [];
  1895. this._value = {};
  1896. this._len = 0;
  1897. }
  1898. function Sys$StringBuilder$append(text) {
  1899. /// <summary locid="M:J#Sys.StringBuilder.append" />
  1900. /// <param name="text" mayBeNull="true"></param>
  1901. var e = Function._validateParams(arguments, [
  1902. {name: "text", mayBeNull: true}
  1903. ]);
  1904. if (e) throw e;
  1905. this._parts[this._parts.length] = text;
  1906. }
  1907. function Sys$StringBuilder$appendLine(text) {
  1908. /// <summary locid="M:J#Sys.StringBuilder.appendLine" />
  1909. /// <param name="text" optional="true" mayBeNull="true"></param>
  1910. var e = Function._validateParams(arguments, [
  1911. {name: "text", mayBeNull: true, optional: true}
  1912. ]);
  1913. if (e) throw e;
  1914. this._parts[this._parts.length] =
  1915. ((typeof(text) === 'undefined') || (text === null) || (text === '')) ?
  1916. '\r\n' : text + '\r\n';
  1917. }
  1918. function Sys$StringBuilder$clear() {
  1919. /// <summary locid="M:J#Sys.StringBuilder.clear" />
  1920. if (arguments.length !== 0) throw Error.parameterCount();
  1921. this._parts = [];
  1922. this._value = {};
  1923. this._len = 0;
  1924. }
  1925. function Sys$StringBuilder$isEmpty() {
  1926. /// <summary locid="M:J#Sys.StringBuilder.isEmpty" />
  1927. /// <returns type="Boolean"></returns>
  1928. if (arguments.length !== 0) throw Error.parameterCount();
  1929. if (this._parts.length === 0) return true;
  1930. return this.toString() === '';
  1931. }
  1932. function Sys$StringBuilder$toString(separator) {
  1933. /// <summary locid="M:J#Sys.StringBuilder.toString" />
  1934. /// <param name="separator" type="String" optional="true" mayBeNull="true"></param>
  1935. /// <returns type="String"></returns>
  1936. var e = Function._validateParams(arguments, [
  1937. {name: "separator", type: String, mayBeNull: true, optional: true}
  1938. ]);
  1939. if (e) throw e;
  1940. separator = separator || '';
  1941. var parts = this._parts;
  1942. if (this._len !== parts.length) {
  1943. this._value = {};
  1944. this._len = parts.length;
  1945. }
  1946. var val = this._value;
  1947. if (typeof(val[separator]) === 'undefined') {
  1948. if (separator !== '') {
  1949. for (var i = 0; i < parts.length;) {
  1950. if ((typeof(parts[i]) === 'undefined') || (parts[i] === '') || (parts[i] === null)) {
  1951. parts.splice(i, 1);
  1952. }
  1953. else {
  1954. i++;
  1955. }
  1956. }
  1957. }
  1958. val[separator] = this._parts.join(separator);
  1959. }
  1960. return val[separator];
  1961. }
  1962. Sys.StringBuilder.prototype = {
  1963. append: Sys$StringBuilder$append,
  1964. appendLine: Sys$StringBuilder$appendLine,
  1965. clear: Sys$StringBuilder$clear,
  1966. isEmpty: Sys$StringBuilder$isEmpty,
  1967. toString: Sys$StringBuilder$toString
  1968. }
  1969. Sys.StringBuilder.registerClass('Sys.StringBuilder');
  1970. if (!window.XMLHttpRequest) {
  1971. window.XMLHttpRequest = function window$XMLHttpRequest() {
  1972. var progIDs = [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
  1973. for (var i = 0, l = progIDs.length; i < l; i++) {
  1974. try {
  1975. return new ActiveXObject(progIDs[i]);
  1976. }
  1977. catch (ex) {
  1978. }
  1979. }
  1980. return null;
  1981. }
  1982. }
  1983. Sys.Browser = {};
  1984. Sys.Browser.InternetExplorer = {};
  1985. Sys.Browser.Firefox = {};
  1986. Sys.Browser.Safari = {};
  1987. Sys.Browser.Opera = {};
  1988. Sys.Browser.agent = null;
  1989. Sys.Browser.hasDebuggerStatement = false;
  1990. Sys.Browser.name = navigator.appName;
  1991. Sys.Browser.version = parseFloat(navigator.appVersion);
  1992. Sys.Browser.documentMode = 0;
  1993. if (navigator.userAgent.indexOf(' MSIE ') > -1) {
  1994. Sys.Browser.agent = Sys.Browser.InternetExplorer;
  1995. Sys.Browser.version = parseFloat(navigator.userAgent.match(/MSIE (\d+\.\d+)/)[1]);
  1996. if (Sys.Browser.version >= 8) {
  1997. if (document.documentMode >= 7) {
  1998. Sys.Browser.documentMode = document.documentMode;
  1999. }
  2000. }
  2001. Sys.Browser.hasDebuggerStatement = true;
  2002. }
  2003. else if (navigator.userAgent.indexOf(' Firefox/') > -1) {
  2004. Sys.Browser.agent = Sys.Browser.Firefox;
  2005. Sys.Browser.version = parseFloat(navigator.userAgent.match(/ Firefox\/(\d+\.\d+)/)[1]);
  2006. Sys.Browser.name = 'Firefox';
  2007. Sys.Browser.hasDebuggerStatement = true;
  2008. }
  2009. else if (navigator.userAgent.indexOf(' AppleWebKit/') > -1) {
  2010. Sys.Browser.agent = Sys.Browser.Safari;
  2011. Sys.Browser.version = parseFloat(navigator.userAgent.match(/ AppleWebKit\/(\d+(\.\d+)?)/)[1]);
  2012. Sys.Browser.name = 'Safari';
  2013. }
  2014. else if (navigator.userAgent.indexOf('Opera/') > -1) {
  2015. Sys.Browser.agent = Sys.Browser.Opera;
  2016. }
  2017. Type.registerNamespace('Sys.UI');
  2018. Sys._Debug = function Sys$_Debug() {
  2019. /// <summary locid="M:J#Sys.Debug.#ctor" />
  2020. /// <field name="isDebug" type="Boolean" locid="F:J#Sys.Debug.isDebug"></field>
  2021. if (arguments.length !== 0) throw Error.parameterCount();
  2022. }
  2023. function Sys$_Debug$_appendConsole(text) {
  2024. if ((typeof(Debug) !== 'undefined') && Debug.writeln) {
  2025. Debug.writeln(text);
  2026. }
  2027. if (window.console && window.console.log) {
  2028. window.console.log(text);
  2029. }
  2030. if (window.opera) {
  2031. window.opera.postError(text);
  2032. }
  2033. if (window.debugService) {
  2034. window.debugService.trace(text);
  2035. }
  2036. }
  2037. function Sys$_Debug$_appendTrace(text) {
  2038. var traceElement = document.getElementById('TraceConsole');
  2039. if (traceElement && (traceElement.tagName.toUpperCase() === 'TEXTAREA')) {
  2040. traceElement.value += text + '\n';
  2041. }
  2042. }
  2043. function Sys$_Debug$assert(condition, message, displayCaller) {
  2044. /// <summary locid="M:J#Sys.Debug.assert" />
  2045. /// <param name="condition" type="Boolean"></param>
  2046. /// <param name="message" type="String" optional="true" mayBeNull="true"></param>
  2047. /// <param name="displayCaller" type="Boolean" optional="true"></param>
  2048. var e = Function._validateParams(arguments, [
  2049. {name: "condition", type: Boolean},
  2050. {name: "message", type: String, mayBeNull: true, optional: true},
  2051. {name: "displayCaller", type: Boolean, optional: true}
  2052. ]);
  2053. if (e) throw e;
  2054. if (!condition) {
  2055. message = (displayCaller && this.assert.caller) ?
  2056. String.format(Sys.Res.assertFailedCaller, message, this.assert.caller) :
  2057. String.format(Sys.Res.assertFailed, message);
  2058. if (confirm(String.format(Sys.Res.breakIntoDebugger, message))) {
  2059. this.fail(message);
  2060. }
  2061. }
  2062. }
  2063. function Sys$_Debug$clearTrace() {
  2064. /// <summary locid="M:J#Sys.Debug.clearTrace" />
  2065. if (arguments.length !== 0) throw Error.parameterCount();
  2066. var traceElement = document.getElementById('TraceConsole');
  2067. if (traceElement && (traceElement.tagName.toUpperCase() === 'TEXTAREA')) {
  2068. traceElement.value = '';
  2069. }
  2070. }
  2071. function Sys$_Debug$fail(message) {
  2072. /// <summary locid="M:J#Sys.Debug.fail" />
  2073. /// <param name="message" type="String" mayBeNull="true"></param>
  2074. var e = Function._validateParams(arguments, [
  2075. {name: "message", type: String, mayBeNull: true}
  2076. ]);
  2077. if (e) throw e;
  2078. this._appendConsole(message);
  2079. if (Sys.Browser.hasDebuggerStatement) {
  2080. eval('debugger');
  2081. }
  2082. }
  2083. function Sys$_Debug$trace(text) {
  2084. /// <summary locid="M:J#Sys.Debug.trace" />
  2085. /// <param name="text"></param>
  2086. var e = Function._validateParams(arguments, [
  2087. {name: "text"}
  2088. ]);
  2089. if (e) throw e;
  2090. this._appendConsole(text);
  2091. this._appendTrace(text);
  2092. }
  2093. function Sys$_Debug$traceDump(object, name) {
  2094. /// <summary locid="M:J#Sys.Debug.traceDump" />
  2095. /// <param name="object" mayBeNull="true"></param>
  2096. /// <param name="name" type="String" mayBeNull="true" optional="true"></param>
  2097. var e = Function._validateParams(arguments, [
  2098. {name: "object", mayBeNull: true},
  2099. {name: "name", type: String, mayBeNull: true, optional: true}
  2100. ]);
  2101. if (e) throw e;
  2102. var text = this._traceDump(object, name, true);
  2103. }
  2104. function Sys$_Debug$_traceDump(object, name, recursive, indentationPadding, loopArray) {
  2105. name = name? name : 'traceDump';
  2106. indentationPadding = indentationPadding? indentationPadding : '';
  2107. if (object === null) {
  2108. this.trace(indentationPadding + name + ': null');
  2109. return;
  2110. }
  2111. switch(typeof(object)) {
  2112. case 'undefined':
  2113. this.trace(indentationPadding + name + ': Undefined');
  2114. break;
  2115. case 'number': case 'String': case 'boolean':
  2116. this.trace(indentationPadding + name + ': ' + object);
  2117. break;
  2118. default:
  2119. if (Date.isInstanceOfType(object) || RegExp.isInstanceOfType(object)) {
  2120. this.trace(indentationPadding + name + ': ' + object.toString());
  2121. break;
  2122. }
  2123. if (!loopArray) {
  2124. loopArray = [];
  2125. }
  2126. else if (Array.contains(loopArray, object)) {
  2127. this.trace(indentationPadding + name + ': ...');
  2128. return;
  2129. }
  2130. Array.add(loopArray, object);
  2131. if ((object == window) || (object === document) ||
  2132. (window.HTMLElement && (object instanceof HTMLElement)) ||
  2133. (typeof(object.nodeName) === 'String')) {
  2134. var tag = object.tagName? object.tagName : 'DomElement';
  2135. if (object.id) {
  2136. tag += ' - ' + object.id;
  2137. }
  2138. this.trace(indentationPadding + name + ' {' + tag + '}');
  2139. }
  2140. else {
  2141. var typeName = Object.getTypeName(object);
  2142. this.trace(indentationPadding + name + (typeof(typeName) === 'String' ? ' {' + typeName + '}' : ''));
  2143. if ((indentationPadding === '') || recursive) {
  2144. indentationPadding += " ";
  2145. var i, length, properties, p, v;
  2146. if (Array.isInstanceOfType(object)) {
  2147. length = object.length;
  2148. for (i = 0; i < length; i++) {
  2149. this._traceDump(object[i], '[' + i + ']', recursive, indentationPadding, loopArray);
  2150. }
  2151. }
  2152. else {
  2153. for (p in object) {
  2154. v = object[p];
  2155. if (!Function.isInstanceOfType(v)) {
  2156. this._traceDump(v, p, recursive, indentationPadding, loopArray);
  2157. }
  2158. }
  2159. }
  2160. }
  2161. }
  2162. Array.remove(loopArray, object);
  2163. }
  2164. }
  2165. Sys._Debug.prototype = {
  2166. _appendConsole: Sys$_Debug$_appendConsole,
  2167. _appendTrace: Sys$_Debug$_appendTrace,
  2168. assert: Sys$_Debug$assert,
  2169. clearTrace: Sys$_Debug$clearTrace,
  2170. fail: Sys$_Debug$fail,
  2171. trace: Sys$_Debug$trace,
  2172. traceDump: Sys$_Debug$traceDump,
  2173. _traceDump: Sys$_Debug$_traceDump
  2174. }
  2175. Sys._Debug.registerClass('Sys._Debug');
  2176. Sys.Debug = new Sys._Debug();
  2177. Sys.Debug.isDebug = true;
  2178. function Sys$Enum$parse(value, ignoreCase) {
  2179. /// <summary locid="M:J#Sys.Enum.parse" />
  2180. /// <param name="value" type="String"></param>
  2181. /// <param name="ignoreCase" type="Boolean" optional="true"></param>
  2182. /// <returns></returns>
  2183. var e = Function._validateParams(arguments, [
  2184. {name: "value", type: String},
  2185. {name: "ignoreCase", type: Boolean, optional: true}
  2186. ]);
  2187. if (e) throw e;
  2188. var values, parsed, val;
  2189. if (ignoreCase) {
  2190. values = this.__lowerCaseValues;
  2191. if (!values) {
  2192. this.__lowerCaseValues = values = {};
  2193. var prototype = this.prototype;
  2194. for (var name in prototype) {
  2195. values[name.toLowerCase()] = prototype[name];
  2196. }
  2197. }
  2198. }
  2199. else {
  2200. values = this.prototype;
  2201. }
  2202. if (!this.__flags) {
  2203. val = (ignoreCase ? value.toLowerCase() : value);
  2204. parsed = values[val.trim()];
  2205. if (typeof(parsed) !== 'number') throw Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
  2206. return parsed;
  2207. }
  2208. else {
  2209. var parts = (ignoreCase ? value.toLowerCase() : value).split(',');
  2210. var v = 0;
  2211. for (var i = parts.length - 1; i >= 0; i--) {
  2212. var part = parts[i].trim();
  2213. parsed = values[part];
  2214. if (typeof(parsed) !== 'number') throw Error.argument('value', String.format(Sys.Res.enumInvalidValue, value.split(',')[i].trim(), this.__typeName));
  2215. v |= parsed;
  2216. }
  2217. return v;
  2218. }
  2219. }
  2220. function Sys$Enum$toString(value) {
  2221. /// <summary locid="M:J#Sys.Enum.toString" />
  2222. /// <param name="value" optional="true" mayBeNull="true"></param>
  2223. /// <returns type="String"></returns>
  2224. var e = Function._validateParams(arguments, [
  2225. {name: "value", mayBeNull: true, optional: true}
  2226. ]);
  2227. if (e) throw e;
  2228. if ((typeof(value) === 'undefined') || (value === null)) return this.__string;
  2229. if ((typeof(value) != 'number') || ((value % 1) !== 0)) throw Error.argumentType('value', Object.getType(value), this);
  2230. var values = this.prototype;
  2231. var i;
  2232. if (!this.__flags || (value === 0)) {
  2233. for (i in values) {
  2234. if (values[i] === value) {
  2235. return i;
  2236. }
  2237. }
  2238. }
  2239. else {
  2240. var sorted = this.__sortedValues;
  2241. if (!sorted) {
  2242. sorted = [];
  2243. for (i in values) {
  2244. sorted[sorted.length] = {key: i, value: values[i]};
  2245. }
  2246. sorted.sort(function(a, b) {
  2247. return a.value - b.value;
  2248. });
  2249. this.__sortedValues = sorted;
  2250. }
  2251. var parts = [];
  2252. var v = value;
  2253. for (i = sorted.length - 1; i >= 0; i--) {
  2254. var kvp = sorted[i];
  2255. var vali = kvp.value;
  2256. if (vali === 0) continue;
  2257. if ((vali & value) === vali) {
  2258. parts[parts.length] = kvp.key;
  2259. v -= vali;
  2260. if (v === 0) break;
  2261. }
  2262. }
  2263. if (parts.length && v === 0) return parts.reverse().join(', ');
  2264. }
  2265. throw Error.argumentOutOfRange('value', value, String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
  2266. }
  2267. Type.prototype.registerEnum = function Type$registerEnum(name, flags) {
  2268. /// <summary locid="M:J#Sys.UI.LineType.#ctor" />
  2269. /// <param name="name" type="String"></param>
  2270. /// <param name="flags" type="Boolean" optional="true"></param>
  2271. var e = Function._validateParams(arguments, [
  2272. {name: "name", type: String},
  2273. {name: "flags", type: Boolean, optional: true}
  2274. ]);
  2275. if (e) throw e;
  2276. if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw Error.argument('name', Sys.Res.notATypeName);
  2277. var parsedName;
  2278. try {
  2279. parsedName = eval(name);
  2280. }
  2281. catch(e) {
  2282. throw Error.argument('name', Sys.Res.argumentTypeName);
  2283. }
  2284. if (parsedName !== this) throw Error.argument('name', Sys.Res.badTypeName);
  2285. if (Sys.__registeredTypes[name]) throw Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, name));
  2286. for (var i in this.prototype) {
  2287. var val = this.prototype[i];
  2288. if (!Type.__identifierRegExp.test(i)) throw Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i));
  2289. if (typeof(val) !== 'number' || (val % 1) !== 0) throw Error.invalidOperation(Sys.Res.enumValueNotInteger);
  2290. if (typeof(this[i]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.enumReservedName, i));
  2291. }
  2292. Sys.__upperCaseTypes[name.toUpperCase()] = this;
  2293. for (var i in this.prototype) {
  2294. this[i] = this.prototype[i];
  2295. }
  2296. this.__typeName = name;
  2297. this.parse = Sys$Enum$parse;
  2298. this.__string = this.toString();
  2299. this.toString = Sys$Enum$toString;
  2300. this.__flags = flags;
  2301. this.__enum = true;
  2302. Sys.__registeredTypes[name] = true;
  2303. }
  2304. Type.isEnum = function Type$isEnum(type) {
  2305. /// <summary locid="M:J#Type.isEnum" />
  2306. /// <param name="type" mayBeNull="true"></param>
  2307. /// <returns type="Boolean"></returns>
  2308. var e = Function._validateParams(arguments, [
  2309. {name: "type", mayBeNull: true}
  2310. ]);
  2311. if (e) throw e;
  2312. if ((typeof(type) === 'undefined') || (type === null)) return false;
  2313. return !!type.__enum;
  2314. }
  2315. Type.isFlags = function Type$isFlags(type) {
  2316. /// <summary locid="M:J#Type.isFlags" />
  2317. /// <param name="type" mayBeNull="true"></param>
  2318. /// <returns type="Boolean"></returns>
  2319. var e = Function._validateParams(arguments, [
  2320. {name: "type", mayBeNull: true}
  2321. ]);
  2322. if (e) throw e;
  2323. if ((typeof(type) === 'undefined') || (type === null)) return false;
  2324. return !!type.__flags;
  2325. }
  2326. Sys.EventHandlerList = function Sys$EventHandlerList() {
  2327. /// <summary locid="M:J#Sys.EventHandlerList.#ctor" />
  2328. if (arguments.length !== 0) throw Error.parameterCount();
  2329. this._list = {};
  2330. }
  2331. function Sys$EventHandlerList$addHandler(id, handler) {
  2332. /// <summary locid="M:J#Sys.EventHandlerList.addHandler" />
  2333. /// <param name="id" type="String"></param>
  2334. /// <param name="handler" type="Function"></param>
  2335. var e = Function._validateParams(arguments, [
  2336. {name: "id", type: String},
  2337. {name: "handler", type: Function}
  2338. ]);
  2339. if (e) throw e;
  2340. Array.add(this._getEvent(id, true), handler);
  2341. }
  2342. function Sys$EventHandlerList$removeHandler(id, handler) {
  2343. /// <summary locid="M:J#Sys.EventHandlerList.removeHandler" />
  2344. /// <param name="id" type="String"></param>
  2345. /// <param name="handler" type="Function"></param>
  2346. var e = Function._validateParams(arguments, [
  2347. {name: "id", type: String},
  2348. {name: "handler", type: Function}
  2349. ]);
  2350. if (e) throw e;
  2351. var evt = this._getEvent(id);
  2352. if (!evt) return;
  2353. Array.remove(evt, handler);
  2354. }
  2355. function Sys$EventHandlerList$getHandler(id) {
  2356. /// <summary locid="M:J#Sys.EventHandlerList.getHandler" />
  2357. /// <param name="id" type="String"></param>
  2358. /// <returns type="Function"></returns>
  2359. var e = Function._validateParams(arguments, [
  2360. {name: "id", type: String}
  2361. ]);
  2362. if (e) throw e;
  2363. var evt = this._getEvent(id);
  2364. if (!evt || (evt.length === 0)) return null;
  2365. evt = Array.clone(evt);
  2366. return function(source, args) {
  2367. for (var i = 0, l = evt.length; i < l; i++) {
  2368. evt[i](source, args);
  2369. }
  2370. };
  2371. }
  2372. function Sys$EventHandlerList$_getEvent(id, create) {
  2373. if (!this._list[id]) {
  2374. if (!create) return null;
  2375. this._list[id] = [];
  2376. }
  2377. return this._list[id];
  2378. }
  2379. Sys.EventHandlerList.prototype = {
  2380. addHandler: Sys$EventHandlerList$addHandler,
  2381. removeHandler: Sys$EventHandlerList$removeHandler,
  2382. getHandler: Sys$EventHandlerList$getHandler,
  2383. _getEvent: Sys$EventHandlerList$_getEvent
  2384. }
  2385. Sys.EventHandlerList.registerClass('Sys.EventHandlerList');
  2386. Sys.EventArgs = function Sys$EventArgs() {
  2387. /// <summary locid="M:J#Sys.EventArgs.#ctor" />
  2388. if (arguments.length !== 0) throw Error.parameterCount();
  2389. }
  2390. Sys.EventArgs.registerClass('Sys.EventArgs');
  2391. Sys.EventArgs.Empty = new Sys.EventArgs();
  2392. Sys.CancelEventArgs = function Sys$CancelEventArgs() {
  2393. /// <summary locid="M:J#Sys.CancelEventArgs.#ctor" />
  2394. if (arguments.length !== 0) throw Error.parameterCount();
  2395. Sys.CancelEventArgs.initializeBase(this);
  2396. this._cancel = false;
  2397. }
  2398. function Sys$CancelEventArgs$get_cancel() {
  2399. /// <value type="Boolean" locid="P:J#Sys.CancelEventArgs.cancel"></value>
  2400. if (arguments.length !== 0) throw Error.parameterCount();
  2401. return this._cancel;
  2402. }
  2403. function Sys$CancelEventArgs$set_cancel(value) {
  2404. var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
  2405. if (e) throw e;
  2406. this._cancel = value;
  2407. }
  2408. Sys.CancelEventArgs.prototype = {
  2409. get_cancel: Sys$CancelEventArgs$get_cancel,
  2410. set_cancel: Sys$CancelEventArgs$set_cancel
  2411. }
  2412. Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs);
  2413. Sys.INotifyPropertyChange = function Sys$INotifyPropertyChange() {
  2414. /// <summary locid="M:J#Sys.INotifyPropertyChange.#ctor" />
  2415. if (arguments.length !== 0) throw Error.parameterCount();
  2416. throw Error.notImplemented();
  2417. }
  2418. function Sys$INotifyPropertyChange$add_propertyChanged(handler) {
  2419. /// <summary locid="E:J#Sys.INotifyPropertyChange.propertyChanged" />
  2420. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2421. if (e) throw e;
  2422. throw Error.notImplemented();
  2423. }
  2424. function Sys$INotifyPropertyChange$remove_propertyChanged(handler) {
  2425. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2426. if (e) throw e;
  2427. throw Error.notImplemented();
  2428. }
  2429. Sys.INotifyPropertyChange.prototype = {
  2430. add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged,
  2431. remove_propertyChanged: Sys$INotifyPropertyChange$remove_propertyChanged
  2432. }
  2433. Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');
  2434. Sys.PropertyChangedEventArgs = function Sys$PropertyChangedEventArgs(propertyName) {
  2435. /// <summary locid="M:J#Sys.PropertyChangedEventArgs.#ctor" />
  2436. /// <param name="propertyName" type="String"></param>
  2437. var e = Function._validateParams(arguments, [
  2438. {name: "propertyName", type: String}
  2439. ]);
  2440. if (e) throw e;
  2441. Sys.PropertyChangedEventArgs.initializeBase(this);
  2442. this._propertyName = propertyName;
  2443. }
  2444. function Sys$PropertyChangedEventArgs$get_propertyName() {
  2445. /// <value type="String" locid="P:J#Sys.PropertyChangedEventArgs.propertyName"></value>
  2446. if (arguments.length !== 0) throw Error.parameterCount();
  2447. return this._propertyName;
  2448. }
  2449. Sys.PropertyChangedEventArgs.prototype = {
  2450. get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName
  2451. }
  2452. Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs', Sys.EventArgs);
  2453. Sys.INotifyDisposing = function Sys$INotifyDisposing() {
  2454. /// <summary locid="M:J#Sys.INotifyDisposing.#ctor" />
  2455. if (arguments.length !== 0) throw Error.parameterCount();
  2456. throw Error.notImplemented();
  2457. }
  2458. function Sys$INotifyDisposing$add_disposing(handler) {
  2459. /// <summary locid="E:J#Sys.INotifyDisposing.disposing" />
  2460. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2461. if (e) throw e;
  2462. throw Error.notImplemented();
  2463. }
  2464. function Sys$INotifyDisposing$remove_disposing(handler) {
  2465. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2466. if (e) throw e;
  2467. throw Error.notImplemented();
  2468. }
  2469. Sys.INotifyDisposing.prototype = {
  2470. add_disposing: Sys$INotifyDisposing$add_disposing,
  2471. remove_disposing: Sys$INotifyDisposing$remove_disposing
  2472. }
  2473. Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");
  2474. Sys.Component = function Sys$Component() {
  2475. /// <summary locid="M:J#Sys.Component.#ctor" />
  2476. if (arguments.length !== 0) throw Error.parameterCount();
  2477. if (Sys.Application) Sys.Application.registerDisposableObject(this);
  2478. }
  2479. function Sys$Component$get_events() {
  2480. /// <value type="Sys.EventHandlerList" locid="P:J#Sys.Component.events"></value>
  2481. if (arguments.length !== 0) throw Error.parameterCount();
  2482. if (!this._events) {
  2483. this._events = new Sys.EventHandlerList();
  2484. }
  2485. return this._events;
  2486. }
  2487. function Sys$Component$get_id() {
  2488. /// <value type="String" locid="P:J#Sys.Component.id"></value>
  2489. if (arguments.length !== 0) throw Error.parameterCount();
  2490. return this._id;
  2491. }
  2492. function Sys$Component$set_id(value) {
  2493. var e = Function._validateParams(arguments, [{name: "value", type: String}]);
  2494. if (e) throw e;
  2495. if (this._idSet) throw Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
  2496. this._idSet = true;
  2497. var oldId = this.get_id();
  2498. if (oldId && Sys.Application.findComponent(oldId)) throw Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
  2499. this._id = value;
  2500. }
  2501. function Sys$Component$get_isInitialized() {
  2502. /// <value type="Boolean" locid="P:J#Sys.Component.isInitialized"></value>
  2503. if (arguments.length !== 0) throw Error.parameterCount();
  2504. return this._initialized;
  2505. }
  2506. function Sys$Component$get_isUpdating() {
  2507. /// <value type="Boolean" locid="P:J#Sys.Component.isUpdating"></value>
  2508. if (arguments.length !== 0) throw Error.parameterCount();
  2509. return this._updating;
  2510. }
  2511. function Sys$Component$add_disposing(handler) {
  2512. /// <summary locid="E:J#Sys.Component.disposing" />
  2513. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2514. if (e) throw e;
  2515. this.get_events().addHandler("disposing", handler);
  2516. }
  2517. function Sys$Component$remove_disposing(handler) {
  2518. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2519. if (e) throw e;
  2520. this.get_events().removeHandler("disposing", handler);
  2521. }
  2522. function Sys$Component$add_propertyChanged(handler) {
  2523. /// <summary locid="E:J#Sys.Component.propertyChanged" />
  2524. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2525. if (e) throw e;
  2526. this.get_events().addHandler("propertyChanged", handler);
  2527. }
  2528. function Sys$Component$remove_propertyChanged(handler) {
  2529. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  2530. if (e) throw e;
  2531. this.get_events().removeHandler("propertyChanged", handler);
  2532. }
  2533. function Sys$Component$beginUpdate() {
  2534. this._updating = true;
  2535. }
  2536. function Sys$Component$dispose() {
  2537. if (this._events) {
  2538. var handler = this._events.getHandler("disposing");
  2539. if (handler) {
  2540. handler(this, Sys.EventArgs.Empty);
  2541. }
  2542. }
  2543. delete this._events;
  2544. Sys.Application.unregisterDisposableObject(this);
  2545. Sys.Application.removeComponent(this);
  2546. }
  2547. function Sys$Component$endUpdate() {
  2548. this._updating = false;
  2549. if (!this._initialized) this.initialize();
  2550. this.updated();
  2551. }
  2552. function Sys$Component$initialize() {
  2553. this._initialized = true;
  2554. }
  2555. function Sys$Component$raisePropertyChanged(propertyName) {
  2556. /// <summary locid="M:J#Sys.Component.raisePropertyChanged" />
  2557. /// <param name="propertyName" type="String"></param>
  2558. var e = Function._validateParams(arguments, [
  2559. {name: "propertyName", type: String}
  2560. ]);
  2561. if (e) throw e;
  2562. if (!this._events) return;
  2563. var handler = this._events.getHandler("propertyChanged");
  2564. if (handler) {
  2565. handler(this, new Sys.PropertyChangedEventArgs(propertyName));
  2566. }
  2567. }
  2568. function Sys$Component$updated() {
  2569. }
  2570. Sys.Component.prototype = {
  2571. _id: null,
  2572. _idSet: false,
  2573. _initialized: false,
  2574. _updating: false,
  2575. get_events: Sys$Component$get_events,
  2576. get_id: Sys$Component$get_id,
  2577. set_id: Sys$Component$set_id,
  2578. get_isInitialized: Sys$Component$get_isInitialized,
  2579. get_isUpdating: Sys$Component$get_isUpdating,
  2580. add_disposing: Sys$Component$add_disposing,
  2581. remove_disposing: Sys$Component$remove_disposing,
  2582. add_propertyChanged: Sys$Component$add_propertyChanged,
  2583. remove_propertyChanged: Sys$Component$remove_propertyChanged,
  2584. beginUpdate: Sys$Component$beginUpdate,
  2585. dispose: Sys$Component$dispose,
  2586. endUpdate: Sys$Component$endUpdate,
  2587. initialize: Sys$Component$initialize,
  2588. raisePropertyChanged: Sys$Component$raisePropertyChanged,
  2589. updated: Sys$Component$updated
  2590. }
  2591. Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, Sys.INotifyPropertyChange, Sys.INotifyDisposing);
  2592. function Sys$Component$_setProperties(target, properties) {
  2593. /// <summary locid="M:J#Sys.Component._setProperties" />
  2594. /// <param name="target"></param>
  2595. /// <param name="properties"></param>
  2596. var e = Function._validateParams(arguments, [
  2597. {name: "target"},
  2598. {name: "properties"}
  2599. ]);
  2600. if (e) throw e;
  2601. var current;
  2602. var targetType = Object.getType(target);
  2603. var isObject = (targetType === Object) || (targetType === Sys.UI.DomElement);
  2604. var isComponent = Sys.Component.isInstanceOfType(target) && !target.get_isUpdating();
  2605. if (isComponent) target.beginUpdate();
  2606. for (var name in properties) {
  2607. var val = properties[name];
  2608. var getter = isObject ? null : target["get_" + name];
  2609. if (isObject || typeof(getter) !== 'function') {
  2610. var targetVal = target[name];
  2611. if (!isObject && typeof(targetVal) === 'undefined') throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, name));
  2612. if (!val || (typeof(val) !== 'object') || (isObject && !targetVal)) {
  2613. target[name] = val;
  2614. }
  2615. else {
  2616. Sys$Component$_setProperties(targetVal, val);
  2617. }
  2618. }
  2619. else {
  2620. var setter = target["set_" + name];
  2621. if (typeof(setter) === 'function') {
  2622. setter.apply(target, [val]);
  2623. }
  2624. else if (val instanceof Array) {
  2625. current = getter.apply(target);
  2626. if (!(current instanceof Array)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
  2627. for (var i = 0, j = current.length, l= val.length; i < l; i++, j++) {
  2628. current[j] = val[i];
  2629. }
  2630. }
  2631. else if ((typeof(val) === 'object') && (Object.getType(val) === Object)) {
  2632. current = getter.apply(target);
  2633. if ((typeof(current) === 'undefined') || (current === null)) throw new Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, name));
  2634. Sys$Component$_setProperties(current, val);
  2635. }
  2636. else {
  2637. throw new Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, name));
  2638. }
  2639. }
  2640. }
  2641. if (isComponent) target.endUpdate();
  2642. }
  2643. function Sys$Component$_setReferences(component, references) {
  2644. for (var name in references) {
  2645. var setter = component["set_" + name];
  2646. var reference = $find(references[name]);
  2647. if (typeof(setter) !== 'function') throw new Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, name));
  2648. if (!reference) throw Error.invalidOperation(String.format(Sys.Res.referenceNotFound, references[name]));
  2649. setter.apply(component, [reference]);
  2650. }
  2651. }
  2652. var $create = Sys.Component.create = function Sys$Component$create(type, properties, events, references, element) {
  2653. /// <summary locid="M:J#Sys.Component.create" />
  2654. /// <param name="type" type="Type"></param>
  2655. /// <param name="properties" optional="true" mayBeNull="true"></param>
  2656. /// <param name="events" optional="true" mayBeNull="true"></param>
  2657. /// <param name="references" optional="true" mayBeNull="true"></param>
  2658. /// <param name="element" domElement="true" optional="true" mayBeNull="true"></param>
  2659. /// <returns type="Sys.UI.Component"></returns>
  2660. var e = Function._validateParams(arguments, [
  2661. {name: "type", type: Type},
  2662. {name: "properties", mayBeNull: true, optional: true},
  2663. {name: "events", mayBeNull: true, optional: true},
  2664. {name: "references", mayBeNull: true, optional: true},
  2665. {name: "element", mayBeNull: true, domElement: true, optional: true}
  2666. ]);
  2667. if (e) throw e;
  2668. if (!type.inheritsFrom(Sys.Component)) {
  2669. throw Error.argument('type', String.format(Sys.Res.createNotComponent, type.getName()));
  2670. }
  2671. if (type.inheritsFrom(Sys.UI.Behavior) || type.inheritsFrom(Sys.UI.Control)) {
  2672. if (!element) throw Error.argument('element', Sys.Res.createNoDom);
  2673. }
  2674. else if (element) throw Error.argument('element', Sys.Res.createComponentOnDom);
  2675. var component = (element ? new type(element): new type());
  2676. var app = Sys.Application;
  2677. var creatingComponents = app.get_isCreatingComponents();
  2678. component.beginUpdate();
  2679. if (properties) {
  2680. Sys$Component$_setProperties(component, properties);
  2681. }
  2682. if (events) {
  2683. for (var name in events) {
  2684. if (!(component["add_" + name] instanceof Function)) throw new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
  2685. if (!(events[name] instanceof Function)) throw new Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
  2686. component["add_" + name](events[name]);
  2687. }
  2688. }
  2689. if (component.get_id()) {
  2690. app.addComponent(component);
  2691. }
  2692. if (creatingComponents) {
  2693. app._createdComponents[app._createdComponents.length] = component;
  2694. if (references) {
  2695. app._addComponentToSecondPass(component, references);
  2696. }
  2697. else {
  2698. component.endUpdate();
  2699. }
  2700. }
  2701. else {
  2702. if (references) {
  2703. Sys$Component$_setReferences(component, references);
  2704. }
  2705. component.endUpdate();
  2706. }
  2707. return component;
  2708. }
  2709. Sys.UI.MouseButton = function Sys$UI$MouseButton() {
  2710. /// <summary locid="M:J#Sys.UI.MouseButton.#ctor" />
  2711. /// <field name="leftButton" type="Number" integer="true" static="true" locid="F:J#Sys.UI.MouseButton.leftButton"></field>
  2712. /// <field name="middleButton" type="Number" integer="true" static="true" locid="F:J#Sys.UI.MouseButton.middleButton"></field>
  2713. /// <field name="rightButton" type="Number" integer="true" static="true" locid="F:J#Sys.UI.MouseButton.rightButton"></field>
  2714. if (arguments.length !== 0) throw Error.parameterCount();
  2715. throw Error.notImplemented();
  2716. }
  2717. Sys.UI.MouseButton.prototype = {
  2718. leftButton: 0,
  2719. middleButton: 1,
  2720. rightButton: 2
  2721. }
  2722. Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");
  2723. Sys.UI.Key = function Sys$UI$Key() {
  2724. /// <summary locid="M:J#Sys.UI.Key.#ctor" />
  2725. /// <field name="backspace" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.backspace"></field>
  2726. /// <field name="tab" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.tab"></field>
  2727. /// <field name="enter" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.enter"></field>
  2728. /// <field name="esc" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.esc"></field>
  2729. /// <field name="space" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.space"></field>
  2730. /// <field name="pageUp" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.pageUp"></field>
  2731. /// <field name="pageDown" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.pageDown"></field>
  2732. /// <field name="end" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.end"></field>
  2733. /// <field name="home" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.home"></field>
  2734. /// <field name="left" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.left"></field>
  2735. /// <field name="up" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.up"></field>
  2736. /// <field name="right" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.right"></field>
  2737. /// <field name="down" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.down"></field>
  2738. /// <field name="del" type="Number" integer="true" static="true" locid="F:J#Sys.UI.Key.del"></field>
  2739. if (arguments.length !== 0) throw Error.parameterCount();
  2740. throw Error.notImplemented();
  2741. }
  2742. Sys.UI.Key.prototype = {
  2743. backspace: 8,
  2744. tab: 9,
  2745. enter: 13,
  2746. esc: 27,
  2747. space: 32,
  2748. pageUp: 33,
  2749. pageDown: 34,
  2750. end: 35,
  2751. home: 36,
  2752. left: 37,
  2753. up: 38,
  2754. right: 39,
  2755. down: 40,
  2756. del: 127
  2757. }
  2758. Sys.UI.Key.registerEnum("Sys.UI.Key");
  2759. Sys.UI.Point = function Sys$UI$Point(x, y) {
  2760. /// <summary locid="M:J#Sys.UI.Point.#ctor" />
  2761. /// <param name="x" type="Number" integer="true"></param>
  2762. /// <param name="y" type="Number" integer="true"></param>
  2763. /// <field name="x" type="Number" integer="true" locid="F:J#Sys.UI.Point.x"></field>
  2764. /// <field name="y" type="Number" integer="true" locid="F:J#Sys.UI.Point.y"></field>
  2765. var e = Function._validateParams(arguments, [
  2766. {name: "x", type: Number, integer: true},
  2767. {name: "y", type: Number, integer: true}
  2768. ]);
  2769. if (e) throw e;
  2770. this.x = x;
  2771. this.y = y;
  2772. }
  2773. Sys.UI.Point.registerClass('Sys.UI.Point');
  2774. Sys.UI.Bounds = function Sys$UI$Bounds(x, y, width, height) {
  2775. /// <summary locid="M:J#Sys.UI.Bounds.#ctor" />
  2776. /// <param name="x" type="Number" integer="true"></param>
  2777. /// <param name="y" type="Number" integer="true"></param>
  2778. /// <param name="height" type="Number" integer="true"></param>
  2779. /// <param name="width" type="Number" integer="true"></param>
  2780. /// <field name="x" type="Number" integer="true" locid="F:J#Sys.UI.Bounds.x"></field>
  2781. /// <field name="y" type="Number" integer="true" locid="F:J#Sys.UI.Bounds.y"></field>
  2782. /// <field name="height" type="Number" integer="true" locid="F:J#Sys.UI.Bounds.height"></field>
  2783. /// <field name="width" type="Number" integer="true" locid="F:J#Sys.UI.Bounds.width"></field>
  2784. var e = Function._validateParams(arguments, [
  2785. {name: "x", type: Number, integer: true},
  2786. {name: "y", type: Number, integer: true},
  2787. {name: "height", type: Number, integer: true},
  2788. {name: "width", type: Number, integer: true}
  2789. ]);
  2790. if (e) throw e;
  2791. this.x = x;
  2792. this.y = y;
  2793. this.height = height;
  2794. this.width = width;
  2795. }
  2796. Sys.UI.Bounds.registerClass('Sys.UI.Bounds');
  2797. Sys.UI.DomEvent = function Sys$UI$DomEvent(eventObject) {
  2798. /// <summary locid="M:J#Sys.UI.DomEvent.#ctor" />
  2799. /// <param name="eventObject"></param>
  2800. /// <field name="altKey" type="Boolean" locid="F:J#Sys.UI.DomEvent.altKey"></field>
  2801. /// <field name="button" type="Sys.UI.MouseButton" locid="F:J#Sys.UI.DomEvent.button"></field>
  2802. /// <field name="charCode" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.charCode"></field>
  2803. /// <field name="clientX" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.clientX"></field>
  2804. /// <field name="clientY" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.clientY"></field>
  2805. /// <field name="ctrlKey" type="Boolean" locid="F:J#Sys.UI.DomEvent.ctrlKey"></field>
  2806. /// <field name="keyCode" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.keyCode"></field>
  2807. /// <field name="offsetX" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.offsetX"></field>
  2808. /// <field name="offsetY" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.offsetY"></field>
  2809. /// <field name="screenX" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.screenX"></field>
  2810. /// <field name="screenY" type="Number" integer="true" locid="F:J#Sys.UI.DomEvent.screenY"></field>
  2811. /// <field name="shiftKey" type="Boolean" locid="F:J#Sys.UI.DomEvent.shiftKey"></field>
  2812. /// <field name="target" locid="F:J#Sys.UI.DomEvent.target"></field>
  2813. /// <field name="type" type="String" locid="F:J#Sys.UI.DomEvent.type"></field>
  2814. var e = Function._validateParams(arguments, [
  2815. {name: "eventObject"}
  2816. ]);
  2817. if (e) throw e;
  2818. var e = eventObject;
  2819. var etype = this.type = e.type.toLowerCase();
  2820. this.rawEvent = e;
  2821. this.altKey = e.altKey;
  2822. if (typeof(e.button) !== 'undefined') {
  2823. this.button = (typeof(e.which) !== 'undefined') ? e.button :
  2824. (e.button === 4) ? Sys.UI.MouseButton.middleButton :
  2825. (e.button === 2) ? Sys.UI.MouseButton.rightButton :
  2826. Sys.UI.MouseButton.leftButton;
  2827. }
  2828. if (etype === 'keypress') {
  2829. this.charCode = e.charCode || e.keyCode;
  2830. }
  2831. else if (e.keyCode && (e.keyCode === 46)) {
  2832. this.keyCode = 127;
  2833. }
  2834. else {
  2835. this.keyCode = e.keyCode;
  2836. }
  2837. this.clientX = e.clientX;
  2838. this.clientY = e.clientY;
  2839. this.ctrlKey = e.ctrlKey;
  2840. this.target = e.target ? e.target : e.srcElement;
  2841. if (!etype.startsWith('key')) {
  2842. if ((typeof(e.offsetX) !== 'undefined') && (typeof(e.offsetY) !== 'undefined')) {
  2843. this.offsetX = e.offsetX;
  2844. this.offsetY = e.offsetY;
  2845. }
  2846. else if (this.target && (this.target.nodeType !== 3) && (typeof(e.clientX) === 'number')) {
  2847. var loc = Sys.UI.DomElement.getLocation(this.target);
  2848. var w = Sys.UI.DomElement._getWindow(this.target);
  2849. this.offsetX = (w.pageXOffset || 0) + e.clientX - loc.x;
  2850. this.offsetY = (w.pageYOffset || 0) + e.clientY - loc.y;
  2851. }
  2852. }
  2853. this.screenX = e.screenX;
  2854. this.screenY = e.screenY;
  2855. this.shiftKey = e.shiftKey;
  2856. }
  2857. function Sys$UI$DomEvent$preventDefault() {
  2858. /// <summary locid="M:J#Sys.UI.DomEvent.preventDefault" />
  2859. if (arguments.length !== 0) throw Error.parameterCount();
  2860. if (this.rawEvent.preventDefault) {
  2861. this.rawEvent.preventDefault();
  2862. }
  2863. else if (window.event) {
  2864. this.rawEvent.returnValue = false;
  2865. }
  2866. }
  2867. function Sys$UI$DomEvent$stopPropagation() {
  2868. /// <summary locid="M:J#Sys.UI.DomEvent.stopPropagation" />
  2869. if (arguments.length !== 0) throw Error.parameterCount();
  2870. if (this.rawEvent.stopPropagation) {
  2871. this.rawEvent.stopPropagation();
  2872. }
  2873. else if (window.event) {
  2874. this.rawEvent.cancelBubble = true;
  2875. }
  2876. }
  2877. Sys.UI.DomEvent.prototype = {
  2878. preventDefault: Sys$UI$DomEvent$preventDefault,
  2879. stopPropagation: Sys$UI$DomEvent$stopPropagation
  2880. }
  2881. Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent');
  2882. var $addHandler = Sys.UI.DomEvent.addHandler = function Sys$UI$DomEvent$addHandler(element, eventName, handler) {
  2883. /// <summary locid="M:J#Sys.UI.DomEvent.addHandler" />
  2884. /// <param name="element"></param>
  2885. /// <param name="eventName" type="String"></param>
  2886. /// <param name="handler" type="Function"></param>
  2887. var e = Function._validateParams(arguments, [
  2888. {name: "element"},
  2889. {name: "eventName", type: String},
  2890. {name: "handler", type: Function}
  2891. ]);
  2892. if (e) throw e;
  2893. Sys.UI.DomEvent._ensureDomNode(element);
  2894. if (eventName === "error") throw Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
  2895. if (!element._events) {
  2896. element._events = {};
  2897. }
  2898. var eventCache = element._events[eventName];
  2899. if (!eventCache) {
  2900. element._events[eventName] = eventCache = [];
  2901. }
  2902. var browserHandler;
  2903. if (element.addEventListener) {
  2904. browserHandler = function(e) {
  2905. return handler.call(element, new Sys.UI.DomEvent(e));
  2906. }
  2907. element.addEventListener(eventName, browserHandler, false);
  2908. }
  2909. else if (element.attachEvent) {
  2910. browserHandler = function() {
  2911. var e = {};
  2912. try {e = Sys.UI.DomElement._getWindow(element).event} catch(ex) {}
  2913. return handler.call(element, new Sys.UI.DomEvent(e));
  2914. }
  2915. element.attachEvent('on' + eventName, browserHandler);
  2916. }
  2917. eventCache[eventCache.length] = {handler: handler, browserHandler: browserHandler};
  2918. }
  2919. var $addHandlers = Sys.UI.DomEvent.addHandlers = function Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) {
  2920. /// <summary locid="M:J#Sys.UI.DomEvent.addHandlers" />
  2921. /// <param name="element"></param>
  2922. /// <param name="events" type="Object"></param>
  2923. /// <param name="handlerOwner" optional="true"></param>
  2924. var e = Function._validateParams(arguments, [
  2925. {name: "element"},
  2926. {name: "events", type: Object},
  2927. {name: "handlerOwner", optional: true}
  2928. ]);
  2929. if (e) throw e;
  2930. Sys.UI.DomEvent._ensureDomNode(element);
  2931. for (var name in events) {
  2932. var handler = events[name];
  2933. if (typeof(handler) !== 'function') throw Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
  2934. if (handlerOwner) {
  2935. handler = Function.createDelegate(handlerOwner, handler);
  2936. }
  2937. $addHandler(element, name, handler);
  2938. }
  2939. }
  2940. var $clearHandlers = Sys.UI.DomEvent.clearHandlers = function Sys$UI$DomEvent$clearHandlers(element) {
  2941. /// <summary locid="M:J#Sys.UI.DomEvent.clearHandlers" />
  2942. /// <param name="element"></param>
  2943. var e = Function._validateParams(arguments, [
  2944. {name: "element"}
  2945. ]);
  2946. if (e) throw e;
  2947. Sys.UI.DomEvent._ensureDomNode(element);
  2948. if (element._events) {
  2949. var cache = element._events;
  2950. for (var name in cache) {
  2951. var handlers = cache[name];
  2952. for (var i = handlers.length - 1; i >= 0; i--) {
  2953. $removeHandler(element, name, handlers[i].handler);
  2954. }
  2955. }
  2956. element._events = null;
  2957. }
  2958. }
  2959. var $removeHandler = Sys.UI.DomEvent.removeHandler = function Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
  2960. /// <summary locid="M:J#Sys.UI.DomEvent.removeHandler" />
  2961. /// <param name="element"></param>
  2962. /// <param name="eventName" type="String"></param>
  2963. /// <param name="handler" type="Function"></param>
  2964. var e = Function._validateParams(arguments, [
  2965. {name: "element"},
  2966. {name: "eventName", type: String},
  2967. {name: "handler", type: Function}
  2968. ]);
  2969. if (e) throw e;
  2970. Sys.UI.DomEvent._ensureDomNode(element);
  2971. var browserHandler = null;
  2972. if ((typeof(element._events) !== 'object') || (element._events == null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
  2973. var cache = element._events[eventName];
  2974. if (!(cache instanceof Array)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
  2975. for (var i = 0, l = cache.length; i < l; i++) {
  2976. if (cache[i].handler === handler) {
  2977. browserHandler = cache[i].browserHandler;
  2978. break;
  2979. }
  2980. }
  2981. if (typeof(browserHandler) !== 'function') throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
  2982. if (element.removeEventListener) {
  2983. element.removeEventListener(eventName, browserHandler, false);
  2984. }
  2985. else if (element.detachEvent) {
  2986. element.detachEvent('on' + eventName, browserHandler);
  2987. }
  2988. cache.splice(i, 1);
  2989. }
  2990. Sys.UI.DomEvent._ensureDomNode = function Sys$UI$DomEvent$_ensureDomNode(element) {
  2991. if (element.tagName && (element.tagName.toUpperCase() === "SCRIPT")) return;
  2992. var doc = element.ownerDocument || element.document || element;
  2993. if ((typeof(element.document) !== 'object') && (element != doc) && (typeof(element.nodeType) !== 'number')) {
  2994. throw Error.argument("element", Sys.Res.argumentDomNode);
  2995. }
  2996. }
  2997. Sys.UI.DomElement = function Sys$UI$DomElement() {
  2998. /// <summary locid="M:J#Sys.UI.DomElement.#ctor" />
  2999. if (arguments.length !== 0) throw Error.parameterCount();
  3000. throw Error.notImplemented();
  3001. }
  3002. Sys.UI.DomElement.registerClass('Sys.UI.DomElement');
  3003. Sys.UI.DomElement.addCssClass = function Sys$UI$DomElement$addCssClass(element, className) {
  3004. /// <summary locid="M:J#Sys.UI.DomElement.addCssClass" />
  3005. /// <param name="element" domElement="true"></param>
  3006. /// <param name="className" type="String"></param>
  3007. var e = Function._validateParams(arguments, [
  3008. {name: "element", domElement: true},
  3009. {name: "className", type: String}
  3010. ]);
  3011. if (e) throw e;
  3012. if (!Sys.UI.DomElement.containsCssClass(element, className)) {
  3013. if (element.className === '') {
  3014. element.className = className;
  3015. }
  3016. else {
  3017. element.className += ' ' + className;
  3018. }
  3019. }
  3020. }
  3021. Sys.UI.DomElement.containsCssClass = function Sys$UI$DomElement$containsCssClass(element, className) {
  3022. /// <summary locid="M:J#Sys.UI.DomElement.containsCssClass" />
  3023. /// <param name="element" domElement="true"></param>
  3024. /// <param name="className" type="String"></param>
  3025. /// <returns type="Boolean"></returns>
  3026. var e = Function._validateParams(arguments, [
  3027. {name: "element", domElement: true},
  3028. {name: "className", type: String}
  3029. ]);
  3030. if (e) throw e;
  3031. return Array.contains(element.className.split(' '), className);
  3032. }
  3033. Sys.UI.DomElement.getBounds = function Sys$UI$DomElement$getBounds(element) {
  3034. /// <summary locid="M:J#Sys.UI.DomElement.getBounds" />
  3035. /// <param name="element" domElement="true"></param>
  3036. /// <returns type="Sys.UI.Bounds"></returns>
  3037. var e = Function._validateParams(arguments, [
  3038. {name: "element", domElement: true}
  3039. ]);
  3040. if (e) throw e;
  3041. var offset = Sys.UI.DomElement.getLocation(element);
  3042. return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || 0, element.offsetHeight || 0);
  3043. }
  3044. var $get = Sys.UI.DomElement.getElementById = function Sys$UI$DomElement$getElementById(id, element) {
  3045. /// <summary locid="M:J#Sys.UI.DomElement.getElementById" />
  3046. /// <param name="id" type="String"></param>
  3047. /// <param name="element" domElement="true" optional="true" mayBeNull="true"></param>
  3048. /// <returns domElement="true" mayBeNull="true"></returns>
  3049. var e = Function._validateParams(arguments, [
  3050. {name: "id", type: String},
  3051. {name: "element", mayBeNull: true, domElement: true, optional: true}
  3052. ]);
  3053. if (e) throw e;
  3054. if (!element) return document.getElementById(id);
  3055. if (element.getElementById) return element.getElementById(id);
  3056. var nodeQueue = [];
  3057. var childNodes = element.childNodes;
  3058. for (var i = 0; i < childNodes.length; i++) {
  3059. var node = childNodes[i];
  3060. if (node.nodeType == 1) {
  3061. nodeQueue[nodeQueue.length] = node;
  3062. }
  3063. }
  3064. while (nodeQueue.length) {
  3065. node = nodeQueue.shift();
  3066. if (node.id == id) {
  3067. return node;
  3068. }
  3069. childNodes = node.childNodes;
  3070. for (i = 0; i < childNodes.length; i++) {
  3071. node = childNodes[i];
  3072. if (node.nodeType == 1) {
  3073. nodeQueue[nodeQueue.length] = node;
  3074. }
  3075. }
  3076. }
  3077. return null;
  3078. }
  3079. switch(Sys.Browser.agent) {
  3080. case Sys.Browser.InternetExplorer:
  3081. Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
  3082. /// <summary locid="M:J#Sys.UI.DomElement.getLocation" />
  3083. /// <param name="element" domElement="true"></param>
  3084. /// <returns type="Sys.UI.Point"></returns>
  3085. var e = Function._validateParams(arguments, [
  3086. {name: "element", domElement: true}
  3087. ]);
  3088. if (e) throw e;
  3089. if (element.self || element.nodeType === 9) return new Sys.UI.Point(0,0);
  3090. var clientRect = element.getBoundingClientRect();
  3091. if (!clientRect) {
  3092. return new Sys.UI.Point(0,0);
  3093. }
  3094. var documentElement = element.ownerDocument.documentElement;
  3095. var offsetX = clientRect.left - 2 + documentElement.scrollLeft,
  3096. offsetY = clientRect.top - 2 + documentElement.scrollTop;
  3097. try {
  3098. var f = element.ownerDocument.parentWindow.frameElement || null;
  3099. if (f) {
  3100. var offset = (f.frameBorder === "0" || f.frameBorder === "no") ? 2 : 0;
  3101. offsetX += offset;
  3102. offsetY += offset;
  3103. }
  3104. }
  3105. catch(ex) {
  3106. }
  3107. return new Sys.UI.Point(offsetX, offsetY);
  3108. }
  3109. break;
  3110. case Sys.Browser.Safari:
  3111. Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
  3112. /// <summary locid="M:J#Sys.UI.DomElement.getLocation" />
  3113. /// <param name="element" domElement="true"></param>
  3114. /// <returns type="Sys.UI.Point"></returns>
  3115. var e = Function._validateParams(arguments, [
  3116. {name: "element", domElement: true}
  3117. ]);
  3118. if (e) throw e;
  3119. if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
  3120. var offsetX = 0;
  3121. var offsetY = 0;
  3122. var previous = null;
  3123. var previousStyle = null;
  3124. var currentStyle;
  3125. for (var parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) {
  3126. currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
  3127. var tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
  3128. if ((parent.offsetLeft || parent.offsetTop) &&
  3129. ((tagName !== "BODY") || (!previousStyle || previousStyle.position !== "absolute"))) {
  3130. offsetX += parent.offsetLeft;
  3131. offsetY += parent.offsetTop;
  3132. }
  3133. }
  3134. currentStyle = Sys.UI.DomElement._getCurrentStyle(element);
  3135. var elementPosition = currentStyle ? currentStyle.position : null;
  3136. if (!elementPosition || (elementPosition !== "absolute")) {
  3137. for (var parent = element.parentNode; parent; parent = parent.parentNode) {
  3138. tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
  3139. if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) {
  3140. offsetX -= (parent.scrollLeft || 0);
  3141. offsetY -= (parent.scrollTop || 0);
  3142. }
  3143. currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
  3144. var parentPosition = currentStyle ? currentStyle.position : null;
  3145. if (parentPosition && (parentPosition === "absolute")) break;
  3146. }
  3147. }
  3148. return new Sys.UI.Point(offsetX, offsetY);
  3149. }
  3150. break;
  3151. case Sys.Browser.Opera:
  3152. Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
  3153. /// <summary locid="M:J#Sys.UI.DomElement.getLocation" />
  3154. /// <param name="element" domElement="true"></param>
  3155. /// <returns type="Sys.UI.Point"></returns>
  3156. var e = Function._validateParams(arguments, [
  3157. {name: "element", domElement: true}
  3158. ]);
  3159. if (e) throw e;
  3160. if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
  3161. var offsetX = 0;
  3162. var offsetY = 0;
  3163. var previous = null;
  3164. for (var parent = element; parent; previous = parent, parent = parent.offsetParent) {
  3165. var tagName = parent.tagName;
  3166. offsetX += parent.offsetLeft || 0;
  3167. offsetY += parent.offsetTop || 0;
  3168. }
  3169. var elementPosition = element.style.position;
  3170. var elementPositioned = elementPosition && (elementPosition !== "static");
  3171. for (var parent = element.parentNode; parent; parent = parent.parentNode) {
  3172. tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
  3173. if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop) &&
  3174. ((elementPositioned &&
  3175. ((parent.style.overflow === "scroll") || (parent.style.overflow === "auto"))))) {
  3176. offsetX -= (parent.scrollLeft || 0);
  3177. offsetY -= (parent.scrollTop || 0);
  3178. }
  3179. var parentPosition = (parent && parent.style) ? parent.style.position : null;
  3180. elementPositioned = elementPositioned || (parentPosition && (parentPosition !== "static"));
  3181. }
  3182. return new Sys.UI.Point(offsetX, offsetY);
  3183. }
  3184. break;
  3185. default:
  3186. Sys.UI.DomElement.getLocation = function Sys$UI$DomElement$getLocation(element) {
  3187. /// <summary locid="M:J#Sys.UI.DomElement.getLocation" />
  3188. /// <param name="element" domElement="true"></param>
  3189. /// <returns type="Sys.UI.Point"></returns>
  3190. var e = Function._validateParams(arguments, [
  3191. {name: "element", domElement: true}
  3192. ]);
  3193. if (e) throw e;
  3194. if ((element.window && (element.window === element)) || element.nodeType === 9) return new Sys.UI.Point(0,0);
  3195. var offsetX = 0;
  3196. var offsetY = 0;
  3197. var previous = null;
  3198. var previousStyle = null;
  3199. var currentStyle = null;
  3200. for (var parent = element; parent; previous = parent, previousStyle = currentStyle, parent = parent.offsetParent) {
  3201. var tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
  3202. currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
  3203. if ((parent.offsetLeft || parent.offsetTop) &&
  3204. !((tagName === "BODY") &&
  3205. (!previousStyle || previousStyle.position !== "absolute"))) {
  3206. offsetX += parent.offsetLeft;
  3207. offsetY += parent.offsetTop;
  3208. }
  3209. if (previous !== null && currentStyle) {
  3210. if ((tagName !== "TABLE") && (tagName !== "TD") && (tagName !== "HTML")) {
  3211. offsetX += parseInt(currentStyle.borderLeftWidth) || 0;
  3212. offsetY += parseInt(currentStyle.borderTopWidth) || 0;
  3213. }
  3214. if (tagName === "TABLE" &&
  3215. (currentStyle.position === "relative" || currentStyle.position === "absolute")) {
  3216. offsetX += parseInt(currentStyle.marginLeft) || 0;
  3217. offsetY += parseInt(currentStyle.marginTop) || 0;
  3218. }
  3219. }
  3220. }
  3221. currentStyle = Sys.UI.DomElement._getCurrentStyle(element);
  3222. var elementPosition = currentStyle ? currentStyle.position : null;
  3223. if (!elementPosition || (elementPosition !== "absolute")) {
  3224. for (var parent = element.parentNode; parent; parent = parent.parentNode) {
  3225. tagName = parent.tagName ? parent.tagName.toUpperCase() : null;
  3226. if ((tagName !== "BODY") && (tagName !== "HTML") && (parent.scrollLeft || parent.scrollTop)) {
  3227. offsetX -= (parent.scrollLeft || 0);
  3228. offsetY -= (parent.scrollTop || 0);
  3229. currentStyle = Sys.UI.DomElement._getCurrentStyle(parent);
  3230. if (currentStyle) {
  3231. offsetX += parseInt(currentStyle.borderLeftWidth) || 0;
  3232. offsetY += parseInt(currentStyle.borderTopWidth) || 0;
  3233. }
  3234. }
  3235. }
  3236. }
  3237. return new Sys.UI.Point(offsetX, offsetY);
  3238. }
  3239. break;
  3240. }
  3241. Sys.UI.DomElement.removeCssClass = function Sys$UI$DomElement$removeCssClass(element, className) {
  3242. /// <summary locid="M:J#Sys.UI.DomElement.removeCssClass" />
  3243. /// <param name="element" domElement="true"></param>
  3244. /// <param name="className" type="String"></param>
  3245. var e = Function._validateParams(arguments, [
  3246. {name: "element", domElement: true},
  3247. {name: "className", type: String}
  3248. ]);
  3249. if (e) throw e;
  3250. var currentClassName = ' ' + element.className + ' ';
  3251. var index = currentClassName.indexOf(' ' + className + ' ');
  3252. if (index >= 0) {
  3253. element.className = (currentClassName.substr(0, index) + ' ' +
  3254. currentClassName.substring(index + className.length + 1, currentClassName.length)).trim();
  3255. }
  3256. }
  3257. Sys.UI.DomElement.setLocation = function Sys$UI$DomElement$setLocation(element, x, y) {
  3258. /// <summary locid="M:J#Sys.UI.DomElement.setLocation" />
  3259. /// <param name="element" domElement="true"></param>
  3260. /// <param name="x" type="Number" integer="true"></param>
  3261. /// <param name="y" type="Number" integer="true"></param>
  3262. var e = Function._validateParams(arguments, [
  3263. {name: "element", domElement: true},
  3264. {name: "x", type: Number, integer: true},
  3265. {name: "y", type: Number, integer: true}
  3266. ]);
  3267. if (e) throw e;
  3268. var style = element.style;
  3269. style.position = 'absolute';
  3270. style.left = x + "px";
  3271. style.top = y + "px";
  3272. }
  3273. Sys.UI.DomElement.toggleCssClass = function Sys$UI$DomElement$toggleCssClass(element, className) {
  3274. /// <summary locid="M:J#Sys.UI.DomElement.toggleCssClass" />
  3275. /// <param name="element" domElement="true"></param>
  3276. /// <param name="className" type="String"></param>
  3277. var e = Function._validateParams(arguments, [
  3278. {name: "element", domElement: true},
  3279. {name: "className", type: String}
  3280. ]);
  3281. if (e) throw e;
  3282. if (Sys.UI.DomElement.containsCssClass(element, className)) {
  3283. Sys.UI.DomElement.removeCssClass(element, className);
  3284. }
  3285. else {
  3286. Sys.UI.DomElement.addCssClass(element, className);
  3287. }
  3288. }
  3289. Sys.UI.DomElement.getVisibilityMode = function Sys$UI$DomElement$getVisibilityMode(element) {
  3290. /// <summary locid="M:J#Sys.UI.DomElement.getVisibilityMode" />
  3291. /// <param name="element" domElement="true"></param>
  3292. /// <returns type="Sys.UI.VisibilityMode"></returns>
  3293. var e = Function._validateParams(arguments, [
  3294. {name: "element", domElement: true}
  3295. ]);
  3296. if (e) throw e;
  3297. return (element._visibilityMode === Sys.UI.VisibilityMode.hide) ?
  3298. Sys.UI.VisibilityMode.hide :
  3299. Sys.UI.VisibilityMode.collapse;
  3300. }
  3301. Sys.UI.DomElement.setVisibilityMode = function Sys$UI$DomElement$setVisibilityMode(element, value) {
  3302. /// <summary locid="M:J#Sys.UI.DomElement.setVisibilityMode" />
  3303. /// <param name="element" domElement="true"></param>
  3304. /// <param name="value" type="Sys.UI.VisibilityMode"></param>
  3305. var e = Function._validateParams(arguments, [
  3306. {name: "element", domElement: true},
  3307. {name: "value", type: Sys.UI.VisibilityMode}
  3308. ]);
  3309. if (e) throw e;
  3310. Sys.UI.DomElement._ensureOldDisplayMode(element);
  3311. if (element._visibilityMode !== value) {
  3312. element._visibilityMode = value;
  3313. if (Sys.UI.DomElement.getVisible(element) === false) {
  3314. if (element._visibilityMode === Sys.UI.VisibilityMode.hide) {
  3315. element.style.display = element._oldDisplayMode;
  3316. }
  3317. else {
  3318. element.style.display = 'none';
  3319. }
  3320. }
  3321. element._visibilityMode = value;
  3322. }
  3323. }
  3324. Sys.UI.DomElement.getVisible = function Sys$UI$DomElement$getVisible(element) {
  3325. /// <summary locid="M:J#Sys.UI.DomElement.getVisible" />
  3326. /// <param name="element" domElement="true"></param>
  3327. /// <returns type="Boolean"></returns>
  3328. var e = Function._validateParams(arguments, [
  3329. {name: "element", domElement: true}
  3330. ]);
  3331. if (e) throw e;
  3332. var style = element.currentStyle || Sys.UI.DomElement._getCurrentStyle(element);
  3333. if (!style) return true;
  3334. return (style.visibility !== 'hidden') && (style.display !== 'none');
  3335. }
  3336. Sys.UI.DomElement.setVisible = function Sys$UI$DomElement$setVisible(element, value) {
  3337. /// <summary locid="M:J#Sys.UI.DomElement.setVisible" />
  3338. /// <param name="element" domElement="true"></param>
  3339. /// <param name="value" type="Boolean"></param>
  3340. var e = Function._validateParams(arguments, [
  3341. {name: "element", domElement: true},
  3342. {name: "value", type: Boolean}
  3343. ]);
  3344. if (e) throw e;
  3345. if (value !== Sys.UI.DomElement.getVisible(element)) {
  3346. Sys.UI.DomElement._ensureOldDisplayMode(element);
  3347. element.style.visibility = value ? 'visible' : 'hidden';
  3348. if (value || (element._visibilityMode === Sys.UI.VisibilityMode.hide)) {
  3349. element.style.display = element._oldDisplayMode;
  3350. }
  3351. else {
  3352. element.style.display = 'none';
  3353. }
  3354. }
  3355. }
  3356. Sys.UI.DomElement._ensureOldDisplayMode = function Sys$UI$DomElement$_ensureOldDisplayMode(element) {
  3357. if (!element._oldDisplayMode) {
  3358. var style = element.currentStyle || Sys.UI.DomElement._getCurrentStyle(element);
  3359. element._oldDisplayMode = style ? style.display : null;
  3360. if (!element._oldDisplayMode || element._oldDisplayMode === 'none') {
  3361. switch(element.tagName.toUpperCase()) {
  3362. case 'DIV': case 'P': case 'ADDRESS': case 'BLOCKQUOTE': case 'BODY': case 'COL':
  3363. case 'COLGROUP': case 'DD': case 'DL': case 'DT': case 'FIELDSET': case 'FORM':
  3364. case 'H1': case 'H2': case 'H3': case 'H4': case 'H5': case 'H6': case 'HR':
  3365. case 'IFRAME': case 'LEGEND': case 'OL': case 'PRE': case 'TABLE': case 'TD':
  3366. case 'TH': case 'TR': case 'UL':
  3367. element._oldDisplayMode = 'block';
  3368. break;
  3369. case 'LI':
  3370. element._oldDisplayMode = 'list-item';
  3371. break;
  3372. default:
  3373. element._oldDisplayMode = 'inline';
  3374. }
  3375. }
  3376. }
  3377. }
  3378. Sys.UI.DomElement._getWindow = function Sys$UI$DomElement$_getWindow(element) {
  3379. var doc = element.ownerDocument || element.document || element;
  3380. return doc.defaultView || doc.parentWindow;
  3381. }
  3382. Sys.UI.DomElement._getCurrentStyle = function Sys$UI$DomElement$_getCurrentStyle(element) {
  3383. if (element.nodeType === 3) return null;
  3384. var w = Sys.UI.DomElement._getWindow(element);
  3385. if (element.documentElement) element = element.documentElement;
  3386. var computedStyle = (w && (element !== w) && w.getComputedStyle) ?
  3387. w.getComputedStyle(element, null) :
  3388. element.currentStyle || element.style;
  3389. if (!computedStyle && (Sys.Browser.agent === Sys.Browser.Safari) && element.style) {
  3390. var oldDisplay = element.style.display;
  3391. var oldPosition = element.style.position;
  3392. element.style.position = 'absolute';
  3393. element.style.display = 'block';
  3394. var style = w.getComputedStyle(element, null);
  3395. element.style.display = oldDisplay;
  3396. element.style.position = oldPosition;
  3397. computedStyle = {};
  3398. for (var n in style) {
  3399. computedStyle[n] = style[n];
  3400. }
  3401. computedStyle.display = 'none';
  3402. }
  3403. return computedStyle;
  3404. }
  3405. Sys.IContainer = function Sys$IContainer() {
  3406. throw Error.notImplemented();
  3407. }
  3408. function Sys$IContainer$addComponent(component) {
  3409. /// <summary locid="M:J#Sys.IContainer.addComponent" />
  3410. /// <param name="component" type="Sys.Component"></param>
  3411. var e = Function._validateParams(arguments, [
  3412. {name: "component", type: Sys.Component}
  3413. ]);
  3414. if (e) throw e;
  3415. throw Error.notImplemented();
  3416. }
  3417. function Sys$IContainer$removeComponent(component) {
  3418. /// <summary locid="M:J#Sys.IContainer.removeComponent" />
  3419. /// <param name="component" type="Sys.Component"></param>
  3420. var e = Function._validateParams(arguments, [
  3421. {name: "component", type: Sys.Component}
  3422. ]);
  3423. if (e) throw e;
  3424. throw Error.notImplemented();
  3425. }
  3426. function Sys$IContainer$findComponent(id) {
  3427. /// <summary locid="M:J#Sys.IContainer.findComponent" />
  3428. /// <param name="id" type="String"></param>
  3429. /// <returns type="Sys.Component"></returns>
  3430. var e = Function._validateParams(arguments, [
  3431. {name: "id", type: String}
  3432. ]);
  3433. if (e) throw e;
  3434. throw Error.notImplemented();
  3435. }
  3436. function Sys$IContainer$getComponents() {
  3437. /// <summary locid="M:J#Sys.IContainer.getComponents" />
  3438. /// <returns type="Array" elementType="Sys.Component"></returns>
  3439. if (arguments.length !== 0) throw Error.parameterCount();
  3440. throw Error.notImplemented();
  3441. }
  3442. Sys.IContainer.prototype = {
  3443. addComponent: Sys$IContainer$addComponent,
  3444. removeComponent: Sys$IContainer$removeComponent,
  3445. findComponent: Sys$IContainer$findComponent,
  3446. getComponents: Sys$IContainer$getComponents
  3447. }
  3448. Sys.IContainer.registerInterface("Sys.IContainer");
  3449. Sys._ScriptLoader = function Sys$_ScriptLoader() {
  3450. this._scriptsToLoad = null;
  3451. this._sessions = [];
  3452. this._scriptLoadedDelegate = Function.createDelegate(this, this._scriptLoadedHandler);
  3453. }
  3454. function Sys$_ScriptLoader$dispose() {
  3455. this._stopSession();
  3456. this._loading = false;
  3457. if(this._events) {
  3458. delete this._events;
  3459. }
  3460. this._sessions = null;
  3461. this._currentSession = null;
  3462. this._scriptLoadedDelegate = null;
  3463. }
  3464. function Sys$_ScriptLoader$loadScripts(scriptTimeout, allScriptsLoadedCallback, scriptLoadFailedCallback, scriptLoadTimeoutCallback) {
  3465. /// <summary locid="M:J#Sys._ScriptLoader.loadScripts" />
  3466. /// <param name="scriptTimeout" type="Number" integer="true"></param>
  3467. /// <param name="allScriptsLoadedCallback" type="Function" mayBeNull="true"></param>
  3468. /// <param name="scriptLoadFailedCallback" type="Function" mayBeNull="true"></param>
  3469. /// <param name="scriptLoadTimeoutCallback" type="Function" mayBeNull="true"></param>
  3470. var e = Function._validateParams(arguments, [
  3471. {name: "scriptTimeout", type: Number, integer: true},
  3472. {name: "allScriptsLoadedCallback", type: Function, mayBeNull: true},
  3473. {name: "scriptLoadFailedCallback", type: Function, mayBeNull: true},
  3474. {name: "scriptLoadTimeoutCallback", type: Function, mayBeNull: true}
  3475. ]);
  3476. if (e) throw e;
  3477. var session = {
  3478. allScriptsLoadedCallback: allScriptsLoadedCallback,
  3479. scriptLoadFailedCallback: scriptLoadFailedCallback,
  3480. scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
  3481. scriptsToLoad: this._scriptsToLoad,
  3482. scriptTimeout: scriptTimeout };
  3483. this._scriptsToLoad = null;
  3484. this._sessions[this._sessions.length] = session;
  3485. if (!this._loading) {
  3486. this._nextSession();
  3487. }
  3488. }
  3489. function Sys$_ScriptLoader$notifyScriptLoaded() {
  3490. /// <summary locid="M:J#Sys._ScriptLoader.notifyScriptLoaded" />
  3491. if (arguments.length !== 0) throw Error.parameterCount();
  3492. if(!this._loading) {
  3493. return;
  3494. }
  3495. this._currentTask._notified++;
  3496. if(Sys.Browser.agent === Sys.Browser.Safari) {
  3497. if(this._currentTask._notified === 1) {
  3498. window.setTimeout(Function.createDelegate(this, function() {
  3499. this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
  3500. }), 0);
  3501. }
  3502. }
  3503. }
  3504. function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
  3505. /// <summary locid="M:J#Sys._ScriptLoader.queueCustomScriptTag" />
  3506. /// <param name="scriptAttributes" mayBeNull="false"></param>
  3507. var e = Function._validateParams(arguments, [
  3508. {name: "scriptAttributes"}
  3509. ]);
  3510. if (e) throw e;
  3511. if(!this._scriptsToLoad) {
  3512. this._scriptsToLoad = [];
  3513. }
  3514. Array.add(this._scriptsToLoad, scriptAttributes);
  3515. }
  3516. function Sys$_ScriptLoader$queueScriptBlock(scriptContent) {
  3517. /// <summary locid="M:J#Sys._ScriptLoader.queueScriptBlock" />
  3518. /// <param name="scriptContent" type="String" mayBeNull="false"></param>
  3519. var e = Function._validateParams(arguments, [
  3520. {name: "scriptContent", type: String}
  3521. ]);
  3522. if (e) throw e;
  3523. if(!this._scriptsToLoad) {
  3524. this._scriptsToLoad = [];
  3525. }
  3526. Array.add(this._scriptsToLoad, {text: scriptContent});
  3527. }
  3528. function Sys$_ScriptLoader$queueScriptReference(scriptUrl) {
  3529. /// <summary locid="M:J#Sys._ScriptLoader.queueScriptReference" />
  3530. /// <param name="scriptUrl" type="String" mayBeNull="false"></param>
  3531. var e = Function._validateParams(arguments, [
  3532. {name: "scriptUrl", type: String}
  3533. ]);
  3534. if (e) throw e;
  3535. if(!this._scriptsToLoad) {
  3536. this._scriptsToLoad = [];
  3537. }
  3538. Array.add(this._scriptsToLoad, {src: scriptUrl});
  3539. }
  3540. function Sys$_ScriptLoader$_createScriptElement(queuedScript) {
  3541. var scriptElement = document.createElement('script');
  3542. scriptElement.type = 'text/javascript';
  3543. for (var attr in queuedScript) {
  3544. scriptElement[attr] = queuedScript[attr];
  3545. }
  3546. return scriptElement;
  3547. }
  3548. function Sys$_ScriptLoader$_loadScriptsInternal() {
  3549. var session = this._currentSession;
  3550. if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
  3551. var nextScript = Array.dequeue(session.scriptsToLoad);
  3552. var scriptElement = this._createScriptElement(nextScript);
  3553. if (scriptElement.text && Sys.Browser.agent === Sys.Browser.Safari) {
  3554. scriptElement.innerHTML = scriptElement.text;
  3555. delete scriptElement.text;
  3556. }
  3557. if (typeof(nextScript.src) === "String") {
  3558. this._currentTask = new Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
  3559. this._currentTask.execute();
  3560. }
  3561. else {
  3562. var headElements = document.getElementsByTagName('head');
  3563. if (headElements.length === 0) {
  3564. throw new Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
  3565. }
  3566. else {
  3567. headElements[0].appendChild(scriptElement);
  3568. }
  3569. Sys._ScriptLoader._clearScript(scriptElement);
  3570. this._loadScriptsInternal();
  3571. }
  3572. }
  3573. else {
  3574. this._stopSession();
  3575. var callback = session.allScriptsLoadedCallback;
  3576. if(callback) {
  3577. callback(this);
  3578. }
  3579. this._nextSession();
  3580. }
  3581. }
  3582. function Sys$_ScriptLoader$_nextSession() {
  3583. if (this._sessions.length === 0) {
  3584. this._loading = false;
  3585. this._currentSession = null;
  3586. return;
  3587. }
  3588. this._loading = true;
  3589. var session = Array.dequeue(this._sessions);
  3590. this._currentSession = session;
  3591. this._loadScriptsInternal();
  3592. }
  3593. function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
  3594. var callback = this._currentSession.scriptLoadFailedCallback;
  3595. var scriptElement = this._currentTask.get_scriptElement();
  3596. this._stopSession();
  3597. if(callback) {
  3598. callback(this, scriptElement, multipleCallbacks);
  3599. this._nextSession();
  3600. }
  3601. else {
  3602. this._loading = false;
  3603. throw Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, multipleCallbacks);
  3604. }
  3605. }
  3606. function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, loaded) {
  3607. if(loaded && this._currentTask._notified) {
  3608. if(this._currentTask._notified > 1) {
  3609. this._raiseError(true);
  3610. }
  3611. else {
  3612. Array.add(Sys._ScriptLoader._getLoadedScripts(), scriptElement.src);
  3613. this._currentTask.dispose();
  3614. this._currentTask = null;
  3615. this._loadScriptsInternal();
  3616. }
  3617. }
  3618. else {
  3619. this._raiseError(false);
  3620. }
  3621. }
  3622. function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
  3623. var callback = this._currentSession.scriptLoadTimeoutCallback;
  3624. this._stopSession();
  3625. if(callback) {
  3626. callback(this);
  3627. }
  3628. this._nextSession();
  3629. }
  3630. function Sys$_ScriptLoader$_stopSession() {
  3631. if(this._currentTask) {
  3632. this._currentTask.dispose();
  3633. this._currentTask = null;
  3634. }
  3635. }
  3636. Sys._ScriptLoader.prototype = {
  3637. dispose: Sys$_ScriptLoader$dispose,
  3638. loadScripts: Sys$_ScriptLoader$loadScripts,
  3639. notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded,
  3640. queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag,
  3641. queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock,
  3642. queueScriptReference: Sys$_ScriptLoader$queueScriptReference,
  3643. _createScriptElement: Sys$_ScriptLoader$_createScriptElement,
  3644. _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
  3645. _nextSession: Sys$_ScriptLoader$_nextSession,
  3646. _raiseError: Sys$_ScriptLoader$_raiseError,
  3647. _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
  3648. _scriptLoadTimeoutHandler: Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
  3649. _stopSession: Sys$_ScriptLoader$_stopSession
  3650. }
  3651. Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, Sys.IDisposable);
  3652. Sys._ScriptLoader.getInstance = function Sys$_ScriptLoader$getInstance() {
  3653. var sl = Sys._ScriptLoader._activeInstance;
  3654. if(!sl) {
  3655. sl = Sys._ScriptLoader._activeInstance = new Sys._ScriptLoader();
  3656. }
  3657. return sl;
  3658. }
  3659. Sys._ScriptLoader.isScriptLoaded = function Sys$_ScriptLoader$isScriptLoaded(scriptSrc) {
  3660. var dummyScript = document.createElement('script');
  3661. dummyScript.src = scriptSrc;
  3662. return Array.contains(Sys._ScriptLoader._getLoadedScripts(), dummyScript.src);
  3663. }
  3664. Sys._ScriptLoader.readLoadedScripts = function Sys$_ScriptLoader$readLoadedScripts() {
  3665. if(!Sys._ScriptLoader._referencedScripts) {
  3666. var referencedScripts = Sys._ScriptLoader._referencedScripts = [];
  3667. var existingScripts = document.getElementsByTagName('script');
  3668. for (i = existingScripts.length - 1; i >= 0; i--) {
  3669. var scriptNode = existingScripts[i];
  3670. var scriptSrc = scriptNode.src;
  3671. if (scriptSrc.length) {
  3672. if (!Array.contains(referencedScripts, scriptSrc)) {
  3673. Array.add(referencedScripts, scriptSrc);
  3674. }
  3675. }
  3676. }
  3677. }
  3678. }
  3679. Sys._ScriptLoader._clearScript = function Sys$_ScriptLoader$_clearScript(scriptElement) {
  3680. if (!Sys.Debug.isDebug) {
  3681. scriptElement.parentNode.removeChild(scriptElement);
  3682. }
  3683. }
  3684. Sys._ScriptLoader._errorScriptLoadFailed = function Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
  3685. var errorMessage;
  3686. if(multipleCallbacks) {
  3687. errorMessage = Sys.Res.scriptLoadMultipleCallbacks;
  3688. }
  3689. else {
  3690. errorMessage = Sys.Res.scriptLoadFailedDebug;
  3691. }
  3692. var displayMessage = "Sys.ScriptLoadFailedException: " + String.format(errorMessage, scriptUrl);
  3693. var e = Error.create(displayMessage, {name: 'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
  3694. e.popStackFrame();
  3695. return e;
  3696. }
  3697. Sys._ScriptLoader._getLoadedScripts = function Sys$_ScriptLoader$_getLoadedScripts() {
  3698. if(!Sys._ScriptLoader._referencedScripts) {
  3699. Sys._ScriptLoader._referencedScripts = [];
  3700. Sys._ScriptLoader.readLoadedScripts();
  3701. }
  3702. return Sys._ScriptLoader._referencedScripts;
  3703. }
  3704. Sys._ScriptLoaderTask = function Sys$_ScriptLoaderTask(scriptElement, completedCallback) {
  3705. /// <summary locid="M:J#Sys._ScriptLoaderTask.#ctor" />
  3706. /// <param name="scriptElement" domElement="true"></param>
  3707. /// <param name="completedCallback" type="Function"></param>
  3708. var e = Function._validateParams(arguments, [
  3709. {name: "scriptElement", domElement: true},
  3710. {name: "completedCallback", type: Function}
  3711. ]);
  3712. if (e) throw e;
  3713. this._scriptElement = scriptElement;
  3714. this._completedCallback = completedCallback;
  3715. this._notified = 0;
  3716. }
  3717. function Sys$_ScriptLoaderTask$get_scriptElement() {
  3718. /// <value domElement="true" locid="P:J#Sys._ScriptLoaderTask.scriptElement"></value>
  3719. if (arguments.length !== 0) throw Error.parameterCount();
  3720. return this._scriptElement;
  3721. }
  3722. function Sys$_ScriptLoaderTask$dispose() {
  3723. if(this._disposed) {
  3724. return;
  3725. }
  3726. this._disposed = true;
  3727. this._removeScriptElementHandlers();
  3728. Sys._ScriptLoader._clearScript(this._scriptElement);
  3729. this._scriptElement = null;
  3730. }
  3731. function Sys$_ScriptLoaderTask$execute() {
  3732. /// <summary locid="M:J#Sys._ScriptLoaderTask.execute" />
  3733. if (arguments.length !== 0) throw Error.parameterCount();
  3734. this._addScriptElementHandlers();
  3735. var headElements = document.getElementsByTagName('head');
  3736. if (headElements.length === 0) {
  3737. throw new Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
  3738. }
  3739. else {
  3740. headElements[0].appendChild(this._scriptElement);
  3741. }
  3742. }
  3743. function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
  3744. this._scriptLoadDelegate = Function.createDelegate(this, this._scriptLoadHandler);
  3745. if (Sys.Browser.agent !== Sys.Browser.InternetExplorer) {
  3746. this._scriptElement.readyState = 'loaded';
  3747. $addHandler(this._scriptElement, 'load', this._scriptLoadDelegate);
  3748. }
  3749. else {
  3750. $addHandler(this._scriptElement, 'readystatechange', this._scriptLoadDelegate);
  3751. }
  3752. if (this._scriptElement.addEventListener) {
  3753. this._scriptErrorDelegate = Function.createDelegate(this, this._scriptErrorHandler);
  3754. this._scriptElement.addEventListener('error', this._scriptErrorDelegate, false);
  3755. }
  3756. }
  3757. function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
  3758. if(this._scriptLoadDelegate) {
  3759. var scriptElement = this.get_scriptElement();
  3760. if (Sys.Browser.agent !== Sys.Browser.InternetExplorer) {
  3761. $removeHandler(scriptElement, 'load', this._scriptLoadDelegate);
  3762. }
  3763. else {
  3764. $removeHandler(scriptElement, 'readystatechange', this._scriptLoadDelegate);
  3765. }
  3766. if (this._scriptErrorDelegate) {
  3767. this._scriptElement.removeEventListener('error', this._scriptErrorDelegate, false);
  3768. this._scriptErrorDelegate = null;
  3769. }
  3770. this._scriptLoadDelegate = null;
  3771. }
  3772. }
  3773. function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
  3774. if(this._disposed) {
  3775. return;
  3776. }
  3777. this._completedCallback(this.get_scriptElement(), false);
  3778. }
  3779. function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
  3780. if(this._disposed) {
  3781. return;
  3782. }
  3783. var scriptElement = this.get_scriptElement();
  3784. if ((scriptElement.readyState !== 'loaded') &&
  3785. (scriptElement.readyState !== 'complete')) {
  3786. return;
  3787. }
  3788. var _this = this;
  3789. window.setTimeout(function() {
  3790. _this._completedCallback(scriptElement, true);
  3791. }, 0);
  3792. }
  3793. Sys._ScriptLoaderTask.prototype = {
  3794. get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement,
  3795. dispose: Sys$_ScriptLoaderTask$dispose,
  3796. execute: Sys$_ScriptLoaderTask$execute,
  3797. _addScriptElementHandlers: Sys$_ScriptLoaderTask$_addScriptElementHandlers,
  3798. _removeScriptElementHandlers: Sys$_ScriptLoaderTask$_removeScriptElementHandlers,
  3799. _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler,
  3800. _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler
  3801. }
  3802. Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, Sys.IDisposable);
  3803. Sys.ApplicationLoadEventArgs = function Sys$ApplicationLoadEventArgs(components, isPartialLoad) {
  3804. /// <summary locid="M:J#Sys.ApplicationLoadEventArgs.#ctor" />
  3805. /// <param name="components" type="Array" elementType="Sys.Component"></param>
  3806. /// <param name="isPartialLoad" type="Boolean"></param>
  3807. var e = Function._validateParams(arguments, [
  3808. {name: "components", type: Array, elementType: Sys.Component},
  3809. {name: "isPartialLoad", type: Boolean}
  3810. ]);
  3811. if (e) throw e;
  3812. Sys.ApplicationLoadEventArgs.initializeBase(this);
  3813. this._components = components;
  3814. this._isPartialLoad = isPartialLoad;
  3815. }
  3816. function Sys$ApplicationLoadEventArgs$get_components() {
  3817. /// <value type="Array" elementType="Sys.Component" locid="P:J#Sys.ApplicationLoadEventArgs.components"></value>
  3818. if (arguments.length !== 0) throw Error.parameterCount();
  3819. return this._components;
  3820. }
  3821. function Sys$ApplicationLoadEventArgs$get_isPartialLoad() {
  3822. /// <value type="Boolean" locid="P:J#Sys.ApplicationLoadEventArgs.isPartialLoad"></value>
  3823. if (arguments.length !== 0) throw Error.parameterCount();
  3824. return this._isPartialLoad;
  3825. }
  3826. Sys.ApplicationLoadEventArgs.prototype = {
  3827. get_components: Sys$ApplicationLoadEventArgs$get_components,
  3828. get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad
  3829. }
  3830. Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs', Sys.EventArgs);
  3831. Sys.HistoryEventArgs = function Sys$HistoryEventArgs(state) {
  3832. /// <summary locid="M:J#Sys.HistoryEventArgs.#ctor" />
  3833. /// <param name="state" type="Object"></param>
  3834. var e = Function._validateParams(arguments, [
  3835. {name: "state", type: Object}
  3836. ]);
  3837. if (e) throw e;
  3838. Sys.HistoryEventArgs.initializeBase(this);
  3839. this._state = state;
  3840. }
  3841. function Sys$HistoryEventArgs$get_state() {
  3842. /// <value type="Object" locid="P:J#Sys.HistoryEventArgs.state"></value>
  3843. if (arguments.length !== 0) throw Error.parameterCount();
  3844. return this._state;
  3845. }
  3846. Sys.HistoryEventArgs.prototype = {
  3847. get_state: Sys$HistoryEventArgs$get_state
  3848. }
  3849. Sys.HistoryEventArgs.registerClass('Sys.HistoryEventArgs', Sys.EventArgs);
  3850. Sys._Application = function Sys$_Application() {
  3851. /// <summary locid="M:J#Sys.Application.#ctor" />
  3852. if (arguments.length !== 0) throw Error.parameterCount();
  3853. Sys._Application.initializeBase(this);
  3854. this._disposableObjects = [];
  3855. this._components = {};
  3856. this._createdComponents = [];
  3857. this._secondPassComponents = [];
  3858. this._appLoadHandler = null;
  3859. this._beginRequestHandler = null;
  3860. this._clientId = null;
  3861. this._currentEntry = '';
  3862. this._endRequestHandler = null;
  3863. this._history = null;
  3864. this._enableHistory = false;
  3865. this._historyEnabledInScriptManager = false;
  3866. this._historyFrame = null;
  3867. this._historyInitialized = false;
  3868. this._historyInitialLength = 0;
  3869. this._historyLength = 0;
  3870. this._historyPointIsNew = false;
  3871. this._ignoreTimer = false;
  3872. this._initialState = null;
  3873. this._state = {};
  3874. this._timerCookie = 0;
  3875. this._timerHandler = null;
  3876. this._uniqueId = null;
  3877. this._unloadHandlerDelegate = Function.createDelegate(this, this._unloadHandler);
  3878. this._loadHandlerDelegate = Function.createDelegate(this, this._loadHandler);
  3879. Sys.UI.DomEvent.addHandler(window, "unload", this._unloadHandlerDelegate);
  3880. Sys.UI.DomEvent.addHandler(window, "load", this._loadHandlerDelegate);
  3881. }
  3882. function Sys$_Application$get_isCreatingComponents() {
  3883. /// <value type="Boolean" locid="P:J#Sys.Application.isCreatingComponents"></value>
  3884. if (arguments.length !== 0) throw Error.parameterCount();
  3885. return this._creatingComponents;
  3886. }
  3887. function Sys$_Application$get_stateString() {
  3888. /// <value type="String" locid="P:J#Sys.Application.stateString"></value>
  3889. if (arguments.length !== 0) throw Error.parameterCount();
  3890. var hash = window.location.hash;
  3891. if (this._isSafari2()) {
  3892. var history = this._getHistory();
  3893. if (history) {
  3894. hash = history[window.history.length - this._historyInitialLength];
  3895. }
  3896. }
  3897. if ((hash.length > 0) && (hash.charAt(0) === '#')) {
  3898. hash = hash.substring(1);
  3899. }
  3900. if (Sys.Browser.agent === Sys.Browser.Firefox) {
  3901. hash = this._serializeState(this._deserializeState(hash, true));
  3902. }
  3903. return hash;
  3904. }
  3905. function Sys$_Application$get_enableHistory() {
  3906. /// <value type="Boolean" locid="P:J#Sys.Application.enableHistory"></value>
  3907. if (arguments.length !== 0) throw Error.parameterCount();
  3908. return this._enableHistory;
  3909. }
  3910. function Sys$_Application$set_enableHistory(value) {
  3911. var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
  3912. if (e) throw e;
  3913. if (this._initialized && !this._initializing) {
  3914. throw Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
  3915. }
  3916. else if (this._historyEnabledInScriptManager && !value) {
  3917. throw Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
  3918. }
  3919. this._enableHistory = value;
  3920. }
  3921. function Sys$_Application$add_init(handler) {
  3922. /// <summary locid="E:J#Sys.Application.init" />
  3923. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3924. if (e) throw e;
  3925. if (this._initialized) {
  3926. handler(this, Sys.EventArgs.Empty);
  3927. }
  3928. else {
  3929. this.get_events().addHandler("init", handler);
  3930. }
  3931. }
  3932. function Sys$_Application$remove_init(handler) {
  3933. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3934. if (e) throw e;
  3935. this.get_events().removeHandler("init", handler);
  3936. }
  3937. function Sys$_Application$add_load(handler) {
  3938. /// <summary locid="E:J#Sys.Application.load" />
  3939. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3940. if (e) throw e;
  3941. this.get_events().addHandler("load", handler);
  3942. }
  3943. function Sys$_Application$remove_load(handler) {
  3944. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3945. if (e) throw e;
  3946. this.get_events().removeHandler("load", handler);
  3947. }
  3948. function Sys$_Application$add_navigate(handler) {
  3949. /// <summary locid="E:J#Sys.Application.navigate" />
  3950. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3951. if (e) throw e;
  3952. this.get_events().addHandler("navigate", handler);
  3953. }
  3954. function Sys$_Application$remove_navigate(handler) {
  3955. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3956. if (e) throw e;
  3957. this.get_events().removeHandler("navigate", handler);
  3958. }
  3959. function Sys$_Application$add_unload(handler) {
  3960. /// <summary locid="E:J#Sys.Application.unload" />
  3961. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3962. if (e) throw e;
  3963. this.get_events().addHandler("unload", handler);
  3964. }
  3965. function Sys$_Application$remove_unload(handler) {
  3966. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  3967. if (e) throw e;
  3968. this.get_events().removeHandler("unload", handler);
  3969. }
  3970. function Sys$_Application$addComponent(component) {
  3971. /// <summary locid="M:J#Sys.Application.addComponent" />
  3972. /// <param name="component" type="Sys.Component"></param>
  3973. var e = Function._validateParams(arguments, [
  3974. {name: "component", type: Sys.Component}
  3975. ]);
  3976. if (e) throw e;
  3977. var id = component.get_id();
  3978. if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
  3979. if (typeof(this._components[id]) !== 'undefined') throw Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, id));
  3980. this._components[id] = component;
  3981. }
  3982. function Sys$_Application$addHistoryPoint(state, title) {
  3983. /// <summary locid="M:J#Sys.Application.addHistoryPoint" />
  3984. /// <param name="state" type="Object"></param>
  3985. /// <param name="title" type="String" optional="true" mayBeNull="true"></param>
  3986. var e = Function._validateParams(arguments, [
  3987. {name: "state", type: Object},
  3988. {name: "title", type: String, mayBeNull: true, optional: true}
  3989. ]);
  3990. if (e) throw e;
  3991. if (!this._enableHistory) throw Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDisabled);
  3992. for (var n in state) {
  3993. var v = state[n];
  3994. var t = typeof(v);
  3995. if ((v !== null) && ((t === 'object') || (t === 'function') || (t === 'undefined'))) {
  3996. throw Error.argument('state', Sys.Res.stateMustBeStringDictionary);
  3997. }
  3998. }
  3999. this._ensureHistory();
  4000. var initialState = this._state;
  4001. for (var key in state) {
  4002. var value = state[key];
  4003. if (value === null) {
  4004. if (typeof(initialState[key]) !== 'undefined') {
  4005. delete initialState[key];
  4006. }
  4007. }
  4008. else {
  4009. initialState[key] = value;
  4010. }
  4011. }
  4012. var entry = this._serializeState(initialState);
  4013. this._historyPointIsNew = true;
  4014. this._setState(entry, title);
  4015. this._raiseNavigate();
  4016. }
  4017. function Sys$_Application$beginCreateComponents() {
  4018. /// <summary locid="M:J#Sys.Application.beginCreateComponents" />
  4019. if (arguments.length !== 0) throw Error.parameterCount();
  4020. this._creatingComponents = true;
  4021. }
  4022. function Sys$_Application$dispose() {
  4023. /// <summary locid="M:J#Sys.Application.dispose" />
  4024. if (arguments.length !== 0) throw Error.parameterCount();
  4025. if (!this._disposing) {
  4026. this._disposing = true;
  4027. if (this._timerCookie) {
  4028. window.clearTimeout(this._timerCookie);
  4029. delete this._timerCookie;
  4030. }
  4031. if (this._endRequestHandler) {
  4032. Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._endRequestHandler);
  4033. delete this._endRequestHandler;
  4034. }
  4035. if (this._beginRequestHandler) {
  4036. Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._beginRequestHandler);
  4037. delete this._beginRequestHandler;
  4038. }
  4039. if (window.pageUnload) {
  4040. window.pageUnload(this, Sys.EventArgs.Empty);
  4041. }
  4042. var unloadHandler = this.get_events().getHandler("unload");
  4043. if (unloadHandler) {
  4044. unloadHandler(this, Sys.EventArgs.Empty);
  4045. }
  4046. var disposableObjects = Array.clone(this._disposableObjects);
  4047. for (var i = 0, l = disposableObjects.length; i < l; i++) {
  4048. disposableObjects[i].dispose();
  4049. }
  4050. Array.clear(this._disposableObjects);
  4051. Sys.UI.DomEvent.removeHandler(window, "unload", this._unloadHandlerDelegate);
  4052. if(this._loadHandlerDelegate) {
  4053. Sys.UI.DomEvent.removeHandler(window, "load", this._loadHandlerDelegate);
  4054. this._loadHandlerDelegate = null;
  4055. }
  4056. var sl = Sys._ScriptLoader.getInstance();
  4057. if(sl) {
  4058. sl.dispose();
  4059. }
  4060. Sys._Application.callBaseMethod(this, 'dispose');
  4061. }
  4062. }
  4063. function Sys$_Application$endCreateComponents() {
  4064. /// <summary locid="M:J#Sys.Application.endCreateComponents" />
  4065. if (arguments.length !== 0) throw Error.parameterCount();
  4066. var components = this._secondPassComponents;
  4067. for (var i = 0, l = components.length; i < l; i++) {
  4068. var component = components[i].component;
  4069. Sys$Component$_setReferences(component, components[i].references);
  4070. component.endUpdate();
  4071. }
  4072. this._secondPassComponents = [];
  4073. this._creatingComponents = false;
  4074. }
  4075. function Sys$_Application$findComponent(id, parent) {
  4076. /// <summary locid="M:J#Sys.Application.findComponent" />
  4077. /// <param name="id" type="String"></param>
  4078. /// <param name="parent" optional="true" mayBeNull="true"></param>
  4079. /// <returns type="Sys.Component" mayBeNull="true"></returns>
  4080. var e = Function._validateParams(arguments, [
  4081. {name: "id", type: String},
  4082. {name: "parent", mayBeNull: true, optional: true}
  4083. ]);
  4084. if (e) throw e;
  4085. return (parent ?
  4086. ((Sys.IContainer.isInstanceOfType(parent)) ?
  4087. parent.findComponent(id) :
  4088. parent[id] || null) :
  4089. Sys.Application._components[id] || null);
  4090. }
  4091. function Sys$_Application$getComponents() {
  4092. /// <summary locid="M:J#Sys.Application.getComponents" />
  4093. /// <returns type="Array" elementType="Sys.Component"></returns>
  4094. if (arguments.length !== 0) throw Error.parameterCount();
  4095. var res = [];
  4096. var components = this._components;
  4097. for (var name in components) {
  4098. res[res.length] = components[name];
  4099. }
  4100. return res;
  4101. }
  4102. function Sys$_Application$initialize() {
  4103. /// <summary locid="M:J#Sys.Application.initialize" />
  4104. if (arguments.length !== 0) throw Error.parameterCount();
  4105. if(!this._initialized && !this._initializing) {
  4106. this._initializing = true;
  4107. window.setTimeout(Function.createDelegate(this, this._doInitialize), 0);
  4108. }
  4109. }
  4110. function Sys$_Application$notifyScriptLoaded() {
  4111. /// <summary locid="M:J#Sys.Application.notifyScriptLoaded" />
  4112. if (arguments.length !== 0) throw Error.parameterCount();
  4113. var sl = Sys._ScriptLoader.getInstance();
  4114. if(sl) {
  4115. sl.notifyScriptLoaded();
  4116. }
  4117. }
  4118. function Sys$_Application$registerDisposableObject(object) {
  4119. /// <summary locid="M:J#Sys.Application.registerDisposableObject" />
  4120. /// <param name="object" type="Sys.IDisposable"></param>
  4121. var e = Function._validateParams(arguments, [
  4122. {name: "object", type: Sys.IDisposable}
  4123. ]);
  4124. if (e) throw e;
  4125. if (!this._disposing) {
  4126. this._disposableObjects[this._disposableObjects.length] = object;
  4127. }
  4128. }
  4129. function Sys$_Application$raiseLoad() {
  4130. /// <summary locid="M:J#Sys.Application.raiseLoad" />
  4131. if (arguments.length !== 0) throw Error.parameterCount();
  4132. var h = this.get_events().getHandler("load");
  4133. var args = new Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), !this._initializing);
  4134. if (h) {
  4135. h(this, args);
  4136. }
  4137. if (window.pageLoad) {
  4138. window.pageLoad(this, args);
  4139. }
  4140. this._createdComponents = [];
  4141. }
  4142. function Sys$_Application$removeComponent(component) {
  4143. /// <summary locid="M:J#Sys.Application.removeComponent" />
  4144. /// <param name="component" type="Sys.Component"></param>
  4145. var e = Function._validateParams(arguments, [
  4146. {name: "component", type: Sys.Component}
  4147. ]);
  4148. if (e) throw e;
  4149. var id = component.get_id();
  4150. if (id) delete this._components[id];
  4151. }
  4152. function Sys$_Application$setServerId(clientId, uniqueId) {
  4153. /// <summary locid="M:J#Sys.Application.setServerId" />
  4154. /// <param name="clientId" type="String"></param>
  4155. /// <param name="uniqueId" type="String"></param>
  4156. var e = Function._validateParams(arguments, [
  4157. {name: "clientId", type: String},
  4158. {name: "uniqueId", type: String}
  4159. ]);
  4160. if (e) throw e;
  4161. this._clientId = clientId;
  4162. this._uniqueId = uniqueId;
  4163. }
  4164. function Sys$_Application$setServerState(value) {
  4165. /// <summary locid="M:J#Sys.Application.setServerState" />
  4166. /// <param name="value" type="String"></param>
  4167. var e = Function._validateParams(arguments, [
  4168. {name: "value", type: String}
  4169. ]);
  4170. if (e) throw e;
  4171. this._ensureHistory();
  4172. this._state.__s = value;
  4173. this._updateHiddenField(value);
  4174. }
  4175. function Sys$_Application$unregisterDisposableObject(object) {
  4176. /// <summary locid="M:J#Sys.Application.unregisterDisposableObject" />
  4177. /// <param name="object" type="Sys.IDisposable"></param>
  4178. var e = Function._validateParams(arguments, [
  4179. {name: "object", type: Sys.IDisposable}
  4180. ]);
  4181. if (e) throw e;
  4182. if (!this._disposing) {
  4183. Array.remove(this._disposableObjects, object);
  4184. }
  4185. }
  4186. function Sys$_Application$_addComponentToSecondPass(component, references) {
  4187. this._secondPassComponents[this._secondPassComponents.length] = {component: component, references: references};
  4188. }
  4189. function Sys$_Application$_deserializeState(entry, skipDecodeUri) {
  4190. var result = {};
  4191. entry = entry || '';
  4192. var serverSeparator = entry.indexOf('&&');
  4193. if ((serverSeparator !== -1) && (serverSeparator + 2 < entry.length)) {
  4194. result.__s = entry.substr(serverSeparator + 2);
  4195. entry = entry.substr(0, serverSeparator);
  4196. }
  4197. var tokens = entry.split('&');
  4198. for (var i = 0, l = tokens.length; i < l; i++) {
  4199. var token = tokens[i];
  4200. var equal = token.indexOf('=');
  4201. if ((equal !== -1) && (equal + 1 < token.length)) {
  4202. var name = token.substr(0, equal);
  4203. var value = token.substr(equal + 1);
  4204. result[name] = skipDecodeUri ? value : decodeURIComponent(value);
  4205. }
  4206. }
  4207. return result;
  4208. }
  4209. function Sys$_Application$_doInitialize() {
  4210. Sys._Application.callBaseMethod(this, 'initialize');
  4211. var handler = this.get_events().getHandler("init");
  4212. if (handler) {
  4213. this.beginCreateComponents();
  4214. handler(this, Sys.EventArgs.Empty);
  4215. this.endCreateComponents();
  4216. }
  4217. if (Sys.WebForms) {
  4218. this._beginRequestHandler = Function.createDelegate(this, this._onPageRequestManagerBeginRequest);
  4219. Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._beginRequestHandler);
  4220. this._endRequestHandler = Function.createDelegate(this, this._onPageRequestManagerEndRequest);
  4221. Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endRequestHandler);
  4222. }
  4223. var loadedEntry = this.get_stateString();
  4224. if (loadedEntry !== this._currentEntry) {
  4225. this._navigate(loadedEntry);
  4226. }
  4227. this.raiseLoad();
  4228. this._initializing = false;
  4229. }
  4230. function Sys$_Application$_enableHistoryInScriptManager() {
  4231. this._enableHistory = true;
  4232. this._historyEnabledInScriptManager = true;
  4233. }
  4234. function Sys$_Application$_ensureHistory() {
  4235. if (!this._historyInitialized && this._enableHistory) {
  4236. if ((Sys.Browser.agent === Sys.Browser.InternetExplorer) && (Sys.Browser.documentMode < 8)) {
  4237. this._historyFrame = document.getElementById('__historyFrame');
  4238. if (!this._historyFrame) throw Error.invalidOperation(Sys.Res.historyMissingFrame);
  4239. this._ignoreIFrame = true;
  4240. }
  4241. if (this._isSafari2()) {
  4242. var historyElement = document.getElementById('__history');
  4243. if (!historyElement) throw Error.invalidOperation(Sys.Res.historyMissingHiddenInput);
  4244. this._setHistory([window.location.hash]);
  4245. this._historyInitialLength = window.history.length;
  4246. }
  4247. this._timerHandler = Function.createDelegate(this, this._onIdle);
  4248. this._timerCookie = window.setTimeout(this._timerHandler, 100);
  4249. try {
  4250. this._initialState = this._deserializeState(this.get_stateString());
  4251. } catch(e) {}
  4252. this._historyInitialized = true;
  4253. }
  4254. }
  4255. function Sys$_Application$_getHistory() {
  4256. var historyElement = document.getElementById('__history');
  4257. if (!historyElement) return '';
  4258. var v = historyElement.value;
  4259. return v ? Sys.Serialization.JavaScriptSerializer.deserialize(v, true) : '';
  4260. }
  4261. function Sys$_Application$_isSafari2() {
  4262. return (Sys.Browser.agent === Sys.Browser.Safari) &&
  4263. (Sys.Browser.version <= 419.3);
  4264. }
  4265. function Sys$_Application$_loadHandler() {
  4266. if(this._loadHandlerDelegate) {
  4267. Sys.UI.DomEvent.removeHandler(window, "load", this._loadHandlerDelegate);
  4268. this._loadHandlerDelegate = null;
  4269. }
  4270. this.initialize();
  4271. }
  4272. function Sys$_Application$_navigate(entry) {
  4273. this._ensureHistory();
  4274. var state = this._deserializeState(entry);
  4275. if (this._uniqueId) {
  4276. var oldServerEntry = this._state.__s || '';
  4277. var newServerEntry = state.__s || '';
  4278. if (newServerEntry !== oldServerEntry) {
  4279. this._updateHiddenField(newServerEntry);
  4280. __doPostBack(this._uniqueId, newServerEntry);
  4281. this._state = state;
  4282. return;
  4283. }
  4284. }
  4285. this._setState(entry);
  4286. this._state = state;
  4287. this._raiseNavigate();
  4288. }
  4289. function Sys$_Application$_onIdle() {
  4290. delete this._timerCookie;
  4291. var entry = this.get_stateString();
  4292. if (entry !== this._currentEntry) {
  4293. if (!this._ignoreTimer) {
  4294. this._historyPointIsNew = false;
  4295. this._navigate(entry);
  4296. this._historyLength = window.history.length;
  4297. }
  4298. }
  4299. else {
  4300. this._ignoreTimer = false;
  4301. }
  4302. this._timerCookie = window.setTimeout(this._timerHandler, 100);
  4303. }
  4304. function Sys$_Application$_onIFrameLoad(entry) {
  4305. this._ensureHistory();
  4306. if (!this._ignoreIFrame) {
  4307. this._historyPointIsNew = false;
  4308. this._navigate(entry);
  4309. }
  4310. this._ignoreIFrame = false;
  4311. }
  4312. function Sys$_Application$_onPageRequestManagerBeginRequest(sender, args) {
  4313. this._ignoreTimer = true;
  4314. }
  4315. function Sys$_Application$_onPageRequestManagerEndRequest(sender, args) {
  4316. var dataItem = args.get_dataItems()[this._clientId];
  4317. var eventTarget = document.getElementById("__EVENTTARGET");
  4318. if (eventTarget && eventTarget.value === this._uniqueId) {
  4319. eventTarget.value = '';
  4320. }
  4321. if (typeof(dataItem) !== 'undefined') {
  4322. this.setServerState(dataItem);
  4323. this._historyPointIsNew = true;
  4324. }
  4325. else {
  4326. this._ignoreTimer = false;
  4327. }
  4328. var entry = this._serializeState(this._state);
  4329. if (entry !== this._currentEntry) {
  4330. this._ignoreTimer = true;
  4331. this._setState(entry);
  4332. this._raiseNavigate();
  4333. }
  4334. }
  4335. function Sys$_Application$_raiseNavigate() {
  4336. var h = this.get_events().getHandler("navigate");
  4337. var stateClone = {};
  4338. for (var key in this._state) {
  4339. if (key !== '__s') {
  4340. stateClone[key] = this._state[key];
  4341. }
  4342. }
  4343. var args = new Sys.HistoryEventArgs(stateClone);
  4344. if (h) {
  4345. h(this, args);
  4346. }
  4347. }
  4348. function Sys$_Application$_serializeState(state) {
  4349. var serialized = [];
  4350. for (var key in state) {
  4351. var value = state[key];
  4352. if (key === '__s') {
  4353. var serverState = value;
  4354. }
  4355. else {
  4356. if (key.indexOf('=') !== -1) throw Error.argument('state', Sys.Res.stateFieldNameInvalid);
  4357. serialized[serialized.length] = key + '=' + encodeURIComponent(value);
  4358. }
  4359. }
  4360. return serialized.join('&') + (serverState ? '&&' + serverState : '');
  4361. }
  4362. function Sys$_Application$_setHistory(historyArray) {
  4363. var historyElement = document.getElementById('__history');
  4364. if (historyElement) {
  4365. historyElement.value = Sys.Serialization.JavaScriptSerializer.serialize(historyArray);
  4366. }
  4367. }
  4368. function Sys$_Application$_setState(entry, title) {
  4369. entry = entry || '';
  4370. if (entry !== this._currentEntry) {
  4371. if (window.theForm) {
  4372. var action = window.theForm.action;
  4373. var hashIndex = action.indexOf('#');
  4374. window.theForm.action = ((hashIndex !== -1) ? action.substring(0, hashIndex) : action) + '#' + entry;
  4375. }
  4376. if (this._historyFrame && this._historyPointIsNew) {
  4377. this._ignoreIFrame = true;
  4378. this._historyPointIsNew = false;
  4379. var frameDoc = this._historyFrame.contentWindow.document;
  4380. frameDoc.open("javascript:'<html></html>'");
  4381. frameDoc.write("<html><head><title>" + (title || document.title) +
  4382. "</title><scri" + "pt type=\"text/javascript\">parent.Sys.Application._onIFrameLoad('" +
  4383. entry + "');</scri" + "pt></head><body></body></html>");
  4384. frameDoc.close();
  4385. }
  4386. this._ignoreTimer = false;
  4387. var currentHash = this.get_stateString();
  4388. this._currentEntry = entry;
  4389. if (entry !== currentHash) {
  4390. var loc = document.location;
  4391. if (loc.href.length - loc.hash.length + entry.length > 1024) {
  4392. throw Error.invalidOperation(Sys.Res.urlMustBeLessThan1024chars);
  4393. }
  4394. if (this._isSafari2()) {
  4395. var history = this._getHistory();
  4396. history[window.history.length - this._historyInitialLength + 1] = entry;
  4397. this._setHistory(history);
  4398. this._historyLength = window.history.length + 1;
  4399. var form = document.createElement('form');
  4400. form.method = 'get';
  4401. form.action = '#' + entry;
  4402. document.appendChild(form);
  4403. form.submit();
  4404. document.removeChild(form);
  4405. }
  4406. else {
  4407. window.location.hash = entry;
  4408. }
  4409. if ((typeof(title) !== 'undefined') && (title !== null)) {
  4410. document.title = title;
  4411. }
  4412. }
  4413. }
  4414. }
  4415. function Sys$_Application$_unloadHandler(event) {
  4416. this.dispose();
  4417. }
  4418. function Sys$_Application$_updateHiddenField(value) {
  4419. if (this._clientId) {
  4420. var serverStateField = document.getElementById(this._clientId);
  4421. if (serverStateField) {
  4422. serverStateField.value = value;
  4423. }
  4424. }
  4425. }
  4426. Sys._Application.prototype = {
  4427. _creatingComponents: false,
  4428. _disposing: false,
  4429. get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
  4430. get_stateString: Sys$_Application$get_stateString,
  4431. get_enableHistory: Sys$_Application$get_enableHistory,
  4432. set_enableHistory: Sys$_Application$set_enableHistory,
  4433. add_init: Sys$_Application$add_init,
  4434. remove_init: Sys$_Application$remove_init,
  4435. add_load: Sys$_Application$add_load,
  4436. remove_load: Sys$_Application$remove_load,
  4437. add_navigate: Sys$_Application$add_navigate,
  4438. remove_navigate: Sys$_Application$remove_navigate,
  4439. add_unload: Sys$_Application$add_unload,
  4440. remove_unload: Sys$_Application$remove_unload,
  4441. addComponent: Sys$_Application$addComponent,
  4442. addHistoryPoint: Sys$_Application$addHistoryPoint,
  4443. beginCreateComponents: Sys$_Application$beginCreateComponents,
  4444. dispose: Sys$_Application$dispose,
  4445. endCreateComponents: Sys$_Application$endCreateComponents,
  4446. findComponent: Sys$_Application$findComponent,
  4447. getComponents: Sys$_Application$getComponents,
  4448. initialize: Sys$_Application$initialize,
  4449. notifyScriptLoaded: Sys$_Application$notifyScriptLoaded,
  4450. registerDisposableObject: Sys$_Application$registerDisposableObject,
  4451. raiseLoad: Sys$_Application$raiseLoad,
  4452. removeComponent: Sys$_Application$removeComponent,
  4453. setServerId: Sys$_Application$setServerId,
  4454. setServerState: Sys$_Application$setServerState,
  4455. unregisterDisposableObject: Sys$_Application$unregisterDisposableObject,
  4456. _addComponentToSecondPass: Sys$_Application$_addComponentToSecondPass,
  4457. _deserializeState: Sys$_Application$_deserializeState,
  4458. _doInitialize: Sys$_Application$_doInitialize,
  4459. _enableHistoryInScriptManager: Sys$_Application$_enableHistoryInScriptManager,
  4460. _ensureHistory: Sys$_Application$_ensureHistory,
  4461. _getHistory: Sys$_Application$_getHistory,
  4462. _isSafari2: Sys$_Application$_isSafari2,
  4463. _loadHandler: Sys$_Application$_loadHandler,
  4464. _navigate: Sys$_Application$_navigate,
  4465. _onIdle: Sys$_Application$_onIdle,
  4466. _onIFrameLoad: Sys$_Application$_onIFrameLoad,
  4467. _onPageRequestManagerBeginRequest: Sys$_Application$_onPageRequestManagerBeginRequest,
  4468. _onPageRequestManagerEndRequest: Sys$_Application$_onPageRequestManagerEndRequest,
  4469. _raiseNavigate: Sys$_Application$_raiseNavigate,
  4470. _serializeState: Sys$_Application$_serializeState,
  4471. _setHistory: Sys$_Application$_setHistory,
  4472. _setState: Sys$_Application$_setState,
  4473. _unloadHandler: Sys$_Application$_unloadHandler,
  4474. _updateHiddenField: Sys$_Application$_updateHiddenField
  4475. }
  4476. Sys._Application.registerClass('Sys._Application', Sys.Component, Sys.IContainer);
  4477. Sys.Application = new Sys._Application();
  4478. var $find = Sys.Application.findComponent;
  4479. Type.registerNamespace('Sys.Net');
  4480. Sys.Net.WebRequestExecutor = function Sys$Net$WebRequestExecutor() {
  4481. /// <summary locid="M:J#Sys.Net.WebRequestExecutor.#ctor" />
  4482. if (arguments.length !== 0) throw Error.parameterCount();
  4483. this._webRequest = null;
  4484. this._resultObject = null;
  4485. }
  4486. function Sys$Net$WebRequestExecutor$get_webRequest() {
  4487. /// <value type="Sys.Net.WebRequest" locid="P:J#Sys.Net.WebRequestExecutor.webRequest"></value>
  4488. if (arguments.length !== 0) throw Error.parameterCount();
  4489. return this._webRequest;
  4490. }
  4491. function Sys$Net$WebRequestExecutor$_set_webRequest(value) {
  4492. if (this.get_started()) {
  4493. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'set_webRequest'));
  4494. }
  4495. this._webRequest = value;
  4496. }
  4497. function Sys$Net$WebRequestExecutor$get_started() {
  4498. /// <value type="Boolean" locid="P:J#Sys.Net.WebRequestExecutor.started"></value>
  4499. if (arguments.length !== 0) throw Error.parameterCount();
  4500. throw Error.notImplemented();
  4501. }
  4502. function Sys$Net$WebRequestExecutor$get_responseAvailable() {
  4503. /// <value type="Boolean" locid="P:J#Sys.Net.WebRequestExecutor.responseAvailable"></value>
  4504. if (arguments.length !== 0) throw Error.parameterCount();
  4505. throw Error.notImplemented();
  4506. }
  4507. function Sys$Net$WebRequestExecutor$get_timedOut() {
  4508. /// <value type="Boolean" locid="P:J#Sys.Net.WebRequestExecutor.timedOut"></value>
  4509. if (arguments.length !== 0) throw Error.parameterCount();
  4510. throw Error.notImplemented();
  4511. }
  4512. function Sys$Net$WebRequestExecutor$get_aborted() {
  4513. /// <value type="Boolean" locid="P:J#Sys.Net.WebRequestExecutor.aborted"></value>
  4514. if (arguments.length !== 0) throw Error.parameterCount();
  4515. throw Error.notImplemented();
  4516. }
  4517. function Sys$Net$WebRequestExecutor$get_responseData() {
  4518. /// <value type="String" locid="P:J#Sys.Net.WebRequestExecutor.responseData"></value>
  4519. if (arguments.length !== 0) throw Error.parameterCount();
  4520. throw Error.notImplemented();
  4521. }
  4522. function Sys$Net$WebRequestExecutor$get_statusCode() {
  4523. /// <value type="Number" locid="P:J#Sys.Net.WebRequestExecutor.statusCode"></value>
  4524. if (arguments.length !== 0) throw Error.parameterCount();
  4525. throw Error.notImplemented();
  4526. }
  4527. function Sys$Net$WebRequestExecutor$get_statusText() {
  4528. /// <value type="String" locid="P:J#Sys.Net.WebRequestExecutor.statusText"></value>
  4529. if (arguments.length !== 0) throw Error.parameterCount();
  4530. throw Error.notImplemented();
  4531. }
  4532. function Sys$Net$WebRequestExecutor$get_xml() {
  4533. /// <value locid="P:J#Sys.Net.WebRequestExecutor.xml"></value>
  4534. if (arguments.length !== 0) throw Error.parameterCount();
  4535. throw Error.notImplemented();
  4536. }
  4537. function Sys$Net$WebRequestExecutor$get_object() {
  4538. /// <value locid="P:J#Sys.Net.WebRequestExecutor.object"></value>
  4539. if (arguments.length !== 0) throw Error.parameterCount();
  4540. if (!this._resultObject) {
  4541. this._resultObject = Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData());
  4542. }
  4543. return this._resultObject;
  4544. }
  4545. function Sys$Net$WebRequestExecutor$executeRequest() {
  4546. /// <summary locid="M:J#Sys.Net.WebRequestExecutor.executeRequest" />
  4547. if (arguments.length !== 0) throw Error.parameterCount();
  4548. throw Error.notImplemented();
  4549. }
  4550. function Sys$Net$WebRequestExecutor$abort() {
  4551. /// <summary locid="M:J#Sys.Net.WebRequestExecutor.abort" />
  4552. if (arguments.length !== 0) throw Error.parameterCount();
  4553. throw Error.notImplemented();
  4554. }
  4555. function Sys$Net$WebRequestExecutor$getResponseHeader(header) {
  4556. /// <summary locid="M:J#Sys.Net.WebRequestExecutor.getResponseHeader" />
  4557. /// <param name="header" type="String"></param>
  4558. var e = Function._validateParams(arguments, [
  4559. {name: "header", type: String}
  4560. ]);
  4561. if (e) throw e;
  4562. throw Error.notImplemented();
  4563. }
  4564. function Sys$Net$WebRequestExecutor$getAllResponseHeaders() {
  4565. /// <summary locid="M:J#Sys.Net.WebRequestExecutor.getAllResponseHeaders" />
  4566. if (arguments.length !== 0) throw Error.parameterCount();
  4567. throw Error.notImplemented();
  4568. }
  4569. Sys.Net.WebRequestExecutor.prototype = {
  4570. get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest,
  4571. _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest,
  4572. get_started: Sys$Net$WebRequestExecutor$get_started,
  4573. get_responseAvailable: Sys$Net$WebRequestExecutor$get_responseAvailable,
  4574. get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut,
  4575. get_aborted: Sys$Net$WebRequestExecutor$get_aborted,
  4576. get_responseData: Sys$Net$WebRequestExecutor$get_responseData,
  4577. get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode,
  4578. get_statusText: Sys$Net$WebRequestExecutor$get_statusText,
  4579. get_xml: Sys$Net$WebRequestExecutor$get_xml,
  4580. get_object: Sys$Net$WebRequestExecutor$get_object,
  4581. executeRequest: Sys$Net$WebRequestExecutor$executeRequest,
  4582. abort: Sys$Net$WebRequestExecutor$abort,
  4583. getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader,
  4584. getAllResponseHeaders: Sys$Net$WebRequestExecutor$getAllResponseHeaders
  4585. }
  4586. Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor');
  4587. Sys.Net.XMLDOM = function Sys$Net$XMLDOM(markup) {
  4588. /// <summary locid="M:J#Sys.Net.XMLDOM.#ctor" />
  4589. /// <param name="markup" type="String"></param>
  4590. var e = Function._validateParams(arguments, [
  4591. {name: "markup", type: String}
  4592. ]);
  4593. if (e) throw e;
  4594. if (!window.DOMParser) {
  4595. var progIDs = [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' ];
  4596. for (var i = 0, l = progIDs.length; i < l; i++) {
  4597. try {
  4598. var xmlDOM = new ActiveXObject(progIDs[i]);
  4599. xmlDOM.async = false;
  4600. xmlDOM.loadXML(markup);
  4601. xmlDOM.setProperty('SelectionLanguage', 'XPath');
  4602. return xmlDOM;
  4603. }
  4604. catch (ex) {
  4605. }
  4606. }
  4607. }
  4608. else {
  4609. try {
  4610. var domParser = new window.DOMParser();
  4611. return domParser.parseFromString(markup, 'text/xml');
  4612. }
  4613. catch (ex) {
  4614. }
  4615. }
  4616. return null;
  4617. }
  4618. Sys.Net.XMLHttpExecutor = function Sys$Net$XMLHttpExecutor() {
  4619. /// <summary locid="M:J#Sys.Net.XMLHttpExecutor.#ctor" />
  4620. if (arguments.length !== 0) throw Error.parameterCount();
  4621. Sys.Net.XMLHttpExecutor.initializeBase(this);
  4622. var _this = this;
  4623. this._xmlHttpRequest = null;
  4624. this._webRequest = null;
  4625. this._responseAvailable = false;
  4626. this._timedOut = false;
  4627. this._timer = null;
  4628. this._aborted = false;
  4629. this._started = false;
  4630. this._onReadyStateChange = (function () {
  4631. if (_this._xmlHttpRequest.readyState === 4 ) {
  4632. try {
  4633. if (typeof(_this._xmlHttpRequest.status) === "undefined") {
  4634. return;
  4635. }
  4636. }
  4637. catch(ex) {
  4638. return;
  4639. }
  4640. _this._clearTimer();
  4641. _this._responseAvailable = true;
  4642. try {
  4643. _this._webRequest.completed(Sys.EventArgs.Empty);
  4644. }
  4645. finally {
  4646. if (_this._xmlHttpRequest != null) {
  4647. _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
  4648. _this._xmlHttpRequest = null;
  4649. }
  4650. }
  4651. }
  4652. });
  4653. this._clearTimer = (function() {
  4654. if (_this._timer != null) {
  4655. window.clearTimeout(_this._timer);
  4656. _this._timer = null;
  4657. }
  4658. });
  4659. this._onTimeout = (function() {
  4660. if (!_this._responseAvailable) {
  4661. _this._clearTimer();
  4662. _this._timedOut = true;
  4663. _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
  4664. _this._xmlHttpRequest.abort();
  4665. _this._webRequest.completed(Sys.EventArgs.Empty);
  4666. _this._xmlHttpRequest = null;
  4667. }
  4668. });
  4669. }
  4670. function Sys$Net$XMLHttpExecutor$get_timedOut() {
  4671. /// <value type="Boolean" locid="P:J#Sys.Net.XMLHttpExecutor.timedOut"></value>
  4672. if (arguments.length !== 0) throw Error.parameterCount();
  4673. return this._timedOut;
  4674. }
  4675. function Sys$Net$XMLHttpExecutor$get_started() {
  4676. /// <value type="Boolean" locid="P:J#Sys.Net.XMLHttpExecutor.started"></value>
  4677. if (arguments.length !== 0) throw Error.parameterCount();
  4678. return this._started;
  4679. }
  4680. function Sys$Net$XMLHttpExecutor$get_responseAvailable() {
  4681. /// <value type="Boolean" locid="P:J#Sys.Net.XMLHttpExecutor.responseAvailable"></value>
  4682. if (arguments.length !== 0) throw Error.parameterCount();
  4683. return this._responseAvailable;
  4684. }
  4685. function Sys$Net$XMLHttpExecutor$get_aborted() {
  4686. /// <value type="Boolean" locid="P:J#Sys.Net.XMLHttpExecutor.aborted"></value>
  4687. if (arguments.length !== 0) throw Error.parameterCount();
  4688. return this._aborted;
  4689. }
  4690. function Sys$Net$XMLHttpExecutor$executeRequest() {
  4691. /// <summary locid="M:J#Sys.Net.XMLHttpExecutor.executeRequest" />
  4692. if (arguments.length !== 0) throw Error.parameterCount();
  4693. this._webRequest = this.get_webRequest();
  4694. if (this._started) {
  4695. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, 'executeRequest'));
  4696. }
  4697. if (this._webRequest === null) {
  4698. throw Error.invalidOperation(Sys.Res.nullWebRequest);
  4699. }
  4700. var body = this._webRequest.get_body();
  4701. var headers = this._webRequest.get_headers();
  4702. this._xmlHttpRequest = new XMLHttpRequest();
  4703. this._xmlHttpRequest.onreadystatechange = this._onReadyStateChange;
  4704. var verb = this._webRequest.get_httpVerb();
  4705. this._xmlHttpRequest.open(verb, this._webRequest.getResolvedUrl(), true );
  4706. if (headers) {
  4707. for (var header in headers) {
  4708. var val = headers[header];
  4709. if (typeof(val) !== "function")
  4710. this._xmlHttpRequest.setRequestHeader(header, val);
  4711. }
  4712. }
  4713. if (verb.toLowerCase() === "post") {
  4714. if ((headers === null) || !headers['Content-Type']) {
  4715. this._xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8');
  4716. }
  4717. if (!body) {
  4718. body = "";
  4719. }
  4720. }
  4721. var timeout = this._webRequest.get_timeout();
  4722. if (timeout > 0) {
  4723. this._timer = window.setTimeout(Function.createDelegate(this, this._onTimeout), timeout);
  4724. }
  4725. this._xmlHttpRequest.send(body);
  4726. this._started = true;
  4727. }
  4728. function Sys$Net$XMLHttpExecutor$getResponseHeader(header) {
  4729. /// <summary locid="M:J#Sys.Net.XMLHttpExecutor.getResponseHeader" />
  4730. /// <param name="header" type="String"></param>
  4731. /// <returns type="String"></returns>
  4732. var e = Function._validateParams(arguments, [
  4733. {name: "header", type: String}
  4734. ]);
  4735. if (e) throw e;
  4736. if (!this._responseAvailable) {
  4737. throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getResponseHeader'));
  4738. }
  4739. if (!this._xmlHttpRequest) {
  4740. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getResponseHeader'));
  4741. }
  4742. var result;
  4743. try {
  4744. result = this._xmlHttpRequest.getResponseHeader(header);
  4745. } catch (e) {
  4746. }
  4747. if (!result) result = "";
  4748. return result;
  4749. }
  4750. function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() {
  4751. /// <summary locid="M:J#Sys.Net.XMLHttpExecutor.getAllResponseHeaders" />
  4752. /// <returns type="String"></returns>
  4753. if (arguments.length !== 0) throw Error.parameterCount();
  4754. if (!this._responseAvailable) {
  4755. throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'getAllResponseHeaders'));
  4756. }
  4757. if (!this._xmlHttpRequest) {
  4758. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'getAllResponseHeaders'));
  4759. }
  4760. return this._xmlHttpRequest.getAllResponseHeaders();
  4761. }
  4762. function Sys$Net$XMLHttpExecutor$get_responseData() {
  4763. /// <value type="String" locid="P:J#Sys.Net.XMLHttpExecutor.responseData"></value>
  4764. if (arguments.length !== 0) throw Error.parameterCount();
  4765. if (!this._responseAvailable) {
  4766. throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_responseData'));
  4767. }
  4768. if (!this._xmlHttpRequest) {
  4769. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_responseData'));
  4770. }
  4771. return this._xmlHttpRequest.responseText;
  4772. }
  4773. function Sys$Net$XMLHttpExecutor$get_statusCode() {
  4774. /// <value type="Number" locid="P:J#Sys.Net.XMLHttpExecutor.statusCode"></value>
  4775. if (arguments.length !== 0) throw Error.parameterCount();
  4776. if (!this._responseAvailable) {
  4777. throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusCode'));
  4778. }
  4779. if (!this._xmlHttpRequest) {
  4780. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusCode'));
  4781. }
  4782. var result = 0;
  4783. try {
  4784. result = this._xmlHttpRequest.status;
  4785. }
  4786. catch(ex) {
  4787. }
  4788. return result;
  4789. }
  4790. function Sys$Net$XMLHttpExecutor$get_statusText() {
  4791. /// <value type="String" locid="P:J#Sys.Net.XMLHttpExecutor.statusText"></value>
  4792. if (arguments.length !== 0) throw Error.parameterCount();
  4793. if (!this._responseAvailable) {
  4794. throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_statusText'));
  4795. }
  4796. if (!this._xmlHttpRequest) {
  4797. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_statusText'));
  4798. }
  4799. return this._xmlHttpRequest.statusText;
  4800. }
  4801. function Sys$Net$XMLHttpExecutor$get_xml() {
  4802. /// <value locid="P:J#Sys.Net.XMLHttpExecutor.xml"></value>
  4803. if (arguments.length !== 0) throw Error.parameterCount();
  4804. if (!this._responseAvailable) {
  4805. throw Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, 'get_xml'));
  4806. }
  4807. if (!this._xmlHttpRequest) {
  4808. throw Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, 'get_xml'));
  4809. }
  4810. var xml = this._xmlHttpRequest.responseXML;
  4811. if (!xml || !xml.documentElement) {
  4812. xml = Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);
  4813. if (!xml || !xml.documentElement)
  4814. return null;
  4815. }
  4816. else if (navigator.userAgent.indexOf('MSIE') !== -1) {
  4817. xml.setProperty('SelectionLanguage', 'XPath');
  4818. }
  4819. if (xml.documentElement.namespaceURI === "http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
  4820. xml.documentElement.tagName === "parsererror") {
  4821. return null;
  4822. }
  4823. if (xml.documentElement.firstChild && xml.documentElement.firstChild.tagName === "parsererror") {
  4824. return null;
  4825. }
  4826. return xml;
  4827. }
  4828. function Sys$Net$XMLHttpExecutor$abort() {
  4829. /// <summary locid="M:J#Sys.Net.XMLHttpExecutor.abort" />
  4830. if (arguments.length !== 0) throw Error.parameterCount();
  4831. if (!this._started) {
  4832. throw Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
  4833. }
  4834. if (this._aborted || this._responseAvailable || this._timedOut)
  4835. return;
  4836. this._aborted = true;
  4837. this._clearTimer();
  4838. if (this._xmlHttpRequest && !this._responseAvailable) {
  4839. this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
  4840. this._xmlHttpRequest.abort();
  4841. this._xmlHttpRequest = null;
  4842. this._webRequest.completed(Sys.EventArgs.Empty);
  4843. }
  4844. }
  4845. Sys.Net.XMLHttpExecutor.prototype = {
  4846. get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut,
  4847. get_started: Sys$Net$XMLHttpExecutor$get_started,
  4848. get_responseAvailable: Sys$Net$XMLHttpExecutor$get_responseAvailable,
  4849. get_aborted: Sys$Net$XMLHttpExecutor$get_aborted,
  4850. executeRequest: Sys$Net$XMLHttpExecutor$executeRequest,
  4851. getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader,
  4852. getAllResponseHeaders: Sys$Net$XMLHttpExecutor$getAllResponseHeaders,
  4853. get_responseData: Sys$Net$XMLHttpExecutor$get_responseData,
  4854. get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode,
  4855. get_statusText: Sys$Net$XMLHttpExecutor$get_statusText,
  4856. get_xml: Sys$Net$XMLHttpExecutor$get_xml,
  4857. abort: Sys$Net$XMLHttpExecutor$abort
  4858. }
  4859. Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', Sys.Net.WebRequestExecutor);
  4860. Sys.Net._WebRequestManager = function Sys$Net$_WebRequestManager() {
  4861. /// <summary locid="P:J#Sys.Net.WebRequestManager.#ctor" />
  4862. if (arguments.length !== 0) throw Error.parameterCount();
  4863. this._defaultTimeout = 0;
  4864. this._defaultExecutorType = "Sys.Net.XMLHttpExecutor";
  4865. }
  4866. function Sys$Net$_WebRequestManager$add_invokingRequest(handler) {
  4867. /// <summary locid="E:J#Sys.Net.WebRequestManager.invokingRequest" />
  4868. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  4869. if (e) throw e;
  4870. this._get_eventHandlerList().addHandler("invokingRequest", handler);
  4871. }
  4872. function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) {
  4873. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  4874. if (e) throw e;
  4875. this._get_eventHandlerList().removeHandler("invokingRequest", handler);
  4876. }
  4877. function Sys$Net$_WebRequestManager$add_completedRequest(handler) {
  4878. /// <summary locid="E:J#Sys.Net.WebRequestManager.completedRequest" />
  4879. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  4880. if (e) throw e;
  4881. this._get_eventHandlerList().addHandler("completedRequest", handler);
  4882. }
  4883. function Sys$Net$_WebRequestManager$remove_completedRequest(handler) {
  4884. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  4885. if (e) throw e;
  4886. this._get_eventHandlerList().removeHandler("completedRequest", handler);
  4887. }
  4888. function Sys$Net$_WebRequestManager$_get_eventHandlerList() {
  4889. if (!this._events) {
  4890. this._events = new Sys.EventHandlerList();
  4891. }
  4892. return this._events;
  4893. }
  4894. function Sys$Net$_WebRequestManager$get_defaultTimeout() {
  4895. /// <value type="Number" locid="P:J#Sys.Net.WebRequestManager.defaultTimeout"></value>
  4896. if (arguments.length !== 0) throw Error.parameterCount();
  4897. return this._defaultTimeout;
  4898. }
  4899. function Sys$Net$_WebRequestManager$set_defaultTimeout(value) {
  4900. var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
  4901. if (e) throw e;
  4902. if (value < 0) {
  4903. throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout);
  4904. }
  4905. this._defaultTimeout = value;
  4906. }
  4907. function Sys$Net$_WebRequestManager$get_defaultExecutorType() {
  4908. /// <value type="String" locid="P:J#Sys.Net.WebRequestManager.defaultExecutorType"></value>
  4909. if (arguments.length !== 0) throw Error.parameterCount();
  4910. return this._defaultExecutorType;
  4911. }
  4912. function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) {
  4913. var e = Function._validateParams(arguments, [{name: "value", type: String}]);
  4914. if (e) throw e;
  4915. this._defaultExecutorType = value;
  4916. }
  4917. function Sys$Net$_WebRequestManager$executeRequest(webRequest) {
  4918. /// <summary locid="M:J#Sys.Net.WebRequestManager.executeRequest" />
  4919. /// <param name="webRequest" type="Sys.Net.WebRequest"></param>
  4920. var e = Function._validateParams(arguments, [
  4921. {name: "webRequest", type: Sys.Net.WebRequest}
  4922. ]);
  4923. if (e) throw e;
  4924. var executor = webRequest.get_executor();
  4925. if (!executor) {
  4926. var failed = false;
  4927. try {
  4928. var executorType = eval(this._defaultExecutorType);
  4929. executor = new executorType();
  4930. } catch (e) {
  4931. failed = true;
  4932. }
  4933. if (failed || !Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
  4934. throw Error.argument("defaultExecutorType", String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
  4935. }
  4936. webRequest.set_executor(executor);
  4937. }
  4938. if (executor.get_aborted()) {
  4939. return;
  4940. }
  4941. var evArgs = new Sys.Net.NetworkRequestEventArgs(webRequest);
  4942. var handler = this._get_eventHandlerList().getHandler("invokingRequest");
  4943. if (handler) {
  4944. handler(this, evArgs);
  4945. }
  4946. if (!evArgs.get_cancel()) {
  4947. executor.executeRequest();
  4948. }
  4949. }
  4950. Sys.Net._WebRequestManager.prototype = {
  4951. add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest,
  4952. remove_invokingRequest: Sys$Net$_WebRequestManager$remove_invokingRequest,
  4953. add_completedRequest: Sys$Net$_WebRequestManager$add_completedRequest,
  4954. remove_completedRequest: Sys$Net$_WebRequestManager$remove_completedRequest,
  4955. _get_eventHandlerList: Sys$Net$_WebRequestManager$_get_eventHandlerList,
  4956. get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout,
  4957. set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout,
  4958. get_defaultExecutorType: Sys$Net$_WebRequestManager$get_defaultExecutorType,
  4959. set_defaultExecutorType: Sys$Net$_WebRequestManager$set_defaultExecutorType,
  4960. executeRequest: Sys$Net$_WebRequestManager$executeRequest
  4961. }
  4962. Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager');
  4963. Sys.Net.WebRequestManager = new Sys.Net._WebRequestManager();
  4964. Sys.Net.NetworkRequestEventArgs = function Sys$Net$NetworkRequestEventArgs(webRequest) {
  4965. /// <summary locid="M:J#Sys.Net.NetworkRequestEventArgs.#ctor" />
  4966. /// <param name="webRequest" type="Sys.Net.WebRequest"></param>
  4967. var e = Function._validateParams(arguments, [
  4968. {name: "webRequest", type: Sys.Net.WebRequest}
  4969. ]);
  4970. if (e) throw e;
  4971. Sys.Net.NetworkRequestEventArgs.initializeBase(this);
  4972. this._webRequest = webRequest;
  4973. }
  4974. function Sys$Net$NetworkRequestEventArgs$get_webRequest() {
  4975. /// <value type="Sys.Net.WebRequest" locid="P:J#Sys.Net.NetworkRequestEventArgs.webRequest"></value>
  4976. if (arguments.length !== 0) throw Error.parameterCount();
  4977. return this._webRequest;
  4978. }
  4979. Sys.Net.NetworkRequestEventArgs.prototype = {
  4980. get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest
  4981. }
  4982. Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEventArgs', Sys.CancelEventArgs);
  4983. Sys.Net.WebRequest = function Sys$Net$WebRequest() {
  4984. /// <summary locid="M:J#Sys.Net.WebRequest.#ctor" />
  4985. if (arguments.length !== 0) throw Error.parameterCount();
  4986. this._url = "";
  4987. this._headers = { };
  4988. this._body = null;
  4989. this._userContext = null;
  4990. this._httpVerb = null;
  4991. this._executor = null;
  4992. this._invokeCalled = false;
  4993. this._timeout = 0;
  4994. }
  4995. function Sys$Net$WebRequest$add_completed(handler) {
  4996. /// <summary locid="E:J#Sys.Net.WebRequest.completed" />
  4997. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  4998. if (e) throw e;
  4999. this._get_eventHandlerList().addHandler("completed", handler);
  5000. }
  5001. function Sys$Net$WebRequest$remove_completed(handler) {
  5002. var e = Function._validateParams(arguments, [{name: "handler", type: Function}]);
  5003. if (e) throw e;
  5004. this._get_eventHandlerList().removeHandler("completed", handler);
  5005. }
  5006. function Sys$Net$WebRequest$completed(eventArgs) {
  5007. /// <summary locid="M:J#Sys.Net.WebRequest.completed" />
  5008. /// <param name="eventArgs" type="Sys.EventArgs"></param>
  5009. var e = Function._validateParams(arguments, [
  5010. {name: "eventArgs", type: Sys.EventArgs}
  5011. ]);
  5012. if (e) throw e;
  5013. var handler = Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRequest");
  5014. if (handler) {
  5015. handler(this._executor, eventArgs);
  5016. }
  5017. handler = this._get_eventHandlerList().getHandler("completed");
  5018. if (handler) {
  5019. handler(this._executor, eventArgs);
  5020. }
  5021. }
  5022. function Sys$Net$WebRequest$_get_eventHandlerList() {
  5023. if (!this._events) {
  5024. this._events = new Sys.EventHandlerList();
  5025. }
  5026. return this._events;
  5027. }
  5028. function Sys$Net$WebRequest$get_url() {
  5029. /// <value type="String" locid="P:J#Sys.Net.WebRequest.url"></value>
  5030. if (arguments.length !== 0) throw Error.parameterCount();
  5031. return this._url;
  5032. }
  5033. function Sys$Net$WebRequest$set_url(value) {
  5034. var e = Function._validateParams(arguments, [{name: "value", type: String}]);
  5035. if (e) throw e;
  5036. this._url = value;
  5037. }
  5038. function Sys$Net$WebRequest$get_headers() {
  5039. /// <value locid="P:J#Sys.Net.WebRequest.headers"></value>
  5040. if (arguments.length !== 0) throw Error.parameterCount();
  5041. return this._headers;
  5042. }
  5043. function Sys$Net$WebRequest$get_httpVerb() {
  5044. /// <value type="String" locid="P:J#Sys.Net.WebRequest.httpVerb"></value>
  5045. if (arguments.length !== 0) throw Error.parameterCount();
  5046. if (this._httpVerb === null) {
  5047. if (this._body === null) {
  5048. return "GET";
  5049. }
  5050. return "POST";
  5051. }
  5052. return this._httpVerb;
  5053. }
  5054. function Sys$Net$WebRequest$set_httpVerb(value) {
  5055. var e = Function._validateParams(arguments, [{name: "value", type: String}]);
  5056. if (e) throw e;
  5057. if (value.length === 0) {
  5058. throw Error.argument('value', Sys.Res.invalidHttpVerb);
  5059. }
  5060. this._httpVerb = value;
  5061. }
  5062. function Sys$Net$WebRequest$get_body() {
  5063. /// <value mayBeNull="true" locid="P:J#Sys.Net.WebRequest.body"></value>
  5064. if (arguments.length !== 0) throw Error.parameterCount();
  5065. return this._body;
  5066. }
  5067. function Sys$Net$WebRequest$set_body(value) {
  5068. var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
  5069. if (e) throw e;
  5070. this._body = value;
  5071. }
  5072. function Sys$Net$WebRequest$get_userContext() {
  5073. /// <value mayBeNull="true" locid="P:J#Sys.Net.WebRequest.userContext"></value>
  5074. if (arguments.length !== 0) throw Error.parameterCount();
  5075. return this._userContext;
  5076. }
  5077. function Sys$Net$WebRequest$set_userContext(value) {
  5078. var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
  5079. if (e) throw e;
  5080. this._userContext = value;
  5081. }
  5082. function Sys$Net$WebRequest$get_executor() {
  5083. /// <value type="Sys.Net.WebRequestExecutor" locid="P:J#Sys.Net.WebRequest.executor"></value>
  5084. if (arguments.length !== 0) throw Error.parameterCount();
  5085. return this._executor;
  5086. }
  5087. function Sys$Net$WebRequest$set_executor(value) {
  5088. var e = Function._validateParams(arguments, [{name: "value", type: Sys.Net.WebRequestExecutor}]);
  5089. if (e) throw e;
  5090. if (this._executor !== null && this._executor.get_started()) {
  5091. throw Error.invalidOperation(Sys.Res.setExecutorAfterActive);
  5092. }
  5093. this._executor = value;
  5094. this._executor._set_webRequest(this);
  5095. }
  5096. function Sys$Net$WebRequest$get_timeout() {
  5097. /// <value type="Number" locid="P:J#Sys.Net.WebRequest.timeout"></value>
  5098. if (arguments.length !== 0) throw Error.parameterCount();
  5099. if (this._timeout === 0) {
  5100. return Sys.Net.WebRequestManager.get_defaultTimeout();
  5101. }
  5102. return this._timeout;
  5103. }
  5104. function Sys$Net$WebRequest$set_timeout(value) {
  5105. var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
  5106. if (e) throw e;
  5107. if (value < 0) {
  5108. throw Error.argumentOutOfRange("value", value, Sys.Res.invalidTimeout);
  5109. }
  5110. this._timeout = value;
  5111. }
  5112. function Sys$Net$WebRequest$getResolvedUrl() {
  5113. /// <summary locid="M:J#Sys.Net.WebRequest.getResolvedUrl" />
  5114. /// <returns type="String"></returns>
  5115. if (arguments.length !== 0) throw Error.parameterCount();
  5116. return Sys.Net.WebRequest._resolveUrl(this._url);
  5117. }
  5118. function Sys$Net$WebRequest$invoke() {
  5119. /// <summary locid="M:J#Sys.Net.WebRequest.invoke" />
  5120. if (arguments.length !== 0) throw Error.parameterCount();
  5121. if (this._invokeCalled) {
  5122. throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
  5123. }
  5124. Sys.Net.WebRequestManager.executeRequest(this);
  5125. this._invokeCalled = true;
  5126. }
  5127. Sys.Net.WebRequest.prototype = {
  5128. add_completed: Sys$Net$WebRequest$add_completed,
  5129. remove_completed: Sys$Net$WebRequest$remove_completed,
  5130. completed: Sys$Net$WebRequest$completed,
  5131. _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList,
  5132. get_url: Sys$Net$WebRequest$get_url,
  5133. set_url: Sys$Net$WebRequest$set_url,
  5134. get_headers: Sys$Net$WebRequest$get_headers,
  5135. get_httpVerb: Sys$Net$WebRequest$get_httpVerb,
  5136. set_httpVerb: Sys$Net$WebRequest$set_httpVerb,
  5137. get_body: Sys$Net$WebRequest$get_body,
  5138. set_body: Sys$Net$WebRequest$set_body,
  5139. get_userContext: Sys$Net$WebRequest$get_userContext,
  5140. set_userContext: Sys$Net$WebRequest$set_userContext,
  5141. get_executor: Sys$Net$WebRequest$get_executor,
  5142. set_executor: Sys$Net$WebRequest$set_executor,
  5143. get_timeout: Sys$Net$WebRequest$get_timeout,
  5144. set_timeout: Sys$Net$WebRequest$set_timeout,
  5145. getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl,
  5146. invoke: Sys$Net$WebRequest$invoke
  5147. }
  5148. Sys.Net.WebRequest._resolveUrl = function Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
  5149. if (url && url.indexOf('://') !== -1) {
  5150. return url;
  5151. }
  5152. if (!baseUrl || baseUrl.length === 0) {
  5153. var baseElement = document.getElementsByTagName('base')[0];
  5154. if (baseElement && baseElement.href && baseElement.href.length > 0) {
  5155. baseUrl = baseElement.href;
  5156. }
  5157. else {
  5158. baseUrl = document.URL;
  5159. }
  5160. }
  5161. var qsStart = baseUrl.indexOf('?');
  5162. if (qsStart !== -1) {
  5163. baseUrl = baseUrl.substr(0, qsStart);
  5164. }
  5165. qsStart = baseUrl.indexOf('#');
  5166. if (qsStart !== -1) {
  5167. baseUrl = baseUrl.substr(0, qsStart);
  5168. }
  5169. baseUrl = baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);
  5170. if (!url || url.length === 0) {
  5171. return baseUrl;
  5172. }
  5173. if (url.charAt(0) === '/') {
  5174. var slashslash = baseUrl.indexOf('://');
  5175. if (slashslash === -1) {
  5176. throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
  5177. }
  5178. var nextSlash = baseUrl.indexOf('/', slashslash + 3);
  5179. if (nextSlash === -1) {
  5180. throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
  5181. }
  5182. return baseUrl.substr(0, nextSlash) + url;
  5183. }
  5184. else {
  5185. var lastSlash = baseUrl.lastIndexOf('/');
  5186. if (lastSlash === -1) {
  5187. throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
  5188. }
  5189. return baseUrl.substr(0, lastSlash+1) + url;
  5190. }
  5191. }
  5192. Sys.Net.WebRequest._createQueryString = function Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) {
  5193. if (!encodeMethod)
  5194. encodeMethod = encodeURIComponent;
  5195. var sb = new Sys.StringBuilder();
  5196. var i = 0;
  5197. for (var arg in queryString) {
  5198. var obj = queryString[arg];
  5199. if (typeof(obj) === "function") continue;
  5200. var val = Sys.Serialization.JavaScriptSerializer.serialize(obj);
  5201. if (i !== 0) {
  5202. sb.append('&');
  5203. }
  5204. sb.append(arg);
  5205. sb.append('=');
  5206. sb.append(encodeMethod(val));
  5207. i++;
  5208. }
  5209. return sb.toString();
  5210. }
  5211. Sys.Net.WebRequest._createUrl = function Sys$Net$WebRequest$_createUrl(url, queryString) {
  5212. if (!queryString) {
  5213. return url;
  5214. }
  5215. var qs = Sys.Net.WebRequest._createQueryString(queryString);
  5216. if (qs.length > 0) {
  5217. var sep = '?';
  5218. if (url && url.indexOf('?') !== -1)
  5219. sep = '&';
  5220. return url + sep + qs;
  5221. } else {
  5222. return url;
  5223. }
  5224. }
  5225. Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest');
  5226. Sys.Net.WebServiceProxy = function Sys$Net$WebServiceProxy() {
  5227. }
  5228. function Sys$Net$WebServiceProxy$get_timeout() {
  5229. /// <value type="Number" locid="P:J#Sys.Net.WebServiceProxy.timeout"></value>
  5230. if (arguments.length !== 0) throw Error.parameterCount();
  5231. return this._timeout;
  5232. }
  5233. function Sys$Net$WebServiceProxy$set_timeout(value) {
  5234. var e = Function._validateParams(arguments, [{name: "value", type: Number}]);
  5235. if (e) throw e;
  5236. if (value < 0) { throw Error.argumentOutOfRange('value', value, Sys.Res.invalidTimeout); }
  5237. this._timeout = value;
  5238. }
  5239. function Sys$Net$WebServiceProxy$get_defaultUserContext() {
  5240. /// <value mayBeNull="true" locid="P:J#Sys.Net.WebServiceProxy.defaultUserContext"></value>
  5241. if (arguments.length !== 0) throw Error.parameterCount();
  5242. return this._userContext;
  5243. }
  5244. function Sys$Net$WebServiceProxy$set_defaultUserContext(value) {
  5245. var e = Function._validateParams(arguments, [{name: "value", mayBeNull: true}]);
  5246. if (e) throw e;
  5247. this._userContext = value;
  5248. }
  5249. function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() {
  5250. /// <value type="Function" mayBeNull="true" locid="P:J#Sys.Net.WebServiceProxy.defaultSucceededCallback"></value>
  5251. if (arguments.length !== 0) throw Error.parameterCount();
  5252. return this._succeeded;
  5253. }
  5254. function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) {
  5255. var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
  5256. if (e) throw e;
  5257. this._succeeded = value;
  5258. }
  5259. function Sys$Net$WebServiceProxy$get_defaultFailedCallback() {
  5260. /// <value type="Function" mayBeNull="true" locid="P:J#Sys.Net.WebServiceProxy.defaultFailedCallback"></value>
  5261. if (arguments.length !== 0) throw Error.parameterCount();
  5262. return this._failed;
  5263. }
  5264. function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) {
  5265. var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
  5266. if (e) throw e;
  5267. this._failed = value;
  5268. }
  5269. function Sys$Net$WebServiceProxy$get_path() {
  5270. /// <value type="String" locid="P:J#Sys.Net.WebServiceProxy.path"></value>
  5271. if (arguments.length !== 0) throw Error.parameterCount();
  5272. return this._path;
  5273. }
  5274. function Sys$Net$WebServiceProxy$set_path(value) {
  5275. var e = Function._validateParams(arguments, [{name: "value", type: String}]);
  5276. if (e) throw e;
  5277. this._path = value;
  5278. }
  5279. function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext) {
  5280. /// <summary locid="M:J#Sys.Net.WebServiceProxy._invoke" />
  5281. /// <param name="servicePath" type="String"></param>
  5282. /// <param name="methodName" type="String"></param>
  5283. /// <param name="useGet" type="Boolean"></param>
  5284. /// <param name="params"></param>
  5285. /// <param name="onSuccess" type="Function" mayBeNull="true" optional="true"></param>
  5286. /// <param name="onFailure" type="Function" mayBeNull="true" optional="true"></param>
  5287. /// <param name="userContext" mayBeNull="true" optional="true"></param>
  5288. /// <returns type="Sys.Net.WebRequest"></returns>
  5289. var e = Function._validateParams(arguments, [
  5290. {name: "servicePath", type: String},
  5291. {name: "methodName", type: String},
  5292. {name: "useGet", type: Boolean},
  5293. {name: "params"},
  5294. {name: "onSuccess", type: Function, mayBeNull: true, optional: true},
  5295. {name: "onFailure", type: Function, mayBeNull: true, optional: true},
  5296. {name: "userContext", mayBeNull: true, optional: true}
  5297. ]);
  5298. if (e) throw e;
  5299. if (onSuccess === null || typeof onSuccess === 'undefined') onSuccess = this.get_defaultSucceededCallback();
  5300. if (onFailure === null || typeof onFailure === 'undefined') onFailure = this.get_defaultFailedCallback();
  5301. if (userContext === null || typeof userContext === 'undefined') userContext = this.get_defaultUserContext();
  5302. return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, this.get_timeout());
  5303. }
  5304. Sys.Net.WebServiceProxy.prototype = {
  5305. get_timeout: Sys$Net$WebServiceProxy$get_timeout,
  5306. set_timeout: Sys$Net$WebServiceProxy$set_timeout,
  5307. get_defaultUserContext: Sys$Net$WebServiceProxy$get_defaultUserContext,
  5308. set_defaultUserContext: Sys$Net$WebServiceProxy$set_defaultUserContext,
  5309. get_defaultSucceededCallback: Sys$Net$WebServiceProxy$get_defaultSucceededCallback,
  5310. set_defaultSucceededCallback: Sys$Net$WebServiceProxy$set_defaultSucceededCallback,
  5311. get_defaultFailedCallback: Sys$Net$WebServiceProxy$get_defaultFailedCallback,
  5312. set_defaultFailedCallback: Sys$Net$WebServiceProxy$set_defaultFailedCallback,
  5313. get_path: Sys$Net$WebServiceProxy$get_path,
  5314. set_path: Sys$Net$WebServiceProxy$set_path,
  5315. _invoke: Sys$Net$WebServiceProxy$_invoke
  5316. }
  5317. Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy');
  5318. Sys.Net.WebServiceProxy.invoke = function Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, onSuccess, onFailure, userContext, timeout) {
  5319. /// <summary locid="M:J#Sys.Net.WebServiceProxy.invoke" />
  5320. /// <param name="servicePath" type="String"></param>
  5321. /// <param name="methodName" type="String"></param>
  5322. /// <param name="useGet" type="Boolean" optional="true"></param>
  5323. /// <param name="params" mayBeNull="true" optional="true"></param>
  5324. /// <param name="onSuccess" type="Function" mayBeNull="true" optional="true"></param>
  5325. /// <param name="onFailure" type="Function" mayBeNull="true" optional="true"></param>
  5326. /// <param name="userContext" mayBeNull="true" optional="true"></param>
  5327. /// <param name="timeout" type="Number" optional="true"></param>
  5328. /// <returns type="Sys.Net.WebRequest"></returns>
  5329. var e = Function._validateParams(arguments, [
  5330. {name: "servicePath", type: String},
  5331. {name: "methodName", type: String},
  5332. {name: "useGet", type: Boolean, optional: true},
  5333. {name: "params", mayBeNull: true, optional: true},
  5334. {name: "onSuccess", type: Function, mayBeNull: true, optional: true},
  5335. {name: "onFailure", type: Function, mayBeNull: true, optional: true},
  5336. {name: "userContext", mayBeNull: true, optional: true},
  5337. {name: "timeout", type: Number, optional: true}
  5338. ]);
  5339. if (e) throw e;
  5340. var request = new Sys.Net.WebRequest();
  5341. request.get_headers()['Content-Type'] = 'application/json; charset=utf-8';
  5342. if (!params) params = {};
  5343. var urlParams = params;
  5344. if (!useGet || !urlParams) urlParams = {};
  5345. request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURIComponent(methodName), urlParams));
  5346. var body = null;
  5347. if (!useGet) {
  5348. body = Sys.Serialization.JavaScriptSerializer.serialize(params);
  5349. if (body === "{}") body = "";
  5350. }
  5351. request.set_body(body);
  5352. request.add_completed(onComplete);
  5353. if (timeout && timeout > 0) request.set_timeout(timeout);
  5354. request.invoke();
  5355. function onComplete(response, eventArgs) {
  5356. if (response.get_responseAvailable()) {
  5357. var statusCode = response.get_statusCode();
  5358. var result = null;
  5359. try {
  5360. var contentType = response.getResponseHeader("Content-Type");
  5361. if (contentType.startsWith("application/json")) {
  5362. result = response.get_object();
  5363. }
  5364. else if (contentType.startsWith("text/xml")) {
  5365. result = response.get_xml();
  5366. }
  5367. else {
  5368. result = response.get_responseData();
  5369. }
  5370. } catch (ex) {
  5371. }
  5372. var error = response.getResponseHeader("jsonerror");
  5373. var errorObj = (error === "true");
  5374. if (errorObj) {
  5375. if (result) {
  5376. result = new Sys.Net.WebServiceError(false, result.Message, result.StackTrace, result.ExceptionType);
  5377. }
  5378. }
  5379. else if (contentType.startsWith("application/json")) {
  5380. if (!result || typeof(result.d) === "undefined") {
  5381. throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceInvalidJsonWrapper, methodName));
  5382. }
  5383. result = result.d;
  5384. }
  5385. if (((statusCode < 200) || (statusCode >= 300)) || errorObj) {
  5386. if (onFailure) {
  5387. if (!result || !errorObj) {
  5388. result = new Sys.Net.WebServiceError(false , String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", "");
  5389. }
  5390. result._statusCode = statusCode;
  5391. onFailure(result, userContext, methodName);
  5392. }
  5393. else {
  5394. var error;
  5395. if (result && errorObj) {
  5396. error = result.get_exceptionType() + "-- " + result.get_message();
  5397. }
  5398. else {
  5399. error = response.get_responseData();
  5400. }
  5401. throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error));
  5402. }
  5403. }
  5404. else if (onSuccess) {
  5405. onSuccess(result, userContext, methodName);
  5406. }
  5407. }
  5408. else {
  5409. var msg;
  5410. if (response.get_timedOut()) {
  5411. msg = String.format(Sys.Res.webServiceTimedOut, methodName);
  5412. }
  5413. else {
  5414. msg = String.format(Sys.Res.webServiceFailedNoMsg, methodName)
  5415. }
  5416. if (onFailure) {
  5417. onFailure(new Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), userContext, methodName);
  5418. }
  5419. else {
  5420. throw Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
  5421. }
  5422. }
  5423. }
  5424. return request;
  5425. }
  5426. Sys.Net.WebServiceProxy._createFailedError = function Sys$Net$WebServiceProxy$_createFailedError(methodName, errorMessage) {
  5427. var displayMessage = "Sys.Net.WebServiceFailedException: " + errorMessage;
  5428. var e = Error.create(displayMessage, { 'name': 'Sys.Net.WebServiceFailedException', 'methodName': methodName });
  5429. e.popStackFrame();
  5430. return e;
  5431. }
  5432. Sys.Net.WebServiceProxy._defaultFailedCallback = function Sys$Net$WebServiceProxy$_defaultFailedCallback(err, methodName) {
  5433. var error = err.get_exceptionType() + "-- " + err.get_message();
  5434. throw Sys.Net.WebServiceProxy._createFailedError(methodName, String.format(Sys.Res.webServiceFailed, methodName, error));
  5435. }
  5436. Sys.Net.WebServiceProxy._generateTypedConstructor = function Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
  5437. return function(properties) {
  5438. if (properties) {
  5439. for (var name in properties) {
  5440. this[name] = properties[name];
  5441. }
  5442. }
  5443. this.__type = type;
  5444. }
  5445. }
  5446. Sys.Net.WebServiceError = function Sys$Net$WebServiceError(timedOut, message, stackTrace, exceptionType) {
  5447. /// <summary locid="M:J#Sys.Net.WebServiceError.#ctor" />
  5448. /// <param name="timedOut" type="Boolean"></param>
  5449. /// <param name="message" type="String" mayBeNull="true"></param>
  5450. /// <param name="stackTrace" type="String" mayBeNull="true"></param>
  5451. /// <param name="exceptionType" type="String" mayBeNull="true"></param>
  5452. var e = Function._validateParams(arguments, [
  5453. {name: "timedOut", type: Boolean},
  5454. {name: "message", type: String, mayBeNull: true},
  5455. {name: "stackTrace", type: String, mayBeNull: true},
  5456. {name: "exceptionType", type: String, mayBeNull: true}
  5457. ]);
  5458. if (e) throw e;
  5459. this._timedOut = timedOut;
  5460. this._message = message;
  5461. this._stackTrace = stackTrace;
  5462. this._exceptionType = exceptionType;
  5463. this._statusCode = -1;
  5464. }
  5465. function Sys$Net$WebServiceError$get_timedOut() {
  5466. /// <value type="Boolean" locid="P:J#Sys.Net.WebServiceError.timedOut"></value>
  5467. if (arguments.length !== 0) throw Error.parameterCount();
  5468. return this._timedOut;
  5469. }
  5470. function Sys$Net$WebServiceError$get_statusCode() {
  5471. /// <value type="Number" locid="P:J#Sys.Net.WebServiceError.statusCode"></value>
  5472. if (arguments.length !== 0) throw Error.parameterCount();
  5473. return this._statusCode;
  5474. }
  5475. function Sys$Net$WebServiceError$get_message() {
  5476. /// <value type="String" locid="P:J#Sys.Net.WebServiceError.message"></value>
  5477. if (arguments.length !== 0) throw Error.parameterCount();
  5478. return this._message;
  5479. }
  5480. function Sys$Net$WebServiceError$get_stackTrace() {
  5481. /// <value type="String" locid="P:J#Sys.Net.WebServiceError.stackTrace"></value>
  5482. if (arguments.length !== 0) throw Error.parameterCount();
  5483. return this._stackTrace;
  5484. }
  5485. function Sys$Net$WebServiceError$get_exceptionType() {
  5486. /// <value type="String" locid="P:J#Sys.Net.WebServiceError.exceptionType"></value>
  5487. if (arguments.length !== 0) throw Error.parameterCount();
  5488. return this._exceptionType;
  5489. }
  5490. Sys.Net.WebServiceError.prototype = {
  5491. get_timedOut: Sys$Net$WebServiceError$get_timedOut,
  5492. get_statusCode: Sys$Net$WebServiceError$get_statusCode,
  5493. get_message: Sys$Net$WebServiceError$get_message,
  5494. get_stackTrace: Sys$Net$WebServiceError$get_stackTrace,
  5495. get_exceptionType: Sys$Net$WebServiceError$get_exceptionType
  5496. }
  5497. Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError');
  5498. Type.registerNamespace('Sys.Services');
  5499. Sys.Services._ProfileService = function Sys$Services$_ProfileService() {
  5500. /// <summary locid="M:J#Sys.Net.ProfileService.#ctor" />
  5501. if (arguments.length !== 0) throw Error.parameterCount();
  5502. Sys.Services._ProfileService.initializeBase(this);
  5503. this.properties = {};
  5504. }
  5505. Sys.Services._ProfileService.DefaultWebServicePath = '';
  5506. function Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() {
  5507. /// <value type="Function" mayBeNull="true" locid="P:J#Sys.Services.ProfileService.defaultLoadCompletedCallback"></value>
  5508. if (arguments.length !== 0) throw Error.parameterCount();
  5509. return this._defaultLoadCompletedCallback;
  5510. }
  5511. function Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) {
  5512. var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
  5513. if (e) throw e;
  5514. this._defaultLoadCompletedCallback = value;
  5515. }
  5516. function Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() {
  5517. /// <value type="Function" mayBeNull="true" locid="P:J#Sys.Services.ProfileService.defaultSaveCompletedCallback"></value>
  5518. if (arguments.length !== 0) throw Error.parameterCount();
  5519. return this._defaultSaveCompletedCallback;
  5520. }
  5521. function Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) {
  5522. var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
  5523. if (e) throw e;
  5524. this._defaultSaveCompletedCallback = value;
  5525. }
  5526. function Sys$Services$_ProfileService$get_path() {
  5527. /// <value type="String" mayBeNull="true" locid="P:J#Sys.Services.ProfileService.path"></value>
  5528. if (arguments.length !== 0) throw Error.parameterCount();
  5529. return this._path || '';
  5530. }
  5531. function Sys$Services$_ProfileService$load(propertyNames, loadCompletedCallback, failedCallback, userContext) {
  5532. /// <summary locid="M:J#Sys.Services.ProfileService.load" />
  5533. /// <param name="propertyNames" type="Array" elementType="String" optional="true" elementMayBeNull="false" mayBeNull="true"></param>
  5534. /// <param name="loadCompletedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5535. /// <param name="failedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5536. /// <param name="userContext" optional="true" mayBeNull="true"></param>
  5537. var e = Function._validateParams(arguments, [
  5538. {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String},
  5539. {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true},
  5540. {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
  5541. {name: "userContext", mayBeNull: true, optional: true}
  5542. ]);
  5543. if (e) throw e;
  5544. var parameters;
  5545. var methodName;
  5546. if (!propertyNames) {
  5547. methodName = "GetAllPropertiesForCurrentUser";
  5548. parameters = { authenticatedUserOnly: false };
  5549. }
  5550. else {
  5551. methodName = "GetPropertiesForCurrentUser";
  5552. parameters = { properties: this._clonePropertyNames(propertyNames), authenticatedUserOnly: false };
  5553. }
  5554. this._invoke(this._get_path(),
  5555. methodName,
  5556. false,
  5557. parameters,
  5558. Function.createDelegate(this, this._onLoadComplete),
  5559. Function.createDelegate(this, this._onLoadFailed),
  5560. [loadCompletedCallback, failedCallback, userContext]);
  5561. }
  5562. function Sys$Services$_ProfileService$save(propertyNames, saveCompletedCallback, failedCallback, userContext) {
  5563. /// <summary locid="M:J#Sys.Services.ProfileService.save" />
  5564. /// <param name="propertyNames" type="Array" elementType="String" optional="true" elementMayBeNull="false" mayBeNull="true"></param>
  5565. /// <param name="saveCompletedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5566. /// <param name="failedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5567. /// <param name="userContext" optional="true" mayBeNull="true"></param>
  5568. var e = Function._validateParams(arguments, [
  5569. {name: "propertyNames", type: Array, mayBeNull: true, optional: true, elementType: String},
  5570. {name: "saveCompletedCallback", type: Function, mayBeNull: true, optional: true},
  5571. {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
  5572. {name: "userContext", mayBeNull: true, optional: true}
  5573. ]);
  5574. if (e) throw e;
  5575. var flattenedProperties = this._flattenProperties(propertyNames, this.properties);
  5576. this._invoke(this._get_path(),
  5577. "SetPropertiesForCurrentUser",
  5578. false,
  5579. { values: flattenedProperties.value, authenticatedUserOnly: false },
  5580. Function.createDelegate(this, this._onSaveComplete),
  5581. Function.createDelegate(this, this._onSaveFailed),
  5582. [saveCompletedCallback, failedCallback, userContext, flattenedProperties.count]);
  5583. }
  5584. function Sys$Services$_ProfileService$_clonePropertyNames(arr) {
  5585. var nodups = [];
  5586. var seen = {};
  5587. for (var i=0; i < arr.length; i++) {
  5588. var prop = arr[i];
  5589. if(!seen[prop]) { Array.add(nodups, prop); seen[prop]=true; };
  5590. }
  5591. return nodups;
  5592. }
  5593. function Sys$Services$_ProfileService$_flattenProperties(propertyNames, properties, groupName) {
  5594. var flattenedProperties = {};
  5595. var val;
  5596. var key;
  5597. var count = 0;
  5598. if (propertyNames && propertyNames.length === 0) {
  5599. return { value: flattenedProperties, count: 0 };
  5600. }
  5601. for (var property in properties) {
  5602. val = properties[property];
  5603. key = groupName ? groupName + "." + property : property;
  5604. if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
  5605. var obj = this._flattenProperties(propertyNames, val, key);
  5606. var groupProperties = obj.value;
  5607. count += obj.count;
  5608. for(var subKey in groupProperties) {
  5609. var subVal = groupProperties[subKey];
  5610. flattenedProperties[subKey] = subVal;
  5611. }
  5612. }
  5613. else {
  5614. if(!propertyNames || Array.indexOf(propertyNames, key) !== -1) {
  5615. flattenedProperties[key] = val;
  5616. count++;
  5617. }
  5618. }
  5619. }
  5620. return { value: flattenedProperties, count: count };
  5621. }
  5622. function Sys$Services$_ProfileService$_get_path() {
  5623. var path = this.get_path();
  5624. if (!path.length) {
  5625. path = Sys.Services._ProfileService.DefaultWebServicePath;
  5626. }
  5627. if (!path || !path.length) {
  5628. throw Error.invalidOperation(Sys.Res.servicePathNotSet);
  5629. }
  5630. return path;
  5631. }
  5632. function Sys$Services$_ProfileService$_onLoadComplete(result, context, methodName) {
  5633. if (typeof(result) !== "object") {
  5634. throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Object"));
  5635. }
  5636. var unflattened = this._unflattenProperties(result);
  5637. for (var name in unflattened) {
  5638. this.properties[name] = unflattened[name];
  5639. }
  5640. var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback();
  5641. if (callback) {
  5642. var userContext = context[2] || this.get_defaultUserContext();
  5643. callback(result.length, userContext, "Sys.Services.ProfileService.load");
  5644. }
  5645. }
  5646. function Sys$Services$_ProfileService$_onLoadFailed(err, context, methodName) {
  5647. var callback = context[1] || this.get_defaultFailedCallback();
  5648. if (callback) {
  5649. var userContext = context[2] || this.get_defaultUserContext();
  5650. callback(err, userContext, "Sys.Services.ProfileService.load");
  5651. }
  5652. else {
  5653. Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
  5654. }
  5655. }
  5656. function Sys$Services$_ProfileService$_onSaveComplete(result, context, methodName) {
  5657. var count = context[3];
  5658. if (result !== null) {
  5659. if (result instanceof Array) {
  5660. count -= result.length;
  5661. }
  5662. else if (typeof(result) === 'number') {
  5663. count = result;
  5664. }
  5665. else {
  5666. throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array"));
  5667. }
  5668. }
  5669. var callback = context[0] || this.get_defaultSaveCompletedCallback() || this.get_defaultSucceededCallback();
  5670. if (callback) {
  5671. var userContext = context[2] || this.get_defaultUserContext();
  5672. callback(count, userContext, "Sys.Services.ProfileService.save");
  5673. }
  5674. }
  5675. function Sys$Services$_ProfileService$_onSaveFailed(err, context, methodName) {
  5676. var callback = context[1] || this.get_defaultFailedCallback();
  5677. if (callback) {
  5678. var userContext = context[2] || this.get_defaultUserContext();
  5679. callback(err, userContext, "Sys.Services.ProfileService.save");
  5680. }
  5681. else {
  5682. Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
  5683. }
  5684. }
  5685. function Sys$Services$_ProfileService$_unflattenProperties(properties) {
  5686. var unflattenedProperties = {};
  5687. var dotIndex;
  5688. var val;
  5689. var count = 0;
  5690. for (var key in properties) {
  5691. count++;
  5692. val = properties[key];
  5693. dotIndex = key.indexOf('.');
  5694. if (dotIndex !== -1) {
  5695. var groupName = key.substr(0, dotIndex);
  5696. key = key.substr(dotIndex+1);
  5697. var group = unflattenedProperties[groupName];
  5698. if (!group || !Sys.Services.ProfileGroup.isInstanceOfType(group)) {
  5699. group = new Sys.Services.ProfileGroup();
  5700. unflattenedProperties[groupName] = group;
  5701. }
  5702. group[key] = val;
  5703. }
  5704. else {
  5705. unflattenedProperties[key] = val;
  5706. }
  5707. }
  5708. properties.length = count;
  5709. return unflattenedProperties;
  5710. }
  5711. Sys.Services._ProfileService.prototype = {
  5712. _defaultLoadCompletedCallback: null,
  5713. _defaultSaveCompletedCallback: null,
  5714. _path: '',
  5715. _timeout: 0,
  5716. get_defaultLoadCompletedCallback: Sys$Services$_ProfileService$get_defaultLoadCompletedCallback,
  5717. set_defaultLoadCompletedCallback: Sys$Services$_ProfileService$set_defaultLoadCompletedCallback,
  5718. get_defaultSaveCompletedCallback: Sys$Services$_ProfileService$get_defaultSaveCompletedCallback,
  5719. set_defaultSaveCompletedCallback: Sys$Services$_ProfileService$set_defaultSaveCompletedCallback,
  5720. get_path: Sys$Services$_ProfileService$get_path,
  5721. load: Sys$Services$_ProfileService$load,
  5722. save: Sys$Services$_ProfileService$save,
  5723. _clonePropertyNames: Sys$Services$_ProfileService$_clonePropertyNames,
  5724. _flattenProperties: Sys$Services$_ProfileService$_flattenProperties,
  5725. _get_path: Sys$Services$_ProfileService$_get_path,
  5726. _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete,
  5727. _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed,
  5728. _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete,
  5729. _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed,
  5730. _unflattenProperties: Sys$Services$_ProfileService$_unflattenProperties
  5731. }
  5732. Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService', Sys.Net.WebServiceProxy);
  5733. Sys.Services.ProfileService = new Sys.Services._ProfileService();
  5734. Sys.Services.ProfileGroup = function Sys$Services$ProfileGroup(properties) {
  5735. /// <summary locid="M:J#Sys.Services.ProfileGroup.#ctor" />
  5736. /// <param name="properties" optional="true" mayBeNull="true"></param>
  5737. var e = Function._validateParams(arguments, [
  5738. {name: "properties", mayBeNull: true, optional: true}
  5739. ]);
  5740. if (e) throw e;
  5741. if (properties) {
  5742. for (var property in properties) {
  5743. this[property] = properties[property];
  5744. }
  5745. }
  5746. }
  5747. Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup');
  5748. Sys.Services._AuthenticationService = function Sys$Services$_AuthenticationService() {
  5749. /// <summary locid="M:J#Sys.Services.AuthenticationService.#ctor" />
  5750. if (arguments.length !== 0) throw Error.parameterCount();
  5751. Sys.Services._AuthenticationService.initializeBase(this);
  5752. }
  5753. Sys.Services._AuthenticationService.DefaultWebServicePath = '';
  5754. function Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() {
  5755. /// <value type="Function" mayBeNull="true" locid="P:J#Sys.Services.AuthenticationService.defaultLoginCompletedCallback"></value>
  5756. if (arguments.length !== 0) throw Error.parameterCount();
  5757. return this._defaultLoginCompletedCallback;
  5758. }
  5759. function Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(value) {
  5760. var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
  5761. if (e) throw e;
  5762. this._defaultLoginCompletedCallback = value;
  5763. }
  5764. function Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() {
  5765. /// <value type="Function" mayBeNull="true" locid="P:J#Sys.Services.AuthenticationService.defaultLogoutCompletedCallback"></value>
  5766. if (arguments.length !== 0) throw Error.parameterCount();
  5767. return this._defaultLogoutCompletedCallback;
  5768. }
  5769. function Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(value) {
  5770. var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
  5771. if (e) throw e;
  5772. this._defaultLogoutCompletedCallback = value;
  5773. }
  5774. function Sys$Services$_AuthenticationService$get_isLoggedIn() {
  5775. /// <value type="Boolean" locid="P:J#Sys.Services.AuthenticationService.isLoggedIn"></value>
  5776. if (arguments.length !== 0) throw Error.parameterCount();
  5777. return this._authenticated;
  5778. }
  5779. function Sys$Services$_AuthenticationService$get_path() {
  5780. /// <value type="String" mayBeNull="true" locid="P:J#Sys.Services.AuthenticationService.path"></value>
  5781. if (arguments.length !== 0) throw Error.parameterCount();
  5782. return this._path || '';
  5783. }
  5784. function Sys$Services$_AuthenticationService$login(username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext) {
  5785. /// <summary locid="M:J#Sys.Services.AuthenticationService.login" />
  5786. /// <param name="username" type="String" mayBeNull="false"></param>
  5787. /// <param name="password" type="String" mayBeNull="true"></param>
  5788. /// <param name="isPersistent" type="Boolean" optional="true" mayBeNull="true"></param>
  5789. /// <param name="customInfo" type="String" optional="true" mayBeNull="true"></param>
  5790. /// <param name="redirectUrl" type="String" optional="true" mayBeNull="true"></param>
  5791. /// <param name="loginCompletedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5792. /// <param name="failedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5793. /// <param name="userContext" optional="true" mayBeNull="true"></param>
  5794. var e = Function._validateParams(arguments, [
  5795. {name: "username", type: String},
  5796. {name: "password", type: String, mayBeNull: true},
  5797. {name: "isPersistent", type: Boolean, mayBeNull: true, optional: true},
  5798. {name: "customInfo", type: String, mayBeNull: true, optional: true},
  5799. {name: "redirectUrl", type: String, mayBeNull: true, optional: true},
  5800. {name: "loginCompletedCallback", type: Function, mayBeNull: true, optional: true},
  5801. {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
  5802. {name: "userContext", mayBeNull: true, optional: true}
  5803. ]);
  5804. if (e) throw e;
  5805. this._invoke(this._get_path(), "Login", false,
  5806. { userName: username, password: password, createPersistentCookie: isPersistent },
  5807. Function.createDelegate(this, this._onLoginComplete),
  5808. Function.createDelegate(this, this._onLoginFailed),
  5809. [username, password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, failedCallback, userContext]);
  5810. }
  5811. function Sys$Services$_AuthenticationService$logout(redirectUrl, logoutCompletedCallback, failedCallback, userContext) {
  5812. /// <summary locid="M:J#Sys.Services.AuthenticationService.logout" />
  5813. /// <param name="redirectUrl" type="String" optional="true" mayBeNull="true"></param>
  5814. /// <param name="logoutCompletedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5815. /// <param name="failedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5816. /// <param name="userContext" optional="true" mayBeNull="true"></param>
  5817. var e = Function._validateParams(arguments, [
  5818. {name: "redirectUrl", type: String, mayBeNull: true, optional: true},
  5819. {name: "logoutCompletedCallback", type: Function, mayBeNull: true, optional: true},
  5820. {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
  5821. {name: "userContext", mayBeNull: true, optional: true}
  5822. ]);
  5823. if (e) throw e;
  5824. this._invoke(this._get_path(), "Logout", false, {},
  5825. Function.createDelegate(this, this._onLogoutComplete),
  5826. Function.createDelegate(this, this._onLogoutFailed),
  5827. [redirectUrl, logoutCompletedCallback, failedCallback, userContext]);
  5828. }
  5829. function Sys$Services$_AuthenticationService$_get_path() {
  5830. var path = this.get_path();
  5831. if(!path.length) {
  5832. path = Sys.Services._AuthenticationService.DefaultWebServicePath;
  5833. }
  5834. if(!path || !path.length) {
  5835. throw Error.invalidOperation(Sys.Res.servicePathNotSet);
  5836. }
  5837. return path;
  5838. }
  5839. function Sys$Services$_AuthenticationService$_onLoginComplete(result, context, methodName) {
  5840. if(typeof(result) !== "boolean") {
  5841. throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Boolean"));
  5842. }
  5843. var redirectUrl = context[4];
  5844. var userContext = context[7] || this.get_defaultUserContext();
  5845. var callback = context[5] || this.get_defaultLoginCompletedCallback() || this.get_defaultSucceededCallback();
  5846. if(result) {
  5847. this._authenticated = true;
  5848. if (callback) {
  5849. callback(true, userContext, "Sys.Services.AuthenticationService.login");
  5850. }
  5851. if (typeof(redirectUrl) !== "undefined" && redirectUrl !== null) {
  5852. window.location.href = redirectUrl;
  5853. }
  5854. }
  5855. else if (callback) {
  5856. callback(false, userContext, "Sys.Services.AuthenticationService.login");
  5857. }
  5858. }
  5859. function Sys$Services$_AuthenticationService$_onLoginFailed(err, context, methodName) {
  5860. var callback = context[6] || this.get_defaultFailedCallback();
  5861. if (callback) {
  5862. var userContext = context[7] || this.get_defaultUserContext();
  5863. callback(err, userContext, "Sys.Services.AuthenticationService.login");
  5864. }
  5865. else {
  5866. Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
  5867. }
  5868. }
  5869. function Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, methodName) {
  5870. if(result !== null) {
  5871. throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "null"));
  5872. }
  5873. var redirectUrl = context[0];
  5874. var userContext = context[3] || this.get_defaultUserContext();
  5875. var callback = context[1] || this.get_defaultLogoutCompletedCallback() || this.get_defaultSucceededCallback();
  5876. this._authenticated = false;
  5877. if (callback) {
  5878. callback(null, userContext, "Sys.Services.AuthenticationService.logout");
  5879. }
  5880. if(!redirectUrl) {
  5881. window.location.reload();
  5882. }
  5883. else {
  5884. window.location.href = redirectUrl;
  5885. }
  5886. }
  5887. function Sys$Services$_AuthenticationService$_onLogoutFailed(err, context, methodName) {
  5888. var callback = context[2] || this.get_defaultFailedCallback();
  5889. if (callback) {
  5890. callback(err, context[3], "Sys.Services.AuthenticationService.logout");
  5891. }
  5892. else {
  5893. Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
  5894. }
  5895. }
  5896. function Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) {
  5897. this._authenticated = authenticated;
  5898. }
  5899. Sys.Services._AuthenticationService.prototype = {
  5900. _defaultLoginCompletedCallback: null,
  5901. _defaultLogoutCompletedCallback: null,
  5902. _path: '',
  5903. _timeout: 0,
  5904. _authenticated: false,
  5905. get_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback,
  5906. set_defaultLoginCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback,
  5907. get_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback,
  5908. set_defaultLogoutCompletedCallback: Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback,
  5909. get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn,
  5910. get_path: Sys$Services$_AuthenticationService$get_path,
  5911. login: Sys$Services$_AuthenticationService$login,
  5912. logout: Sys$Services$_AuthenticationService$logout,
  5913. _get_path: Sys$Services$_AuthenticationService$_get_path,
  5914. _onLoginComplete: Sys$Services$_AuthenticationService$_onLoginComplete,
  5915. _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed,
  5916. _onLogoutComplete: Sys$Services$_AuthenticationService$_onLogoutComplete,
  5917. _onLogoutFailed: Sys$Services$_AuthenticationService$_onLogoutFailed,
  5918. _setAuthenticated: Sys$Services$_AuthenticationService$_setAuthenticated
  5919. }
  5920. Sys.Services._AuthenticationService.registerClass('Sys.Services._AuthenticationService', Sys.Net.WebServiceProxy);
  5921. Sys.Services.AuthenticationService = new Sys.Services._AuthenticationService();
  5922. Sys.Services._RoleService = function Sys$Services$_RoleService() {
  5923. /// <summary locid="M:J#Sys.Services.RoleService.#ctor" />
  5924. if (arguments.length !== 0) throw Error.parameterCount();
  5925. Sys.Services._RoleService.initializeBase(this);
  5926. this._roles = [];
  5927. }
  5928. Sys.Services._RoleService.DefaultWebServicePath = '';
  5929. function Sys$Services$_RoleService$get_defaultLoadCompletedCallback() {
  5930. /// <value type="Function" mayBeNull="true" locid="P:J#Sys.Services.RoleService.defaultLoadCompletedCallback"></value>
  5931. if (arguments.length !== 0) throw Error.parameterCount();
  5932. return this._defaultLoadCompletedCallback;
  5933. }
  5934. function Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) {
  5935. var e = Function._validateParams(arguments, [{name: "value", type: Function, mayBeNull: true}]);
  5936. if (e) throw e;
  5937. this._defaultLoadCompletedCallback = value;
  5938. }
  5939. function Sys$Services$_RoleService$get_path() {
  5940. /// <value type="String" mayBeNull="true" locid="P:J#Sys.Services.RoleService.path"></value>
  5941. if (arguments.length !== 0) throw Error.parameterCount();
  5942. return this._path || '';
  5943. }
  5944. function Sys$Services$_RoleService$get_roles() {
  5945. /// <value type="Array" elementType="String" mayBeNull="false" locid="P:J#Sys.Services.RoleService.roles"></value>
  5946. if (arguments.length !== 0) throw Error.parameterCount();
  5947. return Array.clone(this._roles);
  5948. }
  5949. function Sys$Services$_RoleService$isUserInRole(role) {
  5950. /// <summary locid="M:J#Sys.Services.RoleService.isUserInRole" />
  5951. /// <param name="role" type="String" mayBeNull="false"></param>
  5952. /// <returns type="Boolean"></returns>
  5953. var e = Function._validateParams(arguments, [
  5954. {name: "role", type: String}
  5955. ]);
  5956. if (e) throw e;
  5957. var v = this._get_rolesIndex()[role.trim().toLowerCase()];
  5958. return !!v;
  5959. }
  5960. function Sys$Services$_RoleService$load(loadCompletedCallback, failedCallback, userContext) {
  5961. /// <summary locid="M:J#Sys.Services.RoleService.load" />
  5962. /// <param name="loadCompletedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5963. /// <param name="failedCallback" type="Function" optional="true" mayBeNull="true"></param>
  5964. /// <param name="userContext" optional="true" mayBeNull="true"></param>
  5965. var e = Function._validateParams(arguments, [
  5966. {name: "loadCompletedCallback", type: Function, mayBeNull: true, optional: true},
  5967. {name: "failedCallback", type: Function, mayBeNull: true, optional: true},
  5968. {name: "userContext", mayBeNull: true, optional: true}
  5969. ]);
  5970. if (e) throw e;
  5971. Sys.Net.WebServiceProxy.invoke(
  5972. this._get_path(),
  5973. "GetRolesForCurrentUser",
  5974. false,
  5975. {} ,
  5976. Function.createDelegate(this, this._onLoadComplete),
  5977. Function.createDelegate(this, this._onLoadFailed),
  5978. [loadCompletedCallback, failedCallback, userContext],
  5979. this.get_timeout());
  5980. }
  5981. function Sys$Services$_RoleService$_get_path() {
  5982. var path = this.get_path();
  5983. if(!path || !path.length) {
  5984. path = Sys.Services._RoleService.DefaultWebServicePath;
  5985. }
  5986. if(!path || !path.length) {
  5987. throw Error.invalidOperation(Sys.Res.servicePathNotSet);
  5988. }
  5989. return path;
  5990. }
  5991. function Sys$Services$_RoleService$_get_rolesIndex() {
  5992. if (!this._rolesIndex) {
  5993. var index = {};
  5994. for(var i=0; i < this._roles.length; i++) {
  5995. index[this._roles[i].toLowerCase()] = true;
  5996. }
  5997. this._rolesIndex = index;
  5998. }
  5999. return this._rolesIndex;
  6000. }
  6001. function Sys$Services$_RoleService$_onLoadComplete(result, context, methodName) {
  6002. if(result && !(result instanceof Array)) {
  6003. throw Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType, methodName, "Array"));
  6004. }
  6005. this._roles = result;
  6006. this._rolesIndex = null;
  6007. var callback = context[0] || this.get_defaultLoadCompletedCallback() || this.get_defaultSucceededCallback();
  6008. if (callback) {
  6009. var userContext = context[2] || this.get_defaultUserContext();
  6010. var clonedResult = Array.clone(result);
  6011. callback(clonedResult, userContext, "Sys.Services.RoleService.load");
  6012. }
  6013. }
  6014. function Sys$Services$_RoleService$_onLoadFailed(err, context, methodName) {
  6015. var callback = context[1] || this.get_defaultFailedCallback();
  6016. if (callback) {
  6017. var userContext = context[2] || this.get_defaultUserContext();
  6018. callback(err, userContext, "Sys.Services.RoleService.load");
  6019. }
  6020. else {
  6021. Sys.Net.WebServiceProxy._defaultFailedCallback(err, methodName);
  6022. }
  6023. }
  6024. Sys.Services._RoleService.prototype = {
  6025. _defaultLoadCompletedCallback: null,
  6026. _rolesIndex: null,
  6027. _timeout: 0,
  6028. _path: '',
  6029. get_defaultLoadCompletedCallback: Sys$Services$_RoleService$get_defaultLoadCompletedCallback,
  6030. set_defaultLoadCompletedCallback: Sys$Services$_RoleService$set_defaultLoadCompletedCallback,
  6031. get_path: Sys$Services$_RoleService$get_path,
  6032. get_roles: Sys$Services$_RoleService$get_roles,
  6033. isUserInRole: Sys$Services$_RoleService$isUserInRole,
  6034. load: Sys$Services$_RoleService$load,
  6035. _get_path: Sys$Services$_RoleService$_get_path,
  6036. _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex,
  6037. _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete,
  6038. _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed
  6039. }
  6040. Sys.Services._RoleService.registerClass('Sys.Services._RoleService', Sys.Net.WebServiceProxy);
  6041. Sys.Services.RoleService = new Sys.Services._RoleService();
  6042. Type.registerNamespace('Sys.Serialization');
  6043. Sys.Serialization.JavaScriptSerializer = function Sys$Serialization$JavaScriptSerializer() {
  6044. /// <summary locid="M:J#Sys.Serialization.JavaScriptSerializer.#ctor" />
  6045. if (arguments.length !== 0) throw Error.parameterCount();
  6046. }
  6047. Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.JavaScriptSerializer');
  6048. Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs = [];
  6049. Sys.Serialization.JavaScriptSerializer._charsToEscape = [];
  6050. Sys.Serialization.JavaScriptSerializer._dateRegEx = new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"', 'g');
  6051. Sys.Serialization.JavaScriptSerializer._escapeChars = {};
  6052. Sys.Serialization.JavaScriptSerializer._escapeRegEx = new RegExp('["\\\\\\x00-\\x1F]', 'i');
  6053. Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal = new RegExp('["\\\\\\x00-\\x1F]', 'g');
  6054. Sys.Serialization.JavaScriptSerializer._jsonRegEx = new RegExp('[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]', 'g');
  6055. Sys.Serialization.JavaScriptSerializer._jsonStringRegEx = new RegExp('"(\\\\.|[^"\\\\])*"', 'g');
  6056. Sys.Serialization.JavaScriptSerializer._serverTypeFieldName = '__type';
  6057. Sys.Serialization.JavaScriptSerializer._init = function Sys$Serialization$JavaScriptSerializer$_init() {
  6058. var replaceChars = ['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\\u0007',
  6059. '\\b','\\t','\\n','\\u000b','\\f','\\r','\\u000e','\\u000f','\\u0010','\\u0011',
  6060. '\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\u0019',
  6061. '\\u001a','\\u001b','\\u001c','\\u001d','\\u001e','\\u001f'];
  6062. Sys.Serialization.JavaScriptSerializer._charsToEscape[0] = '\\';
  6063. Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['\\'] = new RegExp('\\\\', 'g');
  6064. Sys.Serialization.JavaScriptSerializer._escapeChars['\\'] = '\\\\';
  6065. Sys.Serialization.JavaScriptSerializer._charsToEscape[1] = '"';
  6066. Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"'] = new RegExp('"', 'g');
  6067. Sys.Serialization.JavaScriptSerializer._escapeChars['"'] = '\\"';
  6068. for (var i = 0; i < 32; i++) {
  6069. var c = String.fromCharCode(i);
  6070. Sys.Serialization.JavaScriptSerializer._charsToEscape[i+2] = c;
  6071. Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c] = new RegExp(c, 'g');
  6072. Sys.Serialization.JavaScriptSerializer._escapeChars[c] = replaceChars[i];
  6073. }
  6074. }
  6075. Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeBooleanWithBuilder(object, stringBuilder) {
  6076. stringBuilder.append(object.toString());
  6077. }
  6078. Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeNumberWithBuilder(object, stringBuilder) {
  6079. if (isFinite(object)) {
  6080. stringBuilder.append(String(object));
  6081. }
  6082. else {
  6083. throw Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
  6084. }
  6085. }
  6086. Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeStringWithBuilder(String, stringBuilder) {
  6087. stringBuilder.append('"');
  6088. if (Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(String)) {
  6089. if (Sys.Serialization.JavaScriptSerializer._charsToEscape.length === 0) {
  6090. Sys.Serialization.JavaScriptSerializer._init();
  6091. }
  6092. if (String.length < 128) {
  6093. String = String.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,
  6094. function(x) { return Sys.Serialization.JavaScriptSerializer._escapeChars[x]; });
  6095. }
  6096. else {
  6097. for (var i = 0; i < 34; i++) {
  6098. var c = Sys.Serialization.JavaScriptSerializer._charsToEscape[i];
  6099. if (String.indexOf(c) !== -1) {
  6100. if (Sys.Browser.agent === Sys.Browser.Opera || Sys.Browser.agent === Sys.Browser.FireFox) {
  6101. String = String.split(c).join(Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
  6102. }
  6103. else {
  6104. String = String.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c],
  6105. Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
  6106. }
  6107. }
  6108. }
  6109. }
  6110. }
  6111. stringBuilder.append(String);
  6112. stringBuilder.append('"');
  6113. }
  6114. Sys.Serialization.JavaScriptSerializer._serializeWithBuilder = function Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, stringBuilder, sort, prevObjects) {
  6115. var i;
  6116. switch (typeof object) {
  6117. case 'object':
  6118. if (object) {
  6119. if (prevObjects){
  6120. for( var j = 0; j < prevObjects.length; j++) {
  6121. if (prevObjects[j] === object) {
  6122. throw Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
  6123. }
  6124. }
  6125. }
  6126. else {
  6127. prevObjects = new Array();
  6128. }
  6129. try {
  6130. Array.add(prevObjects, object);
  6131. if (Number.isInstanceOfType(object)){
  6132. Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object, stringBuilder);
  6133. }
  6134. else if (Boolean.isInstanceOfType(object)){
  6135. Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(object, stringBuilder);
  6136. }
  6137. else if (String.isInstanceOfType(object)){
  6138. Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object, stringBuilder);
  6139. }
  6140. else if (Array.isInstanceOfType(object)) {
  6141. stringBuilder.append('[');
  6142. for (i = 0; i < object.length; ++i) {
  6143. if (i > 0) {
  6144. stringBuilder.append(',');
  6145. }
  6146. Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], stringBuilder,false,prevObjects);
  6147. }
  6148. stringBuilder.append(']');
  6149. }
  6150. else {
  6151. if (Date.isInstanceOfType(object)) {
  6152. stringBuilder.append('"\\/Date(');
  6153. stringBuilder.append(object.getTime());
  6154. stringBuilder.append(')\\/"');
  6155. break;
  6156. }
  6157. var properties = [];
  6158. var propertyCount = 0;
  6159. for (var name in object) {
  6160. if (name.startsWith('$')) {
  6161. continue;
  6162. }
  6163. if (name === Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && propertyCount !== 0){
  6164. properties[propertyCount++] = properties[0];
  6165. properties[0] = name;
  6166. }
  6167. else{
  6168. properties[propertyCount++] = name;
  6169. }
  6170. }
  6171. if (sort) properties.sort();
  6172. stringBuilder.append('{');
  6173. var needComma = false;
  6174. for (i=0; i<propertyCount; i++) {
  6175. var value = object[properties[i]];
  6176. if (typeof value !== 'undefined' && typeof value !== 'function') {
  6177. if (needComma) {
  6178. stringBuilder.append(',');
  6179. }
  6180. else {
  6181. needComma = true;
  6182. }
  6183. Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(properties[i], stringBuilder, sort, prevObjects);
  6184. stringBuilder.append(':');
  6185. Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(value, stringBuilder, sort, prevObjects);
  6186. }
  6187. }
  6188. stringBuilder.append('}');
  6189. }
  6190. }
  6191. finally {
  6192. Array.removeAt(prevObjects, prevObjects.length - 1);
  6193. }
  6194. }
  6195. else {
  6196. stringBuilder.append('null');
  6197. }
  6198. break;
  6199. case 'number':
  6200. Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object, stringBuilder);
  6201. break;
  6202. case 'String':
  6203. Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object, stringBuilder);
  6204. break;
  6205. case 'boolean':
  6206. Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(object, stringBuilder);
  6207. break;
  6208. default:
  6209. stringBuilder.append('null');
  6210. break;
  6211. }
  6212. }
  6213. Sys.Serialization.JavaScriptSerializer.serialize = function Sys$Serialization$JavaScriptSerializer$serialize(object) {
  6214. /// <summary locid="M:J#Sys.Serialization.JavaScriptSerializer.serialize" />
  6215. /// <param name="object" mayBeNull="true"></param>
  6216. /// <returns type="String"></returns>
  6217. var e = Function._validateParams(arguments, [
  6218. {name: "object", mayBeNull: true}
  6219. ]);
  6220. if (e) throw e;
  6221. var stringBuilder = new Sys.StringBuilder();
  6222. Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, stringBuilder, false);
  6223. return stringBuilder.toString();
  6224. }
  6225. Sys.Serialization.JavaScriptSerializer.deserialize = function Sys$Serialization$JavaScriptSerializer$deserialize(data, secure) {
  6226. /// <summary locid="M:J#Sys.Serialization.JavaScriptSerializer.deserialize" />
  6227. /// <param name="data" type="String"></param>
  6228. /// <param name="secure" type="Boolean" optional="true"></param>
  6229. /// <returns></returns>
  6230. var e = Function._validateParams(arguments, [
  6231. {name: "data", type: String},
  6232. {name: "secure", type: Boolean, optional: true}
  6233. ]);
  6234. if (e) throw e;
  6235. if (data.length === 0) throw Error.argument('data', Sys.Res.cannotDeserializeEmptyString);
  6236. try {
  6237. var exp = data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx, "$1new Date($2)");
  6238. if (secure && Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(
  6239. exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx, ''))) throw null;
  6240. return eval('(' + exp + ')');
  6241. }
  6242. catch (e) {
  6243. throw Error.argument('data', Sys.Res.cannotDeserializeInvalidJson);
  6244. }
  6245. }
  6246. Sys.CultureInfo = function Sys$CultureInfo(name, numberFormat, dateTimeFormat) {
  6247. /// <summary locid="M:J#Sys.CultureInfo.#ctor" />
  6248. /// <param name="name" type="String"></param>
  6249. /// <param name="numberFormat" type="Object"></param>
  6250. /// <param name="dateTimeFormat" type="Object"></param>
  6251. var e = Function._validateParams(arguments, [
  6252. {name: "name", type: String},
  6253. {name: "numberFormat", type: Object},
  6254. {name: "dateTimeFormat", type: Object}
  6255. ]);
  6256. if (e) throw e;
  6257. this.name = name;
  6258. this.numberFormat = numberFormat;
  6259. this.dateTimeFormat = dateTimeFormat;
  6260. }
  6261. function Sys$CultureInfo$_getDateTimeFormats() {
  6262. if (! this._dateTimeFormats) {
  6263. var dtf = this.dateTimeFormat;
  6264. this._dateTimeFormats =
  6265. [ dtf.MonthDayPattern,
  6266. dtf.YearMonthPattern,
  6267. dtf.ShortDatePattern,
  6268. dtf.ShortTimePattern,
  6269. dtf.LongDatePattern,
  6270. dtf.LongTimePattern,
  6271. dtf.FullDateTimePattern,
  6272. dtf.RFC1123Pattern,
  6273. dtf.SortableDateTimePattern,
  6274. dtf.UniversalSortableDateTimePattern ];
  6275. }
  6276. return this._dateTimeFormats;
  6277. }
  6278. function Sys$CultureInfo$_getMonthIndex(value) {
  6279. if (!this._upperMonths) {
  6280. this._upperMonths = this._toUpperArray(this.dateTimeFormat.MonthNames);
  6281. }
  6282. return Array.indexOf(this._upperMonths, this._toUpper(value));
  6283. }
  6284. function Sys$CultureInfo$_getAbbrMonthIndex(value) {
  6285. if (!this._upperAbbrMonths) {
  6286. this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
  6287. }
  6288. return Array.indexOf(this._upperAbbrMonths, this._toUpper(value));
  6289. }
  6290. function Sys$CultureInfo$_getDayIndex(value) {
  6291. if (!this._upperDays) {
  6292. this._upperDays = this._toUpperArray(this.dateTimeFormat.DayNames);
  6293. }
  6294. return Array.indexOf(this._upperDays, this._toUpper(value));
  6295. }
  6296. function Sys$CultureInfo$_getAbbrDayIndex(value) {
  6297. if (!this._upperAbbrDays) {
  6298. this._upperAbbrDays = this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);
  6299. }
  6300. return Array.indexOf(this._upperAbbrDays, this._toUpper(value));
  6301. }
  6302. function Sys$CultureInfo$_toUpperArray(arr) {
  6303. var result = [];
  6304. for (var i = 0, il = arr.length; i < il; i++) {
  6305. result[i] = this._toUpper(arr[i]);
  6306. }
  6307. return result;
  6308. }
  6309. function Sys$CultureInfo$_toUpper(value) {
  6310. return value.split("\u00A0").join(' ').toUpperCase();
  6311. }
  6312. Sys.CultureInfo.prototype = {
  6313. _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats,
  6314. _getMonthIndex: Sys$CultureInfo$_getMonthIndex,
  6315. _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex,
  6316. _getDayIndex: Sys$CultureInfo$_getDayIndex,
  6317. _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex,
  6318. _toUpperArray: Sys$CultureInfo$_toUpperArray,
  6319. _toUpper: Sys$CultureInfo$_toUpper
  6320. }
  6321. Sys.CultureInfo._parse = function Sys$CultureInfo$_parse(value) {
  6322. var cultureInfo = Sys.Serialization.JavaScriptSerializer.deserialize(value);
  6323. return new Sys.CultureInfo(cultureInfo.name, cultureInfo.numberFormat, cultureInfo.dateTimeFormat);
  6324. }
  6325. Sys.CultureInfo.registerClass('Sys.CultureInfo');
  6326. Sys.CultureInfo.InvariantCulture = Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]}}');
  6327. if (typeof(__cultureInfo) === 'undefined') {
  6328. var __cultureInfo = '{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":false,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]}}';
  6329. }
  6330. Sys.CultureInfo.CurrentCulture = Sys.CultureInfo._parse(__cultureInfo);
  6331. delete __cultureInfo;
  6332. Sys.UI.Behavior = function Sys$UI$Behavior(element) {
  6333. /// <summary locid="M:J#Sys.UI.Behavior.#ctor" />
  6334. /// <param name="element" domElement="true"></param>
  6335. var e = Function._validateParams(arguments, [
  6336. {name: "element", domElement: true}
  6337. ]);
  6338. if (e) throw e;
  6339. Sys.UI.Behavior.initializeBase(this);
  6340. this._element = element;
  6341. var behaviors = element._behaviors;
  6342. if (!behaviors) {
  6343. element._behaviors = [this];
  6344. }
  6345. else {
  6346. behaviors[behaviors.length] = this;
  6347. }
  6348. }
  6349. function Sys$UI$Behavior$get_element() {
  6350. /// <value domElement="true" locid="P:J#Sys.UI.Behavior.element"></value>
  6351. if (arguments.length !== 0) throw Error.parameterCount();
  6352. return this._element;
  6353. }
  6354. function Sys$UI$Behavior$get_id() {
  6355. /// <value type="String" locid="P:J#Sys.UI.Behavior.id"></value>
  6356. if (arguments.length !== 0) throw Error.parameterCount();
  6357. var baseId = Sys.UI.Behavior.callBaseMethod(this, 'get_id');
  6358. if (baseId) return baseId;
  6359. if (!this._element || !this._element.id) return '';
  6360. return this._element.id + '$' + this.get_name();
  6361. }
  6362. function Sys$UI$Behavior$get_name() {
  6363. /// <value type="String" locid="P:J#Sys.UI.Behavior.name"></value>
  6364. if (arguments.length !== 0) throw Error.parameterCount();
  6365. if (this._name) return this._name;
  6366. var name = Object.getTypeName(this);
  6367. var i = name.lastIndexOf('.');
  6368. if (i != -1) name = name.substr(i + 1);
  6369. if (!this.get_isInitialized()) this._name = name;
  6370. return name;
  6371. }
  6372. function Sys$UI$Behavior$set_name(value) {
  6373. var e = Function._validateParams(arguments, [{name: "value", type: String}]);
  6374. if (e) throw e;
  6375. if ((value === '') || (value.charAt(0) === ' ') || (value.charAt(value.length - 1) === ' '))
  6376. throw Error.argument('value', Sys.Res.invalidId);
  6377. if (typeof(this._element[value]) !== 'undefined')
  6378. throw Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, value));
  6379. if (this.get_isInitialized()) throw Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
  6380. this._name = value;
  6381. }
  6382. function Sys$UI$Behavior$initialize() {
  6383. Sys.UI.Behavior.callBaseMethod(this, 'initialize');
  6384. var name = this.get_name();
  6385. if (name) this._element[name] = this;
  6386. }
  6387. function Sys$UI$Behavior$dispose() {
  6388. Sys.UI.Behavior.callBaseMethod(this, 'dispose');
  6389. if (this._element) {
  6390. var name = this.get_name();
  6391. if (name) {
  6392. this._element[name] = null;
  6393. }
  6394. Array.remove(this._element._behaviors, this);
  6395. delete this._element;
  6396. }
  6397. }
  6398. Sys.UI.Behavior.prototype = {
  6399. _name: null,
  6400. get_element: Sys$UI$Behavior$get_element,
  6401. get_id: Sys$UI$Behavior$get_id,
  6402. get_name: Sys$UI$Behavior$get_name,
  6403. set_name: Sys$UI$Behavior$set_name,
  6404. initialize: Sys$UI$Behavior$initialize,
  6405. dispose: Sys$UI$Behavior$dispose
  6406. }
  6407. Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component);
  6408. Sys.UI.Behavior.getBehaviorByName = function Sys$UI$Behavior$getBehaviorByName(element, name) {
  6409. /// <summary locid="M:J#Sys.UI.Behavior.getBehaviorByName" />
  6410. /// <param name="element" domElement="true"></param>
  6411. /// <param name="name" type="String"></param>
  6412. /// <returns type="Sys.UI.Behavior" mayBeNull="true"></returns>
  6413. var e = Function._validateParams(arguments, [
  6414. {name: "element", domElement: true},
  6415. {name: "name", type: String}
  6416. ]);
  6417. if (e) throw e;
  6418. var b = element[name];
  6419. return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
  6420. }
  6421. Sys.UI.Behavior.getBehaviors = function Sys$UI$Behavior$getBehaviors(element) {
  6422. /// <summary locid="M:J#Sys.UI.Behavior.getBehaviors" />
  6423. /// <param name="element" domElement="true"></param>
  6424. /// <returns type="Array" elementType="Sys.UI.Behavior"></returns>
  6425. var e = Function._validateParams(arguments, [
  6426. {name: "element", domElement: true}
  6427. ]);
  6428. if (e) throw e;
  6429. if (!element._behaviors) return [];
  6430. return Array.clone(element._behaviors);
  6431. }
  6432. Sys.UI.Behavior.getBehaviorsByType = function Sys$UI$Behavior$getBehaviorsByType(element, type) {
  6433. /// <summary locid="M:J#Sys.UI.Behavior.getBehaviorsByType" />
  6434. /// <param name="element" domElement="true"></param>
  6435. /// <param name="type" type="Type"></param>
  6436. /// <returns type="Array" elementType="Sys.UI.Behavior"></returns>
  6437. var e = Function._validateParams(arguments, [
  6438. {name: "element", domElement: true},
  6439. {name: "type", type: Type}
  6440. ]);
  6441. if (e) throw e;
  6442. var behaviors = element._behaviors;
  6443. var results = [];
  6444. if (behaviors) {
  6445. for (var i = 0, l = behaviors.length; i < l; i++) {
  6446. if (type.isInstanceOfType(behaviors[i])) {
  6447. results[results.length] = behaviors[i];
  6448. }
  6449. }
  6450. }
  6451. return results;
  6452. }
  6453. Sys.UI.VisibilityMode = function Sys$UI$VisibilityMode() {
  6454. /// <summary locid="M:J#Sys.UI.VisibilityMode.#ctor" />
  6455. /// <field name="hide" type="Number" integer="true" static="true" locid="F:J#Sys.UI.VisibilityMode.hide"></field>
  6456. /// <field name="collapse" type="Number" integer="true" static="true" locid="F:J#Sys.UI.VisibilityMode.collapse"></field>
  6457. if (arguments.length !== 0) throw Error.parameterCount();
  6458. throw Error.notImplemented();
  6459. }
  6460. Sys.UI.VisibilityMode.prototype = {
  6461. hide: 0,
  6462. collapse: 1
  6463. }
  6464. Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");
  6465. Sys.UI.Control = function Sys$UI$Control(element) {
  6466. /// <summary locid="M:J#Sys.UI.Control.#ctor" />
  6467. /// <param name="element" domElement="true"></param>
  6468. var e = Function._validateParams(arguments, [
  6469. {name: "element", domElement: true}
  6470. ]);
  6471. if (e) throw e;
  6472. if (typeof(element.control) != 'undefined') throw Error.invalidOperation(Sys.Res.controlAlreadyDefined);
  6473. Sys.UI.Control.initializeBase(this);
  6474. this._element = element;
  6475. element.control = this;
  6476. }
  6477. function Sys$UI$Control$get_element() {
  6478. /// <value domElement="true" locid="P:J#Sys.UI.Control.element"></value>
  6479. if (arguments.length !== 0) throw Error.parameterCount();
  6480. return this._element;
  6481. }
  6482. function Sys$UI$Control$get_id() {
  6483. /// <value type="String" locid="P:J#Sys.UI.Control.id"></value>
  6484. if (arguments.length !== 0) throw Error.parameterCount();
  6485. if (!this._element) return '';
  6486. return this._element.id;
  6487. }
  6488. function Sys$UI$Control$set_id(value) {
  6489. var e = Function._validateParams(arguments, [{name: "value", type: String}]);
  6490. if (e) throw e;
  6491. throw Error.invalidOperation(Sys.Res.cantSetId);
  6492. }
  6493. function Sys$UI$Control$get_parent() {
  6494. /// <value type="Sys.UI.Control" locid="P:J#Sys.UI.Control.parent"></value>
  6495. if (arguments.length !== 0) throw Error.parameterCount();
  6496. if (this._parent) return this._parent;
  6497. if (!this._element) return null;
  6498. var parentElement = this._element.parentNode;
  6499. while (parentElement) {
  6500. if (parentElement.control) {
  6501. return parentElement.control;
  6502. }
  6503. parentElement = parentElement.parentNode;
  6504. }
  6505. return null;
  6506. }
  6507. function Sys$UI$Control$set_parent(value) {
  6508. var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.Control}]);
  6509. if (e) throw e;
  6510. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6511. var parents = [this];
  6512. var current = value;
  6513. while (current) {
  6514. if (Array.contains(parents, current)) throw Error.invalidOperation(Sys.Res.circularParentChain);
  6515. parents[parents.length] = current;
  6516. current = current.get_parent();
  6517. }
  6518. this._parent = value;
  6519. }
  6520. function Sys$UI$Control$get_visibilityMode() {
  6521. /// <value type="Sys.UI.VisibilityMode" locid="P:J#Sys.UI.Control.visibilityMode"></value>
  6522. if (arguments.length !== 0) throw Error.parameterCount();
  6523. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6524. return Sys.UI.DomElement.getVisibilityMode(this._element);
  6525. }
  6526. function Sys$UI$Control$set_visibilityMode(value) {
  6527. var e = Function._validateParams(arguments, [{name: "value", type: Sys.UI.VisibilityMode}]);
  6528. if (e) throw e;
  6529. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6530. Sys.UI.DomElement.setVisibilityMode(this._element, value);
  6531. }
  6532. function Sys$UI$Control$get_visible() {
  6533. /// <value type="Boolean" locid="P:J#Sys.UI.Control.visible"></value>
  6534. if (arguments.length !== 0) throw Error.parameterCount();
  6535. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6536. return Sys.UI.DomElement.getVisible(this._element);
  6537. }
  6538. function Sys$UI$Control$set_visible(value) {
  6539. var e = Function._validateParams(arguments, [{name: "value", type: Boolean}]);
  6540. if (e) throw e;
  6541. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6542. Sys.UI.DomElement.setVisible(this._element, value)
  6543. }
  6544. function Sys$UI$Control$addCssClass(className) {
  6545. /// <summary locid="M:J#Sys.UI.Control.addCssClass" />
  6546. /// <param name="className" type="String"></param>
  6547. var e = Function._validateParams(arguments, [
  6548. {name: "className", type: String}
  6549. ]);
  6550. if (e) throw e;
  6551. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6552. Sys.UI.DomElement.addCssClass(this._element, className);
  6553. }
  6554. function Sys$UI$Control$dispose() {
  6555. Sys.UI.Control.callBaseMethod(this, 'dispose');
  6556. if (this._element) {
  6557. this._element.control = undefined;
  6558. delete this._element;
  6559. }
  6560. if (this._parent) delete this._parent;
  6561. }
  6562. function Sys$UI$Control$onBubbleEvent(source, args) {
  6563. /// <summary locid="M:J#Sys.UI.Control.onBubbleEvent" />
  6564. /// <param name="source"></param>
  6565. /// <param name="args" type="Sys.EventArgs"></param>
  6566. /// <returns type="Boolean"></returns>
  6567. var e = Function._validateParams(arguments, [
  6568. {name: "source"},
  6569. {name: "args", type: Sys.EventArgs}
  6570. ]);
  6571. if (e) throw e;
  6572. return false;
  6573. }
  6574. function Sys$UI$Control$raiseBubbleEvent(source, args) {
  6575. /// <summary locid="M:J#Sys.UI.Control.raiseBubbleEvent" />
  6576. /// <param name="source"></param>
  6577. /// <param name="args" type="Sys.EventArgs"></param>
  6578. var e = Function._validateParams(arguments, [
  6579. {name: "source"},
  6580. {name: "args", type: Sys.EventArgs}
  6581. ]);
  6582. if (e) throw e;
  6583. var currentTarget = this.get_parent();
  6584. while (currentTarget) {
  6585. if (currentTarget.onBubbleEvent(source, args)) {
  6586. return;
  6587. }
  6588. currentTarget = currentTarget.get_parent();
  6589. }
  6590. }
  6591. function Sys$UI$Control$removeCssClass(className) {
  6592. /// <summary locid="M:J#Sys.UI.Control.removeCssClass" />
  6593. /// <param name="className" type="String"></param>
  6594. var e = Function._validateParams(arguments, [
  6595. {name: "className", type: String}
  6596. ]);
  6597. if (e) throw e;
  6598. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6599. Sys.UI.DomElement.removeCssClass(this._element, className);
  6600. }
  6601. function Sys$UI$Control$toggleCssClass(className) {
  6602. /// <summary locid="M:J#Sys.UI.Control.toggleCssClass" />
  6603. /// <param name="className" type="String"></param>
  6604. var e = Function._validateParams(arguments, [
  6605. {name: "className", type: String}
  6606. ]);
  6607. if (e) throw e;
  6608. if (!this._element) throw Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
  6609. Sys.UI.DomElement.toggleCssClass(this._element, className);
  6610. }
  6611. Sys.UI.Control.prototype = {
  6612. _parent: null,
  6613. _visibilityMode: Sys.UI.VisibilityMode.hide,
  6614. get_element: Sys$UI$Control$get_element,
  6615. get_id: Sys$UI$Control$get_id,
  6616. set_id: Sys$UI$Control$set_id,
  6617. get_parent: Sys$UI$Control$get_parent,
  6618. set_parent: Sys$UI$Control$set_parent,
  6619. get_visibilityMode: Sys$UI$Control$get_visibilityMode,
  6620. set_visibilityMode: Sys$UI$Control$set_visibilityMode,
  6621. get_visible: Sys$UI$Control$get_visible,
  6622. set_visible: Sys$UI$Control$set_visible,
  6623. addCssClass: Sys$UI$Control$addCssClass,
  6624. dispose: Sys$UI$Control$dispose,
  6625. onBubbleEvent: Sys$UI$Control$onBubbleEvent,
  6626. raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent,
  6627. removeCssClass: Sys$UI$Control$removeCssClass,
  6628. toggleCssClass: Sys$UI$Control$toggleCssClass
  6629. }
  6630. Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component);
  6631. Type.registerNamespace('Sys');
  6632. Sys.Res={
  6633. 'urlMustBeLessThan1024chars':'The history state must be small enough to not make the url larger than 1024 characters.',
  6634. 'argumentTypeName':'Value is not the name of an existing type.',
  6635. 'methodRegisteredTwice':'Method {0} has already been registered.',
  6636. 'cantSetIdAfterInit':'The id property can\'t be set on this object after initialization.',
  6637. 'cantBeCalledAfterDispose':'Can\'t be called after dispose.',
  6638. 'componentCantSetIdAfterAddedToApp':'The id property of a component can\'t be set after it\'s been added to the Application object.',
  6639. 'behaviorDuplicateName':'A behavior with name \'{0}\' already exists or it is the name of an existing property on the target element.',
  6640. 'notATypeName':'Value is not a valid type name.',
  6641. 'typeShouldBeTypeOrString':'Value is not a valid type or a valid type name.',
  6642. 'historyInvalidHistorySettingCombination':'Cannot set enableHistory to false when ScriptManager.EnableHistory is true.',
  6643. 'stateMustBeStringDictionary':'The state object can only have null and String fields.',
  6644. 'boolTrueOrFalse':'Value must be \'true\' or \'false\'.',
  6645. 'scriptLoadFailedNoHead':'ScriptLoader requires pages to contain a <head> element.',
  6646. 'stringFormatInvalid':'The format String is invalid.',
  6647. 'referenceNotFound':'Component \'{0}\' was not found.',
  6648. 'enumReservedName':'\'{0}\' is a reserved name that can\'t be used as an enum value name.',
  6649. 'eventHandlerNotFound':'Handler not found.',
  6650. 'circularParentChain':'The chain of control parents can\'t have circular references.',
  6651. 'undefinedEvent':'\'{0}\' is not an event.',
  6652. 'notAMethod':'{0} is not a method.',
  6653. 'propertyUndefined':'\'{0}\' is not a property or an existing field.',
  6654. 'historyCannotEnableHistory':'Cannot set enableHistory after initialization.',
  6655. 'eventHandlerInvalid':'Handler was not added through the Sys.UI.DomEvent.addHandler method.',
  6656. 'scriptLoadFailedDebug':'The script \'{0}\' failed to load. Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable \'Display a notification about every script error\' under advanced settings.\r\n Missing call to Sys.Application.notifyScriptLoaded().',
  6657. 'propertyNotWritable':'\'{0}\' is not a writable property.',
  6658. 'enumInvalidValueName':'\'{0}\' is not a valid name for an enum value.',
  6659. 'controlAlreadyDefined':'A control is already associated with the element.',
  6660. 'addHandlerCantBeUsedForError':'Can\'t add a handler for the error event using this method. Please set the window.onerror property instead.',
  6661. 'namespaceContainsObject':'Object {0} already exists and is not a namespace.',
  6662. 'cantAddNonFunctionhandler':'Can\'t add a handler that is not a function.',
  6663. 'invalidNameSpace':'Value is not a valid namespace identifier.',
  6664. 'notAnInterface':'Value is not a valid interface.',
  6665. 'eventHandlerNotFunction':'Handler must be a function.',
  6666. 'propertyNotAnArray':'\'{0}\' is not an Array property.',
  6667. 'typeRegisteredTwice':'Type {0} has already been registered. The type may be defined multiple times or the script file that defines it may have already been loaded. A possible cause is a change of settings during a partial update.',
  6668. 'cantSetNameAfterInit':'The name property can\'t be set on this object after initialization.',
  6669. 'historyMissingFrame':'For the history feature to work in IE, the page must have an iFrame element with id \'__historyFrame\' pointed to a page that gets its title from the \'title\' query String parameter and calls Sys.Application._onIFrameLoad() on the parent window. This can be done by setting EnableHistory to true on ScriptManager.',
  6670. 'appDuplicateComponent':'Two components with the same id \'{0}\' can\'t be added to the application.',
  6671. 'historyCannotAddHistoryPointWithHistoryDisabled':'A history point can only be added if enableHistory is set to true.',
  6672. 'appComponentMustBeInitialized':'Components must be initialized before they are added to the Application object.',
  6673. 'baseNotAClass':'Value is not a class.',
  6674. 'methodNotFound':'No method found with name \'{0}\'.',
  6675. 'arrayParseBadFormat':'Value must be a valid String representation for an array. It must start with a \'[\' and end with a \']\'.',
  6676. 'stateFieldNameInvalid':'State field names must not contain any \'=\' characters.',
  6677. 'cantSetId':'The id property can\'t be set on this object.',
  6678. 'historyMissingHiddenInput':'For the history feature to work in Safari 2, the page must have a hidden input element with id \'__history\'.',
  6679. 'stringFormatBraceMismatch':'The format String contains an unmatched opening or closing brace.',
  6680. 'enumValueNotInteger':'An enumeration definition can only contain integer values.',
  6681. 'propertyNullOrUndefined':'Cannot set the properties of \'{0}\' because it returned a null value.',
  6682. 'argumentDomNode':'Value must be a DOM element or a text node.',
  6683. 'componentCantSetIdTwice':'The id property of a component can\'t be set more than once.',
  6684. 'createComponentOnDom':'Value must be null for Components that are not Controls or Behaviors.',
  6685. 'createNotComponent':'{0} does not derive from Sys.Component.',
  6686. 'createNoDom':'Value must not be null for Controls and Behaviors.',
  6687. 'cantAddWithoutId':'Can\'t add a component that doesn\'t have an id.',
  6688. 'badTypeName':'Value is not the name of the type being registered or the name is a reserved word.',
  6689. 'argumentInteger':'Value must be an integer.',
  6690. 'scriptLoadMultipleCallbacks':'The script \'{0}\' contains multiple calls to Sys.Application.notifyScriptLoaded(). Only one is allowed.',
  6691. 'invokeCalledTwice':'Cannot call invoke more than once.',
  6692. 'webServiceFailed':'The server method \'{0}\' failed with the following error: {1}',
  6693. 'webServiceInvalidJsonWrapper':'The server method \'{0}\' returned invalid data. The \'d\' property is missing from the JSON wrapper.',
  6694. 'argumentType':'Object cannot be converted to the required type.',
  6695. 'argumentNull':'Value cannot be null.',
  6696. 'controlCantSetId':'The id property can\'t be set on a control.',
  6697. 'formatBadFormatSpecifier':'Format specifier was invalid.',
  6698. 'webServiceFailedNoMsg':'The server method \'{0}\' failed.',
  6699. 'argumentDomElement':'Value must be a DOM element.',
  6700. 'invalidExecutorType':'Could not create a valid Sys.Net.WebRequestExecutor from: {0}.',
  6701. 'cannotCallBeforeResponse':'Cannot call {0} when responseAvailable is false.',
  6702. 'actualValue':'Actual value was {0}.',
  6703. 'enumInvalidValue':'\'{0}\' is not a valid value for enum {1}.',
  6704. 'scriptLoadFailed':'The script \'{0}\' could not be loaded.',
  6705. 'parameterCount':'Parameter count mismatch.',
  6706. 'cannotDeserializeEmptyString':'Cannot deserialize empty String.',
  6707. 'formatInvalidString':'Input String was not in a correct format.',
  6708. 'invalidTimeout':'Value must be greater than or equal to zero.',
  6709. 'cannotAbortBeforeStart':'Cannot abort when executor has not started.',
  6710. 'argument':'Value does not fall within the expected range.',
  6711. 'cannotDeserializeInvalidJson':'Cannot deserialize. The data does not correspond to valid JSON.',
  6712. 'invalidHttpVerb':'httpVerb cannot be set to an empty or null String.',
  6713. 'nullWebRequest':'Cannot call executeRequest with a null webRequest.',
  6714. 'eventHandlerInvalid':'Handler was not added through the Sys.UI.DomEvent.addHandler method.',
  6715. 'cannotSerializeNonFiniteNumbers':'Cannot serialize non finite numbers.',
  6716. 'argumentUndefined':'Value cannot be undefined.',
  6717. 'webServiceInvalidReturnType':'The server method \'{0}\' returned an invalid type. Expected type: {1}',
  6718. 'servicePathNotSet':'The path to the web service has not been set.',
  6719. 'argumentTypeWithTypes':'Object of type \'{0}\' cannot be converted to type \'{1}\'.',
  6720. 'cannotCallOnceStarted':'Cannot call {0} once started.',
  6721. 'badBaseUrl1':'Base URL does not contain ://.',
  6722. 'badBaseUrl2':'Base URL does not contain another /.',
  6723. 'badBaseUrl3':'Cannot find last / in base URL.',
  6724. 'setExecutorAfterActive':'Cannot set executor after it has become active.',
  6725. 'paramName':'Parameter name: {0}',
  6726. 'cannotCallOutsideHandler':'Cannot call {0} outside of a completed event handler.',
  6727. 'cannotSerializeObjectWithCycle':'Cannot serialize object with cyclic reference within child properties.',
  6728. 'format':'One of the identified items was in an invalid format.',
  6729. 'assertFailedCaller':'Assertion Failed: {0}\r\nat {1}',
  6730. 'argumentOutOfRange':'Specified argument was out of the range of valid values.',
  6731. 'webServiceTimedOut':'The server method \'{0}\' timed out.',
  6732. 'notImplemented':'The method or operation is not implemented.',
  6733. 'assertFailed':'Assertion Failed: {0}',
  6734. 'invalidOperation':'Operation is not valid due to the current state of the object.',
  6735. 'breakIntoDebugger':'{0}\r\n\r\nBreak into debugger?'
  6736. };
  6737. if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();