function SliderControl(volumecontrolid, volumefillerid, volumesliderid) {
	this.slidercontrol = xGetElementById(volumecontrolid);
	this.sliderfiller  = xGetElementById(volumefillerid);
	this.sliderslider  = xGetElementById(volumesliderid);
	SliderControl.sliders[0] = this;
	xAddEventListener(this.slidercontrol, 'mousedown', SliderControl.on_mousedown);
	xAddEventListener(document.body, 'mouseup', SliderControl.on_mouseup);
	xAddEventListener(document.body, 'mousemove', SliderControl.on_mousemove);

	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);
	if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
		this.sliderslider.className = 'ie';
	} else if (version < 5.5) {
		this.sliderslider.className = 'oldie';
	}
}

(function() {

SliderControl.sliders = new Array();
SliderControl.on_mousedown = function(evt) {
	return SliderControl.sliders[0].on_mousedown(evt);
}

SliderControl.on_mouseup = function(evt) {
	return SliderControl.sliders[0].on_mouseup(evt);
}

SliderControl.on_mousemove = function(evt) {
	return SliderControl.sliders[0].on_mousemove(evt);
}

SliderControl.prototype = {
	slidercontrol : null,
	sliderfiller  : null,
	sliderslider  : null,
	value         : 0,
	dragging      : false,
	listeners     : new Array(),

	setValue: function(val) {
		this.value = Math.max(Math.min(val, 1), 0);
		this.update();
		for (listener in this.listeners) {
			if ('function' == typeof this.listeners[listener])
				this.listeners[listener](this.value);
		}
	},
	getValue: function() {
		return this.value;
	},
	update: function() {
		var percent = Math.round(this.getValue() * 100);
		this.sliderfiller.style.width = percent + '%';
		this.sliderslider.style.left  = percent + '%';
	},
	on_mousemove: function(evt) {
		if (this.dragging) {
			var pos = ((new xEvent(evt)).pageX - xPageX(this.slidercontrol)) / xWidth(this.slidercontrol);
			this.setValue(pos);
		}
//		return false;
		return !(this.dragging);//simik
	},
	on_mousedown: function(evt) {
		this.dragging = true;
		this.on_mousemove(evt);
	},
	on_mouseup:   function(evt) {
		this.dragging = false;
	}

};
})();
