|
|
Line 1: |
Line 1: |
| + | {{jQuery}} |
| {{Top}} | | {{Top}} |
| {{Stylesheet}} | | {{Stylesheet}} |
Line 7: |
Line 8: |
| <link rel="stylesheet" type="text/css" href="highslide/highslide.css" /> | | <link rel="stylesheet" type="text/css" href="highslide/highslide.css" /> |
| | | |
- | <!-- Highslide CSS --><style type="text/css">
| |
- | /**
| |
- | * @file: highslide.css
| |
- | * @version: 4.1.13
| |
- | */
| |
- | .highslide-container div {
| |
- | font-family: Verdana, Helvetica;
| |
- | font-size: 10pt;
| |
- | }
| |
- | .highslide-container table {
| |
- | background: none;
| |
- | table-layout: auto;
| |
- | }
| |
- | .highslide {
| |
- | outline: none;
| |
- | text-decoration: none;
| |
- | }
| |
- | .highslide img {
| |
- | border: 2px solid silver;
| |
- | }
| |
- | .highslide:hover img {
| |
- | border-color: gray;
| |
- | }
| |
- | .highslide-active-anchor img {
| |
- | visibility: hidden;
| |
- | }
| |
- | .highslide-gallery .highslide-active-anchor img {
| |
- | border-color: black;
| |
- | visibility: visible;
| |
- | cursor: default;
| |
- | }
| |
- | .highslide-image {
| |
- | border-width: 2px;
| |
- | border-style: solid;
| |
- | border-color: white;
| |
- | }
| |
- | .highslide-wrapper, .highslide-outline {
| |
- | background: white;
| |
- | }
| |
- | .glossy-dark {
| |
- | background: #111;
| |
- | }
| |
- |
| |
- | .highslide-image-blur {
| |
- | }
| |
- | .highslide-number {
| |
- | font-weight: bold;
| |
- | color: gray;
| |
- | font-size: .9em;
| |
- | }
| |
- | .highslide-caption {
| |
- | display: none;
| |
- | font-size: 1em;
| |
- | padding: 5px;
| |
- | /*background: white;*/
| |
- | }
| |
- | .highslide-heading {
| |
- | display: none;
| |
- | font-weight: bold;
| |
- | margin: 0.4em;
| |
- | }
| |
- | .highslide-dimming {
| |
- | /*position: absolute;*/
| |
- | background: black;
| |
- | }
| |
- | a.highslide-full-expand {
| |
- | background: url(graphics/fullexpand.gif) no-repeat;
| |
- | display: block;
| |
- | margin: 0 10px 10px 0;
| |
- | width: 34px;
| |
- | height: 34px;
| |
- | }
| |
- | .highslide-loading {
| |
- | display: block;
| |
- | color: black;
| |
- | font-size: 9px;
| |
- | font-weight: bold;
| |
- | text-transform: uppercase;
| |
- | text-decoration: none;
| |
- | padding: 3px;
| |
- | border: 1px solid white;
| |
- | background-color: white;
| |
- | padding-left: 22px;
| |
- | background-image: url(graphics/loader.white.gif);
| |
- | background-repeat: no-repeat;
| |
- | background-position: 3px 1px;
| |
- | }
| |
- | a.highslide-credits,
| |
- | a.highslide-credits i {
| |
- | padding: 2px;
| |
- | color: silver;
| |
- | text-decoration: none;
| |
- | font-size: 10px;
| |
- | }
| |
- | a.highslide-credits:hover,
| |
- | a.highslide-credits:hover i {
| |
- | color: white;
| |
- | background-color: gray;
| |
- | }
| |
- | .highslide-move, .highslide-move * {
| |
- | cursor: move;
| |
- | }
| |
- |
| |
- | .highslide-viewport {
| |
- | display: none;
| |
- | position: fixed;
| |
- | width: 100%;
| |
- | height: 100%;
| |
- | z-index: 1;
| |
- | background: none;
| |
- | left: 0;
| |
- | top: 0;
| |
- | }
| |
- | .highslide-overlay {
| |
- | display: none;
| |
- | }
| |
- | .hidden-container {
| |
- | display: none;
| |
- | }
| |
- | /* Example of a semitransparent, offset closebutton */
| |
- | .closebutton {
| |
- | position: relative;
| |
- | top: -15px;
| |
- | left: 15px;
| |
- | width: 30px;
| |
- | height: 30px;
| |
- | cursor: pointer;
| |
- | background: url(graphics/close.png);
| |
- | /* NOTE! For IE6, you also need to update the highslide-ie6.css file. */
| |
- | }
| |
- |
| |
- | /*****************************************************************************/
| |
- | /* Thumbnail boxes for the galleries. */
| |
- | /* Remove these if you are not using a gallery. */
| |
- | /*****************************************************************************/
| |
- | .highslide-gallery ul {
| |
- | list-style-type: none;
| |
- | margin: 0;
| |
- | padding: 0;
| |
- | }
| |
- | .highslide-gallery ul li {
| |
- | display: block;
| |
- | position: relative;
| |
- | float: left;
| |
- | width: 106px;
| |
- | height: 106px;
| |
- | border: 1px solid silver;
| |
- | background: #ededed;
| |
- | margin: 2px;
| |
- | padding: 0;
| |
- | line-height: 0;
| |
- | overflow: hidden;
| |
- | }
| |
- | .highslide-gallery ul a {
| |
- | position: absolute;
| |
- | top: 50%;
| |
- | left: 50%;
| |
- | }
| |
- | .highslide-gallery ul img {
| |
- | position: relative;
| |
- | top: -50%;
| |
- | left: -50%;
| |
- | }
| |
- | html>/**/body .highslide-gallery ul li {
| |
- | display: table;
| |
- | text-align: center;
| |
- | }
| |
- | html>/**/body .highslide-gallery ul li {
| |
- | text-align: center;
| |
- | }
| |
- | html>/**/body .highslide-gallery ul a {
| |
- | position: static;
| |
- | display: table-cell;
| |
- | vertical-align: middle;
| |
- | }
| |
- | html>/**/body .highslide-gallery ul img {
| |
- | position: static;
| |
- | }
| |
- |
| |
- | /*****************************************************************************/
| |
- | /* Controls for the galleries. */
| |
- | /* Remove these if you are not using a gallery */
| |
- | /*****************************************************************************/
| |
- | .highslide-controls {
| |
- | width: 195px;
| |
- | height: 40px;
| |
- | background: url(graphics/controlbar-white.gif) 0 -90px no-repeat;
| |
- | margin: 20px 15px 10px 0;
| |
- | }
| |
- | .highslide-controls ul {
| |
- | position: relative;
| |
- | left: 15px;
| |
- | height: 40px;
| |
- | list-style: none;
| |
- | margin: 0;
| |
- | padding: 0;
| |
- | background: url(graphics/controlbar-white.gif) right -90px no-repeat;
| |
- |
| |
- | }
| |
- | .highslide-controls li {
| |
- | float: left;
| |
- | padding: 5px 0;
| |
- | margin:0;
| |
- | list-style: none;
| |
- | }
| |
- | .highslide-controls a {
| |
- | background-image: url(graphics/controlbar-white.gif);
| |
- | display: block;
| |
- | float: left;
| |
- | height: 30px;
| |
- | width: 30px;
| |
- | outline: none;
| |
- | }
| |
- | .highslide-controls a.disabled {
| |
- | cursor: default;
| |
- | }
| |
- | .highslide-controls a.disabled span {
| |
- | cursor: default;
| |
- | }
| |
- | .highslide-controls a span {
| |
- | /* hide the text for these graphic buttons */
| |
- | display: none;
| |
- | cursor: pointer;
| |
- | }
| |
- |
| |
- |
| |
- | /* The CSS sprites for the controlbar - see http://www.google.com/search?q=css+sprites */
| |
- | .highslide-controls .highslide-previous a {
| |
- | background-position: 0 0;
| |
- | }
| |
- | .highslide-controls .highslide-previous a:hover {
| |
- | background-position: 0 -30px;
| |
- | }
| |
- | .highslide-controls .highslide-previous a.disabled {
| |
- | background-position: 0 -60px !important;
| |
- | }
| |
- | .highslide-controls .highslide-play a {
| |
- | background-position: -30px 0;
| |
- | }
| |
- | .highslide-controls .highslide-play a:hover {
| |
- | background-position: -30px -30px;
| |
- | }
| |
- | .highslide-controls .highslide-play a.disabled {
| |
- | background-position: -30px -60px !important;
| |
- | }
| |
- | .highslide-controls .highslide-pause a {
| |
- | background-position: -60px 0;
| |
- | }
| |
- | .highslide-controls .highslide-pause a:hover {
| |
- | background-position: -60px -30px;
| |
- | }
| |
- | .highslide-controls .highslide-next a {
| |
- | background-position: -90px 0;
| |
- | }
| |
- | .highslide-controls .highslide-next a:hover {
| |
- | background-position: -90px -30px;
| |
- | }
| |
- | .highslide-controls .highslide-next a.disabled {
| |
- | background-position: -90px -60px !important;
| |
- | }
| |
- | .highslide-controls .highslide-move a {
| |
- | background-position: -120px 0;
| |
- | }
| |
- | .highslide-controls .highslide-move a:hover {
| |
- | background-position: -120px -30px;
| |
- | }
| |
- | .highslide-controls .highslide-full-expand a {
| |
- | background-position: -150px 0;
| |
- | }
| |
- | .highslide-controls .highslide-full-expand a:hover {
| |
- | background-position: -150px -30px;
| |
- | }
| |
- | .highslide-controls .highslide-full-expand a.disabled {
| |
- | background-position: -150px -60px !important;
| |
- | }
| |
- | .highslide-controls .highslide-close a {
| |
- | background-position: -180px 0;
| |
- | }
| |
- | .highslide-controls .highslide-close a:hover {
| |
- | background-position: -180px -30px;
| |
- | }
| |
- |
| |
- | /*****************************************************************************/
| |
- | /* Styles for the HTML popups */
| |
- | /* Remove these if you are not using Highslide HTML */
| |
- | /*****************************************************************************/
| |
- | .highslide-maincontent {
| |
- | display: none;
| |
- | }
| |
- | .highslide-html {
| |
- | background-color: white;
| |
- | }
| |
- | .mobile .highslide-html {
| |
- | border: 1px solid silver;
| |
- | }
| |
- | .highslide-html-content {
| |
- | display: none;
| |
- | width: 400px;
| |
- | padding: 0 5px 5px 5px;
| |
- | }
| |
- | .highslide-header {
| |
- | padding-bottom: 5px;
| |
- | }
| |
- | .highslide-header ul {
| |
- | margin: 0;
| |
- | padding: 0;
| |
- | text-align: right;
| |
- | }
| |
- | .highslide-header ul li {
| |
- | display: inline;
| |
- | padding-left: 1em;
| |
- | }
| |
- | .highslide-header ul li.highslide-previous, .highslide-header ul li.highslide-next {
| |
- | display: none;
| |
- | }
| |
- | .highslide-header a {
| |
- | font-weight: bold;
| |
- | color: gray;
| |
- | text-transform: uppercase;
| |
- | text-decoration: none;
| |
- | }
| |
- | .highslide-header a:hover {
| |
- | color: black;
| |
- | }
| |
- | .highslide-header .highslide-move a {
| |
- | cursor: move;
| |
- | }
| |
- | .highslide-footer {
| |
- | height: 16px;
| |
- | }
| |
- | .highslide-footer .highslide-resize {
| |
- | display: block;
| |
- | float: right;
| |
- | margin-top: 5px;
| |
- | height: 11px;
| |
- | width: 11px;
| |
- | background: url(graphics/resize.gif) no-repeat;
| |
- | }
| |
- | .highslide-footer .highslide-resize span {
| |
- | display: none;
| |
- | }
| |
- | .highslide-body {
| |
- | }
| |
- | .highslide-resize {
| |
- | cursor: nw-resize;
| |
- | }
| |
- |
| |
- | /*****************************************************************************/
| |
- | /* Styles for the Individual wrapper class names. */
| |
- | /* See www.highslide.com/ref/hs.wrapperClassName */
| |
- | /* You can safely remove the class name themes you don't use */
| |
- | /*****************************************************************************/
| |
- |
| |
- | /* hs.wrapperClassName = 'draggable-header' */
| |
- | .draggable-header .highslide-header {
| |
- | height: 18px;
| |
- | border-bottom: 1px solid #dddddd;
| |
- | }
| |
- | .draggable-header .highslide-heading {
| |
- | position: absolute;
| |
- | margin: 2px 0.4em;
| |
- | }
| |
- |
| |
- | .draggable-header .highslide-header .highslide-move {
| |
- | cursor: move;
| |
- | display: block;
| |
- | height: 16px;
| |
- | position: absolute;
| |
- | right: 24px;
| |
- | top: 0;
| |
- | width: 100%;
| |
- | z-index: 1;
| |
- | }
| |
- | .draggable-header .highslide-header .highslide-move * {
| |
- | display: none;
| |
- | }
| |
- | .draggable-header .highslide-header .highslide-close {
| |
- | position: absolute;
| |
- | right: 2px;
| |
- | top: 2px;
| |
- | z-index: 5;
| |
- | padding: 0;
| |
- | }
| |
- | .draggable-header .highslide-header .highslide-close a {
| |
- | display: block;
| |
- | height: 16px;
| |
- | width: 16px;
| |
- | background-image: url(graphics/closeX.png);
| |
- | }
| |
- | .draggable-header .highslide-header .highslide-close a:hover {
| |
- | background-position: 0 16px;
| |
- | }
| |
- | .draggable-header .highslide-header .highslide-close span {
| |
- | display: none;
| |
- | }
| |
- | .draggable-header .highslide-maincontent {
| |
- | padding-top: 1em;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'titlebar' */
| |
- | .titlebar .highslide-header {
| |
- | height: 18px;
| |
- | border-bottom: 1px solid #dddddd;
| |
- | }
| |
- | .titlebar .highslide-heading {
| |
- | position: absolute;
| |
- | width: 90%;
| |
- | margin: 1px 0 1px 5px;
| |
- | color: #666666;
| |
- | }
| |
- |
| |
- | .titlebar .highslide-header .highslide-move {
| |
- | cursor: move;
| |
- | display: block;
| |
- | height: 16px;
| |
- | position: absolute;
| |
- | right: 24px;
| |
- | top: 0;
| |
- | width: 100%;
| |
- | z-index: 1;
| |
- | }
| |
- | .titlebar .highslide-header .highslide-move * {
| |
- | display: none;
| |
- | }
| |
- | .titlebar .highslide-header li {
| |
- | position: relative;
| |
- | top: 3px;
| |
- | z-index: 2;
| |
- | padding: 0 0 0 1em;
| |
- | }
| |
- | .titlebar .highslide-maincontent {
| |
- | padding-top: 1em;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'no-footer' */
| |
- | .no-footer .highslide-footer {
| |
- | display: none;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'wide-border' */
| |
- | .wide-border {
| |
- | background: white;
| |
- | }
| |
- | .wide-border .highslide-image {
| |
- | border-width: 10px;
| |
- | }
| |
- | .wide-border .highslide-caption {
| |
- | padding: 0 10px 10px 10px;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'borderless' */
| |
- | .borderless .highslide-image {
| |
- | border: none;
| |
- | }
| |
- | .borderless .highslide-caption {
| |
- | border-bottom: 1px solid white;
| |
- | border-top: 1px solid white;
| |
- | background: silver;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'outer-glow' */
| |
- | .outer-glow {
| |
- | background: #444;
| |
- | }
| |
- | .outer-glow .highslide-image {
| |
- | border: 5px solid #444444;
| |
- | }
| |
- | .outer-glow .highslide-caption {
| |
- | border: 5px solid #444444;
| |
- | border-top: none;
| |
- | padding: 5px;
| |
- | background-color: gray;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'colored-border' */
| |
- | .colored-border {
| |
- | background: white;
| |
- | }
| |
- | .colored-border .highslide-image {
| |
- | border: 2px solid green;
| |
- | }
| |
- | .colored-border .highslide-caption {
| |
- | border: 2px solid green;
| |
- | border-top: none;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'dark' */
| |
- | .dark {
| |
- | background: #111;
| |
- | }
| |
- | .dark .highslide-image {
| |
- | border-color: black black #202020 black;
| |
- | background: gray;
| |
- | }
| |
- | .dark .highslide-caption {
| |
- | color: white;
| |
- | background: #111;
| |
- | }
| |
- | .dark .highslide-controls,
| |
- | .dark .highslide-controls ul,
| |
- | .dark .highslide-controls a {
| |
- | background-image: url(graphics/controlbar-black-border.gif);
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'floating-caption' */
| |
- | .floating-caption .highslide-caption {
| |
- | position: absolute;
| |
- | padding: 1em 0 0 0;
| |
- | background: none;
| |
- | color: white;
| |
- | border: none;
| |
- | font-weight: bold;
| |
- | }
| |
- |
| |
- | /* hs.wrapperClassName = 'controls-in-heading' */
| |
- | .controls-in-heading .highslide-heading {
| |
- | color: gray;
| |
- | font-weight: bold;
| |
- | height: 20px;
| |
- | overflow: hidden;
| |
- | cursor: default;
| |
- | padding: 0 0 0 22px;
| |
- | margin: 0;
| |
- | background: url(graphics/icon.gif) no-repeat 0 1px;
| |
- | }
| |
- | .controls-in-heading .highslide-controls {
| |
- | width: 105px;
| |
- | height: 20px;
| |
- | position: relative;
| |
- | margin: 0;
| |
- | top: -23px;
| |
- | left: 7px;
| |
- | background: none;
| |
- | }
| |
- | .controls-in-heading .highslide-controls ul {
| |
- | position: static;
| |
- | height: 20px;
| |
- | background: none;
| |
- | }
| |
- | .controls-in-heading .highslide-controls li {
| |
- | padding: 0;
| |
- | }
| |
- | .controls-in-heading .highslide-controls a {
| |
- | background-image: url(graphics/controlbar-white-small.gif);
| |
- | height: 20px;
| |
- | width: 20px;
| |
- | }
| |
- |
| |
- | .controls-in-heading .highslide-controls .highslide-move {
| |
- | display: none;
| |
- | }
| |
- |
| |
- | .controls-in-heading .highslide-controls .highslide-previous a {
| |
- | background-position: 0 0;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-previous a:hover {
| |
- | background-position: 0 -20px;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-previous a.disabled {
| |
- | background-position: 0 -40px !important;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-play a {
| |
- | background-position: -20px 0;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-play a:hover {
| |
- | background-position: -20px -20px;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-play a.disabled {
| |
- | background-position: -20px -40px !important;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-pause a {
| |
- | background-position: -40px 0;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-pause a:hover {
| |
- | background-position: -40px -20px;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-next a {
| |
- | background-position: -60px 0;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-next a:hover {
| |
- | background-position: -60px -20px;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-next a.disabled {
| |
- | background-position: -60px -40px !important;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-full-expand a {
| |
- | background-position: -100px 0;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-full-expand a:hover {
| |
- | background-position: -100px -20px;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-full-expand a.disabled {
| |
- | background-position: -100px -40px !important;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-close a {
| |
- | background-position: -120px 0;
| |
- | }
| |
- | .controls-in-heading .highslide-controls .highslide-close a:hover {
| |
- | background-position: -120px -20px;
| |
- | }
| |
- |
| |
- | /*****************************************************************************/
| |
- | /* Styles for text based controls. */
| |
- | /* You can safely remove this if you don't use text based controls */
| |
- | /*****************************************************************************/
| |
- |
| |
- | .text-controls .highslide-controls {
| |
- | width: auto;
| |
- | height: auto;
| |
- | margin: 0;
| |
- | text-align: center;
| |
- | background: none;
| |
- | }
| |
- | .text-controls ul {
| |
- | position: static;
| |
- | background: none;
| |
- | height: auto;
| |
- | left: 0;
| |
- | }
| |
- | .text-controls .highslide-move {
| |
- | display: none;
| |
- | }
| |
- | .text-controls li {
| |
- | background-image: url(graphics/controlbar-text-buttons.png);
| |
- | background-position: right top !important;
| |
- | padding: 0;
| |
- | margin-left: 15px;
| |
- | display: block;
| |
- | width: auto;
| |
- | }
| |
- | .text-controls a {
| |
- | background: url(graphics/controlbar-text-buttons.png) no-repeat;
| |
- | background-position: left top !important;
| |
- | position: relative;
| |
- | left: -10px;
| |
- | display: block;
| |
- | width: auto;
| |
- | height: auto;
| |
- | text-decoration: none !important;
| |
- | }
| |
- | .text-controls a span {
| |
- | background: url(graphics/controlbar-text-buttons.png) no-repeat;
| |
- | margin: 1px 2px 1px 10px;
| |
- | display: block;
| |
- | min-width: 4em;
| |
- | height: 18px;
| |
- | line-height: 18px;
| |
- | padding: 1px 0 1px 18px;
| |
- | color: #333;
| |
- | font-family: "Trebuchet MS", Arial, sans-serif;
| |
- | font-size: 12px;
| |
- | font-weight: bold;
| |
- | white-space: nowrap;
| |
- | }
| |
- | .text-controls .highslide-next {
| |
- | margin-right: 1em;
| |
- | }
| |
- | .text-controls .highslide-full-expand a span {
| |
- | min-width: 0;
| |
- | margin: 1px 0;
| |
- | padding: 1px 0 1px 10px;
| |
- | }
| |
- | .text-controls .highslide-close a span {
| |
- | min-width: 0;
| |
- | }
| |
- | .text-controls a:hover span {
| |
- | color: black;
| |
- | }
| |
- | .text-controls a.disabled span {
| |
- | color: #999;
| |
- | }
| |
- |
| |
- | .text-controls .highslide-previous span {
| |
- | background-position: 0 -40px;
| |
- | }
| |
- | .text-controls .highslide-previous a.disabled {
| |
- | background-position: left top !important;
| |
- | }
| |
- | .text-controls .highslide-previous a.disabled span {
| |
- | background-position: 0 -140px;
| |
- | }
| |
- | .text-controls .highslide-play span {
| |
- | background-position: 0 -60px;
| |
- | }
| |
- | .text-controls .highslide-play a.disabled {
| |
- | background-position: left top !important;
| |
- | }
| |
- | .text-controls .highslide-play a.disabled span {
| |
- | background-position: 0 -160px;
| |
- | }
| |
- | .text-controls .highslide-pause span {
| |
- | background-position: 0 -80px;
| |
- | }
| |
- | .text-controls .highslide-next span {
| |
- | background-position: 0 -100px;
| |
- | }
| |
- | .text-controls .highslide-next a.disabled {
| |
- | background-position: left top !important;
| |
- | }
| |
- | .text-controls .highslide-next a.disabled span {
| |
- | background-position: 0 -200px;
| |
- | }
| |
- | .text-controls .highslide-full-expand span {
| |
- | background: none;
| |
- | }
| |
- | .text-controls .highslide-full-expand a.disabled {
| |
- | background-position: left top !important;
| |
- | }
| |
- | .text-controls .highslide-close span {
| |
- | background-position: 0 -120px;
| |
- | }
| |
- |
| |
- |
| |
- | /*****************************************************************************/
| |
- | /* Styles for the thumbstrip. */
| |
- | /* See www.highslide.com/ref/hs.addSlideshow */
| |
- | /* You can safely remove this if you don't use a thumbstrip */
| |
- | /*****************************************************************************/
| |
- |
| |
- | .highslide-thumbstrip {
| |
- | height: 100%;
| |
- | direction: ltr;
| |
- | }
| |
- | .highslide-thumbstrip div {
| |
- | overflow: hidden;
| |
- | }
| |
- | .highslide-thumbstrip table {
| |
- | position: relative;
| |
- | padding: 0;
| |
- | border-collapse: collapse;
| |
- | }
| |
- | .highslide-thumbstrip td {
| |
- | padding: 1px;
| |
- | /*text-align: center;*/
| |
- | }
| |
- | .highslide-thumbstrip a {
| |
- | outline: none;
| |
- | }
| |
- | .highslide-thumbstrip img {
| |
- | display: block;
| |
- | border: 1px solid gray;
| |
- | margin: 0 auto;
| |
- | }
| |
- | .highslide-thumbstrip .highslide-active-anchor img {
| |
- | visibility: visible;
| |
- | }
| |
- | .highslide-thumbstrip .highslide-marker {
| |
- | position: absolute;
| |
- | width: 0;
| |
- | height: 0;
| |
- | border-width: 0;
| |
- | border-style: solid;
| |
- | border-color: transparent; /* change this to actual background color in highslide-ie6.css */
| |
- | }
| |
- | .highslide-thumbstrip-horizontal div {
| |
- | width: auto;
| |
- | /* width: 100% breaks in small strips in IE */
| |
- | }
| |
- | .highslide-thumbstrip-horizontal .highslide-scroll-up {
| |
- | display: none;
| |
- | position: absolute;
| |
- | top: 3px;
| |
- | left: 3px;
| |
- | width: 25px;
| |
- | height: 42px;
| |
- | }
| |
- | .highslide-thumbstrip-horizontal .highslide-scroll-up div {
| |
- | margin-bottom: 10px;
| |
- | cursor: pointer;
| |
- | background: url(graphics/scrollarrows.png) left center no-repeat;
| |
- | height: 42px;
| |
- | }
| |
- | .highslide-thumbstrip-horizontal .highslide-scroll-down {
| |
- | display: none;
| |
- | position: absolute;
| |
- | top: 3px;
| |
- | right: 3px;
| |
- | width: 25px;
| |
- | height: 42px;
| |
- | }
| |
- | .highslide-thumbstrip-horizontal .highslide-scroll-down div {
| |
- | margin-bottom: 10px;
| |
- | cursor: pointer;
| |
- | background: url(graphics/scrollarrows.png) center right no-repeat;
| |
- | height: 42px;
| |
- | }
| |
- | .highslide-thumbstrip-horizontal table {
| |
- | margin: 2px 0 10px 0;
| |
- | }
| |
- | .highslide-viewport .highslide-thumbstrip-horizontal table {
| |
- | margin-left: 10px;
| |
- | }
| |
- | .highslide-thumbstrip-horizontal img {
| |
- | width: auto;
| |
- | height: 40px;
| |
- | }
| |
- | .highslide-thumbstrip-horizontal .highslide-marker {
| |
- | top: 47px;
| |
- | border-left-width: 6px;
| |
- | border-right-width: 6px;
| |
- | border-bottom: 6px solid gray;
| |
- | }
| |
- | .highslide-viewport .highslide-thumbstrip-horizontal .highslide-marker {
| |
- | margin-left: 10px;
| |
- | }
| |
- | .dark .highslide-thumbstrip-horizontal .highslide-marker, .highslide-viewport .highslide-thumbstrip-horizontal .highslide-marker {
| |
- | border-bottom-color: white !important;
| |
- | }
| |
- |
| |
- | .highslide-thumbstrip-vertical-overlay {
| |
- | overflow: hidden !important;
| |
- | }
| |
- | .highslide-thumbstrip-vertical div {
| |
- | height: 100%;
| |
- | }
| |
- | .highslide-thumbstrip-vertical a {
| |
- | display: block;
| |
- | }
| |
- | .highslide-thumbstrip-vertical .highslide-scroll-up {
| |
- | display: none;
| |
- | position: absolute;
| |
- | top: 0;
| |
- | left: 0;
| |
- | width: 100%;
| |
- | height: 25px;
| |
- | }
| |
- | .highslide-thumbstrip-vertical .highslide-scroll-up div {
| |
- | margin-left: 10px;
| |
- | cursor: pointer;
| |
- | background: url(graphics/scrollarrows.png) top center no-repeat;
| |
- | height: 25px;
| |
- | }
| |
- | .highslide-thumbstrip-vertical .highslide-scroll-down {
| |
- | display: none;
| |
- | position: absolute;
| |
- | bottom: 0;
| |
- | left: 0;
| |
- | width: 100%;
| |
- | height: 25px;
| |
- | }
| |
- | .highslide-thumbstrip-vertical .highslide-scroll-down div {
| |
- | margin-left: 10px;
| |
- | cursor: pointer;
| |
- | background: url(graphics/scrollarrows.png) bottom center no-repeat;
| |
- | height: 25px;
| |
- | }
| |
- | .highslide-thumbstrip-vertical table {
| |
- | margin: 10px 0 0 10px;
| |
- | }
| |
- | .highslide-thumbstrip-vertical img {
| |
- | width: 60px; /* t=5481 */
| |
- | }
| |
- | .highslide-thumbstrip-vertical .highslide-marker {
| |
- | left: 0;
| |
- | margin-top: 8px;
| |
- | border-top-width: 6px;
| |
- | border-bottom-width: 6px;
| |
- | border-left: 6px solid gray;
| |
- | }
| |
- | .dark .highslide-thumbstrip-vertical .highslide-marker, .highslide-viewport .highslide-thumbstrip-vertical .highslide-marker {
| |
- | border-left-color: white;
| |
- | }
| |
- |
| |
- | .highslide-viewport .highslide-thumbstrip-float {
| |
- | overflow: auto;
| |
- | }
| |
- | .highslide-thumbstrip-float ul {
| |
- | margin: 2px 0;
| |
- | padding: 0;
| |
- | }
| |
- | .highslide-thumbstrip-float li {
| |
- | display: block;
| |
- | height: 60px;
| |
- | margin: 0 2px;
| |
- | list-style: none;
| |
- | float: left;
| |
- | }
| |
- | .highslide-thumbstrip-float img {
| |
- | display: inline;
| |
- | border-color: silver;
| |
- | max-height: 56px;
| |
- | }
| |
- | .highslide-thumbstrip-float .highslide-active-anchor img {
| |
- | border-color: black;
| |
- | }
| |
- | .highslide-thumbstrip-float .highslide-scroll-up div, .highslide-thumbstrip-float .highslide-scroll-down div {
| |
- | display: none;
| |
- | }
| |
- | .highslide-thumbstrip-float .highslide-marker {
| |
- | display: none;
| |
- | }
| |
- |
| |
- |
| |
- | /*****************************************************************************/
| |
- | /* The following styles are added by the Highslide Editor */
| |
- | /*****************************************************************************/
| |
- | .highslide-wrapper, .highslide-outline {
| |
- | background: #FFFFFF;
| |
- | }
| |
- | .highslide img {
| |
- | border: 1px solid #D0D0D0;
| |
- | }
| |
- | .highslide:hover img {
| |
- | border-color: #A0A0A0;
| |
- | }
| |
- | .highslide-active-anchor img {
| |
- | visibility: visible;
| |
- | border-color: #808080 !important;
| |
- | }
| |
- | .highslide-image {
| |
- | border: 2px solid #FFFFFF;
| |
- | }
| |
- | .highslide-number {
| |
- | color: #666666;
| |
- | font-weight: bold;
| |
- | font-size: 10pt !important;
| |
- | }
| |
- | .highslide-loading {
| |
- | color: black;
| |
- | border: 1px solid black;
| |
- | background-color: white;
| |
- | background-image: url(graphics/loader.white.gif);
| |
- | }
| |
- |
| |
- | .highslide-controls {
| |
- | position: static !important;
| |
- | margin-bottom: 0;
| |
- | width: 195px !important;
| |
- | }
| |
- | .highslide-gallery ul li {
| |
- | width: 106px;
| |
- | height: 106px;
| |
- | border: 1px solid #D0D0D0;
| |
- | background: #EDEDED;
| |
- | margin: 2px;
| |
- | }
| |
- | </style>
| |
- |
| |
- | <!--highslide-with gallery script--><script type="text/javascript">
| |
- | /**
| |
- | * Name: Highslide JS
| |
- | * Version: 4.1.13 (2011-10-06)
| |
- | * Config: default +slideshow +positioning +transitions +viewport +thumbstrip
| |
- | * Author: Torstein Hønsi
| |
- | * Support: www.highslide.com/support
| |
- | * License: www.highslide.com/#license
| |
- | */
| |
- | if (!hs) { var hs = {
| |
- | // Language strings
| |
- | lang : {
| |
- | cssDirection: 'ltr',
| |
- | loadingText : 'Loading...',
| |
- | loadingTitle : 'Click to cancel',
| |
- | focusTitle : 'Click to bring to front',
| |
- | fullExpandTitle : 'Expand to actual size (f)',
| |
- | creditsText : 'Powered by <i>Highslide JS</i>',
| |
- | creditsTitle : 'Go to the Highslide JS homepage',
| |
- | previousText : 'Previous',
| |
- | nextText : 'Next',
| |
- | moveText : 'Move',
| |
- | closeText : 'Close',
| |
- | closeTitle : 'Close (esc)',
| |
- | resizeTitle : 'Resize',
| |
- | playText : 'Play',
| |
- | playTitle : 'Play slideshow (spacebar)',
| |
- | pauseText : 'Pause',
| |
- | pauseTitle : 'Pause slideshow (spacebar)',
| |
- | previousTitle : 'Previous (arrow left)',
| |
- | nextTitle : 'Next (arrow right)',
| |
- | moveTitle : 'Move',
| |
- | fullExpandText : '1:1',
| |
- | number: 'Image %1 of %2',
| |
- | restoreTitle : 'Click to close image, click and drag to move. Use arrow keys for next and previous.'
| |
- | },
| |
- | // See http://highslide.com/ref for examples of settings
| |
- | graphicsDir : 'highslide/graphics/',
| |
- | expandCursor : 'zoomin.cur', // null disables
| |
- | restoreCursor : 'zoomout.cur', // null disables
| |
- | expandDuration : 250, // milliseconds
| |
- | restoreDuration : 250,
| |
- | marginLeft : 15,
| |
- | marginRight : 15,
| |
- | marginTop : 15,
| |
- | marginBottom : 15,
| |
- | zIndexCounter : 1001, // adjust to other absolutely positioned elements
| |
- | loadingOpacity : 0.75,
| |
- | allowMultipleInstances: true,
| |
- | numberOfImagesToPreload : 5,
| |
- | outlineWhileAnimating : 2, // 0 = never, 1 = always, 2 = HTML only
| |
- | outlineStartOffset : 3, // ends at 10
| |
- | padToMinWidth : false, // pad the popup width to make room for wide caption
| |
- | fullExpandPosition : 'bottom right',
| |
- | fullExpandOpacity : 1,
| |
- | showCredits : true, // you can set this to false if you want
| |
- | creditsHref : 'http://highslide.com/',
| |
- | creditsTarget : '_self',
| |
- | enableKeyListener : true,
| |
- | openerTagNames : ['a'], // Add more to allow slideshow indexing
| |
- | transitions : [],
| |
- | transitionDuration: 250,
| |
- | dimmingOpacity: 0, // Lightbox style dimming background
| |
- | dimmingDuration: 50, // 0 for instant dimming
| |
- |
| |
- | anchor : 'auto', // where the image expands from
| |
- | align : 'auto', // position in the client (overrides anchor)
| |
- | targetX: null, // the id of a target element
| |
- | targetY: null,
| |
- | dragByHeading: true,
| |
- | minWidth: 200,
| |
- | minHeight: 200,
| |
- | allowSizeReduction: true, // allow the image to reduce to fit client size. If false, this overrides minWidth and minHeight
| |
- | outlineType : 'drop-shadow', // set null to disable outlines
| |
- | skin : {
| |
- | controls:
| |
- | '<div class="highslide-controls"><ul>'+
| |
- | '<li class="highslide-previous">'+
| |
- | '<a href="#" title="{hs.lang.previousTitle}">'+
| |
- | '<span>{hs.lang.previousText}</span></a>'+
| |
- | '</li>'+
| |
- | '<li class="highslide-play">'+
| |
- | '<a href="#" title="{hs.lang.playTitle}">'+
| |
- | '<span>{hs.lang.playText}</span></a>'+
| |
- | '</li>'+
| |
- | '<li class="highslide-pause">'+
| |
- | '<a href="#" title="{hs.lang.pauseTitle}">'+
| |
- | '<span>{hs.lang.pauseText}</span></a>'+
| |
- | '</li>'+
| |
- | '<li class="highslide-next">'+
| |
- | '<a href="#" title="{hs.lang.nextTitle}">'+
| |
- | '<span>{hs.lang.nextText}</span></a>'+
| |
- | '</li>'+
| |
- | '<li class="highslide-move">'+
| |
- | '<a href="#" title="{hs.lang.moveTitle}">'+
| |
- | '<span>{hs.lang.moveText}</span></a>'+
| |
- | '</li>'+
| |
- | '<li class="highslide-full-expand">'+
| |
- | '<a href="#" title="{hs.lang.fullExpandTitle}">'+
| |
- | '<span>{hs.lang.fullExpandText}</span></a>'+
| |
- | '</li>'+
| |
- | '<li class="highslide-close">'+
| |
- | '<a href="#" title="{hs.lang.closeTitle}" >'+
| |
- | '<span>{hs.lang.closeText}</span></a>'+
| |
- | '</li>'+
| |
- | '</ul></div>'
| |
- | },
| |
- | // END OF YOUR SETTINGS
| |
- |
| |
- |
| |
- | // declare internal properties
| |
- | preloadTheseImages : [],
| |
- | continuePreloading: true,
| |
- | expanders : [],
| |
- | overrides : [
| |
- | 'allowSizeReduction',
| |
- | 'useBox',
| |
- | 'anchor',
| |
- | 'align',
| |
- | 'targetX',
| |
- | 'targetY',
| |
- | 'outlineType',
| |
- | 'outlineWhileAnimating',
| |
- | 'captionId',
| |
- | 'captionText',
| |
- | 'captionEval',
| |
- | 'captionOverlay',
| |
- | 'headingId',
| |
- | 'headingText',
| |
- | 'headingEval',
| |
- | 'headingOverlay',
| |
- | 'creditsPosition',
| |
- | 'dragByHeading',
| |
- | 'autoplay',
| |
- | 'numberPosition',
| |
- | 'transitions',
| |
- | 'dimmingOpacity',
| |
- |
| |
- | 'width',
| |
- | 'height',
| |
- |
| |
- | 'wrapperClassName',
| |
- | 'minWidth',
| |
- | 'minHeight',
| |
- | 'maxWidth',
| |
- | 'maxHeight',
| |
- | 'pageOrigin',
| |
- | 'slideshowGroup',
| |
- | 'easing',
| |
- | 'easingClose',
| |
- | 'fadeInOut',
| |
- | 'src'
| |
- | ],
| |
- | overlays : [],
| |
- | idCounter : 0,
| |
- | oPos : {
| |
- | x: ['leftpanel', 'left', 'center', 'right', 'rightpanel'],
| |
- | y: ['above', 'top', 'middle', 'bottom', 'below']
| |
- | },
| |
- | mouse: {},
| |
- | headingOverlay: {},
| |
- | captionOverlay: {},
| |
- | timers : [],
| |
- |
| |
- | slideshows : [],
| |
- |
| |
- | pendingOutlines : {},
| |
- | clones : {},
| |
- | onReady: [],
| |
- | uaVersion: /Trident\/4\.0/.test(navigator.userAgent) ? 8 :
| |
- | parseFloat((navigator.userAgent.toLowerCase().match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1]),
| |
- | ie : (document.all && !window.opera),
| |
- | //ie : navigator && /MSIE [678]/.test(navigator.userAgent), // ie9 compliant?
| |
- | safari : /Safari/.test(navigator.userAgent),
| |
- | geckoMac : /Macintosh.+rv:1\.[0-8].+Gecko/.test(navigator.userAgent),
| |
- |
| |
- | $ : function (id) {
| |
- | if (id) return document.getElementById(id);
| |
- | },
| |
- |
| |
- | push : function (arr, val) {
| |
- | arr[arr.length] = val;
| |
- | },
| |
- |
| |
- | createElement : function (tag, attribs, styles, parent, nopad) {
| |
- | var el = document.createElement(tag);
| |
- | if (attribs) hs.extend(el, attribs);
| |
- | if (nopad) hs.setStyles(el, {padding: 0, border: 'none', margin: 0});
| |
- | if (styles) hs.setStyles(el, styles);
| |
- | if (parent) parent.appendChild(el);
| |
- | return el;
| |
- | },
| |
- |
| |
- | extend : function (el, attribs) {
| |
- | for (var x in attribs) el[x] = attribs[x];
| |
- | return el;
| |
- | },
| |
- |
| |
- | setStyles : function (el, styles) {
| |
- | for (var x in styles) {
| |
- | if (hs.ieLt9 && x == 'opacity') {
| |
- | if (styles[x] > 0.99) el.style.removeAttribute('filter');
| |
- | else el.style.filter = 'alpha(opacity='+ (styles[x] * 100) +')';
| |
- | }
| |
- | else el.style[x] = styles[x];
| |
- | }
| |
- | },
| |
- | animate: function(el, prop, opt) {
| |
- | var start,
| |
- | end,
| |
- | unit;
| |
- | if (typeof opt != 'object' || opt === null) {
| |
- | var args = arguments;
| |
- | opt = {
| |
- | duration: args[2],
| |
- | easing: args[3],
| |
- | complete: args[4]
| |
- | };
| |
- | }
| |
- | if (typeof opt.duration != 'number') opt.duration = 250;
| |
- | opt.easing = Math[opt.easing] || Math.easeInQuad;
| |
- | opt.curAnim = hs.extend({}, prop);
| |
- | for (var name in prop) {
| |
- | var e = new hs.fx(el, opt , name );
| |
- |
| |
- | start = parseFloat(hs.css(el, name)) || 0;
| |
- | end = parseFloat(prop[name]);
| |
- | unit = name != 'opacity' ? 'px' : '';
| |
- |
| |
- | e.custom( start, end, unit );
| |
- | }
| |
- | },
| |
- | css: function(el, prop) {
| |
- | if (el.style[prop]) {
| |
- | return el.style[prop];
| |
- | } else if (document.defaultView) {
| |
- | return document.defaultView.getComputedStyle(el, null).getPropertyValue(prop);
| |
- |
| |
- | } else {
| |
- | if (prop == 'opacity') prop = 'filter';
| |
- | var val = el.currentStyle[prop.replace(/\-(\w)/g, function (a, b){ return b.toUpperCase(); })];
| |
- | if (prop == 'filter')
| |
- | val = val.replace(/alpha\(opacity=([0-9]+)\)/,
| |
- | function (a, b) { return b / 100 });
| |
- | return val === '' ? 1 : val;
| |
- | }
| |
- | },
| |
- |
| |
- | getPageSize : function () {
| |
- | var d = document, w = window, iebody = d.compatMode && d.compatMode != 'BackCompat'
| |
- | ? d.documentElement : d.body,
| |
- | ieLt9 = hs.ie && (hs.uaVersion < 9 || typeof pageXOffset == 'undefined');
| |
- |
| |
- | var width = ieLt9 ? iebody.clientWidth :
| |
- | (d.documentElement.clientWidth || self.innerWidth),
| |
- | height = ieLt9 ? iebody.clientHeight : self.innerHeight;
| |
- | hs.page = {
| |
- | width: width,
| |
- | height: height,
| |
- | scrollLeft: ieLt9 ? iebody.scrollLeft : pageXOffset,
| |
- | scrollTop: ieLt9 ? iebody.scrollTop : pageYOffset
| |
- | };
| |
- | return hs.page;
| |
- | },
| |
- |
| |
- | getPosition : function(el) {
| |
- | var p = { x: el.offsetLeft, y: el.offsetTop };
| |
- | while (el.offsetParent) {
| |
- | el = el.offsetParent;
| |
- | p.x += el.offsetLeft;
| |
- | p.y += el.offsetTop;
| |
- | if (el != document.body && el != document.documentElement) {
| |
- | p.x -= el.scrollLeft;
| |
- | p.y -= el.scrollTop;
| |
- | }
| |
- | }
| |
- | return p;
| |
- | },
| |
- |
| |
- | expand : function(a, params, custom, type) {
| |
- | if (!a) a = hs.createElement('a', null, { display: 'none' }, hs.container);
| |
- | if (typeof a.getParams == 'function') return params;
| |
- | try {
| |
- | new hs.Expander(a, params, custom);
| |
- | return false;
| |
- | } catch (e) { return true; }
| |
- | },
| |
- | getElementByClass : function (el, tagName, className) {
| |
- | var els = el.getElementsByTagName(tagName);
| |
- | for (var i = 0; i < els.length; i++) {
| |
- | if ((new RegExp(className)).test(els[i].className)) {
| |
- | return els[i];
| |
- | }
| |
- | }
| |
- | return null;
| |
- | },
| |
- | replaceLang : function(s) {
| |
- | s = s.replace(/\s/g, ' ');
| |
- | var re = /{hs\.lang\.([^}]+)\}/g,
| |
- | matches = s.match(re),
| |
- | lang;
| |
- | if (matches) for (var i = 0; i < matches.length; i++) {
| |
- | lang = matches[i].replace(re, "$1");
| |
- | if (typeof hs.lang[lang] != 'undefined') s = s.replace(matches[i], hs.lang[lang]);
| |
- | }
| |
- | return s;
| |
- | },
| |
- |
| |
- |
| |
- | focusTopmost : function() {
| |
- | var topZ = 0,
| |
- | topmostKey = -1,
| |
- | expanders = hs.expanders,
| |
- | exp,
| |
- | zIndex;
| |
- | for (var i = 0; i < expanders.length; i++) {
| |
- | exp = expanders[i];
| |
- | if (exp) {
| |
- | zIndex = exp.wrapper.style.zIndex;
| |
- | if (zIndex && zIndex > topZ) {
| |
- | topZ = zIndex;
| |
- | topmostKey = i;
| |
- | }
| |
- | }
| |
- | }
| |
- | if (topmostKey == -1) hs.focusKey = -1;
| |
- | else expanders[topmostKey].focus();
| |
- | },
| |
- |
| |
- | getParam : function (a, param) {
| |
- | a.getParams = a.onclick;
| |
- | var p = a.getParams ? a.getParams() : null;
| |
- | a.getParams = null;
| |
- |
| |
- | return (p && typeof p[param] != 'undefined') ? p[param] :
| |
- | (typeof hs[param] != 'undefined' ? hs[param] : null);
| |
- | },
| |
- |
| |
- | getSrc : function (a) {
| |
- | var src = hs.getParam(a, 'src');
| |
- | if (src) return src;
| |
- | return a.href;
| |
- | },
| |
- |
| |
- | getNode : function (id) {
| |
- | var node = hs.$(id), clone = hs.clones[id], a = {};
| |
- | if (!node && !clone) return null;
| |
- | if (!clone) {
| |
- | clone = node.cloneNode(true);
| |
- | clone.id = '';
| |
- | hs.clones[id] = clone;
| |
- | return node;
| |
- | } else {
| |
- | return clone.cloneNode(true);
| |
- | }
| |
- | },
| |
- |
| |
- | discardElement : function(d) {
| |
- | if (d) hs.garbageBin.appendChild(d);
| |
- | hs.garbageBin.innerHTML = '';
| |
- | },
| |
- | dim : function(exp) {
| |
- | if (!hs.dimmer) {
| |
- | isNew = true;
| |
- | hs.dimmer = hs.createElement ('div', {
| |
- | className: 'highslide-dimming highslide-viewport-size',
| |
- | owner: '',
| |
- | onclick: function() {
| |
- |
| |
- | hs.close();
| |
- | }
| |
- | }, {
| |
- | visibility: 'visible',
| |
- | opacity: 0
| |
- | }, hs.container, true);
| |
- |
| |
- | if (/(Android|iPad|iPhone|iPod)/.test(navigator.userAgent)) {
| |
- | var body = document.body;
| |
- | function pixDimmerSize() {
| |
- | hs.setStyles(hs.dimmer, {
| |
- | width: body.scrollWidth +'px',
| |
- | height: body.scrollHeight +'px'
| |
- | });
| |
- | }
| |
- | pixDimmerSize();
| |
- | hs.addEventListener(window, 'resize', pixDimmerSize);
| |
- | }
| |
- | }
| |
- | hs.dimmer.style.display = '';
| |
- |
| |
- | var isNew = hs.dimmer.owner == '';
| |
- | hs.dimmer.owner += '|'+ exp.key;
| |
- |
| |
- | if (isNew) {
| |
- | if (hs.geckoMac && hs.dimmingGeckoFix)
| |
- | hs.setStyles(hs.dimmer, {
| |
- | background: 'url('+ hs.graphicsDir + 'geckodimmer.png)',
| |
- | opacity: 1
| |
- | });
| |
- | else
| |
- | hs.animate(hs.dimmer, { opacity: exp.dimmingOpacity }, hs.dimmingDuration);
| |
- | }
| |
- | },
| |
- | undim : function(key) {
| |
- | if (!hs.dimmer) return;
| |
- | if (typeof key != 'undefined') hs.dimmer.owner = hs.dimmer.owner.replace('|'+ key, '');
| |
- |
| |
- | if (
| |
- | (typeof key != 'undefined' && hs.dimmer.owner != '')
| |
- | || (hs.upcoming && hs.getParam(hs.upcoming, 'dimmingOpacity'))
| |
- | ) return;
| |
- |
| |
- | if (hs.geckoMac && hs.dimmingGeckoFix) hs.dimmer.style.display = 'none';
| |
- | else hs.animate(hs.dimmer, { opacity: 0 }, hs.dimmingDuration, null, function() {
| |
- | hs.dimmer.style.display = 'none';
| |
- | });
| |
- | },
| |
- | transit : function (adj, exp) {
| |
- | var last = exp || hs.getExpander();
| |
- | exp = last;
| |
- | if (hs.upcoming) return false;
| |
- | else hs.last = last;
| |
- | hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
| |
- | try {
| |
- | hs.upcoming = adj;
| |
- | adj.onclick();
| |
- | } catch (e){
| |
- | hs.last = hs.upcoming = null;
| |
- | }
| |
- | try {
| |
- | if (!adj || exp.transitions[1] != 'crossfade')
| |
- | exp.close();
| |
- | } catch (e) {}
| |
- | return false;
| |
- | },
| |
- |
| |
- | previousOrNext : function (el, op) {
| |
- | var exp = hs.getExpander(el);
| |
- | if (exp) return hs.transit(exp.getAdjacentAnchor(op), exp);
| |
- | else return false;
| |
- | },
| |
- |
| |
- | previous : function (el) {
| |
- | return hs.previousOrNext(el, -1);
| |
- | },
| |
- |
| |
- | next : function (el) {
| |
- | return hs.previousOrNext(el, 1);
| |
- | },
| |
- |
| |
- | keyHandler : function(e) {
| |
- | if (!e) e = window.event;
| |
- | if (!e.target) e.target = e.srcElement; // ie
| |
- | if (typeof e.target.form != 'undefined') return true; // form element has focus
| |
- | var exp = hs.getExpander();
| |
- |
| |
- | var op = null;
| |
- | switch (e.keyCode) {
| |
- | case 70: // f
| |
- | if (exp) exp.doFullExpand();
| |
- | return true;
| |
- | case 32: // Space
| |
- | op = 2;
| |
- | break;
| |
- | case 34: // Page Down
| |
- | case 39: // Arrow right
| |
- | case 40: // Arrow down
| |
- | op = 1;
| |
- | break;
| |
- | case 8: // Backspace
| |
- | case 33: // Page Up
| |
- | case 37: // Arrow left
| |
- | case 38: // Arrow up
| |
- | op = -1;
| |
- | break;
| |
- | case 27: // Escape
| |
- | case 13: // Enter
| |
- | op = 0;
| |
- | }
| |
- | if (op !== null) {if (op != 2)hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
| |
- | if (!hs.enableKeyListener) return true;
| |
- |
| |
- | if (e.preventDefault) e.preventDefault();
| |
- | else e.returnValue = false;
| |
- | if (exp) {
| |
- | if (op == 0) {
| |
- | exp.close();
| |
- | } else if (op == 2) {
| |
- | if (exp.slideshow) exp.slideshow.hitSpace();
| |
- | } else {
| |
- | if (exp.slideshow) exp.slideshow.pause();
| |
- | hs.previousOrNext(exp.key, op);
| |
- | }
| |
- | return false;
| |
- | }
| |
- | }
| |
- | return true;
| |
- | },
| |
- |
| |
- |
| |
- | registerOverlay : function (overlay) {
| |
- | hs.push(hs.overlays, hs.extend(overlay, { hsId: 'hsId'+ hs.idCounter++ } ));
| |
- | },
| |
- |
| |
- |
| |
- | addSlideshow : function (options) {
| |
- | var sg = options.slideshowGroup;
| |
- | if (typeof sg == 'object') {
| |
- | for (var i = 0; i < sg.length; i++) {
| |
- | var o = {};
| |
- | for (var x in options) o[x] = options[x];
| |
- | o.slideshowGroup = sg[i];
| |
- | hs.push(hs.slideshows, o);
| |
- | }
| |
- | } else {
| |
- | hs.push(hs.slideshows, options);
| |
- | }
| |
- | },
| |
- |
| |
- | getWrapperKey : function (element, expOnly) {
| |
- | var el, re = /^highslide-wrapper-([0-9]+)$/;
| |
- | // 1. look in open expanders
| |
- | el = element;
| |
- | while (el.parentNode) {
| |
- | if (el.hsKey !== undefined) return el.hsKey;
| |
- | if (el.id && re.test(el.id)) return el.id.replace(re, "$1");
| |
- | el = el.parentNode;
| |
- | }
| |
- | // 2. look in thumbnail
| |
- | if (!expOnly) {
| |
- | el = element;
| |
- | while (el.parentNode) {
| |
- | if (el.tagName && hs.isHsAnchor(el)) {
| |
- | for (var key = 0; key < hs.expanders.length; key++) {
| |
- | var exp = hs.expanders[key];
| |
- | if (exp && exp.a == el) return key;
| |
- | }
| |
- | }
| |
- | el = el.parentNode;
| |
- | }
| |
- | }
| |
- | return null;
| |
- | },
| |
- |
| |
- | getExpander : function (el, expOnly) {
| |
- | if (typeof el == 'undefined') return hs.expanders[hs.focusKey] || null;
| |
- | if (typeof el == 'number') return hs.expanders[el] || null;
| |
- | if (typeof el == 'string') el = hs.$(el);
| |
- | return hs.expanders[hs.getWrapperKey(el, expOnly)] || null;
| |
- | },
| |
- |
| |
- | isHsAnchor : function (a) {
| |
- | return (a.onclick && a.onclick.toString().replace(/\s/g, ' ').match(/hs.(htmlE|e)xpand/));
| |
- | },
| |
- |
| |
- | reOrder : function () {
| |
- | for (var i = 0; i < hs.expanders.length; i++)
| |
- | if (hs.expanders[i] && hs.expanders[i].isExpanded) hs.focusTopmost();
| |
- | },
| |
- |
| |
- | mouseClickHandler : function(e)
| |
- | {
| |
- | if (!e) e = window.event;
| |
- | if (e.button > 1) return true;
| |
- | if (!e.target) e.target = e.srcElement;
| |
- |
| |
- | var el = e.target;
| |
- | while (el.parentNode
| |
- | && !(/highslide-(image|move|html|resize)/.test(el.className)))
| |
- | {
| |
- | el = el.parentNode;
| |
- | }
| |
- | var exp = hs.getExpander(el);
| |
- | if (exp && (exp.isClosing || !exp.isExpanded)) return true;
| |
- |
| |
- | if (exp && e.type == 'mousedown') {
| |
- | if (e.target.form) return true;
| |
- | var match = el.className.match(/highslide-(image|move|resize)/);
| |
- | if (match) {
| |
- | hs.dragArgs = {
| |
- | exp: exp ,
| |
- | type: match[1],
| |
- | left: exp.x.pos,
| |
- | width: exp.x.size,
| |
- | top: exp.y.pos,
| |
- | height: exp.y.size,
| |
- | clickX: e.clientX,
| |
- | clickY: e.clientY
| |
- | };
| |
- |
| |
- |
| |
- | hs.addEventListener(document, 'mousemove', hs.dragHandler);
| |
- | if (e.preventDefault) e.preventDefault(); // FF
| |
- |
| |
- | if (/highslide-(image|html)-blur/.test(exp.content.className)) {
| |
- | exp.focus();
| |
- | hs.hasFocused = true;
| |
- | }
| |
- | return false;
| |
- | }
| |
- | } else if (e.type == 'mouseup') {
| |
- |
| |
- | hs.removeEventListener(document, 'mousemove', hs.dragHandler);
| |
- |
| |
- | if (hs.dragArgs) {
| |
- | if (hs.styleRestoreCursor && hs.dragArgs.type == 'image')
| |
- | hs.dragArgs.exp.content.style.cursor = hs.styleRestoreCursor;
| |
- | var hasDragged = hs.dragArgs.hasDragged;
| |
- |
| |
- | if (!hasDragged &&!hs.hasFocused && !/(move|resize)/.test(hs.dragArgs.type)) {
| |
- | exp.close();
| |
- | }
| |
- | else if (hasDragged || (!hasDragged && hs.hasHtmlExpanders)) {
| |
- | hs.dragArgs.exp.doShowHide('hidden');
| |
- | }
| |
- | hs.hasFocused = false;
| |
- | hs.dragArgs = null;
| |
- |
| |
- | } else if (/highslide-image-blur/.test(el.className)) {
| |
- | el.style.cursor = hs.styleRestoreCursor;
| |
- | }
| |
- | }
| |
- | return false;
| |
- | },
| |
- |
| |
- | dragHandler : function(e)
| |
- | {
| |
- | if (!hs.dragArgs) return true;
| |
- | if (!e) e = window.event;
| |
- | var a = hs.dragArgs, exp = a.exp;
| |
- |
| |
- | a.dX = e.clientX - a.clickX;
| |
- | a.dY = e.clientY - a.clickY;
| |
- |
| |
- | var distance = Math.sqrt(Math.pow(a.dX, 2) + Math.pow(a.dY, 2));
| |
- | if (!a.hasDragged) a.hasDragged = (a.type != 'image' && distance > 0)
| |
- | || (distance > (hs.dragSensitivity || 5));
| |
- |
| |
- | if (a.hasDragged && e.clientX > 5 && e.clientY > 5) {
| |
- |
| |
- | if (a.type == 'resize') exp.resize(a);
| |
- | else {
| |
- | exp.moveTo(a.left + a.dX, a.top + a.dY);
| |
- | if (a.type == 'image') exp.content.style.cursor = 'move';
| |
- | }
| |
- | }
| |
- | return false;
| |
- | },
| |
- |
| |
- | wrapperMouseHandler : function (e) {
| |
- | try {
| |
- | if (!e) e = window.event;
| |
- | var over = /mouseover/i.test(e.type);
| |
- | if (!e.target) e.target = e.srcElement; // ie
| |
- | if (!e.relatedTarget) e.relatedTarget =
| |
- | over ? e.fromElement : e.toElement; // ie
| |
- | var exp = hs.getExpander(e.target);
| |
- | if (!exp.isExpanded) return;
| |
- | if (!exp || !e.relatedTarget || hs.getExpander(e.relatedTarget, true) == exp
| |
- | || hs.dragArgs) return;
| |
- | for (var i = 0; i < exp.overlays.length; i++) (function() {
| |
- | var o = hs.$('hsId'+ exp.overlays[i]);
| |
- | if (o && o.hideOnMouseOut) {
| |
- | if (over) hs.setStyles(o, { visibility: 'visible', display: '' });
| |
- | hs.animate(o, { opacity: over ? o.opacity : 0 }, o.dur);
| |
- | }
| |
- | })();
| |
- | } catch (e) {}
| |
- | },
| |
- | addEventListener : function (el, event, func) {
| |
- | if (el == document && event == 'ready') {
| |
- | hs.push(hs.onReady, func);
| |
- | }
| |
- | try {
| |
- | el.addEventListener(event, func, false);
| |
- | } catch (e) {
| |
- | try {
| |
- | el.detachEvent('on'+ event, func);
| |
- | el.attachEvent('on'+ event, func);
| |
- | } catch (e) {
| |
- | el['on'+ event] = func;
| |
- | }
| |
- | }
| |
- | },
| |
- |
| |
- | removeEventListener : function (el, event, func) {
| |
- | try {
| |
- | el.removeEventListener(event, func, false);
| |
- | } catch (e) {
| |
- | try {
| |
- | el.detachEvent('on'+ event, func);
| |
- | } catch (e) {
| |
- | el['on'+ event] = null;
| |
- | }
| |
- | }
| |
- | },
| |
- |
| |
- | preloadFullImage : function (i) {
| |
- | if (hs.continuePreloading && hs.preloadTheseImages[i] && hs.preloadTheseImages[i] != 'undefined') {
| |
- | var img = document.createElement('img');
| |
- | img.onload = function() {
| |
- | img = null;
| |
- | hs.preloadFullImage(i + 1);
| |
- | };
| |
- | img.src = hs.preloadTheseImages[i];
| |
- | }
| |
- | },
| |
- | preloadImages : function (number) {
| |
- | if (number && typeof number != 'object') hs.numberOfImagesToPreload = number;
| |
- |
| |
- | var arr = hs.getAnchors();
| |
- | for (var i = 0; i < arr.images.length && i < hs.numberOfImagesToPreload; i++) {
| |
- | hs.push(hs.preloadTheseImages, hs.getSrc(arr.images[i]));
| |
- | }
| |
- |
| |
- | // preload outlines
| |
- | if (hs.outlineType) new hs.Outline(hs.outlineType, function () { hs.preloadFullImage(0)} );
| |
- | else
| |
- |
| |
- | hs.preloadFullImage(0);
| |
- |
| |
- | // preload cursor
| |
- | if (hs.restoreCursor) var cur = hs.createElement('img', { src: hs.graphicsDir + hs.restoreCursor });
| |
- | },
| |
- |
| |
- |
| |
- | init : function () {
| |
- | if (!hs.container) {
| |
- |
| |
- | hs.ieLt7 = hs.ie && hs.uaVersion < 7;
| |
- | hs.ieLt9 = hs.ie && hs.uaVersion < 9;
| |
- |
| |
- | hs.getPageSize();
| |
- | for (var x in hs.langDefaults) {
| |
- | if (typeof hs[x] != 'undefined') hs.lang[x] = hs[x];
| |
- | else if (typeof hs.lang[x] == 'undefined' && typeof hs.langDefaults[x] != 'undefined')
| |
- | hs.lang[x] = hs.langDefaults[x];
| |
- | }
| |
- |
| |
- | hs.container = hs.createElement('div', {
| |
- | className: 'highslide-container'
| |
- | }, {
| |
- | position: 'absolute',
| |
- | left: 0,
| |
- | top: 0,
| |
- | width: '100%',
| |
- | zIndex: hs.zIndexCounter,
| |
- | direction: 'ltr'
| |
- | },
| |
- | document.body,
| |
- | true
| |
- | );
| |
- | hs.loading = hs.createElement('a', {
| |
- | className: 'highslide-loading',
| |
- | title: hs.lang.loadingTitle,
| |
- | innerHTML: hs.lang.loadingText,
| |
- | href: 'javascript:;'
| |
- | }, {
| |
- | position: 'absolute',
| |
- | top: '-9999px',
| |
- | opacity: hs.loadingOpacity,
| |
- | zIndex: 1
| |
- | }, hs.container
| |
- | );
| |
- | hs.garbageBin = hs.createElement('div', null, { display: 'none' }, hs.container);
| |
- | hs.viewport = hs.createElement('div', {
| |
- | className: 'highslide-viewport highslide-viewport-size'
| |
- | }, {
| |
- | visibility: (hs.safari && hs.uaVersion < 525) ? 'visible' : 'hidden'
| |
- | }, hs.container, 1
| |
- | );
| |
- |
| |
- | // http://www.robertpenner.com/easing/
| |
- | Math.linearTween = function (t, b, c, d) {
| |
- | return c*t/d + b;
| |
- | };
| |
- | Math.easeInQuad = function (t, b, c, d) {
| |
- | return c*(t/=d)*t + b;
| |
- | };
| |
- | Math.easeOutQuad = function (t, b, c, d) {
| |
- | return -c *(t/=d)*(t-2) + b;
| |
- | };
| |
- |
| |
- | hs.hideSelects = hs.ieLt7;
| |
- | hs.hideIframes = ((window.opera && hs.uaVersion < 9) || navigator.vendor == 'KDE'
| |
- | || (hs.ieLt7 && hs.uaVersion < 5.5));
| |
- | }
| |
- | },
| |
- | ready : function() {
| |
- | if (hs.isReady) return;
| |
- | hs.isReady = true;
| |
- | for (var i = 0; i < hs.onReady.length; i++) hs.onReady[i]();
| |
- | },
| |
- |
| |
- | updateAnchors : function() {
| |
- | var el, els, all = [], images = [],groups = {}, re;
| |
- |
| |
- | for (var i = 0; i < hs.openerTagNames.length; i++) {
| |
- | els = document.getElementsByTagName(hs.openerTagNames[i]);
| |
- | for (var j = 0; j < els.length; j++) {
| |
- | el = els[j];
| |
- | re = hs.isHsAnchor(el);
| |
- | if (re) {
| |
- | hs.push(all, el);
| |
- | if (re[0] == 'hs.expand') hs.push(images, el);
| |
- | var g = hs.getParam(el, 'slideshowGroup') || 'none';
| |
- | if (!groups[g]) groups[g] = [];
| |
- | hs.push(groups[g], el);
| |
- | }
| |
- | }
| |
- | }
| |
- | hs.anchors = { all: all, groups: groups, images: images };
| |
- | return hs.anchors;
| |
- |
| |
- | },
| |
- |
| |
- | getAnchors : function() {
| |
- | return hs.anchors || hs.updateAnchors();
| |
- | },
| |
- |
| |
- |
| |
- | close : function(el) {
| |
- | var exp = hs.getExpander(el);
| |
- | if (exp) exp.close();
| |
- | return false;
| |
- | }
| |
- | }; // end hs object
| |
- | hs.fx = function( elem, options, prop ){
| |
- | this.options = options;
| |
- | this.elem = elem;
| |
- | this.prop = prop;
| |
- |
| |
- | if (!options.orig) options.orig = {};
| |
- | };
| |
- | hs.fx.prototype = {
| |
- | update: function(){
| |
- | (hs.fx.step[this.prop] || hs.fx.step._default)(this);
| |
- |
| |
- | if (this.options.step)
| |
- | this.options.step.call(this.elem, this.now, this);
| |
- |
| |
- | },
| |
- | custom: function(from, to, unit){
| |
- | this.startTime = (new Date()).getTime();
| |
- | this.start = from;
| |
- | this.end = to;
| |
- | this.unit = unit;// || this.unit || "px";
| |
- | this.now = this.start;
| |
- | this.pos = this.state = 0;
| |
- |
| |
- | var self = this;
| |
- | function t(gotoEnd){
| |
- | return self.step(gotoEnd);
| |
- | }
| |
- |
| |
- | t.elem = this.elem;
| |
- |
| |
- | if ( t() && hs.timers.push(t) == 1 ) {
| |
- | hs.timerId = setInterval(function(){
| |
- | var timers = hs.timers;
| |
- |
| |
- | for ( var i = 0; i < timers.length; i++ )
| |
- | if ( !timers[i]() )
| |
- | timers.splice(i--, 1);
| |
- |
| |
- | if ( !timers.length ) {
| |
- | clearInterval(hs.timerId);
| |
- | }
| |
- | }, 13);
| |
- | }
| |
- | },
| |
- | step: function(gotoEnd){
| |
- | var t = (new Date()).getTime();
| |
- | if ( gotoEnd || t >= this.options.duration + this.startTime ) {
| |
- | this.now = this.end;
| |
- | this.pos = this.state = 1;
| |
- | this.update();
| |
- |
| |
- | this.options.curAnim[ this.prop ] = true;
| |
- |
| |
- | var done = true;
| |
- | for ( var i in this.options.curAnim )
| |
- | if ( this.options.curAnim[i] !== true )
| |
- | done = false;
| |
- |
| |
- | if ( done ) {
| |
- | if (this.options.complete) this.options.complete.call(this.elem);
| |
- | }
| |
- | return false;
| |
- | } else {
| |
- | var n = t - this.startTime;
| |
- | this.state = n / this.options.duration;
| |
- | this.pos = this.options.easing(n, 0, 1, this.options.duration);
| |
- | this.now = this.start + ((this.end - this.start) * this.pos);
| |
- | this.update();
| |
- | }
| |
- | return true;
| |
- | }
| |
- |
| |
- | };
| |
- |
| |
- | hs.extend( hs.fx, {
| |
- | step: {
| |
- |
| |
- | opacity: function(fx){
| |
- | hs.setStyles(fx.elem, { opacity: fx.now });
| |
- | },
| |
- |
| |
- | _default: function(fx){
| |
- | try {
| |
- | if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
| |
- | fx.elem.style[ fx.prop ] = fx.now + fx.unit;
| |
- | else
| |
- | fx.elem[ fx.prop ] = fx.now;
| |
- | } catch (e) {}
| |
- | }
| |
- | }
| |
- | });
| |
- |
| |
- | hs.Outline = function (outlineType, onLoad) {
| |
- | this.onLoad = onLoad;
| |
- | this.outlineType = outlineType;
| |
- | var v = hs.uaVersion, tr;
| |
- |
| |
- | this.hasAlphaImageLoader = hs.ie && hs.uaVersion < 7;
| |
- | if (!outlineType) {
| |
- | if (onLoad) onLoad();
| |
- | return;
| |
- | }
| |
- |
| |
- | hs.init();
| |
- | this.table = hs.createElement(
| |
- | 'table', {
| |
- | cellSpacing: 0
| |
- | }, {
| |
- | visibility: 'hidden',
| |
- | position: 'absolute',
| |
- | borderCollapse: 'collapse',
| |
- | width: 0
| |
- | },
| |
- | hs.container,
| |
- | true
| |
- | );
| |
- | var tbody = hs.createElement('tbody', null, null, this.table, 1);
| |
- |
| |
- | this.td = [];
| |
- | for (var i = 0; i <= 8; i++) {
| |
- | if (i % 3 == 0) tr = hs.createElement('tr', null, { height: 'auto' }, tbody, true);
| |
- | this.td[i] = hs.createElement('td', null, null, tr, true);
| |
- | var style = i != 4 ? { lineHeight: 0, fontSize: 0} : { position : 'relative' };
| |
- | hs.setStyles(this.td[i], style);
| |
- | }
| |
- | this.td[4].className = outlineType +' highslide-outline';
| |
- |
| |
- | this.preloadGraphic();
| |
- | };
| |
- |
| |
- | hs.Outline.prototype = {
| |
- | preloadGraphic : function () {
| |
- | var src = hs.graphicsDir + (hs.outlinesDir || "outlines/")+ this.outlineType +".png";
| |
- |
| |
- | var appendTo = hs.safari && hs.uaVersion < 525 ? hs.container : null;
| |
- | this.graphic = hs.createElement('img', null, { position: 'absolute',
| |
- | top: '-9999px' }, appendTo, true); // for onload trigger
| |
- |
| |
- | var pThis = this;
| |
- | this.graphic.onload = function() { pThis.onGraphicLoad(); };
| |
- |
| |
- | this.graphic.src = src;
| |
- | },
| |
- |
| |
- | onGraphicLoad : function () {
| |
- | var o = this.offset = this.graphic.width / 4,
| |
- | pos = [[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],
| |
- | dim = { height: (2*o) +'px', width: (2*o) +'px' };
| |
- | for (var i = 0; i <= 8; i++) {
| |
- | if (pos[i]) {
| |
- | if (this.hasAlphaImageLoader) {
| |
- | var w = (i == 1 || i == 7) ? '100%' : this.graphic.width +'px';
| |
- | var div = hs.createElement('div', null, { width: '100%', height: '100%', position: 'relative', overflow: 'hidden'}, this.td[i], true);
| |
- | hs.createElement ('div', null, {
| |
- | filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src='"+ this.graphic.src + "')",
| |
- | position: 'absolute',
| |
- | width: w,
| |
- | height: this.graphic.height +'px',
| |
- | left: (pos[i][0]*o)+'px',
| |
- | top: (pos[i][1]*o)+'px'
| |
- | },
| |
- | div,
| |
- | true);
| |
- | } else {
| |
- | hs.setStyles(this.td[i], { background: 'url('+ this.graphic.src +') '+ (pos[i][0]*o)+'px '+(pos[i][1]*o)+'px'});
| |
- | }
| |
- |
| |
- | if (window.opera && (i == 3 || i ==5))
| |
- | hs.createElement('div', null, dim, this.td[i], true);
| |
- |
| |
- | hs.setStyles (this.td[i], dim);
| |
- | }
| |
- | }
| |
- | this.graphic = null;
| |
- | if (hs.pendingOutlines[this.outlineType]) hs.pendingOutlines[this.outlineType].destroy();
| |
- | hs.pendingOutlines[this.outlineType] = this;
| |
- | if (this.onLoad) this.onLoad();
| |
- | },
| |
- |
| |
- | setPosition : function (pos, offset, vis, dur, easing) {
| |
- | var exp = this.exp,
| |
- | stl = exp.wrapper.style,
| |
- | offset = offset || 0,
| |
- | pos = pos || {
| |
- | x: exp.x.pos + offset,
| |
- | y: exp.y.pos + offset,
| |
- | w: exp.x.get('wsize') - 2 * offset,
| |
- | h: exp.y.get('wsize') - 2 * offset
| |
- | };
| |
- | if (vis) this.table.style.visibility = (pos.h >= 4 * this.offset)
| |
- | ? 'visible' : 'hidden';
| |
- | hs.setStyles(this.table, {
| |
- | left: (pos.x - this.offset) +'px',
| |
- | top: (pos.y - this.offset) +'px',
| |
- | width: (pos.w + 2 * this.offset) +'px'
| |
- | });
| |
- |
| |
- | pos.w -= 2 * this.offset;
| |
- | pos.h -= 2 * this.offset;
| |
- | hs.setStyles (this.td[4], {
| |
- | width: pos.w >= 0 ? pos.w +'px' : 0,
| |
- | height: pos.h >= 0 ? pos.h +'px' : 0
| |
- | });
| |
- | if (this.hasAlphaImageLoader) this.td[3].style.height
| |
- | = this.td[5].style.height = this.td[4].style.height;
| |
- |
| |
- | },
| |
- |
| |
- | destroy : function(hide) {
| |
- | if (hide) this.table.style.visibility = 'hidden';
| |
- | else hs.discardElement(this.table);
| |
- | }
| |
- | };
| |
- |
| |
- | hs.Dimension = function(exp, dim) {
| |
- | this.exp = exp;
| |
- | this.dim = dim;
| |
- | this.ucwh = dim == 'x' ? 'Width' : 'Height';
| |
- | this.wh = this.ucwh.toLowerCase();
| |
- | this.uclt = dim == 'x' ? 'Left' : 'Top';
| |
- | this.lt = this.uclt.toLowerCase();
| |
- | this.ucrb = dim == 'x' ? 'Right' : 'Bottom';
| |
- | this.rb = this.ucrb.toLowerCase();
| |
- | this.p1 = this.p2 = 0;
| |
- | };
| |
- | hs.Dimension.prototype = {
| |
- | get : function(key) {
| |
- | switch (key) {
| |
- | case 'loadingPos':
| |
- | return this.tpos + this.tb + (this.t - hs.loading['offset'+ this.ucwh]) / 2;
| |
- | case 'loadingPosXfade':
| |
- | return this.pos + this.cb+ this.p1 + (this.size - hs.loading['offset'+ this.ucwh]) / 2;
| |
- | case 'wsize':
| |
- | return this.size + 2 * this.cb + this.p1 + this.p2;
| |
- | case 'fitsize':
| |
- | return this.clientSize - this.marginMin - this.marginMax;
| |
- | case 'maxsize':
| |
- | return this.get('fitsize') - 2 * this.cb - this.p1 - this.p2 ;
| |
- | case 'opos':
| |
- | return this.pos - (this.exp.outline ? this.exp.outline.offset : 0);
| |
- | case 'osize':
| |
- | return this.get('wsize') + (this.exp.outline ? 2*this.exp.outline.offset : 0);
| |
- | case 'imgPad':
| |
- | return this.imgSize ? Math.round((this.size - this.imgSize) / 2) : 0;
| |
- |
| |
- | }
| |
- | },
| |
- | calcBorders: function() {
| |
- | // correct for borders
| |
- | this.cb = (this.exp.content['offset'+ this.ucwh] - this.t) / 2;
| |
- |
| |
- | this.marginMax = hs['margin'+ this.ucrb];
| |
- | },
| |
- | calcThumb: function() {
| |
- | this.t = this.exp.el[this.wh] ? parseInt(this.exp.el[this.wh]) :
| |
- | this.exp.el['offset'+ this.ucwh];
| |
- | this.tpos = this.exp.tpos[this.dim];
| |
- | this.tb = (this.exp.el['offset'+ this.ucwh] - this.t) / 2;
| |
- | if (this.tpos == 0 || this.tpos == -1) {
| |
- | this.tpos = (hs.page[this.wh] / 2) + hs.page['scroll'+ this.uclt];
| |
- | };
| |
- | },
| |
- | calcExpanded: function() {
| |
- | var exp = this.exp;
| |
- | this.justify = 'auto';
| |
- |
| |
- | // get alignment
| |
- | if (exp.align == 'center') this.justify = 'center';
| |
- | else if (new RegExp(this.lt).test(exp.anchor)) this.justify = null;
| |
- | else if (new RegExp(this.rb).test(exp.anchor)) this.justify = 'max';
| |
- |
| |
- |
| |
- | // size and position
| |
- | this.pos = this.tpos - this.cb + this.tb;
| |
- |
| |
- | if (this.maxHeight && this.dim == 'x')
| |
- | exp.maxWidth = Math.min(exp.maxWidth || this.full, exp.maxHeight * this.full / exp.y.full);
| |
- |
| |
- | this.size = Math.min(this.full, exp['max'+ this.ucwh] || this.full);
| |
- | this.minSize = exp.allowSizeReduction ?
| |
- | Math.min(exp['min'+ this.ucwh], this.full) :this.full;
| |
- | if (exp.isImage && exp.useBox) {
| |
- | this.size = exp[this.wh];
| |
- | this.imgSize = this.full;
| |
- | }
| |
- | if (this.dim == 'x' && hs.padToMinWidth) this.minSize = exp.minWidth;
| |
- | this.target = exp['target'+ this.dim.toUpperCase()];
| |
- | this.marginMin = hs['margin'+ this.uclt];
| |
- | this.scroll = hs.page['scroll'+ this.uclt];
| |
- | this.clientSize = hs.page[this.wh];
| |
- | },
| |
- | setSize: function(i) {
| |
- | var exp = this.exp;
| |
- | if (exp.isImage && (exp.useBox || hs.padToMinWidth)) {
| |
- | this.imgSize = i;
| |
- | this.size = Math.max(this.size, this.imgSize);
| |
- | exp.content.style[this.lt] = this.get('imgPad')+'px';
| |
- | } else
| |
- | this.size = i;
| |
- |
| |
- | exp.content.style[this.wh] = i +'px';
| |
- | exp.wrapper.style[this.wh] = this.get('wsize') +'px';
| |
- | if (exp.outline) exp.outline.setPosition();
| |
- | if (this.dim == 'x' && exp.overlayBox) exp.sizeOverlayBox(true);
| |
- | if (this.dim == 'x' && exp.slideshow && exp.isImage) {
| |
- | if (i == this.full) exp.slideshow.disable('full-expand');
| |
- | else exp.slideshow.enable('full-expand');
| |
- | }
| |
- | },
| |
- | setPos: function(i) {
| |
- | this.pos = i;
| |
- | this.exp.wrapper.style[this.lt] = i +'px';
| |
- |
| |
- | if (this.exp.outline) this.exp.outline.setPosition();
| |
- |
| |
- | }
| |
- | };
| |
- |
| |
- | hs.Expander = function(a, params, custom, contentType) {
| |
- | if (document.readyState && hs.ie && !hs.isReady) {
| |
- | hs.addEventListener(document, 'ready', function() {
| |
- | new hs.Expander(a, params, custom, contentType);
| |
- | });
| |
- | return;
| |
- | }
| |
- | this.a = a;
| |
- | this.custom = custom;
| |
- | this.contentType = contentType || 'image';
| |
- | this.isImage = !this.isHtml;
| |
- |
| |
- | hs.continuePreloading = false;
| |
- | this.overlays = [];
| |
- | this.last = hs.last;
| |
- | hs.last = null;
| |
- | hs.init();
| |
- | var key = this.key = hs.expanders.length;
| |
- | // override inline parameters
| |
- | for (var i = 0; i < hs.overrides.length; i++) {
| |
- | var name = hs.overrides[i];
| |
- | this[name] = params && typeof params[name] != 'undefined' ?
| |
- | params[name] : hs[name];
| |
- | }
| |
- | if (!this.src) this.src = a.href;
| |
- |
| |
- | // get thumb
| |
- | var el = (params && params.thumbnailId) ? hs.$(params.thumbnailId) : a;
| |
- | el = this.thumb = el.getElementsByTagName('img')[0] || el;
| |
- | this.thumbsUserSetId = el.id || a.id;
| |
- |
| |
- | // check if already open
| |
- | for (var i = 0; i < hs.expanders.length; i++) {
| |
- | if (hs.expanders[i] && hs.expanders[i].a == a
| |
- | && !(this.last && this.transitions[1] == 'crossfade')) {
| |
- | hs.expanders[i].focus();
| |
- | return false;
| |
- | }
| |
- | }
| |
- |
| |
- | // cancel other
| |
- | if (!hs.allowSimultaneousLoading) for (var i = 0; i < hs.expanders.length; i++) {
| |
- | if (hs.expanders[i] && hs.expanders[i].thumb != el && !hs.expanders[i].onLoadStarted) {
| |
- | hs.expanders[i].cancelLoading();
| |
- | }
| |
- | }
| |
- | hs.expanders[key] = this;
| |
- | if (!hs.allowMultipleInstances && !hs.upcoming) {
| |
- | if (hs.expanders[key-1]) hs.expanders[key-1].close();
| |
- | if (typeof hs.focusKey != 'undefined' && hs.expanders[hs.focusKey])
| |
- | hs.expanders[hs.focusKey].close();
| |
- | }
| |
- |
| |
- | // initiate metrics
| |
- | this.el = el;
| |
- | this.tpos = this.pageOrigin || hs.getPosition(el);
| |
- | hs.getPageSize();
| |
- | var x = this.x = new hs.Dimension(this, 'x');
| |
- | x.calcThumb();
| |
- | var y = this.y = new hs.Dimension(this, 'y');
| |
- | y.calcThumb();
| |
- | this.wrapper = hs.createElement(
| |
- | 'div', {
| |
- | id: 'highslide-wrapper-'+ this.key,
| |
- | className: 'highslide-wrapper '+ this.wrapperClassName
| |
- | }, {
| |
- | visibility: 'hidden',
| |
- | position: 'absolute',
| |
- | zIndex: hs.zIndexCounter += 2
| |
- | }, null, true );
| |
- |
| |
- | this.wrapper.onmouseover = this.wrapper.onmouseout = hs.wrapperMouseHandler;
| |
- | if (this.contentType == 'image' && this.outlineWhileAnimating == 2)
| |
- | this.outlineWhileAnimating = 0;
| |
- |
| |
- | // get the outline
| |
- | if (!this.outlineType
| |
- | || (this.last && this.isImage && this.transitions[1] == 'crossfade')) {
| |
- | this[this.contentType +'Create']();
| |
- |
| |
- | } else if (hs.pendingOutlines[this.outlineType]) {
| |
- | this.connectOutline();
| |
- | this[this.contentType +'Create']();
| |
- |
| |
- | } else {
| |
- | this.showLoading();
| |
- | var exp = this;
| |
- | new hs.Outline(this.outlineType,
| |
- | function () {
| |
- | exp.connectOutline();
| |
- | exp[exp.contentType +'Create']();
| |
- | }
| |
- | );
| |
- | }
| |
- | return true;
| |
- | };
| |
- |
| |
- | hs.Expander.prototype = {
| |
- | error : function(e) {
| |
- | if (hs.debug) alert ('Line '+ e.lineNumber +': '+ e.message);
| |
- | else window.location.href = this.src;
| |
- | },
| |
- |
| |
- | connectOutline : function() {
| |
- | var outline = this.outline = hs.pendingOutlines[this.outlineType];
| |
- | outline.exp = this;
| |
- | outline.table.style.zIndex = this.wrapper.style.zIndex - 1;
| |
- | hs.pendingOutlines[this.outlineType] = null;
| |
- | },
| |
- |
| |
- | showLoading : function() {
| |
- | if (this.onLoadStarted || this.loading) return;
| |
- |
| |
- | this.loading = hs.loading;
| |
- | var exp = this;
| |
- | this.loading.onclick = function() {
| |
- | exp.cancelLoading();
| |
- | };
| |
- | var exp = this,
| |
- | l = this.x.get('loadingPos') +'px',
| |
- | t = this.y.get('loadingPos') +'px';
| |
- | if (!tgt && this.last && this.transitions[1] == 'crossfade')
| |
- | var tgt = this.last;
| |
- | if (tgt) {
| |
- | l = tgt.x.get('loadingPosXfade') +'px';
| |
- | t = tgt.y.get('loadingPosXfade') +'px';
| |
- | this.loading.style.zIndex = hs.zIndexCounter++;
| |
- | }
| |
- | setTimeout(function () {
| |
- | if (exp.loading) hs.setStyles(exp.loading, { left: l, top: t, zIndex: hs.zIndexCounter++ })}
| |
- | , 100);
| |
- | },
| |
- |
| |
- | imageCreate : function() {
| |
- | var exp = this;
| |
- |
| |
- | var img = document.createElement('img');
| |
- | this.content = img;
| |
- | img.onload = function () {
| |
- | if (hs.expanders[exp.key]) exp.contentLoaded();
| |
- | };
| |
- | if (hs.blockRightClick) img.oncontextmenu = function() { return false; };
| |
- | img.className = 'highslide-image';
| |
- | hs.setStyles(img, {
| |
- | visibility: 'hidden',
| |
- | display: 'block',
| |
- | position: 'absolute',
| |
- | maxWidth: '9999px',
| |
- | zIndex: 3
| |
- | });
| |
- | img.title = hs.lang.restoreTitle;
| |
- | if (hs.safari && hs.uaVersion < 525) hs.container.appendChild(img);
| |
- | if (hs.ie && hs.flushImgSize) img.src = null;
| |
- | img.src = this.src;
| |
- |
| |
- | this.showLoading();
| |
- | },
| |
- |
| |
- | contentLoaded : function() {
| |
- | try {
| |
- | if (!this.content) return;
| |
- | this.content.onload = null;
| |
- | if (this.onLoadStarted) return;
| |
- | else this.onLoadStarted = true;
| |
- |
| |
- | var x = this.x, y = this.y;
| |
- |
| |
- | if (this.loading) {
| |
- | hs.setStyles(this.loading, { top: '-9999px' });
| |
- | this.loading = null;
| |
- | }
| |
- | x.full = this.content.width;
| |
- | y.full = this.content.height;
| |
- |
| |
- | hs.setStyles(this.content, {
| |
- | width: x.t +'px',
| |
- | height: y.t +'px'
| |
- | });
| |
- | this.wrapper.appendChild(this.content);
| |
- | hs.container.appendChild(this.wrapper);
| |
- |
| |
- | x.calcBorders();
| |
- | y.calcBorders();
| |
- |
| |
- | hs.setStyles (this.wrapper, {
| |
- | left: (x.tpos + x.tb - x.cb) +'px',
| |
- | top: (y.tpos + x.tb - y.cb) +'px'
| |
- | });
| |
- |
| |
- |
| |
- | this.initSlideshow();
| |
- | this.getOverlays();
| |
- |
| |
- | var ratio = x.full / y.full;
| |
- | x.calcExpanded();
| |
- | this.justify(x);
| |
- |
| |
- | y.calcExpanded();
| |
- | this.justify(y);
| |
- | if (this.overlayBox) this.sizeOverlayBox(0, 1);
| |
- |
| |
- |
| |
- | if (this.allowSizeReduction) {
| |
- | this.correctRatio(ratio);
| |
- | var ss = this.slideshow;
| |
- | if (ss && this.last && ss.controls && ss.fixedControls) {
| |
- | var pos = ss.overlayOptions.position || '', p;
| |
- | for (var dim in hs.oPos) for (var i = 0; i < 5; i++) {
| |
- | p = this[dim];
| |
- | if (pos.match(hs.oPos[dim][i])) {
| |
- | p.pos = this.last[dim].pos
| |
- | + (this.last[dim].p1 - p.p1)
| |
- | + (this.last[dim].size - p.size) * [0, 0, .5, 1, 1][i];
| |
- | if (ss.fixedControls == 'fit') {
| |
- | if (p.pos + p.size + p.p1 + p.p2 > p.scroll + p.clientSize - p.marginMax)
| |
- | p.pos = p.scroll + p.clientSize - p.size - p.marginMin - p.marginMax - p.p1 - p.p2;
| |
- | if (p.pos < p.scroll + p.marginMin) p.pos = p.scroll + p.marginMin;
| |
- | }
| |
- | }
| |
- | }
| |
- | }
| |
- | if (this.isImage && this.x.full > (this.x.imgSize || this.x.size)) {
| |
- | this.createFullExpand();
| |
- | if (this.overlays.length == 1) this.sizeOverlayBox();
| |
- | }
| |
- | }
| |
- | this.show();
| |
- |
| |
- | } catch (e) {
| |
- | this.error(e);
| |
- | }
| |
- | },
| |
- |
| |
- | justify : function (p, moveOnly) {
| |
- | var tgtArr, tgt = p.target, dim = p == this.x ? 'x' : 'y';
| |
- |
| |
- | if (tgt && tgt.match(/ /)) {
| |
- | tgtArr = tgt.split(' ');
| |
- | tgt = tgtArr[0];
| |
- | }
| |
- | if (tgt && hs.$(tgt)) {
| |
- | p.pos = hs.getPosition(hs.$(tgt))[dim];
| |
- | if (tgtArr && tgtArr[1] && tgtArr[1].match(/^[-]?[0-9]+px$/))
| |
- | p.pos += parseInt(tgtArr[1]);
| |
- | if (p.size < p.minSize) p.size = p.minSize;
| |
- |
| |
- | } else if (p.justify == 'auto' || p.justify == 'center') {
| |
- |
| |
- | var hasMovedMin = false;
| |
- |
| |
- | var allowReduce = p.exp.allowSizeReduction;
| |
- | if (p.justify == 'center')
| |
- | p.pos = Math.round(p.scroll + (p.clientSize + p.marginMin - p.marginMax - p.get('wsize')) / 2);
| |
- | else
| |
- | p.pos = Math.round(p.pos - ((p.get('wsize') - p.t) / 2));
| |
- | if (p.pos < p.scroll + p.marginMin) {
| |
- | p.pos = p.scroll + p.marginMin;
| |
- | hasMovedMin = true;
| |
- | }
| |
- | if (!moveOnly && p.size < p.minSize) {
| |
- | p.size = p.minSize;
| |
- | allowReduce = false;
| |
- | }
| |
- | if (p.pos + p.get('wsize') > p.scroll + p.clientSize - p.marginMax) {
| |
- | if (!moveOnly && hasMovedMin && allowReduce) {
| |
- | p.size = Math.min(p.size, p.get(dim == 'y' ? 'fitsize' : 'maxsize'));
| |
- | } else if (p.get('wsize') < p.get('fitsize')) {
| |
- | p.pos = p.scroll + p.clientSize - p.marginMax - p.get('wsize');
| |
- | } else { // image larger than viewport
| |
- | p.pos = p.scroll + p.marginMin;
| |
- | if (!moveOnly && allowReduce) p.size = p.get(dim == 'y' ? 'fitsize' : 'maxsize');
| |
- | }
| |
- | }
| |
- |
| |
- | if (!moveOnly && p.size < p.minSize) {
| |
- | p.size = p.minSize;
| |
- | allowReduce = false;
| |
- | }
| |
- |
| |
- |
| |
- | } else if (p.justify == 'max') {
| |
- | p.pos = Math.floor(p.pos - p.size + p.t);
| |
- | }
| |
- |
| |
- |
| |
- | if (p.pos < p.marginMin) {
| |
- | var tmpMin = p.pos;
| |
- | p.pos = p.marginMin;
| |
- |
| |
- | if (allowReduce && !moveOnly) p.size = p.size - (p.pos - tmpMin);
| |
- |
| |
- | }
| |
- | },
| |
- |
| |
- | correctRatio : function(ratio) {
| |
- | var x = this.x,
| |
- | y = this.y,
| |
- | changed = false,
| |
- | xSize = Math.min(x.full, x.size),
| |
- | ySize = Math.min(y.full, y.size),
| |
- | useBox = (this.useBox || hs.padToMinWidth);
| |
- |
| |
- | if (xSize / ySize > ratio) { // width greater
| |
- | xSize = ySize * ratio;
| |
- | if (xSize < x.minSize) { // below minWidth
| |
- | xSize = x.minSize;
| |
- | ySize = xSize / ratio;
| |
- | }
| |
- | changed = true;
| |
- |
| |
- | } else if (xSize / ySize < ratio) { // height greater
| |
- | ySize = xSize / ratio;
| |
- | changed = true;
| |
- | }
| |
- |
| |
- | if (hs.padToMinWidth && x.full < x.minSize) {
| |
- | x.imgSize = x.full;
| |
- | y.size = y.imgSize = y.full;
| |
- | } else if (this.useBox) {
| |
- | x.imgSize = xSize;
| |
- | y.imgSize = ySize;
| |
- | } else {
| |
- | x.size = xSize;
| |
- | y.size = ySize;
| |
- | }
| |
- | changed = this.fitOverlayBox(this.useBox ? null : ratio, changed);
| |
- | if (useBox && y.size < y.imgSize) {
| |
- | y.imgSize = y.size;
| |
- | x.imgSize = y.size * ratio;
| |
- | }
| |
- | if (changed || useBox) {
| |
- | x.pos = x.tpos - x.cb + x.tb;
| |
- | x.minSize = x.size;
| |
- | this.justify(x, true);
| |
- |
| |
- | y.pos = y.tpos - y.cb + y.tb;
| |
- | y.minSize = y.size;
| |
- | this.justify(y, true);
| |
- | if (this.overlayBox) this.sizeOverlayBox();
| |
- | }
| |
- |
| |
- |
| |
- | },
| |
- | fitOverlayBox : function(ratio, changed) {
| |
- | var x = this.x, y = this.y;
| |
- | if (this.overlayBox) {
| |
- | while (y.size > this.minHeight && x.size > this.minWidth
| |
- | && y.get('wsize') > y.get('fitsize')) {
| |
- | y.size -= 10;
| |
- | if (ratio) x.size = y.size * ratio;
| |
- | this.sizeOverlayBox(0, 1);
| |
- | changed = true;
| |
- | }
| |
- | }
| |
- | return changed;
| |
- | },
| |
- |
| |
- | show : function () {
| |
- | var x = this.x, y = this.y;
| |
- | this.doShowHide('hidden');
| |
- | if (this.slideshow && this.slideshow.thumbstrip) this.slideshow.thumbstrip.selectThumb();
| |
- |
| |
- | // Apply size change
| |
- | this.changeSize(
| |
- | 1, {
| |
- | wrapper: {
| |
- | width : x.get('wsize'),
| |
- | height : y.get('wsize'),
| |
- | left: x.pos,
| |
- | top: y.pos
| |
- | },
| |
- | content: {
| |
- | left: x.p1 + x.get('imgPad'),
| |
- | top: y.p1 + y.get('imgPad'),
| |
- | width:x.imgSize ||x.size,
| |
- | height:y.imgSize ||y.size
| |
- | }
| |
- | },
| |
- | hs.expandDuration
| |
- | );
| |
- | },
| |
- |
| |
- | changeSize : function(up, to, dur) {
| |
- | // transition
| |
- | var trans = this.transitions,
| |
- | other = up ? (this.last ? this.last.a : null) : hs.upcoming,
| |
- | t = (trans[1] && other
| |
- | && hs.getParam(other, 'transitions')[1] == trans[1]) ?
| |
- | trans[1] : trans[0];
| |
- |
| |
- | if (this[t] && t != 'expand') {
| |
- | this[t](up, to);
| |
- | return;
| |
- | }
| |
- |
| |
- | if (this.outline && !this.outlineWhileAnimating) {
| |
- | if (up) this.outline.setPosition();
| |
- | else this.outline.destroy();
| |
- | }
| |
- |
| |
- |
| |
- | if (!up) this.destroyOverlays();
| |
- |
| |
- | var exp = this,
| |
- | x = exp.x,
| |
- | y = exp.y,
| |
- | easing = this.easing;
| |
- | if (!up) easing = this.easingClose || easing;
| |
- | var after = up ?
| |
- | function() {
| |
- |
| |
- | if (exp.outline) exp.outline.table.style.visibility = "visible";
| |
- | setTimeout(function() {
| |
- | exp.afterExpand();
| |
- | }, 50);
| |
- | } :
| |
- | function() {
| |
- | exp.afterClose();
| |
- | };
| |
- | if (up) hs.setStyles( this.wrapper, {
| |
- | width: x.t +'px',
| |
- | height: y.t +'px'
| |
- | });
| |
- | if (this.fadeInOut) {
| |
- | hs.setStyles(this.wrapper, { opacity: up ? 0 : 1 });
| |
- | hs.extend(to.wrapper, { opacity: up });
| |
- | }
| |
- | hs.animate( this.wrapper, to.wrapper, {
| |
- | duration: dur,
| |
- | easing: easing,
| |
- | step: function(val, args) {
| |
- | if (exp.outline && exp.outlineWhileAnimating && args.prop == 'top') {
| |
- | var fac = up ? args.pos : 1 - args.pos;
| |
- | var pos = {
| |
- | w: x.t + (x.get('wsize') - x.t) * fac,
| |
- | h: y.t + (y.get('wsize') - y.t) * fac,
| |
- | x: x.tpos + (x.pos - x.tpos) * fac,
| |
- | y: y.tpos + (y.pos - y.tpos) * fac
| |
- | };
| |
- | exp.outline.setPosition(pos, 0, 1);
| |
- | }
| |
- | }
| |
- | });
| |
- | hs.animate( this.content, to.content, dur, easing, after);
| |
- | if (up) {
| |
- | this.wrapper.style.visibility = 'visible';
| |
- | this.content.style.visibility = 'visible';
| |
- | this.a.className += ' highslide-active-anchor';
| |
- | }
| |
- | },
| |
- |
| |
- |
| |
- |
| |
- | fade : function(up, to) {
| |
- | this.outlineWhileAnimating = false;
| |
- | var exp = this, t = up ? hs.expandDuration : 0;
| |
- |
| |
- | if (up) {
| |
- | hs.animate(this.wrapper, to.wrapper, 0);
| |
- | hs.setStyles(this.wrapper, { opacity: 0, visibility: 'visible' });
| |
- | hs.animate(this.content, to.content, 0);
| |
- | this.content.style.visibility = 'visible';
| |
- |
| |
- | hs.animate(this.wrapper, { opacity: 1 }, t, null,
| |
- | function() { exp.afterExpand(); });
| |
- | }
| |
- |
| |
- | if (this.outline) {
| |
- | this.outline.table.style.zIndex = this.wrapper.style.zIndex;
| |
- | var dir = up || -1,
| |
- | offset = this.outline.offset,
| |
- | startOff = up ? 3 : offset,
| |
- | endOff = up? offset : 3;
| |
- | for (var i = startOff; dir * i <= dir * endOff; i += dir, t += 25) {
| |
- | (function() {
| |
- | var o = up ? endOff - i : startOff - i;
| |
- | setTimeout(function() {
| |
- | exp.outline.setPosition(0, o, 1);
| |
- | }, t);
| |
- | })();
| |
- | }
| |
- | }
| |
- |
| |
- |
| |
- | if (up) {}//setTimeout(function() { exp.afterExpand(); }, t+50);
| |
- | else {
| |
- | setTimeout( function() {
| |
- | if (exp.outline) exp.outline.destroy(exp.preserveContent);
| |
- |
| |
- | exp.destroyOverlays();
| |
- |
| |
- | hs.animate( exp.wrapper, { opacity: 0 }, hs.restoreDuration, null, function(){
| |
- | exp.afterClose();
| |
- | });
| |
- | }, t);
| |
- | }
| |
- | },
| |
- | crossfade : function (up, to, from) {
| |
- | if (!up) return;
| |
- | var exp = this,
| |
- | last = this.last,
| |
- | x = this.x,
| |
- | y = this.y,
| |
- | lastX = last.x,
| |
- | lastY = last.y,
| |
- | wrapper = this.wrapper,
| |
- | content = this.content,
| |
- | overlayBox = this.overlayBox;
| |
- | hs.removeEventListener(document, 'mousemove', hs.dragHandler);
| |
- |
| |
- | hs.setStyles(content, {
| |
- | width: (x.imgSize || x.size) +'px',
| |
- | height: (y.imgSize || y.size) +'px'
| |
- | });
| |
- | if (overlayBox) overlayBox.style.overflow = 'visible';
| |
- | this.outline = last.outline;
| |
- | if (this.outline) this.outline.exp = exp;
| |
- | last.outline = null;
| |
- | var fadeBox = hs.createElement('div', {
| |
- | className: 'highslide-'+ this.contentType
| |
- | }, {
| |
- | position: 'absolute',
| |
- | zIndex: 4,
| |
- | overflow: 'hidden',
| |
- | display: 'none'
| |
- | }
| |
- | );
| |
- | var names = { oldImg: last, newImg: this };
| |
- | for (var n in names) {
| |
- | this[n] = names[n].content.cloneNode(1);
| |
- | hs.setStyles(this[n], {
| |
- | position: 'absolute',
| |
- | border: 0,
| |
- | visibility: 'visible'
| |
- | });
| |
- | fadeBox.appendChild(this[n]);
| |
- | }
| |
- | wrapper.appendChild(fadeBox);
| |
- | if (overlayBox) {
| |
- | overlayBox.className = '';
| |
- | wrapper.appendChild(overlayBox);
| |
- | }
| |
- | fadeBox.style.display = '';
| |
- | last.content.style.display = 'none';
| |
- |
| |
- |
| |
- | if (hs.safari && hs.uaVersion < 525) {
| |
- | this.wrapper.style.visibility = 'visible';
| |
- | }
| |
- | hs.animate(wrapper, {
| |
- | width: x.size
| |
- | }, {
| |
- | duration: hs.transitionDuration,
| |
- | step: function(val, args) {
| |
- | var pos = args.pos,
| |
- | invPos = 1 - pos;
| |
- | var prop,
| |
- | size = {},
| |
- | props = ['pos', 'size', 'p1', 'p2'];
| |
- | for (var n in props) {
| |
- | prop = props[n];
| |
- | size['x'+ prop] = Math.round(invPos * lastX[prop] + pos * x[prop]);
| |
- | size['y'+ prop] = Math.round(invPos * lastY[prop] + pos * y[prop]);
| |
- | size.ximgSize = Math.round(
| |
- | invPos * (lastX.imgSize || lastX.size) + pos * (x.imgSize || x.size));
| |
- | size.ximgPad = Math.round(invPos * lastX.get('imgPad') + pos * x.get('imgPad'));
| |
- | size.yimgSize = Math.round(
| |
- | invPos * (lastY.imgSize || lastY.size) + pos * (y.imgSize || y.size));
| |
- | size.yimgPad = Math.round(invPos * lastY.get('imgPad') + pos * y.get('imgPad'));
| |
- | }
| |
- | if (exp.outline) exp.outline.setPosition({
| |
- | x: size.xpos,
| |
- | y: size.ypos,
| |
- | w: size.xsize + size.xp1 + size.xp2 + 2 * x.cb,
| |
- | h: size.ysize + size.yp1 + size.yp2 + 2 * y.cb
| |
- | });
| |
- | last.wrapper.style.clip = 'rect('
| |
- | + (size.ypos - lastY.pos)+'px, '
| |
- | + (size.xsize + size.xp1 + size.xp2 + size.xpos + 2 * lastX.cb - lastX.pos) +'px, '
| |
- | + (size.ysize + size.yp1 + size.yp2 + size.ypos + 2 * lastY.cb - lastY.pos) +'px, '
| |
- | + (size.xpos - lastX.pos)+'px)';
| |
- |
| |
- | hs.setStyles(content, {
| |
- | top: (size.yp1 + y.get('imgPad')) +'px',
| |
- | left: (size.xp1 + x.get('imgPad')) +'px',
| |
- | marginTop: (y.pos - size.ypos) +'px',
| |
- | marginLeft: (x.pos - size.xpos) +'px'
| |
- | });
| |
- | hs.setStyles(wrapper, {
| |
- | top: size.ypos +'px',
| |
- | left: size.xpos +'px',
| |
- | width: (size.xp1 + size.xp2 + size.xsize + 2 * x.cb)+ 'px',
| |
- | height: (size.yp1 + size.yp2 + size.ysize + 2 * y.cb) + 'px'
| |
- | });
| |
- | hs.setStyles(fadeBox, {
| |
- | width: (size.ximgSize || size.xsize) + 'px',
| |
- | height: (size.yimgSize || size.ysize) +'px',
| |
- | left: (size.xp1 + size.ximgPad) +'px',
| |
- | top: (size.yp1 + size.yimgPad) +'px',
| |
- | visibility: 'visible'
| |
- | });
| |
- |
| |
- | hs.setStyles(exp.oldImg, {
| |
- | top: (lastY.pos - size.ypos + lastY.p1 - size.yp1 + lastY.get('imgPad') - size.yimgPad)+'px',
| |
- | left: (lastX.pos - size.xpos + lastX.p1 - size.xp1 + lastX.get('imgPad') - size.ximgPad)+'px'
| |
- | });
| |
- |
| |
- | hs.setStyles(exp.newImg, {
| |
- | opacity: pos,
| |
- | top: (y.pos - size.ypos + y.p1 - size.yp1 + y.get('imgPad') - size.yimgPad) +'px',
| |
- | left: (x.pos - size.xpos + x.p1 - size.xp1 + x.get('imgPad') - size.ximgPad) +'px'
| |
- | });
| |
- | if (overlayBox) hs.setStyles(overlayBox, {
| |
- | width: size.xsize + 'px',
| |
- | height: size.ysize +'px',
| |
- | left: (size.xp1 + x.cb) +'px',
| |
- | top: (size.yp1 + y.cb) +'px'
| |
- | });
| |
- | },
| |
- | complete: function () {
| |
- | wrapper.style.visibility = content.style.visibility = 'visible';
| |
- | content.style.display = 'block';
| |
- | hs.discardElement(fadeBox);
| |
- | exp.afterExpand();
| |
- | last.afterClose();
| |
- | exp.last = null;
| |
- | }
| |
- |
| |
- | });
| |
- | },
| |
- | reuseOverlay : function(o, el) {
| |
- | if (!this.last) return false;
| |
- | for (var i = 0; i < this.last.overlays.length; i++) {
| |
- | var oDiv = hs.$('hsId'+ this.last.overlays[i]);
| |
- | if (oDiv && oDiv.hsId == o.hsId) {
| |
- | this.genOverlayBox();
| |
- | oDiv.reuse = this.key;
| |
- | hs.push(this.overlays, this.last.overlays[i]);
| |
- | return true;
| |
- | }
| |
- | }
| |
- | return false;
| |
- | },
| |
- |
| |
- |
| |
- | afterExpand : function() {
| |
- | this.isExpanded = true;
| |
- | this.focus();
| |
- | if (this.dimmingOpacity) hs.dim(this);
| |
- | if (hs.upcoming && hs.upcoming == this.a) hs.upcoming = null;
| |
- | this.prepareNextOutline();
| |
- | var p = hs.page, mX = hs.mouse.x + p.scrollLeft, mY = hs.mouse.y + p.scrollTop;
| |
- | this.mouseIsOver = this.x.pos < mX && mX < this.x.pos + this.x.get('wsize')
| |
- | && this.y.pos < mY && mY < this.y.pos + this.y.get('wsize');
| |
- | if (this.overlayBox) this.showOverlays();
| |
- |
| |
- | },
| |
- |
| |
- |
| |
- | prepareNextOutline : function() {
| |
- | var key = this.key;
| |
- | var outlineType = this.outlineType;
| |
- | new hs.Outline(outlineType,
| |
- | function () { try { hs.expanders[key].preloadNext(); } catch (e) {} });
| |
- | },
| |
- |
| |
- |
| |
- | preloadNext : function() {
| |
- | var next = this.getAdjacentAnchor(1);
| |
- | if (next && next.onclick.toString().match(/hs\.expand/))
| |
- | var img = hs.createElement('img', { src: hs.getSrc(next) });
| |
- | },
| |
- |
| |
- |
| |
- | getAdjacentAnchor : function(op) {
| |
- | var current = this.getAnchorIndex(), as = hs.anchors.groups[this.slideshowGroup || 'none'];
| |
- | if (as && !as[current + op] && this.slideshow && this.slideshow.repeat) {
| |
- | if (op == 1) return as[0];
| |
- | else if (op == -1) return as[as.length-1];
| |
- | }
| |
- | return (as && as[current + op]) || null;
| |
- | },
| |
- |
| |
- | getAnchorIndex : function() {
| |
- | var arr = hs.getAnchors().groups[this.slideshowGroup || 'none'];
| |
- | if (arr) for (var i = 0; i < arr.length; i++) {
| |
- | if (arr[i] == this.a) return i;
| |
- | }
| |
- | return null;
| |
- | },
| |
- |
| |
- |
| |
- | getNumber : function() {
| |
- | if (this[this.numberPosition]) {
| |
- | var arr = hs.anchors.groups[this.slideshowGroup || 'none'];
| |
- | if (arr) {
| |
- | var s = hs.lang.number.replace('%1', this.getAnchorIndex() + 1).replace('%2', arr.length);
| |
- | this[this.numberPosition].innerHTML =
| |
- | '<div class="highslide-number">'+ s +'</div>'+ this[this.numberPosition].innerHTML;
| |
- | }
| |
- | }
| |
- | },
| |
- | initSlideshow : function() {
| |
- | if (!this.last) {
| |
- | for (var i = 0; i < hs.slideshows.length; i++) {
| |
- | var ss = hs.slideshows[i], sg = ss.slideshowGroup;
| |
- | if (typeof sg == 'undefined' || sg === null || sg === this.slideshowGroup)
| |
- | this.slideshow = new hs.Slideshow(this.key, ss);
| |
- | }
| |
- | } else {
| |
- | this.slideshow = this.last.slideshow;
| |
- | }
| |
- | var ss = this.slideshow;
| |
- | if (!ss) return;
| |
- | var key = ss.expKey = this.key;
| |
- |
| |
- | ss.checkFirstAndLast();
| |
- | ss.disable('full-expand');
| |
- | if (ss.controls) {
| |
- | this.createOverlay(hs.extend(ss.overlayOptions || {}, {
| |
- | overlayId: ss.controls,
| |
- | hsId: 'controls',
| |
- | zIndex: 5
| |
- | }));
| |
- | }
| |
- | if (ss.thumbstrip) ss.thumbstrip.add(this);
| |
- | if (!this.last && this.autoplay) ss.play(true);
| |
- | if (ss.autoplay) {
| |
- | ss.autoplay = setTimeout(function() {
| |
- | hs.next(key);
| |
- | }, (ss.interval || 500));
| |
- | }
| |
- | },
| |
- |
| |
- | cancelLoading : function() {
| |
- | hs.discardElement (this.wrapper);
| |
- | hs.expanders[this.key] = null;
| |
- | if (hs.upcoming == this.a) hs.upcoming = null;
| |
- | hs.undim(this.key);
| |
- | if (this.loading) hs.loading.style.left = '-9999px';
| |
- | },
| |
- |
| |
- | writeCredits : function () {
| |
- | if (this.credits) return;
| |
- | this.credits = hs.createElement('a', {
| |
- | href: hs.creditsHref,
| |
- | target: hs.creditsTarget,
| |
- | className: 'highslide-credits',
| |
- | innerHTML: hs.lang.creditsText,
| |
- | title: hs.lang.creditsTitle
| |
- | });
| |
- | this.createOverlay({
| |
- | overlayId: this.credits,
| |
- | position: this.creditsPosition || 'top left',
| |
- | hsId: 'credits'
| |
- | });
| |
- | },
| |
- |
| |
- | getInline : function(types, addOverlay) {
| |
- | for (var i = 0; i < types.length; i++) {
| |
- | var type = types[i], s = null;
| |
- | if (!this[type +'Id'] && this.thumbsUserSetId)
| |
- | this[type +'Id'] = type +'-for-'+ this.thumbsUserSetId;
| |
- | if (this[type +'Id']) this[type] = hs.getNode(this[type +'Id']);
| |
- | if (!this[type] && !this[type +'Text'] && this[type +'Eval']) try {
| |
- | s = eval(this[type +'Eval']);
| |
- | } catch (e) {}
| |
- | if (!this[type] && this[type +'Text']) {
| |
- | s = this[type +'Text'];
| |
- | }
| |
- | if (!this[type] && !s) {
| |
- | this[type] = hs.getNode(this.a['_'+ type + 'Id']);
| |
- | if (!this[type]) {
| |
- | var next = this.a.nextSibling;
| |
- | while (next && !hs.isHsAnchor(next)) {
| |
- | if ((new RegExp('highslide-'+ type)).test(next.className || null)) {
| |
- | if (!next.id) this.a['_'+ type + 'Id'] = next.id = 'hsId'+ hs.idCounter++;
| |
- | this[type] = hs.getNode(next.id);
| |
- | break;
| |
- | }
| |
- | next = next.nextSibling;
| |
- | }
| |
- | }
| |
- | }
| |
- | if (!this[type] && !s && this.numberPosition == type) s = '\n';
| |
- |
| |
- | if (!this[type] && s) this[type] = hs.createElement('div',
| |
- | { className: 'highslide-'+ type, innerHTML: s } );
| |
- |
| |
- | if (addOverlay && this[type]) {
| |
- | var o = { position: (type == 'heading') ? 'above' : 'below' };
| |
- | for (var x in this[type+'Overlay']) o[x] = this[type+'Overlay'][x];
| |
- | o.overlayId = this[type];
| |
- | this.createOverlay(o);
| |
- | }
| |
- | }
| |
- | },
| |
- |
| |
- |
| |
- | // on end move and resize
| |
- | doShowHide : function(visibility) {
| |
- | if (hs.hideSelects) this.showHideElements('SELECT', visibility);
| |
- | if (hs.hideIframes) this.showHideElements('IFRAME', visibility);
| |
- | if (hs.geckoMac) this.showHideElements('*', visibility);
| |
- | },
| |
- | showHideElements : function (tagName, visibility) {
| |
- | var els = document.getElementsByTagName(tagName);
| |
- | var prop = tagName == '*' ? 'overflow' : 'visibility';
| |
- | for (var i = 0; i < els.length; i++) {
| |
- | if (prop == 'visibility' || (document.defaultView.getComputedStyle(
| |
- | els[i], "").getPropertyValue('overflow') == 'auto'
| |
- | || els[i].getAttribute('hidden-by') != null)) {
| |
- | var hiddenBy = els[i].getAttribute('hidden-by');
| |
- | if (visibility == 'visible' && hiddenBy) {
| |
- | hiddenBy = hiddenBy.replace('['+ this.key +']', '');
| |
- | els[i].setAttribute('hidden-by', hiddenBy);
| |
- | if (!hiddenBy) els[i].style[prop] = els[i].origProp;
| |
- | } else if (visibility == 'hidden') { // hide if behind
| |
- | var elPos = hs.getPosition(els[i]);
| |
- | elPos.w = els[i].offsetWidth;
| |
- | elPos.h = els[i].offsetHeight;
| |
- | if (!this.dimmingOpacity) { // hide all if dimming
| |
- |
| |
- | var clearsX = (elPos.x + elPos.w < this.x.get('opos')
| |
- | || elPos.x > this.x.get('opos') + this.x.get('osize'));
| |
- | var clearsY = (elPos.y + elPos.h < this.y.get('opos')
| |
- | || elPos.y > this.y.get('opos') + this.y.get('osize'));
| |
- | }
| |
- | var wrapperKey = hs.getWrapperKey(els[i]);
| |
- | if (!clearsX && !clearsY && wrapperKey != this.key) { // element falls behind image
| |
- | if (!hiddenBy) {
| |
- | els[i].setAttribute('hidden-by', '['+ this.key +']');
| |
- | els[i].origProp = els[i].style[prop];
| |
- | els[i].style[prop] = 'hidden';
| |
- |
| |
- | } else if (hiddenBy.indexOf('['+ this.key +']') == -1) {
| |
- | els[i].setAttribute('hidden-by', hiddenBy + '['+ this.key +']');
| |
- | }
| |
- | } else if ((hiddenBy == '['+ this.key +']' || hs.focusKey == wrapperKey)
| |
- | && wrapperKey != this.key) { // on move
| |
- | els[i].setAttribute('hidden-by', '');
| |
- | els[i].style[prop] = els[i].origProp || '';
| |
- | } else if (hiddenBy && hiddenBy.indexOf('['+ this.key +']') > -1) {
| |
- | els[i].setAttribute('hidden-by', hiddenBy.replace('['+ this.key +']', ''));
| |
- | }
| |
- |
| |
- | }
| |
- | }
| |
- | }
| |
- | },
| |
- |
| |
- | focus : function() {
| |
- | this.wrapper.style.zIndex = hs.zIndexCounter += 2;
| |
- | // blur others
| |
- | for (var i = 0; i < hs.expanders.length; i++) {
| |
- | if (hs.expanders[i] && i == hs.focusKey) {
| |
- | var blurExp = hs.expanders[i];
| |
- | blurExp.content.className += ' highslide-'+ blurExp.contentType +'-blur';
| |
- | blurExp.content.style.cursor = hs.ieLt7 ? 'hand' : 'pointer';
| |
- | blurExp.content.title = hs.lang.focusTitle;
| |
- | }
| |
- | }
| |
- |
| |
- | // focus this
| |
- | if (this.outline) this.outline.table.style.zIndex
| |
- | = this.wrapper.style.zIndex - 1;
| |
- | this.content.className = 'highslide-'+ this.contentType;
| |
- | this.content.title = hs.lang.restoreTitle;
| |
- |
| |
- | if (hs.restoreCursor) {
| |
- | hs.styleRestoreCursor = window.opera ? 'pointer' : 'url('+ hs.graphicsDir + hs.restoreCursor +'), pointer';
| |
- | if (hs.ieLt7 && hs.uaVersion < 6) hs.styleRestoreCursor = 'hand';
| |
- | this.content.style.cursor = hs.styleRestoreCursor;
| |
- | }
| |
- |
| |
- | hs.focusKey = this.key;
| |
- | hs.addEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
| |
- | },
| |
- | moveTo: function(x, y) {
| |
- | this.x.setPos(x);
| |
- | this.y.setPos(y);
| |
- | },
| |
- | resize : function (e) {
| |
- | var w, h, r = e.width / e.height;
| |
- | w = Math.max(e.width + e.dX, Math.min(this.minWidth, this.x.full));
| |
- | if (this.isImage && Math.abs(w - this.x.full) < 12) w = this.x.full;
| |
- | h = w / r;
| |
- | if (h < Math.min(this.minHeight, this.y.full)) {
| |
- | h = Math.min(this.minHeight, this.y.full);
| |
- | if (this.isImage) w = h * r;
| |
- | }
| |
- | this.resizeTo(w, h);
| |
- | },
| |
- | resizeTo: function(w, h) {
| |
- | this.y.setSize(h);
| |
- | this.x.setSize(w);
| |
- | this.wrapper.style.height = this.y.get('wsize') +'px';
| |
- | },
| |
- |
| |
- | close : function() {
| |
- | if (this.isClosing || !this.isExpanded) return;
| |
- | if (this.transitions[1] == 'crossfade' && hs.upcoming) {
| |
- | hs.getExpander(hs.upcoming).cancelLoading();
| |
- | hs.upcoming = null;
| |
- | }
| |
- | this.isClosing = true;
| |
- | if (this.slideshow && !hs.upcoming) this.slideshow.pause();
| |
- |
| |
- | hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
| |
- |
| |
- | try {
| |
- | this.content.style.cursor = 'default';
| |
- | this.changeSize(
| |
- | 0, {
| |
- | wrapper: {
| |
- | width : this.x.t,
| |
- | height : this.y.t,
| |
- | left: this.x.tpos - this.x.cb + this.x.tb,
| |
- | top: this.y.tpos - this.y.cb + this.y.tb
| |
- | },
| |
- | content: {
| |
- | left: 0,
| |
- | top: 0,
| |
- | width: this.x.t,
| |
- | height: this.y.t
| |
- | }
| |
- | }, hs.restoreDuration
| |
- | );
| |
- | } catch (e) { this.afterClose(); }
| |
- | },
| |
- |
| |
- | createOverlay : function (o) {
| |
- | var el = o.overlayId,
| |
- | relToVP = (o.relativeTo == 'viewport' && !/panel$/.test(o.position));
| |
- | if (typeof el == 'string') el = hs.getNode(el);
| |
- | if (o.html) el = hs.createElement('div', { innerHTML: o.html });
| |
- | if (!el || typeof el == 'string') return;
| |
- | el.style.display = 'block';
| |
- | o.hsId = o.hsId || o.overlayId;
| |
- | if (this.transitions[1] == 'crossfade' && this.reuseOverlay(o, el)) return;
| |
- | this.genOverlayBox();
| |
- | var width = o.width && /^[0-9]+(px|%)$/.test(o.width) ? o.width : 'auto';
| |
- | if (/^(left|right)panel$/.test(o.position) && !/^[0-9]+px$/.test(o.width)) width = '200px';
| |
- | var overlay = hs.createElement(
| |
- | 'div', {
| |
- | id: 'hsId'+ hs.idCounter++,
| |
- | hsId: o.hsId
| |
- | }, {
| |
- | position: 'absolute',
| |
- | visibility: 'hidden',
| |
- | width: width,
| |
- | direction: hs.lang.cssDirection || '',
| |
- | opacity: 0
| |
- | },
| |
- | relToVP ? hs.viewport :this.overlayBox,
| |
- | true
| |
- | );
| |
- | if (relToVP) overlay.hsKey = this.key;
| |
- |
| |
- | overlay.appendChild(el);
| |
- | hs.extend(overlay, {
| |
- | opacity: 1,
| |
- | offsetX: 0,
| |
- | offsetY: 0,
| |
- | dur: (o.fade === 0 || o.fade === false || (o.fade == 2 && hs.ie)) ? 0 : 250
| |
- | });
| |
- | hs.extend(overlay, o);
| |
- |
| |
- |
| |
- | if (this.gotOverlays) {
| |
- | this.positionOverlay(overlay);
| |
- | if (!overlay.hideOnMouseOut || this.mouseIsOver)
| |
- | hs.animate(overlay, { opacity: overlay.opacity }, overlay.dur);
| |
- | }
| |
- | hs.push(this.overlays, hs.idCounter - 1);
| |
- | },
| |
- | positionOverlay : function(overlay) {
| |
- | var p = overlay.position || 'middle center',
| |
- | relToVP = (overlay.relativeTo == 'viewport'),
| |
- | offX = overlay.offsetX,
| |
- | offY = overlay.offsetY;
| |
- | if (relToVP) {
| |
- | hs.viewport.style.display = 'block';
| |
- | overlay.hsKey = this.key;
| |
- | if (overlay.offsetWidth > overlay.parentNode.offsetWidth)
| |
- | overlay.style.width = '100%';
| |
- | } else
| |
- | if (overlay.parentNode != this.overlayBox) this.overlayBox.appendChild(overlay);
| |
- | if (/left$/.test(p)) overlay.style.left = offX +'px';
| |
- |
| |
- | if (/center$/.test(p)) hs.setStyles (overlay, {
| |
- | left: '50%',
| |
- | marginLeft: (offX - Math.round(overlay.offsetWidth / 2)) +'px'
| |
- | });
| |
- |
| |
- | if (/right$/.test(p)) overlay.style.right = - offX +'px';
| |
- |
| |
- | if (/^leftpanel$/.test(p)) {
| |
- | hs.setStyles(overlay, {
| |
- | right: '100%',
| |
- | marginRight: this.x.cb +'px',
| |
- | top: - this.y.cb +'px',
| |
- | bottom: - this.y.cb +'px',
| |
- | overflow: 'auto'
| |
- | });
| |
- | this.x.p1 = overlay.offsetWidth;
| |
- |
| |
- | } else if (/^rightpanel$/.test(p)) {
| |
- | hs.setStyles(overlay, {
| |
- | left: '100%',
| |
- | marginLeft: this.x.cb +'px',
| |
- | top: - this.y.cb +'px',
| |
- | bottom: - this.y.cb +'px',
| |
- | overflow: 'auto'
| |
- | });
| |
- | this.x.p2 = overlay.offsetWidth;
| |
- | }
| |
- | var parOff = overlay.parentNode.offsetHeight;
| |
- | overlay.style.height = 'auto';
| |
- | if (relToVP && overlay.offsetHeight > parOff)
| |
- | overlay.style.height = hs.ieLt7 ? parOff +'px' : '100%';
| |
- |
| |
- | if (/^top/.test(p)) overlay.style.top = offY +'px';
| |
- | if (/^middle/.test(p)) hs.setStyles (overlay, {
| |
- | top: '50%',
| |
- | marginTop: (offY - Math.round(overlay.offsetHeight / 2)) +'px'
| |
- | });
| |
- | if (/^bottom/.test(p)) overlay.style.bottom = - offY +'px';
| |
- | if (/^above$/.test(p)) {
| |
- | hs.setStyles(overlay, {
| |
- | left: (- this.x.p1 - this.x.cb) +'px',
| |
- | right: (- this.x.p2 - this.x.cb) +'px',
| |
- | bottom: '100%',
| |
- | marginBottom: this.y.cb +'px',
| |
- | width: 'auto'
| |
- | });
| |
- | this.y.p1 = overlay.offsetHeight;
| |
- |
| |
- | } else if (/^below$/.test(p)) {
| |
- | hs.setStyles(overlay, {
| |
- | position: 'relative',
| |
- | left: (- this.x.p1 - this.x.cb) +'px',
| |
- | right: (- this.x.p2 - this.x.cb) +'px',
| |
- | top: '100%',
| |
- | marginTop: this.y.cb +'px',
| |
- | width: 'auto'
| |
- | });
| |
- | this.y.p2 = overlay.offsetHeight;
| |
- | overlay.style.position = 'absolute';
| |
- | }
| |
- | },
| |
- |
| |
- | getOverlays : function() {
| |
- | this.getInline(['heading', 'caption'], true);
| |
- | this.getNumber();
| |
- | if (this.heading && this.dragByHeading) this.heading.className += ' highslide-move';
| |
- | if (hs.showCredits) this.writeCredits();
| |
- | for (var i = 0; i < hs.overlays.length; i++) {
| |
- | var o = hs.overlays[i], tId = o.thumbnailId, sg = o.slideshowGroup;
| |
- | if ((!tId && !sg) || (tId && tId == this.thumbsUserSetId)
| |
- | || (sg && sg === this.slideshowGroup)) {
| |
- | this.createOverlay(o);
| |
- | }
| |
- | }
| |
- | var os = [];
| |
- | for (var i = 0; i < this.overlays.length; i++) {
| |
- | var o = hs.$('hsId'+ this.overlays[i]);
| |
- | if (/panel$/.test(o.position)) this.positionOverlay(o);
| |
- | else hs.push(os, o);
| |
- | }
| |
- | for (var i = 0; i < os.length; i++) this.positionOverlay(os[i]);
| |
- | this.gotOverlays = true;
| |
- | },
| |
- | genOverlayBox : function() {
| |
- | if (!this.overlayBox) this.overlayBox = hs.createElement (
| |
- | 'div', {
| |
- | className: this.wrapperClassName
| |
- | }, {
| |
- | position : 'absolute',
| |
- | width: (this.x.size || (this.useBox ? this.width : null)
| |
- | || this.x.full) +'px',
| |
- | height: (this.y.size || this.y.full) +'px',
| |
- | visibility : 'hidden',
| |
- | overflow : 'hidden',
| |
- | zIndex : hs.ie ? 4 : 'auto'
| |
- | },
| |
- | hs.container,
| |
- | true
| |
- | );
| |
- | },
| |
- | sizeOverlayBox : function(doWrapper, doPanels) {
| |
- | var overlayBox = this.overlayBox,
| |
- | x = this.x,
| |
- | y = this.y;
| |
- | hs.setStyles( overlayBox, {
| |
- | width: x.size +'px',
| |
- | height: y.size +'px'
| |
- | });
| |
- | if (doWrapper || doPanels) {
| |
- | for (var i = 0; i < this.overlays.length; i++) {
| |
- | var o = hs.$('hsId'+ this.overlays[i]);
| |
- | var ie6 = (hs.ieLt7 || document.compatMode == 'BackCompat');
| |
- | if (o && /^(above|below)$/.test(o.position)) {
| |
- | if (ie6) {
| |
- | o.style.width = (overlayBox.offsetWidth + 2 * x.cb
| |
- | + x.p1 + x.p2) +'px';
| |
- | }
| |
- | y[o.position == 'above' ? 'p1' : 'p2'] = o.offsetHeight;
| |
- | }
| |
- | if (o && ie6 && /^(left|right)panel$/.test(o.position)) {
| |
- | o.style.height = (overlayBox.offsetHeight + 2* y.cb) +'px';
| |
- | }
| |
- | }
| |
- | }
| |
- | if (doWrapper) {
| |
- | hs.setStyles(this.content, {
| |
- | top: y.p1 +'px'
| |
- | });
| |
- | hs.setStyles(overlayBox, {
| |
- | top: (y.p1 + y.cb) +'px'
| |
- | });
| |
- | }
| |
- | },
| |
- |
| |
- | showOverlays : function() {
| |
- | var b = this.overlayBox;
| |
- | b.className = '';
| |
- | hs.setStyles(b, {
| |
- | top: (this.y.p1 + this.y.cb) +'px',
| |
- | left: (this.x.p1 + this.x.cb) +'px',
| |
- | overflow : 'visible'
| |
- | });
| |
- | if (hs.safari) b.style.visibility = 'visible';
| |
- | this.wrapper.appendChild (b);
| |
- | for (var i = 0; i < this.overlays.length; i++) {
| |
- | var o = hs.$('hsId'+ this.overlays[i]);
| |
- | o.style.zIndex = o.zIndex || 4;
| |
- | if (!o.hideOnMouseOut || this.mouseIsOver) {
| |
- | o.style.visibility = 'visible';
| |
- | hs.setStyles(o, { visibility: 'visible', display: '' });
| |
- | hs.animate(o, { opacity: o.opacity }, o.dur);
| |
- | }
| |
- | }
| |
- | },
| |
- |
| |
- | destroyOverlays : function() {
| |
- | if (!this.overlays.length) return;
| |
- | if (this.slideshow) {
| |
- | var c = this.slideshow.controls;
| |
- | if (c && hs.getExpander(c) == this) c.parentNode.removeChild(c);
| |
- | }
| |
- | for (var i = 0; i < this.overlays.length; i++) {
| |
- | var o = hs.$('hsId'+ this.overlays[i]);
| |
- | if (o && o.parentNode == hs.viewport && hs.getExpander(o) == this) hs.discardElement(o);
| |
- | }
| |
- | hs.discardElement(this.overlayBox);
| |
- | },
| |
- |
| |
- |
| |
- |
| |
- | createFullExpand : function () {
| |
- | if (this.slideshow && this.slideshow.controls) {
| |
- | this.slideshow.enable('full-expand');
| |
- | return;
| |
- | }
| |
- | this.fullExpandLabel = hs.createElement(
| |
- | 'a', {
| |
- | href: 'javascript:hs.expanders['+ this.key +'].doFullExpand();',
| |
- | title: hs.lang.fullExpandTitle,
| |
- | className: 'highslide-full-expand'
| |
- | }
| |
- | );
| |
- |
| |
- | this.createOverlay({
| |
- | overlayId: this.fullExpandLabel,
| |
- | position: hs.fullExpandPosition,
| |
- | hideOnMouseOut: true,
| |
- | opacity: hs.fullExpandOpacity
| |
- | });
| |
- | },
| |
- |
| |
- | doFullExpand : function () {
| |
- | try {
| |
- | if (this.fullExpandLabel) hs.discardElement(this.fullExpandLabel);
| |
- |
| |
- | this.focus();
| |
- | var xSize = this.x.size,
| |
- | ySize = this.y.size;
| |
- | this.resizeTo(this.x.full, this.y.full);
| |
- |
| |
- | var xpos = this.x.pos - (this.x.size - xSize) / 2;
| |
- | if (xpos < hs.marginLeft) xpos = hs.marginLeft;
| |
- |
| |
- | var ypos = this.y.pos - (this.y.size - ySize) / 2;
| |
- | if (ypos < hs.marginTop) ypos = hs.marginTop;
| |
- |
| |
- | this.moveTo(xpos, ypos);
| |
- | this.doShowHide('hidden');
| |
- |
| |
- | } catch (e) {
| |
- | this.error(e);
| |
- | }
| |
- | },
| |
- |
| |
- |
| |
- | afterClose : function () {
| |
- | this.a.className = this.a.className.replace('highslide-active-anchor', '');
| |
- |
| |
- | this.doShowHide('visible');
| |
- | if (this.outline && this.outlineWhileAnimating) this.outline.destroy();
| |
- |
| |
- | hs.discardElement(this.wrapper);
| |
- | this.destroyOverlays();
| |
- | if (!hs.viewport.childNodes.length) hs.viewport.style.display = 'none';
| |
- |
| |
- | if (this.dimmingOpacity) hs.undim(this.key);
| |
- | hs.expanders[this.key] = null;
| |
- | hs.reOrder();
| |
- | }
| |
- |
| |
- | };
| |
- |
| |
- |
| |
- | hs.Slideshow = function (expKey, options) {
| |
- | if (hs.dynamicallyUpdateAnchors !== false) hs.updateAnchors();
| |
- | this.expKey = expKey;
| |
- | for (var x in options) this[x] = options[x];
| |
- | if (this.useControls) this.getControls();
| |
- | if (this.thumbstrip) this.thumbstrip = hs.Thumbstrip(this);
| |
- | };
| |
- | hs.Slideshow.prototype = {
| |
- | getControls: function() {
| |
- | this.controls = hs.createElement('div', { innerHTML: hs.replaceLang(hs.skin.controls) },
| |
- | null, hs.container);
| |
- |
| |
- | var buttons = ['play', 'pause', 'previous', 'next', 'move', 'full-expand', 'close'];
| |
- | this.btn = {};
| |
- | var pThis = this;
| |
- | for (var i = 0; i < buttons.length; i++) {
| |
- | this.btn[buttons[i]] = hs.getElementByClass(this.controls, 'li', 'highslide-'+ buttons[i]);
| |
- | this.enable(buttons[i]);
| |
- | }
| |
- | this.btn.pause.style.display = 'none';
| |
- | //this.disable('full-expand');
| |
- | },
| |
- | checkFirstAndLast: function() {
| |
- | if (this.repeat || !this.controls) return;
| |
- | var exp = hs.expanders[this.expKey],
| |
- | cur = exp.getAnchorIndex(),
| |
- | re = /disabled$/;
| |
- | if (cur == 0)
| |
- | this.disable('previous');
| |
- | else if (re.test(this.btn.previous.getElementsByTagName('a')[0].className))
| |
- | this.enable('previous');
| |
- | if (cur + 1 == hs.anchors.groups[exp.slideshowGroup || 'none'].length) {
| |
- | this.disable('next');
| |
- | this.disable('play');
| |
- | } else if (re.test(this.btn.next.getElementsByTagName('a')[0].className)) {
| |
- | this.enable('next');
| |
- | this.enable('play');
| |
- | }
| |
- | },
| |
- | enable: function(btn) {
| |
- | if (!this.btn) return;
| |
- | var sls = this, a = this.btn[btn].getElementsByTagName('a')[0], re = /disabled$/;
| |
- | a.onclick = function() {
| |
- | sls[btn]();
| |
- | return false;
| |
- | };
| |
- | if (re.test(a.className)) a.className = a.className.replace(re, '');
| |
- | },
| |
- | disable: function(btn) {
| |
- | if (!this.btn) return;
| |
- | var a = this.btn[btn].getElementsByTagName('a')[0];
| |
- | a.onclick = function() { return false; };
| |
- | if (!/disabled$/.test(a.className)) a.className += ' disabled';
| |
- | },
| |
- | hitSpace: function() {
| |
- | if (this.autoplay) this.pause();
| |
- | else this.play();
| |
- | },
| |
- | play: function(wait) {
| |
- | if (this.btn) {
| |
- | this.btn.play.style.display = 'none';
| |
- | this.btn.pause.style.display = '';
| |
- | }
| |
- |
| |
- | this.autoplay = true;
| |
- | if (!wait) hs.next(this.expKey);
| |
- | },
| |
- | pause: function() {
| |
- | if (this.btn) {
| |
- | this.btn.pause.style.display = 'none';
| |
- | this.btn.play.style.display = '';
| |
- | }
| |
- |
| |
- | clearTimeout(this.autoplay);
| |
- | this.autoplay = null;
| |
- | },
| |
- | previous: function() {
| |
- | this.pause();
| |
- | hs.previous(this.btn.previous);
| |
- | },
| |
- | next: function() {
| |
- | this.pause();
| |
- | hs.next(this.btn.next);
| |
- | },
| |
- | move: function() {},
| |
- | 'full-expand': function() {
| |
- | hs.getExpander().doFullExpand();
| |
- | },
| |
- | close: function() {
| |
- | hs.close(this.btn.close);
| |
- | }
| |
- | };
| |
- | hs.Thumbstrip = function(slideshow) {
| |
- | function add (exp) {
| |
- | hs.extend(options || {}, {
| |
- | overlayId: dom,
| |
- | hsId: 'thumbstrip',
| |
- | className: 'highslide-thumbstrip-'+ mode +'-overlay ' + (options.className || '')
| |
- | });
| |
- | if (hs.ieLt7) options.fade = 0;
| |
- | exp.createOverlay(options);
| |
- | hs.setStyles(dom.parentNode, { overflow: 'hidden' });
| |
- | };
| |
- |
| |
- | function scroll (delta) {
| |
- | selectThumb(undefined, Math.round(delta * dom[isX ? 'offsetWidth' : 'offsetHeight'] * 0.7));
| |
- | };
| |
- |
| |
- | function selectThumb (i, scrollBy) {
| |
- | if (i === undefined) for (var j = 0; j < group.length; j++) {
| |
- | if (group[j] == hs.expanders[slideshow.expKey].a) {
| |
- | i = j;
| |
- | break;
| |
- | }
| |
- | }
| |
- | if (i === undefined) return;
| |
- | var as = dom.getElementsByTagName('a'),
| |
- | active = as[i],
| |
- | cell = active.parentNode,
| |
- | left = isX ? 'Left' : 'Top',
| |
- | right = isX ? 'Right' : 'Bottom',
| |
- | width = isX ? 'Width' : 'Height',
| |
- | offsetLeft = 'offset' + left,
| |
- | offsetWidth = 'offset' + width,
| |
- | overlayWidth = div.parentNode.parentNode[offsetWidth],
| |
- | minTblPos = overlayWidth - table[offsetWidth],
| |
- | curTblPos = parseInt(table.style[isX ? 'left' : 'top']) || 0,
| |
- | tblPos = curTblPos,
| |
- | mgnRight = 20;
| |
- | if (scrollBy !== undefined) {
| |
- | tblPos = curTblPos - scrollBy;
| |
- |
| |
- | if (minTblPos > 0) minTblPos = 0;
| |
- | if (tblPos > 0) tblPos = 0;
| |
- | if (tblPos < minTblPos) tblPos = minTblPos;
| |
- |
| |
- |
| |
- | } else {
| |
- | for (var j = 0; j < as.length; j++) as[j].className = '';
| |
- | active.className = 'highslide-active-anchor';
| |
- | var activeLeft = i > 0 ? as[i - 1].parentNode[offsetLeft] : cell[offsetLeft],
| |
- | activeRight = cell[offsetLeft] + cell[offsetWidth] +
| |
- | (as[i + 1] ? as[i + 1].parentNode[offsetWidth] : 0);
| |
- | if (activeRight > overlayWidth - curTblPos) tblPos = overlayWidth - activeRight;
| |
- | else if (activeLeft < -curTblPos) tblPos = -activeLeft;
| |
- | }
| |
- | var markerPos = cell[offsetLeft] + (cell[offsetWidth] - marker[offsetWidth]) / 2 + tblPos;
| |
- | hs.animate(table, isX ? { left: tblPos } : { top: tblPos }, null, 'easeOutQuad');
| |
- | hs.animate(marker, isX ? { left: markerPos } : { top: markerPos }, null, 'easeOutQuad');
| |
- | scrollUp.style.display = tblPos < 0 ? 'block' : 'none';
| |
- | scrollDown.style.display = (tblPos > minTblPos) ? 'block' : 'none';
| |
- |
| |
- | };
| |
- |
| |
- |
| |
- | // initialize
| |
- | var group = hs.anchors.groups[hs.expanders[slideshow.expKey].slideshowGroup || 'none'],
| |
- | options = slideshow.thumbstrip,
| |
- | mode = options.mode || 'horizontal',
| |
- | floatMode = (mode == 'float'),
| |
- | tree = floatMode ? ['div', 'ul', 'li', 'span'] : ['table', 'tbody', 'tr', 'td'],
| |
- | isX = (mode == 'horizontal'),
| |
- | dom = hs.createElement('div', {
| |
- | className: 'highslide-thumbstrip highslide-thumbstrip-'+ mode,
| |
- | innerHTML:
| |
- | '<div class="highslide-thumbstrip-inner">'+
| |
- | '<'+ tree[0] +'><'+ tree[1] +'></'+ tree[1] +'></'+ tree[0] +'></div>'+
| |
- | '<div class="highslide-scroll-up"><div></div></div>'+
| |
- | '<div class="highslide-scroll-down"><div></div></div>'+
| |
- | '<div class="highslide-marker"><div></div></div>'
| |
- | }, {
| |
- | display: 'none'
| |
- | }, hs.container),
| |
- | domCh = dom.childNodes,
| |
- | div = domCh[0],
| |
- | scrollUp = domCh[1],
| |
- | scrollDown = domCh[2],
| |
- | marker = domCh[3],
| |
- | table = div.firstChild,
| |
- | tbody = dom.getElementsByTagName(tree[1])[0],
| |
- | tr;
| |
- | for (var i = 0; i < group.length; i++) {
| |
- | if (i == 0 || !isX) tr = hs.createElement(tree[2], null, null, tbody);
| |
- | (function(){
| |
- | var a = group[i],
| |
- | cell = hs.createElement(tree[3], null, null, tr),
| |
- | pI = i;
| |
- | hs.createElement('a', {
| |
- | href: a.href,
| |
- | title: a.title,
| |
- | onclick: function() {
| |
- | if (/highslide-active-anchor/.test(this.className)) return false;
| |
- | hs.getExpander(this).focus();
| |
- | return hs.transit(a);
| |
- | },
| |
- | innerHTML: hs.stripItemFormatter ? hs.stripItemFormatter(a) : a.innerHTML
| |
- | }, null, cell);
| |
- | })();
| |
- | }
| |
- | if (!floatMode) {
| |
- | scrollUp.onclick = function () { scroll(-1); };
| |
- | scrollDown.onclick = function() { scroll(1); };
| |
- | hs.addEventListener(tbody, document.onmousewheel !== undefined ?
| |
- | 'mousewheel' : 'DOMMouseScroll', function(e) {
| |
- | var delta = 0;
| |
- | e = e || window.event;
| |
- | if (e.wheelDelta) {
| |
- | delta = e.wheelDelta/120;
| |
- | if (hs.opera) delta = -delta;
| |
- | } else if (e.detail) {
| |
- | delta = -e.detail/3;
| |
- | }
| |
- | if (delta) scroll(-delta * 0.2);
| |
- | if (e.preventDefault) e.preventDefault();
| |
- | e.returnValue = false;
| |
- | });
| |
- | }
| |
- |
| |
- | return {
| |
- | add: add,
| |
- | selectThumb: selectThumb
| |
- | }
| |
- | };
| |
- | hs.langDefaults = hs.lang;
| |
- | // history
| |
- | var HsExpander = hs.Expander;
| |
- | if (hs.ie && window == window.top) {
| |
- | (function () {
| |
- | try {
| |
- | document.documentElement.doScroll('left');
| |
- | } catch (e) {
| |
- | setTimeout(arguments.callee, 50);
| |
- | return;
| |
- | }
| |
- | hs.ready();
| |
- | })();
| |
- | }
| |
- | hs.addEventListener(document, 'DOMContentLoaded', hs.ready);
| |
- | hs.addEventListener(window, 'load', hs.ready);
| |
- |
| |
- | // set handlers
| |
- | hs.addEventListener(document, 'ready', function() {
| |
- | if (hs.expandCursor || hs.dimmingOpacity) {
| |
- | var style = hs.createElement('style', { type: 'text/css' }, null,
| |
- | document.getElementsByTagName('HEAD')[0]),
| |
- | backCompat = document.compatMode == 'BackCompat';
| |
- |
| |
- |
| |
- | function addRule(sel, dec) {
| |
- | if (hs.ie && (hs.uaVersion < 9 || backCompat)) {
| |
- | var last = document.styleSheets[document.styleSheets.length - 1];
| |
- | if (typeof(last.addRule) == "object") last.addRule(sel, dec);
| |
- | } else {
| |
- | style.appendChild(document.createTextNode(sel + " {" + dec + "}"));
| |
- | }
| |
- | }
| |
- | function fix(prop) {
| |
- | return 'expression( ( ( ignoreMe = document.documentElement.'+ prop +
| |
- | ' ? document.documentElement.'+ prop +' : document.body.'+ prop +' ) ) + \'px\' );';
| |
- | }
| |
- | if (hs.expandCursor) addRule ('.highslide img',
| |
- | 'cursor: url('+ hs.graphicsDir + hs.expandCursor +'), pointer !important;');
| |
- | addRule ('.highslide-viewport-size',
| |
- | hs.ie && (hs.uaVersion < 7 || backCompat) ?
| |
- | 'position: absolute; '+
| |
- | 'left:'+ fix('scrollLeft') +
| |
- | 'top:'+ fix('scrollTop') +
| |
- | 'width:'+ fix('clientWidth') +
| |
- | 'height:'+ fix('clientHeight') :
| |
- | 'position: fixed; width: 100%; height: 100%; left: 0; top: 0');
| |
- | }
| |
- | });
| |
- | hs.addEventListener(window, 'resize', function() {
| |
- | hs.getPageSize();
| |
- | if (hs.viewport) for (var i = 0; i < hs.viewport.childNodes.length; i++) {
| |
- | var node = hs.viewport.childNodes[i],
| |
- | exp = hs.getExpander(node);
| |
- | exp.positionOverlay(node);
| |
- | if (node.hsId == 'thumbstrip') exp.slideshow.thumbstrip.selectThumb();
| |
- | }
| |
- | });
| |
- | hs.addEventListener(document, 'mousemove', function(e) {
| |
- | hs.mouse = { x: e.clientX, y: e.clientY };
| |
- | });
| |
- | hs.addEventListener(document, 'mousedown', hs.mouseClickHandler);
| |
- | hs.addEventListener(document, 'mouseup', hs.mouseClickHandler);
| |
- |
| |
- | hs.addEventListener(document, 'ready', hs.getAnchors);
| |
- | hs.addEventListener(window, 'load', hs.preloadImages);
| |
- | }
| |
- | </script>
| |
- |
| |
- | <!-- highslide.config script--><script type="text/javascript">
| |
- | /**
| |
- | * Site-specific configuration settings for Highslide JS
| |
- | */
| |
- | hs.graphicsDir = 'highslide/graphics/';
| |
- | hs.outlineType = 'custom';
| |
- | hs.fadeInOut = true;
| |
- | hs.align = 'center';
| |
- | hs.captionEval = 'this.a.title';
| |
- |
| |
- |
| |
- | // Add the slideshow controller
| |
- | hs.addSlideshow({
| |
- | slideshowGroup: 'group1',
| |
- | interval: 5000,
| |
- | repeat: true,
| |
- | useControls: true,
| |
- | fixedControls: 'fit',
| |
- | overlayOptions: {
| |
- | opacity: 0.75,
| |
- | position: 'bottom center',
| |
- | offsetX: 0,
| |
- | offsetY: -15,
| |
- | hideOnMouseOut: true
| |
- | }
| |
- | });
| |
- |
| |
- | // gallery config object
| |
- | var config1 = {
| |
- | slideshowGroup: 'group1',
| |
- | transitions: ['expand', 'crossfade']
| |
- | };
| |
- | </script>
| |
| | | |
| <style type="text/css"> | | <style type="text/css"> |