The only place where the string `webfx` is mentioned was in playQueue.jsp, to include a small css file, twice, that only applies to webfx components, that aren't used anywhere in the codebase.master
							parent
							
								
									83882b18d9
								
							
						
					
					
						commit
						aff7bd3d57
					
				| @ -1,157 +0,0 @@ | ||||
| <component lightWeight="true"> | ||||
| <attach event="onpropertychange" onevent="checkPropertyChange()" /> | ||||
| <attach event="ondetach" onevent="restore()" /> | ||||
| <script> | ||||
| //<![CDATA[ | ||||
| 
 | ||||
| var doc = element.document; | ||||
| 
 | ||||
| function init() { | ||||
| 	updateBorderBoxWidth(); | ||||
| 	updateBorderBoxHeight(); | ||||
| } | ||||
| 
 | ||||
| function restore() { | ||||
| 	element.runtimeStyle.width = ""; | ||||
| 	element.runtimeStyle.height = ""; | ||||
| } | ||||
| 
 | ||||
| /* border width getters */ | ||||
| function getBorderWidth(sSide) { | ||||
| 	if (element.currentStyle["border" + sSide + "Style"] == "none") | ||||
| 		return 0; | ||||
| 	var n = parseInt(element.currentStyle["border" + sSide + "Width"]); | ||||
| 	return n || 0; | ||||
| } | ||||
| 
 | ||||
| function getBorderLeftWidth() { return getBorderWidth("Left"); } | ||||
| function getBorderRightWidth() { return getBorderWidth("Right"); } | ||||
| function getBorderTopWidth() { return getBorderWidth("Top"); } | ||||
| function getBorderBottomWidth() { return getBorderWidth("Bottom"); } | ||||
| /* end border width getters */ | ||||
| 
 | ||||
| /* padding getters */ | ||||
| function getPadding(sSide) { | ||||
| 	var n = parseInt(element.currentStyle["padding" + sSide]); | ||||
| 	return n || 0; | ||||
| } | ||||
| 
 | ||||
| function getPaddingLeft() { return getPadding("Left"); } | ||||
| function getPaddingRight() { return getPadding("Right"); } | ||||
| function getPaddingTop() { return getPadding("Top"); } | ||||
| function getPaddingBottom() { return getPadding("Bottom"); } | ||||
| /* end padding getters */ | ||||
| 
 | ||||
| function getBoxSizing() { | ||||
| 	var s = element.style; | ||||
| 	var cs = element.currentStyle | ||||
| 
 | ||||
| 	if (typeof s.boxSizing != "undefined" && s.boxSizing != "") | ||||
| 		return s.boxSizing; | ||||
| 	if (typeof s["box-sizing"] != "undefined" && s["box-sizing"] != "") | ||||
| 		return s["box-sizing"]; | ||||
| 	if (typeof cs.boxSizing != "undefined" && cs.boxSizing != "") | ||||
| 		return cs.boxSizing; | ||||
| 	if (typeof cs["box-sizing"] != "undefined" && cs["box-sizing"] != "") | ||||
| 		return cs["box-sizing"]; | ||||
| 	return getDocumentBoxSizing(); | ||||
| } | ||||
| 
 | ||||
| function getDocumentBoxSizing() { | ||||
| 	if (doc.compatMode == null || doc.compatMode == "BackCompat") | ||||
| 		return "border-box"; | ||||
| 	return "content-box" | ||||
| } | ||||
| 
 | ||||
| /* width and height setters */ | ||||
| function setBorderBoxWidth(n) { | ||||
| 	element.runtimeStyle.width = Math.max(0, n - getBorderLeftWidth() - | ||||
| 		getPaddingLeft() - getPaddingRight() - getBorderRightWidth()) + "px"; | ||||
| } | ||||
| 
 | ||||
| function setBorderBoxHeight(n) { | ||||
| 	element.runtimeStyle.height = Math.max(0, n - getBorderTopWidth() - | ||||
| 		getPaddingTop() - getPaddingBottom() - getBorderBottomWidth()) + "px"; | ||||
| } | ||||
| 
 | ||||
| function setContentBoxWidth(n) { | ||||
| 	element.runtimeStyle.width = Math.max(0, n + getBorderLeftWidth() + | ||||
| 		getPaddingLeft() + getPaddingRight() + getBorderRightWidth()) + "px"; | ||||
| } | ||||
| 
 | ||||
| function setContentBoxHeight(n) { | ||||
| 	element.runtimeStyle.height = Math.max(0, n + getBorderTopWidth() + | ||||
| 		getPaddingTop() + getPaddingBottom() + getBorderBottomWidth()) + "px"; | ||||
| } | ||||
| /* end width and height setters */ | ||||
| 
 | ||||
| function updateBorderBoxWidth() { | ||||
| 	element.runtimeStyle.width = ""; | ||||
| 	if (getDocumentBoxSizing() == getBoxSizing()) | ||||
| 		return; | ||||
| 	var csw = element.currentStyle.width; | ||||
| 	if (csw != "auto" && csw.indexOf("px") != -1) { | ||||
| 		if (getBoxSizing() == "border-box") | ||||
| 			setBorderBoxWidth(parseInt(csw)); | ||||
| 		else | ||||
| 			setContentBoxWidth(parseInt(csw)); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function updateBorderBoxHeight() { | ||||
| 	element.runtimeStyle.height = "";	 | ||||
| 	if (getDocumentBoxSizing() == getBoxSizing()) | ||||
| 		return; | ||||
| 	var csh = element.currentStyle.height; | ||||
| 	if (csh != "auto" && csh.indexOf("px") != -1) { | ||||
| 		if (getBoxSizing() == "border-box") | ||||
| 			setBorderBoxHeight(parseInt(csh)); | ||||
| 		else | ||||
| 			setContentBoxHeight(parseInt(csh)); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function checkPropertyChange() { | ||||
| 	var pn = event.propertyName; | ||||
| 	var undef; | ||||
| 
 | ||||
| 	if (pn == "style.boxSizing" && element.style.boxSizing == "") { | ||||
| 		element.style.removeAttribute("boxSizing"); | ||||
| 		element.runtimeStyle.boxSizing = undef;		 | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| 	switch (pn) { | ||||
| 		case "style.width": | ||||
| 		case "style.borderLeftWidth": | ||||
| 		case "style.borderLeftStyle": | ||||
| 		case "style.borderRightWidth": | ||||
| 		case "style.borderRightStyle": | ||||
| 		case "style.paddingLeft": | ||||
| 		case "style.paddingRight": | ||||
| 			updateBorderBoxWidth(); | ||||
| 			break; | ||||
| 		 | ||||
| 		case "style.height": | ||||
| 		case "style.borderTopWidth": | ||||
| 		case "style.borderTopStyle": | ||||
| 		case "style.borderBottomWidth": | ||||
| 		case "style.borderBottomStyle": | ||||
| 		case "style.paddingTop": | ||||
| 		case "style.paddingBottom": | ||||
| 			updateBorderBoxHeight(); | ||||
| 			break; | ||||
| 		 | ||||
| 		case "className": | ||||
| 		case "style.boxSizing": | ||||
| 			updateBorderBoxWidth(); | ||||
| 			updateBorderBoxHeight(); | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| init(); | ||||
| 
 | ||||
| //]]> | ||||
| </script> | ||||
| </component> | ||||
| Before Width: | Height: | Size: 266 B | 
| Before Width: | Height: | Size: 271 B | 
| Before Width: | Height: | Size: 252 B | 
| Before Width: | Height: | Size: 257 B | 
| @ -1,75 +0,0 @@ | ||||
| .dynamic-slider-control { | ||||
| 	position:			relative; | ||||
| 	/*background-color:	ThreeDFace;*/  | ||||
| 	-moz-user-focus:	normal; | ||||
| 	-moz-user-select:	none; | ||||
| 	cursor:				default; | ||||
| } | ||||
| 
 | ||||
| .horizontal { | ||||
| 	width:				200px; | ||||
| 	height:				27px; | ||||
| } | ||||
| 
 | ||||
| .vertical { | ||||
| 	width:				29px; | ||||
| 	height:				200px; | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control input { | ||||
| 	display:	none; | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control .handle { | ||||
| 	position:			absolute; | ||||
| 	font-size:			1px; | ||||
| 	overflow:			hidden; | ||||
| 	-moz-user-select:	none; | ||||
| 	cursor:				default; | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control.horizontal .handle { | ||||
| 	width:				11px; | ||||
| 	height:				21px; | ||||
| 	background-image:	url("handle.horizontal.png"); | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control.horizontal .handle div {} | ||||
| .dynamic-slider-control.horizontal .handle.hover { | ||||
| 	background-image:	url("handle.horizontal.hover.png"); | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control.vertical .handle { | ||||
| 	width:				25px; | ||||
| 	height:				13px; | ||||
| 	background-image:	url("handle.vertical.png"); | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control.vertical .handle.hover { | ||||
| 	background-image:	url("handle.vertical.hover.png"); | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control .line { | ||||
| 	position:			absolute; | ||||
| 	font-size:			0.01mm; | ||||
| 	overflow:			hidden; | ||||
| 	border:				1px solid; | ||||
| 	border-color:		ThreeDShadow ThreeDHighlight | ||||
| 						ThreeDHighlight ThreeDShadow; | ||||
| 	-moz-border-radius:	50%; | ||||
| 
 | ||||
| 	behavior:			url("boxsizing.htc"); /* ie path bug */ | ||||
| 	box-sizing:			content-box; | ||||
| 	-moz-box-sizing:	content-box; | ||||
| } | ||||
| .dynamic-slider-control.vertical .line { | ||||
| 	width:				2px; | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control.horizontal .line { | ||||
| 	height:				2px; | ||||
| } | ||||
| 
 | ||||
| .dynamic-slider-control .line div { | ||||
| 	display:	none; | ||||
| } | ||||
| @ -1,132 +0,0 @@ | ||||
| /*----------------------------------------------------------------------------\ | ||||
| |                                Range Class                                  | | ||||
| |-----------------------------------------------------------------------------| | ||||
| |                         Created by Erik Arvidsson                           | | ||||
| |                  (http://webfx.eae.net/contact.html#erik)                   |
 | ||||
| |                      For WebFX (http://webfx.eae.net/)                      |
 | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Used to  model the data  used  when working  with  sliders,  scrollbars and | | ||||
| | progress bars.  Based  on  the  ideas of  the javax.swing.BoundedRangeModel | | ||||
| | interface  defined  by  Sun  for  Java;   http://java.sun.com/products/jfc/ |
 | ||||
| | swingdoc-api-1.0.3/com/sun/java/swing/BoundedRangeModel.html                | | ||||
| |-----------------------------------------------------------------------------| | ||||
| |                Copyright (c) 2002, 2005, 2006 Erik Arvidsson                | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Licensed under the Apache License, Version 2.0 (the "License"); you may not | | ||||
| | use this file except in compliance with the License.  You may obtain a copy | | ||||
| | of the License at http://www.apache.org/licenses/LICENSE-2.0                |
 | ||||
| | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | ||||
| | Unless  required  by  applicable law or  agreed  to  in  writing,  software | | ||||
| | distributed under the License is distributed on an  "AS IS" BASIS,  WITHOUT | | ||||
| | WARRANTIES OR  CONDITIONS OF ANY KIND,  either express or implied.  See the | | ||||
| | License  for the  specific language  governing permissions  and limitations | | ||||
| | under the License.                                                          | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | 2002-10-14 | Original version released                                      | | ||||
| | 2005-10-27 | Use Math.round instead of Math.floor                           | | ||||
| | 2006-05-28 | Changed license to Apache Software License 2.0.                | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | | ||||
| \----------------------------------------------------------------------------*/ | ||||
| 
 | ||||
| 
 | ||||
| function Range() { | ||||
| 	this._value = 0; | ||||
| 	this._minimum = 0; | ||||
| 	this._maximum = 100; | ||||
| 	this._extent = 0; | ||||
| 
 | ||||
| 	this._isChanging = false; | ||||
| } | ||||
| 
 | ||||
| Range.prototype.setValue = function (value) { | ||||
| 	value = Math.round(parseFloat(value)); | ||||
| 	if (isNaN(value)) return; | ||||
| 	if (this._value != value) { | ||||
| 		if (value + this._extent > this._maximum) | ||||
| 			this._value = this._maximum - this._extent; | ||||
| 		else if (value < this._minimum) | ||||
| 			this._value = this._minimum; | ||||
| 		else | ||||
| 			this._value = value; | ||||
| 		if (!this._isChanging && typeof this.onchange == "function") | ||||
| 			 this.onchange(); | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| Range.prototype.getValue = function () { | ||||
| 	return this._value; | ||||
| }; | ||||
| 
 | ||||
| Range.prototype.setExtent = function (extent) { | ||||
| 	if (this._extent != extent) { | ||||
| 		if (extent < 0) | ||||
| 			this._extent = 0; | ||||
| 		else if (this._value + extent > this._maximum) | ||||
| 			this._extent = this._maximum - this._value; | ||||
| 		else | ||||
| 			this._extent = extent; | ||||
| 		if (!this._isChanging && typeof this.onchange == "function") | ||||
| 			this.onchange(); | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| Range.prototype.getExtent = function () { | ||||
| 	return this._extent; | ||||
| }; | ||||
| 
 | ||||
| Range.prototype.setMinimum = function (minimum) { | ||||
| 	if (this._minimum != minimum) { | ||||
| 		var oldIsChanging = this._isChanging; | ||||
| 		this._isChanging = true; | ||||
| 
 | ||||
| 		this._minimum = minimum; | ||||
| 
 | ||||
| 		if (minimum > this._value) | ||||
| 			this.setValue(minimum); | ||||
| 		if (minimum > this._maximum) { | ||||
| 			this._extent = 0; | ||||
| 			this.setMaximum(minimum); | ||||
| 			this.setValue(minimum) | ||||
| 		} | ||||
| 		if (minimum + this._extent > this._maximum) | ||||
| 			this._extent = this._maximum - this._minimum; | ||||
| 
 | ||||
| 		this._isChanging = oldIsChanging; | ||||
| 		if (!this._isChanging && typeof this.onchange == "function") | ||||
| 			this.onchange(); | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| Range.prototype.getMinimum = function () { | ||||
| 	return this._minimum; | ||||
| }; | ||||
| 
 | ||||
| Range.prototype.setMaximum = function (maximum) { | ||||
| 	if (this._maximum != maximum) { | ||||
| 		var oldIsChanging = this._isChanging; | ||||
| 		this._isChanging = true; | ||||
| 
 | ||||
| 		this._maximum = maximum; | ||||
| 
 | ||||
| 		if (maximum < this._value) | ||||
| 			this.setValue(maximum - this._extent); | ||||
| 		if (maximum < this._minimum) { | ||||
| 			this._extent = 0; | ||||
| 			this.setMinimum(maximum); | ||||
| 			this.setValue(this._maximum); | ||||
| 		} | ||||
| 		if (maximum < this._minimum + this._extent) | ||||
| 			this._extent = this._maximum - this._minimum; | ||||
| 		if (maximum < this._value + this._extent) | ||||
| 			this._extent = this._maximum - this._value; | ||||
| 
 | ||||
| 		this._isChanging = oldIsChanging; | ||||
| 		if (!this._isChanging && typeof this.onchange == "function") | ||||
| 			this.onchange(); | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| Range.prototype.getMaximum = function () { | ||||
| 	return this._maximum; | ||||
| }; | ||||
| @ -1,489 +0,0 @@ | ||||
| /*----------------------------------------------------------------------------\ | ||||
| |                                Slider 1.02                                  | | ||||
| |-----------------------------------------------------------------------------| | ||||
| |                         Created by Erik Arvidsson                           | | ||||
| |                  (http://webfx.eae.net/contact.html#erik)                   |
 | ||||
| |                      For WebFX (http://webfx.eae.net/)                      |
 | ||||
| |-----------------------------------------------------------------------------| | ||||
| | A  slider  control that  degrades  to an  input control  for non  supported | | ||||
| | browsers.                                                                   | | ||||
| |-----------------------------------------------------------------------------| | ||||
| |                Copyright (c) 2002, 2003, 2006 Erik Arvidsson                | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Licensed under the Apache License, Version 2.0 (the "License"); you may not | | ||||
| | use this file except in compliance with the License.  You may obtain a copy | | ||||
| | of the License at http://www.apache.org/licenses/LICENSE-2.0                |
 | ||||
| | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | ||||
| | Unless  required  by  applicable law or  agreed  to  in  writing,  software | | ||||
| | distributed under the License is distributed on an  "AS IS" BASIS,  WITHOUT | | ||||
| | WARRANTIES OR  CONDITIONS OF ANY KIND,  either express or implied.  See the | | ||||
| | License  for the  specific language  governing permissions  and limitations | | ||||
| | under the License.                                                          | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Dependencies: timer.js - an OO abstraction of timers                        | | ||||
| |               range.js - provides the data model for the slider             | | ||||
| |               winclassic.css or any other css file describing the look      | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | 2002-10-14 | Original version released                                      | | ||||
| | 2003-03-27 | Added a test in the constructor for missing oElement arg       | | ||||
| | 2003-11-27 | Only use mousewheel when focused                               | | ||||
| | 2006-05-28 | Changed license to Apache Software License 2.0.                | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | | ||||
| \----------------------------------------------------------------------------*/ | ||||
| 
 | ||||
| Slider.isSupported = typeof document.createElement != "undefined" && | ||||
| 	typeof document.documentElement != "undefined" && | ||||
| 	typeof document.documentElement.offsetWidth == "number"; | ||||
| 
 | ||||
| 
 | ||||
| function Slider(oElement, oInput, sOrientation) { | ||||
| 	if (!oElement) return; | ||||
| 	this._orientation = sOrientation || "horizontal"; | ||||
| 	this._range = new Range(); | ||||
| 	this._range.setExtent(0); | ||||
| 	this._blockIncrement = 10; | ||||
| 	this._unitIncrement = 1; | ||||
| 	this._timer = new Timer(100); | ||||
| 
 | ||||
| 
 | ||||
| 	if (Slider.isSupported && oElement) { | ||||
| 
 | ||||
| 		this.document = oElement.ownerDocument || oElement.document; | ||||
| 
 | ||||
| 		this.element = oElement; | ||||
| 		this.element.slider = this; | ||||
| 		this.element.unselectable = "on"; | ||||
| 
 | ||||
| 		// add class name tag to class name
 | ||||
| 		this.element.className = this._orientation + " " + this.classNameTag + " " + this.element.className; | ||||
| 
 | ||||
| 		// create line
 | ||||
| 		this.line = this.document.createElement("DIV"); | ||||
| 		this.line.className = "line"; | ||||
| 		this.line.unselectable = "on"; | ||||
| 		this.line.appendChild(this.document.createElement("DIV")); | ||||
| 		this.element.appendChild(this.line); | ||||
| 
 | ||||
| 		// create handle
 | ||||
| 		this.handle = this.document.createElement("DIV"); | ||||
| 		this.handle.className = "handle"; | ||||
| 		this.handle.unselectable = "on"; | ||||
| 		this.handle.appendChild(this.document.createElement("DIV")); | ||||
| 		this.handle.firstChild.appendChild( | ||||
| 			this.document.createTextNode(String.fromCharCode(160))); | ||||
| 		this.element.appendChild(this.handle); | ||||
| 	} | ||||
| 
 | ||||
| 	this.input = oInput; | ||||
| 
 | ||||
| 	// events
 | ||||
| 	var oThis = this; | ||||
| 	this._range.onchange = function () { | ||||
| 		oThis.recalculate(); | ||||
| 		if (typeof oThis.onchange == "function") | ||||
| 			oThis.onchange(); | ||||
| 	}; | ||||
| 
 | ||||
| 	if (Slider.isSupported && oElement) { | ||||
| 		this.element.onfocus		= Slider.eventHandlers.onfocus; | ||||
| 		this.element.onblur			= Slider.eventHandlers.onblur; | ||||
| 		this.element.onmousedown	= Slider.eventHandlers.onmousedown; | ||||
| 		this.element.onmouseover	= Slider.eventHandlers.onmouseover; | ||||
| 		this.element.onmouseout		= Slider.eventHandlers.onmouseout; | ||||
| 		this.element.onkeydown		= Slider.eventHandlers.onkeydown; | ||||
| 		this.element.onkeypress		= Slider.eventHandlers.onkeypress; | ||||
| 		this.element.onmousewheel	= Slider.eventHandlers.onmousewheel; | ||||
| 		this.handle.onselectstart	= | ||||
| 		this.element.onselectstart	= function () { return false; }; | ||||
| 
 | ||||
| 		this._timer.ontimer = function () { | ||||
| 			oThis.ontimer(); | ||||
| 		}; | ||||
| 
 | ||||
| 		// extra recalculate for ie
 | ||||
| 		window.setTimeout(function() { | ||||
| 			oThis.recalculate(); | ||||
| 		}, 1); | ||||
| 	} | ||||
| 	else { | ||||
| 		this.input.onchange = function (e) { | ||||
| 			oThis.setValue(oThis.input.value); | ||||
| 		}; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| Slider.eventHandlers = { | ||||
| 
 | ||||
| 	// helpers to make events a bit easier
 | ||||
| 	getEvent:	function (e, el) { | ||||
| 		if (!e) { | ||||
| 			if (el) | ||||
| 				e = el.document.parentWindow.event; | ||||
| 			else | ||||
| 				e = window.event; | ||||
| 		} | ||||
| 		if (!e.srcElement) { | ||||
| 			var el = e.target; | ||||
| 			while (el != null && el.nodeType != 1) | ||||
| 				el = el.parentNode; | ||||
| 			e.srcElement = el; | ||||
| 		} | ||||
| 		if (typeof e.offsetX == "undefined") { | ||||
| 			e.offsetX = e.layerX; | ||||
| 			e.offsetY = e.layerY; | ||||
| 		} | ||||
| 
 | ||||
| 		return e; | ||||
| 	}, | ||||
| 
 | ||||
| 	getDocument:	function (e) { | ||||
| 		if (e.target) | ||||
| 			return e.target.ownerDocument; | ||||
| 		return e.srcElement.document; | ||||
| 	}, | ||||
| 
 | ||||
| 	getSlider:	function (e) { | ||||
| 		var el = e.target || e.srcElement; | ||||
| 		while (el != null && el.slider == null)	{ | ||||
| 			el = el.parentNode; | ||||
| 		} | ||||
| 		if (el) | ||||
| 			return el.slider; | ||||
| 		return null; | ||||
| 	}, | ||||
| 
 | ||||
| 	getLine:	function (e) { | ||||
| 		var el = e.target || e.srcElement; | ||||
| 		while (el != null && el.className != "line")	{ | ||||
| 			el = el.parentNode; | ||||
| 		} | ||||
| 		return el; | ||||
| 	}, | ||||
| 
 | ||||
| 	getHandle:	function (e) { | ||||
| 		var el = e.target || e.srcElement; | ||||
| 		var re = /handle/; | ||||
| 		while (el != null && !re.test(el.className))	{ | ||||
| 			el = el.parentNode; | ||||
| 		} | ||||
| 		return el; | ||||
| 	}, | ||||
| 	// end helpers
 | ||||
| 
 | ||||
| 	onfocus:	function (e) { | ||||
| 		var s = this.slider; | ||||
| 		s._focused = true; | ||||
| 		s.handle.className = "handle hover"; | ||||
| 	}, | ||||
| 
 | ||||
| 	onblur:	function (e) { | ||||
| 		var s = this.slider | ||||
| 		s._focused = false; | ||||
| 		s.handle.className = "handle"; | ||||
| 	}, | ||||
| 
 | ||||
| 	onmouseover:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 		var s = this.slider; | ||||
| 		if (e.srcElement == s.handle) | ||||
| 			s.handle.className = "handle hover"; | ||||
| 	}, | ||||
| 
 | ||||
| 	onmouseout:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 		var s = this.slider; | ||||
| 		if (e.srcElement == s.handle && !s._focused) | ||||
| 			s.handle.className = "handle"; | ||||
| 	}, | ||||
| 
 | ||||
| 	onmousedown:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 		var s = this.slider; | ||||
| 		if (s.element.focus) | ||||
| 			s.element.focus(); | ||||
| 
 | ||||
| 		Slider._currentInstance = s; | ||||
| 		var doc = s.document; | ||||
| 
 | ||||
| 		if (doc.addEventListener) { | ||||
| 			doc.addEventListener("mousemove", Slider.eventHandlers.onmousemove, true); | ||||
| 			doc.addEventListener("mouseup", Slider.eventHandlers.onmouseup, true); | ||||
| 		} | ||||
| 		else if (doc.attachEvent) { | ||||
| 			doc.attachEvent("onmousemove", Slider.eventHandlers.onmousemove); | ||||
| 			doc.attachEvent("onmouseup", Slider.eventHandlers.onmouseup); | ||||
| 			doc.attachEvent("onlosecapture", Slider.eventHandlers.onmouseup); | ||||
| 			s.element.setCapture(); | ||||
| 		} | ||||
| 
 | ||||
| 		if (Slider.eventHandlers.getHandle(e)) {	// start drag
 | ||||
| 			Slider._sliderDragData = { | ||||
| 				screenX:	e.screenX, | ||||
| 				screenY:	e.screenY, | ||||
| 				dx:			e.screenX - s.handle.offsetLeft, | ||||
| 				dy:			e.screenY - s.handle.offsetTop, | ||||
| 				startValue:	s.getValue(), | ||||
| 				slider:		s | ||||
| 			}; | ||||
| 		} | ||||
| 		else { | ||||
| 			var lineEl = Slider.eventHandlers.getLine(e); | ||||
| 			s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0); | ||||
| 			s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0); | ||||
| 			s._increasing = null; | ||||
| 			s.ontimer(); | ||||
| 		} | ||||
| 	}, | ||||
| 
 | ||||
| 	onmousemove:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 
 | ||||
| 		if (Slider._sliderDragData) {	// drag
 | ||||
| 			var s = Slider._sliderDragData.slider; | ||||
| 
 | ||||
| 			var boundSize = s.getMaximum() - s.getMinimum(); | ||||
| 			var size, pos, reset; | ||||
| 
 | ||||
| 			if (s._orientation == "horizontal") { | ||||
| 				size = s.element.offsetWidth - s.handle.offsetWidth; | ||||
| 				pos = e.screenX - Slider._sliderDragData.dx; | ||||
| 				reset = Math.abs(e.screenY - Slider._sliderDragData.screenY) > 100; | ||||
| 			} | ||||
| 			else { | ||||
| 				size = s.element.offsetHeight - s.handle.offsetHeight; | ||||
| 				pos = s.element.offsetHeight - s.handle.offsetHeight - | ||||
| 					(e.screenY - Slider._sliderDragData.dy); | ||||
| 				reset = Math.abs(e.screenX - Slider._sliderDragData.screenX) > 100; | ||||
| 			} | ||||
| 			s.setValue(reset ? Slider._sliderDragData.startValue : | ||||
| 						s.getMinimum() + boundSize * pos / size); | ||||
| 			return false; | ||||
| 		} | ||||
| 		else { | ||||
| 			var s = Slider._currentInstance; | ||||
| 			if (s != null) { | ||||
| 				var lineEl = Slider.eventHandlers.getLine(e); | ||||
| 				s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0); | ||||
| 				s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 	}, | ||||
| 
 | ||||
| 	onmouseup:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 		var s = Slider._currentInstance; | ||||
| 		var doc = s.document; | ||||
| 		if (doc.removeEventListener) { | ||||
| 			doc.removeEventListener("mousemove", Slider.eventHandlers.onmousemove, true); | ||||
| 			doc.removeEventListener("mouseup", Slider.eventHandlers.onmouseup, true); | ||||
| 		} | ||||
| 		else if (doc.detachEvent) { | ||||
| 			doc.detachEvent("onmousemove", Slider.eventHandlers.onmousemove); | ||||
| 			doc.detachEvent("onmouseup", Slider.eventHandlers.onmouseup); | ||||
| 			doc.detachEvent("onlosecapture", Slider.eventHandlers.onmouseup); | ||||
| 			s.element.releaseCapture(); | ||||
| 		} | ||||
| 
 | ||||
| 		if (Slider._sliderDragData) {	// end drag
 | ||||
| 			Slider._sliderDragData = null; | ||||
| 		} | ||||
| 		else { | ||||
| 			s._timer.stop(); | ||||
| 			s._increasing = null; | ||||
| 		} | ||||
| 		Slider._currentInstance = null; | ||||
| 	}, | ||||
| 
 | ||||
| 	onkeydown:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 		//var s = Slider.eventHandlers.getSlider(e);
 | ||||
| 		var s = this.slider; | ||||
| 		var kc = e.keyCode; | ||||
| 		switch (kc) { | ||||
| 			case 33:	// page up
 | ||||
| 				s.setValue(s.getValue() + s.getBlockIncrement()); | ||||
| 				break; | ||||
| 			case 34:	// page down
 | ||||
| 				s.setValue(s.getValue() - s.getBlockIncrement()); | ||||
| 				break; | ||||
| 			case 35:	// end
 | ||||
| 				s.setValue(s.getOrientation() == "horizontal" ? | ||||
| 					s.getMaximum() : | ||||
| 					s.getMinimum()); | ||||
| 				break; | ||||
| 			case 36:	// home
 | ||||
| 				s.setValue(s.getOrientation() == "horizontal" ? | ||||
| 					s.getMinimum() : | ||||
| 					s.getMaximum()); | ||||
| 				break; | ||||
| 			case 38:	// up
 | ||||
| 			case 39:	// right
 | ||||
| 				s.setValue(s.getValue() + s.getUnitIncrement()); | ||||
| 				break; | ||||
| 
 | ||||
| 			case 37:	// left
 | ||||
| 			case 40:	// down
 | ||||
| 				s.setValue(s.getValue() - s.getUnitIncrement()); | ||||
| 				break; | ||||
| 		} | ||||
| 
 | ||||
| 		if (kc >= 33 && kc <= 40) { | ||||
| 			return false; | ||||
| 		} | ||||
| 	}, | ||||
| 
 | ||||
| 	onkeypress:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 		var kc = e.keyCode; | ||||
| 		if (kc >= 33 && kc <= 40) { | ||||
| 			return false; | ||||
| 		} | ||||
| 	}, | ||||
| 
 | ||||
| 	onmousewheel:	function (e) { | ||||
| 		e = Slider.eventHandlers.getEvent(e, this); | ||||
| 		var s = this.slider; | ||||
| 		if (s._focused) { | ||||
| 			s.setValue(s.getValue() + e.wheelDelta / 120 * s.getUnitIncrement()); | ||||
| 			// windows inverts this on horizontal sliders. That does not
 | ||||
| 			// make sense to me
 | ||||
| 			return false; | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Slider.prototype.classNameTag = "dynamic-slider-control"; | ||||
| 
 | ||||
| Slider.prototype.setValue = function (v) { | ||||
| 	this._range.setValue(v); | ||||
| 	this.input.value = this.getValue(); | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.getValue = function () { | ||||
| 	return this._range.getValue(); | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.setMinimum = function (v) { | ||||
| 	this._range.setMinimum(v); | ||||
| 	this.input.value = this.getValue(); | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.getMinimum = function () { | ||||
| 	return this._range.getMinimum(); | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.setMaximum = function (v) { | ||||
| 	this._range.setMaximum(v); | ||||
| 	this.input.value = this.getValue(); | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.getMaximum = function () { | ||||
| 	return this._range.getMaximum(); | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.setUnitIncrement = function (v) { | ||||
| 	this._unitIncrement = v; | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.getUnitIncrement = function () { | ||||
| 	return this._unitIncrement; | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.setBlockIncrement = function (v) { | ||||
| 	this._blockIncrement = v; | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.getBlockIncrement = function () { | ||||
| 	return this._blockIncrement; | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.getOrientation = function () { | ||||
| 	return this._orientation; | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.setOrientation = function (sOrientation) { | ||||
| 	if (sOrientation != this._orientation) { | ||||
| 		if (Slider.isSupported && this.element) { | ||||
| 			// add class name tag to class name
 | ||||
| 			this.element.className = this.element.className.replace(this._orientation, | ||||
| 									sOrientation); | ||||
| 		} | ||||
| 		this._orientation = sOrientation; | ||||
| 		this.recalculate(); | ||||
| 
 | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.recalculate = function() { | ||||
| 	if (!Slider.isSupported || !this.element) return; | ||||
| 
 | ||||
| 	var w = this.element.offsetWidth; | ||||
| 	var h = this.element.offsetHeight; | ||||
| 	var hw = this.handle.offsetWidth; | ||||
| 	var hh = this.handle.offsetHeight; | ||||
| 	var lw = this.line.offsetWidth; | ||||
| 	var lh = this.line.offsetHeight; | ||||
| 
 | ||||
| 	// this assumes a border-box layout
 | ||||
| 
 | ||||
| 	if (this._orientation == "horizontal") { | ||||
| 		this.handle.style.left = (w - hw) * (this.getValue() - this.getMinimum()) / | ||||
| 			(this.getMaximum() - this.getMinimum()) + "px"; | ||||
| 		this.handle.style.top = (h - hh) / 2 + "px"; | ||||
| 
 | ||||
| 		this.line.style.top = (h - lh) / 2 + "px"; | ||||
| 		this.line.style.left = hw / 2 + "px"; | ||||
| 		//this.line.style.right = hw / 2 + "px";
 | ||||
| 		this.line.style.width = Math.max(0, w - hw - 2)+ "px"; | ||||
| 		this.line.firstChild.style.width = Math.max(0, w - hw - 4)+ "px"; | ||||
| 	} | ||||
| 	else { | ||||
| 		this.handle.style.left = (w - hw) / 2 + "px"; | ||||
| 		this.handle.style.top = h - hh - (h - hh) * (this.getValue() - this.getMinimum()) / | ||||
| 			(this.getMaximum() - this.getMinimum()) + "px"; | ||||
| 
 | ||||
| 		this.line.style.left = (w - lw) / 2 + "px"; | ||||
| 		this.line.style.top = hh / 2 + "px"; | ||||
| 		this.line.style.height = Math.max(0, h - hh - 2) + "px";	//hard coded border width
 | ||||
| 		//this.line.style.bottom = hh / 2 + "px";
 | ||||
| 		this.line.firstChild.style.height = Math.max(0, h - hh - 4) + "px";	//hard coded border width
 | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| Slider.prototype.ontimer = function () { | ||||
| 	var hw = this.handle.offsetWidth; | ||||
| 	var hh = this.handle.offsetHeight; | ||||
| 	var hl = this.handle.offsetLeft; | ||||
| 	var ht = this.handle.offsetTop; | ||||
| 
 | ||||
| 	if (this._orientation == "horizontal") { | ||||
| 		if (this._mouseX > hl + hw && | ||||
| 			(this._increasing == null || this._increasing)) { | ||||
| 			this.setValue(this.getValue() + this.getBlockIncrement()); | ||||
| 			this._increasing = true; | ||||
| 		} | ||||
| 		else if (this._mouseX < hl && | ||||
| 			(this._increasing == null || !this._increasing)) { | ||||
| 			this.setValue(this.getValue() - this.getBlockIncrement()); | ||||
| 			this._increasing = false; | ||||
| 		} | ||||
| 	} | ||||
| 	else { | ||||
| 		if (this._mouseY > ht + hh && | ||||
| 			(this._increasing == null || !this._increasing)) { | ||||
| 			this.setValue(this.getValue() - this.getBlockIncrement()); | ||||
| 			this._increasing = false; | ||||
| 		} | ||||
| 		else if (this._mouseY < ht && | ||||
| 			(this._increasing == null || this._increasing)) { | ||||
| 			this.setValue(this.getValue() + this.getBlockIncrement()); | ||||
| 			this._increasing = true; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	this._timer.start(); | ||||
| }; | ||||
| @ -1,62 +0,0 @@ | ||||
| /*----------------------------------------------------------------------------\ | ||||
| |                                 Timer Class                                 | | ||||
| |-----------------------------------------------------------------------------| | ||||
| |                         Created by Erik Arvidsson                           | | ||||
| |                  (http://webfx.eae.net/contact.html#erik)                   |
 | ||||
| |                      For WebFX (http://webfx.eae.net/)                      |
 | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Object Oriented Encapsulation  of setTimeout  fires ontimer when the  timer | | ||||
| | is triggered. Does not work in IE 5.00                                      | | ||||
| |-----------------------------------------------------------------------------| | ||||
| |                   Copyright (c) 2002, 2006 Erik Arvidsson                   | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Licensed under the Apache License, Version 2.0 (the "License"); you may not | | ||||
| | use this file except in compliance with the License.  You may obtain a copy | | ||||
| | of the License at http://www.apache.org/licenses/LICENSE-2.0                |
 | ||||
| | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | | ||||
| | Unless  required  by  applicable law or  agreed  to  in  writing,  software | | ||||
| | distributed under the License is distributed on an  "AS IS" BASIS,  WITHOUT | | ||||
| | WARRANTIES OR  CONDITIONS OF ANY KIND,  either express or implied.  See the | | ||||
| | License  for the  specific language  governing permissions  and limitations | | ||||
| | under the License.                                                          | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | 2002-10-14 | Original version released                                      | | ||||
| | 2006-05-28 | Changed license to Apache Software License 2.0.                | | ||||
| |-----------------------------------------------------------------------------| | ||||
| | Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | | ||||
| \----------------------------------------------------------------------------*/ | ||||
| 
 | ||||
| function Timer(nPauseTime) { | ||||
| 	this._pauseTime = typeof nPauseTime == "undefined" ? 1000 : nPauseTime; | ||||
| 	this._timer = null; | ||||
| 	this._isStarted = false; | ||||
| } | ||||
| 
 | ||||
| Timer.prototype.start = function () { | ||||
| 	if (this.isStarted()) | ||||
| 		this.stop(); | ||||
| 	var oThis = this; | ||||
| 	this._timer = window.setTimeout(function () { | ||||
| 		if (typeof oThis.ontimer == "function") | ||||
| 			oThis.ontimer(); | ||||
| 	}, this._pauseTime); | ||||
| 	this._isStarted = false; | ||||
| }; | ||||
| 
 | ||||
| Timer.prototype.stop = function () { | ||||
| 	if (this._timer != null) | ||||
| 		window.clearTimeout(this._timer); | ||||
| 	this._isStarted = false; | ||||
| }; | ||||
| 
 | ||||
| Timer.prototype.isStarted = function () { | ||||
| 	return this._isStarted; | ||||
| }; | ||||
| 
 | ||||
| Timer.prototype.getPauseTime = function () { | ||||
| 	return this._pauseTime; | ||||
| }; | ||||
| 
 | ||||
| Timer.prototype.setPauseTime = function (nPauseTime) { | ||||
| 	this._pauseTime = nPauseTime; | ||||
| }; | ||||
					Loading…
					
					
				
		Reference in new issue