var slidelengthd      = 100
var orientslide = 'horizontal'
var slideclass          = 'fislider'
var slidedispclass   = 'fisliderd'

function getelmts(className)
{
	var classElements = new Array()
	var els = document.getElementsByTagName("*")
	var elsLen = els.length
	var pattern = new RegExp("\\b" + className + "\\b")
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i]
			j++
		}
	}
	return classElements;
}

function goleft(elmnt, pos)
{
	if (!(elmnt = document.getElementById(elmnt))) return 0;
	if (elmnt.style && (typeof(elmnt.style.left) == 'string')) {
		if (typeof(pos) == 'number') elmnt.style.left = pos + 'px';
		else {
			pos = parseInt(elmnt.style.left);
			if (isNaN(pos)) pos = 0;
		}
	}
	else if (elmnt.style && elmnt.style.pixelLeft) {
		if (typeof(pos) == 'number') elmnt.style.pixelLeft = pos;
		else pos = elmnt.style.pixelLeft;
	}
	return pos;
}

function gotop(elmnt, pos)
{
	if (!(elmnt = document.getElementById(elmnt))) return 0;
	if (elmnt.style && (typeof(elmnt.style.top) == 'string')) {
		if (typeof(pos) == 'number') elmnt.style.top = pos + 'px';
		else {
			pos = parseInt(elmnt.style.top);
			if (isNaN(pos)) pos = 0;
		}
	}
	else if (elmnt.style && elmnt.style.pixelTop) {
		if (typeof(pos) == 'number') elmnt.style.pixelTop = pos;
		else pos = elmnt.style.pixelTop;
	}
	return pos;
}

function moveSlider(evnt)
{
	//alert("hey");
	var evnt = (!evnt) ? window.event : evnt; 
	if (mouseover) {
 document.getElementById("mousecover").style.width=500;
 document.getElementById("mousecover").style.height=300;
		x = slider.startOffsetX + evnt.screenX 
		y = slider.startOffsetY + evnt.screenY 
		if (x > slider.xMax) x = slider.xMax 
		if (x < 0) x = 0 
		if (y > slider.yMax) y = slider.yMax 
		if (y < 0) y = 0 
		goleft(slider.id, x)  
		gotop(slider.id, y) 
		sliderVal = x + y 
		sliderPos = (slider.distance / display.valuecount) * 
			Math.round(display.valuecount * sliderVal / slider.distance)
		v = Math.round((sliderPos * slider.scale + slider.from) * 
			Math.pow(10, display.decimals)) / Math.pow(10, display.decimals)
		display.value = ''
		var docheight=bodyf.document.body.scrollHeight-300;
		window.bodyf.scrollTo(0,docheight*(1-v));
		var objDiv = document.getElementById("scrollDiv"); 
		scrollheighta = objDiv.scrollHeight-300; 
		objDiv.scrollTop = scrollheighta*(1-v);
		return false
	}
	return
}


function slide(evnt)
{
	if (!evnt) evnt = window.event; 
	slider = (evnt.target) ? evnt.target : evnt.srcElement; 	
dist = parseInt(slider.getAttribute('distance')) 
	slider.distance = dist ? dist : slidelengthd 
	ori = slider.getAttribute('orientation') 
	orientation = ((ori == 'horizontal') || (ori == 'vertical')) ? ori : orientslide
	displayId = slider.getAttribute('display') 
	display = document.getElementById(displayId) 
	display.sliderId = slider.id 
	dec = parseInt(display.getAttribute('decimals')) 
	display.decimals = dec ? dec : 0 
	val = parseInt(display.getAttribute('valuecount'))  
	display.valuecount = val ? val : slider.distance + 1 
	from = parseFloat(display.getAttribute('from')) 
	from = from ? from : 0 
	to = parseFloat(display.getAttribute('to')) 
	to = to ? to : slider.distance 
	slider.scale = (to - from) / slider.distance 
		slider.from = to 
		slider.xMax = 0
		slider.yMax = slider.distance
		slider.scale = -slider.scale 
	slider.startOffsetX = goleft(slider.id) - evnt.screenX 
	slider.startOffsetY = gotop(slider.id) - evnt.screenY
	mouseover = true;
	var objDiv = document.getElementById("scrollDiv"); 
	scrollheighta = objDiv.scrollHeight-300; 

	var docheight=bodyf.document.body.scrollHeight-300;
	if (docheight>0 || scrollheighta>0){
		document.onmousemove = moveSlider 
		document.onmouseup = sliderMouseUp 
	}
	return false
}

function sliderMouseUp()
{
	if (mouseover) {
		v = (display.value) ? display.value : 0 
		pos = (v - slider.from)/(slider.scale) 
		if (slider.yMax == 0) {
			pos = (pos > slider.xMax) ? slider.xMax : pos
			pos = (pos < 0) ? 0 : pos
			goleft(slider.id, pos) 
		}
		if (slider.xMax == 0) {
			pos = (pos > slider.yMax) ? slider.yMax : pos
			pos = (pos < 0) ? 0 : pos
			//gotop(slider.id, pos) 
		}
		if (document.removeEventListener) { 
			document.removeEventListener('mousemove', moveSlider, false)
			document.removeEventListener('mouseup', sliderMouseUp, false)
		}
		else if (document.detachEvent) { 
			document.detachEvent('onmousemove', moveSlider)
			document.detachEvent('onmouseup', sliderMouseUp)
		}
	}
	mouseover = false // Stop the sliding.
 document.getElementById("mousecover").style.width=0;
 document.getElementById("mousecover").style.height=0;
}

function focusDisplay(evnt)
{
	if (!evnt) evnt = window.event; 
	display = (evnt.target) ? evnt.target : evnt.srcElement; 
	lock = display.getAttribute('typelock')
	if (lock == 'on') {
		display.blur()
	}
	return
}
window.onload = function() 
{
	mouseover=false;
	//document.bodyf.class.contentwindow.document.onmouseover=alert("hi");
	sliders = getelmts(slideclass) 
	for (i = 0; i < sliders.length; i++) {
		sliders[i].onmousedown = slide 
	}
	displays = getelmts(slidedispclass) 
	for (i = 0; i < displays.length; i++) {
		displays[i].onfocus = focusDisplay 
	}
}
