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