/**
 * @author John Noel <john.noel@irisassociates.com>
 */

var SelectToSlider = Class.create({
	elem: null,

	initialize: function(elem)
	{
		this.elem = $(elem);
		if(this.elem)
		{
			this.elem.hide();

			var vals = this.elem.childElements().pluck('value');
			var initialVal = this.elem.childElements()[this.elem.selectedIndex].
				readAttribute('value');

			// create the necessary elements
			var divOElem = document.createElement('div');
			Element.extend(divOElem);
			divOElem.className = this.elem.className;
			divOElem.addClassName('slider');		// hello quinn mallory

			var divIElem = document.createElement('div');
			Element.extend(divIElem);
			divIElem.addClassName('sliderHandle');
			divOElem.insert(divIElem);

			this.elem.insert({after: divOElem});

			// set up the slider
			new Control.Slider(divIElem, divOElem, {
				range: $R(vals.min(), vals.max(function(p) { return parseInt(p); })),
				sliderValue: initialVal,
				onChange: function(value)
				{
					var v = Math.round(value);
					var i = 0;

					this.elem.childElements().each(function(elem, index) {
						if(elem.readAttribute('value') == v)
						{
							i = index;
							return;
						}
					});
					this.elem.selectedIndex = i;

				}.bind(this)
			});
		}
	}
});

$$('.sliderReplace').each(function(s) {
	new SelectToSlider(s);
});