
function initYUISlider( formName, name, startingValue, topConstraint, bottomConstraint, min, max, increment )
{
  var Event = YAHOO.util.Event,
      Dom   = YAHOO.util.Dom,
      lang  = YAHOO.lang,
      slider, 
      bg = "slider-bg-" + formName + "-" + name,
      thumb = "slider-thumb-" + formName + "-" + name, 
      textfield = document.forms[formName].elements[name],
      scaleFactor = (max-min) / (bottomConstraint-topConstraint);

  var slider = YAHOO.widget.Slider.getHorizSlider( bg, thumb, topConstraint, bottomConstraint, increment );

  slider.getRealValue = function() {
    return min + Math.round(this.getValue() * scaleFactor);
  }

  slider.setRealValue = function(v) {
    v -= min;
    this.setValue( Math.round(v/scaleFactor) );
  }

  slider.subscribe( "change", function(offsetFromStart) {
    var actualValue = slider.getRealValue();
    textfield.value = actualValue;
    Dom.get(bg).title = actualValue;
  });

  Event.on( textfield, "blur", function(e) {
	var v = parseFloat(this.value, 10);
	v = (lang.isNumber(v)) ? v : 0;
	slider.setRealValue( v );
  });

  slider.setRealValue( startingValue );

  return slider;
}
