(function() { YAHOO.namespace('example'); var Dom = YAHOO.util.Dom; var range = 288; var maxPunti = 300000; var tickSize = 1; var caution_range = 150, danger_range = 75, boom_range = 13; YAHOO.util.Event.onDOMReady(function() { var reportSpan = Dom.get("demo_range"); var calculatedSpan = Dom.get("demo_value"); slider = YAHOO.widget.Slider.getHorizDualSlider("demo_bg", "demo_min_thumb", "demo_max_thumb", range, tickSize, [0, maxPunti]); YAHOO.lang.augmentObject(slider, { _status: 'ok', _highlight: Dom.get("demo_highlight"), getStatus: function() { return this._status }, updateHighlight: function() { if (this.activeSlider === this.minSlider && bFireChangeEvent) { Dom.get("minVal").value = formatNumber(scaleRange(slider.minVal, range, maxPunti)); } if (this.activeSlider === this.maxSlider && bFireChangeEvent) { if (nPUNTIUTENTE != "0" && this.maxVal > pixelPunti) { Dom.setStyle(this._highlight, 'width', this.maxVal + 'px'); } if (bFireChangeEvent) { Dom.get("maxVal").value = formatNumber(scaleRange(slider.maxVal, range, maxPunti)); } } if (!bFireChangeEvent) { Dom.get("minVal").value = formatNumber(Dom.get("minVal").value); Dom.get("maxVal").value = formatNumber(Dom.get("maxVal").value); } }, initSlider: function() { this.setMinValue(0, true, true, true); this.setMaxValue(maxPunti, true, true, true); }, settaRange: function(nPuntiMin, nPuntiMax) { if (nPuntiMin != actMinVal || nPuntiMax != actMaxVal) { actMinVal = nPuntiMin; actMaxVal = nPuntiMax; if (nPuntiMin > nPuntiMax) { var tempMinVal = nPuntiMin; nPuntiMin = nPuntiMax; nPuntiMax = tempMinVal; document.getElementById("minVal").value = formatNumber(nPuntiMin); document.getElementById("maxVal").value = formatNumber(nPuntiMax); } this.setMaxValue(deScaleRange(nPuntiMax, range, maxPunti), true, true, true); this.setMinValue(deScaleRange(nPuntiMin, range, maxPunti), true, true, true); report(nPuntiMin, nPuntiMax); } bFireChangeEvent = true; } }, true); slider.subscribe('change', slider.updateHighlight, slider, true); var report = function(nPuntiMin, nPuntiMax) { if (nPUNTIUTENTE != "0" && slider.maxVal <= pixelPunti) { Dom.setStyle(slider._highlight, 'width', pixelPunti) } if (typeof nPuntiMin == "number" || typeof nPuntiMax == "number") { objCatalogo.setRange(nPuntiMin, nPuntiMax); } else { objCatalogo.setRange(scaleRange(slider.minVal, range, maxPunti), scaleRange(slider.maxVal, range, maxPunti)); } }; slider.subscribe('slideEnd', report); YAHOO.example.slider = slider }) })(); function deScaleRange(points, range, max) { var power = 4; var step = 100; if (points > max) return range; return Math.round(Math.pow(points/max,1/power) * range); } function scaleRange(sliderVal, range, max) { var power = 4; var step = 100; var absSliderVal = sliderVal / range * 100; var multi = max/Math.pow(100,power); return Math.round(Math.pow(absSliderVal,power)*multi/step)*step; //return Math.round((max * sliderVal) / range); } function formatNumber(num) { num = parseInt(("" + num).replace(".", "")); if (num >= 1000) { var sNum = "" + num; return sNum.substring(0, sNum.length - 3) + "." + sNum.substring(sNum.length - 3); } return num; } function formattaPunti(nVal) { if (nVal >= 1000) { nVal = nVal.substring(0, nVal.length - 3) + "." + nVal.substr(nVal.length - 3) } return nVal }