if(!sliding) {
HTML_AJAX.grab(encodeURI('rpc.php?action=reset_slideshow'));
nextSlide();
- sliding = setInterval("nextSlide()", 3000);
+ sliding = setInterval("nextSlide()", sliding_time*1000);
document.getElementById('stop_ico').src = "resources/32_stop.png";
}
else {
}
else {
sliding_paused = 0;
- sliding = setInterval("nextSlide()", 3000);
+ sliding = setInterval("nextSlide()", sliding_time*1000);
document.getElementById('pause_ico').src = "resources/32_pause.png";
}
}
}
}
+function initSlider()
+{
+ var sliderEl = document.getElementById ? document.getElementById("slider-1") : null;
+ var inputEl = document.forms[0]["slider-input-1"];
+ var s = new Slider(sliderEl, inputEl);
+ s.setMinimum(1);
+ s.setMaximum(10);
+ s.setValue(sliding_time);
+ document.getElementById("current_slide_time").innerHTML = sliding_time + "s Interval";
+ s.onchange = function () {
+ sliding_time = s.getValue();
+ document.getElementById("current_slide_time").innerHTML = sliding_time + "s Interval";
+ if(!sliding_paused && sliding) {
+ clearInterval(sliding);
+ sliding = setInterval("nextSlide()", sliding_time*1000);
+ }
+ };
+ window.onresize = function () {
+ s.recalculate();
+ };
+
+}
+
var startup = 1;
var calendar_shown = 0;
var calendar_mode = '';
var autobrowse = 0;
var sliding = 0;
var sliding_paused = 0;
+var sliding_time = 3;
--- /dev/null
+rgbdemo.html
+demo.html
+slider.html
+implementation.html
+api.html
+local/
--- /dev/null
+/*\r
+ back: rgb(230,230,230)\r
+ dark: rgb(90,97,90)\r
+ medium rgb(189,190,189)\r
+ */\r
+\r
+.dynamic-slider-control {\r
+ position: relative;\r
+ -moz-user-focus: normal;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+}\r
+\r
+.horizontal {\r
+ width: 200px;\r
+ height: 27px;\r
+}\r
+\r
+.vertical {\r
+ width: 29px;\r
+ height: 200px;\r
+}\r
+\r
+.dynamic-slider-control input {\r
+ display: none;\r
+}\r
+\r
+.dynamic-slider-control .handle {\r
+ position: absolute; \r
+ font-size: 1px;\r
+ overflow: hidden;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+}\r
+\r
+.dynamic-slider-control.horizontal .handle {\r
+ width: 31px;\r
+ height: 14px;\r
+ background-image: url("handle.horizontal.png");\r
+}\r
+\r
+.dynamic-slider-control.horizontal .handle div {}\r
+.dynamic-slider-control.horizontal .handle.hover {}\r
+\r
+.dynamic-slider-control.vertical .handle {\r
+ width: 15px;\r
+ height: 31px;\r
+ background-image: url("handle.vertical.png");\r
+}\r
+\r
+.dynamic-slider-control.vertical .handle.hover {}\r
+\r
+.dynamic-slider-control .line {\r
+ position: absolute;\r
+ font-size: 0.01mm;\r
+ overflow: hidden;\r
+ border: 1px solid rgb(90,97,90);\r
+ background: rgb(189,190,189);\r
+ \r
+ behavior: url("css/boxsizing.htc"); /* ie path bug */\r
+ box-sizing: content-box;\r
+ -moz-box-sizing: content-box;\r
+}\r
+.dynamic-slider-control.vertical .line {\r
+ width: 3px;\r
+}\r
+\r
+.dynamic-slider-control.horizontal .line {\r
+ height: 3px;\r
+}\r
+\r
+.dynamic-slider-control .line div {\r
+ width: 1px;\r
+ height: 1px;\r
+ \r
+ border: 1px solid;\r
+ border-color: rgb(230,230,230) rgb(189,190,189)\r
+ rgb(189,190,189) rgb(230,230,230);\r
+}\r
--- /dev/null
+<component lightWeight="true">\r
+<attach event="onpropertychange" onevent="checkPropertyChange()" />\r
+<attach event="ondetach" onevent="restore()" />\r
+<script>\r
+//<![CDATA[\r
+\r
+var doc = element.document;\r
+\r
+function init() {\r
+ updateBorderBoxWidth();\r
+ updateBorderBoxHeight();\r
+}\r
+\r
+function restore() {\r
+ element.runtimeStyle.width = "";\r
+ element.runtimeStyle.height = "";\r
+}\r
+\r
+/* border width getters */\r
+function getBorderWidth(sSide) {\r
+ if (element.currentStyle["border" + sSide + "Style"] == "none")\r
+ return 0;\r
+ var n = parseInt(element.currentStyle["border" + sSide + "Width"]);\r
+ return n || 0;\r
+}\r
+\r
+function getBorderLeftWidth() { return getBorderWidth("Left"); }\r
+function getBorderRightWidth() { return getBorderWidth("Right"); }\r
+function getBorderTopWidth() { return getBorderWidth("Top"); }\r
+function getBorderBottomWidth() { return getBorderWidth("Bottom"); }\r
+/* end border width getters */\r
+\r
+/* padding getters */\r
+function getPadding(sSide) {\r
+ var n = parseInt(element.currentStyle["padding" + sSide]);\r
+ return n || 0;\r
+}\r
+\r
+function getPaddingLeft() { return getPadding("Left"); }\r
+function getPaddingRight() { return getPadding("Right"); }\r
+function getPaddingTop() { return getPadding("Top"); }\r
+function getPaddingBottom() { return getPadding("Bottom"); }\r
+/* end padding getters */\r
+\r
+function getBoxSizing() {\r
+ var s = element.style;\r
+ var cs = element.currentStyle\r
+\r
+ if (typeof s.boxSizing != "undefined" && s.boxSizing != "")\r
+ return s.boxSizing;\r
+ if (typeof s["box-sizing"] != "undefined" && s["box-sizing"] != "")\r
+ return s["box-sizing"];\r
+ if (typeof cs.boxSizing != "undefined" && cs.boxSizing != "")\r
+ return cs.boxSizing;\r
+ if (typeof cs["box-sizing"] != "undefined" && cs["box-sizing"] != "")\r
+ return cs["box-sizing"];\r
+ return getDocumentBoxSizing();\r
+}\r
+\r
+function getDocumentBoxSizing() {\r
+ if (doc.compatMode == null || doc.compatMode == "BackCompat")\r
+ return "border-box";\r
+ return "content-box"\r
+}\r
+\r
+/* width and height setters */\r
+function setBorderBoxWidth(n) {\r
+ element.runtimeStyle.width = Math.max(0, n - getBorderLeftWidth() -\r
+ getPaddingLeft() - getPaddingRight() - getBorderRightWidth()) + "px";\r
+}\r
+\r
+function setBorderBoxHeight(n) {\r
+ element.runtimeStyle.height = Math.max(0, n - getBorderTopWidth() -\r
+ getPaddingTop() - getPaddingBottom() - getBorderBottomWidth()) + "px";\r
+}\r
+\r
+function setContentBoxWidth(n) {\r
+ element.runtimeStyle.width = Math.max(0, n + getBorderLeftWidth() +\r
+ getPaddingLeft() + getPaddingRight() + getBorderRightWidth()) + "px";\r
+}\r
+\r
+function setContentBoxHeight(n) {\r
+ element.runtimeStyle.height = Math.max(0, n + getBorderTopWidth() +\r
+ getPaddingTop() + getPaddingBottom() + getBorderBottomWidth()) + "px";\r
+}\r
+/* end width and height setters */\r
+\r
+function updateBorderBoxWidth() {\r
+ element.runtimeStyle.width = "";\r
+ if (getDocumentBoxSizing() == getBoxSizing())\r
+ return;\r
+ var csw = element.currentStyle.width;\r
+ if (csw != "auto" && csw.indexOf("px") != -1) {\r
+ if (getBoxSizing() == "border-box")\r
+ setBorderBoxWidth(parseInt(csw));\r
+ else\r
+ setContentBoxWidth(parseInt(csw));\r
+ }\r
+}\r
+\r
+function updateBorderBoxHeight() {\r
+ element.runtimeStyle.height = ""; \r
+ if (getDocumentBoxSizing() == getBoxSizing())\r
+ return;\r
+ var csh = element.currentStyle.height;\r
+ if (csh != "auto" && csh.indexOf("px") != -1) {\r
+ if (getBoxSizing() == "border-box")\r
+ setBorderBoxHeight(parseInt(csh));\r
+ else\r
+ setContentBoxHeight(parseInt(csh));\r
+ }\r
+}\r
+\r
+function checkPropertyChange() {\r
+ var pn = event.propertyName;\r
+ var undef;\r
+\r
+ if (pn == "style.boxSizing" && element.style.boxSizing == "") {\r
+ element.style.removeAttribute("boxSizing");\r
+ element.runtimeStyle.boxSizing = undef; \r
+ }\r
+\r
+\r
+ switch (pn) {\r
+ case "style.width":\r
+ case "style.borderLeftWidth":\r
+ case "style.borderLeftStyle":\r
+ case "style.borderRightWidth":\r
+ case "style.borderRightStyle":\r
+ case "style.paddingLeft":\r
+ case "style.paddingRight":\r
+ updateBorderBoxWidth();\r
+ break;\r
+ \r
+ case "style.height":\r
+ case "style.borderTopWidth":\r
+ case "style.borderTopStyle":\r
+ case "style.borderBottomWidth":\r
+ case "style.borderBottomStyle":\r
+ case "style.paddingTop":\r
+ case "style.paddingBottom":\r
+ updateBorderBoxHeight();\r
+ break;\r
+ \r
+ case "className":\r
+ case "style.boxSizing":\r
+ updateBorderBoxWidth();\r
+ updateBorderBoxHeight();\r
+ break;\r
+ }\r
+}\r
+\r
+init();\r
+\r
+//]]>\r
+</script>\r
+</component>
\ No newline at end of file
--- /dev/null
+.dynamic-slider-control {\r
+ position: relative;\r
+ background-color: ThreeDFace;\r
+ -moz-user-focus: normal;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+}\r
+\r
+.horizontal {\r
+ width: 200px;\r
+ height: 27px;\r
+}\r
+\r
+.vertical {\r
+ width: 29px;\r
+ height: 200px;\r
+}\r
+\r
+.dynamic-slider-control input {\r
+ display: none;\r
+}\r
+\r
+.dynamic-slider-control .handle {\r
+ position: absolute; \r
+ font-size: 1px;\r
+ overflow: hidden;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+}\r
+\r
+.dynamic-slider-control.horizontal .handle {\r
+ width: 11px;\r
+ height: 21px;\r
+ background-image: url("handle.horizontal.png");\r
+}\r
+\r
+.dynamic-slider-control.horizontal .handle div {}\r
+.dynamic-slider-control.horizontal .handle.hover {\r
+ background-image: url("handle.horizontal.hover.png");\r
+}\r
+\r
+.dynamic-slider-control.vertical .handle {\r
+ width: 25px;\r
+ height: 13px;\r
+ background-image: url("handle.vertical.png");\r
+}\r
+\r
+.dynamic-slider-control.vertical .handle.hover {\r
+ background-image: url("handle.vertical.hover.png");\r
+}\r
+\r
+.dynamic-slider-control .line {\r
+ position: absolute;\r
+ font-size: 0.01mm;\r
+ overflow: hidden;\r
+ border: 1px solid;\r
+ border-color: ThreeDShadow ThreeDHighlight\r
+ ThreeDHighlight ThreeDShadow;\r
+ -moz-border-radius: 50%;\r
+ \r
+ behavior: url("css/boxsizing.htc"); /* ie path bug */\r
+ box-sizing: content-box;\r
+ -moz-box-sizing: content-box;\r
+}\r
+.dynamic-slider-control.vertical .line {\r
+ width: 2px;\r
+}\r
+\r
+.dynamic-slider-control.horizontal .line {\r
+ height: 2px;\r
+}\r
+\r
+.dynamic-slider-control .line div {\r
+ display: none;\r
+}
\ No newline at end of file
--- /dev/null
+/*\r
+ dark rgb(102,102,102)\r
+ medium rgb(152,153,153)\r
+ gray: rgb(204,204,204)\r
+ bright: white;\r
+ */\r
+\r
+.dynamic-slider-control {\r
+ position: relative;\r
+ background-color: rgb(204,204,204);\r
+ -moz-user-focus: normal;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+}\r
+\r
+.horizontal {\r
+ width: 200px;\r
+ height: 27px;\r
+}\r
+\r
+.vertical {\r
+ width: 29px;\r
+ height: 200px;\r
+}\r
+\r
+.dynamic-slider-control input {\r
+ display: none;\r
+}\r
+\r
+.dynamic-slider-control .handle {\r
+ position: absolute; \r
+ font-size: 1px;\r
+ overflow: hidden;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+}\r
+\r
+.dynamic-slider-control.horizontal .handle {\r
+ width: 15px;\r
+ height: 16px;\r
+ background-image: url("handle.horizontal.png");\r
+}\r
+\r
+.dynamic-slider-control.horizontal .handle div {}\r
+.dynamic-slider-control.horizontal .handle.hover {}\r
+\r
+.dynamic-slider-control.vertical .handle {\r
+ width: 16px;\r
+ height: 15px;\r
+ background-image: url("handle.vertical.png");\r
+}\r
+\r
+.dynamic-slider-control.vertical .handle.hover {}\r
+\r
+.dynamic-slider-control .line {\r
+ position: absolute;\r
+ font-size: 0.01mm;\r
+ overflow: hidden;\r
+ border: 1px solid;\r
+ border-color: rgb(102,102,102) white\r
+ white rgb(102,102,102);\r
+ \r
+ behavior: url("css/boxsizing.htc"); /* ie path bug */\r
+ box-sizing: content-box;\r
+ -moz-box-sizing: content-box;\r
+}\r
+.dynamic-slider-control.vertical .line {\r
+ width: 4px;\r
+}\r
+\r
+.dynamic-slider-control.horizontal .line {\r
+ height: 4px;\r
+}\r
+\r
+.dynamic-slider-control .line div {\r
+ width: 2px;\r
+ height: 2px;\r
+ \r
+ border: 1px solid;\r
+ border-color: rgb(152,153,153) rgb(102,102,102)\r
+ rgb(102,102,102) rgb(152,153,153);\r
+}
\ No newline at end of file
--- /dev/null
+.dynamic-slider-control {\r
+ position: relative;\r
+ background-color: ThreeDFace;\r
+ -moz-user-focus: normal;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+}\r
+\r
+.horizontal {\r
+ width: 200px;\r
+ height: 29px;\r
+}\r
+\r
+.vertical {\r
+ width: 29px;\r
+ height: 200px;\r
+}\r
+\r
+.dynamic-slider-control input {\r
+ display: none;\r
+}\r
+\r
+.dynamic-slider-control .handle {\r
+ position: absolute;\r
+ -moz-user-select: none;\r
+ cursor: default;\r
+ background: ThreeDFace;\r
+ border: 1px solid;\r
+ border-color: ThreeDHighlight ThreeDDarkShadow\r
+ ThreeDDarkShadow ThreeDHighlight;\r
+}\r
+\r
+/* inner border */\r
+.dynamic-slider-control .handle div {\r
+ font-size: 1px;\r
+ border: 1px solid;\r
+ border-color: ThreeDLightShadow ThreeDShadow\r
+ ThreeDShadow ThreeDLightShadow; \r
+\r
+ behavior: url("css/boxsizing.htc"); /* ie path bug */\r
+ box-sizing: content-box;\r
+ -moz-box-sizing: content-box;\r
+}\r
+\r
+/* inner sets size\r
+.dynamic-slider-control.horizontal .handle {\r
+ width: 12px;\r
+ height: 22px;\r
+}\r
+*/\r
+\r
+.dynamic-slider-control.horizontal .handle div {\r
+ width: 8px;\r
+ height: 18px;\r
+}\r
+\r
+.dynamic-slider-control.horizontal .handle.hover {}\r
+\r
+/* inner sets size\r
+.dynamic-slider-control.vertical .handle {\r
+ width: 22px;\r
+ height: 12px;\r
+}\r
+*/\r
+\r
+.dynamic-slider-control.vertical .handle div {\r
+ width: 18px;\r
+ height: 8px;\r
+}\r
+\r
+.dynamic-slider-control.vertical .handle.hover {}\r
+\r
+.dynamic-slider-control .line {\r
+ \r
+ behavior: url("css/boxsizing.htc"); /* ie path bug */\r
+ box-sizing: content-box;\r
+ -moz-box-sizing: content-box;\r
+ \r
+ position: absolute;\r
+ font-size: 0.01mm;\r
+ overflow: hidden;\r
+ border: 1px solid;\r
+ border-color: ThreeDShadow ThreeDHighlight\r
+ ThreeDHighlight ThreeDShadow;\r
+ background: ThreeDDarkShadow;\r
+}\r
+\r
+.dynamic-slider-control.vertical .line {\r
+ width: 1px;\r
+ \r
+}\r
+\r
+.dynamic-slider-control.horizontal .line {\r
+ height: 1px;\r
+}\r
+\r
+.dynamic-slider-control .line div {\r
+ display: none;\r
+}
\ No newline at end of file
--- /dev/null
+/*----------------------------------------------------------------------------\\r
+| Range Class |\r
+|-----------------------------------------------------------------------------|\r
+| Created by Erik Arvidsson |\r
+| (http://webfx.eae.net/contact.html#erik) |\r
+| For WebFX (http://webfx.eae.net/) |\r
+|-----------------------------------------------------------------------------|\r
+| Used to model the data used when working with sliders, scrollbars and |\r
+| progress bars. Based on the ideas of the javax.swing.BoundedRangeModel |\r
+| interface defined by Sun for Java; http://java.sun.com/products/jfc/ |\r
+| swingdoc-api-1.0.3/com/sun/java/swing/BoundedRangeModel.html |\r
+|-----------------------------------------------------------------------------|\r
+| Copyright (c) 2002, 2005, 2006 Erik Arvidsson |\r
+|-----------------------------------------------------------------------------|\r
+| Licensed under the Apache License, Version 2.0 (the "License"); you may not |\r
+| use this file except in compliance with the License. You may obtain a copy |\r
+| of the License at http://www.apache.org/licenses/LICENSE-2.0 |\r
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |\r
+| Unless required by applicable law or agreed to in writing, software |\r
+| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |\r
+| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |\r
+| License for the specific language governing permissions and limitations |\r
+| under the License. |\r
+|-----------------------------------------------------------------------------|\r
+| 2002-10-14 | Original version released |\r
+| 2005-10-27 | Use Math.round instead of Math.floor |\r
+| 2006-05-28 | Changed license to Apache Software License 2.0. |\r
+|-----------------------------------------------------------------------------|\r
+| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 |\r
+\----------------------------------------------------------------------------*/\r
+\r
+\r
+function Range() {\r
+ this._value = 0;\r
+ this._minimum = 0;\r
+ this._maximum = 100;\r
+ this._extent = 0;\r
+\r
+ this._isChanging = false;\r
+}\r
+\r
+Range.prototype.setValue = function (value) {\r
+ value = Math.round(parseFloat(value));\r
+ if (isNaN(value)) return;\r
+ if (this._value != value) {\r
+ if (value + this._extent > this._maximum)\r
+ this._value = this._maximum - this._extent;\r
+ else if (value < this._minimum)\r
+ this._value = this._minimum;\r
+ else\r
+ this._value = value;\r
+ if (!this._isChanging && typeof this.onchange == "function")\r
+ this.onchange();\r
+ }\r
+};\r
+\r
+Range.prototype.getValue = function () {\r
+ return this._value;\r
+};\r
+\r
+Range.prototype.setExtent = function (extent) {\r
+ if (this._extent != extent) {\r
+ if (extent < 0)\r
+ this._extent = 0;\r
+ else if (this._value + extent > this._maximum)\r
+ this._extent = this._maximum - this._value;\r
+ else\r
+ this._extent = extent;\r
+ if (!this._isChanging && typeof this.onchange == "function")\r
+ this.onchange();\r
+ }\r
+};\r
+\r
+Range.prototype.getExtent = function () {\r
+ return this._extent;\r
+};\r
+\r
+Range.prototype.setMinimum = function (minimum) {\r
+ if (this._minimum != minimum) {\r
+ var oldIsChanging = this._isChanging;\r
+ this._isChanging = true;\r
+\r
+ this._minimum = minimum;\r
+\r
+ if (minimum > this._value)\r
+ this.setValue(minimum);\r
+ if (minimum > this._maximum) {\r
+ this._extent = 0;\r
+ this.setMaximum(minimum);\r
+ this.setValue(minimum)\r
+ }\r
+ if (minimum + this._extent > this._maximum)\r
+ this._extent = this._maximum - this._minimum;\r
+\r
+ this._isChanging = oldIsChanging;\r
+ if (!this._isChanging && typeof this.onchange == "function")\r
+ this.onchange();\r
+ }\r
+};\r
+\r
+Range.prototype.getMinimum = function () {\r
+ return this._minimum;\r
+};\r
+\r
+Range.prototype.setMaximum = function (maximum) {\r
+ if (this._maximum != maximum) {\r
+ var oldIsChanging = this._isChanging;\r
+ this._isChanging = true;\r
+\r
+ this._maximum = maximum;\r
+\r
+ if (maximum < this._value)\r
+ this.setValue(maximum - this._extent);\r
+ if (maximum < this._minimum) {\r
+ this._extent = 0;\r
+ this.setMinimum(maximum);\r
+ this.setValue(this._maximum);\r
+ }\r
+ if (maximum < this._minimum + this._extent)\r
+ this._extent = this._maximum - this._minimum;\r
+ if (maximum < this._value + this._extent)\r
+ this._extent = this._maximum - this._value;\r
+\r
+ this._isChanging = oldIsChanging;\r
+ if (!this._isChanging && typeof this.onchange == "function")\r
+ this.onchange();\r
+ }\r
+};\r
+\r
+Range.prototype.getMaximum = function () {\r
+ return this._maximum;\r
+};\r
--- /dev/null
+/*----------------------------------------------------------------------------\\r
+| Slider 1.02 |\r
+|-----------------------------------------------------------------------------|\r
+| Created by Erik Arvidsson |\r
+| (http://webfx.eae.net/contact.html#erik) |\r
+| For WebFX (http://webfx.eae.net/) |\r
+|-----------------------------------------------------------------------------|\r
+| A slider control that degrades to an input control for non supported |\r
+| browsers. |\r
+|-----------------------------------------------------------------------------|\r
+| Copyright (c) 2002, 2003, 2006 Erik Arvidsson |\r
+|-----------------------------------------------------------------------------|\r
+| Licensed under the Apache License, Version 2.0 (the "License"); you may not |\r
+| use this file except in compliance with the License. You may obtain a copy |\r
+| of the License at http://www.apache.org/licenses/LICENSE-2.0 |\r
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |\r
+| Unless required by applicable law or agreed to in writing, software |\r
+| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |\r
+| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |\r
+| License for the specific language governing permissions and limitations |\r
+| under the License. |\r
+|-----------------------------------------------------------------------------|\r
+| Dependencies: timer.js - an OO abstraction of timers |\r
+| range.js - provides the data model for the slider |\r
+| winclassic.css or any other css file describing the look |\r
+|-----------------------------------------------------------------------------|\r
+| 2002-10-14 | Original version released |\r
+| 2003-03-27 | Added a test in the constructor for missing oElement arg |\r
+| 2003-11-27 | Only use mousewheel when focused |\r
+| 2006-05-28 | Changed license to Apache Software License 2.0. |\r
+|-----------------------------------------------------------------------------|\r
+| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 |\r
+\----------------------------------------------------------------------------*/\r
+\r
+Slider.isSupported = typeof document.createElement != "undefined" &&\r
+ typeof document.documentElement != "undefined" &&\r
+ typeof document.documentElement.offsetWidth == "number";\r
+\r
+\r
+function Slider(oElement, oInput, sOrientation) {\r
+ if (!oElement) return;\r
+ this._orientation = sOrientation || "horizontal";\r
+ this._range = new Range();\r
+ this._range.setExtent(0);\r
+ this._blockIncrement = 10;\r
+ this._unitIncrement = 1;\r
+ this._timer = new Timer(100);\r
+\r
+\r
+ if (Slider.isSupported && oElement) {\r
+\r
+ this.document = oElement.ownerDocument || oElement.document;\r
+\r
+ this.element = oElement;\r
+ this.element.slider = this;\r
+ this.element.unselectable = "on";\r
+\r
+ // add class name tag to class name\r
+ this.element.className = this._orientation + " " + this.classNameTag + " " + this.element.className;\r
+\r
+ // create line\r
+ this.line = this.document.createElement("DIV");\r
+ this.line.className = "line";\r
+ this.line.unselectable = "on";\r
+ this.line.appendChild(this.document.createElement("DIV"));\r
+ this.element.appendChild(this.line);\r
+\r
+ // create handle\r
+ this.handle = this.document.createElement("DIV");\r
+ this.handle.className = "handle";\r
+ this.handle.unselectable = "on";\r
+ this.handle.appendChild(this.document.createElement("DIV"));\r
+ this.handle.firstChild.appendChild(\r
+ this.document.createTextNode(String.fromCharCode(160)));\r
+ this.element.appendChild(this.handle);\r
+ }\r
+\r
+ this.input = oInput;\r
+\r
+ // events\r
+ var oThis = this;\r
+ this._range.onchange = function () {\r
+ oThis.recalculate();\r
+ if (typeof oThis.onchange == "function")\r
+ oThis.onchange();\r
+ };\r
+\r
+ if (Slider.isSupported && oElement) {\r
+ this.element.onfocus = Slider.eventHandlers.onfocus;\r
+ this.element.onblur = Slider.eventHandlers.onblur;\r
+ this.element.onmousedown = Slider.eventHandlers.onmousedown;\r
+ this.element.onmouseover = Slider.eventHandlers.onmouseover;\r
+ this.element.onmouseout = Slider.eventHandlers.onmouseout;\r
+ this.element.onkeydown = Slider.eventHandlers.onkeydown;\r
+ this.element.onkeypress = Slider.eventHandlers.onkeypress;\r
+ this.element.onmousewheel = Slider.eventHandlers.onmousewheel;\r
+ this.handle.onselectstart =\r
+ this.element.onselectstart = function () { return false; };\r
+\r
+ this._timer.ontimer = function () {\r
+ oThis.ontimer();\r
+ };\r
+\r
+ // extra recalculate for ie\r
+ window.setTimeout(function() {\r
+ oThis.recalculate();\r
+ }, 1);\r
+ }\r
+ else {\r
+ this.input.onchange = function (e) {\r
+ oThis.setValue(oThis.input.value);\r
+ };\r
+ }\r
+}\r
+\r
+Slider.eventHandlers = {\r
+\r
+ // helpers to make events a bit easier\r
+ getEvent: function (e, el) {\r
+ if (!e) {\r
+ if (el)\r
+ e = el.document.parentWindow.event;\r
+ else\r
+ e = window.event;\r
+ }\r
+ if (!e.srcElement) {\r
+ var el = e.target;\r
+ while (el != null && el.nodeType != 1)\r
+ el = el.parentNode;\r
+ e.srcElement = el;\r
+ }\r
+ if (typeof e.offsetX == "undefined") {\r
+ e.offsetX = e.layerX;\r
+ e.offsetY = e.layerY;\r
+ }\r
+\r
+ return e;\r
+ },\r
+\r
+ getDocument: function (e) {\r
+ if (e.target)\r
+ return e.target.ownerDocument;\r
+ return e.srcElement.document;\r
+ },\r
+\r
+ getSlider: function (e) {\r
+ var el = e.target || e.srcElement;\r
+ while (el != null && el.slider == null) {\r
+ el = el.parentNode;\r
+ }\r
+ if (el)\r
+ return el.slider;\r
+ return null;\r
+ },\r
+\r
+ getLine: function (e) {\r
+ var el = e.target || e.srcElement;\r
+ while (el != null && el.className != "line") {\r
+ el = el.parentNode;\r
+ }\r
+ return el;\r
+ },\r
+\r
+ getHandle: function (e) {\r
+ var el = e.target || e.srcElement;\r
+ var re = /handle/;\r
+ while (el != null && !re.test(el.className)) {\r
+ el = el.parentNode;\r
+ }\r
+ return el;\r
+ },\r
+ // end helpers\r
+\r
+ onfocus: function (e) {\r
+ var s = this.slider;\r
+ s._focused = true;\r
+ s.handle.className = "handle hover";\r
+ },\r
+\r
+ onblur: function (e) {\r
+ var s = this.slider\r
+ s._focused = false;\r
+ s.handle.className = "handle";\r
+ },\r
+\r
+ onmouseover: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+ var s = this.slider;\r
+ if (e.srcElement == s.handle)\r
+ s.handle.className = "handle hover";\r
+ },\r
+\r
+ onmouseout: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+ var s = this.slider;\r
+ if (e.srcElement == s.handle && !s._focused)\r
+ s.handle.className = "handle";\r
+ },\r
+\r
+ onmousedown: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+ var s = this.slider;\r
+ if (s.element.focus)\r
+ s.element.focus();\r
+\r
+ Slider._currentInstance = s;\r
+ var doc = s.document;\r
+\r
+ if (doc.addEventListener) {\r
+ doc.addEventListener("mousemove", Slider.eventHandlers.onmousemove, true);\r
+ doc.addEventListener("mouseup", Slider.eventHandlers.onmouseup, true);\r
+ }\r
+ else if (doc.attachEvent) {\r
+ doc.attachEvent("onmousemove", Slider.eventHandlers.onmousemove);\r
+ doc.attachEvent("onmouseup", Slider.eventHandlers.onmouseup);\r
+ doc.attachEvent("onlosecapture", Slider.eventHandlers.onmouseup);\r
+ s.element.setCapture();\r
+ }\r
+\r
+ if (Slider.eventHandlers.getHandle(e)) { // start drag\r
+ Slider._sliderDragData = {\r
+ screenX: e.screenX,\r
+ screenY: e.screenY,\r
+ dx: e.screenX - s.handle.offsetLeft,\r
+ dy: e.screenY - s.handle.offsetTop,\r
+ startValue: s.getValue(),\r
+ slider: s\r
+ };\r
+ }\r
+ else {\r
+ var lineEl = Slider.eventHandlers.getLine(e);\r
+ s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0);\r
+ s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0);\r
+ s._increasing = null;\r
+ s.ontimer();\r
+ }\r
+ },\r
+\r
+ onmousemove: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+\r
+ if (Slider._sliderDragData) { // drag\r
+ var s = Slider._sliderDragData.slider;\r
+\r
+ var boundSize = s.getMaximum() - s.getMinimum();\r
+ var size, pos, reset;\r
+\r
+ if (s._orientation == "horizontal") {\r
+ size = s.element.offsetWidth - s.handle.offsetWidth;\r
+ pos = e.screenX - Slider._sliderDragData.dx;\r
+ reset = Math.abs(e.screenY - Slider._sliderDragData.screenY) > 100;\r
+ }\r
+ else {\r
+ size = s.element.offsetHeight - s.handle.offsetHeight;\r
+ pos = s.element.offsetHeight - s.handle.offsetHeight -\r
+ (e.screenY - Slider._sliderDragData.dy);\r
+ reset = Math.abs(e.screenX - Slider._sliderDragData.screenX) > 100;\r
+ }\r
+ s.setValue(reset ? Slider._sliderDragData.startValue :\r
+ s.getMinimum() + boundSize * pos / size);\r
+ return false;\r
+ }\r
+ else {\r
+ var s = Slider._currentInstance;\r
+ if (s != null) {\r
+ var lineEl = Slider.eventHandlers.getLine(e);\r
+ s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0);\r
+ s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0);\r
+ }\r
+ }\r
+\r
+ },\r
+\r
+ onmouseup: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+ var s = Slider._currentInstance;\r
+ var doc = s.document;\r
+ if (doc.removeEventListener) {\r
+ doc.removeEventListener("mousemove", Slider.eventHandlers.onmousemove, true);\r
+ doc.removeEventListener("mouseup", Slider.eventHandlers.onmouseup, true);\r
+ }\r
+ else if (doc.detachEvent) {\r
+ doc.detachEvent("onmousemove", Slider.eventHandlers.onmousemove);\r
+ doc.detachEvent("onmouseup", Slider.eventHandlers.onmouseup);\r
+ doc.detachEvent("onlosecapture", Slider.eventHandlers.onmouseup);\r
+ s.element.releaseCapture();\r
+ }\r
+\r
+ if (Slider._sliderDragData) { // end drag\r
+ Slider._sliderDragData = null;\r
+ }\r
+ else {\r
+ s._timer.stop();\r
+ s._increasing = null;\r
+ }\r
+ Slider._currentInstance = null;\r
+ },\r
+\r
+ onkeydown: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+ //var s = Slider.eventHandlers.getSlider(e);\r
+ var s = this.slider;\r
+ var kc = e.keyCode;\r
+ switch (kc) {\r
+ case 33: // page up\r
+ s.setValue(s.getValue() + s.getBlockIncrement());\r
+ break;\r
+ case 34: // page down\r
+ s.setValue(s.getValue() - s.getBlockIncrement());\r
+ break;\r
+ case 35: // end\r
+ s.setValue(s.getOrientation() == "horizontal" ?\r
+ s.getMaximum() :\r
+ s.getMinimum());\r
+ break;\r
+ case 36: // home\r
+ s.setValue(s.getOrientation() == "horizontal" ?\r
+ s.getMinimum() :\r
+ s.getMaximum());\r
+ break;\r
+ case 38: // up\r
+ case 39: // right\r
+ s.setValue(s.getValue() + s.getUnitIncrement());\r
+ break;\r
+\r
+ case 37: // left\r
+ case 40: // down\r
+ s.setValue(s.getValue() - s.getUnitIncrement());\r
+ break;\r
+ }\r
+\r
+ if (kc >= 33 && kc <= 40) {\r
+ return false;\r
+ }\r
+ },\r
+\r
+ onkeypress: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+ var kc = e.keyCode;\r
+ if (kc >= 33 && kc <= 40) {\r
+ return false;\r
+ }\r
+ },\r
+\r
+ onmousewheel: function (e) {\r
+ e = Slider.eventHandlers.getEvent(e, this);\r
+ var s = this.slider;\r
+ if (s._focused) {\r
+ s.setValue(s.getValue() + e.wheelDelta / 120 * s.getUnitIncrement());\r
+ // windows inverts this on horizontal sliders. That does not\r
+ // make sense to me\r
+ return false;\r
+ }\r
+ }\r
+};\r
+\r
+\r
+\r
+Slider.prototype.classNameTag = "dynamic-slider-control",\r
+\r
+Slider.prototype.setValue = function (v) {\r
+ this._range.setValue(v);\r
+ this.input.value = this.getValue();\r
+};\r
+\r
+Slider.prototype.getValue = function () {\r
+ return this._range.getValue();\r
+};\r
+\r
+Slider.prototype.setMinimum = function (v) {\r
+ this._range.setMinimum(v);\r
+ this.input.value = this.getValue();\r
+};\r
+\r
+Slider.prototype.getMinimum = function () {\r
+ return this._range.getMinimum();\r
+};\r
+\r
+Slider.prototype.setMaximum = function (v) {\r
+ this._range.setMaximum(v);\r
+ this.input.value = this.getValue();\r
+};\r
+\r
+Slider.prototype.getMaximum = function () {\r
+ return this._range.getMaximum();\r
+};\r
+\r
+Slider.prototype.setUnitIncrement = function (v) {\r
+ this._unitIncrement = v;\r
+};\r
+\r
+Slider.prototype.getUnitIncrement = function () {\r
+ return this._unitIncrement;\r
+};\r
+\r
+Slider.prototype.setBlockIncrement = function (v) {\r
+ this._blockIncrement = v;\r
+};\r
+\r
+Slider.prototype.getBlockIncrement = function () {\r
+ return this._blockIncrement;\r
+};\r
+\r
+Slider.prototype.getOrientation = function () {\r
+ return this._orientation;\r
+};\r
+\r
+Slider.prototype.setOrientation = function (sOrientation) {\r
+ if (sOrientation != this._orientation) {\r
+ if (Slider.isSupported && this.element) {\r
+ // add class name tag to class name\r
+ this.element.className = this.element.className.replace(this._orientation,\r
+ sOrientation);\r
+ }\r
+ this._orientation = sOrientation;\r
+ this.recalculate();\r
+\r
+ }\r
+};\r
+\r
+Slider.prototype.recalculate = function() {\r
+ if (!Slider.isSupported || !this.element) return;\r
+\r
+ var w = this.element.offsetWidth;\r
+ var h = this.element.offsetHeight;\r
+ var hw = this.handle.offsetWidth;\r
+ var hh = this.handle.offsetHeight;\r
+ var lw = this.line.offsetWidth;\r
+ var lh = this.line.offsetHeight;\r
+\r
+ // this assumes a border-box layout\r
+\r
+ if (this._orientation == "horizontal") {\r
+ this.handle.style.left = (w - hw) * (this.getValue() - this.getMinimum()) /\r
+ (this.getMaximum() - this.getMinimum()) + "px";\r
+ this.handle.style.top = (h - hh) / 2 + "px";\r
+\r
+ this.line.style.top = (h - lh) / 2 + "px";\r
+ this.line.style.left = hw / 2 + "px";\r
+ //this.line.style.right = hw / 2 + "px";\r
+ this.line.style.width = Math.max(0, w - hw - 2)+ "px";\r
+ this.line.firstChild.style.width = Math.max(0, w - hw - 4)+ "px";\r
+ }\r
+ else {\r
+ this.handle.style.left = (w - hw) / 2 + "px";\r
+ this.handle.style.top = h - hh - (h - hh) * (this.getValue() - this.getMinimum()) /\r
+ (this.getMaximum() - this.getMinimum()) + "px";\r
+\r
+ this.line.style.left = (w - lw) / 2 + "px";\r
+ this.line.style.top = hh / 2 + "px";\r
+ this.line.style.height = Math.max(0, h - hh - 2) + "px"; //hard coded border width\r
+ //this.line.style.bottom = hh / 2 + "px";\r
+ this.line.firstChild.style.height = Math.max(0, h - hh - 4) + "px"; //hard coded border width\r
+ }\r
+};\r
+\r
+Slider.prototype.ontimer = function () {\r
+ var hw = this.handle.offsetWidth;\r
+ var hh = this.handle.offsetHeight;\r
+ var hl = this.handle.offsetLeft;\r
+ var ht = this.handle.offsetTop;\r
+\r
+ if (this._orientation == "horizontal") {\r
+ if (this._mouseX > hl + hw &&\r
+ (this._increasing == null || this._increasing)) {\r
+ this.setValue(this.getValue() + this.getBlockIncrement());\r
+ this._increasing = true;\r
+ }\r
+ else if (this._mouseX < hl &&\r
+ (this._increasing == null || !this._increasing)) {\r
+ this.setValue(this.getValue() - this.getBlockIncrement());\r
+ this._increasing = false;\r
+ }\r
+ }\r
+ else {\r
+ if (this._mouseY > ht + hh &&\r
+ (this._increasing == null || !this._increasing)) {\r
+ this.setValue(this.getValue() - this.getBlockIncrement());\r
+ this._increasing = false;\r
+ }\r
+ else if (this._mouseY < ht &&\r
+ (this._increasing == null || this._increasing)) {\r
+ this.setValue(this.getValue() + this.getBlockIncrement());\r
+ this._increasing = true;\r
+ }\r
+ }\r
+\r
+ this._timer.start();\r
+};
\ No newline at end of file
--- /dev/null
+/*----------------------------------------------------------------------------\\r
+| Timer Class |\r
+|-----------------------------------------------------------------------------|\r
+| Created by Erik Arvidsson |\r
+| (http://webfx.eae.net/contact.html#erik) |\r
+| For WebFX (http://webfx.eae.net/) |\r
+|-----------------------------------------------------------------------------|\r
+| Object Oriented Encapsulation of setTimeout fires ontimer when the timer |\r
+| is triggered. Does not work in IE 5.00 |\r
+|-----------------------------------------------------------------------------|\r
+| Copyright (c) 2002, 2006 Erik Arvidsson |\r
+|-----------------------------------------------------------------------------|\r
+| Licensed under the Apache License, Version 2.0 (the "License"); you may not |\r
+| use this file except in compliance with the License. You may obtain a copy |\r
+| of the License at http://www.apache.org/licenses/LICENSE-2.0 |\r
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |\r
+| Unless required by applicable law or agreed to in writing, software |\r
+| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |\r
+| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |\r
+| License for the specific language governing permissions and limitations |\r
+| under the License. |\r
+|-----------------------------------------------------------------------------|\r
+| 2002-10-14 | Original version released |\r
+| 2006-05-28 | Changed license to Apache Software License 2.0. |\r
+|-----------------------------------------------------------------------------|\r
+| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 |\r
+\----------------------------------------------------------------------------*/\r
+\r
+function Timer(nPauseTime) {\r
+ this._pauseTime = typeof nPauseTime == "undefined" ? 1000 : nPauseTime;\r
+ this._timer = null;\r
+ this._isStarted = false;\r
+}\r
+\r
+Timer.prototype.start = function () {\r
+ if (this.isStarted())\r
+ this.stop();\r
+ var oThis = this;\r
+ this._timer = window.setTimeout(function () {\r
+ if (typeof oThis.ontimer == "function")\r
+ oThis.ontimer();\r
+ }, this._pauseTime);\r
+ this._isStarted = false;\r
+};\r
+\r
+Timer.prototype.stop = function () {\r
+ if (this._timer != null)\r
+ window.clearTimeout(this._timer);\r
+ this._isStarted = false;\r
+};\r
+\r
+Timer.prototype.isStarted = function () {\r
+ return this._isStarted;\r
+};\r
+\r
+Timer.prototype.getPauseTime = function () {\r
+ return this._pauseTime;\r
+};\r
+\r
+Timer.prototype.setPauseTime = function (nPauseTime) {\r
+ this._pauseTime = nPauseTime;\r
+};
\ No newline at end of file
--- /dev/null
+\r
+ Apache License\r
+ Version 2.0, January 2004\r
+ http://www.apache.org/licenses/\r
+\r
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r
+\r
+ 1. Definitions.\r
+\r
+ "License" shall mean the terms and conditions for use, reproduction,\r
+ and distribution as defined by Sections 1 through 9 of this document.\r
+\r
+ "Licensor" shall mean the copyright owner or entity authorized by\r
+ the copyright owner that is granting the License.\r
+\r
+ "Legal Entity" shall mean the union of the acting entity and all\r
+ other entities that control, are controlled by, or are under common\r
+ control with that entity. For the purposes of this definition,\r
+ "control" means (i) the power, direct or indirect, to cause the\r
+ direction or management of such entity, whether by contract or\r
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the\r
+ outstanding shares, or (iii) beneficial ownership of such entity.\r
+\r
+ "You" (or "Your") shall mean an individual or Legal Entity\r
+ exercising permissions granted by this License.\r
+\r
+ "Source" form shall mean the preferred form for making modifications,\r
+ including but not limited to software source code, documentation\r
+ source, and configuration files.\r
+\r
+ "Object" form shall mean any form resulting from mechanical\r
+ transformation or translation of a Source form, including but\r
+ not limited to compiled object code, generated documentation,\r
+ and conversions to other media types.\r
+\r
+ "Work" shall mean the work of authorship, whether in Source or\r
+ Object form, made available under the License, as indicated by a\r
+ copyright notice that is included in or attached to the work\r
+ (an example is provided in the Appendix below).\r
+\r
+ "Derivative Works" shall mean any work, whether in Source or Object\r
+ form, that is based on (or derived from) the Work and for which the\r
+ editorial revisions, annotations, elaborations, or other modifications\r
+ represent, as a whole, an original work of authorship. For the purposes\r
+ of this License, Derivative Works shall not include works that remain\r
+ separable from, or merely link (or bind by name) to the interfaces of,\r
+ the Work and Derivative Works thereof.\r
+\r
+ "Contribution" shall mean any work of authorship, including\r
+ the original version of the Work and any modifications or additions\r
+ to that Work or Derivative Works thereof, that is intentionally\r
+ submitted to Licensor for inclusion in the Work by the copyright owner\r
+ or by an individual or Legal Entity authorized to submit on behalf of\r
+ the copyright owner. For the purposes of this definition, "submitted"\r
+ means any form of electronic, verbal, or written communication sent\r
+ to the Licensor or its representatives, including but not limited to\r
+ communication on electronic mailing lists, source code control systems,\r
+ and issue tracking systems that are managed by, or on behalf of, the\r
+ Licensor for the purpose of discussing and improving the Work, but\r
+ excluding communication that is conspicuously marked or otherwise\r
+ designated in writing by the copyright owner as "Not a Contribution."\r
+\r
+ "Contributor" shall mean Licensor and any individual or Legal Entity\r
+ on behalf of whom a Contribution has been received by Licensor and\r
+ subsequently incorporated within the Work.\r
+\r
+ 2. Grant of Copyright License. Subject to the terms and conditions of\r
+ this License, each Contributor hereby grants to You a perpetual,\r
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
+ copyright license to reproduce, prepare Derivative Works of,\r
+ publicly display, publicly perform, sublicense, and distribute the\r
+ Work and such Derivative Works in Source or Object form.\r
+\r
+ 3. Grant of Patent License. Subject to the terms and conditions of\r
+ this License, each Contributor hereby grants to You a perpetual,\r
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r
+ (except as stated in this section) patent license to make, have made,\r
+ use, offer to sell, sell, import, and otherwise transfer the Work,\r
+ where such license applies only to those patent claims licensable\r
+ by such Contributor that are necessarily infringed by their\r
+ Contribution(s) alone or by combination of their Contribution(s)\r
+ with the Work to which such Contribution(s) was submitted. If You\r
+ institute patent litigation against any entity (including a\r
+ cross-claim or counterclaim in a lawsuit) alleging that the Work\r
+ or a Contribution incorporated within the Work constitutes direct\r
+ or contributory patent infringement, then any patent licenses\r
+ granted to You under this License for that Work shall terminate\r
+ as of the date such litigation is filed.\r
+\r
+ 4. Redistribution. You may reproduce and distribute copies of the\r
+ Work or Derivative Works thereof in any medium, with or without\r
+ modifications, and in Source or Object form, provided that You\r
+ meet the following conditions:\r
+\r
+ (a) You must give any other recipients of the Work or\r
+ Derivative Works a copy of this License; and\r
+\r
+ (b) You must cause any modified files to carry prominent notices\r
+ stating that You changed the files; and\r
+\r
+ (c) You must retain, in the Source form of any Derivative Works\r
+ that You distribute, all copyright, patent, trademark, and\r
+ attribution notices from the Source form of the Work,\r
+ excluding those notices that do not pertain to any part of\r
+ the Derivative Works; and\r
+\r
+ (d) If the Work includes a "NOTICE" text file as part of its\r
+ distribution, then any Derivative Works that You distribute must\r
+ include a readable copy of the attribution notices contained\r
+ within such NOTICE file, excluding those notices that do not\r
+ pertain to any part of the Derivative Works, in at least one\r
+ of the following places: within a NOTICE text file distributed\r
+ as part of the Derivative Works; within the Source form or\r
+ documentation, if provided along with the Derivative Works; or,\r
+ within a display generated by the Derivative Works, if and\r
+ wherever such third-party notices normally appear. The contents\r
+ of the NOTICE file are for informational purposes only and\r
+ do not modify the License. You may add Your own attribution\r
+ notices within Derivative Works that You distribute, alongside\r
+ or as an addendum to the NOTICE text from the Work, provided\r
+ that such additional attribution notices cannot be construed\r
+ as modifying the License.\r
+\r
+ You may add Your own copyright statement to Your modifications and\r
+ may provide additional or different license terms and conditions\r
+ for use, reproduction, or distribution of Your modifications, or\r
+ for any such Derivative Works as a whole, provided Your use,\r
+ reproduction, and distribution of the Work otherwise complies with\r
+ the conditions stated in this License.\r
+\r
+ 5. Submission of Contributions. Unless You explicitly state otherwise,\r
+ any Contribution intentionally submitted for inclusion in the Work\r
+ by You to the Licensor shall be under the terms and conditions of\r
+ this License, without any additional terms or conditions.\r
+ Notwithstanding the above, nothing herein shall supersede or modify\r
+ the terms of any separate license agreement you may have executed\r
+ with Licensor regarding such Contributions.\r
+\r
+ 6. Trademarks. This License does not grant permission to use the trade\r
+ names, trademarks, service marks, or product names of the Licensor,\r
+ except as required for reasonable and customary use in describing the\r
+ origin of the Work and reproducing the content of the NOTICE file.\r
+\r
+ 7. Disclaimer of Warranty. Unless required by applicable law or\r
+ agreed to in writing, Licensor provides the Work (and each\r
+ Contributor provides its Contributions) on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r
+ implied, including, without limitation, any warranties or conditions\r
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\r
+ PARTICULAR PURPOSE. You are solely responsible for determining the\r
+ appropriateness of using or redistributing the Work and assume any\r
+ risks associated with Your exercise of permissions under this License.\r
+\r
+ 8. Limitation of Liability. In no event and under no legal theory,\r
+ whether in tort (including negligence), contract, or otherwise,\r
+ unless required by applicable law (such as deliberate and grossly\r
+ negligent acts) or agreed to in writing, shall any Contributor be\r
+ liable to You for damages, including any direct, indirect, special,\r
+ incidental, or consequential damages of any character arising as a\r
+ result of this License or out of the use or inability to use the\r
+ Work (including but not limited to damages for loss of goodwill,\r
+ work stoppage, computer failure or malfunction, or any and all\r
+ other commercial damages or losses), even if such Contributor\r
+ has been advised of the possibility of such damages.\r
+\r
+ 9. Accepting Warranty or Additional Liability. While redistributing\r
+ the Work or Derivative Works thereof, You may choose to offer,\r
+ and charge a fee for, acceptance of support, warranty, indemnity,\r
+ or other liability obligations and/or rights consistent with this\r
+ License. However, in accepting such obligations, You may act only\r
+ on Your own behalf and on Your sole responsibility, not on behalf\r
+ of any other Contributor, and only if You agree to indemnify,\r
+ defend, and hold each Contributor harmless for any liability\r
+ incurred by, or claims asserted against, such Contributor by reason\r
+ of your accepting any such warranty or additional liability.\r
+\r
+ END OF TERMS AND CONDITIONS\r
+\r
+ APPENDIX: How to apply the Apache License to your work.\r
+\r
+ To apply the Apache License to your work, attach the following\r
+ boilerplate notice, with the fields enclosed by brackets "[]"\r
+ replaced with your own identifying information. (Don't include\r
+ the brackets!) The text should be enclosed in the appropriate\r
+ comment syntax for the file format. We also recommend that a\r
+ file or class name and description of purpose be included on the\r
+ same "printed page" as the copyright notice for easier\r
+ identification within third-party archives.\r
+\r
+ Copyright [yyyy] [name of copyright owner]\r
+\r
+ Licensed under the Apache License, Version 2.0 (the "License");\r
+ you may not use this file except in compliance with the License.\r
+ You may obtain a copy of the License at\r
+\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
padding: 10px;\r
}\r
\r
+body.slideshow {\r
+ background-color: #ffffff;\r
+ color: rgb(26,151,15);\r
+ font-family: sans-serif;\r
+ font-style: normal;\r
+ border: none;\r
+ padding: 10px;\r
+ text-align: center;\r
+}\r
+\r
+\r
table, tr, td {\r
border-collapse: collapse;\r
padding: 0px;\r
{include file="header.tpl"}
- <body onload="startSlideShow();" style="text-align: center;">
+ <script type="text/javascript" src="slider/js/range.js"></script>
+ <script type="text/javascript" src="slider/js/timer.js"></script>
+ <script type="text/javascript" src="slider/js/slider.js"></script>
+ <link type="text/css" rel="StyleSheet" href="slider/css/bluecurve/bluecurve.css" />
+ <body onload="startSlideShow();" class="slideshow">
<div id="slide_navigation">
<a href="javascript:prevSlide();" onclick="click(this);" title="slive to previous photo"><img id="rew_ico" src="resources/32_rew.png" /></a>
<a href="javascript:pauseSlideShow();" onclick="click(this);"><img id="pause_ico" src="resources/32_pause.png" /></a>
</div>
<div style="margin: 0 auto; padding: 10px;">
<a href="javascript:window.close();" title="click to close slideshow">
- <img id="slide_img" alt="slideshow_img" style="padding: 10px; background-color: #ffffff;" />
+ <img id="slide_img" alt="slideshow_img" style="padding: 15px; background-color: #000000;" />
</a>
</div>
-</body>
+ <form>
+ <div id="slider-1" tabIndex="1" style="margin: 0 auto;" onclick="if(this.blur)this.blur();">
+ <input id="slider-input-1" name="slider-input-1" onclick="if(this.blur)this.blur();" />
+ </div>
+ </form>
+ <div id="current_slide_time"></div>
+ <script type="text/javascript">
+ initSlider();
+ </script>
+ </body>
{include file="footer.tpl"}