1function $_global_init() { 2 { 3 if ("undefined" == typeof g_all_modules) { 4 g_all_modules = {}; 5 } 6 g_all_modules["init.js"] = { 7 "version": { 8 "rmj": 16, 9 "rmm": 0, 10 "rup": 10417, 11 "rpr": 20175 12 } 13 }; 14 } 15 if (-1 != navigator.userAgent.indexOf('ProfilerMark') && 'function' == typeof msWriteProfilerMark) { 16 spWriteProfilerMark = function(m) { 17 window.msWriteProfilerMark(m); 18 }; 19 } 20 if (typeof spWriteProfilerMark == 'function') 21 spWriteProfilerMark("perfMarkBegin_" + "init.js"); 22 if (typeof OffSwitch == 'undefined') { 23 OffSwitch = { 24 "__namespace": true 25 }; 26 OffSwitch_module_def(); 27 } 28 if (typeof RuntimeErrors == 'undefined') { 29 RuntimeErrors = { 30 "__namespace": true 31 }; 32 RuntimeErrors_module_def(); 33 } 34 if (typeof Verify == 'undefined') { 35 Verify = { 36 "__namespace": true 37 }; 38 Verify_module_def(); 39 } 40 if (typeof Define == 'undefined') { 41 Define = { 42 "__namespace": true 43 }; 44 Define_module_def(); 45 } 46 if (typeof BrowserDetection == 'undefined') { 47 BrowserDetection = { 48 "__namespace": true 49 }; 50 BrowserDetection_module_def(); 51 } 52 (function() { 53 BrowserisOld.prototype = { 54 firefox: undefined, 55 firefox36up: undefined, 56 firefox3up: undefined, 57 firefox4up: undefined, 58 ie: undefined, 59 ie55up: undefined, 60 ie5up: undefined, 61 ie7down: undefined, 62 ie8down: undefined, 63 ie8standard: undefined, 64 ie8standardUp: undefined, 65 ie9down: undefined, 66 ie9standardUp: undefined, 67 ipad: undefined, 68 windowsphone: undefined, 69 chrome: undefined, 70 chrome7up: undefined, 71 chrome8up: undefined, 72 chrome9up: undefined, 73 chrome81up: undefined, 74 iever: undefined, 75 mac: undefined, 76 major: undefined, 77 msTouch: undefined, 78 isTouch: undefined, 79 nav: undefined, 80 nav6: undefined, 81 nav6up: undefined, 82 nav7up: undefined, 83 osver: undefined, 84 safari: undefined, 85 safari125up: undefined, 86 safari3up: undefined, 87 verIEFull: undefined, 88 w3c: undefined, 89 webKit: undefined, 90 win: undefined, 91 win8AppHost: undefined, 92 win32: undefined, 93 win64bit: undefined, 94 winnt: undefined, 95 armProcessor: undefined 96 }; 97 Browseris.prototype = BrowserisOld.prototype; 98 Browseris.prototype.ie10standardUp = undefined; 99 Browseris.prototype.ie11 = undefined; 100 Browseris.prototype.ie11up = undefined; 101 Browseris.prototype.msEdge = undefined; 102 function Browseris() { 103 var agt = navigator.userAgent.toLowerCase(); 104 var navIdx; 105 106 this.osver = 1.0; 107 if (Boolean(agt)) { 108 var stOSVer = agt.substring(agt.indexOf("windows ") + 11); 109 110 this.osver = parseFloat(stOSVer); 111 } 112 this.major = parseInt(navigator.appVersion); 113 this.msEdge = agt.indexOf("edge/") != -1; 114 var msieIdx = agt.indexOf("msie"); 115 var tridentIdx = agt.indexOf("trident"); 116 117 this.ie = msieIdx != -1 || tridentIdx != -1; 118 var stIEVer = "0"; 119 120 if (this.ie) { 121 if (msieIdx != -1) { 122 stIEVer = agt.substring(msieIdx + 5); 123 } 124 else { 125 var rvIdx = agt.indexOf("rv:"); 126 127 if (rvIdx != -1) { 128 stIEVer = agt.substring(rvIdx + 3); 129 } 130 } 131 } 132 this.iever = parseInt(stIEVer); 133 this.verIEFull = parseFloat(stIEVer); 134 this.ie4up = this.ie && this.major >= 4; 135 this.ie5up = this.ie && this.iever >= 5; 136 this.ie55up = this.ie && this.verIEFull >= 5.5; 137 this.ie6up = this.ie && this.iever >= 6;
138 this.ie7down = this.ie && this.iever <= 7; 139 this.ie8down = this.ie && this.iever <= 8; 140 this.ie9down = this.ie && this.iever <= 9; 141 this.ie7up = this.ie && this.iever >= 7; 142 this.ie8standard = this.ie && Boolean(document.documentMode) && document.documentMode == 8; 143 this.ie8standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 8); 144 this.ie9standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 9); 145 this.ie10standardUp = this.ie && (Boolean(document.documentMode) && document.documentMode >= 10); 146 this.ie11 = this.ie && Boolean(document.documentMode) && document.documentMode == 11; 147 this.ie11up = this.ie && (Boolean(document.documentMode) && document.documentMode >= 11); 148 this.nav = agt.indexOf('mozilla') != -1 && agt.indexOf('spoofer') == -1 && agt.indexOf('compatible') == -1 && !this.ie; 149 this.nav6 = this.nav && this.major == 5; 150 this.nav6up = this.nav && this.major >= 5; 151 this.nav7up = false; 152 if (this.nav6up) { 153 navIdx = agt.indexOf("netscape/"); 154 if (navIdx >= 0) 155 this.nav7up = parseInt(agt.substring(navIdx + 9)) >= 7; 156 } 157 this.winnt = agt.indexOf("winnt") != -1 || agt.indexOf("windows nt") != -1; 158 this.win32 = this.major >= 4 && navigator.platform == "Win32" || agt.indexOf("win32") != -1 || agt.indexOf("32bit") != -1; 159 this.win64bit = agt.indexOf("win64") != -1; 160 this.win = this.winnt || this.win32 || this.win64bit; 161 this.safari = agt.indexOf("webkit") != -1 && !this.ie && !this.msEdge; 162 this.safari125up = false; 163 this.safari3up = false; 164 if (this.safari && this.major >= 5) { 165 navIdx = agt.indexOf("webkit/"); 166 if (navIdx >= 0) 167 this.safari125up = parseInt(agt.substring(navIdx + 7)) >= 125; 168 var verIdx = agt.indexOf("version/"); 169 170 if (verIdx >= 0) 171 this.safari3up = parseInt(agt.substring(verIdx + 8)) >= 3; 172 } 173 this.firefox = this.nav && agt.indexOf("firefox") != -1; 174 this.firefox3up = false; 175 this.firefox36up = false; 176 this.firefox4up = false; 177 if (this.firefox && this.major >= 5) { 178 var ffVerIdx = agt.indexOf("firefox/"); 179 180 if (ffVerIdx >= 0) { 181 var firefoxVStr = agt.substring(ffVerIdx + 8); 182 183 this.firefox3up = parseInt(firefoxVStr) >= 3; 184 this.firefox36up = parseFloat(firefoxVStr) >= 3.6; 185 this.firefox4up = parseInt(firefoxVStr) >= 4; 186 } 187 } 188 this.chrome = this.nav && agt.indexOf("chrome") != -1 && !this.ie && !this.msEdge; 189 this.chrome7up = false; 190 this.chrome8up = false; 191 this.chrome9up = false; 192 this.chrome81up = false; 193 if (this.chrome && this.major >= 5) { 194 var chmVerIdx = agt.indexOf("chrome/"); 195 196 if (chmVerIdx >= 0) { 197 var chmVerStr = agt.substring(chmVerIdx + 7); 198 var chmVerInt = parseInt(chmVerStr); 199 200 this.chrome7up = chmVerInt >= 7; 201 this.chrome8up = chmVerInt >= 8; 202 this.chrome9up = chmVerInt >= 9; 203 this.chrome81up = chmVerInt >= 81; 204 } 205 } 206 this.ipad = agt.indexOf("ipad") != -1; 207 this.windowsphone = agt.indexOf("windows phone") != -1; 208 this.aol = this.ie && agt.indexOf(" aol ") != -1; 209 this.mac = agt.indexOf("mac") != -1; 210 this.w3c = this.nav6up; 211 this.webKit = agt.indexOf("webkit") != -1 && !this.ie && !this.msEdge; 212 this.win8AppHost = agt.indexOf("msapphost") != -1; 213 this.msTouch = typeof navigator.msMaxTouchPoints != "undefined" && navigator.msMaxTouchPoints > 0; 214 this.isTouch = this.msTouch || "ontouchstart" in document.documentElement; 215 this.armProcessor = agt.indexOf("arm") != -1; 216 } 217 function BrowserisOld() { 218 var agt = navigator.userAgent.toLowerCase(); 219 var navIdx; 220 221 this.osver = 1.0; 222 if (Boolean(agt)) { 223 var stOSVer = agt.substring(agt.indexOf("windows ") + 11); 224 225 this.osver = parseFloat(stOSVer); 226 } 227 this.major = parseInt(navigator.appVersion); 228 this.nav = agt.indexOf('mozilla') != -1 && (agt.indexOf('spoofer') == -1 && agt.indexOf('compatible') == -1); 229 this.nav6 = this.nav && this.major == 5; 230 this.nav6up = this.nav && this.major >= 5; 231 this.nav7up = false; 232 if (this.nav6up) {
233 navIdx = agt.indexOf("netscape/"); 234 if (navIdx >= 0) 235 this.nav7up = parseInt(agt.substring(navIdx + 9)) >= 7; 236 } 237 this.ie = agt.indexOf("msie") != -1; 238 this.ipad = agt.indexOf("ipad") != -1; 239 this.windowsphone = agt.indexOf("windows phone") != -1; 240 this.aol = this.ie && agt.indexOf(" aol ") != -1; 241 if (this.ie) { 242 var stIEVer = agt.substring(agt.indexOf("msie ") + 5); 243 244 this.iever = parseInt(stIEVer); 245 this.verIEFull = parseFloat(stIEVer); 246 } 247 else 248 this.iever = 0; 249 this.ie4up = this.ie && this.major >= 4; 250 this.ie5up = this.ie && this.iever >= 5; 251 this.ie55up = this.ie && this.verIEFull >= 5.5; 252 this.ie6up = this.ie && this.iever >= 6; 253 this.ie7down = this.ie && this.iever <= 7; 254 this.ie8down = this.ie && this.iever <= 8; 255 this.ie9down = this.ie && this.iever <= 9; 256 this.ie7up = this.ie && this.iever >= 7; 257 this.ie8standard = this.ie && Boolean(document.documentMode) && document.documentMode == 8; 258 this.ie8standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 8; 259 this.ie9standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 9; 260 this.ie10standardUp = this.ie && Boolean(document.documentMode) && document.documentMode >= 10; 261 this.winnt = agt.indexOf("winnt") != -1 || agt.indexOf("windows nt") != -1; 262 this.win32 = this.major >= 4 && navigator.platform == "Win32" || agt.indexOf("win32") != -1 || agt.indexOf("32bit") != -1; 263 this.win64bit = agt.indexOf("win64") != -1; 264 this.win = this.winnt || this.win32 || this.win64bit; 265 this.mac = agt.indexOf("mac") != -1; 266 this.w3c = this.nav6up; 267 this.webKit = agt.indexOf("webkit") != -1; 268 this.safari = agt.indexOf("webkit") != -1; 269 this.safari125up = false; 270 this.safari3up = false; 271 if (this.safari && this.major >= 5) { 272 navIdx = agt.indexOf("webkit/"); 273 if (navIdx >= 0) 274 this.safari125up = parseInt(agt.substring(navIdx + 7)) >= 125; 275 var verIdx = agt.indexOf("version/"); 276 277 if (verIdx >= 0) 278 this.safari3up = parseInt(agt.substring(verIdx + 8)) >= 3; 279 } 280 this.firefox = this.nav && agt.indexOf("firefox") != -1; 281 this.firefox3up = false; 282 this.firefox36up = false; 283 this.firefox4up = false; 284 if (this.firefox && this.major >= 5) { 285 var ffVerIdx = agt.indexOf("firefox/"); 286 287 if (ffVerIdx >= 0) { 288 var firefoxVStr = agt.substring(ffVerIdx + 8); 289 290 this.firefox3up = parseInt(firefoxVStr) >= 3; 291 this.firefox36up = parseFloat(firefoxVStr) >= 3.6; 292 this.firefox4up = parseInt(firefoxVStr) >= 4; 293 } 294 } 295 this.win8AppHost = agt.indexOf("msapphost") != -1; 296 this.chrome = this.nav && agt.indexOf("chrome") != -1; 297 this.chrome7up = false; 298 this.chrome8up = false; 299 this.chrome9up = false; 300 this.chrome81up = false; 301 if (this.chrome && this.major >= 5) { 302 var chmVerIdx = agt.indexOf("chrome/"); 303 304 if (chmVerIdx >= 0) { 305 var chmVerStr = agt.substring(chmVerIdx + 7); 306 var chmVerInt = parseInt(chmVerStr); 307 308 this.chrome7up = chmVerInt >= 7; 309 this.chrome8up = chmVerInt >= 8; 310 this.chrome9up = chmVerInt >= 9; 311 this.chrome81up = chmVerInt >= 81; 312 } 313 } 314 this.msTouch = typeof navigator.msMaxTouchPoints != "undefined" && navigator.msMaxTouchPoints > 0; 315 this.isTouch = this.msTouch || "ontouchstart" in document.documentElement; 316 this.armProcessor = agt.indexOf("arm") != -1; 317 } 318 if (typeof _browserisFlight !== "undefined") { 319 BrowserDetection.userAgent = new Browseris(); 320 } 321 else { 322 BrowserDetection.userAgent = new BrowserisOld(); 323 } 324 })(); 325 browseris = BrowserDetection.userAgent; 326 bis = BrowserDetection.userAgent; 327 if (typeof BrowserStorage == 'undefined') { 328 BrowserStorage = { 329 "__namespace": true 330 }; 331 BrowserStorage_module_def(); 332 } 333 if (typeof CSSUtil == 'undefined') { 334 CSSUtil = { 335 "__namespace": true 336 }; 337 CSSUtil_module_def(); 338 } 339 ; 340 pxToNum = CSSUtil.pxToNum; 341 GetWidthFromPxString = CSSUtil.pxToFloat; 342 GetCurrentEltStyle = CSSUtil.getCurrentStyle; 343 GetCurrentEltStyleByNames = CSSUtil.getCurrentEltStyleByNames; 344 GetOpacity = CSSUtil.getOpacity; 345 SetOpacity = CSSUtil.setOpacity; 346 HasCssClass = CSSUtil.HasClass; 347 AddCssClassToElement = CSSUtil.AddClass; 348 RemoveCssClassFromElement = CSSUtil.RemoveClass; 349 getCurrentEltStyleByNames = CSSUtil.getCurrentEltStyleByNames; 350 if (typeof DOM == 'undefined') { 351 DOM = { 352 "__namespace": true 353 }; 354 DOM_module_def(); 355 } 356 fRightToLeft = DOM.rightToLeft; 357 cancelDefault = DOM.cancelDefault; 358 AbsLeft = DOM.AbsLeft; 359 AbsTop = DOM.AbsTop; 360 CancelEvent = DOM.CancelEvent; 361 GetElementsByName = DOM.GetElementsByName;
362 GetEventCoords = DOM.GetEventCoords; 363 GetEventSrcElement = DOM.GetEventSrcElement; 364 GetInnerText = DOM.GetInnerText; 365 PreventDefaultNavigation = DOM.PreventDefaultNavigation; 366 SetEvent = DOM.SetEvent; 367 if (typeof Encoding == 'undefined') { 368 Encoding = { 369 "__namespace": true 370 }; 371 Encoding_module_def(); 372 } 373 encodeScriptQuote = Encoding.EncodeScriptQuote; 374 STSHtmlEncode = Encoding.HtmlEncode; 375 STSHtmlEncode2 = Encoding.HtmlEncode2; 376 STSHtmlEncodeEx = Encoding.HtmlEncodeEx; 377 STSHtmlDecode = Encoding.HtmlDecode; 378 StAttrQuote = Encoding.AttrQuote; 379 STSScriptEncode = Encoding.ScriptEncode; 380 STSScriptEncodeWithQuote = Encoding.ScriptEncodeWithQuote; 381 CanonicalizeUrlEncodingCase = Encoding.CanonicalizeUrlEncodingCase; 382 EncodePath = Encoding.EncodePath; 383 if (typeof ExpFlighting == 'undefined') { 384 ExpFlighting = { 385 "__namespace": true 386 }; 387 ExpFlighting_module_def(); 388 } 389 if (typeof IE8Support == 'undefined') { 390 IE8Support = { 391 "__namespace": true 392 }; 393 IE8Support_module_def(); 394 } 395 if (typeof RequestUtil == 'undefined') { 396 RequestUtil = { 397 "__namespace": true 398 }; 399 RequestUtil_module_def(); 400 } 401 if (typeof StringUtil == 'undefined') { 402 StringUtil = { 403 "__namespace": true 404 }; 405 StringUtil_module_def(); 406 } 407 StBuildParam = StringUtil.BuildParam; 408 if (typeof TypeUtil == 'undefined') { 409 TypeUtil = { 410 "__namespace": true 411 }; 412 TypeUtil_module_def(); 413 } 414 IsArray = TypeUtil.IsArray; 415 IsNullOrUndefined = TypeUtil.IsNullOrUndefined; 416 ObjectUtil = { 417 "__namespace": true 418 }; 419 ObjectUtil_module_def(); 420 URI = function(uriString, options) { 421 var that = this; 422 var URI_POUND = "#"; 423 var URI_COLON = ":"; 424 var URI_FORWARDSLASH = "/"; 425 var URI_DOUBLE_FORWARDSLASHES = "//"; 426 var URI_QUESTIONMARK = "?"; 427 var URI_SEMICOLON = ";"; 428 var URI_AMPERSAND = "&"; 429 var URI_AT = "@"; 430 var URI_EQUAL = "="; 431 var URI_DELIMITERS = ";/?:@&=$,"; 432 var URI_AUTHORITY_TERMINATORS = "/?"; 433 var m_queryCaseInsensitive = false; 434 435 if (typeof options !== "undefined" && typeof options.queryCaseInsensitive === 'boolean') { 436 m_queryCaseInsensitive = options.queryCaseInsensitive; 437 } 438 var m_disableEncodingDecodingForLegacyCode = false; 439 440 if (typeof options !== "undefined" && typeof options.disableEncodingDecodingForLegacyCode === 'boolean') { 441 m_disableEncodingDecodingForLegacyCode = options.disableEncodingDecodingForLegacyCode; 442 } 443 var m_pathCaseInsensitive = false; 444 445 if (typeof options !== "undefined" && typeof options.pathCaseInsensitive === 'boolean') { 446 m_pathCaseInsensitive = options.pathCaseInsensitive; 447 } 448 var m_scheme = ""; 449 var m_user = ""; 450 var m_host = ""; 451 var m_port = ""; 452 var m_path = ""; 453 var m_pathEncoded = ""; 454 var m_parameters = ""; 455 var m_query = {}; 456 var m_fragment = ""; 457
458 this.getScheme = function() { 459 return m_scheme; 460 }; 461 this.setScheme = function(scheme) { 462 m_scheme = decodeURIComponentIfNecessary(scheme); 463 }; 464 this.getAuthority = function() { 465 return getAuthority(false); 466 }; 467 this.setAuthority = function(authority) { 468 parseAuthority(authority); 469 }; 470 this.getUser = function() { 471 return m_user; 472 }; 473 this.getHost = function() { 474 return m_host; 475 }; 476 this.getPort = function() { 477 return m_port; 478 }; 479 this.getPath = function(trimTrailingSlash) { 480 var retPath = m_path; 481 482 if (typeof trimTrailingSlash === 'boolean' && trimTrailingSlash) { 483 if (retPath !== null && retPath.lastIndexOf(URI_FORWARDSLASH) === retPath.length - 1) { 484 retPath = retPath.slice(0, -1); 485 } 486 } 487 return retPath; 488 }; 489 this.setPath = function(path) { 490 if (path.indexOf(URI_FORWARDSLASH) !== 0) { 491 path = URI_FORWARDSLASH + path; 492 } 493 parsePath(path); 494 }; 495 this.getPathSegments = function() { 496 if (m_path === null) { 497 return []; 498 } 499 var ret = m_path.split(URI_FORWARDSLASH); 500 501 if (ret.length > 0) { 502 if (ret[0] === "") { 503 ret.shift(); 504 } 505 else if (ret[ret.length - 1] === "") { 506 ret.pop(); 507 } 508 } 509 return ret; 510 }; 511 this.getLastPathSegment = function(includeParameters) { 512 var pathSegments = that.getPathSegments(); 513 514 if (pathSegments.length === 0) { 515 return ""; 516 } 517 else { 518 var retPath = pathSegments[pathSegments.length - 1]; 519 520 if (typeof includeParameters !== 'boolean' || !includeParameters) { 521 var paramBeginPos = retPath.indexOf(URI_SEMICOLON); 522 523 if (paramBeginPos >= 0) { 524 retPath = retPath.substring(0, paramBeginPos); 525 } 526 } 527 return retPath; 528 } 529 }; 530 this.getParameters = function() { 531 return m_parameters; 532 }; 533 this.getQuery = function() { 534 return serializeQuery(m_query); 535 }; 536 this.setQuery = function(query) { 537 var queryObject = deserializeQuery(query); 538 539 that.setQueryFromObject(queryObject); 540 }; 541 this.getQueryAsObject = function() { 542 return m_query; 543 }; 544 this.setQueryFromObject = function(queryObj) { 545 m_query = {}; 546 for (var queryKey in queryObj) { 547 if (queryObj.hasOwnProperty(queryKey)) { 548 that.setQueryParameter(queryKey, queryObj[queryKey]); 549 } 550 } 551 }; 552 this.getQueryParameter = function(queryKey) { 553 var ret = null; 554 var query = that.getQueryAsObject(); 555 556 if (m_queryCaseInsensitive) { 557 for (var key in query) { 558 if (m_query.hasOwnProperty(key) && key.toLowerCase() === queryKey.toLowerCase()) { 559 ret = query[key]; 560 } 561 } 562 } 563 else { 564 ret = query[queryKey]; 565 } 566 if (typeof ret !== 'undefined') { 567 return ret; 568 } 569 else { 570 return null; 571 } 572 }; 573 this.setQueryParameter = function(queryKey, queryValue) { 574 var queryKeyDecoded = decodeURIComponentIfNecessary(queryKey); 575 var queryValueDecoded = decodeURIComponentIfNecessary(queryValue); 576 577 m_query[queryKeyDecoded] = queryValueDecoded; 578 }; 579 this.removeQueryParameter = function(queryKey) { 580 var queryKeyDecoded = decodeURIComponentIfNecessary(queryKey); 581 582 delete m_query[queryKeyDecoded]; 583 }; 584 this.getFragment = function() { 585 return m_fragment; 586 }; 587 this.setFragment = function(fragment) { 588 if (fragment.indexOf(URI_POUND) === 0) { 589 fragment = fragment.substring(1); 590 } 591 m_fragment = decodeURIComponentIfNecessary(fragment); 592 }; 593 var isStringEqualInsensitive = function(a, b) { 594 if (a != null && b != null) { 595 return a.toLowerCase() === b.toLowerCase(); 596 } 597 else { 598 return a === b; 599 } 600 }; 601 var isStringEqual = function(a, b) { 602 return a === b; 603 }; 604 605 this.equals = function(uri) { 606 return m_scheme.toLowerCase() === (uri.getScheme()).toLowerCase() && m_user === uri.getUser() && m_host.toLowerCase() === (uri.getHost()).toLowerCase() && m_port === uri.getPort() && (m_pathCaseInsensitive ? isStringEqualInsensitive : isStringEqual)(that.getPath(true), uri.getPath(true)) && m_parameters === uri.getParameters() && (m_queryCaseInsensitive ? isStringEqualInsensitive : isStringEqual)(that.getQuery(), uri.getQuery()) && m_fragment === uri.getFragment(); 607 }; 608 this.equivalent = function(uri) { 609 return isStringEqualInsensitive(m_scheme, uri.getScheme()) && isStringEqualInsensitive(m_user, uri.getUser()) && isStringEqualInsensitive(m_host, uri.getHost()) && isStringEqualInsensitive(m_port, uri.getPort()) && isStringEqualInsensitive(that.getPath(true), uri.getPath(true)) && isStringEqualInsensitive(m_parameters, uri.getParameters()) && ObjectUtil.deepCompare(that.getQueryAsObject(), uri.getQueryAsObject(), DecodeCompare) && isStringEqualInsensitive(m_fragment, uri.getFragment()); 610 function DecodeCompare(l, r) { 611 var ll = URI.decodeURIComponent(l); 612 var rr = URI.decodeURIComponent(r); 613 614 return ll === rr; 615 } 616 };
617 this.getString = function(outputOptions) { 618 return getStringInternal(true, outputOptions); 619 }; 620 this.getDecodedStringForDisplay = function() { 621 return getStringInternal(false); 622 }; 623 this.getStringWithoutQueryAndFragment = function() { 624 return getStringWithoutQueryAndFragmentInternal(true); 625 }; 626 var getStringInternal = function(encoded, outputOptions) { 627 var ret = getStringWithoutQueryAndFragmentInternal(encoded, outputOptions); 628 var query = serializeQuery(m_query, encoded); 629 630 if (query !== "") { 631 ret += URI_QUESTIONMARK + query; 632 } 633 if (m_fragment !== "") { 634 ret += URI_POUND + (encoded ? encodeURIComponentIfNecessary(m_fragment) : m_fragment); 635 } 636 return ret; 637 }; 638 var getStringWithoutQueryAndFragmentInternal = function(encoded, outputOptions) { 639 var ret = ""; 640 641 if (m_scheme !== "") { 642 ret += (encoded ? encodeURIComponentIfNecessary(m_scheme) : m_scheme) + URI_COLON; 643 } 644 var authority = getAuthority(encoded, outputOptions); 645 646 if (authority !== "") { 647 ret += URI_DOUBLE_FORWARDSLASHES + authority; 648 } 649 if (m_pathEncoded !== "") { 650 ret += encoded ? m_pathEncoded : m_path; 651 } 652 return ret; 653 }; 654 var normalizeQueryKey = function(queryKey) { 655 var key = queryKey; 656 657 if (m_queryCaseInsensitive) { 658 key = key.toLowerCase(); 659 } 660 return key; 661 }; 662 var deserializeQuery = function(queryStr) { 663 var queryObj = {}; 664 665 if (queryStr.indexOf(URI_QUESTIONMARK) === 0) { 666 queryStr = queryStr.substring(1); 667 } 668 var queryParts = queryStr.split(/[;&]+/); 669 670 for (var queryIdx = 0; queryIdx < queryParts.length; queryIdx++) { 671 var queryPart = queryParts[queryIdx]; 672 var queryPartSegments = queryPart.split(URI_EQUAL); 673 674 if (queryPartSegments.length > 0) { 675 var queryKey = queryPartSegments[0]; 676 677 if (queryKey.length > 0) { 678 var queryValue = ""; 679 680 if (queryPartSegments.length == 2) { 681 queryValue = queryPartSegments[1]; 682 } 683 queryObj[queryKey] = queryValue; 684 } 685 } 686 } 687 return queryObj; 688 }; 689 var serializeQuery = function(queryObj, encoded) { 690 encoded = typeof encoded === "undefined" ? false : encoded; 691 var queryStr = ""; 692 693 for (var queryKey in queryObj) { 694 if (queryObj.hasOwnProperty(queryKey)) { 695 var key = queryKey; 696 var value = queryObj[queryKey]; 697 698 if (encoded) { 699 key = encodeURIComponentIfNecessary(key); 700 value = encodeURIComponentIfNecessary(value); 701 } 702 if (value === null || value === "") { 703 queryStr += key + URI_EQUAL + URI_AMPERSAND; 704 } 705 else { 706 queryStr += key + URI_EQUAL + value + URI_AMPERSAND; 707 } 708 } 709 } 710 if (queryStr !== "") { 711 queryStr = queryStr.slice(0, -1); 712 } 713 return queryStr; 714 }; 715 var parseURI = function() { 716 var remainingString = uriString; 717 var fragmentBeginPos = remainingString.indexOf(URI_POUND); 718 719 if (fragmentBeginPos >= 0) { 720 var fragment = remainingString.substring(fragmentBeginPos + 1); 721 722 that.setFragment(fragment); 723 remainingString = remainingString.substring(0, fragmentBeginPos);
724 } 725 var schemeEndPos = findOneOf(remainingString, URI_DELIMITERS); 726 727 if (schemeEndPos >= 0) { 728 var firstColonPos = remainingString.indexOf(URI_COLON); 729 730 if (firstColonPos >= 0 && firstColonPos === schemeEndPos) { 731 m_scheme = remainingString.substring(0, schemeEndPos); 732 remainingString = remainingString.substring(schemeEndPos + 1); 733 } 734 } 735 else { 736 parsePath(remainingString); 737 return; 738 } 739 var authority = ""; 740 var doubleSlashPos = remainingString.indexOf(URI_DOUBLE_FORWARDSLASHES); 741 742 if (doubleSlashPos >= 0 && doubleSlashPos === 0) { 743 remainingString = remainingString.substring(2); 744 var nothingElseLeft; 745 var authorityEndPos = findOneOf(remainingString, URI_AUTHORITY_TERMINATORS); 746 747 if (authorityEndPos >= 0) { 748 authority = remainingString.substring(0, authorityEndPos); 749 remainingString = remainingString.substring(authorityEndPos); 750 nothingElseLeft = false; 751 } 752 else { 753 authority = remainingString; 754 nothingElseLeft = true; 755 } 756 parseAuthority(authority); 757 if (nothingElseLeft) { 758 return; 759 } 760 } 761 var queryBeginPos = remainingString.indexOf(URI_QUESTIONMARK); 762 763 if (queryBeginPos >= 0) { 764 that.setQuery(remainingString.substring(queryBeginPos + 1)); 765 remainingString = remainingString.substring(0, queryBeginPos); 766 } 767 parsePath(remainingString); 768 }; 769 var parseAuthority = function(authority) { 770 m_host = authority; 771 var userNameEndPos = authority.lastIndexOf(URI_AT); 772 773 if (userNameEndPos >= 0) { 774 m_host = m_host.substring(userNameEndPos + 1); 775 } 776 var hostPortSeparatorPos = m_host.indexOf(URI_COLON); 777 778 if (userNameEndPos < 0 && hostPortSeparatorPos < 0) { 779 return; 780 } 781 var authorityComponents = authority; 782 783 if (userNameEndPos < 0) { 784 m_host = authorityComponents; 785 } 786 else { 787 m_user = authorityComponents.substring(0, userNameEndPos); 788 m_host = authorityComponents.substring(userNameEndPos + 1); 789 } 790 if (hostPortSeparatorPos >= 0) { 791 m_port = m_host.substring(hostPortSeparatorPos + 1); 792 m_host = m_host.substring(0, hostPortSeparatorPos); 793 } 794 m_user = decodeURIComponentIfNecessary(m_user); 795 m_host = decodeURIComponentIfNecessary(m_host); 796 }; 797 var parsePath = function(remainingString) { 798 var paramBeginPos = remainingString.indexOf(URI_SEMICOLON); 799 800 if (paramBeginPos >= 0) { 801 m_parameters = decodeURIComponentIfNecessary(remainingString.substring(paramBeginPos + 1)); 802 } 803 m_path = decodeURIComponentIfNecessary(remainingString); 804 var encodedPathSegments = remainingString.split(URI_FORWARDSLASH); 805 806 for (var i = 0; i < encodedPathSegments.length; ++i) { 807 var segment = encodedPathSegments[i]; 808 var segmentAndParameters = segment.split(URI_SEMICOLON); 809 var decodedSegment = decodeURIComponentIfNecessary(segmentAndParameters[0]); 810 811 encodedPathSegments[i] = encodeURIComponentIfNecessary(decodedSegment); 812 for (var j = 1; j < segmentAndParameters.length; ++j) { 813 var decodedParameter = decodeURIComponentIfNecessary(segmentAndParameters[j]); 814 815 encodedPathSegments[i] += URI_SEMICOLON + encodeURIComponentIfNecessary(decodedParameter); 816 } 817 } 818 m_pathEncoded = encodedPathSegments.join(URI_FORWARDSLASH); 819 }; 820 var findOneOf = function(str, searchValues) { 821 for (var strIdx = 0; strIdx < str.length; strIdx++) { 822 var c = str[strIdx]; 823 824 for (var delimIdx = 0; delimIdx < searchValues.length; delimIdx++) { 825 if (c === searchValues[delimIdx]) { 826 return strIdx; 827 } 828 } 829 } 830 return -1; 831 }; 832 var getUserEncodedIfNecessary = function() { 833 var user; 834 835 if (m_disableEncodingDecodingForLegacyCode) { 836 user = m_user; 837 } 838 else { 839 user = encodeURIComponentIfNecessary(m_user); 840 user = user.replace("%3A", ":"); 841 } 842 return user; 843 }; 844 var getAuthority = function(encoded, outputOptions) { 845 var doNotPercentEncodeHost = false; 846 847 if (typeof outputOptions !== "undefined" && typeof outputOptions.doNotPercentEncodeHost === 'boolean') { 848 doNotPercentEncodeHost = outputOptions.doNotPercentEncodeHost; 849 } 850 var authority = ""; 851 var user; 852 var host; 853 var port; 854 855 if (encoded) { 856 user = getUserEncodedIfNecessary(); 857 if (doNotPercentEncodeHost) { 858 host = m_host; 859 } 860 else { 861 host = encodeURIComponentIfNecessary(m_host); 862 } 863 port = encodeURIComponentIfNecessary(m_port); 864 } 865 else { 866 user = m_user; 867 host = m_host; 868 port = m_port; 869 } 870 if (user !== "") { 871 authority = user + URI_AT; 872 } 873 if (m_host !== "") { 874 authority += host; 875 } 876 if (m_port !== "") { 877 authority += URI_COLON + port; 878 } 879 return authority; 880 }; 881 var encodeURIComponentIfNecessary = function(component) { 882 return m_disableEncodingDecodingForLegacyCode ? component : encodeURIComponent(component); 883 }; 884 var decodeURIComponentIfNecessary = function(component) { 885 return m_disableEncodingDecodingForLegacyCode ? component : URI.decodeURIComponent(component); 886 }; 887 888 parseURI(); 889 }; 890 (function() { 891 var g_rgdwchMinEncoded = [0x00000000, 0x00000080, 0x00000800, 0x00010000, 0x00200000, 0x04000000, 0x80000000]; 892 893 function Vutf8ToUnicode(rgBytes) { 894 var ix = 0; 895 var strResult = ""; 896 var dwch, wch, uch; 897 var nTrailBytes, nTrailBytesOrig; 898 899 while (ix < rgBytes.length) { 900 if (rgBytes[ix] <= 0x007f) { 901 strResult += String.fromCharCode(rgBytes[ix++]); 902 } 903 else { 904 uch = rgBytes[ix++]; 905 nTrailBytes = Boolean(uch & 0x20) ? Boolean(uch & 0x10) ? 3 : 2 : 1; 906 nTrailBytesOrig = nTrailBytes;
907 dwch = uch & 0xff >>> 2 + nTrailBytes; 908 while (Boolean(nTrailBytes) && ix < rgBytes.length) { 909 --nTrailBytes; 910 uch = rgBytes[ix++]; 911 if (uch == 0) { 912 return strResult; 913 } 914 if ((uch & 0xC0) != 0x80) { 915 strResult += '?'; 916 break; 917 } 918 dwch = dwch << 6 | uch & 0x003f; 919 } 920 if (Boolean(nTrailBytes)) { 921 strResult += '?'; 922 break; 923 } 924 if (dwch < g_rgdwchMinEncoded[nTrailBytesOrig]) { 925 strResult += '?'; 926 break; 927 } 928 else if (dwch <= 0xffff) { 929 strResult += String.fromCharCode(dwch); 930 } 931 else if (dwch <= 0x10ffff) { 932 dwch -= 0x10000; 933 strResult += String.fromCharCode(0xD800 | dwch >>> 10); 934 strResult += String.fromCharCode(0xDC00 | dwch & 0x003FF); 935 } 936 else { 937 strResult += '?'; 938 } 939 } 940 } 941 return strResult; 942 } 943 function unescapeProperlyInternal(str) { 944 if (str == null) 945 return "null"; 946 var ix = 0, ixEntity = 0; 947 var strResult = ""; 948 var rgUTF8Bytes = []; 949 var ixUTF8Bytes = 0; 950 var hexString, hexCode; 951 952 while (ix < str.length) { 953 if (str.charAt(ix) == '%') { 954 if (str.charAt(++ix) == 'u') { 955 hexString = ""; 956 for (ixEntity = 0; ixEntity < 4 && ix < str.length; ++ixEntity) { 957 hexString += str.charAt(++ix); 958 } 959 while (hexString.length < 4) { 960 hexString += '0'; 961 } 962 hexCode = parseInt(hexString, 16); 963 if (isNaN(hexCode)) { 964 strResult += '?'; 965 } 966 else { 967 strResult += String.fromCharCode(hexCode); 968 } 969 } 970 else { 971 hexString = ""; 972 for (ixEntity = 0; ixEntity < 2 && ix < str.length; ++ixEntity) { 973 hexString += str.charAt(ix++); 974 } 975 while (hexString.length < 2) { 976 hexString += '0'; 977 } 978 hexCode = parseInt(hexString, 16); 979 if (isNaN(hexCode)) { 980 if (Boolean(ixUTF8Bytes)) { 981 strResult += Vutf8ToUnicode(rgUTF8Bytes); 982 ixUTF8Bytes = 0; 983 rgUTF8Bytes.length = ixUTF8Bytes; 984 } 985 strResult += '?'; 986 } 987 else { 988 rgUTF8Bytes[ixUTF8Bytes++] = hexCode; 989 } 990 } 991 } 992 else { 993 if (Boolean(ixUTF8Bytes)) { 994 strResult += Vutf8ToUnicode(rgUTF8Bytes); 995 ixUTF8Bytes = 0; 996 rgUTF8Bytes.length = ixUTF8Bytes; 997 } 998 strResult += str.charAt(ix++); 999 } 1000 } 1001 if (Boolean(ixUTF8Bytes)) { 1002 strResult += Vutf8ToUnicode(rgUTF8Bytes); 1003 ixUTF8Bytes = 0; 1004 rgUTF8Bytes.length = ixUTF8Bytes;
1005 } 1006 return strResult; 1007 } 1008 function URI_unescapeProperly(str) { 1009 var strResult = null; 1010 1011 try { 1012 strResult = decodeURIComponent(str); 1013 } 1014 catch (e) { 1015 strResult = unescapeProperlyInternal(str); 1016 } 1017 return strResult; 1018 } 1019 function URI_GetAbsoluteUrl(url) { 1020 var dummyAnchor = document.createElement('a'); 1021 1022 dummyAnchor.href = url; 1023 var retVal = dummyAnchor.href; 1024 1025 dummyAnchor = null; 1026 return retVal; 1027 } 1028 ; 1029 function URI_RemoveQueryParameterFromUrl(stURL, stParameterName) { 1030 var startArg = stURL.indexOf("?"); 1031 var startFragment = stURL.indexOf("#"); 1032 1033 if (-1 == startArg) 1034 return stURL; 1035 if (-1 == startFragment) 1036 startFragment = stURL.length; 1037 if (startFragment <= startArg) 1038 return stURL; 1039 var stUrlArgs = stURL.substr(startArg, startFragment - startArg); 1040 var re = new RegExp("[&?]" + stParameterName + "=[^&]*", ""); 1041 1042 stUrlArgs = stUrlArgs.replace(re, ""); 1043 if (stUrlArgs.length > 0 && "&" == stUrlArgs[0]) { 1044 stUrlArgs = "?" + stUrlArgs.substr(1); 1045 } 1046 return stURL.substr(0, startArg) + stUrlArgs + stURL.substr(startFragment); 1047 } 1048 function URI_RemoveUrlKeyValue(keyName, url) { 1049 var re = new RegExp(keyName + "=[^&]*&"); 1050 1051 url = url.replace(re, ""); 1052 re = new RegExp(keyName + "=[^&]*"); 1053 url = url.replace(re, ""); 1054 return url; 1055 } 1056 function URI_RemoveParametersFromUrl(url) { 1057 var paramsBeginPos = url.indexOf('?'); 1058 1059 if (paramsBeginPos == -1) 1060 return url; 1061 else 1062 return url.substr(0, paramsBeginPos); 1063 } 1064 function URI_StURLSetVar2(stURL, stVar, stValue) { 1065 var stNewSet = stVar + "=" + stValue; 1066 var ichQ = stURL.indexOf("?"); 1067 var ichH = stURL.indexOf("#"); 1068 1069 if (ichQ != -1) { 1070 var ich = stURL.indexOf("?" + stVar + "=", ichQ); 1071 1072 if (ich == -1) { 1073 ich = stURL.indexOf("&" + stVar + "=", ichQ); 1074 if (ich != -1) 1075 stNewSet = "&" + stNewSet; 1076 } 1077 else { 1078 stNewSet = "?" + stNewSet; 1079 } 1080 if (ich != -1) { 1081 var re = new RegExp("[&?]" + stVar + "=[^&#]*", ""); 1082 1083 stURL = stURL.replace(re, stNewSet); 1084 } 1085 else { 1086 if (ichH == -1) 1087 stURL = stURL + "&" + stNewSet; 1088 else 1089 stURL = stURL.substr(0, ichH) + "&" + stNewSet + stURL.substr(ichH); 1090 } 1091 } 1092 else { 1093 if (ichH == -1) 1094 stURL = stURL + "?" + stNewSet; 1095 else 1096 stURL = stURL.substr(0, ichH) + "?" + stNewSet + stURL.substr(ichH); 1097 } 1098 return stURL; 1099 } 1100 function URI_CompleteDecode(strIn) { 1101 if (typeof strIn == 'undefined' || strIn == null) 1102 return strIn; 1103 var strOut = strIn; 1104 var dStr = URI_unescapeProperly(strOut); 1105 1106 while (strOut != dStr) { 1107 strOut = dStr; 1108 dStr = URI_unescapeProperly(strOut); 1109 } 1110 return strOut; 1111 } 1112 function URI_RestructureFilterUrl(strDocUrl, filterNo) { 1113 var j = filterNo + 1; 1114 var filterArray = strDocUrl.match(new RegExp("FilterField" + String(j) + "=[^&]*")); 1115 var isMultipleFilter = false; 1116 1117 if (!Boolean(filterArray)) { 1118 filterArray = strDocUrl.match(new RegExp("FilterFields" + String(j) + "=[^&]*"));
1119 isMultipleFilter = filterArray != null; 1120 } 1121 for (var i = filterNo; filterArray != null; i++) { 1122 var strNew = isMultipleFilter ? "FilterFields" + String(i) : "FilterField" + String(i); 1123 var strOld = isMultipleFilter ? "FilterFields" + String(j) : "FilterField" + String(j); 1124 1125 strDocUrl = strDocUrl.replace(strOld, strNew); 1126 strNew = isMultipleFilter ? "FilterValues" + String(i) : "FilterValue" + String(i); 1127 strOld = isMultipleFilter ? "FilterValues" + String(j) : "FilterValue" + String(j); 1128 strDocUrl = strDocUrl.replace(strOld, strNew); 1129 strNew = "FilterOp" + String(i); 1130 strOld = "FilterOp" + String(j); 1131 strDocUrl = strDocUrl.replace(strOld, strNew); 1132 strNew = "FilterLookupId" + String(i); 1133 strOld = "FilterLookupId" + String(j); 1134 strDocUrl = strDocUrl.replace(strOld, strNew); 1135 strNew = "FilterData" + String(i); 1136 strOld = "FilterData" + String(j); 1137 strDocUrl = strDocUrl.replace(strOld, strNew); 1138 j++; 1139 filterArray = strDocUrl.match(new RegExp("FilterField" + String(j) + "=[^&]*")); 1140 if (!Boolean(filterArray)) 1141 filterArray = strDocUrl.match(new RegExp("FilterFields" + String(j) + "=[^&]*")); 1142 } 1143 return strDocUrl; 1144 } 1145 function URI_ParseMultiColumnValue(fieldValue, delimiter, bIncludeEmpty) { 1146 var strSubColumn; 1147 var subColumnValues = []; 1148 1149 if (delimiter == null) 1150 delimiter = ';#'; 1151 var lead = delimiter.charCodeAt(0); 1152 var trail = delimiter.charCodeAt(1); 1153 1154 if (fieldValue == null || fieldValue.length == 0) 1155 return subColumnValues; 1156 var strLead = delimiter.charAt(0);
1157 var strLeadLead = strLead + strLead; 1158 var escaped = new RegExp(strLeadLead, "g"); 1159 var unescaped = delimiter.charAt(0); 1160 var startLocal = 0; 1161 1162 if (fieldValue.substr(0, 2) == delimiter) { 1163 if (Boolean(bIncludeEmpty)) 1164 subColumnValues.push(''); 1165 startLocal = 2; 1166 } 1167 var end = startLocal; 1168 var bContainEscapedCharacters = false; 1169 var totalLength = fieldValue.length; 1170 1171 while (end < totalLength) { 1172 var index = fieldValue.indexOf(strLead, end); 1173 1174 if (index >= 0) { 1175 end = index; 1176 end++; 1177 if (fieldValue.charCodeAt(end) == trail) { 1178 if (end - 1 > startLocal) { 1179 strSubColumn = fieldValue.substr(startLocal, end - startLocal - 1); 1180 if (bContainEscapedCharacters) 1181 strSubColumn = strSubColumn.replace(escaped, unescaped); 1182 subColumnValues.push(strSubColumn); 1183 bContainEscapedCharacters = false; 1184 } 1185 else { 1186 subColumnValues.push(''); 1187 } 1188 end++; 1189 startLocal = end; 1190 continue; 1191 } 1192 else if (fieldValue.charCodeAt(end) == lead) { 1193 end++; 1194 bContainEscapedCharacters = true; 1195 continue; 1196 } 1197 else { 1198 throw "ArgumentException"; 1199 } 1200 } 1201 else { 1202 end = totalLength; 1203 } 1204 } 1205 if (end > startLocal) { 1206 strSubColumn = fieldValue.substr(startLocal, end - startLocal); 1207 if (bContainEscapedCharacters) 1208 strSubColumn = strSubColumn.replace(escaped, unescaped); 1209 subColumnValues.push(strSubColumn); 1210 } 1211 else if (Boolean(bIncludeEmpty)) 1212 subColumnValues.push(''); 1213 return subColumnValues; 1214 } 1215 function URI_ConvertMultiColumnValueToString(subColumnValues, delimiter, bAddLeadingTailingDelimiter) { 1216 if (delimiter == null) 1217 delimiter = ";#"; 1218 if (bAddLeadingTailingDelimiter == null) 1219 bAddLeadingTailingDelimiter = true; 1220 var strLead = delimiter.charAt(0);
1221 var strLeadLead = strLead + strLead; 1222 var escaped = new RegExp(delimiter.charAt(0), "g"); 1223 var bHasValue = false; 1224 var sb = ''; 1225 1226 for (var i = 0; i < subColumnValues.length; i++) { 1227 var strSubColumn = subColumnValues[i]; 1228 1229 if (strSubColumn != null && strSubColumn.length > 0) 1230 strSubColumn = strSubColumn.replace(escaped, strLeadLead); 1231 if (strSubColumn != null && strSubColumn.length > 0) 1232 bHasValue = true; 1233 if (bAddLeadingTailingDelimiter || i != 0) 1234 sb += delimiter; 1235 sb += strSubColumn; 1236 } 1237 if (bHasValue) { 1238 if (bAddLeadingTailingDelimiter) { 1239 sb += delimiter; 1240 } 1241 return sb; 1242 } 1243 else 1244 return ''; 1245 } 1246 URI.decodeURIComponent = URI_unescapeProperly; 1247 URI.getAbsolute = URI_GetAbsoluteUrl; 1248 URI.removeKeyValue = URI_RemoveUrlKeyValue; 1249 URI.removeParameters = URI_RemoveParametersFromUrl; 1250 URI.removeQueryParameter = URI_RemoveQueryParameterFromUrl; 1251 URI.stURLSetVar2 = URI_StURLSetVar2; 1252 URI.completeDecode = URI_CompleteDecode; 1253 URI.restructureFilterUrl = URI_RestructureFilterUrl; 1254 URI.parseMultiColumnValue = URI_ParseMultiColumnValue; 1255 URI.convertMultiColumnValueToString = URI_ConvertMultiColumnValueToString; 1256 })(); 1257 unescapeProperly = URI.decodeURIComponent; 1258 GetAbsoluteUrl = URI.getAbsolute; 1259 RemoveParametersFromUrl = URI.removeParameters; 1260 RemoveQueryParameterFromUrl = URI.removeQueryParameter; 1261 RemoveUrlKeyValue = URI.removeKeyValue; 1262 StURLSetVar2 = URI.stURLSetVar2; 1263 ParseMultiColumnValue = URI.parseMultiColumnValue; 1264 ConvertMultiColumnValueToString = URI.convertMultiColumnValueToString; 1265 CompleteDecode = URI.completeDecode; 1266 if (typeof URI_Encoding == 'undefined') { 1267 URI_Encoding = { 1268 "__namespace": true 1269 }; 1270 URI_Encoding_module_def(); 1271 } 1272 escapeUrlForCallback = URI_Encoding.escapeUrlForCallback; 1273 escapeProperly = URI_Encoding.encodeURIComponent; 1274 escapeProperlyCore = URI_Encoding.encodeURIComponent; 1275 escapeProperlyCoreCore = URI_Encoding.encodeURIComponent; 1276 PageContextInfo_InitializePrototype(); 1277 if (typeof Nav == 'undefined') { 1278 Nav = { 1279 "__namespace": true 1280 }; 1281 Nav_module_def(); 1282 } 1283 ajaxNavigate = Nav.ajaxNavigate; 1284 STSNavigate = Nav.navigate; 1285 GetUrlKeyValue = Nav.getUrlKeyValue; 1286 STSPageUrlValidation = function(url) { 1287 return Nav.pageUrlValidation(url, Strings.STS.L_InvalidPageUrl_Text); 1288 }; 1289 PageUrlValidation = function(url) { 1290 return Nav.pageUrlValidation(url, Strings.STS.L_InvalidPageUrl_Text); 1291 }; 1292 AjaxNavigate$isMDSURL = Nav.isMDSUrl; 1293 isPortalTemplatePage = Nav.isPortalTemplatePage; 1294 GoToHistoryLink = Nav.goToHistoryLink; 1295 GetGotoLinkUrl = Nav.getGoToLinkUrl; 1296 GoToLink = Nav.goToLink; 1297 GoToLinkOrDialogNewWindow = Nav.goToLinkOrDialogNewWindow; 1298 GoToDiscussion = Nav.goToDiscussion; 1299 GetSource = Nav.getSource; 1300 RemoveMDSQueryParametersFromUrl = Nav.removeMDSQueryParametersFromUrl; 1301 AjaxNavigate$_GetWindowLocationNoHash = Nav.getWindowLocationNoHash; 1302 AjaxNavigate$WantsNewTab = Nav.wantsNewTab; 1303 AjaxNavigate$parseHash = Nav.parseHash; 1304 AjaxNavigate$_UrlFromHashBag = Nav.urlFromHashBag; 1305 AjaxNavigate$_getAjaxLocationWindow = Nav.getAjaxLocationWindow; 1306 IsSTSPageUrlValid = Nav.isPageUrlValid; 1307 AjaxNavigate$OnClickHook = Nav.onClickHook; 1308 AjaxNavigate$convertRegularURLtoMDSURL = Nav.convertRegularURLtoMDSURL; 1309 AjaxNavigate$convertMDSURLtoRegularURL = Nav.ajaxNavigate.convertMDSURLtoRegularURL; 1310 if (typeof ProfileCache == 'undefined') { 1311 ProfileCache = { 1312 "__namespace": true 1313 }; 1314 ProfileCache_module_def(); 1315 } 1316 if (typeof ListModule == 'undefined') { 1317 ListModule = { 1318 "__namespace": true 1319 }; 1320 ListModule_module_def(); 1321 } 1322 BasePermissions = ListModule.BasePermissions; 1323 ContextInfo = ListModule.Context; 1324 CTXTYPE_EDITMENU = ListModule.Context.Type.EditMenu; 1325 CTXTYPE_VIEWSELECTOR = ListModule.Context.Type.ViewSelector; 1326 if (typeof List_Util == 'undefined') { 1327 List_Util = { 1328 "__namespace": true 1329 }; 1330 List_Util_module_def(); 1331 } 1332 ctxInitItemState = ListModule.Util.ctxInitItemState; 1333 ClearSelectedItemsDict = ListModule.Util.clearSelectedItemsDict; 1334 CreateItemPropertiesTitleUrl = ListModule.Util.createItemPropertiesTitleUrl; 1335 GetAttributeFromItemTable = ListModule.Util.getAttributeFromItemTable; 1336 GetSelectedItemsDict = ListModule.Util.getSelectedItemsDict; 1337 RemoveOnlyPagingArgs = ListModule.Util.removeOnlyPagingArgs; 1338 RemovePagingArgs = ListModule.Util.removePagingArgs; 1339 ShowAttachmentRows = ListModule.Util.showAttachmentRows; 1340 CanUploadFile = ListModule.Util.canUploadFile; 1341 addWPQtoId = ListModule.Util.addWPQtoId; 1342 isDefinedAndNotNullOrEmpty = ListModule.Util.isDefinedAndNotNullOrEmpty; 1343 HasEditPermission = ListModule.Util.hasEditPermission; 1344 getHostUrl = ListModule.Util.getHostUrl; 1345 ReconcileQstringFilters = ListModule.Util.reconcileQstringFilters; 1346 QstringStruct = ListModule.Util.Qstring; 1347 if (typeof SuiteNavCommon == 'undefined') { 1348 SuiteNavCommon = { 1349 "__namespace": true 1350 }; 1351 SuiteNavCommon_module_def(); 1352 } 1353 if (typeof OnePageUtil == 'undefined') { 1354 OnePageUtil = { 1355 "__namespace": true 1356 }; 1357 OnePageUtil_module_def(); 1358 } 1359 if (Flighting == null) { 1360 Flighting = {}; 1361 Flighting.ExpFeatures = []; 1362 } 1363 Flighting.VariantConfiguration = {}; 1364 Flighting.VariantConfiguration.IsExpFeatureClientEnabled = function(id) { 1365 var elem = Math.floor(id / 32); 1366 var mask; 1367 1368 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("AF5A380E-20E0-4096-BA87-2C4CDFB4DBDF"))) { 1369 var expFeatures = Flighting.ExpFeatures; 1370 var pageContextInfo = window['_spPageContextInfo']; 1371 1372 if (expFeatures.length === 0 && pageContextInfo != null && pageContextInfo.ExpFeatures != null) { 1373 expFeatures = _spPageContextInfo.ExpFeatures; 1374 } 1375 if (elem < 0 || elem >= expFeatures.length) { 1376 return false; 1377 } 1378 mask = 1 << id % 32; 1379 return (expFeatures[elem] & mask) != 0; 1380 } 1381 else { 1382 if (elem < 0 || elem >= Flighting.ExpFeatures.length) { 1383 return false; 1384 } 1385 mask = 1 << id % 32; 1386 return (Flighting.ExpFeatures[elem] & mask) != 0; 1387 } 1388 }; 1389 String.prototype.trim = function() { 1390 return (this.replace(/^\s\s*/, '')).replace(/\s\s*$/, ''); 1391 }; 1392 currentCtx = null; 1393 itemTable = null; 1394 if ('undefined' == typeof g_supportFiles) 1395 g_supportFiles = new Array(0); 1396 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("79D8320F-D4AA-45D1-A83F-9B7AF522EE5C"))) { 1397 OnePageUtil.overrideEventListenerFunctions(window); 1398 OnePageUtil.overrideEventListenerFunctions(document); 1399 var timerManager = OnePageUtil.GetTimerManager(); 1400 1401 timerManager.overrideTimer(); 1402 } 1403 if (!Boolean(ULS)) 1404 ULS = new ULSObject; 1405 ULSObject.prototype = { 1406 bucket: undefined, 1407 request: undefined, 1408 Correlation: undefined, 1409 OnReceiveBucketParameters: undefined, 1410 WebServiceNS: undefined, 1411 file: undefined, 1412 line: undefined, 1413 callStack: undefined, 1414 clientInfo: undefined, 1415 enable: undefined 1416 }; 1417 if (typeof window.onerror != 'undefined' && window.onerror != ULSOnError) { 1418 ULS.OriginalOnError = window.onerror; 1419 window.onerror = ULSOnError; 1420 } 1421 if (!Boolean(ULSCat)) 1422 ULSCat = {}; 1423 ULSCat.msoulscat_WSS_General = 'WSS'; 1424 ULSCat.msoulscat_WSS_DeltaManager = 'DeltaManager'; 1425 ULSCat.msoulscat_WSS_Inplview = 'Inplview'; 1426 ULSCat.msoulscat_WSS_JsGrid = 'JsGrid'; 1427 ULSCat.msoulscat_WSS_MediaPlayer = 'MediaPlayer'; 1428 ULSCat.msoulscat_WSS_SPGantt = 'SPGantt'; 1429 ULS.AssertJS = function(category, condition, message) { 1430 if (condition == false) { 1431 var formattedMessage = "[Category: " + category + "] [Assert: " + message + "]"; 1432 1433 ULSSendExceptionImpl(formattedMessage, window.location.href, 0, ULS.AssertJS.caller); 1434 } 1435 }; 1436 ULS.SendErrorMessageJS = function(category, message) { 1437 var formattedMessage = "[Category: " + category + "] [Error: " + message + "]"; 1438 1439 ULSSendExceptionImpl(formattedMessage, window.location.href, 0, ULS.SendErrorMessageJS.caller); 1440 }; 1441 ULS.SendExceptionJS = function(category, exception) { 1442 var formattedMessage; 1443 1444 if (exception != null) { 1445 var exmessage = exception.message; 1446 var exname = exception.name; 1447 1448 if (typeof exmessage != "undefined" && typeof exname != "undefined") { 1449 formattedMessage = "[Category: " + category + "] [Exception Name: " + exname + ", Exception Message: " + exmessage + "]"; 1450 } 1451 else { 1452 formattedMessage = "[Category: " + category + "] [Exception: " + exception.toString() + "]"; 1453 } 1454 } 1455 else { 1456 formattedMessage = "[Category: " + category + "] [Exception: Null Exception]"; 1457 } 1458 ULSSendExceptionImpl(formattedMessage, window.location.href, 0, ULS.SendExceptionJS.caller); 1459 }; 1460 if (typeof Sys != "undefined" && Boolean(Sys) && typeof Sys.Application != "undefined" && Boolean(Sys.Ap
1460plication) && typeof Sys.Application.notifyScriptLoaded == "function") { 1461 Sys.Application.notifyScriptLoaded(); 1462 } 1463 if (typeof NotifyScriptLoadedAndExecuteWaitingJobs == "function") { 1464 NotifyScriptLoadedAndExecuteWaitingJobs("owsbrows.js"); 1465 } 1466 if (typeof spWriteProfilerMark == 'function') 1467 spWriteProfilerMark("perfMarkEnd_" + "init.js"); 1468 g_cde = {}; 1469 ; 1470 ; 1471 LegalUrlChars = [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, true, false, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]; 1472 poundIndex = 35; 1473 percentIndex = 37; 1474 if (typeof Sys != "undefined" && Boolean(Sys) && Boolean(Sys.Application)) { 1475 Sys.Application.notifyScriptLoaded(); 1476 } 1477 if (typeof NotifyScriptLoadedAndExecuteWaitingJobs == "function") { 1478 NotifyScriptLoadedAndExecuteWaitingJobs("commonvalidation.js"); 1479 } 1480 recycleBinEnabled = 0; 1481 cascadeDeleteWarningMessage = ""; 1482 bIsFileDialogView = false; 1483 g_ViewIdToViewCounterMap = []; 1484 g_ctxDict = []; 1485 bIsFileDialogView = false; 1486 g_ViewIdToViewCounterMap = []; 1487 g_ctxDict = []; 1488 browserUpdatedWithServerRedirectedUrl = false; 1489 g_objProjectTaskLaunch = null; 1490 g_ssImporterObj = null; 1491 g_fSSImporter = false; 1492 if (typeof Date.now === 'undefined' || Date.now === null) { 1493 Date.now = function() { 1494 return Number(new Date()); 1495 }; 1496 } 1497 JSRequest = { 1498 QueryString: null, 1499 FileName: null, 1500 PathName: null, 1501 EnsureSetup: function() { 1502 if (JSRequest.QueryString != null) 1503 return; 1504 JSRequest.QueryString = []; 1505 var queryString = (ajaxNavigate.get_search()).substring(1); 1506 var pairs = queryString.split("&"); 1507 var p; 1508 1509 for (var i = 0; i < pairs.length; i++) { 1510 var pair = pairs[i]; 1511 1512 p = pair.indexOf("="); 1513 if (p > -1) { 1514 var key = pair.substring(0, p); 1515 var value = pair.substring(p + 1); 1516 1517 JSRequest.QueryString[key] = value; 1518 } 1519 } 1520 var path = JSRequest.PathName = window.location.pathname; 1521 1522 p = path.lastIndexOf("/"); 1523 if (p > -1) { 1524 JSRequest.FileName = path.substring(p + 1); 1525 } 1526 else { 1527 JSRequest.PageName = path; 1528 } 1529 } 1530 }; 1531 ExpGroupWPListName = "WSS_ExpGroupWPList"; 1532 ExpGroupCookiePrefix = "WSS_ExpGroup_"; 1533 ExpGroupCookieDelimiter = "&"; 1534 ExpGroupMaxWP = 11; 1535 ExpGroupMaxCookieLength = 3960; 1536 g_ExpGroupCAMLQueue = new Array(0); 1537 g_ExpGroupXSLTQueue = new Array(0); 1538 g_ExpGroupInProgress = false; 1539 g_ExpInitializing = false; 1540 g_ExpGroupTable = []; 1541 g_ExpGroupNeedsState = false; 1542 g_ExpGroupParseStage = false; 1543 locked = false; 1544 if ("undefined" == typeof _v_dictSod) { 1545 _v_dictSod = []; 1546 } 1547 if ("undefined" == typeof _v_dictCss) { 1548 _v_dictCss = []; 1549 } 1550 Sods = { 1551 missing: 1, 1552 loading: 2, 1553 pending: 3, 1554 loaded: 4, 1555 error: 5 1556 }; 1557 _v_qsod = []; 1558 _v_sodctx = { 1559 "document": document, 1560 "window": window 1561 }; 1562 Sod.prototype = { 1563 url: undefined, 1564 key: undefined, 1565 loaded: undefined, 1566 depkeys: undefined, 1567 state: undefined, 1568 qfn: undefined, 1569 reset: undefined 1570 }; 1571 SodCallbackInfo.prototype = { 1572 success: undefined, 1573 error: undefined, 1574 expectedType: undefined 1575 }; 1576 g_PendingLoadSodQueue = null;
1577 g_viewportHeight = null; 1578 g_viewportWidth = null; 1579 g_wpadderHeight = 0; 1580 g_setWidthInited = false; 1581 g_workspaceResizedHandlers = []; 1582 g_setScrollPos = false; 1583 g_frl = false; 1584 g_spribbon = new Object(); 1585 g_spribbon.isMinimized = true; 1586 g_spribbon.isInited = false; 1587 g_spribbon.minimizedHeight = "35px"; 1588 g_spribbon.maximizedHeight = "126px"; 1589 v_stsOpenDoc2 = null; 1590 v_strStsOpenDoc2 = null; 1591 deleteInstance = 0; 1592 firstCalled = true; 1593 _callbackinitdelayed = false; 1594 g_spDragDropUpload = {}; 1595 SPDragUploadInfo.prototype = { 1596 webPartId: undefined, 1597 serverUrl: undefined, 1598 siteRelativeUrl: undefined, 1599 listName: undefined, 1600 rootFolder: undefined, 1601 overwriteAll: undefined, 1602 hideProgressBar: undefined, 1603 refreshFunc: undefined, 1604 preUploadFunc: undefined, 1605 postUploadFunc: undefined, 1606 checkPermissionFunc: undefined 1607 }; 1608 g_QuickLaunchControlIds = []; 1609 PageMinimized(); 1610 OverrideDefaultMethod("confirm", "LogConfirm", 1); 1611 OverrideDefaultMethod("alert", "LogAlert", 1); 1612 SupplementDefaultMethod("onerror", "LogOnError", 5); 1613 IMNControlObj = null; 1614 bIMNControlInited = false; 1615 IMNDictionaryObj = null; 1616 IMNDictionaryPresenceTextObj = null; 1617 bIMNSorted = false; 1618 bIMNOnloadAttached = false; 1619 IMNOrigScrollFunc = null; 1620 bIMNInScrollFunc = false; 1621 IMNSortableObj = null; 1622 IMNHeaderObj = null; 1623 IMNNameDictionaryObj = null; 1624 IMNNameDictionaryPresenceTextObj = null; 1625 IMNShowOfflineObj = null; 1626 OwaLang = "1033"; 1627 OwaRoot = "owa/"; 1628 OwaSharedHoverCardJsKey = "sharedhovercard.js"; 1629 OwaSharedHoverCardStringsJsKey = "sharedhovercard.strings.js"; 1630 SharedHoverCardHideTime = 800; 1631 SharedHoverCardDelayTimer = null; 1632 SharedHoverCardDelayTime = 250; 1633 SharedHoverCardDelayed = null; 1634 SharedHoverCardPending = null; 1635 currentShowHoverCardInstance = 0; 1636 nextShowHoverCardInstance = 0; 1637 currentShowHoverCardInstanceBootstrappedState = false; 1638 IMNImageInfo_InitializePrototype(); 1639 imnCount = 0; 1640 imnElemsCount = 0; 1641 imnMarkerBatchSize = 4; 1642 imnMarkerBatchDelay = 40; 1643 sharedHoverCardsCount = 0; 1644 sharedHoverCardElementsCount = 0; 1645 sharedHoverCardMarkerBatchSize = 4; 1646 sharedHoverCardMarkerBatchDelay = 40; 1647 IsIFrameSharedHoverCard = false; 1648 SharedHoverCardIFrame = null; 1649 SharedHoverCardIFrameCode = "<!DOCTYPE html><html><head></head>\ 1650 <body style='background-color:#ffffff; left:-9px; top:-9px'>\ 1651 <script type='text/javascript'>var g_Workspace = 's4-workspace'; var files = new Array();\ 1652 function FindFiles() {\ 1653 var scripts = window.parent.document.getElementsByTagName('script');\ 1654 for (var i = 0; i < scripts.length; i++) {\ 1655 var src = scripts[i].src; if (src.indexOf('/init.js') != -1 || src.indexOf('/init.debug.js') != -1) files[0] = src;\ 1656 else if (src.indexOf('/core.js') != -1 || src.indexOf('/core.debug.js') != -1) files[1] = src;\ 1657 }\ 1658 }\ 1659 function LoadFiles(index) {\ 1660 if (index >= files.length) {\ 1661 InitIFrameSharedHoverCard();\ 1662 return;\ 1663 }\ 1664 var scriptTag = document.createElement('script'); scriptTag.src = files[index];\ 1665 if (scriptTag.readyState) {\ 1666 scriptTag.onreadystatechange = function () {\ 1667 if (scriptTag.readyState == 'loaded' || scriptTag.readyState == 'complete') { LoadFiles(index + 1); }\ 1668 };\ 1669 } else {\ 1670 scriptTag.onload = function () { LoadFiles(index + 1); };\ 1671 }\ 1672 document.getElementsByTagName('head')[0].appendChild(scriptTag);\ 1673 }\ 1674 if (window.parent != null) { FindFiles(); LoadFiles(0); }\ 1675 </script></body></html>\ 1676"; 1677 ; 1678 _spBodyOnLoadCalled = false; 1679 if (typeof _spBodyOnLoadFunctions === "undefined" || _spBodyOnLoadFunctions === null) { 1680 _spBodyOnLoadFunctions = []; 1681 } 1682 _spFormOnSubmitCalled = false; 1683 _spBodyOnPageShowRegistered = false; 1684 _spBodyOnLoadCalled = false; 1685 if ("undefined" != typeof _spBodyOnLoad) { 1686 _spBodyOnLoad = undefined; 1687 } 1688 if ("undefined" != typeof _spRestoreScrollForDiv_rscr) { 1689 _spRestoreScrollForDiv_rscr = undefined; 1690 } 1691 if (_spBodyOnLoadFunctionNames == null) { 1692 _spBodyOnLoadFunctionNames = []; 1693 _spBodyOnLoadFunctionNames.push("_spBodyOnLoad"); 1694 _spBodyOnLoadFunctionNames.push("_spRestoreScrollForDiv_rscr"); 1695 } 1696 _spFormOnSubmitCalled = false; 1697 _spBodyOnPageShowRegistered = false; 1698 _spPageLoadedRegistered = false; 1699 _inlineEditString = null; 1700 _spOriginalFormAction = null; 1701 g_numberOfYields = 10; 1702 g_spPreFetchKeys = []; 1703 _spSuppressFormOnSubmitWrapper = false; 1704 _inlineEditString = null; 1705 _spPageLoadedRegistered = false; 1706 g_fAnimateListCSR = true; 1707 g_fAreAllSodsLoaded = false; 1708 if (document.body == null || document.body.firstChild == null) { 1709 if (typeof document.addEventListener != 'undefined' && typeof window.msWriteProfilerMark != 'undefined') { 1710 document.addEventListener("DOMContentLoaded", function() { 1711 window.msWriteProfilerMark("DOMContentLoaded"); 1712 }, false); 1713 } 1714 AttachEvent("DOMContentLoaded", _spBodyOnLoadWrapper, document); 1715 window.onload = _spBodyOnLoadWrapper; 1716 AttachEvent("hashchange", _bodyOnHashChangeHandler, window); 1717 } 1718 DeveloperDashboard = { 1719 wnd: null, 1720 msgQueue: [], 1721 cookie: 'WSS_DeveloperDashboard', 1722 PostMsg: function(to, subject, msg) { 1723 DeveloperDashboard.msgQueue.push({ 1724 to: to, 1725 subject: subject, 1726 msg: msg 1727 }); 1728 } 1729 }; 1730 (function() { 1731 window.setTimeout(function() { 1732 ddInit(); 1733 ddToggleCScope(); 1734 }, 0); 1735 })(); 1736 flyoutsAllowed = false; 1737 g_ExecuteOrWaitJobs = new Object(); 1738 cuiKeyHash = {}; 1739 cuiKeyHash[219] = 91; 1740 cuiKeyHash[221] = 93; 1741 cuiKeyHash[51] = 35; 1742 cuiKeyHash[186] = 59; 1743 cuiKeyHash[187] = 61; 1744 cuiKeyHash[188] = 44; 1745 cuiKeyHash[189] = 45; 1746 cuiKeyHash[190] = 46; 1747 cuiKeyHash[191] = 47; 1748 cuiKeyHash[222] = 39; 1749 g_ribbonHeaderScaleClass = ['ms-cui-tts', 'ms-cui-tts-scale-1', 'ms-cui-tts-scale-2']; 1750 SPRibbonInfo.prototype.buildMinimized = undefined; 1751 SPRibbonInfo.prototype.initialTabId = undefined; 1752 StatusIdWithTopPriority = null; 1753 StatusColorWithTopPriority = null; 1754 StatusPriority = { 1755 red: 4, 1756 yellow: 3, 1757 green: 2, 1758 blue: 1 1759 }; 1760 StatusBarClassNames = { 1761 "4": "ms-status-red", 1762 "3": "ms-status-yellow", 1763 "2": "ms-status-green", 1764 "1": "ms-status-blue" 1765 }; 1766 ColorMap = { 1767 red: 4, 1768 yellow: 3, 1769 green: 2, 1770 blue: 1 1771 }; 1772 g_uniqueIndex = 0; 1773 g_dlgWndTop = null; 1774 g_spDlgLauncher = true; 1775 g_ModalDialogCount = 0; 1776 g_overlayPopup = undefined; 1777 g_childDialog = undefined; 1778 CommonGlobalDialogReturnValue_InitializePrototype(); 1779 commonModalDialogReturnValue = new CommonGlobalDialogReturnValue(); 1780 if (!(window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { 1781 var raiseNav = function() { 1782 if ("unknown" != typeof Sys && "undefined" != typeof Sys && null != Sys && null != Sys.Application) { 1783 Sys.Application.add_load(function() { 1784 window.setTimeout(function() { 1785 ajaxNavigate._raiseNavigate(ajaxNavigate); 1786 }, 0); 1787 }); 1788 } 1789 }; 1790 var aListener = function() { 1791 document.removeEventListener("DOMContentLoaded", aListener, false); 1792 raiseNav(); 1793 }; 1794 1795 if (Boolean(document.addEventListener)) { 1796 document.addEventListener("DOMContentLoaded", aListener, false); 1797 } 1798 else { 1799 _spBodyOnLoadFunctions.push(raiseNav); 1800 } 1801 } 1802 SPListView = true; 1803 ; 1804 ; 1805 RenderECBinline = function(renderCtx, listItem, field) { 1806 var ret = []; 1807
1808 ret.push("<span class=\"js-callout-ecbMenu\" CTXName=\"ctx"); 1809 ret.push(renderCtx.ctxId); 1810 ret.push("\" id=\""); 1811 ret.push(listItem.ID); 1812 ret.push("\" Field=\""); 1813 ret.push(field.Name); 1814 ret.push("\" Perm=\""); 1815 ret.push(listItem.PermMask); 1816 ret.push("\" EventType=\""); 1817 ret.push(listItem.EventType); 1818 ret.push("\">"); 1819 ret.push("<a class=\"js-callout-action ms-calloutLinkEnabled ms-calloutLink js-ellipsis25-a\" onclick=\"calloutCreateAjaxMenu(event); return false;\" href=\"#\" title=\"" + Strings.STS.L_SPCalloutAction_ellipsis + "\">"); 1820 ret.push("<img class=\"js-ellipsis25-icon\" src=\"" + GetThemedImageUrl("spcommon.png") + "\" alt=\"" + Encoding.HtmlEncode(Strings.STS.L_SPCalloutAction_ellipsis) + "\" />"); 1821 ret.push("</a>"); 1822 ret.push("</span>"); 1823 return ret.join(''); 1824 }; 1825 CALLOUT_STR_ELLIPSIS = '...'; 1826 CALLOUT_ELLIPSIS_LENGTH = CALLOUT_STR_ELLIPSIS.length; 1827 CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION = 2 + CALLOUT_ELLIPSIS_LENGTH; 1828 MountPointSiteIdFieldName = "_mpSPSiteId"; 1829 MountPointWebIdFieldName = "_mpSPWebId"; 1830 MountPointItemUniqueIdFieldName = "_mpItemUniqueId"; 1831 MountPointInfo = (function() { 1832 function createMountPointInfo(mpProperties) { 1833 var rootFolder = mpProperties.rootFolder; 1834 var siteId = mpProperties.siteId; 1835 var webId = mpProperties.webId; 1836 var folderId = mpProperties.folderId; 1837 var mpPrefix = mpProperties.mpPrefix; 1838 var isInitProperly = Boolean(mpPrefix) && Boolean(siteId) && Boolean(webId) && Boolean(folderId); 1839 var mpLevel = Boolean(mpProperties.mpLevel) ? mpProperties.mpLevel : "1,0"; 1840 var majorLevel = -1; 1841 var minorLevel = -1; 1842 var levels = []; 1843 1844 if (Boolean(mpLevel) && isInitProperly) { 1845 levels = mpLevel.split(','); 1846 if (levels.length == 2) { 1847 majorLevel = tryParseLevel(levels[0], 1); 1848 minorLevel = tryParseLevel(levels[1], 0); 1849 } 1850 } 1851 function changeMpLevel(majorLevelChange, minorLevelChange) { 1852 majorLevel += majorLevelChange; 1853 if (majorLevelChange == 0) 1854 minorLevel += minorLevelChange; 1855 else 1856 minorLevel = 0; 1857 mpLevel = String(majorLevel) + "," + String(minorLevel); 1858 } 1859 function tryParseLevel(level, minLevel) { 1860 var retLevel = minLevel; 1861 1862 if (level != null && level.length > 0 && !isNaN(retLevel)) { 1863 retLevel = parseInt(level); 1864 if (retLevel < minLevel) 1865 return minLevel; 1866 } 1867 return retLevel; 1868 } 1869 function getMountPointProperties(bRemoteIdsOnly) { 1870 if (!isInitProperly) 1871 return {}; 1872 var props = { 1873 RemoteSiteId: siteId, 1874 RemoteWebId: webId, 1875 RemoteFolderId: folderId 1876 }; 1877 1878 if (!Boolean(bRemoteIdsOnly)) { 1879 props.MPLevel = mpLevel; 1880 props.MPPrefix = mpPrefix; 1881 } 1882 return props; 1883 } 1884 function getMountPointUrl(joinToken, bRemoteIdsOnly) { 1885 var ret = []; 1886 1887 if (isInitProperly) { 1888 var props = getMountPointProperties(bRemoteIdsOnly); 1889 1890 for (var propKey in props) { 1891 ret.push(propKey + "=" + URI_Encoding.encodeURIComponent(props[propKey])); 1892 } 1893 } 1894 if (!Boolean(joinToken)) 1895 joinToken = '&'; 1896 return ret.join(joinToken); 1897 } 1898 return { 1899 "isInitProperly": isInitProperly, 1900 "mpPrefix": isInitProperly ? mpPrefix : "", 1901 "rootFolder": isInitProperly ? rootFolder : "", 1902 "getMajorLevel": function getMajorLevel() { 1903 return majorLevel; 1904 }, 1905 "getMinorLevel": function getMinorLevel() { 1906 return minorLevel; 1907 }, 1908 "incrementMajorLevel": function incrementMajorLevel() { 1909 changeMpLevel(1, 0); 1910 }, 1911 "incrementMinorLevel": function incrementMinorLevel() { 1912 changeMpLevel(0, 1); 1913 }, 1914 "decrementMinorLevel": function decrementMinorLevel() { 1915 changeMpLevel(0, -1); 1916 }, 1917 "getMountPointProperties": getMountPointProperties, 1918 "getMountPointUrl": getMountPointUrl 1919 }; 1920 } 1921 ; 1922 function createByListItem(listItem, renderCtx) { 1923 var mpProperties = {}; 1924 1925 if (Boolean(IsMountPoint(listItem)) && Boolean(renderCtx)) { 1926 var curUri = null; 1927 1928 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(168)) { 1929 curUri = new URI('http://foo?' + getHashAsQueryString(renderCtx)); 1930 } 1931 if (!Boolean(curUri)) { 1932 curUri = new URI(Nav.ajaxNavigate.get_href()); 1933 } 1934 if (Boolean(curUri)) { 1935 mpProperties.mpPrefix = curUri.getQueryParameter("MPPrefix"); 1936 if (!Boolean(mpProperties.mpPrefix)) 1937 mpProperties.mpPrefix = listItem.FileRef.replace(/.url$/, ''); 1938 mpProperties.siteId = listItem[MountPointSiteIdFieldName]; 1939 mpProperties.webId = listItem[MountPointWebIdFieldName]; 1940 mpProperties.folderId = listItem[MountPointItemUniqueIdFieldName]; 1941 } 1942 } 1943 return createMountPointInfo(mpProperties); 1944 } 1945 function createByContext(renderCtx) { 1946 return createByQueryString(getHashAsQueryString(renderCtx)); 1947 } 1948 function createByQueryString(queryString) { 1949 var mpProperties = {}; 1950 1951 if (Boolean(queryString)) { 1952 var uri = new URI("http://foo?" + queryString); 1953 1954 mpProperties.rootFolder = uri.getQueryParameter("RootFolder"); 1955 if (!Boolean(mpProperties.rootFolder)) 1956 mpProperties.rootFolder = ""; 1957 mpProperties.siteId = uri.getQueryParameter("RemoteSiteId"); 1958 mpProperties.webId = uri.getQueryParameter("RemoteWebId"); 1959 mpProperties.folderId = uri.getQueryParameter("RemoteFolderId"); 1960 mpProperties.mpPrefix = uri.getQueryParameter("MPPrefix"); 1961 mpProperties.mpLevel = uri.getQueryParameter("MPLevel"); 1962 } 1963 return createMountPointInfo(mpProperties); 1964 } 1965 function getHashAsQueryString(renderCtx) { 1966 var retStr = ""; 1967 var hash = ""; 1968 1969 if (renderCtx != null && renderCtx.clvp != null && typeof renderCtx.clvp.WebPartId == "function") { 1970 hash = GetInplviewHash(renderCtx.clvp.WebPartId()); 1971 if (Boolean(hash)) 1972 retStr = InplViewUtil.DecodeHashAsQueryString(hash); 1973 } 1974 return retStr; 1975 } 1976 return { 1977 "createByListItem": createByListItem, 1978 "createByContext": createByContext, 1979 "createByQueryString": createByQueryString 1980 }; 1981 })(); 1982 ShortcutLinkTargetUrlFieldName = "_ShortcutUrl"; 1983 ShortcutLinkSiteIdFieldName = "_ShortcutSiteId"; 1984 ShortcutLinkWebIdFieldName = "_ShortcutWebId"; 1985 ShortcutLinkUniqueIdFieldName = "_ShortcutUniqueId"; 1986 _EnsureJSNamespace("SP"); 1987 if (typeof SP.SOD == "undefined") 1988 SP.SOD = {};
1989 SP.SOD.execute = EnsureScriptParams; 1990 SP.SOD.executeFunc = EnsureScriptFunc; 1991 SP.SOD.registerSod = RegisterSod; 1992 SP.SOD.registerSodDep = RegisterSodDep; 1993 SP.SOD.executeOrDelayUntilScriptLoaded = ExecuteOrDelayUntilScriptLoaded; 1994 SP.SOD.executeOrDelayUntilEventNotified = ExecuteOrDelayUntilEventNotified; 1995 SP.SOD.notifyScriptLoadedAndExecuteWaitingJobs = NotifyScriptLoadedAndExecuteWaitingJobs; 1996 SP.SOD.notifyEventAndExecuteWaitingJobs = NotifyEventAndExecuteWaitingJobs; 1997 SP.SOD.loadMultiple = LoadMultipleSods; 1998 SP.SOD.delayUntilEventNotified = DelayUntilEventNotified; 1999 g_prefetch = 1; 2000 SP.SOD.get_prefetch = function() { 2001 return g_prefetch; 2002 }; 2003 SP.SOD.set_prefetch = function(prefetch) { 2004 g_prefetch = prefetch; 2005 }; 2006 SP.SOD.prefetch = _spPreFetch; 2007 g_ribbonImagePrefetch = true; 2008 SP.SOD.get_ribbonImagePrefetchEnabled = function() { 2009 return g_ribbonImagePrefetch; 2010 }; 2011 SP.SOD.set_ribbonImagePrefetchEnabled = function(ribbonImagePrefetchEnabled) { 2012 g_ribbonImagePrefetch = ribbonImagePrefetchEnabled; 2013 }; 2014 _EnsureJSNamespace("SP.UI"); 2015 if (typeof SP.UI.Workspace == "undefined") 2016 SP.UI.Workspace = {}; 2017 SP.UI.Workspace.add_resized = function(handler) { 2018 g_workspaceResizedHandlers.push(handler); 2019 }; 2020 SP.UI.Workspace.remove_resized = function(handler) { 2021 var match = -1; 2022 2023 for (var i = 0, wLen = g_workspaceResizedHandlers.length; i < wLen; i++) { 2024 if (handler == g_workspaceResizedHandlers[i]) { 2025 match = i; 2026 break; 2027 } 2028 } 2029 if (match != -1) { 2030 g_workspaceResizedHandlers.splice(match, 1); 2031 } 2032 }; 2033 AriaLogger = {}; 2034 (function() { 2035 AriaLogger.TenantToken = { 2036 stsPPE: "9eeb6da3b66f4f20aec8c84bdaccb30d-429a3df1-6962-4e5e-bfc8-31dfd52c4e12-7768", 2037 stsProd: "66034bde775d42a19f1a2d3d2e647e42-82d9432e-bacf-4067-bb5d-fe87f33fa915-7384" 2038 }; 2039 var token = null; 2040 var logger = null; 2041 2042 AriaLogger.Logger = function() { 2043 var context = window["_spPageContextInfo"]; 2044 var flushed = false; 2045 2046 if (!Boolean(context)) 2047 return; 2048 switch (context.env) { 2049 case "edog": 2050 case "prodbubble": 2051 token = AriaLogger.TenantToken.stsPPE; 2052 break; 2053 case "prod": 2054 case "dprod": 2055 token = AriaLogger.TenantToken.stsProd; 2056 break; 2057 default: 2058 token = AriaLogger.TenantToken.stsPPE; 2059 break; 2060 } 2061 if (!Boolean(logger)) { 2062 logger = AWTLogManager.initialize(token); 2063 var semanticContext = logger.getSemanticContext(); 2064 2065 semanticContext.setUserId(context.systemUserKey); 2066 var logContext = { 2067 AccountType: getAccountType(context), 2068 Environment: context.env, 2069 IsAuthenticated: isUserAuthenticated(context), 2070 BrowserUserAgent: navigator.userAgent, 2071 BrowserIsMobile: isMobile(), 2072 SiteSubscriptionId: context.siteSubscriptionId 2073 }; 2074 2075 if (Boolean(context.farmLabel)) { 2076 logContext.FarmLabel = context.farmLabel; 2077 } 2078 for (var key4 in logContext) { 2079 logger.setContext(key4, logContext[key4]); 2080 } 2081 } 2082 var OnBeforeUnload = function(e) { 2083 if (Boolean(logger) && !Boolean(logger.flushed)) { 2084 AWTLogManager.flush(function() { 2085 }); 2086 logger.flushed = true; 2087 } 2088 }; 2089 2090 if (typeof window.addEventListener != "undefined") { 2091 window.addEventListener("beforeunload", OnBeforeUnload, true); 2092 } 2093 this.safeLogEvent = function(ev) { 2094 try { 2095 this.logEvent(ev); 2096 } 2097 catch (exception) { 2098 if (Boolean(exception)) { 2099 ; 2100 } 2101 } 2102 }; 2103 this.logEvent = function(ev) { 2104 if (!Boolean(logger) || !ariaEnabledEvent(ev)) 2105 return; 2106 var eName = ev.eventName.toString(); 2107 var eType = "Start"; 2108 var eResultType; 2109 var eResultCode; 2110 var eComponent; 2111 var nName; 2112 2113 if (ev.eventName == "RUMOne") { 2114 eName = "RUMOneDataUpload"; 2115 eType = "single"; 2116 nName = ev.data.ScenarioId.toString(); 2117 } 2118 else if (ev.eventName == "UserEngagement") { 2119 eName = "qos"; 2120 if (Boolean(ev.data) && Boolean(ev.data.EngagementName)) { 2121 eType = ev.data.EngagementName.endsWith(".Start") ? "Start" : ev.data.EngagementName.endsWith(".Success") ? "End" : ev.data.EngagementName.endsWith(".Failure") ? "Failure" : "NA"; 2122 eResultType = eType == "End" ? "Success" : eType == "Failure" ? "Failure" : "NA"; 2123 eComponent = ev.data.EngagementName.substring(0, ev.data.EngagementName.indexOf('.')); 2124 nName = ev.data.EngagementName.substring(0, ev.data.EngagementName.lastIndexOf('.')); 2125 eResultCode = Boolean(ev.data.Properties) && Boolean(ev.data.Properties.ErrorCode) ? ev.data.Properties.ErrorCode.toString() : "NA"; 2126 } 2127 } 2128 var eventProperties = new AWTEventProperties(); 2129 var values = { 2130 "CorrelationVector": ev.correlationVector, 2131 "Component": eComponent, 2132 "Name": nName, 2133 "WebLog_FullName": eName, 2134 "WebLog_EventType": eType 2135 }; 2136 2137 values["WebLog_Type_" + eName.toString()] = 1; 2138 values["Workload"] = getWorkLoad(ev); 2139 if (eType == "End") { 2140 values["ResultType"] = eResultType; 2141 values["ResultCode"] = eResultCode; 2142 } 2143 var prefixName; 2144 2145 if (ev.eventName == "RUMOne") { 2146 prefixName = eName + "_dictionary_"; 2147 } 2148 else if (eName == "qos") { 2149 prefixName = "Qos_extraData_"; 2150 } 2151 var dictProperties = ev.data; 2152 2153 for (var key2 in dictProperties) { 2154 var v = dictProperties[key2]; 2155 2156 if (!Boolean(v)) 2157 continue; 2158 values[prefixName + key2] = dictProperties[key2]; 2159 } 2160 eventProperties.setName("ev_" + eName.toString()); 2161 this.setProperties(eventProperties, values); 2162 logger.logEvent(eventProperties); 2163 }; 2164 this.setProperties = function(properties, values) { 2165 try { 2166 for (var key3 in values) { 2167 properties.setProperty(key3, values[key3]); 2168 } 2169 } 2170 catch (exception) { 2171 var errorCode = void 0; 2172 2173 if (exception != null) { 2174 errorCode = exception.ErrorCode(); 2175 if (typeof console != "undefined" && Boolean(console) && typeof console.log == "function") { 2176 console.log("Aria error: " + exception.toString() + errorCode.toString()); 2177 } 2178 } 2179 throw exception; 2180 } 2181 }; 2182 this.isInitialized = function() { 2183 return Boolean(logger); 2184 }; 2185 function ariaEnabledEvent(ev) { 2186 if (ev.eventName == "RUMOne" || ev.eventName == "UserEngagement") { 2187 return true; 2188 } 2189 return false; 2190 } 2191 function Capitalize(str) { 2192 if (Boolean(str)) { 2193 return str[0].toUpperCase() + str.substr(1); 2194 } 2195 return str; 2196 } 2197 function getWorkLoad(ev) { 2198 if (ev.eventName == "RUMOne" && Boolean(ev.data) && Boolean(ev.data.ScenarioId)) { 2199 return ev.data.ScenarioId.substring(0, ev.data.ScenarioId.indexOf('-')); 2200 } 2201 if (ev.EventName == "UserEngagement" && Boolean(ev.data) && Boolean(ev.data.name)) { 2202 return ev.data.EngagementName.substring(0, ev.data.EngagementName.indexOf('.')); 2203 } 2204 return "STS"; 2205 } 2206 function isMobile() { 2207 var isIOS = BrowserDetection.userAgent.ipad || (navigator.userAgent.toLowerCase()).indexOf("iphone") > -1; 2208 var isAndroid = (navigator.userAgent.toLowerCase()).indexOf("android") > -1 && !isIOS; 2209 2210 return !!(BrowserDetection.userAgent.windowsphone || isIOS || isA
2210ndroid); 2211 } 2212 function isUserAuthenticated(ctx1) { 2213 return Boolean(ctx1.userLoginName); 2214 } 2215 function getAccountType(ctx2) { 2216 return isUserAuthenticated(ctx2) ? "Business" : "BusinessAnonymouse"; 2217 } 2218 }; 2219 var ariaLogger = null; 2220 2221 AriaLogger.GetLogger = function() { 2222 if (!Boolean(ariaLogger)) { 2223 ariaLogger = new AriaLogger.Logger(); 2224 } 2225 return ariaLogger; 2226 }; 2227 })(); 2228 BaseLogger = {}; 2229 (function() { 2230 BaseLogger.Constants = { 2231 STREAM_ID: 1234, 2232 JSON_VERSION: "V1", 2233 IDX_VERSION: 0, 2234 IDX_EVENTNAME: 1, 2235 IDX_PROPERTY_START: 2, 2236 MAX_DATA_SIZE: 64 * 1024, 2237 MAX_ROWS_IN_STREAM: 1000, 2238 SIZE_DWORD: 4, 2239 SIZE_DATAPOINT_ENTRY: 3 * 4, 2240 SIZE_STREAM_ENTRY: 3 * 4, 2241 MS_BTN_EPOCHS: 11644473600000, 2242 MAX_INT32: 0xFFFFFFFF,
2243 MAX_SQM_DATAID: 0x7FFFFFFF, 2244 DATAKEY_SESSION_NORMAL: 0, 2245 DATAKEY_SESSION_CONTINUATION: 1 2246 }; 2247 BaseLogger.BSQMFlags = { 2248 FLAG_BSQM_ENABLED: 0x00000010, 2249 FLAG_QOS_ENABLED: 0x00000020 2250 }; 2251 BaseLogger.DATAID = { 2252 DATAID_BSQM_MAXSTREAMROWSSTREAMID: 8048, 2253 DATAID_BSQM_MAXSTREAMROWS: 7993, 2254 DATAID_SESSION_TYPE: 60 2255 }; 2256 BaseLogger.UploadCallBack = function(request) { 2257 if (Boolean(request)) { 2258 if (request.readyState === 4 && request.status !== 200 && Boolean(request.status)) { } 2259 } 2260 }; 2261 BaseLogger.Logger = function(customUploadFunc) { 2262 var WSAStreamRow = function(values) { 2263 this.Tic = GetTicks32(); 2264 var numValues = values.length; 2265 2266 this.Vals = new Array(numValues); 2267 for (var i = 0; i < numValues; i++) { 2268 this.Vals[i] = values[i]; 2269 } 2270 }; 2271 var WSADatapoint = function(id, value) { 2272 this.Id = id; 2273 this.Val = value; 2274 this.Tic = GetTicks32(); 2275 }; 2276 var WSAStream = function(id, width) { 2277 this.Id = id; 2278 this.Width = width; 2279 this.Rows = new Array(0); 2280 }; 2281 var WSAData = function(fIsOptedIn, fIsQoSEnabled) { 2282 this.StartTime = GetTicks64(); 2283 this.EndTime = null; 2284 this.CorrelationId = null; 2285 var flags = 0; 2286 2287 if (fIsOptedIn) 2288 flags = BaseLogger.BSQMFlags.FLAG_BSQM_ENABLED; 2289 if (fIsQoSEnabled) 2290 flags |= BaseLogger.BSQMFlags.FLAG_QOS_ENABLED; 2291 this.Flags = flags; 2292 this.wsaDatapoints = new Array(0); 2293 this.wsaStreams = new Array(0); 2294 }; 2295 var _uploadUrl = null; 2296 var _wsaData = null; 2297 var _numDatapoints = 0; 2298 var _numStreams = 0; 2299 var _numStreamBytes = 0; 2300 var _dictStreams = null; 2301 var _dictDatapoints = null; 2302 var _streamRowCount = 0; 2303 var _bDataAvailableForUpload = false; 2304 var _bContinuation = false; 2305 var _initialized = false; 2306 var _fEnabled = false; 2307 var _uploadFunc = null; 2308 2309 this.SetCorrelationId = function(correlationId) { 2310 _initialize(); 2311 if (Boolean(_wsaData)) { 2312 _wsaData.CorrelationId = correlationId; 2313 } 2314 }; 2315 this.WriteLog = function(eventName, dictProperties) { 2316 _initialize(); 2317 if (!_fEnabled || !Boolean(eventName) || !Boolean(dictProperties)) { 2318 return; 2319 } 2320 var values = new Array(BaseLogger.Constants.IDX_PROPERTY_START + 1); 2321 2322 values[BaseLogger.Constants.IDX_VERSION] = BaseLogger.Constants.JSON_VERSION; 2323 values[BaseLogger.Constants.IDX_EVENTNAME] = eventName; 2324 var index = BaseLogger.Constants.IDX_PROPERTY_START; 2325 2326 for (var key in dictProperties) { 2327 values[index++] = key; 2328 var propVal = dictProperties[key]; 2329 2330 if (propVal != null && propVal instanceof Date) { 2331 propVal = propVal.getTime(); 2332 } 2333 values[index++] = propVal; 2334 } 2335 _addToStream(BaseLogger.Constants.STREAM_ID, values); 2336 }; 2337 this.UploadData = function() { 2338 _initialize(); 2339 _uploadData(); 2340 }; 2341 var _initialize = function() { 2342 if (_initialized) { 2343 return; 2344 } 2345 _fEnabled = _wsaCEIPEnabled(); 2346 if (!_fEnabled) { 2347 return; 2348 } 2349 _wsaData = new WSAData(_fEnabled, false); 2350 _uploadUrl = "/_layouts/15/WsaUpload.ashx"; 2351 _dictStreams = new Array(0); 2352 _dictDatapoints = new Array(0); 2353 _createStream(BaseLogger.Constants.STREAM_ID, 1); 2354 _uploadFunc = Boolean(customUploadFunc) ? customUploadFunc : _uploadWsaDataRequest; 2355 _initialized = true; 2356 }; 2357 var _createStream = function(streamId, width) { 2358 if (!Boolean(_dictStreams[streamId])) { 2359 var wsaStream = new WSAStream(streamId, width); 2360 var idxStream = _numStreams; 2361 2362 _wsaData.wsaStreams[idxStream] = wsaStream; 2363 _numStreams++; 2364 _numStreamBytes += BaseLogger.Constants.SIZE_STREAM_ENTRY; 2365 _dictStreams[streamId] = idxStream; 2366 } 2367 }; 2368 var _addToStream = function(streamId, dictValues) { 2369 try { 2370 var wsaStreamRow = new WSAStreamRow(dictValues); 2371 2372 if (_isMaxSizeReachedCheck()) { 2373 return; 2374 } 2375 _bDataAvailableForUpload = true; 2376 _setDatapoint(BaseLogger.DATAID.DATAID_BSQM_MAXSTREAMROWSSTREAMID, streamId); 2377 var wsaStream = _wsaData.wsaStreams[_dictStreams[streamId]]; 2378 2379 if (Boolean(wsaStream)) { 2380 if (_streamRowCount < BaseLogger.Constants.MAX_ROWS_IN_STREAM) { 2381 wsaStream.Rows[_streamRowCount++] = wsaStreamRow; 2382 _numStreamBytes += _getTotalBytesForRow(wsaStreamRow); 2383 _setDatapoint(BaseLogger.DATAID.DATAID_BSQM_MAXSTREAMROWS, _streamRowCount); 2384 } 2385 else { 2386 throw "BaseLogger: MAX_ROWS_IN_STREAM exceeded for stream ID " + String(streamId); 2387 } 2388 } 2389 } 2390 catch (e) { } 2391 }; 2392 var _getTotalBytesForRow = function(row) { 2393 var numTotalBytes = BaseLogger.Constants.SIZE_DWORD; 2394 2395 for (var i = 0; i < row.Vals.length; i++) {
2396 var value = String(row.Vals[i]); 2397 2398 numTotalBytes += value.length * 2; 2399 } 2400 numTotalBytes += (row.Vals.length - 1) * 6; 2401 return numTotalBytes; 2402 }; 2403 var _setDatapoint = function(datapointId, datapointValue) { 2404 if (datapointId < 1 || datapointId > BaseLogger.Constants.MAX_SQM_DATAID) { 2405 return; 2406 } 2407 if (datapointValue < 0 || datapointValue > BaseLogger.Constants.MAX_INT32) { 2408 return; 2409 } 2410 var savedDatapoint = null; 2411 var idxDP = _dictDatapoints[datapointId]; 2412 2413 if (Boolean(idxDP)) { 2414 savedDatapoint = _wsaData.wsaDatapoints[idxDP]; 2415 } 2416 if (savedDatapoint == null) { 2417 var datapoint = new WSADatapoint(datapointId, datapointValue); 2418 var idxDatapoint = _numDatapoints; 2419 2420 _wsaData.wsaDatapoints[idxDatapoint] = datapoint; 2421 _dictDatapoints[datapointId] = idxDatapoint; 2422 _numDatapoints++; 2423 } 2424 else { 2425 savedDatapoint.Val = datapointValue; 2426 } 2427 }; 2428 var _uploadData = function() { 2429 if (!_fEnabled || _wsaData == null || !Boolean(_uploadUrl)) { 2430 return; 2431 } 2432 try { 2433 if (_bDataAvailableForUpload) { 2434 if (Boolean(_bContinuation)) { 2435 _setDatapoint(BaseLogger.DATAID.DATAID_SESSION_TYPE, BaseLogger.Constants.DATAKEY_SESSION_CONTINUATION); 2436 } 2437 else { 2438 _setDatapoint(BaseLogger.DATAID.DATAID_SESSION_TYPE, BaseLogger.Constants.DATAKEY_SESSION_NORMAL); 2439 _bContinuation = true; 2440 } 2441 _wsaData.EndTime = GetTicks64(); 2442 var jsonString = null; 2443 2444 try { 2445 jsonString = JSON.stringify(_wsaData); 2446 } 2447 catch (e) { } 2448 _initContinuationSession(); 2449 if (jsonString != null && jsonString.length > 0) { 2450 _uploadFunc(jsonString); 2451 } 2452 } 2453 } 2454 catch (e1) { } 2455 }; 2456 var _initContinuationSession = function() { 2457 _dictStreams = new Array(0); 2458 _dictDatapoints = new Array(0); 2459 _numDatapoints = 0; 2460 _numStreams = 0; 2461 _streamRowCount = 0; 2462 _numStreamBytes = 0; 2463 _numDatapoints = 0; 2464 var corrId = _wsaData.CorrelationId; 2465 2466 _wsaData = new WSAData(_fEnabled, false); 2467 _wsaData.CorrelationId = corrId; 2468 _createStream(BaseLogger.Constants.STREAM_ID, 1); 2469 _bDataAvailableForUpload = false; 2470 }; 2471 var _uploadWsaDataRequest = function(json) { 2472 var request = new XMLHttpRequest(); 2473 2474 request.onreadystatechange = function() { 2475 BaseLogger.UploadCallBack(request); 2476 }; 2477 request.open('POST', _uploadUrl, true); 2478 request.setRequestHeader('Content-Type', 'application/json'); 2479 request.send(json); 2480 }; 2481 var _isMaxSizeReachedCheck = function() { 2482 var size = _numDatapoints * BaseLogger.Constants.SIZE_DATAPOINT_ENTRY + _numStreamBytes; 2483 2484 if (size >= BaseLogger.Constants.MAX_DATA_SIZE) { 2485 _uploadData(); 2486 size = _numDatapoints * BaseLogger.Constants.SIZE_DATAPOINT_ENTRY + _numStreamBytes; 2487 return size >= BaseLogger.Constants.MAX_DATA_SIZE; 2488 } 2489 return false; 2490 }; 2491 var _wsaCEIPEnabled = function() { 2492 return typeof g_wsaEnabled != "undefined" && g_wsaEnabled; 2493 }; 2494 var startTicks = 0; 2495 var GetTicks32 = function() { 2496 var timeNow = new Date(); 2497 var ticks64 = timeNow.getTime(); 2498 2499 if (startTicks == 0) { 2500 startTicks = ticks64; 2501 } 2502 return 1 + ticks64 - startTicks & 0x7FFFFFFF; 2503 }; 2504 var GetTicks64 = function() { 2505 var timeNow = new Date(); 2506 var ticks64 = timeNow.getTime(); 2507 2508 ticks64 = ticks64 + BaseLogger.Constants.MS_BTN_EPOCHS; 2509 ticks64 = ticks64 * 10000; 2510 return ticks64; 2511 }; 2512 }; 2513 var _baseLoggerInstance = null; 2514 2515 BaseLogger.GetLogger = function() { 2516 if (_baseLoggerInstance == null) { 2517 _baseLoggerInstance = new BaseLogger.Logger(); 2518 } 2519 return _baseLoggerInstance; 2520 }; 2521 })(); 2522 CacheLogger = { 2523 "__namespace": true 2524 }; 2525 CacheLogger_module_def(); 2526 DebugLogger = { 2527 "__namespace": true 2528 }; 2529 DebugLogger_module_def(); 2530 QoSLogger = { 2531 "__namespace": true 2532 }; 2533 QoSLogger_module_def(); 2534 RUMDelta = {}; 2535 (function() { 2536 var LOG_ID = "RUMActionDelta"; 2537 2538 RUMDelta.Logger = function(logger) { 2539 RUMDelta.Application = { 2540 SharePointTouchAppHost: 0x0001, 2541 SharePoint: 0x0002, 2542 SharePointFileXfer: 0x0003 2543 }; 2544 var RUMDeltaDataItem = function(action, correlationId, lastSeenCorrelationId, beginTime, firstChance, networkDone, serverTime, eupl) { 2545 this.Version = 1; 2546 this.Action = action; 2547 this.CorrelationId = correlationId; 2548 this.LastSeenCorrelationId = lastSeenCorrelationId; 2549 this.UserAgent = navigator.userAgent; 2550 this.BeginTime = beginTime; 2551 this.FirstChance = firstChance; 2552 this.NetworkDone = networkDone; 2553 this.ServerTime = serverTime; 2554 this.EUPL = eupl; 2555 }; 2556 var _correlationId = ""; 2557 var _lastSeenServerCorrelationId = ""; 2558 var _logId = LOG_ID; 2559 var _basicLogger = Boolean(logger) ? logger : BaseLogger.GetLogger(); 2560 2561 this.SetCorrelationId = function(correlationId) { 2562 _basicLogger.SetCorrelationId(correlationId); 2563 _correlationId = correlationId; 2564 }; 2565 this.SetLastSeenCorrelationId = function(correlationId) { 2566 _lastSeenServerCorrelationId = correlationId; 2567 }; 2568 this.UploadRUMData = function(action, beginTime, firstChance, networkDone, serverTime, eupl) { 2569 try { 2570 var logItem = new RUMDeltaDataItem(action, _correlationId, _lastSeenServerCorrelationId, beginTime, firstChance, networkDone, serverTime, eupl); 2571 2572 _basicLogger.WriteLog(_logId, logItem); 2573 _basicLogger.UploadData(); 2574 } 2575 catch (e) { } 2576 }; 2577 }; 2578 })(); 2579 PerformanceLogger = { 2580 "__namespace": true 2581 }; 2582 PerformanceLogger_module_def(); 2583 SPRUMLogger = { 2584 "__namespace": true 2585 }; 2586 SPRUMLogger_module_def(); 2587 SPLoggers = { 2588 "__namespace": true 2589 }; 2590 SPLoggers_module_def(); 2591 getLoggingInfo = function(args) { 2592 var info = []; 2593 2594 if (Boolean(args)) { 2595 addToInfoIfExists("ErrorCode", info, args, args.get_errorCode); 2596 addToInfoIfExists("CorrelationID", info, args, args.get_errorTraceCorrelationId); 2597 addToInfoIfExists("ErrorType", info, args, args.get_errorTypeName); 2598 addToInfoIfExists("Message", info, args, args.get_message); 2599 addToInfoIfExists("StackTrace", info, args, args.get_stackTrace); 2600 } 2601 return info.join("\n"); 2602 }; 2603 addToInfoIfExists = function(header, info, args, fn) { 2604 if (args != null && typeof fn != 'undefined' && fn != null) { 2605 var result = fn.call(args); 2606 2607 if (result != null || result != "") 2608 info.push(header + ": " + result); 2609 } 2610 }; 2611 SP.Performance.UploadNonMDSPageLoadTime = function(pageContext, endTime) { 2612 (SP.Performance.Log.GetLogger()).UploadNonMDSPageLoadTelemetry(pageContext, endTime); 2613 }; 2614 _WOPIDocLoaded = false; 2615 SetWOPIDocLoaded = function() { 2616 _WOPIDocLoaded = true; 2617 }; 2618 _TelemetryEndTime = -1; 2619 UploadFileXferTelemetry = function(source, startTime, endTime, byteCount) { 2620 (SP.Performance.Log.GetLogger()).UploadFileXferTelemetry(source, startTime, endTime, byteCount); 2621 _TelemetryEndTime = endTime; 2622 }; 2623 ReadyToUploadLogs = function() { 2624 if (typeof SP.ReadyToUploadLogs != "undefined") 2625 SP.ReadyToUploadLogs(); 2626 }; 2627 if (typeof g_mdsReady == "undefined") { 2628 if (typeof window.addEventListener != 'undefined') { 2629 window.addEventListener('load', RumNonMDSHandler, false); 2630 } 2631 else { 2632 window.attachEvent('onload', RumNonMDSHandler); 2633 } 2634 } 2635 ; 2636 if (typeof SPThemeUtils == 'undefined') { 2637 SPThemeUtils = { 2638 "__namespace": true 2639 }; 2640 SPThemeUtils_module_def(); 2641 } 2642 if (typeof SuiteNavRendering == 'undefined') { 2643 SuiteNavRendering = { 2644 "__namespace": true 2645 }; 2646 SuiteNavRendering_module_def(); 2647 } 2648 if (typeof ModuleLink == 'undefined') { 2649 ModuleLink = { 2650 "__namespace": true 2651 }; 2652 ModuleLink_module_def(); 2653 } 2654 _spBodyOnLoadFunctionNames.push("AllowCSSFiltersOnIE8"); 2655 initJsLoaded = true; 2656 notifyScriptsLoadedAndExecuteWaitingJobs("init.js"); 2657 if (typeof spWriteProfilerMark == 'function') 2658 spWriteProfilerMark("perfMarkEnd_" + "init.js"); 2659} 2660var spWriteProfilerMark; 2661var OffSwitch; 2662 2663function OffSwitch_module_def() { 2664 OffSwitch.IsActive = OffSwitch_IsActive; 2665 function OffSwitch_IsActive(guidOffSwitchKey) { 2666 var offSwitches = window["g_SPOffSwitches"]; 2667 var contextOffSwitches = null; 2668 var defaultResultWhenDataMissing = true; 2669 2670 if (offSwitches == null) { 2671 var pageContextInfo = window["_spPageContextInfo"]; 2672
2673 contextOffSwitches = pageContextInfo == null ? null : pageContextInfo["killSwitches"]; 2674 if (contextOffSwitches != null && !contextOffSwitches.hasOwnProperty("2625010B-67AA-49D2-B302-A12D0281E865")) { 2675 offSwitches = contextOffSwitches; 2676 } 2677 } 2678 if (offSwitches != null && !offSwitches.hasOwnProperty("DA1F7C1B-A819-4265-BD85-6D15C304CFDC")) { 2679 defaultResultWhenDataMissing = false; 2680 } 2681 var offSwitchActivated; 2682 2683 offSwitchActivated = offSwitches == null ? defaultResultWhenDataMissing : offSwitches.hasOwnProperty(guidOffSwitchKey); 2684 return offSwitchActivated; 2685 } 2686} 2687var RuntimeErrors; 2688 2689function RuntimeErrors_module_def() { 2690 RuntimeErrors.MismatchError = function(expected, actual, msg) { 2691 Error.call(this, msg); 2692 this.expected = expected; 2693 this.actual = actual; 2694 }; 2695 RuntimeErrors.MismatchError.prototype = new Error; 2696 RuntimeErrors.ArgumentTypeError = function(expected, actual) { 2697 RuntimeErrors.MismatchError.call(this, expected, actual, "runtime type mismatch"); 2698 }; 2699 RuntimeErrors.ArgumentTypeError.prototype = new RuntimeErrors.MismatchError; 2700} 2701var Verify; 2702 2703function Verify_module_def() { 2704 function _Verify(errorCtr, expected, actual) { 2705 if (actual != expected) { 2706 throw new errorCtr(expected, actual); 2707 } 2708 } 2709 Verify.ArgumentType = function _VerifyArgumentType(arg, expected) { 2710 var primitiveType = typeof arg; 2711 2712 if (typeof expected == 'function') { 2713 _Verify(RuntimeErrors.ArgumentTypeError, 'object', primitiveType); 2714 if (!(arg instanceof expected)) { 2715 throw new RuntimeErrors.ArgumentTypeError(expected, arg.constructor); 2716 } 2717 } 2718 else if (typeof expected == 'string') { 2719 _Verify(RuntimeErrors.ArgumentTypeError, expected, primitiveType); 2720 } 2721 else { 2722 throw new RuntimeErrors.ArgumentTypeError('function or string', typeof expected); 2723 } 2724 }; 2725} 2726var Define; 2727 2728function Define_module_def() { 2729 var modules = {}; 2730 2731 Define.loadScript = function(url, successCallback, errCallback) { 2732 Verify.ArgumentType(url, 'string'); 2733 Verify.ArgumentType(successCallback, 'function'); 2734 Verify.ArgumentType(errCallback, 'function'); 2735 var agt = navigator.userAgent.toLowerCase(); 2736 var ie8down = agt.indexOf("msie") != -1 && parseInt(agt.substring(agt.indexOf("msie ") + 5)) <= 8; 2737 var s = document.createElement("SCRIPT"); 2738 2739 s.type = "text/javascript"; 2740 s.src = url; 2741 if (ie8down) { 2742 s.onreadystatechange = getCallback(successCallback); 2743 } 2744 else { 2745 s.onload = getCallback(successCallback); 2746 s.onerror = getCallback(errCallback); 2747 } 2748 (document.getElementsByTagName("HEAD"))[0].appendChild(s); 2749 return s; 2750 function getCallback(cb) { 2751 return function() { 2752 var loaded = false; 2753 2754 if (ie8down && typeof s.readyState != 'undefined') 2755 loaded = s.readyState == "complete" || s.readyState == "loaded"; 2756 else 2757 loaded = true; 2758 if (loaded) { 2759 s.onreadystatechange = null; 2760 s.onload = null; 2761 s.onerror = null; 2762 cb(); 2763 } 2764 }; 2765 } 2766 }; 2767 Define.require = function(req, callback) { 2768 if (typeof req == 'object' && req instanceof Array) { 2769 return requireMultiple(callback); 2770 } 2771 else { 2772 Verify.ArgumentType(req, 'string'); 2773 return requireSingle(req, callback); 2774 } 2775 function requireSingle(n, cb) { 2776 if (modules[n] != null) { 2777 if (typeof cb == 'function') { 2778 cb(modules[n]); 2779 } 2780 return modules[n]; 2781 } 2782 Verify.ArgumentType(cb, 'function'); 2783 Define.loadScript("/_layouts/15/" + n + ".js", function() { 2784 cb(modules[n]); 2785 }, function() { 2786 throw "Failed to load module: " + n; 2787 }); 2788 return undefined; 2789 } 2790 function requireMultiple(cb) { 2791 Verify.ArgumentType(cb, 'function'); 2792 var names = req; 2793 2794 if (names.length == 0) { 2795 cb(); 2796 return; 2797 } 2798 var allNames = names.slice(0, names.length); 2799 var n = names.shift(); 2800 var callbackWithDeps = function() { 2801 var deps = []; 2802 2803 for (var i = 0; i < allNames.length; i++) { 2804 deps.push(Define.require(allNames[i])); 2805 } 2806 cb.apply(null, deps); 2807 }; 2808 2809 Define.require(n, function() { 2810 Define.require(names, callbackWithDeps); 2811 }); 2812 } 2813 }; 2814 Define.define = function(n, deps, def) { 2815 Verify.ArgumentType(n, 'string'); 2816 Verify.ArgumentType(deps, Array); 2817 Verify.ArgumentType(def, 'function'); 2818 if (modules[n] != null) { 2819 return; 2820 } 2821 Define.require(deps, function() { 2822 modules[n] = def.apply(null, Array.prototype.slice.call(arguments)); 2823 }); 2824 }; 2825} 2826var BrowserDetection; 2827 2828function BrowserDetection_module_def() { 2829} 2830var browseris; 2831var bis; 2832var BrowserStorage; 2833 2834function BrowserStorage_module_def() { 2835 StorageObject.prototype = { 2836 getItem: function(key) { 2837 return ""; 2838 }, 2839 setItem: function(key, value) { 2840 }, 2841 removeItem: function(key) { 2842 }, 2843 clear: function() { 2844 }, 2845 length: 0 2846 }; 2847 function StorageObject() { 2848 var _this = this; 2849 var _data = {}; 2850 2851 function StorageObject_ContainsKey(key) { 2852 return _data.hasOwnProperty(key); 2853 } 2854 function StorageObject_GetItem(key) { 2855 var v = _data[key]; 2856 2857 if (typeof v == "undefined") 2858 v = null; 2859 return v; 2860 } 2861 ; 2862 function StorageObject_SetItem(key, value) { 2863 if (!StorageObject_ContainsKey(key)) { 2864 _this.length++; 2865 } 2866 _data[key] = String(value); 2867 } 2868 ; 2869 function StorageObject_RemoveItem(key) { 2870 var hasProp = StorageObject_ContainsKey(key); 2871 2872 if (hasProp) { 2873 delete _data[key]; 2874 _this.length--; 2875 } 2876 } 2877 ; 2878 function StorageObject_Clear() { 2879 _data = {}; 2880 _this.length = 0; 2881 } 2882 ; 2883 this.length = 0;
2884 this.getItem = StorageObject_GetItem; 2885 this.setItem = StorageObject_SetItem; 2886 this.removeItem = StorageObject_RemoveItem; 2887 this.clear = StorageObject_Clear; 2888 } 2889 ; 2890 CachedStorage.prototype = StorageObject.prototype; 2891 function CachedStorage(storage) { 2892 var _this = this; 2893 2894 function UpdateLength() { 2895 _this.length = storage.length; 2896 } 2897 UpdateLength(); 2898 this.getItem = function(key) { 2899 return storage.getItem(key); 2900 }; 2901 this.setItem = function(key, value) { 2902 try { 2903 storage.setItem(key, value); 2904 } 2905 catch (exStorage) { } 2906 UpdateLength(); 2907 }; 2908 this.removeItem = function(key) { 2909 try { 2910 storage.removeItem(key); 2911 } 2912 catch (exRemoveItemFromStorage) { } 2913 UpdateLength(); 2914 }; 2915 this.clear = function() { 2916 storage.clear(); 2917 UpdateLength(); 2918 }; 2919 } 2920 var _testKey = "BrowserStorageTest"; 2921 var _testValue = "1"; 2922 2923 function TestStorage(storage) { 2924 var result = false; 2925 2926 storage.setItem(_testKey, _testValue); 2927 if (storage.getItem(_testKey) === _testValue) { 2928 result = true; 2929 } 2930 storage.removeItem(_testKey); 2931 return result; 2932 } 2933 var _local = null; 2934 var _session = null; 2935 2936 try { 2937 if (typeof window.localStorage != 'undefined') { 2938 var localStorageObject = window.localStorage; 2939 2940 if (TestStorage(localStorageObject)) 2941 _local = localStorageObject; 2942 } 2943 } 2944 catch (exUsingLocalStorage) { } 2945 try { 2946 if (typeof window.sessionStorage != 'undefined') { 2947 var sessionStorageObject = window.sessionStorage; 2948 2949 if (TestStorage(sessionStorageObject)) 2950 _session = sessionStorageObject; 2951 } 2952 } 2953 catch (exUsingSessionStorage) { } 2954 if (_session == null) 2955 _session = new StorageObject(); 2956 if (_local == null) 2957 _local = _session; 2958 BrowserStorage.local = new CachedStorage(_local); 2959 BrowserStorage.session = new CachedStorage(_session); 2960} 2961var CSSUtil; 2962 2963function CSSUtil_module_def() { 2964 function BuildRegex(className) { 2965 return new RegExp('(\\s|^)' + className + '(\\s|$)'); 2966 } 2967 CSSUtil.HasClass = function(elem, className) { 2968 if (elem == null || className == null) { 2969 return false; 2970 } 2971 return elem.className.match(BuildRegex(className)) != null; 2972 }; 2973 CSSUtil.AddClass = function(elem, className) { 2974 if (elem != null && !CSSUtil.HasClass(elem, className)) { 2975 elem.className += " " + className; 2976 return true; 2977 } 2978 return false; 2979 }; 2980 CSSUtil.RemoveClass = function(elem, className) { 2981 if (CSSUtil.HasClass(elem, className)) { 2982 elem.className = elem.className.replace(BuildRegex(className), ' '); 2983 return true; 2984 } 2985 return false; 2986 }; 2987 CSSUtil.pxToFloat = function(pxString) { 2988 if (typeof pxString != "string") 2989 return 0; 2990 var trimmedPxString = pxString.trim(); 2991 var pxWidth = Number((trimmedPxString.substring(0, trimmedPxString.length - 2)).trim()); 2992 2993 return isNaN(pxWidth) ? 0 : pxWidth; 2994 }; 2995 CSSUtil.pxToNum = function(px) { 2996 var ret; 2997 2998 if (px === "" || px === "none") { 2999 ret = 0; 3000 } 3001 else { 3002 ret = parseInt(px); 3003 } 3004 return ret; 3005 }; 3006 CSSUtil.numToPx = function(n) { 3007 if (typeof n != "number") { 3008 throw new Error("n must be a number."); 3009 } 3010 return String(Math.round(n)) + "px"; 3011 }; 3012 CSSUtil.getCurrentEltStyleByNames = function(elem, styleNames) { 3013 var style = null; 3014 var i = 0; 3015 3016 while (i < styleNames.length) { 3017 style = CSSUtil.getCurrentStyle(elem, styleNames[i]); 3018 if (style != null) { 3019 break; 3020 } 3021 i++; 3022 } 3023 return style; 3024 }; 3025 CSSUtil.getCurrentStyle = function(element, cssStyle) { 3026 if (Boolean(element.currentStyle)) 3027 return element.currentStyle[cssStyle]; 3028 else { 3029 if (Boolean(window) && Boolean(window.getComputedStyle)) { 3030 var compStyle = window.getComputedStyle(element, null); 3031 3032 if (Boolean(compStyle) && Boolean(compStyle.getPropertyValue)) { 3033 return compStyle.getPropertyValue(cssStyle); 3034 } 3035 } 3036 } 3037 return null; 3038 }; 3039 CSSUtil.getCurrentStyleCorrect = function(element, camelStyleName, dashStyleName) { 3040 if (typeof document.defaultView != 'undefined' && typeof document.defaultView.getComputedStyle != 'undefined') { 3041 return (document.defaultView.getComputedStyle(element, null)).getPropertyValue(dashStyleName); 3042 } 3043 else { 3044 if (camelStyleName == 'width') { 3045 return String(element.offsetWidth) + "px"; 3046 } 3047 return element.currentStyle[camelStyleName]; 3048 } 3049 }; 3050 CSSUtil.getOpacity = function(element) { 3051 return XUIHtml.GetOpacity(element); 3052 }; 3053 CSSUtil.setOpacity = function(element, value) { 3054 XUIHtml.SetOpacity(element, value); 3055 }; 3056 var XUIHtml = {}; 3057 3058 XUIHtml.SetOpacity = function(domNode, newVal) { 3059 if (typeof domNode.style == "undefined") 3060 return; 3061 if (document.body.style.opacity != null) { 3062 if (newVal == 1) 3063 XUIHtml.RemoveCSSProperty(domNode, "opacity"); 3064 else { 3065 domNode.style.opacity = String(newVal); 3066 } 3067 } 3068 else { 3069 if (newVal == 1) 3070 XUIHtml.RemoveCSSProperty(domNode, "filter"); 3071 else 3072 domNode.style.filter = 'alpha(opacity=' + String(newVal * 100) + ')'; 3073 } 3074 }; 3075 XUIHtml.RemoveCSSProperty = function(domNode, propName) { 3076 if (typeof domNode.style.removeProperty != "undefined") 3077 domNode.style.removeProperty(propName); 3078 else 3079 domNode.style.removeAttribute(propName); 3080 }; 3081 XUIHtml.GetOpacity = function(domNode) { 3082 if (typeof domNode.style == "undefined") 3083 return -1; 3084 if (document.body.style.opacity != null) { 3085 var o = domNode.style.opacity; 3086 3087 return o != null && o != '' ? parseFloat(o) : 1; 3088 } 3089 else { 3090 var f = domNode.style.filter; 3091 3092 return f != null && f != '' ? parseInt((f.replace('alpha(opacity=', '')).replace(')', '')) / 100 : 1; 3093 } 3094 }; 3095} 3096var pxToNum; 3097var GetWidthFromPxString; 3098var GetCurrentEltStyle; 3099var GetCurrentEltStyleByNames; 3100var GetOpacity; 3101var SetOpacity; 3102var HasCssClass; 3103var AddCssClassToElement; 3104var RemoveCssClassFromElement; 3105var getCurrentEltStyleByNames; 3106var DOM; 3107 3108function DOM_module_def() { 3109 DOM.rightToLeft = document.documentElement.dir == "rtl"; 3110 DOM.cancelDefault = DOM_cancelDefault; 3111 DOM.AbsLeft = DOM_AbsLeft; 3112 DOM.AbsTop = DOM_AbsTop; 3113 DOM.CancelEvent = DOM_CancelEvent; 3114 DOM.GetElementsByName = DOM_GetElementsByName;
3115 DOM.GetEventCoords = DOM_GetEventCoords; 3116 DOM.GetEventSrcElement = DOM_GetEventSrcElement; 3117 DOM.GetInnerText = DOM_GetInnerText; 3118 DOM.GetParentLinkFromEvent = DOM_GetParentLinkFromEvent; 3119 DOM.GetSelectedElement = DOM_GetSelectedElement; 3120 DOM.PreventDefaultNavigation = DOM_PreventDefaultNavigation; 3121 DOM.SetEvent = DOM_SetEvent; 3122 DOM.AddEventHandler = DOM_AddEventHandler; 3123 DOM.RemoveEventHandler = DOM_RemoveEventHandler; 3124 DOM.EnsureElementIsInViewPort = DOM_EnsureElementIsInViewPort; 3125 function DOM_cancelDefault(evt) { 3126 if (typeof evt == "undefined" || evt == null) { 3127 evt = window.event; 3128 } 3129 if (!(typeof evt == "undefined" || evt == null)) { 3130 if (typeof evt.stopPropagation == "function") 3131 evt.stopPropagation(); 3132 else 3133 evt.cancelBubble = true; 3134 if (typeof evt.preventDefault == "function") 3135 evt.preventDefault(); 3136 else 3137 evt.returnValue = false; 3138 } 3139 return false; 3140 } 3141 function DOM_CancelEvent(e) { 3142 e.cancelBubble = true; 3143 if (Boolean(e.preventDefault)) 3144 e.preventDefault(); 3145 e.returnValue = false; 3146 return false; 3147 } 3148 function DOM_GetElementsByName(str) { 3149 var ret = document.getElementsByName(str); 3150 3151 if (ret.length == 0 && Boolean(XMLHttpRequest)) { 3152 ret = FFGetElementsById(document, str); 3153 } 3154 return ret; 3155 function FFGetElementsById(doc, tabId) { 3156 var rg = []; 3157 var ele = doc.getElementById(tabId); 3158 3159 while (ele != null) { 3160 rg.push(ele); 3161 ele.id = ""; 3162 ele = doc.getElementById(tabId); 3163 } 3164 var i; 3165 3166 for (i = 0; i < rg.length; i++) { 3167 rg[i].id = tabId; 3168 } 3169 return rg; 3170 } 3171 } 3172 function DOM_GetEventSrcElement(e) { 3173 if (e.target != null) { 3174 return e.target; 3175 } 3176 else if (typeof e.srcElement != 'undefined') { 3177 return e.srcElement; 3178 } 3179 else { 3180 ; 3181 return null; 3182 } 3183 } 3184 function DOM_GetParentLinkFromEvent(e) { 3185 if (e == null) 3186 e = window.event; 3187 var srcElement = DOM.GetEventSrcElement(e); 3188 var anchorElement = DOM_GetSelectedElement(srcElement, "A", "a"); 3189 3190 if (anchorElement !== null && anchorElement.tagName != null && anchorElement.tagName.toUpperCase() === "A") 3191 return anchorElement; 3192 else 3193 return null; 3194 } 3195 function DOM_GetSelectedElement(elem, tagName, tagAlt) { 3196 while (elem != null && elem.tagName != tagName && (tagAlt == null || elem.tagName != tagAlt)) 3197 elem = elem.parentNode; 3198 return elem; 3199 } 3200 function DOM_GetInnerText(elem) { 3201 if (typeof elem.textContent !== "undefined" && elem.textContent !== null) { 3202 return elem.textContent; 3203 } 3204 else if (typeof elem.innerText !== "undefined") { 3205 return elem.innerText; 3206 } 3207 return undefined; 3208 } 3209 function DOM_PreventDefaultNavigation(evt) { 3210 if (typeof evt == "undefined" || evt == null) { 3211 evt = window.event; 3212 } 3213 if (!(typeof evt == "undefined" || evt == null)) { 3214 if (evt.preventDefault == null) 3215 evt.returnValue = false; 3216 else 3217 evt.preventDefault(); 3218 } 3219 } 3220 function DOM_Abs(obj, propName) { 3221 var x = obj[propName]; 3222 var p = obj.offsetParent; 3223 3224 while (p != null && p.tagName != "BODY") { 3225 x += p[propName]; 3226 p = p.offsetParent; 3227 } 3228 if (p != null) 3229 x += p[propName]; 3230 return x; 3231 } 3232 function DOM_AbsLeft(obj) { 3233 return DOM_Abs(obj, "offsetLeft"); 3234 } 3235 function DOM_AbsTop(obj) { 3236 return DOM_Abs(obj, "offsetTop"); 3237 }
3238 function DOM_GetEventCoords(ev) { 3239 var x, y; 3240 3241 if ("undefined" !== typeof ev.pageX && "undefined" !== typeof ev.pageY) { 3242 x = ev.pageX; 3243 y = ev.pageY; 3244 } 3245 else { 3246 x = ev.clientX; 3247 y = ev.clientY; 3248 if ("undefined" !== typeof document.body && null !== document.body) { 3249 x += document.body.scrollLeft; 3250 y += document.body.scrollTop; 3251 } 3252 if ("undefined" !== typeof document.documentElement && null !== document.documentElement) { 3253 x += document.documentElement.scrollLeft; 3254 y += document.documentElement.scrollTop; 3255 } 3256 } 3257 return { 3258 x: x, 3259 y: y 3260 }; 3261 } 3262 function DOM_SetEvent(eventName, eventFunc, el) { 3263 if (!Boolean(el)) 3264 el = window; 3265 if (typeof eventFunc == 'string') 3266 eventFunc = new Function(eventFunc); 3267 el['on' + eventName] = eventFunc; 3268 } 3269 function DOM_AddEventHandler(ele, strEvt, func, useCapture) { 3270 if (Boolean(ele.addEventListener)) { 3271 useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; 3272 ele.addEventListener(strEvt.substr(2), func, useCapture); 3273 } 3274 else if (Boolean(ele.attachEvent)) { 3275 ele.attachEvent(strEvt, func); 3276 } 3277 } 3278 function DOM_RemoveEventHandler(ele, strEvt, func, useCapture) { 3279 if (Boolean(ele.removeEventListener)) { 3280 useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; 3281 ele.removeEventListener(strEvt.substr(2), func, useCapture); 3282 } 3283 else if (Boolean(ele.detachEvent)) { 3284 ele.detachEvent(strEvt, func); 3285 } 3286 } 3287 function DOM_EnsureElementIsInViewPort(ele, padding, widths) { 3288 var elementTop = Number(DOM_AbsTop(ele)); 3289 var elementLeft = Number(DOM_AbsLeft(ele)); 3290 var elementHeight = Number(ele.clientHeight); 3291 var elementWidth = Number(ele.clientWidth); 3292 var viewPortHeight = Number(document.documentElement.clientHeight); 3293 var viewPortWidth = Number(document.documentElement.clientWidth); 3294 var newTop = elementTop; 3295 var newLeft = elementLeft; 3296 3297 if (elementTop + elementHeight > viewPortHeight) { 3298 newTop = viewPortHeight - elementHeight - padding; 3299 } 3300 if (elementLeft < 0) { 3301 if (elementWidth + padding < viewPortWidth) 3302 newLeft = padding; 3303 } 3304 else if (elementLeft + elementWidth > viewPortWidth) { 3305 if (Boolean(widths)) { 3306 for (var i = 0; i < widths.length; i++) { 3307 newLeft -= widths[i]; 3308 } 3309 } 3310 else 3311 newLeft = viewPortWidth - elementWidth - padding; 3312 } 3313 if (newTop !== elementTop || newLeft !== elementLeft) { 3314 newTop = Math.max(newTop, 0); 3315 newLeft = Math.max(newLeft, 0); 3316 ele.style.position = "absolute"; 3317 ele.style.top = String(newTop) + "px"; 3318 ele.style.left = String(newLeft) + "px"; 3319 } 3320 } 3321} 3322var fRightToLeft; 3323var cancelDefault; 3324var AbsLeft; 3325var AbsTop; 3326var CancelEvent; 3327var GetElementsByName; 3328var GetEventCoords; 3329var GetEventSrcElement; 3330var GetInnerText; 3331var PreventDefaultNavigation; 3332var SetEvent; 3333var Encoding; 3334 3335function Encoding_module_def() { 3336 Encoding.EncodeScriptQuote = Encoding_encodeScriptQuote; 3337 Encoding.HtmlEncode = Encoding_STSHtmlEncode; 3338 Encoding.HtmlEncode2 = Encoding_STSHtmlEncode2; 3339 Encoding.HtmlEncodeEx = Encoding_STSHtmlEncodeEx; 3340 Encoding.HtmlDecode = Encoding_STSHtmlDecode; 3341 Encoding.AttrQuote = Encoding_StAttrQuote; 3342 Encoding.ScriptEncode = Encoding_STSScriptEncode; 3343 Encoding.ScriptEncodeWithQuote = Encoding_STSScriptEncodeWithQuote; 3344 Encoding.CanonicalizeUrlEncodingCase = Encoding_CanonicalizeUrlEncodingCase; 3345 Encoding.EncodePath = Encoding_encodePath; 3346 function Encoding_CanonicalizeUrlEncodingCase(str) { 3347 var strOut = ""; 3348 var ix; 3349 3350 for (ix = 0; ix < str.length; ix++) { 3351 var curChar = str.charAt(ix); 3352 3353 if (curChar == '%' && ix + 2 < str.length) { 3354 strOut += curChar; 3355 ix++; 3356 strOut += ((str.charAt(ix)).toString()).toUpperCase(); 3357 ix++; 3358 strOut += ((str.charAt(ix)).toString()).toUpperCase(); 3359 } 3360 else { 3361 strOut += curChar; 3362 } 3363 } 3364 return strOut; 3365 } 3366 function Encoding_encodeScriptQuote(str) { 3367 var strIn = new String(str); 3368 var strOut = []; 3369 var ix = 0; 3370 var max = strIn.length; 3371 3372 for (ix = 0; ix < max; ix++) { 3373 var ch = strIn.charAt(ix); 3374 3375 strOut.push(ch == '\'' ? "%27" : ch); 3376 } 3377 return strOut.join(''); 3378 } 3379 function Encoding_STSHtmlEncode(str) { 3380 return Encoding_STSHtmlEncode2(str, false); 3381 } 3382 function Encoding_STSHtmlEncode2(str, preventDoubleEncode) { 3383 if (null == str) 3384 return ""; 3385 var strIn = new String(str); 3386 var strOut = []; 3387 var ix = 0; 3388 var max = strIn.length; 3389 3390 for (ix = 0; ix < max; ix++) { 3391 var ch = strIn.charAt(ix); 3392 3393 switch (ch) { 3394 case '<': 3395 strOut.push("<"); 3396 break; 3397 case '>': 3398 strOut.push(">"); 3399 break; 3400 case '&': 3401 if (preventDoubleEncode && /^(&#\d+;|&#x[0-9A-F]+;)/i.test(strIn.substring(ix))) { 3402 strOut.push(ch); 3403 } 3404 else { 3405 strOut.push("&"); 3406 } 3407 break; 3408 case '\"': 3409 strOut.push("""); 3410 break; 3411 case '\'': 3412 strOut.push("'"); 3413 break; 3414 default: 3415 strOut.push(ch); 3416 break; 3417 } 3418 } 3419 return strOut.join(''); 3420 } 3421 function Encoding_encodePath(url, encodeHash) { 3422 if (null == url) 3423 return url; 3424 var encodedUrl = encodeURI(url); 3425 3426 if (encodeHash) { 3427 encodedUrl = encodedUrl.replace(/#/g, "%23"); 3428 } 3429 return encodedUrl; 3430 } 3431 function Encoding_STSHtmlEncodeEx(str) { 3432 if (null == str) 3433 return ""; 3434 var strIn = new String(str); 3435 var strOut = []; 3436 var ix = 0; 3437 var max = strIn.length; 3438 3439 for (ix = 0; ix < max; ix++) { 3440 var ch = strIn.charAt(ix); 3441 3442 switch (ch) { 3443 case '<': 3444 strOut.push("<"); 3445 break; 3446 case '>': 3447 strOut.push(">"); 3448 break; 3449 case '&': 3450 strOut.push("&"); 3451 break; 3452 case '\"': 3453 strOut.push("""); 3454 break; 3455 case '\'': 3456 strOut.push("'"); 3457 break; 3458 case '#': 3459 strOut.push("%23"); 3460 break; 3461 case '%': 3462 strOut.push("%25"); 3463 break; 3464 default: 3465 strOut.push(ch); 3466 break; 3467 } 3468 } 3469 return strOut.join(''); 3470 } 3471 function Encoding_STSHtmlDecode(str) { 3472 if (null == str) 3473 return ""; 3474 var rRegexs = [/\</g, /\>/g, /\"/g, /\'/g, /\:/g, /\{/g, /\}/g, /\&/g]; 3475 var rSubtitutes = ["<", ">", "\"", "'", ":", "{", "}", "&"]; 3476 var strOut = []; 3477 var ix = 0; 3478 var len = rRegexs.length; 3479 3480 for (ix = 0; ix < len; ix++) { 3481 var firstAmpPos = str.indexOf("&"); 3482 3483 if (-1 != firstAmpPos) { 3484 if (0 < firstAmpPos) { 3485 strOut.push(str.substr(0, firstAmpPos)); 3486 str = str.substr(firstAmpPos); 3487 } 3488 str = str.replace(rRegexs[ix], rSubtitutes[ix]); 3489 } 3490 else { 3491 break; 3492 } 3493 } 3494 strOut.push(str); 3495 return strOut.join(''); 3496 } 3497 function Encoding_StAttrQuote(st) { 3498 st = st.toString(); 3499 st = st.replace(/&/g, '&'); 3500 st = st.replace(/\"/g, '"'); 3501 st = st.replace(/\r/g, ' '); 3502 return '"' + st + '"'; 3503 } 3504 function Encoding_STSScriptEncode(str) { 3505 if (null == str || typeof str == 'undefined') 3506 return ""; 3507 var strIn = new String(str); 3508 var strOut = []; 3509 var ix = 0; 3510 var max = strIn.length; 3511 3512 for (ix = 0; ix < max; ix++) {
3513 var charCode = strIn.charCodeAt(ix); 3514 3515 if (charCode > 0x0fff) { 3516 strOut.push("\\u" + (charCode.toString(16)).toUpperCase()); 3517 } 3518 else if (charCode > 0x00ff) { 3519 strOut.push("\\u0" + (charCode.toString(16)).toUpperCase()); 3520 } 3521 else if (charCode > 0x007f) { 3522 strOut.push("\\u00" + (charCode.toString(16)).toUpperCase()); 3523 } 3524 else { 3525 var c = strIn.charAt(ix); 3526 3527 switch (c) { 3528 case '\n': 3529 strOut.push("\\n"); 3530 break; 3531 case '\r': 3532 strOut.push("\\r"); 3533 break; 3534 case '\"': 3535 strOut.push("\\u0022"); 3536 break; 3537 case '%': 3538 strOut.push("\\u0025"); 3539 break; 3540 case '&': 3541 strOut.push("\\u0026"); 3542 break; 3543 case '\'': 3544 strOut.push("\\u0027"); 3545 break; 3546 case '(': 3547 strOut.push("\\u0028"); 3548 break; 3549 case ')': 3550 strOut.push("\\u0029"); 3551 break; 3552 case '+': 3553 strOut.push("\\u002b"); 3554 break; 3555 case '/': 3556 strOut.push("\\u002f"); 3557 break; 3558 case '<': 3559 strOut.push("\\u003c"); 3560 break; 3561 case '>': 3562 strOut.push("\\u003e"); 3563 break; 3564 case '\\': 3565 strOut.push("\\\\"); 3566 break; 3567 default: 3568 strOut.push(c); 3569 } 3570 ; 3571 } 3572 } 3573 return strOut.join(''); 3574 } 3575 function Encoding_STSScriptEncodeWithQuote(str) { 3576 return '"' + Encoding_STSScriptEncode(str) + '"'; 3577 } 3578} 3579var encodeScriptQuote; 3580var STSHtmlEncode; 3581var STSHtmlEncode2; 3582var STSHtmlEncodeEx; 3583var STSHtmlDecode; 3584var StAttrQuote; 3585var STSScriptEncode; 3586var STSScriptEncodeWithQuote; 3587var CanonicalizeUrlEncodingCase; 3588var EncodePath; 3589var ExpFlighting; 3590 3591function ExpFlighting_module_def() { 3592 var c_strUndefined = "undefined"; 3593 3594 function IsFlightingAvailable() { 3595 var varConfig; 3596 3597 return typeof Flighting != c_strUndefined && typeof Flighting.VariantConfiguration != c_strUndefined && typeof Flighting.VariantConfiguration.IsExpFeatureClientEnabled != c_strUndefined; 3598 } 3599} 3600var IE8Support; 3601 3602function IE8Support_module_def() { 3603 IE8Support.arrayIndexOf = function(array, item, startIdx) { 3604 if (typeof Array.prototype.indexOf != "undefined") { 3605 return array.indexOf(item, startIdx); 3606 } 3607 if (typeof item === "undefined") 3608 return -1; 3609 var l = array.length; 3610 3611 if (l !== 0) { 3612 startIdx = startIdx - 0; 3613 if (isNaN(startIdx)) { 3614 startIdx = 0; 3615 } 3616 else { 3617 if (isFinite(startIdx)) { 3618 startIdx = startIdx - startIdx % 1; 3619 } 3620 if (startIdx < 0) { 3621 startIdx = Math.max(0, l + startIdx); 3622 } 3623 } 3624 for (var i = startIdx; i < l; i++) { 3625 if (typeof array[i] !== "undefined" && array[i] === item) { 3626 return i; 3627 } 3628 } 3629 } 3630 return -1; 3631 }; 3632 IE8Support.attachDOMContentLoaded = function(handler) { 3633 if (typeof document.addEventListener == 'undefined') { 3634 document.onreadystatechange = function() { 3635 if (document.readyState == "complete") { 3636 handler(); 3637 } 3638 }; 3639 } 3640 else { 3641 document.addEventListener("DOMContentLoaded", handler, false); 3642 } 3643 }; 3644 IE8Support.getComputedStyle = function(domObj, camelStyleName, dashStyleName) { 3645 if (typeof document.defaultView != 'undefined' && typeof document.defaultView.getComputedStyle != 'undefined') { 3646 return (document.defaultView.getComputedStyle(domObj, null)).getPropertyValue(dashStyleName); 3647 } 3648 else { 3649 if (camelStyleName == 'width') { 3650 return String(domObj.offsetWidth) + "px"; 3651 } 3652 return domObj.currentStyle[camelStyleName]; 3653 } 3654 }; 3655 IE8Support.stopPropagation = function(evt) { 3656 if (typeof evt.stopPropagation == "function") 3657 evt.stopPropagation(); 3658 else 3659 evt.cancelBubble = true; 3660 }; 3661 IE8Support.getCurrentTarget = function(evt) { 3662 if (typeof evt.currentTarget != "undefined") 3663 return evt.currentTarget; 3664 return evt.srcElement; 3665 }; 3666 if (typeof Array.isArray == 'undefined') { 3667 Array.isArray = function(obj) { 3668 return typeof obj == 'object' && obj instanceof Array; 3669 }; 3670 } 3671 if (typeof Object.create == 'undefined') { 3672 Object.create = function(proto, properties) { 3673 ; 3674 function ctr() { 3675 } 3676 ctr.prototype = proto; 3677 return new ctr; 3678 }; 3679 } 3680 if (typeof String.prototype.trim == "undefined") { 3681 String.prototype.trim = function() { 3682 return this.replace(/^\s+|\s+$/g, ''); 3683 }; 3684 } 3685} 3686var RequestUtil; 3687 3688function RequestUtil_module_def() { 3689 RequestUtil.RequestHeader = RequestHeader; 3690 function RequestHeader(header, value) { 3691 this.header = header; 3692 this.value = value; 3693 } 3694 RequestUtil.WithLoadedXMLHttpRequest = WithLoadedXMLHttpRequest; 3695 function WithLoadedXMLHttpRequest(xhrResultCallback, url, requestHeaders) { 3696 var req = new XMLHttpRequest(); 3697 3698 req.onreadystatechange = function() { 3699 if (req.readyState != 4) 3700 return; 3701 xhrResultCallback(req); 3702 }; 3703 req.open("GET", url, true); 3704 if (requestHeaders != null) { 3705 for (var i = 0; i < requestHeaders.length; i++) { 3706 var rh = requestHeaders[i];
3707 3708 req.setRequestHeader(rh.header, rh.value); 3709 } 3710 } 3711 req.send(""); 3712 } 3713 RequestUtil.WithUrlContents = WithUrlContents; 3714 function WithUrlContents(resultCallback, url, requestHeaders) { 3715 WithLoadedXMLHttpRequest(CallbackWithUrlContents, url, requestHeaders); 3716 function CallbackWithUrlContents(req) { 3717 var responseText = null; 3718 3719 if (req.status == 200) { 3720 responseText = req.responseText; 3721 } 3722 resultCallback(responseText); 3723 } 3724 } 3725 var _restHeaders = [new RequestHeader("Content-Type", "application/x-www-form-urlencoded"), new RequestHeader("ACCEPT", "application/json; odata = verbose")]; 3726 3727 RequestUtil.WithRestValue = WithRestValue; 3728 function WithRestValue(resultCallback, url) { 3729 WithUrlContents(resultCallback, url, _restHeaders); 3730 } 3731} 3732var StringUtil; 3733 3734function StringUtil_module_def() { 3735 StringUtil.BuildParam = StringUtil_StBuildParam; 3736 StringUtil.IsGuid = StringUtil_IsGuid; 3737 if (typeof String.prototype.endsWith == "undefined") { 3738 String.prototype.endsWith = function(suffix) { 3739 return this.substr(this.length - suffix.length) === suffix; 3740 }; 3741 } 3742 if (typeof String.prototype.startsWith == "undefined") { 3743 String.prototype.startsWith = function(prefix) { 3744 return this.substr(0, prefix.length) === prefix; 3745 }; 3746 } 3747 function StringUtil_StBuildParam(stPattern) { 3748 var re; 3749 var i; 3750 3751 for (i = 1; i < arguments.length; i++) { 3752 re = new RegExp("\\^" + String(i)); 3753 stPattern = stPattern.replace(re, arguments[i]); 3754 } 3755 return stPattern; 3756 } 3757 StringUtil.ApplyStringTemplate = function() { 3758 var a = arguments; 3759 3760 if (a.length < 1) 3761 throw new Error("arguments"); 3762 var str = Array.prototype.shift.call(a); 3763 3764 return str.replace(/\{(\d+)\}/g, getReplacementString); 3765 function getReplacementString(match, capture) { 3766 return a[Number(capture)]; 3767 } 3768 }; 3769 function StringUtil_IsGuid(str) { 3770 var regex = /^((\{[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}\})|([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}))$/i; 3771 3772 return regex.test(str); 3773 } 3774} 3775var StBuildParam; 3776var TypeUtil; 3777 3778function TypeUtil_module_def() { 3779 TypeUtil.IsArray = TypeUtil_IsArray; 3780 TypeUtil.IsNullOrUndefined = TypeUtil_IsNullOrUndefined; 3781 function TypeUtil_IsArray(input) { 3782 return typeof input == 'object' && input instanceof Array; 3783 } 3784 function TypeUtil_IsNullOrUndefined(value) { 3785 return value == null || value == undefined; 3786 } 3787} 3788var IsArray; 3789var IsNullOrUndefined; 3790var ObjectUtil; 3791 3792function ObjectUtil_module_def() { 3793 ObjectUtil.deepCopy = ObjectUtil_DeepCopy; 3794 ObjectUtil.deepCompare = ObjectUtil_DeepCompare; 3795 function ObjectUtil_DeepCopy(object) { 3796 var refsCopied = []; 3797 3798 function copyRecurse(obj) { 3799 var result = null; 3800 3801 if (Boolean(obj)) { 3802 if (obj instanceof Array) { 3803 result = []; 3804 } 3805 else { 3806 result = Object.create(Object.getPrototypeOf(obj)); 3807 } 3808 for (var i in obj) { 3809 if (obj.hasOwnProperty(i)) { 3810 if (typeof obj[i] === "object") { 3811 if (refsCopied.indexOf(obj[i]) !== -1) { 3812 throw new Error("Cannot perform DeepCopy() because a circular reference was encountered, object: " + String(obj) + ", property: " + String(i)); 3813 } 3814 refsCopied.push(obj[i]); 3815 result[i] = copyRecurse(obj[i]); 3816 refsCopied.pop(); 3817 } 3818 else { 3819 result[i] = obj[i]; 3820 } 3821 } 3822 } 3823 } 3824 return result; 3825 } 3826 return copyRecurse(object); 3827 } 3828 function ObjectUtil_DeepCompare(objA, objB, equivalent) { 3829 var refsComparedA = []; 3830 var refsComparedB = []; 3831 var compare = Boolean(equivalent) ? equivalent : function(a, b) { 3832 return a === b; 3833 }; 3834 3835 function equals(a, b) { 3836 if (a === b) { 3837 return true; 3838 } 3839 if (a === null || b === null) { 3840 return false; 3841 } 3842 for (var prop in b) { 3843 if (b.hasOwnProperty(prop) && !a.hasOwnProperty(prop)) { 3844 return false; 3845 } 3846 } 3847 if (a instanceof Object && b instanceof Object) { 3848 for (prop in a) { 3849 if (typeof a[prop] === "function" || !a.hasOwnProperty(prop)) { 3850 continue; 3851 } 3852 if (!b.hasOwnProperty(prop)) { 3853 return false; 3854 } 3855 if (!Boolean(compare(a[prop], b[prop]))) { 3856 if (typeof a[prop] === "object") { 3857 if (refsComparedA.indexOf(a[prop]) !== -1) { 3858 throw new Error("Cannot perform DeepCompare() because a circular reference was encountered, object: " + String(a) + ", property: " + String(prop)); 3859 } 3860 refsComparedA.push(a[prop]); 3861 if (refsComparedB.indexOf(b[prop]) !== -1) { 3862 throw new Error("Cannot perform DeepCompare() because a circular reference was encountered, object: " + String(b) + ", property: " + String(prop)); 3863 } 3864 refsComparedB.push(b[prop]); 3865 if (!equals(a[prop], b[prop])) { 3866 return false; 3867 } 3868 refsComparedA.pop();
3869 refsComparedB.pop(); 3870 } 3871 else { 3872 return false; 3873 } 3874 } 3875 } 3876 } 3877 else { 3878 return false; 3879 } 3880 return true; 3881 } 3882 return equals(objA, objB); 3883 } 3884} 3885var URI; 3886var unescapeProperly; 3887var GetAbsoluteUrl; 3888var RemoveParametersFromUrl; 3889var RemoveQueryParameterFromUrl; 3890var RemoveUrlKeyValue; 3891var StURLSetVar2; 3892var ParseMultiColumnValue; 3893var ConvertMultiColumnValueToString; 3894var CompleteDecode; 3895var URI_Encoding; 3896 3897function URI_Encoding_module_def() { 3898 function URI_escapeProperly(str, bAsUrl, bForFilterQuery, bForCallback) { 3899 var strOut = ""; 3900 var strByte; 3901 var ix = 0; 3902 var strEscaped = " \"%<>\'&"; 3903 3904 if (typeof str == "undefined") 3905 return ""; 3906 for (ix = 0; ix < str.length; ix++) { 3907 var charCode = str.charCodeAt(ix); 3908 var curChar = str.charAt(ix); 3909 3910 if (bAsUrl && (curChar == '#' || curChar == '?')) { 3911 strOut += str.substr(ix); 3912 break; 3913 } 3914 if (bForFilterQuery && curChar == '&') { 3915 strOut += curChar; 3916 continue; 3917 } 3918 if (charCode <= 0x7f) { 3919 if (bForCallback) { 3920 strOut += curChar; 3921 } 3922 else { 3923 if (charCode >= 97 && charCode <= 122 || charCode >= 65 && charCode <= 90 || charCode >= 48 && charCode <= 57 || bAsUrl && (charCode >= 32 && charCode <= 95) && strEscaped.indexOf(curChar) < 0) { 3924 strOut += curChar; 3925 } 3926 else if (charCode <= 0x0f) { 3927 strOut += "%0" + (charCode.toString(16)).toUpperCase(); 3928 } 3929 else if (charCode <= 0x7f) { 3930 strOut += "%" + (charCode.toString(16)).toUpperCase(); 3931 } 3932 } 3933 } 3934 else if (charCode <= 0x07ff) { 3935 strByte = 0xc0 | charCode >> 6; 3936 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3937 strByte = 0x80 | charCode & 0x003f; 3938 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3939 } 3940 else if ((charCode & 0xFC00) != 0xD800) { 3941 strByte = 0xe0 | charCode >> 12; 3942 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3943 strByte = 0x80 | (charCode & 0x0fc0) >> 6; 3944 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3945 strByte = 0x80 | charCode & 0x003f; 3946 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3947 } 3948 else if (ix < str.length - 1) { 3949 charCode = (charCode & 0x03FF) << 10; 3950 ix++; 3951 var nextCharCode = str.charCodeAt(ix); 3952 3953 charCode |= nextCharCode & 0x03FF; 3954 charCode += 0x10000; 3955 strByte = 0xf0 | charCode >> 18; 3956 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3957 strByte = 0x80 | (charCode & 0x3f000) >> 12; 3958 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3959 strByte = 0x80 | (charCode & 0x0fc0) >> 6; 3960 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3961 strByte = 0x80 | charCode & 0x003f; 3962 strOut += "%" + (strByte.toString(16)).toUpperCase(); 3963 } 3964 } 3965 return strOut; 3966 } 3967 function URI_escapeUrlForCallback(str) { 3968 var iPound = str.indexOf("#"); 3969 var iQues = str.indexOf("?"); 3970 3971 if (iPound > 0 && (iQues == -1 || iPound < iQues)) { 3972 var strNew = str.substr(0, iPound); 3973 3974 if (iQues > 0) { 3975 strNew += str.substr(iQues); 3976 } 3977 str = strNew; 3978 } 3979 return URI_escapeProperly(str, true, false, true); 3980 } 3981 URI_Encoding.encodeURIComponent = URI_escapeProperly; 3982 URI_Encoding.escapeUrlForCallback = URI_escapeUrlForCallback; 3983} 3984var escapeUrlForCallback; 3985var escapeProperly; 3986var escapeProperlyCore; 3987var escapeProperlyCoreCore; 3988 3989function PageContextInfo(webServerRelativeUrl, webLanguage, currentLanguage, webUIVersion, pageListId, pageItemId, userId, alertsEnabled, siteServerRelativeUrl, allowSilverlightPrompt, webAbsoluteUrl, siteClientTag, layoutsUrl, tenantAppVersion, siteAbsoluteUrl, themedImageRootPath, themedImageFileNames, clientServerTimeDelta, serverRedirectedUrl, expFeatures) { 3990 this.webServerRelativeUrl = webServerRelativeUrl; 3991 this.webAbsoluteUrl = webAbsoluteUrl; 3992 this.siteAbsoluteUrl = siteAbsoluteUrl; 3993 this.layoutsUrl = layoutsUrl; 3994 this.webLanguage = webLanguage; 3995 this.siteClientTag = siteClientTag; 3996 this.currentLanguage = currentLanguage; 3997 this.webUIVersion = webUIVersion; 3998 this.pageListId = pageListId; 3999 this.pageItemId = pageItemId; 4000 this.userId = userId;
4001 this.alertsEnabled = alertsEnabled; 4002 this.siteServerRelativeUrl = siteServerRelativeUrl; 4003 this.allowSilverlightPrompt = allowSilverlightPrompt; 4004 this.tenantAppVersion = tenantAppVersion; 4005 this.themedImageRootPath = themedImageRootPath; 4006 this.themedImageFileNames = themedImageFileNames; 4007 this.clientServerTimeDelta = clientServerTimeDelta; 4008 this.updateFormDigestPageLoaded = new Date(); 4009 this.serverRedirectedUrl = serverRedirectedUrl; 4010 this.ExpFeatures = expFeatures; 4011} 4012function PageContextInfo_InitializePrototype() { 4013 var dynamicNull = null; 4014 4015 PageContextInfo.prototype.webServerRelativeUrl = ""; 4016 PageContextInfo.prototype.webAbsoluteUrl = ""; 4017 PageContextInfo.prototype.siteAbsoluteUrl = ""; 4018 PageContextInfo.prototype.serverRequestPath = ""; 4019 PageContextInfo.prototype.layoutsUrl = ""; 4020 PageContextInfo.prototype.siteClientTag = ""; 4021 PageContextInfo.prototype.webLanguage = 0; 4022 PageContextInfo.prototype.webTitle = null; 4023 PageContextInfo.prototype.webLogoUrl = null; 4024 PageContextInfo.prototype.currentCultureName = null; 4025 PageContextInfo.prototype.currentUICultureName = null; 4026 PageContextInfo.prototype.currentLanguage = 0; 4027 PageContextInfo.prototype.crossDomainPhotosEnabled = false; 4028 PageContextInfo.prototype.AllowCustomMarkupInCalculatedField = false; 4029 PageContextInfo.prototype.CustomMarkupInCalculatedFieldDisabled = true; 4030 PageContextInfo.prototype.webUIVersion = 0; 4031 PageContextInfo.prototype.pageListId = ""; 4032 PageContextInfo.prototype.pageItemId = 0; 4033 PageContextInfo.prototype.userId = ""; 4034 PageContextInfo.prototype.systemUserKey = ""; 4035 PageContextInfo.prototype.alertsEnabled = false; 4036 PageContextInfo.prototype.siteServerRelativeUrl = ""; 4037 PageContextInfo.prototype.allowSilverlightPrompt = ""; 4038 PageContextInfo.prototype.tenantAppVersion = null; 4039 PageContextInfo.prototype.themedImageRootPath = null; 4040 PageContextInfo.prototype.themedImageFileNames = dynamicNull; 4041 PageContextInfo.prototype.clientServerTimeDelta = 0; 4042 PageContextInfo.prototype.webTemplate = ""; 4043 PageContextInfo.prototype.isSLV = false; 4044 PageContextInfo.prototype.userLoginName = "";
4045 PageContextInfo.prototype.supportPoundStorePath = ""; 4046 PageContextInfo.prototype.supportPercentStorePath = ""; 4047 PageContextInfo.prototype.updateFormDigestPageLoaded = new Date(); 4048 PageContextInfo.prototype.showNGSCDialogForSyncOnODB = false; 4049 PageContextInfo.prototype.showNGSCDialogForSyncOnTS = false; 4050 PageContextInfo.prototype.isSPO = false; 4051 PageContextInfo.prototype.serverRedirectedUrl = null; 4052 PageContextInfo.prototype.ExpFeatures = []; 4053} 4054var _spPageContextInfo; 4055var Nav; 4056 4057function Nav_module_def() { 4058 function AjaxNavigate() { 4059 this._list = new Array(0); 4060 this._fixLayoutsUrl = function AjaxNavigate$_fixLayoutsUrl(url) { 4061 var idxLayouts = url.indexOf("_layouts/"); 4062 4063 if (idxLayouts != -1) { 4064 var strPostLayouts = url.substr(idxLayouts); 4065 var expectedVersionNum = (strPostLayouts.split("/"))[1]; 4066 4067 if (expectedVersionNum != null) { 4068 if (isNaN(Number(expectedVersionNum))) 4069 url = url.replace("_layouts/", "_layouts/15/"); 4070 } 4071 } 4072 return url; 4073 }; 4074 this.update = function AjaxNavigate$update(url, updateParts, fullNavigate, anchorName) { 4075 var oldHash = Nav_AjaxNavigate$_GetWindowLocationHash(window.location.href); 4076 var hashObject = {}; 4077 var newHash = ""; 4078 4079 if (null == url) { 4080 if (oldHash != null && oldHash.length != 0) { 4081 var parts = (oldHash.substr(1)).split('#'); 4082 var partsLength = parts.length; 4083 var partPosStart = 0; 4084 4085 if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && partsLength > 0 && parts[0].length > 0 && parts[0][0] == '/') { 4086 newHash = parts[0]; 4087 partPosStart = 1; 4088 } 4089 Nav_AjaxNavigate$_parseParams(hashObject, parts, partsLength, partPosStart); 4090 } 4091 } 4092 else { 4093 newHash = this._fixLayoutsUrl(url); 4094 } 4095 if ("undefined" != typeof updateParts) { 4096 for (var part in updateParts) { 4097 var partValue = updateParts[part]; 4098 4099 if (null != partValue && "string" != typeof partValue && "number" != typeof partValue) { 4100 throw "Unexpected"; 4101 } 4102 if (null == partValue) { 4103 if (hashObject[part] != null) { 4104 delete hashObject[part]; 4105 } 4106 } 4107 else { 4108 hashObject[part] = updateParts[part]; 4109 } 4110 } 4111 } 4112 if ("undefined" != typeof anchorName && anchorName != null && anchorName != "") 4113 newHash += "#" + encodeURIComponent(anchorName); 4114 for (part in hashObject) { 4115 if (part != "anchorTag") 4116 newHash += "#" + part + "=" + encodeURIComponent(hashObject[part]); 4117 } 4118 if (null != url) { 4119 if (typeof _dlgWndTop == 'function' && typeof commonModalDialogClose == 'function') { 4120 commonModalDialogClose(0, null); 4121 } 4122 } 4123 var fDeltaManager = "undefined" != typeof asyncDeltaManager && Boolean(asyncDeltaManager) && "undefined" != typeof asyncDeltaManager._handleLocalAnchor && "undefined" != typeof asyncDeltaManager.SetCurrentUrl && "undefined" != typeof asyncDeltaManager._navigate; 4124 4125 if ("undefined" != typeof fullNavigate && fullNavigate || !fDeltaManager) { 4126 if (newHash.startsWith('#')) { 4127 try { 4128 window.location.hash = newHash; 4129 } 4130 catch (ex) { } 4131 } 4132 else { 4133 try { 4134 window.location.href = newHash; 4135 } 4136 catch (ex) { } 4137 } 4138 } 4139 else { 4140 if (null == url) { 4141 if (fDeltaManager) { 4142 if ("undefined" != typeof anchorName && anchorName != null && anchorName != "") 4143 asyncDeltaManager._handleLocalAnchor(anchorName); 4144 var startPageUrl = Nav_AjaxNavigate$_GetWindowLocationNoHash(window.location.href); 4145 var newAction = Nav_GetUrlFromMDSLocation(startPageUrl, Nav_RemoveMDSQueryParametersFromUrl(newHash), true); 4146 4147 if (Boolean(newAction)) { 4148 asyncDeltaManager._savedFormAction = newAction; 4149 } 4150 } 4151 try { 4152 window.location.hash = newHash; 4153 } 4154 catch (ex) { } 4155 } 4156 else { 4157 if (fDeltaManager) { 4158 asyncDeltaManager.SetCurrentUrl(null); 4159 asyncDeltaManager._navigate(newHash, anchorName, true); 4160 } 4161 } 4162 } 4163 }; 4164 this.add_navigate = function AjaxNavigate$add_navigate(handler) { 4165 if ('function' != typeof handler) 4166 throw "unexpected"; 4167 var index = IE8Support.arrayIndexOf(this._list, handler, 0); 4168 4169 if (-1 == index) { 4170 this._list.push(handler); 4171 } 4172 }; 4173 this.remove_navigate = function AjaxNavigate$remove_navigate(handler) { 4174 if ('function' != typeof handler) 4175 throw "unexpected"; 4176 var index = IE8Support.arrayIndexOf(this._list, handler, 0); 4177 4178 if (-1 != index) { 4179 this._list.splice(index, 1); 4180 } 4181 }; 4182 this._buildHashBag = function AjaxNavigate$_buildHashBag(hash) { 4183 var hashObject = {}; 4184 4185 try { 4186 if (hash == "" || hash == "#") { 4187 hashObject["url"] = "/"; 4188 } 4189 else if (hash != null && hash.length != 0) { 4190 var parts = (hash.substr(1)).split(/#|%23/); 4191 var partsLength = parts.length; 4192 var partPosStart = 0; 4193 4194 if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && partsLength > 0 && parts[0].length > 0 && parts[0][0] == '/') { 4195 hashObject["url"] = parts[0]; 4196 partPosStart = 1; 4197 } 4198 Nav_AjaxNavigate$_parseParams(hashObject, parts, partsLength, partPosStart); 4199 } 4200 } 4201 catch (e) { } 4202 ; 4203 return hashObject; 4204 }; 4205 this._raiseNavigate = function AjaxNavigate$_raiseNavigate(sender) { 4206 var hashObject = this._buildHashBag(Nav_AjaxNavigate$_GetWindowLocationHash(window.location.href)); 4207 var listLen = this._list.length; 4208 4209 for (var i = 0, l = listLen; i < l; i++) { 4210 this._list[i](sender, hashObject); 4211 } 4212 }; 4213 this._clear = function AjaxNavigate$_clear() { 4214 this._list = new Array(0); 4215 }; 4216 this.submit = function AjaxNavigate$submit(formToSubmit) { 4217 if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx") && "undefined" != typeof asyncDeltaManager && "undefined" != typeof asyncDeltaManager._onFormSubmitCore) { 4218 asyncDeltaManager._onFormSubmitCore(formToSubmit); 4219 } 4220 else { 4221 formToSubmit.submit(); 4222 } 4223 };
4224 this.getParam = function AjaxNavigate$_getParam(partName) { 4225 var hashObject = this._buildHashBag(Nav_AjaxNavigate$_GetWindowLocationHash(window.location.href)); 4226 4227 return hashObject[partName]; 4228 }; 4229 this.getSavedFormAction = function AjaxNavigate$_getSavedFormAction() { 4230 var formAction = null; 4231 4232 if ("undefined" != typeof asyncDeltaManager && Boolean(asyncDeltaManager) && "undefined" != typeof asyncDeltaManager._savedFormAction) { 4233 formAction = asyncDeltaManager._savedFormAction; 4234 if (Boolean(formAction)) { 4235 formAction = Nav_AjaxNavigate$_normalizeFormAction(formAction); 4236 } 4237 } 4238 return formAction; 4239 }; 4240 this.get_href = function AjaxNavigate$get_href() { 4241 var ajaxLocation = null; 4242 4243 if ((window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { 4244 if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload) { 4245 ajaxLocation = this.getSavedFormAction(); 4246 } 4247 if (!Boolean(ajaxLocation)) { 4248 ajaxLocation = Nav_AjaxNavigate$_getAjaxLocationWindow(); 4249 } 4250 } 4251 else { 4252 ajaxLocation = window.location.href; 4253 } 4254 return ajaxLocation; 4255 }; 4256 this.get_hash = function AjaxNavigate$get_hash() { 4257 var ajaxHash = window.location.hash; 4258 4259 if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { 4260 var hashIndex = ajaxHash.indexOf("#", 1); 4261 4262 ajaxHash = hashIndex > 0 ? ajaxHash.substr(hashIndex) : ""; 4263 } 4264 return ajaxHash; 4265 }; 4266 this.get_search = function AjaxNavigate$get_search() { 4267 var ajaxsearch = ""; 4268 4269 if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx")) { 4270 var href = this.getSavedFormAction(); 4271 4272 if (Boolean(href)) { 4273 var startSearch = href.indexOf("?"); 4274 4275 if (-1 != startSearch) { 4276 ajaxsearch = href.substr(startSearch); 4277 } 4278 } 4279 } 4280 else { 4281 ajaxsearch = window.location.search; 4282 } 4283 return ajaxsearch; 4284 }; 4285 this.convertMDSURLtoRegularURL = function Nav_AjaxNavigate$convertMDSURLtoRegularURL(mdsPath) { 4286 var regularUrl = mdsPath; 4287 4288 if (mdsPath != null || mdsPath != "") { 4289 var startPage = "/_layouts/15/start.aspx"; 4290 var idxMdsHash = (mdsPath.toLowerCase()).indexOf(startPage); 4291 4292 if (idxMdsHash != -1) { 4293 var webUrl = mdsPath.substring(0, idxMdsHash); 4294 4295 idxMdsHash += startPage.length; 4296 if (mdsPath.length == idxMdsHash) { 4297 regularUrl = webUrl; 4298 } 4299 else if (mdsPath[idxMdsHash] == '#') { 4300 idxMdsHash += 1; 4301 if (mdsPath.length == idxMdsHash) { 4302 regularUrl = webUrl; 4303 } 4304 else if (mdsPath.length >= idxMdsHash + 2 && mdsPath[idxMdsHash] == '/' && mdsPath[idxMdsHash + 1] == '/') { 4305 var idxHttp = mdsPath.indexOf("://"); 4306 4307 if (idxHttp != -1) { 4308 var idxServerPath = mdsPath.indexOf("/", idxHttp + 3); 4309 4310 if (idxServerPath != -1) { 4311 var serverPath = mdsPath.substring(0, idxServerPath); 4312 var serverRelativeUrl = mdsPath.substring(idxMdsHash + 1); 4313 4314 regularUrl = Nav_AjaxNavigate$combineURL(serverPath, serverRelativeUrl); 4315 } 4316 } 4317 } 4318 else if (mdsPath.length >= idxMdsHash + 1 && mdsPath[idxMdsHash] == '/') { 4319 var webRelativeUrl = mdsPath.substring(idxMdsHash); 4320 4321 regularUrl = Nav_AjaxNavigate$combineURL(webUrl, webRelativeUrl); 4322 } 4323 } 4324 } 4325 } 4326 return regularUrl; 4327 }; 4328 } 4329 function Nav_AjaxNavigate$WantsNewTab(evt) { 4330 if ("undefined" != typeof evt.ctrlKey && Boolean(evt.ctrlKey)) { 4331 return true; 4332 } 4333 if ("undefined" != typeof evt.button && 1 == evt.button) { 4334 return true; 4335 } 4336 var parentLink = DOM.GetParentLinkFromEvent(evt); 4337 4338 if (parentLink != null) { 4339 var linkTarget = parentLink.getAttribute("target"); 4340 4341 if (Boolean(linkTarget)) { 4342 linkTarget = linkTarget.toUpperCase(); 4343 if (linkTarget == "_BLANK" || linkTarget == "_NEW" || linkTarget.charAt(0) != "_") { 4344 return true; 4345 } 4346 } 4347 } 4348 return false; 4349 } 4350 function Nav_AjaxNavigate$OnClickHook(evt, topElem) { 4351 if (!(evt.returnValue === false || evt.defaultPrevented) && !Nav_AjaxNavigate$WantsNewTab(evt)) { 4352 var srcElement = DOM.GetEventSrcElement(evt); 4353 var currentElem = srcElement; 4354 var anchorClick = false; 4355 4356 while (null != currentElem) { 4357 if (null != currentElem.tagName && "A" == currentElem.tagName.toUpperCase()) { 4358 anchorClick = true; 4359 break; 4360 } 4361 if (currentElem == topElem) 4362 break; 4363 currentElem = currentElem.parentNode; 4364 } 4365 if (anchorClick && currentElem.href != null && currentElem.href.length > 0 && currentElem.href != "#" && !/^javascript:/i.test(currentElem.href)) { 4366 if (window["OffSwitch"] == null || OffSwitch.IsActive("911A3FDF-0DB6-45AC-BD03-E2FE43E0925B") || Nav.isPageUrlValid(currentElem.href)) { 4367 DOM.cancelDefault(evt); 4368 Nav.navigate(currentElem.href); 4369 return false; 4370 } 4371 } 4372 } 4373 return (function(u) { 4374 return u; 4375 })(); 4376 } 4377 function Nav_AjaxNavigate$_parseParams(hashObject, parts, partsLength, partPosStart) { 4378 var bLocalAnchor = false; 4379 4380 for (var partPos = partPosStart; partPos < partsLength; partPos++) { 4381 var part = parts[partPos]; 4382 4383 if (null == part || 0 == part.length) 4384 continue; 4385 var eqPos = part.indexOf('='); 4386 var key; 4387 var value; 4388 4389 if (eqPos >= 1) { 4390 key = part.substr(0, eqPos); 4391 value = part.substr(eqPos + 1);
4392 hashObject[key] = URI.decodeURIComponent(value); 4393 } 4394 else if (eqPos == -1 && !bLocalAnchor) { 4395 if (bLocalAnchor) 4396 throw "Unexpected"; 4397 key = "anchorTag"; 4398 value = part; 4399 hashObject[key] = URI.decodeURIComponent(value); 4400 bLocalAnchor = true; 4401 } 4402 else { 4403 throw "Unexpected"; 4404 } 4405 } 4406 } 4407 function Nav_AjaxNavigate$_GetWindowLocationHash(href) { 4408 var nHashPos = href.indexOf('#'); 4409 4410 nHashPos = nHashPos > 0 ? nHashPos : href.length; 4411 return href.substr(nHashPos); 4412 } 4413 function Nav_AjaxNavigate$_GetWindowLocationNoHash(href) { 4414 var nHashPos = href.indexOf('#'); 4415 4416 nHashPos = nHashPos > 0 ? nHashPos : href.length; 4417 return href.substr(0, nHashPos); 4418 } 4419 function Nav_RemoveMDSQueryParametersFromUrl(inUrl) { 4420 return URI.removeQueryParameter(URI.removeQueryParameter(URI.removeQueryParameter(inUrl, 'AjaxDelta'), 'OrigMaster'), 'isStartPlt1'); 4421 } 4422 function Nav_GetUrlFromMDSLocation(startPage, relativeMDSLocation, fServerAbsolute) { 4423 var anUndefined = (function() { 4424 })(); 4425 4426 if (startPage == null) 4427 return anUndefined; 4428 if (relativeMDSLocation == null || relativeMDSLocation.length < 1 || relativeMDSLocation[0] != "/") 4429 return anUndefined; 4430 var locationWeb = startPage.indexOf("/_layouts/15/start.aspx"); 4431 4432 if (-1 == locationWeb) { 4433 return anUndefined; 4434 } 4435 var prefix; 4436 4437 if (fServerAbsolute && '/' != startPage[0]) { 4438 var startHostName = startPage.indexOf("://"); 4439 4440 if (-1 == startHostName) 4441 return anUndefined; 4442 var firstSlash = startPage.indexOf("/", startHostName + 3); 4443 4444 prefix = startPage.substr(firstSlash, locationWeb - firstSlash); 4445 } 4446 else { 4447 prefix = startPage.substr(0, locationWeb); 4448 } 4449 return prefix + relativeMDSLocation; 4450 } 4451 function Nav_AjaxNavigate$_UrlFromHashBag(hashObject) { 4452 var url = hashObject["url"]; 4453 var anchorName = hashObject["anchorTag"]; 4454 4455 for (var part in hashObject) { 4456 if (part != "anchorTag" && part != "url") 4457 url += "#" + part + "=" + encodeURIComponent(hashObject[part]); 4458 } 4459 if (Boolean(anchorName)) { 4460 url += "#" + anchorName; 4461 } 4462 if (null != url && url.length > 1 && "/" == url[0] && "/" == url[1]) { 4463 return url.substr(1); 4464 } 4465 else { 4466 var startPageUrl = Nav_AjaxNavigate$_GetWindowLocationNoHash(window.location.href); 4467 4468 return Nav_GetUrlFromMDSLocation(startPageUrl, url, true); 4469 } 4470 } 4471 function Nav_AjaxNavigate$parseHash(hash) { 4472 var hashObject = {}; 4473 4474 try { 4475 if (hash != null && hash.length != 0) { 4476 var parts = hash.split('#'); 4477 4478 Nav_AjaxNavigate$_parseParams(hashObject, parts, parts.length, 0); 4479 } 4480 } 4481 catch (e) { } 4482 ; 4483 return hashObject; 4484 } 4485 function Nav_AjaxNavigate$_normalizeFormAction(formAction) { 4486 var tmpForm = document.createElement('form'); 4487 4488 tmpForm.action = formAction; 4489 return tmpForm.action; 4490 } 4491 function Nav_AjaxNavigate$_getAjaxLocationWindow() { 4492 var ajaxLocation = null; 4493 var href = window.location.href; 4494 var startPos = (href.toLowerCase()).indexOf("/_layouts/15/start.aspx"); 4495 var index1 = href.indexOf("://"); 4496 var index2 = href.indexOf("/", index1 + 3); 4497 4498 if (-1 == index2) { 4499 index2 = href.length; 4500 } 4501 var hashPos = href.indexOf("#"); 4502 4503 if (-1 != hashPos && hashPos + 1 <= href.length && "/" == href[hashPos + 1]) { 4504 if (hashPos + 2 <= href.length && "/" == href[hashPos + 2]) { 4505 ajaxLocation = href.substr(0, index2) + href.substr(hashPos + 2); 4506 } 4507 else { 4508 ajaxLocation = href.substr(0, startPos) + href.substr(hashPos + 1); 4509 } 4510 } 4511 else { 4512 ajaxLocation = href.substr(0, startPos); 4513 } 4514 return ajaxLocation; 4515 } 4516 function Nav_AjaxNavigate$combineURL(baseUrlPath, additionalNodes) { 4517 if (baseUrlPath.endsWith("/")) { 4518 if (additionalNodes.startsWith("/")) 4519 additionalNodes = additionalNodes.substring(1); 4520 return baseUrlPath + additionalNodes; 4521 } 4522 else { 4523 return additionalNodes.startsWith("/") ? baseUrlPath + additionalNodes : baseUrlPath + "/" + additionalNodes; 4524 } 4525 } 4526 function Nav_AjaxNavigate$isMDSURL(url) { 4527 var idxQuery = url.indexOf("?"); 4528 4529 if (-1 == idxQuery) { 4530 idxQuery = url.length; 4531 } 4532 var idxHash = url.indexOf("#"); 4533 4534 if (-1 == idxHash) { 4535 idxHash = url.length; 4536 } 4537 var idxMin = Math.min(idxQuery, idxHash); 4538 4539 url = url.substr(0, idxMin); 4540 return (url.toLowerCase()).endsWith("/_layouts/15/start.aspx"); 4541 } 4542 function Nav_AjaxNavigate$convertRegularURLtoMDSURL(webUrl, fullPath) { 4543 if (Nav_AjaxNavigate$isMDSURL(fullPath)) 4544 return fullPath; 4545 var mdsUrl = null; 4546 4547 if (webUrl != null && (fullPath.toLowerCase()).startsWith(webUrl.toLowerCase() + "/")) { 4548 var webRelativeUrl = fullPath.substring(webUrl.length + 1); 4549 4550 if (webRelativeUrl == null || webRelativeUrl == "") { 4551 webRelativeUrl = "/"; 4552 } 4553 else if ('/' != webRelativeUrl[0]) { 4554 webRelativeUrl = "/" + webRelativeUrl; 4555 } 4556 mdsUrl = Nav_AjaxNavigate$combineURL(webUrl, "/_layouts/15/start.aspx" + "#" + webRelativeUrl); 4557 } 4558 else { 4559 var idxHttp = fullPath.indexOf("://"); 4560 4561 if (idxHttp != -1) { 4562 var idxServerPath = fullPath.indexOf("/", idxHttp + 3); 4563 4564 if (idxServerPath != -1) { 4565 var serverPath = fullPath.substring(0, idxServerPath); 4566 var serverRelativeUrl = fullPath.substring(idxServerPath); 4567 4568 if (serverRelativeUrl == null || serverRelativeUrl == "") { 4569 serverRelativeUrl = "/"; 4570 } 4571 else if ('/' != serverRelativeUrl[0]) { 4572 serverRelativeUrl = "/" + serverRelativeUrl; 4573 } 4574 mdsUrl = Nav_AjaxNavigate$combineURL(serverPath, "/_layouts/15/start.aspx" + "#/" + serverRelativeUrl); 4575 } 4576 } 4577 } 4578 return mdsUrl; 4579 } 4580 var Nav_ajaxNavigate = new AjaxNavigate; 4581 4582 Nav.ajaxNavigate = Nav_ajaxNavigate; 4583 Nav.combineUrl = Nav_AjaxNavigate$combineURL; 4584 Nav.convertRegularURLtoMDSURL = Nav_AjaxNavigate$convertRegularURLtoMDSURL; 4585 Nav.isMDSUrl = Nav_AjaxNavigate$isMDSURL; 4586 Nav.isPageUrlValid = Nav_IsSTSPageUrlValid; 4587 Nav.isPortalTemplatePage = Nav_isPortalTemplatePage; 4588 Nav.getAjaxLocationWindow = Nav_AjaxNavigate$_getAjaxLocationWindow; 4589 Nav.getSource = Nav_GetSource; 4590 Nav.getUrlKeyValue = Nav_GetUrlKeyValue; 4591 Nav.getWindowLocationNoHash = Nav_AjaxNavigate$_GetWindowLocationNoHash; 4592 Nav.goToHistoryLink = Nav_GoToHistoryLink; 4593 Nav.getGoToLinkUrl = Nav_GetGotoLinkUrl; 4594 Nav.goToLink = Nav_GoToLink; 4595 Nav.goToLinkOrDialogNewWindow = Nav_GoToLinkOrDialogNewWindow; 4596 Nav.goToDiscussion = Nav_GoToDiscussion; 4597 Nav.onClickHook = Nav_AjaxNavigate$OnClickHook; 4598 Nav.pageUrlValidation = Nav_PageUrlValidation; 4599 Nav.parseHash = Nav_AjaxNavigate$parseHash; 4600 Nav.navigate = Nav_STSNavigate; 4601 Nav.removeMDSQueryParametersFromUrl = Nav_RemoveMDSQueryParametersFromUrl; 4602 Nav.urlFromHashBag = Nav_AjaxNavigate$_UrlFromHashBag; 4603 Nav.wantsNewTab = Nav_AjaxNavigate$WantsNewTab; 4604 function Nav_STSNavigate(Url) { 4605 Url = URI.getAbsolute(Url); 4606 if ((Nav.ajaxNavigate.get_search()).indexOf("IsDlg=1") != -1) { 4607 if (Url.indexOf("?") != -1) { 4608 if (String(Url.match(RegExp("&$"))) != "&") { 4609 Url = Url + "&IsDlg=1"; 4610 } 4611 else { 4612 Url = Url + "IsDlg=1"; 4613 } 4614 } 4615 else { 4616 Url = Url + "?IsDlg=1"; 4617 } 4618 } 4619 if (window.frameElement != null || typeof SPUpdatePage === 'undefined' || typeof SPUpdatePage !== 'undefined' && SPUpdatePage(Url)) { 4620 if (shouldOpenInTopFrame(Url)) 4621 window.top.location.href = Nav.pageUrlValidation(Url); 4622 else 4623 window.location.href = Nav.pageUrlValidation(Url); 4624 } 4625 } 4626 function shouldOpenInTopFrame(Url) { 4627 return Nav_GetUrlKeyValue("OpenInTopFrame") == "1" || Nav_isPortalTemplatePage(Url); 4628 } 4629 function Nav_isPortalTemplatePage(Url) { 4630 if (Nav.getUrlKeyValue("PortalTemplate") == "1" || Nav.getUrlKeyValue("PortalTemplate", Boolean(Url)) == "1" || typeof currentCtx != "undefined" && currentCtx != null && typeof currentCtx.isPortalTemplate != "undefined" && Boolean(currentCtx.isPortalTemplate)) 4631 return true; 4632 else 4633 return false; 4634 } 4635 function Nav_GetUrlKeyValue(keyName, bNoDecode, url, bCaseInsensitive) { 4636 var keyValue = ""; 4637 4638 if (url == null) 4639 url = Nav.ajaxNavigate.get_href() + ""; 4640 var ndx; 4641 4642 ndx = url.indexOf("#"); 4643 if (ndx >= 0) { 4644 url = url.substr(0, ndx); 4645 } 4646 var urlToSearchKeyIn; 4647 4648 if (bCaseInsensitive) { 4649 keyName = keyName.toLowerCase(); 4650 urlToSearchKeyIn = url.toLowerCase(); 4651 } 4652 else { 4653 urlToSearchKeyIn = url; 4654 } 4655 ndx = urlToSearchKeyIn.indexOf("&" + keyName + "="); 4656 if (ndx == -1) 4657 ndx = urlToSearchKeyIn.indexOf("?" + keyName + "="); 4658 if (ndx != -1) { 4659 var ndx2 = url.indexOf("&", ndx + 1); 4660 4661 if (ndx2 == -1) 4662 ndx2 = url.length; 4663 keyValue = url.substring(ndx + keyName.length + 2, ndx2); 4664 } 4665 if (bNoDecode) 4666 return keyValue; 4667 else 4668 return URI.decodeURIComponent(keyValue); 4669 } 4670 function Nav_IsSTSPageUrlValid(url) { 4671 return url.substr(0, 4) == "http" || url.substr(0, 1) == "/" || url.indexOf(":") == -1; 4672 } 4673 function Nav_PageUrlValidation(url, alertString) { 4674 if (Nav_IsSTSPageUrlValid(url)) { 4675 return url; 4676 } 4677 else { 4678 if (Boolean(alertString)) { 4679 alert(alertString); 4680 } 4681 return ""; 4682 } 4683 } 4684 function Nav_GoToHistoryLink(elm, strVersion) { 4685 if (elm.href == null) 4686 return; 4687 var targetUrl = elm.href; 4688 var ch = elm.href.indexOf("?") >= 0 ? "&" : "?"; 4689 var srcUrl = ch + "VersionNo=" + strVersion; 4690 var srcSourceUrl = Nav.getSource(); 4691 4692 if (srcSourceUrl != null && srcSourceUrl != "") 4693 srcSourceUrl = "&" + "Source=" + srcSourceUrl; 4694 targetUrl = elm.href + srcUrl + srcSourceUrl; 4695 if (shouldOpenInTopFrame(targetUrl)) 4696 window.top.location.href = Nav.pageUrlValidation(targetUrl); 4697 else 4698 window.location.href = Nav.pageUrlValidation(targetUrl); 4699 } 4700 function Nav_GetGotoLinkUrl(elm) { 4701 if (elm.href == null) 4702 return null; 4703 var ch = elm.href.indexOf("?") >= 0 ? "&" : "?"; 4704 var srcUrl = Nav.getSource(); 4705 4706 if (srcUrl != null && srcUrl != "") 4707 srcUrl = ch + "Source=" + srcUrl; 4708 var targetUrl = elm.href + srcUrl; 4709 4710 return targetUrl; 4711 } 4712 function Nav_GoToLink(elm) { 4713 var targetUrl = Nav_GetGotoLinkUrl(elm); 4714 4715 if (targetUrl == null) 4716 return; 4717 if (elm.target === "_blank") { 4718 window.open(targetUrl, "_blank"); 4719 return; 4720 } 4721 var fNavigate = true; 4722 4723 if (typeof window.top.SPUpdatePage !== 'undefined') { 4724 fNavigate = window.top.SPUpdatePage(targetUrl); 4725 } 4726 if (fNavigate) { 4727 if (shouldOpenInTopFrame(targetUrl)) 4728 window.top.location.href = Nav.pageUrlValidation(targetUrl); 4729 else 4730 window.location.href = Nav.pageUrlValidation(targetUrl); 4731 } 4732 } 4733 function Nav_GoToLinkOrDialogNewWindow(elm) { 4734 if (elm.href == null) 4735 return; 4736 if (Boolean((Nav.ajaxNavigate.get_search()).match(RegExp("[?&]IsDlg=1")))) 4737 window.open(elm.href); 4738 else 4739 Nav_GoToLink(elm); 4740 } 4741 function Nav_GoToDiscussion(url) { 4742 var ch = url.indexOf("?") >= 0 ? "&" : "?"; 4743 var srcUrl = Nav.getSource(); 4744 4745 if (srcUrl != null && srcUrl != "") 4746 url += ch + "TopicsView=" + srcUrl; 4747 Nav.navigate(url); 4748 } 4749 function Nav_GetSource(defaultSource) { 4750 if (typeof GetSource2 == "function") { 4751 return URI_Encoding.encodeURIComponent(GetSource2(defaultSource, null)); 4752 } 4753 var source = Nav.getUrlKeyValue("Source"); 4754 4755 if (source == "") { 4756 if (defaultSource != null && defaultSource != "") 4757 source = defaultSource; 4758 else 4759 source = Nav.ajaxNavigate.get_href(); 4760 } 4761 return URI_Encoding.encodeURIComponent(Nav.pageUrlValidation(source)); 4762 } 4763} 4764var ajaxNavigate; 4765var STSNavigate; 4766var GetUrlKeyValue; 4767var STSPageUrlValidation; 4768var PageUrlValidation; 4769var AjaxNavigate$isMDSURL; 4770var isPortalTemplatePage; 4771var GoToHistoryLink; 4772var GetGotoLinkUrl; 4773var GoToLink; 4774var GoToLinkOrDialogNewWindow; 4775var GoToDiscussion; 4776var GetSource; 4777var RemoveMDSQueryParametersFromUrl; 4778var AjaxNavigate$_GetWindowLocationNoHash; 4779var AjaxNavigate$WantsNewTab; 4780var AjaxNavigate$parseHash; 4781var AjaxNavigate$_UrlFromHashBag; 4782var AjaxNavigate$_getAjaxLocationWindow; 4783var IsSTSPageUrlValid; 4784var AjaxNavigate$OnClickHook; 4785var AjaxNavigate$convertRegularURLtoMDSURL; 4786var AjaxNavigate$convertMDSURLtoRegularURL; 4787var ProfileCache; 4788 4789function ProfileCache_module_def() { 4790 ProfileCache.GetCachedProfile = ProfileCache_GetCachedProfile; 4791 function ProfileCache_GetCachedProfile() { 4792 var objProfile = null; 4793 var ls = BrowserStorage.local; 4794 4795 if (ls != null) { 4796 var strProfileData = ls.getItem(ProfileCache_UserProfileLocalStoreKey()); 4797 4798 if (Boolean(strProfileData)) { 4799 objProfile = JSON.parse(strProfileData); 4800 } 4801 } 4802 return objProfile; 4803 } 4804 ProfileCache.UserProfileLocalStoreKey = ProfileCache_UserProfileLocalStoreKey; 4805 function ProfileCache_UserProfileLocalStoreKey() { 4806 var retVal = "UserProfileStorage"; 4807 4808 if (window["_spPageContextInfo"] != null) { 4809 retVal += _spPageContextInfo.webServerRelativeUrl; 4810 } 4811 return retVal; 4812 } 4813} 4814var ListModule; 4815 4816function ListModule_module_def() { 4817 ListModule.BasePermissions = function() { 4818 }; 4819 ListModule.BasePermissions.prototype = { 4820 ManageLists: undefined, 4821 OpenItems: undefined 4822 }; 4823 ListModule.Context = List_ContextInfo; 4824 ListModule.Context.prototype = { 4825 AllowGridMode: undefined, 4826 BasePermissions: undefined, 4827 BaseViewID: undefined, 4828 CascadeDeleteWarningMessage: undefined, 4829 ContentTypesEnabled: undefined, 4830 CurrentSelectedItems: undefined, 4831 CurrentUserId: undefined, 4832 EnableMinorVersions: undefined, 4833 ExternalDataList: undefined, 4834 HasRelatedCascadeLists: undefined, 4835 HttpPath: undefined, 4836 HttpRoot: undefined, 4837 RealHttpRoot: undefined, 4838 NoScriptEnabled: undefined, 4839 LastSelectableRowIdx: undefined, 4840 LastSelectedItemIID: undefined, 4841 LastRowIndexSelected: und
4841efined, 4842 RowFocusTimerID: undefined, 4843 ListData: undefined, 4844 ListSchema: undefined, 4845 ModerationStatus: undefined, 4846 mountPointUrl: undefined, 4847 PortalUrl: undefined, 4848 RecycleBinEnabled: undefined, 4849 SelectAllCbx: undefined, 4850 SendToLocationName: undefined, 4851 SendToLocationUrl: undefined, 4852 StateInitDone: undefined, 4853 TableCbxFocusHandler: undefined, 4854 TableMouseoverHandler: undefined, 4855 TotalListItems: undefined, 4856 WorkflowsAssociated: undefined, 4857 clvp: undefined, 4858 ctxId: undefined, 4859 ctxType: undefined, 4860 dictSel: undefined, 4861 displayFormUrl: undefined, 4862 editFormUrl: undefined, 4863 imagesPath: undefined, 4864 inGridMode: undefined, 4865 inGridFullRender: undefined, 4866 isForceCheckout: undefined, 4867 isModerated: undefined, 4868 isPortalTemplate: undefined, 4869 isVersions: undefined, 4870 isWebEditorPreview: undefined, 4871 leavingGridMode: false, 4872 loadingAsyncData: false, 4873 listBaseType: undefined, 4874 listName: undefined, 4875 listTemplate: undefined, 4876 listUrlDir: undefined, 4877 newFormUrl: undefined, 4878 onRefreshFailed: undefined, 4879 overrideDeleteConfirmation: undefined, 4880 overrideFilterQstring: undefined, 4881 overrideScope: undefined, 4882 searchTerm: undefined, 4883 recursiveView: undefined, 4884 rootFolderForDisplay: undefined, 4885 serverUrl: undefined, 4886 verEnabled: undefined, 4887 view: undefined, 4888 queryString: undefined, 4889 IsClientRendering: undefined, 4890 wpq: undefined, 4891 rootFolder: undefined, 4892 hasRootFolder: undefined, 4893 IsAppWeb: undefined, 4894 NewWOPIDocumentEnabled: undefined, 4895 NewWOPIDocumentUrl: undefined, 4896 NewWOPIDocumentTypes: undefined, 4897 AllowCreateFolder: undefined, 4898 CanShareLinkForNewDocument: undefined, 4899 VisioDrawingCreationEnabled: undefined, 4900 noGroupCollapse: undefined, 4901 SiteTemplateId: undefined, 4902 RealSiteTemplateId: undefined, 4903 ExcludeFromOfflineClient: false,
4904 onItemSelectionChangedHandlers: undefined, 4905 bNoDelete: false, 4906 qcb: undefined 4907 }; 4908 ListModule.Context.Type = { 4909 EditMenu: 0, 4910 ViewSelector: 1 4911 }; 4912 function List_ContextInfo() { 4913 this.listBaseType = null; 4914 this.listTemplate = null; 4915 this.listName = null; 4916 this.view = null; 4917 this.listUrlDir = null; 4918 this.HttpPath = null; 4919 this.HttpRoot = null; 4920 this.serverUrl = null; 4921 this.imagesPath = null; 4922 this.PortalUrl = null; 4923 this.RecycleBinEnabled = null; 4924 this.enteringGridMode = false; 4925 this.inGridMode = false; 4926 this.isWebEditorPreview = null; 4927 this.rootFolderForDisplay = null; 4928 this.isPortalTemplate = null; 4929 this.isModerated = false; 4930 this.recursiveView = false; 4931 this.displayFormUrl = null; 4932 this.editFormUrl = null; 4933 this.newFormUrl = null; 4934 this.ctxId = null; 4935 this.CurrentUserId = null; 4936 this.isForceCheckout = false; 4937 this.EnableMinorVersions = false; 4938 this.ModerationStatus = 0; 4939 this.verEnabled = 0; 4940 this.isVersions = 0; 4941 this.WorkflowsAssociated = false; 4942 this.ExternalDataList = false; 4943 this.HasRelatedCascadeLists = 0; 4944 this.CascadeDeleteWarningMessage = null; 4945 this.ContentTypesEnabled = false; 4946 this.SendToLocationName = ""; 4947 this.SendToLocationUrl = ""; 4948 this.StateInitDone = false; 4949 this.TotalListItems = null; 4950 this.CurrentSelectedItems = null; 4951 this.LastSelectableRowIdx = null; 4952 this.SelectAllCbx = null; 4953 this.TableCbxFocusHandler = null; 4954 this.TableMouseoverHandler = null;
4955 this.onItemSelectionChangedHandlers = []; 4956 } 4957 ListModule.Settings = { 4958 SupportsCallouts: false, 4959 SupportsDragDrop: false, 4960 SupportsRibbon: false, 4961 SupportsQCB: false, 4962 SupportsUpload: false, 4963 SupportsInplHash: false, 4964 SupportsAnimation: false, 4965 SupportsGrouping: false, 4966 SupportsNonCSR: false, 4967 SupportsInPlaceEdit: false, 4968 SupportsItemDelete: false, 4969 SupportsCheckout: false, 4970 SupportsPopup: false, 4971 SupportsErrorDlg: false, 4972 SupportsFileAttach: false, 4973 SupportsCopies: false, 4974 SupportsModeration: false, 4975 SupportsMQuery: false, 4976 SupportsRest: false, 4977 SupportsDatapipes: false, 4978 SupportsAddToOneDrive: false, 4979 SupportsAddToOneDriveQCB: false, 4980 SupportsTaskListEditMode: false, 4981 SupportsPeopleHoverCard: false, 4982 SupportsMaintainUserChrome: false, 4983 SupportsInfiniteScroll: false, 4984 SupportsDragDropAttract: false, 4985 SupportsDragDropAttractB: false, 4986 SupportsDoclibAccessibility: false, 4987 SupportsDoclibQCB: false, 4988 SupportsOldDesktopMenus: false, 4989 SupportsPolicyTips: false, 4990 SupportsRightClickECB: false, 4991 SupportsShortcutLink: false, 4992 SupportsFileExtensionDefinition: false, 4993 SupportsFileExtensionControls: false, 4994 SupportsFileHandlerForAllNonOfficeFiles: false, 4995 SupportsFileExtensionDataPipe: false, 4996 SupportsFileHandlerAddInPicker: false, 4997 SupportsFileHandlerFileCreation: false 4998 }; 4999} 5000var BasePermissions; 5001var ContextInfo; 5002var CTXTYPE_EDITMENU; 5003var CTXTYPE_VIEWSELECTOR; 5004var List_Util; 5005 5006function List_Util_module_def() { 5007 ListModule.Util = {}; 5008 ListModule.Util.createViewEditUrl = List_createViewEditUrl; 5009 ListModule.Util.createItemPropertiesTitleUrl = List_CreateItemPropertiesTitleUrl; 5010 ListModule.Util.clearSelectedItemsDict = List_ClearSelectedItemsDict; 5011 ListModule.Util.ctxInitItemState = List_ctxInitItemState; 5012 ListModule.Util.getAttributeFromItemTable = List_GetAttributeFromItemTable; 5013 ListModule.Util.getSelectedItemsDict = List_GetSelectedItemsDict; 5014 ListModule.Util.removeOnlyPagingArgs = List_RemoveOnlyPagingArgs; 5015 ListModule.Util.removePagingArgs = List_RemovePagingArgs; 5016 ListModule.Util.showAttachmentRows = List_ShowAttachmentRows; 5017 ListModule.Util.canUploadFile = List_CanUploadFile; 5018 ListModule.Util.addWPQtoId = List_addWPQtoId; 5019 ListModule.Util.isDefinedAndNotNullOrEmpty = List_IsDefinedAndNotNullOrEmpty; 5020 ListModule.Util.hasEditPermission = List_HasEditPermission; 5021 ListModule.Util.makeMountedFolderQueryStrParams = List_MakeMountedFolderQueryStrParams; 5022 ListModule.Util.tryAppendMountedFolderQueryStrParams = List_TryAppendMountedFolderQueryStrParams; 5023 ListModule.Util.getHostUrl = List_GetHostUrl; 5024 ListModule.Util.reconcileQstringFilters = List_ReconcileQstringFilters; 5025 ListModule.Util.Qstring = List_QstringStruct; 5026 function List_RemoveOnlyPagingArgs(strUrl) { 5027 var rePagedFlag = /&*Paged=TRUE/gi; 5028 5029 strUrl = strUrl.replace(rePagedFlag, ""); 5030 var rePagedPrevFlag = /&*PagedPrev=TRUE/gi; 5031 5032 strUrl = strUrl.replace(rePagedPrevFlag, ""); 5033 var rePagedArgs = /&p_[^&]*/gi; 5034 5035 strUrl = strUrl.replace(rePagedArgs, ""); 5036 var rePagedRow = /&PageFirstRow=[^&]*/gi; 5037 5038 strUrl = strUrl.replace(rePagedRow, ""); 5039 var rePagedLastRow = /&PageLastRow=[^&]*/gi; 5040 5041 strUrl = strUrl.replace(rePagedLastRow, ""); 5042 return strUrl; 5043 } 5044 function List_RemovePagingArgs(strUrl) { 5045 strUrl = List_RemoveOnlyPagingArgs(strUrl); 5046 var reFilter1 = /\?Filter=1&*/gi; 5047 5048 strUrl = strUrl.replace(reFilter1, "?"); 5049 var reFilter2 = /&Filter=1/gi; 5050 5051 strUrl = strUrl.replace(reFilter2, ""); 5052 var reOrphanedQMark = /\?$/; 5053 5054 strUrl = strUrl.replace(reOrphanedQMark, ""); 5055 return strUrl; 5056 } 5057 function List_GetAttributeFromItemTable(itemTableParam, strAttributeName, strAttributeOldName) { 5058 var attrValue = itemTableParam != null ? itemTableParam.getAttribute(strAttributeName) : null; 5059 5060 if (attrValue == null && itemTableParam != null && strAttributeOldName != null) 5061 attrValue = itemTableParam.getAttribute(strAttributeOldName); 5062 return attrValue; 5063 } 5064 function List_ctxInitItemState(ctxCur) { 5065 ctxCur.TotalListItems = 0; 5066 ctxCur.CurrentSelectedItems = 0; 5067 ctxCur.LastSelectableRowIdx = 0; 5068 ctxCur.StateInitDone = true; 5069 } 5070 function List_ClearSelectedItemsDict(context) { 5071 if (context != null) 5072 context.dictSel = []; 5073 } 5074 function List_ShowAttachmentRows() { 5075 var elm = document.getElementById('idAttachmentsTable'); 5076 var elmAttachmentRow = document.getElementById('idAttachmentsRow'); 5077 5078 if (elmAttachmentRow != null) { 5079 var uri = new URI(Nav.ajaxNavigate.get_href()); 5080 var OnlyIncludeOneField = uri.getQueryParameter('OnlyIncludeOneField'); 5081 5082 if (elm == null || elm.rows.length == 0 || Boolean(OnlyIncludeOneField)) 5083 elmAttachmentRow.style.display = 'none'; 5084 else 5085 elmAttachmentRow.style.display = 'table-row'; 5086 } 5087 } 5088 function List_GetSelectedItemsDict(ctxParam) { 5089 if (ctxParam != null && ctxParam.dictSel != null) { 5090 return ctxParam.dictSel; 5091 } 5092 return null; 5093 } 5094 function List_createViewEditUrl(renderCtx, listItem, useEditFormUrl, appendSource) { 5095 var titleUrl = []; 5096 5097 if (useEditFormUrl) 5098 titleUrl.push(renderCtx.editFormUrl); 5099 else 5100 titleUrl.push(renderCtx.displayFormUrl); 5101 titleUrl.push("&ID="); 5102 titleUrl.push(listItem.ID); 5103 titleUrl.push("&ContentTypeID="); 5104 titleUrl.push(listItem.ContentTypeId); 5105 if (appendSource) { 5106 titleUrl.push("&Source="); 5107 titleUrl.push(Nav.getSource()); 5108 } 5109 return titleUrl.join(''); 5110 } 5111 function List_CreateItemPropertiesTitleUrl(renderCtx, listItem) { 5112 if (renderCtx.inGridMode) { 5113 return List_createViewEditUrl(renderCtx, listItem, true, false); 5114 } 5115 return List_createViewEditUrl(renderCtx, listItem, false, false); 5116 } 5117 function List_CanUploadFile(renderCtx) { 5118 if (typeof SupportsFileUpload == "function" && SupportsFileUpload()) { 5119 var listSchema = renderCtx.ListSchema; 5120 5121 return Boolean(listSchema) && Boolean(listSchema.IsDocLib) && !BrowserDetection.userAgent.ipad && !BrowserDetection.userAgent.windowsphone; 5122 } 5123 else { 5124 return false; 5125 } 5126 } 5127 function List_addWPQtoId(id, wpq) { 5128 if (Boolean(id) && Boolean(wpq)) { 5129 if (id.lastIndexOf('-') == id.length - 1) 5130 return id + wpq; 5131 else 5132 return id + '-' + wpq; 5133 } 5134 else 5135 return id; 5136 } 5137 function List_IsDefinedAndNotNullOrEmpty(obj) { 5138 return typeof obj !== 'undefined' && obj !== null && obj !== ''; 5139 } 5140 function List_HasEditPermission(listItem) { 5141 var permMask = String(listItem.PermMask); 5142 5143 return (parseInt("0x" + permMask.substring(permMask.length - 1)) & 0x4) != 0; 5144 } 5145 function List_GetMountedFolderQueryStrKeyValues(includeRemoteFolderId, includeMPPrefix) { 5146 var uri = new URI(Nav.ajaxNavigate.get_href()); 5147 var remoteSiteId = uri.getQueryParameter('RemoteSiteId'); 5148 var ret = []; 5149 5150 if (Boolean(remoteSiteId)) { 5151 var remoteWebId = uri.getQueryParameter('RemoteWebId'); 5152 5153 if (Boolean(remoteWebId)) { 5154 var remoteFolderId = null; 5155 5156 if (includeRemoteFolderId) { 5157 remoteFolderId = uri.getQueryParameter('RemoteFolderId'); 5158 } 5159 if (StringUtil.IsGuid(remoteSiteId) && StringUtil.IsGuid(remoteWebId) && (!includeRemoteFolderId || Boolean(remoteFolderId) && StringUtil.IsGuid(remoteFolderId))) {
5160 ret.push({ 5161 k: "RemoteSiteId", 5162 v: remoteSiteId 5163 }); 5164 ret.push({ 5165 k: "RemoteWebId", 5166 v: remoteWebId 5167 }); 5168 if (includeRemoteFolderId) { 5169 ret.push({ 5170 k: "RemoteFolderId", 5171 v: remoteFolderId 5172 }); 5173 } 5174 } 5175 } 5176 } 5177 else { 5178 var groupSiteUrl = uri.getQueryParameter('GroupSiteUrl'); 5179 5180 if (Boolean(groupSiteUrl)) { 5181 var groupId = uri.getQueryParameter('GroupId'); 5182 5183 if (Boolean(groupId) && StringUtil.IsGuid(groupId)) { 5184 ret.push({ 5185 k: "GroupSiteUrl", 5186 v: groupSiteUrl 5187 }); 5188 ret.push({ 5189 k: "GroupId", 5190 v: groupId 5191 }); 5192 } 5193 } 5194 } 5195 if (ret.length > 0) { 5196 if (includeMPPrefix) { 5197 var mpPrefix = uri.getQueryParameter('MPPrefix'); 5198 5199 if (Boolean(mpPrefix)) { 5200 ret.push({ 5201 k: "MPPrefix", 5202 v: mpPrefix 5203 }); 5204 ret.push("&MPPrefix="); 5205 ret.push(URI_Encoding.encodeURIComponent(mpPrefix)); 5206 } 5207 } 5208 return ret; 5209 } 5210 return null; 5211 } 5212 function List_MakeMountedFolderQueryStrParams(includeRemoteFolderId, includeMPPrefix) { 5213 var keyValues = List_GetMountedFolderQueryStrKeyValues(includeRemoteFolderId, includeMPPrefix); 5214 5215 if (keyValues == null) { 5216 return null; 5217 } 5218 var ret = []; 5219 5220 for (var i = 0; i < keyValues.length; i++) { 5221 ret.push("&"); 5222 ret.push(keyValues[i].k); 5223 ret.push("="); 5224 ret.push(URI_Encoding.encodeURIComponent(String(keyValues[i].v))); 5225 } 5226 return ret.join(""); 5227 } 5228 function List_TryAppendMountedFolderQueryStrParams(url, includeRemoteFolderId, includeMPPrefix) { 5229 var keyValues = List_GetMountedFolderQueryStrKeyValues(includeRemoteFolderId, includeMPPrefix); 5230 5231 if (keyValues == null) { 5232 return null; 5233 } 5234 var uri = new URI(url); 5235 5236 for (var i = 0; i < keyValues.length; i++) { 5237 uri.setQueryParameter(String(keyValues[i].k), String(keyValues[i].v)); 5238 } 5239 return uri.getString(); 5240 } 5241 function List_GetHostUrl(httpRoot) { 5242 var hostUrl = httpRoot; 5243 5244 if (hostUrl.lastIndexOf('/') > hostUrl.indexOf('//') + 1) { 5245 hostUrl = hostUrl.substring(0, hostUrl.indexOf('/', hostUrl.indexOf('//') + 2)); 5246 } 5247 return hostUrl; 5248 } 5249 function List_QstringStruct(strQuery) { 5250 if (strQuery == null) { 5251 strQuery = ""; 5252 } 5253 if (strQuery.indexOf("?") == 0) { 5254 strQuery = strQuery.substring(1); 5255 } 5256 this.nonFilterParams = {}; 5257 this.filterParams = {}; 5258 var params = strQuery.split("&"); 5259 var i; 5260 5261 for (i = 0; i < params.length; i++) { 5262 var param = params[i]; 5263 var keyval = param.split("="); 5264 5265 if (keyval.length == 2) { 5266 if (keyval[0].search("^Filter") != -1) { 5267 var fieldNumber = keyval[0].match(new RegExp("[0-9]*$")); 5268 var filter; 5269 5270 if (typeof this.filterParams[fieldNumber] != "undefined") { 5271 filter = this.filterParams[fieldNumber]; 5272 } 5273 else { 5274 filter = new Object(); 5275 this.filterParams[fieldNumber] = filter; 5276 } 5277 var fieldName = keyval[0].match(new RegExp("^Filter[^0-9]*")); 5278 5279 filter[fieldName] = keyval[1]; 5280 } 5281 else { 5282 this.nonFilterParams[keyval[0]] = keyval[1]; 5283 } 5284 } 5285 } 5286 } 5287 List_QstringStruct.prototype.filterParams = {}; 5288 List_QstringStruct.prototype.nonFilterParams = {}; 5289 List_QstringStruct.prototype.toArray = List_QstringStructToArray; 5290 function List_QstringStructToArray() { 5291 var output = []; 5292 var key; 5293 var keyValuePair; 5294 var filterIdx = 1; 5295 var filterParams = this.filterParams; 5296 var filterParams_length = typeof filterParams.length == "number" ? filterParams.length : 0; 5297 5298 for (key in this.filterParams) { 5299 var filter = this.filterParams[key]; 5300 5301 for (key in filter) { 5302 keyValuePair = []; 5303 keyValuePair.push(key); 5304 keyValuePair.push(filterIdx); 5305 keyValuePair.push("="); 5306 keyValuePair.push(filter[key]); 5307 output.push(keyValuePair.join("")); 5308 } 5309 filterIdx++; 5310 } 5311 for (key in this.nonFilterParams) { 5312 keyValuePair = []; 5313 keyValuePair.push(key); 5314 keyValuePair.push("="); 5315 keyValuePair.push(this.nonFilterParams[key]); 5316 output.push(keyValuePair.join("")); 5317 } 5318 return output; 5319 } 5320 List_QstringStruct.prototype.toString = List_QstringStructToString; 5321 function List_QstringStructToString() { 5322 var output = this.toArray(); 5323 5324 return "?" + output.join("&"); 5325 } 5326 function Diff() { 5327 } 5328 Diff.prototype = { 5329 left: [], 5330 right: [] 5331 }; 5332 List_QstringStruct.Diff = function(strLeft, strRight) { 5333 var rgLeft = (new List_QstringStruct(strLeft)).toArray(); 5334 var rgRight = (new List_QstringStruct(strRight)).toArray(); 5335 var temp = {}; 5336 var ret = new Diff; 5337 var i; 5338 5339 for (i = 0; i < rgLeft.length; i++) { 5340 temp[rgLeft[i]] |= 1; 5341 } 5342 for (i = 0; i < rgRight.length; i++) { 5343 temp[rgRight[i]] |= 2; 5344 } 5345 for (var key in temp) { 5346 if (temp[key] == 1) { 5347 ret.left.push(key); 5348 } 5349 else if (temp[key] == 2) { 5350 ret.right.push(key); 5351 } 5352 } 5353 return ret; 5354 }; 5355 function List_ReconcileQstringFilters(strUrl1, strUrl2) { 5356 var qUrls = []; 5357 5358 qUrls.push(new List_QstringStruct(strUrl1)); 5359 qUrls.push(new List_QstringStruct(strUrl2));
5360 var output = []; 5361 var i, j; 5362 var key; 5363 var keyValuePair; 5364 5365 for (i = 0; i < qUrls.length; i++) { 5366 for (key in qUrls[i].nonFilterParams) { 5367 if (i == 0 || typeof qUrls[0].nonFilterParams[key] == 'undefined' && i == 1) { 5368 keyValuePair = []; 5369 keyValuePair.push(key); 5370 keyValuePair.push("="); 5371 keyValuePair.push(qUrls[i].nonFilterParams[key]); 5372 output.push(keyValuePair.join("")); 5373 } 5374 } 5375 } 5376 var filterIdx = 1; 5377 var trackEachFilterFieldName = new Object(); 5378 5379 for (i = 0; i < qUrls.length; i++) { 5380 for (j in qUrls[i].filterParams) { 5381 var filter = qUrls[i].filterParams[j]; 5382 var filter_FilterField = typeof filter.FilterField == "string" ? filter.FilterField : null; 5383 5384 if (filter_FilterField == null) 5385 filter_FilterField = typeof filter.FilterFields == "string" ? filter.FilterFields : null; 5386 if (filter_FilterField != null && typeof trackEachFilterFieldName[filter_FilterField] == 'undefined') { 5387 for (key in filter) { 5388 keyValuePair = []; 5389 keyValuePair.push(key); 5390 keyValuePair.push(filterIdx); 5391 keyValuePair.push("="); 5392 keyValuePair.push(filter[key]); 5393 output.push(keyValuePair.join("")); 5394 } 5395 filterIdx++; 5396 trackEachFilterFieldName[filter.FilterField] = filter; 5397 } 5398 } 5399 } 5400 return output.join("&"); 5401 } 5402} 5403var ctxInitItemState; 5404var ClearSelectedItemsDict; 5405var CreateItemPropertiesTitleUrl; 5406var GetAttributeFromItemTable; 5407var GetSelectedItemsDict; 5408var RemoveOnlyPagingArgs; 5409var RemovePagingArgs; 5410var ShowAttachmentRows; 5411var CanUploadFile; 5412var addWPQtoId; 5413var isDefinedAndNotNullOrEmpty; 5414var HasEditPermission; 5415var getHostUrl; 5416var ReconcileQstringFilters; 5417var QstringStruct; 5418var SuiteNavCommon; 5419 5420function SuiteNavCommon_module_def() { 5421 ; 5422 ; 5423 ; 5424 var c_strUndefined = "undefined"; 5425 var key_Date = "SPSuiteLinksDate"; 5426 var key_Language = "SPSuiteLinksLanguage"; 5427 var key_LinksJson = "SPSuiteLinksJson"; 5428 var key_MySiteClientTag = "SPSuiteLinksMySiteClientTag"; 5429 var key_MySiteLinks = "SPMySiteLinks"; 5430 var key_SuiteNavHeight = "SPSuiteNavHeight"; 5431 var key_UserKey = "SPSuiteLinksUserKey"; 5432 var key_WorkloadsProvisioning = "SPSuiteLinksWorkProv"; 5433 var key_LinksCached = "SPSuiteLinksCached"; 5434 5435 function GetPageContextInfoValueOrNull(infoKey) { 5436 var retVal = null; 5437 var pci; 5438 5439 if (typeof _spPageContextInfo !== c_strUndefined && Boolean(pci = _spPageContextInfo) && typeof pci[infoKey] !== c_strUndefined) { 5440 retVal = String(pci[infoKey]); 5441 } 5442 return retVal; 5443 } 5444 function GetCurrentSiteClientTag() { 5445 var numSiteClientTag = parseInt(GetPageContextInfoValueOrNull("siteClientTag")); 5446 5447 return numSiteClientTag; 5448 } 5449 if (typeof GetCurrentUserKey == c_strUndefined) { 5450 GetCurrentUserKey = function() { 5451 return GetPageContextInfoValueOrNull("systemUserKey"); 5452 }; 5453 } 5454 if (typeof GetCurrentUICultureOrNone == c_strUndefined) { 5455 GetCurrentUICultureOrNone = function() { 5456 var currentLanguage = GetPageContextInfoValueOrNull("currentUICultureName"); 5457 5458 if (!Boolean(currentLanguage)) 5459 currentLanguage = "none"; 5460 return currentLanguage; 5461 }; 5462 } 5463 var c_mySitePersonalWebTemplate = 21; 5464 5465 function OnOwnMySite() { 5466 var isOwnMySite = false; 5467 var isPersonalSiteTemplate = parseInt(GetPageContextInfoValueOrNull("webTemplate")) == c_mySitePersonalWebTemplate; 5468 5469 if (isPersonalSiteTemplate) { 5470 var strMySiteLinks; 5471 var userProfile = ProfileCache.GetCachedProfile(); 5472 5473 if (userProfile != null) { 5474 isOwnMySite = Boolean(userProfile.isSelf); 5475 } 5476 else if (Boolean(strMySiteLinks = BrowserStorage.local.getItem(key_MySiteLinks))) { 5477 try { 5478 var objMySiteLinks = JSON.parse(strMySiteLinks); 5479 var currentWebUrl = GetPageContextInfoValueOrNull("webAbsoluteUrl"); 5480 var docsUrl; 5481 5482 isOwnMySite = Boolean(currentWebUrl) && objMySiteLinks != null && Boolean(docsUrl = objMySiteLinks.Docs) && docsUrl.indexOf(currentWebUrl) == 0; 5483 } 5484 catch (exParseMySiteLinks) { } 5485 } 5486 } 5487 return isOwnMySite; 5488 } 5489 function GetCachedJsonIfValid() { 5490 var linksJson = null; 5491 var ls = BrowserStorage.local; 5492 5493 if (GetCurrentUserKey() == ls.getItem(key_UserKey) && GetCurrentUICultureOrNone() == ls.getItem(key_L
5493anguage) && (!OnOwnMySite() || GetCurrentSiteClientTag() == parseInt(ls.getItem(key_MySiteClientTag)))) { 5494 var cachedLinksJson = ls.getItem(key_LinksJson); 5495 5496 if (typeof cachedLinksJson == 'string') { 5497 linksJson = cachedLinksJson; 5498 } 5499 } 5500 return linksJson; 5501 } 5502 if (typeof ExtractSuiteMetadata == c_strUndefined) { 5503 ExtractSuiteMetadata = function(navBarDataJson) { 5504 var suiteData = navBarDataJson; 5505 5506 try { 5507 if (typeof suiteData == "string") { 5508 suiteData = JSON.parse(navBarDataJson); 5509 } 5510 } 5511 catch (ex) { 5512 suiteData = null; 5513 } 5514 return suiteData; 5515 }; 5516 } 5517 if (typeof ExtractSuiteProperty == c_strUndefined) { 5518 ExtractSuiteProperty = function(navBarDataJson, jsonPropName) { 5519 try { 5520 var suiteData = JSON.parse(navBarDataJson); 5521 5522 if (suiteData != null) { 5523 return suiteData[jsonPropName]; 5524 } 5525 } 5526 catch (ex) { } 5527 return undefined; 5528 }; 5529 } 5530 if (typeof ExtractSuiteVersion == c_strUndefined) { 5531 ExtractSuiteVersion = function(navBarDataJson) { 5532 var suiteVersion = ExtractSuiteProperty(navBarDataJson, "SPSuiteVersion"); 5533 5534 if (typeof suiteVersion == "number") { 5535 return suiteVersion; 5536 } 5537 return -1; 5538 }; 5539 } 5540 if (typeof ExtractIsMobile == c_strUndefined) { 5541 ExtractIsMobile = function(navBarDataJson) { 5542 var isMobile = ExtractSuiteProperty(navBarDataJson, "SPIsMobile"); 5543 5544 if (typeof isMobile == "boolean") { 5545 return isMobile; 5546 } 5547 return false; 5548 }; 5549 } 5550 if (typeof ExtractSuiteLinks == c_strUndefined) { 5551 ExtractSuiteLinks = function(navBarDataJson) { 5552 var suiteVersion = ExtractSuiteVersion(navBarDataJson); 5553 5554 if (suiteVersion != -1) { 5555 var navBarData = ExtractSuiteProperty(navBarDataJson, "NavBarData"); 5556 5557 return typeof navBarData == "string" ? String(navBarData) : JSON.stringify(navBarData); 5558 } 5559 return navBarDataJson; 5560 }; 5561 } 5562 if (typeof ExtractSuiteNavBarData == c_strUndefined) { 5563 ExtractSuiteNavBarData = function(suiteDataObject) { 5564 if (suiteDataObject != null) { 5565 var suiteMetadata = ExtractSuiteMetadata(suiteDataObject); 5566 5567 return suiteMetadata.NavBarData; 5568 } 5569 return null; 5570 }; 5571 } 5572 function ExtractNavBarDataFromObject(suiteNavData) { 5573 var navBarData = null; 5574 5575 if (suiteNavData != null) { 5576 navBarData = suiteNavData.NavBarData != null ? suiteNavData.NavBarData : suiteNavData; 5577 } 5578 return navBarData; 5579 } 5580 if (typeof GetSuiteLinks == c_strUndefined) { 5581 GetSuiteLinks = function(callBackToRetrieveData, callBackToProcessData, suiteVersion, isMobile, forceRetrieveData) { 5582 if (typeof suiteVersion != "number") 5583 suiteVersion = 1; 5584 var bIncludeMetadata = suiteVersion > 1; 5585 var linksCacheKey = null; 5586 var linksJson = !forceRetrieveData ? GetCachedJsonIfValid() : null; 5587 var linksJsonIsStale = false; 5588 5589 if (linksJson != null) { 5590 var linksDate = Date.parse(String(BrowserStorage.local.getItem(key_Date))); 5591 var msUntilDataStale = 24 * 60 * 60 * 1000; 5592 var numProvisioning = Number(BrowserStorage.local.getItem(key_WorkloadsProvisioning)); 5593 5594 if (numProvisioning > 0) { 5595 msUntilDataStale = 10 * 1000; 5596 } 5597 linksJsonIsStale = !(linksDate > 0) || (new Date()).getTime() - linksDate > msUntilDataStale; 5598 if (suiteVersion > 1 && typeof BrowserStorage.session.getItem(key_LinksCached) != 'string') { 5599 linksJsonIsStale = true; 5600 } 5601 } 5602 if (typeof SP !== c_strUndefined && typeof SP._yam !== c_strUndefined) { 5603 if (!linksJsonIsStale && Boolean(linksJson) && linksJson.indexOf(Boolean(SP._yam) ? "ShellNewsfeed" : "ShellYammer") !== -1) { 5604 linksJsonIsStale = true; 5605 } 5606 } 5607 if (linksJson == null) { 5608 if (callBackToRetrieveData != null) { 5609 callBackToRetrieveData(function(data) { 5610 CacheSuiteLinks(data); 5611 if (callBackToProcessData != null) 5612 callBackToProcessData(bIncludeMetadata ? data : ExtractSuiteLinks(data)); 5613 }); 5614 } 5615 else { 5616 if (callBackToProcessData != null) 5617 callBackToProcessData(null); 5618 } 5619 return; 5620 } 5621 if (suiteVersion != ExtractSuiteVersion(linksJson) || Boolean(isMobile) != ExtractIsMobile(linksJson)) { 5622 if (Boolean(callBackToRetrieveData) && (typeof CacheSuiteLinks == c_strUndefined || typeof CacheSuiteLinks._reloadingData != "boolean" || Boolean(CacheSuiteLinks._reloadingData))) { 5623 CacheSuiteLinks._reloadingData = true; 5624 ClearSuiteLinksCache(); 5625 GetSuiteLinks(callBackToRetrieveData, callBackToProcessData, suiteVersion, isMobile); 5626 return; 5627 } 5628 } 5629 if (linksJsonIsStale) { 5630 if (callBackToRetrieveData != null) { 5631 callBackToRetrieveData(function(data) { 5632 if (CacheSuiteLinks(data)) { 5633 linksJson = data; 5634 } 5635 if (callBackToProcessData != null && suiteVersion > 1) 5636 callBackToProcessData(bIncludeMetadata ? data : ExtractSuiteLinks(data)); 5637 }); 5638 } 5639 } 5640 if (callBackToProcessData != null) 5641 callBackToProcessData(bIncludeMetadata ? linksJson : ExtractSuiteLinks(l
5641inksJson)); 5642 }; 5643 } 5644 function CountWorkloadsProvisioning(linksData) { 5645 var numProvisioning = 0; 5646 var navBarData = ExtractNavBarDataFromObject(linksData); 5647 5648 if (navBarData == null) { 5649 return numProvisioning; 5650 } 5651 var workloadLinks = navBarData.WorkloadLinks; 5652 var numWorkloadLinks = workloadLinks != null ? workloadLinks.length : 0; 5653 5654 for (var iLink = 0; iLink < numWorkloadLinks; iLink++) { 5655 var wLink = workloadLinks[iLink]; 5656 5657 if (wLink != null && wLink.Url == null) 5658 numProvisioning++; 5659 } 5660 return numProvisioning; 5661 } 5662 if (typeof CacheSuiteLinks == c_strUndefined) { 5663 CacheSuiteLinks = function(linksJson) { 5664 var numWorkloadsProvisioning = 0; 5665 5666 CacheSuiteLinks._reloadingData = false; 5667 try { 5668 var linksData = JSON.parse(linksJson); 5669 5670 if (linksData != null && linksData.NavBarData != null && linksData.NavBarData.Dimensions != null) { 5671 var topHeight = Number(linksData.NavBarData.Dimensions.Top); 5672 5673 if (topHeight > 0) 5674 BrowserStorage.local.setItem(key_SuiteNavHeight, String(topHeight) + "px"); 5675 } 5676 if (linksData != null && linksData.DoNotCache === true) { 5677 return false; 5678 } 5679 numWorkloadsProvisioning = CountWorkloadsProvisioning(linksData); 5680 } 5681 catch (ex) { 5682 return false; 5683 } 5684 var currentLanguage = GetCurrentUICultureOrNone(); 5685 var ls = BrowserStorage.local; 5686 5687 ls.setItem(key_LinksJson, linksJson); 5688 ls.setItem(key_Language, currentLanguage); 5689 ls.setItem(key_Date, new Date()); 5690 ls.setItem(key_UserKey, GetCurrentUserKey()); 5691 ls.setItem(key_WorkloadsProvisioning, numWorkloadsProvisioning); 5692 if (numWorkloadsProvisioning < 1) { 5693 ls.removeItem(key_WorkloadsProvisioning); 5694 } 5695 BrowserStorage.session.setItem(key_LinksCached, true); 5696 if (OnOwnMySite()) { 5697 ls.setItem(key_MySiteClientTag, GetCurrentSiteClientTag()); 5698 } 5699 return true; 5700 }; 5701 } 5702 if (typeof ClearSuiteLinksCache == c_strUndefined) { 5703 ClearSuiteLinksCache = function(bPreserveMySiteLinks) { 5704 var lsKeys = [key_LinksJson, key_Language, key_Date, key_UserKey, key_MySiteClientTag, key_SuiteNavHeight]; 5705 5706 if (!bPreserveMySiteLinks) 5707 lsKeys.push(key_MySiteLinks); 5708 for (var i = 0; i < lsKeys.length; i++) { 5709 BrowserStorage.local.removeItem(lsKeys[i]); 5710 } 5711 BrowserStorage.session.removeItem(key_LinksCached); 5712 }; 5713 } 5714 SuiteNavCommon.GetCurrentUserKey = GetCurrentUserKey; 5715 SuiteNavCommon.GetCurrentUICultureOrNone = GetCurrentUICultureOrNone; 5716 SuiteNavCommon.ExtractSuiteMetadata = ExtractSuiteMetadata; 5717 SuiteNavCommon.ExtractSuiteProperty = ExtractSuiteProperty; 5718 SuiteNavCommon.ExtractSuiteVersion = ExtractSuiteVersion; 5719 SuiteNavCommon.ExtractIsMobile = ExtractIsMobile; 5720 SuiteNavCommon.ExtractSuiteLinks = ExtractSuiteLinks; 5721 SuiteNavCommon.ExtractSuiteNavBarData = ExtractSuiteNavBarData; 5722 SuiteNavCommon.GetSuiteLinks = GetSuiteLinks; 5723 SuiteNavCommon.CacheSuiteLinks = CacheSuiteLinks; 5724 SuiteNavCommon.ClearSuiteLinksCache = ClearSuiteLinksCache; 5725} 5726var OnePageUtil; 5727 5728function OnePageUtil_module_def() { 5729 OnePageUtil.overrideAddEventListener = function OnePageUtil_overrideAddEventListener(eventTarget) { 5730 if (typeof eventTarget.addEventListener != 'undefined' && !eventTarget.onePageOverrideAddEventListenerDone) { 5731 if (!Boolean(eventTarget.eventListenerStore)) { 5732 eventTarget.eventListenerStore = {}; 5733 } 5734 var store = eventTarget.eventListenerStore; 5735 5736 eventTarget.addEventListenerBase = eventTarget.addEventListener; 5737 eventTarget.addEventListener = function(type, listener, useCapture) { 5738 eventTarget.addEventListenerBase.apply(this, arguments); 5739 if (!Boolean(store[type])) { 5740 store[type] = []; 5741 } 5742 var _eventList = store[type]; 5743 5744 for (var index = 0; index != _eventList.length; index++) { 5745 if (_eventList[index] === listener) { 5746 return; 5747 } 5748 } 5749 _eventList.push(listener); 5750 }; 5751 eventTarget.onePageOverrideAddEventListenerDone = true; 5752 } 5753 };
5754 OnePageUtil.overrideRemoveEventListener = function OnePageUtil_overrideRemoveEventListener(eventTarget) { 5755 if (typeof eventTarget.removeEventListener != 'undefined' && !eventTarget.onePageOverrideRemoveEventListenerDone) { 5756 if (!Boolean(eventTarget.eventListenerStore)) { 5757 eventTarget.eventListenerStore = {}; 5758 } 5759 var store = eventTarget.eventListenerStore; 5760 var _eventList = []; 5761 5762 eventTarget.removeEventListenerBase = eventTarget.removeEventListener; 5763 eventTarget.removeEventListener = function(type, handler, useCapture) { 5764 if (handler instanceof Function) { 5765 eventTarget.removeEventListenerBase.apply(this, arguments); 5766 } 5767 if (Boolean(type) && Boolean(store[type])) { 5768 _eventList = store[type]; 5769 for (var index = 0; index < _eventList.length; index++) { 5770 var _handler = _eventList[index]; 5771 5772 if (!Boolean(handler)) { 5773 eventTarget.removeEventListenerBase(type, _handler); 5774 } 5775 else if (_handler === handler) { 5776 _eventList.splice(index, 1); 5777 break; 5778 } 5779 } 5780 if (_eventList.length == 0 || !Boolean(handler)) { 5781 delete store[type]; 5782 } 5783 } 5784 else if (!Boolean(type)) { 5785 for (var etype in store) { 5786 _eventList = store[etype]; 5787 for (var idx = 0; idx < _eventList.length; idx++) { 5788 eventTarget.removeEventListenerBase(etype, _eventList[idx]); 5789 } 5790 delete store[etype]; 5791 } 5792 } 5793 }; 5794 eventTarget.onePageOverrideRemoveEventListenerDone = true; 5795 } 5796 }; 5797 OnePageUtil.overrideEventListenerFunctions = function OnePageUtil_overrideEventListenerFunctions(eventTarget) { 5798 OnePageUtil.overrideAddEventListener(eventTarget); 5799 OnePageUtil.overrideRemoveEventListener(eventTarget); 5800 }; 5801 OnePageUtil.undoOverrideEventListenerFunctions = function OnePageUtil_undoOverrideEventListenerFunctions(eventTarget) { 5802 eventTarget.addEventListener = eventTarget.addEventListenerBase; 5803 delete eventTarget.addEventListenerBase; 5804 eventTarget.removeEventListener = eventTarget.removeEventListenerBase; 5805 delete eventTarget.removeEventListenerBase; 5806 delete eventTarget.eventListenerStore; 5807 delete eventTarget.onePageOverrideRemoveEventListenerDone; 5808 }; 5809 OnePageUtil.timerManagerClass = function timerManagerClass() { 5810 var intervals = []; 5811 var timeouts = []; 5812 var setIntervalBase; 5813 var clearIntervalBase; 5814 var setTimeoutBase; 5815 var clearTimeoutBase; 5816 var timerOverrideDone = false; 5817 var arrayIndexOf = function(targetArray, item) { 5818 if (typeof targetArray.indexOf != 'undefined') { 5819 return targetArray.indexOf(item); 5820 } 5821 if (typeof Array.indexOf != 'undefined') { 5822 return Array.indexOf(targetArray, item); 5823 } 5824 return undefined; 5825 }; 5826 5827 this.overrideTimer = function() { 5828 if (!timerOverrideDone) { 5829 setIntervalBase = window.setInterval; 5830 clearIntervalBase = window.clearInterval; 5831 setTimeoutBase = window.setTimeout; 5832 clearTimeoutBase = window.clearTimeout; 5833 window.setInterval = function() { 5834 var retVal; 5835 5836 if ("function" == typeof setIntervalBase) { 5837 retVal = setIntervalBase.apply(window, arguments); 5838 } 5839 else { 5840 retVal = setIntervalBase(arguments[0], arguments[1]); 5841 } 5842 if ('undefined' != typeof retVal) { 5843 intervals.push(retVal); 5844 } 5845 return retVal; 5846 }; 5847 window.clearInterval = function() { 5848 var id = arguments[0]; 5849 5850 if ("function" == typeof clearIntervalBase) { 5851 clearIntervalBase.apply(window, arguments); 5852 } 5853 else { 5854 clearIntervalBase(id); 5855 } 5856 if (typeof id != 'undefined') { 5857 var idx = arrayIndexOf(intervals, id); 5858 5859 if (-1 != idx) { 5860 intervals.splice(idx, 1); 5861 } 5862 } 5863 }; 5864 window.setTimeout = function() { 5865 var retVal; 5866 5867 if (arguments.length > 1 && 'function' == typeof arguments[0]) { 5868 var fn = arguments[0]; 5869 5870 arguments[0] = function() { 5871 var argumentsArray1 = [].slice.call(arguments); 5872 5873 fn.apply(null, argumentsArray1); 5874 if ('undefined' != typeof retVal) { 5875 var idx = arrayIndexOf(timeouts, retVal); 5876 5877 if (-1 != idx) { 5878 timeouts.splice(idx, 1); 5879 } 5880 } 5881 }; 5882 } 5883 if ('function' == typeof setTimeoutBase) { 5884 var argumentsArray = [].slice.call(arguments); 5885 5886 retVal = setTimeoutBase.apply(window, argumentsArray);
5887 } 5888 else { 5889 retVal = setTimeoutBase(arguments[0], arguments[1]); 5890 } 5891 if ('undefined' != typeof retVal) { 5892 timeouts.push(retVal); 5893 } 5894 return retVal; 5895 }; 5896 window.clearTimeout = function() { 5897 var id = arguments[0]; 5898 5899 if ('function' == typeof clearTimeoutBase) { 5900 clearTimeoutBase.apply(window, arguments); 5901 } 5902 else { 5903 clearTimeoutBase(id); 5904 } 5905 if (typeof id != 'undefined') { 5906 var idx = arrayIndexOf(timeouts, id); 5907 5908 if (-1 != idx) { 5909 timeouts.splice(idx, 1); 5910 } 5911 } 5912 }; 5913 timerOverrideDone = true; 5914 } 5915 }; 5916 this.clearAllIntervals = function clearAllIntervals() { 5917 while (intervals.length > 0) { 5918 clearIntervalBase(intervals[0]); 5919 intervals.splice(0, 1); 5920 } 5921 }; 5922 this.clearAllTimeouts = function clearAllTimeouts() { 5923 while (timeouts.length > 0) { 5924 clearTimeoutBase(timeouts[0]); 5925 timeouts.splice(0, 1); 5926 } 5927 }; 5928 this.undoOverrideTimer = function undoOverrideTimer() { 5929 window.setInterval = setIntervalBase; 5930 window.clearInterval = clearIntervalBase; 5931 window.setTimeout = setTimeoutBase; 5932 window.clearTimeout = clearTimeoutBase; 5933 }; 5934 if (!Boolean(arguments.callee['_singletonInstance'])) { 5935 arguments.callee._singletonInstance = this; 5936 } 5937 return arguments.callee._singletonInstance; 5938 }; 5939 var _timerManager = null; 5940 5941 OnePageUtil.GetTimerManager = function() { 5942 if (null == _timerManager) 5943 _timerManager = new OnePageUtil.timerManagerClass(); 5944 return _timerManager; 5945 }; 5946} 5947var Flighting; 5948var currentCtx; 5949var ctx; 5950var itemTable; 5951var g_supportFiles; 5952var g_MDNav; 5953var ULS; 5954 5955function ULSObject() { 5956} 5957function ULSTrim(str) { 5958 str = str.replace(/^\s*/, ""); 5959 str = str.replace(/\s*$/, ""); 5960 return str; 5961} 5962function ULSEncodeXML(str) { 5963 str = String(str); 5964 str = str.replace(/&/g, "&"); 5965 str = str.replace(/</g, "<"); 5966 str = str.replace(/>/g, ">"); 5967 str = str.replace(/'/g, "'"); 5968 str = str.replace(/"/g, """); 5969 return str; 5970} 5971function ULSStripPII(url) { 5972 if (url.indexOf('?') != -1) 5973 url = url.substring(0, url.indexOf('?')); 5974 if (Boolean(window.location)) 5975 url = url.replace(window.location.hostname, "[server]"); 5976 return url; 5977} 5978function ULSGetFunction(fn, depth, topfn) { 5979 var sF = fn.toString(); 5980 var sFnNm = ULSTrim(sF.substring(0, sF.indexOf("{"))); 5981 5982 if (sFnNm.indexOf("function") == 0) 5983 sFnNm = ULSTrim(sFnNm.substring(8)); 5984 var s = '<function '; 5985 5986 if (depth >= 0) 5987 s += 'depth="' + depth.toString() + '" '; 5988 s += 'signature="' + sFnNm + '">'; 5989 if (depth == 0 || sFnNm.indexOf("anonymous") == 0 || sFnNm.indexOf("(") == 0) 5990 s += '\n<![CDATA[' + sF + ']]>\n'; 5991 s += '</function>'; 5992 return s; 5993} 5994function ULSGetMetadataFromFrame(oCS) { 5995 var sFunctionText = oCS.toString(); 5996 var iOpeningBrace = sFunctionText.indexOf("{"); 5997 5998 if (iOpeningBrace == -1) 5999 return false; 6000 sFunctionText = sFunctionText.substr(iOpeningBrace + 1); 6001 var iFirstStatement = sFunctionText.search(/[^\s]/); 6002 6003 if (iFirstStatement == -1) 6004 return false; 6005 var reMatch = sFunctionText.match(/ULS[^\s;]*:/); 6006 6007 if (reMatch == null || typeof reMatch.index != "undefined" && reMatch.index != iFirstStatement) 6008 return false; 6009 var sLabelName = reMatch[0]; 6010 6011 sLabelName = sLabelName.substr(0, sLabelName.length - 1); 6012 try { 6013 var o = eval(sLabelName + "()"); 6014 6015 if (typeof o == "undefined" || typeof o.ULSTeamName == "undefined" || typeof o.ULSFileName == "undefined") 6016 return false; 6017 ULS.teamName = o.ULSTeamName; 6018 ULS.originalFile = o.ULSFileName; 6019 return true; 6020 } 6021 catch (e) { 6022 return false; 6023 } 6024} 6025function ULSGetCallstack(callerArg) { 6026 var stack = ""; 6027 6028 try { 6029 if (Boolean(callerArg)) { 6030 var fFoundMetadata = false; 6031 var oCS = callerArg; 6032 var depth = 0; 6033 6034 while (Boolean(oCS) && depth < 20) { 6035 if (!fFoundMetadata)
6036 fFoundMetadata = ULSGetMetadataFromFrame(oCS); 6037 stack += ULSGetFunction(oCS, depth, callerArg) + '\n'; 6038 oCS = oCS.caller; 6039 depth++; 6040 } 6041 } 6042 } 6043 catch (e) { } 6044 return stack; 6045} 6046function ULSGetClientInfo() { 6047 var client = ""; 6048 6049 try { 6050 var lang = navigator.browserLanguage; 6051 6052 if (!Boolean(lang)) 6053 lang = navigator.language; 6054 if (!Boolean(lang)) 6055 lang = navigator.systemLanguage; 6056 var agt = navigator.userAgent.toLowerCase(); 6057 var app = navigator.appName; 6058 var ver = parseFloat(navigator.appVersion); 6059 6060 if (agt.indexOf("msie ") != -1) 6061 ver = parseFloat(agt.substring(agt.indexOf("msie ") + 5)); 6062 if (agt.indexOf("firefox/") != -1) { 6063 app = "Firefox"; 6064 ver = parseFloat(agt.substring(agt.indexOf("firefox/") + 8)); 6065 } 6066 client += '<browser name="' + ULSEncodeXML(app) + '" version="' + ULSEncodeXML(ver.toString()) + '" />\n'; 6067 client += '<useragent>' + ULSEncodeXML(navigator.userAgent) + '</useragent>\n'; 6068 if (Boolean(lang)) 6069 client += '<language>' + ULSEncodeXML(lang) + '</language>\n'; 6070 if (Boolean(document.referrer)) { 6071 var ref = ULSStripPII(document.referrer); 6072 6073 client += '<referrer>' + ULSEncodeXML(ref) + '</referrer>\n'; 6074 } 6075 if (Boolean(window.location)) { 6076 var loc = ULSStripPII(window.location.toString()); 6077 6078 client += '<location>' + ULSEncodeXML(loc) + '</location>\n'; 6079 } 6080 if (Boolean(ULS.Correlation)) 6081 client += '<correlation>' + ULSEncodeXML(ULS.Correlation) + '</correlation>\n'; 6082 } 6083 catch (e) { } 6084 return client; 6085} 6086function ULSHandleWebServiceResponse() { 6087 var req = ULS.request; 6088 6089 if (req.readyState == 4 && req.status == 200) { 6090 ULSFinishErrorHandling(); 6091 } 6092 if ((req.readyState == 0 || req.readyState == 4) && req.status > 200) { 6093 ULSFinishErrorHandling(); 6094 } 6095} 6096function ULSFinishErrorHandling() { 6097 ULS.message = null; 6098} 6099function ULSGetWebServiceUrl() { 6100 var url = ""; 6101 var idx1 = document.URL.indexOf('://'); 6102 6103 if (idx1 > 0) { 6104 var idx2 = document.URL.indexOf('/', idx1 + 3); 6105 6106 if (idx2 > 0) 6107 url = document.URL.substring(0, idx2); 6108 else 6109 url = document.URL; 6110 } 6111 if (url.charAt(url.length - 1) != '/') 6112 url += '/'; 6113 url += '_vti_bin/diagnostics.asmx'; 6114 return url; 6115} 6116function ULSUploadReport(msg, correlation, url) { 6117 if (Boolean(ULS) && ULS.enable) { 6118 ULS.message = msg; 6119 if (url.indexOf('?') != -1) 6120 url = url.substr(0, url.indexOf('?')); 6121 ULS.file = url.substr(url.lastIndexOf('/') + 1); 6122 ULS.line = 0; 6123 ULS.WebServiceNS = "http://schemas.microsoft.com/sharepoint/diagnostics/"; 6124 ULS.Correlation = correlation; 6125 ULS.teamName = ''; 6126 ULS.originalFile = ''; 6127 ULS.callStack = ''; 6128 ULS.clientInfo = '<client>\n' + ULSGetClientInfo() + '</client>'; 6129 ULSSendReport(false); 6130 } 6131} 6132function ULSSendReport(async) { 6133 ULS.request = new XMLHttpRequest(); 6134 ULS.request.onreadystatechange = ULSHandleWebServiceResponse; 6135 ULS.request.open("POST", ULSGetWebServiceUrl(), async); 6136 ULS.request.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); 6137 ULS.request.setRequestHeader("SOAPAction", ULS.WebServiceNS + "SendClientScriptErrorReport"); 6138 ULS.request.send('<?xml version="1.0" encoding="utf-8"?>' + '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' + '<soap:Body>' + '<SendClientScriptErrorReport xmlns="' + ULS.WebServiceNS + '">' + '<message>' + ULSEncodeXML(ULS.message) + '</message>' + '<file>' + ULSEncodeXML(ULS.file) + '</file>' + '<line>' + String(ULS.line) + '</line>' + '<stack>' + ULSEncodeXML(ULS.callStack) + '</stack>' + '<client>' + ULSEncodeXML(ULS.clientInfo) + '</client>' + '<team>' + ULSEncodeXML(ULS.teamName) + '</team>' + '<originalFile>' + ULSEncodeXML(ULS.originalFile) + '</originalFile>' + '</SendClientScriptErrorReport>' + '</soap:Body>' + '</soap:Envelope>'); 6139} 6140function ULSSendExceptionImpl(msg, url, line, oCaller) { 6141 if (Boolean(ULS) && ULS.enable) { 6142 ULS.enable = false; 6143 window.onerror = ULS.OriginalOnError; 6144 ULS.WebServiceNS = "http://schemas.microsoft.com/sharepoint/diagnostics/"; 6145 try { 6146 ULS.message = msg; 6147 if (url.indexOf('?') != -1) 6148 url = url.substr(0, url.indexOf('?')); 6149 ULS.file = url.substr(url.lastIndexOf('/') + 1); 6150 ULS.line = line; 6151 ULS.teamName = ""; 6152 ULS.originalFile = ""; 6153 ULS.callStack = '<stack>\n' + ULSGetCallstack(oCaller) + '</stack>'; 6154 ULS.clientInfo = '<client>\n' + ULSGetClientInfo() + '</client>'; 6155 ULSSendReport(true); 6156 } 6157 catch (e) { } 6158 } 6159 if (Boolean(ULS) && Boolean(ULS.OriginalOnError)) 6160 return ULS.OriginalOnError(msg, url, String(line)); 6161 else 6162 return false; 6163} 6164function ULSOnError(msg, url, line) { 6165 return ULSSendExceptionImpl(msg, url, line, ULSOnError.caller); 6166} 6167function ULSSendException(ex) { 6168 var message = ex.message; 6169 6170 if (typeof message == "undefined") 6171 message = ex.toString(); 6172 ULSSendExceptionImpl(message, location.href, 0, ULSSendException.caller); 6173} 6174var ULSCat; 6175 6176function GetXMLHttpRequestObject() { 6177 return new XMLHttpRequest(); 6178} 6179function insertAdjacentElement(obj, where, parsedNode) { 6180 if (typeof obj.insertAdjacentElement != "undefined" && Boolean(obj.insertAdjacentElement)) 6181 return obj.insertAdjacentElement(where, parsedNode); 6182 switch (where) { 6183 case 'beforeBegin': 6184 return obj.parentNode.insertBefore(parsedNode, obj); 6185 case 'afterBegin': 6186 return obj.insertBefore(parsedNode, obj.firstChild); 6187 case 'beforeEnd': 6188 return obj.appendChild(parsedNode); 6189 case 'afterEnd': 6190 if (Boolean(obj.nextSibling)) 6191 return obj.parentNode.insertBefore(parsedNode, obj.nextSibling); 6192 else 6193 return obj.parentNode.appendChild(parsedNode); 6194 } 6195 return null; 6196} 6197function insertAdjacentHTML(obj, where, htmlStr) { 6198 if (typeof obj.insertAdjacentHTML != "undefined" && Boolean(obj.insertAdjacentHTML)) 6199 return obj.insertAdjacentHTML(where, htmlStr); 6200 if (typeof obj.ownerDocument.createRange != "undefined") { 6201 var r = obj.ownerDocument.createRange(); 6202 6203 if (typeof r.setStartBefore != "undefined" && typeof r.createContextualFragment != "undefined") { 6204 r.setStartBefore(obj); 6205 var parsedHTML = r.createContextualFragment(htmlStr); 6206 6207 return insertAdjacentElement(obj, where, parsedHTML); 6208 } 6209 } 6210 return null; 6211} 6212function insertAdjacentText(obj, where, txtStr) { 6213 if (typeof obj.insertAdjacentText != "undefined" && Boolean(obj.insertAdjacentText)) 6214 return obj.insertAdjacentText(where, txtStr); 6215 var parsedText = document.createTextNode(txtStr); 6216 6217 return insertAdjacentElement(obj, where, parsedText); 6218} 6219function contains(obj, elem) { 6220 var isParent = false; 6221 6222 do { 6223 isParent = obj == elem; 6224 if (isParent) 6225 break; 6226 elem = elem.parentNode; 6227 } while (elem != null); 6228 return isParent; 6229} 6230function getFirstElementByName(obj, name2) { 6231 return getFirstElementByProperty(obj, 'name', name2); 6232} 6233function getFirstElementByProperty(obj, propName, propValue) { 6234 if (propName == null || propValue == null || propName == '' || propValue == '') 6235 return null; 6236 if (obj[propName] == propValue) 6237 return obj;
6238 var Child = obj.firstChild; 6239 6240 while (Boolean(Child) && typeof Child != 'undefined') { 6241 var ret = getFirstElementByProperty(Child, propName, propValue); 6242 6243 if (Boolean(ret)) 6244 return ret; 6245 Child = Child.nextSibling; 6246 } 6247 return null; 6248} 6249function documentGetElementsByName(name2) { 6250 if (!BrowserDetection.userAgent.ie && Boolean(document.getElementsByName)) 6251 return document.getElementsByName(name2); 6252 var matched = []; 6253 var allEls = document.getElementsByTagName("*"), l = allEls.length; 6254 6255 for (var i = 0; i < l; i++) { 6256 var elem = allEls[i]; 6257 6258 if (elem.name == name2 || typeof elem.getAttribute != "unknown" && Boolean(elem.getAttribute) && elem.getAttribute("name") == name2) 6259 matched.push(elem); 6260 } 6261 return matched; 6262} 6263function getFirstChild(el) { 6264 var node = el.firstChild; 6265 6266 while (Boolean(node) && node.nodeType == 3) 6267 node = node.nextSibling; 6268 return node; 6269} 6270function byid(id) { 6271 return document.getElementById(id); 6272} 6273function newE(tag) { 6274 return document.createElement(tag); 6275} 6276function wpf() { 6277 if (typeof window.MSOWebPartPageFormName != "undefined") 6278 return document.forms[window.MSOWebPartPageFormName]; 6279 return null; 6280} 6281function startReplacement() { 6282} 6283function AttachEvent(eventName, eventFunc, el) { 6284 if (!el) 6285 el = window; 6286 if (eventName == 'domLoad') { 6287 eventName = typeof el.addEventListener != 'undefined' && el.addEventListener && BrowserDetection.userAgent.nav ? 'DOMContentLoaded' : 'load'; 6288 } 6289 else if (eventName != 'undefined' && eventName != null && eventName.indexOf("touch") == 0 && BrowserDetection.userAgent.msTouch) { 6290 switch (eventName) { 6291 case "touchstart": 6292 eventName = "MSPointerDown"; 6293 break; 6294 case "touchmove": 6295 eventName = "MSPointerMove"; 6296 break; 6297 case "touchend": 6298 eventName = "MSPointerUp"; 6299 break; 6300 } 6301 } 6302 if (typeof eventFunc == 'string') 6303 eventFunc = new Function(eventFunc); 6304 if (typeof el.addEventListener != 'undefined' && el.addEventListener) 6305 el.addEventListener(eventName, eventFunc, false); 6306 else if (typeof el.attachEvent != 'undefined') 6307 el.attachEvent('on' + eventName, eventFunc); 6308} 6309function DetachEvent(eventName, eventFunc, el) { 6310 if (!el) 6311 el = window; 6312 if (eventName == 'domLoad') { 6313 eventName = typeof el.removeEventListener != 'undefined' && el.removeEventListener && BrowserDetection.userAgent.nav ? 'DOMContentLoaded' : 'load'; 6314 } 6315 if (typeof eventFunc == 'string') 6316 eventFunc = new Function(eventFunc); 6317 if (typeof el.removeEventListener != 'undefined' && el.removeEventListener) 6318 el.removeEventListener(eventName, eventFunc, false); 6319 else if (typeof el.detachEvent != 'undefined') 6320 el.detachEvent('on' + eventName, eventFunc); 6321} 6322function GetEventKeyCode(e) { 6323 if (BrowserDetection.userAgent.nav) 6324 return e.which; 6325 else 6326 return e.keyCode; 6327} 6328var g_cde; 6329 6330function GetCachedElement(id) { 6331 var ret = null; 6332 6333 if (!Boolean(ret = g_cde[id])) { 6334 ret = document.getElementById(id); 6335 g_cde[id] = ret; 6336 } 6337 return ret; 6338} 6339function $dg(x) { 6340 if (!(x in window)) 6341 window[x] = undefined; 6342} 6343function SelectRibbonTab(tabId, force) { 6344 var rib; 6345 6346 try { 6347 rib = (SP.Ribbon.PageManager.get_instance()).get_ribbon(); 6348 } 6349 catch (e) { } 6350 if (!Boolean(rib)) { 6351 if (typeof _ribbonStartInit != "undefined") 6352 _ribbonStartInit(tabId, false, null); 6353 } 6354 else if (force || rib.get_selectedTabId() == "Ribbon.Read") { 6355 rib.selectTabById(tabId); 6356 } 6357} 6358function FV4UI() { 6359 return typeof _fV4UI != "undefined" && _fV4UI; 6360} 6361function EEDecodeSpecialChars(str) { 6362 var decodedStr = str.replace(/"/g, "\""); 6363 6364 decodedStr = decodedStr.replace(/>/g, ">"); 6365 decodedStr = decodedStr.replace(/</g, "<"); 6366 decodedStr = decodedStr.replace(/'/g, "'"); 6367 decodedStr = decodedStr.replace(/&/g, "&"); 6368 return decodedStr; 6369} 6370function SP_JSONParse(jsonText) { 6371 var needsSecondPass = false; 6372 var retval = JSON.parse(jsonText, ReviveSerializedDate); 6373 6374 if (needsSecondPass) { 6375 traverse(retval, ReviveSerializedDate); 6376 } 6377 return retval; 6378 function traverse(obj, func) { 6379 if (obj !== null && typeof obj === 'object') { 6380 for (var key in obj) { 6381 if (obj.hasOwnProperty(key)) { 6382 traverse(obj[key], func); 6383 obj[key] = func(key, obj[key]); 6384 } 6385 } 6386 } 6387 } 6388 function ReviveSerializedDate(key, value) { 6389 DetectJSONParseReviverBug(key, value); 6390 if (typeof value === 'string') { 6391 var regExResult = /^\/Date\((-?\d+\))\/$/g.exec(value); 6392 6393 if (regExResult !== null) { 6394 var ticks = parseInt(regExResult[1]); 6395 6396 return new Date(ticks); 6397 } 6398 } 6399 return value; 6400 } 6401 function DetectJSONParseReviverBug(key, value) { 6402 needsSecondPass = needsSecondPass || value === void 0 && /^\d+$/.test(key); 6403 } 6404} 6405function DeferCall() { 6406 if (arguments.length == 0) 6407 return null; 6408 var args = arguments; 6409 var fn = null; 6410 6411 if (browseris.ie5up || browseris.nav6up) { 6412 eval("if (typeof(" + args[0] + ") == 'function') { fn = " + args[0] + "; }"); 6413 } 6414 if (fn == null) 6415 return null; 6416 if (args.length == 1) 6417 return fn(); 6418 else if (args.length == 2) 6419 return fn(args[1]); 6420 else if (args.length == 3) 6421 return fn(args[1], args[2]); 6422 else if (args.length == 4) 6423 return fn(args[1], args[2], args[3]); 6424 else if (args.length == 5) 6425 return fn(args[1], args[2], args[3], args[4]); 6426 else if (args.length == 6) 6427 return fn(args[1], args[2], args[3], args[4], args[5]); 6428 else if (args.length == 7) 6429 return fn(args[1], args[2], args[3], args[4], args[5], args[6]); 6430 else if (args.length == 8) 6431 return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7]); 6432 else if (args.length == 9) 6433 return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]); 6434 else if (args.length == 10) 6435 return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]); 6436 else { 6437 alert(Strings.STS.L_TooManyDefers_Text); 6438 } 6439 return null; 6440} 6441function CollectRUMNonMDS() { 6442 var registerFunc = function() { 6443 var rWsa = GetRUMWSA(); 6444 6445 if (IsNullOrUndefined(rWsa)) 6446 return; 6447 rWsa.CollectRUMDataForNonMDS(); 6448 }; 6449 var rumSod = _v_dictSod['sp.core.js']; 6450 6451 if (IsNullOrUndefined(rumSod)) { 6452 return; 6453 } 6454 EnsureScriptFunc('SP.core.js', "SP.RUMLogger", registerFunc); 6455 EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { 6456 var perfLogger = IsNullOrUndefined(PerformanceLogger) ? null : PerformanceLogger.GetLogger(); 6457 6458 if (!IsNullOrUndefined(perfLogger)) { 6459 perfLogger.CollectW3CPerfTimings();
6460 var pageTransitionType = 0; 6461 6462 if (SP.ScriptUtility.isNullOrEmptyString(document.referrer)) { 6463 pageTransitionType = SP.PageTransitionType.nonMdsToNonMds; 6464 } 6465 else { 6466 if (document.referrer.indexOf('/start.aspx') !== -1) { 6467 pageTransitionType = SP.PageTransitionType.mdsToNonMds; 6468 } 6469 else { 6470 pageTransitionType = SP.PageTransitionType.nonMdsToNonMds; 6471 } 6472 } 6473 perfLogger.WritePageTransitionType(pageTransitionType); 6474 if (typeof g_duration != "undefined" && typeof g_iisLatency != "undefined") { 6475 perfLogger.WriteServerSideLatency(g_duration, g_iisLatency); 6476 } 6477 } 6478 }); 6479} 6480var LegalUrlChars; 6481var poundIndex; 6482var percentIndex; 6483 6484function SupportPound() { 6485 return typeof _spPageContextInfo != 'undefined' && typeof _spPageContextInfo.supportPoundStorePath == 'boolean' && Boolean(_spPageContextInfo.supportPoundStorePath); 6486} 6487function SupportPercent() { 6488 return typeof _spPageContextInfo != 'undefined' && typeof _spPageContextInfo.supportPercentStorePath == 'boolean' && Boolean(_spPageContextInfo.supportPercentStorePath); 6489} 6490function AdmBuildParam(stPattern) { 6491 var re; 6492 var i; 6493 6494 for (i = 1; i < arguments.length; i++) { 6495 re = new RegExp("\\^" + String(i)); 6496 stPattern = stPattern.replace(re, arguments[i]); 6497 } 6498 return stPattern; 6499} 6500function IndexOfIllegalCharInUrlLeafName(strLeafName, noPoundPercent) { 6501 var supportPound = SupportPound() && !noPoundPercent; 6502 var supportPercent = SupportPercent() && !noPoundPercent; 6503 6504 for (var i = 0; i < strLeafName.length; i++) { 6505 var ch = strLeafName.charCodeAt(i); 6506 6507 if (strLeafName.charAt(i) == '.' && i == strLeafName.length - 1) 6508 return i; 6509 if (ch < 160 && (strLeafName.charAt(i) == '/' || !LegalUrlChars[ch] && !(ch == poundIndex && supportPound) && !(ch == percentIndex && supportPercent))) 6510 return i; 6511 } 6512 return -1; 6513} 6514function IndexOfIllegalCharInUrlPath(strPath) { 6515 var supportPound = SupportPound(); 6516 var supportPercent = SupportPercent(); 6517 6518 for (var i = 0; i < strPath.length; i++) { 6519 var ch = strPath.charCodeAt(i); 6520 6521 if (ch < 160 && (!LegalUrlChars[ch] && !(ch == poundIndex && supportPound) && !(ch == percentIndex && supportPercent))) 6522 return i; 6523 } 6524 return -1; 6525} 6526function UrlContainsIllegalStrings(strPath) { 6527 if (strPath.indexOf("//") >= 0 || strPath.indexOf("./") >= 0 || strPath.lastIndexOf(".") == strPath.length - 1) { 6528 return true; 6529 } 6530 return false; 6531} 6532function UrlLeafNameValidate(source, args) { 6533 var strMessagePrefix = ""; 6534 6535 if (typeof source.MessagePrefix == "string") { 6536 strMessagePrefix = source.MessagePrefix; 6537 } 6538 else { 6539 strMessagePrefix = source.id; 6540 } 6541 var i = IndexOfIllegalCharInUrlLeafName(args.Value); 6542 6543 if (i >= 0) { 6544 if (typeof source.errormessage == "string") { 6545 source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalChar_Text, strMessagePrefix, args.Value.charAt(i)); 6546 } 6547 args.IsValid = false; 6548 } 6549 else if (UrlContainsIllegalStrings(args.Value)) { 6550 if (typeof source.errormessage == "string") { 6551 source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalString_Text, strMessagePrefix); 6552 } 6553 args.IsValid = false; 6554 } 6555 else { 6556 args.IsValid = true; 6557 } 6558} 6559function UrlPathValidate(source, args) { 6560 var strMessagePrefix = ""; 6561 6562 if (typeof source.MessagePrefix == "string") { 6563 strMessagePrefix = source.MessagePrefix; 6564 } 6565 else { 6566 strMessagePrefix = source.id; 6567 } 6568 var i = IndexOfIllegalCharInUrlPath(args.Value); 6569 6570 if (i >= 0) { 6571 if (typeof source.errormessage == "string") { 6572 source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalChar_Text, strMessagePrefix, args.Value.charAt(i)); 6573 } 6574 args.IsValid = false; 6575 } 6576 else if (UrlContainsIllegalStrings(args.Value)) { 6577 if (typeof source.errormessage == "string") { 6578 source.errormessage = AdmBuildParam(Strings.STS.L_ContainIllegalString_Text, strMessagePrefix); 6579 } 6580 args.IsValid = false; 6581 } 6582 else { 6583 args.IsValid = true; 6584 } 6585} 6586function IsCheckBoxListSelected(checkboxlist) { 6587 if (checkboxlist == null) 6588 return false; 6589 var len = checkboxlist.length; 6590 6591 if (len == null) { 6592 return checkboxlist.checked; 6593 } 6594 else { 6595 for (var i = 0; i < len; i++) { 6596 var cb = checkboxlist[i]; 6597 6598 if (cb.checked) { 6599 return true; 6600 } 6601 } 6602 } 6603 return false; 6604} 6605function STSValidatorEnable(val, bEnable, bSilent) { 6606 var objVal = document.getElementById(val); 6607 6608 if (objVal == null) 6609 return; 6610 if (bSilent || Boolean(objVal.getAttribute("AlwaysEnableSilent"))) { 6611 objVal.enabled = bEnable == true; 6612 } 6613 else { 6614 if (typeof ValidatorEnable == "function") 6615 ValidatorEnable(objVal, bEnable); 6616 } 6617} 6618var recycleBinEnabled; 6619var cascadeDeleteWarningMessage; 6620var bIsFileDialogView; 6621var g_ViewIdToViewCounterMap; 6622var g_ctxDict; 6623 6624function NotifyBrowserOfAsyncUpdate(container) { 6625 var iframeName = '__spAjaxIframe'; 6626 var iframe = document.getElementById(iframeName); 6627 6628 if (iframe == null) { 6629 iframe = document.createElement('IFRAME'); 6630 iframe.name = (iframe.id = iframeName); 6631 iframe.width = (iframe.height = "0"); 6632 iframe.src = 'about:blank'; 6633 iframe.style.display = 'none'; 6634 document.body.appendChild(iframe); 6635 } 6636 iframe.contentWindow.location.replace('/_layouts/15/images/blank.gif'); 6637} 6638function IsSafeHrefAlert(href, fAllowRelativeLinks) { 6639 if (href.match(new RegExp("^[^?]{" + (640 + 1).toString() + "}")) != null) { 6640 alert(Strings.STS.L_UrlTooLongError_Text); 6641 return false; 6642 } 6643 else if (IsSafeHref(href)) { 6644 return true; 6645 } 6646 else { 6647 if (href.match(new RegExp("^[a-zA-Z]*:")) != null) { 6648 alert(Strings.STS.L_UnknownProtocolUrlError_Text); 6649 return false; 6650 } 6651 else if (true == fAllowRelativeLinks) { 6652 return true; 6653 } 6654 else { 6655 alert(Strings.STS.L_UnknownProtocolUrlError_Text); 6656 return false; 6657 } 6658 } 6659} 6660function UpdateAccessibilityUI() { 6661 var t1 = document.getElementById("TurnOnAccessibility"); 6662 var t2 = document.getElementById("TurnOffAccessibility"); 6663 6664 if (IsAccessibilityFeatureEnabled()) { 6665 if (t1 != null) 6666 t1.style.display = "none"; 6667 if (t2 != null) 6668 t2.style.display = ""; 6669 } 6670 else { 6671 if (t1 != null) 6672 t1.style.display = ""; 6673 if (t2 != null) 6674 t2.style.display = "none"; 6675 } 6676} 6677var browserUpdatedWithServerRedirectedUrl; 6678 6679function UpdateUrlWhenServerRedirects() { 6680 var pageContextInfo = window['_spPageContextInfo']; 6681 6682 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(708) && !(window["OffSwitch"] == null || OffSwitch.IsActive("90329B12-2C48-4DBE-A1B9-08BC2BBA2C26")) && (window["OffSwitch"] == null || OffSwitch.IsActive("DC0DFB52-4F4C-479D-9D07-43DE94F3123F")) && (window["OffSwitch"] == null || OffSwitch.IsActive("3EDB0B41-115A-410E-9C6B-9390F1D1AD94") || !browserUpdatedWithServerRedirectedUrl) && Boolean(pageContextInfo) && Boolean(pageContextInfo.serverRedirectedUrl)) { 6683 var serverRedirectedUrl = pageContextInfo.serverRedirectedUrl; 6684 6685 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("F1754AB4-0FF5-4169-A2E1-7665F6FF4E9F")) && Boolean(pageContextInfo.isSPO) && window.location.protocol.toLowerCase() === 'https:') { 6686 serverRedirectedUrl = serverRedirectedUrl.replace(/^http:\/\//i, 'https://'); 6687 } 6688 if (Boolean(window.history) && Boolean(window.history.replaceState)) { 6689 window.history.replaceState({ 6690 reason: "SPServerRedirect" 6691 }, "SPServerRedirect", serverRedirectedUrl); 6692 browserUpdatedWithServerRedirectedUrl = true; 6693 } 6694 else { 6695 window.location.href = serverRedirectedUrl; 6696 } 6697 } 6698} 6699function OnePageNavigationHandler(evt) { 6700 var registerFunc = function registerOnePageNavigationFunc() { 6701 performModernOnePageNavigationForFasterOnePage(evt); 6702 }; 6703 6704 EnsureScriptFunc('SP.core.js', "performModernOnePageNavigationForFasterOnePage", registerFunc); 6705} 6706function isBrowserSupportedModernApp() { 6707 var browserSupported = true; 6708 6709 try { 6710 var a = navigator.userAgent.toLowerCase(); 6711 var i = a.indexOf("msie"); 6712 6713 if (-1 !== i) { 6714 var v = parseInt(a.substring(i + 5)); 6715 var supportedMode = !(window["OffSwitch"] == null || OffSwitch.IsActive("68B2E51A-1AC2-4ABF-924A-DFB7CD5C18E1")) ? 11 : 10; 6716 6717 if (v < supportedMode && Boolean(document.documentMode) && document.documentMode < supportedMode) { 6718 browserSupported = false; 6719 } 6720 } 6721 } 6722 catch (e) { } 6723 return browserSupported; 6724} 6725function UserHasPermissionHigh(permissionLevel) { 6726 var pageContextInfo = window['_spPageContextInfo']; 6727 var webPermMasks = pageContextInfo['webPermMasks']; 6728 var webPermMasksHigh = webPermMasks != null ? Number(webPermMasks["High"]) : 0; 6729 var hasPerm = (webPermMasksHigh & permissionLevel) == permissionLevel; 6730 6731 return hasPerm; 6732} 6733function ModernUXOptOutCookieIsOn() { 6734 return GetCookie('splnu') === '0'; 6735} 6736function PrepareForModernOnePageNavigation() { 6737 var SPBasePermissions_UseRemoteAPIs = 0x20; 6738 6739 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(1) && !(window["OffSwitch"] == null || OffSwitch.IsActive("79D8320F-D4AA-45D1-A83F-9B7AF522EE5C")) && isBrowserSupportedModernApp() && (window["OffSwitch"] == null || OffSwitch.IsActive("32012162-C12F-453D-A7EF-E00E74140C44") || UserHasPermissionHigh(SPBasePermissions_UseRemoteAPIs) && !ModernUXOptOutCookieIsOn())) { 6740 var docLibLinks = document.querySelectorAll('[onepagenavigationaction="1"]'); 6741 6742 for (var index = 0; index < docLibLinks.length; index++) { 6743 var link = docLibLinks[index]; 6744 6745 if (!!link.addEventListener) { 6746 link.addEventListener('click', OnePageNavigationHandler, false); 6747 } 6748 else if (!!link.attachEvent) { 6749 link.attachEvent('onclick', OnePageNavigationHandler); 6750 } 6751 } 6752 var registerFunc = function registerOnePageNavigationFunc() {
6753 setTimeout(preloadModernApp, 1000); 6754 }; 6755 6756 EnsureScriptFunc('SP.core.js', "preloadModernApp", registerFunc); 6757 } 6758} 6759function SetIsAccessibilityFeatureEnabled(f) { 6760 if (f) 6761 document.cookie = "WSS_AccessibilityFeature=true;path=/;"; 6762 else 6763 document.cookie = "WSS_AccessibilityFeature=false;path=/;"; 6764 var hiddenAnchor = document.getElementById("HiddenAnchor"); 6765 var evt; 6766 6767 if (browseris.ie) 6768 evt = { 6769 "srcElement": hiddenAnchor, 6770 "fakeEvent": 1, 6771 "enableStatus": f 6772 }; 6773 else 6774 evt = { 6775 "target": hiddenAnchor, 6776 "fakeEvent": 1, 6777 "enableStatus": f 6778 }; 6779 if (hiddenAnchor == null || typeof hiddenAnchor.onclick == 'undefined' || hiddenAnchor.onclick == null) 6780 return; 6781 hiddenAnchor.onclick(evt); 6782} 6783function DeleteCookie(sName) { 6784 document.cookie = sName + "=; expires=Thu, 01-Jan-70 00:00:01 GMT"; 6785} 6786function GetCookie(sName) { 6787 return GetCookieEx(sName, window); 6788} 6789function GetCookieEx(sName, wnd) { 6790 var aCookie = wnd.document.cookie.split("; "); 6791 6792 for (var i = 0; i < aCookie.length; i++) { 6793 var aCrumbStr = aCookie[i]; 6794 var aCrumb = aCrumbStr.split("="); 6795 6796 if (sName == aCrumb[0]) { 6797 if (aCrumb.length > 1) 6798 return unescapeProperly(aCrumb[1]); 6799 else 6800 return null; 6801 } 6802 } 6803 return null; 6804} 6805function SetCookie(sName, value) { 6806 SetCookieEx(sName, value, false, window); 6807} 6808function SetCookieEx(sName, value, isGlobal, wnd) { 6809 var c = sName + (value ? "=true" : "=false"); 6810 var p = isGlobal ? ";path=/" : ""; 6811 var sec = wnd.location.protocol === "https:" ? ";secure" : ""; 6812 6813 wnd.document.cookie = c + p + sec; 6814} 6815function IsAccessibilityFeatureEnabled() { 6816 return GetCookie("WSS_AccessibilityFeature") == "true"; 6817} 6818function escapeForSync(str) { 6819 var strOut = ""; 6820 var ix = 0; 6821 var bDoingUnicode = false; 6822 var strSyncEscaped = "\\&|[]"; 6823 6824 for (ix = 0; ix < str.length; ix++) { 6825 var charCode = str.charCodeAt(ix); 6826 var curChar = str.charAt(ix); 6827 6828 if (bDoingUnicode && charCode <= 0x7f) { 6829 strOut += "]"; 6830 bDoingUnicode = false; 6831 } 6832 if (!bDoingUnicode && charCode > 0x7f) { 6833 strOut += "["; 6834 bDoingUnicode = true; 6835 } 6836 if (strSyncEscaped.indexOf(curChar) >= 0) 6837 strOut += "|"; 6838 if (charCode >= 97 && charCode <= 122 || charCode >= 65 && charCode <= 90 || charCode >= 48 && charCode <= 57) { 6839 strOut += curChar; 6840 } 6841 else if (charCode <= 0x0f) { 6842 strOut += "%0" + (charCode.toString(16)).toUpperCase(); 6843 } 6844 else if (charCode <= 0x7f) { 6845 strOut += "%" + (charCode.toString(16)).toUpperCase(); 6846 } 6847 else if (charCode <= 0x00ff) { 6848 strOut += "00" + (charCode.toString(16)).toUpperCase(); 6849 } 6850 else if (charCode <= 0x0fff) { 6851 strOut += "0" + (charCode.toString(16)).toUpperCase(); 6852 } 6853 else { 6854 strOut += (charCode.toString(16)).toUpperCase(); 6855 } 6856 } 6857 if (bDoingUnicode) 6858 strOut += "]"; 6859 return strOut; 6860} 6861function navigateMailToLink(strBody) { 6862 window.location.href = 'mailto:?body=' + escapeProperly(strBody); 6863} 6864function navigateMailToLinkWithMessage(strTo, strBody) { 6865 window.location.href = 'mailto:' + escapeProperly(strTo) + '?body=' + escapeProperly(escapeProperlyCoreCore(strBody, false, false, true)); 6866} 6867function newBlogPostOnClient(strProviderId, strBlogUrl, strBlogName) { 6868 var stsOpen; 6869 var fRet; 6870 6871 stsOpen = StsOpenEnsureEx2("SharePoint.OpenDocuments.3"); 6872 if (stsOpen == null) { 6873 alert(Strings.STS.L_NewBlogPost_Text); 6874 return; 6875 } 6876 try { 6877 if (typeof stsOpen.NewBlogPost != "undefined") 6878 fRet = stsOpen.NewBlogPost(strProviderId, strBlogUrl, strBlogName); 6879 } 6880 catch (e) { 6881 alert(Strings.STS.L_NewBlogPostFailed_Text); 6882 } 6883} 6884function GetUrlFromWebUrlAndWebRelativeUrl(webUrl, webRelativeUrl) { 6885 var retUrl = webUrl == null || webUrl.length <= 0 ? "/" : webUrl; 6886 6887 if (retUrl.charAt(retUrl.length - 1) != "/") { 6888 retUrl += "/"; 6889 } 6890 retUrl += webRelativeUrl; 6891 return retUrl; 6892} 6893function UpdateFormDigest(serverRelativeWebUrl, updateInterval) { 6894 try { 6895 var pageContextInfo = window['_spPageContextInfo']; 6896 6897 if (pageContextInfo == null || pageContextInfo.updateFormDigestPageLoaded == null) { 6898 return; 6899 } 6900 var now = new Date(); 6901 6902 if (now.getTime() - pageContextInfo.updateFormDigestPageLoaded.getTime() < updateInterval) { 6903 return; 6904 } 6905 if (serverRelativeWebUrl == null || serverRelativeWebUrl.length <= 0) { 6906 return; 6907 } 6908 var formDigestElement = (document.getElementsByName("__REQUESTDIGEST"))[0]; 6909 6910 if (formDigestElement == null || formDigestElement.tagName.toLowerCase() != "input" || formDigestElement.type.toLowerCase() != "hidden" || formDigestElement.value == null || formDigestElement.value.length <= 0) { 6911 return; 6912 } 6913 var request = new XMLHttpRequest(); 6914 6915 if (request == null) { 6916 return; 6917 } 6918 request.open("POST", GetUrlFromWebUrlAndWebRelativeUrl(serverRelativeWebUrl, "_vti_bin/sites.asmx"), false); 6919 request.setRequestHeader("Content-Type", "text/xml"); 6920 request.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/GetUpdatedFormDigest"); 6921 request.send("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + " <soap:Body>" + " <GetUpdatedFormDigest xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\" />" + " </soap:Body>" + "</soap:Envelope>"); 6922 var responseText = request.responseText; 6923 6924 if (responseText == null || responseText.length <= 0) { 6925 return; 6926 } 6927 var startTag = '<GetUpdatedFormDigestResult>'; 6928 var endTag = '</GetUpdatedFormDigestResult>'; 6929 var startTagIndex = responseText.indexOf(startTag); 6930 var endTagIndex = responseText.indexOf(endTag, startTagIndex + startTag.length); 6931 var newFormDigest = null; 6932 6933 if (startTagIndex >= 0 && endTagIndex > startTagIndex) { 6934 newFormDigest = responseText.substring(startTagIndex + startTag.length, endTagIndex); 6935 } 6936 if (newFormDigest == null || newFormDigest.length <= 0) { 6937 return; 6938 } 6939 var oldValue = formDigestElement.value; 6940 6941 formDigestElement.value = newFormDigest; 6942 pageContextInfo.updateFormDigestPageLoaded = new Date(); 6943 } 6944 catch (ex) { } 6945} 6946function IsSupportedFirefoxOnWin() { 6947 return browseris.win && browseris.firefox3up; 6948} 6949function IsSupportedChromeOnWin() { 6950 return browseris.win && browseris.chrome; 6951} 6952function IsSupportedNPApiBrowserOnWin() { 6953 return IsSupportedChromeOnWin() || IsSupportedFirefoxOnWin(); 6954} 6955function IsNPAPIOnWinPluginInstalled(strMimeType) { 6956 return Boolean(navigator.mimeTypes) && navigator.mimeTypes[strMimeType] && navigator.mimeTypes[strMimeType].enabledPlugin; 6957} 6958function CreateNPApiOnWindowsPlugin(strMimeType) { 6959 var plugin = null; 6960 6961 if (IsSupportedNPApiBrowserOnWin()) { 6962 try { 6963 plugin = document.getElementById(strMimeType); 6964 if (!Boolean(plugin) && IsNPAPIOnWinPluginInstalled(strMimeType)) { 6965 var pluginNode = document.createElement("object"); 6966 6967 pluginNode.id = strMimeType; 6968 pluginNode.type = strMimeType; 6969 pluginNode.width = "0"; 6970 pluginNode.height = "0"; 6971 pluginNode.style.setProperty("visibility", "hidden", ""); 6972 document.body.appendChild(pluginNode); 6973 plugin = document.getElementById(strMimeType); 6974 } 6975 } 6976 catch (e) { 6977 plugin = null; 6978 } 6979 } 6980 return plugin; 6981} 6982function IsSupportedMacBrowser() { 6983 return browseris.mac && (browseris.firefox3up || browseris.safari3up || browseris.chrome); 6984} 6985function IsBrowserPluginInstalled(mimeType) { 6986 var hasMimeType = Boolean(navigator.mimeTypes) && navigator.mimeTypes[mimeType]; 6987 6988 if (hasMimeType) { 6989 var type = navigator.mimeTypes[mimeType]; 6990 6991 return !!type.enabledPlugin; 6992 } 6993 return false; 6994} 6995function IsMacPluginInstalled() { 6996 var webkitPluginInstalled = IsBrowserPluginInstalled("application/x-sharepoint-webkit"); 6997 var npapiPluginInstalled = IsBrowserPluginInstalled("application/x-sharepoint"); 6998 6999 if (browseris.safari3up && webkitPluginInstalled) 7000 return true; 7001 return npapiPluginInstalled; 7002} 7003function CreateMacPlugin() { 7004 var plugin = null; 7005 7006 if (IsSupportedMacBrowser() && !browseris.chrome) { 7007 plugin = document.getElementById("macSharePointPlugin"); 7008 if (plugin == null && IsMacPluginInstalled()) { 7009 var pluginMimeType = null; 7010 7011 if (browseris.safari3up && IsBrowserPluginInstalled("application/x-sharepoint-webkit")) 7012 pluginMimeType = "application/x-sharepoint-webkit"; 7013 else 7014 pluginMimeType = "application/x-sharepoint"; 7015 var pluginNode = document.createElement("object"); 7016 7017 pluginNode.id = "macSharePointPlugin"; 7018 pluginNode.type = pluginMimeType; 7019 pluginNode.width = "0"; 7020 pluginNode.height = "0"; 7021 pluginNode.style.visibility = "hidden"; 7022 document.body.appendChild(pluginNode); 7023 plugin = document.getElementById("macSharePointPlugin"); 7024 } 7025 } 7026 return plugin; 7027} 7028var g_objStssync; 7029 7030function GetStssyncHandler(szVersion) { 7031 if (!IsSupportedMacBrowser()) { 7032 try { 7033 g_objStssync = new ActiveXObject("SharePoint.StssyncHandler" + szVersion); 7034 } 7035 catch (e) { 7036 g_objStssync = null; 7037 } 7038 } 7039 else { 7040 g_objStssync = CreateMacPlugin(); 7041 } 7042} 7043function GetStssyncData(strType, strTextDefault, strImgPathDefault, strPrefix) { 7044 var stsSyncData = null; 7045 var _sec = window.location.protocol === "https:" ? ";secure" : ""; 7046 7047 if (document.cookie.indexOf("stsSyncAppName") == -1 && document.cookie.indexOf("stsSyncIconPath") == -1) { 7048 if (IsSupportedMacBrowser()) { 7049 var plugin = GetStssyncHandler(""); 7050 7051 if (plugin == null || typeof plugin.StssyncEnabled == 'undefined' || !plugin.StssyncEnabled) { 7052 document.cookie = "stsSyncAppName=0" + _sec; 7053 document.cookie = "stsSyncIconPath=0" + _sec; 7054 return stsSyncData; 7055 } 7056 } 7057 if (browseris.ie5up && browseris.win32 || IsSupportedMacBrowser()) { 7058 var strAppName; 7059 var strIconName; 7060 7061 try { 7062 if (strType != "") 7063 GetStssyncHandler(".3"); 7064 if (!g_objStssync) { 7065 if (strType != "" && strType != "calendar" && strType != "contacts") { 7066 document.cookie = "stsSyncAppName=0" + _sec; 7067 document.cookie = "stsSyncIconPath=0" + _sec; 7068 return stsSyncData; 7069 } 7070 GetStssyncHandler(".2"); 7071 if (!g_objStssync || typeof g_objStssync.GetStssyncAppName == 'undefined' || !Boolean(strAppName = g_objStssync.GetStssyncAppName())) { 7072 document.cookie = "stsSyncAppName=0" + _sec; 7073 document.cookie = "stsSyncIconPath=0" + _sec; 7074 return stsSyncData; 7075 } 7076 } 7077 else { 7078 if (typeof g_objStssync.GetStssyncAppNameForType == 'undefined' || !Boolean(strAppName = g_objStssync.GetStssyncAppNameForType(strType))) { 7079 document.cookie = "stsSyncAppName=0" + _sec; 7080 document.cookie = "stsSyncIconPath=0" + _sec; 7081 return stsSyncData; 7082 } 7083 } 7084 } 7085 catch (e) { 7086 SP.DebugLogger.Write("FailureGetStssync", SP.DebugLogger.LoggingLevel.Interesting, "Failed to access stssync ActiveX"); 7087 document.cookie = "stsSyncAppName=0" + _sec; 7088 document.cookie = "stsSyncIconPath=0" + _sec; 7089 return stsSyncData; 7090 } 7091 document.cookie = "stsSyncAppName=" + escapeProperly(strAppName) + _sec; 7092 try { 7093 if (typeof g_objStssync.GetStssyncIconName == 'undefined') 7094 throw 0; 7095 strIconName = g_objStssync.GetStssyncIconName(); 7096 strIconName = strPrefix + strIconName; 7097 document.cookie = "stsSyncIconPath=" + escapeProperly(strIconName) + _sec; 7098 } 7099 catch (e) { 7100 document.cookie = "stsSyncIconPath=0" + _sec; 7101 strIconName = strImgPathDefault; 7102 } 7103 } 7104 else { 7105 strAppName = strTextDefault; 7106 strIconName = strImgPathDefault; 7107 document.cookie = "stsSyncAppName=" + escapeProperly(strTextDefault) + _sec; 7108 document.cookie = "stsSyncIconPath=" + escapeProperly(strImgPathDefault) + _sec; 7109 } 7110 } 7111 else { 7112 strAppName = GetCookie("stsSyncAppName"); 7113 strIconName = GetCookie("stsSyncIconPath"); 7114 if (strAppName == '0') { 7115 return stsSyncData; 7116 } 7117 } 7118 strAppName = Strings.STS.L_LinkToBefore_Text + strAppName; 7119 stsSyncData = new Object(); 7120 stsSyncData.BtnText = strAppName; 7121 stsSyncData.BtnImagePath = strIconName; 7122 return stsSyncData; 7123} 7124function GetStssyncAppName(strDefault) { 7125 var stsSyncData = GetStssyncData("", strDefault, "", ""); 7126 7127 return stsSyncData.BtnText; 7128} 7129function makeAbsUrl(strUrl) { 7130 if (strUrl.length > 0 && "/" == strUrl.substr(0, 1)) { 7131 strUrl = window.location.protocol + "//" + window.location.host + strUrl; 7132 } 7133 return strUrl; 7134} 7135function ExportHailStorm(type, weburl, guid, webname, listname, viewurl, passport, listrooturl, folderurl, folderid) { 7136 var strAppName = GetCookie("stsSyncAppName"); 7137 var strIconName = GetCookie("stsSyncIconPath"); 7138 7139 if (strAppName != null && strAppName != '0') { 7140 var maxLinkLength = 500; 7141 var maxNameLength = 20; 7142 var link = "stssync://sts/?ver=1.1" + "&type=" + escapeProperly(type) + "&cmd=add-folder" + "&base-url=" + escapeForSync(weburl) + "&list-url=" + escapeForSync("/" + (makeAbsUrl(viewurl)).substr(weburl.length + 1) + "/") + "&guid=" + escapeProperly(guid); 7143 7144 if (typeof offlineBtnUser != "undefined") 7145 link += "&user-id=" + offlineBtnUser; 7146 var names = "&site-name=" + escapeForSync(webname) + "&list-name=" + escapeForSync(listname); 7147 var context = ""; 7148 7149 if (Boolean(folderurl)) 7150 context += "&folder-url=" + escapeForSync("/" + folderurl.substr(listrooturl.length + 1)); 7151 if (Boolean(folderid)) 7152 context += "&folder-id=" + folderid; 7153 if (link.length + names.length + context.length > maxLinkLength && (webname.length > maxNameLength || listname.length > maxNameLength)) { 7154 if (webname.length > maxNameLength) 7155 webname = safeTruncateString(webname, maxNameLength - 1) + "..."; 7156 if (listname.length > maxNameLength) 7157 listname = safeTruncateString(listname, maxNameLength - 1) + "..."; 7158 names = "&site-name=" + escapeForSync(webname) + "&list-name=" + escapeForSync(listname); 7159 } 7160 link = link + names + context; 7161 if (link.length > maxLinkLength) 7162 alert(Strings.STS.L_StssyncTooLong_Text); 7163 else { 7164 try { 7165 window.locatio
7165n.href = link; 7166 } 7167 catch (e) { } 7168 } 7169 } 7170} 7171var g_objDiagramLaunch; 7172 7173function GetDiagramLaunchInstalled() { 7174 var strAppName = ''; 7175 7176 if (document.cookie.indexOf("digInstalled") == -1) { 7177 try { 7178 g_objDiagramLaunch = new ActiveXObject("DiagramLaunch.DiagramLauncher"); 7179 if (typeof g_objDiagramLaunch.EnsureDiagramApplication != "undefined") 7180 strAppName = g_objDiagramLaunch.EnsureDiagramApplication(); 7181 document.cookie = "digInstalled=" + escapeProperly(strAppName) + ";"; 7182 } 7183 catch (e) { 7184 g_objDiagramLaunch = null; 7185 document.cookie = "digInstalled=0;"; 7186 } 7187 } 7188 else { 7189 strAppName = GetCookie("digInstalled"); 7190 if (strAppName == '0') 7191 strAppName = ''; 7192 } 7193 return strAppName; 7194} 7195var g_objProjectTaskLaunch; 7196 7197function GetProjectTaskLaunchInstalled() { 7198 if (document.cookie.indexOf("projInstalled") == -1) { 7199 var strAppName = ''; 7200 7201 try { 7202 g_objProjectTaskLaunch = new ActiveXObject("WinProj.Activator"); 7203 if (typeof g_objProjectTaskLaunch.EnsureTaskApplication != 'undefined') 7204 strAppName = g_objProjectTaskLaunch.EnsureTaskApplication(); 7205 document.cookie = "projInstalled=" + escapeProperly(strAppName) + ";"; 7206 } 7207 catch (e) { 7208 document.cookie = "projInstalled=0;"; 7209 g_objProjectTaskLaunch = null; 7210 } 7211 } 7212 else { 7213 strAppName = GetCookie("projInstalled"); 7214 if (strAppName == '0') 7215 strAppName = ''; 7216 } 7217 return strAppName; 7218} 7219var g_expDatabase; 7220 7221function GetDataBaseInstalled() { 7222 var databaseBtnText = ''; 7223 var databaseBtnDesc = ''; 7224 7225 if (document.cookie.indexOf("databaseBtnText") == -1 || document.cookie.indexOf("databaseBtnDesc") == -1) { 7226 try { 7227 g_expDatabase = new ActiveXObject('SharePoint.ExportDatabase'); 7228 if (Boolean(g_expDatabase) && typeof g_expDatabase.IsDBProgramInstalled != "undefined" && g_expDatabase.IsDBProgramInstalled()) { 7229 if (typeof g_expDatabase.MenuTitle != 'undefined') 7230 document.cookie = "databaseBtnText=" + escapeProperly(g_expDatabase.MenuTitle) + ";"; 7231 if (typeof g_expDatabase.MenuDescription != 'undefined') 7232 document.cookie = "databaseBtnDesc=" + escapeProperly(g_expDatabase.MenuDescription) + ";"; 7233 } 7234 else { 7235 document.cookie = "databaseBtnText=" + '0' + ";"; 7236 document.cookie = "databaseBtnDesc=" + '0' + ";"; 7237 g_expDatabase = null; 7238 } 7239 } 7240 catch (e) { 7241 document.cookie = "databaseBtnText=" + '0' + ";"; 7242 document.cookie = "databaseBtnDesc=" + '0' + ";"; 7243 g_expDatabase = null; 7244 } 7245 } 7246 else { 7247 databaseBtnText = GetCookie("databaseBtnText"); 7248 databaseBtnDesc = GetCookie("databaseBtnDesc"); 7249 if (databaseBtnText != '0' && databaseBtnText != '0') { 7250 var dummyExpDatabase = new Object(); 7251 7252 dummyExpDatabase.MenuTitle = databaseBtnText; 7253 dummyExpDatabase.MenuDescription = databaseBtnDesc; 7254 return dummyExpDatabase; 7255 } 7256 else { 7257 g_expDatabase = null; 7258 } 7259 } 7260 return g_expDatabase; 7261} 7262var g_ssImporterObj; 7263var g_fSSImporter; 7264 7265function EnsureSSImportInner() { 7266 if (browseris.ie5up && browseris.win32) { 7267 try { 7268 g_ssImporterObj = new ActiveXObject("SharePoint.SpreadsheetLauncher.2"); 7269 if (g_ssImporterObj) 7270 g_fSSImporter = true; 7271 } 7272 catch (e) { 7273 try { 7274 g_ssImporterObj = new ActiveXObject("SharePoint.SpreadsheetLauncher.1"); 7275 if (g_ssImporterObj) 7276 g_fSSImporter = true; 7277 } 7278 catch (e) { 7279 g_fSSImporter = false; 7280 } 7281 } 7282 } 7283 else if (IsSupportedMacBrowser()) { 7284 g_ssImporterObj = CreateMacPlugin(); 7285 if (g_ssImporterObj) 7286 g_fSSImporter = true; 7287 else 7288 g_fSSImporter = false; 7289 } 7290} 7291function EnsureSSImporter(byPassCookies) { 7292 byPassCookies = typeof byPassCookies == undefined ? false : byPassCookies; 7293 if (document.cookie.indexOf("EnsureSSImporter") == -1 || byPassCookies) { 7294 EnsureSSImportInner(); 7295 document.cookie = "EnsureSSImporter=" + String(g_fSSImporter) + ";"; 7296 } 7297 else { 7298 g_fSSImporter = GetCookie("EnsureSSImporter") == "true" ? true : false; 7299 } 7300 return g_fSSImporter; 7301} 7302function GetThemedImageUrl(FileName) { 7303 return GetThemedImageUrl_Core(FileName, '/_layouts/15/images/'); 7304} 7305function GetThemedLocalizedImageUrl(FileName) { 7306 var localizedImagePath = "/_layouts/15/" + Strings.STS.L_Language_Text + "/images/"; 7307 7308 return GetThemedImageUrl_Core(FileName, localizedImagePath); 7309} 7310function GetThemedImageUrl_Core(FileName, FallbackImagePath) { 7311 var themedImageUrl; 7312 var imageUrl = FallbackImagePath + FileName; 7313 var useClientSideTheming = SPThemeUtils.UseClientSideTheming(); 7314 var pageContextInfo = window['_spPageContextInfo']; 7315 7316 if (pageContextInfo != null && !useClientSideTheming) { 7317 var themedCssFolderUrl = pageContextInfo['themedCssFolderUrl'];
7318 var themedImageFileNames = pageContextInfo['themedImageFileNames']; 7319 var themedImageFileName = null; 7320 7321 if (themedImageFileNames != null) { 7322 themedImageFileName = themedImageFileNames[FileName]; 7323 } 7324 if (themedCssFolderUrl != null && themedCssFolderUrl.length > 0 && themedImageFileName != null) { 7325 imageUrl = themedCssFolderUrl + '/' + themedImageFileName; 7326 } 7327 } 7328 themedImageUrl = GetImageUrlWithRevision(imageUrl); 7329 if (useClientSideTheming) { 7330 (Theming.GetPageManager()).RegisterAllImages(); 7331 themedImageUrl += "#ThemeKey="; 7332 themedImageUrl = (Theming.GetPageManager()).GetThemedImageSrc(themedImageUrl); 7333 } 7334 return themedImageUrl; 7335} 7336function GetImageUrlWithRevision(imageUrl) { 7337 return imageUrl.search(/[?]/) > -1 ? imageUrl : imageUrl + "?" + "rev=43"; 7338} 7339function ShowHideSection(sectionid, imgid) { 7340 var group = document.getElementById(sectionid); 7341 var img = document.getElementById(imgid); 7342 7343 if (group == null) 7344 return; 7345 if (group.style.display != "none") { 7346 group.style.display = "none"; 7347 img.src = GetThemedImageUrl("commentexpand12.png"); 7348 } 7349 else { 7350 group.style.display = ""; 7351 img.src = GetThemedImageUrl("commentcollapse12.png"); 7352 } 7353} 7354function ShowSection(sectionid, imgid) { 7355 var group = document.getElementById(sectionid); 7356 var img = document.getElementById(imgid); 7357 7358 if (group == null) 7359 return; 7360 if (group.style.display == "none") { 7361 group.style.display = ""; 7362 img.src = GetThemedImageUrl("commentcollapse12.png"); 7363 } 7364} 7365function ShowHideInputFormSection(sectionid, bShow) { 7366 var e = document.getElementById(sectionid); 7367 7368 if (e != null) 7369 e.style.display = bShow ? "" : "none"; 7370 for (var i = 1; i < 3; i++) { 7371 e = document.getElementById(sectionid + "_tablerow" + String(i)); 7372 if (e != null) 7373 e.style.display = bShow ? "" : "none"; 7374 } 7375} 7376function ShowHideInputFormControl(id, bHide, bDisableValidators, b
7376Silent) { 7377 var displaySetting = ""; 7378 7379 if (bHide == true) { 7380 displaySetting = "none"; 7381 } 7382 var validators = eval(id + '_validators'); 7383 var i = 0; 7384 7385 if (validators != null) { 7386 for (i = 0; i < validators.length; i++) { 7387 STSValidatorEnable(validators[i], !bDisableValidators, bSilent); 7388 } 7389 } 7390 for (i = 1; i <= 5; i++) { 7391 var rowId = id + "_tablerow" + String(i); 7392 var row = document.getElementById(rowId); 7393 7394 if (row != null && !browseris.mac) { 7395 row.style.display = displaySetting; 7396 } 7397 } 7398} 7399function HideMenuControl(menuControlId) { 7400 if (typeof menuControlId == "undefined" || menuControlId == null) 7401 return; 7402 var menu = document.getElementById(menuControlId); 7403 7404 if (typeof menu == "undefined" || menu == null) 7405 return; 7406 var menuItems = menu.getElementsByTagName("ie:menuitem"); 7407 7408 if (typeof menuItems == "undefined" || menuItems == null) 7409 return; 7410 for (var i = 0; i < menuItems.length; i++) { 7411 var menuItem = menuItems[i]; 7412 var hiddenScript = menuItem.getAttribute("hidden"); 7413 7414 if (typeof hiddenScript == "undefined" || hiddenScript == null || !eval(hiddenScript)) 7415 return; 7416 } 7417 menu.style.display = 'none'; 7418} 7419function SetControlDisabledStatus(obj, disabledStatus) { 7420 try { 7421 if (Boolean(obj.setAttribute)) 7422 obj.setAttribute('disabled', String(disabledStatus)); 7423 if (!disabledStatus && Boolean(obj.removeAttribute)) 7424 obj.removeAttribute('disabled'); 7425 } 7426 catch (e) { } 7427} 7428function SetControlDisabledStatusRecursively(obj, disabledStatus) { 7429 if (obj == null) 7430 return; 7431 SetControlDisabledStatus(obj, disabledStatus); 7432 var objChildren = obj.childNodes; 7433 7434 for (var i = 0; objChildren.length > i; i++) { 7435 SetControlDisabledStatusRecursively(objChildren[i], disabledStatus); 7436 } 7437} 7438function SetChildControlsDisabledStatus(obj, disabledStatus) { 7439 var objChildren = obj.childNodes; 7440 7441 for (var i = 0; i < objChildren.length; i++) { 7442 SetControlDisabledStatusRecursively(objChildren[i], disabledStatus); 7443 } 7444} 7445var g_PNGImageIds; 7446var g_PNGImageSources; 7447 7448function displayPNGImage(id, src, width, height, alt) { 7449 if (g_PNGImageIds == null) 7450 g_PNGImageIds = []; 7451 if (g_PNGImageSources == null) 7452 g_PNGImageSources = []; 7453 var style = null; 7454 7455 document.write("<IMG id='" + id + "' "); 7456 if (Boolean(width) && width > 0) 7457 document.write("width='" + String(width) + "' "); 7458 if (Boolean(height) && height > 0) 7459 document.write("height='" + String(height) + "' "); 7460 document.write("alt='" + alt + "' "); 7461 if (Boolean(style)) 7462 document.write("style='" + style + "' "); 7463 document.write(" src='" + src + "' />"); 7464 g_PNGImageIds.push(id); 7465 g_PNGImageSources.push(src); 7466} 7467function ProcessPNGImages() { 7468 var useFilter = browseris.ie && browseris.ie55up && browseris.verIEFull < 7.0; 7469 7470 if (g_PNGImageIds != null && useFilter) { 7471 for (var i = 0; i < g_PNGImageIds.length; i++) { 7472 var img = document.getElementById(g_PNGImageIds[i]); 7473 7474 if (img != null && g_PNGImageSources[i] != null) { 7475 img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + g_PNGImageSources[i] + "),sizingMethod=scale);"; 7476 img.src = "/_layouts/15/images/blank.gif?rev=43"; 7477 } 7478 } 7479 } 7480} 7481function CtxSetIsWebEditorPreview(num) { 7482 ctx.isWebEditorPreview = num; 7483} 7484function CtxSetCurrentUserId(strUserId) { 7485 ctx.CurrentUserId = strUserId; 7486} 7487function CtxSetIsForceCheckout(fForce) { 7488 ctx.isForceCheckout = fForce; 7489} 7490function LoginAsAnother(url, bUseSource) { 7491 document.cookie = "loginAsDifferentAttemptCount=0"; 7492 if (bUseSource == "1") { 7493 GoToPage(url); 7494 } 7495 else { 7496 var ch = url.indexOf("?") >= 0 ? "&" : "?"; 7497 7498 url += ch + "Source=" + escapeProperly(window.location.href); 7499 Nav.navigate(url); 7500 } 7501} 7502function CLVPFromEvent(evt) { 7503 return DeferCall('CLVPFromEventReal', evt); 7504} 7505function STSNavigateToView(evt, url) { 7506 Nav.navigate(url); 7507} 7508function STSNavigate2(evt, url) { 7509 Nav.navigate(url); 7510} 7511function STSNavigateTop(navigateToUri) { 7512 var fNavigate = true; 7513 7514 if (typeof window.top.SPUpdatePage !== 'undefined') { 7515 fNavigate = window.top.SPUpdatePage(navigateToUri); 7516 } 7517 if (fNavigate) { 7518 window.top.location.href = STSPageUrlValidation(navigateToUri); 7519 } 7520} 7521function GoToPage(url, fOnlyUseExistingSource) { 7522 var ch = url.indexOf("?") >= 0 ? "&" : "?"; 7523 7524 if ((GetUrlKeyValue("Source", true, url)).length == 0) { 7525 var srcUrl = fOnlyUseExistingSource ? GetUrlKeyValue("Source") : GetSource(); 7526 7527 if (srcUrl != null && srcUrl != "") { 7528 if (fOnlyUseExistingSource) 7529 srcUrl = escapeProperly(STSPageUrlValidation(srcUrl)); 7530 if (url.length + srcUrl.length <= 1950) { 7531 url += ch + "Source=" + srcUrl; 7532 } 7533 } 7534 } 7535 Nav.navigate(url); 7536} 7537function TrimSpaces(str) { 7538 var st; 7539 var end; 7540 7541 str = str.toString(); 7542 var len = str.length; 7543 7544 for (st = 0; st < len; st++) { 7545 if (str.charAt(st) != ' ') 7546 break; 7547 } 7548 if (st == len) 7549 return ""; 7550 for (end = len - 1; end > st; end--) { 7551 if (str.charAt(end) != ' ') 7552 break; 7553 } 7554 end++; 7555 return str.substring(st, end); 7556} 7557function TrimWhiteSpaces(str) { 7558 var st; 7559 var end; 7560 7561 str = str.toString(); 7562 var len = str.length; 7563 var ch; 7564 7565 for (st = 0; st < len; st++) { 7566 ch = str.charAt(st); 7567 if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r' && ch != '\f') 7568 break; 7569 } 7570 if (st == len) 7571 return ""; 7572 for (end = len - 1; end > st; end--) { 7573 ch = str.charAt(end); 7574 if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r' && ch != '\f') 7575 break; 7576 } 7577 end++; 7578 return str.substring(st, end); 7579} 7580function ShowMtgNavigatorPane() { 7581 (document.getElementById("MeetingNavigatorPane")).style.display = "block"; 7582} 7583function HideMtgNavigatorPane() { 7584 (document.getElementById("MeetingNavigatorPane")).style.display = "none"; 7585} 7586function HideMtgDesc() { 7587 (document.getElementById("MeetingDescription")).style.display = "none"; 7588} 7589function GetMultipleUploadEnabled() { 7590 try { 7591 if (browseris.ie5up && !browseris.mac && new ActiveXObject('STSUpld.UploadCtl')) 7592 return true; 7593 } 7594 catch (e) { } 7595 return false; 7596} 7597function SetUploadPageTitle() { 7598 if (Number(GetUrlKeyValue("Type")) == 1) { 7599 document.title = Strings.STS.L_NewFormClickOnce1_Text; 7600 if (browseris.ie || browseris.nav6up) { 7601 var titleElt = document.getElementById("onetidTextTitle"); 7602 7603 if (titleElt != null) 7604 titleElt.innerHTML = Strings.STS.L_NewFormClickOnce1_Text; 7605 } 7606 if (typeof SP != "undefined" && SP != null && SP.QoS != null) 7607 SP.QoS.WriteUserEngagement("CreateFolder_Old"); 7608 } 7609} 7610function GetSelectedValue(frmElem) { 7611 if (Boolean(frmElem) && frmElem.selectedIndex > -1) { 7612 var option = frmElem.options[frmElem.selectedIndex]; 7613 7614 return option.value; 7615 } 7616 else 7617 return ""; 7618} 7619function GetSelectedText(frmElem) { 7620 if (Boolean(frmElem) && frmElem.selectedIndex > -1) { 7621 var option = frmElem.options[frmElem.selectedIndex]; 7622 7623 return option.text; 7624 } 7625 else 7626 return ""; 7627} 7628function MtgShowTimeZone() { 7629 if (GetCookie("MtgTimeZone") == "1") {
7630 EnsureScriptParams("core.js", "MtgToggleTimeZone"); 7631 } 7632} 7633function FormatDate(sDate, sTime, eDate, eTime) { 7634 var DateSeparator = Strings.STS.L_DateSeparator_Text; 7635 7636 if (browseris.win32 && sDate == eDate) 7637 DateSeparator = Strings.STS.L_DateSeparatorEx_Text; 7638 if (sDate == eDate) { 7639 document.write(Strings.STS.L_Date_Text + " " + sDate); 7640 if (sTime != eTime) 7641 document.write(" " + Strings.STS.L_TimeLong_Text + " " + sTime + DateSeparator + eTime); 7642 else 7643 document.write(" " + Strings.STS.L_TimeLong_Text + " " + sTime); 7644 } 7645 else { 7646 document.write(Strings.STS.L_TimeLong_Text + " " + sDate + " (" + sTime + ")" + DateSeparator + eDate + " (" + eTime + ")"); 7647 } 7648} 7649function GetAlertText(isDetached) { 7650 var howOrphaned = isDetached & 0x10 - 1; 7651 var howDetached = isDetached - howOrphaned; 7652 7653 if (Boolean(howOrphaned)) { 7654 switch (howOrphaned) { 7655 case 1: 7656 return typeof g_meetingCount != "undefined" && g_meetingCount == 1 ? Strings.STS.L_DETACHEDSINGLEEXCEPT_Text : Strings.STS.L_DETACHEDCANCELLEDEXCEPT_Text; 7657 case 2: 7658 return Strings.STS.L_DETACHEDCANCELLEDSERIES_Text; 7659 case 3: 7660 return Strings.STS.L_DETACHEDCANCELLEDEXCEPT_Text; 7661 case 4: 7662 return typeof g_meetingCount != "undefined" && g_meetingCount == 1 ? Strings.STS.L_DETACHEDSINGLEEXCEPT_Text : Strings.STS.L_DETACHEDUNLINKEDSINGLE_Text; 7663 case 5: 7664 return Strings.STS.L_DETACHEDUNLINKEDSERIES_Text; 7665 case 6: 7666 return Strings.STS.L_DETACHEDSERIESNOWSINGLE_Text; 7667 case 7: 7668 return Strings.STS.L_DETACHEDSINGLENOWSERIES_Text; 7669 case 8: 7670 return Strings.STS.L_DETACHEDPASTEXCPMODIFIED_Text; 7671 } 7672 } 7673 else if (Boolean(howDetached)) { 7674 switch (howDetached) { 7675 case 16: 7676 return Strings.STS.L_DETACHEDNONGREGORIANCAL_Text; 7677 } 7678 } 7679 return null; 7680} 7681function retrieveCurrentThemeLink() { 7682 var cssLink; 7683 var links = document.getElementsByTagName("link"); 7684 7685 for (var i = 0; i < links.length; i++) { 7686 var link = links[i]; 7687 7688 if (link.type == "text/css" && link.id == "onetidThemeCSS") 7689 cssLink = link; 7690 } 7691 if (Boolean(cssLink)) { 7692 var re = /(\.\.\/)+/; 7693 var relativeURL = cssLink.href; 7694 var newURL = relativeURL.replace(re, "/"); 7695 7696 return newURL; 7697 } 7698 return null; 7699} 7700var JSRequest; 7701var ExpGroupWPListName; 7702var ExpGroupCookiePrefix; 7703var ExpGroupCookieDelimiter; 7704var ExpGroupMaxWP; 7705var ExpGroupMaxCookieLength; 7706var g_ExpGroupCAMLQueue; 7707var g_ExpGroupXSLTQueue; 7708var g_ExpGroupInProgress; 7709var g_ExpInitializing; 7710var g_ExpGroupTable; 7711var g_ExpGroupNeedsState; 7712var g_ExpGroupParseStage; 7713 7714function ExpCollGroup(groupName, imgName, evt, noAjax) { 7715 if (evt != null) 7716 g_ExpGroupNeedsState = true; 7717 if (document.getElementById("titl" + groupName) == null) 7718 return; 7719 var viewTable = (document.getElementById("titl" + groupName)).parentNode; 7720 7721 if (viewTable == null) 7722 return; 7723 var ctxNum = groupName.substr(0, groupName.indexOf("-")); 7724 var ctxCur = window["ctx" + ctxNum]; 7725 7726 if (!Boolean(ctxCur)) 7727 return; 7728 if (!ctxCur.StateInitDone) 7729 ctxInitItemState(ctxCur); 7730 if (ctxCur.SelectAllCbx == null) 7731 ctxCur.SelectAllCbx = getSelectAllCbxFromTable(viewTable); 7732 var tbodyTags = viewTable.getElementsByTagName("TBODY"); 7733 var numElts = tbodyTags.length; 7734 var len = groupName.length; 7735 var img = document.getElementById(imgName); 7736 7737 if (img == null) 7738 return; 7739 var srcPath = img.src; 7740 var imgSrc = img.getAttribute('src'); 7741 var index = srcPath.lastIndexOf("/"); 7742 var commonClusterSrcPath = GetThemedImageUrl("spcommon.png"); 7743 var collapseImgClass = fRightToLeft ? "ms-commentcollapsertl-icon" : "ms-commentcollapse-icon"; 7744 var collapseSpanClass = fRightToLeft ? "ms-commentcollapsertl-iconouter" : "ms-commentcollapse-iconouter"; 7745 var expandImgClass = fRightToLeft ? "ms-commentexpandrtl-icon" : "ms-commentexpand-icon"; 7746 var expandSpanClass = fRightToLeft ? "ms-commentexpandrtl-iconouter" : "ms-commentexpand-iconouter"; 7747 var oldExpandSrcPath = '/_layouts/15/images/plus.gif'; 7748 var oldCollapseSrcPath = '/_layouts/15/images/minus.gif'; 7749 var fOpen = false; 7750 var displayStr; 7751 var bUpdateImgAltText = true; 7752 7753 if (imgSrc == oldExpandSrcPath || imgSrc == commonClusterSrcPath && img.className == expandImgClass || g_ExpInitializing) { 7754 fOpen = true; 7755 displayStr = ""; 7756 img.alt = Strings.STS.L_SPCollapse; 7757 if (imgSrc == commonClusterSrcPath) { 7758 img.className = collapseImgClass; 7759 img.parentNode.className = collapseSpanClass; 7760 } 7761 else 7762 img.src = oldCollapseSrcPath; 7763 } 7764 else { 7765 fOpen = false; 7766 displayStr = "none"; 7767 if (bUpdateImgAltText) 7768 img.alt = Strings.STS.L_SPExpand; 7769 if (imgSrc == commonClusterSrcPath) { 7770 img.className = expandImgClass; 7771 img.parentNode.className = expandSpanClass; 7772 } 7773 else 7774 img.src = oldExpandSrcPath; 7775 } 7776 var j = 0; 7777 7778 for (var i = 0; i < numElts; i++) { 7779 var childObj = tbodyTags[i]; 7780 7781 if (childObj.id != null && childObj.id.length > len + 4 && groupName == (childObj.id.slice(4)).substr(0, len)) { 7782 if (fOpen) { 7783 index = childObj.id.indexOf("_", len + 4); 7784 if (index != -1) { 7785 index = childObj.id.indexOf("_", index + 1); 7786 if (index != -1) 7787 continue; 7788 } 7789 } 7790 var previousDisplay = childObj.style.display; 7791 7792 childObj.style.display = displayStr; 7793 var itemCount = 0; 7794 7795 if (Boolean(childObj.getAttribute("selectableRows"))) 7796 itemCount = Number(childObj.getAttribute("selectableRows")); 7797 if (typeof FV4UI != "undefined" && FV4UI() && Boolean(itemCount)) { 7798 if (!fOpen) { 7799 if (previousDisplay != "none") 7800 ctxCur.TotalListItems -= itemCount;
7801 EnsureScriptParams("core.js", "DeselectCollapsedGroup", ctxCur, childObj); 7802 EnsureScriptParams("core.js", "UpdateSelectAllCbx", ctxCur, true); 7803 } 7804 else { 7805 ctxCur.TotalListItems += itemCount; 7806 EnsureScriptParams("core.js", "UpdateSelectAllCbx", ctxCur, false); 7807 } 7808 } 7809 if (fOpen && childObj.id.substr(0, 4) == "titl") { 7810 var imgObj = document.getElementById("img_" + childObj.id.slice(4)); 7811 var imgObjSrc = imgObj.getAttribute('src'); 7812 7813 imgObj.alt = Strings.STS.L_SPExpand; 7814 if (imgObjSrc == commonClusterSrcPath) { 7815 imgObj.className = expandImgClass; 7816 imgObj.parentNode.className = expandSpanClass; 7817 } 7818 else { 7819 imgObj.src = oldExpandSrcPath; 7820 } 7821 } 7822 var groupID = "tbod" + groupName; 7823 var child; 7824 7825 if (childObj.id.substr(0, groupID.length) == groupID) { 7826 if (noAjax) { 7827 for (j = 0; j < childObj.childNodes.length; j++) { 7828 child = childObj.childNodes[j]; 7829 child.style.display = displayStr; 7830 } 7831 } 7832 if (childObj.childNodes.length == 0) { 7833 var nextTBody = childObj.nextSibling; 7834 7835 while (nextTBody != null) { 7836 if (nextTBody.tagName == "TBODY" && nextTBody.id == "") { 7837 for (j = 0; j < nextTBody.childNodes.length; j++) { 7838 child = nextTBody.childNodes[j]; 7839 child.style.display = displayStr; 7840 if (typeof FV4UI != "undefined" && FV4UI()) { 7841 HandleSingleGroupByRow(ctxCur, child, fOpen); 7842 UpdateSelectAllCbx(ctxCur, true); 7843 } 7844 } 7845 break; 7846 } 7847 else 7848 nextTBody = nextTBody.nextSibling; 7849 } 7850 } 7851 } 7852 } 7853 } 7854 if (FV4UI()) 7855 EnsureScriptParams("core.js", "UpdateCtxLastSelectableRow", ctxCur, viewTable); 7856 if (!noAjax && !g_ExpGroupParseStage) { 7857 if (g_ExpGroupNeedsState && ExpGroupFetchWebPartID(groupName) != null && !Boolean(ctxCur.noGroupCollapse)) { 7858 if (fOpen) { 7859 AddGroupToCookie(groupName); 7860 } 7861 else { 7862 RemoveGroupFromCookie(groupName); 7863 } 7864 } 7865 if (fOpen) { 7866 var tbody = document.getElementById("tbod" + groupName + "_"); 7867 7868 if (tbody != null) { 7869 var isLoaded = tbody.getAttribute("isLoaded"); 7870 7871 if (isLoaded == "false") { 7872 ExpGroupFetchData(groupName, evt); 7873 } 7874 } 7875 } 7876 } 7877} 7878function ExpGroupFetchData(groupName, evt) { 7879 var loadString = "<tr><td colspan=\"100\" class=\"ms-gbload\">" + Strings.STS.L_Loading_Text + "</td></tr>"; 7880 7881 ExpGroupRenderData(loadString, groupName, "false"); 7882 if (!g_ExpGroupInProgress) { 7883 var groupString = ExpGroupFetchGroupString(groupName); 7884 7885 if (groupString == null) { 7886 loadString = "<tr><td></td><td class=\"ms-gbload\">" + Strings.STS.L_Loading_Error_Text + "</td></tr>"; 7887 ExpGroupRenderData(loadString, groupName, "false"); 7888 if (Boolean(evt) && g_ExpGroupXSLTQueue.length > 0) { 7889 ExpGroupFetchData(g_ExpGroupXSLTQueue.shift(), evt); 7890 } 7891 else if (!Boolean(evt) && g_ExpGroupCAMLQueue.length > 0) { 7892 ExpGroupFetchData(g_ExpGroupCAMLQueue.shift(), evt); 7893 } 7894 return; 7895 } 7896 if (typeof InitAllClvps == "undefined" && evt != null) 7897 g_ExpInitializing = true; 7898 else { 7899 g_ExpInitializing = false; 7900 g_ExpGroupInProgress = true; 7901 } 7902 ExpGroupCallServer(groupString, groupName, evt); 7903 if (g_ExpGroupCAMLQueue.length > 0 && evt == null) { 7904 ExpGroupFetchData(g_ExpGroupCAMLQueue.shift()); 7905 } 7906 } 7907 else { 7908 if (Boolean(evt)) 7909 g_ExpGroupXSLTQueue.push(groupName); 7910 else 7911 g_ExpGroupCAMLQueue.push(groupName); 7912 } 7913} 7914function ExpGroupCallServer(groupString, groupName, evt) { 7915 if (evt != null) { 7916 var obj = evt; 7917 7918 if (evt == "PageLoad") { 7919 obj = new Object(); 7920 obj.fakeEvent = true; 7921 }
7922 EnsureScriptParams("inplview", "inplview.ExpGroup", obj, groupName); 7923 } 7924 else { 7925 var viewCounter = groupName.substring(0, groupName.indexOf("-")); 7926 var myCtx = window["ctx" + viewCounter]; 7927 var webPartID = ExpGroupFetchWebPartID(groupName); 7928 7929 if (webPartID != null) { 7930 var functionName = "ExpGroupCallServer" + webPartID; 7931 7932 if (myCtx != null && myCtx.clvp != null) { 7933 var myClvp = myCtx.clvp; 7934 var strFilter = myClvp.FilterString(); 7935 7936 if (strFilter != null) { 7937 groupString += "|" + strFilter; 7938 } 7939 } 7940 var functionCall = functionName + "('" + groupString + "','" + groupName + "')"; 7941 7942 eval(functionCall); 7943 } 7944 } 7945} 7946function DoPagingCallback(webPartID, pagingParam) { 7947 if (webPartID != null) { 7948 var functionName = "DoPagingCallback" + webPartID; 7949 var functionCall = functionName + "('" + pagingParam + "')"; 7950 7951 eval(functionCall); 7952 } 7953} 7954function ExpGroupReceiveData(htmlToRender, groupName) { 7955 var ctxId = "ctx" + groupName.substring(0, groupName.indexOf("-")); 7956 var indexBeginCTXName = htmlToRender.indexOf("CTXName=\""); 7957 7958 if (indexBeginCTXName != -1) { 7959 if (ctxId != "ctx1") { 7960 htmlToRender = htmlToRender.replace(/ CTXName=\"ctx1\" /g, " CTXName=\"" + ctxId + "\" "); 7961 } 7962 } 7963 var needOuterWrap = false; 7964 7965 if (htmlToRender.length < 4) { 7966 needOuterWrap = true; 7967 } 7968 else if (htmlToRender.substring(0, 3) != "<tr") { 7969 needOuterWrap = true; 7970 } 7971 if (needOuterWrap) { 7972 htmlToRender = "<TR><TD>" + htmlToRender + "</TD></TR>"; 7973 } 7974 ExpGroupRenderData(htmlToRender, groupName, "true"); 7975 ProcessImn(); 7976 g_ExpGroupInProgress = false; 7977 if (g_ExpGroupCAMLQueue.length > 0) { 7978 ExpGroupFetchData(g_ExpGroupCAMLQueue.shift()); 7979 } 7980} 7981function ExpGroupRenderData(htmlToRender, groupName, isLoaded) { 7982 var tbody = document.getElementById("tbod" + groupName + "_"); 7983 var wrapDiv = document.createElement("DIV"); 7984 var rg = groupName.split("-"); 7985 7986 wrapDiv.innerHTML = "<TABLE><TBODY id=\"tbod" + groupName + "_\" isLoaded=\"" + isLoaded + "\">" + htmlToRender + "</TBODY></TABLE>"; 7987 tbody.parentNode.replaceChild(wrapDiv.firstChild.firstChild, tbody); 7988} 7989var titlTbody; 7990 7991function ExpGroupFetchGroupString(groupName) { 7992 titlTbody = document.getElementById("titl" + groupName); 7993 if (titlTbody == null) { 7994 return null; 7995 } 7996 else { 7997 var groupString = titlTbody.getAttribute("groupString"); 7998 7999 return groupString; 8000 } 8001} 8002function ExpGroupFetchWebPartID(groupName) { 8003 var viewCounter = groupName.substring(0, groupName.indexOf("-")); 8004 var lookupEntry = document.getElementById("GroupByWebPartID" + viewCounter); 8005 8006 if (lookupEntry == null) 8007 return null; 8008 return lookupEntry.getAttribute("webPartID"); 8009} 8010function RenderActiveX(str) { 8011 document.write(str); 8012} 8013function RenderActiveX2(s, id) { 8014 if (id == null) 8015 return; 8016 var oldObject = document.getElementById(id); 8017 8018 if (oldObject != null) { 8019 var objParent = oldObject.parentNode; 8020 var divHost = document.createElement('div'); 8021 8022 divHost.innerHTML = s; 8023 var newObject = divHost.childNodes[0]; 8024 8025 if (newObject != null) 8026 objParent.replaceChild(newObject, oldObject); 8027 } 8028} 8029function OnItem(elm) { 8030 DeferCall('OnItemDeferCall', elm); 8031} 8032function OnChildItem(elm) { 8033 var i; 8034 8035 for (i = 0; i < elm.childNodes.length; i++) { 8036 var child = elm.childNodes[i]; 8037 8038 if (child.nodeType == 1 && child.tagName == "TABLE" && Boolean(child.getAttribute("NameOrTitle"))) 8039 break; 8040 if (child.nodeType == 1 && child.tagName == "DIV" && child.style.display != "none" && child.style.visibility != "hidden") { 8041 OnItem(child); 8042 break; 8043 } 8044 } 8045} 8046function OnLink(elm) { 8047 DeferCall('OnLinkDeferCall', elm); 8048} 8049function MMU_PopMenuIfShowing(menuElement) { 8050 DeferCall('MMU_PopMenuIfShowingDeferCall', menuElement); 8051}
8052function OnMouseOverFilter(elm) { 8053 DeferCall('OnMouseOverFilterDeferCall', elm); 8054} 8055function OnChildColumn(elm) { 8056 var i; 8057 8058 for (i = 0; i < elm.childNodes.length; i++) { 8059 var child = elm.childNodes[i]; 8060 8061 if (child.nodeType == 1 && child.tagName == "DIV" && child.getAttribute("CtxNum") != null) { 8062 OnMouseOverFilter(child); 8063 break; 8064 } 8065 } 8066} 8067function MMU_EcbTableMouseOverOut(ecbTable, fMouseOver) { 8068 DeferCall('MMU_EcbTableMouseOverOutDeferCall', ecbTable, fMouseOver); 8069} 8070function OnMouseOverAdHocFilter(elm, fieldStr) { 8071 DeferCall('OnMouseOverAdHocFilterDeferCall', elm, fieldStr); 8072} 8073function MMU_EcbLinkOnFocusBlur(menu, ecbLink, fOnFocus) { 8074 DeferCall('MMU_EcbLinkOnFocusBlurDeferCall', menu, ecbLink, fOnFocus); 8075} 8076function GetElementByClassName(elem, classname) { 8077 if (Boolean(elem.className) && typeof elem.className.indexOf != 'undefined') { 8078 if (elem.className.indexOf(classname) > -1) 8079 return elem; 8080 } 8081 var temp; 8082 8083 for (var i = 0; i < elem.childNodes.length; i++) { 8084 temp = GetElementByClassName(elem.childNodes[i], classname); 8085 if (temp != null) 8086 return temp; 8087 } 8088 return null; 8089} 8090function AddWhiteBG() { 8091 if (searcharea.className.indexOf(" " + whitebgclass) == -1) { 8092 var cn = searcharea.className.trim() + " " + whitebgclass; 8093 8094 cn = cn.trim(); 8095 searcharea.className = cn; 8096 } 8097} 8098function RemoveWhiteBG() { 8099 if (locked) 8100 return; 8101 searcharea.className = searcharea.className.replace(RegExp(" " + whitebgclass), ""); 8102} 8103var locked; 8104 8105function LockBG() { 8106 locked = !locked; 8107 if (locked) 8108 AddWhiteBG(); 8109 else 8110 RemoveWhiteBG(); 8111} 8112var searcharea; 8113var searchbox; 8114var searchimage; 8115var whitebgclass; 8116 8117function InitSearchBoxStyleEvents(sarea, sbox, simage_class, wbgclass) { 8118 searcharea = document.getElementById(sarea); 8119 searchbox = document.getElementById(sbox); 8120 searchimage = GetElementByClassName(searcharea, simage_class); 8121 whitebgclass = wbgclass; 8122 if (searchbox == null || searchimage == null) 8123 return; 8124 searchbox.onfocus = LockBG; 8125 searchbox.onmouseover = AddWhiteBG; 8126 searchbox.onblur = LockBG; 8127 searchbox.onmouseout = RemoveWhiteBG; 8128 searchimage.onmouseover = AddWhiteBG; 8129 searchimage.onmouseout = RemoveWhiteBG; 8130} 8131function IsFullNameDefined(fullName) { 8132 if (!Boolean(fullName)) { 8133 return false; 8134 } 8135 var names = fullName.split("."); 8136 var len = names.length; 8137 var obj = window; 8138 8139 for (var i = 0; i < len; i++) { 8140 obj = obj[names[i]]; 8141 if (typeof obj == "undefined") { 8142 return false; 8143 } 8144 } 8145 return true; 8146} 8147function TypeofFullName(fullName) { 8148 if (!Boolean(fullName)) { 8149 return "undefined"; 8150 } 8151 var names = fullName.split("."); 8152 var len = names.length; 8153 var obj = window; 8154 8155 for (var i = 0; i < len; i++) { 8156 obj = obj[names[i]]; 8157 if (typeof obj == "undefined") { 8158 return "undefined"; 8159 } 8160 } 8161 return typeof obj; 8162} 8163var _v_dictSod; 8164var _v_dictCss; 8165var Sods; 8166var _v_qsod; 8167var _v_sodctx; 8168 8169function Sod(url, key) { 8170 this.url = url; 8171 this.key = key; 8172 this.loaded = false; 8173 this.depkeys = null; 8174 this.state = 1; 8175 this.qfn = null; 8176} 8177function SodCallbackInfo(fn, errorFn, expectedTypeName) { 8178 this.success = fn; 8179 this.error = errorFn; 8180 this.expectedType = expectedTypeName; 8181} 8182function AreAllSodsLoaded() { 8183 var sod; 8184 8185 if (g_PendingLoadSodQueue != null) { 8186 for (var i = 0; i < g_PendingLoadSodQueue.length; i++) { 8187 var sodQueueEntry = g_PendingLoadSodQueue[i]; 8188 8189 sod = sodQueueEntry.sod; 8190 if (Boolean(sod) && sod.state != Sods.loaded) { 8191 return false; 8192 } 8193 } 8194 } 8195 if (g_spPreFetchKeys != null) { 8196 for (var idx = 0; idx < g_spPreFetchKeys.length; idx++) { 8197 var key = g_spPreFetchKeys[idx]; 8198 8199 sod = _v_dictSod[key]; 8200 if (Boolean(sod) && sod.state != Sods.loaded) { 8201 return false; 8202 } 8203 } 8204 } 8205 for (var scriptKey in _v_dictSod) { 8206 sod = _v_dictSod[scriptKey]; 8207 if (Boolean(sod) && (sod.state == Sods.loading || sod.state == Sods.pending || sod.state == Sods.error)) 8208 return false; 8209 } 8210 return true; 8211} 8212function UrlToSod(url) { 8213 for (var i in _v_dictSod) { 8214 var sod = _v_dictSod[i]; 8215 8216 if (sod.url == url) { 8217 return sod; 8218 } 8219 } 8220 return null; 8221} 8222function ResetSodState() { 8223 for (var i in _v_dictSod) { 8224 var sod = _v_dictSod[i]; 8225 8226 if (sod.state == Sods.loaded && sod.url != null) { 8227 sod.reset = true; 8228 } 8229 sod.qfn = null; 8230 } 8231} 8232function RegisterOnDemandCss(key, url) { 8233 _v_dictCss[key] = new Sod(url, key); 8234} 8235function LoadCssOnDemand(key, callback) { 8236 var sod = _v_dictCss[key]; 8237 8238 if (sod != null) 8239 _ensureCssLink(sod.url, callback); 8240 else if (callback != null) 8241 callback(); 8242} 8243function RegisterSod(key, url) { 8244 key = NormalizeSodKey(key); 8245 var sod = _v_dictSod[key]; 8246 8247 if (sod != null) { 8248 if ("undefined" != typeof sod.url && sod.url == null && url != null) { 8249 sod.url = url; 8250 if (AjaxNavigate$isMDSURL(window.location.href)) { 8251 sod.reset = true; 8252 } 8253 } 8254 return; 8255 } 8256 sod = new Sod(url, key); 8257 _v_dictSod[key] = sod; 8258} 8259function NormalizeListViewSodKey(inputJS) {
8260 var isLoadingListViewJS = typeof _spPageContextInfo !== "undefined" && typeof _spPageContextInfo.isSLV !== "undefined" && Boolean(_spPageContextInfo) && Boolean(_spPageContextInfo.isSLV); 8261 8262 if (isLoadingListViewJS) { 8263 var script = inputJS.toLowerCase(); 8264 var isInplview = script == "inplview" || script == "inplview.js"; 8265 var isClienttemplates = script == "clienttemplates" || script == "clienttemplates.js"; 8266 var isClientrenderer = script == "clientrenderer" || script == "clientrenderer.js"; 8267 8268 if (isInplview || isClienttemplates || isClientrenderer) { 8269 return "listview.js"; 8270 } 8271 } 8272 return inputJS; 8273} 8274function ResetListViewSods(bReset) { 8275 ResetSod("inplview", bReset); 8276 ResetSod("inplview.js", bReset); 8277 ResetSod("clienttemplates", bReset); 8278 ResetSod("clienttemplates.js", bReset); 8279 ResetSod("clientrenderer", bReset); 8280 ResetSod("clientrenderer.js", bReset); 8281} 8282function ResetSod(sodkey, bReset) { 8283 var sod = _v_dictSod[sodkey]; 8284 8285 if (Boolean(sod)) { 8286 sod.reset = bReset; 8287 } 8288} 8289function RegisterSodDep(key, dep) { 8290 key = NormalizeSodKey(key); 8291 dep = NormalizeSodKey(dep); 8292 var sod = _v_dictSod[key]; 8293 8294 if (sod == null) 8295 return; 8296 if (sod.depkeys == null) 8297 sod.depkeys = []; 8298 if (-1 == ArrayIndexOf(sod.depkeys, dep)) { 8299 sod.depkeys.push(dep); 8300 } 8301} 8302function LoadSodByKey(key, fn, bSync, errorFn, expectedTypeName) { 8303 key = NormalizeSodKey(key); 8304 key = NormalizeListViewSodKey(key); 8305 var sod = _v_dictSod[key]; 8306 8307 if (fn != null && sod != null) { 8308 if (sod.qfn == null) 8309 sod.qfn = []; 8310 sod.qfn.push(new SodCallbackInfo(fn, errorFn, expectedTypeName)); 8311 } 8312 return LoadSod(sod, bSync); 8313} 8314function LoadSodByKeySync(key) { 8315 return LoadSodByKey(key, null, true); 8316} 8317function LoadMultipleSods(keys, fn, bSync) { 8318 var total = keys.length; 8319 var keysDict = new Object; 8320 8321 for (var j = 0; j < total; j++) { 8322 keysDict[keys[j]] = false; 8323 } 8324 var count = 0; 8325 var callback = function() { 8326 count++; 8327 if (count == total) { 8328 fn(); 8329 } 8330 }; 8331 8332 for (var i = 0; i < total; i++) { 8333 var sodCallback = (function(key) { 8334 return function() { 8335 if (!Boolean(keysDict[key])) { 8336 keysDict[key] = true; 8337 callback(); 8338 } 8339 }; 8340 })(keys[i]); 8341 var result = LoadSodByKey(keys[i], sodCallback, bSync); 8342
8343 if (result == Sods.loaded && !Boolean(keysDict[keys[i]])) { 8344 keysDict[keys[i]] = true; 8345 callback(); 8346 } 8347 } 8348} 8349var g_PendingLoadSodQueue; 8350 8351function IsSodLoaded(sod) { 8352 return sod.state == Sods.loaded && !Boolean(sod.reset); 8353} 8354function LoadSod(sod, bSync) { 8355 if (!bSync && typeof g_mdsReady != "undefined" && Boolean(g_mdsReady) && typeof g_MDSPageLoaded != "undefined" && !Boolean(g_MDSPageLoaded)) { 8356 if (g_PendingLoadSodQueue == null) 8357 g_PendingLoadSodQueue = []; 8358 var sodQueueEntry = { 8359 "sod": sod 8360 }; 8361 8362 g_PendingLoadSodQueue.push(sodQueueEntry); 8363 return Sods.pending; 8364 } 8365 else { 8366 return LoadSodInternal(sod, bSync); 8367 } 8368} 8369function LoadPendingSods() { 8370 if (g_PendingLoadSodQueue != null) { 8371 var len = g_PendingLoadSodQueue.length; 8372 8373 for (var i = 0; i < len; i++) { 8374 var sodQueueEntry = g_PendingLoadSodQueue[i]; 8375 8376 LoadSodInternal(sodQueueEntry.sod, false); 8377 } 8378 g_PendingLoadSodQueue = null; 8379 } 8380} 8381function LoadSodInternal(sod, bSync) { 8382 if (sod == null) 8383 return Sods.missing; 8384 if (IsSodLoaded(sod) || !bSync && sod.state == Sods.loading) { 8385 return sod.state; 8386 } 8387 if (sod.state == Sods.error) { 8388 NotifyOnLoad(sod); 8389 return sod.state; 8390 } 8391 sod.state = Sods.pending; 8392 var mll = []; 8393 var depkeys = sod.depkeys; 8394 8395 if (depkeys != null) { 8396 var i; 8397 var fDepLoaded = true; 8398 var am = depkeys.length; 8399 var sodDep; 8400 8401 for (i = 0; i < am; i++) { 8402 var dep = NormalizeListViewSodKey(depkeys[i]); 8403 8404 sodDep = _v_dictSod[dep]; 8405 if (sodDep == null) 8406 continue; 8407 if (!IsSodLoaded(sodDep)) { 8408 fDepLoaded = false; 8409 mll.push(sodDep); 8410 } 8411 } 8412 if (!fDepLoaded) { 8413 _v_qsod.push(sod); 8414 am = mll.length; 8415 for (i = 0; i < am; i++) { 8416 sodDep = mll[i]; 8417 if (!IsSodLoaded(sodDep) && (bSync || sodDep.state != Sods.loading && sodDep.state != Sods.error)) { 8418 LoadSodInternal(sodDep, bSync); 8419 } 8420 } 8421 if (!bSync) { 8422 return sod.state; 8423 } 8424 } 8425 } 8426 if (sod.reset) { 8427 if (Boolean(sod.url) && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx") && "undefined" != typeof DeltaManager$_ScriptLoader$_loadTargetInternal) { 8428 DeltaManager$_ScriptLoader$_loadTargetInternal(sod.url, sod, sod.url != null); 8429 } 8430 } 8431 if (IsSodLoaded(sod) || !bSync && sod.state == Sods.loading) { 8432 return sod.state; 8433 } 8434 if (bSync) { 8435 var scriptToRun = ""; 8436 var req; 8437 8438 if (browseris.ie9down) { 8439 var xdr = new XDomainRequest(); 8440 var loadedXDR = false; 8441 8442 xdr.onerror = function() { 8443 loadedXDR = true; 8444 }; 8445 xdr.ontimeout = function() { 8446 loadedXDR = true; 8447 }; 8448 xdr.onload = function() { 8449 loadedXDR = true; 8450 }; 8451 xdr.open('GET', sod.url); 8452 xdr.send(); 8453 while (!loadedXDR) { 8454 req = new XMLHttpRequest; 8455 req.open('GET', "/_layouts/15/blank.htm", false); 8456 req.setRequestHeader("If-Modified-Since", (new Date()).toUTCString()); 8457 req.send(null); 8458 } 8459 scriptToRun = xdr.responseText; 8460 } 8461 else { 8462 req = new XMLHttpRequest; 8463 req.open('GET', sod.url, false); 8464 req.send(null); 8465 scriptToRun = req.responseText; 8466 } 8467 var ds = document.createElement('script'); 8468 8469 (document.getElementsByTagName('head'))[0].appendChild(ds); 8470 var wasLoading = sod.state == Sods.loading; 8471 8472 ds.text = scriptToRun; 8473 if (!browseris.ie || browseris.ie9standardUp) { 8474 ds.src = sod.url; 8475 } 8476 if (wasLoading && typeof sod.s != 'undefined') { 8477 var oldScriptElement = sod.s; 8478 8479 sod.s = undefined; 8480 oldScriptElement.parentNode.removeChild(oldScriptElement); 8481 oldScriptElement.onreadystatechange = null; 8482 oldScriptElement.onload = null; 8483 } 8484 sod.state = Sods.loaded; 8485 if (wasLoading) { 8486 NotifyOnLoad(sod); 8487 } 8488 return sod.state; 8489 } 8490 else { 8491 var fStaticLoad = false; 8492 var head = (document.getElementsByTagName('head'))[0]; 8493 var scriptElements = head.getElementsByTagName('script'); 8494 var nScriptElements = scriptElements.length; 8495 var dummyScript = document.createElement('script'); 8496 8497 dummyScript.src = sod.url; 8498 var sourceUrl = dummyScript.src; 8499 8500 dummyScript = null; 8501 for (var iElement = 0; iElement < nScriptElements; iElement++) { 8502 var source = scriptElements[iElement].src; 8503 8504 if (null != source && source.length > 0) { 8505 if (sourceUrl == source) { 8506 fStaticLoad = true; 8507 break; 8508 } 8509 } 8510 } 8511 if (fStaticLoad) { 8512 if (sod.reset) { 8513 if (Boolean(sod.url) && (window.location.pathname.toLowerCase()).endsWith("/_layouts/15/start.aspx") && "undefined" != typeof DeltaManager$_ScriptLoader$_loadTargetInternal) { 8514 DeltaManager$_ScriptLoader$_loadTargetInternal(sod.url, sod, sod.url != null); 8515 } 8516 } 8517 else { 8518 if (sod.state != Sods.error) 8519 sod.state = Sods.loaded; 8520 NotifyOnLoad(sod); 8521 } 8522 } 8523 else { 8524 sod.state = Sods.loading; 8525 var fn = GetOnLoad(sod); 8526 var onErrorFn = GetOnLoad(sod, true); 8527 var s = Define.loadScript(sod.url, fn, onErrorFn); 8528 8529 sod.s = s; 8530 } 8531 return sod.state; 8532 } 8533} 8534function GetOnLoad(sod, asErrorHandler) { 8535 var fn = function() { 8536 if (asErrorHandler) 8537 sod.state = Sods.error; 8538 NotifyOnLoad(sod); 8539 }; 8540 8541 return fn; 8542} 8543function NotifyOnLoad(sod) { 8544 function CallSodCallbacks() { 8545 if (sod.qfn != null) { 8546 var sodError = sod.state == Sods.error; 8547 8548 while (sod.qfn.length > 0) { 8549 var callbackInfo = sod.qfn.shift(); 8550 var callError = Boolean(callbackInfo.error) && (sodError || Boolean(callbackInfo.expectedType) && !IsFullNameDefined(callbackInfo.expectedType)); 8551 8552 if (callError) { 8553 callbackInfo.error(); 8554 } 8555 else if (!sodError) { 8556 callbackInfo.success(); 8557 } 8558 } 8559 } 8560 } 8561 var fn2 = function() { 8562 var sodError = sod.state == Sods.error; 8563 8564 sod.reset = false; 8565 if (sod.key == "listview.js") { 8566 ResetListViewSods(false); 8567 } 8568 if (!sodError) { 8569 sod.state = Sods.loaded; 8570 while (_v_qsod.length > 0) { 8571 var sodParent = _v_qsod.pop(); 8572 8573 if (sodParent.state == Sods.pending) { 8574 LoadSod(sodParent); 8575 break; 8576 } 8577 } 8578 } 8579 CallSodCallbacks(); 8580 if (_v_qsod.length == 0 && AreAllSodsLoaded() && !sodError) { 8581 var registerFunc = function() { 8582 var rWsa = GetRUMWSA(); 8583 8584 if (IsNullOrUndefined(rWsa)) 8585 return; 8586 var isMDS = typeof g_mdsReady != "undefined" && Boolean(g_mdsReady); 8587 8588 if (isMDS && typeof g_MDSPageLoaded != "undefined" && Boolean(g_MDSPageLoaded)) {
8589 if (!rWsa.get_IsMDSBlockCollected()) { 8590 var adm = asyncDeltaManager; 8591 8592 if (!IsNullOrUndefined(adm)) { 8593 rWsa.AddMDSBlock(adm._admtt); 8594 } 8595 } 8596 rWsa.AddTTLB(); 8597 } 8598 }; 8599 8600 if (!(typeof g_mdsReady != "undefined" && Boolean(g_mdsReady))) { 8601 var rumSod = _v_dictSod['sp.core.js']; 8602 8603 if (IsNullOrUndefined(rumSod)) { 8604 return; 8605 } 8606 } 8607 EnsureScriptFunc('SP.core.js', "SP.RUMLogger", registerFunc); 8608 } 8609 }; 8610 8611 if (browseris.ie8down) { 8612 setTimeout(fn2, 0); 8613 } 8614 else { 8615 fn2(); 8616 } 8617} 8618function EnsureScript(key, typ, fn, bSync, errorFn, expectedTypeName) { 8619 if (Boolean(bSync) && Boolean(errorFn)) { 8620 throw new Error("bSync==true && errorFn"); 8621 } 8622 var run = true; 8623 var nkey = NormalizeSodKey(key); 8624 var sod = _v_dictSod[nkey]; 8625 8626 if (sod != null && sod.reset) { 8627 run = false; 8628 } 8629 if (typ != 'undefined' && run) { 8630 if (fn != null) 8631 fn(); 8632 return true; 8633 } 8634 LoadSodByKey(key, fn, bSync, errorFn, expectedTypeName); 8635 if (run) { 8636 return true; 8637 } 8638 return false; 8639} 8640function EnsureScriptFunc(key, typ, fn, errorFn) { 8641 EnsureScript(key, TypeofFullName(typ), fn, false, errorFn, typ); 8642} 8643function EnsureScriptParams() { 8644 if (arguments.length < 2) { 8645 return; 8646 } 8647 var args = arguments; 8648 var key = Array.prototype.shift.call(args); 8649 var func = Array.prototype.shift.call(args); 8650 var fn = function() { 8651 var fParts = func.split("."); 8652 var dynFuncRef = window; 8653 8654 for (var i = 0, len = fParts.length; i < len; i++) { 8655 dynFuncRef = dynFuncRef[fParts[i]]; 8656 } 8657 ; 8658 var funcRef = dynFuncRef; 8659 8660 funcRef.apply(null, args); 8661 }; 8662 8663 EnsureScriptFunc(key, func, fn); 8664} 8665function NormalizeSodKey(key) { 8666 var lowerCaseKey = key.toLowerCase(); 8667 var lckl = lowerCaseKey.length; 8668 8669 if (lckl >= 3 && ".js" == lowerCaseKey.substr(lckl - 3)) { 8670 key = lowerCaseKey; 8671 } 8672 else if (lowerCaseKey.indexOf(".resx") > 0) { 8673 var index = lowerCaseKey.indexOf(".resx"); 8674 8675 key = (key.substr(0, index + 5)).toLowerCase() + key.substr(index + 5); 8676 } 8677 return key; 8678} 8679function ArrayIndexOf(array, item, startIdx) { 8680 if (typeof item === "undefined") 8681 return -1; 8682 var len = array.length; 8683 8684 if (len !== 0) { 8685 startIdx = startIdx - 0; 8686 if (isNaN(startIdx)) { 8687 startIdx = 0; 8688 } 8689 else { 8690 if (isFinite(startIdx)) { 8691 startIdx = startIdx - startIdx % 1; 8692 } 8693 if (startIdx < 0) { 8694 startIdx = Math.max(0, len + startIdx); 8695 } 8696 } 8697 for (var i = startIdx; i < len; i++) { 8698 if (typeof array[i] !== "undefined" && array[i] === item) { 8699 return i; 8700 } 8701 } 8702 } 8703 return -1; 8704} 8705function SodCloneEvent(evt) { 8706 var e; 8707 8708 if (browseris.ie) { 8709 e = document.createEventObject(evt); 8710 } 8711 else { 8712 e = document.createEvent("MouseEvents"); 8713 e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 8714 } 8715 return e; 8716} 8717function SodDispatchEvent(key, typ, evt) { 8718 var e = SodCloneEvent(evt); 8719 var fn; 8720 8721 if (browseris.ie) { 8722 fn = function() { 8723 e.srcElement.fireEvent("onclick", e); 8724 }; 8725 } 8726 else { 8727 var t = evt.target; 8728 8729 fn = function() { 8730 t.dispatchEvent(e); 8731 }; 8732 } 8733 if (!EnsureScript(key, typ, fn)) { 8734 if (browseris.ie) 8735 evt.cancelBubble = true; 8736 else 8737 evt.stopPropagation(); 8738 } 8739} 8740function AddTabHeadHandler(tid, fn) { 8741 var li = document.getElementById(tid); 8742 8743 if (li != null) { 8744 var a = (li.getElementsByTagName('A'))[0]; 8745 8746 AddEvtHandler(a, 'onclick', fn); 8747 } 8748} 8749function LoadWPAdderOnDemand() { 8750 if (typeof loadWPAdderCallback == 'function') {
8751 EnsureScriptParams("WPAdderClass", "WPAdderClassLoad", loadWPAdderCallback); 8752 } 8753} 8754function showSaveConflictDialog(lastModifiedUserId, continueStatusHtml, mergeChangesUrl, mergeChangesStatusHtml, discardScript, overwriteScript) { 8755 EnsureScriptParams("ribbon", "ribbon.showSaveConflictDialog", lastModifiedUserId, continueStatusHtml, mergeChangesUrl, mergeChangesStatusHtml, discardScript, overwriteScript); 8756} 8757function ClkElmt(e) { 8758 if (browseris.ie) 8759 e.click(); 8760 else 8761 FFClick(e); 8762} 8763function EnsureSelectionHandlerOnFocus(evt, cbx, ctxNum) { 8764 EnsureScriptFunc("core.js", "EnsureSelectionHandlerDeferred", function() { 8765 DeferCall("EnsureSelectionHandlerOnFocusDeferred", evt, cbx, ctxNum); 8766 }); 8767} 8768function EnsureSelectionHandler(evt, tab, ctxNum) { 8769 EnsureScriptFunc("core.js", "EnsureSelectionHandlerDeferred", function() { 8770 DeferCall("EnsureSelectionHandlerDeferred", evt, tab, ctxNum); 8771 }); 8772} 8773function StopEvt(evt) { 8774 if (!browseris.ie) 8775 evt.stopPropagation(); 8776} 8777function AddEvtHandler(ele, strEvt, func, useCapture) { 8778 if (Boolean(ele.addEventListener)) { 8779 useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; 8780 ele.addEventListener(strEvt.substr(2), func, useCapture); 8781 } 8782 else if (Boolean(ele.attachEvent)) { 8783 ele.attachEvent(strEvt, func); 8784 } 8785} 8786function RemoveEvtHandler(ele, strEvt, func, useCapture) { 8787 if (Boolean(ele.removeEventListener)) { 8788 useCapture = typeof useCapture != "undefined" && useCapture != null ? useCapture : false; 8789 ele.removeEventListener(strEvt.substr(2), func, useCapture); 8790 } 8791 else if (Boolean(ele.detachEvent)) { 8792 ele.detachEvent(strEvt, func); 8793 } 8794} 8795function HideListViewRows(sid) { 8796 var t = document.getElementById(sid); 8797 8798 if (t == null) 8799 return; 8800 resetSelectAllCbx(t); 8801 var inplviewHash = ajaxNavigate.getParam("InplviewHash"); 8802 8803 if (null == inplviewHash) 8804 return; 8805 var strHash = inplviewHash.substr(0, 42); 8806 8807 strHash = strHash.replace(/--/g, "-"); 8808 if (sid.length == 77) 8809 sid = sid.substr(39); 8810 else { 8811 var ctxId; 8812 var myCtx; 8813 8814 if (sid.indexOf("onetidDoclibViewTbl") != 0) 8815 return; 8816 sid = sid.substr(19); 8817 if (sid == '0') { 8818 if (t.className.indexOf("ms-emptyView") >= 0) 8819 return; 8820 for (ctxId in g_ctxDict) { 8821 myCtx = g_ctxDict[ctxId]; 8822 sid = myCtx.view; 8823 break; 8824 } 8825 } 8826 else { 8827 myCtx = g_ctxDict['ctx' + sid]; 8828 sid = myCtx.view; 8829 } 8830 } 8831 if (strHash != sid) 8832 return; 8833 EnsureScriptParams("core.js", "AddCssClassToElement", t, "s4-hide-tr"); 8834} 8835function resetSelectAllCbx(tab) { 8836 var selectAllCbx = getSelectAllCbxFromTable(tab); 8837 8838 if (selectAllCbx != null) 8839 selectAllCbx.checked = false; 8840} 8841function getSelectAllCbxFromTable(tab) { 8842 if (tab == null) 8843 return null; 8844 var rows = tab.rows; 8845 8846 if (Boolean(rows) && rows.length > 0) { 8847 var headerRow = rows[0]; 8848 8849 if (!Boolean(headerRow.className.indexOf("ms-viewheadertr"))) { 8850 var cells = headerRow.cells; 8851 8852 if (cells.length > 0) { 8853 var cbx = (cells[0].getElementsByTagName("INPUT"))[0]; 8854 8855 if (cbx != null) 8856 return cbx; 8857 cbx = cells[0].querySelector(".ms-selectall-span"); 8858 if (cbx != null) 8859 return cbx; 8860 } 8861 } 8862 } 8863 return null; 8864} 8865var g_pageIsDeRibboned; 8866 8867function WpClick(evt) { 8868 if (Boolean(g_pageIsDeRibboned)) 8869 return; 8870 var s = GetEventSrcElement(evt); 8871 var p = s; 8872 8873 while (p != null && p.tagName != "BODY" && (p.className == null || p.className.indexOf == null || p.className.indexOf('s4-wpcell') < 0)) { 8874 if (p.tagName == 'A' && p.getAttribute('data-sp-continueWPSelect') == null) 8875 return; 8876 if (p.getAttribute('data-sp-cancelWPSelect') != null) 8877 return; 8878 if (p.tagName == 'DIV' && p.className != null && p.className.indexOf('s4-ctx') != -1) 8879 return; 8880 if (p.tagName == 'TH' && p.className != null && p.className.indexOf('ms-vh2') != -1) 8881 return; 8882 p = p.parentNode; 8883 } 8884 if (p != null && p.tagName != "BODY") {
8885 EnsureScriptParams("ribbon", "SelectWp", p); 8886 } 8887} 8888function WpKeyUp(evt) { 8889 var focusElt = GetEventSrcElement(evt); 8890 8891 if (evt.keyCode == 32 && Boolean(focusElt) && focusElt.tagName == "INPUT" && (HasCssClass(focusElt, "s4-selectAllCbx") || HasCssClass(focusElt, "s4-itm-cbx"))) 8892 WpClick(evt); 8893} 8894function WzClick(evt, zid) { 8895 var s = GetEventSrcElement(evt); 8896 var p = s; 8897 8898 while (p != null) { 8899 var z = p.getAttribute("ZoneID"); 8900 8901 if (z == zid) 8902 break; 8903 if (p.tagName == 'A') 8904 return; 8905 p = p.parentNode; 8906 } 8907 if (p != null) { 8908 EnsureScriptParams("ribbon", "SelectWz", p, zid); 8909 } 8910} 8911function WpCbxSelect(evt) { 8912 var cbx = GetEventSrcElement(evt); 8913 var currentlySelected = cbx.checked; 8914 8915 if (!currentlySelected) 8916 WpClick(evt); 8917 else 8918 EnsureScriptParams("ribbon", "DeselectWpWz"); 8919 TrapMenuClick(evt); 8920 if (evt.type != "keyup") 8921 cbx.className = "ms-webpart-checkboxHide"; 8922} 8923function WpCbxKeyHandler(evt) { 8924 var kCode; 8925 8926 if (browseris.ie) 8927 kCode = evt.keyCode; 8928 else 8929 kCode = evt.which; 8930 if (kCode == 13) 8931 WpCbxSelect(evt); 8932} 8933function PopoutMenuMaybeSwapImage(anchorId, iconId, src) { 8934 var anchor = document.getElementById(anchorId); 8935 8936 if (Boolean(anchor) && typeof anchor != 'undefined') { 8937 if (anchor.rel == '_spPopoutMenuIsOpen') 8938 return; 8939 SwapImage(iconId, src); 8940 } 8941} 8942function PopoutMenuMaybeSwapImageClustered(anchorId, iconId, src, x, y, height, width) { 8943 var anchor = document.getElementById(anchorId); 8944 8945 if (Boolean(anchor) && typeof anchor != 'undefined') { 8946 if (anchor.rel == '_spPopoutMenuIsOpen') 8947 return; 8948 var span = document.getElementById(iconId); 8949 var img = span.firstChild; 8950 8951 SwapImageInternal(img, src); 8952 span.style.height = height + "px"; 8953 span.style.width = width + "px"; 8954 img.style.top = "-" + y + "px"; 8955 img.style.left = "-" + x + "px"; 8956 } 8957} 8958function SwapImage(id, src) { 8959 var img = document.getElementById(id); 8960 8961 SwapImageInternal(img, src); 8962} 8963function SwapImageInternal(img, src) { 8964 if (Boolean(img) && typeof img != 'undefined') 8965 img.src = src; 8966} 8967function GetViewportHeight() { 8968 return document.documentElement.clientHeight; 8969} 8970function GetViewportWidth() { 8971 return document.documentElement.clientWidth; 8972} 8973var g_viewportHeight, g_viewportWidth, g_wpadderHeight, g_setWidth, g_setWidthInited, g_workspaceResizedHandlers, g_setScrollPos; 8974var g_frl; 8975 8976function FixRibbonAndWorkspaceDimensionsForResize() { 8977 if (g_frl) 8978 return; 8979 var vph = GetViewportHeight(); 8980 var vpw = GetViewportWidth(); 8981 8982 if (g_viewportHeight == vph && g_viewportWidth == vpw) { 8983 return; 8984 } 8985 g_viewportHeight = vph; 8986 g_viewportWidth = vpw; 8987 window.setTimeout(FixRibbonAndWorkspaceDimensions, 0); 8988} 8989function FixRibbonAndWorkspaceDimensions() { 8990 g_frl = true; 8991 var elmRibbon = GetCachedElement("s4-ribbonrow"); 8992 var elmWorkspace = GetCachedElement("s4-workspace"); 8993 var elmTitleArea = GetCachedElement("s4-titlerow"); 8994 var elmBodyTable = GetCachedElement("s4-bodyContainer"); 8995 var elmFooter = GetCachedElement("footer"); 8996 var elmOverlay = GetCachedElement("ms-core-overlay"); 8997 var elmGlobalNavBox = GetCachedElement("globalNavBox"); 8998 var setWidth; 8999 9000 if (!Boolean(elmRibbon) || !Boolean(elmWorkspace) || !Boolean(elmBodyTable)) { 9001 CallWorkspaceResizedEventHandlers(); 9002 return; 9003 } 9004 if (!g_setWidthInited) { 9005 setWidth = true; 9006 if (elmWorkspace.className.indexOf("s4-nosetwidth") > -1) 9007 setWidth = false; 9008 g_setWidth = setWidth; 9009 g_setWidthInited = true; 9010 } 9011 else { 9012 setWidth = g_setWidth; 9013 } 9014 var baseRibbonHeight = 0; 9015 var isDialog = Boolean((ajaxNavigate.get_search()).match(RegExp("[?&]IsDlg=1"))); 9016 9017 if (Boolean(elmGlobalNavBox) && !isDialog) { 9018 baseRibbonHeight = RibbonIsMinimized() ? elmGlobalNavBox.offsetHeight : 126; 9019 } 9020 else { 9021 baseRibbonHeight = RibbonIsMinimized() ? 35 : 126; 9022 } 9023 var ribbonHeight = baseRibbonHeight + g_wpadderHeight; 9024 9025 if (GetCurrentEltStyle(elmRibbon, "visibility") == "hidden") { 9026 ribbonHeight = 0; 9027 } 9028 if (Boolean(elmTitleArea)) { 9029 if (RibbonIsMinimized()) { 9030 elmTitleArea.className = elmTitleArea.className.replace(RegExp("s4-titlerowhidetitle"), ""); 9031 elmTitleArea.style.display = "block"; 9032 } 9033 else { 9034 var cn = elmTitleArea.className; 9035 9036 if (cn.indexOf("s4-titlerowhidetitle") < 0) 9037 elmTitleArea.className = cn.concat("s4-titlerowhidetitle"); 9038 elmTitleArea.style.display = "none"; 9039 } 9040 } 9041 elmRibbon.style.height = String(ribbonHeight) + "px"; 9042 var ribbonElement = GetCachedElement("s4-ribbonrow"); 9043 var webPartAdderElement = ribbonElement.querySelector(".ms-core-webpartadder"); 9044 9045 if (Boolean(webPartAdderElement) && GetCurrentEltStyle(webPartAdderElement, "position") == "absolute") { 9046 var wpaTop = ribbonHeight; 9047 var ribbonHeaderElement = document.getElementById("Ribbon"); 9048 9049 if (Boolean(ribbonHeaderElement)) { 9050 var ribbonTabBodyElement = ribbonHeaderElement.querySelector(".ms-cui-tabContainer"); 9051 9052 if (RibbonIsMinimized() || !Boolean(ribbonTabBodyElement)) 9053 wpaTop = AbsTop(ribbonHeaderElement) + ribbonHeaderElement.offsetHeight; 9054 else 9055 wpaTop = AbsTop(ribbonTabBodyElement) + ribbonTabBodyElement.offsetHeight; 9056 wpaTop -= AbsTop(ribbonElement); 9057 webPartAdderElement.style.top = wpaTop.toString() + "px"; 9058 } 9059 else { 9060 webPartAdderElement.style.top = baseRibbonHeight.toString() + "px"; 9061 } 9062 }
9063 var vph = g_viewportHeight; 9064 9065 if (null === vph) { 9066 vph = GetViewportHeight(); 9067 g_viewportHeight = vph; 9068 } 9069 var newWorkspaceHeight = vph - AbsTop(elmWorkspace); 9070 9071 if (newWorkspaceHeight < 0) 9072 newWorkspaceHeight = 0; 9073 if (!browseris.ipad || !isDialog) 9074 elmWorkspace.style.height = String(newWorkspaceHeight) + "px"; 9075 if (Boolean(elmOverlay) && !isDialog) { 9076 var overlayHeight = newWorkspaceHeight; 9077 9078 if (overlayHeight < 0) 9079 overlayHeight = 0; 9080 elmOverlay.style.height = String(overlayHeight) + "px"; 9081 } 9082 if (setWidth) { 9083 elmWorkspace.style.width = String(document.documentElement.clientWidth) + "px"; 9084 if (elmBodyTable.offsetWidth < elmWorkspace.clientWidth) 9085 elmBodyTable.style.width = String(elmWorkspace.clientWidth) + "px"; 9086 } 9087 var isIE7 = browseris.ie && browseris.iever == 7 && !browseris.ie8standard; 9088 9089 if (!g_setScrollPos) { 9090 if (browseris.firefox && browseris.firefox36up) 9091 window.scrollTo(0, 0); 9092 if (Boolean((ajaxNavigate.get_search()).match(RegExp("[?&]IsDlg=1")))) { 9093 if (!isIE7 || elmWorkspace.scrollHeight < elmWorkspace.clientHeight) 9094 elmWorkspace.style.overflowY = "auto"; 9095 } 9096 var scrollElem = document.getElementById("_maintainWorkspaceScrollPosition"); 9097 9098 if (scrollElem != null && scrollElem.value != null) { 9099 var scrollValue = Number(scrollElem.value); 9100 var blogList = GetElementByClassName(elmWorkspace, "ms-blog-postList"); 9101 9102 if (blogList != null && scrollValue > 0) { 9103 var listTop = (blogList.getBoundingClientRect()).top; 9104 9105 elmWorkspace.scrollTop = (blogList.getBoundingClientRect()).top - (elmWorkspace.getBoundingClientRect()).top; 9106 } 9107 else { 9108 elmWorkspace.scrollTop = scrollValue; 9109 } 9110 } 9111 g_setScrollPos = true; 9112 } 9113 CallWorkspaceResizedEventHandlers(); 9114 g_frl = false; 9115} 9116function CallWorkspaceResizedEventHandlers() { 9117 var handlers = [].concat(g_workspaceResizedHandlers); 9118 9119 for (var i = 0, wLen = handlers.length; i < wLen; i++) { 9120 handlers[i](); 9121 } 9122} 9123function RibbonIsMinimized() { 9124 if (g_spribbon.isInited) { 9125 return g_spribbon.isMinimized; 9126 } 9127 else { 9128 if (typeof _ribbon == "undefined" || null === _ribbon) 9129 return true; 9130 else 9131 return typeof _ribbon.buildMinimized == "undefined" ? undefined : _ribbon.buildMinimized; 9132 } 9133} 9134var g_spribbon; 9135 9136function OnRibbonMinimizedChanged(ribbonMinimized) { 9137 if ((ajaxNavigate.get_search()).indexOf("IsDlg=1") != -1) 9138 return; 9139 ExecuteOrDelayUntilScriptLoaded(function() { 9140 AnimateRibbonMinimizedChanged(ribbonMinimized); 9141 }, "core.js"); 9142} 9143function PreRibbonTabSwitched(ribbonMinimized) { 9144 ExecuteOrDelayUntilScriptLoaded(function() { 9145 g_fSkipAnimation = false; 9146 PrepareRibbonForAnimation(ribbonMinimized, true); 9147 }, "core.js"); 9148} 9149function CatchCreateError(strIgnore1, strIgnore2, strIgnore3) { 9150 return true; 9151} 9152function ExpandBody(guid, anchor) { 9153 if (typeof MSOWebPartPageFormName == "undefined") 9154 return false; 9155 var frm = document.forms[MSOWebPartPageFormName]; 9156 var CAML_Expand = frm.elements['CAML_Expand']; 9157 9158 CAML_Expand.value = CAML_Expand.value.concat(guid); 9159 frm.action = frm.action.concat("#" + anchor); 9160 frm.submit(); 9161 return false; 9162} 9163function CollapseBody(guid, anchor) { 9164 if (typeof MSOWebPartPageFormName == "undefined") 9165 return false; 9166 var frm = document.forms[MSOWebPartPageFormName]; 9167 var reg = new RegExp("\{", "g"); 9168 9169 guid = guid.replace(reg, "\\\{"); 9170 reg = new RegExp("\}", "g"); 9171 guid = guid.replace(reg, "\\\}"); 9172 reg = new RegExp(guid, "g"); 9173 var CAML_Expand = frm.elements['CAML_Expand']; 9174 9175 CAML_Expand.value = CAML_Expand.value.replace(reg, ""); 9176 var CAML_ShowOriginalEmailBody = frm.elements['CAML_ShowOriginalEmailBody']; 9177 9178 CAML_ShowOriginalEmailBody.value = CAML_ShowOriginalEmailBody.value.replace(reg, ""); 9179 frm.action = frm.action.concat("#" + anchor); 9180 frm.submit(); 9181 return false; 9182} 9183function ShowQuotedText(guid, anchor) { 9184 if (typeof MSOWebPartPageFormName == "undefined") 9185 return false; 9186 var frm = document.forms[MSOWebPartPageFormName]; 9187 var CAML_ShowOriginalEmailBody = frm.elements['CAML_ShowOriginalEmailBody']; 9188 9189 CAML_ShowOriginalEmailBody.value = CAML_ShowOriginalEmailBody.value.concat(guid); 9190 if (frm.action.indexOf("#") > 0) { 9191 frm.action = frm.action.substr(0, frm.action.indexOf("#")); 9192 } 9193 frm.action = frm.action.concat("#" + anchor); 9194 frm.submit(); 9195 return false; 9196} 9197function HideQuotedText(guid, anchor) { 9198 if (typeof MSOWebPartPageFormName == "undefined") 9199 return false; 9200 var frm = document.forms[MSOWebPartPageFormName]; 9201 var reg = new RegExp("\{", "g"); 9202 9203 guid = guid.replace(reg, "\\\{"); 9204 reg = new RegExp("\}", "g"); 9205 guid = guid.replace(reg, "\\\}"); 9206 reg = new RegExp(guid, "g"); 9207 var CAML_ShowOriginalEmailBody = frm.elements['CAML_ShowOriginalEmailBody']; 9208 9209 CAML_ShowOriginalEmailBody.value = CAML_ShowOriginalEmailBody.value.replace(reg, ""); 9210 if (frm.action.indexOf("#") > 0) { 9211 frm.action = frm.action.substr(0, frm.action.indexOf("#")); 9212 } 9213 frm.action = frm.action.concat("#" + anchor); 9214 frm.submit(); 9215 return false; 9216} 9217var v_stsOpenDoc2; 9218var v_strStsOpenDoc2; 9219 9220function StsOpenEnsureEx2(szProgId) { 9221 if (v_stsOpenDoc2 == null || v_strStsOpenDoc2 != szProgId) { 9222 v_stsOpenDoc2 = null; 9223 v_strStsOpenDoc2 = null; 9224 var plugin; 9225 9226 if (Boolean(window.ActiveXObject)) { 9227 try { 9228 v_stsOpenDoc2 = new ActiveXObject(szProgId); 9229 v_strStsOpenDoc2 = szProgId; 9230 } 9231 catch (e) { 9232 v_stsOpenDoc2 = null; 9233 v_strStsOpenDoc2 = null; 9234 } 9235 ; 9236 } 9237 else if (IsSupportedMacBrowser() && szProgId.indexOf("SharePoint.OpenDocuments") >= 0) { 9238 plugin = CreateMacPlugin(); 9239 if (plugin != null) { 9240 v_stsOpenDoc2 = plugin; 9241 v_strStsOpenDoc2 = "SharePoint.MacPlugin"; 9242 } 9243 } 9244 else if (IsSupportedNPApiBrowserOnWin() && szProgId.indexOf("SharePoint.OpenDocuments") >= 0) { 9245 plugin = CreateNPApiOnWindowsPlugin("application/x-sharepoint"); 9246 if (plugin != null) { 9247 v_stsOpenDoc2 = plugin; 9248 v_strStsOpenDoc2 = "SharePoint.FFWinPlugin"; 9249 } 9250 } 9251 } 9252 return v_stsOpenDoc2; 9253} 9254function HasValidUrlPrefix(url) { 9255 var urlLower = url.toLowerCase(); 9256 9257 if (-1 == urlLower.search(RegExp("^http://")) && -1 == urlLower.search(RegExp("^https://"))) 9258 return false; 9259 return true; 9260} 9261function IsLeavingObject(ev, obj) { 9262 var to; 9263 9264 if (!Boolean(ev)) 9265 ev = window.event; 9266 to = Boolean(ev.toElement) ? ev.toElement : ev.relatedTarget; 9267 if (null == to) 9268 return false; 9269 while (to != obj && to != null) 9270 to = to.parentNode; 9271 return to != obj; 9272} 9273var deleteInstance; 9274 9275function DeleteItemConfirmation() { 9276 var message = ""; 9277 9278 if (typeof ItemIsCopy != "undefined") 9279 if (ItemIsCopy) 9280 message = Strings.STS.L_NotifyThisIsCopy_Text; 9281 if (cascadeDeleteWarningMessage != "") { 9282 message += cascadeDeleteWarningMessage; 9283 } 9284 if (recycleBinEnabled == 1 && deleteInstance != 1) 9285 message += Strings.STS.L_STSRecycleConfirm_Text; 9286 else 9287 message += Strings.STS.L_STSDelConfirm_Text; 9288 return confirm(message); 9289} 9290function DeleteInstanceConfirmation() { 9291 deleteInstance = 1; 9292 return DeleteItemConfirmation(); 9293} 9294function CancelMultiPageConfirmation(redirectUrl) { 9295 var message = ""; 9296 9297 if (recycleBinEnabled == 1) 9298 message = Strings.STS.L_DeletePartialResponse1_text; 9299 else 9300 message = Strings.STS.L_DeletePartialResponse2_text; 9301 if (confirm(message) == true) 9302 return true; 9303 else 9304 Nav.navigate(redirectUrl); 9305 return false; 9306} 9307function RestoreItemVersionConfirmation() { 9308 var message = Strings.STS.L_Version_Restore_Confirm_Text; 9309 9310 return confirm(message); 9311} 9312function DeleteItemVersionConfirmation(bRecycleBinEnabled) { 9313 if (bRecycleBinEnabled) 9314 return confirm(Strings.STS.L_Version_Recycle_Confirm_Text); 9315 else 9316 return confirm(Strings.STS.L_Version_Delete_Confirm_Text); 9317} 9318function DeleteUserInfoItemConfirmation() { 9319 var message = Strings.STS.L_User_Delete_Confirm_Text; 9320 9321 return confirm(message); 9322} 9323function UnlinkCopyConfirmation(strItemUrl) { 9324 return confirm(Strings.STS.L_ConfirmUnlinkCopy_Text); 9325} 9326function SupportsNavigateHttpFolder() { 9327 return browseris.ie5up; 9328} 9329function MtgDeletePageConfirm() { 9330 var text; 9331 9332 if ((document.getElementById("MtgTlPart_PageType")).value == 'MtgTlPart_LocalPage') 9333 text = Strings.STS.L_DeleteConfirm_Text; 9334 else 9335 text = Strings.STS.L_DeleteGlobalConfirm_Text + Strings.STS.L_DeleteConfirm_Text; 9336 return confirm(text); 9337} 9338function IsImgLibJssLoaded() { 9339 if (typeof fImglibJssLoaded != "undefined") 9340 return fImglibJssLoaded; 9341 return false; 9342} 9343function GetFirstChildElement(e) { 9344 for (var i = 0; i < e.childNodes.length; i++) { 9345 if (e.childNodes[i].nodeType == 1) 9346 return e.childNodes[i];
9347 } 9348 return null; 9349} 9350function TestGCObject(GCObject) { 9351 if (browseris.ie55up && typeof GCObject == "undefined" || GCObject == null || typeof GCObject.object == 'undefined' || GCObject.object == null) 9352 return false; 9353 return true; 9354} 9355function MMU_GetMenuFromClientId(clientId) { 9356 return document.getElementById(clientId); 9357} 9358function MMU_EcbLinkOnKeyDown(menu, ecbLink, e) { 9359 if (e == null) { 9360 e = window.event; 9361 if (e == null) 9362 return false; 9363 } 9364 var nKeyCode = GetEventKeyCode(e); 9365 var hasHref = ecbLink.href != null && ecbLink.href.length > 0; 9366 9367 if ((e.shiftKey || !hasHref) && nKeyCode == 13 || nKeyCode == 32 || e.altKey && nKeyCode == 40) { 9368 var image = byid(ecbLink.id + "_ti"); 9369 9370 if (image == null) { 9371 var serverClientId = ecbLink.getAttribute("serverclientid"); 9372 9373 if (serverClientId != null && serverClientId.length > 0) { 9374 image = byid(serverClientId + "_ti"); 9375 } 9376 } 9377 if (image != null) { 9378 ClkElmt(image); 9379 } 9380 else { 9381 ClkElmt(ecbLink); 9382 } 9383 return false; 9384 } 9385 else { 9386 return true; 9387 } 9388} 9389var firstCalled; 9390var _callbackinitdelayed; 9391 9392function DeferWebFormInitCallback() { 9393 if (typeof WebForm_InitCallback == 'function' && "undefined" == typeof WebForm_InitCallback["deferred"] && typeof window['_WebForm_InitCallback'] == 'undefined') 9394 window['_WebForm_InitCallback'] = window['WebForm_InitCallback']; 9395 function funcInitCallback() { 9396 if (firstCalled) { 9397 firstCalled = false; 9398 _callbackinitdelayed = true; 9399 _spBodyOnLoadFunctionNames.push('WebForm_InitCallback'); 9400 } 9401 else { 9402 _callbackinitdelayed = false; 9403 if (typeof window._WebForm_InitCallback == 'function') 9404 window._WebForm_InitCallback(); 9405 } 9406 } 9407 ; 9408 funcInitCallback["deferred"] = true; 9409 window['WebForm_InitCallback'] = funcInitCallback; 9410 if (typeof WebForm_DoCallback == 'function' && "undefined" == typeof WebForm_DoCallback["deferred"] && typeof window['_WebForm_DoCallback'] == 'undefined') 9411 window['_WebForm_DoCallback'] = window['WebForm_DoCallback']; 9412 function funcDoCallback(eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync) { 9413 if (_callbackinitdelayed) { 9414 _callbackinitdelayed = false; 9415 if (_spBodyOnLoadFunctionNames != null) { 9416 var count = _spBodyOnLoadFunctionNames.length; 9417 9418 for (var i = 0; i < count; i++) { 9419 if (_spBodyOnLoadFunctionNames[i] == "WebForm_InitCallback") { 9420 _spBodyOnLoadFunctionNames.splice(i, 1); 9421 break; 9422 } 9423 } 9424 } 9425 if (typeof window._WebForm_InitCallback == 'function') 9426 window._WebForm_InitCallback(); 9427 } 9428 window['_WebForm_DoCallback'](eventTarget, eventArgument, eventCallback, context, errorCallback, useAsync); 9429 } 9430 ; 9431 funcDoCallback["deferred"] = true; 9432 window['WebForm_DoCallback'] = funcDoCallback; 9433} 9434function _ribbonShouldFixRtlHeaders(isRtl) { 9435 return browseris.ie && browseris.iever == 7 && !browseris.ie8standard && isRtl; 9436} 9437var g_spDragDropUpload; 9438 9439function WPQRegisterDragDropUpload() { 9440 var registerFunc = function() { 9441 for (var wpqKey in g_spDragDropUpload) { 9442 var uploadInfo = g_spDragDropUpload[wpqKey]; 9443 var WPQDiv = document.getElementById(wpqKey); 9444 9445 if (WPQDiv != null && typeof WPQDiv != 'undefined') { 9446 registerDragUpload(WPQDiv, uploadInfo.serverUrl, uploadInfo.siteRelativeUrl, uploadInfo.listName, uploadInfo.rootFolder, uploadInfo.overwriteAll, uploadInfo.hideProgressBar, uploadInfo.refreshFunc, uploadInfo.preUploadFunc, uploadInfo.postUploadFunc, uploadInfo.checkPermissionFunc); 9447 } 9448 } 9449 }; 9450 9451 EnsureScriptFunc('DragDrop.js', "registerDragUpload", registerFunc); 9452} 9453function SPDragUploadInfo(webPartId, serverUrl, siteRelativeUrl, listName, rootFolder, overwriteAll, hideProgressBar, refreshFunc, preUploadFunc, postUploadFunc, checkPermissionFunc) { 9454 this.webPartId = webPartId;
9455 this.serverUrl = serverUrl; 9456 this.siteRelativeUrl = siteRelativeUrl; 9457 this.listName = listName; 9458 this.rootFolder = rootFolder; 9459 this.overwriteAll = overwriteAll; 9460 this.hideProgressBar = hideProgressBar; 9461 this.refreshFunc = refreshFunc; 9462 this.preUploadFunc = preUploadFunc; 9463 this.postUploadFunc = postUploadFunc; 9464 this.checkPermissionFunc = checkPermissionFunc; 9465} 9466var g_QuickLaunchControlIds; 9467 9468function _registerCommonComponents() { 9469 SP.Ribbon.HelpPageComponent.registerWithPageManager(); 9470 SP.Ribbon.UserInterfacePageComponent.registerWithPageManager(); 9471} 9472function ExecuteAndRegisterBeginEndFunctions(script, beginFunc, endFunc, loadFunc) { 9473 RegisterBeginEndFunctions(script, script, beginFunc, endFunc, loadFunc); 9474 if (null != beginFunc) { 9475 beginFunc(); 9476 } 9477 if (null != endFunc) { 9478 endFunc(); 9479 } 9480 if (null != loadFunc) { 9481 loadFunc(); 9482 } 9483} 9484function RegisterBeginEndFunctions(script, tag, beginFunc, endFunc, loadFunc) { 9485 if ("string" != typeof tag) 9486 throw "Unexpected"; 9487 if (!(null == beginFunc || "function" == typeof beginFunc)) 9488 throw "Unexpected"; 9489 if (!(null == endFunc || "function" == typeof endFunc)) 9490 throw "Unexpected"; 9491 if (!(null == loadFunc || "function" == typeof loadFunc)) 9492 throw "Unexpected"; 9493 if (!g_supportFiles[tag]) { 9494 g_supportFiles[tag] = { 9495 tag: tag, 9496 scriptURI: new URI(script), 9497 beginFunc: beginFunc, 9498 endFunc: endFunc, 9499 loadFunc: loadFunc, 9500 executed: false 9501 }; 9502 } 9503} 9504function RegisterModuleInit(scriptFileName, initFunc) { 9505 RegisterBeginEndFunctions(scriptFileName, scriptFileName, initFunc, null, null); 9506} 9507function SetElementStyle(ctlId, styleName) { 9508 var elmScope = document.getElementById(ctlId); 9509 9510 if (typeof elmScope != 'undefined' && elmScope != null && elmScope.className != styleName) { 9511 elmScope.className = styleName; 9512 } 9513} 9514function RemoveCachingParamsFromUrl(sourceUrl) { 9515 return RemoveQueryParameterFromUrl(RemoveQueryParameterFromUrl(sourceUrl, 'rev'), 'ctag'); 9516} 9517function registerCssLink(cssLink, callback, bUnthemable) { 9518 _registerCssLink(cssLink, null, function(e) { 9519 if ("undefined" != typeof g_MinimalDownload && g_MinimalDownload && 'undefined' != typeof asyncDeltaManager && 'undefined' != typeof AsyncDeltaManager$_registerLinkCallback) { 9520 AsyncDeltaManager$_registerLinkCallback(e); 9521 } 9522 if ('function' == typeof callback) { 9523 callback(e); 9524 } 9525 }, null, bUnthemable); 9526} 9527function _ensureCssLink(cssLink, callback) { 9528 var ret = _registerCssLink(cssLink, null, null, callback); 9529 9530 if (ret == 0 && callback != null) 9531 callback(); 9532 return ret; 9533} 9534function setAdditionalCssLinkAttributes(link, linkContent) { 9535 if (null == link || null == linkContent) { 9536 return; 9537 } 9538 var originalHref = linkContent["data-original-href"]; 9539 9540 if (null != originalHref) { 9541 link.setAttribute("data-original-href", originalHref); 9542 } 9543} 9544function _registerCssLink(cssLink, head, callback, loadCompletedCallback, bUnthemable, linkContent) { 9545 var found = false; 9546 var retval = 0; 9547 9548 if (null == head) { 9549 head = (document.getElementsByTagName('head'))[0]; 9550 } 9551 var useClientSideTheming = !bUnthemable && SPThemeUtils.UseClientSideTheming(); 9552 var links = head.getElementsByTagName(useClientSideTheming ? 'style' : 'link'); 9553 var linksCount = links.length; 9554 var sourceURL = useClientSideTheming ? cssLink : GetAbsoluteUrl(cssLink); 9555 9556 for (var j = 0; j < linksCount; j++) { 9557 if (links[j].rel == "stylesheet" && links[j].type == "text/css" || useClientSideTheming && links[j].hasAttribute("data-ThemingSource")) { 9558 var source = useClientSideTheming ? links[j].getAttribute("data-ThemingSource") : links[j].href; 9559 9560 if (null != source && source.length > 0) { 9561 if (sourceURL == source) { 9562 var deleteAttrib = links[j].getAttribute("toDelete"); 9563 9564 if (Boolean(deleteAttrib)) 9565 links[j].removeAttribute("toDelete"); 9566 if (null != linkContent) { 9567 setAdditionalCssLinkAttributes(links[j], linkContent); 9568 } 9569 found = true; 9570 break; 9571 } 9572 if (RemoveCachingParamsFromUrl(sourceURL) == RemoveCachingParamsFromUrl(source)) { 9573 return -1; 9574 } 9575 } 9576 } 9577 } 9578 if (useClientSideTheming && !found) { 9579 var newElement; 9580 var originalUrl; 9581 9582 if (null != linkContent) { 9583 originalUrl = linkContent["data-original-href"]; 9584 } 9585 newElement = (Theming.GetPageManager()).AddCssLink(cssLink, originalUrl, null, loadCompletedCallback, null); 9586 if (null != callback) { 9587 callback(newElement); 9588 } 9589 retval = 1; 9590 } 9591 else if (!found) { 9592 var aLink = document.createElement("link"); 9593 9594 aLink.rel = "stylesheet"; 9595 aLink.type = "text/css"; 9596 aLink.href = cssLink; 9597 head.appendChild(aLink); 9598 if (null != linkContent) { 9599 setAdditionalCssLinkAttributes(aLink, linkContent); 9600 } 9601 if (browseris.chrome || browseris.safari) { 9602 var pollInterval = 10; 9603 var startTime = Number(new Date()); 9604 var maxPollTime = 500; 9605 9606 setTimeout(bindArguments(function CssLinkCallback(timestart, myLink) { 9607 if (myLink != null) { 9608 if (typeof myLink.sheet == "undefined" || myLink.sheet == null || typeof myLink.sheet.cssRules == "undefined" || myLink.sheet.cssRules == null) { 9609 if (Number(new Date()) - timestart < maxPollTime) 9610 setTimeout(bindArguments(CssLinkCallback, timestart, myLink), pollInterval); 9611 else if (typeof loadCompletedCallback == "function") 9612 loadCompletedCallback(); 9613 } 9614 else if (myLink.sheet.cssRules && typeof loadCompletedCallback == "function") 9615 loadCompletedCallback(); 9616 } 9617 }, startTime, aLink), pollInterval); 9618 } 9619 else { 9620 if (typeof loadCompletedCallback == "function") { 9621 $addHandler(aLink, 'load', loadCompletedCallback); 9622 if (Boolean(aLink.addEventListener)) 9623 aLink.addEventListener('error', loadCompletedCallback, false); 9624 } 9625 } 9626 if (null != callback) { 9627 callback(aLink); 9628 } 9629 retval = 1; 9630 } 9631 return retval; 9632} 9633function replacePlaceholderElement(elementId, markupText) { 9634 var el = document.getElementById(elementId); 9635 var el2 = document.createElement("span"); 9636 var p = el.parentNode; 9637 9638 el2.innerHTML = markupText; 9639 var len = el2.childNodes.length; 9640 9641 switch (len) { 9642 case 0: 9643 break; 9644 case 1: 9645 p.replaceChild(el2.childNodes[0], el); 9646 break; 9647 default: 9648 for (var i = 0; i < len; i++) { 9649 p.insertBefore(el2.childNodes[0], el); 9650 } 9651 p.removeChild(el); 9652 break; 9653 } 9654} 9655function fIsNullOrUndefined(obj) { 9656 return typeof obj == "undefined" || obj == null; 9657} 9658function IsStrNullOrEmpty(str) { 9659 return str == null || str.length == 0; 9660} 9661function bindArguments() { 9662 var args = arguments; 9663 var fn = Array.prototype.shift.call(args); 9664 9665 return function() { 9666 return fn.apply(this, args); 9667 }; 9668} 9669function OpenSuiteLinksJson() { 9670 var linksJson = null; 9671 9672 GetSuiteLinks(null, function(suiteLinks) { 9673 linksJson = suiteLinks; 9674 });
9675 return linksJson; 9676} 9677function RecordClick(strClickType, strClickData) { 9678 EnsureScriptFunc("sp.pageinstrumentation.js", "SP.PageInstrumentation.Clicks", function() { 9679 SP.PageInstrumentation.Clicks.recordClick(strClickType, strClickData); 9680 }); 9681} 9682function RecordClickForPaging(strClickType, strClickData, strPageId) { 9683 EnsureScriptFunc("sp.pageinstrumentation.js", "SP.PageInstrumentation.Clicks", function() { 9684 SP.PageInstrumentation.Clicks.recordClickForPaging(strClickType, strClickData, strPageId); 9685 }); 9686} 9687function RecordClickClientId(strClickType, clientId) { 9688 EnsureScriptFunc("sp.pageinstrumentation.js", "SP.PageInstrumentation.Clicks", function() { 9689 SP.PageInstrumentation.Clicks.recordClickClientId(strClickType, clientId); 9690 }); 9691} 9692function LogRUMExtendedAction(actionName, actionId, actionGuid, actionDate, actionType) { 9693 EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { 9694 var slapiInternal = SP.SlapiInternal; 9695 var action = new slapiInternal.RUMExtended(); 9696 9697 action.ActionName = actionName; 9698 if (typeof actionId != 'undefined' && actionId != null) { 9699 action.ActionId = actionId; 9700 } 9701 if (typeof actionGuid != 'undefined' && actionGuid != null) { 9702 action.ActionGuid = actionGuid; 9703 } 9704 if (typeof actionDate != 'undefined' && actionDate != null) { 9705 action.ActionDate = actionDate; 9706 } 9707 else { 9708 action.ActionDate = (new Date()).getTime(); 9709 } 9710 if (typeof actionType != 'undefined' && actionType != null) { 9711 action.ActionType = actionType; 9712 } 9713 WriteLog(action); 9714 }); 9715} 9716function _AddTrySPListNextBanner(isList) { 9717 var bannerHtml = '\ 9718<div class="ms-fullWidth" style="background-color:#F8F8F8;position:relative;">\ 9719 <div class="ms-tableCell ms-verticalAlignMiddle" style="width:256px;background-color:#24BBED;">\ 9720 <img src=' + StAttrQuote("/_layouts/15/images/PaintRoller.215x90x32.png?rev=43") + ' style="height:90px;width:215px;margin:auto 20px;">\ 9721 </div>\ 9722 <div class="ms-tableCell ms-verticalAlignTop ms-fullWidth" style="padding:16px">\ 9723 <h2 style="color:#444">' + STSHtmlEncode(Boolean(isList) ? Strings.STS.L_ListNewLookHeading : Strings.STS.L_DocLibNewLookHeading) + '\ 9724 <span class="ms-dlgTitleBtns" style="margin-top:-23px">\ 9725 <a title=' + StAttrQuote(Strings.STS.L_DocLibNewLookDismiss) + ' class="ms-dlgCloseBtn" id="doclibNewLookClose" href="javascript:;">\ 9726 <span style="padding: 8px; width: 16px; height: 16px; display: inline-block;">\ 9727 <span class="s4-clust" style="width: 16px; height: 16px; overflow: hidden; display: inline-block; position: relative;">\ 9728 <img class="ms-dlgCloseBtnImg" style="left: 0px !important; top: -645px !important; position: absolute;" alt=' + StAttrQuote(Strings.STS.L_DocLibNewLookDismiss) + ' src=' + StAttrQuote("/_layouts/15/images/fgimg.png?rev=43") + '>\ 9729 </span>\ 9730 </span>\ 9731 </a>\ 9732 </span>\ 9733 </h2>\ 9734 <p style="margin: 0px; padding: 8px 0px 60px; color:#444">' + STSHtmlEncode(Strings.STS.L_DocLibNewLookBody) + '</p>\ 9735 <input class="ms-button-emphasize" id="doclibNewLookTry" style="position:absolute;bottom:16px;margin:0px;border-color:#005da1;background-color:#005da1;color:#fff" type="button" value=' + StAttrQuote(Strings.STS.L_DocLibNewLookCheckItOutButton) + '/>\ 9736 </div>\ 9737</div>\ 9738<br/>\n'; 9739 var bannerCloseCount = new BrowserCachedNumber("SPNewDoclibBannerClose"); 9740 var bannerClosedSession = new BrowserCachedNumber("SPNewDoclibBannerClosedSession", true); 9741 9742 if (bannerCloseCount.getValue() > 1 || bannerClosedSession.getValue() > 0) 9743 return; 9744 var _splnBannerId = "doclibNewLookBanner"; 9745 var splnBannerDiv = document.createElement("div"); 9746 9747 splnBannerDiv.id = _splnBannerId; 9748 splnBannerDiv.innerHTML = bannerHtml; 9749 var pageStatusElement = document.getElementById("pageStatusBar"); 9750 var pageStatusParent = pageStatusElement ? pageStatusElement.parentNode : null; 9751 9752 if (!pageStatusParent) 9753 return; 9754 pageStatusParent.insertBefore(splnBannerDiv, pageStatusElement); 9755 var spnlClose = document.getElementById("doclibNewLookClose"); 9756 9757 if (spnlClose) { 9758 AddEvtHandler(spnlClose, "onclick", closeBannerSPLN); 9759 } 9760 var spnlTry = document.getElementById("doclibNewLookTry"); 9761 9762 if (spnlTry) { 9763 AddEvtHandler(spnlTry, "onclick", trySPLN); 9764 } 9765 LogUserEngagement("NewDoclibExperience_Banner_Rendered"); 9766 function closeBannerSPLN() { 9767 var bannerElement = document.getElementById(_splnBannerId); 9768 9769 if (bannerElement && bannerElement.parentNode) { 9770 bannerElement.parentNode.removeChild(bannerElement); 9771 bannerElement = null; 9772 } 9773 bannerClosedSession.incrementValue(); 9774 var newCloseCount = bannerCloseCount.incrementValue(); 9775 9776 LogUserEngagement("NewDoclibExperience_Banner_Close" + newCloseCount.toString(10)); 9777 } 9778 function trySPLN() { 9779 bannerCloseCount.resetValue(); 9780 LogUserEngagement("NewDoclibExperience_Banner_Try"); 9781 document.cookie = "splnu=1;path=/;"; 9782 document.location.reload(); 9783 } 9784 function LogUserEngagement(strEventTag) { 9785 if (typeof SP != "undefined" && SP != null && SP.QoS != null) 9786 SP.QoS.WriteUserEngagement(strEventTag); 9787 } 9788 function BrowserCachedNumber(strCacheKey, bSessionCache) { 9789 this._cacheKey = strCacheKey; 9790 this._storage = !bSessionCache ? BrowserStorage.local : BrowserStorage.session; 9791 this.getValue = function() { 9792 var cachedValue = Number(this._storage.getItem(this._cacheKey)); 9793 9794 return cachedValue ? cachedValue : 0; 9795 }; 9796 this.incrementValue = function() { 9797 var updatedValue = this.getValue() + 1; 9798 9799 this._storage.setItem(this._cacheKey, updatedValue); 9800 return updatedValue; 9801 }; 9802 this.resetValue = function() { 9803 this._storage.removeItem(this._cacheKey); 9804 }; 9805 } 9806} 9807function HandleDLPStatus() { 9808 if (document.getElementById("pageStatusBar") != null) { 9809 EnsureScriptFunc("core.js", "ProcessDLPStatus", function() { 9810 ProcessDLPStatus();
9811 }); 9812 } 9813} 9814function GetCachedProfile() { 9815 return ProfileCache.GetCachedProfile(); 9816} 9817function UserProfileLocalStoreKey() { 9818 return ProfileCache.UserProfileLocalStoreKey(); 9819} 9820function getCtx(webPartID) { 9821 if (fIsNullOrUndefined(g_ctxDict)) 9822 return undefined; 9823 for (var contextId in g_ctxDict) { 9824 var contx = g_ctxDict[contextId]; 9825 9826 if (webPartID == "WebPart" + contx.wpq) 9827 return contx; 9828 } 9829 return undefined; 9830} 9831function PageMinimized() { 9832 if (typeof PageMinimized.minimized === 'undefined') { 9833 var url = new URI(ajaxNavigate.get_href()); 9834 9835 PageMinimized.minimized = Boolean(url.getQueryParameter("Minimized")); 9836 if (PageMinimized.minimized) { 9837 AddCssClassToElement(document.body, "ms-fullscreenmode"); 9838 } 9839 } 9840 return PageMinimized.minimized; 9841} 9842function GoToModern(bReturn) { 9843 if (typeof SP != "undefined" && SP != null && SP.QoS != null) 9844 SP.QoS.WriteUserEngagement(bReturn ? "Return_To_Modern_UX" : "Go_To_Modern_UX"); 9845 document.cookie = "splnu=1;path=/"; 9846 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("9AC29D85-49C4-41FC-B1E2-5BB42628DC6C")) && browseris.ie && !browseris.ie11up) 9847 window.open(window.location.href, '_blank'); 9848 else 9849 window.location.reload(); 9850} 9851function IsXhrAborted(xhr) { 9852 try { 9853 if (xhr.readyState == 4 && (typeof xhr.status == "undefined" || xhr.status == 0)) 9854 return true; 9855 } 9856 catch (e) { 9857 return true; 9858 } 9859 return false; 9860} 9861function IsXhrGoodAndReady(xhr) { 9862 try { 9863 if (xhr.readyState == 4 && xhr.status == 200) 9864 return true; 9865 } 9866 catch (e) { 9867 return false; 9868 } 9869 return false; 9870} 9871function IsXhrReady(xhr) { 9872 try { 9873 if (xhr.readyState == 4) 9874 return true; 9875 } 9876 catch (e) { 9877 return false; 9878 } 9879 return false; 9880} 9881function OverrideDefaultMethod(methodName, alternateMethodName, argCount) { 9882 return SupplementDefaultMethod(methodName, alternateMethodName, argCount, true); 9883} 9884function SupplementDefaultMethod(methodName, alternateMethodName, argCount, override) { 9885 var browserMethod = window[methodName]; 9886 9887 try { 9888 if (window.opener != null && window.opener["LogFromProduct"] != null) { 9889 var verb = override ? "Overriding" : "Supplementing"; 9890 9891 window.opener["LogFromProduct"]("SupplementDefaultMethod -- " + verb + " " + methodName + " with " + alternateMethodName); 9892 } 9893 } 9894 catch (e) { } 9895 window[methodName] = function(arg1, arg2, arg3, arg4, arg5) { 9896 var getReturnValue = function(wnd) { 9897 if (argCount == 1) { 9898 return wnd[alternateMethodName](arg1); 9899 } 9900 else if (argCount == 3) { 9901 return wnd[alternateMethodName](arg1, arg2, arg3); 9902 } 9903 else if (argCount == 5) { 9904 return wnd[alternateMethodName](arg1, arg2, arg3, arg4, arg5); 9905 } 9906 else { 9907 throw "Unexpected argument count in SupplementDefaultMethod"; 9908 } 9909 }; 9910 var ret; 9911 9912 try { 9913 if (Boolean(window.opener) && window != window.opener && Boolean(window.opener[alternateMethodName])) { 9914 ret = getReturnValue(window.opener); 9915 if (override) 9916 return ret; 9917 } 9918 else if (Boolean(window.frameElement) && Boolean(window.parent) && window != window.parent && typeof window.parent.opener != "undefined" && Boolean(window.parent.opener) && window != window.parent.opener && window.parent != window.parent.opener && Boolean(window.parent.opener[alternateMethodName])) { 9919 ret = getReturnValue(window.parent.opener); 9920 if (override) 9921 return ret; 9922 } 9923 } 9924 catch (e) { } 9925 if (Boolean(browserMethod)) { 9926 return Function.prototype.apply.call(browserMethod, window, arguments); 9927 } 9928 return null; 9929 }; 9930} 9931var IMNControlObj; 9932var bIMNControlInited; 9933var IMNDictionaryObj; 9934var IMNDictionaryPresenceTextObj; 9935var bIMNSorted; 9936var bIMNOnloadAttached; 9937var IMNOrigScrollFunc; 9938var bIMNInScrollFunc; 9939var IMNSortableObj; 9940var IMNHeaderObj; 9941var IMNNameDictionaryObj; 9942var IMNNameDictionaryPresenceTextObj; 9943var IMNShowOfflineObj; 9944var OwaLang; 9945var OwaRoot; 9946var OwaSharedHoverCardJsKey; 9947var OwaSharedHoverCardStringsJsKey; 9948var ActiveSharedHoverCard; 9949var ActiveUserField; 9950var SharedHoverCardHideTimer; 9951var SharedHoverCardHideTime; 9952var SharedHoverCardDelayTimer; 9953var SharedHoverCardDelayTime; 9954var SharedHoverCardDelayed; 9955var SharedHoverCardContainer; 9956var sharedHoverCardShimParameters; 9957var SharedHoverCardShimParameters; 9958var sharedHoverCardShim; 9959var SharedHoverCardShim; 9960var serverSettings; 9961var slabManifest; 9962var jQueryPatch; 9963var SharedHoverCardDependenciesLoaded; 9964var SharedHoverCardDependenciesRegistered; 9965var FallbackToActiveX; 9966var SharedHoverCardBootStrapped; 9967var SharedHoverCardPending; 9968var currentShowHoverCardInstance; 9969var nextShowHoverCardInstance; 9970var currentShowHoverCardInstanceBootstrappedState; 9971 9972function GetCurrentEvent(objEvent) { 9973 if (browseris.ie5up) 9974 return window.event; 9975 if (Boolean(objEvent)) 9976 return objEvent; 9977 return window.event; 9978} 9979function GetEventTarget(objEvent) { 9980 if (Boolean(objEvent.srcElement)) 9981 return objEvent.srcElement; 9982 return objEvent.target; 9983} 9984function EnsureIMNControl() { 9985 if (!bIMNControlInited || IMNControlObj == null) { 9986 var serverPresenceEnabled = typeof g_presenceEnabled != "undefined" && g_presenceEnabled; 9987 9988 try { 9989 if (IsSupportedMacBrowser()) { 9990 IMNControlObj = CreateMacPlugin(); 9991 } 9992 else if (IsSupportedNPApiBrowserOnWin()) { 9993 IMNControlObj = CreateNPApiOnWindowsPlugin("application/x-sharepoint-uc"); 9994 if (IMNControlObj != null && serverPresenceEnabled) 9995 IMNControlObj.OnStatusChange = IMNOnStatusChange; 9996 } 9997 else if (browseris.ie5up) { 9998 if (Boolean(window.ActiveXObject)) { 9999 IMNControlObj = new ActiveXObject("Name.NameCtrl.1"); 10000 if (IMNControlObj && serverPresenceEnabled) { 10001 var onStatusChange; 10002 10003 if (IsSupportedMacBrowser()) 10004 onStatusChange = "IMNOnStatusChange"; 10005 else 10006 onStatusChange = IMNOnStatusChange; 10007 IMNControlObj.OnStatusChange = onStatusChange; 10008 } 10009 } 10010 } 10011 bIMNControlInited = true; 10012 } 10013 catch (e) { 10014 IMNControlObj = null; 10015 } 10016 AddEvtHandler(window, "onbeforeunload", DiscardIMNControl); 10017 } 10018 return IMNControlObj; 10019} 10020function DiscardIMNControl() { 10021 if (typeof IMNHideOOUI == 'undefined' || typeof IMNControlObj == 'undefined' || typeof bIMNControlInited == 'undefined') { 10022 return; 10023 } 10024 IMNHideOOUI(); 10025 IMNControlObj = null; 10026 bIMNControlInited = false; 10027} 10028function IMNImageInfo_InitializePrototype() { 10029 IMNImageInfo.prototype.img = null; 10030 IMNImageInfo.prototype.classPrefix = null; 10031 IMNImageInfo.prototype.alt = ''; 10032} 10033function IMNImageInfo() { 10034} 10035function IMNGetStatusImage(state, showoffline) { 10036 var img = "spimn.png"; 10037 var classPrefix = "ms-spimn-presence-disconnected"; 10038 var alt = ""; 10039 10040 switch (state) { 10041 case 0: 10042 classPrefix = "ms-spimn-presence-online"; 10043 alt = Strings.STS.L_IMNOnline_Text; 10044 break; 10045 case 11: 10046 classPrefix = "ms-spimn-presence-online-oof"; 10047 alt = Strings.STS.L_IMNOnline_OOF_Text; 10048 break; 10049 case 1: 10050 if (showoffline) { 10051 classPrefix = "ms-spimn-presence-offline"; 10052 alt = Strings.STS.L_IMNOffline_Text; 10053 } 10054 else { 10055 classPrefix = ""; 10056 alt = ""; 10057 } 10058 break; 10059 case 12: 10060 if (showoffline) { 10061 classPrefix = "ms-spimn-presence-offline-oof"; 10062 alt = Strings.STS.L_IMNOffline_OOF_Text; 10063 } 10064 else { 10065 classPrefix = ""; 10066 alt = ""; 10067 } 10068 break; 10069 case 2: 10070 classPrefix = "ms-spimn-presence-away"; 10071 alt = Strings.STS.L_IMNAway_Text; 10072 break; 10073 case 13: 10074 classPrefix = "ms-spimn-presence-away-oof"; 10075 alt = Strings.STS.L_IMNAway_OOF_Text; 10076 break; 10077 case 3: 10078 classPrefix = "ms-spimn-presence-busy"; 10079 alt = Strings.STS.L_IMNBusy_Text; 10080 break; 10081 case 14: 10082 classPrefix = "ms-spimn-presence-busy-oof"; 10083 alt = Strings.STS.L_IMNBusy_OOF_Text; 10084 break; 10085 case 4: 10086 classPrefix = "ms-spimn-presence-away"; 10087 alt = Strings.STS.L_IMNAway_Text; 10088 break; 10089 case 5: 10090 classPrefix = "ms-spimn-presence-busy"; 10091 alt = Strings.STS.L_IMNBusy_Text; 10092 break; 10093 case 6: 10094 classPrefix = "ms-spimn-presence-away"; 10095 alt = Strings.STS.L_IMNAway_Text; 10096 break; 10097 case 7: 10098 classPrefix = "ms-spimn-presence-busy"; 10099 alt = Strings.STS.L_IMNBusy_Text; 10100 break; 10101 case 8: 10102 classPrefix = "ms-spimn-presence-away"; 10103 alt = Strings.STS.L_IMNAway_Text; 10104 break; 10105 case 9: 10106 classPrefix = "ms-spimn-presence-donotdisturb"; 10107 alt = Strings.STS.L_IMNDoNotDisturb_Text; 10108 break; 10109 case 15: 10110 classPrefix = "ms-spimn-presence-donotdisturb-oof"; 10111 alt = Strings.STS.L_IMNDoNotDisturb_OOF_Text; 10112 break; 10113 case 21: 10114 classPrefix = "ms-spimn-presence-donotdisturb"; 10115 alt = Strings.STS.L_IMNInPresentation_Text; 10116 break; 10117 case 10: 10118 classPrefix = "ms-spimn-presence-busy"; 10119 alt = Strings.STS.L_IMNBusy_Text; 10120 break; 10121 case 16: 10122 classPrefix = "ms-spimn-presence-away"; 10123 alt = Strings.STS.L_IMNIdle_Text; 10124 break; 10125 case 17: 10126 classPrefix = "ms-spimn-presence-away-oof"; 10127 alt = Strings.STS.L_IMNIdle_OOF_Text; 10128 break; 10129 case 18: 10130 classPrefix = "ms-spimn-presence-blocked"; 10131 alt = Strings.STS.L_IMNBlocked_Text; 10132 break; 10133 case 19: 10134 classPrefix = "ms-spimn-presence-busy"; 10135 alt = Strings.STS.L_IMNBusy_Text; 10136 break; 10137 case 20: 10138 classPrefix = "ms-spimn-presence-busy-oof"; 10139 alt = Strings.STS.L_IMNBusy_OOF_Text; 10140 break; 10141 } 10142 var imnInfo = new IMNImageInfo(); 10143 10144 imnInfo.img = img; 10145 imnInfo.classPrefix = classPrefix; 10146 imnInfo.alt = alt; 10147 return imnInfo; 10148} 10149function IMNGetHeaderImage() { 10150 var imnInfo = new IMNImageInfo(); 10151 10152 imnInfo.img = "imnhdr.gif"; 10153 imnInfo.alt = ""; 10154 return imnInfo; 10155} 10156function IMNIsOnlineState(state) { 10157 if (state == 1) { 10158 return false; 10159 } 10160 return true; 10161} 10162function IMNSortList(j, oldState, state) { 10163 var objTable = null; 10164 var objRow = null; 10165 10166 if (Boolean(IMNSortableObj) && IMNSortableObj[j]) {
10167 objRow = document.getElementById(j); 10168 while (Boolean(objRow) && !(objRow.tagName == "TR" && typeof objRow.Sortable != "undefined")) { 10169 objRow = objRow.parentNode; 10170 } 10171 objTable = objRow; 10172 while (Boolean(objTable) && objTable.tagName != "TABLE") { 10173 objTable = objTable.parentNode; 10174 } 10175 var objTableRows = objTable.rows; 10176 10177 if (objTable != null && objRow != null) { 10178 if (objTableRows[1].style.display == "none") { 10179 for (var i = 1; i < 4; i++) { 10180 objTableRows[i].style.display = "block"; 10181 } 10182 } 10183 if (!IMNIsOnlineState(oldState) && IMNIsOnlineState(state)) { 10184 objTableRows[2].style.display = "none"; 10185 i = 3; 10186 while (objTableRows[i].id != "Offline" && Number(objTableRows[i].innerText) < Number(objRow.innerText)) 10187 i++; 10188 if (typeof objTable.moveRow == 'function') 10189 objTable.moveRow(objRow.rowIndex, i); 10190 if (objTableRows[objTableRows.length - 3].id == "Offline") { 10191 objTableRows[objTableRows.length - 2].style.display = "block"; 10192 } 10193 } 10194 else if (IMNIsOnlineState(oldState) && !IMNIsOnlineState(state)) { 10195 if (objRow.rowIndex == 3 && objTableRows[objRow.rowIndex + 1].id == "Offline") { 10196 objTableRows[2].style.display = "block"; 10197 } 10198 if (objTableRows[objTableRows.length - 3].id == "Offline") { 10199 objTableRows[objTableRows.length - 2].style.display = "none"; 10200 } 10201 i = objTableRows.length - 2; 10202 while (objTableRows[i - 1].id != "Offline" && Number(objTableRows[i].innerText) > Number(objRow.innerText)) 10203 i--; 10204 objTable.moveRow(objRow.rowIndex, i); 10205 } 10206 } 10207 } 10208} 10209function IMNOnStatusChange(nameParam, state, id) { 10210 if (Boolean(IMNDictionaryObj) && typeof IMNDictionaryObj[id] != 'undefined') { 10211 var img = IMNGetStatusImage(state, IMNSortableObj[id] || IMNShowOfflineObj[id]); 10212 10213 if (IMNDictionaryObj[id] != state) { 10214 if (bIMNSorted) 10215 IMNSortList(id, IMNDictionaryObj[id], state); 10216 IMNUpdateImage(id, img); 10217 IMNDictionaryObj[id] = state; 10218 } 10219 } 10220 if (Boolean(IMNDictionaryPresenceTextObj) && typeof IMNDictionaryPresenceTextObj[id] != 'undefined') { 10221 var presenceTextElement = document.getElementById(id); 10222 10223 IMNUpdatePresenceText(presenceTextElement, state); 10224 } 10225} 10226function IMNUpdateImageClassPrefix(obj, classPrefix) { 10227 var exp = /ms-spimn-presence-[a-zA-Z]*-([0-9])/i; 10228 var oldClass = obj.getAttribute("class"); 10229 10230 if (oldClass != null) { 10231 obj.setAttribute("class", oldClass.replace(exp, classPrefix + "-" + "$1")); 10232 } 10233} 10234function IMNUpdateImage(id, imgInfo) { 10235 var obj = document.images[id]; 10236 10237 if (Boolean(obj)) { 10238 var parentNode = obj.parentNode; 10239 10240 if (parentNode.firstChild != obj) 10241 parentNode.insertBefore(obj, parentNode.firstChild); 10242 var img = imgInfo.img; 10243 var classPrefix = imgInfo.classPrefix; 10244 var alt = imgInfo.alt; 10245 var oldImg = obj.src; 10246 10247 if (typeof obj.src == "undefined") 10248 oldImg = (obj.item(0)).src; 10249 var index = oldImg.lastIndexOf("/"); 10250 var newImg = oldImg.slice(0, index + 1); 10251 10252 newImg += img; 10253 IMNUpdateImageClassPrefix(obj, classPrefix); 10254 if (oldImg == newImg && img != 'blank.gif') 10255 return; 10256 if (typeof obj.altbase != 'undefined' && Boolean(obj.altbase)) { 10257 obj.alt = obj.altbase; 10258 } 10259 else if (typeof obj.getAttribute('altbase') != 'undefined' && Boolean(obj.getAttribute('altbase'))) { 10260 obj.alt = obj.getAttribute('altbase'); 10261 } 10262 else { 10263 obj.alt = alt; 10264 } 10265 var useFilter = browseris.ie && browseris.ie55up && browseris.verIEFull < 7.0; 10266 var isPng = (newImg.toLowerCase()).indexOf(".png") > 0; 10267 10268 if (useFilter) { 10269 if (isPng) { 10270 obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + newImg + "),sizingMethod=scale,enabled=true);"; 10271 obj.src = "/_layouts/15/images/blank.gif?rev=43"; 10272 } 10273 else { 10274 obj.style.filter = ""; 10275 obj.src = newImg; 10276 } 10277 } 10278 else { 10279 obj.src = newImg; 10280 } 10281 } 10282} 10283function IMNHandleAccelerator(objEvent) { 10284 if (IMNControlObj) { 10285 var currEvent = GetCurrentEvent(objEvent); 10286 10287 if (currEvent.altKey && currEvent.shiftKey && currEvent.keyCode == 121) { 10288 if (typeof IMNControlObj.DoAccelerator != 'undefined') 10289 IMNControlObj.DoAccelerator(); 10290 } 10291 } 10292} 10293function IMNImageOnClick(objEvent) { 10294 if (IMNControlObj) { 10295 IMNShowOOUIKyb(objEvent); 10296 if (typeof IMNControlObj.DoAccelerator != 'undefined') 10297 IMNControlObj.DoAccelerator(); 10298 HideSharedHoverCard(); 10299 } 10300} 10301function IMNGetOOUILocation(obj) { 10302 var objRet = new Object; 10303 var objSpan = obj;
10304 var objOOUI = obj; 10305 var objImg = obj; 10306 var oouiX = 0, oouiY = 0, objDX = 0; 10307 var fRtl = document.dir == "rtl"; 10308 var objSpanClass = objSpan.className; 10309 10310 while (Boolean(objSpan) && (objSpanClass == null || objSpanClass.indexOf("ms-imnSpan") == -1) && objSpan.tagName != "TABLE") { 10311 if (objSpan.tagName == "TD" && objSpanClass.indexOf("ms-vb") >= 0) 10312 break; 10313 objSpan = objSpan.parentNode; 10314 if (!Boolean(objSpan)) 10315 return null; 10316 objSpanClass = objSpan.className; 10317 } 10318 if (Boolean(objSpan)) { 10319 var childNode; 10320 10321 if (objSpan.tagName == "TABLE") { 10322 var row = objSpan.rows(0); 10323 var cell = row.cells(0); 10324 10325 childNode = cell.firstChild; 10326 } 10327 else 10328 childNode = objSpan.firstChild; 10329 while (childNode != null) { 10330 if (childNode.tagName == "A") { 10331 var linkDescendant = childNode.firstChild; 10332 10333 while (linkDescendant != null) { 10334 if (linkDescendant.tagName == "IMG" && Boolean(linkDescendant.id)) { 10335 childNode = linkDescendant; 10336 break; 10337 } 10338 linkDescendant = linkDescendant.firstChild; 10339 } 10340 } 10341 if (childNode.tagName == "IMG" && Boolean(childNode.id)) { 10342 objOOUI = childNode; 10343 break; 10344 } 10345 childNode = childNode.nextSibling; 10346 } 10347 objImg = objOOUI; 10348 objOOUI = objSpan; 10349 } 10350 obj = objOOUI; 10351 var zoom = 1; 10352 10353 if (Boolean(browseris.ie9standardUp)) 10354 zoom = window.screen.deviceXDPI / window.screen.logicalXDPI; 10355 oouiY = (objOOUI.getBoundingClientRect()).top * zoom - 5; 10356 oouiX = (objOOUI.getBoundingClientRect()).left * zoom - 5; 10357 var parentObj = objOOUI.parentNode; 10358 10359 while ((oouiX < 0 || oouiY < 0) && parentObj != null && Boolean(parentObj.getBoundingClientRect)) { 10360 oouiY = (parentObj.getBoundingClientRect()).top * zoom - 5; 10361 oouiX = (parentObj.getBoundingClientRect()).left * zoom - 5; 10362 parentObj = parentObj.parentNode; 10363 } 10364 try { 10365 var currentWindow = window; 10366 10367 while (Boolean(currentWindow) && currentWindow != currentWindow.parent) { 10368 var iframe = currentWindow.frameElement; 10369 var iframebcr = Boolean(iframe) ? iframe.getBoundingClientRect() : null; 10370 var iframetop = Boolean(iframebcr) ? iframebcr.top : 0; 10371 var iframeleft = Boolean(iframebcr) ? iframebcr.left : 0; 10372 10373 oouiY += iframetop; 10374 oouiX += iframeleft; 10375 currentWindow = currentWindow.parent; 10376 } 10377 } 10378 catch (e) { } 10379 ; 10380 objRet.objSpan = objSpan; 10381 objRet.objOOUI = objOOUI != objSpan ? objOOUI : objImg; 10382 objRet.oouiX = oouiX; 10383 objRet.oouiY = oouiY; 10384 return objRet; 10385} 10386function IMNShowOOUIMouse(objEvent) { 10387 IMNShowOOUI(objEvent, 0); 10388} 10389function IMNShowOOUIKyb(objEvent) { 10390 IMNShowOOUI(objEvent, 1); 10391} 10392function IMNShowOOUI(objEvent, inputType) { 10393 if (browseris.ie5up || IsSupportedMacBrowser() || IsSupportedNPApiBrowserOnWin()) { 10394 var currEvent = GetCurrentEvent(objEvent); 10395 var obj = GetEventTarget(currEvent); 10396 var objSpan = obj; 10397 var objOOUI = obj; 10398 var oouiX = 0, oouiY = 0; 10399 10400 if (EnsureIMNControl() && Boolean(IMNNameDictionaryObj)) { 10401 var objRet = IMNGetOOUILocation(obj); 10402 10403 if (Boolean(objRet)) { 10404 objSpan = objRet.objSpan; 10405 objOOUI = objRet.objOOUI; 10406 oouiX = objRet.oouiX; 10407 oouiY = objRet.oouiY; 10408 if (Boolean(currEvent.clientX)) 10409 oouiX = currEvent.clientX; 10410 var nameParam = IMNNameDictionaryObj[objOOUI.id]; 10411 10412 if (nameParam == null || nameParam.length < 1) 10413 return; 10414 if (Boolean(objSpan)) 10415 objSpan.onkeydown = IMNHandleAccelerator; 10416 if (typeof IMNControlObj.ShowOOUI != 'undefined') 10417 IMNControlObj.ShowOOUI(nameParam, inputType, Math.round(oouiX), Math.round(oouiY)); 10418 } 10419 } 10420 } 10421} 10422function IMNHideOOUI() { 10423 if (Boolean(IMNControlObj)) { 10424 if (typeof IMNControlObj.HideOOUI != 'undefined') 10425 IMNControlObj.HideOOUI(); 10426 return false; 10427 } 10428 return true; 10429} 10430function IMNScroll() { 10431 if (!bIMNInScrollFunc) { 10432 bIMNInScrollFunc = true; 10433 IMNHideOOUI(); 10434 } 10435 bIMNInScrollFunc = false; 10436 if (IMNOrigScrollFunc == IMNScroll) 10437 return true; 10438 return Boolean(IMNOrigScrollFunc) ? IMNOrigScrollFunc() : true; 10439} 10440var imnCount; 10441var imnElems; 10442var imnElemsCount; 10443var imnMarkerBatchSize; 10444var imnMarkerBatchDelay; 10445var sharedHoverCardsCount; 10446var sharedHoverCardElements; 10447var sharedHoverCardElementsCount; 10448var sharedHoverCardMarkerBatchSize; 10449var sharedHoverCardMarkerBatchDelay; 10450var IsIFrameSharedHoverCard; 10451var SharedHoverCardIFrame; 10452var SharedHoverCardIFrameCode; 10453 10454function GetHoverCardJsUrls(keys) { 10455 var urls = new Array(0); 10456 10457 if (IsIFrameSharedHoverCard || _v_dictSod == null) { 10458 return urls; 10459 } 10460 for (var i = 0; i < keys.length; i++) { 10461 var sod = _v_dictSod[keys[i]]; 10462 10463 urls[i] = sod == null ? "" : sod.url; 10464 } 10465 return urls; 10466} 10467function InitIFrameSharedHoverCard() { 10468 IsIFrameSharedHoverCard = true; 10469 sharedHoverCardsCount = 0; 10470 RenderSharedHoverCardContainer(); 10471} 10472function ProcessImn() { 10473 if (typeof _spPageContextInfo == "undefined" || _spPageContextInfo == null) { 10474 return; 10475 } 10476 if (typeof _spPageContextInfo.userId == "undefined" || _spPageContextInfo.userId == String(-1)) { 10477 return; 10478 } 10479 imnCount = 0; 10480 imnElems = document.getElementsByName("imnmark"); 10481 imnElemsCount = imnElems.length; 10482 if (EnsureIMNControl()) { 10483 ProcessImnMarkers(); 10484 } 10485 else { 10486 RemoveImnAnchors();
10487 } 10488 if (IsPeopleHoverCardEnabled()) { 10489 sharedHoverCardsCount = 0; 10490 sharedHoverCardElements = document.getElementsByName("SharedHoverCardMarker"); 10491 sharedHoverCardElementsCount = sharedHoverCardElements.length; 10492 if (sharedHoverCardElementsCount > 0) { 10493 ProcessSharedHoverCardMarkers(); 10494 RenderSharedHoverCardContainer(); 10495 } 10496 } 10497} 10498function ClientCanHandleImn() { 10499 return EnsureIMNControl() && typeof IMNControlObj.PresenceEnabled != 'undefined' && IMNControlObj.PresenceEnabled; 10500} 10501function RemoveImnAnchors() { 10502 for (var i = 0; i < imnElemsCount; i++) { 10503 var imnElem = imnElems[i]; 10504 var imnAnchor = imnElem.parentNode; 10505 10506 while (imnAnchor != null && !IsImnAnchor(imnAnchor)) { 10507 imnElem = imnAnchor; 10508 imnAnchor = imnAnchor.parentNode; 10509 } 10510 if (IsImnAnchor(imnAnchor) && imnAnchor.childNodes.length == 1) { 10511 imnAnchor.setAttribute("tabIndex", "-1"); 10512 imnAnchor.onclick = null; 10513 } 10514 } 10515 var imnEmptyElems = document.getElementsByName("imnempty"); 10516 10517 for (i = 0; i < imnEmptyElems.length; i++) { 10518 imnElem = imnEmptyElems[i]; 10519 imnAnchor = imnElem.parentNode;
10520 if (imnAnchor != null && imnAnchor.tagName == "SPAN" && !Boolean(imnAnchor.getAttribute("title"))) 10521 imnAnchor.appendChild(imnElem); 10522 } 10523} 10524function ProcessImnMarkers() { 10525 for (var i = 0; i < imnMarkerBatchSize; ++i) { 10526 if (imnCount == imnElemsCount) 10527 return; 10528 var imnElem = imnElems[imnCount]; 10529 10530 if (imnElem != null && typeof imnElem != 'undefined') { 10531 IMNRC(imnElem.getAttribute("sip"), imnElem); 10532 } 10533 imnCount++; 10534 } 10535 setTimeout("ProcessImnMarkers()", imnMarkerBatchDelay); 10536} 10537function IMNRC(nameParam, elem) { 10538 if (nameParam == null || nameParam == '') 10539 return; 10540 var presenceEnabled = typeof g_presenceEnabled != "undefined" && g_presenceEnabled && EnsureIMNControl() && IMNControlObj.PresenceEnabled; 10541 10542 if (browseris.ie5up || IsSupportedMacBrowser() || IsSupportedNPApiBrowserOnWin()) { 10543 var obj = Boolean(elem) ? elem : window.event.srcElement; 10544 var objSpan = obj; 10545 var id = obj.id; 10546 10547 if (!Boolean(IMNDictionaryObj)) { 10548 IMNDictionaryObj = new Object(); 10549 IMNNameDictionaryObj = new Object(); 10550 IMNSortableObj = new Object(); 10551 IMNShowOfflineObj = new Object(); 10552 if (!Boolean(IMNOrigScrollFunc)) { 10553 if (typeof window.onscroll != 'undefined') 10554 IMNOrigScrollFunc = window.onscroll; 10555 window.onscroll = IMNScroll; 10556 } 10557 } 10558 if (Boolean(IMNDictionaryObj)) { 10559 if (!IMNNameDictionaryObj[id]) { 10560 IMNNameDictionaryObj[id] = nameParam; 10561 } 10562 if (typeof IMNDictionaryObj[id] == "undefined") { 10563 IMNDictionaryObj[id] = 1; 10564 } 10565 if (!IMNSortableObj[id] && typeof obj.Sortable != "undefined") { 10566 IMNSortableObj[id] = obj.Sortable; 10567 if (!bIMNOnloadAttached && presenceEnabled) { 10568 AttachEvent("load", IMNSortTable, window); 10569 bIMNOnloadAttached = true; 10570 } 10571 } 10572 if (!IMNShowOfflineObj[id] && obj.getAttribute("ShowOfflinePawn") != null) { 10573 IMNShowOfflineObj[id] = obj.getAttribute("ShowOfflinePawn"); 10574 } 10575 if (presenceEnabled) { 10576 var state = 1, img; 10577 10578 if (typeof IMNControlObj.GetStatus != 'undefined') 10579 state = IMNControlObj.GetStatus(nameParam, id); 10580 if (IMNIsOnlineState(state) || IMNSortableObj[id] || IMNShowOfflineObj[id]) { 10581 img = IMNGetStatusImage(state, IMNSortableObj[id] || IMNShowOfflineObj[id]); 10582 IMNUpdateImage(id, img); 10583 IMNDictionaryObj[id] = state; 10584 } 10585 } 10586 } 10587 var objRet = IMNGetOOUILocation(obj); 10588 10589 if (Boolean(objRet)) { 10590 SetImnOnClickHandler(objRet.objOOUI); 10591 objSpan = objRet.objSpan; 10592 if (Boolean(objSpan)) { 10593 if (!IsPeopleHoverCardEnabled()) { 10594 objSpan.onmouseover = IMNShowOOUIMouse; 10595 objSpan.onfocusin = IMNShowOOUIKyb; 10596 objSpan.onmouseout = IMNHideOOUI; 10597 objSpan.onfocusout = IMNHideOOUI; 10598 } 10599 } 10600 } 10601 } 10602} 10603function IsImnAnchor(node) { 10604 if (!Boolean(node)) 10605 return false; 10606 var nodeClass = node.className; 10607 10608 return nodeClass != null && nodeClass.indexOf("ms-imnlink") != -1; 10609} 10610function SetImnOnClickHandler(imgNode) { 10611 var parentNode = imgNode.parentNode; 10612 var currNode = parentNode; 10613 var nodeClass = currNode.className; 10614 10615 while (Boolean(currNode) && !IsImnAnchor(currNode)) { 10616 currNode = currNode.parentNode; 10617 } 10618 if (Boolean(currNode)) 10619 parentNode = currNode; 10620 if (IsImnAnchor(parentNode)) { 10621 if (typeof parentNode.onclick == "undefined") { 10622 parentNode.onclick = IMNImageOnClickHandler; 10623 } 10624 } 10625 else { 10626 var anchor = document.createElement("a"); 10627 10628 anchor.onclick = IMNImageOnClickHandler; 10629 anchor.className = "ms-imnlink"; 10630 anchor.href = "javascript:;"; 10631 parentNode.insertBefore(anchor, imgNode); 10632 anchor.appendChild(imgNode); 10633 } 10634} 10635function IMNImageOnClickHandler(objEvent) { 10636 IMNImageOnClick(objEvent); 10637 return false; 10638} 10639function IMNSortTable() { 10640 var id; 10641 10642 for (id in IMNDictionaryObj) { 10643 IMNSortList(id, 1, IMNDictionaryObj[id]); 10644 } 10645 bIMNSorted = true; 10646} 10647function IMNRegisterHeader(objEvent) { 10648 if (browseris.ie5up || IsSupportedMacBrowser() || IsSupportedNPApiBrowserOnWin()) { 10649 var currEvent = GetCurrentEvent(objEvent); 10650 10651 if (currEvent == null) 10652 return; 10653 var obj = GetEventTarget(currEvent); 10654 10655 if (!Boolean(IMNHeaderObj)) { 10656 IMNHeaderObj = new Object(); 10657 } 10658 if (Boolean(IMNHeaderObj)) { 10659 var id = obj.id; 10660 10661 IMNHeaderObj[id] = id; 10662 var img; 10663 10664 img = IMNGetHeaderImage(); 10665 IMNUpdateImage(id, img); 10666 } 10667 } 10668} 10669function ProcessSharedHoverCardMarkers() { 10670 for (var i = 0; i < sharedHoverCardMarkerBatchSize; ++i) { 10671 if (sharedHoverCardsCount == sharedHoverCardElementsCount) 10672 return; 10673 var sharedHoverCardElement = sharedHoverCardElements[sharedHoverCardsCount]; 10674 10675 if (sharedHoverCardElement != null && typeof sharedHoverCardElement != 'undefined') { 10676 AddSharedHoverCardHandlers(sharedHoverCardElement.getAttribute("sip"), sharedHoverCardElement); 10677 } 10678 sharedHoverCardsCount++; 10679 } 10680 setTimeout("ProcessSharedHoverCardMarkers()", sharedHoverCardMarkerBatchDelay); 10681} 10682function AddSharedHoverCardHandlers(nameParam, userField) { 10683 if (nameParam == null || nameParam == '' || userField == null) { 10684 return; 10685 } 10686 if (!IsIFrameSharedHoverCard) { 10687 userField.onmouseover = ShowSharedHoverCardHandler; 10688 userField.onmouseout = HideSharedHoverCardHandler; 10689 } 10690} 10691function ShowSharedHoverCardHandler(objEvent) { 10692 if (IsPeopleHoverCardEnabled()) { 10693 var currEvent = GetCurrentEvent(objEvent); 10694 var obj = GetEventTarget(currEvent); 10695 10696 if (Boolean(obj)) { 10697 var userField = GetUserField(obj); 10698 10699 if (userField != null) { 10700 var sip = userField.getAttribute("sip"); 10701 var hoverCardContainer = SharedHoverCardContainer; 10702 10703 if (Boolean(hoverCardContainer)) { 10704 CancelSharedHoverCardHideTimer(); 10705 if (ActiveUserField != userField) { 10706 if (SharedHoverCardDelayTimer != null) { 10707 clearTimeout(SharedHoverCardDelayTimer); 10708 } 10709 SharedHoverCardDelayed = hoverCardContainer; 10710 SharedHoverCardDelayTimer = setTimeout(function() { 10711 if (IsIFrameSharedHoverCard) { 10712 SharedHoverCardDelayed = null; 10713 ShowSharedHoverCard(hoverCardContainer, userField); 10714 } 10715 else { 10716 var childWindow = SharedHoverCardIFrame != null ? SharedHoverCardIFrame.contentWindow : null; 10717 10718 if (Boolean(childWindow) && Boolean(childWindow.IFrameShowSharedHoverCard)) { 10719 SP.QoS.WriteUserEngagement('SharedHoverCard_ShowCard'); 10720 SharedHoverCardDelayed = null; 10721 ShowSharedHoverCard(hoverCardContainer, userField); 10722 childWindow.IFrameShowSharedHoverCard(userField); 10723 } 10724 } 10725 }, SharedHoverCardDelayTime); 10726 } 10727 } 10728 } 10729 } 10730 } 10731} 10732function SharedHoverCardLogRUMExtendedAction(actionName, actionId, actionGuid, actionDate, actionType) { 10733 LogRUMExtendedAction(actionName, actionId, actionGuid, actionDate, actionType); 10734} 10735function IFrameShowSharedHoverCard(userField) { 10736 ShowSharedHoverCard(SharedHoverCardContainer, userField); 10737} 10738function ShowSharedHoverCard(hoverCardContainer, userField) { 10739 if (Boolean(hoverCardContainer) && (hoverCardContainer.style.visibility != "" || ActiveUserField != userField)) { 10740 currentShowHoverCardInstanceBootstrappedState = Boolean(SharedHoverCardBootStrapped); 10741 currentShowHoverCardInstance = nextShowHoverCardInstance++; 10742 var startTime = (new Date()).getTime(); 10743 var actionName = currentShowHoverCardInstanceBootstrappedState ? "ShowH
10743overCardWithBootStrappedBegin" : "ShowHoverCardWithoutBootStrappedBegin"; 10744 10745 if (IsIFrameSharedHoverCard) { 10746 parent.SharedHoverCardLogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, startTime, null); 10747 } 10748 else { 10749 LogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, startTime, null); 10750 } 10751 if (Boolean(ActiveSharedHoverCard) && ActiveUserField != userField) { 10752 HideSharedHoverCard(); 10753 } 10754 ActiveSharedHoverCard = hoverCardContainer; 10755 ActiveUserField = userField; 10756 hoverCardContainer.style.display = "block"; 10757 PositionSharedHoverCard(hoverCardContainer, userField); 10758 SPAnimationUtility.BasicAnimator.FadeIn(hoverCardContainer); 10759 var placeHolder = hoverCardContainer.firstChild; 10760 var cardContainer = hoverCardContainer.lastChild; 10761 10762 placeHolder.style.visibility = ""; 10763 placeHolder.style.display = "block"; 10764 if (IsIFrameSharedHoverCard) { 10765 if (!SharedHoverCardDependenciesRegistered) { 10766 RegisterSharedHoverCardDependencies(); 10767 } 10768 hoverCardContainer.style.left = "0px"; 10769 hoverCardContainer.style.top = "0px"; 10770 var email = userField.getAttribute("sip"); 10771 var title = userField.getAttribute("userTitle"); 10772 10773 RenderSharedHoverCard(cardContainer, email, title); 10774 } 10775 } 10776} 10777function PositionSharedHoverCard(hoverCardContainer, userField) { 10778 if (userField == null || hoverCardContainer == null) { 10779 return; 10780 } 10781 var position = IMNGetPosition(userField); 10782 var windowWidth = IMNGetDocumentClientWidth(); 10783 var scrollX = IMNGetScrollX(); 10784 var x = position.X + hoverCardContainer.offsetWidth - scrollX; 10785 10786 if (x > windowWidth) { 10787 position.X = position.X - (x - windowWidth) - 2; 10788 } 10789 hoverCardContainer.style.left = position.X + "px"; 10790 hoverCardContainer.style.top = String(position.Y + userField.offsetHeight) + "px"; 10791} 10792function IMNGetScrollX() { 10793 var scrollX = 0; 10794 var workspace = IMNGetSharepointWorkspace(); 10795 10796 if (Boolean(workspace)) { 10797 scrollX = workspace.scrollLeft; 10798 } 10799 return scrollX; 10800} 10801function HideSharedHoverCard() { 10802 if (!IsIFrameSharedHoverCard && Boolean(ActiveSharedHoverCard)) { 10803 SPAnimationUtility.BasicAnimator.FadeOut(ActiveSharedHoverCard); 10804 ActiveSharedHoverCard.style.visibility = "hidden"; 10805 ActiveSharedHoverCard.style.display = "none"; 10806 ActiveSharedHoverCard = null; 10807 ActiveUserField = null; 10808 SharedHoverCardPending = null; 10809 } 10810} 10811function GetUserField(element) { 10812 while (Boolean(element)) { 10813 if (element.getAttribute != null) { 10814 if (element.getAttribute("name") == "SharedHoverCardMarker") { 10815 break; 10816 } 10817 } 10818 element = element.parentNode; 10819 } 10820 return element; 10821} 10822function SetSharedHoverCardHideTimer() { 10823 SharedHoverCardHideTimer = setTimeout(function() { 10824 if (Boolean(ActiveSharedHoverCard)) { 10825 HideSharedHoverCard(); 10826 } 10827 }, SharedHoverCardHideTime); 10828} 10829function HideSharedHoverCardHandler(objEvent) { 10830 if (Boolean(objEvent) && objEvent.type == "mouseout") { 10831 var target = Boolean(objEvent.relatedTarget) ? objEvent.relatedTarget : objEvent.toElement; 10832 var container = objEvent.currentTarget; 10833 10834 if (!Boolean(target) || !Boolean(container)) { 10835 return; 10836 } 10837 if (!IMNIsDescendant(target, container)) { 10838 CancelSharedHoverCardDelayTimer(); 10839 SetSharedHoverCardHideTimer(); 10840 } 10841 } 10842 else { 10843 CancelSharedHoverCardDelayTimer(); 10844 SetSharedHoverCardHideTimer(); 10845 } 10846} 10847function CancelSharedHoverCardHideTimer() { 10848 if (Boolean(SharedHoverCardHideTimer)) { 10849 clearTimeout(SharedHoverCardHideTimer); 10850 } 10851} 10852function CancelSharedHoverCardDelayTimer() { 10853 if (Boolean(SharedHoverCardDelayTimer)) { 10854 SharedHoverCardDelayed = null; 10855 clearTimeout(SharedHoverCardDelayTimer); 10856 } 10857} 10858function IMNIsDescendant(element, container) { 10859 if (!Boolean(element) || !Boolean(container)) { 10860 return false; 10861 } 10862 while (Boolean(element) && element != container) { 10863 element = element.parentNode; 10864 } 10865 return element == container; 10866} 10867function IsPeopleHoverCardEnabled() { 10868 return Flighting.VariantConfiguration.IsExpFeatureClientEnabled(0) && !FallbackToActiveX; 10869} 10870function IMNGetPosition(targetElement) { 10871 var position = new Object; 10872 var tempY = 0, tempX = 0;
10873 var workspace = IMNGetSharepointWorkspace(); 10874 10875 while (targetElement != null && targetElement != workspace) { 10876 tempY += targetElement.offsetTop; 10877 tempX += targetElement.offsetLeft; 10878 targetElement = targetElement.offsetParent; 10879 } 10880 position.X = tempX; 10881 position.Y = tempY; 10882 return position; 10883} 10884function IMNGetDocumentClientWidth() { 10885 var width = 0; 10886 var workspace = IMNGetSharepointWorkspace(); 10887 10888 if (Boolean(workspace) && Boolean(workspace.clientWidth)) { 10889 width = workspace.clientWidth; 10890 } 10891 else if (Boolean(document.documentElement) && Boolean(document.documentElement.clientWidth)) { 10892 width = document.documentElement.clientWidth; 10893 } 10894 return width; 10895} 10896function IMNGetSharepointWorkspace() { 10897 var workspace = null; 10898 10899 if (typeof g_Workspace != "undefined") { 10900 workspace = document.getElementById(g_Workspace); 10901 } 10902 if (workspace == null) { 10903 workspace = document.body; 10904 } 10905 return workspace; 10906} 10907function RenderSharedHoverCardContainer() { 10908 if (SharedHoverCardContainer == null) { 10909 SharedHoverCardContainer = CreateSharedHoverCardContainer(); 10910 if (!IsIFrameSharedHoverCard) { 10911 SharedHoverCardIFrame = document.createElement("IFRAME"); 10912 if (browseris.firefox3up) { 10913 SharedHoverCardIFrame.setAttribute("src", GetPassThroughProxyRoot() + "/SHCIFrameContainer.html"); 10914 } 10915 else { 10916 SharedHoverCardIFrame.onload = function() { 10917 SharedHoverCardIFrame.onload = function() { 10918 }; 10919 var doc = SharedHoverCardIFrame.contentWindow.document; 10920 10921 doc.open(); 10922 doc.write(SharedHoverCardIFrameCode); 10923 doc.close(); 10924 }; 10925 SharedHoverCardIFrame.setAttribute("src", "about:blank"); 10926 } 10927 SharedHoverCardIFrame.style.cssText = "min-height: 400px;min-width: 500px;"; 10928 SharedHoverCardContainer.appendChild(SharedHoverCardIFrame); 10929 SharedHoverCardContainer.onmouseover = SharedHoverCardOnMouseOverHandler; 10930 SharedHoverCardContainer.onfocusin = SharedHoverCardOnMouseOverHandler; 10931 SharedHoverCardContainer.onmouseout = HideSharedHoverCardHandler; 10932 SharedHoverCardContainer.onfocusout = HideSharedHoverCardHandler; 10933 } 10934 var workspace = IMNGetSharepointWorkspace(); 10935 10936 workspace.appendChild(SharedHoverCardContainer); 10937 } 10938} 10939function SharedHoverCardOnMouseOverHandler(objEvent) { 10940 var currEvent = GetCurrentEvent(objEvent); 10941 var obj = GetEventTarget(currEvent); 10942 10943 if (Boolean(obj)) { 10944 CancelSharedHoverCardHideTimer(); 10945 } 10946} 10947function CreateSharedHoverCardContainer() { 10948 var hoverCardContainer = document.createElement("div"); 10949 10950 if (IsIFrameSharedHoverCard) { 10951 hoverCardContainer.style.cssText = "z-index: 1001;background-color: #FFFFFF;min-height: 98px;min-width: 481px;"; 10952 hoverCardContainer.style.position = "absolute"; 10953 hoverCardContainer.style.border = "0px"; 10954 hoverCardContainer.style.display = "none"; 10955 hoverCardContainer.style.visibility = "hidden"; 10956 hoverCardContainer.appendChild(CreateSpinningWheelContainer()); 10957 hoverCardContainer.appendChild(CreateSharedCardContainer()); 10958 } 10959 else { 10960 hoverCardContainer.style.cssText = "box-sizing: border-box;box-shadow: 0px 0px 7px rgba(0,0,0,0.4);z-index: 1001;background-color: #FFFFFF;min-height: 401px;min-width: 501px;"; 10961 hoverCardContainer.style.position = "absolute"; 10962 hoverCardContainer.style.border = "1px solid #DEDEDE"; 10963 hoverCardContainer.style.display = "none"; 10964 hoverCardContainer.style.visibility = "hidden"; 10965 } 10966 return hoverCardContainer; 10967} 10968function CreateSpinningWheelContainer() { 10969 var spinningWheel = document.createElement("div"); 10970 10971 spinningWheel.style.display = "none"; 10972 spinningWheel.style.visibility = "hidden"; 10973 var waitingImg = document.createElement("img"); 10974 10975 waitingImg.src = "/_layouts/15/images/gears_anv4.gif?rev=43"; 10976 spinningWheel.appendChild(waitingImg); 10977 return spinningWheel; 10978} 10979function CreateSharedCardContainer() { 10980 var container = document.createElement("div"); 10981 10982 container.style.display = "none"; 10983 container.style.visibility = "hidden"; 10984 return container; 10985}
10986function RenderSharedHoverCard(targetElement, userEmail, userTitle) { 10987 if (SharedHoverCardBootStrapped) { 10988 if (typeof sharedHoverCardShim.createSharedHoverCard != "undefined") { 10989 sharedHoverCardShim.createSharedHoverCard(targetElement, userEmail, userTitle, IMNGetPresence(userEmail)); 10990 } 10991 } 10992 else { 10993 SharedHoverCardPending = new Object; 10994 SharedHoverCardPending.TargetElement = targetElement; 10995 SharedHoverCardPending.UserEmail = userEmail; 10996 SharedHoverCardPending.UserTitle = userTitle; 10997 } 10998} 10999function IMNGetRelativeUrl() { 11000 if (IsIFrameSharedHoverCard && parent != window) { 11001 var parentWin = parent; 11002 11003 return parentWin.IMNGetRelativeUrl(); 11004 } 11005 var relativeUrl = ""; 11006 11007 if (typeof _spPageContextInfo != "undefined" && typeof _spPageContextInfo.webServerRelativeUrl != "undefined") { 11008 relativeUrl = _spPageContextInfo.webServerRelativeUrl; 11009 } 11010 else { 11011 relativeUrl = "/"; 11012 } 11013 if (relativeUrl.lastIndexOf('/') != relativeUrl.length - 1) { 11014 relativeUrl += "/"; 11015 } 11016 return relativeUrl; 11017} 11018function IMNGetExchangeServerVersion() { 11019 var version = ""; 11020 11021 if (typeof serverSettings != "undefined" && typeof serverSettings.version != "undefined") { 11022 version = serverSettings.version; 11023 } 11024 return version; 11025} 11026function IMNGetScriptKey(scriptUrl) { 11027 var key = scriptUrl; 11028 11029 if (key != null && key != '') { 11030 var lastSlashPosition = key.lastIndexOf('/'); 11031 11032 if (lastSlashPosition != -1) { 11033 key = scriptUrl.substring(lastSlashPosition + 1); 11034 } 11035 } 11036 return key; 11037} 11038function SharedHoverCardRenderComplete() { 11039 function FixOwaButtonWidth(className) { 11040 var elements = SharedHoverCardContainer.getElementsByClassName(className); 11041 11042 if (elements == null) { 11043 return; 11044 } 11045 for (var i = 0; i < elements.length; i++) { 11046 var element = elements[i]; 11047 11048 if (element != null) { 11049 element.style.minWidth = '0px'; 11050 element.style.marginLeft = '0px'; 11051 } 11052 } 11053 } 11054 function OnHoverCardUpdate() { 11055 FixOwaButtonWidth('o365button'); 11056 var elements = SharedHoverCardContainer.getElementsByClassName('image-personcard_event_mo-png'); 11057 11058 if (elements != null) { 11059 for (var i = 0; i < elements.length; i++) { 11060 var element = elements[i]; 11061 11062 if (element != null && element.parentNode != null) { 11063 element.parentNode.style.display = 'none'; 11064 } 11065 } 11066 } 11067 } 11068 if (SharedHoverCardContainer != null) { 11069 var endTime = (new Date()).getTime(); 11070 var actionName = currentShowHoverCardInstanceBootstrappedState ? "ShowHoverCardWithBootStrappedEnd" : "ShowHoverCardWithoutBootStrappedEnd"; 11071 11072 if (IsIFrameSharedHoverCard) { 11073 parent.SharedHoverCardLogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, endTime, null); 11074 } 11075 else { 11076 LogRUMExtendedAction(actionName, currentShowHoverCardInstance, null, endTime, null); 11077 } 11078 var placeHolder = SharedHoverCardContainer.firstChild; 11079 var cardContainer = SharedHoverCardContainer.lastChild; 11080 11081 if (placeHolder != null && cardContainer != null) { 11082 if (typeof window.chrome != "undefined") { 11083 cardContainer.addEventListener("DOMNodeInserted", OnHoverCardUpdate, false); 11084 } 11085 else { 11086 cardContainer.addEventListener("DOMAttrModified", OnHoverCardUpdate, false); 11087 } 11088 placeHolder.style.display = "none"; 11089 placeHolder.style.visibility = "hidden"; 11090 cardContainer.style.display = "table"; 11091 cardContainer.style.visibility = ""; 11092 } 11093 } 11094} 11095function GetPassThroughProxyRoot() { 11096 return IMNGetRelativeUrl() + "_api/OWAWebService"; 11097} 11098function GetLayoutsRoot() { 11099 if (IsIFrameSharedHoverCard && parent != window) { 11100 var parentWin = parent; 11101 11102 return parentWin.GetLayoutsRoot(); 11103 } 11104 var layoutsRoot = "_layouts/15/"; 11105 11106 if (typeof _spPageContextInfo != "undefined" && typeof _spPageContextInfo.layoutsUrl != "undefined") { 11107 layoutsRoot = _spPageContextInfo.layoutsUrl; 11108 } 11109 layoutsRoot = IMNGetRelativeUrl() + layoutsRoot; 11110 if (layoutsRoot.lastIndexOf('/') != layoutsRoot.length - 1) { 11111 layoutsRoot += "/"; 11112 } 11113 return layoutsRoot; 11114} 11115function bootStrapComplete(complete) { 11116 SharedHoverCardBootStrapped = true; 11117 if (ActiveSharedHoverCard != null && ActiveUserField != null && SharedHoverCardPending != null) { 11118 RenderSharedHoverCard(SharedHoverCardPending.TargetElement, SharedHoverCardPending.UserEmail, SharedHoverCardPending.UserTitle); 11119 } 11120} 11121function GetOwaServiceURL() { 11122 return GetPassThroughProxyRoot() + '/service.svc?action={0}'; 11123} 11124function GetGetPersonaPhotoURL() { 11125 return GetPassThroughProxyRoot() + '/service.svc/s/GetPersonaPhoto'; 11126} 11127function RegisterSharedHoverCardDependencies() { 11128 var layoutsRoot = GetLayoutsRoot(); 11129 var style = document.createElement('link'); 11130 11131 style.href = layoutsRoot + OwaRoot + 'resources/themes/base/0/sharedhovercard.css'; 11132 style.rel = 'stylesheet'; 11133 style.type = 'text/css'; 11134 (document.getElementsByTagName('head'))[0].appendChild(style); 11135 var element = document.createElement('script'); 11136 11137 element.text = 'var slabManifest = {"boot":{"Types":["IBasePersonaViewModelFactory"],"Configurations":[{"type":"ReadPer
11137sonCardComponent"},{"type":"SharedHoverCardComponent"}]}};var st = new Date();var sver = 0'; 11138 (document.getElementsByTagName('head'))[0].appendChild(element); 11139 element = document.createElement('script'); 11140 element.text = 'var serverSettings = {"version": "version","startTime": st,"cdnEndpoint": "","mapControlUrl": "","appDomainAppVirtualPath": "/owa","layout": "mouse","uiCulture": "en-US","uiTheme": "base","uiLang": "en","scriptsFolder": "' + layoutsRoot + '","resourcesFolder": "' + layoutsRoot + OwaRoot + 'resources","themedImagesFolderFormat": "' + layoutsRoot + OwaRoot + 'resources/themes/base/images/0","bootType": "SharedHoverCard","stylesLocale": "0","stylesFolderFormat": "' + layoutsRoot + OwaRoot + 'resources/themes/base/0"};'; 11141 (document.getElementsByTagName('head'))[0].appendChild(element); 11142} 11143function FallBackToActiveX() { 11144 FallbackToActiveX = true; 11145 HideSharedHoverCard(); 11146 sharedHoverCardsCount = 0; 11147 RemoveSharedHoverCardHandlers(); 11148 ProcessImn(); 11149} 11150function OwaServiceRequestHeadersDelegate() { 11151 if (IsIFrameSharedHoverCard && parent != window) { 11152 return parent.OwaServiceRequestHeadersDelegate(); 11153 } 11154 if (!fIsNullOrUndefined(window["_spPageContextInfo"]) && !fIsNullOrUndefined(window["_spFormDigestRefreshInterval"]) && !fIsNullOrUndefined(UpdateFormDigest)) { 11155 var ctxObj = window["_spPageContextInfo"]; 11156 11157 UpdateFormDigest(ctxObj.webServerRelativeUrl, window["_spFormDigestRefreshInterval"]); 11158 } 11159 var dynamicOwaServiceRequestHeaders = {}; 11160 var digestElem = document.getElementById("__REQUESTDIGEST"); 11161 11162 if (Boolean(digestElem)) { 11163 dynamicOwaServiceRequestHeaders['X-RequestDigest'] = digestElem.value; 11164 } 11165 return dynamicOwaServiceRequestHeaders; 11166} 11167function BootstrapHoverCard() { 11168 function OpenImConversation(email) { 11169 if (fIsNullOrUndefined(email) || email == '' || fIsNullOrUndefined(IMNControlObj)) { 11170 return; 11171 } 11172 if (IsIFrameSharedHoverCard) { 11173 parent.location.assign("IM:<sip:" + email + ">"); 11174 } 11175 else { 11176 window.location.assign("IM:<sip:" + email + ">"); 11177 } 11178 } 11179 function OpenEmailCompose(email) { 11180 if (fIsNullOrUndefined(email) || email == '') { 11181 return; 11182 } 11183 if (IsIFrameSharedHoverCard) { 11184 parent.location.assign("MailTo:<" + email + ">"); 11185 } 11186 else { 11187 window.location.assign("MailTo:<" + email + ">"); 11188 } 11189 } 11190 SharedHoverCardDependenciesLoaded = true; 11191 if (sharedHoverCardShim == null) { 11192 if (typeof SharedHoverCardShimParameters != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_serverSettings != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_slabManifest != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_cardCreatedCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_bootStrapCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_openImConversationCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_openEmailComposeCallBack != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_owaServiceUrl != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_getOwaServiceRequestHeaders != "undefined" && typeof SharedHoverCardShimParameters.prototype.set_getCustomGetPhotoUrl != "undefined" && typeof SharedHoverCardShim != "undefined" && typeof SharedHoverCardShim.createInstance != "undefined") { 11193 sharedHoverCardShimParameters = new SharedHoverCardShimParameters(); 11194 sharedHoverCardShimParameters.set_serverSettings(serverSettings); 11195 sharedHoverCardShimParameters.set_slabManifest(slabManifest); 11196 sharedHoverCardShimParameters.set_cardCreatedCallBack(SharedHoverCardRenderComplete); 11197 sharedHoverCardShimParameters.set_bootStrapCallBack(bootStrapComplete); 11198 sharedHoverCardShimParameters.set_openImConversationCallBack(OpenImConversation); 11199 sharedHoverCardShimParameters.set_openEmailComposeCallBack(OpenEmailCompose); 11200 sharedHoverCardShimParameters.set_owaServiceUrl(GetOwaServiceURL()); 11201 sharedHoverCardShimParameters.set_getOwaServiceRequestHeaders(OwaServiceRequestHeadersDelegate); 11202 sharedHoverCardShimParameters.set_getCustomGetPhotoUrl(GetGetPersonaPhotoURL()); 11203 sharedHoverCardShim = SharedHoverCardShim.createInstance(sharedHoverCardShimParameters); 11204 } 11205 if (sharedHoverCardShim == null && typeof SharedHoverCardShim != "undefined") { 11206 var owaServiceRequestHeaders = {}; 11207 11208 owaServiceRequestHeaders['X-RequestDigest'] = (document.getElementById('__REQUESTDIGEST')).value; 11209 sharedHoverCardShim = new SharedHoverCardShim(serverSettings, slabManifest, SharedHoverCardRenderComplete, bootStrapComplete, GetOwaServiceURL(), owaServiceRequestHeaders, GetGetPersonaPhotoURL()); 11210 } 11211 if (sharedHoverCardShim != null && typeof sharedHoverCardShim.bootStrapCard != "undefined") { 11212 sharedHoverCardShim.bootStrapCard(); 11213 } 11214 else { 11215 FallBackToActiveX(); 11216 } 11217 } 11218} 11219function RemoveSharedHoverCardHandlers() { 11220 for (var i = 0; i < sharedHoverCardMarkerBatchSize; ++i) { 11221 if (sharedHoverCardsCount == sharedHoverCardElementsCount) 11222 return; 11223 var sharedHoverCardElement = sharedHoverCardElements[sharedHoverCardsCount]; 11224 11225 if (sharedHoverCardElement != null && typeof sharedHoverCardElement != 'undefined') { 11226 sharedHoverCardElement.onmouseover = null; 11227 sharedHoverCardElement.onfocusin = null; 11228 sharedHoverCardElement.onmouseout = null; 11229 sharedHoverCardElement.onfocusout = null; 11230 } 11231 sharedHoverCardsCount++; 11232 } 11233 setTimeout("RemoveSharedHoverCardHandlers()", sharedHoverCardMarkerBatchDelay); 11234} 11235function IMNGetPresence(userEmail) { 11236 var presence = 0; 11237 11238 if (userEmail != '' && EnsureIMNControl()) { 11239 try { 11240 presence = IMNControlObj.GetStatus(userEmail, ""); 11241 presence = IMNControlObj.GetStatus(userEmail, ""); 11242 presence = MapIMNPresenceToOWAPresence(presence); 11243 } 11244 catch (e) { } 11245 } 11246 return presence; 11247} 11248function MapIMNPresenceToOWAPresence(presence) { 11249 var owaPresence = 0; 11250 11251 switch (presence) { 11252 case 0: 11253 case 11: 11254 owaPresence = 2; 11255 break; 11256 case 1: 11257 case 12: 11258 owaPresence = 1; 11259 break; 11260 case 2: 11261 case 4: 11262 case 6: 11263 case 8: 11264 case 13: 11265 case 16: 11266 case 17: 11267 owaPresence = 3; 11268 break; 11269 case 3: 11270 case 5: 11271 case 7: 11272 case 10: 11273 case 14: 11274 case 19: 11275 case 20: 11276 case 21: 11277 owaPresence = 4; 11278 break; 11279 case 9: 11280 case 15: 11281 owaPresence = 6; 11282 case 18: 11283 owaPresence = 5; 11284 break; 11285 default: 11286 owaPresence = 0; 11287 break; 11288 } 11289 return owaPresence; 11290}
11291function IMN_RenderPresenceStatusText(userEmail, containerId) { 11292 if (userEmail != '' && containerId != '' && EnsureIMNControl()) { 11293 if (!Boolean(IMNDictionaryPresenceTextObj)) { 11294 IMNDictionaryPresenceTextObj = new Object(); 11295 IMNNameDictionaryPresenceTextObj = new Object(); 11296 } 11297 if (!IMNNameDictionaryPresenceTextObj[containerId]) { 11298 IMNNameDictionaryPresenceTextObj[containerId] = userEmail; 11299 } 11300 if (typeof IMNDictionaryPresenceTextObj[containerId] == "undefined") { 11301 IMNDictionaryPresenceTextObj[containerId] = 1; 11302 } 11303 if (typeof g_presenceEnabled != "undefined" && g_presenceEnabled && IMNControlObj.PresenceEnabled) { 11304 var state = 1; 11305 11306 if (typeof IMNControlObj.GetStatus != 'undefined') { 11307 state = IMNControlObj.GetStatus(userEmail, containerId); 11308 } 11309 if (IMNIsOnlineState(state)) { 11310 var presenceTextElement = document.getElementById(containerId); 11311 11312 IMNUpdatePresenceText(presenceTextElement, state); 11313 IMNDictionaryPresenceTextObj[containerId] = state; 11314 } 11315 } 11316 } 11317} 11318function IMNUpdatePresenceText(element, state) { 11319 if (typeof element != 'undefined') { 11320 var imnInfo = IMNGetStatusImage(state, true); 11321 11322 element.innerHTML = imnInfo.alt; 11323 } 11324} 11325var _spBodyOnLoadFunctionNames; 11326var _spBodyOnLoadFunctions; 11327var _spBodyOnLoadCalled; 11328var _spOriginalFormAction; 11329var _spEscapedFormAction; 11330var _spFormOnSubmitCalled; 11331var _spBodyOnPageShowRegistered; 11332 11333function _spBodyOnPageShow(evt) { 11334 _spFormOnSubmitCalled = false; 11335} 11336function _spResetFormOnSubmitCalledFlag(sender, e) { 11337 _spFormOnSubmitCalled = false; 11338} 11339function _ribbonReadyForInit() { 11340 return _spBodyOnLoadCalled; 11341} 11342function _spBodyOnLoadWrapperInit() { 11343 if ((ajaxNavigate.get_search()).match(new RegExp("[?&]IsDlg=1")) == null) { 11344 FixRibbonAndWorkspaceDimensions(); 11345 } 11346} 11347function _spBodyOnLoadWrapper() { 11348 if (_spBodyOnLoadCalled) { 11349 return; 11350 } 11351 _spBodyOnLoadCalled = true; 11352 _spBodyOnLoadWrapperInit(); 11353 if (!_spBodyOnPageShowRegistered && typeof browseris != "undefined" && !browseris.ie && typeof window.addEventListener == 'function') { 11354 window.addEventListener('pageshow', _spBodyOnPageShow, false); 11355 _spBodyOnPageShowRegistered = true; 11356 } 11357 if (typeof Sys != "undefined" && typeof Sys.WebForms != "undefined" && typeof Sys.WebForms.PageRequestManager != "undefined") { 11358 var pageRequestMgr = Sys.WebForms.PageRequestManager.getInstance(); 11359 11360 if (!_spPageLoadedRegistered && pageRequestMgr != null) { 11361 pageRequestMgr.add_pageLoaded(_spPageLoaded); 11362 _spPageLoadedRegistered = true; 11363 } 11364 } 11365 if (!_spPageLoadedRegistered) { 11366 _spPageLoaded(); 11367 } 11368 _spFormOnSubmitCalled = false; 11369 if (typeof Sys != "undefined" && typeof Sys.Net != "undefined" && typeof Sys.Net.WebRequestManager != "undefined") { 11370 Sys.Net.WebRequestManager.add_invokingRequest(_spResetFormOnSubmitCalledFlag); 11371 } 11372 if (typeof NotifyBodyLoadedAndExecuteWaitingJobs != "undefined") { 11373 NotifyBodyLoadedAndExecuteWaitingJobs(); 11374 } 11375 ExecuteOrDelayUntilScriptLoaded(ProcessDefaultOnLoad, "core.js"); 11376 if (typeof g_prefetch == "undefined" || g_prefetch == 1) { 11377 var uri = new URI(window.location.href, { 11378 queryCaseInsensitive: true 11379 }); 11380 var prefetch = uri.getQueryParameter("prefetch"); 11381 11382 if (prefetch != String(0)) 11383 _spPreFetch(); 11384 } 11385 else { 11386 EnsureScript("strings.js", TypeofFullName("Strings"), null); 11387 EnsureScript("core.js", TypeofFullName("UpdateAnimationUserControl"), null); 11388 } 11389} 11390var g_numberOfYields; 11391 11392function _spDelayAfterAllScripts(fn) { 11393 _spYield(fn, g_numberOfYields); 11394} 11395function _spYield(fn, count) { 11396 if (count > 0) { 11397 window.setTimeout(function() { 11398 _spYield(fn, count - 1); 11399 }, 0); 11400 } 11401 else { 11402 fn(); 11403 } 11404} 11405function _spTrace(message) { 11406} 11407var g_spPreFetchKeys; 11408 11409function _spPreFetch() { 11410 _spDelayAfterAllScripts(function() { 11411 var sod; 11412 11413 if (Boolean(_v_dictSod)) { 11414 _spTrace("-----Starting prefetch-----"); 11415 g_spPreFetchKeys.push("strings.js"); 11416 g_spPreFetchKeys.push("core.js"); 11417 if (typeof ribbon == "undefined" && typeof _ribbon != "undefined") { 11418 g_spPreFetchKeys.push("ribbon"); 11419 } 11420 for (var idx = 0; idx < g_spPreFetchKeys.length; idx++) { 11421 var key = g_spPreFetchKeys[idx]; 11422 11423 sod = _v_dictSod[key]; 11424 if (Boolean(sod)) { 11425 LoadSod(sod); 11426 } 11427 } 11428 } 11429 });
11430 if (typeof _ribbon != "undefined" && Boolean(_ribbon) && SP.SOD.get_ribbonImagePrefetchEnabled()) { 11431 window.setTimeout(function() { 11432 if (Boolean(document.images) && typeof _spPageContextInfo != "undefined" && typeof _spPageContextInfo.currentLanguage != "undefined") { 11433 window.imgRibbon32x32 = new Image(); 11434 var imgUrl = "/_layouts/15/" + String(_spPageContextInfo.currentLanguage) + "/images/formatmap32x32.png"; 11435 11436 window.imgRibbon32x32.src = GetImageUrlWithRevision(imgUrl); 11437 window.imgRibbon16x16 = new Image(); 11438 imgUrl = "/_layouts/15/" + String(_spPageContextInfo.currentLanguage) + "/images/formatmap16x16.png"; 11439 window.imgRibbon16x16.src = GetImageUrlWithRevision(imgUrl); 11440 } 11441 }, 0); 11442 } 11443} 11444var _spSuppressFormOnSubmitWrapper; 11445 11446function _spFormOnSubmitWrapper() { 11447 if (_spSuppressFormOnSubmitWrapper) { 11448 return true; 11449 } 11450 if (_spFormOnSubmitCalled) { 11451 return false; 11452 } 11453 if (typeof _spFormOnSubmit == "function") { 11454 var retval = _spFormOnSubmit(); 11455 var testval = false; 11456 11457 if (typeof retval == typeof testval && retval == testval) { 11458 return false; 11459 } 11460 } 11461 if (typeof _startOnSubmitStatement == "function") { 11462 return _startOnSubmitStatement(); 11463 } 11464 _spFormOnSubmitCalled = true; 11465 return true; 11466} 11467var _inlineEditString; 11468var _spPageLoadedRegistered; 11469 11470function _spPageLoaded() { 11471 _spOriginalFormAction = null; 11472 EscapeFormAction(); 11473 RefreshInplViewState(); 11474 RefreshHeroButtonState(); 11475 InlineEditSetDefaultFocus(); 11476} 11477function InlineEditSetDefaultFocus() { 11478 if (_inlineEditString != null) { 11479 var index = _inlineEditString.indexOf("#"); 11480 11481 if (index <= 0) 11482 return; 11483 var iidVal = _inlineEditString.substring(0, index); 11484 var trs = document.getElementsByTagName("TR"); 11485 11486 for (var i = 0; i < trs.length; i++) { 11487 if (trs[i].getAttribute("automode") == iidVal) { 11488 var nodeWalkStr = _inlineEditString.substring(index + 1); 11489 var nodeWalks = nodeWalkStr.split(","); 11490 var node = trs[i]; 11491 11492 for (var j = 0; j < nodeWalks.length; j++) { 11493 if (node == null) 11494 break; 11495 node = node.firstChild; 11496 for (var k = 0; k < nodeWalks[j]; k++) { 11497 if (node == null) 11498 break; 11499 node = node.nextSibling; 11500 } 11501 } 11502 if (node != null) 11503 focusControl(node); 11504 break; 11505 } 11506 } 11507 _inlineEditString = null; 11508 } 11509} 11510function focusControl(targetControl) { 11511 if (Sys.Browser.agent === Sys.Browser.InternetExplorer) { 11512 var oldContentEditableSetting; 11513 var focusTarget = targetControl; 11514 11515 if (Boolean(focusTarget) && typeof focusTarget.contentEditable !== "undefined") { 11516 oldContentEditableSetting = focusTarget.contentEditable; 11517 focusTarget.contentEditable = false; 11518 } 11519 else { 11520 focusTarget = null; 11521 } 11522 try { 11523 targetControl.focus(); 11524 } 11525 catch (e) { } 11526 if (Boolean(focusTarget)) { 11527 focusTarget.contentEditable = oldContentEditableSetting; 11528 } 11529 } 11530 else { 11531 targetControl.focus(); 11532 } 11533} 11534function EscapeFormAction() { 11535 UpdateUrlWhenServerRedirects(); 11536 if (document.forms.length > 0 && !Boolean(_spOriginalFormAction)) { 11537 _spOriginalFormAction = document.forms[0].action; 11538 var url = _spOriginalFormAction; 11539 var index = url.indexOf("://"); 11540 11541 if (index >= 0) { 11542 var temp = url.substring(index + 3); 11543 11544 index = temp.indexOf("/"); 11545 if (index >= 0) 11546 url = temp.substring(index); 11547 if (url.length > 2 && url.charAt(0) == '/' && url.charAt(1) == '/') { 11548 url = url.substring(1); 11549 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("B4F09056-2C39-4EE4-B928-21F236B7DEA5"))) { 11550 while (url.charAt(1) === '/') { 11551 url = url.charAt(0) + url.substring(2); 11552 } 11553 } 11554 } 11555 } 11556 if (url.length > 0) { 11557 _spEscapedFormAction = escapeUrlForCallback(url); 11558 document.forms[0].action = _spEscapedFormAction; 11559 document.forms[0]._initialAction = document.forms[0].action; 11560 } 11561 } 11562} 11563function RefreshHeroButtonState() { 11564 if (typeof _spWebPartComponents != "undefined") { 11565 for (var wp in _spWebPartComponents) { 11566 if (wp.length > 7) { 11567 var strId = wp.substr(7); 11568 var heroButton = window["heroButtonWebPart" + strId]; 11569 11570 if (typeof heroButton != "undefined" && heroButton != null && heroButton == true) { 11571 var ele = document.getElementById("Hero-" + strId); 11572 11573 if (ele != null) 11574 ele.style.display = ""; 11575 } 11576 } 11577 } 11578 } 11579} 11580function RefreshInplViewState() { 11581 if (typeof window.ctx == "undefined") 11582 return; 11583 var ctxLocal = window.ctx; 11584 11585 if (ctxLocal.clvp == null) { 11586 EnsureScript("inplview", typeof InitAllClvps, function() { 11587 if (ctxLocal.clvp == null) 11588 InitAllClvps(); 11589 }); 11590 return; 11591 } 11592 var clvp = ctxLocal.clvp; 11593 var tab = clvp.tab; 11594 11595 if (tab == null || tab != null && (tab.parentNode == null || tab.parentNode.innerHTML == null)) { 11596 FixDroppedOrPastedClvps(); 11597 if (ctxLocal.dictSel != null) { 11598 ctxLocal.dictSel = []; 11599 ctxLocal.CurrentSelectedItems = 0; 11600 } 11601 } 11602} 11603function RestoreToOriginalFormAction() { 11604 if (_spOriginalFormAction != null) { 11605 if (_spEscapedFormAction == document.forms[0].action) { 11606 document.forms[0].action = _spOriginalFormAction; 11607 document.forms[0]._initialAction = document.forms[0].action; 11608 } 11609 _spOriginalFormAction = null; 11610 _spEscapedFormAction = null; 11611 } 11612} 11613function DefaultFocus() { 11614 if (typeof _spUseDefaultFocus != "undefined") { 11615 var elements = document.getElementsByName("_spFocusHere"); 11616 var elem = null; 11617 11618 if (elements == null || elements.length <= 0) { 11619 elem = document.getElementById("_spFocusHere"); 11620 } 11621 else if (elements != null && elements.length > 0) { 11622 elem = elements[0]; 11623 } 11624 if (elem != null) { 11625 var aLinks = elem.getElementsByTagName("a"); 11626 11627 if (aLinks != null && aLinks.length > 0) { 11628 for (var i = 0; i < aLinks.length; i++) { 11629 if (aLinks[i].style.visibility != "hidden") { 11630 try { 11631 aLinks[i].focus(); 11632 } 11633 catch (e) { } 11634 break; 11635 } 11636 } 11637 } 11638 } 11639 } 11640} 11641var g_fAnimateListCSR; 11642 11643function ProcessDefaultOnLoad() { 11644 PrepareForModernOnePageNavigation(); 11645 UpdateUrlWhenServerRedirects(); 11646 ProcessPNGImages(); 11647 UpdateAccessibilityUI();
11648 UpdateAnimationUserControl(false); 11649 window.setTimeout('ProcessImn()', 10); 11650 HandleDLPStatus(); 11651 ProcessOnLoadFunctionNames(_spBodyOnLoadFunctionNames); 11652 ProcessOnLoadFunctions(_spBodyOnLoadFunctions); 11653 if (typeof _spUseDefaultFocus != "undefined") 11654 DefaultFocus(); 11655 if ((ajaxNavigate.get_hash()).indexOf("InplviewHash") != -1) { 11656 EnsureScriptParams("inplview", "inplview.RestoreAllClvpsNavigation"); 11657 } 11658 ProcessReliabilityLogs(); 11659} 11660function ProcessOnLoadFunctionNames(onLoadFunctionNames) { 11661 if (onLoadFunctionNames != null) { 11662 for (var i = 0; i < onLoadFunctionNames.length; i++) { 11663 var expr = "if(typeof(" + onLoadFunctionNames[i] + ")=='function'){" + onLoadFunctionNames[i] + "();}"; 11664 11665 eval(expr); 11666 } 11667 onLoadFunctionNames = []; 11668 } 11669} 11670function ProcessOnLoadFunctions(onLoadFunctions) { 11671 for (var i = 0; i < onLoadFunctions.length; i++) { 11672 onLoadFunctions[i](); 11673 } 11674 onLoadFunctions = []; 11675} 11676var g_fAreAllSodsLoaded; 11677 11678function ProcessReliabilityLogs() { 11679 if (!g_fAreAllSodsLoaded) { 11680 g_fAreAllSodsLoaded = AreAllSodsLoaded(); 11681 window.setTimeout(ProcessReliabilityLogs, 10); 11682 return; 11683 } 11684 SP.ReadyToUploadLogs(); 11685} 11686function CoreInvoke(fn) { 11687 var args = Array.prototype.slice.call(arguments, 1); 11688 var _corefn = function() { 11689 var ref = window[fn]; 11690 11691 ref.apply(null, args); 11692 }; 11693 11694 EnsureScript("core.js", TypeofFullName(fn), _corefn); 11695 return false; 11696} 11697function _bodyOnHashChangeHandler() { 11698 if (typeof _spBodyOnHashChange != 'undefined') 11699 _spBodyOnHashChange(); 11700} 11701var DeveloperDashboard; 11702 11703function ToggleDeveloperDashboard(siteRelativeUrl) { 11704 var wnd; 11705 11706 if (!Boolean(siteRelativeUrl)) { 11707 siteRelativeUrl = ''; 11708 } 11709 if (GetCookie('WSS_DeveloperDashboard') == "true") { 11710 ddCloseWindow(DeveloperDashboard.wnd); 11711 } 11712 else { 11713 try { 11714 wnd = ddGetWindow(); 11715 if (ddIsWndValid(wnd)) { 11716 ddAttachToWindow(wnd); 11717 } 11718 else { 11719 ddOpenWindow(wnd, siteRelativeUrl); 11720 } 11721 } 11722 catch (e) { 11723 ddFail(wnd); 11724 } 11725 } 11726} 11727function ddFail(wnd) { 11728 if (Boolean(wnd)) 11729 wnd.close(); 11730} 11731function ddIsWndValid(wnd) { 11732 if ('unknown' == typeof wnd.location.href) 11733 throw null; 11734 return 'about:blank' !== wnd.location.href; 11735} 11736function ddResetState() { 11737 DeveloperDashboard.wnd = null; 11738 SetCookieEx(DeveloperDashboard.cookie, false, true, window); 11739} 11740function ddCloseWindow(wnd) { 11741 if (null != wnd) 11742 wnd.close(); 11743 ddResetState(); 11744} 11745function ddOpenWindow(wnd, siteRelativeUrl) { 11746 SetCookieEx(DeveloperDashboard.cookie, true, true, window); 11747 DeveloperDashboard.wnd = wnd; 11748 ddAdoptWindow(wnd, siteRelativeUrl); 11749} 11750function ddAdoptWindow(wnd, siteRelativeUrl) { 11751 wnd.location.href = siteRelativeUrl + '/_layouts/15/devdash.aspx'; 11752 if (browseris.chrome) 11753 window.setTimeout(function() { 11754 wnd.moveTo(screen.width / 2, 0); 11755 }, 100); 11756 else 11757 wnd.moveTo(screen.width / 2, 0); 11758} 11759function ddGetWindow() { 11760 var wnd, w, h; 11761 11762 wnd = DeveloperDashboard.wnd; 11763 if (Boolean(wnd)) 11764 return wnd; 11765 w = screen.width; 11766 h = screen.height; 11767 wnd = window.open('', 'devdash', 'height=600,width=800,resizable=1,scrollbars=1,top=' + String(h) + ',left=' + String(w)); 11768 return wnd; 11769} 11770function ddAttachToWindow(wnd) { 11771 if (null != wnd) { 11772 ddHandshake(wnd); 11773 ddCScopeSet(); 11774 } 11775 else { 11776 ddResetHandshake(); 11777 ddCScopeReset(); 11778 } 11779} 11780function ddHandshake(wnd) { 11781 var tid; 11782 var count = 0; 11783 11784 tid = setInterval(Wait, 20); 11785 function Wait() { 11786 var loaded; 11787 var currMsg; 11788 11789 loaded = 'DeveloperDashboard' in wnd && 'Messaging' in wnd.DeveloperDashboard && 'PostMsg' in wnd.DeveloperDashboard.Messaging; 11790 if (loaded) { 11791 DeveloperDashboard.PostMsg = function(to, subject, msg) { 11792 try { 11793 wnd.DeveloperDashboard.Messaging.PostMsg(to, subject, msg); 11794 } 11795 catch (e) { } 11796 }; 11797 clearInterval(tid); 11798 if (null !== DeveloperDashboard.msgQueue) { 11799 for (var i = 0, len = DeveloperDashboard.msgQueue.length; i < len; i++) { 11800 currMsg = DeveloperDashboard.msgQueue[i]; 11801 DeveloperDashboard.PostMsg(currMsg.to, currMsg.subject, currMsg.msg); 11802 } 11803 } 11804 } 11805 else { 11806 if (100 == ++count) { 11807 clearInterval(tid); 11808 ddAttachToWindow(null); 11809 } 11810 } 11811 } 11812} 11813function ddResetHandshake() { 11814 DeveloperDashboard.msgQueue = null; 11815 DeveloperDashboard.PostMsg = function(to, subject, msg) { 11816 }; 11817}
11818function ddInit() { 11819 var wnd; 11820 var attached = false; 11821 11822 if (GetCookie('WSS_DeveloperDashboard') == "true") { 11823 try { 11824 wnd = ddGetWindow(); 11825 if (ddIsWndValid(wnd)) { 11826 DeveloperDashboard.wnd = wnd; 11827 ddHandshake(wnd); 11828 attached = true; 11829 } 11830 else { 11831 wnd.close(); 11832 } 11833 } 11834 catch (e) { 11835 ddFail(wnd); 11836 } 11837 } 11838 if (!attached) { 11839 ddResetHandshake(); 11840 } 11841} 11842var CScope; 11843 11844function ddCScopeSet() { 11845 var hasETW; 11846 var nullScope; 11847 11848 hasETW = typeof window.msWriteProfilerMark != 'undefined'; 11849 nullScope = null; 11850 function LogTime(timerName) { 11851 var time = (new Date).getTime(); 11852 11853 if (hasETW) 11854 window.msWriteProfilerMark(timerName); 11855 return time; 11856 } 11857 function _CScope(scopeName, prefix) { 11858 this.Name = scopeName; 11859 this.Prefix = Boolean(prefix) ? prefix : 'Script'; 11860 this.Children = []; 11861 } 11862 _CScope.prototype = { 11863 Start: function() { 11864 _CScope.Start(this); 11865 this.StartTimeUtc = LogTime(this.Name); 11866 }, 11867 Stop: function() { 11868 this.EndTimeUtc = LogTime(this.Name); 11869 _CScope.Stop(this); 11870 }, 11871 Parent: null 11872 }; 11873 _CScope.Current = nullScope; 11874 _CScope.Start = function(scope) { 11875 scope.Parent = _CScope.Current; 11876 if (Boolean(_CScope.Current)) { 11877 _CScope.Current.Children.push(scope); 11878 } 11879 _CScope.Current = scope; 11880 }; 11881 _CScope.Stop = function(scope) { 11882 _CScope.Current = scope.Parent; 11883 if (null == _CScope.Current) { 11884 scope.Name = scope.Prefix + ' (' + scope.Name + ')'; 11885 if ("undefined" != typeof DeveloperDashboard.PostMsg) { 11886 DeveloperDashboard.PostMsg('MS.Scenarios', 'AddScenario', scope); 11887 } 11888 } 11889 }; 11890 CScope = _CScope; 11891} 11892function ddCScopeReset() { 11893 var noop = function() { 11894 }; 11895 11896 function _CScopeMock(scopeName, prefix) { 11897 } 11898 _CScopeMock.prototype = { 11899 Start: noop, 11900 Stop: noop 11901 }; 11902 CScope = _CScopeMock; 11903} 11904function ddToggleCScope() { 11905 if (null != DeveloperDashboard.wnd) 11906 ddCScopeSet(); 11907 else 11908 ddCScopeReset(); 11909} 11910var flyoutsAllowed; 11911 11912function enableFlyoutsAfterDelay() { 11913 setTimeout("flyoutsAllowed = true;", 25); 11914} 11915function overrideMenu_HoverStatic(item) { 11916 if (!flyoutsAllowed) { 11917 setTimeout(delayMenu_HoverStatic(item), 50); 11918 } 11919 else { 11920 var node = Menu_HoverRoot(item); 11921 var data = Menu_GetData(item); 11922 11923 if (!Boolean(data)) 11924 return; 11925 window.__disappearAfter = data.disappearAfter; 11926 Menu_Expand(node, data.horizontalOffset, data.verticalOffset); 11927 } 11928} 11929function delayMenu_HoverStatic(item) { 11930 return function() { 11931 overrideMenu_HoverStatic(item); 11932 }; 11933} 11934var g_ExecuteOrWaitJobs; 11935 11936function ExecuteOrDelayUntilEventNotified(func, eventName) { 11937 var executed = false; 11938 var eventInfo = g_ExecuteOrWaitJobs[eventName]; 11939 11940 if (eventInfo != null && eventInfo.notified) { 11941 if (eventInfo.args != null) { 11942 func.apply(null, eventInfo.args); 11943 } 11944 else { 11945 func(); 11946 } 11947 return true; 11948 } 11949 else { 11950 DelayUntilEventNotified(func, eventName); 11951 return false; 11952 } 11953} 11954function DelayUntilEventNotified(func, eventName) { 11955 var eventInfo = g_ExecuteOrWaitJobs[eventName]; 11956 11957 if (eventInfo == null) { 11958 eventInfo = new Object(); 11959 eventInfo.notified = false; 11960 eventInfo.jobs = []; 11961 eventInfo.args = null; 11962 g_ExecuteOrWaitJobs[eventName] = eventInfo; 11963 } 11964 eventInfo.jobs.push(func); 11965} 11966function NotifyEventAndExecuteWaitingJobs(eventName, args) { 11967 if (!Boolean(g_ExecuteOrWaitJobs)) 11968 return; 11969 var eventInfo = g_ExecuteOrWaitJobs[eventName]; 11970 11971 if (eventInfo == null || typeof eventInfo == "undefined") { 11972 eventInfo = new Object(); 11973 eventInfo.notified = true; 11974 eventInfo.jobs = []; 11975 eventInfo.args = args; 11976 g_ExecuteOrWaitJobs[eventName] = eventInfo; 11977 } 11978 else { 11979 if (eventInfo.jobs != null) { 11980 for (var i = 0; i < eventInfo.jobs.length; i++) { 11981 var func = eventInfo.jobs[i]; 11982 11983 if (args != null) {
11984 func.apply(null, args); 11985 } 11986 else { 11987 func(); 11988 } 11989 } 11990 } 11991 eventInfo.notified = true; 11992 eventInfo.jobs = []; 11993 eventInfo.args = args; 11994 } 11995} 11996function ExecuteOrDelayUntilScriptLoaded(func, depScriptFileName) { 11997 depScriptFileName = depScriptFileName.toLowerCase(); 11998 var eventName = "sp.scriptloaded-" + depScriptFileName; 11999 12000 return ExecuteOrDelayUntilEventNotified(func, eventName); 12001} 12002function NotifyScriptLoadedAndExecuteWaitingJobs(scriptFileName) { 12003 scriptFileName = scriptFileName.toLowerCase(); 12004 if (typeof _v_dictSod != 'undefined') { 12005 if (typeof _v_dictSod[scriptFileName] == 'undefined') { 12006 switch (scriptFileName) { 12007 case "ie55up.js": 12008 if (typeof _v_dictSod["browserScript"] == 'undefined') 12009 RegisterSod("browserScript", null); 12010 _v_dictSod["ie55up.js"] = _v_dictSod["browserScript"]; 12011 break; 12012 case "sp.ribbon.js": 12013 if (typeof _v_dictSod["ribbon"] == 'undefined') 12014 RegisterSod("ribbon", null); 12015 _v_dictSod["sp.ribbon.js"] = _v_dictSod["ribbon"]; 12016 break; 12017 case "inplview.js": 12018 if (typeof _v_dictSod["inplview"] == 'undefined') 12019 RegisterSod("inplview", null); 12020 _v_dictSod["inplview.js"] = _v_dictSod["inplview"]; 12021 break; 12022 default: 12023 RegisterSod(scriptFileName, null); 12024 break; 12025 } 12026 } 12027 _v_dictSod[scriptFileName].state = 4; 12028 } 12029 var eventName = "sp.scriptloaded-" + scriptFileName; 12030 12031 NotifyEventAndExecuteWaitingJobs(eventName); 12032 if (typeof g_MinimalDownload != 'undefined' && Boolean(g_MinimalDownload) && typeof RegisterModuleInit != 'undefined') { 12033 var lastSlashPos = scriptFileName.lastIndexOf('/'); 12034 12035 if (-1 != lastSlashPos) { 12036 scriptFileName = scriptFileName.substring(lastSlashPos + 1); 12037 } 12038 var lastdotPos = scriptFileName.lastIndexOf('.'); 12039 var funcName = null; 12040 12041 if (-1 == lastdotPos) 12042 funcName = scriptFileName; 12043 else 12044 funcName = scriptFileName.substring(0, lastdotPos); 12045 funcName = funcName.replace(/\./g, '_'); 12046 var funcPattern = new RegExp("^[A-Za-z0-9_\\-\$]+$"); 12047 12048 if (Boolean(funcPattern.exec(funcName))) { 12049 funcName = "$_global_" + funcName; 12050 var initFuncName = null; 12051 12052 try { 12053 initFuncName = window[funcName]; 12054 } 12055 catch (ex) { } 12056 ; 12057 if (null != initFuncName) { 12058 RegisterModuleInit(scriptFileName, initFuncName); 12059 } 12060 } 12061 } 12062} 12063function ExecuteOrDelayUntilBodyLoaded(func) { 12064 var eventName = "sp.bodyloaded"; 12065 12066 return ExecuteOrDelayUntilEventNotified(func, eventName); 12067} 12068function NotifyBodyLoadedAndExecuteWaitingJobs() { 12069 var eventName = "sp.bodyloaded"; 12070 12071 NotifyEventAndExecuteWaitingJobs(eventName); 12072} 12073function FFClick(elm) { 12074 var evt = document.createEvent("MouseEvents"); 12075 12076 evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 12077 elm.dispatchEvent(evt); 12078} 12079function _spOnSilverlightError(webPartId, sender, args) { 12080 if (args.errorType == "InitializeError") { 12081 _spSetSLErrorMessage(webPartId, Strings.STS.L_ErrorMessage_InitializeError); 12082 } 12083} 12084function _spSetSLPluginNotLoadedErrorMessage(webPartId) { 12085 _spSetSLErrorMessage(webPartId, Strings.STS.L_ErrorMessage_PluginNotLoadedError); 12086} 12087function _spSetSLErrorMessage(webPartId, strErrorMessage) { 12088 var strSilverlightErrorDivId = "SilverlightRuntimeErrorMessage_" + webPartId; 12089 var strDefaultConfigurationMessageDivId = "WebPartDefaultConfigurationMessage_" + webPartId; 12090 var strSilverlightObjectDivId = "SilverlightObjectDiv_" + webPartId; 12091 12092 (document.getElementById(strSilverlightObjectDivId)).style.display = "none"; 12093 (document.getElementById(strSilverlightErrorDivId)).style.display = "block"; 12094 (document.getElementById(strSilverlightErrorDivId)).innerHTML = strErrorMessage; 12095 (document.getElementById(strDefaultConfigurationMessageDivId)).style.display = "block"; 12096} 12097var cuiKeyHash; 12098 12099function _processKeyCodes(val) { 12100 if (cuiKeyHash[val]) 12101 return cuiKeyHash[val]; 12102 return val; 12103} 12104var g_fhs; 12105 12106function _ribbonScaleHeader(elmTopBars, isRtl) { 12107 var elmTopBar2 = elmTopBars.childNodes[1]; 12108 var len = 0; 12109 12110 if (Boolean(elmTopBar2)) 12111 len = elmTopBar2.childNodes.length; 12112 var elmTabHeaders = null; 12113 var elmTabRowRight = null; 12114 12115 if (typeof isRtl == 'undefined') 12116 isRtl = false; 12117 if (typeof g_fhs == 'undefined') { 12118 if (typeof _ribbonShouldFixRtlHeaders == 'function') 12119 g_fhs = _ribbonShouldFixRtlHeaders(isRtl); 12120 else 12121 g_fhs = false; 12122 } 12123 for (var i = 0; i < len; i++) { 12124 var child = elmTopBar2.childNodes[i];
12125 12126 if (child.className.indexOf('ms-cui-tts') != -1) 12127 elmTabHeaders = child; 12128 else if (child.className.indexOf('ms-cui-TabRowRight') != -1) 12129 elmTabRowRight = child; 12130 } 12131 if (Boolean(elmTabHeaders) && 'undefined' == typeof elmTabHeaders._widthAdded && g_fhs) 12132 _ribbonFixHeaderWidth(elmTabHeaders); 12133 if (!Boolean(elmTabHeaders) || !Boolean(elmTabRowRight)) 12134 return; 12135 elmTabRowRight.style.display = 'block'; 12136 var needsScaling = _ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl); 12137 12138 if (needsScaling) { 12139 _ribbonHeaderScaleDown(elmTabHeaders); 12140 if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) { 12141 _ribbonHeaderScaleDown(elmTabHeaders); 12142 } 12143 } 12144 else { 12145 if (_ribbonGetScaleStep(elmTabHeaders) == 0) 12146 return; 12147 _ribbonHeaderScaleUp(elmTabHeaders); 12148 if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) { 12149 _ribbonHeaderScaleDown(elmTabHeaders); 12150 return; 12151 } 12152 if (_ribbonGetScaleStep(elmTabHeaders) == 0) 12153 return; 12154 _ribbonHeaderScaleUp(elmTabHeaders); 12155 if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) 12156 _ribbonHeaderScaleDown(elmTabHeaders); 12157 } 12158 if (_ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl)) { 12159 elmTabRowRight.style.display = 'none'; 12160 } 12161} 12162function _ribbonNeedsHeaderScaling(elmTopBar2, elmTabHeaders, elmTabRowRight, isRtl) { 12163 if (elmTabHeaders.offsetWidth > 0 && elmTabRowRight.offsetWidth > 0 && _ribbonElementsWrap(elmTabHeaders, elmTabRowRight, isRtl)) { 12164 return true; 12165 } 12166 if (!g_fhs && _ribbonChildNodesWrapped(elmTabRowRight, isRtl)) 12167 return true; 12168 if (_ribbonChildNodesWrapped(elmTopBar2, isRtl)) 12169 return true; 12170 return _ribbonChildNodesWrapped(elmTabHeaders, isRtl); 12171} 12172function _ribbonChildNodesWrapped(elmParent, isRtl) { 12173 if (elmParent.offsetWidth == 0) 12174 return false; 12175 var elms = []; 12176 var count = elmParent.childNodes.length; 12177 var i; 12178 var elmChild; 12179 12180 for (i = 0; i < count; i++) { 12181 elmChild = elmParent.childNodes[i]; 12182 if (Boolean(elmChild) && elmChild.nodeName != '#text' && elmChild.offsetWidth > 0 && elmChild.offsetHeight > 0) { 12183 elms.push(elmChild); 12184 } 12185 } 12186 count = elms.length; 12187 for (i = 0; i < count; i++) { 12188 elmChild = elms[i]; 12189 var elmSibling = elms[i + 1]; 12190 12191 if (typeof elmSibling != 'undefined' && Boolean(elmSibling) && _ribbonElementsWrap(elmChild, elmSibling, isRtl)) { 12192 return true; 12193 } 12194 } 12195 return false; 12196} 12197function _ribbonElementsWrap(elmLeft, elmRight, isRtl) { 12198 if (!isRtl && elmLeft.offsetLeft + elmLeft.offsetWidth > elmRight.offsetLeft + 1) 12199 return true; 12200 else if (isRtl && elmRight.offsetLeft + elmRight.offsetWidth > elmLeft.offsetLeft + 1) 12201 return true; 12202 return false; 12203} 12204function _ribbonGetScaleStep(elm) { 12205 if ('undefined' == typeof elm._scaleStep) { 12206 elm._scaleStep = 0; 12207 if (elm.className.indexOf('ms-cui-tts-scale1') != -1) 12208 elm._scaleStep = 1; 12209 else if (elm.className.indexOf('ms-cui-tts-scale2') != -1) 12210 elm._scaleStep = 2; 12211 } 12212 return elm._scaleStep; 12213} 12214function _ribbonSetScaleStep(elm, value) { 12215 elm._scaleStep = value; 12216} 12217function _ribbonHeaderScaleDown(elmTabHeaders) { 12218 var scaleStep = _ribbonGetScaleStep(elmTabHeaders); 12219 12220 if (scaleStep == 0) { 12221 _ribbonHeaderScaleIndex(elmTabHeaders, 1); 12222 } 12223 else if (scaleStep == 1 || scaleStep == 2) { 12224 _ribbonHeaderScaleIndex(elmTabHeaders, 2); 12225 } 12226} 12227function _ribbonHeaderScaleUp(elmTabHeaders) { 12228 var scaleStep = _ribbonGetScaleStep(elmTabHeaders); 12229 12230 if (scaleStep == 1) 12231 _ribbonHeaderScaleIndex(elmTabHeaders, 0); 12232 else if (scaleStep == 2) { 12233 _ribbonHeaderScaleIndex(elmTabHeaders, 1); 12234 } 12235} 12236var g_ribbonHeaderScaleClass; 12237 12238function _ribbonHeaderScaleIndex(elmTabHeaders, index) { 12239 elmTabHeaders.className = g_ribbonHeaderScaleClass[index]; 12240 _ribbonSetScaleStep(elmTabHeaders, index); 12241 _ribbonFixHeaderWidth(elmTabHeaders); 12242} 12243function _ribbonFixHeaderWidth(elmTabHeaders) { 12244 if (!g_fhs) 12245 return; 12246 var width = _ribbonCalculateWidth(elmTabHeaders); 12247 12248 elmTabHeaders.style.width = String(width) + 'px'; 12249 elmTabHeaders._widthAdded = true; 12250} 12251function _ribbonCalculateWidth(elmTabHeaders) { 12252 var width = 0; 12253 var tabs = elmTabHeaders.childNodes; 12254 var count = tabs.length; 12255 12256 for (var i = 0; i < count; i++) { 12257 var elm = tabs[i]; 12258 12259 if (Boolean(elm) && elm.nodeName == 'LI' && elm.offsetWidth > 0) { 12260 var ctxlGroup = elm.childNodes[1]; 12261 12262 if (Boolean(ctxlGroup) && ctxlGroup.nodeName == 'UL') { 12263 var groupWidth = _ribbonCalculateWidth(ctxlGroup); 12264 12265 ctxlGroup.style.width = String(groupWidth) + 'px'; 12266 width = width + groupWidth + 4; 12267 } 12268 else { 12269 width = width + elm.offsetWidth + 2; 12270 } 12271 } 12272 } 12273 return width; 12274} 12275function SPRibbonInfo() { 12276} 12277function _ribbonOnStartInit(ribbonInfo) { 12278 OnRibbonMinimizedChanged(ribbonInfo.initialTabId == "Ribbon.Read"); 12279 var _elmRibbon = document.getElementById("Ribbon"); 12280 12281 if (!Boolean(_elmRibbon) || Boolean(ribbonInfo) && ribbonInfo.buildMinimized) 12282 return; 12283 var _elmTabCont = _elmRibbon.childNodes[2]; 12284 var bTabContainerExists = Boolean(_elmTabCont) && _elmTabCont.className.indexOf("ms-cui-tabContainer") != -1; 12285 12286 if (!bTabContainerExists && ribbonInfo.initialTabId != "Ribbon.Read") {
12287 ExecuteOrDelayUntilScriptLoaded(function() { 12288 PrepareRibbonForAnimation(false, false); 12289 _elmTabCont = document.createElement("div"); 12290 _elmTabCont.className = "ms-cui-tabContainer"; 12291 var _elmBlankTab = document.createElement("ul"); 12292 12293 _elmBlankTab.id = "Ribbon.BlankTab"; 12294 _elmBlankTab.className = "ms-cui-tabBody"; 12295 _elmBlankTab.innerHTML = "<span class=\"ms-ribbontabswitchloading\"><img src=\"" + "/_layouts/15/images/loadingcirclests16.gif?rev=43" + "\" alt=\"\"/><span>" + Strings.STS.L_Loading_Text + "</span></span>"; 12296 _elmTabCont.appendChild(_elmBlankTab); 12297 _elmRibbon.appendChild(_elmTabCont); 12298 AnimateRibbonMinimizedChanged(false); 12299 }, "core.js"); 12300 } 12301} 12302var StatusIdWithTopPriority; 12303var StatusColorWithTopPriority; 12304var StatusPriority; 12305var StatusBarClassNames; 12306var ColorMap; 12307 12308function getStatusTitle(statusId) { 12309 switch (statusId) { 12310 case 4: 12311 return Strings.STS.L_StatusBarRed_Text; 12312 case 3: 12313 return Strings.STS.L_StatusBarYellow_Text; 12314 case 2: 12315 return Strings.STS.L_StatusBarGreen_Text; 12316 case 1: 12317 return Strings.STS.L_StatusBarBlue_Text; 12318 default: 12319 return ""; 12320 } 12321} 12322var g_uniqueIndex; 12323 12324function getUniqueIndex() { 12325 g_uniqueIndex++; 12326 return g_uniqueIndex; 12327} 12328function addStatus(strTitle, strHtml, atBegining, isVanilla, bIsDismissible, dismissAltText) { 12329 var sb = document.getElementById("pageStatusBar"); 12330 12331 if (sb != null) { 12332 sb.setAttribute("aria-live", "polite"); 12333 sb.setAttribute("aria-relevant", "all"); 12334 var st = _createStatusMarkup(strTitle, strHtml, true, isVanilla, bIsDismissible, dismissAltText); 12335 12336 if (!atBegining) 12337 sb.appendChild(st); 12338 else { 12339 var refs = sb.getElementsByTagName("SPAN"); 12340 var ref = refs.length > 0 ? refs[0] : null; 12341 12342 if (ref != null) 12343 sb.insertBefore(st, ref); 12344 else 12345 sb.appendChild(st); 12346 } 12347 if (sb.childNodes.length == 1) { 12348 StatusIdWithTopPriority = st.id; 12349 StatusColorWithTopPriority = 1; 12350 } 12351 sb.style.display = "block"; 12352 return st.id; 12353 } 12354 return null; 12355} 12356function addHybridTooltipDiv(strTitle, strHtml, strColor, isVanilla, bIsDismissible, dismissAltText) { 12357 var hybridTooltipDiv = document.createElement("div"); 12358 12359 if (Boolean(hybridTooltipDiv)) { 12360 hybridTooltipDiv.id = "hybridTooltipStatusBar"; 12361 hybridTooltipDiv.setAttribute("aria-live", "polite"); 12362 hybridTooltipDiv.setAttribute("aria-relevant", "all"); 12363 hybridTooltipDiv.style.display = "block"; 12364 if (typeof strColor == 'string' && strColor in ColorMap) { 12365 hybridTooltipDiv.className = StatusBarClassNames[ColorMap[strColor]]; 12366 } 12367 var deltaPageStatusBar = document.getElementById("DeltaPageStatusBar"); 12368 12369 deltaPageStatusBar.appendChild(hybridTooltipDiv); 12370 var st = _createStatusMarkup(strTitle, strHtml, true, isVanilla, bIsDismissible, dismissAltText); 12371 12372 hybridTooltipDiv.appendChild(st); 12373 } 12374 return hybridTooltipDiv; 12375}
12376function addScsEndOfSupportNotificationDiv(strTitle, strHtml, strColor, isVanilla, bIsDismissible, dismissAltText) { 12377 var scsEndOfSupportNotificationDiv = document.createElement("div"); 12378 12379 if (Boolean(scsEndOfSupportNotificationDiv)) { 12380 scsEndOfSupportNotificationDiv.id = "scsEndOfSupportNotificationBar"; 12381 scsEndOfSupportNotificationDiv.setAttribute("aria-live", "polite"); 12382 scsEndOfSupportNotificationDiv.setAttribute("aria-relevant", "all"); 12383 scsEndOfSupportNotificationDiv.style.display = "block"; 12384 if (typeof strColor == 'string' && strColor in ColorMap) { 12385 scsEndOfSupportNotificationDiv.className = StatusBarClassNames[ColorMap[strColor]]; 12386 } 12387 var deltaPageStatusBar = document.getElementById("DeltaPageStatusBar"); 12388 12389 deltaPageStatusBar.appendChild(scsEndOfSupportNotificationDiv); 12390 var st = _createStatusMarkup(strTitle, strHtml, true, isVanilla, bIsDismissible, dismissAltText); 12391 12392 scsEndOfSupportNotificationDiv.appendChild(st); 12393 } 12394 return scsEndOfSupportNotificationDiv; 12395} 12396function addEndOfSupportNotificationDiv(strTitle, strHtml, strColor, isVanilla, bIsDismissible, dismissAltText) { 12397 var endOfSupportNotificationDiv = document.createElement("div"); 12398 12399 if (Boolean(endOfSupportNotificationDiv)) { 12400 endOfSupportNotificationDiv.id = "endOfSupportNotificationStatusBar"; 12401 endOfSupportNotificationDiv.setAttribute("aria-live", "polite"); 12402 endOfSupportNotificationDiv.setAttribute("aria-relevant", "all"); 12403 endOfSupportNotificationDiv.style.display = "block"; 12404 if (typeof strColor == 'string' && strColor in ColorMap) { 12405 endOfSupportNotificationDiv.className = StatusBarClassNames[ColorMap[strColor]]; 12406 } 12407 var deltaPageStatusBar = document.getElementById("DeltaPageStatusBar"); 12408 12409 deltaPageStatusBar.appendChild(endOfSupportNotificationDiv); 12410 var st = _createStatusMarkup(strTitle, strHtml, true, isVanilla, bIsDismissible, dismissAltText); 12411 12412 endOfSupportNotificationDiv.appendChild(st); 12413 } 12414 return endOfSupportNotificationDiv; 12415} 12416function appendStatus(sid, strTitle, strHtml) { 12417 var sb = document.getElementById("pageStatusBar"); 12418 var stRef = document.getElementById(sid); 12419 12420 if (sb != null && stRef != null) { 12421 var st = null; 12422 12423 if (Boolean(stRef.lastChild) && stRef.lastChild.tagName == "BR") { 12424 stRef.removeChild(stRef.lastChild); 12425 st = _createStatusMarkup(strTitle, strHtml, true); 12426 } 12427 else { 12428 st = _createStatusMarkup(strTitle, strHtml, false); 12429 } 12430 if (stRef.nextSibling != null) 12431 sb.insertBefore(st, stRef.nextSibling); 12432 else 12433 sb.appendChild(st); 12434 return st.id; 12435 } 12436 return null; 12437} 12438function _createStatusMarkup(strTitle, strHtml, bWithBR, bIsVanilla, bIsDismissible, dismissAltText) { 12439 var st = document.createElement("SPAN"); 12440 12441 st.id = "status_" + String(getUniqueIndex()); 12442 st.className = "ms-status-status"; 12443 var rg = []; 12444 12445 rg.push("<span id='"); 12446 rg.push(st.id); 12447 rg.push("_hiddenPriMsg' class='ms-accessible'>"); 12448 rg.push(getStatusTitle(1) + Strings.STS.L_Status_Text); 12449 rg.push("</span>"); 12450 if (!bIsVanilla) { 12451 rg.push("<span class=\"ms-status-iconSpan\"><img class=\"ms-status-iconImg\" src=\"/_layouts/15/images/spcommon.png\" /></span>"); 12452 } 12453 if (strTitle.length != 0) { 12454 rg.push("<span class=\"ms-bold ms-status-title\">"); 12455 rg.push(strTitle); 12456 rg.push("</span>"); 12457 } 12458 rg.push("<span class=\"ms-status-body\" id='"); 12459 rg.push(st.id); 12460 rg.push("_body"); 12461 rg.push("'>"); 12462 rg.push(strHtml); 12463 rg.push("</span>"); 12464 if (bIsDismissible) { 12465 rg.push("<a href=\"#\" class=\"ms-status-iconSpan\"><img class=\"ms-status-dismissIconImg\" alt=\""); 12466 rg.push(dismissAltText); 12467 rg.push("\" src=\"/_layouts/15/images/spcommon.png\" onclick=\"javascript:removeStatus('"); 12468 rg.push(st.id); 12469 if (((String(strHtml)).toLowerCase()).indexOf("configssc.aspx") != -1) { 12470 rg.push("');__doPostBack('DismissSiteCreationOnlineNotification');\"/></a>"); 12471 } 12472 } 12473 if (bWithBR && !bIsVanilla) 12474 rg.push("<br/>"); 12475 st.innerHTML = rg.join(""); 12476 st.setAttribute("role", "alert"); 12477 st.priorityColor = 1; 12478 st.tabIndex = 0; 12479 return st; 12480} 12481function removeAllStatus(hide) { 12482 var sb = document.getElementById("pageStatusBar"); 12483 12484 if (sb != null) { 12485 sb.innerHTML = ""; 12486 sb.className = StatusBarClassNames[1]; 12487 StatusColorWithTopPriority = null; 12488 StatusIdWithTopPriority = null; 12489 if (hide) 12490 sb.style.display = "none"; 12491 } 12492} 12493function setStatusPriColor(sid, strColor) { 12494 var st = document.getElementById(sid); 12495 12496 if (st != null && typeof strColor == 'string') { 12497 if (strColor in StatusPriority) { 12498 st.priorityColor = StatusPriority[strColor]; 12499 } 12500 else { 12501 st.priorityColor = 1; 12502 } 12503 var hiddenSpan = st.firstChild; 12504 12505 if (hiddenSpan != null && hiddenSpan.id == sid + "_hiddenPriMsg") { 12506 hiddenSpan.innerHTML = getStatusTitle(st.priorityColor) + Strings.STS.L_Status_Text; 12507 } 12508 if (sid == StatusIdWithTopPriority) { 12509 if (st.priorityColor >= StatusColorWithTopPriority) 12510 StatusColorWithTopPriority = st.priorityColor; 12511 else 12512 _selectStatusWithTopPriority();
12513 } 12514 else { 12515 if (st.priorityColor > StatusColorWithTopPriority) { 12516 StatusIdWithTopPriority = sid; 12517 StatusColorWithTopPriority = st.priorityColor; 12518 } 12519 } 12520 var sb = document.getElementById("pageStatusBar"); 12521 12522 if (Boolean(sb)) 12523 sb.className = StatusBarClassNames[StatusColorWithTopPriority]; 12524 } 12525} 12526function _selectStatusWithTopPriority() { 12527 var sb = document.getElementById("pageStatusBar"); 12528 12529 if (sb != null) { 12530 var statusId = null; 12531 var statusColor = 1; 12532 var statuses = sb.childNodes; 12533 var statusesLen = statuses.length; 12534 var stat = null; 12535 12536 for (var i = 0; i < statusesLen; i++) { 12537 stat = statuses[i]; 12538 if (typeof stat.priorityColor != 'undefined' && stat.priorityColor > statusColor) { 12539 statusColor = stat.priorityColor; 12540 statusId = stat.id; 12541 } 12542 } 12543 StatusIdWithTopPriority = statusId; 12544 StatusColorWithTopPriority = statusColor; 12545 } 12546} 12547function updateStatus(sid, strHtml) { 12548 var bid = sid + "_body"; 12549 var b = document.getElementById(bid); 12550 12551 if (Boolean(b)) 12552 b.innerHTML = strHtml; 12553} 12554function removeStatus(sid) { 12555 var st = document.getElementById(sid); 12556 12557 if (st != null) { 12558 if (Boolean(st.lastChild) && st.lastChild.tagName == "BR") { 12559 var prevSt = st.previousSibling; 12560 12561 if (Boolean(prevSt) && Boolean(prevSt.lastChild) && prevSt.lastChild.tagName != "BR") { 12562 var br = document.createElement("BR"); 12563 12564 prevSt.appendChild(br); 12565 } 12566 } 12567 st.parentNode.removeChild(st); 12568 var sb = document.getElementById("pageStatusBar"); 12569 12570 if (Boolean(sb)) { 12571 if ((sb.getElementsByTagName("SPAN")).length == 0) { 12572 sb.className = StatusBarClassNames[1]; 12573 StatusColorWithTopPriority = null; 12574 StatusIdWithTopPriority = null; 12575 sb.style.display = "none"; 12576 } 12577 else { 12578 if (sid == StatusIdWithTopPriority) { 12579 _selectStatusWithTopPriority(); 12580 sb.className = StatusBarClassNames[StatusColorWithTopPriority]; 12581 } 12582 } 12583 } 12584 } 12585} 12586var g_dlgWndTop; 12587var g_spDlgLauncher; 12588var g_ModalDialogCount; 12589var g_overlayPopup; 12590var g_childDialog; 12591 12592function _dlgWndTop() { 12593 if (Boolean(g_dlgWndTop)) { 12594 return g_dlgWndTop; 12595 } 12596 try { 12597 var wnd = window; 12598 12599 while (wnd != null && wnd != wnd.parent) { 12600 wnd = wnd.parent; 12601 if (wnd != null && wnd.g_spDlgLauncher) { 12602 g_dlgWndTop = wnd; 12603 } 12604 } 12605 } 12606 catch (e) { } 12607 finally { 12608 if (!Boolean(g_dlgWndTop)) { 12609 g_dlgWndTop = window; 12610 } 12611 } 12612 return g_dlgWndTop; 12613} 12614function commonShowModalDialog(url, features, callback, args) { 12615 function assocArray() { 12616 return []; 12617 } 12618 function assocArray_add(array, key, value) { 12619 array.push(key); 12620 array[key] = value; 12621 } 12622 function assocArray_keys(array) { 12623 var k = []; 12624 12625 for (var j = 0; j < array.length; j++) 12626 k.push(array[j]); 12627 return k; 12628 } 12629 if (document.getElementById("__spPickerHasReturnValue") != null) 12630 (document.getElementById("__spPickerHasReturnValue")).value = ""; 12631 if (document.getElementById("__spPickerReturnValueHolder") != null) 12632 (document.getElementById("__spPickerReturnValueHolder")).value = ""; 12633 commonModalDialogReturnValue.clear(); 12634 var rv; 12635 12636 if (Boolean(window.showModalDialog)) { 12637 rv = window.showModalDialog(url, args, features); 12638 if (Boolean(callback)) { 12639 invokeModalDialogCallback(callback, rv); 12640 } 12641 } 12642 else { 12643 var defaultWidth = 500, defaultHeight = 550, defaultScrollbars = "yes"; 12644 12645 if (!Boolean(features))
12646 features = "width=" + String(defaultWidth) + ",height=" + String(defaultHeight); 12647 else { 12648 var feats = assocArray(), fre, split; 12649 12650 if (features.search(/^(\s*\w+\s*:\s*.+?\s*)(;\s*\s*\w+\s*:\s*.+?\s*)*(;\s*)?$/) != -1) { 12651 fre = /^\s*(\w+)\s*:\s*(.+?)\s*$/; 12652 split = features.split(/\s*;\s*/); 12653 } 12654 else { 12655 fre = /^\s*(\w+)\s*=\s*(.+?)\s*$/; 12656 split = features.split(/\s*,\s*/); 12657 } 12658 for (var feat in split) { 12659 var kv = fre.exec(split[feat]); 12660 12661 if (Boolean(kv) && kv.length == 3) 12662 assocArray_add(feats, kv[1].toLowerCase(), kv[2]); 12663 } 12664 if (!Boolean(feats["width"])) 12665 assocArray_add(feats, "width", feats["dialogwidth"] || Boolean(defaultWidth)); 12666 if (!Boolean(feats["height"])) 12667 assocArray_add(feats, "height", feats["dialogheight"] || Boolean(defaultHeight)); 12668 if (!Boolean(feats["scrollbars"])) 12669 assocArray_add(feats, "scrollbars", feats["scroll"] || Boolean(defaultScrollbars)); 12670 features = ''; 12671 var keys = assocArray_keys(feats); 12672 12673 for (var i in keys) { 12674 if (Boolean(features)) 12675 features += ","; 12676 features += keys[i] + "=" + feats[keys[i]]; 12677 } 12678 } 12679 var modalDialog = window.open(url, '_blank', features + ',modal=yes,dialog=yes'); 12680 12681 modalDialog.dialogArguments = args; 12682 window.onfocus = function() { 12683 var bHasReturnValue = document.getElementById("__spPickerHasReturnValue") != null && (document.getElementById("__spPickerHasReturnValue")).value == "1" || commonModalDialogReturnValue.isSet(); 12684 12685 if (Boolean(modalDialog) && !modalDialog.closed && !bHasReturnValue) { 12686 modalDialog.focus(); 12687 } 12688 else { 12689 window.onfocus = null; 12690 if (Boolean(callback)) { 12691 invokeModalDialogCallback(callback, rv); 12692 } 12693 } 12694 }; 12695 if (!browseris.ie) { 12696 if (window.frameElement != null) { 12697 window.fndlgClose = callback; 12698 } 12699 } 12700 } 12701 return rv; 12702} 12703function invokeModalDialogCallback(callback, rv) { 12704 if (typeof rv != "undefined" && rv != null) { 12705 callback(rv); 12706 } 12707 else if (commonModalDialogReturnValue.isSet()) { 12708 rv = commonModalDialogReturnValue.get(); 12709 callback(rv); 12710 commonModalDialogReturnValue.clear(); 12711 } 12712 else if (document.getElementById("__spPickerHasReturnValue") != null && (document.getElementById("__spPickerHasReturnValue")).value == "1" && document.getElementById("__spPickerReturnValueHolder") != null) { 12713 rv = (document.getElementById("__spPickerReturnValueHolder")).value; 12714 callback(rv); 12715 } 12716 return rv; 12717} 12718function setModalDialogReturnValue(wnd, returnValue) { 12719 if (wnd.opener != null && typeof returnValue == 'string' && wnd.opener.document.getElementById('__spPickerHasReturnValue') != null && wnd.opener.document.getElementById('__spPickerReturnValueHolder') != null) { 12720 (wnd.opener.document.getElementById('__spPickerHasReturnValue')).value = '1'; 12721 (wnd.opener.document.getElementById('__spPickerReturnValueHolder')).value = returnValue; 12722 } 12723 else { 12724 setModalDialogObjectReturnValue(wnd, returnValue); 12725 } 12726 if (browseris.safari125up || browseris.msEdge) { 12727 if (wnd.opener != null && wnd.opener.fndlgClose != null) 12728 wnd.opener.fndlgClose(returnValue); 12729 } 12730} 12731function setModalDialogObjectReturnValue(wnd, returnValue) { 12732 if (Boolean(wnd.showModalDialog)) { 12733 wnd.returnValue = returnValue; 12734 } 12735 if (wnd.opener != null) { 12736 if (typeof wnd.opener.commonModalDialogReturnValue != 'undefined') { 12737 var retVal = wnd.opener.commonModalDialogReturnValue; 12738 12739 retVal.set(returnValue); 12740 } 12741 } 12742} 12743function CommonGlobalDialogReturnValue_InitializePrototype() { 12744 CommonGlobalDialogReturnValue.prototype.hasRetVal = undefined; 12745 CommonGlobalDialogReturnValue.prototype.retVal = undefined; 12746 CommonGlobalDialogReturnValue.prototype.set = function(obj) { 12747 if (typeof obj != "undefined") { 12748 this.retVal = obj; 12749 this.hasRetval = true; 12750 } 12751 }; 12752 CommonGlobalDialogReturnValue.prototype.isSet = function() { 12753 return this.hasRetval; 12754 }; 12755 CommonGlobalDialogReturnValue.prototype.get = function() { 12756 if (this.hasRetval) 12757 return this.retVal; 12758 else 12759 return undefined; 12760 }; 12761 CommonGlobalDialogReturnValue.prototype.clear = function() { 12762 this.hasRetval = false; 12763 this.retVal = null; 12764 }; 12765} 12766function CommonGlobalDialogReturnValue() { 12767} 12768var commonModalDialogReturnValue; 12769 12770function commonModalDialogOpen(url, options, callback, args) { 12771 options.url = url; 12772 options.dialogReturnValueCallback = callback; 12773 options.args = args;
12774 EnsureScriptParams("SP.UI.Dialog.js", "SP.UI.ModalDialog.showModalDialog", options); 12775} 12776function commonModalDialogClose(dialogResult, returnValue) { 12777 var dlg = null; 12778 var wndTop = _dlgWndTop(); 12779 12780 if (typeof wndTop.g_childDialog != 'undefined') 12781 dlg = wndTop.g_childDialog; 12782 if (Boolean(dlg)) { 12783 dlg.set_returnValue(returnValue); 12784 dlg.close(dialogResult); 12785 } 12786} 12787function commonModalDialogHide() { 12788 var dlg; 12789 var wndTop = _dlgWndTop(); 12790 12791 if (typeof wndTop.g_childDialog != 'undefined') 12792 dlg = wndTop.g_childDialog; 12793 if (Boolean(dlg)) { 12794 dlg.hide(); 12795 } 12796} 12797function commonModalDialogGetArguments() { 12798 var dlg; 12799 var wndTop = _dlgWndTop(); 12800 12801 if (typeof wndTop.g_childDialog != 'undefined') 12802 dlg = wndTop.g_childDialog; 12803 if (Boolean(dlg) && typeof dlg.get_args != "undefined") 12804 return dlg.get_args(); 12805 return null; 12806} 12807function ShowPopupDialog(dlgUrl) { 12808 ShowPopupDialogWithCallback(dlgUrl, PopupDialogCallback); 12809} 12810function ShowPopupDialogWithCallback(dlgUrl, dialogCallback) { 12811 if (FV4UI()) { 12812 var dlgOptions = { 12813 url: dlgUrl, 12814 dialogReturnValueCallback: dialogCallback 12815 }; 12816 12817 EnsureScriptParams("SP.UI.Dialog.js", "SP.UI.ModalDialog.showModalDialog", dlgOptions); 12818 } 12819 else 12820 Nav.navigate(dlgUrl); 12821} 12822function PopupDialogCallback(dialogResult, returnValue) { 12823 if (dialogResult == 1) { 12824 Nav.navigate((_dlgWndTop()).location.href); 12825 } 12826} 12827function SelectField(view, selectID) { 12828 CoreInvoke('_SelectField', view, selectID); 12829} 12830function FilterField(view, fieldName, fieldValue, selOption) { 12831 CoreInvoke('_FilterField', view, fieldName, fieldValue, selOption); 12832} 12833function SetControlValue(controlId, value) { 12834 CoreInvoke('_SetControlValue', controlId, value); 12835} 12836function SubmitFormPost(url, bForceSubmit, bDemoteIntoFormBody) { 12837 CoreInvoke('_SubmitFormPost', url, bForceSubmit, bDemoteIntoFormBody); 12838} 12839function SuiteOnClick(clickHandler) { 12840 CoreInvoke('_SuiteOnClick', clickHandler); 12841} 12842function GoToPageRelative(url) { 12843 CoreInvoke('_GoToPageRelative', url); 12844} 12845function EnterFolder(url) { 12846 CoreInvoke('_EnterFolder', url); 12847} 12848function HandleFolder(ele, objEvent, url, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask) { 12849 PreventDefaultNavigation(); 12850 CoreInvoke('_HandleFolder', ele, objEvent, url, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask); 12851} 12852function VerifyFolderHref(ele, objEvent, url, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect) { 12853 CoreInvoke('_VerifyFolderHref', ele, objEvent, url, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect); 12854} 12855function VerifyHref(ele, objEvent, iDefaultItemOpen, strProgId, strServerFileRedirect) { 12856 CoreInvoke('_VerifyHref', ele, objEvent, iDefaultItemOpen, strProgId, strServerFileRedirect); 12857} 12858function DispEx(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask) { 12859 g_MDNav = (function(u) { 12860 return u; 12861 })(); 12862 CoreInvoke('_DispEx', ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strHtmlTrProgId, iDefaultItemOpen, strProgId, strHtmlType, strServerFileRedirect, strCheckoutUser, strCurrentUser, strRequireCheckout, strCheckedoutTolocal, strPermmask); 12863 return g_MDNav; 12864} 12865function EditItemWithCheckoutAlert(evt, Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser) { 12866 CoreInvoke('_EditItemWithCheckoutAlert', evt, Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser); 12867} 12868function STSNavigateWithCheckoutAlert(Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser) { 12869 CoreInvoke('_STSNavigateWithCheckoutAlert', Url, bCheckout, bIsCheckedOutToLocal, strDocument, strhttpRoot, strCurrentUser, strCheckoutUser); 12870} 12871function NewItem2(evt, url) { 12872 CoreInvoke('_NewItem2', evt, url); 12873} 12874function NewItem(url) { 12875 CoreInvoke('_NewItem', url); 12876} 12877function EditItem2(evt, url) { 12878 CoreInvoke('_EditItem2', evt, url); 12879} 12880function EditItem(url) { 12881 CoreInvoke('_EditItem', url); 12882} 12883function RefreshPageTo(evt, url, bForceSubmit) { 12884 CoreInvoke('_RefreshPageTo', evt, url, bForceSubmit); 12885} 12886function AddGroupToCookie(groupName) { 12887 CoreInvoke('_AddGroupToCookie', groupName); 12888} 12889function RemoveGroupFromCookie(groupName) { 12890 CoreInvoke('_RemoveGroupFromCookie', groupName); 12891} 12892function ExpGroupBy(formObj) { 12893 CoreInvoke('_ExpGroupBy', formObj); 12894}
12895function DispDocItem(ele, strProgId) { 12896 CoreInvoke('_DispDocItem', ele, strProgId); 12897} 12898function DispDocItemExWithServerRedirect(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect) { 12899 CoreInvoke('_DispDocItemExWithServerRedirect', ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect); 12900} 12901function DispDocItemExWithServerRedirectOrNavigate(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect) { 12902 if (IsSupportedMacBrowser() && !(window["OffSwitch"] == null || OffSwitch.IsActive("BDD1B8EC-6631-4FD1-B8DE-BB70531B030E"))) { 12903 NavigateElementHref(ele); 12904 } 12905 else { 12906 DispDocItemExWithServerRedirect(ele, objEvent, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId, iDefaultItemOpen, strServerFileRedirect); 12907 } 12908} 12909function DispDocItemEx(ele, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId) { 12910 CoreInvoke('_DispDocItemEx', ele, fTransformServiceOn, fShouldTransformExtension, fTransformHandleUrl, strProgId); 12911} 12912function PortalPinToMyPage(eForm, portalUrl, instanceId, listTitle, listDescription, listViewUrl, baseType, serverTemplate) { 12913 CoreInvoke('_PortalPinToMyPage', eForm, portalUrl, instanceId, listTitle, listDescription, listViewUrl, baseType, serverTemplate); 12914} 12915function MoveToViewDate(strdate, view_type, ctxid) { 12916 CoreInvoke('_MoveToViewDate', strdate, view_type, ctxid); 12917} 12918function MoveToDate(strdate, ctxid) { 12919 CoreInvoke('_MoveToDate', strdate, ctxid); 12920} 12921function ClickDay(date) { 12922 CoreInvoke('_ClickDay', date); 12923} 12924function GetMonthView(str) { 12925 CoreInvoke('_GetMonthView', str); 12926} 12927function OptLoseFocus(opt) { 12928 CoreInvoke('_OptLoseFocus', opt); 12929} 12930function SetCtrlFromOpt(ctrl, opt) { 12931 CoreInvoke('_SetCtrlFromOpt', ctrl, opt); 12932} 12933function ChangeLayoutMode(p1, p2) { 12934 CoreInvoke('_ChangeLayoutMode', p1, p2); 12935} 12936function MSOLayout_ChangeLayoutMode(p1, p2) { 12937 ChangeLayoutMode(p1, p2); 12938} 12939function WebPartMenuKeyboardClick(elem, expectedKeyCode1, expectedKeyCode2, evt) { 12940 CoreInvoke('_WebPartMenuKeyboardClick', elem, expectedKeyCode1, expectedKeyCode2, evt); 12941} 12942function ShowToolPane2Wrapper(p1, p2, p3) { 12943 CoreInvoke('_ShowToolPane2Wrapper', p1, p2, p3); 12944} 12945function EditInSPD(strDocument, bRefresh) { 12946 CoreInvoke('_EditInSPD', strDocument, bRefresh); 12947} 12948function SetupFixedWidthWebParts() { 12949 CoreInvoke('_SetupFixedWidthWebParts'); 12950} 12951function ToggleAllItems(evt, cbx, ctxNum) { 12952 CoreInvoke('_ToggleAllItems', evt, cbx, ctxNum); 12953} 12954function CommandUIExecuteCommand(commandId) { 12955 CoreInvoke('_CommandUIExecuteCommand', commandId); 12956} 12957function PopMenuFromChevron(e) { 12958 CoreInvoke('_PopMenuFromChevron', e); 12959} 12960function ListHeaderMenu_OnMouseDown(e) { 12961 CoreInvoke('_ListHeaderMenu_OnMouseDown', e); 12962} 12963function NavigateToSubNewAspx(strHttpRoot, strArgs) { 12964 CoreInvoke('_NavigateToSubNewAspx', strHttpRoot, strArgs); 12965} 12966function NavigateToManagePermsPage(strHttpRoot, strListId, strFileRef) { 12967 CoreInvoke('_NavigateToManagePermsPage', strHttpRoot, strListId, strFileRef); 12968} 12969function DoNavigateToTemplateGallery(strSaveLocUrl, strTGUrl) { 12970 CoreInvoke('_DoNavigateToTemplateGallery', strSaveLocUrl, strTGUrl); 12971} 12972function RefreshPage(dialogResult) { 12973 CoreInvoke('_RefreshPage', dialogResult); 12974} 12975function OpenPopUpPage(url, callback, width, height) { 12976 CoreInvoke('_OpenPopUpPage', url, callback, width, height); 12977} 12978function GoToCreateNewPage() { 12979 CoreInvoke('_GoToCreateNewPage'); 12980} 12981function OpenCreateWebPageDialog(url) { 12982 CoreInvoke('_OpenCreateWebPageDialog', url); 12983} 12984function EditLink2(elm, ctxNum) { 12985 CoreInvoke('_EditLink2', elm, ctxNum); 12986} 12987function GoBack(defViewUrl) { 12988 CoreInvoke('_GoBack', defViewUrl); 12989} 12990function ReplyItem(url, threading, guid, subject) { 12991 CoreInvoke('_ReplyItem', url, threading, guid, subject); 12992} 12993function ExportToDatabase(strSiteUrl, strListID, strViewID, fUseExistingDB) { 12994 CoreInvoke('_ExportToDatabase', strSiteUrl, strListID, strViewID, fUseExistingDB); 12995} 12996function ExportList(using) { 12997 CoreInvoke('_ExportList', using); 12998} 12999function ClearSearchTerm(guidView) { 13000 CoreInvoke('_ClearSearchTerm', guidView); 13001} 13002function SubmitSearchForView(ViewGuid) { 13003 CoreInvoke('_SubmitSearchForView', ViewGuid); 13004} 13005function SubmitSearchRedirect(strUrl) { 13006 CoreInvoke('_SubmitSearchRedirect', strUrl); 13007} 13008function AlertAndSetFocus(msg, fieldName) { 13009 CoreInvoke('_AlertAndSetFocus', msg, fieldName); 13010} 13011function AlertAndSetFocusForDropdown(msg, fieldName) { 13012 CoreInvoke('_AlertAndSetFocusForDropdown', msg, fieldName); 13013} 13014function AddSilverlightWebPart(item, zoneNum, zoneIndex) { 13015 CoreInvoke('_AddSilverlightWebPart', item, zoneNum, zoneIndex); 13016} 13017function UserSelectionOnClick(chk, viewCounter) { 13018 CoreInvoke('_UserSelectionOnClick', chk, viewCounter); 13019} 13020function OnIframeLoad() { 13021 CoreInvoke('_OnIframeLoad'); 13022} 13023function OnFocusFilter(elm) { 13024 CoreInvoke('_OnFocusFilter', elm); 13025} 13026function TopHelpButtonClick(strParam, evt) { 13027 cancelDefault(evt); 13028 CoreInvoke('_TopHelpButtonClick', strParam); 13029} 13030function HelpWindowKey(strKey) { 13031 CoreInvoke('_HelpWindowKey', strKey); 13032} 13033function HelpWindowUrl(strUrl) { 13034 CoreInvoke('_HelpWindowUrl', strUrl); 13035} 13036function HelpWindow() { 13037 CoreInvoke('_HelpWindow'); 13038} 13039function ToggleFullScreenMode() { 13040 CoreInvoke('_ToggleFullScreenMode'); 13041} 13042function OnClickFilter(obj, e) { 13043 return CoreInvoke('_OnClickFilter', obj, e); 13044} 13045function GCActivateAndFocus(GCObject) { 13046 CoreInvoke('_GCActivateAndFocus', GCObject); 13047} 13048function GCNavigateToNonGridPage() { 13049 CoreInvoke('_GCNavigateToNonGridPage'); 13050} 13051function _spBodyOnHashChange() { 13052 ajaxNavigate._raiseNavigate(ajaxNavigate); 13053} 13054function setInnerText(elem, text) { 13055 var doc = elem.ownerDocument; 13056 13057 if (Boolean(doc.createTextNode)) { 13058 var textNode = doc.createTextNode(text); 13059 13060 elem.innerHTML = ''; 13061 elem.appendChild(textNode); 13062 } 13063 else { 13064 elem.innerText = text; 13065 } 13066} 13067var SPListView; 13068var getSharingHintHtml; 13069var onSharingHintClicked; 13070 13071function RegisterSharedWithFieldRenderer() { 13072 if (typeof ComputedFieldWorker !== 'undefined' && ComputedFieldWorker !== null) { 13073 ComputedFieldWorker['SharedWith'] = RenderSharedWithField; 13074 }
13075 function RenderSharedWithField(renderCtx, field, listSchema) { 13076 if (renderCtx.CurrentItem.PrincipalCount == null) { 13077 return ''; 13078 } 13079 var strHTML = []; 13080 13081 strHTML.push('<span class="js-sharingHint-listViewWrapper" data-updatestatus="done">'); 13082 strHTML.push(getSharingHintHtml(renderCtx.CurrentItem, null)); 13083 strHTML.push("</span>"); 13084 return strHTML.join(""); 13085 } 13086 getSharingHintHtml = function(ctxListItem, csomSharedWithUsers) { 13087 var tooltip = ctxListItem.PrincipalCount < 1 ? Strings.STS.L_SharedWithNone : Strings.STS.L_SharingHintShared; 13088 var strHTML = []; 13089 13090 strHTML.push('<a class="ms-subtleLink" href="#" onclick="onSharingHintClicked(this); return false;" aria-label=' + StAttrQuote(tooltip) + '>'); 13091 strHTML.push(getSharingHintIconHtml(ctxListItem)); 13092 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(144) && _spPageContextInfo.webUIVersion >= 15) 13093 strHTML.push(getSharingHintString(ctxListItem, csomSharedWithUsers)); 13094 strHTML.push('</a>'); 13095 return strHTML.join(""); 13096 }; 13097 var getSharingHintString = function(ctxListItem, csomSharedWithUsers) { 13098 var sharingStr = Strings.STS.L_SharedWithNone_Short; 13099 var principalCount = Number(ctxListItem.PrincipalCount); 13100 var sharedUsers = Boolean(csomSharedWithUsers) ? csomSharedWithUsers : ctxListItem.SharedWithUsers; 13101 13102 if (principalCount > 0) { 13103 sharingStr = Strings.STS.L_SharingHintShared_Short; 13104 } 13105 var sharingHintHtml = "<span class='js-sharingHintString ms-noWrap ms-imnSpan ms-displayInlineBlock' >" + Encoding.HtmlEncode(sharingStr) + "</span>"; 13106 13107 return sharingHintHtml; 13108 }; 13109 var getSharingHintIconHtml = function(ctxListItem) { 13110 var tooltip = ''; 13111 var imageClass = ''; 13112 var principalCount = Number(ctxListItem.PrincipalCount); 13113 13114 if (principalCount < 1) { 13115 tooltip = Strings.STS.L_SharedWithNone; 13116 imageClass = 'js-sharingHint-unshared'; 13117 } 13118 else { 13119 imageClass = 'js-sharingHint-sharedDefault'; 13120 tooltip = Strings.STS.L_SharingHintShared; 13121 } 13122 var iconHtml = '<span class="js-sharingHint-iconContainer ms-imnImg">' + '<img class=' + StAttrQuote(imageClass) + ' title=' + StAttrQuote(tooltip) + ' alt=' + StAttrQuote(tooltip) + ' src=' + StAttrQuote(GetThemedImageUrl("spcommon.png")) + '></img></span>'; 13123 13124 return iconHtml; 13125 }; 13126 13127 onSharingHintClicked = function(elt) { 13128 var iid = findIIDInAncestorNode(elt); 13129 var ctxListItem = GetListItemByIID(iid); 13130 var ctxRgiid = GetCtxRgiidFromIid(iid); 13131 var viewCtx = ctxRgiid.ctx; 13132 13133 _WriteDocEngagement("Documents_SharingIconClick", "OneDrive_SharingIconClick"); 13134 SP.SOD.executeFunc("sharing.js", "DisplaySharedWithDialog", function() { 13135 var forceReadOnly = !permMaskContains(ctxListItem.PermMask, 0x0, 0x2000000); 13136 13137 DisplaySharedWithDialogCore(viewCtx.HttpRoot, viewCtx.listName, ctxListItem.ID, forceReadOnly, null, ctxListItem["FSObjType"], ctxListItem["HTML_x0020_File_x0020_Type"], false, viewCtx.RealHttpRoot); 13138 }); 13139 }; 13140} 13141function CalloutRenderViewTemplate(renderCtx) { 13142 var iStr = ''; 13143 13144 iStr += renderCtx.RenderHeader(renderCtx); 13145 iStr += renderCtx.RenderBody(renderCtx); 13146 iStr += renderCtx.RenderFooter(renderCtx); 13147 return iStr; 13148} 13149function CalloutRenderHeaderTemplate(renderCtx) { 13150 var calloutID = GetCalloutElementIDFromRenderCtx(renderCtx); 13151 var title = ''; 13152 13153 if (renderCtx.ListSchema.IsDocLib == '1') { 13154 title = renderCtx.CurrentItem.FileLeafRef; 13155 } 13156 else { 13157 title = renderCtx.CurrentItem.Title; 13158 } 13159 return Callout.GenerateDefaultHeader(calloutID, Encoding.HtmlEncode(title), null, true); 13160} 13161function CalloutRenderFooterTemplate(renderCtx, calloutActionMenuPopulator, renderECB) { 13162 if (typeof calloutActionMenuPopulator === 'undefined' || calloutActionMenuPopulator === null) { 13163 calloutActionMenuPopulator = CalloutOnPostRenderTemplate; 13164 } 13165 if (typeof renderECB === 'undefined' || renderECB === null) { 13166 renderECB = true; 13167 } 13168 var calloutID = GetCalloutElementIDFromRenderCtx(renderCtx); 13169 13170 SPClientRenderer.AddPostRenderCallback(renderCtx, function() { 13171 var calloutActionMenu = new CalloutActionMenu(calloutID + '-actions'); 13172 13173 calloutActionMenuPopulator(renderCtx, calloutActionMenu); 13174 calloutActionMenu.render(); 13175 });
13176 var ecbMarkup = []; 13177 13178 if (renderECB) { 13179 ecbMarkup.push('<span id=' + Encoding.AttrQuote(calloutID + '-ecbMenu') + ' class="js-callout-actions js-callout-ecbActionDownArrow">'); 13180 ecbMarkup.push(RenderECBinline(renderCtx, renderCtx.CurrentItem, renderCtx.CurrentFieldSchema)); 13181 ecbMarkup.push('</span>'); 13182 } 13183 return Callout.GenerateDefaultFooter(calloutID, ecbMarkup.join('')); 13184} 13185function CalloutRenderBodyTemplate(renderCtx) { 13186 var itemTpls = renderCtx.Templates['Item']; 13187 13188 if (itemTpls == null || itemTpls == {}) 13189 return ''; 13190 var listData = renderCtx.ListData; 13191 var listSchema = renderCtx.ListSchema; 13192 var bHasHeader = renderCtx.Templates.Header != ''; 13193 var groupTpls = renderCtx.Templates['Group']; 13194 13195 if (groupTpls == null || typeof RenderItemTemplateDefault != "undefined" && groupTpls == RenderItemTemplateDefault || typeof groupTpls != "function" && typeof groupTpls != "string") 13196 groupTpls = RenderGroupTemplate; 13197 else if (typeof groupTpls == "string") 13198 groupTpls = SPClientRenderer.ParseTemplateString(groupTpls, renderCtx); 13199 var ItemTpl = renderCtx.Templates['Item']; 13200 13201 if (ItemTpl == null || typeof RenderFieldTemplateDefault != "undefined" && ItemTpl == RenderFieldTemplateDefault || typeof ItemTpl != "function" && typeof ItemTpl != "string") 13202 ItemTpl = RenderItemTemplate; 13203 else if (typeof ItemTpl == "string") 13204 ItemTpl = SPClientRenderer.ParseTemplateString(ItemTpl, renderCtx); 13205 var listItem = renderCtx.CurrentItem; 13206 var itemType = listItem['ItemType']; 13207 var tpl = itemTpls[itemType]; 13208 13209 if (tpl == null || tpl == '') { 13210 tpl = ItemTpl; 13211 } 13212 else if (typeof tpl == 'string') { 13213 tpl = SPClientRenderer.ParseTemplateString(tpl, renderCtx); 13214 itemTpls[itemType] = tpl; 13215 } 13216 return Callout.GenerateDefaultBody(GetCalloutElementIDFromRenderCtx(renderCtx), SPClientRenderer.CoreRender(tpl, renderCtx)); 13217} 13218function CalloutRenderItemTemplate(renderCtx) { 13219 var ret = []; 13220 13221 if (renderCtx.ListSchema.IsDocLib) { 13222 ret.push(CalloutRenderFilePreview(renderCtx)); 13223 } 13224 ret.push(CalloutRenderDlpNotificationPlaceholder(renderCtx)); 13225 ret.push(CalloutRenderLastModifiedInfo(renderCtx)); 13226 ret.push(CalloutRenderSharingStatus(renderCtx)); 13227 ret.push(CalloutRenderSourceUrl(renderCtx)); 13228 return ret.join(''); 13229} 13230var RenderECBinline; 13231 13232function _createNewDocumentCallout(rCtx, hideUploadLink, launchPointOverride, qcbPollCallback) { 13233 function createNewDocumentCore() { 13234 var wpq = rCtx.wpq; 13235 var launchPoint = Boolean(launchPointOverride) ? launchPointOverride : document.getElementById(ListModule.Util.addWPQtoId(c_newdocWOPIID + 'Hero', wpq)); 13236 13237 if (Boolean(launchPoint)) { 13238 var callout = CalloutManager.getFromLaunchPointIfExists(launchPoint); 13239 13240 if (!Boolean(callout) && Boolean(rCtx.NewWOPIDocumentUrl)) { 13241 var createDocUrl = rCtx.NewWOPIDocumentUrl + '&Source=' + Nav.getSource(); 13242 var contDivHtml = RenderNewDocumentCallout(rCtx, createDocUrl); 13243 13244 callout = CalloutManager.createNewIfNecessary({ 13245 launchPoint: launchPoint, 13246 ID: ListModule.Util.addWPQtoId(c_newdocWOPIID, wpq), 13247 title: Strings.STS.L_NewDocumentCalloutTitle, 13248 content: contDivHtml, 13249 onOpeningCallback: function(cl) { 13250 NewDocumentCallout_OnOpeningCallback(rCtx, createDocUrl, cl); 13251 }, 13252 onOpenedCallback: function(cl) { 13253 NewDocumentCallout_OnOpenedCallback(rCtx); 13254 }, 13255 beakOrientation: 'leftRight', 13256 contentWidth: c_newDocCalloutWidth, 13257 allowScroll: true, 13258 boundingBox: document.getElementById('s4-workspace') 13259 }); 13260 if (Boolean(callout) && ListModule.Util.canUploadFile(rCtx) && !hideUploadLink) { 13261 var uploadUrl = rCtx.HttpRoot + "/_layouts/15/Upload.aspx" + '?List=' + rCtx.listName + '&RootFolder=' + rCtx.rootFolder; 13262 13263 callout.addAction(new CalloutAction({ 13264 text: Strings.STS.L_NewDocumentUploadFile, 13265 onClickCallback: function(calloutActionClickEvent, calloutAction) { 13266 CalloutManager.closeAll(); 13267 NewItem2(calloutActionClickEvent, uploadUrl); 13268 return false; 13269 } 13270 })); 13271 } 13272 } 13273 } 13274 rCtx.qcbNewButtonConfigured = true; 13275 if (typeof qcbPollCallback == "function") { 13276 qcbPollCallback(); 13277 } 13278 } 13279 EnsureScript('callout.js', typeof CalloutManager, function() { 13280 var eventInfo = g_ExecuteOrWaitJobs["sp.ribbon.js"]; 13281 13282 if (Boolean(window["toolbarData" + rCtx.wpq]) || eventInfo === null || Boolean(_v_dictSod) && !Boolean(_v_dictSod['ribbon'])) 13283 createNewDocumentCore(); 13284 else
13285 ExecuteOrDelayUntilScriptLoaded(createNewDocumentCore, "sp.ribbon.js"); 13286 }); 13287} 13288var DisplaySharingDialogCore; 13289 13290function DisplaySharingDialogForListItem(renderCtx, listItemID, tabId) { 13291 var noItemGiven = typeof listItemID === "undefined"; 13292 var tooManyItemsSelected = renderCtx.currentSelectedItems > 1; 13293 var notInsideAFolder = renderCtx.currentSelectedItems === 0 && !Boolean(renderCtx.ListData.FolderId); 13294 13295 if (noItemGiven && (tooManyItemsSelected || notInsideAFolder)) { 13296 WriteDebugLog("DocLib_DispShareDlgInvalidSelection", true, "Attempted to open sharing dialog for " + renderCtx.CurrentSelectedItems + " items. We only support sharing 1 at a time."); 13297 return; 13298 } 13299 EnsureScriptFunc("sharing.js", "DisplaySharingDialogCore", function() { 13300 var fsObjType; 13301 var fileType; 13302 13303 if (typeof listItemID === "undefined") { 13304 if (renderCtx.CurrentSelectedItems == 1) { 13305 var selectedItemIID; 13306 13307 for (selectedItemIID in renderCtx.dictSel) { 13308 listItemID = renderCtx.dictSel[selectedItemIID].id; 13309 break; 13310 } 13311 } 13312 else if (Boolean(renderCtx.ListData.FolderId)) { 13313 listItemID = String(renderCtx.ListData.FolderId); 13314 fsObjType = 1; 13315 fileType = ""; 13316 } 13317 } 13318 if (Boolean(listItemID)) { 13319 var currentItem = null; 13320 13321 if (Boolean(renderCtx.CurrentItem)) { 13322 currentItem = renderCtx.CurrentItem; 13323 } 13324 else { 13325 for (var itemId in renderCtx.ListData.Row) { 13326 var item = renderCtx.ListData.Row[itemId]; 13327 13328 if (Boolean(item) && item.ID == listItemID) { 13329 currentItem = item; 13330 break; 13331 } 13332 } 13333 } 13334 if (Boolean(currentItem) && !Boolean(fsObjType) && !Boolean(fileType)) { 13335 fsObjType = currentItem["FSObjType"]; 13336 fileType = currentItem["HTML_x0020_File_x0020_Type"]; 13337 } 13338 } 13339 if (!Boolean(renderCtx.RealHttpRoot)) { 13340 DisplaySharingDialogCore(renderCtx.HttpRoot, renderCtx.listName, listItemID, !isNaN(tabId) ? tabId : 0, fsObjType, fileType, void 0, document.activeElement); 13341 } 13342 else { 13343 DisplaySharingDialogCore(renderCtx.HttpRoot, renderCtx.listName, listItemID, 0, fsObjType, fileType, false, document.activeElement, renderCtx.RealHttpRoot); 13344 } 13345 }); 13346} 13347var CALLOUT_STR_ELLIPSIS; 13348var CALLOUT_ELLIPSIS_LENGTH; 13349var CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION; 13350 13351function displayTruncatedString(element, string, maxWidth) { 13352 var lastWidth = element.offsetWidth; 13353 13354 while (element.offsetWidth > maxWidth) { 13355 var newLengthToTry = element.innerHTML.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION; 13356 13357 element.innerHTML = safeTruncateString(element.innerHTML, newLengthToTry) + CALLOUT_STR_ELLIPSIS; 13358 if (element.offsetWidth === lastWidth) { 13359 Sys.Debug.assert(false, "String truncation is not affecting element width. Element must not be setup correctly."); 13360 return element.innerHTML; 13361 } 13362 lastWidth = element.offsetWidth; 13363 } 13364 if (element.innerHTML.length < string.length) { 13365 element.title = string; 13366 } 13367 return element.innerHTML; 13368} 13369function displayTruncatedLocation(element, maxHeight) { 13370 var charsToTruncate = 1 + CALLOUT_ELLIPSIS_LENGTH; 13371 13372 while (element.offsetHeight > maxHeight) { 13373 var newLengthToTry = element.innerHTML.length - charsToTruncate; 13374 13375 element.innerHTML = CALLOUT_STR_ELLIPSIS + safeTruncateStringFromStart(element.innerHTML, newLengthToTry); 13376 } 13377 return element.innerHTML; 13378} 13379function displayTruncatedUrl(element, fullUrl, maxWidth, allowTruncateQuery) { 13380 var MIN_AUTHORITY_LENGTH_IN_CHARS = 4; 13381 var urlToDisplay = new URI(fullUrl.getString()); 13382 13383 element.innerHTML = Encoding.HtmlEncode(urlToDisplay.getDecodedStringForDisplay()); 13384 var lastWidth = element.offsetWidth; 13385 13386 while (element.offsetWidth > maxWidth) { 13387 var path = urlToDisplay.getPath(); 13388 var authority = urlToDisplay.getAuthority();
13389 var query = urlToDisplay.getQuery(); 13390 var indexOfNextSlash = path.indexOf('/', CALLOUT_ELLIPSIS_LENGTH + 2); 13391 13392 if (indexOfNextSlash >= 0) { 13393 path = '/' + CALLOUT_STR_ELLIPSIS + path.substr(indexOfNextSlash); 13394 urlToDisplay.setPath(path); 13395 } 13396 else if (allowTruncateQuery && query.length > CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) { 13397 query = safeTruncateString(query, query.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) + CALLOUT_STR_ELLIPSIS; 13398 urlToDisplay.setQuery(query); 13399 } 13400 else if (authority.length > MIN_AUTHORITY_LENGTH_IN_CHARS + CALLOUT_ELLIPSIS_LENGTH) { 13401 authority = safeTruncateString(authority, MIN_AUTHORITY_LENGTH_IN_CHARS) + CALLOUT_STR_ELLIPSIS; 13402 urlToDisplay.setAuthority(authority); 13403 } 13404 else if (path.length > CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) { 13405 path = safeTruncateString(path, path.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) + CALLOUT_STR_ELLIPSIS; 13406 urlToDisplay.setPath(path); 13407 } 13408 else if (query.length > CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) { 13409 query = safeTruncateString(query, query.length - CALLOUT_CHARS_TO_TRUNCATE_PER_ITERATION) + CALLOUT_STR_ELLIPSIS; 13410 urlToDisplay.setQuery(query); 13411 } 13412 element.innerHTML = Encoding.HtmlEncode(urlToDisplay.getDecodedStringForDisplay()); 13413 if (element.offsetWidth === lastWidth) { 13414 Sys.Debug.assert(false, "Url truncation is not affecting element width. Element must not be setup correctly."); 13415 return element.innerHTML; 13416 } 13417 lastWidth = element.offsetWidth; 13418 } 13419 return element.innerHTML; 13420} 13421function GetCalloutPolicyTipNotificationElementId(renderCtx) { 13422 return GetCalloutElementIDFromRenderCtx(renderCtx) + '-dlpNotificationArea'; 13423} 13424function CalloutRenderDlpNotificationPlaceholder(renderCtx) { 13425 SPClientRenderer.AddPostRenderCallback(renderCtx, CalloutPostRenderPolicyTip); 13426 return '<div id="' + GetCalloutPolicyTipNotificationElementId(renderCtx) + '"></div>'; 13427} 13428function EnsureECBAdapterOnCtx(renderCtx, theCtx) { 13429 if (!Boolean(theCtx.ecbAdapter)) { 13430 if (typeof SP == "undefined" || typeof SP.Utilities == "undefined" || typeof SP.Utilities.Internal == "undefined" || typeof SP.Utilities.Internal.ECBAdapter == "undefined") 13431 return false; 13432 theCtx.ecbAdapter = new SP.Utilities.Internal.ECBAdapter(theCtx, function qcbPoll() { 13433 renderCtx.qcb.Poll(); 13434 }, "qcbPoll"); 13435 } 13436 return true; 13437} 13438function EnsureEcbAdapterCommandsStateInitialized(renderCtx) { 13439 IsECBCommandEnabled("ViewProperties", renderCtx); 13440} 13441function IsECBCommandEnabled(commandId, renderCtx) { 13442 if (typeof GetListContextFromContextNumber == "undefined") { 13443 return false; 13444 } 13445 var ecbCommandEnabledCurrentCtx = GetListContextFromContextNumber(renderCtx.ctxId); 13446 13447 if (!Boolean(ecbCommandEnabledCurrentCtx)) { 13448 return false; 13449 } 13450 if (!EnsureECBAdapterOnCtx(renderCtx, ecbCommandEnabledCurrentCtx)) { 13451 return false; 13452 } 13453 return ecbCommandEnabledCurrentCtx.ecbAdapter.canHandleECBCommand(commandId); 13454} 13455function ExecuteECBCommand(commandId, renderCtx) { 13456 SP.SOD.executeFunc("core.js", "GetListContextFromContextNumber", function() { 13457 var ecbCommandEnabledCurrentCtx = GetListContextFromContextNumber(renderCtx.ctxId); 13458 13459 if (!Boolean(ecbCommandEnabledCurrentCtx)) { 13460 WriteDebugLog("DocLibQCB_ExecECBCmdNoCtx", true, "Could not load a list context for the list when attempting to execute a command"); 13461 return; 13462 } 13463 SP.SOD.executeFunc("sp.core.js", "SP.Utilities.Internal.ECBAdapter", function() { 13464 EnsureECBAdapterOnCtx(renderCtx, ecbCommandEnabledCurrentCtx); 13465 if (!ecbCommandEnabledCurrentCtx.ecbAdapter.executeECBCommand(commandId)) { 13466 WriteDebugLog("DocLibQCB_ExecECBCmdFailed", true, "Execution of ECB command " + commandId + " failed."); 13467 return; 13468 } 13469 }); 13470 });
13471} 13472function _registerOnItemSelectionChangedHandlerForQCB(renderCtx) { 13473 ExecuteOrDelayUntilScriptLoaded(function() { 13474 var qcbCtx = GetListContextFromContextNumber(renderCtx.ctxId); 13475 13476 if (!Boolean(qcbCtx)) 13477 return; 13478 RegisterOnItemSelectionChangedHandler(qcbCtx, "qcbOnRefreshCommandUI" + renderCtx.wpq, function() { 13479 renderCtx.qcb.Poll(); 13480 }); 13481 }, "core.js"); 13482} 13483function _unregisterOnItemSelectionChangedHandlerForQCB(renderCtx) { 13484 ExecuteOrDelayUntilScriptLoaded(function() { 13485 var qcbCtx = GetListContextFromContextNumber(renderCtx.ctxId); 13486 13487 if (!Boolean(qcbCtx)) 13488 return; 13489 UnregisterOnItemSelectionChangedHandler(qcbCtx, "qcbOnRefreshCommandUI" + renderCtx.wpq); 13490 }, "core.js"); 13491} 13492var MountPointSiteIdFieldName; 13493var MountPointWebIdFieldName; 13494var MountPointItemUniqueIdFieldName; 13495 13496function IsMountPoint(listItem) { 13497 return Flighting.VariantConfiguration.IsExpFeatureClientEnabled(134) && (Boolean(listItem) && Boolean(listItem[MountPointSiteIdFieldName]) && Boolean(listItem[MountPointWebIdFieldName]) && Boolean(listItem[MountPointItemUniqueIdFieldName])); 13498} 13499function InMountPoint(renderCtx) { 13500 return Boolean(renderCtx.RealHttpRoot); 13501} 13502function IsCurrentItemMountPoint(renderCtx) { 13503 return Boolean(renderCtx) && Boolean(renderCtx.CurrentItem) && IsMountPoint(renderCtx.CurrentItem); 13504} 13505function IsSelectedItemMountPoint(renderCtx) { 13506 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(134)) { 13507 var ctxT = Boolean(renderCtx) ? renderCtx : GetCurrentCtx(); 13508 13509 if (ctxT == null || typeof ctxT.dictSel == "undefined" || ctxT.CurrentSelectedItems != 1) 13510 return false; 13511 for (var key in ctxT.dictSel) { 13512 var listItemId = (key.split(","))[1]; 13513 13514 if (Boolean(listItemId)) { 13515 var listData = ctxT.ListData.Row; 13516 13517 if (Boolean(listData)) { 13518 for (var i = 0; i < listData.length; i++) { 13519 var listItem = listData[i]; 13520 13521 if (listItem["ID"] == listItemId) { 13522 return IsMountPoint(listItem); 13523 } 13524 } 13525 } 13526 } 13527 } 13528 } 13529 return false; 13530} 13531var MountPointInfo; 13532 13533function RenderMountPointLink(renderCtx, ret, content, listItem, listSchema) { 13534 var mpInfo = MountPointInfo.createByListItem(listItem, renderCtx); 13535 13536 ret.push("<a onfocus=\"OnLink(this)\" class=\"ms-listlink\" href=\""); 13537 if (renderCtx.NoScriptEnabled && SupportAjaxFolderNav(renderCtx)) { 13538 ret.push("\"#\" onclick=\""); 13539 ret.push("EnterFolderAjax(event, '"); 13540 ret.push(URI_Encoding.encodeURIComponent(listItem.FileRef)); 13541 ret.push("', '"); 13542 ret.push(mpInfo.getMountPointUrl()); 13543 ret.push("', true);return false;\""); 13544 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(169)) 13545 ret.push(" aria-label=\"" + Encoding.HtmlEncode(Strings.STS.L_FieldType_SharedFolder) + "\""); 13546 ret.push(">"); 13547 } 13548 else { 13549 ret.push(listSchema.PagePath); 13550 ret.push("?"); 13551 ret.push(Encoding.ScriptEncode(mpInfo.getMountPointUrl())); 13552 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(169)) 13553 ret.push("\" aria-label=\"" + Encoding.HtmlEncode(Strings.STS.L_FieldType_SharedFolder) + "\">"); 13554 else 13555 ret.push("\">"); 13556 } 13557 ret.push(Encoding.HtmlEncode(content)); 13558 ret.push("</a>"); 13559} 13560function EnableCreateMountPointIfNeeded(renderCtx) { 13561 var uri = new URI(ajaxNavigate.get_href()); 13562 var mountSiteId = uri.getQueryParameter("MountSiteId"); 13563 var mountWebId = uri.getQueryParameter("MountWebId"); 13564 var mountItemUniqueId = uri.getQueryParameter("MountItemUniqueId"); 13565 var mountItemTitle = uri.getQueryParameter("MountItemTitle"); 13566 13567 if (Boolean(mountSiteId) && Boolean(mountWebId) && Boolean(mountItemUniqueId) && Boolean(mountItemTitle)) { 13568 var createMountPointFunc = createOneTimeCallback(function(renderContext) {
13569 EnsureScriptParams('MountPoint.js', 'ConfirmCreateMountPoint', mountItemTitle, mountSiteId, mountWebId, mountItemUniqueId, renderCtx.listName, renderCtx.ListSchema.PagePath); 13570 }); 13571 13572 AddPostRenderCallback(renderCtx, createMountPointFunc); 13573 } 13574} 13575function IsListItemFolder(listItem) { 13576 return Boolean(listItem) && listItem.FSObjType == "1" && (!Boolean(listItem["HTML_x0020_File_x0020_Type"]) || listItem["HTML_x0020_File_x0020_Type"].indexOf("OneNote.Notebook") == -1); 13577} 13578var ShortcutLinkTargetUrlFieldName; 13579var ShortcutLinkSiteIdFieldName; 13580var ShortcutLinkWebIdFieldName; 13581var ShortcutLinkUniqueIdFieldName; 13582 13583function IsShortcutLink(listItem) { 13584 return Boolean(listItem) && (listItem["File_x0020_Type"] == "url" || listItem["File_x0020_Type"] == "website"); 13585} 13586function RetrieveShortcutLink(fileUrl) { 13587 if (window.XMLHttpRequest != null) { 13588 var strUrl = _spPageContextInfo["webAbsoluteUrl"] + "/_api/SP.Utilities.ShortcutLink.GetShortcutLink('" + URI_Encoding.encodeURIComponent(fileUrl) + "')"; 13589 var req = new XMLHttpRequest(); 13590 13591 req.open("GET", strUrl, true); 13592 req.setRequestHeader("Content-Type", "application/json"); 13593 req.setRequestHeader("Accept", "application/json"); 13594 req.onreadystatechange = function() { 13595 if (req.readyState != 4 || req.status != 200) 13596 return; 13597 var data = JSON.parse(req.responseText); 13598 var element = document.getElementById("shortcut_" + fileUrl); 13599 13600 if (element != null) { 13601 element.href = data.url; 13602 element.title = data.url; 13603 } 13604 }; 13605 req.send(null); 13606 } 13607} 13608function GenerateHref(targetUrl, siteId, webId, uniqueId) { 13609 var targetHref = ""; 13610 var query = "?"; 13611 13612 if (Boolean(targetUrl)) { 13613 var queryIndex = targetUrl.indexOf("?"); 13614 13615 if (queryIndex != -1) { 13616 query = targetUrl.substring(queryIndex); 13617 } 13618 } 13619 if (Boolean(uniqueId) && Boolean(webId) && Boolean(siteId)) { 13620 targetHref = _spPageContextInfo["webAbsoluteUrl"] + "/_layouts/15/" + "ShortcutLink.aspx"; 13621 targetHref += query; 13622 targetHref += "&siteid=" + URI_Encoding.encodeURIComponent(siteId); 13623 targetHref += "&webid=" + URI_Encoding.encodeURIComponent(webId); 13624 targetHref += "&uniqueid=" + URI_Encoding.encodeURIComponent(uniqueId); 13625 } 13626 else if (Boolean(targetUrl)) { 13627 targetHref = targetUrl; 13628 } 13629 return targetHref; 13630} 13631function RenderShortcutHrefStart(renderCtx, ret, content, listItem, listSchema, triggerRetrieve) { 13632 var uniqueId = listItem[ShortcutLinkUniqueIdFieldName]; 13633 var webId = listItem[ShortcutLinkWebIdFieldName]; 13634 var siteId = listItem[ShortcutLinkSiteIdFieldName]; 13635 var targetUrl = listItem[ShortcutLinkTargetUrlFieldName]; 13636 var targetHref = GenerateHref(targetUrl, siteId, webId, uniqueId); 13637 13638 ret.push("<a onfocus=\"OnLink(this)\" class=\"ms-listlink\" href=\""); 13639 if (targetHref != "") { 13640 ret.push(Encoding.HtmlEncode(targetHref)); 13641 ret.push("\" title=\""); 13642 ret.push(Encoding.HtmlEncode(targetUrl)); 13643 } 13644 else { 13645 targetHref = _spPageContextInfo["webAbsoluteUrl"] + "/_layouts/15/" + "ShortcutLink.aspx?shortcut=" + URI_Encoding.encodeURIComponent(listItem.FileRef); 13646 ret.push(targetHref); 13647 ret.push("\" title=\""); 13648 ret.push(Encoding.HtmlEncode(Strings.STS.L_Shortcut_Processing)); 13649 if (triggerRetrieve) { 13650 ret.push("\" id=\"shortcut_"); 13651 ret.push(Encoding.HtmlEncode(listItem.FileRef)); 13652 RetrieveShortcutLink(listItem.FileRef); 13653 } 13654 } 13655 ret.push("\" aria-label=\""); 13656 ret.push(Encoding.HtmlEncode(Strings.STS.L_FieldType_File_Shortcut)); 13657 ret.push("\">"); 13658} 13659function RenderShortcutLink(renderCtx, ret, content, listItem, listSchema) { 13660 RenderShortcutHrefStart(renderCtx, ret, content, listItem, listSchema, true); 13661 ret.push(Encoding.HtmlEncode(content)); 13662 ret.push("</a>"); 13663}
13664function RenderShortcutLinkIcon(renderCtx, ret, content, listItem, listSchema) { 13665 RenderShortcutHrefStart(renderCtx, ret, content, listItem, listSchema, false); 13666 ret.push("<img border=\"0\" alt=\""); 13667 ret.push(Encoding.HtmlEncode(Strings.STS.L_FieldType_File_Shortcut)); 13668 ret.push("\" title=\""); 13669 ret.push(Encoding.HtmlEncode(Strings.STS.L_FieldType_File_Shortcut)); 13670 ret.push("\" src=\""); 13671 ret.push(ListView.ImageBasePath + "/_layouts/15/images/icspgen.gif?rev=43"); 13672 ret.push("\" />"); 13673 ret.push("</a>"); 13674} 13675function SaveCurrentContextInfo(renderCtx) { 13676 var ctxId = "ctx" + renderCtx.ctxId; 13677 13678 window[ctxId] = renderCtx; 13679 if (Boolean(g_ctxDict)) { 13680 g_ctxDict[ctxId] = renderCtx; 13681 } 13682 if (Boolean(g_ViewIdToViewCounterMap) && Boolean(renderCtx.view)) { 13683 g_ViewIdToViewCounterMap[renderCtx.view] = renderCtx.ctxId; 13684 } 13685} 13686function EnableHeroButton(renderCtx) { 13687 if (!Boolean(renderCtx.DisableHeroButton)) { 13688 window['heroButtonWebPart' + renderCtx.wpq] = true; 13689 } 13690} 13691function SetupDragDrop(renderCtx) { 13692 var registerDragDrop = function() { 13693 SetDocItemDragDrop(renderCtx); 13694 }; 13695 13696 EnsureScriptFunc('DragDrop.js', 'registerDragUpload', registerDragDrop); 13697} 13698function _canDragUploadFile(renderCtx) { 13699 var listTemplate = renderCtx.ListTemplateType; 13700 var canDragUpload = true; 13701 13702 if (typeof g_uploadType != 'undefined' && (g_uploadType == UploadType.ACTIVEXNA || g_uploadType == UploadType.NOT_SUPPORTED)) { 13703 canDragUpload = false; 13704 } 13705 return canDragUpload && !(listTemplate == 119 || listTemplate == 123); 13706} 13707function AjaxNavAddNavigate(callback) { 13708 Nav.ajaxNavigate.add_navigate(callback); 13709} 13710function GetInplviewHash(webPartId) { 13711 return Nav.ajaxNavigate.getParam("InplviewHash" + webPartId); 13712} 13713function SupportsFileUpload() { 13714 return true; 13715} 13716function RenderEasyUploadInputFileElement(renderCtx) { 13717 var ret = []; 13718 13719 ret.push('<input type="file" class="ms-hide"'); 13720 if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(61)) { 13721 ret.push(' multiple="true"'); 13722 } 13723 ret.push(' id="easyUploadFile'); 13724 ret.push(renderCtx.wpq); 13725 ret.push("\" onchange=\"HandleEasyUploadInputOnChange(event, this, ""); 13726 ret.push(renderCtx.wpq); 13727 ret.push(""); return false;\" />"); 13728 return ret.join(''); 13729} 13730function IsEasyUploadEnabled(renderCtx) { 13731 return Boolean(renderCtx) && !renderCtx.inGridMode && renderCtx.ListTemplateType == 700 && typeof FormData != 'undefined' && Flighting.VariantConfiguration.IsExpFeatureClientEnabled(172); 13732} 13733function IsInIframe() { 13734 try { 13735 return window.self !== window.top; 13736 } 13737 catch (e) { 13738 return true; 13739 } 13740} 13741function RenderProjectTaskListEditMode(renderCtx, postRenderFunc) { 13742 if (renderCtx.ListTemplateType == 171 && _spPageContextInfo.webTemplate == '6115') { 13743 if (Boolean(renderCtx.bInitialRender) && (renderCtx.ListData.LastRow == null || renderCtx.ListData.LastRow == 0)) { 13744 renderCtx.inGridMode = false; 13745 postRenderFunc = function() { 13746 EnsureScriptParams('inplview', 'InitGridFromView', renderCtx.view); 13747 }; 13748 AddPostRenderCallbackUnique(renderCtx, postRenderFunc); 13749 } 13750 } 13751} 13752function RenderGroupListEditMode(renderCtx, postRenderFunc) { 13753 if (renderCtx.SiteTemplateId == 64 && _spPageContextInfo.webTemplate == '64') { 13754 var curUrl = new URI(ajaxNavigate.get_href()); 13755 var initQuery = curUrl.getQueryParameter("ShowInGrid"); 13756 13757 if (!ctx.inGridMode && Boolean(initQuery) && initQuery != "false" && Boolean(renderCtx.bInitialRender) && (renderCtx.ListData.LastRow == null || renderCtx.ListData.LastRow == 0)) { 13758 renderCtx.inGridMode = true; 13759 postRenderFunc = function() { 13760 EnsureScriptParams('inplview', 'InitGridFromView', renderCtx.view); 13761 }; 13762 AddPostRenderCallbackUnique(renderCtx, postRenderFunc); 13763 } 13764 } 13765} 13766function WriteDebugLog(tag, isInteresting, message) { 13767 SP.DebugLogger.Write(tag, isInteresting ? SP.DebugLogger.LoggingLevel.Interesting :
13767SP.DebugLogger.LoggingLevel.Boring, message); 13768} 13769function WriteEngagementLog(tag, dictProperties) { 13770 SP.QoS.WriteUserEngagement(tag, dictProperties); 13771} 13772function WriteDocEngagementLog(teamSiteTag, oneDriveTag, dictProperties) { 13773 _WriteDocEngagement(teamSiteTag, oneDriveTag, dictProperties); 13774} 13775function WriteStart(tag, dictProperties) { 13776 SP.QoS.WriteStart(tag, dictProperties); 13777} 13778function WriteSuccess(tag, dictProperties, logType, duration) { 13779 SP.QoS.WriteSuccess(tag, dictProperties, logType, duration); 13780} 13781function WriteFailure(tag, dictProperties, logType, duration) { 13782 SP.QoS.WriteFailure(tag, dictProperties, logType, duration); 13783} 13784function WriteStartDiagnostic(tag, dictProperties) { 13785 SP.QoS.WriteStart(tag, dictProperties, SP.QoS.LogType.Diagnostic, null); 13786} 13787function WriteSuccessDiagnostic(tag, dictProperties) { 13788 SP.QoS.WriteSuccess(tag, dictProperties, SP.QoS.LogType.Diagnostic, null); 13789} 13790function WriteFailureDiagnostic(tag, dictProperties) { 13791 SP.QoS.WriteFailure(tag, dictProperties, SP.QoS.LogType.Diagnostic, null); 13792} 13793function WriteListViewSuccessLog(renderCtx) { 13794 if (typeof performance != "undefined" && typeof performance.timing != "undefined") { 13795 var listId = renderCtx.ListTemplateType > 0 ? renderCtx.ListTemplateType * 10000 : 0; 13796 13797 if (typeof renderCtx.BaseViewID == "number") 13798 listId += renderCtx.BaseViewID; 13799 if (window["groupContextData"] != null) 13800 listId = listId * 10 + 1; 13801 var endTime = (new Date()).getTime(); 13802 var controlId = 'ListView'; 13803 var startTime = 0; 13804 var usingAppCache = false; 13805 var folderNav = false; 13806 13807 if (Boolean(renderCtx.startTime)) { 13808 LogRUMExtendedAction('InplviewTime', listId, null, endTime - renderCtx.startTime, 2); 13809 startTime = Number(renderCtx.startTime); 13810 folderNav = true; 13811 renderCtx.startTime = null; 13812 } 13813 else if (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(192) || Flighting.VariantConfiguration.IsExpFeatureClientEnabled(511)) { 13814 var actionName = 'ListRendered'; 13815 var appCache = window.applicationCache; 13816 13817 if (Boolean(appCache) && appCache.UNCACHED != appCache.status) { 13818 actionName += "_FromAppCache"; 13819 usingAppCache = true; 13820 WriteSuccessDiagnostic(actionName); 13821 } 13822 LogRUMExtendedAction(actionName, listId, null, endTime, 2); 13823 } 13824 else { 13825 LogRUMExtendedAction('ListRendered', listId, null, endTime, 2); 13826 } 13827 EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { 13828 var perfLogger = IsNullOrUndefined(PerformanceLogger) ? null : PerformanceLogger.GetLogger(); 13829 13830 if (!IsNullOrUndefined(perfLogger)) { 13831 perfLogger.WriteScenarioId(String(listId)); 13832 perfLogger.WriteAppCache(usingAppCache); 13833 perfLogger.WriteFolderNav(folderNav); 13834 if (typeof PerformanceLogger.ControlPerformanceData == "function") { 13835 perfLogger.AddExpectedControl(controlId); 13836 var controlPerformanceData = new PerformanceLogger.ControlPerformanceData(controlId, startTime, Number(endTime), perfLogger.ComputeControlRenderTime, perfLogger.CheckControlTimeRequiredDataAvailable); 13837 13838 perfLogger.WriteControlPerformanceData(controlPerformanceData); 13839 } 13840 } 13841 }); 13842 if (typeof g_MinimalDownload == "undefined" || !g_MinimalDownload) { 13843 if (typeof SP.Performance.UploadNonMDSPageLoadTime != "undefined") 13844 SP.Performance.UploadNonMDSPageLoadTime(renderCtx.ListTemplateType, endTime); 13845 } 13846 } 13847 if (typeof SP.ReadyToUploadLogs != "undefined") 13848 SP.ReadyToUploadLogs(); 13849} 13850function _EnsureJSClassOrNamespace(nsStr, isNamespace) { 13851 var parts = nsStr.split("."); 13852 var prevNS; 13853 13854 for (var i = 0, pLen = parts.length; i < pLen; i++) { 13855 var ns = parts[i];
13856 13857 if (typeof prevNS == "undefined") { 13858 prevNS = window; 13859 } 13860 if (typeof prevNS[ns] == "undefined") { 13861 prevNS[ns] = new Object(); 13862 } 13863 prevNS = prevNS[ns]; 13864 if (isNamespace) { 13865 prevNS.__namespace = true; 13866 } 13867 } 13868} 13869function _EnsureJSNamespace(nsStr) { 13870 _EnsureJSClassOrNamespace(nsStr, true); 13871} 13872function _EnsureJSClass(nsStr) { 13873 _EnsureJSClassOrNamespace(nsStr, false); 13874} 13875var g_prefetch; 13876var g_ribbonImagePrefetch; 13877var AriaLogger; 13878var BaseLogger; 13879var CacheLogger; 13880 13881function CacheLogger_module_def() { 13882 CacheLogger.DefaultUploader = function(uploadFunc) { 13883 var uploadTimer = null; 13884 var pageLoaded = false; 13885 var clearTimer = function() { 13886 if (null != uploadTimer) { 13887 clearTimeout(Number(uploadTimer)); 13888 uploadTimer = null; 13889 } 13890 }; 13891 var upload = function() { 13892 clearTimer(); 13893 uploadFunc(); 13894 }; 13895 13896 this.CanUpload = function() { 13897 return pageLoaded; 13898 }; 13899 this.OnLog = function() { 13900 if (null == uploadTimer) { 13901 uploadTimer = setTimeout(upload, 5000); 13902 } 13903 }; 13904 this.OnUpload = function() { 13905 clearTimer(); 13906 }; 13907 DOM.AddEventHandler(window, "onload", function() { 13908 pageLoaded = true; 13909 upload(); 13910 }); 13911 }; 13912 var ariaLogger = null; 13913 13914 CacheLogger.Logger = function(storagePrefix, logger, uploaderConstructor) { 13915 if (!Boolean(storagePrefix) || storagePrefix.length == 0) 13916 storagePrefix = "CacheLogger"; 13917 if (!Boolean(logger)) 13918 logger = BaseLogger.GetLogger(); 13919 if (!Boolean(uploaderConstructor)) 13920 uploaderConstructor = CacheLogger.DefaultUploader; 13921 var storageSize = -1; 13922 var SessionID = "sessionID"; 13923 var getStorageSize = function(size) { 13924 if (-1 == size) { 13925 var retSize = BrowserStorage.session.getItem(storagePrefix + "size"); 13926 13927 if (!Boolean(retSize)) { 13928 retSize = BrowserStorage.session.getItem(storagePrefix + "Size"); 13929 } 13930 if (!Boolean(retSize)) 13931 retSize = "0"; 13932 return parseInt(retSize, 10); 13933 } 13934 return size; 13935 }; 13936 var generateGuid = function() { 13937 try { 13938 var rStr = function(len) { 13939 var ret = ""; 13940 13941 do { 13942 ret += ((Math.random()).toString(16)).substr(2, len - ret.length); 13943 } while (ret.length < len); 13944 return ret; 13945 }; 13946 13947 return rStr(8) + "-" + rStr(4) + "-4" + rStr(3) + "-" + rStr(4) + "-" + rStr(12); 13948 } 13949 catch (e) { 13950 return ""; 13951 } 13952 }; 13953 var ensureSessionID = function() { 13954 if (typeof window[SessionID] == "undefined") { 13955 if (typeof g_correlationId == "string" && g_correlationId != null) { 13956 window[SessionID] = g_correlationId; 13957 } 13958 else { 13959 window[SessionID] = generateGuid(); 13960 } 13961 } 13962 }; 13963 var ensureAriaLogger = function(ev) { 13964 if (!Boolean(ariaLogger) || typeof ariaLogger.isInitialized != "function") { 13965 EnsureScriptFunc("ariaSDK.js", "AWTLogManager", function() { 13966 ariaLogger = new AriaLogger.Logger(); 13967 if (Boolean(ev) && Boolean(ariaLogger) && ariaLogger.isInitialized()) { 13968 ariaLogger.safeLogEvent(ev); 13969 } 13970 }); 13971 } 13972 }; 13973 var uploadData = function() { 13974 if (!uploader.CanUpload()) 13975 return; 13976 storageSize = getStorageSize(storageSize); 13977 var haveData = false; 13978 13979 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("D6FA4689-03B2-493E-A113-C03B78D9DA53"))) { 13980 if (!Boolean(ariaLogger) || typeof ariaLogger.isInitialized != "function") { 13981 ensureAriaLogger(); 13982 } 13983 } 13984 for (var i = 0; i < storageSize; i++) { 13985 var dataItemStr = BrowserStorage.session.getItem(storagePrefix + i.toString()); 13986 13987 try { 13988 var dataItem = JSON.parse(dataItemStr); 13989 13990 logger.WriteLog(String(dataItem.name), dataItem.props); 13991 haveData = true; 13992 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("D6FA4689-03B2-493E-A113-C03B78D9DA53"))) { 13993 var ev = setAriaEvent(String(dataItem.name), dataItem.props); 13994 13995 if (Boolean(ariaLogger) && typeof ariaLogger.isInitialized == "function") { 13996 ariaLogger.safeLogEvent(ev); 13997 } 13998 else { 13999 ensureAriaLogger(ev); 14000 } 14001 } 14002 } 14003 catch (e) { 14004 continue; 14005 } 14006 } 14007 if (!haveData) 14008 return; 14009 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("D6FA4689-03B2-493E-A113-C03B78D9DA53"))) { 14010 ensureSessionID(); 14011 } 14012 else { 14013 if (typeof window[SessionID] == "undefined") { 14014 if (typeof g_correlationId == "string" && g_correlationId != null) { 14015 window[SessionID] = g_correlationId; 14016 } 14017 else { 14018 window[SessionID] = generateGuid(); 14019 } 14020 } 14021 } 14022 logger.SetCorrelationId(window[SessionID]); 14023 logger.UploadData(); 14024 storageSize = 0; 14025 BrowserStorage.session.removeItem(storagePrefix + "Size"); 14026 BrowserStorage.session.setItem(storagePrefix + "size", 0); 14027 uploader.OnUpload(); 14028 }; 14029 var uploader = new uploaderConstructor(uploadData); 14030 14031 CacheLogger.GenerateGuid = function() { 14032 return generateGuid(); 14033 }; 14034 this.WriteLog = function(eventName, dictProperties, immediate) { 14035 if (!Boolean(eventName) || !Boolean(dictProperties)) { 14036 return; 14037 } 14038 if (!Boolean(dictProperties['ClientTime'])) { 14039 dictProperties['ClientTime'] = (new Date()).valueOf(); 14040 } 14041 var logEntry = { 14042 name: eventName, 14043 props: dictProperties 14044 }; 14045 14046 storageSize = getStorageSize(storageSize); 14047 if (storageSize >= 100) { 14048 return; 14049 } 14050 var serializedObject = ""; 14051 14052 try {
14053 serializedObject = JSON.stringify(logEntry); 14054 } 14055 catch (e) { 14056 return; 14057 } 14058 BrowserStorage.session.setItem(storagePrefix + storageSize.toString(), serializedObject); 14059 storageSize++; 14060 BrowserStorage.session.setItem(storagePrefix + "size", storageSize); 14061 uploader.OnLog(); 14062 if (Boolean(immediate)) { 14063 setTimeout(uploadData, 0); 14064 } 14065 }; 14066 function setAriaEvent(evName, props) { 14067 ensureSessionID(); 14068 var ev = { 14069 "eventName": evName, 14070 "sessionId": window[SessionID], 14071 "correlationVector": window[SessionID], 14072 "data": props 14073 }; 14074 14075 return ev; 14076 } 14077 }; 14078 var defaultLogger = null; 14079 14080 CacheLogger.GetLogger = function() { 14081 if (null == defaultLogger) 14082 defaultLogger = new CacheLogger.Logger(); 14083 return defaultLogger; 14084 }; 14085} 14086var DebugLogger; 14087 14088function DebugLogger_module_def() { 14089 var debugStreamId = 'ReliabilityLog'; 14090 var maxColumnSize = 5000; 14091 var defaultNumberOfBoringLogsToSend = 25; 14092 14093 DebugLogger.Logger = function(numberOfBoringLogsToSend, cacheLogger) { 14094 if (!Boolean(cacheLogger)) 14095 cacheLogger = CacheLogger.GetLogger(); 14096 var logCache = new MRUCache(numberOfBoringLogsToSend); 14097 14098 this.Write = function(tag, level, message, miscData) { 14099 if (!Boolean(tag) || tag.length == 0) 14100 return; 14101 if (!Boolean(message)) 14102 message = ""; 14103 if (!Boolean(miscData)) 14104 miscData = ""; 14105 if (typeof message.stack == "string") { 14106 message = message.stack; 14107 } 14108 else if (typeof message.message == "string") { 14109 message = message.message; 14110 } 14111 else { 14112 message = getCsomDebugInfo(message); 14113 } 14114 if (tag.length > maxColumnSize || Number(message.length) > maxColumnSize || miscData.length > maxColumnSize) { 14115 tag = tag.substring(0, maxColumnSize); 14116 message = message.substring(0, maxColumnSize); 14117 miscData = message.substring(0, maxColumnSize); 14118 } 14119 var log = { 14120 Tag: tag, 14121 Level: level, 14122 Message: message, 14123 Misc: miscData, 14124 UserAgent: navigator.userAgent 14125 }; 14126 14127 if (this.LoggingLevel.Boring == level) { 14128 logCache.Push(log); 14129 return; 14130 } 14131 var item; 14132 14133 while (Boolean(item = logCache.GetOldest())) { 14134 cacheLogger.WriteLog(debugStreamId, item); 14135 } 14136 cacheLogger.WriteLog(debugStreamId, log, true); 14137 }; 14138 this.LoggingLevel = { 14139 Boring: 0, 14140 Interesting: 1 14141 }; 14142 var csomErrorFunctions = [{ 14143 func: "get_errorCode", 14144 name: "ErrorCode" 14145 }, { 14146 func: "get_errorTraceCorrelationId", 14147 name: "CorrelationId" 14148 }, { 14149 func: "get_errorTypeName", 14150 name: "ErrorType" 14151 }, { 14152 func: "get_message", 14153 name: "Message" 14154 }, { 14155 func: "get_stackTrace", 14156 name: "StackTrace" 14157 }]; 14158 var getCsomDebugInfo = function(args) { 14159 var info = {}; 14160 var hasCsomData = false; 14161 14162 for (var i = 0; i < csomErrorFunctions.length; i++) { 14163 if (typeof args[csomErrorFunctions[i].func] == "function") { 14164 var result = args[csomErrorFunctions[i].func].call(args); 14165 14166 if (result != null && result != "") { 14167 info[csomErrorFunctions[i].name] = result; 14168 hasCsomData = true; 14169 } 14170 } 14171 } 14172 if (hasCsomData) 14173 return JSON.stringify(info); 14174 else 14175 return String(args); 14176 }; 14177 }; 14178 var defaultLogger = null; 14179 14180 DebugLogger.GetLogger = function() { 14181 if (null == defaultLogger) 14182 defaultLogger = new DebugLogger.Logger(defaultNumberOfBoringLogsToSend); 14183 return defaultLogger; 14184 }; 14185 var MRUCache = function(size) { 14186 var _size = size; 14187 var _length = 0; 14188 var _head = -1; 14189 var _tail = -1; 14190 var _arr = new Array(size); 14191 14192 this.Push = function(item) { 14193 _head++; 14194 if (_head == _size) 14195 _head = 0; 14196 if (_tail == -1 || _head == _tail) { 14197 _tail++; 14198 if (_tail == _size) 14199 _tail = 0; 14200 } 14201 _arr[_head] = item; 14202 _length++; 14203 if (_length > size) 14204 _length = size; 14205 }; 14206 this.GetOldest = function() { 14207 if (_length == 0) 14208 return null; 14209 var retVal = _arr[_tail]; 14210 14211 _length--; 14212 if (_length < 0) 14213 _length = 0; 14214 if (_length > 0) { 14215 _tail++; 14216 if (_tail == _size) 14217 _tail = 0; 14218 } 14219 if (_length == 0) { 14220 _tail = -1; 14221 _head = -1; 14222 } 14223 return retVal; 14224 }; 14225 }; 14226} 14227var QoSLogger; 14228 14229function QoSLogger_module_def() { 14230 var userEngagementStreamId = 'UserEngagement'; 14231 14232 QoSLogger.Logger = function(cacheLogger, debugLogger) { 14233 if (!Boolean(cacheLogger)) 14234 cacheLogger = CacheLogger.GetLogger(); 14235 var that = this; 14236 14237 this.LogType = { 14238 Engagement: 0, 14239 Diagnostic: 1 14240 }; 14241 var writeTag = function(tag, dictProperties, logType, duration) { 14242 var serializedObject = ""; 14243 14244 if (Boolean(dictProperties)) { 14245 try { 14246 serializedObject = JSON.stringify(dictProperties); 14247 } 14248 catch (e) { } 14249 } 14250 if (!Boolean(logType)) 14251 logType = that.LogType.Engagement; 14252 var log = { 14253 EngagementName: tag, 14254 Properties: serializedObject, 14255 Duration: duration, 14256 LogType: logType
14257 }; 14258 14259 cacheLogger.WriteLog(userEngagementStreamId, log); 14260 }; 14261 14262 this.WriteStart = function(tag, dictProperties, logType, duration) { 14263 writeTag(tag, dictProperties, logType, duration); 14264 }; 14265 this.WriteSuccess = function(tag, dictProperties, logType, duration) { 14266 writeTag(tag, dictProperties, logType, duration); 14267 }; 14268 this.WriteFailure = function(tag, dictProperties, logType, duration, error) { 14269 writeTag(tag, dictProperties, logType, duration); 14270 if (Boolean(debugLogger) && Boolean(error)) { 14271 debugLogger.Write(tag, debugLogger.LoggingLevel.Interesting, error); 14272 } 14273 }; 14274 this.WriteUserEngagement = function(tag, dictProperties) { 14275 writeTag(tag, dictProperties, this.LogType.Engagement, null); 14276 }; 14277 this.ScenarioMonitor = function(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, startProperties, logType) { 14278 var hadSuccess = false; 14279 var successProperties = null; 14280 var expectedFailureProperties = null; 14281 var unexpectedFailureProperties = null; 14282 var expectedFailureError = null; 14283 var unexpectedFailureError = null; 14284 var hadExpectedFailure = false; 14285 var hadUnexpectedFailure = false; 14286 var expectedFailureTag; 14287 var startTime; 14288 var disposed = false; 14289 var logStart = function() { 14290 that.WriteStart(startTag, startProperties, logType, null); 14291 }; 14292 var logSuccess = function(duration) { 14293 that.WriteSuccess(successTag, successProperties, logType, duration); 14294 }; 14295 var logExpectedFailure = function(duration) { 14296 that.WriteFailure(expectedFailureTag, expectedFailureProperties, logType, duration, expectedFailureError); 14297 }; 14298 var logUnexpectedFailure = function(duration) { 14299 that.WriteFailure(unexpectedFailureTag, unexpectedFailureProperties, logType, duration, unexpectedFailureError); 14300 }; 14301 var logNoResult = function(duration) { 14302 that.WriteFailure(noResultTag, null, logType, duration); 14303 }; 14304 14305 this.Success = function(properties) { 14306 if (hadSuccess) 14307 return; 14308 hadSuccess = true; 14309 successProperties = properties; 14310 }; 14311 this.ExpectedFailure = function(tag, properties, error) { 14312 if (hadExpectedFailure) 14313 return; 14314 hadExpectedFailure = true; 14315 expectedFailureProperties = properties; 14316 expectedFailureError = error; 14317 expectedFailureTag = tag; 14318 }; 14319 this.UnexpectedFailure = function(tag, properties, error) { 14320 if (hadUnexpectedFailure) 14321 return; 14322 hadUnexpectedFailure = true; 14323 unexpectedFailureProperties = properties; 14324 unexpectedFailureError = error; 14325 if (null != tag) 14326 unexpectedFailureTag = tag; 14327 }; 14328 var disposeEventFunc = function(evt) { 14329 disposeHelper(); 14330 }; 14331 14332 this.Dispose = function() { 14333 disposeHelper(); 14334 }; 14335 function disposeHelper() { 14336 if (disposed) 14337 return; 14338 disposed = true; 14339 var duration = Number(new Date()) - startTime; 14340 14341 if (hadExpectedFailure) { 14342 logExpectedFailure(duration); 14343 } 14344 else if (hadUnexpectedFailure) { 14345 logUnexpectedFailure(duration); 14346 } 14347 else if (hadSuccess) { 14348 logSuccess(duration); 14349 } 14350 else { 14351 logNoResult(duration); 14352 } 14353 DOM.RemoveEventHandler(window, "onbeforeunload", disposeEventFunc); 14354 } 14355 logStart(); 14356 DOM.AddEventHandler(window, "onbeforeunload", disposeEventFunc); 14357 startTime = Number(new Date()); 14358 }; 14359 this.ExecuteMonitoredCode = function(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, functionToExecute, properties, logType) { 14360 var monitor = new that.ScenarioMonitor(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, properties, logType); 14361 14362 try { 14363 functionToExecute(monitor); 14364 monitor.Success(properties); 14365 } 14366 catch (e) { 14367 monitor.UnexpectedFailure(unexpectedFailureTag, properties, e); 14368 throw e; 14369 } 14370 finally { 14371 monitor.Dispose(); 14372 } 14373 }; 14374 this.ExecuteMonitoredAsync = function(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, functionToExecute, onSuccess, onF
14374ailure, properties, logType) { 14375 var monitor = new that.ScenarioMonitor(scenarioName, startTag, successTag, unexpectedFailureTag, noResultTag, properties, logType); 14376 var onSuccessMonitored = function(sender, args) { 14377 try { 14378 onSuccess(sender, args, monitor); 14379 monitor.Success(properties); 14380 } 14381 catch (e) { 14382 monitor.UnexpectedFailure(unexpectedFailureTag, properties, e); 14383 throw e; 14384 } 14385 finally { 14386 monitor.Dispose(); 14387 } 14388 }; 14389 var onFailureMonitored = function(sender, args) { 14390 try { 14391 onFailure(sender, args, monitor); 14392 } 14393 catch (e) { 14394 throw e; 14395 } 14396 finally { 14397 monitor.UnexpectedFailure(unexpectedFailureTag, properties, args); 14398 monitor.Dispose(); 14399 } 14400 }; 14401 14402 try { 14403 functionToExecute(onSuccessMonitored, onFailureMonitored); 14404 } 14405 catch (e) { 14406 monitor.UnexpectedFailure(unexpectedFailureTag, properties, e); 14407 monitor.Dispose(); 14408 throw e; 14409 } 14410 }; 14411 }; 14412 var defaultLogger = null; 14413 14414 QoSLogger.GetLogger = function() { 14415 if (null == defaultLogger) 14416 defaultLogger = new QoSLogger.Logger(); 14417 return defaultLogger; 14418 }; 14419} 14420var RUMDelta; 14421var PerformanceLogger; 14422 14423function PerformanceLogger_module_def() { 14424 PerformanceLogger.ControlPerformanceData = function(_controlId, _startTime, _endTime, _RenderTimeCalculator, _RenderTimeRequiredDataChecker) { 14425 this.ControlId = _controlId; 14426 this.StartTime = _startTime; 14427 this.EndTime = _endTime; 14428 this.RenderTimeCalculator = _RenderTimeCalculator; 14429 this.RenderTimeRequiredDataChecker = _RenderTimeRequiredDataChecker; 14430 }; 14431 PerformanceLogger.ControlPerformanceData.prototype.RenderTime = 0; 14432 PerformanceLogger.PerformanceDataState = { 14433 Incomplete: 1, 14434 ReadyToUpload: 2, 14435 Uploaded: 3, 14436 TimeOut: 4 14437 }; 14438 var PerformanceDataState = PerformanceLogger.PerformanceDataState; 14439 14440 PerformanceLogger.Logger = function(cacheLogger) { 14441 this.PerformanceData = null; 14442 var controls = new Array(0); 14443 var expectedControls = new Array(0); 14444 var dataState = PerformanceDataState.Incomplete; 14445 var perfDataTimer = null; 14446 var checkInterval = 100; 14447 var errorTimeOut = 30000; 14448 var keyMetrics = ['ServerCorrelationId', 'ServerRequestDuration', 'EUPL', 'ServerUrl', 'ScenarioId', 'PageTransitionType', 'AppCache', 'FolderNav', 'W3cNavigationStart']; 14449 var dataStartTime = Number((new Date()).getTime()); 14450 var isServerCorrelationIdCollected = false; 14451 var isPageTransitionCollected = false; 14452 var isServerLatencyCollected = false; 14453 var isAppCacheCollected = false; 14454 var isFolderNavCollected = false; 14455 var isEUPLCollected = false; 14456 var isMDSTimingCollected = false; 14457 var isW3cTimingCollected = false; 14458 var isW3cResourceTimingCollected = false; 14459 var isScenarioIdCollected = false; 14460 var isServerUrlCollected = false; 14461 var euplBreakDown = {}; 14462 var that = this; 14463 14464 if (IsNullOrUndefined(cacheLogger)) { 14465 cacheLogger = CacheLogger.GetLogger(); 14466 } 14467 this.GetPerformanceData = function() { 14468 if (!IsNullOrUndefined(that.PerformanceData)) { 14469 return that.PerformanceData; 14470 } 14471 EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { 14472 if (IsNullOrUndefined(that.PerformanceData)) { 14473 if (typeof SP === "object" && typeof SP.SlapiInternal === "object") { 14474 var slapiInternal = SP.SlapiInternal; 14475 14476 that.PerformanceData = new slapiInternal.RUMOne(); 14477 } 14478 } 14479 }); 14480 return that.PerformanceData; 14481 }; 14482 this.GetPerformanceData(); 14483 function SetPerfDataTimer() { 14484 perfDataTimer = setTimeout(LoopForDataCompleteness, checkInterval); 14485 } 14486 function ClearPerfDataTimer() { 14487 if (!IsNullOrUndefined(perfDataTimer)) { 14488 clearTimeout(perfDataTimer); 14489 perfDataTimer = null; 14490 } 14491 } 14492 function LoopForDataCompleteness() { 14493 ClearPerfDataTimer(); 14494 if (dataState === PerformanceDataState.Uploaded || dataState === PerformanceDataState.TimeOut) { 14495 return; 14496 } 14497 var collected = true; 14498 var missedKeyMetrics = new Array(0); 14499 14500 for (var i = 0; i < keyMetrics.length; i++) { 14501 var keyMetricValue = that.GetPerformanceDataPropertyValue(keyMetrics[i]); 14502 14503 if (IsNullOrUndefined(keyMetricValue)) { 14504 collected = false; 14505 missedKeyMetrics.push(keyMetrics[i]); 14506 } 14507 } 14508 dataState = collected ? PerformanceDataState.ReadyToUpload : PerformanceDataState.Incomplete; 14509 if (dataState === PerformanceDataState.Incomplete) { 14510 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("5DB2EE36-96C7-495F-877E-79DCAFC6ED72"))) { 14511 that.WriteServerCorrelationId(); 14512 WriteServerUrl(); 14513 that.LogPerformanceData('EUPLBreakdown', JSON.stringify(euplBreakDown)); 14514 if (ReadyToComputeEUPL()) { 14515 SetEUPLAndControlData(); 14516 } 14517 } 14518 if (Number((new Date()).getTime()) - Number(dataStartTime) > errorTimeOut) { 14519 dataState = PerformanceDataState.TimeOut; 14520 UploadPerfData(); 14521 EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { 14522 ReportErrors('TimeOut', 'Did not get key perf metrics in ' + String(errorTimeOut) + ' milliseconds. Missed metrics: ' + missedKeyMetrics.join() + '.'); 14523 }); 14524 } 14525 else { 14526 if (window["OffSwitch"] == null || OffSwitch.IsActive("5DB2EE36-96C7-495F-877E-79DCAFC6ED72")) { 14527 that.WriteServerCorrelationId(); 14528 WriteServerUrl(); 14529 that.LogPerformanceData('EUPLBreakdown', JSON.stringify(euplBreakDown)); 14530 if (ReadyToComputeEUPL()) { 14531 SetEUPLAndControlData(); 14532 } 14533 } 14534 } 14535 } 14536 else { 14537 try { 14538 UploadPerfData(); 14539 } 14540 catch (e) { 14541 (function(errorText) { 14542 if (typeof console != "undefined" && Boolean(console) && typeof console.error == "function") { 14543 console.error(String(errorText)); 14544 } 14545 })("PerformanceLogger: error writing RUMOne data."); 14546 } 14547 dataState = PerformanceDataState.Uploaded; 14548 } 14549 SetPerfDataTimer(); 14550 } 14551 ; 14552 SetPerfDataTimer(); 14553 function GetReadableDataState(_dataState) { 14554 if (IsNullOrUndefined(PerformanceDataState)) { 14555 return 'NaN'; 14556 } 14557 for (var key in PerformanceDataState) { 14558 if (_dataState === PerformanceDataState[key]) { 14559 return key; 14560 } 14561 } 14562 return 'NaN'; 14563 } 14564 ; 14565 this.ResetPerformanceLogger = function() { 14566 dataStartTime = (new Date()).getTime(); 14567 dataState = PerformanceDataState.Incomplete; 14568 isServerCorrelationIdCollected = false; 14569 isPageTransitionCollected = false; 14570 isServerLatencyCollected = false; 14571 isAppCacheCollected = false; 14572 isFolderNavCollected = false; 14573 isEUPLCollected = false; 14574 isMDSTimingCollected = false; 14575 isW3cTimingCollected = false; 14576 isW3cResourceTimingCollected = false; 14577 isScenarioIdCollected = false; 14578 isServerUrlCollected = false; 14579 controls = new Array(0); 14580 expectedControls = new Array(0); 14581 that.PerformanceData = null; 14582 that.GetPerformanceData(); 14583 ClearPerfDataTimer(); 14584 SetPerfDataTimer(); 14585 euplBreakDown = {}; 14586 }; 14587 this.LogPerformanceData = function(key, value) { 14588 if (IsNullOrUndefined(key)) { 14589 return; 14590 } 14591 EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { 14592 that.GetPerformanceData();
14593 if (!VerifyPropertyMatchingSchema(key)) { 14594 return; 14595 } 14596 that.PerformanceData[key] = value; 14597 CheckLateReporting({ 14598 Name: key, 14599 Value: value 14600 }); 14601 }); 14602 }; 14603 this.GetPerformanceDataPropertyValue = function(key) { 14604 if (IsNullOrUndefined(that.PerformanceData) || IsNullOrUndefined(key) || !VerifyPropertyMatchingSchema(key)) { 14605 return null; 14606 } 14607 return that.PerformanceData[key]; 14608 }; 14609 function VerifyPropertyMatchingSchema(propertyName) { 14610 var properties = GetRUMOnePropertyNames(that.PerformanceData); 14611 14612 return (properties.join()).indexOf(propertyName) != -1; 14613 } 14614 ; 14615 function GetRUMOnePropertyNames(obj) { 14616 var names = new Array(0); 14617 var index = 0; 14618 14619 if (!IsNullOrUndefined(obj)) { 14620 for (var property in obj) { 14621 if (obj.hasOwnProperty(property)) { 14622 names[index++] = property; 14623 } 14624 } 14625 } 14626 return names; 14627 } 14628 ; 14629 this.WriteServerCorrelationId = function(correlationId) { 14630 if (isServerCorrelationIdCollected) { 14631 return; 14632 } 14633 if (!IsNullOrUndefined(correlationId)) { 14634 that.LogPerformanceData('ServerCorrelationId', correlationId); 14635 } 14636 else if (typeof g_correlationId === "string" && !IsNullOrUndefined(g_correlationId)) { 14637 that.LogPerformanceData('ServerCorrelationId', g_correlationId); 14638 isServerCorrelationIdCollected = true; 14639 } 14640 }; 14641 function WriteServerUrl() { 14642 if (isServerUrlCollected) { 14643 return; 14644 } 14645 if (!IsNullOrUndefined(that.PerformanceData)) { 14646 that.LogPerformanceData('ServerUrl', window.location.href); 14647 isServerUrlCollected = true; 14648 } 14649 } 14650 ; 14651 this.WriteServerSideLatency = function WriteServerSideLatency(duration, iisLatency) { 14652 if (!IsNullOrUndefined(that.PerformanceData) && !isServerLatencyCollected) { 14653 if (!IsNullOrUndefined(duration)) { 14654 that.LogPerformanceData('ServerRequestDuration', duration); 14655 isServerLatencyCollected = true; 14656 } 14657 if (!IsNullOrUndefined(iisLatency)) { 14658 that.LogPerformanceData('IISLatency', iisLatency); 14659 } 14660 } 14661 }; 14662 this.WriteControlPerformanceData = function(controlData) { 14663 if (IsNullOrUndefined(controlData) || IsNullOrUndefined(controls)) { 14664 return; 14665 } 14666 controls.push(controlData); 14667 }; 14668 function WriteControlDataToRUMOne(controlData) { 14669 if (IsNullOrUndefined(controls) || IsNullOrUndefined(that.PerformanceData) || IsNullOrUndefined(controlData)) { 14670 return; 14671 } 14672 var controlId = controlData.ControlId; 14673 var renderTime = controlData.RenderTime; 14674 14675 if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control1Id'))) { 14676 that.LogPerformanceData('Control1Id', controlId); 14677 that.LogPerformanceData('Control1RenderTime', renderTime); 14678 return; 14679 } 14680 if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control2Id'))) { 14681 that.LogPerformanceData('Control2Id', controlId); 14682 that.LogPerformanceData('Control2RenderTime', renderTime); 14683 return; 14684 } 14685 if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control3Id'))) { 14686 that.LogPerformanceData('Control3Id', controlId); 14687 that.LogPerformanceData('Control3RenderTime', renderTime); 14688 return; 14689 } 14690 if (IsNullOrUndefined(that.GetPerformanceDataPropertyValue('Control4Id'))) { 14691 that.LogPerformanceData('Control4Id', controlId); 14692 that.LogPerformanceData('Control4RenderTime', renderTime); 14693 return; 14694 } 14695 } 14696 ; 14697 function ReadyToComputeEUPL() { 14698 var ready = true; 14699 14700 if (IsNullOrUndefined(expectedControls) || IsNullOrUndefined(controls) || expectedControls.length === 0 || controls.length === 0) { 14701 return false; 14702 } 14703 for (var index = 0; index < expectedControls.length; index++) {
14704 var keyControl = LookUpControls(expectedControls[index], controls); 14705 14706 if (IsNullOrUndefined(keyControl) || !keyControl.RenderTimeRequiredDataChecker(that, keyControl)) { 14707 ready = false; 14708 break; 14709 } 14710 } 14711 return ready; 14712 } 14713 ; 14714 function LookUpControls(_controlId, _controls) { 14715 if (IsNullOrUndefined(_controlId) || IsNullOrUndefined(_controls)) { 14716 return null; 14717 } 14718 for (var index = 0; index < _controls.length; index++) { 14719 if (_controlId === _controls[index].ControlId) { 14720 return _controls[index]; 14721 } 14722 } 14723 return null; 14724 } 14725 ; 14726 function SetEUPLAndControlData() { 14727 if (isEUPLCollected) { 14728 return; 14729 } 14730 var eupl = 0; 14731 14732 if (IsNullOrUndefined(controls) || controls.length === 0) { 14733 return; 14734 } 14735 for (var index = 0; index < controls.length; index++) { 14736 var controlData = controls[index]; 14737 14738 controlData.RenderTime = controlData.RenderTimeCalculator(that, controlData); 14739 WriteControlDataToRUMOne(controlData); 14740 if (eupl < controlData.RenderTime) { 14741 eupl = controlData.RenderTime; 14742 } 14743 } 14744 that.LogPerformanceData('EUPL', eupl); 14745 isEUPLCollected = true; 14746 } 14747 ; 14748 this.WriteAppCache = function(appCache) { 14749 if (isAppCacheCollected) { 14750 return; 14751 } 14752 that.LogPerformanceData('AppCache', appCache); 14753 isAppCacheCollected = true; 14754 }; 14755 this.WriteFolderNav = function(folderNav) { 14756 if (isFolderNavCollected) { 14757 return; 14758 } 14759 that.LogPerformanceData('FolderNav', folderNav); 14760 isFolderNavCollected = true; 14761 }; 14762 this.WritePageTransitionType = function(pageTransitionType) { 14763 if (isPageTransitionCollected) { 14764 return; 14765 } 14766 if (IsNullOrUndefined(pageTransitionType) || pageTransitionType < 0 || pageTransitionType > 4) { 14767 return; 14768 } 14769 that.LogPerformanceData('PageTransitionType', pageTransitionType); 14770 isPageTransitionCollected = true; 14771 }; 14772 this.WriteScenarioId = function(scenarioId, overwrite) { 14773 if (isScenarioIdCollected && !overwrite) { 14774 return; 14775 } 14776 if (IsNullOrUndefined(scenarioId)) { 14777 return; 14778 } 14779 that.LogPerformanceData('ScenarioId', scenarioId); 14780 isScenarioIdCollected = true; 14781 }; 14782 this.WriteMDSTiming = function(mdsIndex, timing) { 14783 if (isMDSTimingCollected) { 14784 return; 14785 } 14786 var MDSTimingName = ResolveMDSTimingName(mdsIndex); 14787 14788 if (!IsNullOrUndefined(MDSTimingName)) { 14789 that.LogPerformanceData(MDSTimingName, timing); 14790 if (MDSTimingName === 'MDSAnimationEnd') { 14791 isMDSTimingCollected = true; 14792 } 14793 } 14794 }; 14795 this.CollectW3CPerfTimings = function() { 14796 if (isW3cTimingCollected) { 14797 return; 14798 } 14799 var w3cTimeStampNames = ['navigationStart', 'unloadEventStart', 'unloadEventEnd', 'fetchStart', 'redirectStart', 'redirectEnd', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'secureConnectStart', 'connectEnd', 'requestStart', 'responseStart', 'responseEnd', 'domLoading', 'domComplete', 'loadEventStart', 'loadEventEnd']; 14800 var perfTimingObject = GetWindowPerfTimingObject(); 14801 14802 if (IsNullOrUndefined(perfTimingObject)) { 14803 return; 14804 } 14805 var values = new Array(w3cTimeStampNames.length); 14806 14807 for (var index = 0; index < w3cTimeStampNames.length; index++) { 14808 var w3cObject = perfTimingObject[w3cTimeStampNames[index]]; 14809 14810 if (IsNullOrUndefined(w3cObject)) { 14811 continue; 14812 } 14813 that.LogPerformanceData(GetW3cTimingName(w3cTimeStampNames[index]), Number(w3cObject)); 14814 } 14815 isW3cTimingCollected = true; 14816 }; 14817 this.CollectW3cResourceTimings = function() { 14818 var index = 0; 14819 14820 if (!isW3cResourceTimingCollected) { 14821 var allRequests = GetPerfResourcesTimingObject(false, 0); 14822 var iFrames = document.getElementsByTagName("iframe"); 14823 14824 for (index = 0; index < iFrames.length; index++) { 14825 var iFramePerformance = null; 14826 14827 try { 14828 iFramePerformance = GetPerfResourcesTimingObject(true, index); 14829 } 14830 catch (e) { } 14831 if (Boolean(iFramePerformance)) { 14832 allRequests.concat(iFramePerformance.getEntriesByType("resource")); 14833 } 14834 } 14835 var fromSources = {}; 14836 14837 fromSources["SharePoint"] = function(element) { 14838 return /\.sharepoint\.com|\.spoppe\.com/i.test(element.name); 14839 }; 14840 fromSources["CDN"] = function(element) { 14841 return /(cdn(ppe)?|static(ppe)?)\.sharepointonline\.com|contentstorage\.osi\.office\.net|\.akamaihd\.net/i.test(element.name); 14842 }; 14843 fromSources["ThirdParty"] = function(element) { 14844 return !fromSources["SharePoint"](element) && !fromSources["CDN"](element); 14845 }; 14846 var types = {}; 14847 14848 types["ASPX"] = function(element) { 14849 return /\.aspx/i.test(element.name); 14850 }; 14851 types["JS"] = function(element) { 14852 return /script/i.test(element.initiatorType); 14853 }; 14854 types["CSS"] = function(element) { 14855 return /link|css/i.test(element.initiatorType); 14856 }; 14857 types["IMG"] = function(element) { 14858 return /img/i.test(element.initiatorType); 14859 }; 14860 var sources = Object.keys(fromSources); 14861 14862 for (index = 0; index < sources.length; index++) { 14863 var source = sources[index]; 14864 var requests = CategorizeResourceRequests(allRequests, { 14865 from: fromSources[source], 14866 requestType: null 14867 }); 14868 14869 that.LogPerformanceData(source + "RequestCountTotal", requests.length); 14870 var typeKeys = Object.keys(types); 14871 14872 for (var typeIndex = 0; typeIndex < typeKeys.length; typeIndex++) { 14873 var type = typeKeys[typeIndex]; 14874 14875 that.LogPerformanceData(source + "RequestCount" + type, (CategorizeResourceRequests(requests, { 14876 from: null, 14877 requestType: types[type] 14878 })).length); 14879 } 14880 if (requests.length > 0) { 14881 that.LogPerformanceData(source + "RequestDownloadTime", Math.round(requests.reduce(function(sum, currentVal) { 14882 return sum + currentVal.duration; 14883 }, 0) / requests.length)); 14884 var files = JSON.stringify(requests.map(function(timing) { 14885 return { 14886 name: ((((timing.name.split("/")).map(function(urlToken) { 14887 return (urlToken.split("?"))[0]; 14888 })).filter(function(urlToken) { 14889 return urlToken && urlToken.length > 0;
14890 })).slice(-1))[0].replace(/\(.*?\)/g, '()'), 14891 startTime: Math.round(timing.startTime), 14892 duration: Math.round(timing.duration) 14893 }; 14894 })); 14895 14896 that.LogPerformanceData(source + "RequestNames", files); 14897 } 14898 } 14899 isW3cResourceTimingCollected = true; 14900 } 14901 }; 14902 function CategorizeResourceRequests(requests, categorizer) { 14903 var ret = []; 14904 14905 for (var index = 0; index < requests.length; index++) { 14906 var request = requests[index]; 14907 14908 if ((!categorizer.from || categorizer.from(request)) && (!categorizer.requestType || categorizer.requestType(request))) { 14909 ret.push(request); 14910 } 14911 } 14912 return ret; 14913 } 14914 ; 14915 function GetW3cTimingName(timingName) { 14916 return 'W3c' + (timingName.charAt(0)).toUpperCase() + timingName.slice(1); 14917 } 14918 ; 14919 function GetWindowPerfTimingObject() { 14920 var perfObject = window.self["performance"]; 14921 14922 if (IsNullOrUndefined(perfObject)) { 14923 return null; 14924 } 14925 var timingObject = perfObject.timing; 14926 14927 if (IsNullOrUndefined(timingObject)) { 14928 return null; 14929 } 14930 return timingObject; 14931 } 14932 ; 14933 function GetPerfResourcesTimingObject(biframe, index) { 14934 var perfObject = null; 14935 14936 try { 14937 if (biframe) { 14938 var iFrames = document.getElementsByTagName("iframe"); 14939 14940 perfObject = iFrames & iFrames.length > index ? iFrames[index].contentWindow["performance"] : null; 14941 } 14942 else { 14943 perfObject = window.self["performance"]; 14944 } 14945 } 14946 catch (e) { } 14947 if (IsNullOrUndefined(perfObject)) { 14948 return null; 14949 } 14950 var timingObject = perfObject.getEntriesByType("resource"); 14951 14952 if (IsNullOrUndefined(timingObject)) { 14953 return null; 14954 } 14955 return timingObject; 14956 } 14957 ; 14958 function ResolveMDSTimingName(mdsIndex) { 14959 switch (mdsIndex) { 14960 case 0: 14961 return 'MDSDownloadStart'; 14962 case 1: 14963 case 2: 14964 return 'MDSParseDeltaStart'; 14965 case 3: 14966 return 'MDSParseDeltaEnd'; 14967 case 4: 14968 return 'MDSGCStart'; 14969 case 5: 14970 return 'MDSGCEnd'; 14971 case 6: 14972 case 7: 14973 case 8: 14974 return 'MDSCSSStart'; 14975 case 9: 14976 return 'MDSCSSEnd'; 14977 case 10: 14978 return 'MDSInnerHTMLStart'; 14979 case 11: 14980 case 12: 14981 return 'MDSScriptLoaderStart'; 14982 case 13: 14983 return 'MDSScriptLoaderEnd'; 14984 case 14: 14985 return 'MDSAnimationStart'; 14986 case 15: 14987 return 'MDSAnimationEnd'; 14988 case 16: 14989 return 'MDSParallelDownloadStart'; 14990 case 17: 14991 return 'MDSParallelDownloadEnd'; 14992 default: 14993 return null; 14994 } 14995 } 14996 ; 14997 function CheckLateReporting(metric) { 14998 if (dataState === PerformanceDataState.Uploaded || dataState === PerformanceDataState.TimeOut) { 14999 var reason = "Late Reported Data"; 15000 var message = JSON.stringify(metric); 15001 15002 EnsureScriptFunc("sp.core.js", "SP.SlapiInternal", function() { 15003 ReportErrors(reason, message); 15004 }); 15005 } 15006 } 15007 ; 15008 function UploadPerfData() { 15009 if (IsNullOrUndefined(that.PerformanceData) || dataState != PerformanceDataState.ReadyToUpload && dataState != PerformanceDataState.TimeOut) { 15010 return; 15011 } 15012 if (IsNullOrUndefined(cacheLogger)) { 15013 return; 15014 } 15015 cacheLogger.WriteLog('RUMOne', that.GetPerformanceData(), true); 15016 } 15017 ; 15018 function ReportErrors(reason, message) { 15019 var slapiInternal = SP.SlapiInternal; 15020 var errorObj = new slapiInternal.RUMOneErrors(); 15021 15022 errorObj.Reason = reason; 15023 errorObj.Message = message; 15024 if (IsNullOrUndefined(cacheLogger)) { 15025 return; 15026 } 15027 cacheLogger.WriteLog('RUMOneErrors', errorObj); 15028 } 15029 ; 15030 this.AddExpectedControl = function(control) { 15031 if (expectedControls.indexOf && expectedControls.indexOf(control)
15031=== -1) { 15032 expectedControls.push(control); 15033 } 15034 }; 15035 this.WriteEUPLBreakdown = function(euplBreakdown, overwrite) { 15036 if (euplBreakdown) { 15037 try { 15038 var breakdown = JSON.parse(euplBreakdown); 15039 15040 for (var key in breakdown) { 15041 if (!breakdown.hasOwnProperty(key)) { 15042 continue; 15043 } 15044 that.AddEUPLBreakdown(key, breakdown[key], overwrite); 15045 } 15046 } 15047 catch (e) { } 15048 } 15049 }; 15050 this.AddEUPLBreakdown = function(euplName, value, overwrite) { 15051 if (Boolean(euplName) && !IsNullOrUndefined(value)) { 15052 if (IsNullOrUndefined(euplBreakDown[euplName]) || overwrite) { 15053 euplBreakDown[euplName] = value; 15054 } 15055 } 15056 }; 15057 this.CheckControlTimeRequiredDataAvailable = function(perfLogger, controlData) { 15058 if (IsNullOrUndefined(perfLogger) || IsNullOrUndefined(controlData)) { 15059 return false; 15060 } 15061 var folderNav = perfLogger.GetPerformanceDataPropertyValue('FolderNav'); 15062 15063 if (!IsNullOrUndefined(folderNav) && folderNav) { 15064 return true; 15065 } 15066 var pageTransitionType = perfLogger.GetPerformanceDataPropertyValue('PageTransitionType'); 15067 15068 if (IsNullOrUndefined(pageTransitionType)) { 15069 return false; 15070 } 15071 if (pageTransitionType === 1) { 15072 var downloadStart = perfLogger.GetPerformanceDataPropertyValue('MDSDownloadStart'); 15073 15074 if (IsNullOrUndefined(downloadStart)) { 15075 return false; 15076 } 15077 } 15078 else { 15079 var navigationStart = perfLogger.GetPerformanceDataPropertyValue('W3cNavigationStart'); 15080 15081 if (IsNullOrUndefined(navigationStart)) { 15082 return false; 15083 } 15084 } 15085 return true; 15086 }; 15087 this.ComputeControlRenderTime = function(perfLogger, controlData) { 15088 if (IsNullOrUndefined(perfLogger) || IsNullOrUndefined(controlData)) { 15089 return 0; 15090 } 15091 var folderNav = perfLogger.GetPerformanceDataPropertyValue('FolderNav'); 15092 15093 if (!IsNullOrUndefined(folderNav) && folderNav) { 15094 return Number(controlData.EndTime) - Number(controlData.StartTime); 15095 } 15096 var pageTransitionType = perfLogger.GetPerformanceDataPropertyValue('PageTransitionType'); 15097 var w3cNavigationStart = perfLogger.GetPerformanceDataPropertyValue('W3cNavigationStart'); 15098 var downloadStart = perfLogger.GetPerformanceDataPropertyValue('MDSDownloadStart'); 15099 15100 if (IsNullOrUndefined(controlData.ControlId) || IsNullOrUndefined(controlData.EndTime) || IsNullOrUndefined(pageTransitionType)) { 15101 return 0; 15102 } 15103 if (pageTransitionType === 1) { 15104 if (IsNullOrUndefined(downloadStart)) { 15105 return 0; 15106 } 15107 return Number(controlData.EndTime) - Number(downloadStart); 15108 } 15109 if (pageTransitionType > 1 && pageTransitionType <= 4) { 15110 if (Boolean(controlData.StartTime)) { 15111 return Number(controlData.EndTime) - Number(controlData.StartTime); 15112 } 15113 else { 15114 if (IsNullOrUndefined(w3cNavigationStart)) { 15115 return 0; 15116 } 15117 return Number(controlData.EndTime) - Number(w3cNavigationStart); 15118 } 15119 } 15120 return 0; 15121 }; 15122 }; 15123 PerformanceLogger.GetLogger = function() { 15124 if (!Flighting.VariantConfiguration.IsExpFeatureClientEnabled(517)) { 15125 return null; 15126 } 15127 if (typeof g_RUMOneLogger == "undefined" || IsNullOrUndefined(g_RUMOneLogger)) { 15128 if (typeof SP == "object" && typeof SP.CacheLogger == "object" && !IsNullOrUndefined(SP.CacheLogger)) { 15129 g_RUMOneLogger = new PerformanceLogger.Logger(SP.CacheLogger); 15130 } 15131 else { 15132 g_RUMOneLogger = new PerformanceLogger.Logger(); 15133 } 15134 } 15135 return g_RUMOneLogger; 15136 }; 15137} 15138var SPRUMLogger; 15139 15140function SPRUMLogger_module_def() { 15141 if (typeof SP.Performance == "undefined") 15142 SP.Performance = {}; 15143 if (typeof SP.Performance.Log == "undefined") { 15144 SP.Performance.Log = function(logger) { 15145 var _rumlogger = new RUMDelta.Logger(logger);
15146 var _diTimerId = null; 15147 15148 this.UploadNonMDSPageLoadTelemetry = function(pageContext, endTime) { 15149 var startTime = GetW3CPageLoadStartTime(); 15150 15151 if (Boolean(startTime)) { 15152 var eupl = endTime - startTime; 15153 var actionContext = GetActionContext(pageContext); 15154 15155 _rumlogger.UploadRUMData(actionContext, startTime, 0, 0, 0, eupl); 15156 } 15157 }; 15158 var GetPageContextInfo = function(propName) { 15159 if (typeof _spPageContextInfo != "undefined" && Boolean(_spPageContextInfo) && Boolean(_spPageContextInfo[propName])) { 15160 var propVal = _spPageContextInfo[propName]; 15161 15162 if (Boolean(propVal)) { 15163 return propVal; 15164 } 15165 } 15166 return null; 15167 }; 15168 var GetActionContext = function(pageContext) { 15169 var actionContext = (RUMDelta.Application.SharePoint << 16) + pageContext; 15170 15171 return actionContext; 15172 }; 15173 var GetW3CPageLoadStartTime = function() { 15174 var SP_PLTStart = 0; 15175 15176 if (typeof performance != "undefined" && typeof performance.timing != "undefined") { 15177 var _pt = performance.timing; 15178 15179 SP_PLTStart = Number(_pt.navigationStart); 15180 if (SP_PLTStart == 0) 15181 SP_PLTStart = Number(_pt.redirectStart); 15182 if (SP_PLTStart == 0) 15183 SP_PLTStart = Number(_pt.fetchStart); 15184 } 15185 return SP_PLTStart; 15186 }; 15187 15188 this.UploadFileXferTelemetry = function(source, startTime, endTime, byteCount) { 15189 var downloadType = -1; 15190 15191 if (source.toLowerCase() == "wacdownload") 15192 downloadType = 1; 15193 else if (source.toLowerCase() == "download") 15194 downloadType = 2; 15195 if (downloadType != -1) { 15196 var action = typeof RUMDelta.Application.SharePointFileXfer != "undefined" ? RUMDelta.Application.SharePointFileXfer : 3; 15197 var actionContext = (action << 16) + downloadType; 15198 15199 _rumlogger.UploadRUMData(actionContext, startTime, 0, 0, byteCount, endTime - startTime); 15200 } 15201 }; 15202 }; 15203 } 15204} 15205var SPLoggers; 15206 15207function SPLoggers_module_def() { 15208 if (typeof SP.ReadyToUploadLogs != "undefined") 15209 return; 15210 SP.ReadyToUploadLogs = function() { 15211 }; 15212 var spUploader = function(uploadFunc) { 15213 var defaultUploader = null; 15214 15215 this.CanUpload = function() { 15216 return null != defaultUploader; 15217 }; 15218 this.OnLog = function() { 15219 if (null != defaultUploader) 15220 defaultUploader.OnLog(); 15221 }; 15222 this.OnUpload = function() { 15223 if (null != defaultUploader) 15224 defaultUploader.OnUpload(); 15225 }; 15226 SP.ReadyToUploadLogs = function() { 15227 if (null != defaultUploader) 15228 return; 15229 defaultUploader = new CacheLogger.DefaultUploader(uploadFunc); 15230 setTimeout(uploadFunc, 0); 15231 }; 15232 }; 15233 var useParent = false; 15234 15235 try { 15236 useParent = window.parent != null && typeof window.parent.SP == "object" && typeof window.parent.SP.CacheLogger == "object" && window.parent.location.protocol == window.location.protocol && window.parent.location.host == window.location.host; 15237 } 15238 catch (exParentWindow) { } 15239 if (useParent) { 15240 var parentObj = window.parent; 15241 15242 SP.DebugLogger = new DebugLogger.Logger(25, parentObj.SP.CacheLogger); 15243 SP.QoS = new QoSLogger.Logger(parentObj.SP.CacheLogger, SP.DebugLogger); 15244 } 15245 else { 15246 SP.CacheLogger = new CacheLogger.Logger("SPCacheLogger", BaseLogger.GetLogger(), spUploader); 15247 SP.DebugLogger = new DebugLogger.Logger(25, SP.CacheLogger); 15248 SP.QoS = new QoSLogger.Logger(SP.CacheLogger, SP.DebugLogger); 15249 } 15250 var baseLogger = { 15251 WriteLog: function(eventName, dictProperties) { 15252 SP.CacheLogger.WriteLog(eventName, dictProperties, true); 15253 }, 15254 UploadData: function() { 15255 } 15256 }; 15257 var spRUMLogger; 15258 15259 SP.Performance.Log.GetLogger = function() { 15260 if (spRUMLogger == null) { 15261 spRUMLogger = new SP.Performance.Log(baseLogger); 15262 } 15263 return spRUMLogger; 15264 }; 15265} 15266function _WriteDocEngagement(teamSiteTag, oneDriveTag, dictProperties) { 15267 var context = window["ctx"]; 15268 15269 if (context != null && (Boolean(context.RealSiteTemplateId) ? context.RealSiteTemplateId === 21 : context.SiteTemplateId === 21)) { 15270 SP.QoS.WriteUserEngagement(oneDriveTag, dictProperties); 15271 } 15272 else { 15273 SP.QoS.WriteUserEngagement(teamSiteTag, dictProperties); 15274 } 15275} 15276function _WriteDocDebugLog(teamSiteTag, oneDriveTag, level, e) { 15277 var context = window["ctx"]; 15278 15279 if (context != null && (Boolean(context.RealSiteTemplateId) ? context.RealSiteTemplateId === 21 : context.SiteTemplateId === 21)) { 15280 SP.DebugLogger.Write(oneDriveTag, level, e); 15281 } 15282 else { 15283 SP.DebugLogger.Write(teamSiteTag, level, e); 15284 } 15285} 15286function _WriteDocStartTag(teamSiteTag, oneDriveTag) { 15287 _WriteDocEngagement(teamSiteTag, oneDriveTag); 15288} 15289function _WriteDocSuccessTag(teamSiteTag, oneDriveTag) { 15290 _WriteDocEngagement(teamSiteTag, oneDriveTag); 15291} 15292function _WriteDocFailureTag(teamSiteTag, oneDriveTag) { 15293 _WriteDocEngagement(teamSiteTag, oneDriveTag); 15294}
15295function WriteDebugLogWithEventArgs(tag, args) { 15296 SP.DebugLogger.Write(tag, SP.DebugLogger.LoggingLevel.Interesting, getLoggingInfo(args)); 15297} 15298var getLoggingInfo; 15299var addToInfoIfExists; 15300var _WOPIDocLoaded; 15301var SetWOPIDocLoaded; 15302var _TelemetryEndTime; 15303var UploadFileXferTelemetry; 15304var ReadyToUploadLogs; 15305 15306function RumNonMDSHandler() { 15307 setTimeout(CollectRUMNonMDS, 0); 15308} 15309var SPThemeUtils; 15310 15311function SPThemeUtils_module_def() { 15312 SPThemeUtils.ApplyCurrentTheme = ApplyCurrentTheme; 15313 SPThemeUtils.ClearThemeCache = ClearThemeCache; 15314 SPThemeUtils.GetCurrentStyleSheetText = GetCurrentStyleSheetText; 15315 SPThemeUtils.GetCurrentThemeCacheToken = GetCurrentThemeCacheToken; 15316 SPThemeUtils.GetSiteThemedCssFolderUrl = GetSiteThemedCssFolderUrl; 15317 SPThemeUtils.GetThemedStyleSheets = GetThemedStyleSheets; 15318 SPThemeUtils.GetThemeColor = GetThemeColor; 15319 SPThemeUtils.IsSiteThemed = IsSiteThemed; 15320 SPThemeUtils.LoadThemableResources = LoadThemableResources; 15321 SPThemeUtils.RegisterAllImages = RegisterAllImages; 15322 SPThemeUtils.RegisterCssReferences = RegisterCssReferences; 15323 SPThemeUtils.ReplaceCssTextForElement = ReplaceCssTextForElement; 15324 SPThemeUtils.SetThemeRetriever = SetThemeRetriever; 15325 SPThemeUtils.Suspend = SuspendTheming; 15326 SPThemeUtils.UseClientSideTheming = UseClientSideTheming; 15327 SPThemeUtils.UseShellThemes = UseShellThemes; 15328 SPThemeUtils.WhenThemeReady = WhenThemeReady; 15329 SPThemeUtils.WithCurrentTheme = WithCurrentTheme; 15330 SPThemeUtils.WithSiteTheme = WithSiteTheme; 15331 var strUndefined = "undefined"; 15332 var _attrCssOriginalHref = "data-original-href"; 15333 var _withTheme = WithSiteTheme; 15334 15335 function Complain(complaint) { 15336 if (typeof console !== strUndefined && typeof console.warn !== strUndefined) 15337 console.warn(complaint); 15338 } 15339 function SuspendTheming() { 15340 (GetPageManager()).SuspendTheming(); 15341 } 15342 function FlightingAvailable() { 15343 return typeof Flighting !== strUndefined && typeof Flighting.VariantConfiguration !== strUndefined && typeof Flighting.VariantConfiguration.IsExpFeatureClientEnabled !== strUndefined; 15344 } 15345 function UseClientSideTheming() { 15346 var wtGroup = 64; 15347 var wtCommSite = 68; 15348 var wtSTS3 = "STS#3"; 15349 var wt; 15350 var wtConfiguration; 15351 var featureEnabled = FlightingAvailable() && (Flighting.VariantConfiguration.IsExpFeatureClientEnabled(104) || Flighting.VariantConfiguration.IsExpFeatureClientEnabled(157) || Flighting.VariantConfiguration.IsExpFeatureClientEnabled(120) && ((wt = GetWebTemplate()) == wtGroup || wt == wtCommSite || (wtConfiguration = GetWebTemplateConfiguration()) == wtSTS3)); 15352 var useCST = featureEnabled && typeof Theming !== strUndefined; 15353 15354 return useCST; 15355 } 15356 function UseShellThemes() { 15357 return UseClientSideTheming() && Flighting.VariantConfiguration.IsExpFeatureClientEnabled(107); 15358 } 15359 function GetPageManager() { 15360 return Theming.GetPageManager(); 15361 } 15362 function GetCurrentStyleSheetText(styleSheetUrl) { 15363 return (GetPageManager()).GetCurrentStyleSheetText(styleSheetUrl); 15364 } 15365 function GetThemedStyleSheets() { 15366 return (GetPageManager()).GetThemedStyleSheets(); 15367 } 15368 function GetThemeColor(colorSlot, opacity) { 15369 return (GetPageManager()).GetColorFromPalette(colorSlot, opacity); 15370 } 15371 function WhenImagesThemed(callback) { 15372 if (UseClientSideTheming()) 15373 (GetPageManager()).WhenImagesThemed(callback); 15374 else 15375 callback(); 15376 } 15377 function WhenThemeReady(callback) { 15378 if (UseClientSideTheming()) 15379 (GetPageManager()).WhenReady(callback); 15380 else 15381 callback(); 15382 } 15383 function GetResponseText(xhr) { 15384 var strResponseText; 15385 15386 try { 15387 strResponseText = xhr.responseText; 15388 } 15389 catch (exResponseText) { } 15390 return strResponseText; 15391 } 15392 function GetErrorPropertiesFromXHR(xhrError) { 15393 var errorProps = { 15394 PageCorrelation: window["g_correlationId"], 15395 PageURL: Nav.ajaxNavigate.get_href(), 15396 IsAppWeb: GetPageContextInfoProperty("isAppWeb"), 15397 XHR_Correlation: xhrError.getResponseHeader("SPRequestGuid"), 15398 XHR_Status: xhrError.status, 15399 WebTemplate: GetPageContextInfoProperty("webTemplate") 15400 }; 15401 15402 return errorProps; 15403 } 15404 function RequestHeader(header, value) { 15405 this.header = header; 15406 this.value = value; 15407 } 15408 function WithLoadedXMLHttpRequest(url, xhrResultCallback, requestHeaders) { 15409 var req = new XMLHttpRequest(); 15410 15411 req.onreadystatechange = function() { 15412 if (req != null && req.readyState != 4) 15413 return; 15414 xhrResultCallback(req); 15415 req = null; 15416 }; 15417 try { 15418 req.open("GET", url, true); 15419 if (requestHeaders != null) { 15420 for (var i = 0; i < requestHeaders.length; i++) { 15421 var rh = requestHeaders[i];
15422 15423 req.setRequestHeader(rh.header, rh.value); 15424 } 15425 } 15426 req.send(""); 15427 } 15428 catch (exSendRequest) { 15429 xhrResultCallback(req); 15430 req = null; 15431 } 15432 } 15433 function WithUrlContents(url, resultCallback, xhrErrorCallback, requestHeaders) { 15434 WithLoadedXMLHttpRequest(url, CallbackWithUrlContents, requestHeaders); 15435 function CallbackWithUrlContents(req) { 15436 var responseText = null; 15437 15438 if (req.status != 200 && Boolean(xhrErrorCallback)) { 15439 xhrErrorCallback(req); 15440 } 15441 else { 15442 if (req.status == 200) { 15443 responseText = req.responseText; 15444 } 15445 resultCallback(responseText); 15446 } 15447 } 15448 } 15449 function WithUrlContentsMonitored(url, monitoredResultCallback, xhrMonitoredErrorCallback, requestHeaders, scenarioName, startTag, successTag, failureTag, noResultTag) { 15450 if (!scenarioName) 15451 scenarioName = "WithUrlContents"; 15452 if (!startTag) 15453 startTag = scenarioName + "_Start"; 15454 if (!successTag) 15455 successTag = scenarioName + "_Success"; 15456 if (!failureTag) 15457 failureTag = scenarioName + "_Failure"; 15458 if (!noResultTag) 15459 noResultTag = scenarioName + "_NoResult"; 15460 var urlRequestMonitor = new SP.QoS.ScenarioMonitor(scenarioName, startTag, successTag, failureTag, noResultTag); 15461 15462 WithUrlContents(url, ResultCallbackForMonitoring, ErrorCallbackForMonitoring, _restHeaders); 15463 function ResultCallbackForMonitoring(strResult) { 15464 monitoredResultCallback(strResult, urlRequestMonitor); 15465 if (urlRequestMonitor != null) { 15466 urlRequestMonitor.Success(); 15467 urlRequestMonitor.Dispose(); 15468 } 15469 } 15470 function ErrorCallbackForMonitoring(xhrError) { 15471 if (Boolean(xhrMonitoredErrorCallback)) { 15472 xhrMonitoredErrorCallback(xhrError, urlRequestMonitor); 15473 } 15474 else if (urlRequestMonitor != null) { 15475 urlRequestMonitor.UnexpectedFailure(); 15476 monitoredResultCallback(null, urlRequestMonitor); 15477 urlRequestMonitor.Dispose(); 15478 } 15479 } 15480 } 15481 var _restHeaders = [new RequestHeader("Content-Type", "application/x-www-form-urlencoded"), new RequestHeader("ACCEPT", "application/json; odata = verbose")]; 15482 15483 function WithRestValue(url, resultCallback, xhrErrorCallback) { 15484 WithUrlContents(url, resultCallback, xhrErrorCallback, _restHeaders); 15485 } 15486 function WithRestValueMonitored(url, monitoredResultCallback, xhrMonitoredErrorCallback, scenarioName, startTag, successTag, failureTag, noResultTag) { 15487 WithUrlContentsMonitored(url, monitoredResultCallback, xhrMonitoredErrorCallback, _restHeaders, scenarioName, startTag, successTag, failureTag, noResultTag); 15488 } 15489 function GetPageContextInfoProperty(propName) { 15490 var prop = null; 15491 15492 if (typeof _spPageContextInfo != 'undefined') { 15493 prop = _spPageContextInfo[propName]; 15494 } 15495 return prop; 15496 } 15497 function GetCurrentLcid() { 15498 var lcid = Number(GetPageContextInfoProperty("currentLanguage")); 15499 15500 if (isNaN(lcid)) 15501 lcid = 1033; 15502 return lcid; 15503 } 15504 function GetSiteThemeCacheToken() { 15505 return GetPageContextInfoProperty("themeCacheToken"); 15506 } 15507 function GetSiteThemedCssFolderUrl() { 15508 return GetPageContextInfoProperty("themedCssFolderUrl"); 15509 } 15510 function GetWebServerRelativeUrl() { 15511 var webUrl = GetPageContextInfoProperty("webServerRelativeUrl"); 15512 15513 if (!Boolean(webUrl)) 15514 webUrl = "/"; 15515 return webUrl; 15516 } 15517 function GetWebTemplate() { 15518 var webTemplate = -1; 15519 var strWebTemplate = GetPageContextInfoProperty("webTemplate"); 15520 15521 if (strWebTemplate != null) { 15522 webTemplate = parseInt(strWebTemplate); 15523 } 15524 return webTemplate; 15525 } 15526 function GetWebTemplateConfiguration() { 15527 var webTemplateConfiguration = null; 15528 var strWebTemplateConfiguration = GetPageContextInfoProperty("webTemplateConfiguration"); 15529 15530 if (strWebTemplateConfiguration != null) { 15531 webTemplateConfiguration = strWebTemplateConfiguration; 15532 } 15533 return webTemplateConfiguration; 15534 } 15535 function UserCannotFetchTheme() { 15536 var SPBasePermissions_Open = 0x10000; 15537 var nonMDSPage = false; 15538 15539 try { 15540 nonMDSPage = !Nav.isMDSUrl(window.location.href); 15541 } 15542 catch (exIgnore) { } 15543 return nonMDSPage && GetPageContextInfoProperty("webPermMasks") != null && !UserHasPermissionLow(SPBasePermissions_Open); 15544 } 15545 function UserHasPermissionLow(permissionLevel) { 15546 var webPermMasks = GetPageContextInfoProperty("webPermMasks"); 15547 var webPermMasksLow = webPermMasks != null ? Number(webPermMasks["Low"]) : 0; 15548 var hasPerm = (webPermMasksLow & permissionLevel) == permissionLevel; 15549 15550 return hasPerm; 15551 } 15552 function IsSiteThemed() { 15553 return GetSiteThemedCssFolderUrl() != null; 15554 } 15555 function ParseJsonOrUndefined(strJson) { 15556 var result; 15557 15558 if (strJson != null) { 15559 try { 15560 result = JSON.parse(strJson); 15561 } 15562 catch (exParsingJson) { } 15563 } 15564 return result; 15565 } 15566 var _key_ThemeCache = "SPThemeCache"; 15567 var _key_ThemeCacheToken = "SPThemeCacheToken"; 15568 15569 function ClearThemeCache() { 15570 BrowserStorage.local.removeItem(_key_ThemeCache); 15571 BrowserStorage.local.removeItem(_key_ThemeCacheToken); 15572 } 15573 function CacheTheme(strThemeData, cacheToken) { 15574 try { 15575 if (cacheToken != null && JSON.parse(strThemeData) != null) { 15576 BrowserStorage.local.setItem(_key_ThemeCache, strThemeData); 15577 BrowserStorage.local.setItem(_key_ThemeCacheToken, cacheToken); 15578 } 15579 } 15580 catch (exThemeDataParsing) { } 15581 } 15582 function GetCachedTheme() { 15583 var result = null; 15584 var currentCacheToken = GetSiteThemeCacheToken(); 15585 var storedCacheToken = BrowserStorage.local.getItem(_key_ThemeCacheToken); 15586 15587 if (Boolean(storedCacheToken) && storedCacheToken == currentCacheToken) { 15588 result = BrowserStorage.local.getItem(_key_ThemeCache); 15589 } 15590 return result; 15591 } 15592 function GetCurrentThemeCacheToken() { 15593 return (GetPageManager()).GetCacheToken(); 15594 } 15595 function ExtractThemeDataFromREST(strData) { 15596 var themeJson = null; 15597 var objRestData = ParseJsonOrUndefined(strData); 15598 15599 if (objRestData != null && objRestData.d != null) 15600 themeJson = objRestData.d.GetContextWebThemeData; 15601 return themeJson; 15602 } 15603 function ParseThemeData(strThemeData) { 15604 var themeInfo = null; 15605 var themeData = ParseJsonOrUndefined(strThemeData); 15606 15607 themeInfo = new Theming.ThemeInfo(themeData); 15608 return themeInfo; 15609 } 15610 function SetThemeRetriever(withTheme) { 15611 _withTheme = withTheme == null ? WithSiteTheme : withTheme; 15612 } 15613 function WithCurrentTheme(themeCallback, bForceLoad) { 15614 _withTheme(themeCallback, bForceLoad); 15615 } 15616 var _strThemeOverride = "ThemeOverride"; 15617 15618 function WithSiteTheme(themeCallback, bForceLoad) { 15619 if (window["Theming"] == null || !bForceLoad && !Theming.Utilities.CanRecolorImages()) {
15620 themeCallback(null); 15621 return; 15622 } 15623 var overrideTheme = Nav.getUrlKeyValue(_strThemeOverride); 15624 var hasOverride = Boolean(overrideTheme); 15625 var cachedTheme = !hasOverride ? GetCachedTheme() : null; 15626 15627 if (cachedTheme == null && !UserCannotFetchTheme()) { 15628 var CombinePathFragments = Theming.Utilities.CombinePathFragments; 15629 var requestedTheme = hasOverride ? "&" + _strThemeOverride + "=" + encodeURIComponent(overrideTheme) : ''; 15630 var themeDataUrl = CombinePathFragments(GetWebServerRelativeUrl(), '_api/SP.Web.GetContextWebThemeData?lcid=' + String(GetCurrentLcid()) + requestedTheme); 15631 15632 WithRestValueMonitored(themeDataUrl, CallbackWithCurrentTheme, ErrorLoadingCurrentTheme, "ClientSideTheming_FetchTheme", "ClientSideTheming_StartFetchTheme", "ClientSideTheming_SuccessFetchTheme", "ClientSideTheming_FailureFetchTheme"); 15633 } 15634 else { 15635 themeCallback(ParseThemeData(cachedTheme)); 15636 } 15637 function CallbackWithCurrentTheme(strTheme, monitor) { 15638 if (strTheme !== null) { 15639 var strData = ExtractThemeDataFromREST(strTheme); 15640 15641 if (!Boolean(strData)) { 15642 monitor.UnexpectedFailure("ClientSideTheming_FetchTheme_InvalidResponse"); 15643 Complain("SPThemeUtils: Could not load theme data."); 15644 strData = null; 15645 } 15646 else { 15647 if (!Boolean(Nav.getUrlKeyValue(_strThemeOverride))) { 15648 CacheTheme(strData, GetSiteThemeCacheToken()); 15649 } 15650 } 15651 } 15652 themeCallback(ParseThemeData(strData)); 15653 } 15654 function ErrorLoadingCurrentTheme(xhrError, monitor) { 15655 var xhrStatusCode = xhrError.status; 15656 15657 if (xhrStatusCode == 401 || xhrStatusCode == 403) { 15658 monitor.ExpectedFailure("ClientSideTheming_FailureFetchTheme_Unauthorized", GetErrorPropertiesFromXHR(xhrError), GetResponseText(xhrError)); 15659 } 15660 else { 15661 monitor.UnexpectedFailure(null, GetErrorPropertiesFromXHR(xhrError), GetResponseText(xhrError)); 15662 } 15663 monitor.Dispose(); 15664 themeCallback(ParseThemeData(null)); 15665 } 15666 } 15667 function RegisterDefaultSharePointCss() { 15668 var linkElements = document.getElementsByTagName("link"); 15669 var lElements = linkElements.length; 15670 15671 for (var i = 0; i < lElements; i++) { 15672 var linkElement = linkElements[i]; 15673 var linkHref = linkElement.href; 15674 15675 if (linkHref != null && (linkHref.toUpperCase()).indexOf("/DEFAULTCSS.ASHX") >= 0) { 15676 var originalHref = linkElement.getAttribute(_attrCssOriginalHref); 15677 15678 (GetPageManager()).AddCssLink(linkHref, originalHref, linkElement); 15679 break; 15680 } 15681 } 15682 } 15683 function RegisterAllImages(bSync) { 15684 if (UseClientSideTheming()) { 15685 (GetPageManager()).RegisterAllImages(bSync); 15686 } 15687 } 15688 function MakeCSSRelativeUrl(originalUrl) { 15689 return Theming.Utilities.MakeFixupCallbackForCssFile(originalUrl); 15690 } 15691 function RegisterCssReferences(cssRefs) { 15692 if (!(window["OffSwitch"] == null || OffSwitch.IsActive("B11B9DA7-DAFA-4237-B593-ECBA1E3B888D")) && cssRefs != null) { 15693 var tmpLink = document.createElement("a"); 15694 15695 for (var i = 0; i < cssRefs.length; i++) { 15696 var cssRef = cssRefs[i]; 15697 15698 if (cssRef == null) 15699 continue; 15700 var url = cssRef.Url; 15701 var originalUrl = cssRef.OriginalUrl; 15702 var id = cssRef.Id; 15703 15704 if (Boolean(url) && Boolean(id)) { 15705 tmpLink.href = url; 15706 var normalizedUrl = tmpLink.href; 15707 var element = document.getElementById(id); 15708 15709 if (element != null && element.href != normalizedUrl) { 15710 cssRef.Url = element.href; 15711 if (originalUrl == url) { 15712 cssRef.OriginalUrl = element.href; 15713 } 15714 } 15715 } 15716 } 15717 } 15718 (GetPageManager()).RegisterCssReferences(cssRefs, null); 15719 } 15720 function RestoreCssLinksToOriginalUrls() { 15721 var linkElements = document.getElementsByTagName("link"); 15722 var numLinks = linkElements.length; 15723 15724 for (var iLinkElement = 0; iLinkElement < numLinks; iLinkElement++) { 15725 var linkElement = linkElements[iLinkElement]; 15726 var originalHrefValue = linkElement.getAttribute(_attrCssOriginalHref); 15727 15728 if (Boolean(originalHrefValue) && linkElement.rel != null && linkElement.rel.toLowerCase() == "stylesheet") { 15729 linkElement.href = originalHrefValue; 15730 } 15731 } 15732 } 15733 function RemoveElementFromDom(element) { 15734 if (element != null && element.parentNode != null) 15735 element = element.parentNode.removeChild(element); 15736 return element; 15737 } 15738 function OnWindowUnload(fn) { 15739 DOM.AddEventHandler(window, "onunload", fn, false); 15740 } 15741 function RemoveAllElementsWithId(elementId) { 15742 var removalAttempts = 100; 15743 15744 while (RemoveElementFromDom(document.getElementById(elementId)) && --removalAttempts >= 0) { } 15745 } 15746 function TemporaryStyle(elementId, cssText) { 15747 var _element = null; 15748 15749 RemoveAllElementsWithId(elementId); 15750 if (Boolean(cssText)) { 15751 _element = document.createElement("style"); 15752 _element.type = "text/css";
15753 _element.id = elementId; 15754 Theming.ReplaceCssTextForElement(_element, cssText); 15755 var head = (document.getElementsByTagName("head"))[0]; 15756 15757 _element = head.appendChild(_element); 15758 OnWindowUnload(Remove); 15759 setTimeout(Remove, 7000); 15760 } 15761 this.Remove = Remove; 15762 function Remove() { 15763 RemoveElementFromDom(_element); 15764 _element = null; 15765 } 15766 } 15767 function CancelableLogger(strSuccess, strCanceled) { 15768 var _startTime = GetCurrentTime(); 15769 var _logged = false; 15770 15771 this.cancel = function() { 15772 LogResult(true); 15773 }; 15774 this.success = function() { 15775 LogResult(false); 15776 }; 15777 function LogResult(bCanceled) { 15778 if (!_logged) { 15779 _logged = true; 15780 var timeSinceStart = GetCurrentTime() - _startTime; 15781 15782 if (!bCanceled) { 15783 LogSuccess(strSuccess, timeSinceStart); 15784 } 15785 else { 15786 LogFailure(strCanceled, timeSinceStart); 15787 } 15788 } 15789 } 15790 ; 15791 } 15792 var _cssThemeLogger; 15793 var _imagesThemeLogger; 15794 var _themingTimeout; 15795 15796 function CancelPendingLoggers() { 15797 if (_themingTimeout != null) { 15798 clearTimeout(_themingTimeout); 15799 _themingTimeout = null; 15800 } 15801 if (_cssThemeLogger != null) { 15802 _cssThemeLogger.cancel(); 15803 _cssThemeLogger = null; 15804 } 15805 if (_imagesThemeLogger != null) { 15806 _imagesThemeLogger.cancel(); 15807 _imagesThemeLogger = null; 15808 } 15809 } 15810 function ApplyCurrentTheme(hideContentWhileTheming) { 15811 var idThemingCurtain = "SPThemeHideForms"; 15812 15813 if (UseClientSideTheming()) { 15814 var styleHideForms = new TemporaryStyle(idThemingCurtain, hideContentWhileTheming ? "form {opacity:0 !important}" : ""); 15815 var styleHideImages = new TemporaryStyle("SPThemeHideImages", "img {opacity:0 !important}"); 15816 15817 RegisterDefaultSharePointCss(); 15818 _withTheme(function ApplyThemeInfo(themeInfo) { 15819 if (themeInfo == null) { 15820 themeInfo = new Theming.ThemeInfo(null); 15821 } 15822 if (!Theming.Utilities.CanRecolorImages()) { 15823 themeInfo.NoImageRecoloring = true; 15824 } 15825 CancelPendingLoggers(); 15826 SuspendTheming(); 15827 WhenThemeReady(styleHideForms.Remove); 15828 WhenImagesThemed(styleHideImages.Remove); 15829 if (!themeInfo.IsDefault) { 15830 LogStart("ClientSideTheming_StartTheme"); 15831 _cssThemeLogger = new CancelableLogger("ClientSideTheming_SuccessTheme", "ClientSideTheming_FailureTheme_Cancel"); 15832 (GetPageManager()).WhenReady(_cssThemeLogger.success); 15833 if (!themeInfo.NoImageRecoloring) { 15834 LogStart("ClientSideTheming_StartThemeImages"); 15835 _imagesThemeLogger = new CancelableLogger("ClientSideTheming_SuccessThemeImages", "ClientSideTheming_FailureThemeImages_Cancel"); 15836 WhenImagesThemed(_imagesThemeLogger.success); 15837 } 15838 } 15839 else { 15840 var startTime = GetCurrentTime(); 15841 var capturedThemingTimeout = _themingTimeout = setTimeout(function() { 15842 LogFailure("ClientSideTheming_FailureApplyDefault", GetCurrentTime() - startTime); 15843 }, 1000); 15844 15845 WhenThemeReady(function() { 15846 clearTimeout(capturedThemingTimeout); 15847 }); 15848 } 15849 (GetPageManager()).SetTheme(themeInfo); 15850 }); 15851 if (IsSiteThemed()) 15852 LoadThemableResources(); 15853 } 15854 else if (!(window["OffSwitch"] == null || OffSwitch.IsActive("DCF7FB71-8493-4615-8A9A-53F9E7ED0210"))) { 15855 RemoveAllElementsWithId(idThemingCurtain); 15856 } 15857 } 15858 function LoadThemableResources() { 15859 (GetPageManager()).LoadThemableResources(); 15860 } 15861 function LogStart(tag) { 15862 SP.QoS.WriteStart(tag, null, SP.QoS.LogType.Diagnostic); 15863 } 15864 function LogSuccess(tag, duration) { 15865 SP.QoS.WriteSuccess(tag, null, SP.QoS.LogType.Diagnostic, duration); 15866 } 15867 function LogFailure(tag, duration) { 15868 SP.QoS.WriteFailure(tag, null, SP.QoS.LogType.Diagnostic, duration); 15869 } 15870 function GetCurrentTime() { 15871 return (new Date).getTime(); 15872 } 15873 function RemoveChildNodes(element) { 15874 while (element.lastChild != null) 15875 element.removeChild(element.lastChild); 15876 } 15877 function TryReplaceStyleSheetCssText(element, newCss) { 15878 var success = false; 15879 15880 if (element != null) { 15881 try { 15882 if (typeof element.styleSheet != "undefined" && element.styleSheet != null && typeof element.styleSheet.cssText != "undefined") { 15883 element.styleSheet.cssText = newCss; 15884 success = true; 15885 } 15886 } 15887 catch (exCannotSetCssText) { } 15888 } 15889 return success; 15890 } 15891 function ReplaceCssTextForElement(element, newCss) { 15892 var success = TryReplaceStyleSheetCssText(element, newCss); 15893 15894 if (!success) { 15895 RemoveChildNodes(element); 15896 element.appendChild(document.createTextNode(newCss)); 15897 } 15898 } 15899} 15900var SuiteNavRendering; 15901 15902function SuiteNavRendering_module_def() { 15903 var _jsProtocol = "javascript:"; 15904 var c_defaultSuiteDataVersion = 2; 15905 var hasSiteSettingsMenuItem = false; 15906 15907 SuiteNavRenderingOptions.prototype = { 15908 brandingLogo: "", 15909 brandingLogoLink: "", 15910 brandingLogoTitle: "", 15911 brandingText: "", 15912 culture: "", 15913 dataEndpoint: "", 15914 signInLink: "", 15915 top: "", 15916 version: c_defaultSuiteDataVersion 15917 }; 15918 function SuiteNavRenderingOptions() { 15919 } 15920 SuiteNavRendering.SuiteNavRenderingOptions = SuiteNavRenderingOptions;
15921 SuiteNavRendering.RenderSuiteNav = function RenderSuiteNav(renderingOptions) { 15922 var suiteLinksDiv = renderingOptions.top; 15923 var shellDataRestMethod = renderingOptions.dataEndpoint; 15924 var cultureName = renderingOptions.culture; 15925 var signInLink = renderingOptions.signInLink; 15926 var suiteDataVersion = renderingOptions.version; 15927 15928 if (!(suiteDataVersion > 0)) 15929 suiteDataVersion = c_defaultSuiteDataVersion; 15930 if (!!shellDataRestMethod && !!cultureName) { 15931 shellDataRestMethod += (shellDataRestMethod.indexOf("?") < 0 ? "?" : "&") + "v=" + String(suiteDataVersion) + "&Locale=" + cultureName; 15932 } 15933 var additionalCssText = ""; 15934 var suiteDataObject = null; 15935 var suiteNavThemingModuleDefined = window["SuiteNavTheming"] != null; 15936 var suiteIsThemed = SPThemeUtils.IsSiteThemed() || suiteNavThemingModuleDefined && SuiteNavTheming.GetSuiteNavThemeColorsOverride() != null; 15937 15938 if (suiteNavThemingModuleDefined) { 15939 SuiteNavTheming.WithSuiteThemingCss(function(suiteThemingCss) { 15940 additionalCssText = suiteThemingCss; 15941 if (suiteDataObject != null) 15942 RenderSuiteNavWithData(suiteDataObject); 15943 }); 15944 } 15945 WithSuiteNavData(function HandleSuiteNavData(suiteData) { 15946 suiteDataObject = suiteData; 15947 if (!suiteIsThemed || Boolean(additionalCssText)) { 15948 RenderSuiteNavWithData(suiteData); 15949 } 15950 }, shellDataRestMethod, suiteDataVersion);
15951 function RenderSuiteNavWithData(suiteData) { 15952 var o365Shell = window["O365Shell"]; 15953 15954 if (o365Shell == null) { 15955 return; 15956 } 15957 var linksData = SuiteNavCommon.ExtractSuiteNavBarData(suiteData); 15958 15959 AddMenuItemsFromDOM(linksData); 15960 UpdateActiveLink(linksData); 15961 UpdateHelpLink(linksData); 15962 UpdateStringsAndBranding(linksData, renderingOptions); 15963 var helpLink = linksData.HelpLink; 15964 15965 if (helpLink != null && !Boolean(linksData.HelpLink.Text)) 15966 linksData.HelpLink.Text = GetStsString("L_SuiteNav_Help_Link_Text"); 15967 if (Boolean(linksData.UserDisplayName)) 15968 linksData.IsAuthenticated = true; 15969 var objSignInLink = null; 15970 15971 if (!linksData.IsAuthenticated && Boolean(signInLink)) { 15972 objSignInLink = { 15973 "Text": GetStsString("L_SuiteNav_SignIn"), 15974 "Url": signInLink 15975 }; 15976 } 15977 linksData.ClientData = JSON.stringify({ 15978 "IsRTL": document.documentElement.getAttribute('dir') == "rtl", 15979 "IsFallbackShell": true, 15980 "ShowAppLauncherV3": true, 15981 "SignInLink": objSignInLink 15982 }); 15983 RemoveEmtpyArraysFromSuiteNavData(linksData); 15984 o365Shell.SetData(linksData); 15985 var renderSettings = { 15986 "top": suiteLinksDiv, 15987 "layout": "Mouse" 15988 }; 15989 15990 o365Shell.RenderSync(renderSettings, OnSuiteRendered, OnSuiteLoaded); 15991 } 15992 function OnSuiteLoaded() { 15993 } 15994 function OnSuiteRendered() { 15995 try { 15996 ThemeSuiteNav(); 15997 } 15998 catch (exThemeSuiteNav) { } 15999 } 16000 function UpdateStringsAndBranding(linksData, opts) { 16001 var brandingLogo = opts.brandingLogo; 16002 var brandingLogoLink = opts.brandingLogoLink; 16003 var brandingLogoTitle = opts.brandingLogoTitle; 16004 16005 linksData.StringsOverride = MakeStringsOverride(opts.brandingText); 16006 if (brandingLogo) { 16007 if (!brandingLogoTitle) { 16008 brandingLogoTitle = ""; 16009 } 16010 linksData.HasTenantBranding = true; 16011 linksData.TenantLogoUrl = { 16012 Title: brandingLogoTitle, 16013 Url: brandingLogo 16014 }; 16015 if (brandingLogoLink) 16016 linksData.LogoNavigationUrl = brandingLogoLink; 16017 } 16018 } 16019 function ThemeSuiteNav() { 16020 var suiteNavRenderingDiv = document.getElementById(suiteLinksDiv); 16021 16022 CSSUtil.RemoveClass(suiteNavRenderingDiv, "ms-TopBarBackgroun
16022d-bgColor"); 16023 if (Boolean(additionalCssText) && suiteNavRenderingDiv != null) { 16024 var firstChildOfSuiteLinksDiv = suiteNavRenderingDiv.firstChild; 16025 var styleElement = document.createElement("style"); 16026 16027 styleElement.id = "SuiteNavThemeStyle"; 16028 styleElement.type = "text/css"; 16029 SPThemeUtils.ReplaceCssTextForElement(styleElement, additionalCssText); 16030 if (firstChildOfSuiteLinksDiv != null) { 16031 suiteNavRenderingDiv.insertBefore(styleElement, firstChildOfSuiteLinksDiv); 16032 } 16033 else { 16034 suiteNavRenderingDiv.appendChild(styleElement); 16035 } 16036 } 16037 } 16038 }; 16039 LinkData.prototype.TargetWindow = ""; 16040 LinkData.prototype.Text = ""; 16041 LinkData.prototype.Url = ""; 16042 function LinkData() { 16043 } 16044 function GetStsString(locKey) { 16045 var stsStrings = typeof Strings != "undefined" && Strings.STS != null ? Strings.STS : {}; 16046 16047 return stsStrings[locKey]; 16048 } 16049 var c_stringsOverride = MakeStringsOverride(); 16050 16051 function MakeStringsOverride(productName) { 16052 if (!productName) 16053 productName = GetStsString("L_SuiteNav_ProductName"); 16054 return { 16055 "l_ShellCore_App_Provision_Alt_Text": GetStsString("L_SuiteNav_App_Provision_Alt_Text"), 16056 "l_ShellCore_App_Provision_Text": GetStsString("L_SuiteNav_App_Provision_Text"), 16057 "l_ShellCore_ContextualTitleFormat_Text": GetStsString("L_SuiteNav_ContextualTitleFormat_Text"), 16058 "l_ShellCore_Help_Title_Text": GetStsString("L_SuiteNav_Help_Title_Text"), 16059 "l_ShellCore_MeTile_Title_Text": GetStsString("L_OpenMenu_Text"), 16060 "l_ShellCore_NavMenu_MyApps_Text": GetStsString("L_SuiteNav_NavMenu_MyApps_Text"), 16061 "l_ShellCore_NavMenu_Title_Text": GetStsString("L_SuiteNav_NavMenu_Title_Text"), 16062 "l_ShellCore_O365_Text": productName, 16063 "l_ShellCore_O365_Title_Text": "", 16064 "l_ShellCore_Settings_Title_Text": GetStsString("L_SuiteNav_Settings_Title_Text") 16065 }; 16066 } 16067 SuiteNavData.prototype.AboutMeLink = null; 16068 SuiteNavData.prototype.ClientData = ""; 16069 SuiteNavData.prototype.CurrentMainLinkElementID = ""; 16070 SuiteNavData.prototype.CurrentWorkloadHelpSubLinks = []; 16071 SuiteNavData.prototype.CurrentWorkloadSettingsSubLinks = []; 16072 SuiteNavData.prototype.CurrentWorkloadUserSubLinks = []; 16073 SuiteNavData.prototype.HelpLink = null; 16074 SuiteNavData.prototype.IsAuthenticated = false; 16075 SuiteNavData.prototype.PinnedApps = null; 16076 SuiteNavData.prototype.SignOutLink = null; 16077 SuiteNavData.prototype.StringsOverride = c_stringsOverride; 16078 SuiteNavData.prototype.UserDisplayName = null; 16079 SuiteNavData.prototype.WorkloadLinks = null; 16080 function SuiteNavData() { 16081 var _this = this; 16082 16083 _this.CurrentWorkloadHelpSubLinks = []; 16084 _this.CurrentWorkloadSettingsSubLinks = []; 16085 _this.CurrentWorkloadUserSubLinks = []; 16086 _this.HelpLink = new LinkData; 16087 _this.SignOutLink = new LinkData; 16088 } 16089 SuiteData.prototype.DoNotCache = false; 16090 SuiteData.prototype.NavBarData = null; 16091 SuiteData.prototype.SPSuiteVersion = c_defaultSuiteDataVersion; 16092 function SuiteData() { 16093 this.NavBarData = new SuiteNavData; 16094 } 16095 SuiteNavRendering.SuiteNavData = SuiteNavData; 16096 function IsNullOrEmptyArray(arrValue) { 16097 return arrValue == null || !(arrValue.length > 0); 16098 } 16099 function RemoveEmtpyArraysFromSuiteNavData(linksData) { 16100 var propsToCheck = ["CurrentWorkloadHelpSubLinks", "CurrentWorkloadSettingsSubLinks", "CurrentWorkloadUserSubLinks", "PinnedApps", "WorkloadLinks"]; 16101 var lPropsToCheck = propsToCheck.length; 16102 16103 for (var iProp = 0; iProp < lPropsToCheck; iProp++) { 16104 var propNameToCheck = propsToCheck[iProp]; 16105 16106 if (IsNullOrEmptyArray(linksData[propNameToCheck])) 16107 linksData[propNameToCheck] = null; 16108 } 16109 } 16110 function GenerateDefaultSuiteNavData() { 16111 var defaultSuiteData = new SuiteData; 16112 16113 defaultSuiteData.DoNotCache = true; 16114 return defaultSuiteData; 16115 } 16116 function MakeSuiteNavDataLoader(shellDataRestMethod, onDataLoadError) { 16117 function SuiteNavDataLoader(resultCallback) { 16118 if (Boolean(shellDataRestMethod)) { 16119 var shellDataRestUrl = "/_api/" + shellDataRestMethod; 16120 16121 if (typeof _spPageContextInfo != "undefined") { 16122 var webServerRelativeUrl = _spPageContextInfo.webServerRelativeUrl; 16123 16124 if (Boolean(webServerRelativeUrl)) 16125 shellDataRestUrl = Nav.combineUrl(webServerRelativeUrl, shellDataRestUrl); 16126 } 16127 RequestUtil.WithRestValue(function(strShellData) { 16128 var strSuiteData; 16129 16130 try { 16131 var parsedResponse = JSON.parse(strShellData); 16132 16133 strSuiteData = parsedResponse.d.GetSuiteNavData; 16134 } 16135 catch (exParseShellData) { 16136 if (onDataLoadError != null) { 16137 onDataLoadError("ParseResponse"); 16138 } 16139 } 16140 if (!strSuiteData) { 16141 var defaultSuiteData = GenerateDefaultSuiteNavData(); 16142 16143 strSuiteData = JSON.stringify(defaultSuiteData); 16144 } 16145 resultCallback(strSuiteData); 16146 }, shellDataRestUrl); 16147 } 16148 else { 16149 resultCallback(JSON.stringify(GenerateDefaultSuiteNavData())); 16150 } 16151 } 16152 return SuiteNavDataLoader; 16153 } 16154 function WithSuiteNavData(shellDataCallback, shellDataRestMethod, suiteVersion) { 16155 var monitorName = "SuiteNavRendering_LoadData"; 16156 var suiteNavDataMonitor = new SP.QoS.ScenarioMonitor(monitorName, monitorName + "_Start", monitorName + "_Success", monitorName + "_Failure", monitorName + "_NoResult"); 16157 var loadSuiteNavData = MakeSuiteNavDataLoader(shellDataRestMethod, function(errorType) { 16158 suiteNavDataMonitor.UnexpectedFailure(monitorName + "_Fail" + errorType); 16159 }); 16160 16161 SuiteNavCommon.GetSuiteLinks(loadSuiteNavData, function(strSuiteNavData) { 16162 var suiteNavData = null; 16163 16164 try { 16165 suiteNavData = JSON.parse(strSuiteNavData); 16166 if (suiteNavData == null) { 16167 suiteNavData = GenerateDefaultSuiteNavData(); 16168 } 16169 suiteNavDataMonitor.Success(); 16170 } 16171 catch (exParseNavData) { 16172 suiteNavDataMonitor.UnexpectedFailure(monitorName + "_FailParseData"); 16173 } 16174 suiteNavDataMonitor.Dispose(); 16175 shellDataCallback(suiteNavData); 16176 }, suiteVersion); 16177 } 16178 function ExtractItemsFromMenu(menuElement, itemsContainer, linksData) { 16179 function UrlFromOnclick(clickHandler) { 16180 if (clickHandler == null) { 16181 return clickHandler; 16182 } 16183 else { 16184 clickHandler = (clickHandler.replace(/^javascript:/i, "")).replace(/return (true|false);?$/i, ""); 16185 return _jsProtocol + "SuiteOnClick(" + Encoding.ScriptEncodeWithQuote(clickHandler) + ")"; 16186 } 16187 } 16188 function MenuItemToLinkData(domMenuItem) { 16189 return { 16190 "Id": "SuiteMenu_" + domMenuItem.id, 16191 "MenuName": null, 16192 "Sublinks": null, 16193 "TargetWindow": null, 16194 "Text": domMenuItem.getAttribute("text"), 16195 "Url": UrlFromOnclick(domMenuItem.getAttribute("onmenuclick")) 16196 }; 16197 } 16198 if (menuElement != null) { 16199 var menuItems = menuElement.getElementsByTagName("ie:menuitem"); 16200 16201 if (menuItems == null || menuItems.length == 0) 16202 menuItems = menuElement.getElementsByTagName("menuitem"); 16203 var lMenuItems = menuItems.length; 16204 var previousGroupId; 16205 16206 for (var iMenuItem = 0; iMenuItem < lMenuItems; iMenuItem++) { 16207 var menuItem = menuItems[iMenuItem]; 16208 var hiddenScript = menuItem.getAttribute("hidden"); 16209 var itemHidden = hiddenScript != null && Boolean(eval(hiddenScript)); 16210 var itemType = menuItem.getAttribute("type"); 16211 16212 if (menuItem.id.indexOf("ID_PersonalInformation") > 0) { 16213 hasSiteSettingsMenuItem = true; 16214 itemHidden = itemHidden || linksData.AboutMeLink != null; 16215 } 16216 else if (menuItem.id.indexOf("ID_AboutMe") >= 0) { 16217 if (linksData.AboutMeLink == null) { 16218 linksData.AboutMeLink = MenuItemToLinkData(menuItem); 16219 } 16220 continue; 16221 } 16222 if (!itemHidden && itemType == "option") { 16223 var groupId = menuItem.getAttribute("menugroupid"); 16224 16225 if (previousGroupId !== groupId) { 16226 if (previousGroupId != null) { 16227 itemsContainer.push(null); 16228 } 16229 previousGroupId = groupId; 16230 } 16231 itemsContainer.push(MenuItemToLinkData(menuItem)); 16232 } 16233 } 16234 } 16235 } 16236 SuiteNavRendering.AddMenuItemsFromDOM = AddMenuItemsFromDOM; 16237 function AddMenuItemsFromDOM(linksData) { 16238 if (linksData.UserDisplayName == null) { 16239 var userNameDiv = document.getElementById("SuiteNavUserName"); 16240 16241 if (userNameDiv != null && Boolean(userNameDiv.textContent)) { 16242 linksData.UserDisplayName = userNameDiv.textContent; 16243 } 16244 } 16245 var scriptEncodedSlashUppercase = "\\U002F"; 16246 var menuItems = { 16247 welcomeItems: [], 16248 settingsItems: [] 16249 }; 16250 var menuData = document.getElementById("suiteMenuData"); 16251 16252 if (menuData == null) { 16253 return; 16254 } 16255 var menus = menuData.getElementsByTagName("menu"); 16256 var itemsContainer = menuItems.welcomeItems; 16257 var lMenus = menus.length; 16258 16259 hasSiteSettingsMenuItem = false; 16260 for (var iMenu = 0; iMenu < lMenus; iMenu++) { 16261 var menu = menus[iMenu]; 16262 16263 if (menu.id.indexOf("PersonalActionMenu") >= 0) { 16264 if (linksData.CurrentWorkloadUserSubLinks == null) { 16265 linksData.CurrentWorkloadUserSubLinks = []; 16266 } 16267 var currentWorkloadUserSubLinks = linksData.CurrentWorkloadUserSubLinks; 16268 var userMenuLinks = []; 16269 16270 ExtractItemsFromMenu(menu, userMenuLinks, linksData); 16271 var lUserLinks = userMenuLinks.length; 16272 16273 for (var iUserLink = 0; iUserLink < lUserLinks; iUserLink++) { 16274 var linkData = userMenuLinks[iUserLink]; 16275 var uppercaseUrl = ""; 16276 16277 if (linkData != null && Boolean(linkData)) { 16278 uppercaseUrl = linkData.Url.toUpperCase(); 16279 } 16280 if (uppercaseUrl.indexOf(scriptEncodedSlashUppercase + "SIGNOUT.ASPX") >= 0) { 16281 if (linksData.SignOutLink != null) { 16282 linksData.SignOutLink.Url = linkData.Url; 16283 if (!Boolean(linksData.SignOutLink.Text)) 16284 linksData.SignOutLink.Text = linkData.Text; 16285 } 16286 } 16287 else if (uppercaseUrl.indexOf(scriptEncodedSlashUppercase + "PERSON.ASPX") >= 0) { 16288 if (linksData.AboutMeLink == null) 16289 linksData.AboutMeLink = linkData; 16290 } 16291 else { 16292 currentWorkloadUserSubLinks.push(linkData); 16293 } 16294 } 16295 } 16296 else if (menu.id.indexOf("SiteActionsMenu") >= 0) { 16297 if (linksData.CurrentWorkloadSettingsSubLinks == null) { 16298 linksData.CurrentWorkloadSettingsSubLinks = []; 16299 } 16300 ExtractItemsFromMenu(menu, linksData.CurrentWorkloadSettingsSubLinks, linksData); 16301 } 16302 } 16303 if (Boolean(linksData.AboutMeLink) && Boolean(window["_spPageContextInfo"]) && !Boolean(_spPageContextInfo["ProfileUrl"])) { 16304 _spPageContextInfo["ProfileUrl"] = linksData.AboutMeLink.Url; 16305 } 16306 if (!hasSiteSettingsMenuItem) 16307 linksData.AboutMeLink = null; 16308 } 16309 SuiteNavRendering.UpdateHelpLink = UpdateHelpLink; 16310 function UpdateHelpLink(linksData) { 16311 var helpKey = typeof g_navBarHelpDefaultKey == "undefined" ? "HelpHome" : g_navBarHelpDefaultKey; 16312 16313 if (linksData.HelpLink != null) { 16314 linksData.HelpLink.Url = _jsProtocol + "TopHelpButtonClick(" + Encoding.ScriptEncodeWithQuote(helpKey) + ")"; 16315 linksData.HelpLink.TargetWindow = ""; 16316 } 16317 } 16318 SuiteNavRendering.GetWebTemplate = GetWebTemplate; 16319 function GetWebTemplate() { 16320 var webTemplate = -1; 16321 16322 if (typeof _spPageContextInfo != "undefined") { 16323 webTemplate = parseInt(_spPageContextInfo.webTemplate); 16324 } 16325 return webTemplate; 16326 } 16327 SuiteNavRendering.UpdateActiveLink = UpdateActiveLink; 16328 function UpdateActiveLink(navData) { 16329 var _allDocumentsLinkId = "ShellDocuments"; 16330 var _allSitesLinkId = "ShellSites"; 16331 var _defaultLinkId = "ShellSharepoint"; 16332 var _mySiteHostWebTemplate = 54; 16333 var _mySitePersonalWebTemplate = 21; 16334 var _groupsWebTemplate = 64; 16335 var _adminLinkId = "ShellAdmin"; 16336 var _newsfeedLinkId = "ShellNewsfeed"; 16337 var _newsfeedLinkIdRegex = /^(?:Shell)?Newsfeed$/i; 16338 var _projectLinkId = "ShellProject"; 16339 var _videoLinkId = "ShellVideo"; 16340 var _adminSiteWebTemplate = 16; 16341 var _projectWebAppTemplate = 6221; 16342 var _mySiteDocumentLibraryListTemplateID = 700; 16343 var _hubWebTemplate = 65; 16344 16345 if (navData == null) { 16346 return; 16347 } 16348 var _newsfeedOrSitesLinkId = (function() { 16349 var iLinks, wLinks = navData.WorkloadLinks || []; 16350 16351 for (iLinks = 0; iLinks < wLinks.length; iLinks++) 16352 if (wLinks[iLinks].Id === _newsfeedLinkId) 16353 return _newsfeedLinkId; 16354 var aLinks = navData.PinnedApps || []; 16355 16356 for (iLinks = 0; iLinks < aLinks.length; iLinks++) 16357 if (_newsfeedLinkIdRegex.test(aLinks[iLinks].Id)) 16358 return _newsfeedLinkId; 16359 return _allSitesLinkId; 16360 })(); 16361 var webTemplate = GetWebTemplate(); 16362 var uri; 16363 var urlPath; 16364 16365 switch (webTemplate) { 16366 case _adminSiteWebTemplate: 16367 navData.CurrentMainLinkElementID = _adminLinkId; 16368 break; 16369 case _mySiteHostWebTemplate: 16370 navData.CurrentMainLinkElementID = _newsfeedOrSitesLinkId; 16371 uri = new URI(Nav.ajaxNavigate.get_href()); 16372 urlPath = uri.getPath(true); 16373 if (Boolean(urlPath)) { 16374 if ((urlPath.toLowerCase()).endsWith("/mybraryfirstrun.aspx")) { 16375 navData.CurrentMainLinkElementID = _allDocumentsLinkId; 16376 } 16377 } 16378 break; 16379 case _projectWebAppTemplate: 16380 navData.CurrentMainLinkElementID = _projectLinkId; 16381 break; 16382 case _hubWebTemplate: 16383 if (document.getElementById('O365VideoPage') != null) { 16384 navData.CurrentMainLinkElementID = _videoLinkId; 16385 } 16386 else { 16387 navData.CurrentMainLinkElementID = _allSitesLinkId; 16388 } 16389 break; 16390 case _mySitePersonalWebTemplate: 16391 if (typeof g_wsaListTemplateId != "unde
16391fined" && g_wsaListTemplateId == _mySiteDocumentLibraryListTemplateID) { 16392 navData.CurrentMainLinkElementID = _allDocumentsLinkId; 16393 } 16394 else { 16395 navData.CurrentMainLinkElementID = _newsfeedOrSitesLinkId; 16396 uri = new URI(Nav.ajaxNavigate.get_href()); 16397 urlPath = uri.getPath(true); 16398 if (Boolean(urlPath)) { 16399 urlPath = urlPath.toLowerCase(); 16400 if (urlPath.endsWith("/social/followedcontent.aspx")) { 16401 navData.CurrentMainLinkElementID = _allDocumentsLinkId; 16402 } 16403 else if (urlPath.endsWith("/social/sites.aspx")) { 16404 navData.CurrentMainLinkElementID = _allSitesLinkId; 16405 } 16406 else if (urlPath.endsWith("/social/sitesdocuments.aspx")) { 16407 navData.CurrentMainLinkElementID = _allDocumentsLinkId; 16408 } 16409 else if (urlPath.endsWith("/mybraryfirstrun.aspx")) { 16410 navData.CurrentMainLinkElementID = _allDocumentsLinkId; 16411 } 16412 else if (urlPath.endsWith("/groupdocuments.aspx")) { 16413 navData.CurrentMainLinkElementID = _allDocumentsLinkId; 16414 } 16415 } 16416 } 16417 break; 16418 case _groupsWebTemplate: 16419 uri = new URI(Nav.ajaxNavigate.get_href()); 16420 urlPath = uri.getPath(true); 16421 if (Boolean(urlPath) && (urlPath.toLowerCase()).endsWith("/groupsdocuments.aspx")) { 16422 navData.CurrentMainLinkElementID = _allDocumentsLinkId; 16423 } 16424 else { 16425 navData.CurrentMainLinkElementID = _defaultLinkId; 16426 } 16427 break; 16428 default: 16429 navData.CurrentMainLinkElementID = _allSitesLinkId; 16430 break; 16431 } 16432 } 16433} 16434var ModuleLink; 16435 16436function ModuleLink_module_def() { 16437 var manifestRequestMap = {}; 16438 var configuredRequireJS = false; 16439 16440 ModuleLink.loadManifest = function(manifestName, scenarioName, callback) { 16441 if (typeof scenarioName === "function") { 16442 callback = scenarioName; 16443 scenarioName = void 0; 16444 } 16445 else if (typeof callback !== "function") { 16446 callback = function() { 16447 }; 16448 } 16449 ensureRequireJS(function() { 16450 }); 16451 if (!Boolean(manifestRequestMap[manifestName])) { 16452 manifestRequestMap[manifestName] = new ManifestInfoRequest(manifestName); 16453 } 16454 var request = manifestRequestMap[manifestName]; 16455 16456 request.getManifestInfo(function(manifestInfo) { 16457 ensureRequireJS(function() { 16458 if (!configuredRequireJS) { 16459 var configFunc = new Function(manifestInfo.d.RequireJsScriptBlock); 16460 16461 configFunc.call(this); 16462 configuredRequireJS = true; 16463 } 16464 if (Boolean(scenarioName)) { 16465 var scenarios = manifestInfo.d.ScenarioMapping.results; 16466 16467 for (var i = 0; i < scenarios.length; i++) { 16468 if (scenarios[i].Key === scenarioName) { 16469 var moduleList = scenarios[i].Value.split(','); 16470 16471 require(moduleList); 16472 } 16473 } 16474 } 16475 callback.call(this, manifestInfo); 16476 }); 16477 }); 16478 }; 16479 function ensureRequireJS(callback) { 16480 if (Boolean(window["requirejs"])) { 16481 callback(); 16482 } 16483 else { 16484 if (typeof EnsureScriptFunc !== "undefined") { 16485 EnsureScriptFunc("require.js", "requirejs", function() { 16486 callback(); 16487 }); 16488 } 16489 } 16490 } 16491 var ManifestInfoRequest = function(manifestName) { 16492 var manifestInfo; 16493 var xhr; 16494 var pendingCallbacks = []; 16495 16496 this.getManifestInfo = function(callback) { 16497 if (isReady()) { 16498 callback(manifestInfo); 16499 } 16500 else { 16501 pendingCallbacks.push(callback); 16502 if (!isLoading()) {
16503 startRequest(); 16504 } 16505 } 16506 }; 16507 function startRequest() { 16508 var url = "/_api/web/GetResourceManifestInformation(manifestName='"; 16509 16510 url += encodeURIComponent(manifestName); 16511 url += "')"; 16512 xhr = new XMLHttpRequest(); 16513 xhr.open("GET", url, true); 16514 xhr.setRequestHeader("Content-Type", "application/json;odata=verbose"); 16515 xhr.setRequestHeader("Accept", "application/json;odata=verbose"); 16516 xhr.onload = function requestListener() { 16517 manifestInfo = JSON.parse(xhr.responseText); 16518 pendingCallbacks.forEach(function(callback) { 16519 callback(manifestInfo); 16520 }); 16521 pendingCallbacks = []; 16522 xhr = void 0; 16523 }; 16524 xhr.send(); 16525 } 16526 function isReady() { 16527 return Boolean(manifestInfo); 16528 } 16529 function isLoading() { 16530 return Boolean(xhr); 16531 } 16532 }; 16533} 16534function AllowCSSFiltersOnIE8() { 16535 var elem = document.getElementById("ms-hcTest"); 16536 var isHC = false; 16537 16538 if (Boolean(elem) && Boolean(elem.currentStyle) && elem.currentStyle["borderColor"] != "#f00") { 16539 isHC = true; 16540 CSSUtil.AddClass(document.body, "ms-core-isHC"); 16541 } 16542 if (browseris.ie8down) { 16543 CSSUtil.AddClass(document.body, "ms-core-needIEFilter"); 16544 if (isHC) { 16545 var s4ws = document.getElementById("s4-workspace"); 16546 16547 if (Boolean(s4ws)) 16548 s4ws.style.filter = ""; 16549 } 16550 } 16551 else { 16552 CSSUtil.AddClass(document.body, "ms-backgroundImage"); 16553 } 16554} 16555function notifyScriptsLoadedAndExecuteWaitingJobs(scriptName) { 16556 if (typeof Sys != "undefined" && Boolean(Sys) && Boolean(Sys.Application)) { 16557 Sys.Application.notifyScriptLoaded(); 16558 } 16559 NotifyScriptLoadedAndExecuteWaitingJobs(scriptName); 16560} 16561var initJsLoaded; 16562 16563$_global_init();
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.