.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]}
\ No newline at end of file
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/bootstrap.min.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/bootstrap.min.css
deleted file mode 100644
index 4cf729e43..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/bootstrap.min.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Bootstrap v3.3.6 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
-/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/bootstrap.min.css.map b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/bootstrap.min.css.map
deleted file mode 100644
index 5f49bb374..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/bootstrap.min.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["less/normalize.less","less/print.less","bootstrap.css","dist/css/bootstrap.css","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"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DG,edkkDH,MAAA,aclkDG,edqkDH,MAAA,acrkDG,edwkDH,MAAA,IcxkDG,ed2kDH,MAAA,ac3kDG,ed8kDH,MAAA,ac9kDG,edilDH,MAAA,IcjlDG,edolDH,MAAA,ac/kDG,edklDH,MAAA,YcjmDG,edomDH,MAAA,KcpmDG,gBdumDH,KAAA,KcvmDG,gBd0mDH,KAAA,ac1mDG,gBd6mDH,KAAA,ac7mDG,edgnDH,KAAA,IchnDG,edmnDH,KAAA,acnnDG,edsnDH,KAAA,actnDG,edynDH,KAAA,IcznDG,ed4nDH,KAAA,ac5nDG,ed+nDH,KAAA,ac/nDG,edkoDH,KAAA,IcloDG,edqoDH,KAAA,achoDG,edmoDH,KAAA,YcpnDG,edunDH,KAAA,KcvnDG,kBd0nDH,YAAA,Kc1nDG,kBd6nDH,YAAA,ac7nDG,kBdgoDH,YAAA,achoDG,iBdmoDH,YAAA,IcnoDG,iBdsoDH,YAAA,actoDG,iBdyoDH,YAAA,aczoDG,iBd4oDH,YAAA,Ic5oDG,iBd+oDH,YAAA,ac/oDG,iBdkpDH,YAAA,aclpDG,iBdqpDH,YAAA,IcrpDG,iBdwpDH,YAAA,acxpDG,iBd2pDH,YAAA,Yc7rDG,iBACE,YAAA,EAOJ,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud2rDD,MAAA,Kc3rDC,Wd8rDD,MAAA,Kc9rDC,WdisDD,MAAA,acjsDC,WdosDD,MAAA,acpsDC,UdusDD,MAAA,IcvsDC,Ud0sDD,MAAA,ac1sDC,Ud6sDD,MAAA,ac7sDC,UdgtDD,MAAA,IchtDC,UdmtDD,MAAA,acntDC,UdstDD,MAAA,acttDC,UdytDD,MAAA,IcztDC,Ud4tDD,MAAA,ac7sDC,UdgtDD,MAAA,YchtDC,gBdmtDD,MAAA,KcntDC,gBdstDD,MAAA,acttDC,gBdytDD,MAAA,acztDC,ed4tDD,MAAA,Ic5tDC,ed+tDD,MAAA,ac/tDC,edkuDD,MAAA,acluDC,edquDD,MAAA,IcruDC,edwuDD,MAAA,acxuDC,ed2uDD,MAAA,ac3uDC,ed8uDD,MAAA,Ic9uDC,edivDD,MAAA,ac5uDC,ed+uDD,MAAA,Yc9vDC,ediwDD,MAAA,KcjwDC,gBdowDD,KAAA,KcpwDC,gBduwDD,KAAA,acvwDC,gBd0wDD,KAAA,ac1wDC,ed6wDD,KAAA,Ic7wDC,edgxDD,KAAA,achxDC,edmxDD,KAAA,acnxDC,edsxDD,KAAA,IctxDC,edyxDD,KAAA,aczxDC,ed4xDD,KAAA,ac5xDC,ed+xDD,KAAA,Ic/xDC,edkyDD,KAAA,ac7xDC,edgyDD,KAAA,YcjxDC,edoxDD,KAAA,KcpxDC,kBduxDD,YAAA,KcvxDC,kBd0xDD,YAAA,ac1xDC,kBd6xDD,YAAA,ac7xDC,iBdgyDD,YAAA,IchyDC,iBdmyDD,YAAA,acnyDC,iBdsyDD,YAAA,actyDC,iBdyyDD,YAAA,IczyDC,iBd4yDD,YAAA,ac5yDC,iBd+yDD,YAAA,ac/yDC,iBdkzDD,YAAA,IclzDC,iBdqzDD,YAAA,acrzDC,iBdwzDD,YAAA,YY/yDD,iBE3CE,YAAA,GAQF,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udy1DD,MAAA,Kcz1DC,Wd41DD,MAAA,Kc51DC,Wd+1DD,MAAA,ac/1DC,Wdk2DD,MAAA,acl2DC,Udq2DD,MAAA,Icr2DC,Udw2DD,MAAA,acx2DC,Ud22DD,MAAA,ac32DC,Ud82DD,MAAA,Ic92DC,Udi3DD,MAAA,acj3DC,Udo3DD,MAAA,acp3DC,Udu3DD,MAAA,Icv3DC,Ud03DD,MAAA,ac32DC,Ud82DD,MAAA,Yc92DC,gBdi3DD,MAAA,Kcj3DC,gBdo3DD,MAAA,acp3DC,gBdu3DD,MAAA,acv3DC,ed03DD,MAAA,Ic13DC,ed63DD,MAAA,ac73DC,edg4DD,MAAA,ach4DC,edm4DD,MAAA,Icn4DC,eds4DD,MAAA,act4DC,edy4DD,MAAA,acz4DC,ed44DD,MAAA,Ic54DC,ed+4DD,MAAA,ac14DC,ed64DD,MAAA,Yc55DC,ed+5DD,MAAA,Kc/5DC,gBdk6DD,KAAA,Kcl6DC,gBdq6DD,KAAA,acr6DC,gBdw6DD,KAAA,acx6DC,ed26DD,KAAA,Ic36DC,ed86DD,KAAA,ac96DC,edi7DD,KAAA,acj7DC,edo7DD,KAAA,Icp7DC,edu7DD,KAAA,acv7DC,ed07DD,KAAA,ac17DC,ed67DD,KAAA,Ic77DC,edg8DD,KAAA,ac37DC,ed87DD,KAAA,Yc/6DC,edk7DD,KAAA,Kcl7DC,kBdq7DD,YAAA,Kcr7DC,kBdw7DD,YAAA,acx7DC,kBd27DD,YAAA,ac37DC,iBd87DD,YAAA,Ic97DC,iBdi8DD,YAAA,acj8DC,iBdo8DD,YAAA,acp8DC,iBdu8DD,YAAA,Icv8DC,iBd08DD,YAAA,ac18DC,iBd68DD,YAAA,ac78DC,iBdg9DD,YAAA,Ich9DC,iBdm9DD,YAAA,acn9DC,iBds9DD,YAAA,YY18DD,iBE9CE,YAAA,GAQF,0BACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udu/DD,MAAA,Kcv/DC,Wd0/DD,MAAA,Kc1/DC,Wd6/DD,MAAA,ac7/DC,WdggED,MAAA,achgEC,UdmgED,MAAA,IcngEC,UdsgED,MAAA,actgEC,UdygED,MAAA,aczgEC,Ud4gED,MAAA,Ic5gEC,Ud+gED,MAAA,ac/gEC,UdkhED,MAAA,aclhEC,UdqhED,MAAA,IcrhEC,UdwhED,MAAA,aczgEC,Ud4gED,MAAA,Yc5gEC,gBd+gED,MAAA,Kc/gEC,gBdkhED,MAAA,aclhEC,gBdqhED,MAAA,acrhEC,edwhED,MAAA,IcxhEC,ed2hED,MAAA,ac3hEC,ed8hED,MAAA,ac9hEC,ediiED,MAAA,IcjiEC,edoiED,MAAA,acpiEC,eduiED,MAAA,acviEC,ed0iED,MAAA,Ic1iEC,ed6iED,MAAA,acxiEC,ed2iED,MAAA,Yc1jEC,ed6jED,MAAA,Kc7jEC,gBdgkED,KAAA,KchkEC,gBdmkED,KAAA,acnkEC,gBdskED,KAAA,actkEC,edykED,KAAA,IczkEC,ed4kED,KAAA,ac5kEC,ed+kED,KAAA,ac/kEC,edklED,KAAA,IcllEC,edqlED,KAAA,acrlEC,edwlED,KAAA,acxlEC,ed2lED,KAAA,Ic3lEC,ed8lED,KAAA,aczlEC,ed4lED,KAAA,Yc7kEC,edglED,KAAA,KchlEC,kBdmlED,YAAA,KcnlEC,kBdslED,YAAA,actlEC,kBdylED,YAAA,aczlEC,iBd4lED,YAAA,Ic5lEC,iBd+lED,YAAA,ac/lEC,iBdkmED,YAAA,aclmEC,iBdqmED,YAAA,IcrmEC,iBdwmED,YAAA,acxmEC,iBd2mED,YAAA,ac3mEC,iBd8mED,YAAA,Ic9mEC,iBdinED,YAAA,acjnEC,iBdonED,YAAA,YevrED,iBACA,YAAA,GAGA,MACA,iBAAA,YAEA,Qf0rED,YAAA,IexrEC,eAAgB,IAChB,MAAA,Kf0rED,WAAA,KenrEC,GACA,WAAA,KfurED,OezrEC,MAAO,KdosEP,UAAW,KACX,cAAe,KcxrET,mBd2rER,mBc1rEQ,mBAHA,mBACA,mBd2rER,mBDHC,QAAA,IepsEC,YAAa,WAoBX,eAAA,IACA,WAAA,IAAA,MAAA,KArBJ,mBdmtEE,eAAgB,OAChB,cAAe,IAAI,MAAM,KDJ1B,uCCMD,uCcttEA,wCdutEA,wCcnrEI,2CANI,2CfqrEP,WAAA,Ee1qEG,mBf6qEH,WAAA,IAAA,MAAA,KCWD,cACE,iBAAkB,KchqEpB,6BdmqEA,6BclqEE,6BAZM,6BfuqEP,6BCMD,6BDHC,QAAA,ICWD,gBACE,OAAQ,IAAI,MAAM,Kc3qEpB,4Bd8qEA,4Bc9qEA,4BAQQ,4Bf+pEP,4BCMD,4Bc9pEM,OAAA,IAAA,MAAA,KAYF,4BAFJ,4BfqpEC,oBAAA,IexoEG,yCf2oEH,iBAAA,QejoEC,4BACA,iBAAA,QfqoED,uBe/nEG,SAAA,Od0oEF,QAAS,aczoEL,MAAA,KAEA,sBfkoEL,sBgB9wEC,SAAA,OfyxEA,QAAS,WACT,MAAO,KAST,0BetxEE,0BfgxEF,0BAGA,0BezxEM,0BAMJ,0BfixEF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCgBnyEC,sCAAA,oCf0yEF,sCevxEM,sCf4xEJ,iBAAkB,QASpB,2Be3yEE,2BfqyEF,2BAGA,2Be9yEM,2BAMJ,2BfsyEF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBxzEC,uCAAA,qCf+zEF,uCe5yEM,uCfizEJ,iBAAkB,QASpB,wBeh0EE,wBf0zEF,wBAGA,wBen0EM,wBAMJ,wBf2zEF,wBAGA,wBACA,wBDNC,wBCAD,wBAGA,wBASE,iBAAkB,QDLnB,oCgB70EC,oCAAA,kCfo1EF,oCej0EM,oCfs0EJ,iBAAkB,QASpB,2Ber1EE,2Bf+0EF,2BAGA,2Bex1EM,2BAMJ,2Bfg1EF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBl2EC,uCAAA,qCfy2EF,uCet1EM,uCf21EJ,iBAAkB,QASpB,0Be12EE,0Bfo2EF,0BAGA,0Be72EM,0BAMJ,0Bfq2EF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCejtEC,sCADF,oCdytEA,sCe32EM,sCDoJJ,iBAAA,QA6DF,kBACE,WAAY,KA3DV,WAAA,KAEA,oCACA,kBACA,MAAA,KfqtED,cAAA,Ke9pEC,WAAY,OAnDV,mBAAA,yBfotEH,OAAA,IAAA,MAAA,KCWD,yBACE,cAAe,Ec7qEjB,qCdgrEA,qCcltEI,qCARM,qCfmtET,qCCMD,qCDHC,YAAA,OCWD,kCACE,OAAQ,EcxrEV,0Dd2rEA,0Dc3rEA,0DAzBU,0Df6sET,0DCMD,0DAME,YAAa,EchsEf,yDdmsEA,yDcnsEA,yDArBU,yDfitET,yDCMD,yDAME,aAAc,EDLjB,yDe3sEW,yDEzNV,yDjBm6EC,yDiBl6ED,cAAA,GAMA,SjBm6ED,UAAA,EiBh6EC,QAAS,EACT,OAAA,EACA,OAAA,EAEA,OACA,QAAA,MACA,MAAA,KACA,QAAA,EACA,cAAA,KACA,UAAA,KjBk6ED,YAAA,QiB/5EC,MAAO,KACP,OAAA,EACA,cAAA,IAAA,MAAA,QAEA,MjBi6ED,QAAA,aiBt5EC,UAAW,Kb4BX,cAAA,IACG,YAAA,IJ83EJ,mBiBt5EC,mBAAoB,WhBi6EjB,gBAAiB,WgB/5EpB,WAAA,WjB05ED,qBiBx5EC,kBAGA,OAAQ,IAAI,EAAE,EACd,WAAA,MjBu5ED,YAAA,OiBl5EC,iBACA,QAAA,MAIF,kBhB45EE,QAAS,MgB15ET,MAAA,KAIF,iBAAA,ahB25EE,OAAQ,KIh+ER,uBL29ED,2BK19EC,wBY2EA,QAAS,KAAK,OACd,QAAA,IAAA,KAAA,yBACA,eAAA,KAEA,OACA,QAAA,MjBi5ED,YAAA,IiBv3EC,UAAW,KACX,YAAA,WACA,MAAA,KAEA,cACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KbxDA,iBAAA,KACQ,iBAAA,KAyHR,OAAA,IAAA,MAAA,KACK,cAAA,IACG,mBAAA,MAAA,EAAA,IAAA,IAAA,iBJ0zET,WAAA,MAAA,EAAA,IAAA,IAAA,iBkBl8EC,mBAAA,aAAA,YAAA,KAAA,mBAAA,YAAA,KACE,cAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KACA,WAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KdWM,oBJ27ET,aAAA,QI15EC,QAAA,EACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBAEF,gCAA0B,MAAA,KJ65E3B,QAAA,EI55EiC,oCJ+5EjC,MAAA,KiBl4EG,yCACA,MAAA,KAQF,0BhBw4EA,iBAAkB,YAClB,OAAQ,EgBr4EN,wBjB+3EH,wBiB53EC,iChBu4EA,iBAAkB,KgBr4EhB,QAAA,EAIF,wBACE,iCjB43EH,OAAA,YiB/2EC,sBjBk3ED,OAAA,KiBh2EG,mBhB42EF,mBAAoB,KAEtB,qDgB72EM,8BjBs2EH,8BiBn2EC,wCAAA,+BhB+2EA,YAAa,KgB72EX,iCjB22EH,iCiBx2EC,2CAAA,kChB42EF,0BACA,0BACA,oCACA,2BAKE,YAAa,KgBl3EX,iCjBg3EH,iCACF,2CiBt2EC,kChBy2EA,0BACA,0BACA,oCACA,2BgB32EA,YAAA,MhBm3EF,YgBz2EE,cAAA,KAGA,UADA,OjBm2ED,SAAA,SiBv2EC,QAAS,MhBk3ET,WAAY,KgB12EV,cAAA,KAGA,gBADA,aAEA,WAAA,KjBm2EH,aAAA,KiBh2EC,cAAe,EhB22Ef,YAAa,IACb,OAAQ,QgBt2ER,+BjBk2ED,sCiBp2EC,yBACA,gCAIA,SAAU,ShB02EV,WAAY,MgBx2EZ,YAAA,MAIF,oBAAA,cAEE,WAAA,KAGA,iBADA,cAEA,SAAA,SACA,QAAA,aACA,aAAA,KjB+1ED,cAAA,EiB71EC,YAAa,IhBw2Eb,eAAgB,OgBt2EhB,OAAA,QAUA,kCjBs1ED,4BCWC,WAAY,EACZ,YAAa,KgBz1Eb,wCAAA,qCjBq1ED,8BCOD,+BgBl2EI,2BhBi2EJ,4BAME,OAAQ,YDNT,0BiBz1EG,uBAMF,oCAAA,iChB+1EA,OAAQ,YDNT,yBiBt1EK,sBAaJ,mCAFF,gCAGE,OAAA,YAGA,qBjB20ED,WAAA,KiBz0EC,YAAA,IhBo1EA,eAAgB,IgBl1Ed,cAAA,EjB40EH,8BiB9zED,8BCnQE,cAAA,EACA,aAAA,EAEA,UACA,OAAA,KlBokFD,QAAA,IAAA,KkBlkFC,UAAA,KACE,YAAA,IACA,cAAA,IAGF,gBjB4kFA,OAAQ,KiB1kFN,YAAA,KD2PA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjB20EH,QAAA,IAAA,KiBj1EC,UAAW,KAST,YAAA,IACA,cAAA,IAVJ,mChBg2EE,OAAQ,KgBl1EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjB20EH,WAAA,KiBv0EC,QAAS,IAAI,KC/Rb,UAAA,KACA,YAAA,IAEA,UACA,OAAA,KlBymFD,QAAA,KAAA,KkBvmFC,UAAA,KACE,YAAA,UACA,cAAA,IAGF,gBjBinFA,OAAQ,KiB/mFN,YAAA,KDuRA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjBo1EH,QAAA,KAAA,KiB11EC,UAAW,KAST,YAAA,UACA,cAAA,IAVJ,mChBy2EE,OAAQ,KgB31EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjBo1EH,WAAA,KiB30EC,QAAS,KAAK,KAEd,UAAA,KjB40ED,YAAA,UiBx0EG,cjB20EH,SAAA,SiBt0EC,4BACA,cAAA,OAEA,uBACA,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,MACA,MAAA,KjBy0ED,OAAA,KiBv0EC,YAAa,KhBk1Eb,WAAY,OACZ,eAAgB,KDLjB,oDiBz0EC,uCADA,iCAGA,MAAO,KhBk1EP,OAAQ,KACR,YAAa,KDLd,oDiBz0EC,uCADA,iCAKA,MAAO,KhBg1EP,OAAQ,KACR,YAAa,KAKf,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBvuFG,mCAJA,yBD0ZJ,gCbvWE,MAAA,QJ6rFD,2BkB1uFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJksFD,iCiB31EC,aAAc,QC5YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlB2uFH,gCiBh2EC,MAAO,QCtYL,iBAAA,QlByuFH,aAAA,QCWD,oCACE,MAAO,QAKT,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBrwFG,mCAJA,yBD6ZJ,gCb1WE,MAAA,QJ2tFD,2BkBxwFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJguFD,iCiBt3EC,aAAc,QC/YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBywFH,gCiB33EC,MAAO,QCzYL,iBAAA,QlBuwFH,aAAA,QCWD,oCACE,MAAO,QAKT,qBAEA,4BAJA,0BADA,uBAEA,kBAEA,yBDNC,0BkBnyFG,iCAJA,uBDgaJ,8Bb7WE,MAAA,QJyvFD,yBkBtyFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJ8vFD,+BiBj5EC,aAAc,QClZZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBuyFH,8BiBt5EC,MAAO,QC5YL,iBAAA,QlBqyFH,aAAA,QiBj5EG,kCjBo5EH,MAAA,QiBj5EG,2CjBo5EH,IAAA,KiBz4EC,mDACA,IAAA,EAEA,YjB44ED,QAAA,MiBzzEC,WAAY,IAwEZ,cAAe,KAtIX,MAAA,QAEA,yBjB23EH,yBiBvvEC,QAAS,aA/HP,cAAA,EACA,eAAA,OjB03EH,2BiB5vEC,QAAS,aAxHP,MAAA,KjBu3EH,eAAA,OiBn3EG,kCACA,QAAA,aAmHJ,0BhB8wEE,QAAS,aACT,eAAgB,OgBv3Ed,wCjBg3EH,6CiBxwED,2CjB2wEC,MAAA,KiB/2EG,wCACA,MAAA,KAmGJ,4BhB0xEE,cAAe,EgBt3Eb,eAAA,OAGA,uBADA,oBjBg3EH,QAAA,aiBtxEC,WAAY,EhBiyEZ,cAAe,EgBv3EX,eAAA,OAsFN,6BAAA,0BAjFI,aAAA,EAiFJ,4CjB+xEC,sCiB12EG,SAAA,SjB62EH,YAAA,EiBl2ED,kDhB82EE,IAAK,GgBp2EL,2BjBi2EH,kCiBl2EG,wBAEA,+BAXF,YAAa,IhBs3Eb,WAAY,EgBr2EV,cAAA,EJviBF,2BIshBF,wBJrhBE,WAAA,KI4jBA,6BAyBA,aAAc,MAnCV,YAAA,MAEA,yBjB01EH,gCACF,YAAA,IiB13EG,cAAe,EAwCf,WAAA,OAwBJ,sDAdQ,MAAA,KjBg1EL,yBACF,+CiBr0EC,YAAA,KAEE,UAAW,MjBw0EZ,yBACF,+CmBt6FG,YAAa,IACf,UAAA,MAGA,KACA,QAAA,aACA,QAAA,IAAA,KAAA,cAAA,EACA,UAAA,KACA,YAAA,IACA,YAAA,WACA,WAAA,OC0CA,YAAA,OACA,eAAA,OACA,iBAAA,aACA,aAAA,ahB+JA,OAAA,QACG,oBAAA,KACC,iBAAA,KACI,gBAAA,KJiuFT,YAAA,KmBz6FG,iBAAA,KlBq7FF,OAAQ,IAAI,MAAM,YAClB,cAAe,IDHhB,kBKx8FC,kBAEA,WACA,kBJ28FF,kBADA,WkBl7FE,QAAA,KAAA,OlBy7FA,QAAS,IAAI,KAAK,yBAClB,eAAgB,KkBn7FhB,WnB46FD,WmB/6FG,WlB27FF,MAAO,KkBt7FL,gBAAA,Kf6BM,YADR,YJq5FD,iBAAA,KmB56FC,QAAA,ElBw7FA,mBAAoB,MAAM,EAAE,IAAI,IAAI,iBAC5B,WAAY,MAAM,EAAE,IAAI,IAAI,iBoBn+FpC,cAGA,ejB8DA,wBACQ,OAAA,YJ65FT,OAAA,kBmB56FG,mBAAA,KlBw7FM,WAAY,KkBt7FhB,QAAA,IASN,eC3DE,yBACA,eAAA,KpBo+FD,aoBj+FC,MAAA,KnB6+FA,iBAAkB,KmB3+FhB,aAAA,KpBq+FH,mBoBn+FO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBo+FH,mBoBj+FC,MAAA,KnB6+FA,iBAAkB,QAClB,aAAc,QmBz+FR,oBADJ,oBpBo+FH,mCoBj+FG,MAAA,KnB6+FF,iBAAkB,QAClB,aAAc,QmBz+FN,0BnB++FV,0BAHA,0BmB7+FM,0BnB++FN,0BAHA,0BDFC,yCoB3+FK,yCnB++FN,yCmB1+FE,MAAA,KnBk/FA,iBAAkB,QAClB,aAAc,QmB3+FZ,oBpBm+FH,oBoBn+FG,mCnBg/FF,iBAAkB,KmB5+FV,4BnBi/FV,4BAHA,4BDHC,6BCOD,6BAHA,6BkB99FA,sCClBM,sCnBi/FN,sCmB3+FI,iBAAA,KACA,aAAA,KDcJ,oBC9DE,MAAA,KACA,iBAAA,KpB6hGD,aoB1hGC,MAAA,KnBsiGA,iBAAkB,QmBpiGhB,aAAA,QpB8hGH,mBoB5hGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB6hGH,mBoB1hGC,MAAA,KnBsiGA,iBAAkB,QAClB,aAAc,QmBliGR,oBADJ,oBpB6hGH,mCoB1hGG,MAAA,KnBsiGF,iBAAkB,QAClB,aAAc,QmBliGN,0BnBwiGV,0BAHA,0BmBtiGM,0BnBwiGN,0BAHA,0BDFC,yCoBpiGK,yCnBwiGN,yCmBniGE,MAAA,KnB2iGA,iBAAkB,QAClB,aAAc,QmBpiGZ,oBpB4hGH,oBoB5hGG,mCnByiGF,iBAAkB,KmBriGV,4BnB0iGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBphGA,sCCrBM,sCnB0iGN,sCmBpiGI,iBAAA,QACA,aAAA,QDkBJ,oBClEE,MAAA,QACA,iBAAA,KpBslGD,aoBnlGC,MAAA,KnB+lGA,iBAAkB,QmB7lGhB,aAAA,QpBulGH,mBoBrlGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBslGH,mBoBnlGC,MAAA,KnB+lGA,iBAAkB,QAClB,aAAc,QmB3lGR,oBADJ,oBpBslGH,mCoBnlGG,MAAA,KnB+lGF,iBAAkB,QAClB,aAAc,QmB3lGN,0BnBimGV,0BAHA,0BmB/lGM,0BnBimGN,0BAHA,0BDFC,yCoB7lGK,yCnBimGN,yCmB5lGE,MAAA,KnBomGA,iBAAkB,QAClB,aAAc,QmB7lGZ,oBpBqlGH,oBoBrlGG,mCnBkmGF,iBAAkB,KmB9lGV,4BnBmmGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBzkGA,sCCzBM,sCnBmmGN,sCmB7lGI,iBAAA,QACA,aAAA,QDsBJ,oBCtEE,MAAA,QACA,iBAAA,KpB+oGD,UoB5oGC,MAAA,KnBwpGA,iBAAkB,QmBtpGhB,aAAA,QpBgpGH,gBoB9oGO,gBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB+oGH,gBoB5oGC,MAAA,KnBwpGA,iBAAkB,QAClB,aAAc,QmBppGR,iBADJ,iBpB+oGH,gCoB5oGG,MAAA,KnBwpGF,iBAAkB,QAClB,aAAc,QmBppGN,uBnB0pGV,uBAHA,uBmBxpGM,uBnB0pGN,uBAHA,uBDFC,sCoBtpGK,sCnB0pGN,sCmBrpGE,MAAA,KnB6pGA,iBAAkB,QAClB,aAAc,QmBtpGZ,iBpB8oGH,iBoB9oGG,gCnB2pGF,iBAAkB,KmBvpGV,yBnB4pGV,yBAHA,yBDHC,0BCOD,0BAHA,0BkB9nGA,mCC7BM,mCnB4pGN,mCmBtpGI,iBAAA,QACA,aAAA,QD0BJ,iBC1EE,MAAA,QACA,iBAAA,KpBwsGD,aoBrsGC,MAAA,KnBitGA,iBAAkB,QmB/sGhB,aAAA,QpBysGH,mBoBvsGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBwsGH,mBoBrsGC,MAAA,KnBitGA,iBAAkB,QAClB,aAAc,QmB7sGR,oBADJ,oBpBwsGH,mCoBrsGG,MAAA,KnBitGF,iBAAkB,QAClB,aAAc,QmB7sGN,0BnBmtGV,0BAHA,0BmBjtGM,0BnBmtGN,0BAHA,0BDFC,yCoB/sGK,yCnBmtGN,yCmB9sGE,MAAA,KnBstGA,iBAAkB,QAClB,aAAc,QmB/sGZ,oBpBusGH,oBoBvsGG,mCnBotGF,iBAAkB,KmBh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mBAKJ,qBAEE,MAAA,QvBvCA,cACC,QAAA,KAAA,K3By0KF,iBAAA,QkDxxKC,WAAY,IAAI,MAAM,KjDozKtB,2BAA4B,IiDjzK1B,0BAAA,IAHJ,mBAAA,mCAMM,cAAA,ElD2xKL,oCkDtxKG,oDjDkzKF,aAAc,IAAI,EiDhzKZ,cAAA,EvBtEL,4D3Bg2KF,4EkDpxKG,WAAA,EjDgzKF,uBAAwB,IiD9yKlB,wBAAA,IvBtEL,0D3B81KF,0EkD7yKC,cAAe,EvB1Df,2BAAA,IACC,0BAAA,IuB0FH,+EAEI,uBAAA,ElDixKH,wBAAA,EkD7wKC,wDlDgxKD,iBAAA,EC4BD,0BACE,iBAAkB,EiDryKpB,8BlD6wKC,ckD7wKD,gCjD0yKE,cAAe,EiD1yKjB,sCAQM,sBlD2wKL,wCC4BC,cAAe,K0Bx5Kf,aAAA,KuByGF,wDlDwxKC,0BC4BC,uBAAwB,IACxB,wBAAyB,IiDrzK3B,yFAoBQ,yFlD2wKP,2DkD5wKO,2DjDwyKN,uBAAwB,IACxB,wBAAyB,IAK3B,wGiDj0KA,wGjD+zKA,wGDtBC,wGCuBD,0EiDh0KA,0EjD8zKA,0EiDtyKU,0EjD8yKR,uBAAwB,IAK1B,uGiD30KA,uGjDy0KA,uGDtBC,uGCuBD,yEiD10KA,yEjDw0KA,yEiD5yKU,yEvB7HR,wBAAA,IuBiGF,sDlDwzKC,yBC4BC,2BAA4B,IAC5B,0BAA2B,IiD3yKrB,qFA1CR,qFAyCQ,wDlDsxKP,wDC4BC,2BAA4B,IAC5B,0BAA2B,IAG7B,oGDtBC,oGCwBD,oGiDj2KA,oGjD81KA,uEiDhzKU,uEjDkzKV,uEiDh2KA,uEjDs2KE,0BAA2B,IAG7B,mGDtBC,mGCwBD,mGiD32KA,mGjDw2KA,sEiDtzKU,sEjDwzKV,sEiD12KA,sEjDg3KE,2BAA4B,IiDrzK1B,0BlD8xKH,qCkDz1KD,0BAAA,qCA+DI,WAAA,IAAA,MAAA,KA/DJ,kDAAA,kDAmEI,WAAA,EAnEJ,uBAAA,yCjD83KE,OAAQ,EiDpzKA,+CjDwzKV,+CiDl4KA,+CjDo4KA,+CAEA,+CANA,+CDjBC,iECoBD,iEiDn4KA,iEjDq4KA,iEAEA,iEANA,iEAWE,YAAa,EiD9zKL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1MG,QAAS,oB/Dm2MV,c+Dr2MC,c/Ds2MH,QAAA,sB+Dj2MG,yB/Dq2MD,kBACF,QAAA,iB+Dj2MG,yB/Dq2MD,mBACF,QAAA,kBgEn6MC,yBhEu6MC,yBgEt6MD,QAAA,wBACA,+CAAU,YhE26MT,QAAA,gBC4BD,iB+Dr8MU,QAAA,gBhE86MX,c+Dx2MG,QAAS,oB/D42MV,c+D92MC,c/D+2MH,QAAA,sB+D12MG,+C/D82MD,kBACF,QAAA,iB+D12MG,+C/D82MD,mBACF,QAAA,kBgEj8MC,+ChEq8MC,yBgEp8MD,QAAA,wBACA,gDAAU,YhEy8MT,QAAA,gBC4BD,iB+Dn+MU,QAAA,gBhE48MX,c+Dj3MG,QAAS,oB/Dq3MV,c+Dv3MC,c/Dw3MH,QAAA,sB+Dn3MG,gD/Du3MD,kBACF,QAAA,iB+Dn3MG,gD/Du3MD,mBACF,QAAA,kBgE/9MC,gDhEm+MC,yBgEl+MD,QAAA,wBACA,0BAAU,YhEu+MT,QAAA,gBC4BD,iB+DjgNU,QAAA,gBhE0+MX,c+D13MG,QAAS,oB/D83MV,c+Dh4MC,c/Di4MH,QAAA,sB+D53MG,0B/Dg4MD,kBACF,QAAA,iB+D53MG,0B/Dg4MD,mBACF,QAAA,kBgEr/MC,0BhEy/MC,yBACF,QAAA,wBgE1/MC,yBhE8/MC,WACF,QAAA,gBgE//MC,+ChEmgNC,WACF,QAAA,gBgEpgNC,gDhEwgNC,WACF,QAAA,gBAGA,0B+Dn3MC,WA4BE,QAAS,gBC5LX,eAAU,QAAA,eACV,aAAU,ehE4hNT,QAAA,gBC4BD,oB+DtjNU,QAAA,gBhE+hNX,iB+Dj4MG,QAAS,oBAMX,iB/D83MD,iB+Dz2MG,QAAS,sB/D82MZ,qB+Dl4MC,QAAS,e/Dq4MV,a+D/3MC,qBAcE,QAAS,iB/Ds3MZ,sB+Dn4MC,QAAS,e/Ds4MV,a+Dh4MC,sBAOE,QAAS,kB/D83MZ,4B+D/3MC,QAAS,eCpLT,ahEujNC,4BACF,QAAA,wBC6BD,aACE,cACE,QAAS"}
\ No newline at end of file
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Bold.ttf b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Bold.ttf
deleted file mode 100644
index 3d4e6fe2f..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Bold.ttf and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Bold.woff b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Bold.woff
deleted file mode 100644
index f145f83e9..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Bold.woff and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Regular.ttf b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Regular.ttf
deleted file mode 100644
index 83a21b724..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Regular.ttf and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Regular.woff b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Regular.woff
deleted file mode 100644
index 5ee38e2a9..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/fonts/PT_Sans-Web-Regular.woff and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/accordion.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/accordion.css
deleted file mode 100644
index 13e57528b..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/accordion.css
+++ /dev/null
@@ -1,36 +0,0 @@
-/*!
- * jQuery UI Accordion 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/accordion/#theming
- */
-.ui-accordion .ui-accordion-header {
- display: block;
- cursor: pointer;
- position: relative;
- margin: 2px 0 0 0;
- padding: .5em .5em .5em .7em;
- min-height: 0; /* support: IE7 */
- font-size: 100%;
-}
-.ui-accordion .ui-accordion-icons {
- padding-left: 2.2em;
-}
-.ui-accordion .ui-accordion-icons .ui-accordion-icons {
- padding-left: 2.2em;
-}
-.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
- position: absolute;
- left: .5em;
- top: 50%;
- margin-top: -8px;
-}
-.ui-accordion .ui-accordion-content {
- padding: 1em 2.2em;
- border-top: 0;
- overflow: auto;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/all.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/all.css
deleted file mode 100644
index 0bab99138..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/all.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/*!
- * jQuery UI CSS Framework 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/category/theming/
- */
-@import "base.css";
-@import "theme.css";
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/autocomplete.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/autocomplete.css
deleted file mode 100644
index c21c54f60..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/autocomplete.css
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * jQuery UI Autocomplete 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/autocomplete/#theming
- */
-.ui-autocomplete {
- position: absolute;
- top: 0;
- left: 0;
- cursor: default;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/base.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/base.css
deleted file mode 100644
index 7f5317264..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/base.css
+++ /dev/null
@@ -1,28 +0,0 @@
-/*!
- * jQuery UI CSS Framework 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/category/theming/
- */
-@import url("core.css");
-
-@import url("accordion.css");
-@import url("autocomplete.css");
-@import url("button.css");
-@import url("datepicker.css");
-@import url("dialog.css");
-@import url("draggable.css");
-@import url("menu.css");
-@import url("progressbar.css");
-@import url("resizable.css");
-@import url("selectable.css");
-@import url("selectmenu.css");
-@import url("sortable.css");
-@import url("slider.css");
-@import url("spinner.css");
-@import url("tabs.css");
-@import url("tooltip.css");
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/button.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/button.css
deleted file mode 100644
index 7f11bdd27..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/button.css
+++ /dev/null
@@ -1,114 +0,0 @@
-/*!
- * jQuery UI Button 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/button/#theming
- */
-.ui-button {
- display: inline-block;
- position: relative;
- padding: 0;
- line-height: normal;
- margin-right: .1em;
- cursor: pointer;
- vertical-align: middle;
- text-align: center;
- overflow: visible; /* removes extra width in IE */
-}
-.ui-button,
-.ui-button:link,
-.ui-button:visited,
-.ui-button:hover,
-.ui-button:active {
- text-decoration: none;
-}
-/* to make room for the icon, a width needs to be set here */
-.ui-button-icon-only {
- width: 2.2em;
-}
-/* button elements seem to need a little more width */
-button.ui-button-icon-only {
- width: 2.4em;
-}
-.ui-button-icons-only {
- width: 3.4em;
-}
-button.ui-button-icons-only {
- width: 3.7em;
-}
-
-/* button text element */
-.ui-button .ui-button-text {
- display: block;
- line-height: normal;
-}
-.ui-button-text-only .ui-button-text {
- padding: .4em 1em;
-}
-.ui-button-icon-only .ui-button-text,
-.ui-button-icons-only .ui-button-text {
- padding: .4em;
- text-indent: -9999999px;
-}
-.ui-button-text-icon-primary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
- padding: .4em 1em .4em 2.1em;
-}
-.ui-button-text-icon-secondary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
- padding: .4em 2.1em .4em 1em;
-}
-.ui-button-text-icons .ui-button-text {
- padding-left: 2.1em;
- padding-right: 2.1em;
-}
-/* no icon support for input elements, provide padding by default */
-input.ui-button {
- padding: .4em 1em;
-}
-
-/* button icon element(s) */
-.ui-button-icon-only .ui-icon,
-.ui-button-text-icon-primary .ui-icon,
-.ui-button-text-icon-secondary .ui-icon,
-.ui-button-text-icons .ui-icon,
-.ui-button-icons-only .ui-icon {
- position: absolute;
- top: 50%;
- margin-top: -8px;
-}
-.ui-button-icon-only .ui-icon {
- left: 50%;
- margin-left: -8px;
-}
-.ui-button-text-icon-primary .ui-button-icon-primary,
-.ui-button-text-icons .ui-button-icon-primary,
-.ui-button-icons-only .ui-button-icon-primary {
- left: .5em;
-}
-.ui-button-text-icon-secondary .ui-button-icon-secondary,
-.ui-button-text-icons .ui-button-icon-secondary,
-.ui-button-icons-only .ui-button-icon-secondary {
- right: .5em;
-}
-
-/* button sets */
-.ui-buttonset {
- margin-right: 7px;
-}
-.ui-buttonset .ui-button {
- margin-left: 0;
- margin-right: -.3em;
-}
-
-/* workarounds */
-/* reset extra padding in Firefox, see h5bp.com/l */
-input.ui-button::-moz-focus-inner,
-button.ui-button::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/core.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/core.css
deleted file mode 100644
index 154f1f89f..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/core.css
+++ /dev/null
@@ -1,93 +0,0 @@
-/*!
- * jQuery UI CSS Framework 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/category/theming/
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden {
- display: none;
-}
-.ui-helper-hidden-accessible {
- border: 0;
- clip: rect(0 0 0 0);
- height: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
- width: 1px;
-}
-.ui-helper-reset {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 0;
- line-height: 1.3;
- text-decoration: none;
- font-size: 100%;
- list-style: none;
-}
-.ui-helper-clearfix:before,
-.ui-helper-clearfix:after {
- content: "";
- display: table;
- border-collapse: collapse;
-}
-.ui-helper-clearfix:after {
- clear: both;
-}
-.ui-helper-clearfix {
- min-height: 0; /* support: IE7 */
-}
-.ui-helper-zfix {
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- position: absolute;
- opacity: 0;
- filter:Alpha(Opacity=0); /* support: IE8 */
-}
-
-.ui-front {
- z-index: 100;
-}
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled {
- cursor: default !important;
-}
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
- display: block;
- text-indent: -99999px;
- overflow: hidden;
- background-repeat: no-repeat;
-}
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/datepicker.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/datepicker.css
deleted file mode 100644
index ea559d876..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/datepicker.css
+++ /dev/null
@@ -1,175 +0,0 @@
-/*!
- * jQuery UI Datepicker 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/datepicker/#theming
- */
-.ui-datepicker {
- width: 17em;
- padding: .2em .2em 0;
- display: none;
-}
-.ui-datepicker .ui-datepicker-header {
- position: relative;
- padding: .2em 0;
-}
-.ui-datepicker .ui-datepicker-prev,
-.ui-datepicker .ui-datepicker-next {
- position: absolute;
- top: 2px;
- width: 1.8em;
- height: 1.8em;
-}
-.ui-datepicker .ui-datepicker-prev-hover,
-.ui-datepicker .ui-datepicker-next-hover {
- top: 1px;
-}
-.ui-datepicker .ui-datepicker-prev {
- left: 2px;
-}
-.ui-datepicker .ui-datepicker-next {
- right: 2px;
-}
-.ui-datepicker .ui-datepicker-prev-hover {
- left: 1px;
-}
-.ui-datepicker .ui-datepicker-next-hover {
- right: 1px;
-}
-.ui-datepicker .ui-datepicker-prev span,
-.ui-datepicker .ui-datepicker-next span {
- display: block;
- position: absolute;
- left: 50%;
- margin-left: -8px;
- top: 50%;
- margin-top: -8px;
-}
-.ui-datepicker .ui-datepicker-title {
- margin: 0 2.3em;
- line-height: 1.8em;
- text-align: center;
-}
-.ui-datepicker .ui-datepicker-title select {
- font-size: 1em;
- margin: 1px 0;
-}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year {
- width: 45%;
-}
-.ui-datepicker table {
- width: 100%;
- font-size: .9em;
- border-collapse: collapse;
- margin: 0 0 .4em;
-}
-.ui-datepicker th {
- padding: .7em .3em;
- text-align: center;
- font-weight: bold;
- border: 0;
-}
-.ui-datepicker td {
- border: 0;
- padding: 1px;
-}
-.ui-datepicker td span,
-.ui-datepicker td a {
- display: block;
- padding: .2em;
- text-align: right;
- text-decoration: none;
-}
-.ui-datepicker .ui-datepicker-buttonpane {
- background-image: none;
- margin: .7em 0 0 0;
- padding: 0 .2em;
- border-left: 0;
- border-right: 0;
- border-bottom: 0;
-}
-.ui-datepicker .ui-datepicker-buttonpane button {
- float: right;
- margin: .5em .2em .4em;
- cursor: pointer;
- padding: .2em .6em .3em .6em;
- width: auto;
- overflow: visible;
-}
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
- float: left;
-}
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi {
- width: auto;
-}
-.ui-datepicker-multi .ui-datepicker-group {
- float: left;
-}
-.ui-datepicker-multi .ui-datepicker-group table {
- width: 95%;
- margin: 0 auto .4em;
-}
-.ui-datepicker-multi-2 .ui-datepicker-group {
- width: 50%;
-}
-.ui-datepicker-multi-3 .ui-datepicker-group {
- width: 33.3%;
-}
-.ui-datepicker-multi-4 .ui-datepicker-group {
- width: 25%;
-}
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
- border-left-width: 0;
-}
-.ui-datepicker-multi .ui-datepicker-buttonpane {
- clear: left;
-}
-.ui-datepicker-row-break {
- clear: both;
- width: 100%;
- font-size: 0;
-}
-
-/* RTL support */
-.ui-datepicker-rtl {
- direction: rtl;
-}
-.ui-datepicker-rtl .ui-datepicker-prev {
- right: 2px;
- left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next {
- left: 2px;
- right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-prev:hover {
- right: 1px;
- left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next:hover {
- left: 1px;
- right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane {
- clear: right;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button {
- float: left;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
-.ui-datepicker-rtl .ui-datepicker-group {
- float: right;
-}
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
- border-right-width: 0;
- border-left-width: 1px;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/dialog.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/dialog.css
deleted file mode 100644
index 66b90cc87..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/dialog.css
+++ /dev/null
@@ -1,70 +0,0 @@
-/*!
- * jQuery UI Dialog 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/dialog/#theming
- */
-.ui-dialog {
- overflow: hidden;
- position: absolute;
- top: 0;
- left: 0;
- padding: .2em;
- outline: 0;
-}
-.ui-dialog .ui-dialog-titlebar {
- padding: .4em 1em;
- position: relative;
-}
-.ui-dialog .ui-dialog-title {
- float: left;
- margin: .1em 0;
- white-space: nowrap;
- width: 90%;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-.ui-dialog .ui-dialog-titlebar-close {
- position: absolute;
- right: .3em;
- top: 50%;
- width: 20px;
- margin: -10px 0 0 0;
- padding: 1px;
- height: 20px;
-}
-.ui-dialog .ui-dialog-content {
- position: relative;
- border: 0;
- padding: .5em 1em;
- background: none;
- overflow: auto;
-}
-.ui-dialog .ui-dialog-buttonpane {
- text-align: left;
- border-width: 1px 0 0 0;
- background-image: none;
- margin-top: .5em;
- padding: .3em 1em .5em .4em;
-}
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
- float: right;
-}
-.ui-dialog .ui-dialog-buttonpane button {
- margin: .5em .4em .5em 0;
- cursor: pointer;
-}
-.ui-dialog .ui-resizable-se {
- width: 12px;
- height: 12px;
- right: -5px;
- bottom: -5px;
- background-position: 16px 16px;
-}
-.ui-draggable .ui-dialog-titlebar {
- cursor: move;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/draggable.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/draggable.css
deleted file mode 100644
index df01f29f3..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/draggable.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/*!
- * jQuery UI Draggable 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-.ui-draggable-handle {
- -ms-touch-action: none;
- touch-action: none;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png
deleted file mode 100644
index 5b5dab2ab..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png
deleted file mode 100644
index ac8b229af..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png
deleted file mode 100644
index ad3d6346e..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100644
index 42ccba269..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png
deleted file mode 100644
index 5a46b47cb..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png
deleted file mode 100644
index 86c2baa65..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png
deleted file mode 100644
index 4443fdc1a..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png
deleted file mode 100644
index 7c9fa6c6e..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_222222_256x240.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_222222_256x240.png
deleted file mode 100644
index ee039dc09..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_222222_256x240.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_2e83ff_256x240.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_2e83ff_256x240.png
deleted file mode 100644
index 45e8928e5..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_2e83ff_256x240.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_454545_256x240.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_454545_256x240.png
deleted file mode 100644
index 7ec70d11b..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_454545_256x240.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_888888_256x240.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_888888_256x240.png
deleted file mode 100644
index 5ba708c39..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_888888_256x240.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_cd0a0a_256x240.png b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_cd0a0a_256x240.png
deleted file mode 100644
index 7930a5580..000000000
Binary files a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/images/ui-icons_cd0a0a_256x240.png and /dev/null differ
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/menu.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/menu.css
deleted file mode 100644
index 221fc5176..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/menu.css
+++ /dev/null
@@ -1,63 +0,0 @@
-/*!
- * jQuery UI Menu 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/menu/#theming
- */
-.ui-menu {
- list-style: none;
- padding: 0;
- margin: 0;
- display: block;
- outline: none;
-}
-.ui-menu .ui-menu {
- position: absolute;
-}
-.ui-menu .ui-menu-item {
- position: relative;
- margin: 0;
- padding: 3px 1em 3px .4em;
- cursor: pointer;
- min-height: 0; /* support: IE7 */
- /* support: IE10, see #8844 */
- list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
-}
-.ui-menu .ui-menu-divider {
- margin: 5px 0;
- height: 0;
- font-size: 0;
- line-height: 0;
- border-width: 1px 0 0 0;
-}
-.ui-menu .ui-state-focus,
-.ui-menu .ui-state-active {
- margin: -1px;
-}
-
-/* icon support */
-.ui-menu-icons {
- position: relative;
-}
-.ui-menu-icons .ui-menu-item {
- padding-left: 2em;
-}
-
-/* left-aligned */
-.ui-menu .ui-icon {
- position: absolute;
- top: 0;
- bottom: 0;
- left: .2em;
- margin: auto 0;
-}
-
-/* right-aligned */
-.ui-menu .ui-menu-icon {
- left: auto;
- right: 0;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/progressbar.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/progressbar.css
deleted file mode 100644
index 5e43600b7..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/progressbar.css
+++ /dev/null
@@ -1,28 +0,0 @@
-/*!
- * jQuery UI Progressbar 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/progressbar/#theming
- */
-.ui-progressbar {
- height: 2em;
- text-align: left;
- overflow: hidden;
-}
-.ui-progressbar .ui-progressbar-value {
- margin: -1px;
- height: 100%;
-}
-.ui-progressbar .ui-progressbar-overlay {
- background: url("data:image/gif;base64,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");
- height: 100%;
- filter: alpha(opacity=25); /* support: IE8 */
- opacity: 0.25;
-}
-.ui-progressbar-indeterminate .ui-progressbar-value {
- background-image: none;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/resizable.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/resizable.css
deleted file mode 100644
index 23d9a076a..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/resizable.css
+++ /dev/null
@@ -1,78 +0,0 @@
-/*!
- * jQuery UI Resizable 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-.ui-resizable {
- position: relative;
-}
-.ui-resizable-handle {
- position: absolute;
- font-size: 0.1px;
- display: block;
- -ms-touch-action: none;
- touch-action: none;
-}
-.ui-resizable-disabled .ui-resizable-handle,
-.ui-resizable-autohide .ui-resizable-handle {
- display: none;
-}
-.ui-resizable-n {
- cursor: n-resize;
- height: 7px;
- width: 100%;
- top: -5px;
- left: 0;
-}
-.ui-resizable-s {
- cursor: s-resize;
- height: 7px;
- width: 100%;
- bottom: -5px;
- left: 0;
-}
-.ui-resizable-e {
- cursor: e-resize;
- width: 7px;
- right: -5px;
- top: 0;
- height: 100%;
-}
-.ui-resizable-w {
- cursor: w-resize;
- width: 7px;
- left: -5px;
- top: 0;
- height: 100%;
-}
-.ui-resizable-se {
- cursor: se-resize;
- width: 12px;
- height: 12px;
- right: 1px;
- bottom: 1px;
-}
-.ui-resizable-sw {
- cursor: sw-resize;
- width: 9px;
- height: 9px;
- left: -5px;
- bottom: -5px;
-}
-.ui-resizable-nw {
- cursor: nw-resize;
- width: 9px;
- height: 9px;
- left: -5px;
- top: -5px;
-}
-.ui-resizable-ne {
- cursor: ne-resize;
- width: 9px;
- height: 9px;
- right: -5px;
- top: -5px;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/selectable.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/selectable.css
deleted file mode 100644
index 482597cec..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/selectable.css
+++ /dev/null
@@ -1,17 +0,0 @@
-/*!
- * jQuery UI Selectable 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-.ui-selectable {
- -ms-touch-action: none;
- touch-action: none;
-}
-.ui-selectable-helper {
- position: absolute;
- z-index: 100;
- border: 1px dotted black;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/selectmenu.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/selectmenu.css
deleted file mode 100644
index 2417b6b40..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/selectmenu.css
+++ /dev/null
@@ -1,59 +0,0 @@
-/*!
- * jQuery UI Selectmenu 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/selectmenu/#theming
- */
-.ui-selectmenu-menu {
- padding: 0;
- margin: 0;
- position: absolute;
- top: 0;
- left: 0;
- display: none;
-}
-.ui-selectmenu-menu .ui-menu {
- overflow: auto;
- /* Support: IE7 */
- overflow-x: hidden;
- padding-bottom: 1px;
-}
-.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
- font-size: 1em;
- font-weight: bold;
- line-height: 1.5;
- padding: 2px 0.4em;
- margin: 0.5em 0 0 0;
- height: auto;
- border: 0;
-}
-.ui-selectmenu-open {
- display: block;
-}
-.ui-selectmenu-button {
- display: inline-block;
- overflow: hidden;
- position: relative;
- text-decoration: none;
- cursor: pointer;
-}
-.ui-selectmenu-button span.ui-icon {
- right: 0.5em;
- left: auto;
- margin-top: -8px;
- position: absolute;
- top: 50%;
-}
-.ui-selectmenu-button span.ui-selectmenu-text {
- text-align: left;
- padding: 0.4em 2.1em 0.4em 1em;
- display: block;
- line-height: 1.4;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/slider.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/slider.css
deleted file mode 100644
index 7c4f01ad8..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/slider.css
+++ /dev/null
@@ -1,75 +0,0 @@
-/*!
- * jQuery UI Slider 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/slider/#theming
- */
-.ui-slider {
- position: relative;
- text-align: left;
-}
-.ui-slider .ui-slider-handle {
- position: absolute;
- z-index: 2;
- width: 1.2em;
- height: 1.2em;
- cursor: default;
- -ms-touch-action: none;
- touch-action: none;
-}
-.ui-slider .ui-slider-range {
- position: absolute;
- z-index: 1;
- font-size: .7em;
- display: block;
- border: 0;
- background-position: 0 0;
-}
-
-/* support: IE8 - See #6727 */
-.ui-slider.ui-state-disabled .ui-slider-handle,
-.ui-slider.ui-state-disabled .ui-slider-range {
- filter: inherit;
-}
-
-.ui-slider-horizontal {
- height: .8em;
-}
-.ui-slider-horizontal .ui-slider-handle {
- top: -.3em;
- margin-left: -.6em;
-}
-.ui-slider-horizontal .ui-slider-range {
- top: 0;
- height: 100%;
-}
-.ui-slider-horizontal .ui-slider-range-min {
- left: 0;
-}
-.ui-slider-horizontal .ui-slider-range-max {
- right: 0;
-}
-
-.ui-slider-vertical {
- width: .8em;
- height: 100px;
-}
-.ui-slider-vertical .ui-slider-handle {
- left: -.3em;
- margin-left: 0;
- margin-bottom: -.6em;
-}
-.ui-slider-vertical .ui-slider-range {
- left: 0;
- width: 100%;
-}
-.ui-slider-vertical .ui-slider-range-min {
- bottom: 0;
-}
-.ui-slider-vertical .ui-slider-range-max {
- top: 0;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/sortable.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/sortable.css
deleted file mode 100644
index 1c27badb4..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/sortable.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/*!
- * jQuery UI Sortable 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-.ui-sortable-handle {
- -ms-touch-action: none;
- touch-action: none;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/spinner.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/spinner.css
deleted file mode 100644
index 9a9b78b4f..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/spinner.css
+++ /dev/null
@@ -1,65 +0,0 @@
-/*!
- * jQuery UI Spinner 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/spinner/#theming
- */
-.ui-spinner {
- position: relative;
- display: inline-block;
- overflow: hidden;
- padding: 0;
- vertical-align: middle;
-}
-.ui-spinner-input {
- border: none;
- background: none;
- color: inherit;
- padding: 0;
- margin: .2em 0;
- vertical-align: middle;
- margin-left: .4em;
- margin-right: 22px;
-}
-.ui-spinner-button {
- width: 16px;
- height: 50%;
- font-size: .5em;
- padding: 0;
- margin: 0;
- text-align: center;
- position: absolute;
- cursor: default;
- display: block;
- overflow: hidden;
- right: 0;
-}
-/* more specificity required here to override default borders */
-.ui-spinner a.ui-spinner-button {
- border-top: none;
- border-bottom: none;
- border-right: none;
-}
-/* vertically center icon */
-.ui-spinner .ui-icon {
- position: absolute;
- margin-top: -8px;
- top: 50%;
- left: 0;
-}
-.ui-spinner-up {
- top: 0;
-}
-.ui-spinner-down {
- bottom: 0;
-}
-
-/* TR overrides */
-.ui-spinner .ui-icon-triangle-1-s {
- /* need to fix icons sprite */
- background-position: -65px -16px;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/tabs.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/tabs.css
deleted file mode 100644
index c92a1b874..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/tabs.css
+++ /dev/null
@@ -1,51 +0,0 @@
-/*!
- * jQuery UI Tabs 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/tabs/#theming
- */
-.ui-tabs {
- position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
- padding: .2em;
-}
-.ui-tabs .ui-tabs-nav {
- margin: 0;
- padding: .2em .2em 0;
-}
-.ui-tabs .ui-tabs-nav li {
- list-style: none;
- float: left;
- position: relative;
- top: 0;
- margin: 1px .2em 0 0;
- border-bottom-width: 0;
- padding: 0;
- white-space: nowrap;
-}
-.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
- float: left;
- padding: .5em 1em;
- text-decoration: none;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active {
- margin-bottom: -1px;
- padding-bottom: 1px;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
- cursor: text;
-}
-.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
- cursor: pointer;
-}
-.ui-tabs .ui-tabs-panel {
- display: block;
- border-width: 0;
- padding: 1em 1.4em;
- background: none;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/theme.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/theme.css
deleted file mode 100644
index 9deb49992..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/theme.css
+++ /dev/null
@@ -1,410 +0,0 @@
-/*!
- * jQuery UI CSS Framework 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/category/theming/
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget {
- font-family: Verdana,Arial,sans-serif/*{ffDefault}*/;
- font-size: 1.1em/*{fsDefault}*/;
-}
-.ui-widget .ui-widget {
- font-size: 1em;
-}
-.ui-widget input,
-.ui-widget select,
-.ui-widget textarea,
-.ui-widget button {
- font-family: Verdana,Arial,sans-serif/*{ffDefault}*/;
- font-size: 1em;
-}
-.ui-widget-content {
- border: 1px solid #aaaaaa/*{borderColorContent}*/;
- background: #ffffff/*{bgColorContent}*/ url("images/ui-bg_flat_75_ffffff_40x100.png")/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/;
- color: #222222/*{fcContent}*/;
-}
-.ui-widget-content a {
- color: #222222/*{fcContent}*/;
-}
-.ui-widget-header {
- border: 1px solid #aaaaaa/*{borderColorHeader}*/;
- background: #cccccc/*{bgColorHeader}*/ url("images/ui-bg_highlight-soft_75_cccccc_1x100.png")/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/;
- color: #222222/*{fcHeader}*/;
- font-weight: bold;
-}
-.ui-widget-header a {
- color: #222222/*{fcHeader}*/;
-}
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default,
-.ui-widget-content .ui-state-default,
-.ui-widget-header .ui-state-default {
- border: 1px solid #d3d3d3/*{borderColorDefault}*/;
- background: #e6e6e6/*{bgColorDefault}*/ url("images/ui-bg_glass_75_e6e6e6_1x400.png")/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/;
- font-weight: normal/*{fwDefault}*/;
- color: #555555/*{fcDefault}*/;
-}
-.ui-state-default a,
-.ui-state-default a:link,
-.ui-state-default a:visited {
- color: #555555/*{fcDefault}*/;
- text-decoration: none;
-}
-.ui-state-hover,
-.ui-widget-content .ui-state-hover,
-.ui-widget-header .ui-state-hover,
-.ui-state-focus,
-.ui-widget-content .ui-state-focus,
-.ui-widget-header .ui-state-focus {
- border: 1px solid #999999/*{borderColorHover}*/;
- background: #dadada/*{bgColorHover}*/ url("images/ui-bg_glass_75_dadada_1x400.png")/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/;
- font-weight: normal/*{fwDefault}*/;
- color: #212121/*{fcHover}*/;
-}
-.ui-state-hover a,
-.ui-state-hover a:hover,
-.ui-state-hover a:link,
-.ui-state-hover a:visited,
-.ui-state-focus a,
-.ui-state-focus a:hover,
-.ui-state-focus a:link,
-.ui-state-focus a:visited {
- color: #212121/*{fcHover}*/;
- text-decoration: none;
-}
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active {
- border: 1px solid #aaaaaa/*{borderColorActive}*/;
- background: #ffffff/*{bgColorActive}*/ url("images/ui-bg_glass_65_ffffff_1x400.png")/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/;
- font-weight: normal/*{fwDefault}*/;
- color: #212121/*{fcActive}*/;
-}
-.ui-state-active a,
-.ui-state-active a:link,
-.ui-state-active a:visited {
- color: #212121/*{fcActive}*/;
- text-decoration: none;
-}
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight,
-.ui-widget-content .ui-state-highlight,
-.ui-widget-header .ui-state-highlight {
- border: 1px solid #fcefa1/*{borderColorHighlight}*/;
- background: #fbf9ee/*{bgColorHighlight}*/ url("images/ui-bg_glass_55_fbf9ee_1x400.png")/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/;
- color: #363636/*{fcHighlight}*/;
-}
-.ui-state-highlight a,
-.ui-widget-content .ui-state-highlight a,
-.ui-widget-header .ui-state-highlight a {
- color: #363636/*{fcHighlight}*/;
-}
-.ui-state-error,
-.ui-widget-content .ui-state-error,
-.ui-widget-header .ui-state-error {
- border: 1px solid #cd0a0a/*{borderColorError}*/;
- background: #fef1ec/*{bgColorError}*/ url("images/ui-bg_glass_95_fef1ec_1x400.png")/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/;
- color: #cd0a0a/*{fcError}*/;
-}
-.ui-state-error a,
-.ui-widget-content .ui-state-error a,
-.ui-widget-header .ui-state-error a {
- color: #cd0a0a/*{fcError}*/;
-}
-.ui-state-error-text,
-.ui-widget-content .ui-state-error-text,
-.ui-widget-header .ui-state-error-text {
- color: #cd0a0a/*{fcError}*/;
-}
-.ui-priority-primary,
-.ui-widget-content .ui-priority-primary,
-.ui-widget-header .ui-priority-primary {
- font-weight: bold;
-}
-.ui-priority-secondary,
-.ui-widget-content .ui-priority-secondary,
-.ui-widget-header .ui-priority-secondary {
- opacity: .7;
- filter:Alpha(Opacity=70); /* support: IE8 */
- font-weight: normal;
-}
-.ui-state-disabled,
-.ui-widget-content .ui-state-disabled,
-.ui-widget-header .ui-state-disabled {
- opacity: .35;
- filter:Alpha(Opacity=35); /* support: IE8 */
- background-image: none;
-}
-.ui-state-disabled .ui-icon {
- filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
-}
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
- width: 16px;
- height: 16px;
-}
-.ui-icon,
-.ui-widget-content .ui-icon {
- background-image: url("images/ui-icons_222222_256x240.png")/*{iconsContent}*/;
-}
-.ui-widget-header .ui-icon {
- background-image: url("images/ui-icons_222222_256x240.png")/*{iconsHeader}*/;
-}
-.ui-state-default .ui-icon {
- background-image: url("images/ui-icons_888888_256x240.png")/*{iconsDefault}*/;
-}
-.ui-state-hover .ui-icon,
-.ui-state-focus .ui-icon {
- background-image: url("images/ui-icons_454545_256x240.png")/*{iconsHover}*/;
-}
-.ui-state-active .ui-icon {
- background-image: url("images/ui-icons_454545_256x240.png")/*{iconsActive}*/;
-}
-.ui-state-highlight .ui-icon {
- background-image: url("images/ui-icons_2e83ff_256x240.png")/*{iconsHighlight}*/;
-}
-.ui-state-error .ui-icon,
-.ui-state-error-text .ui-icon {
- background-image: url("images/ui-icons_cd0a0a_256x240.png")/*{iconsError}*/;
-}
-
-/* positioning */
-.ui-icon-blank { background-position: 16px 16px; }
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-left,
-.ui-corner-tl {
- border-top-left-radius: 4px/*{cornerRadius}*/;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-right,
-.ui-corner-tr {
- border-top-right-radius: 4px/*{cornerRadius}*/;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-left,
-.ui-corner-bl {
- border-bottom-left-radius: 4px/*{cornerRadius}*/;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-right,
-.ui-corner-br {
- border-bottom-right-radius: 4px/*{cornerRadius}*/;
-}
-
-/* Overlays */
-.ui-widget-overlay {
- background: #aaaaaa/*{bgColorOverlay}*/ url("images/ui-bg_flat_0_aaaaaa_40x100.png")/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/;
- opacity: .3/*{opacityOverlay}*/;
- filter: Alpha(Opacity=30)/*{opacityFilterOverlay}*/; /* support: IE8 */
-}
-.ui-widget-shadow {
- margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/;
- padding: 8px/*{thicknessShadow}*/;
- background: #aaaaaa/*{bgColorShadow}*/ url("images/ui-bg_flat_0_aaaaaa_40x100.png")/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/;
- opacity: .3/*{opacityShadow}*/;
- filter: Alpha(Opacity=30)/*{opacityFilterShadow}*/; /* support: IE8 */
- border-radius: 8px/*{cornerRadiusShadow}*/;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/tooltip.css b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/tooltip.css
deleted file mode 100644
index 6eb8b915d..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Content/themes/base/tooltip.css
+++ /dev/null
@@ -1,21 +0,0 @@
-/*!
- * jQuery UI Tooltip 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/tooltip/#theming
- */
-.ui-tooltip {
- padding: 8px;
- position: absolute;
- z-index: 9999;
- max-width: 300px;
- -webkit-box-shadow: 0 0 5px #aaa;
- box-shadow: 0 0 5px #aaa;
-}
-body .ui-tooltip {
- border-width: 2px;
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx
deleted file mode 100644
index 6dcf2610e..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx
+++ /dev/null
@@ -1,29 +0,0 @@
-<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
-<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
-<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
-<%@ Import Namespace="Microsoft.SharePoint" %>
-<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetDocumentPageImage.aspx.cs" Inherits="GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.GetDocumentPageImage" DynamicMasterPageFile="~masterurl/default.master" %>
-
-
-
-
-
-
-
-
-
-
-
-Application Page
-
-
-
-My Application Page
-
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx.cs b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx.cs
deleted file mode 100644
index 2fb4f215b..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-using System;
-using Microsoft.SharePoint;
-
-using System.Collections.Generic;
-using System.Linq;
-using System.Web;
-using System.Web.UI;
-using System.Web.UI.WebControls;
-using GroupDocs.Viewer;
-using GroupDocs.Viewer.Config;
-using GroupDocs.Viewer.Converter.Options;
-using GroupDocs.Viewer.Domain;
-using GroupDocs.Viewer.Domain.Options;
-using GroupDocs.Viewer.Handler;
-using GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer;
-using GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer.Helpers;
-using GroupDocs.Viewer.Domain.Html;
-using System.Net;
-using GroupDocs.Viewer.Domain.Containers;
-using GroupDocs.Viewer.Domain.Image;
-
-using System.Net.Mime;
-using System.Collections.Specialized;
-using System.Reflection;
-using Microsoft.SharePoint.WebControls;
-
-namespace GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint
-{
- public partial class GetDocumentPageImage : LayoutsPageBase
- {
- private static ViewerHtmlHandler _htmlHandler;
- private static ViewerImageHandler _imageHandler;
- private static string _storagePath = HttpContext.Current.Server.MapPath("~/_layouts/15/GroupDocs-Viewer-SharePoint/Storage/");
- private static string _tempPath = HttpContext.Current.Server.MapPath("~/_layouts/15/GroupDocs-Viewer-SharePoint/Storage/temp");
- private static ViewerConfig _config;
- protected void Page_Load(object sender, EventArgs e)
- {
- _config = new ViewerConfig
- {
- StoragePath = _storagePath,
- TempPath = _tempPath,
- UseCache = true
- };
-
- _htmlHandler = new ViewerHtmlHandler(_config);
- _imageHandler = new ViewerImageHandler(_config);
- GetDocumentPageImageParameters parameters = new GetDocumentPageImageParameters();
-
-
- foreach (String key in Request.QueryString.AllKeys)
- {
- if (!string.IsNullOrEmpty(Request.QueryString[key]))
- {
- var propertyInfo = parameters.GetType().GetProperty(key, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
- propertyInfo.SetValue(parameters, ChangeType(Request.QueryString[key], propertyInfo.PropertyType), null);
- }
- }
-
- string guid = parameters.Path;
- int pageIndex = parameters.PageIndex;
- int pageNumber = pageIndex + 1;
- var displayName = parameters.Path;
- /*
- //NOTE: This feature is supported starting from version 3.2.0
- CultureInfo cultureInfo = string.IsNullOrEmpty(parameters.Locale)
- ? new CultureInfo("en-Us")
- : new CultureInfo(parameters.Locale);
-
- ViewerImageHandler viewerImageHandler = new ViewerImageHandler(viewerConfig, cultureInfo);
- */
-
- var imageOptions = new ImageOptions
- {
- //ConvertImageFileType = _convertImageFileType,
- ConvertImageFileType = ConvertImageFileType.JPG,
- JpegQuality = 100,
- Watermark = Utils.GetWatermark(parameters.WatermarkText, parameters.WatermarkColor,
- parameters.WatermarkPosition, parameters.WatermarkWidth),
- Transformations = parameters.Rotate ? Transformation.Rotate : Transformation.None
- };
-
- if (parameters.Rotate && parameters.Width.HasValue)
- {
- DocumentInfoOptions documentInfoOptions = new DocumentInfoOptions(guid);
- DocumentInfoContainer documentInfoContainer = _imageHandler.GetDocumentInfo(documentInfoOptions);
-
- int side = parameters.Width.Value;
-
- int pageAngle = documentInfoContainer.Pages[pageIndex].Angle;
- if (pageAngle == 90 || pageAngle == 270)
- imageOptions.Height = side;
- else
- imageOptions.Width = side;
- }
-
- /*
- //NOTE: This feature is supported starting from version 3.2.0
- if (parameters.Quality.HasValue)
- imageOptions.JpegQuality = parameters.Quality.Value;
- */
-
- using (new InterProcessLock(guid))
- {
- List
pageImages = _imageHandler.GetPages(guid, imageOptions);
- PageImage pageImage = pageImages.Single(_ => _.PageNumber == pageNumber);
- var fileStream = pageImage.Stream;
- // return File(pageImage.Stream, GetContentType(_convertImageFileType));
- byte[] Bytes = new byte[fileStream.Length];
- fileStream.Read(Bytes, 0, Bytes.Length);
- string contentDispositionString = "attachment; filename=\"" + displayName + "\"";
-
-
- contentDispositionString = new ContentDisposition { FileName = displayName, Inline = true }.ToString();
-
-
-
- HttpContext.Current.Response.ContentType = "image/jpeg";
-
- HttpContext.Current.Response.AddHeader("Content-Disposition", contentDispositionString);
- HttpContext.Current.Response.AddHeader("Content-Length", fileStream.Length.ToString());
- HttpContext.Current.Response.OutputStream.Write(Bytes, 0, Bytes.Length);
- HttpContext.Current.Response.Flush();
- HttpContext.Current.Response.End();
- }
-
- }
-
- public object ChangeType(object value, Type conversion)
- {
- var t = conversion;
-
- if (t.IsGenericType && t.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
- {
- if (value == null)
- {
- return null;
- }
-
- t = Nullable.GetUnderlyingType(t);
- }
-
- return Convert.ChangeType(value, t);
- }
-
- }
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx.designer.cs b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx.designer.cs
deleted file mode 100644
index 174414f59..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetDocumentPageImage.aspx.designer.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint {
-
-
- public partial class GetDocumentPageImage {
-
- ///
- /// form1 control.
- ///
- ///
- /// Auto-generated field.
- /// To modify move field declaration from designer file to code-behind file.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlForm form1;
- }
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx
deleted file mode 100644
index 4d7331e2b..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx
+++ /dev/null
@@ -1,25 +0,0 @@
-<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
-<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
-<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
-<%@ Import Namespace="Microsoft.SharePoint" %>
-<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetFile.aspx.cs" Inherits="GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.GetFile" DynamicMasterPageFile="~masterurl/default.master" %>
-
-
-
-
-
-
- gfghhhfgfgffgfghfhg
-
-
-
-
-Application Page
-
-
-
-My Application Page
-
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx.cs b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx.cs
deleted file mode 100644
index f841e89bb..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-using System;
-using GroupDocs.Viewer.Config;
-using GroupDocs.Viewer.Converter.Options;
-using GroupDocs.Viewer.Domain;
-using GroupDocs.Viewer.Domain.Containers;
-using GroupDocs.Viewer.Domain.Html;
-using GroupDocs.Viewer.Domain.Options;
-using GroupDocs.Viewer.Handler;
-using GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer.Helpers;
-using GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Drawing;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Net.Mime;
-using System.Web;
-using System.Web.UI.WebControls;
-using WatermarkPosition = GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer.WatermarkPosition;
-using Microsoft.SharePoint.WebControls;
-using System.Web.Services;
-using System.Web.Script.Services;
-using GroupDocs.Viewer;
-
-namespace GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint
-{
- public partial class GetFile : LayoutsPageBase
- {
- private static ViewerHtmlHandler _htmlHandler;
- private static ViewerImageHandler _imageHandler;
-
-
- private static string _storagePath = HttpContext.Current.Server.MapPath("~/_layouts/15/GroupDocs-Viewer-SharePoint/Storage/");
- private static string _tempPath = HttpContext.Current.Server.MapPath("~/_layouts/15/GroupDocs-Viewer-SharePoint/Storage/temp");
-
- private static ViewerConfig _config;
- protected void Page_Load(object sender, EventArgs e)
- {
- _config = new ViewerConfig
- {
- StoragePath = _storagePath,
- TempPath = _tempPath,
- UseCache = true
- };
-
- _htmlHandler = new ViewerHtmlHandler(_config);
- _imageHandler = new ViewerImageHandler(_config);
-
- var parameters = (GetFileParameters)Session["fileparams"];
- Session.RemoveAll();
-
- var displayName = string.IsNullOrEmpty(parameters.DisplayName) ?
- Path.GetFileName(parameters.Path) : Uri.EscapeDataString(parameters.DisplayName);
-
- Stream fileStream;
- if (parameters.GetPdf || parameters.IsPrintable)
- {
- displayName = Path.ChangeExtension(displayName, "pdf");
-
- var getPdfFileRequest = new PdfFileOptions
- {
- Guid = parameters.Path,
- AddPrintAction = parameters.IsPrintable,
- Transformations = Transformation.Rotate | Transformation.Reorder,
- Watermark = GetWatermark(parameters),
- };
-
- var pdfFileResponse = _htmlHandler.GetPdfFile(getPdfFileRequest);
- fileStream = pdfFileResponse.Stream;
- }
- else
- {
- var fileResponse = _htmlHandler.GetFile(parameters.Path);
-
- fileStream = fileResponse.Stream;
- }
-
- //jquery.fileDownload uses this cookie to determine that a file download has completed successfully
- HttpContext.Current.Response.SetCookie(new HttpCookie("jqueryFileDownloadJSForGD", "true") { Path = "/" });
- byte[] Bytes = new byte[fileStream.Length];
- fileStream.Read(Bytes, 0, Bytes.Length);
- string contentDispositionString = "attachment; filename=\"" + displayName + "\"";
-
- if (parameters.IsPrintable)
- {
- contentDispositionString = new ContentDisposition { FileName = displayName, Inline = true }.ToString();
- }
- if (parameters.IsPrintable)
- HttpContext.Current.Response.ContentType = "application/pdf";
- else
- HttpContext.Current.Response.ContentType = "application/octet-stream";
-
- HttpContext.Current.Response.AddHeader("Content-Disposition", contentDispositionString);
- HttpContext.Current.Response.AddHeader("Content-Length", fileStream.Length.ToString());
- HttpContext.Current.Response.OutputStream.Write(Bytes, 0, Bytes.Length);
- HttpContext.Current.Response.Flush();
- HttpContext.Current.Response.End();
- }
-
- private Watermark GetWatermark(GetFileParameters request)
- {
- if (string.IsNullOrWhiteSpace(request.WatermarkText))
- return null;
-
- return new Watermark(request.WatermarkText)
- {
- Color = request.WatermarkColor.HasValue
- ? Color.FromArgb(request.WatermarkColor.Value)
- : Color.Blue,
- Position = ToWatermarkPosition(request.WatermarkPosition),
- Width = request.WatermarkWidth
- };
- }
- private GroupDocs.Viewer.Domain.WatermarkPosition? ToWatermarkPosition(WatermarkPosition? watermarkPosition)
- {
- if (!watermarkPosition.HasValue)
- return GroupDocs.Viewer.Domain.WatermarkPosition.Diagonal;
-
- switch (watermarkPosition.Value)
- {
- case WatermarkPosition.Diagonal:
- return GroupDocs.Viewer.Domain.WatermarkPosition.Diagonal;
- case WatermarkPosition.TopLeft:
- return GroupDocs.Viewer.Domain.WatermarkPosition.TopLeft;
- case WatermarkPosition.TopCenter:
- return GroupDocs.Viewer.Domain.WatermarkPosition.TopCenter;
- case WatermarkPosition.TopRight:
- return GroupDocs.Viewer.Domain.WatermarkPosition.TopRight;
- case WatermarkPosition.BottomLeft:
- return GroupDocs.Viewer.Domain.WatermarkPosition.BottomLeft;
- case WatermarkPosition.BottomCenter:
- return GroupDocs.Viewer.Domain.WatermarkPosition.BottomCenter;
- case WatermarkPosition.BottomRight:
- return GroupDocs.Viewer.Domain.WatermarkPosition.BottomRight;
- default:
- throw new ArgumentOutOfRangeException();
- }
- }
- }
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx.designer.cs b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx.designer.cs
deleted file mode 100644
index 92786f191..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetFile.aspx.designer.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint {
-
-
- public partial class GetFile {
- }
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx
deleted file mode 100644
index eb83a8f2f..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx
+++ /dev/null
@@ -1,29 +0,0 @@
-<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
-<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
-<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
-<%@ Import Namespace="Microsoft.SharePoint" %>
-<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
-<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetResourceForHtml.aspx.cs" Inherits="GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.GetResourceForHtml" DynamicMasterPageFile="~masterurl/default.master" %>
-
-
-
-
-
-
-
-
-
-
-
-Application Page
-
-
-
-My Application Page
-
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx.cs b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx.cs
deleted file mode 100644
index 721e82fe9..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-using System;
-using GroupDocs.Viewer.Config;
-using GroupDocs.Viewer.Converter.Options;
-using GroupDocs.Viewer.Domain;
-using GroupDocs.Viewer.Domain.Containers;
-using GroupDocs.Viewer.Domain.Html;
-using GroupDocs.Viewer.Domain.Options;
-using GroupDocs.Viewer.Handler;
-using GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer;
-using GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer.Helpers;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Drawing;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Net.Mime;
-using System.Web;
-using System.Web.UI.WebControls;
-using WatermarkPosition = GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint.BusinessLayer.WatermarkPosition;
-using Microsoft.SharePoint.WebControls;
-using System.Web.Services;
-using System.Web.Script.Services;
-using System.Net;
-
-namespace GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint
-{
- public partial class GetResourceForHtml : LayoutsPageBase
- {
- private static ViewerHtmlHandler _htmlHandler;
- protected void Page_Load(object sender, EventArgs e)
- {
- _htmlHandler = (ViewerHtmlHandler)Session["htmlHandler"];
-
- GetResourceForHtmlParameters parameters = new GetResourceForHtmlParameters();
-
-
- parameters.DocumentPath = GetValueFromQueryString("documentPath");
- parameters.ResourceName = GetValueFromQueryString("resourceName");
- parameters.PageNumber = int.Parse(GetValueFromQueryString("pageNumber") != String.Empty ? GetValueFromQueryString("pageNumber") : "0");
-
- if (!string.IsNullOrEmpty(parameters.ResourceName) &&
- parameters.ResourceName.IndexOf("/", StringComparison.Ordinal) >= 0)
- parameters.ResourceName = parameters.ResourceName.Replace("/", "");
-
-
- try
- {
- var resource = new HtmlResource
- {
- ResourceName = parameters.ResourceName,
- ResourceType = Utils.GetResourceType(parameters.ResourceName),
- DocumentPageNumber = parameters.PageNumber
- };
- var stream = _htmlHandler.GetResource(parameters.DocumentPath, resource);
- if (stream == null || stream.Length == 0)
- {
- Response.StatusCode = ((int)HttpStatusCode.Gone);
- Response.End();
- }
- else
- {
-
- byte[] Bytes = new byte[stream.Length];
- stream.Read(Bytes, 0, Bytes.Length);
- //string contentDispositionString = "attachment; filename=\"" + parameters.ResourceName + "\"";
- string contentDispositionString = new ContentDisposition { FileName = parameters.ResourceName, Inline = true }.ToString();
-
- HttpContext.Current.Response.ContentType = Utils.GetImageMimeTypeFromFilename(parameters.ResourceName);
- HttpContext.Current.Response.AddHeader("Content-Disposition", contentDispositionString);
- HttpContext.Current.Response.AddHeader("Content-Length", stream.Length.ToString());
- HttpContext.Current.Response.OutputStream.Write(Bytes, 0, Bytes.Length);
- HttpContext.Current.Response.Flush();
- HttpContext.Current.Response.End();
- }
- }
- catch
- {
-
- }
- }
- private string GetContentType(ConvertImageFileType convertImageFileType)
- {
- string contentType;
- switch (convertImageFileType)
- {
- case ConvertImageFileType.JPG:
- contentType = "image/jpeg";
- break;
- case ConvertImageFileType.BMP:
- contentType = "image/bmp";
- break;
- case ConvertImageFileType.PNG:
- contentType = "image/png"; ;
- break;
- default:
- throw new ArgumentOutOfRangeException();
- }
-
- return contentType;
- }
- private String GetValueFromQueryString(String value)
- {
- try
- {
- return Request.QueryString[value].ToString();
-
- }
- catch (System.Exception exp)
- {
- return String.Empty;
- }
- }
- }
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx.designer.cs b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx.designer.cs
deleted file mode 100644
index 1e3995532..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/GetResourceForHtml.aspx.designer.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace GroupDocs_Viewer_SharePoint.Layouts.GroupDocs_Viewer_SharePoint {
-
-
- public partial class GetResourceForHtml {
-
- ///
- /// form1 control.
- ///
- ///
- /// Auto-generated field.
- /// To modify move field declaration from designer file to code-behind file.
- ///
- protected global::System.Web.UI.HtmlControls.HtmlForm form1;
- }
-}
diff --git a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Scripts/GroupdocsViewer.all.js b/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Scripts/GroupdocsViewer.all.js
deleted file mode 100644
index 3357ea9c6..000000000
--- a/Plugins/GroupDocs_Viewer_SharePoint/GroupDocs-Viewer-SharePoint/Layouts/GroupDocs-Viewer-SharePoint/Scripts/GroupdocsViewer.all.js
+++ /dev/null
@@ -1,10358 +0,0 @@
-deparam = (function (d, x, params, pair, i) {
- return function (qs) {
- // start bucket; can't cheat by setting it in scope declaration or it overwrites
- params = {};
- // remove preceding non-querystring, correct spaces, and split
- qs = qs.substring(qs.indexOf('?') + 1).replace(x, ' ').split('&');
- // march and parse
- for (i = qs.length; i > 0;) {
- pair = qs[--i].split('=');
- params[d(pair[0])] = d(pair[1]);
- }
-
- return params;
- };
-})(decodeURIComponent, /\+/g);
-$(document).on('click', '.btn_download', function (e) {
-
- e.preventDefault();
- var url = $(this).attr('href');
- var data = url.split('?')[1];
- data = deparam(data);
- // data = data.replace(/=/g, ':');
- //data = data.replace(/&/g, ',');
- //$(this).removeAttr('href');
- datastr = '{parameters:' + JSON.stringify(data) + '}';
- $.ajax({
- type: "POST",
- url: 'default.aspx/GetFile', //url to point your webmethod
- data: datastr,
- contentType: "application/json; charset=utf-8",
- dataType: "json",//if you have parameters in your method
- success: function () {
- // window.open('GetFile.aspx', '_newtab');
- var iframe = document.createElement("iframe");
- iframe.src = "GetFile.aspx";
- iframe.style.display = "none";
- document.body.appendChild(iframe);
- },
- error: function () { alert('error'); }
- });
- return false;
-});
-
-if (!window.jGroupdocs)
-window.jGroupdocs = {};
-window.jGroupdocs.stringExtensions = {
-format: function (sourceString) {
-var s = sourceString,
-i = arguments.length;
-while (--i) {
-s = s.replace(new RegExp('\\{' + (i - 1) + '\\}', 'gm'), arguments[i]);
-}
-return s;
-},
-trim: function (string, target) {
-var regex = new RegExp("^[" + target + "]+|[" + target + "]+$", "g");
-return string.replace(regex, '');
-},
-trimStart: function (string, target) {
-var regex = new RegExp("^[" + target + "]+", "g");
-return string.replace(regex, '');
-},
-trimEnd: function (string, target) {
-var regex = new RegExp("[" + target + "]+$", "g");
-return string.replace(regex, '');
-},
-getAccentInsensitiveRegexFromString: function (text) {
-var accents = [
-["A", 'ÀÁÂÃÄÅÆ'],
-["C", 'Ç'],
-["E", 'ÈÉÊËÆ'],
-["I", 'ÌÍÎÏ'],
-["N", 'Ñ'],
-["O", 'ÒÓÔÕÖØ'],
-["S", 'ß'],
-["U", 'ÙÚÛÜ'],
-["Y", 'Ÿ'],
-["У", 'Ў'], // cyrilllic
-["a", 'àáâãäåæ'],
-["c", 'ç'],
-["e", 'èéêëæ'],
-["i", 'ìíîï'],
-["n", 'ñ'],
-["o", 'òóôõöø'],
-["s", 'ß'],
-["u", 'ùúûü'],
-["y", 'ÿ'],
-["у", 'ў'] // cyrilllic
-];
-var charNum;
-var charsToBeReplaced = "";
-for (charNum = 0; charNum < accents.length; charNum++)
-charsToBeReplaced += accents[charNum][0];
-var charsRegex = new RegExp("[" + charsToBeReplaced + "]", "g");
-function makeComp(input) {
-return input.replace(charsRegex, function (c) {
-var replacementChars = null;
-for (charNum = 0; charNum < accents.length; charNum++) {
-if (accents[charNum][0] == c) {
-replacementChars = accents[charNum][1];
-break;
-}
-}
-if (replacementChars === null)
-replacementChars = "";
-return '[' + c + replacementChars + ']';
-});
-};
-return makeComp(text);
-},
-_padWithLeadingZeros: function (string) {
-return new Array(5 - string.length).join("0") + string;
-},
-_unicodeCharEscape: function (charCode) {
-return "\\u" + this._padWithLeadingZeros(charCode.toString(16));
-},
-unicodeEscape: function (string) {
-var self = this;
-return string.split("")
-.map(function (character) {
-var charCode = character.charCodeAt(0);
-return charCode > 127 ? self._unicodeCharEscape(charCode) : character;
-})
-.join("");
-}
-};
-window.jGroupdocs.http = {
-splitUrl: (function () {
-var regex = new RegExp("(\\w+)://([^/]+)([^\?]*)([\?].+)?");
-return function (url) {
-var matches = url.match(regex);
-var path = (matches.length > 3 ? matches[3] : null);
-var query = (matches.length > 4 ? matches[4] : null);
-return {
-"schema": matches[1],
-"authority": (matches.length > 2 ? matches[2] : null),
-"path": path,
-"query": query,
-"queryDict": $.fn.q(query),
-"pathAndQuery": (query ? (path + query) : path)
-};
-};
-})()
-};
-JsInject={Container:function(){this.serviceEntries=[];this.disposables=[]}};JsInject.Container.prototype.Resolve=function(a,c,b,d,e,f,g,h,i,j){return this.ResolveInternal(a,!0,c,b,d,e,f,g,h,i,j)};JsInject.Container.prototype.TryResolve=function(a,c,b,d,e,f,g,h,i,j){return this.ResolveInternal(a,!1,c,b,d,e,f,g,h,i,j)};
-JsInject.Container.prototype.RegisterInternal=function(a,c,b,d){if(this.RegisteredInternal(a))throw"Factory with name '"+a+"' alredy registered";this.serviceEntries[a]={factory:c,scope:b,owner:d,instance:null}};JsInject.Container.prototype.Dispose=function(){for(var a in this.disposables)this.disposables[a].Dispose()};
-JsInject.Container.prototype.ResolveInternal=function(a,c,b,d,e,f,g,h,i,j,k){if(!this.RegisteredInternal(a))if(c)throw"Factory with name '"+a+"' is not registered";else return null;a=this.serviceEntries[a];if(a.scope==="container"){if(a.instance===null)a.instance=this.CreateInstanceInternal(a.factory,a.owner,b,d,e,f,g,h,i,j,k);return a.instance}return this.CreateInstanceInternal(a.factory,a.owner,b,d,e,f,g,h,i,j,k)};
-JsInject.Container.prototype.CreateInstanceInternal=function(a,c,b,d,e,f,g,h,i,j,k){a=a(this,b,d,e,f,g,h,i,j,k);c==="container"&&typeof a.Dispose==="function"&&this.disposables.push(a);return a};JsInject.Container.prototype.RegisteredInternal=function(a){return this.serviceEntries[a]!==void 0};JsInject.Registration=function(a,c){this.name=a;this.factory=c;this.scope="none";this.owner="consumer"};JsInject.Registration.prototype.Reused=function(){this.scope="container";this.Owned();return this};
-JsInject.Registration.prototype.Owned=function(){this.owner="container";return this};JsInject.ContainerBuilder=function(){this.registrations=[]};JsInject.ContainerBuilder.prototype.Register=function(a,c){var b=new JsInject.Registration(a,c);this.registrations.push(b);return b};JsInject.ContainerBuilder.prototype.Create=function(){var a=new JsInject.Container,c;for(c in this.registrations){var b=this.registrations[c];a.RegisterInternal(b.name,b.factory,b.scope,b.owner)}return a};
-JsInject.Container.prototype.Register=function(a,c,b){a=new JsInject.Registration(a,c);b&&a.Reused();this.RegisterInternal(a.name,a.factory,a.scope,a.owner)};
-if (!window.jSaaspose)
-window.jSaaspose = {};
-if (!window.Container) {
-window.Container = new JsInject.Container();
-Container.Register("Cacher", function (c) { return $.jCacher; }, true);
-Container.Register("Rx.Observable", function (c) { return Rx.Observable; }, true);
-Container.Register("RequestObservable", function (c) { return $.ajaxAsObservable; }, true);
-Container.Register("AsyncSubject", function (c) { return new Rx.AsyncSubject(); }, false);
-var host = window.location.hostname + (window.location.port ? ':' + window.location.port : '');
-var applicationPath = $.ui.groupdocsViewer.prototype.applicationPath;
-if (applicationPath == "/") {
-applicationPath = window.location.protocol + "//" + host+"/";
-$.ui.groupdocsViewer.prototype.applicationPath = applicationPath;
-}
-if (applicationPath != "/") {
-var slashPosition = applicationPath.indexOf("//");
-if (slashPosition == -1) {
-var newApplicationPath = window.location.protocol + "//" + host + applicationPath;
-$.ui.groupdocsViewer.prototype.applicationPath = newApplicationPath;
-}
-var hostNamePosition = slashPosition + 2;
-if (applicationPath.indexOf(host, hostNamePosition) != hostNamePosition)
-$.ui.groupdocsViewer.prototype.isWorkingCrossDomain = true;
-}
-Container.Register("PortalService", function (c) {
-return new jSaaspose.PortalService($.ui.groupdocsViewer.prototype.applicationPath,
-$.ui.groupdocsViewer.prototype.useHttpHandlers,
-$.ui.groupdocsViewer.prototype.isWorkingCrossDomain);
-}, true);
-//Container.Register("HttpProvider", function (c) { return jSaaspose.http; }, true);
-Container.Register("HttpProvider", function (c) {
-return {
-buildUrl: function (baseUrl, relativeUrl, params) {
-var url = jGroupdocs.stringExtensions.trimEnd(baseUrl, '/');
-if (relativeUrl && relativeUrl.length > 0) {
-url += '/' + jGroupdocs.stringExtensions.trimStart(relativeUrl, '/');
-}
-if (params) {
-url += (url.indexOf('&') != -1 || url.indexOf('?') != -1 ? '&' : '?') + jQuery.param(params);
-}
-return url;
-},
-signUrl: function () { return ""; }
-};
-}, true);
-}
-/*
-* MIT LICENSE
-* Copyright (c) 2009-2011 Devon Govett.
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
-* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
-* the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
-* and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or substantial portions
-* of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-(function($) {
-$.fn.ellipsis = function(enableUpdating){
-var s = document.documentElement.style;
-if (!('textOverflow' in s || 'OTextOverflow' in s)) {
-return this.each(function(){
-var el = $(this);
-if(el.css("overflow") == "hidden"){
-var originalText = el.html();
-var w = el.width();
-var t = $(this.cloneNode(true)).hide().css({
-'position': 'absolute',
-'width': 'auto',
-'overflow': 'visible',
-'max-width': 'inherit'
-});
-el.after(t);
-var text = originalText;
-while(text.length > 0 && t.width() > el.width()){
-text = text.substr(0, text.length - 1);
-t.html(text + "...");
-}
-el.html(t.html());
-t.remove();
-if(enableUpdating == true){
-var oldW = el.width();
-setInterval(function(){
-if(el.width() != oldW){
-oldW = el.width();
-el.html(originalText);
-el.ellipsis();
-}
-}, 200);
-}
-}
-});
-} else return this;
-};
-})(jQuery);
-(function ($) {
-$.fn.innerTip = function (options) {
-return this.each(function () {
-var e = $(this);
-e.focusin(function () {
-if (e.hasClass('empty')) {
-e.val('');
-e.removeClass('empty');
-}
-});
-e.focusout(function () {
-if (e.val() == '') {
-e.val(options.text);
-e.addClass('empty');
-}
-});
-e.bind('reset', function () {
-e.val(options.text);
-e.addClass('empty');
-});
-e.val(options.text);
-e.addClass('empty');
-})
-};
-})(jQuery);
-(function ($) {
-var corners = {
-classes: []
-}
-$.fn.corners = function (options) {
-return this.each(function () {
-var e = $(this);
-if ($.inArray(options.id, corners.classes) === -1) {
-corners.classes.push(options.id);
-$('body').append('');
-}
-e.css({ position: 'relative' });
-e.prepend('');
-e.append('');
-})
-};
-})(jQuery);
-//hitch plugin
-(function ($) {
-$.fn.hitch = function (ev, fn, scope, data) {
-return this.bind(ev, data, function () {
-return fn.apply(scope || this, Array.prototype.slice.call(arguments));
-});
-};
-})(jQuery);
-//convert JSON data to string representation
-(function ($) {
-$.fn.q = function (q) {
-var result = {};
-if (q)
-{
-var q = q.replace(/^\?/, '').replace(/\&$/, '');
-$.each(q.split('&'), function () {
-var key = this.split('=')[0];
-var val = this.split('=')[1];
-// convert floats
-if (/^[0-9.]+$/.test(val)) {
-val = parseFloat(val);
-}
-// ingnore empty values
-if (val) {
-result[key] = val;
-}
-});
-}
-return result;
-};
-})(jQuery);
-//buttons and links disabler/enabler
-(function ($) {
-var killEvent = function (e) {
-e.preventDefault();
-};
-var killAction = function (e) {
-e.click(killEvent);
-if (e.is("input[type='submit'],input[type='button']")) {
-e.attr("disabled", "disabled");
-}
-};
-var disable = function (e, cl, tip) {
-var c = e.data("clone");
-if (!c) {
-c = e.clone(false);
-$.each(c[0].attributes, function(index, attr) {
-if (attr != null && attr.name != "class") {
-c.attr(attr.name, "");
-}
-});
-if (cl != "") {
-c.addClass(cl);
-}
-killAction(c);
-e.data("clone", c);
-e.after(c);
-}
-c.attr("title", tip);
-e.hide();
-c.show();
-};
-var enable = function (e) {
-var clone = e.data("clone");
-if (clone) {
-e.show();
-clone.hide();
-}
-};
-$.fn.activator = function (options) {
-return this.each(function () {
-var e = $(this);
-if (options.action == "enable") {
-enable(e);
-return;
-}
-if (options.action == "disable"){
-disable(e, options.cl, options.tip);
-}
-})
-};
-$.fn.isEnable = function() {
-var e = $(this);
-var clone = e.data('clone');
-if (clone && clone.is(':visible')){
-return false;
-}
-return true;
-};
-})(jQuery);
-// Simple Set Clipboard System
-// Author: Joseph Huckaby
-var ZeroClipboard = {
-version: "1.0.7",
-clients: {}, // registered upload clients on page, indexed by id
-moviePath: 'ZeroClipboard.swf', // URL to movie
-nextId: 1, // ID of next movie
-$: function (thingy) {
-// simple DOM lookup utility function
-if (typeof (thingy) == 'string') thingy = document.getElementById(thingy);
-if (!thingy.addClass) {
-// extend element with a few useful methods
-thingy.hide = function () { this.style.display = 'none'; };
-thingy.show = function () { this.style.display = ''; };
-thingy.addClass = function (name) { this.removeClass(name); this.className += ' ' + name; };
-thingy.removeClass = function (name) {
-var classes = this.className.split(/\s+/);
-var idx = -1;
-for (var k = 0; k < classes.length; k++) {
-if (classes[k] == name) { idx = k; k = classes.length; }
-}
-if (idx > -1) {
-classes.splice(idx, 1);
-this.className = classes.join(' ');
-}
-return this;
-};
-thingy.hasClass = function (name) {
-return !!this.className.match(new RegExp("\\s*" + name + "\\s*"));
-};
-}
-return thingy;
-},
-setMoviePath: function (path) {
-// set path to ZeroClipboard.swf
-this.moviePath = path;
-},
-dispatch: function (id, eventName, args) {
-// receive event from flash movie, send to client
-var client = this.clients[id];
-if (client) {
-client.receiveEvent(eventName, args);
-}
-},
-register: function (id, client) {
-// register new client to receive events
-this.clients[id] = client;
-},
-getDOMObjectPosition: function (obj, stopObj) {
-// get absolute coordinates for dom element
-var info = {
-left: 0,
-top: 0,
-width: obj.width ? obj.width : obj.offsetWidth,
-height: obj.height ? obj.height : obj.offsetHeight
-};
-// while (obj && (obj != stopObj)) {
-// info.left += obj.offsetLeft;
-// info.top += obj.offsetTop;
-// obj = obj.offsetParent;
-// }
-return info;
-},
-Client: function (elem) {
-// constructor for new simple upload client
-this.handlers = {};
-// unique ID
-this.id = ZeroClipboard.nextId++;
-this.movieId = 'ZeroClipboardMovie_' + this.id;
-// register client with singleton to receive flash events
-ZeroClipboard.register(this.id, this);
-// create movie
-if (elem) this.glue(elem);
-}
-};
-ZeroClipboard.Client.prototype = {
-id: 0, // unique ID for us
-ready: false, // whether movie is ready to receive events or not
-movie: null, // reference to movie object
-clipText: '', // text to copy to clipboard
-handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor
-cssEffects: true, // enable CSS mouse effects on dom container
-handlers: null, // user event handlers
-glue: function (elem, appendElem, stylesToAdd) {
-// glue to DOM element
-// elem can be ID or actual DOM element object
-this.domElement = ZeroClipboard.$(elem);
-// float just above object, or zIndex 99 if dom element isn't set
-var zIndex = 99;
-if (this.domElement.style.zIndex) {
-zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
-}
-if (typeof (appendElem) == 'string') {
-appendElem = ZeroClipboard.$(appendElem);
-}
-else if (typeof (appendElem) == 'undefined') {
-appendElem = document.getElementsByTagName('body')[0];
-}
-// find X/Y position of domElement
-var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem);
-// create floating DIV above element
-this.div = document.createElement('div');
-var style = this.div.style;
-style.position = 'absolute';
-style.left = '' + box.left + 'px';
-style.top = '' + box.top + 'px';
-style.width = '' + box.width + 'px';
-style.height = '' + (box.height * 2) + 'px';
-style.zIndex = zIndex;
-if (typeof (stylesToAdd) == 'object') {
-for (addedStyle in stylesToAdd) {
-style[addedStyle] = stylesToAdd[addedStyle];
-}
-}
-// style.backgroundColor = '#f00'; // debug
-appendElem.appendChild(this.div);
-this.div.innerHTML = this.getHTML(box.width, box.height);
-},
-getHTML: function (width, height) {
-// return HTML for movie
-var html = '';
-var flashvars = 'id=' + this.id +
-'&width=' + width +
-'&height=' + height;
-if (navigator.userAgent.match(/MSIE/)) {
-// IE gets an OBJECT tag
-var protocol = location.href.match(/^https/i) ? 'https://' : 'http://';
-html += '';
-}
-else {
-// all other browsers get an EMBED tag
-html += '';
-}
-return html;
-},
-hide: function () {
-// temporarily hide floater offscreen
-if (this.div) {
-this.div.style.left = '-2000px';
-}
-},
-show: function () {
-// show ourselves after a call to hide()
-this.reposition();
-},
-destroy: function () {
-// destroy control and floater
-if (this.domElement && this.div) {
-this.hide();
-this.div.innerHTML = '';
-var body = document.getElementsByTagName('body')[0];
-try { body.removeChild(this.div); } catch (e) { ; }
-this.domElement = null;
-this.div = null;
-}
-},
-reposition: function (elem) {
-// reposition our floating div, optionally to new container
-// warning: container CANNOT change size, only position
-if (elem) {
-this.domElement = ZeroClipboard.$(elem);
-if (!this.domElement) this.hide();
-}
-if (this.domElement && this.div) {
-var box = ZeroClipboard.getDOMObjectPosition(this.domElement);
-var style = this.div.style;
-style.left = '' + box.left + 'px';
-style.top = '' + box.top + 'px';
-}
-},
-setText: function (newText) {
-// set text to be copied to clipboard
-this.clipText = newText;
-if (this.ready) this.movie.setText(newText);
-},
-addEventListener: function (eventName, func) {
-// add user event listener for event
-// event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel
-eventName = eventName.toString().toLowerCase().replace(/^on/, '');
-if (!this.handlers[eventName]) this.handlers[eventName] = [];
-this.handlers[eventName].push(func);
-},
-setHandCursor: function (enabled) {
-// enable hand cursor (true), or default arrow cursor (false)
-this.handCursorEnabled = enabled;
-if (this.ready) this.movie.setHandCursor(enabled);
-},
-setCSSEffects: function (enabled) {
-// enable or disable CSS effects on DOM container
-this.cssEffects = !!enabled;
-},
-receiveEvent: function (eventName, args) {
-// receive event from flash
-eventName = eventName.toString().toLowerCase().replace(/^on/, '');
-// special behavior for certain events
-switch (eventName) {
-case 'load':
-// movie claims it is ready, but in IE this isn't always the case...
-// bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function
-this.movie = document.getElementById(this.movieId);
-if (!this.movie) {
-var self = this;
-setTimeout(function () { self.receiveEvent('load', null); }, 1);
-return;
-}
-// firefox on pc needs a "kick" in order to set these in certain cases
-if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
-var self = this;
-setTimeout(function () { self.receiveEvent('load', null); }, 100);
-this.ready = true;
-return;
-}
-this.ready = true;
-this.movie.setText(this.clipText);
-this.movie.setHandCursor(this.handCursorEnabled);
-break;
-case 'mouseover':
-if (this.domElement && this.cssEffects) {
-this.domElement.addClass('hover');
-if (this.recoverActive) this.domElement.addClass('active');
-}
-break;
-case 'mouseout':
-if (this.domElement && this.cssEffects) {
-this.recoverActive = false;
-if (this.domElement.hasClass('active')) {
-this.domElement.removeClass('active');
-this.recoverActive = true;
-}
-this.domElement.removeClass('hover');
-}
-break;
-case 'mousedown':
-if (this.domElement && this.cssEffects) {
-this.domElement.addClass('active');
-}
-break;
-case 'mouseup':
-if (this.domElement && this.cssEffects) {
-this.domElement.removeClass('active');
-this.recoverActive = false;
-}
-break;
-} // switch eventName
-if (this.handlers[eventName]) {
-for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) {
-var func = this.handlers[eventName][idx];
-if (typeof (func) == 'function') {
-// actual function reference
-func(this, args);
-}
-else if ((typeof (func) == 'object') && (func.length == 2)) {
-// PHP style object + method, i.e. [myObject, 'myMethod']
-func[0][func[1]](this, args);
-}
-else if (typeof (func) == 'string') {
-// name of function
-window[func](this, args);
-}
-} // foreach event handler defined
-} // user defined handler for event
-}
-};
-/*
-* jCacher - Client-side Cache Plugin for jQuery
-* Version: 1.0.0 (2010-03-03)
-*
-* Author: Andreas Brantmo
-* Website: http://plugins.jquery.com/project/jCacher
-*
-* Dual licensed under:
-* MIT: http://www.opensource.org/licenses/mit-license.php
-* GPL Version 2: http://www.opensource.org/licenses/gpl-3.0.html
-*/
-// moved to jGroupdocs.ArrayExtensions.js
-// breaks Sharepoint ribbon when using using installable Viewer
-//if (!Array.prototype.indexOf) {
-// Array.prototype.indexOf = function (elt /*, from*/) {
-// var len = this.length;
-// var from = Number(arguments[1]) || 0;
-// from = (from < 0)
-// ? Math.ceil(from)
-// : Math.floor(from);
-// if (from < 0)
-// from += len;
-// for (; from < len; from++) {
-// if (from in this &&
-// this[from] === elt)
-// return from;
-// }
-// return -1;
-// };
-//}
-(function($, undefined) {
-// Create the cache manager and attach it to the
-// global object, e.g jQuery.
-$.jCacher = new function() {
-// Save a reference to the current object
-var cache = this;
-// Reference to the current jQuery instance of
-// the jCacher object.
-var $this = $(this);
-// Set current version
-cache.version = "1.0.0";
-// The number of items in the cache
-cache.count = 0;
-//var useLocalStorage = false;
-// Id for the current setTimeout.
-var currentTimeout;
-// The key of the next item to be removed from the
-// cache, based on last schedule.
-var nextKey;
-// Next scheduled check.
-var nextCheck;
-// Data storage object
-var store = new storage(false);
-// Adds the specified number of seconds
-// to a date object.
-var addMilliseconds = function(date, milliseconds) {
-return new Date(date.getTime() + milliseconds);
-};
-// Internal function for removing an item from cache.
-var removeItem = function(key, reason) {
-var itm = store.getCacheItem(key);
-if (key !== null && key !== undefined && itm !== null) {
-cache.count--;
-// Get dependency mappings for the cache item
-var mappings = store.getDependencyMappings(key);
-// Remove the cache item from storage
-store.removeCacheItem(key);
-// Trigger itemremoved event
-onitemremoved(itm, reason);
-// Loop through the mappings and request them to be removed
-for (var i = 0; i < mappings.length; i++) {
-removeItem(mappings[i], "dependencyChanged");
-}
-}
-return itm !== undefined;
-};
-// Goes through all items in the cache and removes
-// them if expired.
-var validate = function() {
-var now = new Date();
-var items = store.getCacheItems();
-var rebuildSchedule = false;
-for (var i = 0; i < items.length; i++) {
-var item = items[i];
-if (item.expires <= now) {
-rebuildSchedule = true;
-removeItem(item.key, "expired");
-}
-}
-// Rebuild the schedule if items were removed
-if (rebuildSchedule) {
-schedule();
-}
-};
-// Calculates the next check
-var schedule = function(item) {
-// If no cacheitem is passed to the function,
-// calculate next check based on all
-// existing items in the cache.
-if (item === undefined) {
-nextCheck = null;
-nextKey = null;
-// Clear the current timeout
-if (currentTimeout) {
-clearTimeout(currentTimeout);
-}
-var items = store.getCacheItems();
-// Calculate next expire based on existing cache items.
-for (var i = 0; i < items.length; i++) {
-var itm = items[i];
-if (nextCheck) {
-if (itm.expires < nextCheck) {
-nextCheck = itm.expires;
-nextKey = itm.key;
-}
-}
-else {
-nextCheck = itm.expires;
-nextKey = itm.key;
-}
-}
-if (nextCheck) {
-setTimer();
-}
-else {
-currentTimeout = null;
-}
-}
-// If a cacheitem is passed to the function,
-// set the timer to its expire value if it's
-// earlier than nextCheck or if nextCheck is
-// undefined.
-else if (nextCheck == undefined || (nextCheck && item.expires < nextCheck)) {
-// Clear the current timeout
-if (currentTimeout) {
-clearTimeout(currentTimeout);
-}
-nextCheck = item.expires;
-setTimer();
-}
-};
-var setTimer = function() {
-if (nextCheck) {
-var now = new Date();
-// Calculate time in milliseconds from now until next check
-var timeUntilNextCheck = nextCheck.getTime() - now.getTime() + 100;
-// Init a setTimeout if next check is in the future
-if (timeUntilNextCheck > 0) {
-currentTimeout = setTimeout(validate, timeUntilNextCheck);
-}
-// Otherwise do the validation immediately
-else {
-validate();
-}
-}
-}
-// Triggers itemremoved event
-var onitemremoved = function(item, reason) {
-$this.trigger("itemremoved", [item, reason]);
-};
-cache.itemremoved = function(fn) {
-$this.bind("itemremoved", fn);
-};
-// Adds a new item to the cache
-cache.add = function(key, value, slidingExpiration, absoluteExpiration, dependencies, onRemoved) {
-if (value !== undefined) {
-// Increase item count if key is not already in the cache
-//if (store.getCacheKeys().indexOf(key) == -1) {
-if ($.inArray(key, store.getCacheKeys()) == -1) {
-cache.count++;
-}
-// Calculate the expire date.
-var expires;
-if (slidingExpiration || absoluteExpiration) {
-if (slidingExpiration) {
-expires = addMilliseconds(new Date(), (slidingExpiration * 1000));
-}
-else if (absoluteExpiration) {
-expires = absoluteExpiration;
-}
-}
-// Register dependencies
-if (dependencies) {
-store.registerDependencies(key, dependencies);
-}
-var item = new cacheItem(key, value, expires, slidingExpiration)
-// Adds the cache item to the cache.
-store.addCacheItem(item);
-// If the item is set to expire, rebuild the schedule, but
-// only if it's earlier than nextCheck.
-if (expires && (nextCheck === undefined || expires < nextCheck) || (nextKey == key || nextCheck === null)) {
-schedule(item);
-}
-}
-};
-// Gets an item from the cache. If the key does not exist or if
-// the item has expired, return null.
-cache.get = function(key) {
-// Get item from storage
-var itm = store.getCacheItem(key);
-if (itm) {
-// Current timestamp
-var now = new Date();
-// If the item has sliding expiration, change the expires property
-// and rebuild the schedule.
-if (itm.slidingExpiration) {
-itm.expires = addMilliseconds(now, (itm.slidingExpiration * 1000));
-// Only rebuild the schedule if it expires earlier than nextCheck
-if ((key == nextKey) || (nextCheck && itm.expires < nextCheck)) {
-schedule();
-}
-else {
-var b = true;
-}
-}
-// If the item has expired, return null
-if (itm.expires && itm.expires < now) {
-return null;
-}
-return itm;
-}
-return null;
-};
-// Removes an item from the cache
-cache.remove = function(key) {
-if (key !== undefined && key !== null && key !== NaN && cache.count > 0) {
-return removeItem(key, "removed");
-// Rebuild the schedule if next check
-// is based on this cache item.
-if (nextKey == key) {
-schedule();
-}
-}
-};
-// Removes all items from the cache
-cache.clear = function() {
-if (cache.count > 0) {
-cache.count = 0;
-store.clear();
-if (currentTimeout !== null) {
-clearTimeout(currentTimeout);
-currentTimeout = null;
-}
-}
-};
-// Build the schedule if items exist in the cache
-if (store.getCacheItems().length > 0) {
-schedule();
-}
-}
-// Represents a cache item.
-function cacheItem(key, value, expires, slidingExpiration) {
-this.key = key;
-this.value = value;
-this.expires = expires;
-this.slidingExpiration = slidingExpiration;
-}
-// Represents a dependency mapper
-function dependencyMapper(key, mappings) {
-this.key = key;
-this.mappings = mappings;
-}
-function storage(useLocalStorage) {
-// The cache items
-var _items = [];
-// The cache keys
-var _keys = [];
-// The cache dependency mappings
-var _dependencyMappings = [];
-(function() {
-if (useLocalStorage && window.localStorage) {
-// Create an empty object in localStorage if undefined
-if (!window.localStorage.jCacher) {
-window.localStorage.jCacher = jQuery.toJSON({ items: [], dependencyMappings: [] });
-}
-// Else get the cache object from local storage
-else {
-var cacheItem = jQuery.parseJSON(window.localStorage.jCacher);
-// Loop all items and make the expires property to a Date
-for (var i = 0; i < cacheItem.items.length; i++) {
-var item = cacheItem.items[i];
-item.expires = new Date(item.expires);
-_items.push(item);
-}
-_dependencyMappings = cacheItem.dependencyMappings;
-}
-for (var i = 0; i < _items.length; i++) {
-_keys.push(_items[i].key);
-}
-}
-})();
-// Gets a cache item by key
-this.getCacheItem = function(key) {
-//var index = _keys.indexOf(key);
-var index = $.inArray(key, _keys);
-return index > -1 ? _items[index] : null;
-};
-// Gets all cache items
-this.getCacheItems = function() {
-return _items;
-};
-// Removes a cache item from storage
-this.removeCacheItem = function(key) {
-//var indexToRemove = _keys.indexOf(key);
-var indexToRemove = $.inArray(key, _keys);
-if (useLocalStorage && window.localStorage) {
-// Get cache object from localStorage
-var cacheItem = jQuery.parseJSON(window.localStorage.jCacher);
-// Remove from local storage object
-cacheItem.dependencyMappings.splice(indexToRemove, 1);
-cacheItem.items.splice(indexToRemove, 1);
-// Put the JSONized object to localStorage
-window.localStorage.jCacher = jQuery.toJSON(cacheItem);
-}
-// Remove from local objects
-_items.splice(indexToRemove, 1);
-_keys.splice(indexToRemove, 1);
-_dependencyMappings.splice(indexToRemove, 1);
-};
-// Adds a cache item to storage
-this.addCacheItem = function(value) {
-//var index = _keys.indexOf(value.key);
-var index = $.inArray(value.key, _keys);
-if (index == -1) {
-var mapper = new dependencyMapper(value.key, []);
-_items.push(value);
-_keys.push(value.key);
-_dependencyMappings.push(mapper);
-if (useLocalStorage && window.localStorage) {
-var cacheItem = jQuery.parseJSON(window.localStorage.jCacher);
-var jsonValue = (function() {
-var obj = new Object();
-obj.expires = value.expires.getTime();
-obj.key = value.key;
-obj.value = value.value;
-obj.slidingExpiration = value.slidingExpiration;
-return obj;
-})();
-cacheItem.items.push(jsonValue);
-cacheItem.dependencyMappings.push(mapper);
-window.localStorage.jCacher = jQuery.toJSON(cacheItem);
-}
-}
-else {
-_items[index] = value;
-if (useLocalStorage && window.localStorage) {
-var cacheItem = jQuery.parseJSON(window.localStorage.jCacher);
-cacheItem.items[index] = value;
-window.localStorage.jCacher = jQuery.toJSON(cacheItem);
-}
-}
-};
-// Gets all cache keys
-this.getCacheKeys = function() {
-return _keys;
-};
-// Register dependencies to storage
-this.registerDependencies = function(key, dependencies) {
-for (var i = 0; i < dependencies.length; i++) {
-//var mappingsIndex = _keys.indexOf(dependencies[i]);
-var mappingsIndex = $.inArray(dependencies[i], _keys);
-if (mappingsIndex != -1) {
-//if (_dependencyMappings[mappingsIndex].mappings.indexOf(key) == -1) {
-if ($.inArray(key, _dependencyMappings[mappingsIndex].mappings) == -1) {
-_dependencyMappings[mappingsIndex].mappings.push(key);
-if (useLocalStorage && window.localStorage) {
-var cacheItem = jQuery.parseJSON(window.localStorage.jCacher);
-cacheItem.dependencyMappings[mappingsIndex].mappings.push(key);
-window.localStorage.jCacher = jQuery.toJSON(cacheItem);
-}
-}
-}
-}
-};
-// Gets dependency mappings for the specified cache key
-this.getDependencyMappings = function(key) {
-//var index = _keys.indexOf(key);
-var index = $.inArray(key, _keys);
-return index > -1 ? _dependencyMappings[index].mappings : null;
-};
-// Clears all items in the storage.
-this.clear = function() {
-if (window.localStorage) {
-window.localStorage.removeItem("jCacher");
-}
-_items = [];
-_dependencyMappings = [];
-_keys = [];
-};
-};
-})(jQuery);
-// Knockout Mapping plugin v2.0.1
-// (c) 2011 Steven Sanderson, Roy Jacobs - http://knockoutjs.com/
-// License: Ms-Pl (http://www.opensource.org/licenses/ms-pl.html)
-ko.exportSymbol=function(g,q){for(var k=g.split("."),i=window,e=0;e1&&D(a[0]))throw Error("When calling ko.update*, the key '"+c+"' was not unique!");return a[0]}function w(a,c){return ko.utils.arrayMap(ko.utils.unwrapObservable(a),
-function(a){return c?H(a,c):a})}function G(a,c){if(a instanceof Array)for(var b=0;b=0?c[f]=d:(a.push(b),c.push(d))};this.get=function(b){b=ko.utils.arrayIndexOf(a,b);return b>=0?c[b]:void 0}}ko.mapping={};var m="__ko_mapping__",n=ko.dependentObservable,E=0,C,A,v={include:["_destroy"],ignore:[],copy:[]},
-j=v;ko.mapping.isMapped=function(a){return(a=ko.utils.unwrapObservable(a))&&a[m]};ko.mapping.fromJS=function(a){if(arguments.length==0)throw Error("When calling ko.fromJS, pass the object you want to convert.");window.setTimeout(function(){E=0},0);E++||(C=[],A=new I);var c,b;arguments.length==2&&(arguments[1][m]?b=arguments[1]:c=arguments[1]);arguments.length==3&&(c=arguments[1],b=arguments[2]);b&&(c=q(c,b[m]));c=i(c);var d=z(b,a,c);b&&(d=b);--E||window.setTimeout(function(){ko.utils.arrayForEach(C,
-function(a){a&&a()})},0);d[m]=q(d[m],c);return d};ko.mapping.fromJSON=function(a){var c=ko.utils.parseJson(a);arguments[0]=c;return ko.mapping.fromJS.apply(this,arguments)};ko.mapping.updateFromJS=function(){throw Error("ko.mapping.updateFromJS, use ko.mapping.fromJS instead. Please note that the order of parameters is different!");};ko.mapping.updateFromJSON=function(){throw Error("ko.mapping.updateFromJSON, use ko.mapping.fromJSON instead. Please note that the order of parameters is different!");
-};ko.mapping.toJS=function(a,c){j||ko.mapping.resetDefaultOptions();if(arguments.length==0)throw Error("When calling ko.mapping.toJS, pass the object you want to convert.");if(!(j.ignore instanceof Array))throw Error("ko.mapping.defaultOptions().ignore should be an array.");if(!(j.include instanceof Array))throw Error("ko.mapping.defaultOptions().include should be an array.");if(!(j.copy instanceof Array))throw Error("ko.mapping.defaultOptions().copy should be an array.");c=i(c,a[m]);return ko.mapping.visitModel(a,
-function(a){return ko.utils.unwrapObservable(a)},c)};ko.mapping.toJSON=function(a,c){var b=ko.mapping.toJS(a,c);return ko.utils.stringifyJson(b)};ko.mapping.defaultOptions=function(){if(arguments.length>0)j=arguments[0];else return j};ko.mapping.resetDefaultOptions=function(){j={include:v.include.slice(0),ignore:v.ignore.slice(0),copy:v.copy.slice(0)}};ko.mapping.visitModel=function(a,c,b){b=b||{};b.visitedObjects=b.visitedObjects||new I;b.parentName||(b=i(b));var d,f=ko.utils.unwrapObservable(a);
-if(D(f))c(a,b.parentName),d=f instanceof Array?[]:{};else return c(a,b.parentName);b.visitedObjects.save(a,d);var e=b.parentName;G(f,function(a){if(!(b.ignore&&ko.utils.arrayIndexOf(b.ignore,a)!=-1)){var g=f[a],i=b,j=e||"";f instanceof Array?e&&(j+="["+a+"]"):(e&&(j+="."),j+=a);i.parentName=j;if(!(ko.utils.arrayIndexOf(b.copy,a)===-1&&ko.utils.arrayIndexOf(b.include,a)===-1&&f[m]&&f[m].mappedProperties&&!f[m].mappedProperties[a]&&!(f instanceof Array)))switch(k(ko.utils.unwrapObservable(g))){case "object":case "undefined":i=
-b.visitedObjects.get(g);d[a]=k(i)!=="undefined"?i:ko.mapping.visitModel(g,c,b);break;default:d[a]=c(g,b.parentName)}}});return d};ko.exportSymbol("ko.mapping",ko.mapping);ko.exportSymbol("ko.mapping.fromJS",ko.mapping.fromJS);ko.exportSymbol("ko.mapping.fromJSON",ko.mapping.fromJSON);ko.exportSymbol("ko.mapping.isMapped",ko.mapping.isMapped);ko.exportSymbol("ko.mapping.defaultOptions",ko.mapping.defaultOptions);ko.exportSymbol("ko.mapping.toJS",ko.mapping.toJS);ko.exportSymbol("ko.mapping.toJSON",
-ko.mapping.toJSON);ko.exportSymbol("ko.mapping.updateFromJS",ko.mapping.updateFromJS);ko.exportSymbol("ko.mapping.updateFromJSON",ko.mapping.updateFromJSON);ko.exportSymbol("ko.mapping.visitModel",ko.mapping.visitModel)})();
-// Copyright (c) Microsoft Corporation. All rights reserved.
-// This code is licensed by Microsoft Corporation under the terms
-// of the MICROSOFT REACTIVE EXTENSIONS FOR JAVASCRIPT AND .NET LIBRARIES License.
-// See http://go.microsoft.com/fwlink/?LinkId=186234.
-(function(){var a;var b;var c=this;var d="Index out of range";if(typeof ProvideCustomRxRootObject =="undefined")b=c.Rx={}; else b=ProvideCustomRxRootObject();var e=function(){};var f=function(){return new Date().getTime();};var g=function(r0,s0){return r0===s0;};var h=function(r0){return r0;};var i=function(r0){return {Dispose:r0};};var j={Dispose:e};b.Disposable={Create:i,Empty:j};var k=b.BooleanDisposable=function(){var r0=false;this.GetIsDisposed=function(){return r0;};this.Dispose=function(){r0=true;};};var l=function(r0){var s0=false;r0.a++;this.Dispose=function(){var t0=false;if(!r0.b){if(!this.c){this.c=true;r0.a--;if(r0.a==0&&r0.d){r0.b=true;t0=true;}}}if(t0)r0.e.Dispose();};};var m=b.RefCountDisposable=function(r0){this.d=false;this.b=false;this.e=r0;this.a=0;this.Dispose=function(){var s0=false;if(!this.b){if(!this.d){this.d=true;if(this.a==0){this.b=true;s0=true;}}}if(s0)this.e.Dispose();};this.GetDisposable=function(){if(this.b)return j; else return new l(this);};};var n=b.CompositeDisposable=function(){var r0=new q();for(var s0=0;s0=t0)throw d;if(v0==0){s0.shift();t0--;}else{s0.splice(v0,1);t0--;}};this.IndexOf=function(v0){for(var w0=0;w0=t0)throw d;return s0[v0];};this.SetItem=function(v0,w0){if(v0<0||v0>=t0)throw d;s0[v0]=w0;};this.ToArray=function(){var v0=[];for(var w0=0;w0=this.h||r0<0)return;var s0=r0-1>>1;if(s0<0||s0==r0)return;if(this.i(r0,s0)){var t0=this.g[r0];this.g[r0]=this.g[s0];this.g[s0]=t0;this.j(s0);}};r.prototype.k=function(r0){if(r0===a)r0=0;var s0=2*r0+1;var t0=2*r0+2;var u0=r0;if(s00){var w0=this.m.Dequeue();this.l=w0.n;w0.o();}};v0.RunTo=function(w0){while(this.m.GetCount()>0&&this.f(this.m.Peek().n,w0)<=0){var x0=this.m.Dequeue();this.l=x0.n;x0.o();}};v0.GetTicks=function(){return this.l;};v0.l=0;v0.m=new r(function(w0,x0){return r0(w0.n,x0.n);});v0.f=r0;return v0;};var u=b.TestScheduler=function(){var r0=new t(function(s0,t0){return s0-t0;},function(s0,t0){return s0+t0;},function(s0){return new Date(s0);},function(s0){if(s0<=0)return 1;return s0;});return r0;};var v=new s(function(r0){return this.ScheduleWithTime(r0,0);},function(r0,s0){var t0=this.Now()+s0;var u0=new y(r0,t0);if(this.m===a){var v0=new w();try{this.m.Enqueue(u0);v0.p();}finally{v0.q();}}else this.m.Enqueue(u0);return u0.r();},f);v.s=function(r0){if(this.m===a){var s0=new w();try{r0();s0.p();}finally{s0.q();}}else r0();};s.CurrentThread=v;var w=function(){v.m=new r(function(r0,s0){try{return r0.n-s0.n;}catch(t0){debugger;}});this.q=function(){v.m=a;};this.p=function(){while(v.m.GetCount()>0){var r0=v.m.Dequeue();if(!r0.t()){while(r0.n-v.Now()>0);if(!r0.t())r0.o();}}};};var x=0;var y=function(r0,s0){this.u=x++;this.o=r0;this.n=s0;this.v=new k();this.t=function(){return this.v.GetIsDisposed();};this.r=function(){return this.v;};};var z=new s(function(r0){r0();return j;},function(r0,s0){while(this.Now1||typeof r0 =="function")u0=new B(r0,s0,t0); else u0=r0;return this.x(u0);},x:function(r0){var s0=false;var t0=new o();var u0=this;v.s(function(){var v0=new B(function(w0){if(!s0)r0.OnNext(w0);},function(w0){if(!s0){s0=true;t0.Dispose();r0.OnError(w0);}},function(){if(!s0){s0=true;t0.Dispose();r0.OnCompleted();}});t0.Replace(u0.w(v0));});return new n(t0,i(function(){s0=true;}));},Select:function(r0){var s0=this;return E(function(t0){var u0=0;return s0.Subscribe(new B(function(v0){var w0;try{w0=r0(v0,u0++);}catch(x0){t0.OnError(x0);return;}t0.OnNext(w0);},function(v0){t0.OnError(v0);},function(){t0.OnCompleted();}));});},Let:function(r0,s0){if(s0===a)return r0(this);var t0=this;return E(function(u0){var v0=s0();var w0;try{w0=r0(v0);}catch(A0){return L(A0).Subscribe(u0);}var x0=new o();var y0=new o();var z0=new n(y0,x0);x0.Replace(w0.Subscribe(function(A0){u0.OnNext(A0);},function(A0){u0.OnError(A0);z0.Dispose();},function(){u0.OnCompleted();z0.Dispose();}));y0.Replace(t0.Subscribe(v0));return z0;});},MergeObservable:function(){var r0=this;return E(function(s0){var t0=false;var u0=new n();var v0=new o();u0.Add(v0);v0.Replace(r0.Subscribe(function(w0){var x0=new o();u0.Add(x0);x0.Replace(w0.Subscribe(function(y0){s0.OnNext(y0);},function(y0){s0.OnError(y0);},function(){u0.Remove(x0);if(u0.GetCount()==1&&t0)s0.OnCompleted();}));},function(w0){s0.OnError(w0);},function(){t0=true;if(u0.GetCount()==1)s0.OnCompleted();}));return u0;});},y:function(r0,s0){var t0=p(s0);t0.unshift(this);return r0(t0);},Concat:function(){return this.y(I,arguments);},Merge:function(){return this.y(H,arguments);},Catch:function(){return this.y(P,arguments);},OnErrorResumeNext:function(){return this.y(V,arguments);},Zip:function(r0,s0){var t0=this;return E(function(u0){var v0=false;var w0=[];var x0=[];var y0=false;var z0=false;var A0=new n();var B0=function(C0){A0.Dispose();w0=a;x0=a;u0.OnError(C0);};A0.Add(t0.Subscribe(function(C0){if(z0){u0.OnCompleted();return;}if(x0.length>0){var D0=x0.shift();var E0;try{E0=s0(C0,D0);}catch(F0){A0.Dispose();u0.OnError(F0);return;}u0.OnNext(E0);}else w0.push(C0);},B0,function(){if(z0){u0.OnCompleted();return;}y0=true;}));A0.Add(r0.Subscribe(function(C0){if(y0){u0.OnCompleted();return;}if(w0.length>0){var D0=w0.shift();var E0;try{E0=s0(D0,C0);}catch(F0){A0.Dispose();u0.OnError(F0);return;}u0.OnNext(E0);}else x0.push(C0);},B0,function(){if(y0){u0.OnCompleted();return;}z0=true;}));return A0;});},CombineLatest:function(r0,s0){var t0=this;return E(function(u0){var v0=false;var w0=false;var x0=false;var y0;var z0;var A0=false;var B0=false;var C0=new n();var D0=function(E0){C0.Dispose();u0.OnError(E0);};C0.Add(t0.Subscribe(function(E0){if(B0){u0.OnCompleted();return;}if(x0){var F0;try{F0=s0(E0,z0);}catch(G0){C0.Dispose();u0.OnError(G0);return;}u0.OnNext(F0);}y0=E0;w0=true;},D0,function(){if(B0){u0.OnCompleted();return;}A0=true;}));C0.Add(r0.Subscribe(function(E0){if(A0){u0.OnCompleted();return;}if(w0){var F0;try{F0=s0(y0,E0);}catch(G0){C0.Dispose();u0.OnError(G0);return;}u0.OnNext(F0);}z0=E0;x0=true;},D0,function(){if(A0){u0.OnCompleted();return;}B0=true;}));});},Switch:function(){var r0=this;return E(function(s0){var t0=false;var u0=new o();var v0=new o();v0.Replace(r0.Subscribe(function(w0){if(!t0){var x0=new o();x0.Replace(w0.Subscribe(function(y0){s0.OnNext(y0);},function(y0){v0.Dispose();u0.Dispose();s0.OnError(y0);},function(){u0.Replace(a);if(t0)s0.OnCompleted();}));u0.Replace(x0);}},function(w0){u0.Dispose();s0.OnError(w0);},function(){t0=true;if(u0.Get()===a)s0.OnCompleted();}));return new n(v0,u0);});},TakeUntil:function(r0){var s0=this;return E(function(t0){var u0=new n();u0.Add(r0.Subscribe(function(){t0.OnCompleted();u0.Dispose();},function(v0){t0.OnError(v0);},function(){}));u0.Add(s0.Subscribe(t0));return u0;});},SkipUntil:function(r0){var s0=this;return E(function(t0){var u0=true;var v0=new n();v0.Add(r0.Subscribe(function(){u0=false;},function(w0){t0.OnError(w0);},e));v0.Add(s0.Subscribe(new B(function(w0){if(!u0)t0.OnNext(w0);},function(w0){t0.OnError(w0);},function(){if(!u0)t0.OnCompleted();})));return v0;});},Scan1:function(r0){var s0=this;return O(function(){var t0;var u0=false;return s0.Select(function(v0){if(u0)t0=r0(t0,v0); else{t0=v0;u0=true;}return t0;});});},Scan:function(r0,s0){var t0=this;return O(function(){var u0;var v0=false;return t0.Select(function(w0){if(v0)u0=s0(u0,w0); else{u0=s0(r0,w0);v0=true;}return u0;});});},Scan0:function(r0,s0){var t0=this;return E(function(u0){var v0=r0;var w0=true;return t0.Subscribe(function(x0){if(w0){w0=false;u0.OnNext(v0);}try{v0=s0(v0,x0);}catch(y0){u0.OnError(y0);return;}u0.OnNext(v0);},function(x0){if(w0)u0.OnNext(v0);u0.OnError(x0);},function(){if(w0)u0.OnNext(v0);u0.OnCompleted();});});},Finally:function(r0){var s0=this;return F(function(t0){var u0=s0.Subscribe(t0);return function(){try{u0.Dispose();r0();}catch(v0){r0();throw v0;}};});},Do:function(r0,s0,t0){var u0;if(arguments.length==0||arguments.length>1||typeof r0 =="function")u0=new B(r0,s0!==a?s0:e,t0); else u0=r0;var v0=this;return E(function(w0){return v0.Subscribe(new B(function(x0){try{u0.OnNext(x0);}catch(y0){w0.OnError(y0);return;}w0.OnNext(x0);},function(x0){if(s0!==a)try{u0.OnError(x0);}catch(y0){w0.OnError(y0);return;}w0.OnError(x0);},function(){if(t0!==a)try{u0.OnCompleted();}catch(x0){w0.OnError(x0);return;}w0.OnCompleted();}));});},Where:function(r0){var s0=this;return E(function(t0){var u0=0;return s0.Subscribe(new B(function(v0){var w0=false;try{w0=r0(v0,u0++);}catch(x0){t0.OnError(x0);return;}if(w0)t0.OnNext(v0);},function(v0){t0.OnError(v0);},function(){t0.OnCompleted();}));});},Take:function(r0,s0){if(s0===a)s0=z;var t0=this;return E(function(u0){if(r0<=0){t0.Subscribe().Dispose();return N(s0).Subscribe(u0);}var v0=r0;return t0.Subscribe(new B(function(w0){if(v0-->0){u0.OnNext(w0);if(v0==0)u0.OnCompleted();}},function(w0){u0.OnError(w0);},function(){u0.OnCompleted();}));});},GroupBy:function(r0,s0,t0){if(r0===a)r0=h;if(s0===a)s0=h;if(t0===a)t0=function(v0){return v0.toString();};var u0=this;return E(function(v0){var w0={};var x0=new o();var y0=new m(x0);x0.Replace(u0.Subscribe(function(z0){var A0;try{A0=r0(z0);}catch(G0){for(var H0 in w0) w0[H0].OnError(G0);v0.OnError(G0);return;}var B0=false;var C0;try{var D0=t0(A0);if(w0[D0]===a){C0=new i0();w0[D0]=C0;B0=true;}else C0=w0[D0];}catch(G0){for(var H0 in w0) w0[H0].OnError(G0);v0.OnError(G0);return;}if(B0){var E0=E(function(G0){return new n(y0.GetDisposable(),C0.Subscribe(G0));});E0.Key=A0;v0.OnNext(E0);}var F0;try{F0=s0(z0);}catch(G0){for(var H0 in w0) w0[H0].OnError(G0);v0.OnError(G0);return;}C0.OnNext(F0);},function(z0){for(var A0 in w0) w0[A0].OnError(z0);v0.OnError(z0);},function(){for(var z0 in w0) w0[z0].OnCompleted();v0.OnCompleted();}));return y0;});},TakeWhile:function(r0){var s0=this;return E(function(t0){var u0=true;return s0.Subscribe(new B(function(v0){if(u0){try{u0=r0(v0);}catch(w0){t0.OnError(w0);return;}if(u0)t0.OnNext(v0); else t0.OnCompleted();}},function(v0){t0.OnError(v0);},function(){t0.OnCompleted();}));});},SkipWhile:function(r0){var s0=this;return E(function(t0){var u0=false;return s0.Subscribe(new B(function(v0){if(!u0)try{u0=!r0(v0);}catch(w0){t0.OnError(w0);return;}if(u0)t0.OnNext(v0);},function(v0){t0.OnError(v0);},function(){t0.OnCompleted();}));});},Skip:function(r0){var s0=this;return E(function(t0){var u0=r0;return s0.Subscribe(new B(function(v0){if(u0--<=0)t0.OnNext(v0);},function(v0){t0.OnError(v0);},function(){t0.OnCompleted();}));});},SelectMany:function(r0){return this.Select(r0).MergeObservable();},TimeInterval:function(r0){if(r0===a)r0=z;var s0=this;return O(function(){var t0=r0.Now();return s0.Select(function(u0){var v0=r0.Now();var w0=v0-t0;t0=v0;return {Interval:w0,Value:u0};});});},RemoveInterval:G,Timestamp:function(r0){if(r0===a)r0=z;return this.Select(function(s0){return {Timestamp:r0.Now(),Value:s0};});},RemoveTimestamp:G,Materialize:function(){var r0=this;return E(function(s0){return r0.Subscribe(new B(function(t0){s0.OnNext(new h0("N",t0));},function(t0){s0.OnNext(new h0("E",t0));s0.OnCompleted();},function(){s0.OnNext(new h0("C"));s0.OnCompleted();}));});},Dematerialize:function(){return this.SelectMany(function(r0){return r0;});},AsObservable:function(){var r0=this;return E(function(s0){return r0.Subscribe(s0);});},Delay:function(r0,s0){if(s0===a)s0=A;var t0=this;return E(function(u0){var v0=[];var w0=false;var x0=new o();var y0=t0.Materialize().Timestamp().Subscribe(function(z0){if(z0.Value.Kind=="E"){u0.OnError(z0.Value.Value);v0=[];if(w0)x0.Dispose();return;}v0.push({Timestamp:s0.Now()+r0,Value:z0.Value});if(!w0){x0.Replace(s0.ScheduleRecursiveWithTime(function(A0){var B0;do{B0=a;if(v0.length>0&&v0[0].Timestamp<=s0.Now())B0=v0.shift().Value;if(B0!==a)B0.Accept(u0);}while(B0!==a);if(v0.length>0){A0(Math.max(0,v0[0].Timestamp-s0.Now()));w0=true;}else w0=false;},r0));w0=true;}});return new n(y0,x0);});},Throttle:function(r0,s0){if(s0===a)s0=A;var t0=this;return E(function(u0){var v0;var w0=false;var x0=new o();var y0=0;var z0=t0.Subscribe(function(A0){w0=true;v0=A0;y0++;var B0=y0;x0.Replace(s0.ScheduleWithTime(function(){if(w0&&y0==B0)u0.OnNext(v0);w0=false;},r0));},function(A0){x0.Dispose();u0.OnError(A0);w0=false;y0++;},function(){x0.Dispose();if(w0)u0.OnNext(v0);u0.OnCompleted();w0=false;y0++;});return new n(z0,x0);});},Timeout:function(r0,s0,t0){if(t0===a)t0=A;if(s0===a)s0=L("Timeout",t0);var u0=this;return E(function(v0){var w0=new o();var x0=new o();var y0=0;var z0=y0;var A0=false;x0.Replace(t0.ScheduleWithTime(function(){A0=y0==z0;if(A0)w0.Replace(s0.Subscribe(v0));},r0));w0.Replace(u0.Subscribe(function(B0){var C0=0;if(!A0){y0++;C0=y0;v0.OnNext(B0);x0.Replace(t0.ScheduleWithTime(function(){A0=y0==C0;if(A0)w0.Replace(s0.Subscribe(v0));},r0));}},function(B0){if(!A0){y0++;v0.OnError(B0);}},function(){if(!A0){y0++;v0.OnCompleted();}}));return new n(w0,x0);});},Sample:function(r0,s0){if(s0===a)s0=A;var t0=this;return E(function(u0){var v0=false;var w0;var x0=false;var y0=new n();y0.Add(Y(r0,s0).Subscribe(function(z0){if(v0){u0.OnNext(w0);v0=false;}if(x0)u0.OnCompleted();},function(z0){u0.OnError(z0);},function(){u0.OnCompleted();}));y0.Add(t0.Subscribe(function(z0){v0=true;w0=z0;},function(z0){u0.OnError(z0);y0.Dispose();},function(){x0=true;}));return y0;});},Repeat:function(r0,s0){var t0=this;if(s0===a)s0=z;if(r0===a)r0=-1;return E(function(u0){var v0=r0;var w0=new o();var x0=new n(w0);var y0=function(z0){w0.Replace(t0.Subscribe(function(A0){u0.OnNext(A0);},function(A0){u0.OnError(A0);},function(){if(v0>0){v0--;if(v0==0){u0.OnCompleted();return;}}z0();}));};x0.Add(s0.ScheduleRecursive(y0));return x0;});},Retry:function(r0,s0){var t0=this;if(s0===a)s0=z;if(r0===a)r0=-1;return E(function(u0){var v0=r0;var w0=new o();var x0=new n(w0);var y0=function(z0){w0.Replace(t0.Subscribe(function(A0){u0.OnNext(A0);},function(A0){if(v0>0){v0--;if(v0==0){u0.OnError(A0);return;}}z0();},function(){u0.OnCompleted();}));};x0.Add(s0.ScheduleRecursive(y0));return x0;});},BufferWithTime:function(r0,s0,t0){if(t0===a)t0=A;if(s0===a)s0=r0;var u0=this;return E(function(v0){var w0=new q();var x0=t0.Now();var y0=function(){var C0=[];for(var D0=0;D0=0)C0.push(E0.Value);}return C0;};var z0=new n();var A0=function(C0){v0.OnError(C0);};var B0=function(){v0.OnNext(y0());v0.OnCompleted();};z0.Add(u0.Subscribe(function(C0){w0.Add({Value:C0,Timestamp:t0.Now()});},A0,B0));z0.Add(a0(r0,s0,t0).Subscribe(function(C0){var D0=y0();var E0=t0.Now()+s0-r0;while(w0.GetCount()>0&&w0.GetItem(0).Timestamp-E0<=0)w0.RemoveAt(0);v0.OnNext(D0);x0=E0;},A0,B0));return z0;});},BufferWithTimeOrCount:function(r0,s0,t0){if(t0===a)t0=A;var u0=this;return E(function(v0){var w0=0;var x0=new q();var y0=function(){v0.OnNext(x0.ToArray());x0.Clear();w0++;};var z0=new o();var A0;A0=function(C0){var D0=t0.ScheduleWithTime(function(){var E0=false;var F0=0;if(C0==w0){y0();F0=w0;E0=true;}if(E0)A0(F0);},r0);z0.Replace(D0);};A0(w0);var B0=u0.Subscribe(function(C0){var D0=false;var E0=0;x0.Add(C0);if(x0.GetCount()==s0){y0();E0=w0;D0=true;}if(D0)A0(E0);},function(C0){v0.OnError(C0);x0.Clear();},function(){v0.OnNext(x0.ToArray());w0++;v0.OnCompleted();x0.Clear();});return new n(B0,z0);});},BufferWithCount:function(r0,s0){if(s0===a)s0=r0;var t0=this;return E(function(u0){var v0=[];var w0=0;return t0.Subscribe(function(x0){if(w0==0)v0.push(x0); else w0--;var y0=v0.length;if(y0==r0){var z0=v0;v0=[];var A0=Math.min(s0,y0);for(var B0=A0;B00)u0.OnNext(v0);u0.OnCompleted();});});},StartWith:function(r0,s0){if(!(r0 instanceof Array))r0=[r0];if(s0===a)s0=z;var t0=this;return E(function(u0){var v0=new n();var w0=0;v0.Add(s0.ScheduleRecursive(function(x0){if(w0r0)t0.OnNext(u0.shift());},function(v0){t0.OnError(v0);},function(){t0.OnCompleted();});});},TakeLast:function(r0){var s0=this;return E(function(t0){var u0=[];return s0.Subscribe(function(v0){u0.push(v0);if(u0.length>r0)u0.shift();},function(v0){t0.OnError(v0);},function(){while(u0.length>0)t0.OnNext(u0.shift());t0.OnCompleted();});});}};var H=D.Merge=function(r0,s0){if(s0===a)s0=z;return J(r0,s0).MergeObservable();};var I=D.Concat=function(r0,s0){if(s0===a)s0=z;return E(function(t0){var u0=new o();var v0=0;var w0=s0.ScheduleRecursive(function(x0){if(v00){u0--;if(u0==0){v0.OnCompleted();return;}}w0();});});};var T=D.Generate=function(r0,s0,t0,u0,v0){if(v0===a)v0=z;return E(function(w0){var x0=r0;var y0=true;return v0.ScheduleRecursive(function(z0){var A0=false;var B0;try{if(y0)y0=false; else x0=t0(x0);A0=s0(x0);if(A0)B0=u0(x0);}catch(C0){w0.OnError(C0);return;}if(A0){w0.OnNext(B0);z0();}else w0.OnCompleted();});});};var U=D.GenerateWithTime=function(r0,s0,t0,u0,v0,w0){if(w0===a)w0=A;return new E(function(x0){var y0=r0;var z0=true;var A0=false;var B0;var C0;return w0.ScheduleRecursiveWithTime(function(D0){if(A0)x0.OnNext(B0);try{if(z0)z0=false; else y0=t0(y0);A0=s0(y0);if(A0){B0=u0(y0);C0=v0(y0);}}catch(E0){x0.OnError(E0);return;}if(A0)D0(C0); else x0.OnCompleted();},0);});};var V=D.OnErrorResumeNext=function(r0,s0){if(s0===a)s0=z;return E(function(t0){var u0=new o();var v0=0;var w0=s0.ScheduleRecursive(function(x0){if(v00;var y0=function(z0,A0){v0.Add({Value:new h0(z0,A0),Timestamp:t0.Now()});};this.A=function(){if(r0!==a)while(v0.GetCount()>r0)v0.RemoveAt(0);if(x0)while(v0.GetCount()>0&&t0.Now()-v0.GetItem(0).Timestamp>s0)v0.RemoveAt(0);};this.OnNext=function(z0){if(!w0){var A0=u0.ToArray();for(var B0=0;B0
-* MIT license
-*
-* Includes enhancements by Scott Trenda
-* and Kris Kowal
-*
-* Accepts a date, a mask, or a date and a mask.
-* Returns a formatted version of the given date.
-* The date defaults to the current date/time.
-* The mask defaults to dateFormat.masks.default.
-*/
-var dateFormat = function () {
-var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
-timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
-timezoneClip = /[^-+\dA-Z]/g,
-pad = function (val, len) {
-val = String(val);
-len = len || 2;
-while (val.length < len) val = "0" + val;
-return val;
-};
-// Regexes and supporting functions are cached through closure
-return function (date, mask, utc) {
-var dF = dateFormat;
-// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
-if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
-mask = date;
-date = undefined;
-}
-// Passing date through Date applies Date.parse, if necessary
-date = date ? new Date(date) : new Date;
-if (isNaN(date)) throw SyntaxError("invalid date");
-mask = String(dF.masks[mask] || mask || dF.masks["default"]);
-// Allow setting the utc argument via the mask
-if (mask.slice(0, 4) == "UTC:") {
-mask = mask.slice(4);
-utc = true;
-}
-var _ = utc ? "getUTC" : "get",
-d = date[_ + "Date"](),
-D = date[_ + "Day"](),
-m = date[_ + "Month"](),
-y = date[_ + "FullYear"](),
-H = date[_ + "Hours"](),
-M = date[_ + "Minutes"](),
-s = date[_ + "Seconds"](),
-L = date[_ + "Milliseconds"](),
-o = utc ? 0 : date.getTimezoneOffset(),
-flags = {
-d: d,
-dd: pad(d),
-ddd: dF.i18n.dayNames[D],
-dddd: dF.i18n.dayNames[D + 7],
-m: m + 1,
-mm: pad(m + 1),
-mmm: dF.i18n.monthNames[m],
-mmmm: dF.i18n.monthNames[m + 12],
-yy: String(y).slice(2),
-yyyy: y,
-h: H % 12 || 12,
-hh: pad(H % 12 || 12),
-H: H,
-HH: pad(H),
-M: M,
-MM: pad(M),
-s: s,
-ss: pad(s),
-l: pad(L, 3),
-L: pad(L > 99 ? Math.round(L / 10) : L),
-t: H < 12 ? "a" : "p",
-tt: H < 12 ? "am" : "pm",
-T: H < 12 ? "A" : "P",
-TT: H < 12 ? "AM" : "PM",
-Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
-o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
-S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
-};
-return mask.replace(token, function ($0) {
-return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
-});
-};
-}();
-// Some common format strings
-dateFormat.masks = {
-"default": "ddd mmm dd yyyy HH:MM:ss",
-shortDate: "m/d/yy",
-mediumDate: "mmm d, yyyy",
-longDate: "mmmm d, yyyy",
-fullDate: "dddd, mmmm d, yyyy",
-shortTime: "h:MM TT",
-mediumTime: "h:MM:ss TT",
-longTime: "h:MM:ss TT Z",
-isoDate: "yyyy-mm-dd",
-isoTime: "HH:MM:ss",
-isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
-isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
-};
-// Internationalization strings
-dateFormat.i18n = {
-dayNames: [
-"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
-"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-],
-monthNames: [
-"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-]
-};
-// For convenience...
-Date.prototype.format = function (mask, utc) {
-return dateFormat(this, mask, utc);
-};
-/* A JavaScript implementation of the SHA family of hashes, as defined in FIPS
-* PUB 180-2 as well as the corresponding HMAC implementation as defined in
-* FIPS PUB 198a
-*
-* Version 1.3 Copyright Brian Turek 2008-2010
-* Distributed under the BSD License
-* See http://jssha.sourceforge.net/ for more information
-*
-* Several functions taken from Paul Johnson
-*/
-(function(){var charSize=8,b64pad="",hexCase=0,str2binb=function(a){var b=[],mask=(1<>5]|=(a.charCodeAt(i/charSize)&mask)<<(32-charSize-(i%32))}return b},hex2binb=function(a){var b=[],length=a.length,i,num;for(i=0;i>3]|=num<<(24-(4*(i%8)))}else{return"INVALID HEX STRING"}}return b},binb2hex=function(a){var b=(hexCase)?"0123456789ABCDEF":"0123456789abcdef",str="",length=a.length*4,i,srcByte;for(i=0;i>2]>>((3-(i%4))*8);str+=b.charAt((srcByte>>4)&0xF)+b.charAt(srcByte&0xF)}return str},binb2b64=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"+"0123456789+/",str="",length=a.length*4,i,j,triplet;for(i=0;i>2]>>8*(3-i%4))&0xFF)<<16)|(((a[i+1>>2]>>8*(3-(i+1)%4))&0xFF)<<8)|((a[i+2>>2]>>8*(3-(i+2)%4))&0xFF);for(j=0;j<4;j+=1){if(i*8+j*6<=a.length*32){str+=b.charAt((triplet>>6*(3-j))&0x3F)}else{str+=b64pad}}}return str},rotl=function(x,n){return(x<>>(32-n))},parity=function(x,y,z){return x^y^z},ch=function(x,y,z){return(x&y)^(~x&z)},maj=function(x,y,z){return(x&y)^(x&z)^(y&z)},safeAdd_2=function(x,y){var a=(x&0xFFFF)+(y&0xFFFF),msw=(x>>>16)+(y>>>16)+(a>>>16);return((msw&0xFFFF)<<16)|(a&0xFFFF)},safeAdd_5=function(a,b,c,d,e){var f=(a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF),msw=(a>>>16)+(b>>>16)+(c>>>16)+(d>>>16)+(e>>>16)+(f>>>16);return((msw&0xFFFF)<<16)|(f&0xFFFF)},coreSHA1=function(f,g){var W=[],a,b,c,d,e,T,i,t,appendedMessageLength,H=[0x67452301,0xefcdab89,0x98badcfe,0x10325476,0xc3d2e1f0],K=[0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x5a827999,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6];f[g>>5]|=0x80<<(24-(g%32));f[(((g+65)>>9)<<4)+15]=g;appendedMessageLength=f.length;for(i=0;i(keyBinLen/8)){keyToUse[15]&=0xFFFFFF00}for(i=0;i<=15;i+=1){keyWithIPad[i]=keyToUse[i]^0x36363636;keyWithOPad[i]=keyToUse[i]^0x5C5C5C5C}retVal=coreSHA1(keyWithIPad.concat(this.strToHash),512+this.strBinLen);retVal=coreSHA1(keyWithOPad.concat(retVal),672);return(d(retVal))}};window.jsSHA=jsSHA}());
-jSaaspose.PortalService = function (applicationPath, useHttpHandlers, isWorkingCrossDomain) {
-this._init(applicationPath, useHttpHandlers, isWorkingCrossDomain);
-};
-$.extend(jSaaspose.PortalService.prototype, {
-_urlSuffix: "",
-_lastError: null,
-_service: null,
-_cacheTimeout: 300,
-applicationPath: null,
-useJSONP: false,
-_useHttpHandlers: false,
-urlPrefix: "",
-_init: function (applicationPath, useHttpHandlers, isWorkingCrossDomain) {
-this.applicationPath = applicationPath;
-this._useHttpHandlers = useHttpHandlers;
-if (useHttpHandlers)
-this._urlSuffix = "Handler";
-if ($.browser.msie && $.browser.version == 8 && isWorkingCrossDomain)
-this.useJSONP = true;
-},
-viewDocumentAsHtml: function (userId, privateKey, path, preloadPagesCount, fileDisplayName, usePngImagesForHtmlBasedEngine,
-convertWordDocumentsCompletely,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence, supportPageRotation,
-supportListOfContentControls, supportListOfBookmarks,
-embedImagesIntoHtmlForWordFiles,
-saveFontsInAllFormats,
-successCallback, errorCallback, useCache, instanceIdToken, locale, passwordForOpening) {
- var data = {
- request: {
- userId: userId, privateKey: privateKey, path: path, useHtmlBasedEngine: true,
- preloadPagesCount: preloadPagesCount,
- fileDisplayName: fileDisplayName,
- usePngImagesForHtmlBasedEngine: usePngImagesForHtmlBasedEngine,
- convertWordDocumentsCompletely: convertWordDocumentsCompletely,
- ignoreDocumentAbsence: ignoreDocumentAbsence,
- supportPageRotation: supportPageRotation,
- supportListOfContentControls: supportListOfContentControls, supportListOfBookmarks: supportListOfBookmarks,
- watermarkText: watermarkText, watermarkColor: watermarkColor, watermarkPosition: watermarkPosition, watermarkWidth: watermarkWidth,
- embedImagesIntoHtmlForWordFiles: embedImagesIntoHtmlForWordFiles,
- instanceIdToken: instanceIdToken,
- locale: locale,
- passwordForOpening: passwordForOpening,
- saveFontsInAllFormats: saveFontsInAllFormats
- }
- };
- // var data1 = { req: { First: 'Muhammad', Last: 'Umar' }};
- this._runServiceAsync(this.applicationPath + this.urlPrefix + '/ViewDocument' + this._urlSuffix, data, successCallback, errorCallback, useCache != null ? useCache : false);
-},
-getDocumentPageHtml: function (path, pageIndex, usePngImages,
-embedImagesIntoHtmlForWordFiles,
-saveFontsInAllFormats,
-successCallback, errorCallback,
-instanceIdToken, locale) {
- var data = {
- parameters: {
- path: path, pageIndex: pageIndex, usePngImages: usePngImages,
- embedImagesIntoHtmlForWordFiles: embedImagesIntoHtmlForWordFiles,
- instanceIdToken: instanceIdToken,
- locale: locale,
- saveFontsInAllFormats: saveFontsInAllFormats
- }
-};
-this._runServiceAsync(this.applicationPath + this.urlPrefix + '/GetDocumentPageHtml' + this._urlSuffix, data, successCallback, errorCallback, false);
-},
-viewDocument: function (path, width, quality, usePdf, preloadPagesCount, password, fileDisplayName,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence, supportPageRotation,
-supportListOfContentControls, supportListOfBookmarks,
-successCallback, errorCallback, useCache, instanceIdToken, locale, passwordForOpening) {
- var data = {
- request: {
- path: path, width: width, quality: quality, usePdf: usePdf, preloadPagesCount: preloadPagesCount, password: password, fileDisplayName: fileDisplayName,
- watermarkText: watermarkText, watermarkColor: watermarkColor, watermarkPosition: watermarkPosition, watermarkWidth: watermarkWidth,
- ignoreDocumentAbsence: ignoreDocumentAbsence, supportPageRotation: supportPageRotation,
- supportListOfContentControls: supportListOfContentControls, supportListOfBookmarks: supportListOfBookmarks,
- instanceIdToken: instanceIdToken,
- locale: locale,
- passwordForOpening: passwordForOpening
- }
- };
-this._runServiceAsync(this.applicationPath + this.urlPrefix + '/ViewDocument' + this._urlSuffix, data, successCallback, errorCallback, useCache != null ? useCache : false);
-},
-getPdf2JavaScript: function (userId, privateKey, path, descForHtmlBasedEngine, successCallback, errorCallback) {
-var data = { path: path, descForHtmlBasedEngine: descForHtmlBasedEngine };
-return this._runServiceAsync(this.applicationPath + this.urlPrefix + '/GetPdf2JavaScript' + this._urlSuffix, data, successCallback, errorCallback, false);
-},
-getImageUrlsAsync: function (userId, privateKey, path, width, token, firstPage, pageCount, quality, usePdf, docVersion,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence,
-useHtmlBasedEngine, supportPageRotation,
-successCallback, errorCallback,
-instanceIdToken, locale) {
- var data = {
- parameters: {
- userId: userId,
- privateKey: privateKey,
- path: path,
- width: width,
- token: token,
- firstPage: firstPage,
- pageCount: pageCount,
- quality: quality,
- usePdf: usePdf,
- docVersion: docVersion,
- watermarkText: watermarkText,
- watermarkColor: watermarkColor,
- watermarkPosition: watermarkPosition,
- watermarkWidth: watermarkWidth,
- ignoreDocumentAbsence: ignoreDocumentAbsence,
- useHtmlBasedEngine: useHtmlBasedEngine,
- supportPageRotation: supportPageRotation,
- instanceIdToken: instanceIdToken,
- locale: locale
- }
- };
-return this._runServiceAsync(this.applicationPath + this.urlPrefix + '/GetImageUrls' + this._urlSuffix, data, successCallback, errorCallback, false);
-},
-loadFileBrowserTreeData: function (userId, privateKey, path, pageIndex, pageSize, orderBy, orderAsc, filter, fileTypes, extended, successCallback, errorCallback, useCache, instanceIdToken) {
- var data = { parameters: { userId: userId, privateKey: privateKey, path: path, pageIndex: pageIndex, pageSize: pageSize, orderBy: orderBy, orderAsc: orderAsc, filter: filter, fileTypes: fileTypes, extended: extended, instanceIdToken: instanceIdToken } };
-return this._runServiceAsync(this.applicationPath + this.urlPrefix + '/LoadFileBrowserTreeData' + this._urlSuffix, data, successCallback, errorCallback, useCache != null ? useCache : true);
-},
-getPrintableHtml: function (path, useHtmlBasedEngine, fileDisplayName,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence,
-successCallback, errorCallback,
-instanceIdToken, locale) {
-var data = {
-path: path, useHtmlBasedEngine: useHtmlBasedEngine, displayName: fileDisplayName,
-watermarkText: watermarkText, watermarkColor: watermarkColor,
-watermarkPosition: watermarkPosition, watermarkWidth: watermarkWidth,
-ignoreDocumentAbsence: ignoreDocumentAbsence,
-instanceIdToken: instanceIdToken,
-locale: locale
-};
-return this._runServiceAsync(this.applicationPath + this.urlPrefix + '/GetPrintableHtml' + this._urlSuffix, data, successCallback, errorCallback, false);
-},
-reorderPage: function (path, oldPosition, newPosition, successCallback, errorCallback, instanceIdToken) {
- var data = { parameters: { path: path, oldPosition: oldPosition, newPosition: newPosition, instanceIdToken: instanceIdToken }};
-return this._runServiceAsync(this.applicationPath + this.urlPrefix + '/ReorderPage' + this._urlSuffix, data, successCallback, errorCallback, false);
-},
-rotatePage: function (path, pageNumber, rotationAmount, successCallback, errorCallback, instanceIdToken) {
- var data = { parameters: { path: path, pageNumber: pageNumber, rotationAmount: rotationAmount, instanceIdToken: instanceIdToken }};
-return this._runServiceAsync(this.applicationPath + this.urlPrefix + '/RotatePage' + this._urlSuffix, data, successCallback, errorCallback, false);
-},
-_runServiceSync: function (url, data, useCache) {
-var r = null;
-var serviceCallEnded = false;
-var successCallback = function (response) {
-serviceCallEnded = true;
-r = response.data.d;
-};
-this._runService(url, data, false, successCallback, null, useCache);
-return r;
-},
-_runServiceAsync: function (url, data, successCallback, errorCallback, useCache, convertToXml) {
-return this._runService(url, data, true, successCallback, errorCallback, useCache, convertToXml);
-},
-_runService: function (url, data, mode, successCallback, errorCallback, useCache, convertToXml) {
-var stringData = JSON.stringify(data);
-var cacher = null;
-if (useCache) {
-cacher = Container.Resolve("Cacher");
-var cacheItem = cacher.get(url + stringData);
-if (cacheItem) {
-cacheItem.value.Subscribe(function (response) {
-this._successHandler(response, successCallback);
-}.bind(this), function (ex) { this._errorHandler(ex, errorCallback); }.bind(this));
-return cacheItem.value;
-}
-}
-var dataToSend;
-if (this.useJSONP) {
-if (this._useHttpHandlers)
-dataToSend = "data=" + stringData.toString();
-else
-dataToSend = data;
-}
-else {
-dataToSend = stringData;
-}
-var requestObservable = Container.Resolve("RequestObservable")({
-url: url,
-type: this.useJSONP ? "GET" : "POST",
-contentType: "application/json; charset=utf-8",
-dataType: this.useJSONP ? "jsonp" + (convertToXml ? " xml" : "") : null,
-//data: (this.useJSONP && this._useHttpHandlers) ? ("data=" + stringData.toString()) : stringData,
-data: dataToSend,
-async: mode
-});
-var finalHandler = Container.Resolve("AsyncSubject");
-requestObservable.Finally = function (method) {
-finalHandler.Subscribe(method);
-};
-requestObservable.Subscribe(
-function (response) {
-if (response) {
-if (response.data.d.success === false) {
-var error = { code: response.data.d.code, Reason: (response.data.d ? response.data.d.Reason : null) };
-if (errorCallback) {
-errorCallback(error);
-}
-}
-else {
-this._successHandler(response, successCallback);
-}
-}
-finalHandler.OnNext();
-finalHandler.OnCompleted();
-}.bind(this),
-function (ex) {
-this._errorHandler(ex, errorCallback);
-finalHandler.OnNext();
-finalHandler.OnCompleted();
-}.bind(this));
-if (useCache) {
-cacher.add(url + stringData, requestObservable, this._cacheTimeout);
-}
-return requestObservable;
-},
-_errorHandler: function (ex, errorCallback) {
-var error = null;
-if (ex.xmlHttpRequest.readyState == 0) {
-if (ex.xmlHttpRequest.status === 0) {
-error = { Reason: "Can't connect to server" };
-}
-else
-return;
-}
-var errorCode = ex.xmlHttpRequest.status;
-if (!error)
-error = { Reason: ex.xmlHttpRequest.responseText };
-try {
-if (errorCallback) {
-errorCallback(error);
-}
-}
-catch (e) { }
-},
-_successHandler: function (response, successCallback) {
-if (successCallback) {
-if (response.xmlHttpRequest.responseText == '') {
-response.data.d = null;
-}
-successCallback(response);
-}
-}
-});
-(function () {
-var special = jQuery.event.special,
-uid1 = 'D' + (+new Date()),
-uid2 = 'D' + (+new Date() + 1);
-special.scrollstart = {
-setup: function () {
-var timer,
-handler = function (evt) {
-var _self = this,
-_args = arguments;
-if (timer) {
-clearTimeout(timer);
-} else {
-evt.type = 'scrollstart';
-$(_self).trigger("scrollstart");
-//jQuery.event.handle.apply(_self, _args);
-}
-timer = setTimeout(function () {
-timer = null;
-}, special.scrollstop.latency);
-};
-jQuery(this).bind('scroll', handler).data(uid1, handler);
-},
-teardown: function () {
-jQuery(this).unbind('scroll', jQuery(this).data(uid1));
-}
-};
-special.scrollstop = {
-latency: 300,
-setup: function () {
-var timer,
-handler = function (evt) {
-var _self = this,
-_args = arguments;
-if (timer) {
-clearTimeout(timer);
-}
-timer = setTimeout(function () {
-timer = null;
-evt.type = 'scrollstop';
-$(_self).trigger("scrollstop");
-//jQuery.event.handle.apply(_self, _args);
-}, special.scrollstop.latency);
-};
-jQuery(this).bind('scroll', handler).data(uid2, handler);
-},
-teardown: function () {
-jQuery(this).unbind('scroll', jQuery(this).data(uid2));
-}
-};
-})();
-(function ($, undefined) {
-$.widget('ui.docViewer', {
-_viewModel: null,
-options: {
-fileId: 0,
-fileVersion: 1,
-userId: 0,
-userKey: null,
-baseUrl: null,
-_mode: 'full',
-_docGuid: '',
-quality: null,
-use_pdf: "true",
-showHyperlinks: true
-},
-_create: function () {
-$.extend(this.options, {
-documentSpace: this.element,
-emptyImageUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAASsJTYQAAAAASUVORK5CYII="
-});
-if (this.options.createHtml) {
-this._createHtml();
-}
-this._viewModel = this.getViewModel();
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_init: function () {
-$(this._viewModel).bind('getPagesCount', function (e, pagesCount) {
-$(this.element).trigger('getPagesCount', [pagesCount]);
-}.bind(this));
-$(this._viewModel).bind('onDocumentLoaded', function (e, response) {
-this.element.trigger('onDocumentLoaded', response);
-}.bind(this));
-$(this._viewModel).bind('onDocumentPasswordRequired', function (e) {
-$(this.element).trigger('onDocumentPasswordRequired');
-}.bind(this));
-$(this._viewModel).bind('_onProcessPages', function (e, data) {
-$(this.element).trigger('_onProcessPages', [data]);
-}.bind(this));
-$(this._viewModel).bind('onProcessPages', function (e, guid) {
-$(this.element).trigger('onProcessPages', [guid]);
-}.bind(this));
-$(this._viewModel).bind('onScrollDocView', function (e, data) {
-$(this.element).trigger('onScrollDocView', [data]);
-}.bind(this));
-$(this._viewModel).bind('onBeforeScrollDocView', function (e, data) {
-$(this.element).trigger('onBeforeScrollDocView', [data]);
-}.bind(this));
-$(this._viewModel).bind('onDocumentLoadComplete', function (e, data, pdf2XmlWrapper) {
-$(this.element).trigger('onDocumentLoadComplete', [data, pdf2XmlWrapper]);
-}.bind(this));
-$(this._viewModel).bind('onSearchPerformed', function (e, searchCountItem) {
-$(this.element).trigger('onSearchPerformed', [searchCountItem]);
-}.bind(this));
-$(this._viewModel).bind('onPageImageLoaded', function (e) {
-$(this.element).trigger('onPageImageLoaded');
-}.bind(this));
-$(this._viewModel).bind('onDocViewScrollPositionSet', function (e, data) {
-$(this.element).trigger('onDocViewScrollPositionSet', [data]);
-}.bind(this));
-$(this._viewModel).bind('onDocumentPageSet', function (e, newPageIndex) {
-$(this.element).trigger('onDocumentPageSet', [newPageIndex]);
-}.bind(this));
-},
-getViewModel: function () {
-if (this._viewModel == null) {
-this._viewModel = this._createViewModel();
-}
-return this._viewModel;
-},
-_createViewModel: function () {
-var vm = new docViewerViewModel(this.options);
-return vm;
-},
-applyBindings: function () {
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_createHtml: function () {
-var rotationMarkup;
-if (this.options.supportPageRotation) {
-rotationMarkup = ' + \' translateY(\' + (($root.isHtmlDocument() && $data.rotation() == 180) ? \'100%\' : \'0\') + \') \' +' +
-' \'rotate(\' + $data.rotation() + \'deg)\' +' +
-' \' translateX(\' + (($data.rotation() == 180 || $data.rotation() == 270) ? \'-100%\' : \'0\') + \')\' +' +
-' \' translateY(\' + (($data.rotation() == 90 || (!$root.isHtmlDocument() && $data.rotation() == 180)) ? \'-100%\' : \'0\') + \') \' ';
-}
-else {
-rotationMarkup = "";
-}
-var msScale = '\'-ms-transform\': \'scale(\' + $data.heightRatio() * $root.zoom() / 100.0 + \')\' ';
-if (this.options.pageContentType == "html" && $.browser.msie) {
-if ($.browser.version == 8)
-msScale = 'zoom: $data.heightRatio() * $root.zoom() / 100.0 ';
-else {
-msScale += rotationMarkup;
-}
-}
-msScale += ",";
-var htmlBasedWatermarkMarkup;
-if (this.options.watermarkText) {
-htmlBasedWatermarkMarkup =
-'';
-}
-else {
-htmlBasedWatermarkMarkup = "";
-}
-var htmlPageContentsWithTransformScaling =
-' ' +
-'
' + htmlBasedWatermarkMarkup;
-var htmlPageContentsWithEmScaling =
-' ' +
-'
';
-var htmlPageContents;
-if (this.options.useEmScaling)
-htmlPageContents = htmlPageContentsWithEmScaling;
-else
-htmlPageContents = htmlPageContentsWithTransformScaling;
-var pagesContainerElementHtml;
-var useHtmlBasedEngine = (this.options.pageContentType == "html");
-if (useHtmlBasedEngine && this.options.useEmScaling) {
-pagesContainerElementHtml = 'class="pages_container html_pages_container" data-bind="style:{fontSize: (16.* $root.zoom() / 100.0) + \'px\'}"';
-}
-else {
-pagesContainerElementHtml = 'class="pages_container ' + (useHtmlBasedEngine ? 'html_pages_container' : '') + '" data-bind="style: { height: $root.useVirtualScrolling ? ($root.documentHeight() + \'px\') : \'auto\', width: ($root.layout() == $root.Layouts.TwoPagesInRow || $root.layout() == $root.Layouts.CoverThenTwoPagesInRow) ? ($root.pageWidth() + $root.imageHorizontalMargin) * 2 + \'px\': \'auto\'}"';
-}
-var viewerHtml =
-'' +
-'' +
-'
' +
-//'
' +
-'
' +
-'
' +
-'
' +
-'
Loading your content...
' +
-'
' +
-'
' +
-(useHtmlBasedEngine ?
-(
-htmlPageContents
-)
-:
-'
' +
-'
' +
-'
' +
-'
' +
-'
'
-) +
-'
' +
-'' +
-'
' +
-'
' +
-'
' +
-' - ' +
-' ' +
-'
' +
-'
' +
-'
';
-var root = this.element;
-$(viewerHtml).appendTo(root);
-root.trigger("onHtmlCreated");
-this.element = $("#" + this.options.docViewerId);
-}
-});
-// Doc Viewer Model
-docViewerModel = function (options) {
-$.extend(this, options);
-this._init();
-};
-$.extend(docViewerModel.prototype, {
-_init: function () {
-this._portalService = Container.Resolve("PortalService");
-},
-loadDocument: function (fileId, pagesCountToShow, imageWidth, password, fileDisplayName,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence,
-supportPageRotation,
-supportListOfContentControls, supportListOfBookmarks,
-instanceIdToken,
-callback, errorCallback,
-locale, passwordForOpening) {
-var self = this;
-var onSucceded = function (response) {
-var guid;
-if (response.data.d != null) {
-if (response.data.d.path && typeof response.data.d.guid == "undefined")
-response.data.d.guid = response.data.d.path;
-if (self._mode == 'webComponent')
-guid = response.data.d.path;
-else
-guid = response.data.d.guid;
-}
-if (typeof guid !== "undefined") {
-callback.apply(this, [response.data.d]);
-}
-else {
-errorCallback.apply(this, [{ code: response.data.d.code, Reason: (response.data.d ? response.data.d.Reason : null) }]);
-}
-};
-switch (this._mode) {
-case 'embed':
-this._portalService.viewEmbedDocumentAllAsync(this.userId, this.userKey, fileId, imageWidth, this.quality, this.use_pdf, this.preloadPagesCount, password, fileDisplayName, onSucceded, errorCallback);
-break;
-case 'webComponent':
-this._portalService.viewDocument(fileId, imageWidth, this.quality, this.usePdf, this.preloadPagesCount, password, fileDisplayName,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence, supportPageRotation,
-supportListOfContentControls, supportListOfBookmarks,
-onSucceded, errorCallback,
-false,
-instanceIdToken,
-locale,
-passwordForOpening
-);
-break;
-case 'annotatedDocument':
-this._portalService.viewAnnotatedDocumentAsync(this.userId, this.userKey, fileId, null, pagesCountToShow, imageWidth, null, this.quality, this.use_pdf, { text: watermarkText, color: watermarkColor, position: watermarkPosition, fontSize: watermarkWidth }, onSucceded, errorCallback, false);
-break;
-default:
-this._portalService.viewDocumentAllAsync(this.userId, this.userKey, fileId, null, pagesCountToShow, imageWidth, null, this.quality, this.use_pdf, onSucceded, errorCallback, false);
-break;
-}
-},
-loadDocumentAsHtml: function (fileId, pagesCountToShow, fileDisplayName, usePngImages, convertWordDocumentsCompletely,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence, supportPageRotation,
-supportListOfContentControls, supportListOfBookmarks,
-embedImagesIntoHtmlForWordFiles,
-instanceIdToken,
-saveFontsInAllFormats,
-callback, errorCallback, locale, passwordForOpening) {
-this._portalService.viewDocumentAsHtml(this.userId, this.userKey, fileId, this.preloadPagesCount, fileDisplayName, usePngImages,
-convertWordDocumentsCompletely,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence, supportPageRotation,
-supportListOfContentControls, supportListOfBookmarks,
-embedImagesIntoHtmlForWordFiles,
-saveFontsInAllFormats,
-function (response) {
-if (response.data.d && typeof (response.data.d.path) !== "undefined") {
-callback.apply(this, [response.data.d]);
-}
-else {
-errorCallback.apply(this);
-}
-},
-function (error) {
-errorCallback.apply(this, [error]);
-},
-false,
-instanceIdToken,
-locale,
-passwordForOpening
-);
-},
-loadProperties: function (fileId, callback) {
-this._portalService.getDocInfoAsync(this.userId, this.userKey, fileId,
-function (response) {
-callback.apply(this, [response.data.d]);
-});
-},
-loadHyperlinks: function (fileId, callback, errorCallback) {
-this._portalService.getDocumentHyperlinks(fileId,
-function (response) {
-callback.apply(this, [response.data.d]);
-},
-function (error) {
-errorCallback.apply(this, [error]);
-});
-},
-retrieveImageUrls: function (fileId, token, imageCount, pagesDimension,
-watermarkText, watermarkColor,
-watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence,
-useHtmlBasedEngine,
-supportPageRotation,
-instanceIdToken,
-callback, errorCallback,
-locale) {
-this._portalService.getImageUrlsAsync(this.userId, this.userKey, fileId, pagesDimension, token, 0, imageCount, this.quality == null ? '' : this.quality, this.use_pdf, this.fileVersion,
-watermarkText, watermarkColor, watermarkPosition, watermarkWidth,
-ignoreDocumentAbsence,
-useHtmlBasedEngine, supportPageRotation,
-function (response) {
-callback.apply(this, [response.data.d]);
-},
-function (error) {
-errorCallback.apply(this, [error]);
-},
-instanceIdToken,
-locale
-);
-},
-getDocumentPageHtml: function (fileId, pageNumber, usePngImages,
-embedImagesIntoHtmlForWordFiles,
-instanceIdToken,
-saveFontsInAllFormats,
-callback, errorCallback, locale) {
-this._portalService.getDocumentPageHtml(fileId, pageNumber, usePngImages,
-embedImagesIntoHtmlForWordFiles,
-saveFontsInAllFormats,
-function (response) {
-callback.apply(this, [response.data.d]);
-},
-function (error) {
-errorCallback.apply(this, [error]);
-},
-instanceIdToken,
-locale
-);
-},
-reorderPage: function (fileId, oldPosition, newPosition, instanceIdToken, callback, errorCallback) {
-this._portalService.reorderPage(fileId, oldPosition, newPosition,
-function (response) {
- callback.apply(this, [response.data.d]);
-},
-function (error) {
-errorCallback.apply(this, [error]);
-},
-instanceIdToken
-);
-},
-rotatePage: function (path, pageNumber, rotationAmount, instanceIdToken, successCallback, errorCallback) {
-this._portalService.rotatePage(path, pageNumber, rotationAmount,
-function (response) {
-successCallback.apply(this, [response.data.d]);
-},
-function (error) {
-errorCallback.apply(this, [error]);
-},
-instanceIdToken
-);
-}
-});
-// Doc Viewer View Model
-docViewerViewModel = function (options) {
-$.extend(this, options);
-this._create(options);
-};
-$.extend(docViewerViewModel.prototype, {
-Layouts: { ScrollMode: 1, BookMode: 2, OnePageInRow: 3, TwoPagesInRow: 4, CoverThenTwoPagesInRow: 5 },
-_model: null,
-pagesDimension: null,
-pageImageWidth: 0,
-imageHorizontalMargin: 34,
-imageVerticalMargin: 0,
-initialZoom: 100,
-zoom: null,
-scale: null,
-docWasLoadedInViewer: false,
-scrollPosition: [0, 0],
-inprogress: null,
-pages: null,
-pageInd: null,
-pageWidth: null,
-pageHeight: null,
-pageCount: null,
-docType: null,
-fileId: null,
-_dvselectable: null,
-_thumbnailHeight: 140,
-_firstPage: null,
-_sessionToken: '',
-imageUrls: [],
-pagePrefix: "page-",
-documentName: null,
-fit90PercentWidth: false,
-_pageBounds: null,
-unscaledPageHeight: null,
-unscaledPageWidth: null,
-pageLeft: null,
-preloadPagesCount: null,
-viewerLayout: 1,
-changedUrlHash: false,
-hashPagePrefix: "page",
-pageContentType: "image",
-scrollbarWidth: null,
-password: null,
-useJavaScriptDocumentDescription: false,
-minimumImageWidth: null,
-fileDisplayName: null,
-hyperlinks: null,
-watermarkText: null,
-watermarkWidth: null,
-watermarkColor: null,
-watermarkLeft: null,
-watermarkTop: null,
-watermarkScreenWidth: null,
-searchText: null,
-htmlSearchHighlightClassName: "search_highlight_html",
-htmlSearchHighlightElement: "span",
-htmlSearchHighlightSvgElement: "tspan",
-currentWordCounter: 0,
-matchedNods: null,
-searchMatches: null,
-matchedNodsCount: 0,
-matchesCount: null,
-searchSeparatorsList: "\\-[\\]{}()*+?\\\\^|\\s.,:;+\"/",
-usePngImagesForHtmlBasedEngine: false,
-loadAllPagesOnSearch: false,
-serverPages: null,
-convertWordDocumentsCompletely: false,
-ignoreDocumentAbsence: false,
-tabs: null,
-useTabsForPages: null,
-tabPanelHeight: 30,
-supportPageRotation: false,
-fileType: null,
-activeTab: null,
-autoHeight: null,
-isHtmlDocument: null,
-rotatedWidth: null,
-alwaysShowLoadingSpinner: null,
-supportListOfContentControls: false,
-supportListOfBookmarks: false,
-isDocumentLoaded: false,
-_isTextPositionsCalculationFinished: true,
-initStorageOnMouseStart: false,
-options: {
-showHyperlinks: true
-},
-_create: function (options) {
-this._model = new docViewerModel(options);
-this._init(options);
-},
-_init: function (options) {
-var self = this;
-this.initCustomBindings();
-if (this.viewerLeft != 0) {
-this.viewerWidth -= this.viewerLeft;
-this.documentSpace.css("width", this.viewerWidth + "px");
-}
-var defaultPageImageWidth = 852;
-var defaultPageImageHeight = 1100;
-this.pageImageWidth = defaultPageImageWidth;
-this.pages = ko.observableArray([]);
-this.scale = ko.observable(this.initialZoom / 100);
-this.inprogress = ko.observable(false),
-this.pageLeft = ko.observable(0);
-this.pageInd = ko.observable(1);
-this.pageWidth = ko.observable(defaultPageImageWidth);
-this.pageHeight = ko.observable(defaultPageImageHeight);
-this.pageCount = ko.observable(0);
-this.docType = ko.observable(-1);
-this.documentName = ko.observable("");
-this.password = ko.observable("");
-this.preloadPagesCount = options.preloadPagesCount;
-this.browserIsChrome = ko.observable(false);
-this.hyperlinks = ko.observableArray();
-this.useTabsForPages = ko.observable(null); // it's undefined
-this.tabs = ko.observableArray([]);
-this.activeTab = ko.observable(0);
-this.autoHeight = ko.observable(false);
-this.isHtmlDocument = ko.observable(false);
-this.alwaysShowLoadingSpinner = ko.observable(false);
-this.rotatedWidth = ko.computed(function () {
-if (this.useTabsForPages()) {
-var width;
-width = this.pageWidth();
-if (this.autoHeight())
-return "auto";
-return width / this.zoom() * 100.0 + "px";
-}
-else
-return "auto";
-}, this);
-this.layout = ko.observable(this.viewerLayout);
-this.firstVisiblePageForVirtualMode = ko.observable(0)
-.extend({ rateLimit: { method: "notifyWhenChangesStop", timeout: 400 } });;
-this.lastVisiblePageForVirtualMode = ko.observable(0)
-.extend({ rateLimit: { method: "notifyWhenChangesStop", timeout: 400 } });;
-this.documentHeight = ko.observable(0);
-if (this.pageContentType == "html") {
-this.imageHorizontalMargin = 0;
-this.calculatePointToPixelRatio();
-}
-if (!this.docViewerId)
-this.docViewerId = this.documentSpace.attr('id');
-this.pagePrefix = this.docViewerId + "-page-";
-if (options.fit90PercentWidth)
-this.pageImageWidth = this.documentSpace.width() * 0.9 - 2 * this.imageHorizontalMargin;
-if (this.pageContentType == "image")
-this.initialWidth = this.pageImageWidth;
-if (this.zoomToFitWidth) {
-this.initialWidth = this.pageImageWidth = this.getFitWidth();
-}
-this.zoom = ko.observable(this.initialZoom);
-this.documentHeight = ko.observable(0);
-this.options.showHyperlinks = (options.showHyperlinks != false && this.use_pdf != 'false');
-this.options.highlightColor = options.highlightColor;
-this.matchedNods = [];
-this.searchMatches = [];
-this.serverPages = [{ w: this.initialWidth, h: 100 }];
-var pageDescription;
-if (this.pages().length == 0) {
-pageDescription = { number: 1, visible: ko.observable(false), url: ko.observable(this.emptyImageUrl), htmlContent: ko.observable(""), searchText: ko.observable(null) };
-if (this.supportPageRotation)
-pageDescription.rotation = ko.observable(0);
-if (this.variableHeightPageSupport) {
-pageDescription.prop = ko.observable(1);
-pageDescription.heightRatio = ko.observable(1);
-}
-if (this.useVirtualScrolling) {
-pageDescription.left = 0;
-pageDescription.top = ko.observable(0);
-}
-this.pages.push(pageDescription);
-}
-this.pagesContainerElement = this.documentSpace.find(".pages_container");
-this.contentControlsFromHtml = new Array();
-if (options.fileId) {
-this.loadDocument();
-}
-else {
-pageDescription.visible(true);
-}
-},
-loadDocument: function (fileId) {
-this.inprogress(true);
-this.documentSpace.trigger('onDocumentloadingStarted');
-var functionErrorCallback = function(error) {
-this._onDocumentLoadFailed(error, fileId || this.fileId);
-};
-var pageCountToShow = 1;
-if (this.pageContentType == "image") {
-var pageWidth;
-if (this.shouldMinimumWidthBeUsed(this.pageImageWidth * this.initialZoom / 100, false))
-pageWidth = this.minimumImageWidth;
-else
-pageWidth = Math.round(this.pageImageWidth * this.initialZoom / 100);
-this._model.loadDocument(fileId || this.fileId, pageCountToShow, pageWidth, this.password(), this.fileDisplayName,
-this.watermarkText, this.watermarkColor, this.watermarkPosition, this.watermarkWidth,
-this.ignoreDocumentAbsence, this.supportPageRotation,
-this.supportListOfContentControls, this.supportListOfBookmarks,
-this.instanceIdToken,
-function (response) {
-//this._onDocumentLoaded(response);
-if (typeof (fileId) !== 'undefined')
-this.fileId = fileId;
-this.pageWidth(this.pageImageWidth * (this.initialZoom / 100));
-this.zoom(this.initialZoom);
-if (this.docWasLoadedInViewer)
-this.setPageNumerInUrlHash(1);
-this._onDocumentLoadedBeforePdf2Xml(response);
-//this.preloadImages(response, this.preloadPagesCount);
-}.bind(this),
-functionErrorCallback.bind(this),
-this.locale,
-this.passwordForOpening
-);
-}
-else if (this.pageContentType == "html") {
-this._model.loadDocumentAsHtml(fileId || this.fileId, pageCountToShow, this.fileDisplayName, this.usePngImagesForHtmlBasedEngine,
-this.convertWordDocumentsCompletely,
-this.watermarkText, this.watermarkColor, this.watermarkPosition, this.watermarkWidth,
-this.ignoreDocumentAbsence, this.supportPageRotation,
-this.supportListOfContentControls, this.supportListOfBookmarks,
-this.embedImagesIntoHtmlForWordFiles,
-this.instanceIdToken,
-this.saveFontsInAllFormats,
-function (response) {
-if (typeof (fileId) !== 'undefined')
-this.fileId = fileId;
-this.pageWidth(this.pageImageWidth * (this.initialZoom / 100));
-this._onDocumentLoadedBeforePdf2Xml(response);
-//this._onDocumentLoaded(response);
-}.bind(this),
-functionErrorCallback.bind(this),
-this.locale,
-this.passwordForOpening
-);
-}
-if (typeof viewModelPathOnlineDoc !== 'undefined')
-viewModelPathOnlineDoc.pathOnlineDoc('');
-},
-getDocumentPageHtml: function (pageNumber, successCallback) {
-var page;
-if (this.useTabsForPages()) {
-page = this.tabs()[pageNumber];
-}
-else {
-page = this.pages()[pageNumber];
-}
-if (!page.visible() && !page.startedDownloadingPage) {
-var pageHtml = this.preloadedPages && this.preloadedPages.html[pageNumber];
-if (pageHtml) {
-page.htmlContent(pageHtml);
-var pageCss = this.preloadedPages.css[pageNumber];
-this.setPageHtml(page, pageNumber, pageHtml, pageCss);
-if (successCallback)
-successCallback.call();
-return;
-}
-page.startedDownloadingPage = true;
-this._model.getDocumentPageHtml(this.fileId, pageNumber, this.usePngImagesForHtmlBasedEngine,
-this.embedImagesIntoHtmlForWordFiles,
-this.instanceIdToken,
-this.saveFontsInAllFormats,
-function (response) {
-this.setPageHtml(page, pageNumber, response.pageHtml, response.pageCss);
-if (successCallback)
-successCallback.call();
-}.bind(this),
-function (error) {
-page.startedDownloadingPage = false;
-this._onError(error);
-}.bind(this),
-this.locale
-);
-}
-},
-setPageHtml: function (page, pageNumber, pageHtml, pageCss) {
-var css = pageCss;
-if (!this.pageCssElement)
-this.pageCssElement = $([]);
-if (this.browserIsIE9OrLess) {
-var firstStyle = this.pageCssElement.filter("style:first");
-css = firstStyle.html();
-firstStyle.remove();
-css += pageCss;
-}
-var styleElement = $("");
-this.pageCssElement = this.pageCssElement.add(styleElement);
-styleElement.appendTo("head");
-var useTabsForPages = this.useTabsForPages();
-if (useTabsForPages || useTabsForPages === null) { // null means no document loaded
-pageHtml = pageHtml.replace(/^[\r\n\s]+|[\r\n\s]+$/g, "");
-}
-page.htmlContent(pageHtml);
-var searchParameters = {
-text: this.searchText,
-isCaseSensitive: false,
-searchForSeparateWords: this.searchForSeparateWords,
-treatPhrasesInDoubleQuotesAsExact: this.treatPhrasesInDoubleQuotesAsExact,
-pageNumber: pageNumber
-};
-if (this.useVirtualScrolling) {
-page.parsedHtmlElement = $(pageHtml);
-page.currentValue = pageHtml;
-this.parseSearchParameters(page.parsedHtmlElement.not("style")[0], searchParameters);
-}
-page.searchText(searchParameters);
-page.visible(true);
-page.startedDownloadingPage = false;
-this.markContentControls(pageNumber);
-},
-addPageCss: function (pageCss) {
-var css = pageCss;
-if (!this.pageCssElement)
-this.pageCssElement = $([]);
-if (this.browserIsIE9OrLess) {
-var firstStyle = this.pageCssElement.filter("style:first");
-css = firstStyle.html();
-firstStyle.remove();
-css += pageCss;
-}
-var styleElement = $("");
-this.pageCssElement = this.pageCssElement.add(styleElement);
-styleElement.appendTo("head");
-},
-retrieveImageUrls: function (imageCount) {
-var i;
-var pageDimension, pageWidth;
-if (this.shouldMinimumWidthBeUsed(this.pageWidth(), true))
-pageWidth = this.minimumImageWidth;
-else
-pageWidth = this.pageWidth();
-pageDimension = Math.floor(pageWidth) + "x";
-this._model.retrieveImageUrls(this.fileId, this._sessionToken, imageCount, (this._mode == 'webComponent' ? Math.floor(pageWidth) : pageDimension),
-this.watermarkText, this.watermarkColor, this.watermarkPosition, this.watermarkWidth,
-this.ignoreDocumentAbsence,
-this.useHtmlBasedEngine, this.supportPageRotation,
-this.instanceIdToken,
-function (response) {
-var imageUrls;
-if (response.d.imageUrls && typeof response.d.image_urls == "undefined")
-imageUrls = response.d.imageUrls;
-else
-imageUrls = response.d.image_urls;
-for (i = 0; i < imageCount; i++) {
-this.pages()[i].url(imageUrls[i]);
-this.loadImagesForVisiblePages();
-}
-}.bind(this),
-function (error) {
-this._onError(error);
-}.bind(this),
-this.locale);
-},
-_onError: function (error, fileId) {
-this.inprogress(false);
-var errorFunction = window.jerror || (window.jGDError && window.jGDError[this.instanceId]);
-if (errorFunction)
-errorFunction(error.Reason || "The document couldn't be loaded...", fileId);
-},
-_onDocumentLoadFailed: function (error, fileId) {
-this.inprogress(false);
-if (error.code == 'Unauthorized')
-$(this).trigger('onDocumentPasswordRequired');
-else {
-this._onError(error, fileId);
-this.documentSpace.trigger("documentLoadFailed.groupdocs");
-}
-},
-_onDocumentLoadedBeforePdf2Xml: function (response) {
-var self = this;
-function callOnDocumentLoaded() {
-self._onDocumentLoaded(response);
-}
-if (response.path && typeof response.guid == "undefined")
-response.guid = response.path;
-var options = {
-userId: this.userId,
-privateKey: this.userKey,
-fileId: this.fileId,
-guid: response.guid,
-documentDescription: response.documentDescription,
-callback: callOnDocumentLoaded,
-setTextPositionsCalculationFinishedCallback: this._setTextPositionsCalculationFinished,
-viewerThis: this
-};
-if (this.useJavaScriptDocumentDescription) {
-options.synchronousWork = this.textSelectionSynchronousCalculation;
-options.descForHtmlBasedEngine = (this.pageContentType == "html"
-|| this.use_pdf == 'false');
-this._pdf2XmlWrapper = new jGroupdocs.Pdf2JavaScriptWrapper(options);
-this._onDocumentLoaded(response);
-}
-else {
-if (this.use_pdf == 'false')
-this._onDocumentLoaded(response);
-else
-this._pdf2XmlWrapper = new jSaaspose.Pdf2XmlWrapper(options);
-}
-},
-_onDocumentLoaded: function (response) {
-this.isDocumentLoaded = true;
-if (this.useJavaScriptDocumentDescription) {
-response.page_count = this._pdf2XmlWrapper.getPageCount();
-}
-else if (typeof response.page_count == "undefined" && response.documentDescription) {
-var documentDescription = JSON.parse(response.documentDescription);
-if (documentDescription.pages && typeof documentDescription.pages.length != "undefined")
-response.page_count = documentDescription.pages.length;
-// for compatibility with Comparison which does not use Pdf2JavaScriptWrapper
-}
-if (response.docType && typeof response.doc_type == "undefined")
-response.doc_type = response.docType;
-if (response.imageUrls && typeof response.image_urls == "undefined")
-response.image_urls = response.imageUrls;
-if (response.path && typeof response.guid == "undefined")
-response.guid = response.path;
-if (!response.page_size)
-response.page_size = {};
-$(this).trigger('onDocumentLoaded', response);
-var self = this;
-this._sessionToken = response.token;
-this.docGuid = response.guid;
-this.pageCount(response.page_count);
-this.documentName(response.name);
-this.docType(response.doc_type);
-this.password(response.password);
-this.matchesCount = 0;
-$(this).trigger('getPagesCount', response.page_count);
-if (this.variableHeightPageSupport) {
-response.documentDescription = this._pdf2XmlWrapper.documentDescription;
-}
-var pages = null;
-var pageSize = null;
-var i;
-var rotationFromServer;
-var isTextDocument;
-var scaleRatio;
-if (this.supportListOfContentControls)
-this.contentControls = this._pdf2XmlWrapper.getContentControls();
-if (this.supportListOfBookmarks)
-this.bookmarks = this._pdf2XmlWrapper.getBookmarks();
-if (this.pageContentType == "image") {
-if (this.use_pdf != 'false' || this.variableHeightPageSupport) {
-pageSize = this._pdf2XmlWrapper.getPageSize();
-if (this.variableHeightPageSupport) {
-response.page_size.Width = pageSize.width;
-response.page_size.Height = pageSize.height;
-}
-this.scale(this.pageImageWidth * (this.initialZoom / 100) / pageSize.width);
-this.unscaledPageHeight = Number(pageSize.height);
-this.unscaledPageWidth = Number(pageSize.width);
-}
-this.heightWidthRatio = parseFloat(response.page_size.Height / response.page_size.Width);
-this.pageHeight(Math.round(this.pageImageWidth * this.heightWidthRatio * (this.initialZoom / 100)));
-$(this).trigger('_onProcessPages', response);
-}
-else if (this.pageContentType == "html") {
-this.watermarkScreenWidth = null;
-this.zoom(100);
-this.fileType = response.fileType;
-this.urlForResourcesInHtml = response.urlForResourcesInHtml;
-isTextDocument = (this.fileType == "Txt" || this.fileType == "Xml");
-this.isHtmlDocument(this.fileType == "Html" || this.fileType == "Htm" || isTextDocument);
-var isDocumentSinglePaged = (response.doc_type == "Cells" || this.isHtmlDocument());
-this.useTabsForPages(isDocumentSinglePaged);
-isDocumentSinglePaged |= (response.doc_type == "Image");
-this.documentSpace.trigger("isDocumentSinglePaged.groupdocs", isDocumentSinglePaged);
-this.alwaysShowLoadingSpinner(!isDocumentSinglePaged);
-var browserIsChrome = $.browser.webkit && !!window.chrome;
-var isChromium = window.chrome;
-var vendorName = window.navigator.vendor;
-var isOpera = window.navigator.userAgent.indexOf("OPR") > -1;
-if (!!isChromium && vendorName === "Google Inc." && isOpera == false)
-browserIsChrome = true;
-this.browserIsChrome(browserIsChrome);
-var pageCss = response.pageCss[0];
-if (!pageCss)
-pageCss = "";
-if (this.pageCssElement)
-this.pageCssElement.remove();
-this.urlForImagesInHtml = response.urlForImagesInHtml;
-this.urlForFontsInHtml = response.urlForFontsInHtml;
-this.pageCssElement = $([]);
-this.preloadedPages = { html: response.pageHtml, css: response.pageCss };
-var firstPageHtml = response.pageHtml[0];
-var firstPage = this.pages()[0];
-pages = this._pdf2XmlWrapper.documentDescription.pages;
-this.autoHeight(this.useTabsForPages());
-var element;
-if (this.useTabsForPages()) {
-this.pageCount(1);
-if (this.isHtmlDocument()) {
-var bodyContents;
-if (isTextDocument) {
-bodyContents = "
" + firstPageHtml + "
";
-}
-else {
-var headContents = this.getHtmlElementContents(firstPageHtml, "head");
-if (headContents) {
-var styleElementContents = this.getHtmlElements(headContents, "style");
-var linkElementContents = this.getHtmlElementAttributess(headContents, "link");
-if (linkElementContents != null) {
-this.linkElementsToLoad = 0;
-for (i = 0; i < linkElementContents.length; i++) {
-element = $(linkElementContents[i]);
-var rel = element.attr("rel");
-if (rel == "stylesheet") {
-this.linkElementsToLoad++;
-var uri = element.attr("href");
-$.get(uri,
-function (response) {
-var styleElement = $("");
-self.pageCssElement = self.pageCssElement.add(styleElement);
-styleElement.prependTo("head");
-self.linkElementsToLoad--;
-if (self.linkElementsToLoad == 0) {
-self.autoHeight(true);
-self._calculatePageSizeFromDOM();
-self.adjustInitialZoom();
-}
-})
-.fail(function () {
-self.linkElementsToLoad--;
-if (self.linkElementsToLoad == 0) {
-self.autoHeight(true);
-self._calculatePageSizeFromDOM();
-self.adjustInitialZoom();
-}
-});
-}
-}
-}
-if (styleElementContents) {
-for (i = 0; i < styleElementContents.length; i++) {
-var css = styleElementContents[i];
-pageCss += css;
-}
-}
-}
-bodyContents = this.getPageBodyContentsWithReplace(firstPageHtml);
-}
-var bodyContentsElement = $(bodyContents);
-bodyContentsElement.find("script").remove();
-bodyContentsElement.addClass('html_document_wrapper');
-firstPageHtml = bodyContentsElement[0].outerHTML;
-var fontSizeStyle = ".grpdx .ie .doc-page .html_page_contents > div {font-size:1em;}";
-pageCss += fontSizeStyle;
-}
-}
-else {
-pageSize = this._pdf2XmlWrapper.getPageSize();
-firstPage.prop(pages[0].h / pages[0].w);
-scaleRatio = this.getScaleRatioForPage(pageSize.width, pageSize.height, pages[0].w, pages[0].h);
-firstPage.heightRatio(scaleRatio);
-this.documentSpace.css("background-color", "inherit");
-}
-element = $("");
-this.pageCssElement = this.pageCssElement.add(element);
-element.appendTo("head");
-var sharedCss = response.sharedCss;
-if (sharedCss) {
-var sharedElement = $("");
-this.pageCssElement = this.pageCssElement.add(sharedElement);
-sharedElement.appendTo("head");
-}
-this.calculatePointToPixelRatio();
-var htmlPageContents = this.documentSpace.find(".html_page_contents:first");
-firstPage.htmlContent(firstPageHtml);
-firstPage.visible(true);
-this.clearContentControls();
-this.markContentControls(0);
-this.tabs.removeAll();
-if (this.useTabsForPages()) {
-var sheets = this._pdf2XmlWrapper.documentDescription.sheets;
-if (sheets) {
-for (i = 0; i < sheets.length; i++) {
-this.tabs.push({
-name: sheets[i].name,
-visible: ko.observable(false),
-htmlContent: ko.observable(""),
-searchText: ko.observable(null)
-});
-}
-}
-this.activeTab(0);
-this.documentSpace.css("background-color", "white");
-}
-if (this.useTabsForPages() && this.tabs().length > 0)
-this.documentSpace.addClass("doc_viewer_tabs");
-else
-this.documentSpace.removeClass("doc_viewer_tabs");
-var pageElement = htmlPageContents.children("div,table,img");
-var pageElementWidth;
-if (this.useTabsForPages()) {
-pageElementWidth = pageElement.width();
-var pageElementHeight = pageElement.height();
-firstPage.prop(pageElementHeight / pageElementWidth);
-pageSize = { width: pageElementWidth, height: pageElementHeight };
-firstPage.heightRatio(1);
-}
-if (this.supportPageRotation) {
-if (pages)
-rotationFromServer = pages[0].rotation;
-else
-rotationFromServer = 0;
-if (typeof rotationFromServer == "undefined")
-rotationFromServer = 0;
-this.applyPageRotationInBrowser(0, firstPage, rotationFromServer);
-}
-this.imageHorizontalMargin = 7;
-response.page_size.Width = pageSize.width;
-response.page_size.Height = pageSize.height;
-var pageWidthFromServer = pageSize.width;
-var onlyImageInHtml = false;
-var pageElementChildren = pageElement.children();
-if (pageElementChildren.length == 1 && pageElementChildren.filter("img").length == 1)
-onlyImageInHtml = true;
-var oldWidth = null;
-if (!onlyImageInHtml && !this.useTabsForPages()) {
-oldWidth = pageElement.css("width");
-pageElement.css("width", pageWidthFromServer + "pt");
-}
-if (this.isHtmlDocument())
-pageElementWidth = this.getFitWidth();
-else
-pageElementWidth = pageElement.width();
-this.heightWidthRatio = parseFloat(response.page_size.Height / response.page_size.Width);
-if (!this.useTabsForPages() || !this.supportPageRotation || firstPage.rotation % 180 == 0)
-this.pageWidth(pageElementWidth);
-if (oldWidth !== null && typeof oldWidth != "undefined")
-pageElement.css("width", oldWidth);
-this.pageHeight(Math.round(this.pageWidth() * this.heightWidthRatio));
-this.initialWidth = this.pageWidth();
-}
-var pageCount = this.pageCount();
-if (!response.lic && pageCount > 3)
-pageCount = 3;
-var pagesNotObservable = [];
-var pageDescription;
-if (this.pageContentType == "image") {
-//this.pages.removeAll();
-var pageImageUrl, pageDescriptionCount;
-if (this.variableHeightPageSupport) {
-this.serverPages = pages = this._pdf2XmlWrapper.documentDescription.pages;
-pageDescriptionCount = this._pdf2XmlWrapper.getPageCount();
-//pageDescriptionCount = pages.length;
-}
-for (i = 0; i < pageCount; i++) {
-if (i < response.image_urls.length)
-pageImageUrl = response.image_urls[i];
-else
-pageImageUrl = "";
-pageDescription = {
-number: i + 1,
-visible: ko.observable(false),
-url: ko.observable(pageImageUrl)
-};
-if (this.variableHeightPageSupport) {
-if (i < pageDescriptionCount && pages)
-pageDescription.prop = ko.observable(pages[i].h / pages[i].w);
-else
-pageDescription.prop = ko.observable(this.pageHeight() / this.pageWidth());
-}
-if (this.supportPageRotation) {
-rotationFromServer = this.serverPages[i].rotation;
-if (typeof rotationFromServer == "undefined")
-rotationFromServer = 0;
-pageDescription.rotation = ko.observable(rotationFromServer);
-this.applyPageRotationInBrowser(i, pageDescription, rotationFromServer);
-}
-if (this.useVirtualScrolling) {
-pageDescription.left = 0;
-pageDescription.top = ko.observable(0);
-}
-pagesNotObservable.push(pageDescription);
-}
-}
-else if (this.pageContentType == "html") {
-this.serverPages = pages = this._pdf2XmlWrapper.documentDescription.pages;
-//this.pages.splice(1, this.pages().length - 1);
-//var documentHeight = 0;
-//var pageTop = 0;
-pageWidth = this.pageWidth();
-pageDescription = this.pages()[0];
-//var layout = this.layout();
-//if (layout != this.Layouts.TwoPagesInRow)
-// pageTop += pageWidth * pageDescription.prop();
-//documentHeight += pageWidth * pageDescription.prop();
-pagesNotObservable.push(pageDescription);
-var proportion;
-//var cssForAllPages = "";
-for (i = 1; i < pageCount; i++) {
-scaleRatio = this.getScaleRatioForPage(pageSize.width, pageSize.height, pages[i].w, pages[i].h);
-proportion = pages[i].h / pages[i].w;
-pageDescription = {
-number: i + 1,
-visible: ko.observable(false),
-htmlContent: ko.observable(""),
-prop: ko.observable(proportion),
-heightRatio: ko.observable(scaleRatio),
-searchText: ko.observable(null)
-};
-//var pageHtml = this.preloadedPages && this.preloadedPages.html[i];
-//if (pageHtml) {
-// pageDescription.htmlContent(pageHtml);
-// if (this.preloadedPages.css[i])
-// cssForAllPages += this.preloadedPages.css[i];
-// pageDescription.visible(true);
-//}
-if (this.supportPageRotation) {
-rotationFromServer = this.serverPages[i].rotation;
-if (typeof rotationFromServer == "undefined")
-rotationFromServer = 0;
-pageDescription.rotation = ko.observable(rotationFromServer);
-this.applyPageRotationInBrowser(i, pageDescription, rotationFromServer);
-}
-if (this.useVirtualScrolling) {
-pageDescription.left = 0;
-pageDescription.top = ko.observable(0);
-}
-// if (layout == this.Layouts.OnePageInRow
-// || (layout == this.Layouts.TwoPagesInRow && i % 2 == 1)
-// || (layout == this.Layouts.CoverThenTwoPagesInRow && i % 2 == 0)) {
-// pageTop += pageWidth * proportion;
-// documentHeight = pageTop;
-// }
-// else
-// documentHeight = pageTop + pageHeight;
-// //pageTop += pageWidth * proportion * scaleRatio;
-//}
-pagesNotObservable.push(pageDescription);
-}
-//if (this.useVirtualScrolling)
-// this.documentHeight(documentHeight);
-if (isDocumentSinglePaged)
-response.page_count = 0; // for thumbnails after rotation
-this.documentSpace.trigger('_onProcessPages', [response, pagesNotObservable, this.getDocumentPageHtml, this, this.pointToPixelRatio, this.docViewerId]);
-}
-this.pages(pagesNotObservable);
-this.calculatePagePositionsForVirtualMode();
-this._firstPage = this.documentSpace.find("#" + this.pagePrefix + "1");
-if (this.pages().length > 0 && this._firstPage.length == 0 && !this.useVirtualScrolling) // viewer destroyed while loading document
-return;
-$(this).trigger('onProcessPages', [this.docGuid]);
-this.inprogress(false);
-if (this.pageContentType == "image") {
-this.recalculatePageLeft();
-}
-//var hCount = Math.floor(this.pagesContainerElement.width() / this._firstPage.width());
-var hCount = Math.floor(this.pagesContainerElement.width() / this.pageWidth());
-if (hCount == 0)
-hCount = 1;
-if (this.layout() == this.Layouts.OnePageInRow)
-hCount = 1;
-if (this._pdf2XmlWrapper && this._pdf2XmlWrapper._setTextPositionsCalculationFinished)
-this._isTextPositionsCalculationFinished = false;
-var scale = this.scale();
-this._dvselectable = this.pagesContainerElement.dvselectable({
-txtarea: this.selectionContent,
-pdf2XmlWrapper: this._pdf2XmlWrapper,
-startNumbers: this.getVisiblePagesNumbers(),
-pagesCount: this.pageCount(),
-proportion: scale,
-pageHeight: this.getPageHeight(),
-horizontalPageCount: hCount,
-docSpace: this.documentSpace,
-pagePrefix: this.pagePrefix,
-searchPartialWords: this.searchPartialWords,
-storeAnnotationCoordinatesRelativeToPages: this.storeAnnotationCoordinatesRelativeToPages,
-initializeStorageOnly: this.pageContentType == "html",
-preventTouchEventsBubbling: this.preventTouchEventsBubbling,
-highlightColor: this.options.highlightColor,
-useVirtualScrolling: this.useVirtualScrolling,
-pageLocations: (this.useVirtualScrolling ? this.pages() : null),
-initStorageOnMouseStart: this.initStorageOnMouseStart
-});
-this._dvselectable.dvselectable("setVisiblePagesNumbers", this.getVisiblePagesNumbers());
-if (!this.docWasLoadedInViewer && (this.usePageNumberInUrlHash === undefined || this.usePageNumberInUrlHash == true)) {
-var firstPageLocation = location.pathname;
-if (location.hash.substring(1, this.hashPagePrefix.length + 1) != this.hashPagePrefix)
-this.setPage(1);
-Sammy(function () {
-this.get(/\#page(.*)/i, openPath);
-this.get(firstPageLocation, openFirstPage);
-function openFirstPage() {
-if (self.pageInd() != 1)
-self.setPage(1);
-}
-function openPath() {
-if (!self.changedUrlHash) {
-if (this.params.splat.length == 0 || this.params.splat[0].length == 0) {
-}
-else {
-var hashString = this.params.splat[0];
-//hashString = hashString.substring(1);
-var newPageIndex = Number(hashString);
-if (isNaN(newPageIndex))
-newPageIndex = 1;
-if (newPageIndex > self.pageCount())
-newPageIndex = self.pageCount();
-if (newPageIndex < 1)
-newPageIndex = 1;
-self.setPage(newPageIndex);
-}
-}
-}
-}).run();
-}
-else {
-this.setPage(1);
-}
-if (!this.zoomToFitHeight)
-this.loadImagesForVisiblePages(true);
-this.adjustInitialZoom();
-this.docWasLoadedInViewer = true;
-// get a list of document hyperlinks from the server
-if (this.pageContentType == "image" && this._mode != "webComponent" && this._mode != "annotatedDocument") {
-this._loadHyperlinks();
-}
-if (this.preloadPagesOnBrowserSide) {
-var preloadPagesCount = this.preloadPagesCount;
-if (preloadPagesCount === null || preloadPagesCount > this.pageCount())
-preloadPagesCount = this.pageCount();
-this.loadImagesForPages(1, preloadPagesCount);
-}
-$(this).trigger('onScrollDocView', { pi: 1, direction: "up", position: 0 });
-$(this).trigger("onDocumentLoadComplete", [response, this._pdf2XmlWrapper]);
-if (this._isTextPositionsCalculationFinished)
-this.raiseDocumentLoadCompletedEvent();
-},
-_onDocumentHyperlinksLoaded: function (response) {
-if (!response || !response.links) {
-this.hyperlinks.removeAll();
-return;
-}
-var links = [];
-var self = this;
-var selectable = this.getSelectableInstance();
-$.each(response.links, function () {
-var l = {
-url: this.Url,
-pageNumber: this.PageNumber,
-targetPage: this.TargetPage,
-rect: new jSaaspose.Rect(this.Bounds.X, this.Bounds.Y, this.Bounds.X + this.Bounds.Width, this.Bounds.Y + this.Bounds.Height)
-};
-l.frame = ko.observable(selectable != null ? selectable.convertPageAndRectToScreenCoordinates(l.pageNumber, l.rect) : l.rect);
-/*var frame = l.rect.clone().scale(self.scale());
-if (frame.top() < 0)
-frame.setTop(0);
-frame.add(selectable.pages[l.pageNumber].rect.topLeft);
-return frame;
-}, self);*/
-links.push(l);
-});
-this.hyperlinks(links);
-},
-_loadHyperlinks: function () {
-if (this.options.showHyperlinks == true) {
-this._model.loadHyperlinks(
-this.fileId,
-this._onDocumentHyperlinksLoaded.bind(this),
-function (error) {
-});
-}
-},
-_refreshHyperlinkFrames: function () {
-var selectable = this.getSelectableInstance();
-$.each(this.hyperlinks(), function () {
-this.frame(selectable != null ? selectable.convertPageAndRectToScreenCoordinates(this.pageNumber, this.rect) : this.rect);
-});
-},
-setPageWidth: function (val) {
-this.pageImageWidth = val;
-},
-setContainerWidth: function (containerWidth) {
-this.viewerWidth = containerWidth;
-},
-getFitWidth: function () {
-var viewerWidth;
-if (this.viewerWidth)
-viewerWidth = this.viewerWidth;
-else
-viewerWidth = this.documentSpace.width();
-var scrollbarWidth = this.getScrollbarWidth();
-var fittingWidth = viewerWidth - scrollbarWidth - 2 * (this.imageHorizontalMargin + 1);
-if (!this.useTabsForPages()) {
-var layout = this.layout();
-if (layout == this.Layouts.TwoPagesInRow
-|| layout == this.Layouts.CoverThenTwoPagesInRow)
-fittingWidth = fittingWidth / 2;
-}
-return fittingWidth;
-},
-getFitWidthZoom: function () {
-return this.getFitWidth() / this.initialWidth * 100;
-},
-setContainerHeight: function (containerHeight) {
-this.viewerHeight = containerHeight;
-},
-getViewerHeight: function () {
-var viewerHeight;
-if (this.viewerHeight)
-viewerHeight = this.viewerHeight;
-else
-viewerHeight = this.documentSpace.parent().height();
-return viewerHeight;
-},
-getFitHeightZoom: function () {
-var viewerHeight = this.getViewerHeight();
-return (viewerHeight - (this.imageVerticalMargin + 2)) / Math.round(this.initialWidth * this.heightWidthRatio) * 100;
-//return viewerHeight / Math.round(this.pageImageWidth * this.heightWidthRatio) * 100;
-},
-getScrollbarWidth: function () {
-if (this.scrollbarWidth == null) {
-// Create the measurement node
-var scrollDivJquery = $("
").css("width", "100px").css("height", "100px")
-.css("overflow", "scroll").css("position", "absolute").css("top", "-9999px");
-var scrollDiv = scrollDivJquery[0];
-document.body.appendChild(scrollDiv);
-// Get the scrollbar width
-this.scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
-// Delete the DIV
-document.body.removeChild(scrollDiv);
-}
-return this.scrollbarWidth;
-},
-getPageHeight: function () {
-return this.unscaledPageHeight * this.scale();
-},
-getSelectable: function () {
-return this._dvselectable;
-},
-_onPropertiesLoaded: function (response) {
-$(this).trigger('onDocumentLoaded', { fileId: this.fileId, response: response });
-},
-getFileId: function () {
-return this.fileId;
-},
-ScrollDocView: function (item, e) {
-var isSetCalled = this.isSetCalled;
-this.isSetCalled = false;
-if (isSetCalled)
-return;
-if (this.useTabsForPages())
-return;
-//var direction;
-var pageIndex = null;
-var panelHeight = this.documentSpace.height();
-var st = $(e.target).scrollTop();
-$(this).trigger('onBeforeScrollDocView', { position: st });
-if (this.variableHeightPageSupport) {
-var selectable = this.getSelectableInstance();
-if (selectable == null)
-return null;
-selectable.initStorage();
-var pageLocations = selectable.pageLocations;
-var pageImageTop, pageImageBottom;
-var pages = this.pages();
-var visiblePageNumbers;
-visiblePageNumbers = this.getVisiblePagesNumbers();
-var documentSpaceHeight = this.documentSpace.height();
-var nearestPageNumber = null, maxPartWhichIntersects = null;
-var topOfIntersection, bottomOfIntersection, lengthOfIntersection, partWhichIntersects;
-for (var i = visiblePageNumbers.start - 1; i <= visiblePageNumbers.end - 1; i++) {
-if (this.useVirtualScrolling)
-pageImageTop = pages[i].top();
-else
-pageImageTop = pageLocations[i].y;
-pageHeight = pages[i].prop() * this.pageWidth();
-pageImageBottom = Math.floor(pageImageTop + pageHeight);
-topOfIntersection = Math.max(pageImageTop, st);
-bottomOfIntersection = Math.min(pageImageBottom, st + documentSpaceHeight);
-lengthOfIntersection = bottomOfIntersection - topOfIntersection;
-partWhichIntersects = lengthOfIntersection / pageHeight;
-if (maxPartWhichIntersects == null || partWhichIntersects > maxPartWhichIntersects) {
-maxPartWhichIntersects = partWhichIntersects;
-nearestPageNumber = i;
-}
-}
-pageIndex = nearestPageNumber + 1;
-}
-else {
-if (this._firstPage != null) {
-pageIndex = (st + panelHeight / 2) / (this._firstPage.outerHeight(true));
-var hCount = Math.floor(this.pagesContainerElement.width() / this._firstPage.width());
-if (hCount == 0)
-hCount = 1;
-if (this.layout() == this.Layouts.OnePageInRow)
-hCount = 1;
-pageIndex = (pageIndex >> 0);
-var totalPageCount = this.pageCount();
-if (pageIndex != totalPageCount)
-pageIndex = pageIndex + 1;
-pageIndex = (pageIndex - 1) * hCount + 1;
-if (pageIndex > totalPageCount)
-pageIndex = totalPageCount;
-}
-}
-if (pageIndex !== null) {
-this.pageInd(pageIndex);
-this.setPageNumerInUrlHash(pageIndex);
-$(this).trigger('onScrollDocView', { pi: pageIndex, position: st });
-this.documentSpace.trigger("documentScrolledToPage.groupdocs", [pageIndex]);
-}
-},
-ScrollDocViewEnd: function (item, e) {
-if (this.useTabsForPages())
-return;
-this.isSetCalled = false;
-this.scrollPosition = [$(e.target).scrollLeft(), $(e.target).scrollTop()];
-var numbers = this.loadImagesForVisiblePages();
-if (this._dvselectable) {
-$(this._dvselectable).dvselectable("setVisiblePagesNumbers", numbers);
-}
-$(this).trigger('onDocumentPageSet', [this.pageInd()]);
-this.documentSpace.trigger("documentScrolledToPage.groupdocs", [this.pageInd()]);
-},
-getVisiblePagesNumbers: function () {
-if (!this.isDocumentLoaded)
-return null;
-if (this.useTabsForPages()) {
-return { start: 1, end: 1 };
-}
-var start = null;
-var end = null;
-var scrollTop = this.documentSpace.scrollTop();
-var pageHeight;
-var startIndex = null;
-var documentSpaceHeight = this.documentSpace.height();
-if (this.variableHeightPageSupport) {
-var selectable = this.getSelectableInstance();
-if (selectable == null && !this.useVirtualScrolling)
-return null;
-var pages = this.pages();
-var pageLocations;
-var pageCount;
-if (this.useVirtualScrolling)
-pageCount = pages.length;
-else {
-pageLocations = selectable.pageLocations;
-if (pageLocations.length != pages.length)
-return null;
-pageCount = pageLocations.length;
-}
-var pageImageTop, pageImageBottom;
-for (var i = 0; i < pageCount; i++) {
-if (this.useVirtualScrolling)
-pageImageTop = pages[i].top();
-else
-pageImageTop = pageLocations[i].y;
-pageHeight = pages[i].prop() * this.pageWidth();
-pageImageBottom = pageImageTop + pageHeight;
-if ((pageImageTop >= scrollTop && pageImageTop <= scrollTop + documentSpaceHeight) ||
-(pageImageBottom >= scrollTop && pageImageBottom <= scrollTop + documentSpaceHeight) ||
-(pageImageTop <= scrollTop && pageImageBottom >= scrollTop + documentSpaceHeight)) {
-if (start === null)
-start = i + 1;
-else
-end = i + 1;
-}
-}
-if (end === null)
-end = start;
-}
-else {
-if (this._firstPage != null) {
-pageHeight = this._firstPage.outerHeight(true); // div height
-var pageWidth = this._firstPage.outerWidth(true); // div width
-//var scrollTop = this.scrollPosition[1], //scroll top
-var dsW = this.pagesContainerElement.width();
-startIndex = Math.floor(scrollTop / pageHeight) + 1;
-var endIndex = Math.floor((scrollTop + documentSpaceHeight) / pageHeight) + 1;
-var hCountToShow = Math.floor(dsW / pageWidth);
-if (hCountToShow == 0)
-hCountToShow = 1;
-if (this.layout() == this.Layouts.OnePageInRow)
-hCountToShow = 1;
-start = startIndex != 1 ? (startIndex - 1) * hCountToShow + 1 : 1;
-end = endIndex * hCountToShow <= this.pageCount() ? endIndex * hCountToShow : this.pageCount();
-}
-}
-return { start: start, end: end };
-},
-loadImagesForVisiblePages: function (forceLoading) {
-var numbers = this.getVisiblePagesNumbers();
-if (numbers != null) {
-var start = numbers.start;
-var end = numbers.end;
-if (start !== null && end !== null) {
-this.loadImagesForPages(start, end, forceLoading);
-if (this.useVirtualScrolling) {
-this.firstVisiblePageForVirtualMode(numbers.start - 1);
-this.lastVisiblePageForVirtualMode(numbers.end - 1);
-}
-}
-}
-return numbers;
-},
-loadImagesForPages: function (start, end, forceLoading) {
-var pages = this.pages();
-var cssForAllPages = "";
-var page;
-var isPageVisible;
-if (pages.length < end) end = pages.length;
-for (var i = start; i <= end; i++) {
-page = pages[i - 1];
-isPageVisible = page.visible();
-if (isPageVisible)
-this.markContentControls(i - 1);
-if (this.pageContentType == "image") {
-this.triggerImageLoadedEvent(i);
-if (this.supportPageRotation && forceLoading) {
-this.addSuffixToImageUrl(page);
-}
-}
-else if (this.pageContentType == "html") {
-if (!isPageVisible) {
-this.getDocumentPageHtml(i - 1);
-}
-}
-page.visible(true);
-}
-if (this.pageContentType == "html" && cssForAllPages != "")
-this.addPageCss(cssForAllPages);
-//for (var i = start; i <= end; i++) {
-// page = pages[i - 1];
-// page.visible(true);
-//}
-},
-setPage: function (index) {
-this.isSetCalled = true;
-var newPageIndex = Number(index);
-if (isNaN(newPageIndex) || newPageIndex < 1)
-newPageIndex = 1;
-this.pageInd(newPageIndex);
-var pageTop;
-if (this.variableHeightPageSupport) {
-if (this.useVirtualScrolling) {
-pageTop = this.pages()[newPageIndex - 1].top();
-}
-else {
-var selectable = this.getSelectableInstance();
-if (selectable != null) {
-if (selectable.pageLocations && selectable.pageLocations.length > 0) {
-var pageImageTop = selectable.pageLocations[newPageIndex - 1].y;
-pageTop = pageImageTop;
-}
-}
-}
-}
-else {
-var hCount = Math.floor(this.pagesContainerElement.width() / this._firstPage.width());
-if (hCount == 0)
-hCount = 1;
-if (this.layout() == this.Layouts.OnePageInRow)
-hCount = 1;
-var selIndex = Math.ceil(newPageIndex / hCount) - 1;
-pageTop = selIndex * this._firstPage.outerHeight(true);
-}
-var oldScrollTop = this.documentSpace.scrollTop();
-this.documentSpace.scrollTop(pageTop);
-if (this.documentSpace.scrollTop() == oldScrollTop) {
-this.isSetCalled = false;
-}
-$(this).trigger('onDocViewScrollPositionSet', { position: pageTop });
-var page = this.pages()[newPageIndex - 1];
-if (this.pageContentType == "image") {
-this.triggerImageLoadedEvent(newPageIndex);
-page.visible(true);
-}
-else if (this.pageContentType == "html") {
-if (!page.visible()) {
-this.getDocumentPageHtml(newPageIndex - 1);
-}
-}
-//this.isSetCalled = false;
-this.setPageNumerInUrlHash(newPageIndex);
-$(this).trigger('onDocumentPageSet', [newPageIndex]);
-this.documentSpace.trigger("documentPageSet.groupdocs", newPageIndex);
-},
-triggerImageLoadedEvent: function (pageIndex) {
-if ($.browser.msie) {
-if (!this.pages()[pageIndex - 1].visible()) {
-$("img#img-" + pageIndex).load(function () {
-$(this).trigger("onPageImageLoaded");
-});
-}
-}
-},
-setZoom: function (value) {
-this.zoom(value);
-this.loadPagesZoomed();
-this.clearContentControls();
-if (this.pageContentType == "image") {
-if (this._pdf2XmlWrapper) {
-var pageSize = this._pdf2XmlWrapper.getPageSize();
-this.scale(this.pageImageWidth / pageSize.width * value / 100);
-}
-this._dvselectable.dvselectable("changeSelectedRowsStyle", this.scale());
-this.reInitSelectable();
-if (this.useVirtualScrolling) {
-this.getSelectableInstance().recalculateSearchPositions(this.scale());
-this.highlightSearch();
-}
-this.recalculatePageLeft();
-this.setPage(this.pageInd());
-if (this.shouldMinimumWidthBeUsed(this.pageWidth(), true))
-this.loadImagesForVisiblePages();
-if (this.options.showHyperlinks) {
-this._refreshHyperlinkFrames();
-}
-}
-else if (this.pageContentType == "html") {
-this.reInitSelectable();
-this.setPage(this.pageInd());
-this.loadImagesForVisiblePages();
-this.reflowPagesInChrome(true);
-}
-},
-loadPagesZoomed: function () {
-if (this.useTabsForPages()) {
-this._calculatePageSizeFromDOM();
-return;
-}
-var newWidth = Math.round(this.initialWidth * (this.zoom()) / 100);
-var newHeight = Math.round(newWidth * this.heightWidthRatio);
-if (newWidth != this.pageWidth() || newHeight != this.pageHeight()) {
-this.pagesDimension = Math.floor(newWidth) + 'x';
-this.pageWidth(newWidth);
-this.pageHeight(newHeight);
-if (!this.useTabsForPages()) {
-this.calculatePagePositionsForVirtualMode();
-}
-if (this.pageContentType == "image") {
-var pageCount = this.pageCount();
-if (!this.shouldMinimumWidthBeUsed(newWidth, true))
-this.retrieveImageUrls(pageCount);
-}
-}
-},
-performSearch: function (value, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch) {
-if (this.pageContentType == "image") {
-var selectable = this.getSelectableInstance();
-if (selectable != null) {
-var searchCountItem = selectable.performSearch(value, this.scale(), isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch);
-$(this).trigger('onSearchPerformed', [searchCountItem]);
-}
-}
-else {
-this.searchText = value;
-this.searchForSeparateWords = searchForSeparateWords;
-this.treatPhrasesInDoubleQuotesAsExact = treatPhrasesInDoubleQuotesAsExact;
-var pages = this.pages();
-var page;
-if (this.loadAllPagesOnSearch)
-this.loadImagesForPages(1, pages.length);
-for (var i = 0; i < pages.length; i++) {
-page = pages[i];
-if (page.visible()) {
-var searchParameters = {
-text: value,
-isCaseSensitive: isCaseSensitive,
-searchForSeparateWords: searchForSeparateWords,
-treatPhrasesInDoubleQuotesAsExact: treatPhrasesInDoubleQuotesAsExact,
-pageNumber: i
-};
-page.searchText(searchParameters);
-}
-}
-}
-},
-searchHtmlElement: function (node, nodeName, className, words, wordsWithAccentedChars,
-searchForSeparateWords, isCaseSensitive, fullWordsOnly, pageNumber) {
-nodeName = nodeName || this.htmlSearchHighlightElement;
-var totalWordCount;
-var pattern, currentNodeMatchCount = 0;
-var match = null;
-var nodeText = null;
-var regexp;
-if (node.nodeType === 3) {
-if (words) {
-totalWordCount = words.length;
-var trimmedText = node.data.replace(/[\r\n\s]+$/g, "");
-var separatorsRegexString = "[" + this.searchSeparatorsList + "]";
-var wordStartSeparatorsRegexString;
-var wordEndSeparatorsRegexString;
-var reservedSymbolsInEndRegExp = /[\-[\]{}()*+?\\^|\s.,:;+"]+$/g;
-var currentWord, currentWordWithAccentedChars;
-var index, length;
-var highlightElementName;
-var matchNum;
-var previousMatchPosition = -1, matchLength = 0, previousMatchEndPosition = 0;
-trimmedText = trimmedText.replace(reservedSymbolsInEndRegExp, "");
-if (trimmedText.length == 0)
-return 0;
-if (searchForSeparateWords && !fullWordsOnly) {
-var searchMatches = new Array();
-for (var wordNum = 0; wordNum < words.length; wordNum++) {
-currentWord = words[wordNum];
-currentWordWithAccentedChars = wordsWithAccentedChars[wordNum];
-pattern = currentWordWithAccentedChars;
-length = pattern.length;
-nodeText = node.data;
-if (!isCaseSensitive) {
-pattern = pattern.toLocaleLowerCase();
-nodeText = nodeText.toLocaleLowerCase();
-}
-previousMatchEndPosition = 0;
-do {
-index = nodeText.indexOf(pattern, previousMatchEndPosition);
-if (index != -1) {
-searchMatches.push({ index: index, length: length });
-previousMatchEndPosition = index + length;
-}
-} while (index != -1);
-}
-searchMatches.sort(function (match1, match2) {
-return match2.index - match1.index;
-});
-var containingMatches = new Array();
-// remove overlapping search hits but keep one of two hits overlapping each other
-searchMatches = searchMatches.filter(function (match, index) {
-return !searchMatches.some(function (innerMatch, innerIndex) {
-var isContainedInAnother = innerIndex != index &&
-(match.index >= innerMatch.index && match.index < innerMatch.index + innerMatch.length)
-|| (match.index + match.length > innerMatch.index && match.index + match.length < innerMatch.index + innerMatch.length);
-if (isContainedInAnother) {
-if (containingMatches.indexOf(match) != -1)
-return false;
-containingMatches.push(innerMatch);
-}
-return isContainedInAnother;
-});
-});
-var newNodesCreated = 0;
-for (matchNum = 0; matchNum < searchMatches.length; matchNum++) {
-highlightElementName = "search_highlight" + this.matchesCount.toString();
-this.matchesCount++;
-newNodesCreated += this.highlightOneNode(node, searchMatches[matchNum].index, searchMatches[matchNum].length, highlightElementName, className, pageNumber);
-}
-return newNodesCreated;
-}
-var isFirstWord, isLastWord;
-var foundFirstWordsButDidNotFindOthers;
-do {
-currentWord = words[this.currentWordCounter];
-currentWordWithAccentedChars = wordsWithAccentedChars[this.currentWordCounter];
-isFirstWord = (this.currentWordCounter == 0);
-isLastWord = (this.currentWordCounter == totalWordCount - 1);
-if (isFirstWord && !fullWordsOnly) {
-wordStartSeparatorsRegexString = "";
-}
-else {
-wordStartSeparatorsRegexString = "(?:" + separatorsRegexString + "|^)+";
-}
-if (isLastWord && !fullWordsOnly) {
-wordEndSeparatorsRegexString = "";
-}
-else {
-wordEndSeparatorsRegexString = "(?:" + separatorsRegexString + "|$)+";
-}
-pattern = wordStartSeparatorsRegexString + "(" + currentWordWithAccentedChars + wordEndSeparatorsRegexString + ")";
-nodeText = node.data;
-nodeText = nodeText.substr(previousMatchEndPosition, nodeText.length - previousMatchEndPosition);
-if ((this.matchedNodsCount > 0 && previousMatchPosition == -1) || previousMatchPosition != -1) // if searching a new
or not first word inside first span then search from beginning of string
-pattern = "^" + pattern;
-regexp = new RegExp(pattern, isCaseSensitive ? "" : "i");
-foundFirstWordsButDidNotFindOthers = false;
-match = nodeText.match(regexp);
-if (match) {
-if (previousMatchPosition == -1)
-this.matchedNodsCount++;
-currentNodeMatchCount++;
-this.matchedNods.push(node);
-index = previousMatchEndPosition + match.index;
-length = match[0].length;
-if (isFirstWord) {
-index = previousMatchEndPosition + nodeText.indexOf(match[1], match.index);
-length = match[1].length;
-}
-if (isLastWord && !this.useAccentInsensitiveSearch) {
-var word = words[this.currentWordCounter];
-var nodeTextToSearchIn = nodeText;
-if (!isCaseSensitive) {
-word = word.toLowerCase();
-nodeTextToSearchIn = nodeTextToSearchIn.toLowerCase();
-}
-var wordIndex = previousMatchEndPosition + nodeTextToSearchIn.indexOf(word, match.index);
-length = word.length + wordIndex - index;
-}
-this.searchMatches.push({ index: index, length: length });
-previousMatchPosition = previousMatchEndPosition + match.index;
-matchLength = match[0].length;
-previousMatchEndPosition = previousMatchPosition + matchLength;
-this.currentWordCounter++;
-if (this.currentWordCounter >= totalWordCount) {
-highlightElementName = "search_highlight" + this.matchesCount.toString();
-for (matchNum = totalWordCount - 1; matchNum >= 0; matchNum--)
-this.highlightOneNode(this.matchedNods[matchNum], this.searchMatches[matchNum].index, this.searchMatches[matchNum].length, highlightElementName, className, pageNumber);
-this.currentWordCounter = 0;
-this.matchedNods = [];
-this.searchMatches = [];
-this.matchedNodsCount = 0;
-this.matchesCount++;
-return currentNodeMatchCount;
-}
-}
-else {
-this.matchedNods = [];
-this.searchMatches = [];
-if (this.currentWordCounter > 0) {
-// found first word or words (on previous step) inside this but failed to find others
-previousMatchPosition = -1;
-this.matchedNodsCount = 0;
-foundFirstWordsButDidNotFindOthers = true;
-}
-this.currentWordCounter = 0;
-}
-} while ((match && previousMatchEndPosition < trimmedText.length) || foundFirstWordsButDidNotFindOthers);
-if (!match)
-this.matchedNodsCount = 0;
-return 0;
-}
-}
-else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children
-!/(script|style)/i.test(node.tagName) && // ignore script and style nodes
-!(node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted
-var startNodeNum = 0;
-//var endNodeNum = node.childNodes.length;
-var i;
-for (i = startNodeNum; i < node.childNodes.length; i++) {
-i += this.searchHtmlElement(node.childNodes[i], nodeName, className, words, wordsWithAccentedChars,
-searchForSeparateWords, isCaseSensitive, fullWordsOnly, pageNumber);
-}
-}
-return 0;
-},
-highlightOneNode: function (node, matchIndex, matchLength, highlightElementName, className, pageNumber) {
-var isSvg = false;
-var nodeJquery = $(node);
-var highlight, nodeName;
-if (nodeJquery.is("tspan") || nodeJquery.parent().is("tspan")) {
-isSvg = true;
-nodeName = this.htmlSearchHighlightSvgElement;
-var xmlns = "http://www.w3.org/2000/svg";
-highlight = document.createElementNS(xmlns, nodeName);
-highlight.setAttribute("class", className || this.htmlSearchHighlightClassName);
-}
-else {
-nodeName = this.htmlSearchHighlightElement;
-highlight = document.createElement(nodeName);
-highlight.className = className || this.htmlSearchHighlightClassName;
-}
-var highlightJquery = $(highlight);
-if (highlightElementName)
-highlightJquery.attr("name", highlightElementName);
-highlightJquery.attr("data-page-num", pageNumber.toString());
-var newNodesCreated = 0;
-var wordNode;
-if (matchIndex == 0) {
-wordNode = node;
-}
-else {
-wordNode = node.splitText(matchIndex);
-newNodesCreated++;
-}
-if (wordNode.textContent.length > matchLength) {
-newNodesCreated++;
-wordNode.splitText(matchLength);
-}
-var wordClone = wordNode.cloneNode(true);
-highlight.appendChild(wordClone);
-wordNode.parentNode.replaceChild(highlight, wordNode);
-return newNodesCreated;
-},
-removeSearchHighlight: function (element) {
-var htmlHighlightQuery = this.htmlSearchHighlightElement + "." + this.htmlSearchHighlightClassName;
-var svgHighlightQuery = this.htmlSearchHighlightSvgElement + "." + this.htmlSearchHighlightClassName;
-$(element).find(htmlHighlightQuery + "," + svgHighlightQuery).each(function () {
-var parent = this.parentNode;
-parent.replaceChild(this.firstChild, this);
-parent.normalize();
-});
-},
-getWords: function (phrase) {
-var separatorsRegexString = "[^" + this.searchSeparatorsList + "]+";
-var separatorsRegex = new RegExp(separatorsRegexString, "g");
-var matches = phrase.match(separatorsRegex);
-var words;
-if (matches == null) {
-words = null;
-}
-else {
-words = $.map(matches,
-function (val, index) {
-if (val != '') {
-return val;
-}
-});
-}
-return words;
-},
-selectTextInRect: function (rect, clickHandler, pageNumber, selectionCounter, color, hoverHandlers) {
-if (this._dvselectable) {
-return $(this._dvselectable).dvselectable('highlightPredefinedArea', rect, clickHandler, pageNumber, selectionCounter, color, hoverHandlers);
-}
-return null;
-},
-deselectTextInRect: function (rect, deleteStatic, pageNumber, selectionCounter) {
-if (this._dvselectable) {
-$(this._dvselectable).dvselectable('unhighlightPredefinedArea', rect, deleteStatic, pageNumber, selectionCounter);
-}
-},
-recalculatePageLeft: function () {
-if (this._firstPage != null && this.pagesContainerElement != null) {
-var pageLeft = this._firstPage.offset().left - this.pagesContainerElement.offset().left;
-this.pageLeft(pageLeft);
-}
-},
-reInitSelectable: function () {
-var visiblePagesNumbers = this.getVisiblePagesNumbers();
-if (this._dvselectable != null) {
-this._dvselectable.dvselectable("reInitPages", this.scale(), visiblePagesNumbers,
-this.scrollPosition, this.getPageHeight(), this.pages());
-}
-},
-reInitCanvasOffset: function () {
-var selectable = this.getSelectableInstance();
-selectable.initCanvasOffset();
-},
-openCurrentPage: function () {
-this.setPage(this.pageInd());
-},
-setPageNumerInUrlHash: function (pageIndex) {
-if (this.usePageNumberInUrlHash === undefined || this.usePageNumberInUrlHash == true) {
-if (location.hash != "" || pageIndex > 1) {
-this.changedUrlHash = true;
-location.hash = this.hashPagePrefix + pageIndex.toString();
-this.changedUrlHash = false;
-}
-}
-},
-isScrollViewerVisible: function () {
-var isVisible = this.documentSpace.is(":visible");
-return isVisible;
-},
-getSelectableInstance: function () {
-if (this._dvselectable == null)
-return null;
-var selectable = this._dvselectable.data("ui-dvselectable"); // jQueryUI 1.9+
-if (!selectable)
-selectable = this._dvselectable.data("dvselectable"); // jQueryUI 1.8
-return selectable;
-},
-shouldMinimumWidthBeUsed: function (width, checkOriginalDocumentWidth) {
-var originalDocumentWidth = null;
-if (this.use_pdf != 'false' && checkOriginalDocumentWidth) {
-var pageSize = this._pdf2XmlWrapper.getPageSize();
-originalDocumentWidth = pageSize.width;
-}
-return this.minimumImageWidth != null &&
-(width <= this.minimumImageWidth || (originalDocumentWidth !== null && originalDocumentWidth < this.minimumImageWidth));
-},
-resizeViewerElement: function (viewerLeft) {
-var parent = this.documentSpace.parent();
-var parentWidth = parent.width();
-if (typeof viewerLeft == "undefined")
-viewerLeft = 0;
-else
-this.viewerLeft = viewerLeft;
-this.documentSpace.width(parentWidth - viewerLeft);
-this.reInitSelectable();
-this.loadImagesForVisiblePages();
-},
-onPageReordered: function (oldPosition, newPosition) {
-this._model.reorderPage(this.fileId, oldPosition, newPosition,
-this.instanceIdToken,
-function (response) {
-if (this.pageContentType == "image") {
-var pages = this.pages();
-//var page = pages()[oldPosition];
-//pages.remove(page);
-//pages.splice(newPosition, 0, page);
-var pageImageUrl;
-var minPosition = Math.min(oldPosition, newPosition);
-var maxPosition = Math.max(oldPosition, newPosition);
-for (var i = minPosition; i <= maxPosition; i++) {
-//pages[i].visible(false);
-pageImageUrl = pages[i].url();
-pages[i].url(pageImageUrl + "#0"); // to avoid caching
-pages[i].visible(true);
-//pages[i].url(pageImageUrl);
-//pages[i].visible(true);
-}
-}
-if (this._pdf2XmlWrapper)
-this._pdf2XmlWrapper.reorderPage(oldPosition, newPosition);
-this.reInitSelectable();
-this.loadImagesForVisiblePages();
-}.bind(this),
-function (error) {
-this._onError(error);
-}.bind(this)
-);
-},
-rotatePage: function (rotationAmount) {
-var pageNumber = this.pageInd() - 1;
-this._model.rotatePage(this.fileId, pageNumber, rotationAmount,
-this.instanceIdToken,
-function (response) {
-var page = this.pages()[pageNumber];
-this.applyPageRotationInBrowser(pageNumber, page, response.resultAngle);
-this.reflowPagesInChrome();
-this.setPage(pageNumber + 1);
-this.loadImagesForVisiblePages(true);
-}.bind(this),
-function (error) {
-this._onError(error);
-}.bind(this));
-},
-applyPageRotationInBrowser: function (pageNumber, page, angle) {
-if (!this.supportPageRotation)
-return;
-var oldRotation = page.rotation();
-if (oldRotation == 0 && angle == 0)
-return;
-if (this.pageContentType == "image" && oldRotation != angle) {
-page.visible(false);
-this.addSuffixToImageUrl(page);
-page.visible(true);
-}
-page.rotation(angle);
-var newAngle = page.rotation() % 180;
-var pagesFromServer = this._pdf2XmlWrapper.documentDescription.pages;
-var pageSize, pageFromServer;
-var pageWidth, pageHeight, maxPageHeight;
-if (this.useTabsForPages()) {
-var htmlPageContents = this.documentSpace.find(".html_page_contents:first");
-var pageElement = htmlPageContents.children("div,table");
-pageWidth = pageElement.width();
-pageHeight = pageElement.height();
-this.initialWidth = pageWidth;
-if (newAngle > 0) {
-maxPageHeight = pageWidth;
-//this.pageWidth(pageHeight * this.zoom() / 100);
-}
-else {
-maxPageHeight = pageHeight;
-//this.pageWidth(pageWidth * this.zoom() / 100);
-}
-this.pageWidth(pageWidth * this.zoom() / 100);
-return;
-}
-else {
-if (pagesFromServer) {
-pageSize = this.getPageSize();
-pageFromServer = pagesFromServer[pageNumber];
-pageFromServer.rotation = angle;
-pageWidth = pageFromServer.w;
-pageHeight = pageFromServer.h;
-maxPageHeight = pageSize.height;
-}
-else
-return;
-}
-var scaleRatio;
-if (newAngle > 0) {
-page.prop(pageWidth / pageHeight);
-if (this.pageContentType == "html") {
-scaleRatio = this.getScaleRatioForPage(pageSize.width, pageSize.height, pageHeight, pageWidth);
-page.heightRatio(scaleRatio);
-}
-}
-else {
-page.prop(pageHeight / pageWidth);
-if (this.pageContentType == "html") {
-scaleRatio = this.getScaleRatioForPage(pageSize.width, pageSize.height, pageWidth, pageHeight);
-page.heightRatio(scaleRatio);
-}
-}
-this.calculatePagePositionsForVirtualMode();
-this.reInitSelectable();
-var selectable = this.getSelectableInstance();
-if (selectable != null)
-selectable.clearSelectionOnPage(pageNumber);
-this.loadImagesForVisiblePages(true);
-},
-_calculatePageSizeFromDOM: function () {
-var htmlPageContents = this.documentSpace.find(".html_page_contents:first");
-var pageElement = htmlPageContents.children("div,table,img");
-if (this.autoHeight()) {
-var pageWidth = pageElement.width();
-this.initialWidth = pageWidth;
-}
-this.pageWidth(this.initialWidth * this.zoom() / 100);
-var dimensions = pageElement[0].getBoundingClientRect();
-var reserveHeight = 0;
-this.autoHeight(true);
-var page = this.pages()[0];
-var screenWidth;
-var screenHeight;
-if (typeof dimensions.width == "undefined") // IE8
-screenWidth = dimensions.right - dimensions.left;
-else
-screenWidth = dimensions.width;
-if (typeof dimensions.height == "undefined") // IE8
-screenHeight = dimensions.bottom - dimensions.top;
-else
-screenHeight = dimensions.height;
-if (page && page.rotation && page.rotation() % 180 > 0) {
-var t = screenWidth;
-screenWidth = screenHeight;
-screenHeight = t;
-}
-screenHeight += reserveHeight;
-page.prop(screenHeight / screenWidth);
-this.autoHeight(false);
-},
-reflowPagesInChrome: function (async) {
-/* a hack to make Chrome reflow pages after changing their size
-when SVG watermarks are enabled */
-if (this.browserIsChrome() && this.watermarkText && !this.useVirtualScrolling) {
-var self = this;
-var internalReflow = function () {
-self.pagesContainerElement.children().each(function () {
-$(this).css("top", 0).css("left", 0);
-});
-};
-if (async)
-window.setTimeout(internalReflow, 10);
-else
-internalReflow();
-}
-},
-getHtmlElements: function (pageHtml, tagName) {
-var contentsRegex = new RegExp("<" + tagName + "[^>]*>(?:.|\\r?\\n)*?<\\/" + tagName + ">", "gi");
-var contentsFromHtml = pageHtml.match(contentsRegex);
-return contentsFromHtml;
-},
-getHtmlElementContents: function (pageHtml, tagName) {
-var contentsRegex = new RegExp("<" + tagName + "[^>]*>((?:.|\\r?\\n)*?)<\\/" + tagName + ">", "i");
-var match = pageHtml.match(contentsRegex);
-var contentsFromHtml = null;
-if (match)
-contentsFromHtml = match[1];
-return contentsFromHtml;
-},
-getHtmlElementAttributess: function (pageHtml, tagName) {
-var contentsRegex = new RegExp("<" + tagName + "[^>]*/?>", "gi");
-var contentsFromHtml = pageHtml.match(contentsRegex);
-return contentsFromHtml;
-},
-getPageBodyContents: function (pageHtml) {
-var bodyContentsFromHtml = pageHtml.match(/]*>((?:.|\r?\n)*?)<\/body>/)[1];
-return bodyContentsFromHtml;
-},
-getPageBodyContentsWithReplace: function (pageHtml) {
-//var matches = pageHtml.match(/(]*>)((?:.|\r?\n)*?)(<\/body>)/);
-//var bodyContentsFromHtml = "";
-var bodStartTag = "");
-var bodyContentsFromHtml = "
";
-return bodyContentsFromHtml;
-},
-isPageVisible: function (pageNumber) {
-return this.pages()[pageNumber].visible();
-},
-getPageLocations: function () {
-return this.getSelectableInstance().pageLocations;
-},
-getPageSize: function () {
-var pageSize = this._pdf2XmlWrapper.getPageSize();
-return pageSize;
-},
-fixImageReferencesInHtml: function (pageHtml) {
-var bodyContentsFromHtml = this.getPageBodyContents(pageHtml);
-//var pageElement = $("
").hide();
-//pageElement.html(bodyContentsFromHtml);
-//var imagesInPage = pageElement.find("object[type='image/svg+xml']");
-//var svgPath;
-//var urlForImagesInHtml = this.urlForImagesInHtml;
-//imagesInPage.each(function () {
-// var that = $(this);
-// svgPath = that.attr("data");
-// svgPath = urlForImagesInHtml.replace("(0)", svgPath);
-// that.attr("data", svgPath);
-// var embeddedChild = that.children();
-// embeddedChild.attr("data", svgPath);
-// embeddedChild.attr("src", svgPath);
-//});
-//var bodyContentsWithFixedUrls = pageElement.html();
-//return bodyContentsWithFixedUrls;
-return bodyContentsFromHtml;
-},
-calculatePointToPixelRatio: function () {
-var pointWidth = 100;
-var testElement = $("
").css("width", pointWidth + "pt").css("height", "0");
-testElement.appendTo(this.documentSpace);
-var pixelWidth = testElement.width();
-this.pointToPixelRatio = pixelWidth / pointWidth;
-testElement.remove();
-},
-activateTab: function (number) {
-var tab = this.tabs()[number];
-var self = this;
-function activateLoadedTab() {
-var pages = self.pages();
-var page = pages[0];
-page.htmlContent(tab.htmlContent());
-var htmlPageContents = self.documentSpace.find(".html_page_contents:first");
-var pageElement = htmlPageContents.children("div,table");
-var pageWidth = pageElement.width();
-self.initialWidth = pageWidth;
-page.prop(pageElement.height() / pageWidth);
-self.pageWidth(pageWidth * self.zoom() / 100);
-self.activeTab(number);
-if (self.supportPageRotation)
-self.applyPageRotationInBrowser(0, page, page.rotation());
-}
-if (tab.visible()) {
-activateLoadedTab();
-}
-else {
-this.getDocumentPageHtml(number, function () {
-activateLoadedTab();
-});
-}
-},
-adjustInitialZoom: function () {
-var zoomIsSet = false;
-if (this.zoomToFitHeight) {
-zoomIsSet = true;
-this.setZoom(this.getFitHeightZoom());
-}
-else if (this.pageContentType == "html" && this.zoomToFitWidth) {
-//this.initialWidth = this.pageImageWidth = this.getFitWidth();
-var fittingWidth = this.getFitWidth();
-var originalPageWidth = this.pageWidth();
-if (!this.onlyShrinkLargePages || originalPageWidth > fittingWidth) {
-var zoom = fittingWidth / originalPageWidth * 100;
-zoomIsSet = true;
-this.setZoom(zoom);
-}
-}
-if (!zoomIsSet && this.useTabsForPages()) {
-this._calculatePageSizeFromDOM();
-}
-},
-intToColor: function (num) {
-if (num === null)
-num = 0xFFFF0000; // default is red
-else
-num >>>= 0;
-var b = num & 0xFF,
-g = (num & 0xFF00) >>> 8,
-r = (num & 0xFF0000) >>> 16,
-a = ((num & 0xFF000000) >>> 24) / 255;
-return "rgba(" + [r, g, b, a].join(",") + ")";
-},
-watermarkTransform: function (page, element) {
-var rotation = 0;
-if (page.rotation)
-rotation = page.rotation();
-var pageProportion = page.prop();
-var top = "Top", bottom = "Bottom", diagonal = "Diagonal";
-var left = "Left", center = "Center", right = "Right";
-var vertical = "", horizontal = center;
-if (this.watermarkPosition.indexOf(top) == 0)
-vertical = top;
-else if (this.watermarkPosition.indexOf(bottom) == 0)
-vertical = bottom;
-else if (this.watermarkPosition.indexOf(diagonal) == 0) {
-vertical = diagonal;
-horizontal = center;
-}
-if (vertical != diagonal) {
-if (this.watermarkPosition.indexOf(left) != -1)
-horizontal = left;
-else if (this.watermarkPosition.indexOf(center) != -1)
-horizontal = center;
-else if (this.watermarkPosition.indexOf(right) != -1)
-horizontal = right;
-}
-var returnValue = "translate";
-//var widthWithoutMargin = this.pageWidth();
-//var pageWidth = widthWithoutMargin + this.imageHorizontalMargin;
-//var pageHeight = widthWithoutMargin * pageProportion;
-var fontHeight = 10;
-var pageWidth = 100;
-var pageHeight = pageWidth * pageProportion;
-var textWidth;
-if (this.watermarkScreenWidth == null) {
-var textSize = element.getBBox();
-this.watermarkScreenWidth = textSize.width;
-}
-textWidth = this.watermarkScreenWidth;
-var scale;
-if (this.watermarkWidth == 0)
-scale = 1;
-else
-scale = this.watermarkWidth / 100.;
-var smallerSide = pageWidth;
-if (vertical == diagonal && pageHeight < pageWidth) {
-smallerSide = pageHeight;
-}
-var watermarkWidth = smallerSide * scale;
-var scaleToFitIntoPageWidth = smallerSide / textWidth;
-if (rotation % 180 != 0 && vertical != diagonal) {
-watermarkWidth = pageHeight * scale;
-scaleToFitIntoPageWidth = pageHeight / textWidth;
-}
-scale *= scaleToFitIntoPageWidth;
-var horizontalCenter = pageWidth / 2;
-var verticalCenter = pageHeight / 2;
-var horizontalShift = 0;
-switch (horizontal) {
-case center:
-horizontalShift = ((pageWidth - watermarkWidth) / 2);
-break;
-case left:
-horizontalShift = 0;
-break;
-case right:
-horizontalShift = pageWidth - watermarkWidth;
-break;
-}
-//Adjust vertical shift in order to eliminate text cropping
-var verticalShift;
-if (vertical === bottom) {
-verticalShift = (pageHeight - pageHeight * scale - 8);
-}
-else if (vertical === diagonal) {
-verticalShift = (pageHeight - pageHeight * scale);
-}
-else {//(vertical == top)
-verticalShift = 0;
-}
-returnValue += '(' + horizontalShift + "," + verticalShift + ')' +
-'scale(' + scale + ')';
-if (vertical == diagonal)
-returnValue += 'translate(0,' + (-verticalCenter / scale) + ') rotate(' + (-50 + rotation) + ',' + (horizontalCenter - horizontalShift) / scale + ',' + pageHeight + ') ';
-if (!page.rotation || vertical == diagonal)
-return returnValue;
-//var screenCenterMinusFontHeight = screenCenter - 10;
-var firstShift = 0, secondShift = 0, secondHorizontalShift = 0;
-var rotationCenterX, rotationCenterY = 0;
-if (horizontal == center) {
-rotationCenterX = (horizontalCenter - horizontalShift) / scale;
-if (vertical == top) {
-rotationCenterY = 0;
-}
-else {
-rotationCenterY = pageHeight;
-}
-}
-else if (horizontal == left) {
-rotationCenterX = horizontalCenter / scale;
-if (rotation % 180 != 0)
-secondHorizontalShift = (horizontalCenter - verticalCenter) / scale;
-if (vertical == top) {
-rotationCenterY = 0;
-}
-else {
-rotationCenterY = pageHeight;
-}
-}
-else if (horizontal == right) {
-rotationCenterX = -(horizontalShift - horizontalCenter) / scale;
-if (rotation % 180 != 0)
-secondHorizontalShift = -(horizontalCenter - verticalCenter) / scale;
-if (vertical == top) {
-rotationCenterY = 0;
-}
-else {
-rotationCenterY = pageHeight;
-}
-}
-switch (rotation) {
-case 90:
-if (vertical == top) {
-firstShift = verticalCenter / scale;
-secondShift = -horizontalCenter / scale;
-}
-else {
-firstShift = -verticalCenter / scale;
-secondShift = horizontalCenter / scale;
-}
-break;
-case 180:
-if (vertical == top) {
-firstShift = verticalCenter / scale;
-secondShift = -verticalCenter / scale;
-}
-else {
-firstShift = -verticalCenter / scale;
-secondShift = verticalCenter / scale;
-}
-break;
-case 270:
-if (vertical == top) {
-firstShift = verticalCenter / scale;
-secondShift = -horizontalCenter / scale;
-}
-else {
-firstShift = -verticalCenter / scale;
-secondShift = horizontalCenter / scale;
-}
-break;
-}
-if (vertical == top || vertical == bottom)
-returnValue += 'translate(0,' + firstShift + ') rotate(' + rotation + ',' + rotationCenterX + ',' + rotationCenterY + ') translate(' + secondHorizontalShift + ',' + secondShift + ')';
-return returnValue;
-},
-addSuffixToImageUrl: function (page) {
-var src = page.url();
-var prefixChar = "?";
-var dummyIndex = src.indexOf('dummy=');
-if (dummyIndex != -1) {
-src = src.substring(0, dummyIndex - 1);
-}
-var paramsIndex = src.indexOf('?');
-if (paramsIndex != -1)
-prefixChar = "&";
-page.url(src + prefixChar + 'dummy=' + new Date().getTime());
-},
-isRTL: function (s) {
-return false; // Aspose.Words 15.3 fixes RTL text
-var ltrChars = 'A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u0300-\u0590\u0800-\u1FFF' + '\u2C00-\uFB1C\uFDFE-\uFE6F\uFEFD-\uFFFF',
-rtlChars = '\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC',
-rtlDirCheck = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');
-return rtlDirCheck.test(s);
-},
-setLoadingState: function (set) {
-this.inprogress(set);
-},
-getScaleRatioForPage: function (widthForMaxHeight, maxPageHiegt, pageWidth, pageHeight) {
-var widthRatio, scaleRatio;
-if (widthForMaxHeight === undefined)
-widthRatio = 1;
-else
-widthRatio = widthForMaxHeight / pageWidth;
-scaleRatio = widthRatio;
-return scaleRatio;
-},
-pageElementStyle: function (index) {
-var result = {};
-var pages = this.pages();
-if (this.useVirtualScrolling) {
-var firstVisiblePageNum = this.firstVisiblePageForVirtualMode();
-index += firstVisiblePageNum;
-if (firstVisiblePageNum < pages.length)
-result.top = pages[firstVisiblePageNum].top() + 'px';
-}
-else
-result.top = '';
-if (this.layout() == this.Layouts.OnePageInRow) {
-result.display = 'block';
-result.marginLeft = 'auto';
-result.marginRight = 'auto';
-}
-else {
-result.display = '';
-result.marginLeft = '';
-result.marginRight = '';
-}
-var pageWidth = this.pageWidth();
-if (this.options.useEmScaling) {
-result.width = this.serverPages[index].w * this.pointToPixelRatio / 16. + 'em';
-result.height = this.serverPages[index].h * this.pointToPixelRatio / 16. + 'em';
-}
-else {
-result.width = pageWidth + (this.useHtmlBasedEngine ? this.imageHorizontalMargin : 0) + 'px';
-if (this.autoHeight()) {
-result.width = 'auto';
-result.height = 'auto';
-result.overflow = 'visible';
-}
-else {
-if (index < pages.length)
-result.height = pageWidth * pages[index].prop() + 'px';
-result.overflow = 'hidden';
-}
-}
-return result;
-},
-setLayout: function (layout) {
-this.layout(layout);
-this.calculatePagePositionsForVirtualMode();
-this.loadImagesForVisiblePages();
-this.documentSpace.trigger("layoutChanged.groupdocs");
-},
-calculatePagePositionsForVirtualMode: function () {
-if (this.useVirtualScrolling) {
-var pageVerticalMargin = 15; // pixels
-var pageHorizontalMargin = 2 * 7; // pixels
-var pages = this.pages();
-var width = this.pageWidth();
-var documentHeight = 0;
-var page, proportion, pageHeight;
-var pageLeft = 0, pageTop = 0;
-var rowHeight = 0;
-var pagesInRow;
-var layout = this.layout();
-switch (layout) {
-case this.Layouts.ScrollMode:
-pagesInRow = Math.floor(this.pagesContainerElement.width() / this.pageWidth());
-if (pagesInRow == 0)
-pagesInRow = 1;
-break;
-case this.Layouts.OnePageInRow:
-pagesInRow = 1;
-break;
-case this.Layouts.TwoPagesInRow:
-case this.Layouts.CoverThenTwoPagesInRow:
-pagesInRow = 2;
-break;
-}
-var isFirstPageInRow, isLastPageInRow;
-for (var i = 0; i < pages.length; i++) {
-page = pages[i];
-proportion = page.prop();
-pageHeight = width * proportion;
-page.left = pageLeft;
-page.top(pageTop);
-isFirstPageInRow = (layout != this.Layouts.CoverThenTwoPagesInRow && i % pagesInRow == 0)
-|| (layout == this.Layouts.CoverThenTwoPagesInRow && (i == 0 || i % pagesInRow == 1));
-isLastPageInRow = layout == this.Layouts.OnePageInRow
-|| (layout == this.Layouts.TwoPagesInRow && i % pagesInRow == 1)
-|| (layout == this.Layouts.CoverThenTwoPagesInRow && (i == 0 || i % pagesInRow == 0))
-|| (layout == this.Layouts.ScrollMode && i % pagesInRow == pagesInRow - 1);
-if (isFirstPageInRow || (!isFirstPageInRow && pageHeight > rowHeight))
-rowHeight = pageHeight;
-documentHeight = pageTop + rowHeight + pageVerticalMargin;
-if (isLastPageInRow) {
-pageTop += rowHeight + pageVerticalMargin;
-pageLeft = 0;
-}
-else
-pageLeft += width + pageHorizontalMargin;
-}
-this.documentHeight(documentHeight);
-}
-},
-triggerEvent: function (name, params) {
-this.documentSpace.trigger(name, params);
-},
-clearContentControls: function () {
-if (!this.supportListOfContentControls || !this.contentControlsFromHtml)
-return;
-var contentControlFromHtml;
-for (var i = 0; i < this.contentControlsFromHtml.length; i++) {
-contentControlFromHtml = this.contentControlsFromHtml[i];
-if (typeof contentControlFromHtml != "undefined" && contentControlFromHtml.visualWrapper) {
-contentControlFromHtml.visualWrapper.remove();
-}
-}
-this.contentControlsFromHtml.length = 0;
-},
-markContentControls: function (pageNumber) {
-if (!this.supportListOfContentControls || !this.contentControls)
-return;
-var i, contentControlFromHtml;
-for (i = 0; i < this.contentControlsFromHtml.length; i++) {
-contentControlFromHtml = this.contentControlsFromHtml[i];
-if (typeof contentControlFromHtml != "undefined" && contentControlFromHtml.pageNumber == pageNumber) {
-return;
-}
-}
-//"2D5FABC2_1start1=Document_-_Document_"
-var contentControlGuid = "2D5FABC2";
-var startType = "start";
-var endType = "end";
-var separator = "=";
-var spaceToSearchIn = this.documentSpace;
-if (typeof pageNumber != "undefined")
-spaceToSearchIn = this.documentSpace.find("#" + this.pagePrefix + (pageNumber + 1).toString());
-spaceToSearchIn.find(".content_control_visual_wrapper").remove();
-var contentControlMarkers = spaceToSearchIn.find("a[name^='" + contentControlGuid + "']");
-var contentControlsFromHtml = new Array();
-var wrappersRemain = 0;
-var contentControlNumber;
-var self = this;
-contentControlMarkers.each(function () {
-var that = $(this);
-var name = that.attr("name");
-var typePositionRegex = new RegExp("(" + startType + ")|(" + endType + ")");
-var typePosition = name.search(typePositionRegex);
-var contentControlNumberText = name.substring(contentControlGuid.length + 1, typePosition);
-contentControlNumber = parseInt(contentControlNumberText);
-if (pageNumber >= self.contentControls[contentControlNumber].startPage
-&& pageNumber <= self.contentControls[contentControlNumber].endPage) {
-if (name.indexOf(startType) == typePosition) {
-var contentControlTitlePosition = name.indexOf(separator, typePosition) + 1;
-var contentControlTitle = name.substring(contentControlTitlePosition, name.length);
-var moveUpInDom = name[typePosition + startType.length] == "1";
-var startElement = that;
-if (typeof contentControlsFromHtml[contentControlNumber] == "undefined") {
-if (moveUpInDom || startElement.parent().children(":not([name^='" + contentControlGuid + "'])").length == 0)
-startElement = startElement.parent();
-contentControlsFromHtml[contentControlNumber] = {
-title: contentControlTitle,
-number: contentControlNumber
-};
-}
-contentControlsFromHtml[contentControlNumber].startElement = startElement;
-contentControlsFromHtml[contentControlNumber].moveUpInDom = moveUpInDom;
-}
-else {
-if (that.parent().children(":not([name^='" + contentControlGuid + "'])").length == 0)
-that = that.parent();
-if (typeof contentControlsFromHtml[contentControlNumber] == "undefined") {
-contentControlsFromHtml[contentControlNumber] = { endElement: that, number: contentControlNumber };
-}
-contentControlsFromHtml[contentControlNumber].endElement = that;
-}
-}
-});
-for (i = 0; i < this.contentControls.length; i++) {
-if (pageNumber >= this.contentControls[i].startPage
-&& pageNumber <= this.contentControls[i].endPage) {
-if (!contentControlsFromHtml[i]) {
-contentControlsFromHtml[i] = {
-number: i, title: this.contentControls[i].title
-};
-}
-}
-}
-for (i = 0; i < contentControlsFromHtml.length; i++) {
-contentControlFromHtml = contentControlsFromHtml[i];
-if (contentControlFromHtml) {
-if (!contentControlFromHtml.startElement) {
-contentControlFromHtml.startElement = spaceToSearchIn
-.children(".html_page_contents").children(".pageWordToHtml").children(":first");
-}
-if (!contentControlFromHtml.endElement) {
-contentControlFromHtml.endElement = spaceToSearchIn
-.children(".html_page_contents").children(".pageWordToHtml").children(":last");
-}
-contentControlFromHtml.title = this.contentControls[i].title;
-contentControlFromHtml.pageNumber = pageNumber;
-wrappersRemain++;
-(function (contentControlNumberInner) {
-window.setTimeout(function () {
-wrappersRemain--;
-self.createContentControlWrappers(spaceToSearchIn, contentControlsFromHtml, contentControlNumberInner, contentControlGuid, wrappersRemain);
-}, 2000);
-})(i);
-}
-}
-},
-createContentControlWrappers: function (spaceToSearchIn, contentControlsFromHtml, contentControlNumber, contentControlGuid, wrappersRemain) {
-var contentControlFromHtml = contentControlsFromHtml[contentControlNumber];
-var startElement = contentControlFromHtml.startElement;
-var endElement = contentControlFromHtml.endElement;
-var top = startElement.offset().top;
-top -= this.pagesContainerElement.offset().top;
-var contentControlVisualWrapper = $("
").appendTo(spaceToSearchIn);
-contentControlFromHtml.visualWrapper = contentControlVisualWrapper;
-contentControlVisualWrapper.addClass("content_control_visual_wrapper");
-var elementsBetween = startElement.nextUntil(endElement, ":not([name^='" + contentControlGuid + "'])").add(endElement);
-if (contentControlFromHtml.moveUpInDom)
-elementsBetween = elementsBetween.add(startElement);
-var childrenBetween = elementsBetween.find("*");
-elementsBetween = elementsBetween.add(childrenBetween);
-var minLeft = null, maxRight = null, minTop = null, maxBottom = null;
-var innerElementLeft, innerElementWidth, innerElementTop, innerElementHeight;
-var currentZoom = this.zoom() / 100;
-elementsBetween.each(function () {
-var innerElement = $(this);
-if (innerElement.width() == 0 || innerElement.height() == 0)
-return;
-innerElementLeft = innerElement.offset().left;
-if (minLeft === null || innerElementLeft < minLeft)
-minLeft = innerElementLeft;
-innerElementWidth = innerElement.width() * currentZoom;
-if (maxRight === null || innerElementLeft + innerElementWidth > maxRight)
-maxRight = innerElementLeft + innerElementWidth;
-innerElementTop = innerElement.offset().top;
-if (minTop === null || innerElementTop < minTop)
-minTop = innerElementTop;
-innerElementHeight = innerElement.height() * currentZoom;
-if (maxBottom === null || innerElementTop + innerElementHeight > maxBottom)
-maxBottom = innerElementTop + innerElementHeight;
-});
-//var containerOffsetLeft = self.pagesContainerElement.offset().left;
-//var containerOffsetTop = self.pagesContainerElement.offset().top;
-var containerOffsetLeft = spaceToSearchIn.offset().left;
-var containerOffsetTop = spaceToSearchIn.offset().top;
-contentControlVisualWrapper.css("left", (minLeft - containerOffsetLeft) + "px");
-contentControlVisualWrapper.css("width", maxRight - minLeft + "px");
-contentControlVisualWrapper.css("top", (minTop - containerOffsetTop) + "px");
-contentControlVisualWrapper.css("height", maxBottom - minTop + "px");
-contentControlVisualWrapper.attr("data-title", contentControlFromHtml.title);
-if (wrappersRemain == 0) {
-contentControlsFromHtml.sort(function (a, b) {
-if (a.visualWrapper && b.visualWrapper)
-return b.visualWrapper.width() * b.visualWrapper.height() - a.visualWrapper.width() * a.visualWrapper.height();
-else
-return 0;
-});
-var startZIndex = 1;
-for (var i = 0; i < contentControlsFromHtml.length; i++) {
-contentControlFromHtml = contentControlsFromHtml[i];
-if (typeof contentControlFromHtml != "undefined" && contentControlFromHtml.visualWrapper) {
-contentControlFromHtml.visualWrapper.css("z-index", i + startZIndex);
-if (this.contentControlToBeOpened !== null && this.contentControlToBeOpened == contentControlFromHtml.number) {
-this.visuallySelectContentControl(contentControlFromHtml);
-this.contentControlToBeOpened = null;
-}
-}
-this.contentControlsFromHtml.push(contentControlsFromHtml[i]);
-}
-}
-},
-getContentControlDescriptions: function () {
-return this.contentControls;
-},
-navigateToContentControl: function (number) {
-number = parseInt(number);
-var pageNumber = this.contentControls[number].startPage;
-var found = false;
-if (this.pages()[pageNumber].visible()) {
-var contentControlFromHtml;
-for (var i = 0; i < this.contentControlsFromHtml.length; i++) {
-contentControlFromHtml = this.contentControlsFromHtml[i];
-if (typeof contentControlFromHtml != "undefined" && contentControlFromHtml.number == number) {
-this.visuallySelectContentControl(contentControlFromHtml);
-found = true;
-break;
-}
-}
-}
-if (!found) {
-this.contentControlToBeOpened = number;
-this.setPage(pageNumber + 1);
-}
-},
-visuallySelectContentControl: function (contentControlFromHtml) {
-var contentControlHeaderHeight = 20;
-this.documentSpace[0].scrollTop = contentControlFromHtml.visualWrapper.offset().top -
-this.pagesContainerElement.offset().top -
-contentControlHeaderHeight;
-var hoverClass = "hover";
-var allWrappers = this.documentSpace.find(".doc-page .content_control_visual_wrapper");
-allWrappers.removeClass(hoverClass);
-allWrappers.unbind("mouseleave");
-contentControlFromHtml.visualWrapper.addClass(hoverClass);
-allWrappers.bind("mouseleave", function () {
-contentControlFromHtml.visualWrapper.removeClass(hoverClass);
-allWrappers.unbind("mouseleave");
-});
-this.documentSpace.trigger("ScrollDocView", [null, { target: this.documentSpace[0] }]);
-this.documentSpace.trigger("ScrollDocViewEnd", [null, { target: this.documentSpace[0] }]);
-},
-initCustomBindings: function () {
-if (!ko.bindingHandlers.searchText) {
-ko.bindingHandlers.searchText = {
-update: function (element, valueAccessor, allBindings, viewModelParam, bindingContext) {
-var viewModel = bindingContext.$root;
-var page = bindingContext.$data;
-if (!page.searched) {
-var value = ko.utils.unwrapObservable(valueAccessor());
-viewModel.parseSearchParameters(element, value);
-}
-page.searched = false;
-}
-};
-}
-if (!ko.bindingHandlers.parsedHtml) {
-ko.bindingHandlers.parsedHtml = {
-init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
-var modelValue = valueAccessor();
-var jqueryElement = $(element);
-var elementValue = jqueryElement.html();
-if (ko.isWriteableObservable(modelValue)) {
-modelValue(elementValue);
-}
-else { //handle non-observable one-way binding
-var allBindings = allBindingsAccessor();
-if (allBindings['_ko_property_writers'] && allBindings['_ko_property_writers'].parsedHtml)
-allBindings['_ko_property_writers'].parsedHtml(elementValue);
-}
-},
-update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
-var value = ko.unwrap(valueAccessor()) || "";
-var page = bindingContext.$data;
-var jqueryElement = $(element);
-jqueryElement.empty();
-if (value) {
-if (typeof page.currentValue == "undefined"
-|| page.currentValue === null
-|| page.currentValue != value) {
-var trimmedValue = value.replace(/^[\r\n\s]+|[\r\n\s]+$/g, "");
-page.parsedHtmlElement = $(trimmedValue);
-page.currentValue = value;
-}
-jqueryElement.append(page.parsedHtmlElement);
-}
-else {
-page.parsedHtmlElement = null;
-page.currentValue = null;
-}
-}
-};
-}
-},
-parseSearchParameters: function (element, value) {
-var viewModel = this;
-viewModel.removeSearchHighlight(element);
-if (value) {
-var text = value.text;
-if (text) {
-var words;
-var isCaseSensitive = value.isCaseSensitive;
-var treatTextAsExact = false;
-if (value.treatPhrasesInDoubleQuotesAsExact) {
-var trimmedText = text.replace(/^[\r\n\s]+|[\r\n\s]+$/g, "");
-if (trimmedText.length >= 2 && trimmedText[0] == '"' && trimmedText[trimmedText.length - 1] == '"') {
-text = text.substr(1, trimmedText.length - 2);
-text = text.replace(/^[\r\n\s]+|[\r\n\s]+$/g, "");
-viewModel.currentWordCounter = 0;
-viewModel.matchedNods = [];
-viewModel.searchMatches = [];
-viewModel.matchedNodsCount = 0;
-treatTextAsExact = true;
-}
-}
-var reservedSymbolsRegExp = /[-[\]{}()*+?.,\\^$|#\s]/g;
-words = viewModel.getWords(text);
-if (words == null)
-return;
-words = jQuery.map(words, function (word, i) {
-return word.replace(reservedSymbolsRegExp, "\\$&");
-});
-var wordsWithAccentedChars = words;
-var processedWord;
-if (viewModel.useAccentInsensitiveSearch || viewModel.useRtl) {
-wordsWithAccentedChars = new Array();
-for (wordNum = 0; wordNum < words.length; wordNum++) {
-processedWord = words[wordNum];
-if (viewModel.useAccentInsensitiveSearch)
-processedWord = window.jGroupdocs.stringExtensions.getAccentInsensitiveRegexFromString(processedWord);
-//if (viewModel.useRtl)
-// processedWord = window.jGroupdocs.stringExtensions.unicodeEscape(processedWord);
-wordsWithAccentedChars.push(processedWord);
-}
-}
-viewModel.searchHtmlElement(element, null, null, words, wordsWithAccentedChars,
-value.searchForSeparateWords, isCaseSensitive, treatTextAsExact, value.pageNumber);
-return;
-}
-}
-},
-highlightSearch: function () {
-if (this.pageContentType == "image" && this.useVirtualScrolling) {
-var selectable = this.getSelectableInstance();
-if (selectable) {
-selectable.highlightSearch(
-this.firstVisiblePageForVirtualMode(),
-this.lastVisiblePageForVirtualMode());
-}
-}
-},
-firePageImageLoadedEvent: function (pageNumber, event) {
-this.firePageImageEvent(pageNumber, event, false);
-},
-firePageImageLoadErrorEvent: function (pageNumber, event) {
-this.firePageImageEvent(pageNumber, event, true);
-},
-firePageImageEvent: function (pageNumber, event, isErrorEvent) {
-var domElement = event.target;
-if (this.useFullSizeImages || isErrorEvent) {
-var pages = this.pages();
-var page = null;
-if (pageNumber < pages.length)
-page = pages[pageNumber];
-if (page) {
-if (page.visible()) {
-page.domElement = domElement;
-if (isErrorEvent) {
-this.triggerEvent("pageImageLoadError.groupdocs", [pageNumber, domElement]);
-this._onError({ Reason: "The page " + pageNumber + " can't be loaded" });
-}
-else
-this.triggerEvent("pageImageLoaded.groupdocs", [pageNumber, domElement]);
-}
-}
-}
-},
-raiseDocumentLoadCompletedEvent: function () {
-this.documentSpace.trigger("documentLoadCompleted.groupdocs");
-},
-_setTextPositionsCalculationFinished: function (value) {
-if (!this._isTextPositionsCalculationFinished) {
-this._isTextPositionsCalculationFinished = value;
-if (value)
-this.raiseDocumentLoadCompletedEvent();
-}
-}
-});
-})(jQuery);
-DocViewerAdapter = function (options) {
-$.extend(this, options);
-this.init();
-};
-$.extend(DocViewerAdapter.prototype, {
-docViewerWidget: null,
-docViewerViewModel: null,
-navigationWidget: null,
-navigationViewModel: null,
-thumbnailsWidget: null,
-thumbnailsViewModel: null,
-zoomViewModel: null,
-init: function () {
-var docViewer = null;
-var navigation = null;
-var thumbnails = null;
-var zooming = null;
-var search = null;
-var embedSource = null;
-var viewTypeMenu = null;
-var docViewerViewModel = null;
-var navigationViewModel = null;
-var thumbnailsViewModel = null;
-var zoomViewModel = null;
-var searchViewModel = null;
-var embedSourceViewModel = null;
-var viewTypeViewModel = null;
-var menuClickedEvent = "onMenuClicked";
-if (this.thumbnails) {
-thumbnails = this.thumbnails.thumbnails(this.thumbnailsOptions || { baseUrl: this.baseUrl,
-quality: this.quality,
-use_pdf: this.use_pdf
-});
-thumbnailsViewModel = this.thumbnails.thumbnails('getViewModel');
-}
-else {
-thumbnails = this.thumbnailsCreator();
-thumbnailsViewModel = this.thumbnailsViewModelCreator();
-}
-var thumbnailsPanelWidth = 0;
-if (this.thumbnails)
-thumbnailsPanelWidth = thumbnailsViewModel.getThumbnailsPanelWidth();
-if (this.docSpace) {
-var viewerOptions = $.extend(
-{
-userId: this.userId,
-userKey: this.userKey,
-baseUrl: this.baseUrl,
-fileId: this.fileId,
-fileVersion: this.fileVersion,
-quality: this.quality,
-use_pdf: this.use_pdf,
-pageImageWidth: this.pageImageWidth,
-_mode: this._mode,
-docViewerId: this.docViewerId,
-createHtml: this.createHtml,
-initialZoom: this.initialZoom,
-alwaysOnePageInRow: this.alwaysOnePageInRow,
-zoomToFitWidth: this.zoomToFitWidth,
-zoomToFitHeight: this.zoomToFitHeight,
-viewerLeft: thumbnailsPanelWidth,
-viewerWidth: this.viewerWidth,
-viewerHeight: this.viewerHeight,
-preloadPagesCount: this.preloadPagesCount,
-selectionContent: this.selectionContent,
-usePageNumberInUrlHash: this.usePageNumberInUrlHash,
-pageContentType: this.pageContentType,
-imageHorizontalMargin: this.imageHorizontalMargin,
-imageVerticalMargin: this.imageVerticalMargin,
-useJavaScriptDocumentDescription: this.useJavaScriptDocumentDescription,
-searchPartialWords: this.searchPartialWords,
-variableHeightPageSupport: this.variableHeightPageSupport,
-textSelectionSynchronousCalculation: this.textSelectionSynchronousCalculation,
-minimumImageWidth: this.minimumImageWidth,
-fileDisplayName: this.fileDisplayName,
-preventTouchEventsBubbling: this.preventTouchEventsBubbling,
-watermarkText: this.watermarkText,
-instanceId: this.instanceId
-}, this.viewerOptions);
-docViewer = this.docSpace.docViewer(viewerOptions);
-docViewerViewModel = this.docSpace.docViewer('getViewModel');
-}
-else {
-docViewer = this.docSpaceCreator();
-docViewerViewModel = this.docSpaceViewModel();
-}
-var docViewerPageFlip = null;
-var docViewerPageFlipViewModel = null;
-if (this.docSpacePageFlip) {
-docViewerPageFlip = this.docSpacePageFlip.docViewerPageFlip({
-userId: this.userId,
-userKey: this.userKey,
-baseUrl: this.baseUrl,
-fileId: this.fileId,
-fileVersion: this.fileVersion,
-quality: this.quality,
-use_pdf: this.use_pdf,
-pageImageWidth: this.pageImageWidth,
-_mode: this._mode,
-docViewerId: this.docViewerId,
-createHtml: this.createHtml,
-initialZoom: this.initialZoom,
-alwaysOnePageInRow: this.alwaysOnePageInRow,
-zoomToFitWidth: this.zoomToFitWidth,
-zoomToFitHeight: this.zoomToFitHeight,
-viewerWidth: this.viewerWidth,
-viewerHeight: this.viewerHeight,
-selectionContent: this.selectionContent,
-minimumImageWidth: this.minimumImageWidth
-});
-docViewerPageFlipViewModel = this.docSpacePageFlip.docViewerPageFlip('getViewModel');
-}
-if (this.navigation) {
-navigation = this.navigation.navigation(this.navigationOptions);
-navigationViewModel = this.navigation.navigation('getViewModel');
-}
-if (this.search) {
-search = this.search.search($.extend(this.searchOptions, { viewerViewModel: docViewerViewModel }));
-searchViewModel = this.search.search('getViewModel');
-}
-if (this.zooming) {
-zooming = this.zooming.zooming(this.zoomingOptions || {});
-zoomViewModel = this.zooming.zooming('getViewModel');
-}
-if (this.embedSource) {
-embedSource = this.embedSource.embedSource();
-embedSourceViewModel = this.embedSource.embedSource('getViewModel');
-}
-if (this.viewTypeMenu) {
-viewTypeMenu = this.viewTypeMenu;
-viewTypeViewModel = this.viewTypeViewModel;
-}
-this.docViewerViewModel = docViewerViewModel;
-this.docViewerPageFlipViewModel = docViewerPageFlipViewModel;
-this.navigationViewModel = navigationViewModel;
-this.thumbnailsViewModel = thumbnailsViewModel;
-this.zoomViewModel = zoomViewModel;
-this.searchViewModel = searchViewModel;
-this.embedSourceViewModel = embedSourceViewModel;
-docViewer.bind('getPagesCount', function (e, pagesCount) {
-if (navigation) {
-navigationViewModel.setPagesCount(pagesCount);
-}
-} .bind(this));
-docViewer.bind("onDocumentloadingStarted", function (e) {
-if (thumbnails) {
-thumbnailsViewModel.hideThumbnails();
-}
-} .bind(this));
-docViewer.bind("documentLoadFailed.groupdocs", function (e) {
-if (thumbnails) {
-thumbnailsViewModel.showThumbnails(true);
-}
-} .bind(this));
-docViewer.bind('_onProcessPages', function (e, data, pages, getDocumentPageHtmlCallback, viewerViewModel, pointToPixelRatio, docViewerId) {
-if (thumbnails) {
-thumbnailsViewModel.onProcessPages(data, pages, getDocumentPageHtmlCallback, viewerViewModel, pointToPixelRatio, docViewerId);
-}
-} .bind(this));
-docViewer.bind('onScrollDocView', function (e, data) {
-if (thumbnails) {
-thumbnailsViewModel.setThumbnailsScroll(data);
-}
-if (navigation) {
-navigationViewModel.setPageIndex(data.pi);
-}
-if (search) {
-searchViewModel.scrollPositionChanged(data.position);
-}
-} .bind(this));
-docViewer.bind('onDocumentPageSet', function (e, newPageIndex) {
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel.onDocumentPageSet(newPageIndex);
-if (search)
-searchViewModel.documentPageSetHandler();
-});
-docViewer.bind('onDocumentLoadComplete', function (e, data, pdf2XmlWrapper) {
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel._onDocumentLoaded(data, pdf2XmlWrapper);
-var url = data.url;
-$("#btnDownload,#btnDownload2").bind({
-click: function () {
-window.location.href = url;
-return false;
-}
-});
-if (embedSource) {
-embedSourceViewModel.setGuid(data.guid);
-embedSourceViewModel.setFileId(docViewerViewModel.getFileId());
-embedSourceViewModel.password(docViewerViewModel.password());
-}
-if (zooming) {
-if (docViewerViewModel.isScrollViewerVisible()) {
-zoomViewModel.setFitWidthZoom(docViewerViewModel.getFitWidthZoom());
-zoomViewModel.setFitHeightZoom(docViewerViewModel.getFitHeightZoom());
-zoomViewModel.setZoomWithoutEvent(docViewerViewModel.zoom());
-}
-else {
-if (docViewerPageFlipViewModel) {
-zoomViewModel.setFitWidthZoom(docViewerPageFlipViewModel.getFitWidthZoom());
-zoomViewModel.setFitHeightZoom(docViewerPageFlipViewModel.getFitHeightZoom());
-zoomViewModel.setZoomWithoutEvent(docViewerPageFlipViewModel.zoom());
-}
-}
-}
-if (search) {
-searchViewModel.documentLoaded();
-}
-} .bind(this));
-docViewer.bind("layoutChanged.groupdocs", function (e) {
-if (zooming) {
-if (docViewerViewModel.isScrollViewerVisible()) {
-zoomViewModel.setFitWidthZoom(docViewerViewModel.getFitWidthZoom());
-zoomViewModel.setFitHeightZoom(docViewerViewModel.getFitHeightZoom());
-}
-}
-});
-if (docViewerPageFlip) {
-docViewerPageFlip.bind('onPageTurned', function (e, pageIndex) {
-if (navigation) {
-navigationViewModel.setPageIndex(pageIndex);
-}
-if (thumbnails) {
-thumbnailsViewModel.pageInd(pageIndex);
-}
-docViewerViewModel.pageInd(pageIndex);
-docViewerViewModel.setPageNumerInUrlHash(pageIndex);
-});
-}
-if (search) {
-search.bind('onPerformSearch', function (e, value, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch) {
-docViewerViewModel.performSearch(value, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch);
-});
-}
-if (navigation) {
-navigation.bind('onUpNavigate', function (e, pageIndex) {
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel.setPage(pageIndex);
-docViewerViewModel.setPage(pageIndex);
-if (thumbnails) {
-thumbnailsViewModel.setPageWithoutEvent(pageIndex);
-thumbnailsViewModel.setThumbnailsScroll({ pi: pageIndex, direction: 'up' });
-}
-} .bind(this));
-navigation.bind('onDownNavigate', function (e, pageIndex) {
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel.setPage(pageIndex);
-docViewerViewModel.setPage(pageIndex);
-if (thumbnails) {
-thumbnailsViewModel.setPageWithoutEvent(pageIndex);
-thumbnailsViewModel.setThumbnailsScroll({ pi: pageIndex, direction: 'down' });
-}
-} .bind(this));
-navigation.bind('onSetNavigate', function (e, data) {
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel.setPage(data.pageIndex);
-docViewerViewModel.setPage(data.pageIndex);
-if (thumbnails) {
-thumbnailsViewModel.setPageWithoutEvent(data.pageIndex);
-thumbnailsViewModel.setThumbnailsScroll({ pi: data.pageIndex, direction: data.direction, eventAlreadyRaised: true });
-}
-} .bind(this));
-}
-if (zooming) {
-zooming.bind('onSetZoom', function (e, value) {
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel.setZoom(value);
-docViewerViewModel.setZoom(value);
-if (search) {
-searchViewModel.resetButtons();
-}
-} .bind(this));
-zooming.bind(menuClickedEvent, function () {
-if (viewTypeMenu)
-viewTypeViewModel.showDropDownMenu(false);
-});
-}
-if (thumbnails) {
-thumbnails.bind('onSetThumbnails', function (e, index) {
-docViewerViewModel.setPage(index);
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel.setPage(index);
-if (navigation) {
-navigationViewModel.setPageIndex(index);
-}
-} .bind(this));
-thumbnails.bind('onSetThumbnailsScroll', function (e, index) {
-if (navigation) {
-navigationViewModel.setPageIndex(index);
-}
-} .bind(this));
-thumbnails.bind('onResizeThumbnails', function (e, viewerLeft) {
-docViewerViewModel.resizeViewerElement(viewerLeft);
-if (docViewerPageFlipViewModel)
-docViewerPageFlipViewModel.resizeViewerElement(viewerLeft);
-});
-thumbnails.bind('onPageReordered', function (e, oldPosition, newPosition) {
-docViewerViewModel.onPageReordered(oldPosition, newPosition);
-});
-}
-if (viewTypeMenu) {
-viewTypeMenu.bind(menuClickedEvent, function () {
-if (zoomViewModel)
-zoomViewModel.showDropDownMenu(false);
-});
-}
-},
-thumbnailsCreator: function () {
-},
-thumbnailsViewModelCreator: function () {
-return { set: function () { },
-setThumbnailsScroll: function () { },
-onProcessPages: function () { },
-getThumbnailsPanelWidth: function () { return 0; }
-};
-}
-});
-//
-// Point class
-//
-jSaaspose.Point = function (x, y) {
-this.x = x || 0;
-this.y = y || 0;
-}
-$.extend(jSaaspose.Point.prototype, {
-x: 0,
-y: 0,
-clone: function () {
-return new jSaaspose.Point(this.x, this.y);
-},
-round: function () {
-this.x = Math.round(this.x);
-this.y = Math.round(this.y);
-return this;
-}
-});
-//
-// Rectangle class
-//
-jSaaspose.Rect = function (x1, y1, x2, y2, normalize) {
-this.set(x1, y1, x2, y2, normalize);
-}
-$.extend(jSaaspose.Rect.prototype, {
-topLeft: null,
-bottomRight: null,
-clone: function () {
-return new jSaaspose.Rect(this.topLeft.x, this.topLeft.y, this.bottomRight.x, this.bottomRight.y, false);
-},
-set: function (x1, y1, x2, y2, normalize) {
-if (!this.topLeft) {
-this.topLeft = new jSaaspose.Point();
-}
-if (!this.bottomRight) {
-this.bottomRight = new jSaaspose.Point();
-}
-this.topLeft.x = x1;
-this.topLeft.y = y1;
-this.bottomRight.x = x2;
-this.bottomRight.y = y2;
-return (normalize ? this.normalize() : this);
-},
-add: function (point) {
-this.topLeft.x += point.x;
-this.topLeft.y += point.y;
-this.bottomRight.x += point.x;
-this.bottomRight.y += point.y;
-return this;
-},
-subtract: function (point) {
-this.topLeft.x -= point.x;
-this.topLeft.y -= point.y;
-this.bottomRight.x -= point.x;
-this.bottomRight.y -= point.y;
-return this;
-},
-scale: function (factor) {
-this.topLeft.x *= factor;
-this.topLeft.y *= factor;
-this.bottomRight.x *= factor;
-this.bottomRight.y *= factor;
-return this;
-},
-round: function () {
-this.topLeft = this.topLeft.round();
-this.bottomRight = this.bottomRight.round();
-return this;
-},
-left: function () {
-return this.topLeft.x;
-},
-top: function () {
-return this.topLeft.y;
-},
-right: function () {
-return this.bottomRight.x;
-},
-bottom: function () {
-return this.bottomRight.y;
-},
-width: function () {
-return (this.bottomRight.x - this.topLeft.x);
-},
-height: function () {
-return (this.bottomRight.y - this.topLeft.y);
-},
-setLeft: function (x) {
-this.topLeft.x = x;
-},
-setTop: function (y) {
-this.topLeft.y = y;
-},
-setRight: function (x) {
-this.bottomRight.x = x;
-},
-setBottom: function (y) {
-this.bottomRight.y = y;
-},
-contains: function (point) {
-return (
-this.topLeft.x <= point.x && point.x <= this.bottomRight.x &&
-this.topLeft.y <= point.y && point.y <= this.bottomRight.y);
-},
-includes: function (rect) {
-return (
-this.contains(rect.topLeft) &&
-this.contains(rect.bottomRight));
-},
-intersects: function (rect) {
-return !(this.topLeft.x > rect.bottomRight.x ||
-this.bottomRight.x < rect.topLeft.x ||
-this.topLeft.y > rect.bottomRight.y ||
-this.bottomRight.y < rect.topLeft.y);
-},
-normalize: function () {
-if (this.topLeft.x > this.bottomRight.x)
-this.bottomRight.x = [this.topLeft.x, this.topLeft.x = this.bottomRight.x][0];
-if (this.topLeft.y > this.bottomRight.y)
-this.bottomRight.y = [this.topLeft.y, this.topLeft.y = this.bottomRight.y][0];
-return this;
-}
-});
-$.ctrl = function (key, callback, args) {
-$(document).keydown(function (e) {
-if (!args) args = []; // IE barks when args is null
-if (e.keyCode == key.charCodeAt(0) && e.ctrlKey) {
-callback.apply(this, args);
-return true;
-}
-});
-};
-(function ($, undefined) {
-$.widget("ui.dvselectable", $.ui.mouse, {
-customArea: [],
-search: null,
-lasso: null,
-pages: [],
-prevProportions: 1,
-prevCustomTemplateProportions: 1,
-searchProportions: 1,
-selectedRowsCoordinates: [],
-highlightPaneContainer: null,
-highlightSearchPaneContainer: null,
-buttonPaneContainer: null,
-template: "
",
-searchTemplate: "
",
-addTemplate: "
",
-cAreaPageIndex: 0,
-cAreaFieldIndex: 0,
-annotationContainer: "
{1}
",
-annotationTemplate: "
",
-timeouts: [],
-flag: 0,
-options: {
-appendTo: "body",
-txtarea: "",
-pdf2XmlWrapper: null,
-startNumbers: null,
-pagesCount: 0,
-proportion: 1,
-cancel: ':input,option,.comment',
-bookLayout: false,
-docSpace: '',
-highlightColor: null
-},
-_initialized: false,
-_textSelectionByCharModeEnabled: false,
-_canvasOffset: null,
-_canvasScroll: null,
-_mouseStartPos: null,
-_selectionInfo: {
-position: -1,
-length: 0
-},
-_enabled: true,
-SelectionModes: { SelectText: 0, SelectRectangle: 1, SelectTextToStrikeout: 2, ClickPoint: 3, TrackMouseMovement: 4, DoNothing: 5 },
-_mode: null,
-_lassoCssElement: null,
-rightMargin: 35,
-parentElement: null,
-_viewModel: null,
-selectionCounter: 0,
-_create: function () {
-this._initialized = false;
-this.initCanvasOffset();
-if (!this.options.initializeStorageOnly) {
-this.dragged = false;
-if (this.options.preventTouchEventsBubbling) {
-function preventEventBubble(event) {
-event.preventBubble();
-}
-this.element.bind({
-touchstart: preventEventBubble,
-touchmove: preventEventBubble,
-touchend: preventEventBubble
-});
-}
-this._mouseInit();
-this.helper = $("
");
-this.createEventHandlers();
-this.setMode(this.SelectionModes.SelectText);
-this.pagePrefix = this.options.pagePrefix;
-}
-},
-createEventHandlers: function () {
-var self = this;
-$.ctrl('C', function () {
-var activeElement = $(document.activeElement);
-var activeElementId = activeElement.attr('id');
-var activeElementName = activeElement.attr('name');
-if ((activeElementId !== self.options.txtarea.attr('id') || activeElementName !== self.options.txtarea.attr('name'))
-&& (activeElement.is("input") || activeElement.is("textarea")))
-return;
-self.options.txtarea.focus().select();
-//$('#' + self.options.txtarea).focus().select();
-});
-$(self.element).bind({
-click: function (e) {
-return self.mouseClickHandler(e);
-//return false;
-//self.initHighlightPaneContainer();
-//self.clearShown();
-}
-});
-},
-_init: function () {
-this._initialized = false;
-if (this.options.pdf2XmlWrapper == null)
-return;
-this.initStorage();
-this.search = [];
-if (this.options.initStorageOnMouseStart)
-this._initialized = false;
-},
-destroy: function () {
-this._mouseDestroy();
-return this;
-},
-initStorage: function () {
-if (this._initialized)
-return;
-this._initialized = true;
-var locations;
-if (this.options.useVirtualScrolling) {
-this.pageLocations = $.map(this.options.pageLocations,
-function (page) {
-return new jSaaspose.Point(page.left, page.top());
-});
-}
-else
-this.pageLocations = this._getPageLocations();
-locations = this.pageLocations;
-if (this.options.pdf2XmlWrapper != null) {
-if (this.options.bookLayout /*|| this.options.useVirtualScrolling*/) {
-this.pages = this.options.pdf2XmlWrapper.getPages(this.options.proportion, locations,
-this.options.startNumbers.start - 1, this.options.startNumbers.end - 1, this.options.useVirtualScrolling, !this.options.bookLayout);
-}
-else {
-this.pages = this.options.pdf2XmlWrapper.getPages(this.options.proportion, locations, 0, this.options.pagesCount - 1, undefined, true);
-}
-}
-},
-initCanvasOffset: function () {
-this.parentElement = this.options.docSpace.parent();
-var offset = this.element.parent().offset();
-var offsetX = offset.left, offsetY = offset.top;
-if (this.options.bookLayout)
-offsetY = this.parentElement.offset().top;
-this._canvasOffset = new jSaaspose.Point(offsetX, offsetY);
-},
-getPages: function () {
-this.initStorage();
-return this.pages;
-},
-_getPageLocations: function () {
-var self = this;
-var docSpaceId = this.options.docSpace.attr("id");
-var imagesSelector = ".page-image";
-var images = this.element.find(imagesSelector);
-if (this.options.bookLayout) {
-images = images.filter("[id='" + docSpaceId + "-img-" + this.options.startNumbers.start.toString() +
-"'],[id='" + docSpaceId + "-img-" + this.options.startNumbers.end.toString() + "']");
-}
-this._canvasScroll = this.getCanvasScroll();
-return $.map(images, function (img) {
-var imgJquery = $(img);
-var x = imgJquery.offset().left - self._canvasOffset.x + self._canvasScroll.x;
-//var y = (self.options.bookLayout ? 0 : ($(img).offset().top - self._canvasOffset.y + self._canvasScroll.y));
-var y = (self.options.bookLayout ? 0 : (imgJquery.offset().top - self.element.offset().top));
-return new jSaaspose.Point(x, y);
-});
-},
-getCanvasScroll: function () {
-if (this.options.bookLayout)
-return new jSaaspose.Point(this.parentElement.scrollLeft(), this.parentElement.scrollTop());
-else
-return new jSaaspose.Point(this.element.parent().scrollLeft(), this.element.parent().scrollTop());
-},
-clearSelection: function () {
-this.element.find(".selection-highlight:not(.static)").remove();
-},
-clearSelectionOnPage: function (pageNumber) {
-this.element.find("#" + this.pagePrefix + (pageNumber + 1) + " > .highlight-pane > .selection-highlight:not(.static)").remove();
-},
-_mouseCapture: function (event) {
-var page = null;
-this._canvasScroll = this.getCanvasScroll();
-this._mouseStartPos = new jSaaspose.Point(
-event.pageX - this._canvasOffset.x + this._canvasScroll.x,
-event.pageY - this._canvasOffset.y + this._canvasScroll.y);
-return (this._mode != this.SelectionModes.DoNothing &&
-this._findPageAt(this._mouseStartPos) != null)
-},
-_mouseStart: function (event) {
-this.options.docSpace.focus();
-this.initStorage();
-this.clearSelection();
-if (this._mode == this.SelectionModes.DoNothing) {
-return false;
-}
-this.selectionCounter++;
-//this._canvasScroll = new jSaaspose.Point(this.parentElement.scrollLeft(), this.parentElement.scrollTop());
-this._canvasScroll = this.getCanvasScroll();
-if (this.options.bookLayout)
-this._canvasScroll.y += this.parentElement.parent().scrollTop();
-if (this.checkMouseIsInEdgeInBookMode(this._mouseStartPos.x, this._mouseStartPos.y))
-return false;
-if (this._mode == this.SelectionModes.TrackMouseMovement) {
-var top = this._mouseStartPos.y;
-var page = this.findPageAtVerticalPosition(top);
-var pageNumber = parseInt(page.pageId) - 1;
-this.element.trigger("onMouseMoveStarted", [pageNumber, { left: this._mouseStartPos.x, top: top }]);
-} else {
-this.element.append(this.helper);
-this.helper.css({
-"left": this._mouseStartPos.x,
-"top": this._mouseStartPos.y,
-"width": 0,
-"height": 0
-});
-}
-this.options.txtarea.val("");
-this.lasso = new jSaaspose.Rect();
-},
-_mouseDrag: function (event) {
-if (this._mode == this.SelectionModes.DoNothing || this.checkMouseIsInEdgeInBookMode(this._mouseStartPos.x, this._mouseStartPos.y))
-return false;
-var x1 = this._mouseStartPos.x, y1 = this._mouseStartPos.y,
-x2 = event.pageX - this._canvasOffset.x + this._canvasScroll.x,
-y2 = event.pageY - this._canvasOffset.y + this._canvasScroll.y;
-var currentX = x2,
-currentY = y2;
-if (this._findPageAt(new jSaaspose.Point(currentX, currentY)) != this._findPageAt(new jSaaspose.Point(x1, y1))) {
-return false;
-};
-if (!this._findPageAt(new jSaaspose.Point(currentX, currentY)))
-return false;
-this.dragged = true;
-if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
-if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
-this.lasso.set(x1, y1, x2, y2);
-if (this._mode != this.SelectionModes.ClickPoint && this._mode != this.SelectionModes.TrackMouseMovement) {
-this.helper.css({ left: x1, top: y1, width: this.lasso.width(), height: this.lasso.height() });
-}
-this.findSelectedPages(false, null, undefined, this.options.highlightColor);
-this.element.trigger("onMouseDrag", [{ left: currentX, top: currentY }]);
-return false;
-},
-_mouseStop: function (event) {
-if (this._mode == this.SelectionModes.DoNothing)
-return false;
-this.helper.remove();
-var page = this._findPageAt(this.lasso.topLeft) || this.pages[0];
-if (typeof (page) === "undefined") return false;
-var pageOffset;
-var pageNumber = parseInt(page.pageId) - 1;
-var originalRects = null;
-if (pageNumber < 0) return false;
-if (this._mode == this.SelectionModes.SelectText || this._mode == this.SelectionModes.SelectTextToStrikeout) {
-if (!this.dragged) {
-return false;
-}
-var self = this;
-this.dragged = false;
-var rects = self._getDocumentHighlightRects();
-if (!rects || rects.length == 0) {
-return false;
-}
-var text = '';
-var bounds = (this.options.storeAnnotationCoordinatesRelativeToPages ?
-this.convertRectToRelativeToPageUnscaledCoordinates(this.lasso) :
-this.convertRectToAbsoluteCoordinates(this.lasso));
-var top = bounds.top(), bottom = bounds.bottom();
-bounds = rects[0].originalRect;
-var left = bounds.left(), right = bounds.right();
-var highestTop = bounds.top();
-var lowestBottom = bounds.bottom();
-var pos = rects[0].position, len = rects[rects.length - 1].position + rects[rects.length - 1].length - pos;
-originalRects = [];
-for (var i = 0; i < rects.length; i++) {
-text += rects[i].text;
-text += ((i > 0 && (rects[i - 1].page != rects[i].page || rects[i - 1].row != rects[i].row)) ? '\r\n' : ' ');
-bounds = rects[i].originalRect;
-originalRects.push(bounds);
-left = Math.min(left, bounds.left());
-right = Math.max(right, bounds.right());
-highestTop = Math.min(highestTop, bounds.top());
-lowestBottom = Math.max(lowestBottom, bounds.bottom());
-}
-var scale = this.options.proportion;
-if (this.options.storeAnnotationCoordinatesRelativeToPages) {
-top = Math.min(highestTop, top);
-bottom = Math.max(lowestBottom, bottom);
-}
-else {
-pageOffset = pageNumber * this.options.pageHeight;
-pageOffset /= scale;
-top = Math.max(pageOffset + highestTop, top);
-bottom = Math.min(pageOffset + lowestBottom, bottom);
-}
-var selectionBounds = new jSaaspose.Rect(left, top, right, bottom);
-var selectionBoundsScaled = selectionBounds.clone();
-this.options.txtarea.val($.trim(text));
-}
-switch (this._mode) {
-case this.SelectionModes.SelectText:
-this.element.trigger('onTextSelected', [pageNumber, selectionBoundsScaled, pos, len, this.selectionCounter, originalRects]);
-break;
-case this.SelectionModes.SelectTextToStrikeout:
-this.element.trigger('onTextToStrikeoutSelected', [pageNumber, selectionBoundsScaled, pos, len, this.selectionCounter, originalRects]);
-break;
-case this.SelectionModes.SelectRectangle:
-var selectedRectangle;
-if (this.options.storeAnnotationCoordinatesRelativeToPages) {
-selectedRectangle = this.convertRectToRelativeToPageUnscaledCoordinates(this.lasso, this._mouseStartPos);
-}
-else {
-selectedRectangle = this.convertRectToAbsoluteCoordinates(this.lasso, this._mouseStartPos);
-}
-this.element.trigger('onRectangleSelected', [pageNumber, selectedRectangle]);
-break;
-case this.SelectionModes.ClickPoint:
-this.mouseClickHandler(event);
-break;
-case this.SelectionModes.TrackMouseMovement:
-$(this.element).trigger('onMouseMoveStopped', []);
-break;
-default:
-break;
-}
-return false;
-},
-mouseClickHandler: function (event) {
-//*********************
-//Fixed ANNOTATION-1107
-if (event.toElement == undefined) {
-event.toElement = event.target;
-}
-if (event.target.className != "doc_text_area_text mousetrap") {
-this.options.docSpace.focus();
-}
-//*********************
-//*********************
-//Fixed ANNOTATION-970
-if (this._mode == this.SelectionModes.SelectText) {
-var widgetTooltipClicked = false;
-if (event && event.originalEvent && event.originalEvent.path) {
-$.each(event.originalEvent.path, function(index, val) {
-if (val.className == "widget-tooltip") {
-widgetTooltipClicked = true;
-}
-});
-}
-if (widgetTooltipClicked) {
-this.destroy();
-this._enabled = false;
-} else if (this._enabled == false) {
-this.destroy();
-$(this.element).unbind();
-this._enabled = true;
-this._create();
-}
-}
-//************************
-if (this._mode == this.SelectionModes.ClickPoint) {
-this.initStorage();
-this._canvasScroll = this.getCanvasScroll();
-var lastX = event.pageX - this._canvasOffset.x + this._canvasScroll.x;
-var lastY = event.pageY - this._canvasOffset.y + this._canvasScroll.y;
-var lastPoint = new jSaaspose.Rect(lastX, lastY, lastX, lastY);
-var page = this._findPageAt(lastPoint.topLeft);
-if (!page)
-return true;
-var pageNumber = parseInt(page.pageId) - 1;
-if (this.options.storeAnnotationCoordinatesRelativeToPages) {
-lastPoint = this.convertRectToRelativeToPageUnscaledCoordinates(lastPoint);
-}
-else {
-lastPoint = this.convertRectToAbsoluteCoordinates(lastPoint);
-}
-this.element.trigger('onPointClicked', [pageNumber, lastPoint]);
-return false;
-}
-return true;
-},
-checkMouseIsInEdgeInBookMode: function (mouseX, mouseY) {
-var elementWidth = this.element.width();
-var elementHeight = this.element.height();
-var edgeWidth = 100, edgeHeight = 100;
-if (this.options.bookLayout &&
-((mouseX > elementWidth - edgeWidth && mouseY < edgeHeight) ||
-(mouseX > elementWidth - edgeWidth && mouseY > elementHeight - edgeHeight) ||
-(mouseX < edgeWidth && mouseY < edgeHeight) ||
-(mouseX < edgeWidth && mouseY > elementHeight - edgeHeight)
-))
-return true;
-else
-return false;
-},
-convertRectToAbsoluteCoordinates: function (rect, position) {
-this.initStorage();
-var selectedRectangle = rect.clone();
-var scale = this.options.proportion;
-var page = null;
-if (position)
-page = this._findPageNearby(position);
-else
-page = this._findPageNearby(selectedRectangle.topLeft);
-selectedRectangle.subtract(page.rect.topLeft);
-var pageNumber = parseInt(page.pageId) - 1;
-var pageOffset = pageNumber * this.options.pageHeight;
-pageOffset /= scale;
-selectedRectangle.scale(1 / scale);
-selectedRectangle.add(new jSaaspose.Point(0, pageOffset));
-return selectedRectangle;
-},
-convertRectToScreenCoordinates: function (rect) {
-this.initStorage();
-var bounds = rect.clone().scale(this.options.proportion);
-if (bounds.top() < 0)
-bounds.setTop(0);
-var pageHeight = this.options.pageHeight;
-var pageNumber = Math.floor(bounds.top() / pageHeight);
-bounds.subtract(new jSaaspose.Point(0, pageNumber * pageHeight));
-if (this.pages.length != 0)
-bounds.add(this.pages[pageNumber].rect.topLeft);
-return bounds;
-},
-convertRectToRelativeToPageUnscaledCoordinates: function (rect, position) {
-this.initStorage();
-var sourceRectangle = rect.clone();
-var scale = this.options.proportion;
-var page = null;
-if (position)
-page = this._findPageNearby(position);
-else
-page = this._findPageNearby(sourceRectangle.topLeft);
-sourceRectangle.subtract(page.rect.topLeft);
-sourceRectangle.scale(1 / scale);
-return sourceRectangle;
-},
-convertPageAndRectToScreenCoordinates: function (pageNumber, rect) {
-this.initStorage();
-var bounds = rect.clone().scale(this.options.proportion);
-if (bounds.top() < 0)
-bounds.setTop(0);
-if (this.pages.length != 0)
-bounds.add(this.pages[pageNumber].rect.topLeft);
-return bounds;
-},
-highlightPredefinedArea: function (rect, clickHandler, pageNumber, selectionCounter, color, hoverHandlers) {
-this.initStorage();
-this.dragged = true;
-if (this.options.storeAnnotationCoordinatesRelativeToPages) {
-this.lasso = this.convertPageAndRectToScreenCoordinates(pageNumber, rect);
-}
-else {
-this.lasso = this.convertRectToScreenCoordinates(rect);
-}
-this.selectionCounter++;
-var page = this._findPageAt(this.lasso.topLeft) || this.pages[0];
-var pageNumbers = this.options.startNumbers;
-this.options.startNumbers = { start: parseInt(page.pageId), end: parseInt(page.pageId) };
-this.findSelectedPages(true, clickHandler, selectionCounter, color || this.options.highlightColor, hoverHandlers);
-this.options.startNumbers = pageNumbers;
-this.dragged = false;
-if (typeof selectionCounter == "undefined")
-return this.selectionCounter;
-else {
-return selectionCounter;
-}
-},
-unhighlightPredefinedArea: function (rect, deleteStatic, pageNumber, selectionCounter) {
-if (this.options.storeAnnotationCoordinatesRelativeToPages) {
-this.lasso = this.convertPageAndRectToScreenCoordinates(pageNumber, rect);
-}
-else {
-this.lasso = this.convertRectToScreenCoordinates(rect);
-}
-var rects = this._getDocumentHighlightRects();
-if (!rects || rects.length == 0) {
-return;
-}
-if (typeof selectionCounter == "undefined")
-selectionCounter = "";
-for (var i = 0; i < rects.length; i++) {
-var pageId = rects[i].page + 1;
-var rowId = rects[i].row + 1;
-//var elementSelector = "#" + this.pagePrefix + pageId + "-highlight-" + rowId;
-var elementSelector = "#" + this.pagePrefix + pageId + "-highlight-" + rowId + "-" + selectionCounter;
-if (deleteStatic) {
-elementSelector += ".static";
-}
-else {
-elementSelector += ":not(.static)";
-}
-$(elementSelector).remove();
-}
-},
-setVisiblePagesNumbers: function (vPagesNumbers) {
-this.options.startNumbers = vPagesNumbers;
-},
-handleDoubleClick: function (event) {
-this.lasso = new jSaaspose.Rect(event.pageX, event.pageY, event.pageX, event.pageY);
-this.initStorage();
-this.findSelectedPages();
-},
-initHighlightSearchPaneContainer: function () {
-var containers = this._getElementsByClassName('search-pane', document.getElementById(this.options.docSpace.attr('id') + '-pages-container'));
-var len = containers.length;
-for (var i = len; i--;)
-if (containers[i].children.length != 0)
-containers[i].innerHTML = '';
-this.highlightSearchPaneContainer = containers;
-},
-initButtonPaneContainer: function () {
-var containers = this._getElementsByClassName('button-pane', document.getElementById(this.options.docSpace.attr('id') + '-pages-container'));
-var len = containers.length;
-for (var i = len; i--;)
-if (containers[i].children.length != 0)
-containers[i].innerHTML = '';
-this.buttonPaneContainer = containers;
-},
-reInitPages: function (scaleFactor, visiblePagesNumbers, scrollPosition, pageHeight, pageLocations) {
-this._initialized = false;
-this.options.startNumbers = visiblePagesNumbers;
-this.options.proportion = scaleFactor;
-this.options.pageHeight = pageHeight;
-this.initCanvasOffset();
-this.initStorage();
-},
-changeSelectedRowsStyle: function (proportions) {
-this.changeCustomAreasStyle(proportions);
-this.changeSearchStyle(proportions);
-var highlights = this.element.find('.highlight-pane .highlight');
-var scale = proportions / this.options.proportion;
-this.options.proportion = proportions;
-$.each(highlights, function () {
-var pos = $(this).position();
-$(this).css({
-top: pos.top * scale,
-left: pos.left * scale,
-width: $(this).width() * scale,
-height: $(this).height() * scale
-});
-});
-},
-performSearch: function (originalSearchValue, zoomValue, isCaseSensitive,
-searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch) {
-var searchValue;
-var phraseIsInDoubleQuotes = false;
-if (isCaseSensitive)
-searchValue = originalSearchValue;
-else
-searchValue = originalSearchValue.toLowerCase();
-if (searchForSeparateWords && treatPhrasesInDoubleQuotesAsExact) {
-var trimmedText = searchValue.replace(/^[\r\n\s]+|[\r\n\s]+$/g, "");
-if (trimmedText.length >= 2 && trimmedText[0] == '"' && trimmedText[trimmedText.length - 1] == '"') {
-searchForSeparateWords = false;
-searchValue = trimmedText.substr(1, trimmedText.length - 2);
-searchValue = searchValue.replace(/^[\r\n\s]+|[\r\n\s]+$/g, "");
-phraseIsInDoubleQuotes = true;
-}
-}
-this.search.length = 0;
-this.initHighlightSearchPaneContainer();
-if (searchValue == '')
-return -1;
-this.searchProportions = zoomValue;
-var pages = this.pages;
-var pagesLen = pages.length;
-var pageWords = [], pageWordsUnscaled = [];
-var searchWords = [];
-var searchWordsLen, wordsLen;
-var startIndex, endIndex, wordId;
-var seachCountItem = 0;
-var startingCharacterInWordNum;
-var searchValueWithAccentedWords;
-var row, rowText;
-if (useAccentInsensitiveSearch) {
-searchValueWithAccentedWords = new RegExp(window.jGroupdocs.stringExtensions.getAccentInsensitiveRegexFromString(searchValue));
-}
-var r;
-if (searchForSeparateWords) {
-searchWords = this.getWords(searchValue);
-if (useAccentInsensitiveSearch) {
-var wordsWithAccentedChars = new Array();
-for (var wordNum = 0; wordNum < words.length; wordNum++) {
-wordsWithAccentedChars.push(
-new RegExp(window.jGroupdocs.stringExtensions.getAccentInsensitiveRegexFromString(searchWords[wordNum])));
-}
-searchWords = wordsWithAccentedChars;
-}
-searchWordsLen = searchWords.length;
-}
-var currentImageWidth;
-if (this.options.searchPartialWords)
-currentImageWidth = this.options.proportion * this.options.pdf2XmlWrapper.getPageSize().width;
-for (var pageId = 0; pageId < pagesLen; pageId++) {
-var rows = pages[pageId].rows;
-var rowsLen = rows.length;
-var PageId = pageId + 1;
-var rowWords, rowWordsLen;
-var rowPositionsInText = new Array();
-var summaryText = "";
-var searchValueRemainderLength = 0;
-var searchValueRemainder = null;
-if (!searchForSeparateWords && this.options.searchPartialWords) {
-for (var rowNum = 0; rowNum < rowsLen; rowNum++) {
-row = rows[rowNum];
-rowPositionsInText.push(summaryText.length);
-if (isCaseSensitive)
-rowText = row.text;
-else
-rowText = row.text.toLowerCase();
-summaryText += $.trim(rowText);
-if (rowNum < rowsLen - 1)
-summaryText += " ";
-}
-}
-for (var rowId = 0; rowId < rowsLen; rowId++) {
-var left = 0, right = 0;
-row = rows[rowId];
-if (isCaseSensitive)
-rowText = row.text;
-else
-rowText = row.text.toLowerCase();
-if (searchForSeparateWords) {
-if (searchWordsLen == 0)
-break;
-rowWords = row.words;
-rowWordsLen = rowWords.length;
-var rowWordIndex, searchWordIndex;
-for (rowWordIndex = 0; rowWordIndex < rowWordsLen; rowWordIndex++) {
-for (searchWordIndex = 0; searchWordIndex < searchWordsLen; searchWordIndex++) {
-var searchWord = $.trim(searchWords[searchWordIndex]);
-var rowWord = rowWords[rowWordIndex].text;
-if (!isCaseSensitive) {
-searchWord = searchWord.toLowerCase();
-rowWord = rowWord.toLowerCase();
-}
-startingCharacterInWordNum = rowWord.indexOf(searchWord);
-if (startingCharacterInWordNum != -1) {
-var characterCoordinates = this.options.pdf2XmlWrapper.getRowCharacterCoordinates(pageId, rowId);
-var firstWordLeft = rowWords[rowWordIndex].originalRect.left();
-var firstWordStartPosition = 0;
-for (var charNum = 0; charNum < characterCoordinates.length; charNum++) {
-var characterCoordinate = characterCoordinates[charNum];
-if (Math.round(characterCoordinate) >= Math.round(firstWordLeft)) {
-firstWordStartPosition = charNum;
-break;
-}
-}
-var searchStartPosition = firstWordStartPosition + startingCharacterInWordNum;
-if (searchStartPosition < characterCoordinates.length) {
-left = characterCoordinates[searchStartPosition];
-}
-else
-left = firstWordLeft;
-if (left < firstWordLeft || left > wordRight)
-left = firstWordLeft;
-searchEndPosition = searchStartPosition + searchWord.length;
-if (searchEndPosition >= characterCoordinates.length)
-right = row.originalRect.right();
-else
-right = characterCoordinates[searchEndPosition];
-r = rowWords[rowWordIndex].rect.clone();
-r.subtract(rowWords[rowWordIndex].pageLocation);
-var scale = currentImageWidth / pages[pageId].originalWidth;
-var scaledLeft = left * scale;
-var scaledRight = right * scale;
-r.setLeft(scaledLeft);
-r.setRight(scaledRight);
-pageWords.push(r);
-r = rowWords[rowWordIndex].originalRect.clone();
-r.setLeft(left);
-r.setRight(right);
-pageWordsUnscaled.push(r);
-}
-}
-}
-} // end: if (searchForSeparateWords)
-else {
-if (this.options.searchPartialWords) {
-var rowPositionInText = rowPositionsInText[rowId];
-var rowEndPositionInText;
-if (rowId < rowsLen - 1)
-rowEndPositionInText = rowPositionsInText[rowId + 1];
-else
-rowEndPositionInText = summaryText.length;
-}
-var textPosition;
-var searchValueForThisRow;
-if (useAccentInsensitiveSearch) {
-searchValueForThisRow = searchValueRemainder ? searchValueRemainder : searchValueWithAccentedWords;
-textPosition = summaryText.search(searchValueForThisRow, rowPositionInText);
-}
-else {
-searchValueForThisRow = searchValueRemainder ? searchValueRemainder : searchValue;
-textPosition = summaryText.indexOf(searchValueForThisRow, rowPositionInText);
-}
-if (textPosition < rowPositionInText || textPosition >= rowEndPositionInText)
-textPosition = -1;
-else
-textPosition -= rowPositionInText;
-while (textPosition != -1) {
-rowWords = row.words;
-if (this.options.searchPartialWords) {
-var spaceCountRegex = /\s/g;
-var initialSubstring = rowText.substring(0, textPosition);
-var searchValueThatOverlapsRowLength = rowText.length - textPosition;
-var searchValueThatOverlapsRow = searchValueForThisRow.substr(0, searchValueThatOverlapsRowLength);
-searchValueRemainderLength = searchValueForThisRow.length - searchValueThatOverlapsRowLength;
-if (searchValueRemainderLength > 0)
-searchValueRemainder = searchValueForThisRow.substr(searchValueThatOverlapsRowLength + 1); // +1 for space between words
-else {
-searchValueRemainder = null;
-}
-var initialWords = initialSubstring.match(spaceCountRegex);
-var overlappedWords = searchValueThatOverlapsRow.match(spaceCountRegex);
-var firstWordNumber = 0, overlappedWordCount = 0;
-if (initialWords)
-firstWordNumber = initialWords.length;
-if (overlappedWords)
-overlappedWordCount = overlappedWords.length;
-var lastWordNumber = firstWordNumber + overlappedWordCount;
-var characterCoordinates = this.options.pdf2XmlWrapper.getRowCharacterCoordinates(pageId, rowId);
-var firstWordLeft = rowWords[firstWordNumber].originalRect.left();
-var lastWordLeft = rowWords[lastWordNumber].originalRect.left();
-var wordRight = rowWords[lastWordNumber].originalRect.right();
-var rowRight = row.originalRect.right();
-startingCharacterInWordNum = initialSubstring.length - initialSubstring.lastIndexOf(" ") - 1;
-var firstWordStartPosition = 0, lastWordStartPosition = 0;
-var foundFirstWordStartPosition = false;
-for (var charNum = 0; charNum < characterCoordinates.length; charNum++) {
-var characterCoordinate = characterCoordinates[charNum];
-if (!foundFirstWordStartPosition && Math.round(characterCoordinate) >= Math.round(firstWordLeft)) {
-firstWordStartPosition = charNum;
-foundFirstWordStartPosition = true;
-}
-if (Math.round(characterCoordinate) >= Math.round(lastWordLeft)) {
-lastWordStartPosition = charNum;
-break;
-}
-}
-var searchStartPosition = firstWordStartPosition + startingCharacterInWordNum;
-if (searchStartPosition < characterCoordinates.length) {
-left = characterCoordinates[searchStartPosition];
-}
-else
-left = firstWordLeft;
-if (left < firstWordLeft || left > wordRight)
-left = firstWordLeft;
-var lastSpacePosition = searchValueThatOverlapsRow.lastIndexOf(" ");
-var lastWordOfSearchPhrase = searchValueThatOverlapsRow.substring(lastSpacePosition + 1, searchValueThatOverlapsRow.length);
-var searchEndPosition;
-if (firstWordNumber == lastWordNumber)
-searchEndPosition = searchStartPosition + searchValueThatOverlapsRow.length;
-else
-searchEndPosition = lastWordStartPosition + lastWordOfSearchPhrase.length;
-var lastWordMatches = true;
-if (searchEndPosition < characterCoordinates.length) {
-var lastWordText = rowWords[lastWordNumber].text.toLowerCase();
-if (lastWordText.substring(lastWordText.length - lastWordOfSearchPhrase.length, lastWordText.length) == lastWordOfSearchPhrase)
-right = wordRight;
-else {
-right = characterCoordinates[searchEndPosition];
-lastWordMatches = false;
-}
-}
-else
-right = rowRight;
-if (right < left)
-right = rowRight;
-if (!treatPhrasesInDoubleQuotesAsExact || !phraseIsInDoubleQuotes || lastWordMatches) {
-r = rowWords[firstWordNumber].rect.clone();
-r.subtract(rowWords[firstWordNumber].pageLocation);
-var scale = currentImageWidth / pages[pageId].originalWidth;
-var scaledLeft = left * scale;
-var scaledRight = right * scale;
-r.setLeft(scaledLeft);
-r.setRight(scaledRight);
-pageWords.push(r);
-r = rowWords[firstWordNumber].originalRect.clone();
-r.setLeft(left);
-r.setRight(right);
-pageWordsUnscaled.push(r);
-}
-if (searchValueRemainderLength <= 0) {
-if (useAccentInsensitiveSearch)
-searchValueForThisRow = searchValueWithAccentedWords;
-else
-searchValueForThisRow = searchValue;
-}
-textPosition = rowText.indexOf(searchValueForThisRow, textPosition + searchValue.length);
-}
-else {
-searchWords = this.getWords(searchValue);
-searchWordsLen = searchWords.length;
-if (searchWordsLen == 0)
-break;
-rowWordsLen = rowWords.length;
-if (searchWordsLen == 1) {
-for (wordId = 0; wordId < rowWordsLen; wordId++) {
-if (rowWords[wordId].text.toLowerCase() == $.trim(searchWords[0].toLowerCase())) {
-r = rowWords[wordId].rect.clone();
-r.subtract(rowWords[wordId].pageLocation);
-pageWords.push(r);
-}
-}
-}
-else {
-startIndex = 0;
-endIndex = searchWordsLen - 1;
-for (wordId = 0; wordId < rowWordsLen; wordId++) {
-if (rowWords[wordId].text.toLowerCase() == $.trim(searchWords[startIndex].toLowerCase())) {
-r = rowWords[wordId].rect.clone();
-r.subtract(rowWords[wordId].pageLocation);
-r.setRight(r.left() + rowWords[wordId + endIndex].rect.right() - rowWords[wordId].rect.left());
-pageWords.push(r);
-}
-}
-}
-textPosition = -1;
-}
-}
-}
-}
-if (pageWords.length > 0) {
-this.search.push({
-PageId: PageId, pageWords: pageWords.slice(0),
-pageWordsUnscaled: pageWordsUnscaled.slice(0)
-});
-seachCountItem += pageWords.length;
-pageWords.length = 0;
-pageWordsUnscaled.length = 0;
-}
-}
-this.highlightSearch(null, null);
-return seachCountItem;
-},
-getWords: function (phrase) {
-var words = $.map(phrase.split(' '),
-function (val, index) {
-if (val != '') {
-return val;
-}
-});
-return words;
-},
-highlightSearch: function (startPage, endPage) {
-if (!this.search)
-return;
-var data = this.search;
-this.initHighlightSearchPaneContainer();
-for (var i = 0; i < data.length; i++) {
-var pageId = data[i].PageId;
-if (startPage === null || endPage === null ||
-(pageId - 1 >= startPage && pageId - 1 <= endPage)) {
-var pageWords = data[i].pageWords;
-for (var j = 0; j < pageWords.length; j++) {
-var highlightElement = window.jGroupdocs.stringExtensions.format(this.searchTemplate, this.pagePrefix + pageId + "-search-highlight-" + j, pageWords[j].top(), pageWords[j].height(), pageWords[j].width(), pageWords[j].left());
-$('#' + this.pagePrefix + pageId + ' div.search-pane').append(highlightElement);
-}
-}
-}
-},
-changeSearchStyle: function (proportions) {
-if (this.options.useVirtualScrolling || this.search.length == 0)
-return;
-this.initHighlightSearchPaneContainer();
-var search = this.search;
-var dif = 0;
-var len = search.length;
-var searchProportions = this.searchProportions;
-var containers = this.highlightSearchPaneContainer;
-for (var pageIndex = 0; pageIndex < len; pageIndex++) {
-var result = '';
-var pageId = search[pageIndex].PageId;
-var pageWords = search[pageIndex].pageWords;
-var pageWordsLen = pageWords.length;
-for (var wordIndex = 0; wordIndex < pageWordsLen; wordIndex++) {
-var w = Math.round(Math.round(pageWords[wordIndex].width() / searchProportions) * proportions);
-var h = Math.round(Math.round(pageWords[wordIndex].height() / searchProportions) * proportions);
-var t = Math.round(Math.round(pageWords[wordIndex].top() / searchProportions) * proportions);
-var l = Math.round(((pageWords[wordIndex].left() - dif) / searchProportions) * proportions + dif);
-var searchElement = window.jGroupdocs.stringExtensions.format(this.searchTemplate, this.pagePrefix + pageId + "-search-highlight-" + wordIndex, t, h, w, l);
-result += searchElement;
-}
-containers[pageId - 1].innerHTML = result;
-}
-},
-recalculateSearchPositions: function (proportions) {
-if (!this.options.useVirtualScrolling || this.search.length == 0)
-return;
-this.initHighlightSearchPaneContainer();
-var search = this.search;
-var len = search.length;
-for (var pageIndex = 0; pageIndex < len; pageIndex++) {
-var searchPage = search[pageIndex];
-var pageWordsUnscaled = searchPage.pageWordsUnscaled;
-var pageWordsLen = pageWordsUnscaled.length;
-var w, h, t, l;
-for (var wordIndex = 0; wordIndex < pageWordsLen; wordIndex++) {
-l = Math.round(pageWordsUnscaled[wordIndex].left() * proportions);
-w = Math.round(pageWordsUnscaled[wordIndex].width() * proportions);
-t = Math.round(pageWordsUnscaled[wordIndex].top() * proportions);
-h = Math.round(pageWordsUnscaled[wordIndex].height() * proportions);
-searchPage.pageWords[wordIndex].set(l, t, l + w, t + h);
-}
-}
-},
-clearAllTimeOuts: function () {
-var timeouts = this.timeouts;
-var len = timeouts.length;
-if (len > 0) {
-for (var i = len; i--;) {
-clearTimeout(timeouts[i]);
-}
-timeouts = [];
-}
-},
-_getElementsByClassName: function (classname, node) {
-if (!node) node = document.getElementsByTagName("body")[0];
-var a = [];
-var re = new RegExp('\\b' + classname + '\\b');
-var els = node.getElementsByTagName("*");
-for (var i = 0, j = els.length; i < j; i++)
-if (re.test(els[i].className)) a.push(els[i]);
-return a;
-},
-highlightTemplateAreas: function (data, proportion) {
-this.customArea = $.extend(true, [], data);
-this.changeCustomAreasStyle(proportion);
-},
-changeCustomAreasStyle: function (proportions) {
-if (typeof (this.customArea) === "undefined") {
-return;
-}
-if (this.customArea.length == 0)
-return;
-//this.prevCustomTemplateProportions
-var self = this;
-var area = this.customArea;
-var dif = 31;
-var len = area.length;
-$('#' + this.options.docSpace.attr('id') + '-pages-container .custom-pane').html('');
-var pageIndex = 0;
-var result = '';
-(function changeCustomAreasStyleAsync() {
-var fields = area[pageIndex].fields;
-var fieldsLen = fields.length;
-var pageId = area[pageIndex].PageId;
-for (var fieldsIndex = 0; fieldsIndex < fieldsLen; fieldsIndex++) {
-var w = Math.round(Math.round(fields[fieldsIndex].Width) * proportions);
-var h = Math.round(Math.round(fields[fieldsIndex].Height) * proportions);
-var t = Math.round(Math.round(fields[fieldsIndex].Y) * proportions);
-var l = Math.round(((fields[fieldsIndex].X - dif)) * proportions + dif);
-var extraStyles = (self.cAreaPageIndex == pageIndex && self.cAreaFieldIndex == fieldsIndex ? 'border-color:blue' : '');
-result += "
";
-var customAreaHtml = window.jGroupdocs.stringExtensions.format(self.addTemplate, this.pagePrefix + pageIndex + "-custom-check-" + fieldsIndex, t - 5, l + w - 8, fields[fieldsIndex].iconType == 1 ? "selection-check" : "selection-del", pageIndex + "/" + fieldsIndex);
-result += customAreaHtml;
-//result += self.addTemplate.format(this.pagePrefix + pageIndex + "-custom-check-" + fieldsIndex, t - 5, l + w - 8, fields[fieldsIndex].iconType == 1 ? "selection-check" : "selection-del", pageIndex + "/" + fieldsIndex);
-}
-++pageIndex;
-var nextPageId = (pageIndex < len ? area[pageIndex].PageId : -1);
-if (result != '' && nextPageId != pageId) {
-$('#' + this.pagePrefix + pageId + ' .custom-pane').html(result);
-self.bindCustomHandler(pageId);
-result = '';
-}
-if (pageIndex < len) {
-setTimeout(changeCustomAreasStyleAsync, 0);
-}
-})();
-},
-bindCustomHandler: function (pageId) {
-var self = this;
-$("#" + this.pagePrefix + pageId + " div.input-overlay1, #" + this.pagePrefix + pageId + " div.selection-check, #" + this.pagePrefix + pageId + " div.selection-del").bind({
-click: function () {
-var index = $(this).attr('index');
-var dvViewModel = $('#doc-space').docAssemblyViewer('getViewModel');
-if (typeof (index) !== "undefined") {
-var indexArray = index.split("/");
-var pageIndex = indexArray[0];
-var fieldIndex = indexArray[1];
-self.cAreaPageIndex = pageIndex;
-self.cAreaFieldIndex = fieldIndex;
-dvViewModel.moveTo({ groupIndex: parseInt(pageIndex), fieldIndex: parseInt(fieldIndex) });
-return false;
-}
-}
-});
-$("#" + this.pagePrefix + pageId + " div.input-overlay1").bind({
-mouseover: function (e) {
-var index = $(this).attr('index');
-var dvViewModel = $('#doc-space').docAssemblyViewer('getViewModel');
-if (typeof (index) !== "undefined") {
-var indexArray = index.split("/");
-var pageIndex = indexArray[0];
-var fieldIndex = indexArray[1];
-dvViewModel.mouseover(e, { groupIndex: parseInt(pageIndex), fieldIndex: parseInt(fieldIndex) });
-}
-},
-mouseout: function (e) {
-var index = $(this).attr('index');
-var dvViewModel = $('#doc-space').docAssemblyViewer('getViewModel');
-if (typeof (index) !== "undefined") {
-var indexArray = index.split("/");
-var pageIndex = indexArray[0];
-var fieldIndex = indexArray[1];
-dvViewModel.mouseout(e, { groupIndex: parseInt(pageIndex), fieldIndex: parseInt(fieldIndex) });
-}
-}
-});
-},
-setCustomAreaIndex: function (data) {
-var pageIndex = data.pageIndex;
-var fieldIndex = data.fieldIndex;
-this.cAreaPageIndex = pageIndex;
-this.cAreaFieldIndex = fieldIndex;
-},
-changeTemplateAreaIcon: function (data) {
-var customArea = this.customArea;
-var fields = customArea[data.pageIndex].fields;
-var elementIdTemplate = this.pagePrefix + "{0}-custom-check-{1}";
-var elementId = window.jGroupdocs.stringExtensions.format(elementIdTemplate, data.pageIndex, data.fieldIndex);
-//var elementId = elementIdTemplate.format(data.pageIndex, data.fieldIndex);
-$('#' + elementId).attr('class', data.iconType == 1 ? "selection-check" : "selection-del");
-fields[data.fieldIndex].iconType = data.iconType;
-},
-findSelectedPages: function (isStatic, clickHandler, selectionCounter, color, hoverHandlers) {
-if (this._mode != this.SelectionModes.SelectText && this._mode != this.SelectionModes.SelectTextToStrikeout) {
-return;
-}
-if (typeof selectionCounter == "undefined")
-selectionCounter = this.selectionCounter;
-var rects = this._getDocumentHighlightRects(selectionCounter);
-if (!rects || rects.length == 0) {
-return;
-}
-var highlightPane = null, lastPageId = null;
-var template = "
";
-for (var i = 0; i < rects.length; i++) {
-var bounds = rects[i].bounds;
-var pageId = rects[i].page + 1;
-var rowId = rects[i].row + 1;
-if (highlightPane == null || (lastPageId != null && lastPageId != pageId)) {
-highlightPane = this.element.find('#' + this.pagePrefix + pageId + ' div.highlight-pane');
-lastPageId = pageId;
-}
-var pageRowId = this.pagePrefix + pageId + "-highlight-" + rowId + "-" + selectionCounter;
-var pageRow = highlightPane.find("#" + pageRowId);
-if (pageRow.length == 0) {
-var div = $(window.jGroupdocs.stringExtensions.format(template, pageRowId, bounds.top() + 2, bounds.height()));
-highlightPane.append(div);
-pageRow = div;
-}
-if (clickHandler) {
-var ev = $._data(pageRow.get(0), 'events');
-if (!ev || !ev.click) {
-pageRow.click(clickHandler);
-}
-}
-if (hoverHandlers) {
-var ev = $._data(pageRow.get(0), 'events');
-if (!ev || !ev.mouseover)
-pageRow.hover(hoverHandlers.mouseenter, hoverHandlers.mouseleave);
-}
-if (isStatic) {
-pageRow.addClass("static");
-if (color)
-pageRow.css('background-color', color);
-}
-pageRow.css({ "left": bounds.left() - 1, "width": bounds.width(), "height": bounds.height() });
-if (!this.options.bookLayout) {
-var page = this.pages[rects[i].page];
-var pageRotation = page.rotation;
-if (typeof pageRotation == "undefined")
-pageRotation = 0;
-var perpendicular = pageRotation % 180 > 0;
-if (perpendicular)
-pageRow.css({ "top": bounds.top() });
-}
-}
-},
-_getDocumentHighlightRects: function (selectionCounter) {
-var pages = this.pages;
-if (pages.length == 0)
-return null;
-var self = this;
-var lasso = self.lasso;
-var rects = [];
-//var i = self.options.startNumbers.start;
-//for (; i <= self.options.startNumbers.end; i++) {
-for (var i = 0; i < pages.length; i++) {
-if (pages[i] && lasso.intersects(pages[i].rect)) {
-var r = self._getPageHighlightRects(i, selectionCounter);
-if (r && r.length) {
-rects = rects.concat(r);
-}
-}
-}
-return rects;
-},
-_getPageHighlightRects: function (pageIndex, selectionCounter) {
-var lasso = this.lasso;
-var rows = this.pages[pageIndex].rows;
-var rects = [];
-for (var i = 0; i < rows.length; i++) {
-if (!lasso.intersects(rows[i].rect)) {
-if (this.dragged) {
-$("#" + this.pagePrefix + (pageIndex + (this.options.bookLayout ? this.options.startNumbers.start : 1)) +
-"-highlight-" + (i + 1) + "-" + selectionCounter + ":not(.static)").remove();
-}
-continue;
-}
-var rowRect = rows[i].rect;
-if ((lasso.left() < rowRect.left() && lasso.bottom() > rowRect.bottom()) ||
-(lasso.right() > rowRect.right() && lasso.top() < rowRect.top()) ||
-(lasso.bottom() > rowRect.bottom() && lasso.top() < rowRect.top())) {
-var bounds = new jSaaspose.Rect(rowRect.left(), rowRect.top() + 1, rowRect.right(), rowRect.bottom() - 1);
-bounds.subtract(rows[i].pageLocation);
-var r = {
-bounds: bounds,
-originalRect: rows[i].originalRect,
-text: '',
-page: pageIndex + (this.options.bookLayout /*|| this.options.useVirtualScrolling */ ? this.options.startNumbers.start - 1 : 0),
-row: i,
-position: -1,
-length: 0
-};
-rects.push(r);
-if (!this.dragged) {
-var lastWord = rows[i].words[rows[i].words.length - 1];
-r.text = rows[i].text;
-r.position = rows[i].words[0].position;
-r.length = (lastWord.position + lastWord.text.length - r.position);
-}
-}
-else {
-var r = this._getRowHighlightRect(pageIndex, i);
-if (r != null) {
-rects.push(r);
-}
-else
-if (this.dragged) {
-$("#" + this.pagePrefix + (pageIndex + (this.options.bookLayout ? this.options.startNumbers.start : 1)) +
-"-highlight-" + (i + 1) + "-" + selectionCounter + ":not(.static)").remove();
-}
-}
-}
-return rects;
-},
-_getRowHighlightRect: function (pageIndex, rowIndex) {
-var lasso = this.lasso;
-var lassoTop = Math.min(lasso.top(), lasso.bottom()),
-lassoBottom = Math.max(lasso.top(), lasso.bottom());
-var page = this.pages[pageIndex];
-var pageRotation = page.rotation;
-if (typeof pageRotation == "undefined")
-pageRotation = 0;
-var perpendicular = pageRotation % 180 > 0;
-var row = page.rows[rowIndex],
-rowTop = row.rect.top(),
-rowBottom = row.rect.bottom();
-var objectsToSelect = (this._textSelectionByCharModeEnabled && row.chars) ? row.chars : row.words;
-var selectToEnd = (rowTop < lassoTop && lassoTop < rowBottom && lassoBottom >= rowBottom) && !perpendicular,
-selectFromStart = (lassoTop <= rowTop && rowTop < lassoBottom && lassoBottom < rowBottom),
-increment = (selectFromStart ? -1 : 1),
-i = (selectFromStart ? objectsToSelect.length - 1 : 0);
-for (; i < objectsToSelect.length && i >= 0 && !lasso.intersects(objectsToSelect[i].rect) ; i += increment) {
-objectsToSelect[i].shown = false;
-}
-if (i == objectsToSelect.length || i < 0) {
-return null;
-}
-var objectToSelect = objectsToSelect[i];
-var right = 0, bottom = 0;
-var left = objectToSelect.rect.left(),
-top = objectToSelect.rect.top();
-var originalLeft = objectToSelect.originalRect.left(),
-originalTop = objectToSelect.originalRect.top();
-var originalRight = 0, originalBottom = 0;
-var result = {
-bounds: null,
-text: '',
-page: pageIndex + (this.options.bookLayout ? this.options.startNumbers.start - 1 : 0),
-row: rowIndex,
-position: objectToSelect.position,
-length: objectToSelect.text.length
-};
-for (; i < objectsToSelect.length && i >= 0 && (selectFromStart || selectToEnd || lasso.intersects(objectsToSelect[i].rect)) ; i += increment) {
-objectToSelect = objectsToSelect[i];
-objectToSelect.shown = true;
-if (!this.dragged) {
-if (!this._textSelectionByCharModeEnabled) {
-if (selectFromStart)
-result.text = objectToSelect.text + " " + result.text;
-else
-result.text += objectToSelect.text + " ";
-}
-else if (this._textSelectionByCharModeEnabled) {
-result.text += objectToSelect.text;
-if (objectToSelect.isLastWordChar) {
-result.text += ' ';
-}
-}
-}
-left = Math.min(left, objectToSelect.rect.left());
-top = Math.min(top, objectToSelect.rect.top());
-right = Math.max(right, objectToSelect.rect.right());
-bottom = Math.max(bottom, objectToSelect.rect.bottom());
-originalLeft = Math.min(originalLeft, objectToSelect.originalRect.left());
-originalTop = Math.min(originalTop, objectToSelect.originalRect.top());
-originalRight = Math.max(originalRight, objectToSelect.originalRect.right());
-originalBottom = Math.max(originalBottom, objectToSelect.originalRect.bottom());
-}
-for (; i < objectsToSelect.length && i >= 0; i += increment) {
-objectsToSelect[i].shown = false;
-}
-var bounds = new jSaaspose.Rect(left, top + 1, right, bottom - 1);
-bounds.subtract(page.rect.topLeft);
-result.bounds = bounds;
-var originalBounds = new jSaaspose.Rect(originalLeft, originalTop + 1, originalRight, originalBottom - 1);
-result.originalRect = originalBounds;
-// result.length = (objectToSelect.position - result.position + objectToSelect.text.length);
-result.length = (objectToSelect.position + objectToSelect.text.length);
-return result;
-},
-_findPageAt: function (point) {
-if (this.pages != null) {
-for (var i = 0; i < this.pages.length; i++) {
-if (this.pages[i].rect.contains(point)) {
-return this.pages[i];
-}
-}
-}
-return null;
-},
-_findPageNearby: function (point) {
-var minHorizontalDifference = 0, minVerticalDifference = 0, pageNumber = null;
-var foundVerticalMatch = false, foundHorizontalMatch = false;
-for (var i = 0; i < this.pages.length; i++) {
-if (this.pages[i].rect.contains(point)) {
-return this.pages[i];
-}
-else if (point.y >= this.pages[i].rect.top() && point.y <= this.pages[i].rect.bottom()) {
-var horizontalDifference = Math.abs(point.x - this.pages[i].rect.left());
-if (!foundVerticalMatch || horizontalDifference < minHorizontalDifference) {
-minHorizontalDifference = horizontalDifference;
-foundVerticalMatch = true;
-pageNumber = i;
-}
-}
-else if (point.x >= this.pages[i].rect.left() && point.x <= this.pages[i].rect.right()) {
-var verticalDifference = Math.abs(point.y - this.pages[i].rect.top());
-if (!foundHorizontalMatch || verticalDifference < minVerticalDifference) {
-minVerticalDifference = verticalDifference;
-foundHorizontalMatch = true;
-pageNumber = i;
-}
-}
-}
-return this.pages[pageNumber];
-},
-findPageAtVerticalPosition: function (y) {
-for (var i = 0; i < this.pages.length; i++) {
-if ((y >= this.pages[i].rect.top() && y <= this.pages[i].rect.bottom())
-|| (y >= this.pages[i].rect.bottom() && (i + 1) >= this.pages.length)
-|| (y >= this.pages[i].rect.bottom() && y <= this.pages[i + 1].rect.top())) {
-return this.pages[i];
-}
-}
-return null;
-},
-setTextSelectionMode: function (mode) {
-this._textSelectionByCharModeEnabled = mode;
-},
-setMode: function (mode) {
-this._mode = mode;
-if (mode == this.SelectionModes.SelectText || mode == this.SelectionModes.SelectTextToStrikeout) {
-if (this._lassoCssElement == null)
-this._lassoCssElement = $('').appendTo('head');
-}
-else
-if (this._lassoCssElement) {
-this._lassoCssElement.remove();
-this._lassoCssElement = null;
-}
-},
-getMode: function () {
-return this._mode;
-},
-getRowsFromRect: function (bounds) {
-this.initStorage();
-var rect = null;
-this.lasso = bounds.clone();
-this.lasso = new jSaaspose.Rect(Math.round(this.lasso.left()), Math.round(this.lasso.top()) + 0.001,
-Math.round(this.lasso.right()), Math.round(this.lasso.bottom()) - 0.001);
-var rects = this._getDocumentHighlightRects();
-for (var i = 0; i < rects.length; i++) {
-rect = rects[i].bounds;
-var pageOffsetX = this.pages[rects[i].page].rect.topLeft.x - this.pages[0].rect.topLeft.x;
-var pageOffsetY = this.pages[rects[i].page].rect.topLeft.y; // -this.pages[0].rect.topLeft.y;
-rect.add(new jSaaspose.Point(pageOffsetX, pageOffsetY));
-}
-return rects;
-}
-});
-})(jQuery);
-if (!window.jGroupdocs)
-window.jGroupdocs = {};
-window.jGroupdocs.Pdf2JavaScriptWrapper = function (options) {
-this.options = $.extend(true, {},
-this.options,
-options);
-this.init();
-};
-$.extend(window.jGroupdocs.Pdf2JavaScriptWrapper.prototype, {
-documentDescription: null,
-_portalService: Container.Resolve("PortalService"),
-proportion: 1,
-options: {
-userId: 0,
-privateKey: '',
-guid: ''
-},
-init: function () {
-this.documentDescription = JSON.parse(this.options.documentDescription);
-},
-getPageCount: function () {
-if (this.documentDescription.pages)
-return this.documentDescription.pages.length;
-else if (typeof this.documentDescription.pageCount != "undefined")
-return this.documentDescription.pageCount;
-else
-return 0;
-},
-getPageSize: function () {
-var width = this.documentDescription.widthForMaxHeight;
-var height = this.documentDescription.maxPageHeight;
-if (typeof width === "undefined" || typeof height === "undefined") {
-if (this.documentDescription.pages) {
-var page = this.documentDescription.pages[0];
-width = page.w;
-height = page.h;
-}
-else
-width = height = null;
-}
-return { width: width, height: height };
-},
-getContentControls: function () {
-return this.documentDescription.contentControls;
-},
-getBookmarks: function () {
-return this.documentDescription.bookmarks;
-},
-getPages: function (prop, pagesLocation, startPage0, endPage0, synchronousWorkOuter, callCompletionCallback) {
-if (!this.documentDescription.pages)
-return null;
-var pages0 = [];
-var totalChars = 0;
-this.proportion = prop;
-var pageCount = this.documentDescription.pages.length;
-if (pageCount > 0 && pagesLocation.length < pageCount
-&& pagesLocation.length < endPage0 - startPage0 + 1) // document destroyed while initializing
-return null;
-var stepLength = 100;
-var numberOfSteps = Math.ceil(pageCount / stepLength);
-var currentImageWidth = prop * this.documentDescription.widthForMaxHeight;
-var step0 = 0;
-var executeStep = function (pages, step, scale, startPage, endPage, synchronousWork) {
-var mustBreak = false;
-for (var index = step * stepLength; index < pageCount && index < (step + 1) * stepLength; index++) {
-var page = this.documentDescription.pages[index];
-var ploc;
-if (typeof startPage !== "undefined") {
-if (index < startPage)
-continue;
-if (index > endPage) {
-mustBreak = true;
-break;
-}
-ploc = pagesLocation[index - startPage];
-}
-else
-ploc = pagesLocation[index];
-var pageId = page.number;
-scale = currentImageWidth / page.w;
-var pageRotation = page.rotation;
-if (typeof pageRotation == "undefined")
-pageRotation = 0;
-var pageWidth = page.w;
-var pageHeight = page.h;
-if (pageRotation % 180 != 0) {
-scale *= pageWidth / pageHeight;
-}
-var pageRows = this.getRows(page, pageId, scale, totalChars, ploc);
-//if (pageRows.length) {
-// var lastRowWords = pageRows[pageRows.length - 1].words;
-// if (lastRowWords.length) {
-// var lastWord = lastRowWords[lastRowWords.length - 1];
-// totalChars = (lastWord.position + lastWord.text.length);
-// }
-//}
-var right = ploc.x + pageWidth * scale;
-var bottom = ploc.y + pageHeight * scale;
-switch (pageRotation) {
-case 90:
-case 270:
-right = ploc.x + pageHeight * scale;;
-bottom = ploc.y + pageWidth * scale;
-break;
-}
-pages.push({
-pageId: pageId,
-rows: pageRows,
-rect: new jSaaspose.Rect(ploc.x, ploc.y, right, bottom),
-originalWidth: pageWidth,
-rotation: page.rotation
-});
-/*if (index == 0) {
-for (var rowNum = 0; rowNum < pageRows.length; rowNum++) {
-$("#docViewer1PagesContainer").append($("
")
-.css("position", "absolute")
-.css("z-index", 1)
-.css("left", pageRows[rowNum].rect.left())
-.css("top", pageRows[rowNum].rect.top())
-.css("width", pageRows[rowNum].rect.width())
-.css("height", pageRows[rowNum].rect.height())
-.css("background-color", "rgba(255, 0, 0, 0.5)")
-);
-}*/
-/*for (var rowNum = 0; rowNum < pageRows.length; rowNum++) {
-var row = pageRows[rowNum];
-for (var wordNum = 0; wordNum < row.words.length; wordNum++) {
-var word = row.words[wordNum];
-$("#docViewer1PagesContainer").append($("
")
-.css("position", "absolute")
-.css("z-index", 1)
-.css("left", word.rect.left())
-.css("top", word.rect.top())
-.css("width", word.rect.width())
-.css("height", word.rect.height())
-.css("background-color", "rgba(255, 0, 0, 0.5)")
-);
-}
-}
-}*/
-}
-if (synchronousWork)
-return mustBreak;
-step++;
-if (step < numberOfSteps && !mustBreak) {
-window.setTimeout(function() {
-executeStep(pages, step, scale, startPage, endPage);
-}, 10);
-}
-else {
-if (callCompletionCallback)
-this._setTextPositionsCalculationFinished(true);
-}
-} .bind(this);
-if (synchronousWorkOuter || this.options.synchronousWork) {
-for (var i = 0; i < numberOfSteps; i++) {
-if (executeStep(pages0, i, prop, startPage0, endPage0, true))
-break;
-}
-if (callCompletionCallback)
-this._setTextPositionsCalculationFinished(true);
-}
-else {
-window.setTimeout(function () {
-executeStep(pages0, step0, prop, startPage0, endPage0);
-}, 10);
-}
-return pages0;
-},
-getRows: function (page, pageId, scale, totalChars, ploc) {
-var pageRotation = page.rotation;
-var pageWidth = page.w;
-var pageHeight = page.h;
-var rows = [];
-if (page.rows) {
-for (var index = 0; index < page.rows.length; index++) {
-var row = page.rows[index];
-var rowWords = this.getWords(row, pageId, scale, totalChars, ploc, pageRotation, pageWidth, pageHeight);
-var rowChars = this.getChars(row, pageId, scale, totalChars, ploc, pageRotation, pageWidth, pageHeight);
-var rotatedCoords = this.getRotatedtextCoordinates(pageRotation, pageWidth, pageHeight,
-row.l, row.t, row.w, row.h);
-var rowLeft = rotatedCoords.left;
-var rowTop = rotatedCoords.top;
-var rowWidth = rotatedCoords.width;
-var rowHeight = rotatedCoords.height;
-var scaledX = rowLeft * scale,
-scaledY = rowTop * scale,
-left = scaledX + ploc.x,
-top = scaledY + ploc.y,
-width = rowWidth * scale,
-height = rowHeight * scale;
-rows.push({
-text: row.s,
-words: rowWords,
-chars: rowChars,
-pageLocation: ploc,
-originalRect: new jSaaspose.Rect(rowLeft, rowTop, rowLeft + rowWidth, rowTop + rowHeight),
-rect: new jSaaspose.Rect(left, top, left + width, top + height)
-});
-}
-}
-return rows;
-},
-getWords: function (row, pageId, scale, totalChars, ploc, pageRotation, pageWidth, pageHeight) {
-var children = [];
-var words_x = [];
-var words_w = [];
-var words = row.s.split(' ');
-words_x = $.map(
-row.c, // {left, width} array
-function (val, index) {
-if (index % 2 == 0)
-return val;
-else
-words_w.push(val);
-}
-);
-for (var i = 0; i < words_x.length; i++) {
-var rotatedCoords = this.getRotatedtextCoordinates(pageRotation, pageWidth, pageHeight,
-words_x[i], row.t, words_w[i], row.h);
-var wordLeft = rotatedCoords.left;
-var wordTop = rotatedCoords.top;
-var wordWidth = rotatedCoords.width;
-var wordHeight = rotatedCoords.height;
-var scaledX = Math.round(wordLeft * scale),
-scaledY = Math.round(wordTop * scale),
-left = scaledX + ploc.x,
-top = scaledY + ploc.y,
-width = Math.round(wordWidth * scale),
-height = Math.round(wordHeight * scale);
-children.push({
-text: words[i],
-pageLocation: ploc,
-originalRect: new jSaaspose.Rect(wordLeft, wordTop, wordLeft + wordWidth, wordTop + wordHeight),
-rect: new jSaaspose.Rect(left, top, left + width, top + height)
-});
-}
-return children;
-},
-getChars: function (row, pageId, scale, totalChars, ploc, pageRotation, pageWidth, pageHeight) {
-var children = [];
-var chars_x = [];
-var chars_w = [];
-var isLastWordCharFlags = [];
-var wordsLine = row.s.replace(/\s+/g, '');
-if (row.ch) {
-var spaceCount = 1;
-for (var j = 0; j < row.ch.length; j++) {
-if (row.s.charAt(j + spaceCount) == ' ') {
-spaceCount++;
-isLastWordCharFlags.push(true);
-}
-else if (j != (row.ch.length - 1)) {
-isLastWordCharFlags.push(false);
-}
-chars_x.push(row.ch[j]);
-if (j < (row.ch.length - 1)) {
-chars_w.push(row.ch[j + 1] - row.ch[j]);
-}
-else if (j == (row.ch.length - 1)) {
-isLastWordCharFlags.push(true);
-chars_w.push(row.w - row.ch[j]);
-}
-}
-for (var i = 0; i < chars_x.length; i++) {
-var rotatedCoords = this.getRotatedtextCoordinates(pageRotation, pageWidth, pageHeight,
-chars_x[i], row.t, chars_w[i], row.h);
-var charLeft = rotatedCoords.left;
-var charTop = rotatedCoords.top;
-var charWidth = rotatedCoords.width;
-var charHeight = rotatedCoords.height;
-var scaledX = Math.round(charLeft * scale),
-scaledY = Math.round(charTop * scale),
-left = scaledX + ploc.x,
-top = scaledY + ploc.y,
-width = Math.round(charWidth * scale),
-height = Math.round(charHeight * scale);
-children.push({
-text: wordsLine.charAt(i),
-isLastWordChar: isLastWordCharFlags[i],
-pageLocation: ploc,
-originalRect: new jSaaspose.Rect(charLeft, charTop, charLeft + charWidth, charTop + charHeight),
-rect: new jSaaspose.Rect(left, top, left + width, top + height)
-});
-}
-}
-return children;
-},
-getRowCharacterCoordinates: function (pageNumber, rowNumber) {
-var coordinates = this.documentDescription.pages[pageNumber].rows[rowNumber].ch;
-return coordinates;
-},
-reorderPage: function (oldPosition, newPosition) {
-var pages = this.documentDescription.pages;
-var page = pages[oldPosition];
-pages.splice(oldPosition, 1);
-pages.splice(newPosition, 0, page);
-},
-getRotatedtextCoordinates: function (pageRotation, pageWidth, pageHeight,
-textLeft, textTop, textWidth, textHeight) {
-var resultLeft = textLeft, resultTop = textTop,
-resultWidth = textWidth, resultHeight = textHeight;
-switch (pageRotation) {
-case 90:
-resultLeft = pageHeight - textTop - textHeight;
-resultTop = textLeft;
-resultWidth = textHeight;
-resultHeight = textWidth;
-break;
-case 180:
-resultLeft = pageWidth - textLeft - textWidth;
-resultTop = pageHeight - textTop - textHeight;
-resultWidth = textWidth;
-resultHeight = textHeight;
-break;
-case 270:
-resultLeft = textTop;
-resultTop = pageWidth - textLeft - textWidth;
-resultWidth = textHeight;
-resultHeight = textWidth;
-break;
-}
-return { left: resultLeft, top: resultTop, width: resultWidth, height: resultHeight };
-},
-_setTextPositionsCalculationFinished: function (value) {
-var callback = this.options.setTextPositionsCalculationFinishedCallback;
-if (callback)
-callback.call(this.options.viewerThis, value);
-}
-});
-(function ($, undefined) {
-$.widget('ui.navigation', {
-_viewModel: null,
-_pageCount: 0,
-_create: function () {
-if (this.options.createHtml) {
-this._createHtml();
-}
-else if (this.options.createEmbeddedHtml) {
-this._createEmbeddedHtml();
-}
-this._viewModel = this.getViewModel();
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_createViewModel: function () {
-var viewModel = {
-pageInd: ko.observable(1),
-pageCount: ko.observable(0)
-};
-viewModel.up = function () {
-this.up();
-}.bind(this);
-viewModel.down = function () {
-this.down();
-}.bind(this);
-viewModel.selectPage = function (pageIndex) {
-this.set(pageIndex);
-}.bind(this);
-viewModel.onKeyPress = function (viewModelObject, e) {
-this.onKeyPress(e);
-return true;
-}.bind(this);
-viewModel.setPageIndex = function (index) {
-this.setPageIndex(index);
-}.bind(this);
-viewModel.openFirstPage = function () {
-this.set(1);
-}.bind(this);
-viewModel.openLastPage = function () {
-this.set(this._viewModel.pageCount());
-}.bind(this);
-viewModel.setPagesCount = function (pagesCount) {
-this.setPagesCount(pagesCount);
-}.bind(this);
-return viewModel;
-},
-getViewModel: function () {
-if (!this._viewModel) {
-this._viewModel = this._createViewModel();
-}
-return this._viewModel;
-},
-up: function () {
-var ci = this._viewModel.pageInd();
-var pc = this._viewModel.pageCount();
-var ni;
-if (ci <= 0)
-ni = 1;
-else {
-if (ci > pc)
-ni = pc;
-else
-ni = ci != 1 ? ci - 1 : 1;
-}
-this._viewModel.pageInd(ni);
-$(this.element).trigger('onUpNavigate', ni);
-},
-down: function () {
-var ci = this._viewModel.pageInd();
-var pc = this._viewModel.pageCount();
-var ni;
-if (ci <= 0)
-ni = 1;
-else {
-if (ci > pc)
-ni = pc;
-else
-ni = ci != pc ? (parseInt(ci) + 1) : ci;
-}
-this._viewModel.pageInd(ni);
-$(this.element).trigger('onDownNavigate', ni);
-},
-set: function (index) {
-var oldPageIndex = this._viewModel.pageInd();
-var newPageIndex = this.setPageIndex(index);
-var direction = 'up';
-if (oldPageIndex > newPageIndex)
-direction = 'down';
-$(this.element).trigger('onSetNavigate', { pageIndex: newPageIndex, direction: direction });
-},
-setPageIndex: function (index) {
-var newPageIndex = Number(index);
-var pc = this._viewModel.pageCount();
-if (isNaN(newPageIndex))
-newPageIndex = 1;
-else if (newPageIndex <= 0)
-newPageIndex = 1;
-else if (newPageIndex > pc)
-newPageIndex = pc;
-this._viewModel.pageInd(newPageIndex);
-return newPageIndex;
-},
-openFirstPage: function () {
-this.selectPage(1);
-},
-openLastPage: function () {
-this.selectPage(this.pageCount());
-},
-onKeyPress: function (e) {
-if (e.keyCode == 13) {
-this.set(this._viewModel.pageInd());
-}
-},
-setPagesCount: function (pagesCount) {
-this._pageCount = pagesCount;
-this._viewModel.pageCount(pagesCount);
-},
-_createHtml: function () {
-var root = this.element;
-root.addClass('left');
-$('
' +
-'
' +
-'
' +
-'
of
' +
-'
' +
-//'
' +
-'
' +
-'
').appendTo(root);
-root.trigger("onHtmlCreated");
-},
-_createEmbeddedHtml: function () {
-var root = this.element;
-root.addClass('left');
-$('
' +
-'
' +
-'
Page
' +
-'
' +
-'
of
' +
-'
' +
-'
'
-).appendTo(root);
-root.trigger("onHtmlCreated");
-}
-});
-})(jQuery);
-(function ($, undefined) {
-$.widget('ui.thumbnails', {
-_viewModel: null,
-_pageCount: 0,
-_sessionToken: '',
-_docGuid: '',
-_docVersion: 1,
-_pagesWidth: '150',
-_heightWidthRatio: 0,
-_thumbsSelected: 0,
-_thumbnailWidth: 150,
-_portalService: Container.Resolve("PortalService"),
-options: {
-quality: null,
-use_pdf: "false",
-baseUrl: null,
-userId: 0,
-userKey: null,
-supportPageRotation: false
-},
-_create: function () {
-this.useHtmlThumbnails = this.options.useHtmlThumbnails;
-this.useHtmlBasedEngine = this.options.useHtmlBasedEngine;
-this.emptyImageUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAASsJTYQAAAAASUVORK5CYII=";
-if (this.options.supportPageReordering) {
-var self = this;
-ko.bindingHandlers.sortableArray = {
-init: function (element, valueAccessor) {
-var thumbnails = valueAccessor();
-$(element).sortable({
-axis: "y",
-update: function (event, ui) {
-var movedElement = ui.item[0];
-//retrieve our actual data item
-var dataItem = ko.dataFor(movedElement);
-//var item = ui.item.tmplItem().data;
-//figure out its new position
-var oldPosition = thumbnails.indexOf(dataItem);
-var newPosition = ko.utils.arrayIndexOf(ui.item.parent().children(), movedElement);
-ui.item.remove();
-//remove the item and add it back in the right spot
-if (newPosition >= 0) {
-thumbnails.remove(dataItem);
-thumbnails.splice(newPosition, 0, dataItem);
-}
-self.rootElement.trigger("onPageReordered", [oldPosition, newPosition]);
-}
-});
-}
-};
-}
-if (this.options.createHtml) {
-this._createHtml();
-}
-if (this.options.thumbnailWidth)
-this._thumbnailWidth = this.options.thumbnailWidth;
-this._viewModel = this.getViewModel();
-ko.applyBindings(this._viewModel, this.element.get(0));
-if (this.options.useInnerThumbnails)
-ko.applyBindings(this._viewModel, this.toggleThuumbnailsButton[0]);
-},
-_createViewModel: function () {
-var viewModel =
-{
-thumbnails: ko.observableArray([]),
-pageInd: ko.observable(1),
-pageCount: ko.observable(0),
-busy: ko.observable(true)
-};
-viewModel._thumbnailHeight = ko.observable(201);
-viewModel.useInnerThumbnails = this.options.useInnerThumbnails;
-viewModel.openThumbnails = ko.observable(this.options.openThumbnails);
-viewModel.element = this.element;
-viewModel.rootElement = this.rootElement;
-viewModel.thumbnailPanelElement = this.thumbnailPanelElement;
-viewModel.emptyImageUrl = this.emptyImageUrl;
-if (this.useHtmlThumbnails)
-viewModel.scale = ko.observable(0);
-viewModel.scrollThumbnailsPanel = function (e) {
-this._onScrollLeftPanel(e);
-}.bind(this);
-viewModel.selectPage = function (pageIndex) {
-this.set(pageIndex);
-}.bind(this);
-viewModel.showThumbnails = function (show) {
-var thumbnail;
-for (var i = 0; i < this.thumbnails().length; i++) {
-thumbnail = this.thumbnails()[i];
-thumbnail.visible(show);
-}
-};
-viewModel.hideThumbnails = function () {
-this.showThumbnails(false);
-};
-viewModel.onProcessPages = function (data, pages, getDocumentPageHtmlCallback, viewerViewModel, pointToPixelRatio, docViewerId) {
-this.onProcessPages(data, pages, getDocumentPageHtmlCallback, viewerViewModel, pointToPixelRatio, docViewerId);
-}.bind(this);
-viewModel.setThumbnailsScroll = function (data) {
-this.setThumbnailsScroll(data);
-}.bind(this);
-viewModel.set = function (index) {
-this.set(index);
-}.bind(this);
-viewModel.setPageWithoutEvent = function (index) {
-this.setPageWithoutEvent(index);
-}.bind(this);
-viewModel.getThumbnailsPanelWidth = function () {
-var thumbnailsPanelWidth = 0;
-if (this.useInnerThumbnails)
-thumbnailsPanelWidth = this.element.parent().width();
-return thumbnailsPanelWidth;
-};
-viewModel.toggleThumbnails = function () {
-this.openThumbnails(!this.openThumbnails());
-this.rootElement.trigger("onResizeThumbnails", this.thumbnailPanelElement.width());
-};
-return viewModel;
-},
-getViewModel: function () {
-if (!this._viewModel) {
-this._viewModel = this._createViewModel();
-}
-return this._viewModel;
-},
-onProcessPages: function (data, pages, getDocumentPageHtmlCallback, viewerViewModel, pointToPixelRatio, docViewerId) {
-this._sessionToken = data.token;
-this._docGuid = data.guid;
-this._docVersion = data.version;
-this._viewModel.pageCount(data.page_count);
-if (!data.lic && this._viewModel.pageCount() > 3)
-this._viewModel.pageCount(3);
-this._heightWidthRatio = parseFloat(data.page_size.Height / data.page_size.Width);
-var width = this._thumbnailWidth;
-var variablePageSizeSupport = false, pageDescriptions = null, maxPageHeight, widthForMaxHeight;
-var thumbnailWrapperHeight = null;
-var baseScale;
-if (data.documentDescription && data.documentDescription.pages) {
-variablePageSizeSupport = true;
-pageDescriptions = data.documentDescription.pages;
-maxPageHeight = data.documentDescription.maxPageHeight;
-widthForMaxHeight = data.documentDescription.widthForMaxHeight;
-thumbnailWrapperHeight = maxPageHeight / widthForMaxHeight * this._thumbnailWidth;
-baseScale = (thumbnailWrapperHeight / maxPageHeight) / pointToPixelRatio;
-if (this.useHtmlThumbnails) {
-this.getDocumentPageHtmlCallback = getDocumentPageHtmlCallback;
-this.viewerViewModel = viewerViewModel;
-this._viewModel.docViewerId = docViewerId;
-var thumbnailContainerWidth = this.element.width();
-//this._viewModel.thumbLeftCoord = (thumbnailContainerWidth - width) / 2;
-}
-}
-//this._viewModel.thumbnails.removeAll();
-var notObservableThumbnails = [];
-var thumbnailDescription, verticalPadding, thumbnailWidth, thumbnailHeight, backgroundColor;
-var spinnerHeight = 47;
-var pageCount = this._viewModel.pageCount();
-var pageWidth, pageHeight, scaleRatio;
-var thumbLeftCoord;
-for (var i = 0; i < pageCount; i++) {
-thumbnailDescription = {
-number: i + 1,
-busy: ko.observable(true),
-visible: ko.observable(false),
-url: ko.observable(this.emptyImageUrl)
-};
-if (variablePageSizeSupport) {
-if (i < pageDescriptions.length) {
-pageWidth = pageDescriptions[i].w;
-pageHeight = pageDescriptions[i].h;
-var prop = pageHeight / pageWidth;
-var rotation = pageDescriptions[i].rotation;
-if (typeof rotation == "undefined")
-rotation = 0;
-if (rotation % 180 != 0)
-prop = 1 / prop;
-thumbnailWidth = this._thumbnailWidth;
-thumbnailHeight = this._thumbnailWidth * prop;
-if (thumbnailHeight > thumbnailWrapperHeight) {
-scaleRatio = thumbnailWrapperHeight / thumbnailHeight;
-thumbnailHeight = thumbnailWrapperHeight;
-thumbnailWidth = this._thumbnailWidth * scaleRatio;
-}
-}
-else {
-thumbnailWidth = this._thumbnailWidth;
-thumbnailHeight = 215;
-}
-thumbnailDescription.width = ko.observable(thumbnailWidth);
-thumbnailDescription.height = ko.observable(thumbnailHeight);
-verticalPadding = 0;
-backgroundColor = "";
-if (thumbnailHeight < spinnerHeight) {
-verticalPadding = ((spinnerHeight - thumbnailHeight) / 2).toString();
-backgroundColor = "white";
-}
-thumbnailDescription.verticalPadding = ko.observable(verticalPadding);
-thumbnailDescription.backgroundColor = ko.observable(backgroundColor);
-thumbnailDescription.wrapperHeight = thumbnailWrapperHeight;
-//thumbnailDescription.scale = ko.observable(baseScale * pageDescriptions[i].h / maxPageHeight);
-thumbnailDescription.scale = ko.observable((thumbnailHeight / pageDescriptions[i].h) / pointToPixelRatio);
-thumbLeftCoord = (thumbnailContainerWidth - thumbnailWidth) / 2;
-thumbnailDescription.thumbLeftCoord = ko.observable(thumbLeftCoord);
-if (this.useHtmlThumbnails) {
-thumbnailDescription.htmlContent = pages[i].htmlContent;
-}
-}
-notObservableThumbnails.push(thumbnailDescription);
-}
-this._viewModel.thumbnails(notObservableThumbnails);
-var height = parseInt(this._heightWidthRatio * width);
-var thumbCss = "";
-if (variablePageSizeSupport) {
-//thumbCss = "div.thumbnailsContainer ul li img{background-color:white}";
-}
-else {
-thumbCss = ".grpdx .thumbnailsContainer .thumb-page{min-height:" + height.toString() + "px}";
-}
-this.loadThumbnails();
-},
-loadThumbnails: function () {
-// var countToShow = Math.ceil($('#thumbnails-container').height() / $('#thumb-1').height()); // count of visible thumbs
-var countToShow = Math.ceil(this.element.height() / parseInt(this._heightWidthRatio * 150)); // count of visible thumbs
-this._countToShowOnThumbDiv = countToShow;
-this._thumbsCountToShow = Number(countToShow) + Math.ceil(Number(Number(countToShow) / 2)); // count thumbs for show
-this._thumbsSelected = this._thumbsCountToShow; //_thumbsSelected = _thumbsCountToShow on start
-this.retrieveImageUrls(this._viewModel.pageCount());
-},
-retrieveImageUrls: function (imageCount) {
-this._portalService.getImageUrlsAsync(this.options.userId, this.options.userKey, this._docGuid,
-(this.options._mode == 'webComponent' ? this._thumbnailWidth : this._thumbnailWidth.toString() + "x"), this._sessionToken, 0, imageCount,
-this.options.quality, this.options.use_pdf, this._docVersion, null, null, null, null,
-this.options.ignoreDocumentAbsence,
-this.options.useHtmlBasedEngine, this.options.supportPageRotation,
-function (response) {
-response = response.data;
-var imageUrls;
-if (response.d.imageUrls && typeof response.image_urls == "undefined")
-imageUrls = response.d.imageUrls;
-else
-imageUrls = response.d.image_urls; ;
-for (var i = 0; i < imageCount; i++) {
-this._viewModel.thumbnails()[i].url(imageUrls[i]);
-}
-this._onScrollLeftPanel();
-}.bind(this),
-function (error) {
-for (var i = 0; i < imageCount; i++) {
-this.makeThumbnailNotBusy(i);
-}
-}.bind(this),
-this.options.instanceIdToken,
-this.options.locale
-);
-},
-makeThumbnailNotBusy: function (thumbnailIndex) {
-var currentThumbnail = this._viewModel.thumbnails()[thumbnailIndex];
-currentThumbnail.busy(false);
-},
-_onScrollLeftPanel: function () {
-var pageCount = this._viewModel.pageCount();
-var width = this._thumbnailWidth;
-var thumbContainer = this.element;
-var thumbnailHeight = thumbContainer.find(".thumb-page:first").outerHeight(false); // div height
-var scrollTop = thumbContainer.scrollTop();
-var th = thumbContainer.height(); // thumbnails height
-var startIndex = Math.floor(scrollTop / thumbnailHeight);
-var endIndex = Math.floor((scrollTop + th) / thumbnailHeight) + 1;
-var end = (endIndex < pageCount - 2) ? endIndex + 2 : pageCount;
-for (var i = startIndex; i < end; i++) {
-if (this.useHtmlThumbnails) {
-this.getDocumentPageHtmlCallback.call(this.viewerViewModel, i);
-}
-this._viewModel.thumbnails()[i].visible(true);
-}
-this._thumbsSelected = endIndex;
-},
-setThumbnailsScroll: function (data) {
-var index = data.pi;
-if (this._viewModel.pageInd() != index) {
-this._viewModel.pageInd(index);
-if (!data.eventAlreadyRaised)
-this.element.trigger('onSetThumbnailsScroll', index);
-}
-var thumbnailsContainerTop = this.element.offset().top;
-var thumbWrapper = this.element.children("ul").children("li:nth-child(" + this._viewModel.pageInd() + ")");
-if (thumbWrapper.length == 0)
-return;
-var thumbPageTop = thumbWrapper.offset().top;
-var divBottomPos = thumbPageTop - $(window).height();
-var divTopPos = thumbPageTop + thumbWrapper.height() - thumbnailsContainerTop;
-var leftScrollPos = this.element.scrollTop();
-var dif = thumbPageTop - thumbnailsContainerTop;
-if (divBottomPos > 0 || divTopPos < 0) {
-this.element.scrollTop(leftScrollPos + dif);
-}
-},
-set: function (index) {
-this._viewModel.pageInd(index);
-$(this.element).trigger('onSetThumbnails', index);
-},
-setPageWithoutEvent: function (index) {
-this._viewModel.pageInd(index);
-},
-setPagesCount: function (pagesCount) {
-this._pageCount = pagesCount;
-this._viewModel.pageCount(pagesCount);
-},
-_createHtml: function () {
-var root = this.element;
-var foreachOperator;
-if (this.options.supportPageReordering) {
-//foreachOperator = "sortable: {data: thumbnails, afterMove: function(arg){console.log('arg.sourceIndex:',arg.sourceIndex)}}";
-foreachOperator = "foreach: thumbnails, sortableArray: thumbnails";
-}
-else {
-foreachOperator = "foreach: thumbnails";
-}
-this.element = $(
-'
' +
-'
' +
-' - ' +
-//'
' +
-(this.useHtmlThumbnails ?
-(
-'
' +
-'
' +
-'
' +
-'
' +
-'
'
-)
-:
-(
-'
' +
-'
'
-)) +
-'
' +
-'
' +
-' ' +
-' ' +
-'
');
-if (this.options.useInnerThumbnails) {
-this.thumbnailPanelElement = $('
');
-this.element.appendTo(this.thumbnailPanelElement);
-this.toggleThuumbnailsButton = $('
');
-this.toggleThuumbnailsButton.appendTo(this.thumbnailPanelElement);
-this.thumbnailPanelElement.prependTo(root);
-}
-else {
-this.element.appendTo(root);
-}
-this.rootElement = root;
-}
-});
-})(jQuery);
-(function ($, undefined) {
-fileOpenDialogViewModel = function (fileOpenDialog, fileUploader, fileExplorer) {
-this.fileOpenDialog = fileOpenDialog;
-this.fileUploader = fileUploader;
-this.fileExplorer = fileExplorer;
-this._init();
-};
-$.extend(fileOpenDialogViewModel.prototype, {
-_explorerViewModel: null,
-_uploaderElements: [],
-_init: function () {
-this.fileExplorer.bind('onPathChanged', this._onExplorerPathChanged.bind(this));
-this.fileExplorer.bind('onNodeSelected', this._onExplorerNodeSelected.bind(this));
-this._explorerViewModel = $(this.fileExplorer).explorer("getViewModel");
-this.fileUploader.bind('onStart', this._onFileUploaderStart.bind(this));
-this.fileUploader.bind('onProgress', this._onFileUploaderProgress.bind(this));
-this.fileUploader.bind('onComplete', this._onFileUploaderComplete.bind(this));
-},
-_onExplorerPathChanged: function (e, path) {
-},
-_onExplorerNodeSelected: function (e, node) {
-if (node.id > 0 && node.type === 'file') {
-$(this.fileOpenDialog.fileExplorer).trigger('fileSelected', node);
-}
-},
-_onFileUploaderStart: function (e, id, fileName, fileSize) {
-this._explorerViewModel.busy(true);
-this._uploaderElements[id] = this._explorerViewModel.createFile(fileName, fileSize);
-},
-_onFileUploaderProgress: function (e, id, fileName, loaded, total) {
-if (total > 0) {
-$(this.fileOpenDialog.explorerProgressPercentage).text(Math.round(loaded / total * 100) + ' %');
-}
-},
-_onFileUploaderComplete: function (e, id, metadata) {
-var uploaderElements = this._uploaderElements;
-var explorerViewModel = this._explorerViewModel;
-$(this.fileOpenDialog.explorerProgressPercentage).text('100 %');
-explorerViewModel.busy(false);
-if (id && metadata) {
-uploaderElements[id].id = metadata.id;
-uploaderElements[id].guid = metadata.guid;
-uploaderElements[id].url = metadata.url;
-uploaderElements[id].Name = metadata.name;
-uploaderElements[id].docType(metadata.docType);
-uploaderElements[id].sizeInKb(Math.round(metadata.size / 1024));
-uploaderElements[id].version = metadata.version;
-uploaderElements[id].path = explorerViewModel.path() + '/' + metadata.name;
-uploaderElements[id].name(metadata.name);
-uploaderElements[id].uploading(false);
-uploaderElements[id].open();
-}
-else {
-explorerViewModel._removeEntity(uploaderElements[id]);
-}
-}
-});
-})(jQuery);
-(function ($, undefined) {
-$.widget('ui.fileOpenDialog', {
-_viewModel: null,
-options: {
-autoOpen: true,
-url: '',
-uploadWebFiles: false,
-fileTypes: "doc,docx,docm,dot,dotx,dotm,rtf,odt,ott,pdf",
-resourcePrefix: ""
-},
-_create: function () {
-var self = this;
-var options = self.options;
-var root = this.element;
-root.addClass(
-'modal ' +
-'fade ' +
-'modal2 ' +
-'modal800px');
-var innerWrapper = (self.wrapper = $('
'))
-.addClass('modal_inner_wrapper')
-.prependTo(root);
-this._buildDialogHeader(innerWrapper);
-var content = (self.content = $('
'))
-.addClass('modal_content')
-.appendTo(innerWrapper);
-var inputWrapLeft = (self.inputWrapLeft = $('
'))
-.addClass('modal_input_wrap_left')
-.appendTo(content);
-var fileExplorer = (self.fileExplorer = $('
'))
-.addClass('file_browser_content')
-.appendTo(inputWrapLeft);
-this._buildFileUploader(fileExplorer, self);
-var filesArea = (self.filesArea = $('
'))
-.attr('data-bind', 'fileDnD: {}')
-.css({ position: 'relative' })
-.appendTo(fileExplorer);
-var explorerProgressWrapper = $('
')
-.css({ position: 'relative' })
-.appendTo(filesArea);
-var explorerHeader = $('
')
-.addClass('file_browser_sort')
-.appendTo(filesArea);
-this._buildExplorerHeaders(explorerHeader, 'file_browser_sort_filename', 'Name', 'File Name', 'FileName');
-this._buildExplorerHeaders(explorerHeader, 'file_browser_sort_size', 'Size', 'Size', 'Size');
-this._buildExplorerHeaders(explorerHeader, 'file_browser_sort_modified', 'ModifiedOn', 'Modified', 'Modified');
-this._buildFoldersList(filesArea);
-this._buildFilesList(filesArea);
-this._buildFooter(innerWrapper);
-this.element.trigger("onHtmlCreated");
-this._viewModel = this.getViewModel();
-},
-_init: function () {
-},
-_buildDialogHeader: function (parent) {
-var close = $('
')
-.addClass('popclose')
-.attr('data-dismiss', 'modal')
-.appendTo(parent);
-var header = $('
')
-.addClass('modal_header')
-.appendTo(parent);
-var headerText = $('
')
-.text('Open File')
-.attr("data-localize", "OpenFile")
-.appendTo(header);
-},
-_buildFileUploader: function (parent, self) {
-var fileUploader = (self.fileUploader = $('
'))
-.addClass('file_browser_toolbar')
-.css({
-position: 'relative',
-display: 'inline-block',
-overflow: 'hidden'
-})
-.appendTo(parent);
-var bindingWithStart = $('')
-.appendTo(fileUploader);
-var openParentFolderButton = $('
')
-.addClass(
-'small_button ' +
-'file_browser_upload_btn')
-.attr("data-localize", "ParentFolder")
-.attr('data-bind', 'click: function () { $parent.openParentFolder();}')
-.text('Parent folder')
-.appendTo(fileUploader);
-var bindingWithEnd = $('')
-.appendTo(fileUploader);
-if (self.options.uploadWebFiles) {
-var openFromUrlButton = (self.openFromUrlButton = $('
'))
-.addClass('small_button')
-.text('Open From URL')
-.appendTo(fileUploader);
-}
-},
-_buildExplorerProgress: function (parent) {
-var explorerProgress = $('
')
-.attr('data-bind', 'visible: busy()')
-.addClass('explorer-progress')
-.appendTo(parent);
-var explorerProgressContent = $('
')
-.css({
-position: 'relative',
-top: '50px',
-left: '50%',
-width: '96px',
-height: '56px'
-})
-.appendTo(explorerProgress);
-var explorerProgressImg = $('
')
-.attr('src', this.options.resourcePrefix + '/Images/uploading.gif')
-.attr('alt', '')
-.css({
-width: '16px',
-height: '16px'
-})
-.appendTo(explorerProgressContent);
-var br = $('
')
-.appendTo(explorerProgressContent);
-var explorerProgressPercentage = (self.explorerProgressPercentage = $('
'))
-.attr('id', 'explorer-progress-percentage')
-.appendTo(explorerProgressContent);
-},
-_buildExplorerHeaders: function (parent, /*elementId,*/elementClass, setOrderBy, headerName, localizationKey) {
-var element = $('
')
-.attr('href', '#')
-.attr('data-bind', 'click: function() { setOrder("' + setOrderBy + '");}')
-.addClass(elementClass)
-.appendTo(parent);
-var text = $('
')
-.text(headerName)
-.attr('data-localize', localizationKey)
-.appendTo(element);
-var smallarrow = $('
')
-.addClass('smallarrow')
-.attr('data-bind', 'visible: orderBy() === \'' + setOrderBy + '\', css: {up: orderAsc(), down: !orderAsc()}')
-.appendTo(element);
-},
-_buildFoldersList: function (parent) {
-var folderList = $('
')
-.addClass('file_browser_folder_list')
-.attr('data-bind', 'foreach: folders')
-.appendTo(parent);
-var foldersListItem = $('
')
-.attr('data-bind', 'attr: { id: \'explorer-entity-\' + id }, click: open')
-.appendTo(folderList);
-var folderBrowserWrapper = $('
')
-.addClass('file_browser_listbox folderlist')
-.appendTo(foldersListItem);
-var folderIcon = $('
')
-.addClass(
-'listicons ' +
-'licon_folder')
-.appendTo(folderBrowserWrapper);
-var folderName = $('
')
-.addClass(
-'listname_file_browser ' +
-'foldername')
-.attr('data-bind', 'text: name()')
-.appendTo(folderBrowserWrapper);
-},
-_buildFilesList: function (parent) {
-var filesList = $('
')
-.addClass('file_browser_file_list')
-.attr('data-bind', 'foreach: files')
-.appendTo(parent);
-var fileListItem = $('
')
-.attr('data-bind', 'attr: { id: \'explorer-entity-\' + id }, click: open')
-.appendTo(filesList);
-var filesBrowserWrapper = $('
')
-.addClass('file_browser_listbox filelist')
-.appendTo(fileListItem);
-var fileIcon = $('
')
-.addClass('listicons')
-.attr('data-bind', 'css: { \'licon_unkwn\': (docType() != \'words\' && docType() != \'pdf\' && docType() != \'slides\' &&docType() != \'cells\' && docType() != \'image\' && docType() != \'email\' && docType() != \'diagram\' && docType() != \'project\' && docType() != \'taggedimage\'), \'licon_word\': docType() == \'words\', \'licon_pdf\': docType() == \'pdf\', \'licon_ppt\': docType() == \'slides\', \'licon_xls\': docType() == \'cells\', \'licon_bmp\': (docType() == \'image\' || docType() == \'taggedimage\'), \'licon_outlook\': docType() == \'email\', \'licon_visio\': docType() == \'diagram\', \'licon_mpp\': docType() == \'project\' }')
-.appendTo(filesBrowserWrapper);
-var fileName = $('
')
-.addClass(
-'listname_file_browser ' +
-'filename' +
-'ellipses')
-.attr('data-bind', 'text: name(), ellipsis: true')
-.appendTo(filesBrowserWrapper);
-var fileSize = $('
')
-.addClass(
-'listfilesize ' +
-'listsmalltext')
-.attr('data-bind', 'text: (sizeInKb() + \'Kb\')')
-.appendTo(filesBrowserWrapper);
-$('
')
-.addClass(
-'listfilesize ' +
-'listsmalltext')
-.attr('data-bind', 'text: modifiedOn()')
-.appendTo(filesBrowserWrapper);
-},
-_buildFooter: function (parent) {
-var footer = (self.footer = $('
'))
-.addClass('modal_footer')
-.appendTo(parent);
-var btnWrapper = $('
')
-.addClass('modal_btn_wrapper')
-.appendTo(footer);
-},
-_createViewModel: function () {
-var url = this.options.hostUrl;
-var userId = this.options.userId;
-var userKey = this.options.userKey;
-var fileExplorer = $(this.fileExplorer).explorer({ userId: userId, privateKey: userKey, pageSize: 30, fileTypes: this.options.fileTypes, urlHashEnabled: this.options.urlHashEnabled, instanceIdToken: this.options.instanceIdToken });
-var fileUploader = $(this.fileUploader).uploader({ url: url, userId: userId, key: userKey, proxy: 'Uploader.aspx', fld: '', multiple: true, addFileBtn: $(this.uploadButton) });
-return new fileOpenDialogViewModel(this, fileUploader, fileExplorer);
-},
-getViewModel: function () {
-if (!this._viewModel) {
-this._viewModel = this._createViewModel();
-}
-return this._viewModel;
-},
-destroy: function () {
-$.Widget.prototype.destroy.call(this);
-}
-});
-})(jQuery);
-(function ($, undefined) {
-// File explorer view
-$.widget('ui.explorer', {
-_viewModel: null,
-_init: function () {
-var self = this;
-this._viewModel = this.getViewModel();
-this._viewModel.path.subscribe(function (newValue) {
-$(this.element).trigger('onPathChanged', [newValue]);
-} .bind(this));
-$(this._viewModel).bind('onNodeSelected', function (e, node, initialEvent) {
-$(this.element).trigger('onNodeSelected', [node, initialEvent]);
-} .bind(this));
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_createViewModel: function () {
-return new explorerViewModel(
-this._getViewModelOptions());
-},
-_getViewModelOptions: function () {
-return {
-userId: this.options.userId,
-userKey: this.options.privateKey,
-pageSize: this.options.pageSize,
-fileTypes: this.options.fileTypes,
-startupPath: this.options.startupPath,
-view: this.options.view,
-urlHashEnabled: this.options.urlHashEnabled,
-instanceIdToken: this.options.instanceIdToken
-};
-},
-getViewModel: function () {
-if (!this._viewModel) {
-this._viewModel = this._createViewModel();
-}
-return this._viewModel;
-},
-setFilter: function (filter) {
-this._viewModel.setFilter(filter);
-},
-setOrder: function (order) {
-this._viewModel.setFilter(order);
-}
-});
-// File explorer model
-explorerModel = function (options) {
-$.extend(this.options, options);
-this._init();
-};
-$.extend(explorerModel.prototype, {
-_portalService: Container.Resolve("PortalService"),
-_path: '',
-_entitiesLoaded: 0,
-_entitiesTotal: 0,
-_filter: {
-name: '',
-types: null
-},
-_order: {
-by: ko.observable('Name'),
-asc: ko.observable(true)
-},
-options: {
-userId: '',
-userKey: '',
-pageSize: 30,
-extended: false
-},
-_init: function () {
-},
-_loadPage: function (index, path, callback, errorCallback) {
-this._portalService.loadFileBrowserTreeData(this.options.userId, this.options.userKey, path,
-index ? index : 0, this.options.pageSize,
-this._order.by(), this._order.asc(),
-this._filter.name, this._filter.types, this.options.extended,
-function (response) {
-if (response.textStatus === 'success') {
-this._entitiesLoaded += response.data.d.nodes.length;
-//this is in fact not the total
-//but it helps us logically determine whether there are other
-//entities to load, see loadMore for more details
-this._entitiesTotal = response.data.d.count;
-callback.apply(this, [path, response.data.d.nodes]);
-}
-else {
-errorCallback.apply(this, []);
-}
-} .bind(this),
-function (error) {
-errorCallback.apply(this, [error]);
-} .bind(this),
-false,
-this.options.instanceIdToken
-);
-},
-openFolder: function (path, callback, errorCallback) {
-this._path = path || '';
-this._entitiesLoaded = 0;
-this._entitiesTotal = 0;
-this._loadPage(0, this._path, callback, errorCallback);
-},
-loadMore: function (callback, errorCallback) {
-//if the number of loaded entities is larger then the last number
-//of loaded entities(_entitiesTotal) then it means all entities have been loaded
-//as far as we know
-if (this._entitiesLoaded > this._entitiesTotal) {
-return false;
-}
-//otherwise, we may have some more entities to load (there may also not be any)
-var page = Math.ceil(this._entitiesLoaded / this.options.pageSize);
-this._loadPage(page, this._path, callback, errorCallback);
-return true;
-},
-createFolder: function (path, callback, errorCallback) {
-this._portalService.createFolderAsync(this.options.userId, this.options.userKey, path,
-function (response) {
-if (response.data.d > 0) {
-callback.apply(this, [path, response.data.d]);
-}
-else {
-errorCallback.apply(this, [path, null, response.data.d]);
-}
-} .bind(this),
-function (error) {
-errorCallback.apply(this, [error, path]);
-} .bind(this)
-).Subscribe();
-},
-setFilter: function (filter) {
-this._filter.name = filter.name;
-this._filter.types = filter.types;
-},
-setOrder: function (order) {
-if (this._order.by() == order) {
-var asc = !this._order.asc();
-this._order.asc(asc);
-} else {
-this._order.asc(true);
-this._order.by(order);
-}
-}
-});
-// File explorer view model
-explorerViewModel = function (options) {
-this._init(options);
-};
-$.extend(explorerViewModel.prototype, {
-_model: null,
-_filtering: false,
-_ordering: false,
-_userId: null,
-_userKey: null,
-urlHashEnabled: true,
-busy: ko.observable(false),
-path: ko.observable(''),
-entities: ko.observableArray(),
-files: ko.observableArray(),
-folders: ko.observableArray(),
-changedUrlHash: false,
-view: ko.observable('listing'),
-_init: function (options) {
-this._model = this._createModel(options);
-this._userId = options.userId;
-this._userKey = options.userKey;
-if (typeof(options.urlHashEnabled) != 'undefined') {
-this.urlHashEnabled = options.urlHashEnabled;
-}
-this.busy = ko.observable(false);
-this.path = ko.observable('');
-this.entities = ko.observableArray();
-this.files = ko.observableArray();
-this.folders = ko.observableArray();
-this.isNotRootFolder = ko.computed({
-read: function () {
-return !(this.path() === '');
-},
-owner: this
-});
-if (!options.skipStartupPathLoad)
-this.openFolder(options.startupPath);
-},
-_createModel: function (options) {
-return new explorerModel(options);
-},
-_addRoot: function () {
-var root = this._createEntity('Home', 'folder');
-root.path = '';
-this.entities.push(root);
-return root;
-},
-_onEntitiesLoaded: function (path, entities) {
-var self = this;
-if (self._filtering || self._ordering || path != self.path()) {
-self.entities.removeAll();
-self.files.removeAll();
-self.folders.removeAll();
-}
-var currentId = 1;
-$.each(entities, function (i) {
-if (!this.extended) {
-var e = this;
-if (typeof e.id == "undefined") {
-e.id = currentId;
-currentId++;
-}
-self._extendEntity(e);
-self.entities.push(e);
-}
-if (this.type == 'file') {
-self.files.push(this);
-}
-else {
-self.folders.push(this);
-}
-});
-self._filtering = false;
-self._ordering = false;
-self.path(path);
-if (this.urlHashEnabled) {
-this.changedUrlHash = true;
-location.hash = self.view() + '#' + path;
-this.changedUrlHash = false;
-}
-self.busy(false);
-},
-_onNetworkError: function (error) {
-this.busy(false);
-jerror(error.Reason || error);
-},
-_extendEntity: function (entity) {
-var self = this;
-var supportedTypes = (entity.supportedTypes ? $.map(entity.supportedTypes, function (t) { return t.toUpperCase(); }) : []);
-$.extend(entity, {
-extended: true,
-name: ko.observable(entity.name),
-uploading: ko.observable(false),
-isNewVersion:false,
-processingOnServer:false,
-sizeInKb: ko.observable(Math.round(entity.size / 1024)),
-docType: ko.observable((entity && entity.docType) ? entity.docType.toLowerCase() : ""),
-modifiedOn: function () { return (isNaN(entity.modifyTime) || entity.modifyTime < 0 ? '---' : new Date(entity.modifyTime).format('mmm dd, yyyy')); },
-percentCompleted: ko.observable(0),
-uploadSpeed: ko.observable(0),
-remainingTime: ko.observable(0),
-supportedTypes: ko.observableArray(supportedTypes),
-thumbnail: ko.observable(entity.thumbnail),
-selected: ko.observable(false),
-isVisible: ko.observable(true),
-viewJobId: ko.observable(null),
-viewJobPoller: null
-});
-entity.statusText = ko.computed(function () {
-return (this.viewJobId() && this.viewJobId() > 0 ?
-'Server-side processing ...' :
-'Time remaining: ' + this.remainingTime() + ' secs @ ' + this.uploadSpeed() + ' kb/Sec.');
-}, entity);
-entity.open = function (e) {
-if (entity.type === 'file') {
-$(self).trigger('onNodeSelected', [entity, e]);
-} else
-self.openFolder(entity.path);
-};
-entity.viewJobId.subscribe(function (newValue) {
-if (newValue && newValue > 0) {
-entity.processingOnServer = true;
-this.viewJobPoller = new jobPoller({
-userId: self._userId,
-userKey: self._userKey,
-jobId: newValue,
-completed: function () {
-entity.uploading(false);
-entity.processingOnServer = false;
-entity.viewJobPoller = null;
-},
-failed: function (error) {
-entity.uploading(false);
-entity.processingOnServer = false;
-entity.viewJobPoller = null;
-},
-timedout: function () {
-entity.uploading(false);
-entity.processingOnServer = false;
-entity.viewJobPoller = null;
-}
-});
-this.viewJobPoller.start();
-}
-});
-},
-_findEntity: function (name, type) {
-for (var i = 0; i < this.entities().length; i++) {
-var node = this.entities()[i];
-if (node.name().toLowerCase() == name.toLowerCase() && node.type == type) {
-return node;
-}
-}
-return null;
-},
-_findEntityAt: function (path, type) {
-for (var i = 0; i < this.entities().length; i++) {
-var node = this.entities()[i];
-if (node.path().toLowerCase() == path.toLowerCase() && node.type == type) {
-return node;
-}
-}
-return null;
-},
-_createEntity: function (name, type, size, path) {
-var entity = {
-id: 0,
-path: (this.path().trim('/') + '/' + (path ? path : name)).trim('/'),
-name: name,
-type: type,
-docType: 'undefined',
-time: new Date().getTime(),
-modifyTime: new Date().getTime(),
-url: undefined,
-isKnown: false,
-fileCount: 0,
-folderCount: 0,
-supportedTypes: [],
-selected: false,
-size: size
-};
-this._extendEntity(entity);
-return entity;
-},
-_getPathLevel: function (path) {
-return (path && path.length > 0 ? path.length - path.replace(/\/+/g, '').length + 1 : 0);
-},
-getSelectedEntities: function () {
-return $.map(this.entities(), function (item) {
-if (item.id && item.selected()) return item;
-});
-},
-openFolder: function (path) {
-if (this.busy()) {
-return;
-}
-this.busy(true);
-this._model.openFolder(path, this._onEntitiesLoaded.bind(this), this._onNetworkError.bind(this));
-},
-openParentFolder: function () {
-var i = this.path().lastIndexOf('/');
-var path = this.path().substr(0, i > 0 ? i : 0);
-if (path != this.path()) {
-this.openFolder(path);
-}
-},
-loadMore: function () {
-if (!this.busy()) {
-this.busy(
-this._model.loadMore(this._onEntitiesLoaded.bind(this), this._onNetworkError.bind(this)));
-}
-return this.busy();
-},
-createFile: function (name, size) {
-var existingEntity = this._findEntity(name, 'file');
-if (existingEntity) {
-existingEntity.uploading(true);
-existingEntity.isNewVersion = true;
-return existingEntity;
-}
-var self = this;
-var entity = this._createEntity(name, 'file', size);
-entity.uploading(true);
-entity.isNewVersion = false;
-this.entities.push(entity);
-this.files.unshift(entity);
-return entity;
-},
-entityExists: function (name, type) {
-return (this._findEntity(name, type) != null);
-},
-setFilter: function (filter) {
-this._filtering = true;
-this._model.setFilter(filter);
-this.openFolder(this.path());
-},
-setOrder: function (order) {
-this._ordering = true;
-this._model.setOrder(order);
-this.openFolder(this.path());
-},
-orderBy: function () {
-return this._model._order.by();
-},
-orderAsc: function () {
-return this._model._order.asc();
-},
-findEntity: function (name, type) {
-return this._findEntity(name, type);
-},
-isNullOrWhiteSpace: function (str){
-return str === null || str == 'undefined' || str.match(/^ *$/) !== null;
-}
-});
-})(jQuery);
-var OverrideMode = {
-Override: 0,
-Rename: 1,
-Break: 2,
-Skip: 3
-};
-(function ($, undefined) {
-$.widget('ui.uploader', {
-_appender: null,
-_handler: null,
-options: {
-multiple: true,
-userId: undefined,
-key: '',
-url: '',
-proxy: '',
-fld: 'documents',
-formats: '',
-onComplete: null,
-onStart: null,
-addFileBtn: null,
-skipErrors: false,
-delayedStart: false,
-isForUserStorage: false,
-overrideMode: OverrideMode.Override
-},
-_initHandler: function () {
-if (this._handler == null) {
-var action = Container.Resolve('HttpProvider').buildUrl(this.options.url, this.options.proxy, { 'user_id': this.options.userId, 'fld': this.options.fld });
-this._handler = $.handlerFactory.get({
-multiple: this.options.multiple,
-baseServerHost: this.options.url,
-isForUserStorage: this.options.isForUserStorage,
-folder: this.options.fld,
-action: (this.options.key ? Container.Resolve('HttpProvider').signUrl(action, this.options.key) : action),
-skipErrors: this.options.skipErrors,
-overrideMode: this.options.overrideMode
-});
-$(this._handler).hitch('onComplete', this._onComplete, this);
-$(this._handler).hitch('onProgress', this._onProgress, this);
-$(this._handler).hitch('onStart', this._onStart, this);
-}
-},
-_initAppender: function () {
-if (this._appender == null) {
-var self = this;
-this._appender = new FileAppender({ container: this.element,
-multiple: !this._handler.sync, _addFileBtn: this.options.addFileBtn,
-onAddItemAction: function (item) {
-if (self.options.delayedStart) {
-$(self.element).trigger('onFileSelected', [$.fileInputUtils.getName(item), item]);
-}
-else {
-self._uploadFile(item);
-}
-}
-});
-}
-},
-_create: function () {
-this._initHandler();
-this._initAppender();
-},
-_onCancel: function (e) {
-var id = e.data;
-this._handler.cancel(id);
-},
-_onComplete: function (e, id, result) {
-//console.log(result);
-if (this.options.onComplete) {
-this.options.onComplete.apply(this, [id, result]);
-}
-else {
-$(this.element).trigger('onComplete', [id, result]);
-}
-},
-_beforeStart: function (path) {
-if (this.options.beforeStart) {
-return this.options.beforeStart(path);
-}
-else {
-return true;
-}
-},
-_onStart: function (e, id, fileName, fileSize) {
-if (this.options.onStart) {
-this.options.onStart.apply(this, [id, fileName, fileSize]);
-}
-else {
-$(this.element).trigger('onStart', [id, fileName, fileSize]);
-}
-},
-_onProgress: function (e, id, fileName, loaded, total, bytesPerMSec, remainTime) {
-if (this.options.onProgress) {
-this.options.onProgress.apply(this, [id, fileName, loaded, total, bytesPerMSec, remainTime]);
-}
-else {
-$(this.element).trigger('onProgress', [id, fileName, loaded, total, bytesPerMSec, remainTime]);
-}
-},
-_uploadFile: function (input, overrideMode) {
-var id = this._handler.add(input, jSaaspose.utils.getSequenceNumber());
-var path = this._handler.getPath(id);
-if (typeof overrideMode !== "undefined") {
-this._handler.overrideMode = overrideMode;
-}
-if (!this._beforeStart(path)) {
-this._handler.cancel(id);
-return;
-}
-//first, add file html item to the page
-var item = this._addFileItem(id, path);
-if (this.options.formats == '' || this.options.formats.indexOf(item.ext.toLowerCase()) != -1) {
-$(this.element).trigger('onAdded', [item, null]);
-//then upload
-this._handler.upload(id);
-}
-else {
-$(this.element).trigger('onAdded', [null, 'Not allowed format']);
-}
-return id;
-},
-upload: function (id, input) {
-throw new 'not implemented';
-},
-uploadFile: function (input, overrideMode) {
-return this._uploadFile(input, overrideMode);
-},
-cancelUploadFile: function (id) {
-this._handler.cancel(id);
-},
-_addFileItem: function (id, path) {
-var item = { id: id, name: path, ext: this._getExt(path) };
-return item;
-},
-_getExt: function (path) {
-return Container.Resolve('PathProvider').getExt(path).toUpperCase();
-},
-_setOption: function (key, value) {
-$.Widget.prototype._setOption.call(this, key, value);
-if (key === 'fld') {
-this._handler = null;
-this._initHandler();
-}
-}
-});
-UploadHandlerBasic = function (options) {
-$.extend(this, options);
-};
-$.extend(UploadHandlerBasic.prototype, {
-action: '',
-_inputs: {},
-sync: true,
-skipErrors: false,
-getPath: function (id) {
-return $.fileInputUtils.getPath(this._inputs[id]);
-},
-getSize: function (id) {
-var input = this._inputs[id];
-return $.fileInputUtils.getSize(input);
-},
-add: function (fileInput, id) {
-this._inputs[id] = fileInput;
-$(fileInput).detach();
-return id;
-},
-upload: function (id) {
-this._upload(id);
-},
-cancel: function (id) {
-this._cancel(id);
-},
-_parseResponse: function (html) {
-try {
-var result = eval('(' + html + ')');
-} catch (ex) {
-throw 'Error in file processing at server side:' + html;
-}
-return result;
-},
-_upload: function (id) { },
-_cancel: function (id) { }
-});
-//with iframe we can send only one file at a time
-IFrameHandler = function (options) {
-UploadHandlerBasic.apply(this, arguments);
-};
-$.extend(IFrameHandler.prototype, UploadHandlerBasic.prototype, {
-_upload: function (id) {
-var fileInput = this._inputs[id];
-var fileName = Container.Resolve('PathProvider').getName(this.getPath(id));
-$(fileInput).attr('name', fileName);
-var form = this._createForm(id);
-var iframe = this._createIFrame(id);
-form.append(fileInput);
-var doc = iframe.get(0).document ? iframe.get(0).document : (iframe.get(0).contentDocument ? iframe.get(0).contentDocument : iframe.get(0).contentWindow.document);
-doc.body.appendChild(form.get(0));
-iframe.hitch('load', function () {
-var response = this._getIframeContentJSON(iframe[0]);
-$(this).trigger('onComplete', [id, (response.success ? response.parsed : null)]);
-delete this._inputs[id];
-setTimeout(function () {
-iframe.remove();
-}, 1);
-}, this);
-$(this).trigger('onStart', [id, fileName]);
-form.submit();
-form.remove();
-},
-_createForm: function (id) {
-var form = $('
');
-form.attr('id', 'form' + id);
-form.attr('target', 'iframe' + id);
-form.attr('action', this.isForUserStorage ? this._buildUriForIframeAction() : this.action);
-return form;
-},
-_buildUriForIframeAction: function () {
-var _action = '';
-$.ajax({
-url: this.baseServerHost + "\getFileUploadUrl",
-data: "path=" + this.folder + "&forIframe=true",
-async: false,
-success: function (text) {
-_action = text;
-}
-});
-return _action;
-},
-_createIFrame: function (id) {
-var iframe = $('
').appendTo('body');
-iframe.attr('id', 'iframe' + id);
-return iframe;
-},
-_cancel: function (id) {
-$('iframe' + id).remove();
-delete this._inputs[id];
-},
-_getIframeContentJSON: function (iframe) {
-try {
-if (!iframe.parentNode) {
-return;
-}
-if (iframe.contentDocument &&
-iframe.contentDocument.body &&
-iframe.contentDocument.body.innerHTML == "false") {
-return;
-}
-var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document;
-var content = doc.body.innerHTML.replace(/^<[^>]+>|<[^>]+>$/g, '');
-var parsed = this.isForUserStorage ?
-this._correctDataFromIframe(this._parseResponse(content)) : this._parseResponse(content);
-return { success: true, parsed: parsed };
-}
-catch (e) {
-//jerror(e);
-}
-return { success: false, parsed: undefined };
-},
-_correctDataFromIframe: function (response) {
-var correctResponce = {};
-correctResponce.code = response.status;
-correctResponce.error = response.error_message;
-correctResponce.id = response.result.upload_Request_Results[0].id;
-correctResponce.fileType = response.result.upload_Request_Results[0].file_type;
-correctResponce.docType = response.result.upload_Request_Results[0].type.toLowerCase();
-correctResponce.guid = response.result.upload_Request_Results[0].guid;
-correctResponce.thumbnail = response.result.upload_Request_Results[0].thumbnail;
-correctResponce.upload_time = response.result.upload_Request_Results[0].upload_time;
-correctResponce.viewJobId = response.result.upload_Request_Results[0].view_job_id;
-correctResponce.size = response.result.upload_Request_Results[0].size;
-correctResponce.name = response.result.upload_Request_Results[0].adj_name;
-correctResponce.version = response.result.upload_Request_Results[0].version;
-correctResponce.url = response.result.upload_Request_Results[0].url;
-correctResponce.field_count = 0;
-correctResponce.supportedTypes = {};
-$.ajax({
-type: "POST",
-url: this.baseServerHost + "\getJsonFileInfo",
-data: { fileType: response.result.upload_Request_Results[0].file_type },
-async: false,
-success: function (result) {
-correctResponce.supportedTypes = result;
-}
-});
-return correctResponce;
-}
-});
-AjaxHandler = function (options) {
-UploadHandlerBasic.apply(this, arguments);
-this.sync = false;
-this._xhrs = {};
-};
-$.extend(AjaxHandler.prototype, UploadHandlerBasic.prototype, {
-updateProgress: function (evt) {
-if (evt.lengthComputable) {
-var percentComplete = evt.loaded / evt.total;
-//console.log('percentComplete=' + percentComplete);
-}
-},
-_upload: function (id) {
-var file = this._inputs[id];
-var self = this;
-var fileName = UploadHandlerBasic.prototype.getPath.apply(this, [id]);
-var size = UploadHandlerBasic.prototype.getSize.apply(this, [id]);
-//xhr object is used as jQuery doesn't allow yet to upload input file via ajax
-var xhr = self._xhrs[id] = new XMLHttpRequest();
-//xhr.addEventListener("progress", this.updateProgress, false);
-var startTime = new Date().getTime();
-xhr.upload.onprogress = function (e) {
-if (e.lengthComputable) {
-var passed = new Date().getTime() - startTime;
-var bytesPerMSec = e.loaded / passed;
-var remainTime = ((e.total - e.loaded) * passed) / e.loaded;
-$(self).trigger('onProgress', [id, fileName, e.loaded, e.total, bytesPerMSec, remainTime]);
-}
-};
-var isForStorage = this.isForUserStorage;
-xhr.onreadystatechange = function () {
-if (xhr.readyState == 4) {
-if (xhr.status == 0 && xhr['canceled']) {
-$(self).trigger('onComplete', [id, 'canceled']);
-return;
-}
-if (xhr.status == 0) {
-//jerror();
-$(self).trigger('onComplete', [id, null]);
-return;
-}
-var passed = new Date().getTime() - startTime;
-var bytesPerMSec = size / passed;
-$(self).trigger('onProgress', [id, fileName, size, size, bytesPerMSec, 0]);
-var parsed = null;
-if (xhr.status == 200) {
-try {
-if (isForStorage) {
-parsed = self._correctData(self._parseResponse(xhr.responseText));
-} else {
-parsed = self._parseResponse(xhr.responseText);
-}
-if (parsed.code == 'Unauthorized') {
-window.location = Container.Resolve("HttpProvider").buildUrl("/", "sign-in", { 'returnUrl': window.location.href });
-return;
-}
-if (!self.skipErrors) {
-if (parsed.code == 'Forbidden') {
-throw parsed;
-}
-if (parsed.code == 'QuotaExceeded') {
-throw parsed;
-}
-if (parsed.code == 'StorageLimitExceeded') {
-throw parsed;
-}
-}
-}
-catch (e) {
-jerror(parsed.error);
-parsed = null;
-}
-}
-$(self).trigger('onComplete', [id, parsed]);
-delete self._inputs[id];
-delete self._xhrs[id];
-}
-};
-if (this.overrideMode == OverrideMode.Rename) {
-$(this).trigger('onStart', [id, fileName + " (new copy)", size]);
-} else {
-$(this).trigger('onStart', [id, fileName, size]);
-}
-if (this.isForUserStorage) {
-xhr.open('POST', self._buildUriForUserStorage(fileName), true);
-this.overrideMode = OverrideMode.Override;
-} else {
-xhr.open('POST', self._buildUri(fileName), true);
-}
-xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
-xhr.setRequestHeader('X-File-Name', encodeURIComponent(fileName));
-xhr.setRequestHeader('Content-Type', 'application/octet-stream');
-xhr.send(file);
-},
-_correctData: function (response) {
-var correctResponce = {};
-correctResponce.id = response.result.id;
-correctResponce.code = response.result.status;
-correctResponce.fileType = response.result.file_type;
-correctResponce.docType = response.result.type.toLowerCase(); ;
-correctResponce.guid = response.result.guid;
-correctResponce.thumbnail = response.result.thumbnail;
-correctResponce.upload_time = response.result.upload_time;
-correctResponce.viewJobId = response.result.view_job_id;
-correctResponce.size = response.result.size;
-correctResponce.name = response.result.adj_name;
-correctResponce.version = response.result.version;
-correctResponce.url = response.result.url;
-correctResponce.error = response.result.error_message;
-correctResponce.field_count = 0;
-correctResponce.supportedTypes = {};
-$.ajax({
-type: "POST",
-url: this.baseServerHost + "\getJsonFileInfo",
-data: { fileType: response.result.file_type },
-async: false,
-success: function (result) {
-correctResponce.supportedTypes = result;
-}
-});
-return correctResponce;
-},
-_buildUri: function (fileName) {
-return this.action + '&' + $.param({ fileName: fileName, multiple: true });
-},
-_buildUriForUserStorage: function (fileName) {
-var _action = '';
-$.ajax({
-url: this.baseServerHost + "\getFileUploadUrl",
-data: "path=" + this.folder + "&" + "filename=" + encodeURIComponent(fileName) + "&" + "overrideMode=" + this.overrideMode,
-async: false,
-success: function (text) {
-_action = text;
-}
-});
-return _action;
-},
-_cancel: function (id) {
-if (this._inputs[id]) {
-delete this._inputs[id];
-}
-if (this._xhrs[id]) {
-this._xhrs[id]['canceled'] = true;
-this._xhrs[id].abort();
-delete this._xhrs[id];
-}
-}
-});
-/*LinkHandler = function (options) {
-UploadHandlerBasic.apply(this, arguments);
-};
-$.extend(LinkHandler.prototype, UploadHandlerBasic.prototype, {
-_portalService: Container.Resolve("PortalService"),
-userId: null,
-key: '',
-getPath: function (id) {
-return this._inputs[id];
-},
-getSize: function (id) {
-return 0;
-},
-add: function (path, id) {
-this._inputs[id] = path;
-return id;
-},
-uploadSync: function (id) {
-var path = this._inputs[id];
-$(this).trigger('onStart', [id, path]);
-try {
-var fid = this._portalService.uploadLink(this.userId, this.key, path);
-this._onCompleted(id, fid, undefined);
-return fid;
-}
-catch (error) {
-this._onCompleted(id, undefined, { Reason: error });
-return 0;
-}
-},
-_upload: function (id) {
-var path = this._inputs[id];
-$(this).trigger('onStart', [id, path]);
-this._portalService.uploadLinkAsync(this.userId, this.key, path, function (response) { this._onCompleted(id, response, undefined); } .bind(this),
-function (error) { this._onCompleted(id, undefined, error); } .bind(this));
-},
-_onCompleted: function (id, response, error) {
-if (error) {
-jerror();
-}
-$(this).trigger('onComplete', [id, response]);
-}
-});*/
-HandleFactory = function () {
-};
-$.extend(HandleFactory.prototype, {
-get: function (options) {
-if (options.multiple && this._isXHRSupported()) {
-return new AjaxHandler(options);
-}
-return new IFrameHandler(options);
-},
-//to determine if xhr is available in current browser
-_isXHRSupported: function () {
-var input = $('
');
-return (
-'multiple' in input[0] &&
-typeof File != "undefined" &&
-typeof (new XMLHttpRequest()).upload != "undefined");
-}
-});
-ItemAppender = function (options) {
-$.extend(this, options);
-this._init();
-this._subscribe();
-};
-$.extend(ItemAppender.prototype, {
-container: null,
-template: '',
-onAddItemAction: null,
-multiple: false,
-_addFileBtn: null,
-_input: null,
-_init: function () {
-this._input = $('#input', this.container);
-if (this._addFileBtn == null) {
-this._addFileBtn = $('#button', this.container);
-}
-},
-_subscribe: function () {
-}
-});
-FileAppender = function (options) {
-ItemAppender.apply(this, arguments);
-};
-$.extend(FileAppender.prototype, ItemAppender.prototype, {
-_init: function () {
-ItemAppender.prototype._init.apply(this);
-//input is setup with opacity=0 that's why it's invisible but anyway it covers the button
-//and handles all input events
-this._input = this._createInput().prependTo(this._addFileBtn);
-},
-_createInput: function () {
-var input = $('
');
-if (this.multiple) {
-input.attr('multiple', 'multiple');
-}
-return input;
-},
-_subscribe: function () {
-this._input.hitch('change', this._onChange, this);
-},
-_onChange: function (e) {
-var self = this;
-if (this.multiple) {
-$.each(e.target.files, function () { self.onAddItemAction(this) });
-$(e.target).remove();
-}
-else {
-this.onAddItemAction(e.target);
-}
-//add input again
-this._input = this._createInput().prependTo(this._addFileBtn);
-this._subscribe();
-}
-});
-InputTypeFile = function (options) {
-$.extend(this, options);
-this._init();
-this._subscribe();
-};
-$.extend(InputTypeFile.prototype, {
-onFileSelected: null,
-//multiple: false,
-name: null,
-element: null,
-_input: null,
-_init: function () {
-this._input = this._createInput().prependTo(this.element);
-},
-_createInput: function () {
-var input = $('
');
-//if (this.multiple) {
-// input.attr('multiple', 'multiple');
-//}
-input.attr('name', this.name);
-return input;
-},
-_subscribe: function () {
-this._input.hitch('change', this._onChange, this);
-},
-_onChange: function (e) {
-var self = this;
-//if (this.multiple) {
-// $.each(e.target.files, function () { self.onFileSelected(this) });
-// $(e.target).remove();
-//}
-//else {
-this.onFileSelected(e.target);
-//}
-}
-});
-IFrame = function (options) {
-$.extend(this, options);
-this._init();
-};
-$.extend(IFrame.prototype, {
-values: null,
-elements: null,
-action: null,
-onComplete: null,
-_init: function () {
-var form = this._createForm();
-var iframe = this._createIFrame();
-$.each(this.values, function () {
-var e = $('
');
-form.append(e);
-});
-$.each(this.elements, function () {
-form.append(this);
-});
-var doc = iframe.get(0).document ? iframe.get(0).document : (iframe.get(0).contentDocument ? iframe.get(0).contentDocument : iframe.get(0).contentWindow.document);
-doc.body.appendChild(form.get(0));
-iframe.hitch('load', function () {
-var response = this._getIframeContentJSON(iframe[0]);
-if (this.onComplete) this.onComplete(response.parsed);
-//delete this._inputs[id];
-setTimeout(function () {
-iframe.remove();
-}, 1);
-}, this);
-//$(this).trigger('onStart', [id, fileName]);
-form.submit();
-form.remove();
-},
-_createForm: function () {
-var form = $('
');
-form.attr('action', _buildUriForIframeAction());
-form.attr('target', 'iframe');
-return form;
-},
-_buildUriForIframeAction: function () {
-var _action = '';
-$.ajax({
-url: "getFileUploadUrl",
-data: "path=" + this.folder + "&forIframe=true",
-async: false,
-success: function (text) {
-_action = text;
-}
-});
-return _action;
-},
-_createIFrame: function () {
-var iframe = $('
').appendTo('body');
-return iframe;
-},
-_getIframeContentJSON: function (iframe) {
-try {
-if (!iframe.parentNode) {
-return;
-}
-if (iframe.contentDocument &&
-iframe.contentDocument.body &&
-iframe.contentDocument.body.innerHTML == "false") {
-return;
-}
-var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document;
-var parsed = this._parseResponse(doc.body.innerHTML);
-return { success: true, parsed: parsed };
-}
-catch (e) {
-jerror();
-}
-return { success: false, parsed: undefined };
-},
-_parseResponse: function (html) {
-try {
-var result = eval('(' + html + ')');
-} catch (ex) {
-throw 'Error in file processing at server side:' + html;
-}
-return result;
-}
-});
-FileInputUntils = function () { };
-$.extend(FileInputUntils.prototype, {
-getPath: function (input) {
-var s = input.fullPath;
-if (s) {
-s = s.trimStart('/');
-return s.replace(/\//g, '\\');
-}
-return (input.fileName || input.name || input.value);
-},
-getName: function (input) {
-return Container.Resolve('PathProvider').getName(this.getPath(input));
-},
-getSize: function (input) {
-return input.fileSize != null ? input.fileSize : input.size;
-}
-});
-$.handlerFactory = new HandleFactory();
-$.fileInputUtils = new FileInputUntils();
-})(jQuery);
-(function ($, undefined) {
-$.widget('ui.zooming', {
-options: {
-zoomValues: [5, 15, 25, 50, 75, 100, 125, 150, 175, 200, 300, 400, 600]
-},
-_viewModel: null,
-_create: function () {
-if (this.options.createHtml) {
-this._createHtml();
-}
-this._viewModel = this.getViewModel();
-ko.applyBindings(this._viewModel, this.element.get(0));
-$(this._viewModel).bind('onSetZoom', function (e, value) {
-$(this.element).trigger('onSetZoom', [value]);
-} .bind(this));
-$(this._viewModel).bind("zoomSet.groupdocs", function (e, value) {
-this.element.trigger("zoomSet.groupdocs", [value]);
-} .bind(this));
-},
-getViewModel: function () {
-if (this._viewModel) {
-return this._viewModel;
-}
-var options = $.extend({ element: this.element }, this.options);
-var vm = new zoomingViewModel(options);
-return vm;
-},
-_createHtml: function () {
-var root = this.element;
-this.element = $(
-'
' +
-'
' +
-'
' +
-'
' +
-'
'
-).appendTo(root);
-root.trigger("onHtmlCreated");
-}
-});
-// Zooming Model
-zoomingModel = function () {
-};
-// Zooming ViewModel
-zoomingViewModel = function (options) {
-$.extend(this, options);
-this._init(options);
-};
-$.extend(zoomingViewModel.prototype, {
-_model: null,
-zooms: null,
-_currentZoom: null,
-_currentZoomIndex: 0,
-dropDownMenuIsVisible: null,
-dropDownMenuClicked: false,
-_init: function (options) {
-this._currentZoom = ko.observable(100);
-this.zooms = ko.observableArray([]);
-this.dropDownMenuIsVisible = ko.observable(false);
-var zoomValue;
-for (var i = options.zoomValues.length - 1; i >= 0; i--) {
-zoomValue = options.zoomValues[i];
-this.zooms.push({ name: zoomValue.toString() + "%", value: zoomValue });
-if (zoomValue == this._currentZoom()) {
-this._currentZoomIndex = this.zooms().length - 1;
-}
-}
-this.setFitWidthZoom(100);
-this.setFitHeightZoom(100);
-},
-setFitWidthZoom: function (fitWidthZoom) {
-var fitWidthItem = { name: "Fit Width", value: fitWidthZoom, localizationKey: "FitWidth", fitWidth: true };
-var found = false;
-for (var i = 0; i < this.zooms().length; i++) {
-if (this.zooms()[i].fitWidth) {
-//this.zooms.splice(i, 1, fitWidthItem);
-this.zooms()[i].value = fitWidthZoom;
-found = true;
-break;
-}
-}
-if (!found)
-this.zooms.push(fitWidthItem);
-},
-setFitHeightZoom: function (fitHeightZoom) {
-var fitHeightItem = { name: "Fit Height", value: fitHeightZoom, localizationKey: "FitHeight", fitHeight: true };
-var found = false;
-for (var i = 0; i < this.zooms().length; i++) {
-if (this.zooms()[i].fitHeight) {
-//this.zooms.splice(i, 1, fitHeightItem);
-this.zooms()[i].value = fitHeightZoom;
-found = true;
-break;
-}
-}
-if (!found)
-this.zooms.push(fitHeightItem);
-},
-getZoom: function () {
-return this._currentZoom();
-},
-getFitWidthZoomValue: function () {
-var zoomItem;
-for (var i = 0; i < this.zooms().length; i++) {
-zoomItem = this.zooms()[i];
-if (zoomItem.fitWidth) {
-return zoomItem.value;
-}
-}
-},
-getFitHeightZoomValue: function () {
-var zoomItem;
-for (var i = 0; i < this.zooms().length; i++) {
-zoomItem = this.zooms()[i];
-if (zoomItem.fitHeight) {
-return zoomItem.value;
-}
-}
-},
-setZoom: function (item, e) {
-var zoom = item.value;
-var index = this._indexOfZoom(zoom);
-this._currentZoom(zoom);
-if (index >= 0) {
-this._currentZoomIndex = index;
-}
-else {
-this._currentZoomIndex = this._indexOfNearestZoom(zoom, false);
-}
-$(this).trigger('onSetZoom', zoom);
-$(this).trigger("zoomSet.groupdocs", zoom);
-},
-setZoomWithoutEvent: function (zoom) {
-var index = this._indexOfZoom(zoom);
-if (index >= 0) {
-this._currentZoom(zoom);
-this._currentZoomIndex = index;
-}
-},
-zoomIn: function () {
-var changed = false;
-var currentZoomIndex = this._currentZoomIndex;
-if (this._isFitToBounds()) {
-currentZoomIndex = this._indexOfNearestZoom(this.zooms()[this._currentZoomIndex].value, true);
-changed = (currentZoomIndex >= 0);
-}
-else
-if (this._currentZoomIndex > 0) {
-currentZoomIndex = this._currentZoomIndex - 1;
-changed = true;
-}
-if (changed) {
-this._currentZoomIndex = currentZoomIndex;
-this._currentZoom(this.zooms()[this._currentZoomIndex].value);
-$(this).trigger('onSetZoom', this._currentZoom());
-$(this).trigger("zoomSet.groupdocs", this._currentZoom());
-}
-},
-zoomOut: function () {
-var changed = false;
-var currentZoomIndex = this._currentZoomIndex;
-if (this._isFitToBounds()) {
-currentZoomIndex = this._indexOfNearestZoom(this.zooms()[this._currentZoomIndex].value, false);
-changed = (currentZoomIndex >= 0);
-}
-else
-if (this._currentZoomIndex < this.zooms().length - 1 &&
-!(this.zooms()[this._currentZoomIndex + 1].fitWidth || this.zooms()[this._currentZoomIndex + 1].fitHeight)) {
-currentZoomIndex = this._currentZoomIndex + 1;
-changed = true;
-}
-if (changed) {
-this._currentZoomIndex = currentZoomIndex;
-this._currentZoom(this.zooms()[this._currentZoomIndex].value);
-$(this).trigger('onSetZoom', this._currentZoom());
-$(this).trigger("zoomSet.groupdocs", this._currentZoom());
-}
-},
-_indexOfZoom: function (value) {
-for (i = 0; i < this.zooms().length; i++) {
-if (this.zooms()[i].value == value) {
-return i;
-}
-}
-return -1;
-},
-_indexOfNearestZoom: function (value, greater) {
-var startIndex = this.zooms().length - 1;
-var nearestGreaterValue = null, nearestGreaterValueIndex = null,
-nearestSmallerValue = null, nearestSmallerValueIndex = null;
-var current, currentElement;
-for (i = startIndex; i >= 0; i--) {
-currentElement = this.zooms()[i];
-current = currentElement.value;
-if (!currentElement.fitWidth && !currentElement.fitHeight) {
-if (current > value && (nearestGreaterValue === null || current < nearestGreaterValue)) {
-nearestGreaterValue = current;
-nearestGreaterValueIndex = i;
-}
-else if (current < value && (nearestSmallerValue === null || current > nearestSmallerValue)) {
-nearestSmallerValue = current;
-nearestSmallerValueIndex = i;
-}
-}
-}
-if (greater) {
-if (nearestGreaterValueIndex === null)
-return -1;
-else
-return nearestGreaterValueIndex;
-}
-else {
-if (nearestSmallerValueIndex === null)
-return -1;
-else
-return nearestSmallerValueIndex;
-}
-},
-_isFitToBounds: function () {
-return (this.zooms()[this._currentZoomIndex].fitWidth || this.zooms()[this._currentZoomIndex].fitHeight);
-},
-showDropDownMenu: function (show) {
-this.dropDownMenuIsVisible(show);
-},
-toggleDropDownMenu: function (viewModel, event) {
-this.dropDownMenuIsVisible(!this.dropDownMenuIsVisible());
-this.dropDownMenuClicked = true;
-this.element.trigger("onMenuClicked");
-event.stopPropagation();
-}
-//isDropDownMenuClicked: function () {
-// var dropDownMenuClicked = this.dropDownMenuClicked;
-// this.dropDownMenuClicked = false;
-// return dropDownMenuClicked;
-//}
-});
-})(jQuery);
-(function ($, undefined) {
-$.widget('ui.docViewerPageFlip', {
-_viewModel: null,
-options: {
-fileId: 0,
-fileVersion: 1,
-userId: 0,
-userKey: null,
-baseUrl: null,
-_mode: 'full',
-_docGuid: '',
-quality: null,
-use_pdf: "true"
-},
-_create: function () {
-$.extend(this.options, {
-emptyImageUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAASsJTYQAAAAASUVORK5CYII="
-});
-if (this.options.createHtml) {
-this._createHtml();
-}
-this.options.documentSpace = this.element;
-this._viewModel = this.getViewModel();
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_init: function () {
-$(this._viewModel).bind('getPagesCount', function (e, pagesCount) {
-$(this.element).trigger('getPagesCount', [pagesCount]);
-} .bind(this));
-$(this._viewModel).bind('onDocumentLoaded', function (e) {
-$(this.element).trigger('onDocumentLoaded');
-} .bind(this));
-$(this._viewModel).bind('_onProcessPages', function (e, data) {
-$(this.element).trigger('_onProcessPages', [data]);
-} .bind(this));
-$(this._viewModel).bind('onProcessPages', function (e, guid) {
-$(this.element).trigger('onProcessPages', [guid]);
-} .bind(this));
-$(this._viewModel).bind('onScrollDocView', function (e, data) {
-$(this.element).trigger('onScrollDocView', [data]);
-} .bind(this));
-$(this._viewModel).bind('onDocumentLoadComplete', function (e, data) {
-$(this.element).trigger('onDocumentLoadComplete', [data]);
-} .bind(this));
-$(this._viewModel).bind('onSearchPerformed', function (e, searchCountItem) {
-$(this.element).trigger('onSearchPerformed', [searchCountItem]);
-} .bind(this));
-$(this._viewModel).bind('onPageTurned', function (e, pageIndex) {
-$(this.element).trigger('onPageTurned', [pageIndex]);
-} .bind(this));
-},
-getViewModel: function () {
-if (this._viewModel == null) {
-this._viewModel = this._createViewModel();
-}
-return this._viewModel;
-},
-_createViewModel: function () {
-var vm = new docViewerPageFlipViewModel(this.options);
-return vm;
-},
-applyBindings: function () {
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_createHtml: function () {
-var viewerHtml =
-//'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-' ' +
-'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-'
' +
-' ' +
-'
' +
-'
' +
-'
';
-var root = this.element;
-this.element = $(viewerHtml).appendTo(root);
-root.trigger("onHtmlCreated");
-//this.element = $("#" + this.options.docViewerId);
-}
-});
-// Doc Viewer Model
-var docViewerPageFlipModel = function (options) {
-$.extend(this, options);
-this._init();
-};
-$.extend(docViewerPageFlipModel.prototype, {
-_init: function () {
-this._portalService = Container.Resolve("PortalService");
-},
-loadDocument: function (fileId, pagesCountToShow, imageWidth, callback, errorCallback) {
-switch (this._mode) {
-case 'embed':
-this._portalService.viewEmbedDocumentAllAsync(this.userId, this.userKey, fileId, imageWidth, this.quality, this.use_pdf, -1, null,
-function (response) {
-if (response.data.d != null && typeof (response.data.d.guid) !== "undefined") {
-callback.apply(this, [response.data.d]);
-}
-else {
-errorCallback.apply(this, [{}]);
-}
-},
-function (error) {
-errorCallback.apply(this, [error]);
-});
-break;
-case 'embedlite':
-this._portalService.viewDocumentAllAsync(this.userId, this.userKey, fileId, null, null, null, null, this.quality, this.use_pdf,
-function (response) {
-if (typeof (response.data.d.guid) !== "undefined") {
-callback.apply(this, [response.data.d]);
-}
-else {
-errorCallback.apply(this);
-}
-},
-function (error) {
-errorCallback.apply(this, [error]);
-},
-false);
-break;
-default:
-this._portalService.viewDocumentAllAsync(this.userId, this.userKey, fileId, null, pagesCountToShow, imageWidth, null, this.quality, this.use_pdf,
-function (response) {
-if (response.data.d && typeof (response.data.d.guid) !== "undefined") {
-callback.apply(this, [response.data.d]);
-}
-else {
-errorCallback.apply(this);
-}
-},
-function (error) {
-errorCallback.apply(this, [error]);
-},
-false);
-break;
-}
-},
-loadProperties: function (fileId, callback) {
-this._portalService.getDocInfoAsync(this.userId, this.userKey, fileId,
-function (response) {
-callback.apply(this, [response.data.d]);
-});
-},
-retrieveImageUrls: function (fileId, imageCount, pagesDimension, token, callback, errorCallback) {
-this._portalService.getImageUrlsAsync(this.userId, this.userKey, fileId, pagesDimension, token, 0, imageCount, this.quality == null ? '' : this.quality, this.use_pdf, this.fileVersion,
-function (response) {
-callback.apply(this, [response.data.d]);
-},
-function (error) {
-errorCallback.apply(this, [error]);
-});
-}
-});
-// Doc Viewer View Model
-window.docViewerPageFlipViewModel = function (options) {
-$.extend(this, options);
-this._create(options);
-};
-$.extend(window.docViewerPageFlipViewModel.prototype, {
-_model: null,
-pagesDimension: null,
-pageImageWidth: 568.0,
-imageHorizontalMargin: 34,
-initialZoom: 100,
-zoom: null,
-scale: null,
-docWasLoadedInViewer: false,
-scrollPosition: [0, 0],
-inprogress: null,
-pages: null,
-pageInd: null,
-pageWidth: null,
-pageHeight: null,
-pageCount: null,
-docType: null,
-fileId: null,
-_dvselectable: null,
-_thumbnailHeight: 140,
-_firstPage: null,
-imageUrls: [],
-pagePrefix: "page-flip-",
-documentName: null,
-fit90PercentWidth: false,
-_pageBounds: null,
-changedUrlHash: false,
-bookWidth: 0,
-pagingBarWidth: 30,
-turnPageWithoutEvent: false,
-minimumImageWidth: null,
-_create: function (options) {
-this._model = new docViewerPageFlipModel(options);
-this._init(options);
-},
-_init: function (options) {
-this.pages = ko.observableArray([]);
-this.scale = ko.observable(this.initialZoom / 100);
-this.zoom = ko.observable(this.initialZoom);
-this.inprogress = ko.observable(false),
-this.pageLeft = ko.observable(0);
-this.pageInd = ko.observable(1);
-this.pageWidth = ko.observable(0);
-this.pageHeight = ko.observable(0);
-this.pageCount = ko.observable(0);
-this.docType = ko.observable(-1);
-//this.fileId = ko.observable(0);
-this.documentName = ko.observable("");
-if (!this.docViewerId)
-this.docViewerId = this.documentSpace.attr('id');
-this.pagePrefix = this.docViewerId + "-page-flip-";
-if (options.fit90PercentWidth)
-this.pageImageWidth = this.documentSpace.width() * 0.9 - 2 * this.imageHorizontalMargin;
-this.pagesDimension = Math.floor(this.pageImageWidth).toString() + "x";
-if (this.pages().length == 0)
-this.pages.push({ number: 1, visible: ko.observable(false), url: ko.observable(this.emptyImageUrl) });
-//if (options.fileId) {
-// this.loadDocument();
-//}
-},
-loadDocument: function (fileId) {
-this.inprogress(true);
-if (typeof (fileId) !== 'undefined')
-this.fileId = fileId;
-this.docWasLoadedInViewer = false;
-//var pagesCountToShow = Math.ceil($('#thumbnails-container').height() / this._thumbnailHeight);
-//if (pagesCountToShow == 0)
-// pagesCountToShow = 1;
-var pagesCountToShow = 1;
-this._model.loadDocument(this.fileId, pagesCountToShow, this.pageImageWidth,
-function (response) {
-this._onDocumentLoaded(response);
-} .bind(this),
-function (error) {
-this._onError(error);
-} .bind(this));
-if (typeof viewModelPathOnlineDoc !== 'undefined')
-viewModelPathOnlineDoc.pathOnlineDoc('');
-},
-retrieveImageUrls: function (imageCount) {
-var i;
-//for (i = 1; i <= this.pages.length; i++)
-// this.pages[i].visible = false;
-var pageDimension, pageWidth;
-if (this.shouldMinimumWidthBeUsed(this.pageWidth(), true))
-pageWidth = this.minimumImageWidth;
-else
-pageWidth = this.pageWidth();
-pageDimension = Math.floor(pageWidth) + "x";
-this._model.retrieveImageUrls(this.fileId, imageCount, (this._mode == 'webComponent' ? Math.floor(pageWidth) : pageDimension), this.token,
-function (response) {
-var newPageIndex;
-for (i = 0; i < imageCount; i++) {
-this.pages()[i].url(response.image_urls[i]);
-newPageIndex = i + 1;
-var pageImageElement = this.setImageElementSize(newPageIndex, this.pageWidth(), this.pageHeight());
-pageImageElement.attr("src", this.pages()[newPageIndex - 1].url());
-}
-this.loadImagesForVisiblePages();
-} .bind(this),
-function (error) {
-this._onError(error);
-} .bind(this));
-},
-_onError: function (error) {
-this.inprogress(false);
-jerror(error.Reason || "The document couldn't be loaded...");
-},
-_onDocumentLoaded: function (response, pdf2XmlWrapper) {
-$(this).trigger('onDocumentLoaded');
-this.fileId = response.guid;
-this.docGuid = response.guid;
-this.documentName(response.name);
-this.docType(response.doc_type);
-this.pageCount(response.page_count);
-this.token = response.token;
-$(this).trigger('getPagesCount', response.page_count);
-$(this).trigger('_onProcessPages', response);
-var pageSize = null;
-if (this.use_pdf != 'false') {
-//this._pdf2XmlWrapper = new jSaaspose.Pdf2XmlWrapper({ userId: this.userId, privateKey: this.userKey, fileId: this.fileId, guid: this.docGuid });
-this._pdf2XmlWrapper = pdf2XmlWrapper;
-pageSize = this._pdf2XmlWrapper.getPageSize();
-//this.scale(this.pageImageWidth / pageSize.width);
-}
-this.pagesContainerElement = this.documentSpace.find("div.pages_container_flip");
-this.heightWidthRatio = parseFloat(response.page_size.Height / response.page_size.Width);
-//this.pageWidth(this.pageImageWidth);
-//this.pageWidth((this.documentSpace.width() - pagingBarWidth * 2) / 2);
-var viewerWidth;
-if (this.viewerWidth)
-viewerWidth = this.viewerWidth;
-else
-viewerWidth = this.documentSpace.parent().width();
-this.pageWidth((viewerWidth - this.pagingBarWidth * 2) / 2);
-this.pageHeight(Math.round(this.pageWidth() * this.heightWidthRatio));
-//this.pageHeight(Math.round(this.pageImageWidth * this.heightWidthRatio));
-//this.pages.removeAll();
-if (this._dvselectable) {
-var selectable = this._dvselectable.data("ui-dvselectable"); // jQueryUI 1.9+
-if (!selectable)
-selectable = this._dvselectable.data("dvselectable"); // jQueryUI 1.8
-selectable.destroy();
-}
-if (this.pagesContainerElement.turn("is"))
-this.pagesContainerElement.turn("destroy");
-this.pagesContainerElement.height(this.pageHeight());
-this.inprogress(false);
-var pageCount = this.pageCount();
-var i;
-//for (i = 1; i <= pageCount; i++)
-// this.pages.push({ number: i, visible: ko.observable(false), url: ko.observable(''), urlPending: false });
-var pagesNotObservable = [];
-for (i = 1; i <= pageCount; i++)
-pagesNotObservable.push({ number: i, visible: ko.observable(false), url: ko.observable(this.emptyImageUrl) });
-//this.pages.push({ number: i, visible: ko.observable(false), url: ko.observable(''), urlPending: false });
-this.pages(pagesNotObservable);
-this._firstPage = this.pagesContainerElement.find("#" + this.pagePrefix + "1");
-$(this).trigger('onProcessPages', [this.docGuid]);
-for (i = 0; i < response.image_urls.length && i < this.pages().length; i++) {
-this.pages()[i].url(response.image_urls[i]);
-}
-if (!this.zoomToFitHeight)
-this.loadImagesForVisiblePages();
-this.initialWidth = this.pageWidth();
-if (pageSize != null)
-this.scale(this.initialWidth / pageSize.width);
-var hCount = Math.floor(this.pagesContainerElement.width() / this._firstPage.width());
-if (hCount == 0)
-hCount = 1;
-this._dvselectable = this.pagesContainerElement.dvselectable({
-txtarea: this.selectionContent,
-pdf2XmlWrapper: this._pdf2XmlWrapper,
-startNumbers: this.getVisiblePagesNumbers(),
-pagesCount: this.pageCount(),
-proportion: this.scale(),
-disabled: this.use_pdf == "true" ? false : true,
-pageHeight: this.getPageHeight(),
-horizontalPageCount: hCount,
-docSpace: this.documentSpace,
-bookLayout: true,
-pagePrefix: this.pagePrefix
-});
-this._dvselectable.dvselectable("setVisiblePagesNumbers", this.getVisiblePagesNumbers());
-this.docWasLoadedInViewer = true;
-this.documentSpace.find("div.bookCovers > div:first").clone().prependTo(this.pagesContainerElement); //.height(this.pageHeight());
-this.documentSpace.find("div.bookCovers > div:last").clone().appendTo(this.pagesContainerElement); //.height(this.pageHeight());
-this.setPage(1, true, true);
-var self = this;
-this.pagesContainerElement.turn({
-elevation: 50,
-acceleration: true,
-gradients: true,
-autoCenter: true,
-duration: 1000,
-//width: this.documentSpace.width() - pagingBarWidth * 2,
-width: viewerWidth - this.pagingBarWidth * 2,
-height: this.pageHeight()
-//height: this.pagesContainerElement.height()
-});
-//ko.applyBindings(this, this.pagesContainerElement.get(0));
-this.pagesContainerElement.bind("turning", function (event, page, view) {
-var book = $(this);
-var pages = book.turn('pages');
-if (page > pages) {
-event.preventDefault();
-return;
-}
-page = page - 1; // 1 for cover
-self.setImageElementSize(page - 1, self.pageWidth(), self.pageHeight());
-self.setPage(page - 1, true);
-self.setImageElementSize(page, self.pageWidth(), self.pageHeight());
-self.setPage(page, true, true);
-self.setImageElementSize(page + 1, self.pageWidth(), self.pageHeight());
-self.setPage(page + 1, true); // lazy load in advance
-self.setImageElementSize(page + 2, self.pageWidth(), self.pageHeight());
-self.setPage(page + 2, true);
-});
-this.pagesContainerElement.bind("turned", function (event, page, view) {
-page = page - 1; // 1 for cover
-self.setImageElementSize(page - 1, self.pageWidth(), self.pageHeight());
-self.setPage(page - 1, true);
-self.setImageElementSize(page, self.pageWidth(), self.pageHeight());
-self.setPage(page, true);
-self.setImageElementSize(page + 1, self.pageWidth(), self.pageHeight());
-self.setPage(page + 1, true); // load in advance
-self.setImageElementSize(page + 2, self.pageWidth(), self.pageHeight());
-self.setPage(page + 2, true);
-if (self._dvselectable) {
-var visiblePagesNumbers = self.getVisiblePagesNumbers();
-var pagesOnScreen = 2;
-if (page == pageCount)
-pagesOnScreen = 1;
-self._dvselectable.dvselectable("reInitPages", self.scale(), visiblePagesNumbers, self.scrollPosition, self.getPageHeight(), pagesOnScreen);
-}
-var book = $(this);
-book.turn('center');
-if (!self.turnPageWithoutEvent && page > 0 && page <= pageCount)
-$(this).trigger('onPageTurned', page);
-self.turnPageWithoutEvent = false;
-});
-//this.documentSpace.find(".doc_viewer_flip").width(this.pagesContainerElement.width());
-this.documentSpace.width(this.pagesContainerElement.width());
-if (this.zoomToFitHeight)
-this.setZoom(this.getFitHeightZoom());
-$(this).trigger('onDocumentLoadComplete', [response]);
-},
-setDimension: function (val) {
-this.pagesDimension = val + "x";
-},
-setPageWidth: function (val) {
-this.pageImageWidth = val;
-},
-getFitWidthZoom: function () {
-var viewerWidth;
-if (this.viewerWidth)
-viewerWidth = this.viewerWidth;
-else
-viewerWidth = this.documentSpace.parent().width();
-return viewerWidth / ((this.initialWidth + this.pagingBarWidth) * 2) * 100;
-},
-getFitHeightZoom: function () {
-var viewerHeight;
-if (this.viewerHeight)
-viewerHeight = this.viewerHeight;
-else
-viewerHeight = this.documentSpace.parent().height();
-return viewerHeight / Math.round(this.initialWidth * this.heightWidthRatio) * 100;
-},
-getPageHeight: function () {
-//return (this.use_pdf == 'false' ? this.pageWidth() * this.heightWidthRatio : this.unscaledPageHeight * this.scale());
-//return this.pageWidth() * this.heightWidthRatio;
-return this.unscaledPageHeight * this.scale();
-},
-getSelectable: function () {
-return this._dvselectable;
-},
-_onPropertiesLoaded: function (response) {
-$(this).trigger('onDocumentLoaded', { fileId: this.fileId, response: response });
-},
-getFileId: function () {
-return this.fileId;
-},
-ScrollDocView: function (item, e) {
-return;
-},
-ScrollDocViewEnd: function (item, e) {
-return;
-},
-getVisiblePagesNumbers: function () {
-var start;
-var end;
-var currentPage = this.pageInd();
-if (currentPage % 2 == 1) {
-start = currentPage;
-end = currentPage + 1;
-}
-else {
-start = currentPage - 1;
-end = currentPage;
-}
-var pageCount = this.pageCount();
-if (end > pageCount)
-end = pageCount;
-return { start: start, end: end };
-},
-loadImagesForVisiblePages: function () {
-var numbers = this.getVisiblePagesNumbers();
-var start = numbers.start;
-var end = numbers.end;
-for (var i = start; i <= end; i++) {
-this.pages()[i - 1].visible(true);
-}
-return numbers;
-},
-setPage: function (index, setInternalPageOnly, raiseEvent) {
-//this.isSetCalled = true;
-var pageCount = this.pageCount();
-var newPageIndex = Number(index);
-//if (this.pageInd() == newPageIndex)
-// return;
-if (newPageIndex > pageCount)
-newPageIndex = pageCount;
-if (isNaN(newPageIndex) || newPageIndex < 1)
-newPageIndex = 1;
-var direction;
-if (this.pageInd() < newPageIndex) {
-direction = 'up';
-}
-else {
-direction = 'down';
-}
-this.pages()[newPageIndex - 1].visible(true);
-if (this.pagesContainerElement) {
-var pageImageElement = this.pagesContainerElement.find("#" + this.pagePrefix + newPageIndex.toString() + " img.page-image");
-var imageUrl = this.pages()[newPageIndex - 1].url();
-if (pageImageElement.attr("src") != imageUrl)
-pageImageElement.attr("src", imageUrl);
-if (!setInternalPageOnly && this.documentSpace.is(":visible")) {
-this.turnPageWithoutEvent = true;
-this.pagesContainerElement.turn("page", newPageIndex + 1);
-}
-if (raiseEvent) {
-this.pageInd(newPageIndex);
-$(this).trigger("onScrollDocView", { pi: newPageIndex, direction: direction });
-}
-}
-},
-setImageElementSize: function (pageIndex, width, height) {
-var pageImageElement = this.pagesContainerElement.find("#" + this.pagePrefix + pageIndex.toString() + " img.page-image");
-if (pageImageElement.width() != width)
-pageImageElement.width(width);
-if (pageImageElement.height() != height)
-pageImageElement.height(height);
-return pageImageElement;
-},
-previousBroadside: function () {
-var currentPageIncludingCover = this.pagesContainerElement.turn("page");
-var currentPageNotIncludingCover = currentPageIncludingCover - 1;
-var pageCount = this.pageCount();
-var newPage;
-if (currentPageNotIncludingCover == 0 || currentPageNotIncludingCover > pageCount)
-newPage = currentPageNotIncludingCover - 2;
-else
-newPage = this.pageInd() - 2;
-//var newPage = this.pageInd() - 2;
-if (newPage < 1)
-newPage = 1;
-this.setPage(newPage, true);
-this.turnPageWithoutEvent = true;
-this.pagesContainerElement.turn('previous');
-this.pageInd(newPage);
-if (newPage > 0 && newPage <= pageCount)
-$(this).trigger('onPageTurned', newPage);
-},
-nextBroadside: function () {
-var currentPageIncludingCover = this.pagesContainerElement.turn("page");
-var currentPageNotIncludingCover = currentPageIncludingCover - 1;
-var pageCount = this.pageCount();
-var newPage;
-if (currentPageNotIncludingCover == 0 || currentPageNotIncludingCover > pageCount)
-newPage = currentPageNotIncludingCover + 2;
-else
-newPage = this.pageInd() + 2;
-//var newPage = this.pageInd() + 2;
-if (newPage > pageCount)
-newPage = pageCount;
-this.setPage(newPage, true);
-this.turnPageWithoutEvent = true;
-this.pagesContainerElement.turn('next');
-this.pageInd(newPage);
-if (newPage > 0 && newPage <= pageCount)
-$(this).trigger('onPageTurned', newPage);
-},
-setZoom: function (value) {
-this.zoom(value);
-if (this.isPageFlipViewerVisible()) {
-this.loadPagesZoomed();
-if (this._pdf2XmlWrapper) {
-var pageSize = this._pdf2XmlWrapper.getPageSize();
-this.scale(this.initialWidth / pageSize.width * value / 100);
-//this.scale(this.pageImageWidth / pageSize.width * value / 100);
-}
-//var pager = this.pagesContainerElement.data("turn");
-this.pagesContainerElement.width(this.pageWidth() * 2);
-this.pagesContainerElement.height(this.pageHeight());
-this.documentSpace.width(this.pageWidth() * 2);
-this.pagesContainerElement.turn("size", this.pagesContainerElement.width(), this.pagesContainerElement.height());
-var pageImages = this.pagesContainerElement.find("img.page_image_flip");
-pageImages.width(this.pageWidth());
-pageImages.height(this.pageHeight());
-this.resizeViewerElement(this.viewerLeft);
-this._dvselectable.dvselectable("changeSelectedRowsStyle", this.scale());
-var visiblePagesNumbers = this.getVisiblePagesNumbers();
-var hCount = Math.floor(this.pagesContainerElement.width() / this._firstPage.width());
-if (hCount == 0)
-hCount = 1;
-this._dvselectable.dvselectable("reInitPages", this.scale(), visiblePagesNumbers, this.scrollPosition, this.pageWidth() * this.heightWidthRatio, hCount);
-}
-},
-loadPagesZoomed: function () {
-var newWidth = (this.initialWidth * this.zoom() / 100) >> 0;
-var newHeight = (newWidth * this.heightWidthRatio) >> 0;
-this.pagesDimension = newWidth + 'x';
-this.pageWidth(newWidth);
-this.pageHeight(newHeight);
-var pageCount = this.pageCount();
-//for (var i = 0; i < pageCount; i++) {
-// this.pages()[i].url('');
-//}
-this.setPage(this.pageInd());
-if (!this.shouldMinimumWidthBeUsed(newWidth, true))
-this.retrieveImageUrls(pageCount);
-},
-performSearch: function (value) {
-var searchCountItem = this._dvselectable.dvselectable("performSearch", value, this.zoom() / 100);
-$(this).trigger('onSearchPerformed', [searchCountItem]);
-},
-selectTextInRect: function (rect) {
-if (this._dvselectable) {
-$(this._dvselectable).dvselectable('highlightPredefinedArea', rect);
-}
-},
-deselectTextInRect: function (rect, deleteStatic) {
-if (this._dvselectable) {
-$(this._dvselectable).dvselectable('unhighlightPredefinedArea', rect, deleteStatic);
-}
-},
-reInitSelectable: function () {
-var visiblePagesNumbers = this.getVisiblePagesNumbers();
-if (this._dvselectable != null) {
-this._dvselectable.dvselectable("reInitPages", this.scale(), visiblePagesNumbers,
-this.scrollPosition, this.getPageHeight());
-}
-},
-onDocumentPageSet: function (newPageIndex) {
-this.pageInd(newPageIndex);
-if (this.isPageFlipViewerVisible())
-this.openCurrentPage();
-},
-openCurrentPage: function () {
-if (this.pagesContainerElement)
-this.setPage(this.pageInd());
-//this.pagesContainerElement.turn("page", this.pageInd() + 1);
-},
-isPageFlipViewerVisible: function () {
-var isVisible = this.documentSpace.is(":visible");
-return isVisible;
-},
-shouldMinimumWidthBeUsed: function (width, checkOriginalDocumentWidth) {
-var originalDocumentWidth = null;
-if (this.use_pdf != 'false' && checkOriginalDocumentWidth) {
-var pageSize = this._pdf2XmlWrapper.getPageSize();
-originalDocumentWidth = pageSize.width;
-}
-return this.minimumImageWidth != null &&
-(width <= this.minimumImageWidth || (originalDocumentWidth !== null && originalDocumentWidth < this.minimumImageWidth));
-},
-resizeViewerElement: function (viewerLeft) {
-var parent = this.documentSpace.parent();
-var parentWidth = parent.width();
-var viewerMainWrapper = parent.parent();
-var viewerMainWrapperWidth = viewerMainWrapper.width();
-if (typeof viewerLeft == "undefined")
-viewerLeft = 0;
-else
-this.viewerLeft = viewerLeft;
-parent.width(viewerMainWrapperWidth - viewerLeft);
-//this.documentSpace.width(parentWidth - viewerLeft);
-//parent.css("width", viewerMainWrapperWidth - viewerLeft + "px");
-this.reInitSelectable();
-this.loadImagesForVisiblePages();
-}
-});
-})(jQuery);
-(function ($, undefined) {
-$.widget('ui.search', {
-_viewModel: null,
-options: {
-isCaseSensitive: false,
-searchForSeparateWords: false
-},
-_create: function () {
-$.extend(this.options, { element: this.element });
-if (this.options.createHtml) {
-this._createHtml();
-}
-this._viewModel = this.getViewModel();
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_init: function () {
-},
-getViewModel: function () {
-if (this._viewModel == null) {
-this._viewModel = this._createViewModel();
-}
-return this._viewModel;
-},
-_createViewModel: function () {
-var vm = new searchViewModel(this.options);
-return vm;
-},
-applyBindings: function () {
-ko.applyBindings(this._viewModel, this.element.get(0));
-},
-_createHtml: function () {
-var elementsHtml =
-'
' +
-'
' +
-'
' +
-'
';
-var root = this.element;
-$(elementsHtml).appendTo(root);
-root.trigger("onHtmlCreated");
-}
-});
-// Model
-var searchModel = function (options) {
-$.extend(this, options);
-this._init();
-};
-$.extend(searchModel.prototype, {
-_init: function () {
-}
-});
-// View Model
-var searchViewModel = function (options) {
-$.extend(this, options);
-this._create(options);
-};
-$.extend(searchViewModel.prototype, {
-searchValue: null,
-previousEnabled: null,
-nextEnabled: null,
-minAreaTopRelativeToBeginning: null,
-maxAreaTopRelativeToBeginning: null,
-searched: false,
-viewerIsScrolled: false,
-searchForward: false,
-closestArea: null,
-newHighlightedAreaFirstWordLeftRelative: 0,
-newHighlightedAreaLastWordLeftRelative: 0,
-highlightAreas: null,
-sible: null,
-useHtmlBasedEngine: false,
-useCaseSensitiveSearch: false,
-useAccentInsensitiveSearch: false,
-viewerViewModel: null,
-pageNumberAttribute: "data-page-num",
-useRtl: false,
-searchPageAfterScrollingToIt: null,
-hitsOnAllPagesAreFound: false,
-_create: function (options) {
-this._model = new searchModel(options);
-this._init(options);
-},
-_init: function (options) {
-this.searchValue = ko.observable("");
-this.previousEnabled = ko.observable(true);
-this.nextEnabled = ko.observable(true);
-this.visible = ko.observable(this.searchIsVisible);
-},
-triggerSearchEvent: function (isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch) {
-var searchValue = this.searchValue();
-if (!this.searched)
-this.element.trigger("onPerformSearch", [searchValue, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch]);
-if (searchValue === "")
-this.searched = false;
-else
-this.searched = true;
-return false;
-},
-findClosestArea: function (searchForward,
-isCaseSensitive,
-searchForSeparateWords,
-treatPhrasesInDoubleQuotesAsExact,
-useAccentInsensitiveSearch,
-pageNumber) {
-var searched = this.searched;
-this.triggerSearchEvent(isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact, useAccentInsensitiveSearch);
-var isCurrentHighlightAreaFound = false;
-var currentlyHighlightedAreaLeft = null, currentlyHighlightedAreaTop = null;
-var currentlyHighlightedAreaHeight = null;
-var currentSearchHighlightClass = "current_search_highlight";
-var highlightGroupName = null;
-var currentHitPageNumber, currentPages, currentPagesStart, currentPagesEnd;
-var startPage, endPage;
-currentPages = this.viewerViewModel.getVisiblePagesNumbers();
-currentPagesStart = currentPages.start - 1;
-currentPagesEnd = currentPages.end - 1;
-if (this.useHtmlBasedEngine) {
-if (this.useVirtualScrolling && this.isWaitingForPageOpening && pageNumber === undefined) {
-return;
-}
-this.isWaitingForPageOpening = false;
-if (this.highlightAreas == null || !this.hitsOnAllPagesAreFound || !searched) {
-this.highlightAreas = this.viewerElement.find(".search_highlight_html");
-this.hitsOnAllPagesAreFound = true;
-endPage = this.viewerViewModel.pageCount();
-for (var pageNum = 0; pageNum < endPage; pageNum++) {
-if (!this.viewerViewModel.isPageVisible(pageNum)) {
-this.hitsOnAllPagesAreFound = false;
-break;
-}
-}
-if (this.hitsOnAllPagesAreFound)
-this.sortHighlightedAreas(this.highlightAreas);
-}
-if (this.useVirtualScrolling && pageNumber !== undefined) {
-this.highlightAreas = this.highlightAreas.filter("[data-page-num=" + pageNumber + "]");
-}
-}
-else {
-if (this.highlightAreas == null || !searched) {
-this.highlightAreas = this.viewerElement.find(".search-pane > .search-highlight");
-this.sortHighlightedAreas(this.highlightAreas);
-}
-}
-var allHighlightedAreas = this.highlightAreas;
-this.currentHighlightArea = this.highlightAreas.filter("." + currentSearchHighlightClass +
-",tspan[class*='" + currentSearchHighlightClass + "']"); // SVG
-var closestArea = null;
-if (this.currentHighlightArea.length > 0) {
-if (this.currentHighlightArea.is("[name*='search_highlight']")) {
-highlightGroupName = this.currentHighlightArea.attr("name");
-this.currentHighlightArea = allHighlightedAreas.filter("[name='" + highlightGroupName + "']");
-this.sortHighlightedAreas(this.currentHighlightArea);
-}
-isCurrentHighlightAreaFound = true;
-currentlyHighlightedAreaLeft = this.currentHighlightArea.offset().left;
-currentlyHighlightedAreaTop = this.currentHighlightArea.offset().top;
-currentlyHighlightedAreaHeight = this.currentHighlightArea.height();
-}
-if (!this.pagesContainerElement)
-this.pagesContainerElement = this.viewerElement.find(".pages_container");
-var pagesContainerTop = this.pagesContainerElement.offset().top;
-var pagesContainerLeft = this.pagesContainerElement.offset().left;
-var scrollTop;
-var visibleScreenTop = this.viewerElement.scrollTop();
-var searchStartData = this.getScrollTop(visibleScreenTop);
-if (!searchStartData.isCurrentlyHighlightedAreaVisible)
-isCurrentHighlightAreaFound = false;
-scrollTop = Math.floor(searchStartData.scrollTop);
-var minDistance = 0, minHorizontalDistance = null;
-var areaTop, areaLeft;
-var areaTopRelativeToBeginning = 0, closestAreaTopRelativeToBeginning = 0;
-var areaLeftRelativeToBeginning = 0;
-this.minAreaTopRelativeToBeginning = null;
-this.maxAreaTopRelativeToBeginning = null;
-this.minAreaLeftRelativeToBeginning = null;
-this.maxAreaLeftRelativeToBeginning = null;
-var minLeft, maxLeft;
-var horizontalDistance;
-var firstArea = true;
-var self = this;
-if (this.useVirtualScrolling && pageNumber !== undefined) {
-this.sortHighlightedAreas(this.highlightAreas);
-if (searchForward)
-closestArea = this.highlightAreas.first();
-else
-closestArea = this.highlightAreas.last();
-closestAreaTopRelativeToBeginning = closestArea.offset().top - pagesContainerTop;
-closestArea = closestArea.get(0);
-}
-else {
-var areaElement;
-this.highlightAreas.each(function (index) {
-if (isCurrentHighlightAreaFound && (!self.useHtmlBasedEngine || self.hitsOnAllPagesAreFound)) {
-if (this === self.currentHighlightArea.get(0)) {
-var nextHitIndex;
-if (searchForward) {
-nextHitIndex = index + 1;
-if (highlightGroupName !== null)
-{
-for (; nextHitIndex < self.highlightAreas.length; nextHitIndex++)
-if (highlightGroupName != $(self.highlightAreas.get(nextHitIndex)).attr("name"))
-break;
-}
-}
-else {
-nextHitIndex = index - 1;
-if (highlightGroupName !== null)
-{
-for (; nextHitIndex >= 0; nextHitIndex--)
-if (highlightGroupName != $(self.highlightAreas.get(nextHitIndex)).attr("name"))
-break;
-}
-}
-if (nextHitIndex >= self.highlightAreas.length) {
-closestArea = self.highlightAreas.slice(index, nextHitIndex);
-}
-else if (nextHitIndex < 0) {
-closestArea = self.highlightAreas.slice(0, index + 1);
-}
-else
-closestArea = self.highlightAreas.get(nextHitIndex);
-areaElement = $(closestArea);
-areaTop = areaElement.offset().top;
-areaTopRelativeToBeginning = Math.floor(areaTop - pagesContainerTop);
-areaLeft = areaElement.offset().left;
-areaLeftRelativeToBeginning = areaLeft - pagesContainerLeft;
-closestAreaTopRelativeToBeginning = areaTopRelativeToBeginning;
-var firstSearchHitOffset = $(self.highlightAreas.get(0)).offset();
-var lastSearchHitOffset = $(self.highlightAreas.get(self.highlightAreas.length - 1)).offset();
-self.minAreaTopRelativeToBeginning = firstSearchHitOffset.top - pagesContainerTop;
-self.maxAreaTopRelativeToBeginning = lastSearchHitOffset.top - pagesContainerTop;
-self.minAreaLeftRelativeToBeginning = firstSearchHitOffset.left - pagesContainerLeft;
-self.maxAreaLeftRelativeToBeginning = lastSearchHitOffset.left - pagesContainerLeft;
-return false;
-}
-else
-return true;
-}
-areaElement = $(this);
-if (self.useHtmlBasedEngine && isCurrentHighlightAreaFound && highlightGroupName == areaElement.attr("name"))
-return;
-areaTop = areaElement.offset().top;
-areaTopRelativeToBeginning = Math.floor(areaTop - pagesContainerTop);
-areaLeft = areaElement.offset().left;
-areaLeftRelativeToBeginning = areaLeft - pagesContainerLeft;
-if (self.minAreaTopRelativeToBeginning == null || (areaTopRelativeToBeginning == self.minAreaTopRelativeToBeginning && areaLeftRelativeToBeginning < self.minAreaLeftRelativeToBeginning))
-self.minAreaLeftRelativeToBeginning = areaLeftRelativeToBeginning;
-if (self.maxAreaTopRelativeToBeginning == null || (areaTopRelativeToBeginning == self.maxAreaTopRelativeToBeginning && areaLeftRelativeToBeginning > self.maxAreaLeftRelativeToBeginning))
-self.maxAreaLeftRelativeToBeginning = areaLeftRelativeToBeginning;
-if (self.minAreaTopRelativeToBeginning == null || areaTopRelativeToBeginning < self.minAreaTopRelativeToBeginning) {
-self.minAreaTopRelativeToBeginning = areaTopRelativeToBeginning;
-self.minAreaLeftRelativeToBeginning = areaLeftRelativeToBeginning;
-}
-if (self.maxAreaTopRelativeToBeginning == null || areaTopRelativeToBeginning > self.maxAreaTopRelativeToBeginning) {
-self.maxAreaTopRelativeToBeginning = areaTopRelativeToBeginning;
-self.maxAreaLeftRelativeToBeginning = areaLeftRelativeToBeginning;
-}
-if (isCurrentHighlightAreaFound) {
-var distanceToCurrentlyHighlighted = Math.abs(areaTopRelativeToBeginning - scrollTop);
-if (distanceToCurrentlyHighlighted < 1) {
-horizontalDistance = Math.abs(areaLeft - currentlyHighlightedAreaLeft);
-if ((horizontalDistance >= 1) &&
-((searchForward && areaLeft > currentlyHighlightedAreaLeft) ||
-(!searchForward && areaLeft < currentlyHighlightedAreaLeft)) &&
-(horizontalDistance < minHorizontalDistance || minHorizontalDistance === null)) {
-closestArea = areaElement;
-minHorizontalDistance = horizontalDistance;
-closestAreaTopRelativeToBeginning = areaTopRelativeToBeginning;
-firstArea = false;
-}
-}
-}
-if (minHorizontalDistance === null &&
-((searchForward && areaTopRelativeToBeginning > scrollTop) ||
-(!searchForward && areaTopRelativeToBeginning < scrollTop))) {
-var distance = Math.abs(areaTopRelativeToBeginning - scrollTop);
-if (distance >= 1) {
-if ((distance < minDistance && minDistance - distance >= 1) || firstArea) {
-closestArea = areaElement;
-minDistance = distance;
-closestAreaTopRelativeToBeginning = areaTopRelativeToBeginning;
-firstArea = false;
-if (searchForward)
-minLeft = areaLeft;
-else
-maxLeft = areaLeft;
-}
-else if (Math.abs(distance - minDistance) < 1) {
-if (searchForward && areaLeft < minLeft) {
-minLeft = areaLeft;
-closestArea = areaElement;
-closestAreaTopRelativeToBeginning = areaTopRelativeToBeginning;
-}
-if (!searchForward && areaLeft > maxLeft) {
-maxLeft = areaLeft;
-closestArea = areaElement;
-closestAreaTopRelativeToBeginning = areaTopRelativeToBeginning;
-}
-}
-}
-}
-});
-}
-var increment, notLoadedPageNum;
-if (this.useHtmlBasedEngine && this.useVirtualScrolling && !closestArea && pageNumber === undefined) { // not started search after scrolling to a page already
-var viewerPages = this.viewerViewModel.pages();
-var pageAreas;
-if (searchForward) {
-startPage = this.viewerViewModel.lastVisiblePageForVirtualMode() + 1;
-increment = 1;
-}
-else {
-startPage = this.viewerViewModel.firstVisiblePageForVirtualMode() - 1;
-increment = -1;
-}
-for (var i = startPage; (searchForward && i < viewerPages.length) || (!searchForward && i >= 0) ; i += increment) {
-var page = viewerPages[i];
-if (page.parsedHtmlElement) {
-pageAreas = page.parsedHtmlElement.find(".search_highlight_html");
-if (pageAreas.length > 0) {
-this.searchPageAfterScrollingToIt = {
-searchForward: searchForward,
-pageNumber: i
-};
-this.viewerViewModel.setPage(i + 1);
-return;
-}
-}
-}
-}
-var newHighlightedAreaFirstWordLeft = null;
-var newHighlightedAreaLastWordLeft = null;
-if (closestArea) { // found a search hit
-var closestAreaJquery = $(closestArea);
-var newHitPageNumber = parseInt(closestAreaJquery.attr(this.pageNumberAttribute));
-endPage = newHitPageNumber;
-if (newHitPageNumber > currentPagesEnd) {
-startPage = currentPagesEnd;
-increment = 1;
-}
-else {
-startPage = currentPagesStart;
-increment = -1;
-}
-var scrollNow = true;
-if (this.useHtmlBasedEngine && newHitPageNumber !== null && !(newHitPageNumber >= currentPagesStart && newHitPageNumber <= currentPagesEnd)) {
-for (notLoadedPageNum = startPage; notLoadedPageNum != endPage; notLoadedPageNum += increment) {
-if (!this.viewerViewModel.isPageVisible(notLoadedPageNum)) {
-// found a search hit outside visible pages
-this.loadPagesOnOneLevel(notLoadedPageNum, searchForward, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact);
-scrollNow = false;
-break;
-}
-}
-}
-if (scrollNow) {
-if (closestAreaJquery.is("[name*='search_highlight']")) {
-highlightGroupName = closestAreaJquery.attr("name");
-closestArea = allHighlightedAreas.filter("[name='" + highlightGroupName + "']");
-}
-else {
-closestArea = closestAreaJquery;
-}
-this.sortHighlightedAreas(closestArea);
-var indexInHighlightGroup = searchForward ? closestArea.length - 1 : 0;
-var newHighlightedAreaTop = $(closestArea[indexInHighlightGroup]).offset().top;
-var newHighlightedAreaTopRelative = newHighlightedAreaTop - pagesContainerTop;
-newHighlightedAreaFirstWordLeft = $(closestArea[0]).offset().left;
-this.newHighlightedAreaFirstWordLeftRelative = newHighlightedAreaFirstWordLeft - pagesContainerLeft;
-newHighlightedAreaLastWordLeft = $(closestArea[closestArea.length - 1]).offset().left;
-this.newHighlightedAreaLastWordLeftRelative = newHighlightedAreaLastWordLeft - pagesContainerLeft;
-scrollTop = newHighlightedAreaTopRelative;
-closestAreaTopRelativeToBeginning = $(closestArea[0]).offset().top - pagesContainerTop;
-this.viewerElement[0].scrollTop = closestAreaTopRelativeToBeginning;
-this.viewerIsScrolled = true;
-this.viewerElement.trigger("ScrollDocView", [null, { target: this.viewerElement[0] }]);
-this.viewerElement.trigger("ScrollDocViewEnd", [null, { target: this.viewerElement[0] }]);
-this.viewerIsScrolled = false;
-pagesContainerTop = this.pagesContainerElement.offset().top;
-var oldClass, newClass;
-if (this.currentHighlightArea.is("tspan")) { // SVG
-oldClass = this.currentHighlightArea.attr("class");
-newClass = oldClass.replace(new RegExp("\\b" + currentSearchHighlightClass + "\\b"), "");
-this.currentHighlightArea.attr("class", newClass);
-}
-else {
-this.currentHighlightArea.removeClass(currentSearchHighlightClass);
-}
-if (closestArea.is("tspan")) { // SVG
-oldClass = closestArea.attr("class");
-closestArea.attr("class", oldClass + " " + currentSearchHighlightClass);
-}
-else {
-closestArea.addClass(currentSearchHighlightClass);
-}
-}
-}
-else {
-if (searchForward) {
-increment = 1;
-startPage = currentPagesEnd;
-endPage = this.viewerViewModel.pageCount();
-}
-else {
-increment = -1;
-startPage = currentPagesStart;
-endPage = -1;
-}
-if (this.useHtmlBasedEngine && !(newHitPageNumber >= currentPagesStart && newHitPageNumber <= currentPagesEnd)) {
-for (notLoadedPageNum = startPage; notLoadedPageNum != endPage; notLoadedPageNum += increment) {
-if (!this.viewerViewModel.isPageVisible(notLoadedPageNum)) {
-this.loadPagesOnOneLevel(notLoadedPageNum, searchForward, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact);
-break;
-}
-}
-}
-}
-this.searchForward = searchForward;
-if (!closestArea && isCurrentHighlightAreaFound)
-closestArea = this.currentHighlightArea;
-this.closestArea = closestArea;
-var previousEnabled = this.isPreviousEnabled(scrollTop);
-this.previousEnabled(previousEnabled);
-var nextEnabled = this.isNextEnabled(scrollTop);
-this.nextEnabled(nextEnabled);
-},
-isPreviousEnabled: function (scrollTop) {
-// HTML engine
-if (this.useHtmlBasedEngine && !this.hitsOnAllPagesAreFound)
-return true;
-var scrollTopWithHighlighted = this.getScrollTop(scrollTop).scrollTop;
-var areaCheck = ((this.minAreaTopRelativeToBeginning != null)
-&& (Math.floor(scrollTopWithHighlighted) > Math.ceil(this.minAreaTopRelativeToBeginning)
-|| (Math.abs(scrollTopWithHighlighted - this.minAreaTopRelativeToBeginning) < 1 && this.newHighlightedAreaFirstWordLeftRelative !== null && this.newHighlightedAreaFirstWordLeftRelative > this.minAreaLeftRelativeToBeginning)));
-return !this.searched || areaCheck;
-},
-isNextEnabled: function (scrollTop) {
-// HTML engine
-if (this.useHtmlBasedEngine && !this.hitsOnAllPagesAreFound)
-return true;
-var scrollTopWithHighlighted = this.getScrollTop(scrollTop).scrollTop;
-var areaCheck = ((this.maxAreaTopRelativeToBeginning != null)
-&& (Math.ceil(scrollTopWithHighlighted) < Math.floor(this.maxAreaTopRelativeToBeginning)
-|| (Math.abs(scrollTopWithHighlighted - this.maxAreaTopRelativeToBeginning) < 1 && this.newHighlightedAreaLastWordLeftRelative !== null && this.newHighlightedAreaLastWordLeftRelative < this.maxAreaLeftRelativeToBeginning)));
-return !this.searched || areaCheck;
-},
-findPreviousFromUI: function () {
-this.findPrevious(this.isCaseSensitive, this.searchForSeparateWords, this.treatPhrasesInDoubleQuotesAsExactPhrases, this.useAccentInsensitiveSearch);
-},
-findNextFromUI: function () {
-this.findNext(this.isCaseSensitive, this.searchForSeparateWords, this.treatPhrasesInDoubleQuotesAsExactPhrases, this.useAccentInsensitiveSearch);
-},
-findPrevious: function (isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExactPhrases, useAccentInsensitiveSearch) {
-if (this.searchValue() != "")
-this.findClosestArea(false, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExactPhrases, useAccentInsensitiveSearch);
-},
-findNext: function (isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExactPhrases, useAccentInsensitiveSearch) {
-if (this.searchValue() != "")
-this.findClosestArea(true, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExactPhrases, useAccentInsensitiveSearch);
-},
-clearValue: function () {
-this.searchValue("");
-this.resetButtons();
-this.triggerSearchEvent();
-},
-resetButtons: function () {
-this.previousEnabled(true);
-this.nextEnabled(true);
-this.searched = false;
-this.highlightAreas = null;
-},
-keyDown: function (viewModel, event) {
-if (event.keyCode == 8 || event.keyCode == 46) { // Backspace, Delete
-viewModel.keyHandler(event.keyCode);
-}
-return true;
-},
-keyPressed: function (viewModel, event) {
-var keyCode = (event.which ? event.which : event.keyCode);
-return viewModel.keyHandler(keyCode);
-},
-keyHandler: function (keyCode) {
-if (keyCode === 13) { // Enter
-this.findNextFromUI();
-return false;
-}
-this.previousEnabled(true);
-this.nextEnabled(true);
-this.searched = false;
-return true;
-},
-scrollPositionChanged: function (scrollTop) {
-if (this.searched && !this.viewerIsScrolled) {
-this.previousEnabled(this.isPreviousEnabled(scrollTop));
-this.nextEnabled(this.isNextEnabled(scrollTop));
-}
-},
-showControls: function () {
-this.visible(this.searchIsVisible);
-},
-hideControls: function () {
-this.visible(false);
-},
-documentLoaded: function () {
-this.resetButtons();
-if (this.searched)
-this.element.trigger("onPerformSearch", "");
-},
-loadPagesOnOneLevel: function (notLoadedPageNum, searchForward, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact) {
-var self = this;
-var pagesToLoad = [];
-var pageLocations = this.viewerViewModel.getPageLocations();
-var pageWidth = this.viewerViewModel.pageWidth();
-var viewerViewModelPages = this.viewerViewModel.pages();
-var pageBottom = pageLocations[notLoadedPageNum].y + pageWidth * viewerViewModelPages[notLoadedPageNum].prop;
-var i;
-for (i = notLoadedPageNum + 1; i < pageLocations.length; i++) {
-if (Math.abs(pageLocations[i].y + pageWidth * viewerViewModelPages[i].prop - pageBottom) < 2)
-pagesToLoad.push(i);
-else
-break;
-}
-for (i = notLoadedPageNum - 1; i >= 0; i--) {
-if (Math.abs(pageLocations[i].y + pageWidth * viewerViewModelPages[i].prop - pageBottom) < 2)
-pagesToLoad.push(i);
-else
-break;
-}
-function loadPages() {
-if (pagesToLoad.length == 0)
-self.findClosestArea(searchForward, isCaseSensitive, searchForSeparateWords, treatPhrasesInDoubleQuotesAsExact);
-else
-self.viewerViewModel.getDocumentPageHtml(pagesToLoad.pop(), loadPages);
-}
-this.viewerViewModel.getDocumentPageHtml(notLoadedPageNum, loadPages);
-},
-getScrollTop: function (scrollTop) {
-var isCurrentHighlightAreaFound = (this.closestArea != null);
-var currentlyHighlightedAreaTop, currentlyHighlightedAreaBottom;
-var currentlyHighlightedAreaHeight;
-if (!this.pagesContainerElement)
-this.pagesContainerElement = this.viewerElement.find(".pages_container");
-var pagesContainerTop = this.pagesContainerElement.offset().top;
-var viewerElementHeight = this.viewerElement.height();
-var visibleScreenTop = scrollTop;
-var visibleScreenBottom = scrollTop + viewerElementHeight;
-var currentlyHighlightedAreaTopRelative;
-var isCurrentlyHighlightedAreaVisible = false;
-if (isCurrentHighlightAreaFound) {
-currentlyHighlightedAreaTop = null;
-currentlyHighlightedAreaBottom = null;
-this.closestArea.each(function () {
-var jqueryAreaFromGroup = $(this);
-var currentAreaTop = jqueryAreaFromGroup.offset().top;
-if (currentlyHighlightedAreaTop === null || currentAreaTop < currentlyHighlightedAreaTop)
-currentlyHighlightedAreaTop = currentAreaTop;
-var dimensions = this.getBoundingClientRect();
-var screenHeight;
-if (typeof dimensions.height == "undefined") // IE8
-screenHeight = dimensions.bottom - dimensions.top;
-else
-screenHeight = dimensions.height;
-var currentAreaBottom = currentAreaTop + screenHeight;
-if (currentlyHighlightedAreaBottom === null || currentAreaBottom > currentlyHighlightedAreaBottom)
-currentlyHighlightedAreaBottom = currentAreaBottom;
-});
-currentlyHighlightedAreaHeight = currentlyHighlightedAreaBottom - currentlyHighlightedAreaTop;
-currentlyHighlightedAreaTopRelative = currentlyHighlightedAreaTop - pagesContainerTop;
-if (Math.ceil(currentlyHighlightedAreaTopRelative) + currentlyHighlightedAreaHeight >= visibleScreenTop &&
-Math.floor(currentlyHighlightedAreaTopRelative) <= visibleScreenBottom) {
-scrollTop = currentlyHighlightedAreaTopRelative;
-isCurrentlyHighlightedAreaVisible = true;
-}
-}
-return { scrollTop: scrollTop, isCurrentlyHighlightedAreaVisible: isCurrentlyHighlightedAreaVisible };
-},
-documentPageSetHandler: function () {
-if (this.useVirtualScrolling && this.searchPageAfterScrollingToIt) {
-var self = this;
-var searchForward = this.searchPageAfterScrollingToIt.searchForward;
-var pageNumber = this.searchPageAfterScrollingToIt.pageNumber;
-this.searchPageAfterScrollingToIt = null;
-this.isWaitingForPageOpening = true;
-window.setTimeout(function () {
-self.findClosestArea(searchForward,
-self.isCaseSensitive,
-self.searchForSeparateWords,
-self.treatPhrasesInDoubleQuotesAsExactPhrases,
-self.useAccentInsensitiveSearch,
-pageNumber);
-}, 1000);
-}
-else {
-if (!this.pagesContainerElement)
-this.pagesContainerElement = this.viewerElement.find(".pages_container");
-var visibleScreenTop = this.viewerElement.scrollTop();
-this.scrollPositionChanged(visibleScreenTop);
-}
-},
-sortHighlightedAreas: function (areas) {
-areas.sort(function (areaElement1, areaElement2) {
-var jqueryAreaElement2 = $(areaElement2), jqueryAreaElement1 = $(areaElement1);
-var verticalDifference = Math.floor(jqueryAreaElement1.offset().top) - Math.floor(jqueryAreaElement2.offset().top);
-if (Math.abs(verticalDifference) >= 1)
-return verticalDifference;
-else
-return jqueryAreaElement1.offset().left - jqueryAreaElement2.offset().left;
-});
-}
-});
-})(jQuery);
-/*
-* jQuery File Download Plugin v1.4.2
-*
-* http://www.johnculviner.com
-*
-* Copyright (c) 2013 - John Culviner
-*
-* Licensed under the MIT license:
-* http://www.opensource.org/licenses/mit-license.php
-*/
-(function($, window){
-// i'll just put them here to get evaluated on script load
-var htmlSpecialCharsRegEx = /[<>&\r\n"']/gm;
-var htmlSpecialCharsPlaceHolders = {
-'<': 'lt;',
-'>': 'gt;',
-'&': 'amp;',
-'\r': "#13;",
-'\n': "#10;",
-'"': 'quot;',
-"'": 'apos;' /*single quotes just to be safe*/
-};
-$.extend({
-//
-//$.fileDownload('/path/to/url/', options)
-// see directly below for possible 'options'
-fileDownload: function (fileUrl, options) {
-//provide some reasonable defaults to any unspecified options below
-var settings = $.extend({
-//
-//Requires jQuery UI: provide a message to display to the user when the file download is being prepared before the browser's dialog appears
-//
-preparingMessageHtml: null,
-//
-//Requires jQuery UI: provide a message to display to the user when a file download fails
-//
-failMessageHtml: null,
-//
-//the stock android browser straight up doesn't support file downloads initiated by a non GET: http://code.google.com/p/android/issues/detail?id=1780
-//specify a message here to display if a user tries with an android browser
-//if jQuery UI is installed this will be a dialog, otherwise it will be an alert
-//
-androidPostUnsupportedMessageHtml: "Unfortunately your Android browser doesn't support this type of file download. Please try again with a different browser.",
-//
-//Requires jQuery UI: options to pass into jQuery UI Dialog
-//
-dialogOptions: { modal: true },
-//
-//a function to call while the dowload is being prepared before the browser's dialog appears
-//Args:
-// url - the original url attempted
-//
-prepareCallback: function (url) { },
-//
-//a function to call after a file download dialog/ribbon has appeared
-//Args:
-// url - the original url attempted
-//
-successCallback: function (url) { },
-//
-//a function to call after a file download dialog/ribbon has appeared
-//Args:
-// responseHtml - the html that came back in response to the file download. this won't necessarily come back depending on the browser.
-// in less than IE9 a cross domain error occurs because 500+ errors cause a cross domain issue due to IE subbing out the
-// server's error message with a "helpful" IE built in message
-// url - the original url attempted
-//
-failCallback: function (responseHtml, url) { },
-//
-// the HTTP method to use. Defaults to "GET".
-//
-httpMethod: "GET",
-//
-// if specified will perform a "httpMethod" request to the specified 'fileUrl' using the specified data.
-// data must be an object (which will be $.param serialized) or already a key=value param string
-//
-data: null,
-//
-//a period in milliseconds to poll to determine if a successful file download has occured or not
-//
-checkInterval: 100,
-//
-//the cookie name to indicate if a file download has occured
-//
-cookieName: "fileDownload",
-//
-//the cookie value for the above name to indicate that a file download has occured
-//
-cookieValue: "true",
-//
-//the cookie path for above name value pair
-//
-cookiePath: "/",
-//
-//the title for the popup second window as a download is processing in the case of a mobile browser
-//
-popupWindowTitle: "Initiating file download...",
-//
-//Functionality to encode HTML entities for a POST, need this if data is an object with properties whose values contains strings with quotation marks.
-//HTML entity encoding is done by replacing all &,<,>,',",\r,\n characters.
-//Note that some browsers will POST the string htmlentity-encoded whilst others will decode it before POSTing.
-//It is recommended that on the server, htmlentity decoding is done irrespective.
-//
-encodeHTMLEntities: true,
-containerElement: $("body")
-}, options);
-var deferred = new $.Deferred();
-//Setup mobile browser detection: Partial credit: http://detectmobilebrowser.com/
-var userAgent = (navigator.userAgent || navigator.vendor || window.opera).toLowerCase();
-var isIos; //has full support of features in iOS 4.0+, uses a new window to accomplish this.
-var isAndroid; //has full support of GET features in 4.0+ by using a new window. Non-GET is completely unsupported by the browser. See above for specifying a message.
-var isOtherMobileBrowser; //there is no way to reliably guess here so all other mobile devices will GET and POST to the current window.
-if (/ip(ad|hone|od)/.test(userAgent)) {
-isIos = true;
-} else if (userAgent.indexOf('android') !== -1) {
-isAndroid = true;
-} else {
-isOtherMobileBrowser = /avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|playbook|silk|iemobile|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(userAgent.substr(0, 4));
-}
-var httpMethodUpper = settings.httpMethod.toUpperCase();
-if (isAndroid && httpMethodUpper !== "GET") {
-//the stock android browser straight up doesn't support file downloads initiated by non GET requests: http://code.google.com/p/android/issues/detail?id=1780
-if ($().dialog) {
-$("
").html(settings.androidPostUnsupportedMessageHtml).dialog(settings.dialogOptions);
-} else {
-alert(settings.androidPostUnsupportedMessageHtml);
-}
-return deferred.reject();
-}
-var $preparingDialog = null;
-var internalCallbacks = {
-onPrepare: function (url) {
-//wire up a jquery dialog to display the preparing message if specified
-if (settings.preparingMessageHtml) {
-$preparingDialog = $("
").html(settings.preparingMessageHtml).dialog(settings.dialogOptions);
-} else if (settings.prepareCallback) {
-settings.prepareCallback(url);
-}
-},
-onSuccess: function (url) {
-//remove the perparing message if it was specified
-if ($preparingDialog) {
-$preparingDialog.dialog('close');
-};
-settings.successCallback(url);
-deferred.resolve(url);
-},
-onFail: function (responseHtml, url) {
-//remove the perparing message if it was specified
-if ($preparingDialog) {
-$preparingDialog.dialog('close');
-};
-//wire up a jquery dialog to display the fail message if specified
-if (settings.failMessageHtml) {
-$("
").html(settings.failMessageHtml).dialog(settings.dialogOptions);
-}
-settings.failCallback(responseHtml, url);
-deferred.reject(responseHtml, url);
-}
-};
-internalCallbacks.onPrepare(fileUrl);
-//make settings.data a param string if it exists and isn't already
-if (settings.data !== null && typeof settings.data !== "string") {
-settings.data = $.param(settings.data);
-}
-var $iframe,
-downloadWindow,
-formDoc,
-$form;
-if (httpMethodUpper === "GET") {
-if (settings.data !== null) {
-//need to merge any fileUrl params with the data object
-var qsStart = fileUrl.indexOf('?');
-if (qsStart !== -1) {
-//we have a querystring in the url
-if (fileUrl.substring(fileUrl.length - 1) !== "&") {
-fileUrl = fileUrl + "&";
-}
-} else {
-fileUrl = fileUrl + "?";
-}
-fileUrl = fileUrl + settings.data;
-}
-if (isIos || isAndroid) {
-downloadWindow = window.open(fileUrl);
-downloadWindow.document.title = settings.popupWindowTitle;
-window.focus();
-} else if (isOtherMobileBrowser) {
-window.location(fileUrl);
-} else {
-$iframe = settings.containerElement.find("iframe[name='jqueryFileDownloadJS']");
-if ($iframe.length != 0) {
-$iframe.remove();
-}
-//create a temporary iframe that is used to request the fileUrl as a GET request
-$iframe = $("