var debb;
var lastoper;
var texx;
var butt;
var ramH;
var txtH;
//---
var ymin;
var ymax;
var ypos;
var scmin;
var scmax;
var scpos;
var scabsmin;
//---
var	dragObject  = null;   
var	mouseOffset = null; 
//-------------------------------------------
function init_tekst()
{
	setTimeout(start_tekst,1000);
}
//-------------------------------------------
function start_tekst()
{
	lastoper = 'init_tekst';
	debb = getelem('debb');
	var tresc = getelem('tresc');
	var teks = getelem('tekst');
	var skrol = getelem('slider');
	var stup = getelem('stup');
	var stdo = getelem('stdo');
	texx = getelem('texx');
	butt = getelem('sbut');
	if(!teks||!texx||!skrol||!stup||!stdo||!butt)return;
	//---
	scrhig = skrol.offsetHeight;
	suwhig = butt.offsetHeight;
	scmin = skrol.offsetTop + stup.offsetHeight;
	butt.style.top = scmin + 'px';
	scmax = stdo.offsetTop - suwhig;
	scpos = butt.offsetTop;
	scabsmin = getPosition(butt).y;
	//---
	var ry = teks.offsetTop;
	var rh = ramH = teks.offsetHeight;
	var ty = texx.offsetTop;
	var th = txtH = texx.offsetHeight;
	var dh = th - rh;
	ymin = ty-dh;
	ymax = ty;
	ypos = ty;
	//---
	if(dh<0)
	{
		skrol.style.visibility = "hidden";
		return;
	}
	skrol.style.display = "block";
	skrol.style.visibility = "visible";
	//---
	//document.onmousemove = mouseMove; 
	texx.onmouseup = function(){return;}
	teks.onmouseup = function(){return;}
	tresc.onmouseup = function(){return;}
	//---
	document.onmouseup = mouseUp;
	dragObject  = null;   
	mouseOffset = null;   
	makeDraggable(butt);
	return;
}
//-------------------------------------------
//-------------------------------------------
//-------------------------------------------
function mouseUp(ev)
{   
  dragObject = null;
  document.onmousemove = null;    
}  
//-------------------------------------------
function mouseMove(ev)
{
	ev = ev || window.event;   
  var mousePos = mouseCoords(ev);
  /*
  var msg = '<p>';
  msg = msg + 'last: '+lastoper+'<br/>';
  msg = msg + 'mous: '+mousePos.x+' x '+mousePos.y+'<br/>';
  msg = msg + 'texx: '+txtH+'->'+texx.offsetHeight+'/'+Math.floor(ypos)+' = '+ymin+' -:- '+ymax+'<br/>';
  
  msg = msg + 'butt: '+ramH+'/'+Math.floor(butt.offsetTop)+' = '+scmin+' -:- '+scmax+'<br/>';
  msg = msg + '</p>';
  if(debb)debb.innerHTML = msg;  
  */
	if(dragObject)
	{   
		dragObject.style.position = 'absolute'; 
		setSkrol(mousePos.y - mouseOffset.y - scabsmin + 30);   
		return false;   
	}   
}   
//------------------------------------------- 
//- Funkcje strzalek ------------------------
//-------------------------------------------
function skrolUp(tik)
{
	lastoper = 'skrolUp('+tik+')';
	setSkrol(scpos-tik);
}
//-------------------------------------------
function skrolDown(tik)
{
	lastoper = 'skrolDown('+tik+')';
	setSkrol(scpos+tik);
}
//-------------------------------------------
//- Funkcje pomocnicze ----------------------
//-------------------------------------------
function getelem(Elem)
{
	if(document.getElementById)return document.getElementById(Elem);
	else if(document.all)return document.all[Elem];
	else return null;
}
//-------------------------------------------
function getPosition(e)
{   
   var left = 0;   
   var top  = 0;   
 
   while (e.offsetParent)
   {   
     left += e.offsetLeft;   
     top  += e.offsetTop;   
     e     = e.offsetParent;   
   }   
 
   left += e.offsetLeft;   
   top  += e.offsetTop;   
 
   return {x:left, y:top};   
}  
//-------------------------------------------
function setSkrol(skr)
{
	if(scmax<=scmin)return;
	var sp = parseInt(skr);
	if(sp<scmin)sp = scmin;
	if(sp>scmax)sp = scmax;
	scpos = sp;
	butt.style.top = scpos + 'px';
	
	var p = ymax - (scpos-scmin)/(scmax-scmin)*(ymax-ymin);
	if(p<ymin)p = ymin;
	if(p>ymax)p = ymax;
	ypos = p;
	texx.style.top = ypos + 'px';		
}
//-------------------------------------------
function setPos(pos)
{
	if(ymax<=ymin)return;
	var p = parseInt(pos);
	if(p<ymin)p = ymin;
	if(p>ymax)p = ymax;
	ypos = p;
	texx.style.top = ypos + 'px';
	
	var sp = scmin + (ymax-p)/(ymax-ymin)*(scmax-scmin);
	if(sp<scmin)sp = scmin;
	if(sp>scmax)sp = scmax;
	scpos = sp;
	butt.style.top = scpos + 'px';
	
}
//-------------------------------------------
function makeClickable(object)
{   
	object.onmousedown = function()
	{   
		dragObject = this;   
	}   
} 
//-------------------------------------------
function makeDraggable(item)
{   
	if(!item) return;   
	item.onmousedown = function(ev)
	{   
		dragObject  = this; 
		document.onmousemove = mouseMove;   
		mouseOffset = getMouseOffset(this, ev);   
		return false;   
	}   
}  
//------------------------------------------
function mouseCoords(e) 
{
	if (document.layers) 
	{
	   xMousePos = e.pageX;
	   yMousePos = e.pageY;
	} 
	else if (document.all) 
	{
	   xMousePos = window.event.x+document.body.scrollLeft;
	   yMousePos = window.event.y+document.body.scrollTop;
	} 
	else if (document.getElementById) 
	{
	    xMousePos = e.pageX;
	    yMousePos = e.pageY;
	}
	return{x:xMousePos,y:yMousePos};
}

//-------------------------------------------
function getMouseOffset(target, ev)
{   
   ev = ev || window.event;   
   var docPos    = getPosition(target);   
   var mousePos  = mouseCoords(ev); 
   var mx = mousePos.x - docPos.x
   var my = mousePos.y - docPos.y  
   return {x:mx,y:my};   
}  
//-------------------------------------------
