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