function slider(elemId, sliderWidth, range1, range2, step) {
	var knobWidth = 17;
	var knobHeight = 21;
	var sliderHeight = 21;
	var offsX, tmp;
	var d = document;
	var isIE = d.all || window.opera;
	var point = (sliderWidth - knobWidth - 3) / (range2 - range1);
	var slider = d.createElement('DIV');
	slider.id = elemId + '_slider';
	slider.className = 'slider';
	d.getElementById(elemId).appendChild(slider);
	var knob = d.createElement('DIV');
	knob.id = elemId + '_knob';
	knob.className = 'knob';
	slider.appendChild(knob);
	knob.style.left = 0;
	knob.style.width = knobWidth + 'px';
	knob.style.height = knobHeight + 'px';
	slider.style.width = sliderWidth + 'px';
	slider.style.height = sliderHeight + 'px';
	var sliderOffset = slider.offsetLeft;
	tmp = slider.offsetParent;
	while (tmp.tagName != 'BODY') {
		sliderOffset += tmp.offsetLeft;
		tmp = tmp.offsetParent
	}
	if (isIE) {
		knob.onmousedown = startCoord;
		slider.onclick = sliderClick;
		knob.onmouseup = endCoord;
		slider.onmouseup = endCoord
	} else {
		knob.addEventListener("mousedown", startCoord, true);
		slider.addEventListener("click", sliderClick, true);
		knob.addEventListener("mouseup", endCoord, true);
		slider.addEventListener("mouseup", endCoord, true)
	}
	function setValue(x) {
		if (x < 0)
			knob.style.left = 0;
		else if (x > sliderWidth - knobWidth - 3)
			knob.style.left = (sliderWidth - 3 - knobWidth) + 'px';
		else {
			if (step == 0)
				knob.style.left = x + 'px';
			else
				knob.style.left = Math.round(x / (step * point)) * step * point
						+ 'px'
		}
		NewTimeScale(getValue())
	}
	function setValue2(x) {
		if (x < range1 || x > range2)
			alert('Value is not included into a slider range!');
		else
			setValue((x - range1) * point);
		NewTimeScale(getValue())
	}
	function getValue() {
		return Math.round(parseInt(knob.style.left) / point) + range1
	}
	function sliderClick(e) {
		var x;
		if (isIE) {
			if (event.srcElement != slider)
				return;
			x = event.offsetX - Math.round(knobWidth / 2)
		} else
			x = e.pageX - sliderOffset - knobWidth / 2;
		setValue(x)
	}
	function startCoord(e) {
		if (isIE) {
			offsX = event.clientX - parseInt(knob.style.left);
			slider.onmousemove = mov
		} else {
			slider.addEventListener("mousemove", mov, true)
		}
	}
	function mov(e) {
		var x;
		if (isIE)
			x = event.clientX - offsX;
		else
			x = e.pageX - sliderOffset - knobWidth / 2;
		setValue(x)
	}
	function endCoord() {
		if (isIE)
			slider.onmousemove = null;
		else
			slider.removeEventListener("mousemove", mov, true)
	}
	this.setValue = setValue2;
	this.getValue = getValue
}
