Help
RSS
API
Feed
Maltego
Contact
Domain > help.saas.zerto.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2020-11-25
13.32.145.108
(
ClassC
)
2025-07-31
3.163.24.31
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Thu, 31 Jul 2025 10:22:49 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://help.saas.zerto.com/X-Cache: Redirect from cloudfrontVia: 1.1 fc36d22b58a363b02ecdd852a2e51610.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: IEK7QeSdJhxmBKjs8b_dFyHtc6mI12bv7OGKyUzJED9gsygglmGhGA html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 218084Connection: keep-aliveLast-Modified: Thu, 17 Oct 2019 12:53:42 GMTx-amz-meta-s3b-last-modified: 20190915T140204Zx-amz-version-id: nullAccept-Ranges: bytesServer: AmazonS3Date: Thu, 31 Jul 2025 10:22:49 GMTETag: 024e9523a428236b3b11ed70c69f11ffX-Cache: Hit from cloudfrontVia: 1.1 cadda06365c5592c0d0a272a3fe5825e.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P2X-Amz-Cf-Id: cEc1cGQJCy3YYHWeEKG2Uvhiaed2HU14Z1QtrAuH96ykm8IcarlcewAge: 74763 !DOCTYPE html >html xml:langen langen xmlnshttp://www.w3.org/1999/xhtml> head> meta http-equivContent-Type contenttext/html;charsetutf-8 /> meta http-equivContent-Style-Type contenttext/css /> meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno /> meta http-equivX-UA-Compatible contentIEedge /> base targetconnect_page>/base> title>Zerto Analytics/title> noscript> div idnoscript_padding>/div> /noscript> script typetext/javascript>!--// Copyright (c) 2010-2018 Quadralay Corporation. All rights reserved.//// ePublisher 2018.2//// Validated with JSLint http://www.jslint.com/>///*jslint maxerr: 50, for: true, this: true *//*global window *//*global MutationObserver *//*global DocumentTouch */// Message//var Message {};Message.Determine_Origin function (param_window) { use strict; var result, start_prefix_minimum, start_index, end_index; if (param_window.location.protocol file:) { result *; } else { // Ensure start index starts after protocol and host info // start_prefix_minimum param_window.location.protocol + // + param_window.location.host; start_index start_prefix_minimum.length; end_index param_window.location.href.indexOf(param_window.location.pathname, start_index); result param_window.location.href.substring(0, end_index); } return result;};Message.Listen function (param_window, param_function) { use strict; var origin, middleware; // Use appropriate browser method // if ((param_window.postMessage ! undefined) && (param_window.JSON ! undefined)) { // Wrap function to ensure security // origin Message.Determine_Origin(param_window); middleware function (param_event) { var accept, event, key; // Ensure origin matches // accept (param_event.origin origin); if (!accept) { if (param_window.location.protocol file:) { accept (param_event.origin.indexOf(file:) 0); if (!accept) { accept (param_event.origin null); } } } // Invoke function if message acceptable // if (accept) { // Copy existing event // event {}; for (key in param_event) { if (param_eventkey ! undefined) { eventkey param_eventkey; } } // Expand JSON data // try { event.data param_window.JSON.parse(param_event.data); param_function(event); } catch (ignore) { // Apparently, this message wasnt meant for us // } } }; if (param_window.addEventListener ! undefined) { // Via postMessage // param_window.addEventListener(message, middleware, false); } else if (param_window.attachEvent ! undefined) { // Via postMessage // param_window.attachEvent(onmessage, middleware, false); } } else { // Direct send // if (!param_window.POSTMESSAGE_message) { param_window.POSTMESSAGE_message param_function; } }};Message.Post function (param_to_window, param_data, param_from_window) { use strict; var data, origin, event; // Use appropriate browser method // if ((param_from_window.postMessage ! undefined) && (param_from_window.JSON ! undefined)) { // Via postMessage // data param_from_window.JSON.stringify(param_data); origin Message.Determine_Origin(param_from_window); param_to_window.postMessage(data, origin); } else { // Direct send // if (param_to_window.POSTMESSAGE_message) { event {origin: origin, source: param_from_window, data: param_data}; param_from_window.setTimeout(function () { param_to_window.POSTMESSAGE_message(event); }, 1); } }};// ExecuteWithDelay//function ExecuteWithDelay(param_window, param_callback, param_delay) { use strict; var this_executewithdelay; this_executewithdelay this; this.timeout null; this.Execute function () { // Pending invocation? // if (this_executewithdelay.timeout ! null) { // Reset timer and prepare to start over // param_window.clearTimeout(this_executewithdelay.timeout); } // Start timer // this_executewithdelay.timeout param_window.setTimeout(this_executewithdelay.Invoke, param_delay); }; this.Invoke function () { try { // Clear timeout tracker and invoke callback // this_executewithdelay.timeout null; param_callback(); } catch (ignore) { // Ignore callback exceptions // } };}// Tracker//function Tracker(param_window, param_element, param_callback) { use strict; var this_tracker; this.element param_element; this.snapshot param_element.innerHTML; this.snapshot_growing false; this_tracker this; this.Execute function () { var snapshot; try { // Snapshot changed? // snapshot this_tracker.element.innerHTML; if (snapshot ! this_tracker.snapshot) { this_tracker.snapshot snapshot; this_tracker.snapshot_growing true; } else { // Previously growing? // if (this_tracker.snapshot_growing) { this_tracker.snapshot_growing false; // Invoke callback // try { param_callback(); } catch (ignore) { // Ignore callback exceptions // } } } // Continue // param_window.setTimeout(function () { this_tracker.Execute(); }, 200); } catch (ignore) { // Element must no longer be valid // } };}// Browser//var Browser {};Browser.ScrollingSupported function () { use strict; var result, safari_match, mobile_match, version_match; // Initialize return value // result true; // Older mobile browsers, such as Safari under iOS 5 and earlier // do not support scrolling of nested overflowed divs or iframes // // Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 // safari_match window.navigator.userAgent.match(/ Safari\//); mobile_match window.navigator.userAgent.match(/ Mobile\//); version_match window.navigator.userAgent.match(/ Version\/(\d+)\.(\d+) /); if ((safari_match ! null) && (mobile_match ! null) && (version_match ! null) && (parseInt(version_match1, 10) 6)) { result false; } return result;};Browser.GetAJAX function (param_window) { use strict; var result; try { // Firefox, Opera, Safari, Chrome // result new param_window.XMLHttpRequest(); } catch (e1) { // IE // try { result new param_window.ActiveXObject(Msxml2.XMLHTTP); } catch (e2) { result new param_window.ActiveXObject(Microsoft.XMLHTTP); } } return result;};Browser.ContainsClass function (param_className, param_class) { use strict; var result, index; result false; if ((param_className ! undefined) && (param_className.length > 0) && (param_class.length > 0)) { // Exact match? // if (param_class param_className) { result true; } else { // Contains? // index param_className.indexOf(param_class); if (index > 0) { if (index 0) { result (param_className.charAt(param_class.length) ); } else if (index (param_className.length - param_class.length)) { result (param_className.charAt(index - 1) ); } else { result ((param_className.charAt(index - 1) ) && (param_className.charAt(index + param_class.length) )); } } } } return result;};Browser.AddClass function (param_className, param_class) { use strict; var result; result param_className; if (!Browser.ContainsClass(param_className, param_class)) { result param_className + + param_class; } return result;};Browser.RemoveClass function (param_className, param_class) { use strict; var result, index; result param_className; if ((param_className ! undefined) && (param_className.length > 0) && (param_class.length > 0)) { // Exact match? // if (param_class param_className) { result ; } else { // Contains? // index param_className.indexOf(param_class); if (index > 0) { if (index 0) { if (param_className.charAt(param_class.length) ) { result param_className.substring(param_class.length + 1); } } else if (index (param_className.length - param_class.length)) { if (param_className.charAt(index - 1) ) { result param_className.substring(0, index - 1); } } else { if ((param_className.charAt(index - 1) ) && (param_className.charAt(index + param_class.length) )) { result param_className.substring(0, index - 1) + param_className.substring(index + param_class.length); } } } } } return result;};Browser.ReplaceClass function (param_className, param_existing_class, param_new_class) { use strict; var result; result Browser.RemoveClass(param_className, param_existing_class); result Browser.AddClass(result, param_new_class); return result;};Browser.SameDocument function (param_url_1, param_url_2) { use strict; var result, current_path, desired_path; result false; if (param_url_1 param_url_2) { // Quick and dirty check // result true; } else { // Try more in-depth test // current_path param_url_1; desired_path param_url_2; // Decompose hrefs // if (current_path.indexOf(#) ! -1) { current_path current_path.substring(0, current_path.indexOf(#)); } if (desired_path.indexOf(#) ! -1) { desired_path desired_path.substring(0, desired_path.indexOf(#)); } // Same document? // if ((desired_path current_path) || (decodeURIComponent(desired_path) current_path) || (desired_path decodeURIComponent(current_path)) || (decodeURIComponent(desired_path) decodeURIComponent(current_path))) { result true; } } return result;};Browser.SameHierarchy function (param_base_url, param_test_url) { use strict; var result, decoded_base_url, decoded_test_url; result false; if (param_test_url.indexOf(param_base_url) 0) { if (param_base_url.indexOf(.html, param_base_url.length - 5) -1) { if(param_base_urlparam_base_url.length - 1 ! /){ if(param_test_url.indexOf(param_base_url + /) 0) result true; } else { result true; } } else { result true; } } else { decoded_base_url decodeURIComponent(param_base_url); if (param_test_url.indexOf(decoded_base_url) 0) { result true; } else { decoded_test_url decodeURIComponent(param_test_url); if (decoded_test_url.indexOf(param_base_url) 0) { result true; } else { if (decoded_test_url.indexOf(decoded_base_url) 0) { result true; } } } } return result;};Browser.RelativePath function (param_base_url, param_test_url) { use strict; var result, decoded_base_url, decoded_test_url; result ; if (param_test_url.indexOf(param_base_url) 0) { result param_test_url.substring(param_base_url.length); } else { decoded_base_url decodeURIComponent(param_base_url); if (param_test_url.indexOf(decoded_base_url) 0) { result param_test_url.substring(decoded_base_url.length); } else { decoded_test_url decodeURIComponent(param_test_url); if (decoded_test_url.indexOf(param_base_url) 0) { result decoded_test_url.substring(param_base_url.length); } else { if (decoded_test_url.indexOf(decoded_base_url) 0) { result decoded_test_url.substring(decoded_base_url.length); } } } } return result;};Browser.ResolveURL function (param_reference_page_url, param_url) { use strict; var result, url_parts, resolved_url_parts, url_component; // Absolute URL? // if (param_url.indexOf(//) > 0) { // Absolute URL // result param_url; } else { // Relative URL // // Expand URL into components // if (param_url.indexOf(/) > 0) { url_parts param_url.split(/); } else { url_parts param_url; } resolved_url_parts param_reference_page_url.split(/); resolved_url_parts.length resolved_url_parts.length - 1; // Process URL components // while (url_parts.length > 0) { url_component url_parts.shift(); if ((url_component ! ) && (url_component ! .)) { if (url_component ..) { resolved_url_parts.pop(); } else { resolved_url_parts.push(url_component); } } } // Build resolved URL // result resolved_url_parts.join(/); } return result;};Browser.GetDocument function (param_iframe_or_window) { use strict; var result; try { // iframe>? // result param_iframe_or_window.contentWindow || param_iframe_or_window.contentDocument; if (result.document) { result result.document; } } catch (e) { try { // window? // result param_iframe_or_window.document; } catch (ignore) { // Give up! // } } try { if (result.location.href undefined) { result undefined; } else if (result.body undefined) { result undefined; } } catch (e3) { result undefined; } return result;};Browser.GetBrowserWidthHeight function (param_window) { use strict; var result; result {width: 0, height: 0}; // Determine browser width/height // if ((param_window.document.documentElement ! undefined) && (param_window.document.documentElement.clientWidth ! 0)) { result.width param_window.document.documentElement.clientWidth; result.height param_window.document.documentElement.clientHeight; } else { result.width param_window.document.body.clientWidth; result.height param_window.document.body.clientHeight; } return result;};Browser.GetElementWidthHeight function (param_element) { use strict; var result; result {width: 0, height: 0}; // Determine content width/height // if ((param_element.scrollWidth ! undefined) && (param_element.scrollHeight ! undefined)) { result.width param_element.scrollWidth; result.height param_element.scrollHeight; if ((param_element.offsetWidth ! undefined) && (param_element.offsetHeight ! undefined)) { if (param_element.offsetWidth > param_element.scrollWidth) { result.width param_element.offsetWidth; } if (param_element.offsetHeight > param_element.scrollHeight) { result.height param_element.offsetHeight; } } } return result;};Browser.GetElementScrollPosition function (param_element, param_stop_at_element) { use strict; var result, scroll_left, scroll_top, current_element; scroll_left 0; scroll_top 0; current_element param_element; while ((current_element ! null) && (current_element ! param_stop_at_element)) { scroll_left + current_element.offsetLeft; scroll_top + current_element.offsetTop; current_element current_element.offsetParent; } result {left: scroll_left, top: scroll_top}; return result;};Browser.GetWindowContentWidthHeight function (param_window) { use strict; var result, window_document, element; result {width: 0, height: 0}; // Determine iframe width/height // window_document Browser.GetDocument(param_window); if (window_document ! undefined) { // Default width/height info // element window_document.body; result.width element.offsetWidth; result.height element.offsetHeight; if ((window_document.documentElement ! undefined) && (window_document.documentElement.offsetWidth ! 0)) { // Improve upon existing width/height info // if (window.navigator.userAgent.indexOf(MSIE) -1) { element window_document.documentElement; if (element.offsetWidth > result.width) { result.width element.offsetWidth; } if (element.offsetHeight > result.height) { result.height element.offsetHeight; } } } } return result;};Browser.GetWindowScrollPosition function (param_window) { use strict; var result, reference_object; result {left: 0, top: 0}; reference_object (param_window.document.documentElement || param_window.document.body.parentNode || param_window.document.body); result.left (param_window.pageXOffset ! undefined) ? param_window.pageXOffset : reference_object.scrollLeft; result.top (param_window.pageYOffset ! undefined) ? param_window.pageYOffset : reference_object.scrollTop; return result;};Browser.GetIFrameContentWidthHeight function (param_iframe) { use strict; var result; // Determine iframe width/height // result Browser.GetWindowContentWidthHeight(param_iframe); return result;};Browser.FindParentWithTagName function (param_element, param_tag_name) { use strict; var result, parent_element; result null; try { parent_element param_element.parentNode; while ((result null) && (parent_element ! undefined) && (parent_element ! null)) { // Found target element? // if (parent_element.nodeName.toLowerCase() param_tag_name) { // Success! // result parent_element; } // Advance // parent_element parent_element.parentNode; } } catch (ignore) { // No luck! // } return result;};Browser.FirstChildElement function (param_element) { use strict; var result, child_node; result null; if ((param_element.firstChild ! undefined) && (param_element.firstChild ! null)) { child_node param_element.firstChild; while (child_node ! null) { if (child_node.nodeType 1) { result child_node; child_node null; } else { child_node Browser.NextSiblingElement(child_node); } } } return result;};Browser.FirstChildElementWithTagName function (param_element, param_tag_name) { use strict; var result, child_node; result null; if ((param_element.firstChild ! undefined) && (param_element.firstChild ! null)) { child_node param_element.firstChild; while (child_node ! null) { if ((child_node.nodeType 1) && (child_node.nodeName.toLowerCase() param_tag_name)) { result child_node; child_node null; } else { child_node Browser.NextSiblingElement(child_node); } } } return result;};Browser.FirstChildElementContainingClass function (param_element, param_class) { use strict; var result, child_node; result null; if ((param_element.firstChild ! undefined) && (param_element.firstChild ! null)) { child_node param_element.firstChild; while (child_node ! null) { if ((child_node.nodeType 1) && (Browser.ContainsClass(child_node.className, param_class))) { result child_node; child_node null; } else { child_node Browser.NextSiblingElement(child_node); } } } return result;};Browser.PreviousSiblingElement function (param_element) { use strict; var result, current_element; result null; current_element param_element; while ((current_element.previousSibling ! undefined) && (current_element.previousSibling ! null)) { if (current_element.previousSibling.nodeType 1) { result current_element.previousSibling; break; } current_element current_element.previousSibling; } return result;};Browser.NextSiblingElement function (param_element) { use strict; var result, current_element; result null; current_element param_element; while ((current_element.nextSibling ! undefined) && (current_element.nextSibling ! null)) { if (current_element.nextSibling.nodeType 1) { result current_element.nextSibling; break; } current_element current_element.nextSibling; } return result;};Browser.PreviousSiblingElementWithTagName function (param_element, param_tag_name) { use strict; var result; result Browser.PreviousSiblingElement(param_element); while ((result ! null) && (result.nodeName.toLowerCase() ! param_tag_name)) { result Browser.PreviousSiblingElement(result); } return result;};Browser.NextSiblingElementWithTagName function (param_element, param_tag_name) { use strict; var result; result Browser.NextSiblingElement(param_element); while ((result ! null) && (result.nodeName.toLowerCase() ! param_tag_name)) { result Browser.NextSiblingElement(result); } return result;};Browser.GetAttribute function (param_element, param_attribute_name) { use strict; var result; result null; // Notes on browser compatibility // http://help.dottoro.com/ljhutuuj.php // if (param_element.getAttribute ! undefined) { result param_element.getAttribute(param_attribute_name); } else if (param_element.getPropertyValue ! undefined) { result param_element.getPropertyValue(param_attribute_name); } else { if ((param_elementparam_attribute_name ! undefined) && (param_elementparam_attribute_name ! null)) { result param_elementparam_attribute_name; } } return result;};Browser.SetAttribute function (param_element, param_attribute_name, param_value) { use strict; // Notes on browser compatibility // http://help.dottoro.com/ljhutuuj.php // if (param_element.setAttribute ! undefined) { param_element.setAttribute(param_attribute_name, param_value); } else if (param_element.setProperty ! undefined) { param_element.setProperty(param_attribute_name, param_value); } else { param_elementparam_attribute_name param_value; }};Browser.RemoveAttribute function (param_element, param_attribute_name, param_empty_value) { use strict; var attribute_value; // Attribute exists? // attribute_value Browser.GetAttribute(param_element, param_attribute_name); if ((attribute_value ! null) && (attribute_value ! param_empty_value)) { // Notes on browser compatibility // http://help.dottoro.com/ljhutuuj.php // if (param_element.removeAttribute ! undefined) { param_element.removeAttribute(param_attribute_name); } else if (param_element.removeProperty ! undefined) { param_element.removeProperty(param_attribute_name); } else { param_elementparam_attribute_name param_empty_value; } }};Browser.GetLinkRelHREF function (param_document, param_rel) { use strict; var result, link_elements, index, link_element; result ; link_elements param_document.getElementsByTagName(link); for (index 0; index link_elements.length; index + 1) { link_element link_elementsindex; if (link_element.rel param_rel) { // HREF defined? // if (link_element.href ! undefined) { result link_element.href; } break; } } return result;};Browser.ApplyToChildElementsWithTagName function (param_element, param_tag_name, param_process) { use strict; var elements, index, element; elements param_element.getElementsByTagName(param_tag_name); for (index 0; index elements.length; index + 1) { element elementsindex; param_process(element); }};Browser.ApplyToChildElementsContainingClass function (param_element, param_class, param_process) { use strict; var result, child_node; result null; if ((param_element.firstChild ! undefined) && (param_element.firstChild ! null)) { child_node param_element.firstChild; while (child_node ! null) { if ((child_node.nodeType 1) && (Browser.ContainsClass(child_node.className, param_class))) { param_process(child_node); } child_node Browser.NextSiblingElement(child_node); } } return result;};Browser.TrackSubtreeChanges function (param_window, param_element, param_callback) { use strict; var observer, observer_config, tracker, executewithdelay; // Periodically track changes // observer null; try { if (MutationObserver) { // Create MutationObserver // observer new MutationObserver(param_callback); } } catch (ignore) { // Keep on rolling // } if (observer ! null) { // Use MutationObserver // observer_config { childList: true, attributes: true, characterData: true, subtree: true }; observer.observe(param_element, observer_config); } else if (param_window.navigator.userAgent.indexOf(MSIE) ! -1) { // Address IE short-comings // tracker new Tracker(param_window, param_element, param_callback); param_window.setTimeout(tracker.Execute, 1); } else { // Use legacy DOMSubtreeModified // executewithdelay new ExecuteWithDelay(param_window, param_callback, 100); if (param_element.addEventListener ! undefined) { param_element.addEventListener(DOMSubtreeModified, executewithdelay.Execute, false); } else if (param_element.attachEvent ! undefined) { param_element.attachEvent(DOMSubtreeModified, executewithdelay.Execute); } }};Browser.TrackDocumentChanges function (param_window, param_document, param_callback) { use strict; Browser.TrackSubtreeChanges(param_window, param_document.body, param_callback);};Browser.ApplyToTree function (param_element, param_recursion_filter, param_processing_filter, param_action) { use strict; var index, child_node, queue; queue ; for (index 0; index param_element.childNodes.length; index + 1) { child_node param_element.childNodesindex; // Depth first processing // if (param_recursion_filter(child_node)) { // Recurse! // Browser.ApplyToTree(child_node, param_recursion_filter, param_processing_filter, param_action); } // Process? // if (param_processing_filter(child_node)) { // Add to queue // queue.push(child_node); } } // Process queue // for (index 0; index queue.length; index + 1) { child_node queueindex; param_action(child_node); }};Browser.TouchEnabled function (param_window) { use strict; var result; result (param_window.ontouchstart ! undefined); if (!result) { try { result ((param_window.DocumentTouch ! undefined) && (param_window.document instanceof DocumentTouch)); } catch (ignore) { // Not fatal! // } } return result;};Browser.DisableCSSHoverSelectors function (param_window) { use strict; var css_style_rule_type, hover_expression, stylesheet_index, stylesheet, css_rules_index, css_rules, css_rule, parts, filtered_parts, parts_index, part; try { // Determine style rule type // css_style_rule_type param_window.CSSRule.STYLE_RULE; // Define hover expression // hover_expression /:hover/; // Iterate stylesheets // for (stylesheet_index 0; stylesheet_index param_window.document.styleSheets.length; stylesheet_index + 1) { stylesheet param_window.document.styleSheetsstylesheet_index; // Avoid security exceptions if stylesheet on a different server // css_rules undefined; try { css_rules stylesheet.cssRules; if (css_rules undefined) { css_rules stylesheet.rules; } if ((css_rules undefined) || (css_rules null)) { // Skip stylesheets that failed to load // continue; } } catch (skip_exception) { continue; } // Iterate rules // for (css_rules_index css_rules.length - 1; css_rules_index > 0; css_rules_index - 1) { css_rule css_rulescss_rules_index; // Check rule type // if (css_rule.type css_style_rule_type) { // Expand compound selectors // if (css_rule.selectorText.indexOf(,) ! -1) { parts css_rule.selectorText.split(,); } else { parts css_rule.selectorText; } // Filter individual selectors // filtered_parts ; for (parts_index 0; parts_index parts.length; parts_index + 1) { part partsparts_index; if (!hover_expression.test(part)) { filtered_parts.push(part); } } // Update rule selectors or delete // if (filtered_parts.length > 0) { css_rule.selectorText filtered_parts.join(,); } else { stylesheet.deleteRule(css_rules_index); } } } } } catch (ignore) { // Not fatal // }};// Highlights//var Highlight {};Highlight.MatchExpression function (param_expression, param_require_whitespace, param_string) { use strict; var result, working_regexp, working_string, offset, match; result ; // Find matches within the string in order // if (param_require_whitespace) { working_regexp new RegExp(\\s + param_expression + \\s, i); working_string + param_string + ; } else { working_regexp new RegExp(param_expression, i); working_string param_string; } offset 0; match working_regexp.exec(working_string); while (match ! null) { // Record location of this match // result.push(offset + match.index, match0.length - ((param_require_whitespace) ? 2 : 0)); // Advance // offset + match.index + match0.length - ((param_require_whitespace) ? 1 : 0); working_regexp.lastIndex 0; if (offset working_string.length) { match working_regexp.exec(working_string.substring(offset)); } else { match null; } } return result;};Highlight.MatchExpressions function (param_expressions, param_require_whitespace, param_string) { use strict; var result, match_locations, expression, index, alpha_locations, beta_locations, gamma_locations, start_index, alpha_location, beta_location, gamma_location; // Find all match locations // match_locations ; for (index 0; index param_expressions.length; index + 1) { expression param_expressionsindex; match_locationsindex Highlight.MatchExpression(expression, param_require_whitespace, param_string); } // Combine match locations // while (match_locations.length > 1) { alpha_locations match_locations.pop(); beta_locations match_locations.pop(); gamma_locations ; start_index -1; alpha_location undefined; beta_location undefined; while ((alpha_locations.length > 0) || (beta_locations.length > 0) || (alpha_location ! undefined) || (beta_location ! undefined)) { // Locate next location pair // while ((alpha_location undefined) && (alpha_locations.length > 0)) { alpha_location alpha_locations.shift(); if (alpha_location0 start_index) { alpha_location undefined; } } while ((beta_location undefined) && (beta_locations.length > 0)) { beta_location beta_locations.shift(); if (beta_location0 start_index) { beta_location undefined; } } // Pick a location // gamma_location undefined; if ((alpha_location ! undefined) && (beta_location ! undefined)) { // Check start index // if (alpha_location0 beta_location0) { // Use alpha // gamma_location alpha_location; alpha_location undefined; } else if (alpha_location0 > beta_location0) { // Use beta // gamma_location beta_location; beta_location undefined; } else { // Check lengths (longer match wins) // if (alpha_location1 > beta_location1) { // Use alpha // gamma_location alpha_location; alpha_location undefined; } else if (alpha_location1 beta_location1) { // Use beta // gamma_location beta_location; beta_location undefined; } else { // Same location // gamma_location alpha_location; alpha_location undefined; beta_location undefined; } } } else { // Use the one that exists // if (alpha_location ! undefined) { // Use alpha // gamma_location alpha_location; alpha_location undefined; } else { // Use beta // gamma_location beta_location; beta_location undefined; } } // Track selected location // if (gamma_location ! undefined) { gamma_locations.push(gamma_location); start_index gamma_location0 + gamma_location1; } } match_locations.push(gamma_locations); } result match_locations0; return result;};Highlight.TreeRecusionFilter function (param_node) { use strict; var result false; // Recurse on content elements // if ((param_node.nodeType 1) && (param_node.nodeName.toLowerCase() ! header) && (param_node.nodeName.toLowerCase() ! footer)) { result true; } return result;};Highlight.TreeProcessTextNodesFilter function (param_node) { use strict; var result false; // Keep text nodes // if (param_node.nodeType 3) { result true; } return result;};Highlight.TreeProcessHighlightSpansFilter function (param_css_class, param_node) { use strict; var result false; // Find highlight spans // if ((param_node.nodeType 1) && (param_node.nodeName.toLowerCase() span) && (param_node.className param_css_class)) { result true; } return result;};Highlight.Apply function (param_document, param_css_class, param_expressions, param_require_whitespace, param_node) { use strict; var locations, result, location, highlight_node, span_element; locations Highlight.MatchExpressions(param_expressions, param_require_whitespace, param_node.nodeValue); locations Highlight.FilterOverlaps(locations); result (locations.length > 0); while (locations.length > 0) { location locations.pop(); if ((location0 + location1) param_node.nodeValue.length) { param_node.splitText(location0 + location1); } highlight_node param_node.splitText(location0); span_element param_document.createElement(span); span_element.className param_css_class; param_node.parentNode.insertBefore(span_element, highlight_node); span_element.appendChild(highlight_node); } return result;};Highlight.FilterOverlaps function (param_locations){ use strict; var locations_sorted_by_start, locations_sorted_by_end, result, currentInterval, peek, i; if(param_locations.length 1) return param_locations; locations_sorted_by_start Highlight.sortArrayOfArrayByPos(param_locations, function(a){return a0}); result new Array(); result.push(locations_sorted_by_start0); for(i1; i locations_sorted_by_start.length; i++){ currentInterval locations_sorted_by_starti; peek resultresult.length - 1; //No Overlap - we only consider this part because the elements are sorted if(currentInterval0 > peek0 + peek1 - 1){ result.push(currentInterval); }else{ //Overlap found the start of the currentInterval is inside the peek interval. We have 2 cases here: //Case 1- currentInterval is contained in peek (start and end of currentInterval are inside peek interval) //Case 2- currentInterval ends beyond peek end //The only case we want to take into consideration is case 2 if(currentInterval0 + currentInterval1 - 1 > peek0 + peek1 - 1){ peek1 currentInterval0 + currentInterval1 - peek0; resultresult.length - 1 peek; } } } return result;};Highlight.sortArrayOfArrayByPos function (param_locations, param_function){ use strict; param_locations.sort(function(a, b){return param_function(a) - param_function(b)}); return param_locations;};Highlight.Remove function (param_document, param_node) { use strict; var parent, previous, next, text, text_node; // Remove highlights // parent param_node.parentNode; previous param_node.previousSibling; next param_node.nextSibling; text ; if ((previous ! null) && (previous.nodeType 3)) { text + previous.nodeValue; parent.removeChild(previous); } if ((param_node.childNodes.length > 0) && (param_node.childNodes0.nodeType 3)) { text + param_node.childNodes0.nodeValue; } if ((next ! null) && (next.nodeType 3)) { text + next.nodeValue; parent.removeChild(next); } text_node param_document.createTextNode(text); parent.insertBefore(text_node, param_node); parent.removeChild(param_node);};Highlight.ApplyToDocument function (param_document, param_css_class, param_expressions, param_require_whitespace, param_handle_highlight) { use strict; Browser.ApplyToTree(param_document.body, Highlight.TreeRecusionFilter, Highlight.TreeProcessTextNodesFilter, function (param_node) { var applied; applied Highlight.Apply(param_document, param_css_class, param_expressions, param_require_whitespace, param_node); if ((applied) && (param_handle_highlight ! undefined)) { param_handle_highlight(param_node.parentNode); } });};Highlight.RemoveFromDocument function (param_document, param_css_class) { use strict; // Remove highlights // Browser.ApplyToTree(param_document.body, Highlight.TreeRecusionFilter, function (param_node) { var result; result Highlight.TreeProcessHighlightSpansFilter(param_css_class, param_node); return result; }, function (param_node) { Highlight.Remove(param_document, param_node); });};// File AJAX//var FAJAX {};FAJAX.Open function (method, url, async) { use strict; this.url url;};FAJAX.Send function (param_data) { use strict; // Need to inject iframe via innerHTML to support IE 7 // this.iframe_container this.window.document.createElement(div); this.iframe_container.id fajax_iframe_container; this.iframe_container.fajax this; this.iframe_container.style.visibility hidden; this.window.document.body.appendChild(this.iframe_container); this.iframe_container.innerHTML iframe src + this.url + onloadFAJAX.OnLoad(window.document);>/iframe>;};FAJAX.OnLoad function (param_document) { use strict; var iframe_container; iframe_container param_document.getElementById(fajax_iframe_container); iframe_container.fajax.HandleLoad();};FAJAX.HandleLoad function () { use strict; var iframe, iframe_document, data; // Access iframes content directly // try { iframe this.iframe_container.getElementsByTagName(iframe)0; iframe_document Browser.GetDocument(iframe); data iframe_document.body.innerHTML; } catch (ignore) { // No luck! // } // Try session storage // if (data null || data undefined || data ) { if (this.window.Storage ! undefined) { try { data this.window.sessionStorageWebWorks_Connect_Data; delete this.window.sessionStorageWebWorks_Connect_Data; } catch (ignore) { // must be using a file:// URL in Chrome // modal.style.display block; } } } this.window.document.body.removeChild(this.iframe_container); if (data ! null && data ! undefined) { this.readyState 4; this.status 200; this.responseText data; this.onreadystatechange(); } else { this.readyState 4; this.status 404; this.responseText ; this.onreadystatechange(); }};FAJAX.Object function (param_window) { use strict; this.window param_window; this.readyState 1; this.status 404; this.responseText ; this.iframe undefined; this.url ; this.open FAJAX.Open; this.send FAJAX.Send; this.HandleLoad FAJAX.HandleLoad;};// Parcels//var Parcels {};Parcels.KnownParcelURL function (param_parcel_prefixes, param_url) { use strict; var result, parcel_base_url; result false; for (parcel_base_url in param_parcel_prefixes) { if (typeof param_parcel_prefixesparcel_base_url boolean) { if (Browser.SameHierarchy(parcel_base_url, param_url)) { result true; break; } } } return result;};Parcels.KnownParcelBaggageURL function (param_parcel_prefixes, param_url) { use strict; var result, parcel_base_url, baggage_url; result false; for (parcel_base_url in param_parcel_prefixes) { if (typeof param_parcel_prefixesparcel_base_url boolean) { if (Browser.SameHierarchy(parcel_base_url, param_url)) { baggage_url parcel_base_url + /baggage/; result Browser.SameHierarchy(baggage_url, param_url); break; } } } return result;};// Progress//function Progress_Reset() { use strict; var progress_bar_div; // Reset progress // this.progress 0; // Indicate indeterminate progress // progress_bar_div Browser.FirstChildElementContainingClass(this.progress_div, ww_skin_progress_bar); if (progress_bar_div ! null) { progress_bar_div.className Browser.AddClass(progress_bar_div.className, ww_skin_progress_indeterminate); // Reset segments // Browser.ApplyToChildElementsContainingClass(progress_bar_div, ww_skin_progress_segment, function (param_element) { param_element.className Browser.ReplaceClass(param_element.className, ww_skin_progress_segment_complete, ww_skin_progress_segment_pending); }); }}function Progress_Update(param_progress) { use strict; var progress_goal, progress_bar_div, started, this_reference, current_progress; // Validate progress goal // progress_goal param_progress; if (progress_goal > 100) { progress_goal 100; } else if (progress_goal 0) { progress_goal 0; } // Update necessary? // if (progress_goal > this.progress) { // Locate progress bar // progress_bar_div Browser.FirstChildElementContainingClass(this.progress_div, ww_skin_progress_bar); if (progress_bar_div ! null) { // Started progress? // started (this.progress 0); // Update progress // while ((this.progress + 10) progress_goal) { this.progress + 10; } if (this.progress > 0) { // Started progress updates? // if (started) { // Remove indeterminate progress indicator // progress_bar_div.className Browser.RemoveClass(progress_bar_div.className, ww_skin_progress_indeterminate); } // Mark progress // current_progress 0; this_reference this; Browser.ApplyToChildElementsContainingClass(progress_bar_div, ww_skin_progress_segment, function (param_element) { // Count segments // current_progress + 10; if (current_progress this_reference.progress) { param_element.className Browser.ReplaceClass(param_element.className, ww_skin_progress_segment_pending, ww_skin_progress_segment_complete); } }); } } }}function Progress_Complete() { use strict; this.Hide();}function Progress_Done() { use strict; return (this.progress 100);}function Progress_Show() { use strict; this.progress_div.style.display block;}function Progress_Hide() { use strict; this.progress_div.style.display none;}function Progress_Object(param_progress_div) { use strict; this.progress 0; this.progress_div param_progress_div; this.Reset Progress_Reset; this.Update Progress_Update; this.Complete Progress_Complete; this.Done Progress_Done; this.Show Progress_Show; this.Hide Progress_Hide;}// Copyright (c) 2010-2018 Quadralay Corporation. All rights reserved.//// ePublisher 2018.2//// Validated with JSLint http://www.jslint.com/>///*jslint browser: true, for: true, this: true, white: true *//*global window *//*global Browser *//*global Message *//*global FAJAX *//*global Parcels *//*global Progress_Object */var Connect_Window window;Connect_Window.name connect_main;// AJAXData//function AJAXData_Execute() { use strict; var this_ajaxdata, entry, ajax, parallel, request_url, moment; this_ajaxdata this; if (this_ajaxdata.entries.length > 0) { // Load entry // entry this_ajaxdata.entries.shift(); if (Connect_Window.document.location.protocol file:) { ajax new FAJAX.Object(Connect_Window); parallel false; } else { ajax Browser.GetAJAX(Connect_Window); parallel true; } ajax.onreadystatechange function () { if (ajax.readyState 4) { // Entry retrieved // if (ajax.status 200) { // Success! // this_ajaxdata.completed_entries.push(entry); this_ajaxdata.success(entry, ajax); // Update progress // this_ajaxdata.progress((this_ajaxdata.completed_entries.length / this_ajaxdata.entries_start_length) * 100); } else if (ajax.status 304) { // Already trying to work around 304s? // if (this_ajaxdata.avoid_304_entriesentry true) { // Keep moving forward // this_ajaxdata.completed_entries.push(entry); this_ajaxdata.progress((this_ajaxdata.completed_entries.length / this_ajaxdata.entries_start_length) * 100); } else { // Retry // this_ajaxdata.avoid_304_entriesentry true; this_ajaxdata.entries.push(entry); } } else { this_ajaxdata.completed_entries.push(entry); } // Load next entry // Connect_Window.setTimeout(function () { this_ajaxdata.Execute(); }, 1); } }; // Avoid 304 (not modified) responses // request_url this_ajaxdata.get_url(entry); if (this_ajaxdata.avoid_304_entriesentry true) { moment new Date(); request_url + ?moment + moment.getTime(); } // Request entry // ajax.open(GET, request_url, true); ajax.send(null); // Parallel load? // if (parallel) { // Load next entry // Connect_Window.setTimeout(function () { this_ajaxdata.Execute(); }, 1); } } else { // Completed? // if ((this.completed false) && (this_ajaxdata.completed_entries.length this_ajaxdata.entries_start_length)) { // Entries loaded! // this_ajaxdata.complete(); this.completed true; } }}function AJAXData_Object(param_entries, param_get_url, param_progress, param_success, param_complete) { use strict; this.entries param_entries.slice(0); this.entries_start_length this.entries.length; this.completed_entries ; this.completed false; this.avoid_304_entries {}; this.get_url param_get_url; this.progress param_progress; this.success param_success; this.complete param_complete; this.Execute AJAXData_Execute;}// Panel//function Panel_Visible() { use strict; var result; result (Browser.ContainsClass(this.connect.presentation_div.className, panel_sidebar) || Browser.ContainsClass(this.connect.presentation_div.className, panel_overlay)); return result;}function Panel_Show() { use strict; if (!this.Visible()) { // Configure panel // if (this.display_as_sidebar) { this.connect.presentation_div.className Browser.AddClass(this.connect.presentation_div.className, panel_sidebar); } else { this.connect.presentation_div.className Browser.AddClass(this.connect.presentation_div.className, panel_overlay); } // Handle layout changes // this.Resize(); }}function Panel_Resize() { use strict; this.resize();}function Panel_Hide(param_resize) { use strict; if (this.Visible()) { // Teardown // if ((this.teardown ! undefined) && (this.teardown ! null)) { this.teardown(this.window, this.panel_content); this.teardown undefined; } // Hide panel // if (this.display_as_sidebar) { this.connect.presentation_div.className Browser.RemoveClass(this.connect.presentation_div.className, panel_sidebar); } else { this.connect.presentation_div.className Browser.RemoveClass(this.connect.presentation_div.className, panel_overlay); } // Handle layout changes // if (param_resize undefined) { this.Resize(); } else { if (param_resize true) { this.Resize(); } } }}function Panel_Display(param_display_as_sidebar, param_setup, param_resize, param_teardown) { use strict; var this_panel; // Setup // this.display_as_sidebar (this.connect.navigation_width > 0) ? param_display_as_sidebar : false; param_setup(this.window, this.panel_content); // Configure resize and teardown // this.resize param_resize; this.teardown param_teardown; // Show! // this_panel this; this_panel.show_inprogress true; this.window.setTimeout(function () { this_panel.show_inprogress false; this_panel.Show(); }, 1);}function Panel_Object(param_window, param_connect) { use strict; this.window param_window; this.connect param_connect; this.display_as_sidebar false; this.teardown undefined; this.panel_frame this.window.document.getElementById(panel_frame); this.panel_content this.window.document.getElementById(panel_content); this.page_div this.window.document.getElementById(page_div); this.page_iframe this.window.document.getElementById(page_iframe); this.show_inprogress false; this.Visible Panel_Visible; this.Show Panel_Show; this.Resize Panel_Resize; this.Hide Panel_Hide; this.Display Panel_Display;}// Lightbox//function Lightbox_Show() { use strict; // Set up the background // this.lightbox_background.style.display block; // Configure the frame // this.lightbox_frame.style.visibility visible;}function Lightbox_Hide() { use strict; // Hide lightbox // this.lightbox_frame.style.visibility hidden; this.lightbox_background.style.display none; // Teardown // if ((this.teardown ! undefined) && (this.teardown ! null)) { this.teardown(this.lightbox_frame, this.lightbox_content); this.teardown undefined; }}function Lightbox_Display(param_setup, param_teardown) { use strict; var this_lightbox; // Setup // param_setup(this.lightbox_frame, this.lightbox_content); // Configure teardown // this.teardown param_teardown; // Show! // this_lightbox this; Connect_Window.setTimeout(function () { this_lightbox.Show(); }, 1);}function Lightbox_Object(param_connect) { use strict; var this_lightbox; this.connect param_connect; this.lightbox_background Connect_Window.document.getElementById(lightbox_background); this.lightbox_frame Connect_Window.document.getElementById(lightbox_frame); this.lightbox_content Connect_Window.document.getElementById(lightbox_content); this.lightbox_close Connect_Window.document.getElementById(lightbox_close); this.teardown undefined; this_lightbox this; this.page_iframe Connect_Window.document.getElementById(page_iframe); this.lightbox_close.onclick function () { this_lightbox.Hide(); }; this.Show Lightbox_Show; this.Hide Lightbox_Hide; this.Display Lightbox_Display; // Use fancy, centered display? // if (this.lightbox_frame.style.transform ! undefined) { this.lightbox_frame.className Browser.AddClass(this.lightbox_frame.className, ww_skin_lightbox_frame_centered); }}var Connect {loading: false, page_cargo: {}};Connect.OnLoadAction function () { use strict; var url_header, base_pathname, base_url, splash_page_url, css_style_rule_type, stylesheet, css_rules, css_rules_index, css_rule, css_rule_selector_text, progress_bar_div, back_to_top_link, parcel_anchors, parcel_anchor, parcel_context_and_id, parcel_context, parcel_id, index; // Account for # in pathname and href as well as root (site) URL case // base_pathname Connect_Window.location.pathname; if (base_pathname.indexOf(#) > 0) { base_pathname base_pathname.substring(0, base_pathname.lastIndexOf(#)); } base_pathname base_pathname.substring(0, base_pathname.lastIndexOf(/) + 1); url_header Connect_Window.location.href; if (url_header.indexOf(#) > 0) { url_header url_header.substring(0, url_header.lastIndexOf(#)); } if (base_pathname.length > 0) { url_header url_header.substring(0, url_header.lastIndexOf(base_pathname)); } base_url url_header + base_pathname; splash_page_url base_url + connect/splash.html; Connect.base_url base_url; Connect.default_page_url splash_page_url; Connect.splash_page_url splash_page_url; Connect.search_page_url base_url + connect/search.html; Connect.show_first_document false; Connect.layout_initialized false; Connect.layout_wide false; Connect.layout_tall false; Connect.adjust_for_content_size_timeout null; Connect.adjust_for_content_size_inprogress false; Connect.parcels_loaded_initial false; Connect.parcels_loading_remaining false; Connect.parcels_loaded_all false; Connect.ignore_page_load false; Connect.hash ; Connect.progress_div Connect_Window.document.getElementById(progress); Connect.progress new Progress_Object(Connect.progress_div); Connect.parcel_anchors ; Connect.parcel_ids ; Connect.parcel_ix ; Connect.parcel_ix_loaded false; Connect.parcel_ix_loading false; Connect.parcel_sx ; Connect.parcel_title {}; Connect.navigation_width 300; Connect.navigation_minimum_page_width 900; Connect.minimum_page_height 480; Connect.lightbox_large_images true; Connect.disqus_id ; Connect.email documentation@zerto.com; Connect.email_message Feedback: $Location;; Connect.toc_class_states {}; Connect.toc_selected_entry_key undefined; Connect.toc_cleanup_folders true; Connect.search_input null; Connect.search_query ; Connect.search_synonyms ; Connect.button_behavior_expression new RegExp(ww_behavior_a-z+, g); Connect.buttons {}; Connect.button_behaviors { ww_behavior_home: Connect.Button_Home, ww_behavior_toc: Connect.Button_TOC, ww_behavior_index: Connect.Button_Index, ww_behavior_search: Connect.Button_Search, ww_behavior_globe: Connect.Button_Globe, ww_behavior_prev: Connect.Button_Previous, ww_behavior_next: Connect.Button_Next, ww_behavior_email: Connect.Button_Email, ww_behavior_print: Connect.Button_Print, ww_behavior_pdf: Connect.Button_PDF }; Connect.button_degradation_order ww_behavior_home, ww_behavior_globe, ww_behavior_index, ww_behavior_search, ww_behavior_toc; Connect.globe_enabled false; Connect.link_bridge { Next: {}, Prev: {}, HREFs: {splash: splash_page_url}, Update: function () { var previous_last_page_link, index, parcel_id, first_page_div, last_page_div, first_page_link, last_page_link, firstPageID, lastPageID, lastLinkID; // Reset info // this.Next {}; this.Prev {}; this.HREFs {splash: splash_page_url}; // Update bridge links // previous_last_page_link null; for (index 0; index Connect.parcel_ids.length; index + 1) { parcel_id Connect.parcel_idsindex; first_page_div Connect_Window.document.getElementById(page: + parcel_id + :first); last_page_div Connect_Window.document.getElementById(page: + parcel_id + :last); if ((first_page_div ! null) && (last_page_div ! null)) { first_page_link Browser.FirstChildElementWithTagName(first_page_div, a); last_page_link Browser.FirstChildElementWithTagName(last_page_div, a); firstPageID first_page_link.id.replace(/\:first$/, ); lastPageID last_page_link.id.replace(/\:last$/, ); // Associate previous/next and handle no splash // if (previous_last_page_link null) { if (Connect.show_first_document) { Connect.default_page_url first_page_link.href; } else { this.PrevfirstPageID splash; } this.Nextsplash firstPageID; } else { lastLinkID previous_last_page_link.id.replace(/\:last$/, ); this.PrevfirstPageID lastLinkID; this.NextlastLinkID firstPageID; } // Map ids to URIs // this.HREFsfirstPageID first_page_link.href; this.HREFslastPageID last_page_link.href; previous_last_page_link last_page_link; } } }, GetPrev: function (param_page_id) { var result; result null; if (this.Prevparam_page_id ! undefined) { result this.HREFsthis.Prevparam_page_id; } return result; }, GetNext: function (param_page_id) { var result; result null; if (this.Nextparam_page_id ! undefined) { result this.HREFsthis.Nextparam_page_id; } return result; }, Get: function (param_type, param_page_id) { var result, type_as_lowercase; result null; type_as_lowercase param_type.toLowerCase(); if (type_as_lowercase prev) { result this.GetPrev(param_page_id); } else if (type_as_lowercase next) { result this.GetNext(param_page_id); } return result; } }; // Determine style rule type // css_style_rule_type Connect_Window.CSSRule.STYLE_RULE; // Layout offsets // Connect.layout_wide_offset 0; Connect.layout_narrow_offset 0; Connect.layout_current_offset 0; Connect.layout_height_tolerance 32; Connect.layout_top 0; Connect.layout_top_css_rules ; for (index 0; index Connect_Window.document.styleSheets.length; index + 1) { stylesheet Connect_Window.document.styleSheetsindex; // Avoid security exceptions if stylesheet on a different server // css_rules undefined; try { css_rules stylesheet.cssRules; if (css_rules undefined) { css_rules stylesheet.rules; } if ((css_rules undefined) || (css_rules null)) { // Skip stylesheets that failed to load // continue; } } catch (skip_exception) { continue; } // Iterate rules // for (css_rules_index 0; css_rules_index css_rules.length; css_rules_index + 1) { css_rule css_rulescss_rules_index; // Check rule type // if (css_rule.type css_style_rule_type) { css_rule_selector_text css_rule.selectorText.toLowerCase(); // Handle IE 7,8 if (css_rule_selector_text .layout_wide) { Connect.layout_wide_offset + parseInt(css_rule.style.paddingLeft, 10); Connect.layout_wide_offset + parseInt(css_rule.style.paddingRight, 10); } else if (css_rule_selector_text .layout_narrow) { Connect.layout_narrow_offset + parseInt(css_rule.style.paddingLeft, 10); Connect.layout_narrow_offset + parseInt(css_rule.style.paddingRight, 10); } else if (css_rule_selector_text div#presentation_div) { Connect.presentation_div_css_rule css_rule; } else if ((css_rule_selector_text div#layout_div.layout_wide div#presentation_div.panel_sidebar div#panel_frame) || (css_rule_selector_text div.layout_wide#layout_div div.panel_sidebar#presentation_div div#panel_frame)) { // Assign width // css_rule.style.width String(Connect.navigation_width) + px; } else if ((css_rule_selector_text div#layout_div.layout_wide div#presentation_div.panel_sidebar div#page_div) || (css_rule_selector_text div.layout_wide#layout_div div.panel_sidebar#presentation_div div#page_div)) { // Assign left or right navigation space (depends on RTL configuration) // if (typeof css_rule.style.left string) { css_rule.style.left String(Connect.navigation_width) + px; } else if (typeof css_rule.style.right string) { css_rule.style.right String(Connect.navigation_width) + px; } } else if (css_rule_selector_text div#container_div) { // Update top // Connect.layout_top_css_rules.push(css_rule); } } } } // Cache div>s // Connect.layout_div Connect_Window.document.getElementById(layout_div); Connect.toolbar_div Connect_Window.document.getElementById(toolbar_div); Connect.presentation_div Connect_Window.document.getElementById(presentation_div); Connect.parcels_div Connect_Window.document.getElementById(parcels); Connect.container_div Connect_Window.document.getElementById(container_div); Connect.panel_frame_div Connect_Window.document.getElementById(panel_frame); Connect.page_div Connect_Window.document.getElementById(page_div); Connect.page_iframe Connect_Window.document.getElementById(page_iframe); Connect.panels_div Connect_Window.document.getElementById(panels); Connect.toc_div Connect_Window.document.getElementById(toc); Connect.toc_content_div Connect_Window.document.getElementById(toc_content); Connect.index_div Connect_Window.document.getElementById(index); Connect.index_content_div Connect_Window.document.getElementById(index_content); Connect.search_div Connect_Window.document.getElementById(search); Connect.search_content_div Connect_Window.document.getElementById(search_content); Connect.search_iframe Connect_Window.document.getElementById(search_iframe); // Create progress for index panel // progress_bar_div Browser.FirstChildElementContainingClass(Connect.progress_div, ww_skin_progress_bar); Connect.index_progress_div Connect_Window.document.getElementById(panel_progress).cloneNode(true); Connect.index_progress_div.id ; Connect.index_progress_div.innerHTML ; Connect.index_progress_div.appendChild(progress_bar_div.cloneNode(true)); Connect.panels_div.appendChild(Connect.index_progress_div); Connect.index_progress new Progress_Object(Connect.index_progress_div); Connect.index_progress.Hide(); // Create progress for search panel // Connect.search_progress_div Connect_Window.document.getElementById(panel_progress).cloneNode(true); Connect.search_progress_div.id ; Connect.search_progress_div.innerHTML ; Connect.search_progress_div.appendChild(progress_bar_div.cloneNode(true)); Connect.panels_div.appendChild(Connect.search_progress_div); Connect.search_progress new Progress_Object(Connect.search_progress_div); Connect.search_progress.Hide(); // Determine scrolling support // Connect.scrolling_supported Browser.ScrollingSupported(); if (Connect.scrolling_supported) { Connect_Window.document.body.className Browser.AddClass(Connect_Window.document.body.className, scrolling_supported); } // Size content div> // Connect_Window.onresize Connect.OnResize; if (Connect_Window.addEventListener ! undefined) { Connect_Window.addEventListener(orientationchange, Connect.OnResize, false); } // Panel // Connect.Panel new Panel_Object(Connect_Window, Connect); Connect.panel_changing false; Connect.sidebar_behavior undefined; Connect.sidebar_auto_display (Connect.navigation_width > 0); // Lightbox // Connect.Lightbox new Lightbox_Object(Connect); // Touch enabled? // if (Browser.TouchEnabled(Connect_Window)) { // Adjust CSS rules for touch devices // Browser.DisableCSSHoverSelectors(Connect_Window); } // Hook up back to top // Connect_Window.onscroll Connect.HandleScrollForBackToTop; Connect.back_to_top_element Connect_Window.document.getElementById(back_to_top); if (Connect.back_to_top_element ! null) { Connect.back_to_top_element.onclick Connect.BackToTop; back_to_top_link Browser.FirstChildElementWithTagName(Connect.back_to_top_element, a); if ((back_to_top_link ! null) && (Browser.ContainsClass(back_to_top_link.className, ww_behavior_back_to_top))) { back_to_top_link.onclick Connect.BackToTopLink; } } // Load parcels // Connect.parcel_anchors ; Connect.parcel_ids ; Connect.parcel_context_ids {}; Connect.parcel_prefixes {}; Connect.parcel_prefixesConnect.base_url + connect/ true; Connect.toc_content_div.innerHTML Connect.parcels_div.innerHTML; Connect.parcels_div.innerHTML ; Connect.parcels_div.style.display none; parcel_anchors Connect.toc_div.getElementsByTagName(a); if (parcel_anchors.length 0) { parcel_anchors Connect_Window.document.links; } for (index 0; index parcel_anchors.length; index + 1) { parcel_anchor parcel_anchorsindex; Connect.parcel_anchorsConnect.parcel_anchors.length parcel_anchor; // Add to collection of valid parcels // parcel_context_and_id parcel_anchor.id.split(:); parcel_context parcel_context_and_id0; parcel_id parcel_context_and_id1; Connect.AddParcel(parcel_context, parcel_id, parcel_anchor.href, parcel_anchor.innerHTML); Connect.parcel_idsConnect.parcel_ids.length parcel_id; } Connect.Parcels_Load(); // Setup for listening // Connect.dispatch_listen undefined; Message.Listen(Connect_Window, Connect.Listen);};Connect.OnLoad function () { use strict; if (!Connect.loading) { Connect.loading true; Connect.OnLoadAction(); }};// Start running as soon as possible//if (window.addEventListener ! undefined) { window.document.addEventListener(DOMContentLoaded, Connect.OnLoad, false);}Connect.AddParcel function (param_parcel_context, param_parcel_id, param_parcel_url, param_parcel_title) { use strict; var parcel_directory_url; parcel_directory_url param_parcel_url.substring(0, param_parcel_url.lastIndexOf(.)); // Track context // Connect.parcel_context_idsparam_parcel_context param_parcel_id; // Include original file and directory prefix // Connect.parcel_prefixesparam_parcel_url true; Connect.parcel_prefixesparcel_directory_url true; Connect.parcel_ix.push({ id: param_parcel_id, url: parcel_directory_url + _ix.html }); Connect.parcel_sx.push(parcel_directory_url + _sx.js); Connect.parcel_titleparam_parcel_id param_parcel_title;};Connect.KnownParcelURL function (param_url) { use strict; var result; result Parcels.KnownParcelURL(Connect.parcel_prefixes, param_url); return result;};Connect.KnownParcelBaggageURL function (param_url) { use strict; var result; result Parcels.KnownParcelBaggageURL(Connect.parcel_prefixes, param_url); return result;};Connect.CalculateLayoutWide function () { use strict; var result, browser_widthheight; browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); result (browser_widthheight.width > Connect.navigation_minimum_page_width); return result;};Connect.CalculateLayoutTall function () { use strict; var result, browser_widthheight; browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); result (browser_widthheight.height > Connect.minimum_page_height); return result;};Connect.GuessPageHeight function () { use strict; var browser_widthheight, page_height; browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); page_height browser_widthheight.height - Connect.layout_top; return page_height;};Connect.AdjustLayoutForBrowserSize function () { use strict; var previous_layout_wide, previous_layout_tall, layout_changed, toolbar_buttons, left_button, right_button, index, toolbar_button, guessed_height; // Adjust navigation based on available space // previous_layout_wide Connect.layout_wide; previous_layout_tall Connect.layout_tall; Connect.layout_wide Connect.CalculateLayoutWide(); Connect.layout_tall ((!Connect.layout_wide) && (Connect.CalculateLayoutTall())); layout_changed ((!Connect.layout_initialized) || (Connect.layout_wide ! previous_layout_wide) || (Connect.layout_tall ! previous_layout_tall)); // Layout changed? // if (layout_changed) { if (Connect.layout_wide) { // Layout // Connect.layout_div.className layout_wide; Connect.layout_current_offset Connect.layout_wide_offset; } else { if (Connect.layout_tall) { // Layout // Connect.layout_div.className layout_narrow layout_tall; Connect.layout_current_offset Connect.layout_narrow_offset; // Clear page height and let scrollbars do their thing // Connect.page_div.style.height ; } else { // Layout // Connect.layout_div.className layout_narrow; Connect.layout_current_offset Connect.layout_narrow_offset; // Guess page height // guessed_height String(Connect.GuessPageHeight() - Connect.layout_height_tolerance) + px; if (Connect.page_div.style.height ! guessed_height) { Connect.page_div.style.height guessed_height; } } } } // Update toolbar buttons // toolbar_buttons Connect.toolbar_div.getElementsByTagName(span); for (index 0; index toolbar_buttons.length; index + 1) { toolbar_button toolbar_buttonsindex; if ((Browser.ContainsClass(toolbar_button.className, ww_skin_toolbar_button_left)) || (Browser.ContainsClass(toolbar_button.className, ww_skin_toolbar_button_center)) || (Browser.ContainsClass(toolbar_button.className, ww_skin_toolbar_button_right))) { if (left_button undefined) { left_button toolbar_button; } right_button toolbar_button; } } if (left_button ! undefined) { if (Connect.layout_wide) { left_button.className Browser.AddClass(left_button.className, ww_skin_toolbar_left_background); } else { left_button.className Browser.RemoveClass(left_button.className, ww_skin_toolbar_left_background); } } if (right_button ! undefined) { if (Connect.layout_wide) { right_button.className Browser.AddClass(right_button.className, ww_skin_toolbar_right_background); } else { right_button.className Browser.RemoveClass(right_button.className, ww_skin_toolbar_right_background); } } // Update side panel layout // if (Connect.Panel.Visible()) { // Adjust layout // if ((!Connect.layout_initialized || previous_layout_wide) && !Connect.layout_wide && Connect.Panel.display_as_sidebar) { Connect.Panel.Hide(); } } else { // Display default side panel // if ((!Connect.panel_changing) && (!Connect.Panel.show_inprogress)) { if ((Connect.layout_wide) && (Connect.sidebar_auto_display) && (Connect.sidebar_behavior ! undefined)) { Connect.button_behaviorsConnect.sidebar_behavior(); } } } // Initialized layout // Connect.layout_initialized true;};Connect.HandleToolbarButtonForBrowserSize function (param_index, param_show) { use strict; var done, button_behavior, toolbar_button, browser_widthheight, toolbar_table_element, toolbar_table_widthheight; done false; // Possible button to show/hide // button_behavior Connect.button_degradation_orderparam_index; toolbar_button Connect.buttonsbutton_behavior; if (toolbar_button ! undefined) { // Show/hide // if (param_show) { toolbar_button.style.display inline-block; } else { toolbar_button.style.display none; } // Keep change? // browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); toolbar_table_element Browser.FirstChildElementWithTagName(Connect.toolbar_div, table); toolbar_table_widthheight Browser.GetElementWidthHeight(toolbar_table_element); if (param_show) { if (toolbar_table_widthheight.width > (browser_widthheight.width + 1 - Connect.layout_current_offset)) { // Revert change // toolbar_button.style.display none; done true; } } else { if (toolbar_table_widthheight.width (browser_widthheight.width + 1 - Connect.layout_current_offset)) { // Met the goal size // done true; } } } return done;};Connect.AdjustToolbarForBrowserSize function () { use strict; var browser_widthheight, toolbar_table_element, toolbar_table_widthheight, show, index, done; // Show/hide non-critical toolbar buttons based on available space // browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); toolbar_table_element Browser.FirstChildElementWithTagName(Connect.toolbar_div, table); toolbar_table_widthheight Browser.GetElementWidthHeight(toolbar_table_element); show (toolbar_table_widthheight.width (browser_widthheight.width + 1 - Connect.layout_current_offset)); if (show) { // Show buttons in reverse order // for (index Connect.button_degradation_order.length - 1; index > 0; index - 1) { done Connect.HandleToolbarButtonForBrowserSize(index, show); if (done) { break; } } } else { // Hide buttons in default order // for (index 0; index Connect.button_degradation_order.length; index + 1) { done Connect.HandleToolbarButtonForBrowserSize(index, show); if (done) { break; } } }};Connect.AdjustPageScrolling function () { use strict; var navigation_width_offset, browser_widthheight, target_page_width, data, page_document, max_width, height; // Page visible? // if (Connect.layout_wide || (Connect.layout_tall) || (!Connect.Panel.Visible())) { // Determine taget page width // navigation_width_offset 0; if (Connect.layout_wide && Connect.Panel.Visible() && Connect.Panel.display_as_sidebar) { navigation_width_offset Connect.navigation_width; } browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); target_page_width browser_widthheight.width - navigation_width_offset - Connect.layout_current_offset; // Parcel page? // if (Connect.page_info ! undefined) { // Clear fallback, if present // Connect.container_div.className Browser.RemoveClass(Connect.container_div.className, unknown_page); // Set max width for page // data { action: page_set_max_width, max_width: String(target_page_width) + px, overflow: (Connect.layout_wide && Connect.scrolling_supported) ? visible : auto }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); } else { if (Connect.scrolling_supported) { // Fallback and use scrollbars (risks wasting space on mobile devices) // Connect.page_div.style.height ; Connect.container_div.className Browser.AddClass(Connect.container_div.className, unknown_page); } else { // Try to update the frame directly // try { // Set max width for page (minus a couple of pixels) // page_document Browser.GetDocument(Connect.page_iframe); max_width String(target_page_width) + px; if (page_document.body.style.maxWidth ! max_width) { page_document.body.style.maxWidth max_width; } // Set content height // Connect_Window.setTimeout(Connect.AdjustPageScrolling_Height, 1); } catch (ignore) { if (Connect.layout_tall) { // Clear page height and let scrollbars do their thing // Connect.page_div.style.height ; } else { // Set to browser height and let scrollbars do their thing // height String(Connect.GuessPageHeight()) + px; if (Connect.page_div.style.height ! height) { Connect.page_div.style.height height; } } // Notify page resize complete // data { action: resize_complete }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); } } } }};Connect.AdjustPageScrolling_Height function () { use strict; var page_widthheight, data; // Set content height // page_widthheight Browser.GetIFrameContentWidthHeight(Connect.page_iframe); Connect.page_div.style.height String(page_widthheight.height + Connect.layout_height_tolerance) + px; // Notify page resize complete // data { action: resize_complete }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window);};Connect.AdjustForContentSize function () { use strict; // Halt adjustment requests // if (Connect.adjust_for_content_size_timeout ! null) { Connect_Window.clearTimeout(Connect.adjust_for_content_size_timeout); Connect.adjust_for_content_size_timeout null; } // Serialize adjustments // if (!Connect.adjust_for_content_size_inprogress) { Connect.adjust_for_content_size_inprogress true; Connect_Window.setTimeout(function () { // Adjust navigation based on available space // Connect.AdjustLayoutForBrowserSize(); Connect_Window.setTimeout(function () { // Adjust toolbar // Connect.AdjustToolbarForBrowserSize(); Connect_Window.setTimeout(function () { // Adjust page scrolling // Connect.AdjustPageScrolling(); Connect.adjust_for_content_size_inprogress false; // Workaround Google Chrome issues // Connect.page_iframe.style.display block; Connect.page_iframe.style.visibility inherit; Connect.page_iframe.style.visibility visible; }, 1); }, 1); }, 1); }};Connect.OnResize function () { use strict; // Adjust for content size // if (Connect.adjust_for_content_size_timeout ! null) { Connect_Window.clearTimeout(Connect.adjust_for_content_size_timeout); } Connect.adjust_for_content_size_timeout Connect_Window.setTimeout(Connect.AdjustForContentSize, 100);};Connect.Parcels_AddData function (param_entry, param_ajax) { use strict; var parcel_div, parcel_context_and_id, parcel_id, parcel_toc_div_id, parcel_toc_div, parcel_toc_ul, toc_layout_li, level_offset, parcel_data_div_id, parcel_data_div; // Access parcel // parcel_div Connect_Window.document.createElement(div); parcel_div.style.visibility hidden; parcel_div.innerHTML param_ajax.responseText; Connect_Window.document.body.appendChild(parcel_div); // Add to collection of valid parcels // parcel_context_and_id param_entry.id.split(:); parcel_id parcel_context_and_id1; // TOC // parcel_toc_div_id toc: + parcel_id; parcel_toc_div Connect_Window.document.getElementById(parcel_toc_div_id); if (parcel_toc_div ! null) { parcel_toc_ul Browser.FirstChildElementWithTagName(parcel_toc_div, ul); if (parcel_toc_ul ! null) { // Extract TOC data // if (Connect.parcel_ids.length 1) { // Suppress parcel (group) folder // toc_layout_li param_entry.parentNode.parentNode.parentNode.parentNode; } else { // Preserve parcel (group) folder // toc_layout_li param_entry.parentNode.parentNode; } // Ensure TOC data initially collapsed when appended // parcel_toc_ul.className ww_skin_toc_container_closed; toc_layout_li.appendChild(parcel_toc_ul); // Configure TOC levels // if (Connect.parcel_ids.length 1) { Connect.ConfigureTOCLevels(Connect.toc_div, 0); } else { level_offset Connect.DetermineTOCLevel(Connect.toc_div, toc_layout_li) - 1; Connect.ConfigureTOCLevels(toc_layout_li, level_offset); } } } // Data // parcel_data_div_id data: + parcel_id; parcel_data_div Connect_Window.document.getElementById(parcel_data_div_id); if (parcel_data_div ! null) { Connect.parcels_div.appendChild(parcel_data_div); } // Remove parcel data // Connect_Window.document.body.removeChild(parcel_div); // Disable parcel link // if (Connect.parcel_ids.length 1) { param_entry.parentNode.parentNode.parentNode.parentNode.removeChild(param_entry.parentNode.parentNode.parentNode); } else { Browser.RemoveAttribute(param_entry, href, ); } // Update bridge links // Connect.link_bridge.Update(); // Update prev/next // Connect.UpdatePrevNext();};Connect.Parcels_DetermineRequiredAndRemaining function () { use strict; var result, context_signature, context_and_topic, topic_index, page_signature, page_base_relative_url, index, parcel_anchor, required_parcel_anchor; result {required: , remaining: }; // Determine requested page or context signature // context_signature null; if (Connect_Window.location.hash.indexOf(#context/) 0) { // Context/topic requested // context_and_topic Connect_Window.location.hash.substring(9); topic_index context_and_topic.indexOf(/); context_signature context_and_topic.substring(0, topic_index) + :; } page_signature null; if (Connect_Window.location.hash.indexOf(#page/) 0) { page_base_relative_url Connect_Window.location.hash.substring(6); // Ignore top-level files // if ((page_base_relative_url.indexOf(/) > 0) || (page_base_relative_url.indexOf(%2f) > 0) || (page_base_relative_url.indexOf(%2F) > 0)) { // Build secure URI // page_base_relative_url decodeURIComponent(page_base_relative_url); page_base_relative_url page_base_relative_url.replace(/\\>:;|%5C|%3C|%3E|%3A|%3B|%22/gi, ); page_signature page_base_relative_url.split(/)0 + .; } } // Check parcel anchors for a match against context or page signature // for (index 0; index Connect.parcel_anchors.length; index + 1) { parcel_anchor Connect.parcel_anchorsindex; // Required parcel? // required_parcel_anchor false; if (index 0) { // Always load first parcel // required_parcel_anchor true; } else if ((context_signature ! null) && (parcel_anchor.id.indexOf(context_signature) 0)) { // Captures exactly what we need // required_parcel_anchor true; } else if ((page_signature ! null) && (parcel_anchor.href.indexOf(page_signature) > 0)) { // May capture more than we need // required_parcel_anchor true; } // Assign parcel // if (required_parcel_anchor) { result.required.push(parcel_anchor); } else { result.remaining.push(parcel_anchor); } } return result;};Connect.Parcels_Load function () { use strict; var required_and_remaining_parcel_anchors, ajaxdata; // Reset progress // Connect.progress.Reset(); Connect.progress.Show(); // Configure parcel TOC levels // Connect.ConfigureTOCLevels(Connect.toc_div, 0); // Determine required and remaining parcels // required_and_remaining_parcel_anchors Connect.Parcels_DetermineRequiredAndRemaining(); // Load required parcels // ajaxdata new AJAXData_Object(required_and_remaining_parcel_anchors.required, function (param_entry) { return param_entry.href; }, function (param_percent) { Connect.progress.Update(param_percent); }, Connect.Parcels_AddData, function () { var buttons_to_remove, button_to_remove, ie_match, presentation_div_scroll_position, toolbar_table_element, toolbar_table_widthheight, css_rules_index, css_rule; // Parcels loaded! // Connect.parcels_loaded_initial true; // Intercept toolbar links // buttons_to_remove ; Browser.ApplyToChildElementsWithTagName(Connect.toolbar_div, a, function (param_link) { var match, button_key, button_span, keep; param_link.onclick Connect.ToolbarLink; // Track buttons // match param_link.className.match(Connect.button_behavior_expression); if (match ! null) { button_key match0; button_span Browser.FindParentWithTagName(param_link, span); if (button_span ! null) { // Keep button? // keep true; if (Connect_Window.document.location.protocol file:) { if (button_key ww_behavior_globe) { keep false; } } // Process button // if (keep) { Connect.buttonsbutton_key button_span; // Initialize sidebar behavior // if ((Connect.sidebar_behavior undefined) && ((button_key ww_behavior_toc) || (button_key ww_behavior_index))) { Connect.sidebar_behavior button_key; } } else { buttons_to_removebuttons_to_remove.length button_span; } } } }); // Remove buttons // while (buttons_to_remove.length > 0) { button_to_remove buttons_to_remove.shift(); if ((button_to_remove.parentNode ! undefined) && (button_to_remove.parentNode ! null)) { button_to_remove.parentNode.removeChild(button_to_remove); } } // Handle toolbar search // ie_match Connect_Window.navigator.userAgent.match(/MSIE (\d+)\.\d+;/); if ((ie_match null) || ((ie_match.length > 1) && (parseInt(ie_match1, 10) > 7))) { // Use toolbar search form // Browser.ApplyToChildElementsWithTagName(Connect.toolbar_div, form, function (param_form) { if (Browser.ContainsClass(param_form.className, ww_skin_search_form)) { param_form.onsubmit function () { Connect.Button_Search(); return false; }; } }); Browser.ApplyToChildElementsWithTagName(Connect.toolbar_div, input, function (param_input) { if (Browser.ContainsClass(param_input.className, ww_skin_search_input)) { Connect.search_input param_input; } }); } else { // Eliminate toolbar search form for IE // Browser.ApplyToChildElementsWithTagName(Connect.toolbar_div, form, function (param_form) { var parent_element, button_span; // Promote button to form peer // parent_element param_form.parentNode; button_span Connect.buttonsww_behavior_search; if (button_span ! undefined) { parent_element.insertBefore(button_span, param_form); } // Remove search form // parent_element.removeChild(param_form); }); Browser.ApplyToChildElementsWithTagName(Connect.toolbar_div, input, function (param_input) { var parent_element; parent_element param_input.parentNode; parent_element.removeChild(param_input); }); } // Display specified document // if (Connect_Window.location.hash.length > 0) { // Use hash // Connect.DisplaySpecifiedDocument(); } else { // Process default page load // Connect.DisplayPage(Connect.default_page_url, false); } // Check for hash changes // if ((onhashchange in Connect_Window) && (typeof Connect_Window.history.pushState function)) { // Events are so nice! // Connect_Window.onhashchange Connect.HashChanged; } else { // Poll // Connect.poll_onhashchange function () { Connect.HashChanged(); Connect_Window.setTimeout(Connect.poll_onhashchange, 100); }; Connect_Window.setTimeout(Connect.poll_onhashchange, 1); } // Done! // Connect.progress.Complete(); // Determine top and update CSS rules // presentation_div_scroll_position Browser.GetElementScrollPosition(Connect.presentation_div); toolbar_table_element Browser.FirstChildElementWithTagName(Connect.toolbar_div, table); toolbar_table_widthheight Browser.GetElementWidthHeight(toolbar_table_element); Connect.layout_top presentation_div_scroll_position.top + toolbar_table_widthheight.height; for (css_rules_index 0; css_rules_index Connect.layout_top_css_rules.length; css_rules_index + 1) { css_rule Connect.layout_top_css_rulescss_rules_index; css_rule.style.top String(Connect.layout_top) + px; } // Show // Connect.presentation_div_css_rule.style.visibility visible; // Load remaining parcels // if (required_and_remaining_parcel_anchors.remaining.length > 0) { Connect.parcels_remaining required_and_remaining_parcel_anchors.remaining; } else { // All parcels loaded // Connect.parcels_loaded_all true; } }); ajaxdata.Execute();};Connect.Parcels_LoadRemaining function (param_remaining_parcel_anchors) { use strict; var ajaxdata; ajaxdata new AJAXData_Object(param_remaining_parcel_anchors, function (param_entry) { return param_entry.href; }, function (param_percent) { }, Connect.Parcels_AddData, function () { // All parcels loaded // Connect.parcels_loaded_all true; } ); ajaxdata.Execute();};Connect.DisplaySpecifiedDocument function () { use strict; var specified_document_url, context_and_topic, topic_index, context, topic, parcel_id, topic_id, topic_anchor, search_words_parameter, search_words, page_base_relative_url, page_url; // Initialize hash tracking // Connect.hash Connect_Window.location.hash; // Start page load // specified_document_url Connect.default_page_url; if ((Connect_Window.location.hash ) || (Connect_Window.location.hash #)) { // Show default page // specified_document_url Connect.default_page_url; } else if (Connect_Window.location.hash.indexOf(#context/) 0) { // Context/topic requested // context_and_topic Connect_Window.location.hash.substring(9).split(/); if (context_and_topic.length 1) { // Resolve context by selecting by ID iteratively // topic context_and_topic0; if (topic.length > 0) { var context_ids Connect.parcel_context_ids; for (var context in context_ids) { var context_id context_idscontext; if (context_id ! undefined) { topic_id topic: + context_id + : + topic; topic_anchor Connect_Window.document.getElementById(topic_id); if (topic_anchor ! null) { // Found topic! // specified_document_url topic_anchor.href; break; } } } } } else if (context_and_topic.length 2) { // Resolve context // context context_and_topic0; topic context_and_topic1; if ((context.length > 0) && (topic.length > 0) && (typeof Connect.parcel_context_idscontext string)) { parcel_id Connect.parcel_context_idscontext; topic_id topic: + parcel_id + : + topic; topic_anchor Connect_Window.document.getElementById(topic_id); if (topic_anchor ! null) { // Found topic! // specified_document_url topic_anchor.href; } } } } else if (Connect_Window.location.hash.indexOf(#search/) 0) { // Search enabled? // if (Connect.search_div ! null) { // Page requested // search_words_parameter Connect_Window.location.hash.substring(8); search_words decodeURIComponent(search_words_parameter); // Initiate search // Connect.Button_Search(search_words); } } else if (Connect_Window.location.hash.indexOf(#toc/) 0) { // TOC enabled? // if (Connect.toc_div ! null) { // Display TOC // if ((!Connect.Panel.Visible()) || (Connect.sidebar_behavior ! ww_behavior_toc)) { Connect.sidebar_behavior ww_behavior_toc; Connect.Button_TOC(); } } } else if (Connect_Window.location.hash.indexOf(#index/) 0) { // Index enabled? // if (Connect.index_div ! null) { // Display index // if ((!Connect.Panel.Visible()) || (Connect.sidebar_behavior ! ww_behavior_index)) { Connect.sidebar_behavior ww_behavior_index; Connect.Button_Index(); } } } else if (Connect_Window.location.hash.indexOf(#page/) 0) { // Page requested // page_base_relative_url Connect_Window.location.hash.substring(6); // Ignore top-level files // if ((page_base_relative_url.indexOf(/) > 0) || (page_base_relative_url.indexOf(%2f) > 0) || (page_base_relative_url.indexOf(%2F) > 0)) { // Build secure URI // page_base_relative_url decodeURIComponent(page_base_relative_url); page_base_relative_url page_base_relative_url.replace(/\\>:;|%5C|%3C|%3E|%3A|%3B|%22/gi, ); page_url Connect.base_url + page_base_relative_url; specified_document_url page_url; } } // Display specified document // if (specified_document_url ! undefined) { Connect.DisplayPage(specified_document_url, false); }};Connect.HashChanged function () { use strict; if (Connect_Window.location.hash ! Connect.hash) { // Update document // Connect.DisplaySpecifiedDocument(); }};Connect.LocateTOCEntry function () { use strict; var result, page_id, possible_toc_entry_id, possible_toc_link, toc_page_element; result null; // See if page exists in TOC // if (Connect.page_info ! undefined) { page_id Connect.page_info.id; // Page ID defined? // if ((typeof page_id string) && (page_id.length > 0)) { // Try instant lookup with document hash // if ((Connect.page_info.hash.length > 1) && (Connect.page_info.hash.charAt(0) #)) { possible_toc_entry_id page_id + : + Connect.page_info.hash.substring(1); possible_toc_link Connect_Window.document.getElementById(possible_toc_entry_id); if (possible_toc_link ! null) { // TOC link located! // result Browser.FindParentWithTagName(possible_toc_link, li); } } // Result found? // if (result null) { // Check for page ID in TOC // toc_page_element Connect_Window.document.getElementById(page_id); if (toc_page_element ! null) { // Found page! // result Browser.FindParentWithTagName(toc_page_element, li); } } } } return result;};Connect.DetermineTOCLevel function (param_container_element, param_ul) { use strict; var level, current_node; // Determine initial level // level 0; if (param_ul ! param_container_element) { level 1; } // Determine level // current_node param_ul.parentNode; while (current_node ! param_container_element) { if (current_node.nodeName.toLowerCase() ul) { level + 1; } current_node current_node.parentNode; } return level;};Connect.ConfigureTOCLevels function (param_container_element, param_level_offset) { use strict; var toc_layout_div; // Configure TOC levels // Browser.ApplyToChildElementsWithTagName(param_container_element, ul, function (param_ul) { var level, class_name; // Determine level // level param_level_offset + Connect.DetermineTOCLevel(param_container_element, param_ul); // Initialize open/close // class_name ww_skin_toc_level ww_skin_toc_level_ + level; if ((level 1) || (Browser.ContainsClass(param_ul.className, ww_skin_toc_container_open))) { class_name + ww_skin_toc_container_open; } else { class_name + ww_skin_toc_container_closed; } // Update class name // param_ul.className class_name; }); // Initialize open or closed based on entry state // toc_layout_div Browser.FirstChildElementWithTagName(param_container_element, div); if (toc_layout_div ! null) { if (Connect.TOCFolder_IsOpen(toc_layout_div)) { Connect.TOCFolder_Open(toc_layout_div); } else { Connect.TOCFolder_Close(toc_layout_div); } } // Track folder clicks // Browser.ApplyToChildElementsWithTagName(param_container_element, div, function (param_div) { if (Browser.ContainsClass(param_div.className, ww_skin_toc_entry)) { param_div.onclick Connect.TOCEntryClickHandler; Browser.ApplyToChildElementsWithTagName(param_div, span, function (param_span) { if (Browser.ContainsClass(param_span.className, ww_skin_toc_dropdown)) { param_span.onclick Connect.TOCDropdownClickHandler; } }); } });};Connect.UpdateBackToTop function (param_top) { use strict; if (Connect.back_to_top_element ! null) { if (param_top > 80) { Connect.back_to_top_element.className Browser.AddClass(Connect.back_to_top_element.className, back_to_top_show); } else { Connect.back_to_top_element.className Browser.RemoveClass(Connect.back_to_top_element.className, back_to_top_show); } }};Connect.HandleScrollForBackToTop function () { use strict; var scroll_position; scroll_position Browser.GetWindowScrollPosition(Connect_Window); Connect.UpdateBackToTop(scroll_position.top);};Connect.BackToTop function () { use strict; var data; // Scroll page to desired position // Connect_Window.scrollTo(0, 0); // Request page to scroll to the desired position // data { action: back_to_top }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window);};Connect.BackToTopLink function (param_event) { use strict; var event, result; // Access event // event param_event || window.event; // Cancel event bubbling // event.cancelBubble true; if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble true; } // Back to top // Connect.BackToTop(); // Prevent default link behavior // result false; return result;};Connect.ToolbarLink function (param_event) { use strict; var event, result; // Access event // event param_event || window.event; // Cancel event bubbling // event.cancelBubble true; if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble true; } // Process event // result Connect.HandleToolbarLink(this); return result;};Connect.TOCFindFirstValidLinkElement function (param_li_element) { use strict; var valid_link_element, div_element, link_element, ul_element, li_element; // Initialize return value // valid_link_element null; // Check existing entry // div_element Browser.FirstChildElementWithTagName(param_li_element, div); if (div_element ! null) { link_element Browser.FirstChildElementWithTagName(div_element, a); if ((link_element ! null) && (link_element.href ! )) { valid_link_element link_element; } } // Anything found? // if (valid_link_element null) { // Check nested list // ul_element Browser.FirstChildElementWithTagName(param_li_element, ul); if (ul_element ! null) { li_element Browser.FirstChildElementWithTagName(ul_element, li); if (li_element ! null) { valid_link_element Connect.TOCFindFirstValidLinkElement(li_element); } // Try next entry? // if (valid_link_element null) { li_element Browser.NextSiblingElementWithTagName(li_element, li); while ((valid_link_element null) && (li_element ! null)) { valid_link_element Connect.TOCFindFirstValidLinkElement(li_element); li_element Browser.NextSiblingElementWithTagName(li_element, li); } } } } return valid_link_element;};Connect.TOCLinkProcessor function (param_link) { use strict; var result; result true; // Process link // if ((param_link ! null) && (param_link.href ! )) { if ((param_link.className.length 0) && (Browser.ContainsClass(param_link.parentNode.className, ww_skin_toc_folder))) { // Unloaded parcel TOC link // result false; } else { result Connect.HandleInterceptLink(param_link, true); if (result false) { // Clean up folders? // if ((Connect.layout_wide) && (Connect.Panel.display_as_sidebar)) { // Keep the panel active! // Connect.toc_cleanup_folders false; } } } } return result;};Connect.TOCEntryClickHandler function (param_event) { use strict; var result, event, child_link, toc_li_element; result true; // Access event // event param_event || window.event; // Cancel event bubbling // event.cancelBubble true; if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble true; } // Clicked folder? // child_link null; if (Browser.ContainsClass(this.className, ww_skin_toc_folder)) { // Toggle open/closed // Connect.TOCFolder_Toggle(this); // Opened folder? // if (Connect.TOCFolder_IsOpen(this)) { // Locate valid child link? // toc_li_element Browser.FindParentWithTagName(this, li); if (toc_li_element ! null) { child_link Connect.TOCFindFirstValidLinkElement(toc_li_element); } } result false; } else { // Access child link // child_link Browser.FirstChildElementWithTagName(this, a); } // Process child link // result Connect.TOCLinkProcessor(child_link); return result;};Connect.TOCDropdownClickHandler function (param_event) { use strict; var result, event, parent_div; result true; // Access event // event param_event || window.event; // Cancel event bubbling // event.cancelBubble true; if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble true; } // Clicked folder? // parent_div Browser.FindParentWithTagName(this, div); if ((parent_div ! null) && (Browser.ContainsClass(parent_div.className, ww_skin_toc_folder))) { // Toggle open/closed // Connect.TOCFolder_Toggle(parent_div); result false; } return result;};Connect.IndexLink function (param_event) { use strict; var result, event, hash_index, see_also_id, index_entry; result false; // Access event // event param_event || window.event; // Cancel event bubbling // event.cancelBubble true; if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble true; } // See/See Also link? // if (this.rel.toLowerCase() see) { hash_index this.href.indexOf(#); if (hash_index > 0) { see_also_id this.href.substring(hash_index + 1); index_entry Connect_Window.document.getElementById(see_also_id); if (index_entry ! null) { // Scroll to Index position // Connect.ScrollToPanelElement(index_entry); } } result false; } else { // Document link // result Connect.HandleInterceptLink(this, true); } return result;};Connect.TOC_ElementKey function (param_element) { use strict; var element_key, element_in_path, position, sibling; // Build key // element_key ; element_in_path param_element; while ((element_in_path ! undefined) && (element_in_path ! null) && ((typeof element_in_path.id ! string) || (element_in_path.id.length 0))) { position 0; sibling element_in_path; while (sibling ! null) { position + 1; sibling sibling.previousSibling; } element_key element_in_path.nodeName + : + position + : + element_key; element_in_path element_in_path.parentNode; } if ((element_in_path ! undefined) && (element_in_path ! null)) { element_key element_in_path.id + : + element_key; } return element_key;};Connect.TOC_RecordClassState function (param_element) { use strict; var element_key; // Track original class info if enabled // if (Connect.toc_class_states ! null) { // Build key // element_key Connect.TOC_ElementKey(param_element); // Already tracking? // if (typeof Connect.toc_class_stateselement_key ! object) { Connect.toc_class_stateselement_key { element: param_element, className: param_element.className}; } }};Connect.TOC_RestoreClassStates function (param_folder_exceptions) { use strict; var element_key, preserved_toc_class_states, entry_state; if (Connect.toc_class_states ! null) { preserved_toc_class_states {}; for (element_key in Connect.toc_class_states) { if (typeof Connect.toc_class_stateselement_key object) { entry_state Connect.toc_class_stateselement_key; entry_state.element.className entry_state.className; // Keep folder open? // if (Browser.ContainsClass(entry_state.className, ww_skin_toc_folder)) { if ((param_folder_exceptions ! undefined) && (typeof param_folder_exceptionselement_key boolean)) { // Keep folder open // preserved_toc_class_stateselement_key entry_state; } else { // Collapse folder // Connect.TOCFolder_Close(entry_state.element); } } } } // Reset tracked states // Connect.toc_class_states preserved_toc_class_states; }};Connect.TOCFolder_IsOpen function (param_entry_div) { use strict; var result, child_span; // Initialize return value // result false; if (Browser.ContainsClass(param_entry_div.className, ww_skin_toc_folder)) { child_span Browser.FirstChildElementWithTagName(param_entry_div, span); if (child_span ! null) { result Browser.ContainsClass(child_span.className, ww_skin_toc_dropdown_open); } } return result;};Connect.TOCFolder_Open function (param_entry_div) { use strict; var child_span, sibling_ul; if (Browser.ContainsClass(param_entry_div.className, ww_skin_toc_folder)) { Connect.TOC_RecordClassState(param_entry_div); child_span Browser.FirstChildElementWithTagName(param_entry_div, span); if (child_span ! null) { child_span.className Browser.ReplaceClass(child_span.className, ww_skin_toc_dropdown_closed, ww_skin_toc_dropdown_open); } sibling_ul Browser.NextSiblingElementWithTagName(param_entry_div, ul); if (sibling_ul ! null) { sibling_ul.className Browser.ReplaceClass(sibling_ul.className, ww_skin_toc_container_closed, ww_skin_toc_container_open); } }};Connect.TOCFolder_Close function (param_entry_div) { use strict; var child_span, sibling_ul; if (Browser.ContainsClass(param_entry_div.className, ww_skin_toc_folder)) { Connect.TOC_RecordClassState(param_entry_div); child_span Browser.FirstChildElementWithTagName(param_entry_div, span); if (child_span ! null) { child_span.className Browser.ReplaceClass(child_span.className, ww_skin_toc_dropdown_open, ww_skin_toc_dropdown_closed); } sibling_ul Browser.NextSiblingElementWithTagName(param_entry_div, ul); if (sibling_ul ! null) { sibling_ul.className Browser.ReplaceClass(sibling_ul.className, ww_skin_toc_container_open, ww_skin_toc_container_closed); } }};Connect.TOCFolder_Toggle function (param_entry_div) { use strict; if (Browser.ContainsClass(param_entry_div.className, ww_skin_toc_folder)) { if (Connect.TOCFolder_IsOpen(param_entry_div)) { Connect.TOCFolder_Close(param_entry_div); } else { Connect.TOCFolder_Open(param_entry_div); } }};Connect.DisplayPage function (param_href, param_hide_panel) { use strict; // Hide panel // if (param_hide_panel) { if (Connect.Panel.Visible() && ((!Connect.layout_wide) || (!Connect.Panel.display_as_sidebar))) { Connect.Panel.Hide(); } } Connect_Window.setTimeout(function () { var target_href, desired_hash, same_document, data, guessed_height; // Ensure target href is valid // target_href param_href; if ((target_href undefined) || (target_href null) || (target_href.length 0)) { target_href Connect.splash_page_url; } if (Connect.page_info ! undefined) { // Determine desired hash // desired_hash ; if (target_href.indexOf(#) ! -1) { desired_hash target_href.substring(target_href.indexOf(#)); } // Load new document or update hash // same_document Browser.SameDocument(Connect.page_info.href, target_href); if (same_document) { // Update hash // data { action: update_hash, hash: desired_hash }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); // Clear target_href // target_href undefined; } } // Display target href if not already handled // if (target_href ! undefined) { // Reset back to top // if (Connect.back_to_top_element ! null) { Connect.back_to_top_element.className Browser.RemoveClass(Connect.back_to_top_element.className, back_to_top_show); } if (!Connect.layout_wide) { if (Connect.layout_tall) { // Clear page height and let scrollbars do their thing // Connect.page_div.style.height ; } else { // Guess page height // guessed_height String(Connect.GuessPageHeight() - Connect.layout_height_tolerance) + px; if (Connect.page_div.style.height ! guessed_height) { Connect.page_div.style.height guessed_height; } } } // Display document as page // if ((onhashchange in Connect_Window) && (typeof Connect_Window.history.pushState function)) { Connect.page_iframe.contentWindow.location.replace(target_href); } else { Connect.page_iframe.contentWindow.location.assign(target_href); } // Workaround Google Chrome issues // Connect.page_iframe.style.display block; Connect.page_iframe.style.visibility inherit; Connect.page_iframe.style.visibility visible; } }, 1);};Connect.InterceptLink function (param_event) { use strict; var result; result Connect.HandleInterceptLink(this, false); return result;};Connect.HandleToolbarLink function (param_link) { use strict; var result, behavior; result true; if (typeof param_link.className string) { // Determine handlers for button // for (behavior in Connect.button_behaviors) { if (typeof Connect.button_behaviorsbehavior function) { if (Browser.ContainsClass(param_link.className, behavior)) { Connect.button_behaviorsbehavior(); result false; break; } } } } return result;};Connect.HandleInterceptLink function (param_link, param_hide_panel) { use strict; var result; result Connect.HandleToolbarLink(param_link); if (result true) { // Standard link // if ((param_link.href ! undefined) && (param_link.href ! null) && (param_link.href ! )) { if ((param_link.target undefined) || (param_link.target null) || (param_link.target ) || (param_link.target connect_page)) { // Use existing page iframe // Connect.DisplayPage(param_link.href, param_hide_panel); } else { // Display in requested window // Connect_Window.open(param_link.href, param_link.target); } // Prevent default link behavior // result false; } } return result;};Connect.DocumentBookkeeping function (param_same_document) { use strict; var cleanup_folders, relative_path, page_hash, page_href, data, behavior; // Handle TOC sync // cleanup_folders Connect.toc_cleanup_folders; Connect.toc_cleanup_folders true; // Determine relative path // if (Connect.page_info ! undefined) { // Update hash // if (Browser.SameHierarchy(Connect.base_url, Connect.page_info.href)) { relative_path Browser.RelativePath(Connect.base_url, Connect.page_info.href); page_hash #page/ + encodeURIComponent(relative_path); // Splash page? // if (Browser.SameDocument(Connect.default_page_url, Connect.page_info.href)) { if ((Connect_Window.location.hash page_hash) || (Connect_Window.location.hash decodeURIComponent(page_hash)) || (Connect_Window.location.hash )) { // No change! // page_hash Connect_Window.location.hash; } } // Update hash // if ((Connect_Window.location.hash ! page_hash) && (Connect_Window.location.hash ! decodeURIComponent(page_hash))) { // Changing from #context to #page? // if (Connect_Window.location.hash.indexOf(#context/) 0) { if ((onhashchange in Connect_Window) && (typeof Connect_Window.history.replaceState function)) { try { // Trap Chrome pushState() exception on file:// URLs // Connect_Window.history.replaceState({}, , page_hash); } catch (e) { // Ignore // Connect_Window.location.replace(page_hash); } } else { Connect_Window.location.replace(page_hash); } } else { if ((onhashchange in Connect_Window) && (typeof Connect_Window.history.pushState function)) { try { // Trap Chrome pushState() exception on file:// URLs // Connect_Window.history.pushState({}, , page_hash); } catch (e) { // Ignore // Connect_Window.location.assign(page_hash); } } else { Connect_Window.location.replace(page_hash); } } } } // Track current hash // Connect.hash Connect_Window.location.hash; // Workaround Google Chrome security issue // if (Connect.Panel.Visible()) { // Scroll to top if necessary // if (Connect.page_info.hash ) { Connect_Window.scrollTo(0, 0); } // Sync TOC // Connect.SyncTOC(cleanup_folders); } // Highlight search words // if (Connect.page_cargo.search_query ! undefined) { data { action: page_search_query_highlight, search_query: Connect.page_cargo.search_query, search_synonyms: Connect.page_cargo.search_synonyms }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); // Reset page cargo // Connect.page_cargo {}; } // Adjust for content size // if (param_same_document) { Connect.AdjustLayoutForBrowserSize(); } else { Connect.OnResize(); // Update anchors // data { action: update_anchors, target: Connect_Window.name, base_url: Connect.base_url, parcel_prefixes: Connect.parcel_prefixes, button_behaviors: {}, email: Connect.email, email_message: Connect.email_message, tolerance: Math.floor(Connect.layout_height_tolerance * 0.25) }; for (behavior in Connect.button_behaviors) { if (typeof Connect.button_behaviorsbehavior function) { data.button_behaviorsbehavior true; } } Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); } }};Connect.Socialize function () { use strict; var data; // Socialize // data { action: page_socialize, disqus_id: Connect.disqus_id }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window);};Connect.Globalize function () { use strict; var data; // Google Translation // if (Connect.globe_enabled) { data { action: page_globalize }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); }};Connect.SearchQueryHighlight function (param_search_query, param_search_synonyms) { use strict; var data; data { action: page_search_query_highlight, search_query: param_search_query, search_synonyms: param_search_synonyms }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window);};Connect.AdjustForSearchContentSize function () { use strict; var search_div_height, data; // Guess page height if not already set // search_div_height parseInt(Connect.search_div.style.height, 10); if (isNaN(search_div_height)) { Connect.search_div.style.height String(Connect.GuessPageHeight() - Connect.layout_height_tolerance) + px; } data { action: search_get_page_size, stage: width }; Message.Post(Connect.search_iframe.contentWindow, data, Connect_Window);};Connect.EnableDisableButton function (param_button_behavior, param_ccs_class_prefix, param_enable) { use strict; var button_span, updated_className; button_span Connect.buttonsparam_button_behavior; if (button_span ! undefined) { // Update class name // updated_className button_span.className; updated_className Browser.RemoveClass(updated_className, ww_skin_toolbar_button_enabled); updated_className Browser.RemoveClass(updated_className, ww_skin_toolbar_button_disabled); if (param_enable) { // Enable // updated_className Browser.AddClass(updated_className, ww_skin_toolbar_button_enabled); } else { // Disable // updated_className Browser.AddClass(updated_className, ww_skin_toolbar_button_disabled); } button_span.className updated_className; }};Connect.Listen function (param_event) { use strict; // Initialize listen dispatcher // if (Connect.dispatch_listen undefined) { Connect.dispatch_listen { page_load: function (param_data) { Connect.page_info param_data; delete Connect.page_infoaction; Connect.OnDocumentLoad(); Connect.ignore_page_load true; }, page_unload: function (param_data) { Connect.page_info undefined; Connect.OnDocumentUnload(); }, page_size: function (param_data) { var data, height; if (Connect.page_info ! undefined) { // Clear fallback, if present // Connect.container_div.className Browser.RemoveClass(Connect.container_div.className, unknown_page); // Update dimensions // Connect.page_info.dimensions param_data.dimensions; // Handle resize // if (param_data.stage width) { // Update height // data { action: get_page_size, stage: height }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); } else if (param_data.stage height) { // Either defer to scrolling or set height // if ((Connect.layout_wide) && (Connect.scrolling_supported)) { // Clear height and allow scroll bars to do their thing // Connect.page_div.style.height ; } else { if (!Connect.layout_tall) { // Set content height // height String(Connect.page_info.dimensions.height + Connect.layout_height_tolerance) + px; if (Connect.page_div.style.height ! height) { Connect.page_div.style.height height; } } } // Notify page resize complete // data { action: resize_complete }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); } } }, page_bookkeeping: function (param_data) { // Document bookkeeping // if (param_data.href ! undefined) { Connect.page_info.href param_data.href; } if (param_data.hash ! undefined) { Connect.page_info.hash param_data.hash; } Connect.DocumentBookkeeping(true); }, notify_page_max_width_set: function (param_data) { var data; // Adjust for content width // data { action: get_page_size, stage: width }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); }, page_content_changed: function (param_data) { // Initiate resize operation // Connect.OnResize(); }, page_scroll_view: function (param_data) { var scroll_position, top, browser_widthheight; // Update scroll location to display page data // scroll_position Browser.GetElementScrollPosition(Connect.page_iframe); // Determine final scroll position and scroll // top scroll_position.top + param_data.top; browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); if (top (browser_widthheight.height / 2)) { top 0; } Connect_Window.scrollTo(0, top); }, update_scroll_position: function (param_data) { Connect.UpdateBackToTop(param_data.top); }, back_to_top: function (param_data) { if (!Connect.layout_wide) { Connect_Window.scrollTo(0, 0); } }, handle_toolbar_link : function (param_data) { // Invoke toolbar link // Connect.button_behaviorsparam_data.behavior(); }, display_link: function (param_data) { if ((param_data.target undefined) || (param_data.target null) || (param_data.target ) || param_data.target _self || (param_data.target connect_page)) { // Use existing page iframe // Connect.DisplayPage(param_data.href, false); } else { // Display in requested window // Connect_Window.open(param_data.href, param_data.target); } }, display_image: function (param_data) { Connect.DisplayFullsizeImage(param_data); }, search_page_load: function (param_data) { var data; // Record page info // Connect.search_page_info param_data; delete Connect.search_page_infoaction; // Send search file list // data { action: search_connect_info, target: Connect_Window.name, base_url: Connect.base_url, parcel_prefixes: Connect.parcel_prefixes, parcel_sx: Connect.parcel_sx }; Message.Post(Connect.search_iframe.contentWindow, data, Connect_Window); }, search_ready: function (param_data) { var data; // Search panel displayed? // if (Connect.search_div.parentNode ! Connect.panels_div) { // Execute search // data { action: search_execute, query: Connect.search_query }; Message.Post(Connect.search_iframe.contentWindow, data, Connect_Window); } }, search_complete: function (param_data) { // Update search words // Connect.search_query param_data.query; Connect.search_synonyms param_data.synonyms; // Update dimensions // Connect.search_page_info.dimensions param_data.dimensions; // Adjust layout for search content // Connect.AdjustForSearchContentSize(); }, search_page_size: function (param_data) { var data; // Update dimensions // Connect.search_page_info.dimensions param_data.dimensions; // Handle resize // if (param_data.stage width) { // Update height // data { action: search_get_page_size, stage: height }; Message.Post(Connect.search_iframe.contentWindow, data, Connect_Window); } else if (param_data.stage height) { // Set content height // Connect.search_div.style.height String(Connect.search_page_info.dimensions.height + Connect.layout_height_tolerance) + px; // Workaround Google Chrome refresh issue // Connect.search_iframe.style.height ; Connect.search_iframe.style.height 100%; } }, search_display_link: function (param_data) { // Track search words // Connect.page_cargo.search_href param_data.href; Connect.page_cargo.search_query Connect.search_query; Connect.page_cargo.search_synonyms Connect.search_synonyms; // Shutdown panel // Connect.Button_Search(); // Display specified page // if (param_data.href ! undefined) { Connect_Window.setTimeout(function () { Connect.DisplayPage(param_data.href, true); }, 10); } } }; } // Dispatch event // try { Connect.dispatch_listenparam_event.data.action(param_event.data); } catch (ignore) { // Keep on rolling // }};Connect.UpdateTitle function () { use strict; var title, page_document; // Determine title // title ; if (Connect.page_info ! undefined) { title Connect.page_info.title; } else { page_document Browser.GetDocument(Connect.page_iframe); if (page_document ! undefined) { title page_document.title; } } // Set title // Connect.SetTitle(title);};Connect.SetTitle function (param_title) { use strict; // Update window title // Connect_Window.document.title param_title;};Connect.UpdatePrevNext function () { use strict; var enable_button, prevnext_link; // Update prev/next // prevnext_link Connect.GetPrevNext(Prev); enable_button (prevnext_link ! undefined); Connect.EnableDisableButton(ww_behavior_prev, ww_skin_prev, enable_button); prevnext_link Connect.GetPrevNext(Next); enable_button (prevnext_link ! undefined); Connect.EnableDisableButton(ww_behavior_next, ww_skin_next, enable_button);};Connect.OnDocumentLoad function () { use strict; var enable_button; // Environment initialized? // if (Connect.ignore_page_load) { Connect.ignore_page_load false; } else { if (Connect.parcels_loaded_initial) { // Document bookkeeping // Connect.DocumentBookkeeping(false); // Update title // Connect.UpdateTitle(); // Update home // enable_button ((Connect.page_info undefined) || (!Browser.SameDocument(Connect.default_page_url, Connect.page_info.href))); Connect.EnableDisableButton(ww_behavior_home, ww_skin_home, enable_button); // Update prev/next // Connect.UpdatePrevNext(); // Socialize and Globalize // Connect_Window.setTimeout(function () { Connect.Socialize(); Connect.Globalize(); }, 1); // Double-check sizing // Connect.OnResize(); // Need to load remaining parcels? // if ((!Connect.parcels_loaded_all) && (!Connect.parcels_loading_remaining)) { // Complete parcel loading // Connect.parcels_loading_remaining true; Connect_Window.setTimeout(function () { Connect.Parcels_LoadRemaining(Connect.parcels_remaining); }, 100); } } }};Connect.OnDocumentUnload function () { use strict; Connect.UpdateTitle();};Connect.DisplayFullsizeImage function (param_image_data) { use strict; var display_in_lightbox, browser_widthheight, fullsize_image; // Always display images in lightbox? // display_in_lightbox Connect.lightbox_large_images; if (!display_in_lightbox) { // Retrieve width/height info // browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); // Enough room for lightbox? // if (((param_image_data.width + Connect.lightbox_min_pixel_margin) browser_widthheight.width) && ((param_image_data.height + Connect.lightbox_min_pixel_margin) browser_widthheight.height)) { display_in_lightbox true; } } // Display in lightbox? // if (display_in_lightbox) { // Create image to display // fullsize_image Connect_Window.document.createElement(img); Browser.SetAttribute(fullsize_image, width, param_image_data.width); Browser.SetAttribute(fullsize_image, height, param_image_data.height); Browser.SetAttribute(fullsize_image, src, param_image_data.src); // Display lightbox // Connect.Lightbox.Display( function (param_lightbox_frame, param_lightbox_content) { Browser.SetAttribute(param_lightbox_frame, style, height: + String(param_image_data.height + 2) + px); param_lightbox_content.innerHTML ; param_lightbox_content.appendChild(fullsize_image); }, function (param_lightbox_frame, param_lightbox_content) { param_lightbox_content.removeChild(fullsize_image); Browser.RemoveAttribute(param_lightbox_frame, style, ); } ); } else { // Replace displayed document // Connect.DisplayPage(param_image_data.href, false); }};Connect.ScrollToPanelElement function (param_element) { use strict; var browser_widthheight, panel_height, element_scroll_position, panel_75_height, panel_50_height, target_scroll_top, panel_frame_scroll_position; // Narrow or wide layout? // if ((Connect.layout_wide) || (Connect.layout_tall)) { // Scroll to element position // browser_widthheight Browser.GetBrowserWidthHeight(Connect_Window); panel_height browser_widthheight.height - Connect.layout_top; element_scroll_position Browser.GetElementScrollPosition(param_element, Connect.panel_frame_div); panel_75_height Math.floor(panel_height * 0.75); panel_50_height Math.floor(panel_height * 0.5); if ((element_scroll_position.top > Connect.panel_frame_div.scrollTop) && (element_scroll_position.top (Connect.panel_frame_div.scrollTop + panel_75_height))) { // Do nothing // target_scroll_top Connect.panel_frame_div.scrollTop; } else { if (element_scroll_position.top panel_75_height) { target_scroll_top 0; } else { target_scroll_top element_scroll_position.top - panel_50_height; } } Connect.panel_frame_div.scrollTop target_scroll_top; } else { panel_frame_scroll_position Browser.GetElementScrollPosition(Connect.panel_frame_div); element_scroll_position Browser.GetElementScrollPosition(param_element); Connect_Window.scrollTo( panel_frame_scroll_position.left + element_scroll_position.left, panel_frame_scroll_position.top + element_scroll_position.top ); }};Connect.SyncTOC function (param_cleanup_folders) { use strict; var entry_state, toc_entry, entry_div, folder_exceptions, parent_ul, parent_entry_div, button_span; // Clear highlight // if (Connect.toc_selected_entry_key ! undefined) { entry_state Connect.toc_class_statesConnect.toc_selected_entry_key; if (entry_state ! undefined) { entry_state.element.className entry_state.className; } Connect.toc_selected_entry_key undefined; } // Locate TOC entry // toc_entry Connect.LocateTOCEntry(); // Expand TOC for context // if (toc_entry ! null) { // Highlight entry // entry_div Browser.FirstChildElementWithTagName(toc_entry, div); if (entry_div ! null) { // Clean up folders? // if (param_cleanup_folders) { folder_exceptions {}; if (Browser.ContainsClass(entry_div.className, ww_skin_toc_folder)) { folder_exceptionsConnect.TOC_ElementKey(entry_div) true; } parent_ul Browser.FindParentWithTagName(entry_div, ul); while (parent_ul ! null) { parent_entry_div Browser.PreviousSiblingElementWithTagName(parent_ul, div); if (parent_entry_div ! null) { if (Browser.ContainsClass(parent_entry_div.className, ww_skin_toc_folder)) { folder_exceptionsConnect.TOC_ElementKey(parent_entry_div) true; } } parent_ul Browser.FindParentWithTagName(parent_ul, ul); } Connect.TOC_RestoreClassStates(folder_exceptions); } // Highlight // Connect.TOC_RecordClassState(entry_div); entry_div.className Browser.AddClass(entry_div.className, ww_skin_toc_entry_selected); Connect.toc_selected_entry_key Connect.TOC_ElementKey(entry_div); // Expand entry and parents // Connect.TOCFolder_Open(entry_div); parent_ul Browser.FindParentWithTagName(entry_div, ul); while (parent_ul ! null) { parent_entry_div Browser.PreviousSiblingElementWithTagName(parent_ul, div); if (parent_entry_div ! null) { Connect.TOCFolder_Open(parent_entry_div); } parent_ul Browser.FindParentWithTagName(parent_ul, ul); } // Scroll to TOC position if TOC displayed // button_span Connect.buttonsww_behavior_toc; if ((button_span ! undefined) && (Browser.ContainsClass(button_span.className, ww_skin_toolbar_background_selected))) { Connect.ScrollToPanelElement(toc_entry); } } }};Connect.Button_Home function () { use strict; // Panel visible? // if ((Connect.Panel.Visible()) && (!(Connect.Panel.display_as_sidebar))) { // Hide // Connect.Panel.Hide(); } // Go to default page // Connect.DisplayPage(Connect.default_page_url, true);};Connect.Button_TOC function () { use strict; var button_span; button_span Connect.buttonsww_behavior_toc; if (!Connect.Panel.Visible()) { // Enable sidebar auto display // Connect.sidebar_auto_display true; // Show // Connect.Panel.Display(true, function (param_window, param_panel_content) { // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_default, ww_skin_toolbar_background_selected); } // Sync TOC // if (Connect.Panel.Visible()) { Connect.SyncTOC(Connect.toc_cleanup_folders); } // On Stage // param_panel_content.appendChild(Connect.toc_div); // Retry Sync TOC if necessary // if (!Connect.Panel.Visible()) { Connect_Window.setTimeout(function () { Connect.SyncTOC(Connect.toc_cleanup_folders); }, 10); } }, function () { Connect.OnResize(); }, function (param_window, param_panel_content) { // Backstage // Connect.panels_div.appendChild(Connect.toc_div); // Update title // Connect.UpdateTitle(); // Restore class info // Connect.TOC_RestoreClassStates(); // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_selected, ww_skin_toolbar_background_default); } }); } else { // Panel currently displayed? // if ((button_span ! undefined) && (Browser.ContainsClass(button_span.className, ww_skin_toolbar_background_selected))) { // Disable sidebar auto display // Connect.sidebar_auto_display false; // Hide // Connect.Panel.Hide(); } else { // Hide current panel // Connect.panel_changing true; Connect.Panel.Hide(false); Connect.panel_changing false; // Show this panel // Connect.Button_TOC(); } }};Connect.Button_Index function () { use strict; var button_span; button_span Connect.buttonsww_behavior_index; if (!Connect.Panel.Visible()) { // Enable sidebar auto display // Connect.sidebar_auto_display true; // Show // Connect.Panel.Display(true, function (param_window, param_panel_content) { // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_default, ww_skin_toolbar_background_selected); } // On Stage // if (!Connect.parcel_ix_loaded) { if (Connect.parcel_ix_loading) { // Show progress // param_panel_content.appendChild(Connect.index_progress_div); Connect.index_progress.Show(); } else { // Show progress // Connect.index_progress.Reset(); param_panel_content.appendChild(Connect.index_progress_div); Connect.index_progress.Show(); // Initiate index load // Connect.parcel_ix_loading true; Connect.index_content_div.innerHTML ; Connect_Window.setTimeout(Connect.Index_Load, 1); } } else { // Show index // param_panel_content.appendChild(Connect.index_div); } }, function () { Connect.OnResize(); }, function (param_window, param_panel_content) { // Hide progress // Connect.index_progress.Hide(); Connect.panels_div.appendChild(Connect.index_progress_div); // Backstage // Connect.panels_div.appendChild(Connect.index_div); // Update title // Connect.UpdateTitle(); // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_selected, ww_skin_toolbar_background_default); } }); } else { // Panel currently displayed? // if ((button_span ! undefined) && (Browser.ContainsClass(button_span.className, ww_skin_toolbar_background_selected))) { // Disable sidebar auto display // Connect.sidebar_auto_display false; // Hide // Connect.Panel.Hide(); } else { // Hide current panel // Connect.panel_changing true; Connect.Panel.Hide(false); Connect.panel_changing false; // Show this panel // Connect.Button_Index(); } }};Connect.Index_Load function () { use strict; var index, parcel_id, parcel_entry_placeholder_div, ajaxdata; // All parcels loaded? // if (!Connect.parcels_loaded_all) { // Wait for all parcel data to be loaded // Connect_Window.setTimeout(Connect.Index_Load, 100); return; } // Prepare index for data load // for (index 0; index Connect.parcel_ids.length; index + 1) { parcel_id Connect.parcel_idsindex; // Emit index placeholders // parcel_entry_placeholder_div Connect_Window.document.createElement(div); parcel_entry_placeholder_div.id parcel_index: + parcel_id; parcel_entry_placeholder_div.className ww_skin_index_title; parcel_entry_placeholder_div.innerHTML Connect.parcel_titleparcel_id; Connect.index_content_div.appendChild(parcel_entry_placeholder_div); } // Load index data // ajaxdata new AJAXData_Object(Connect.parcel_ix, function (param_entry) { return param_entry.url; }, function (param_percent) { Connect.index_progress.Update(param_percent); }, function (param_entry, param_ajax) { var parcel_data, parcel_entry_div_id, parcel_entry_div, parcel_index_div_id, parcel_index_div; // Access parcel data // parcel_data Connect_Window.document.createElement(div); parcel_data.style.visibility hidden; parcel_data.innerHTML param_ajax.responseText; Connect_Window.document.body.appendChild(parcel_data); // Index // parcel_entry_div_id parcel_index: + param_entry.id; parcel_entry_div Connect_Window.document.getElementById(parcel_entry_div_id); if (parcel_entry_div ! null) { parcel_index_div_id index: + param_entry.id; parcel_index_div Connect_Window.document.getElementById(parcel_index_div_id); if ((parcel_index_div ! null) && (parcel_index_div.innerHTML.length > 0)) { if (parcel_entry_div.nextSibling ! null) { Connect.index_content_div.insertBefore(parcel_index_div, parcel_entry_div.nextSibling); } else { Connect.index_content_div.appendChild(parcel_index_div); } } else { Connect.index_content_div.removeChild(parcel_entry_div); } } // Remove parcel data // Connect_Window.document.body.removeChild(parcel_data); }, function () { var button_span; // Parcel indexes loaded! // Connect.parcel_ix_loaded true; // Intercept all clicks // Browser.ApplyToChildElementsWithTagName(Connect.index_div, a, function (param_link) { param_link.onclick Connect.IndexLink; }); // Done! // Connect.index_progress.Complete(); Connect.panels_div.appendChild(Connect.index_progress_div); // Panel currently displayed? // button_span Connect.buttonsww_behavior_index; if ((button_span ! undefined) && (Browser.ContainsClass(button_span.className, ww_skin_toolbar_background_selected))) { // On stage! // Connect.Panel.panel_content.appendChild(Connect.index_div); } }); ajaxdata.Execute();};Connect.Button_Search function (param_search_words) { use strict; var button_span; button_span Connect.buttonsww_behavior_search; if (!Connect.Panel.Visible()) { // Show // Connect.Panel.Display(false, function (param_window, param_panel_content) { var search_words, complete_display; // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_default, ww_skin_toolbar_background_selected); } // Set title // Connect.SetTitle(Search); // Get search words // search_words ; if ((param_search_words ! undefined) && (typeof param_search_words string)) { search_words param_search_words; } else { if (Connect.search_input ! null) { search_words Connect.search_input.value; } else { search_words Connect.search_query; } } // Update search words // Connect.search_query search_words; // On Stage // if (!Connect.parcels_loaded_all) { // Show progress // Connect.search_progress.Reset(); param_panel_content.appendChild(Connect.search_progress_div); Connect.search_progress.Show(); } // Define display completion handler // complete_display function () { var data; // Parcel data loaded? // if (!Connect.parcels_loaded_all) { // Retry in a bit // Connect_Window.setTimeout(complete_display, 100); return; } // Hide progress // Connect.search_progress.Hide(); Connect.panels_div.appendChild(Connect.search_progress_div); // Panel currently displayed? // if ((button_span ! undefined) && (Browser.ContainsClass(button_span.className, ww_skin_toolbar_background_selected))) { // Display search page // param_panel_content.appendChild(Connect.search_div); // Execute search // if (Connect.search_iframe.src ! Connect.search_page_url) { // Load page // Connect.search_iframe.src Connect.search_page_url; } else { // Search // if (Connect.search_query.length 0) { Connect.AdjustForSearchContentSize(); } else { data { action: search_execute, query: Connect.search_query }; Message.Post(Connect.search_iframe.contentWindow, data, Connect_Window); } } } }; // Complete display // complete_display(); }, function () { Connect.AdjustForSearchContentSize(); }, function (param_window, param_panel_content) { // Update search words // if (Connect.search_input ! null) { Connect.search_input.value Connect.search_query; } // Hide progress // Connect.search_progress.Hide(); Connect.panels_div.appendChild(Connect.search_progress_div); // Backstage // Connect.panels_div.appendChild(Connect.search_div); // Update title // Connect.UpdateTitle(); // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_selected, ww_skin_toolbar_background_default); } // Ensure layout updated // Connect_Window.setTimeout(function () { Connect.AdjustLayoutForBrowserSize(); }, 1); }); } else { // Panel currently displayed? // if ((button_span ! undefined) && (Browser.ContainsClass(button_span.className, ww_skin_toolbar_background_selected))) { // Hide // Connect.Panel.Hide(); } else { // Hide current panel // Connect.panel_changing true; Connect.Panel.Hide(false); Connect.panel_changing false; // Show this panel // Connect.Button_Search(param_search_words); } }};Connect.Button_Globe function () { use strict; var button_span, page_document; // Panel visible? // if ((Connect.Panel.Visible()) && (!(Connect.Panel.display_as_sidebar))) { // Hide // Connect.Panel.Hide(); } // Enabled? // button_span Connect.buttonsww_behavior_globe; if (!Connect.globe_enabled) { // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_default, ww_skin_toolbar_background_selected); } // Globalize // Connect.globe_enabled true; Connect_Window.setTimeout(Connect.Globalize, 1); } else { // Disable globalization // Connect.globe_enabled false; page_document Browser.GetDocument(Connect.page_iframe); if (page_document ! undefined) { Connect_Window.setTimeout(function () { page_document.location.reload(); }, 1); } // Highlight toolbar button // if (button_span ! undefined) { button_span.className Browser.ReplaceClass(button_span.className, ww_skin_toolbar_background_selected, ww_skin_toolbar_background_default); } }};Connect.GetPrevNext function (param_prevnext) { use strict; var result; if (Connect.page_info ! undefined) { result Connect.page_infoparam_prevnext; if (result undefined) { // Spanning parcels? // if (Connect.link_bridge.Get(param_prevnext, Connect.page_info.id) ! null) { result Connect.link_bridge.Get(param_prevnext, Connect.page_info.id); } } } return result;};Connect.GotoPrevNext function (param_prevnext) { use strict; var link_href; link_href Connect.GetPrevNext(param_prevnext); if (link_href ! undefined) { Connect.DisplayPage(link_href, true); }};Connect.Button_Previous function () { use strict; // Panel visible? // if ((Connect.Panel.Visible()) && (!(Connect.Panel.display_as_sidebar))) { // Hide // Connect.Panel.Hide(); } Connect.GotoPrevNext(Prev);};Connect.Button_Next function () { use strict; // Panel visible? // if ((Connect.Panel.Visible()) && (!(Connect.Panel.display_as_sidebar))) { // Hide // Connect.Panel.Hide(); } Connect.GotoPrevNext(Next);};Connect.Button_Email function () { use strict; var message, mailto; // Panel visible? // if ((Connect.Panel.Visible()) && (!(Connect.Panel.display_as_sidebar))) { // Hide // Connect.Panel.Hide(); } if ((Connect.email.length > 0) && (Connect.email_message.length > 0)) { message Connect.email_message.replace($Location;, Connect_Window.location.href); if (Connect_Window.navigator.userAgent.indexOf(MSIE) ! -1) { message message.replace(#, %23); } mailto mailto: + Connect.email + ?subject + encodeURIComponent(message) + &body + encodeURIComponent(message); Connect_Window.open(mailto, _blank); }};Connect.Button_Print function () { use strict; var page_window, data; // Try direct method // try { page_window Connect.page_iframe.contentWindow || Connect_Window.framesconnect_page; if ((page_window ! undefined) && (page_window ! null)) { page_window.print(); } } catch (ignore) { // Try page action // data { action: ww_behavior_print }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window); }};Connect.Button_PDF function () { use strict; var data; // Try page action // data { action: ww_behavior_pdf }; Message.Post(Connect.page_iframe.contentWindow, data, Connect_Window);};// -->/script> style typetext/css>!--/* Text size adjustments */body { -webkit-text-size-adjust: none; -ms-text-size-adjust: none; text-size-adjust: none;}/* Company Info */.ww_skin_company_logo { text-align: left; margin: 8px 8px 8px 0;}.ww_skin_company_logo > a:link { color: #0088CC; text-decoration: none;}.ww_skin_company_logo > a:visited { color: #99CCFF; text-decoration: none;}.ww_skin_company_logo > a:link:hover, .ww_skin_company_logo > a:visited:hover { text-decoration: underline;}.ww_skin_company_name { font-family: Open Sans, Arial, sans-serif; font-size: 14pt; font-weight: bold; text-align: left;}.ww_skin_company_name > a:link { color: #0088CC; text-decoration: none;}.ww_skin_company_name > a:visited { color: #99CCFF; text-decoration: none;}.ww_skin_company_name > a:link:hover, .ww_skin_company_name > a:visited:hover { text-decoration: underline;}.ww_skin_company_phone { font-family: Open Sans, Arial, sans-serif; font-size: 10pt; text-align: right;}.ww_skin_company_fax { font-family: Open Sans, Arial, sans-serif; font-size: 10pt; text-align: right;}.ww_skin_company_email { font-family: Open Sans, Arial, sans-serif; font-size: 10pt; text-align: right;}.ww_skin_company_email > a:link { color: #0088CC; text-decoration: none;}.ww_skin_company_email > a:visited { color: #99CCFF; text-decoration: none;}.ww_skin_company_email > a:link:hover, .ww_skin_company_email > a:visited:hover { text-decoration: underline;}/* Progress */.ww_skin_progress_bar { border: 1px solid #55585E; width: 100%; height: 18px; padding: 1px; white-space: nowrap;}.ww_skin_progress_segment { float: left; position: relative; width: 10%; height: 100%;}.ww_skin_progress_segment_pending { background-color: transparent;}@keyframes IndeterminateProgress { 0% {background-color: #ffffff;} 50% {background-color: #353535;} 100% {background-color: #ffffff;}}.ww_skin_progress_bar.ww_skin_progress_indeterminate .ww_skin_progress_segment_pending { animation: IndeterminateProgress 1s ease infinite;}.ww_skin_progress_segment_complete { background-color: #55585E;}/* Reference CSS sprite */.ww_skin { background-image: url(../../connect/images/skin.png); background-repeat: no-repeat;}a.ww_skin { color: transparent; text-decoration: none; outline-width: 0;}/* Panel Progress */.ww_skin_panel_progress_background { background-color: white; margin: 0px 0px 0px 0px; padding: 24px 20% 24px 20%;}/* TOC */.ww_skin_toc_background { margin: 0; padding: 0;}.ww_skin_toc { display: inline-block; width: 38px; height: 38px; background-position: -304px -32px;}.ww_skin_toolbar_background_default > .ww_skin_toc:hover { background-position: -376px -32px;}.ww_skin_toolbar_background_selected > .ww_skin_toc { background-position: -448px -32px;}a.ww_skin_toc_spacer { background-image: none; width: 12px;}.layout_narrow a.ww_skin_toc_spacer { display: none;}/* Index */.ww_skin_index_background { margin: 0; padding: 0;}.ww_skin_index { display: inline-block; width: 38px; height: 38px; background-position: -304px -128px;}.ww_skin_toolbar_background_default > .ww_skin_index:hover { background-position: -376px -128px;}.ww_skin_toolbar_background_selected > .ww_skin_index { background-position: -448px -128px;}a.ww_skin_index_spacer { background-image: none; width: 12px;}.layout_narrow a.ww_skin_index_spacer { display: none;}/* Home */.ww_skin_home { display: inline-block; width: 38px; height: 38px; background-position: -520px -1376px;}.ww_skin_toolbar_button_enabled > .ww_skin_home { background-position: -304px -1376px;}.ww_skin_toolbar_button_enabled.ww_skin_toolbar_background_default > .ww_skin_home:hover { background-position: -376px -1376px;}.ww_skin_toolbar_button_enabled.ww_skin_toolbar_background_selected > .ww_skin_home { background-position: -448px -1376px;}a.ww_skin_home_spacer { background-image: none; width: 12px;}.layout_narrow a.ww_skin_home_spacer { display: none;}/* Search */.ww_skin_search_background { margin: 0; padding: 0;}.ww_skin_search { display: inline-block; width: 38px; height: 38px; background-position: -304px -224px;}.ww_skin_toolbar_background_default > .ww_skin_search:hover { background-position: -376px -224px;}.ww_skin_toolbar_background_selected > .ww_skin_search { background-position: -448px -224px;}a.ww_skin_search_spacer { display: none;}.layout_narrow a.ww_skin_search_spacer { display: none;}/* Globe */.ww_skin_globe_background { padding: 16px; background-color: white;}.ww_skin_globe { display: inline-block; width: 38px; height: 38px; background-position: -304px -320px;}.ww_skin_toolbar_background_default > .ww_skin_globe:hover { background-position: -376px -320px;}.ww_skin_toolbar_background_selected > .ww_skin_globe { background-position: -448px -320px;}a.ww_skin_globe_spacer { background-image: none; width: 24px;}.layout_narrow a.ww_skin_globe_spacer { display: none;}/* Next */.ww_skin_next { display: inline-block; width: 38px; height: 38px; background-position: -520px -416px;}.ww_skin_toolbar_button_enabled > .ww_skin_next { background-position: -304px -416px;}.ww_skin_toolbar_button_enabled.ww_skin_toolbar_background_default > .ww_skin_next:hover { background-position: -376px -416px;}.ww_skin_toolbar_button_enabled.ww_skin_toolbar_background_selected > .ww_skin_next { background-position: -448px -416px;}a.ww_skin_next_spacer { display: none;}.layout_narrow a.ww_skin_next_spacer { display: none;}/* Previous */.ww_skin_prev { display: inline-block; width: 38px; height: 38px; background-position: -520px -512px;}.ww_skin_toolbar_button_enabled > .ww_skin_prev { background-position: -304px -512px;}.ww_skin_toolbar_button_enabled.ww_skin_toolbar_background_default > .ww_skin_prev:hover { background-position: -376px -512px;}.ww_skin_toolbar_button_enabled.ww_skin_toolbar_background_selected > .ww_skin_prev { background-position: -448px -512px;}a.ww_skin_prev_spacer { display: none;}.layout_narrow a.ww_skin_prev_spacer { display: none;}/* PDF */.ww_skin_pdf { display: inline-block; width: 21px; height: 24px; line-height: 24px; margin-left: 6px; margin-right: 6px; background-position: -8px -608px;}a.ww_skin_pdf:hover { background-position: -80px -608px;}/* Email */.ww_skin_email { display: inline-block; width: 21px; height: 24px; line-height: 24px; margin-left: 6px; margin-right: 6px; background-position: -8px -704px;}a.ww_skin_email:hover { background-position: -80px -704px;}/* Print */.ww_skin_print { display: inline-block; width: 23px; height: 24px; line-height: 24px; margin-left: 6px; margin-right: 6px; background-position: -8px -800px;}a.ww_skin_print:hover { background-position: -80px -800px;}/* Toolbar */#toolbar_div {}.ww_skin_toolbar { padding: 0; margin: 0;}.ww_skin_toolbar_cluster { white-space: nowrap;}.ww_skin_toolbar_button_enabled {}.ww_skin_toolbar_button_enabled:hover { background: #55585E;}.ww_skin_toolbar_button_disabled {}.ww_skin_toolbar_button_disabled a:hover { cursor: default;}.ww_skin_toolbar_button_left { display: inline-block;}.ww_skin_toolbar_button_center { display: inline-block; width: 100%; height: 38px;}.ww_skin_toolbar_button_right { display: inline-block;}.ww_skin_toolbar_background_default { background: #55585E;}.ww_skin_toolbar_background_selected,.ww_skin_toolbar_background_selected:hover { background: #55585E;}.ww_skin_toolbar_left_background { margin-left: 0;}.ww_skin_toolbar_right_background {}.ww_skin_search_form { display: inline-block;}.ww_skin_search_input { vertical-align: top; height: 12px; margin: 10px 0 0 18px;}/* TOC Entry */.ww_skin_toc_container {}.ww_skin_toc_level { list-style-type: none; padding: 0; margin: 0;}.ww_skin_toc_level_1 > li > div { padding-left: 8px;}.ww_skin_toc_level_2 > li > div { padding-left: 28px;}.ww_skin_toc_level_3 > li > div { padding-left: 48px;}.ww_skin_toc_level_4 > li > div { padding-left: 68px;}.ww_skin_toc_level_5 > li > div { padding-left: 88px;}.ww_skin_toc_level_6 > li > div { padding-left: 108px;}.ww_skin_toc_level_7 > li > div { padding-left: 128px;}.ww_skin_toc_level_8 > li > div { padding-left: 148px;}.ww_skin_toc_level_9 > li > div { padding-left: 168px;}.ww_skin_toc_level_10 > li > div { padding-left: 188px;}.ww_skin_toc_level_11 > li > div { padding-left: 208px;}.ww_skin_toc_level_12 > li > div { padding-left: 228px;}.ww_skin_toc_level_13 > li > div { padding-left: 248px;}.ww_skin_toc_level_14 > li > div { padding-left: 268px;}.ww_skin_toc_level_15 > li > div { padding-left: 288px;}.ww_skin_toc_level_16 > li > div { padding-left: 308px;}.ww_skin_toc_entry { font-family: Open Sans, Arial, sans-serif; font-size: 10pt; cursor: pointer; border-style: solid; border-color: #A4A4A4; border-width: 1px 0 0 0; font-size: 10pt; margin: 0 6px 0 6px; padding: 4px 0 4px 0; color: #606060;}.ww_skin_toc_level_1:first-child > li:first-child > .ww_skin_toc_entry:first-child { border-width: 0;}.ww_skin_toc_entry:hover { background: #E0E0E0; color: black;}.ww_skin_toc_entry > a { color: #55585E; text-decoration: none;}.ww_skin_toc_entry > a:visited { color: #606060;}.ww_skin_toc_entry:hover > a { color: 55585E;}.ww_skin_toc_entry:hover > a:visited { color: #606060;}.ww_skin_toc_entry_selected,.ww_skin_toc_entry_selected:hover { background: #55585E;}.ww_skin_toc_entry_selected > a:link,.ww_skin_toc_entry_selected > a:visited,.ww_skin_toc_entry_selected:hover > a:link,.ww_skin_toc_entry_selected:hover > a:visited { color: white;}.ww_skin_toc_folder {}.ww_skin_toc_folder > a { display: block; margin-left: 20px; text-indent: 0;}.ww_skin_toc_dropdown { display: block; float: left; width: 16px; height: 12px; margin: 0 4px 0 0;}.ww_skin_toc_dropdown_closed { background-position: -8px -896px;}.ww_skin_toc_entry_selected > .ww_skin_toc_dropdown_closed { background-position: -80px -896px;}.ww_skin_toc_entry:hover > .ww_skin_toc_dropdown_closed { background-position: -80px -896px;}.ww_skin_toc_dropdown_open { background-position: -8px -992px;}.ww_skin_toc_entry_selected > .ww_skin_toc_dropdown_open { background-position: -80px -992px;}.ww_skin_toc_entry:hover > .ww_skin_toc_dropdown_open { background-position: -80px -992px;}.ww_skin_toc_container_open { display: block;}.ww_skin_toc_container_closed { display: none;}/* Index Entry */.ww_skin_index_title { font-family: Open Sans, Arial, sans-serif; font-size: 14pt; font-weight: bold; margin-bottom: 6pt; color: 55585E;}.ww_skin_index_list { margin: 0; padding: 0;}.ww_skin_index_list_group { margin: 0 0 6pt 12pt; padding: 0;}.ww_skin_index_list_entry { margin: 0 0 0 12pt; padding: 0;}.ww_skin_index_group { font-family: Open Sans, Arial, sans-serif; font-size: 10pt; color: 55585E;}.ww_skin_index_entry { font-family: Open Sans, Arial, sans-serif; font-size: 10pt; color: 55585E;}.ww_skin_index_link { color: #0088CC; text-decoration: none;}.ww_skin_index_link:visited { color: #99CCFF; text-decoration: none;}.ww_skin_index_link:hover { text-decoration: underline;}/* Page Dropdown */.ww_skin_dropdown_arrow { display: inline-block; width: 12px; height: 12px; vertical-align: middle;}.ww_skin_page_dropdown_arrow_expanded { background-position: -8px -1280px;}.ww_skin_page_dropdown_arrow_expanded:hover { background-position: -80px -1280px; cursor: pointer;}.ww_skin_page_dropdown_arrow_collapsed { background-position: -8px -1184px;}.ww_skin_page_dropdown_arrow_collapsed:hover { background-position: -80px -1184px; cursor: pointer;}.ww_skin_page_dropdown_div_expanded { display: block;}.ww_skin_page_dropdown_div_collapsed { display: none;}.ww_skin_page_back_to_top { cursor: pointer; background-color: #C0C0C0; padding: 8px; display: block; float: right; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px;}.ww_skin_page_back_to_top:hover { background-color: #55585E;}.ww_skin_page_back_to_top > a:link, .ww_skin_page_back_to_top > a:visited { text-decoration: none; color: white;}.ww_skin_page_back_to_top > a:link:hover, .ww_skin_page_back_to_top > a:visited:hover { text-decoration: none; color: white;}/* Panel */.ww_skin_panel_frame { padding: 9px 0 0 0;}.ww_skin_panel_content { background-color: white; border-style: solid; border-color: #A4A4A4; border-width: 2px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; box-shadow: 1px 1px 4px 1px #A4A4A4; margin-right: 4px;}/* Lightbox */.ww_skin_lightbox_background { display: none; position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 100; background-color: #303030; opacity: .70; filter: alpha(opacity 70);}.ww_skin_lightbox_frame { position: fixed; top: 10%; right: 10%; visibility: hidden; z-index: 101; overflow: visible; background-color: #000000; margin: 0 0 0 0; padding: 4px; font-size: 1px; max-width: 80%; max-height: 80%;}.ww_skin_lightbox_frame_centered { top: 50%; right: 50%; transform: translate(50%, -50%); margin-left: -50%; /* http://www.w3.org/Style/Examples/007/center.en.html */}.ww_skin_lightbox_close_container { position: absolute; top: -11px; right: -11px; background-color: transparent; font-size: 1px;}.ww_skin_lightbox_close { cursor: pointer; display: inline-block; position: relative; width: 28px; height: 28px; background-position: -8px -1088px;}.ww_skin_lightbox_close:hover { background-position: -80px -1088px;}.ww_skin_lightbox_content { margin: 0; padding: 0; background-color: transparent; font-size: 1px; overflow: auto; width: 100%; height: 100%;}/* Page */.ww_skin_page_body { margin: 0; padding: 8px; word-wrap: break-word;}.ww_skin_page_overflow { overflow-x: auto; overflow-y: hidden; min-width: 1px;}.ww_skin_breadcrumbs { font-family: Open Sans, Arial, sans-serif; font-size: 10pt; /* Depends upon .ww_skin_page_body and toolbar button borders */ margin: -6px -6px 0 -8px; padding: 4px 4px 4px 12px; color: 55585E; font-weight: bold;}.ww_skin_breadcrumbs_parent {}.ww_skin_breadcrumbs_divider {}.ww_skin_breadcrumbs_current {}.ww_skin_breadcrumbs a:link { color: #0088CC; text-decoration: none;}.ww_skin_breadcrumbs a:visited { color: #99CCFF; text-decoration: none;}.ww_skin_breadcrumbs a:link:hover { color: #0088CC; text-decoration: underline;}.ww_skin_breadcrumbs a:visited:hover { color: #99CCFF; text-decoration: underline;}.ww_skin_page_toolbar { text-align: right; line-height: 24px; padding: 4px 0 4px 0; overflow: hidden; white-space: nowrap;}.ww_skin_page_toolbar_divider { display: inline-block; width: 1px; height: 24px; margin-left: 6px; margin-right: 6px; background-color: #CCCCCC;}.ww_skin_page_globalization { display: none;}/* Disqus */div#disqus_thread { background-color: #EBEBEB; margin: 10px; padding: 10px; text-align: center;}.ww_skin { background-image: url(connect/images/skin.png); background-repeat: no-repeat;}html, body { margin: 0; padding: 0; width: 100%; height: 100%;}.layout_wide { margin: 0; padding: 0 18px 18px 18px;}.layout_narrow { margin: 0; padding: 0;}.layout_tall {}div#progress { margin: 0 0 0 0; padding: 24px 20% 24px 20%;}div#presentation_div { margin: 0; padding: 0; visibility: hidden;}.panel_sidebar { /* State tracking class */}.panel_overlay { /* State tracking class */}.unknown_page { /* State tracking class */}.scrolling_supported { /* Behavior configuration class */}/* Search input *//* */div#layout_div.layout_narrow input.ww_skin_search_input { display: none; visibility: hidden;}div#layout_div.layout_wide input.ww_skin_search_input { display: inline; visibility: visible;}div#layout_div.layout_wide div#presentation_div.panel_overlay input.ww_skin_search_input { display: none; visibility: hidden;}/* Navigation Panel *//* */div#panel_frame { display: none; visibility: hidden;}div#presentation_div.panel_sidebar div#panel_frame { display: block; visibility: visible;}div#layout_div.layout_narrow div#presentation_div.panel_sidebar div#panel_frame { position: static;}div#layout_div.layout_wide div#presentation_div.panel_sidebar div#panel_frame { position: absolute; top: 0; left: 0; width: 300px; /* Updated via JavaScript */ overflow: auto; -webkit-overflow-scrolling: touch;}body.scrolling_supported div#layout_div.layout_wide div#presentation_div.panel_sidebar div#panel_frame { bottom: 0;}div#presentation_div.panel_overlay div#panel_frame { display: block; visibility: visible; position: static;}/* Page Content *//* */div#page_div { position: absolute; top: 0; right: 0; bottom: 0; margin: 0; padding: 0; overflow: auto; -webkit-overflow-scrolling: touch; -moz-transition: left 0.5s; -webkit-transition: left 0.5s; -ms-transition: left 0.5s; -o-transition: left 0.5s; transition: left 0.5s;}div#layout_div.layout_narrow.layout_tall div#container_div { position: fixed; bottom: 0px; overflow-x: auto; overflow-y: auto; overflow: auto;}div#layout_div.layout_narrow div#page_div { left: 0;}div#layout_div.layout_wide div#page_div { left: 0;}body.scrolling_supported div#layout_div.layout_wide div#page_div { bottom: 0;}div#presentation_div.panel_overlay div#page_div { display: none; visibility: hidden;}div#layout_div.layout_wide div#presentation_div.panel_sidebar div#page_div { left: 300px; /* Updated via JavaScript */ -moz-transition: left 0s; -webkit-transition: left 0s; -ms-transition: left 0s; -o-transition: left 0s; transition: left 0s;}body.scrolling_supported div#layout_div.layout_wide div#presentation_div.panel_sidebar div#page_div { bottom: 0;}div#layout_div.layout_narrow div#presentation_div.panel_sidebar div#page_div { display: none; visibility: hidden;}div#layout_div.layout_narrow div#container_div.unknown_page div#page_div { left: 0;}body.scrolling_supported div#layout_div.layout_narrow div#container_div.unknown_page div#page_div { bottom: 0;}iframe#page_iframe { position: absolute; border: none; margin: 0; padding: 0; width: 100%; height: 100%;}div#layout_div.layout_narrow iframe#page_iframe { overflow-x: auto; overflow-y: hidden;}div#layout_div.layout_narrow.layout_tall iframe#page_iframe { overflow-x: auto; overflow-y: auto; overflow: auto;}div#layout_div.layout_wide iframe#page_iframe { overflow: auto;}div#layout_div.layout_narrow div#container_div.unknown_page iframe#page_iframe { overflow: auto;}div#container_div { position: absolute; top: 64px; /* Updated via JavaScript */ left: 0; right: 0;}div#layout_div.layout_wide div#container_div { left: 18px; right: 18px;}body.scrolling_supported div#layout_div.layout_wide div#container_div { bottom: 18px;}body.scrolling_supported div#layout_div.layout_narrow div#container_div.unknown_page { bottom: 0;}div#panels { display: none;}div#toc {}div#toc_title { background-position: -8px -1472px; height: 9px; width: 20px; margin: -9px 0 0 20px;}div#toc_content {}div#index {}div#index_title { background-position: -8px -1472px; height: 9px; width: 20px; margin: -9px 0 0 82px;}div#index_content { padding: 12px;}div#search {}div#search_title { display: none;}iframe#search_iframe { width: 100%; height: 100%; border: none; margin: 0; padding: 0;}div#parcels { display: block;}div.back_to_top { visibility: hidden; opacity: 0; -webkit-transition: opacity 1s ease; -moz-transition: opacity 1s ease; -o-transition: opacity 1s ease; -ms-transition: opacity 1s ease; transition: opacity 1s ease; background-color: rgba(192, 192, 192, 0.8); float: none; position: fixed; padding: 0; right: 18px; bottom: 8px;}div#layout_div.layout_wide div.back_to_top { right: 50px; bottom: 18px;}div#layout_div.layout_narrow div.back_to_top { right: 18px; bottom: 8px;}div#layout_div.layout_narrow.layout_tall div.back_to_top { right: 36px; bottom: 8px;}div.back_to_top.back_to_top_show { visibility: visible; opacity: 1;}div.back_to_top > a { display: inline-block; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 10px solid black; margin: 6px; width: 0; height: 0;}/* The Modal (background) */.modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1; /* Sit on top */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ font-family: Arial, sans-serif; background-color: rgb(0,0,0); /* Fallback color */ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */}/* Modal Content */.modal-content { position: relative; background-color: #fefefe; margin: auto; margin-top: 30px; /* Location of the box */ margin-bottom: 30px; /* Location of the box */ padding: 0; overflow: auto; border: 1px solid #888; width: 30%; min-width: 250px; box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19); -webkit-animation-name: animatetop; -webkit-animation-duration: 0.4s; animation-name: animatetop; animation-duration: 0.4s}/* Add Animation */@-webkit-keyframes animatetop { from {top:-300px; opacity:0} to {top:0; opacity:1}}@keyframes animatetop { from {top:-300px; opacity:0} to {top:0; opacity:1}}/* The Close Button */#close { color: black; float: right; font-size: 28px; font-weight: bold; margin-right: 10px; margin-top: 5px;}#close-div { display: inline-block; width: 100%;}.modal-btn:hover,.modal-btn:focus { text-decoration: none; cursor: pointer;}.modal-header { margin-top: 30px; text-align: center;}.modal-body { text-align: center; padding-right: 70px; padding-left: 70px; word-wrap: break-word; font-size: 13px;}.modal-footer { text-align: center; margin-top: 50px;}#retry-btn { padding: 15px 0px; background-color: #555; color: white; font-size: 15px; border-style: none; width: 100%; height: 100%;}.info-text-title { margin-top: 30px; font-size: 20px;}.info-img { margin-top: 40px;}/* No JavaScript */#noscript_padding { padding-top: 1.9em;}#noscript_warning { font-family: Arial, sans-serif; position: fixed; top: 0; left: 0; width: 100%; z-index: 101; text-align: center; font-weight: bold; color: #FFF; background-color: #AE0000; padding: 5px 0 5px 0;}-->/style>!--if IE 9>link relStyleSheet hrefcss/skin_IE9.css typetext/css mediaall />!endif-->/head> body onloadConnect.OnLoad(); stylemargin-left: 12pt> div idlayout_div classlayout_narrow layout_tall> !-- Company Info --> !-- --> table summary> tr> td> div classww_skin_company_logo>a hrefhttp://www.zerto.com targetexternal_window>img srcconnect/Logo.jpg border0 />/a>/div> /td> td>/td> /tr> /table> !-- Zerto change br wwpage:conditioncompany-info-exists />--> !-- Progress Bar --> !-- --> div idprogress> div classww_skin_progress_bar> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> div classww_skin_progress_segment ww_skin_progress_segment_pending> /div> /div> /div> !-- Presentation --> !-- --> div idpresentation_div> !-- Toolbar --> !-- --> div idtoolbar_div> table classww_skin_toolbar cellpadding0 cellspacing0> tr> td classww_skin_toolbar_cluster>span classww_skin_toolbar_button_left ww_skin_toolbar_background_default ww_skin_toolbar_button_enabled>a classww_behavior_toc ww_skin ww_skin_toc ww_skin_toc_spacer titleContents href#> /a>a classww_behavior_toc ww_skin ww_skin_toc titleContents href#> /a>a classww_behavior_toc ww_skin ww_skin_toc ww_skin_toc_spacer titleContents href#> /a>/span>span classww_skin_toolbar_button_left ww_skin_toolbar_background_default ww_skin_toolbar_button_enabled>a classww_behavior_index ww_skin ww_skin_index ww_skin_index_spacer titleIndex href#> /a>a classww_behavior_index ww_skin ww_skin_index titleIndex href#> /a>a classww_behavior_index ww_skin ww_skin_index ww_skin_index_spacer titleIndex href#> /a>/span>span classww_skin_toolbar_button_left ww_skin_toolbar_background_default ww_skin_toolbar_button_enabled>a classww_behavior_globe ww_skin ww_skin_globe ww_skin_globe_spacer titleTranslate href#> /a>a classww_behavior_globe ww_skin ww_skin_globe titleTranslate href#> /a>a classww_behavior_globe ww_skin ww_skin_globe ww_skin_globe_spacer titleTranslate href#> /a>/span>form classww_skin_search_form methodget actionjavascript:>span classww_skin_toolbar_button_left ww_skin_toolbar_background_default ww_skin_toolbar_button_enabled>input classww_skin_search_input>/input>a classww_behavior_search ww_skin ww_skin_search ww_skin_search_spacer titleSearch href#> /a>a classww_behavior_search ww_skin ww_skin_search titleSearch href#> /a>a classww_behavior_search ww_skin ww_skin_search ww_skin_search_spacer titleSearch href#> /a>/span>/form>/td> td width100% classww_skin_toolbar_cluster>span classww_skin_toolbar_button_center ww_skin_toolbar_background_default> /span>/td> td classww_skin_toolbar_cluster>span classww_skin_toolbar_button_right ww_skin_toolbar_background_default ww_skin_toolbar_button_disabled>a classww_behavior_prev ww_skin ww_skin_prev ww_skin_prev_spacer titlePrevious href#> /a>a classww_behavior_prev ww_skin ww_skin_prev titlePrevious href#> /a>a classww_behavior_prev ww_skin ww_skin_prev ww_skin_prev_spacer titlePrevious href#> /a>/span>span classww_skin_toolbar_button_right ww_skin_toolbar_background_default ww_skin_toolbar_button_disabled>a classww_behavior_next ww_skin ww_skin_next ww_skin_next_spacer titleNext href#> /a>a classww_behavior_next ww_skin ww_skin_next titleNext href#> /a>a classww_behavior_next ww_skin ww_skin_next ww_skin_next_spacer titleNext href#> /a>/span>span classww_skin_toolbar_button_right ww_skin_toolbar_background_default ww_skin_toolbar_button_disabled>a classww_behavior_home ww_skin ww_skin_home ww_skin_home_spacer titleHome href#> /a>a classww_behavior_home ww_skin ww_skin_home titleHome href#> /a>a classww_behavior_home ww_skin ww_skin_home ww_skin_home_spacer titleHome href#> /a>/span>/td> /tr> /table> /div> !-- Container --> !-- --> div idcontainer_div> !-- Panel --> !-- --> div idpanel_frame classww_skin_panel_frame>div idpanel_content classww_skin_panel_content>/div>/div> !-- Page --> !-- --> div idpage_div>iframe idpage_iframe nameconnect_page frameborder0 width100% height100% onloadConnect.OnDocumentLoad(); srcjavascript:>/iframe>/div> /div> !-- Back to Top --> !-- --> div idback_to_top classww_skin_page_back_to_top back_to_top>a classww_behavior_back_to_top href# titleBack to top> /a>/div> /div> /div> !-- Panels --> !-- --> div idpanels> !-- Panel Progress --> !-- --> div idpanel_progress classww_skin_panel_progress_background> Panel Progress /div> !-- TOC --> !-- --> div idtoc classww_skin_toc_background ww_skin_toc_container> div idtoc_title classww_skin> /div> div idtoc_content> Table of Contents /div> /div> !-- Index --> !-- --> div idindex classww_skin_index_background> div idindex_title classww_skin> /div> div idindex_content> Index /div> /div> !-- Search --> !-- --> div idsearch classww_skin_search_background> div idsearch_title classww_skin> /div> iframe idsearch_iframe nameconnect_search frameborder0 width100% height100% scrollingno srcjavascript:>/iframe> /div> /div> !-- Lightbox --> !-- --> div idlightbox_background classww_skin_lightbox_background> /div> div idlightbox_frame classww_skin_lightbox_frame> div classww_skin_lightbox_close_container> span idlightbox_close classww_skin ww_skin_lightbox_close> /span> /div> div idlightbox_content classww_skin_lightbox_content> /div> /div> !-- Parcels --> !-- --> div idparcels> ul> li> div classww_skin_toc_entry ww_skin_toc_folder>span classww_skin ww_skin_toc_dropdown ww_skin_toc_dropdown_closed> /span>a idErrorsGuide:NBpbddvzFYM hrefErrorsGuide.html target_self titleZerto Analytics Alerts and Events>Zerto Analytics Alerts and Events/a>/div> /li> /ul> /div> !-- The Modal for disabled cookies --> !-- --> div idinfo-modal classmodal> !-- Modal content --> div classmodal-content> div idclose-div> span idclose classmodal-btn>×/span> /div> div classmodal-header> img classinfo-img srcimages/info-64.png altInfo Image /> h2 classinfo-text-title>DOM storage is disabled/h2> /div> div classmodal-body> p>Your browser has DOM storage disabled. Make sure DOM storage is enabled and try again./p> /div> div classmodal-footer width100%> button idretry-btn classmodal-btn>Retry/button> /div> /div> /div> script typetext/javascript> // Get the modal var modal document.getElementById(info-modal); // Get the span element that closes the modal var spanClose document.getElementById(close); // Get the button that opens the modal var retryBtn document.getElementById(retry-btn); // When the user clicks on the span tag, close the modal spanClose.onclick function() { modal.style.display none; } // When the user clicks on the Retry button, reload the page retryBtn.onclick function() { location.reload(); } // When the user clicks anywhere outside of the modal, close it window.onclick function(event) { if (event.target modal) { modal.style.display none; } } /script> noscript> div idnoscript_warning>This site works best with JavaScript enabled/div> /noscript> /body>/html>
Subdomains
Date
Domain
IP
zapps-qa.zerto.com
2024-11-25
3.65.136.26
zerto-mobile-data.zerto.com
2025-02-28
45.60.77.131
help-be.zerto.com
2024-04-22
34.230.120.167
zapps-qa-auth.zerto.com
2024-11-25
3.127.73.228
zapps-qa-registry-auth.zerto.com
2024-11-25
3.65.136.26
analytics.api.zerto.com
2023-08-15
52.71.22.92
docs.api.zerto.com
2024-12-29
204.246.191.59
cloudcontrol-docs.api.zerto.com
2024-07-12
3.163.24.97
mail.zerto.com
2025-05-16
45.60.77.131
cloudcontrol.zerto.com
2025-01-25
99.84.66.101
zapps-qa-helm.zerto.com
2024-11-25
3.65.136.26
vpn.zerto.com
2025-02-06
199.203.3.33
go.zerto.com
2025-01-04
104.17.73.206
help.zerto.com
2025-03-30
45.60.77.131
sdr.zerto.com
2025-06-13
45.60.77.131
help.saas.zerto.com
2025-07-31
3.163.24.31
zerto-msgs-for-sites.saas.zerto.com
2025-07-17
45.60.77.131
zapps-qa-metrics.zerto.com
2024-11-25
3.127.73.228
analytics.zerto.com
2024-03-16
99.84.66.73
beta-analytics.zerto.com
2023-07-25
99.84.66.61
downloads.zerto.com
2013-08-07
97.74.181.1
daes.zerto.com
2025-07-23
45.60.77.131
events.zerto.com
2024-02-13
204.246.191.90
izerto-test-data.api-dev.zerto.com
2025-07-29
45.60.77.131
rlc-test.api-dev.zerto.com
2025-07-23
45.60.77.131
alpha-analytics.saas-dev.zerto.com
2024-12-24
99.86.38.58
zapps-auth.dev.zerto.com
2024-05-03
3.64.160.14
zapps-registry-auth.dev.zerto.com
2024-05-03
3.70.83.180
zapps-helm.dev.zerto.com
2024-05-03
3.64.160.14
zapps-metrics.dev.zerto.com
2024-05-03
3.64.160.14
zapps.dev.zerto.com
2024-05-03
3.64.160.14
zapps-registry.dev.zerto.com
2024-05-03
3.64.160.14
www.zerto.com
2025-06-26
45.60.77.131
zapps-qa-registry.zerto.com
2024-11-25
3.65.136.26
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]