+++ /dev/null
-(function($) {\r
-\r
- \r
- //Web Forms 2.0\r
- window.webforms = 1;\r
- if(window['webforms']) {\r
- $(document).ready(function() {\r
- \r
- $("input").each(function() {\r
- if(this.getAttribute("type") == "range") {\r
- var cur = $(this);\r
- var slider = $("<div class='ui-slider'></div>").css({ width: cur.innerWidth()+"px", height: cur.innerHeight()+"px" }).insertAfter(cur);\r
- var handle = $("<div class='ui-slider-handle'></div>").appendTo(slider);\r
-\r
-\r
- slider.css({\r
- "position": cur.css("position") == "absolute" ? "absolute" : "relative",\r
- "left": cur.css("left"),\r
- "right": cur.css("right"),\r
- "zIndex": cur.css("zIndex"),\r
- "float": cur.css("float"),\r
- "clear": cur.css("clear")\r
- });\r
- cur.css({ position: "absolute", opacity: 0, top: "-1000px", left: "-1000px" });\r
- \r
- slider.slider({\r
- maxValue: cur.attr("max"),\r
- minValue: cur.attr("min"),\r
- startValue: this.getAttribute("value"),\r
- stepping: cur.attr("step"),\r
- change: function(e, ui) { cur[0].value = ui.value; cur[0].setAttribute("value", ui.value); },\r
- });\r
- \r
- slider = slider.sliderInstance();\r
- \r
- cur.bind("keydown", function(e) {\r
- var o = slider.interaction.options;\r
- switch(e.keyCode) {\r
- case 37:\r
- slider.moveTo(slider.interaction.curValue+o.minValue-(o.stepping || 1));\r
- break;\r
- case 39:\r
- slider.moveTo(slider.interaction.curValue+o.minValue+(o.stepping || 1));\r
- break; \r
- }\r
- if(e.keyCode != 9) return false;\r
- });\r
- \r
- }; \r
- });\r
- \r
- });\r
- }\r
-\r
- //Make nodes selectable by expression\r
- $.extend($.expr[':'], { slider: "(' '+a.className+' ').indexOf(' ui-slider ')" });\r
- \r
- $.fn.slider = function(o) {\r
- return this.each(function() {\r
- new $.ui.slider(this, o);\r
- });\r
- }\r
- \r
- //Macros for external methods that support chaining\r
- var methods = "destroy,enable,disable,moveTo".split(",");\r
- for(var i=0;i<methods.length;i++) {\r
- var cur = methods[i], f;\r
- eval('f = function() { var a = arguments; return this.each(function() { if(jQuery(this).is(".ui-slider")) jQuery.data(this, "ui-slider")["'+cur+'"](a); }); }');\r
- $.fn["slider"+cur.substr(0,1).toUpperCase()+cur.substr(1)] = f;\r
- };\r
- \r
- //get instance method\r
- $.fn.sliderInstance = function() {\r
- if($(this[0]).is(".ui-slider")) return $.data(this[0], "ui-slider");\r
- return false;\r
- };\r
- \r
- $.ui.slider = function(el, o) {\r
- \r
- var options = {};\r
- o = o || {};\r
- $.extend(options, o);\r
- $.extend(options, {\r
- axis: o.axis || (el.offsetWidth < el.offsetHeight ? 'vertical' : 'horizontal'),\r
- maxValue: parseInt(o.maxValue) || 100,\r
- minValue: parseInt(o.minValue) || 0,\r
- startValue: parseInt(o.startValue) || 0,\r
- _start: function(h, p, c, t, e) {\r
- self.start.apply(t, [self, e]); // Trigger the start callback \r
- },\r
- _beforeStop: function(h, p, c, t, e) {\r
- self.stop.apply(t, [self, e]); // Trigger the start callback\r
- },\r
- _drag: function(h, p, c, t, e) {\r
- self.drag.apply(t, [self, e]); // Trigger the start callback\r
- },\r
- startCondition: function() {\r
- return !self.disabled;\r
- } \r
- });\r
-\r
- var self = this;\r
- var o = options;\r
- $.data(el, "ui-slider", this);\r
- o.stepping = parseInt(o.stepping) || (o.steps ? o.maxValue/o.steps : 0);\r
- o.realValue = (o.maxValue - o.minValue);\r
-\r
-\r
- this.handle = options.handle ? $(options.handle, el) : $('.ui-slider-handle', el);\r
- if(this.handle.length == 1) {\r
- this.interaction = new $.ui.mouseInteraction(this.handle[0], options);\r
- this.multipleHandles = false;\r
- } else {\r
- this.interactions = [];\r
- this.handle.each(function() {\r
- self.interactions.push(new $.ui.mouseInteraction(this, options));\r
- });\r
- this.multipleHandles = true;\r
- }\r
- \r
- this.element = el;\r
- $(this.element).addClass("ui-slider");\r
- \r
- \r
- if(o.axis == 'horizontal') {\r
- this.parentSize = $(this.element).outerWidth() - this.handle.outerWidth();\r
- this.prop = 'left';\r
- }\r
- \r
- if(o.axis == 'vertical') {\r
- this.parentSize = $(this.element).outerHeight() - this.handle.outerHeight();\r
- this.prop = 'top';\r
- }\r
- \r
- if(!this.multipleHandles) {\r
- $(el).bind('click', function(e) { self.click.apply(self, [e]); });\r
- if(!isNaN(o.startValue)) this.moveTo(o.startValue,options.realValue, null, false);\r
- }\r
- \r
- }\r
- \r
- $.extend($.ui.slider.prototype, {\r
- currentTarget: null,\r
- lastTarget: null,\r
- destroy: function() {\r
- $(this.element).removeClass("ui-slider").removeClass("ui-slider-disabled");\r
- this.interaction.destroy();\r
- },\r
- enable: function() {\r
- $(this.element).removeClass("ui-slider-disabled");\r
- this.disabled = false;\r
- },\r
- disable: function() {\r
- $(this.element).addClass("ui-slider-disabled");\r
- this.disabled = true;\r
- },\r
- nonvalidRange: function(self) {\r
-\r
- for(var i=0;i<this.interactions.length;i++) {\r
- if(self == this.interactions[i]) {\r
- if(this.interactions[i-1]) {\r
- if(this.interactions[i-1].curValue > this.interactions[i].curValue) return this.interactions[i-1].curValue;\r
- }\r
- \r
- if(this.interactions[i+1]) {\r
- if(this.interactions[i+1].curValue < this.interactions[i].curValue) return this.interactions[i+1].curValue;\r
- }\r
- }\r
- }\r
- \r
- return false;\r
- \r
- },\r
- prepareCallbackObj: function(self,m) {\r
- \r
- var cur = this;\r
- var func = function() {\r
- var retVal = [];\r
- for(var i=0;i<cur.interactions.length;i++) {\r
- retVal.push((cur.interactions[i].curValue || 0)+self.options.minValue);\r
- }\r
- return retVal;\r
- };\r
- \r
- return {\r
- handle: self.helper,\r
- pixel: m,\r
- value: self.curValue+self.options.minValue,\r
- values: this.multipleHandles ? func() : self.curValue+self.options.minValue,\r
- slider: self \r
- } \r
- },\r
- click: function(e) {\r
- var o = this.interaction.options;\r
- var pointer = [e.pageX,e.pageY];\r
- var offset = $(this.interaction.element).offsetParent().offset({ border: false });\r
- if(this.interaction.element == e.target || this.disabled) return;\r
- \r
- this.interaction.pickValue = this.interaction.curValue;\r
- this.drag.apply(this.interaction, [this, e, [pointer[0]-offset.left-this.handle[0].offsetWidth/2,pointer[1]-offset.top-this.handle[0].offsetHeight/2]]);\r
- \r
- if(this.interaction.pickValue != this.interaction.curValue)\r
- $(this.element).triggerHandler("slidechange", [e, this.prepareCallbackObj(this.interaction)], o.change);\r
- \r
- },\r
- start: function(that, e) {\r
- \r
- var o = this.options;\r
- $(that.element).triggerHandler("slidestart", [e, that.prepareCallbackObj(this)], o.start);\r
- this.pickValue = this.curValue;\r
- \r
- return false;\r
- \r
- },\r
- stop: function(that, e) { \r
- \r
- var o = this.options;\r
- $(that.element).triggerHandler("slidestop", [e, that.prepareCallbackObj(this)], o.stop);\r
- if(this.pickValue != this.curValue) $(that.element).triggerHandler("slidechange", [e, that.prepareCallbackObj(this)], o.change);\r
-\r
- return false;\r
- \r
- },\r
- drag: function(that, e, pos) {\r
-\r
- var o = this.options;\r
- this.pos = pos || [this.pos[0]-this.element.offsetWidth/2, this.pos[1]-this.element.offsetHeight/2];\r
- \r
- if(o.axis == 'horizontal') var m = this.pos[0];\r
- if(o.axis == 'vertical') var m = this.pos[1];\r
- \r
- \r
- var p = that.parentSize;\r
- var prop = that.prop;\r
-\r
- if(m < 0) m = 0;\r
- if(m > p) m = p;\r
-\r
- this.curValue = (Math.round((m/p)*o.realValue));\r
- if(o.stepping) {\r
- this.curValue = Math.round(this.curValue/o.stepping)*o.stepping;\r
- m = ((this.curValue)/o.realValue) * p;\r
- }\r
- \r
- if(that.interactions) {\r
- nonvalidRange = that.nonvalidRange(this);\r
- if(nonvalidRange) {\r
- this.curValue = nonvalidRange;\r
- m = ((this.curValue)/o.realValue) * p;\r
- }\r
- }\r
- \r
- $(this.element).css(prop, m+'px');\r
- $(that.element).triggerHandler("slide", [e, that.prepareCallbackObj(this,m)], o.slide);\r
- return false;\r
- \r
- },\r
- moveTo: function(value,scale,changeslide,p) { // renamed from goto to moveTo as goto is reserved javascript word\r
- \r
- if(this.multipleHandles) return false; //TODO: Multiple handle moveTo function\r
- \r
- var o = this.interaction.options;\r
- var offset = $(this.interaction.element).offsetParent().offset({ border: false });\r
- this.interaction.pickValue = this.interaction.curValue;\r
- value = value-o.minValue;\r
- \r
- var modifier = scale || o.realValue;\r
- \r
- var p = this.parentSize;\r
- var prop = this.prop;\r
- \r
- m = Math.round(((value)/modifier) * p);\r
-\r
- if(m < 0) m = 0;\r
- if(m > p) m = p;\r
- \r
- this.interaction.curValue = (Math.round((m/p)*o.realValue));\r
- if(o.stepping) {\r
- this.interaction.curValue = Math.round(this.interaction.curValue/o.stepping)*o.stepping;\r
- m = ((this.interaction.curValue)/o.realValue) * p;\r
- }\r
-\r
- $(this.interaction.element).css(prop, m+'px');\r
- \r
- if(!changeslide && this.interaction.pickValue != this.interaction.curValue && !p)\r
- $(this.element).triggerHandler("slidechange", [e, this.prepareCallbackObj(this.interaction)], o.change);\r
- \r
- if(changeslide)\r
- $(this.element).triggerHandler("slide", [e, this.prepareCallbackObj(this.interaction)], o.slide);\r
-\r
- }\r
- });\r
-\r
-})($);\r