var presnost_posunu=1; // presnost posuny v pixelech
var skrolovac_odezva=2;
var skrolovac_cas=null;

var nahoru_klik=dolu_klik=soupatko_klik=mezihorni_klik=mezispodni_klik=false;
var nahoru_x=nahoru_y=dolu_x=dolu_y=soupatko_x=soupatko_y=soupatko_pom=deska_pozice_y=deska_y=skrolovaci_obsah_y=skrolovac_delka=soupatko_zakladni_y=nahoru_sx=nahoru_sy=dolu_sx=dolu_sy=soupatko_sx=soupatko_sy=kolej_sy=mys_x=mys_y=null;

function rozmer(id_objektu,co) {
	var sx=sy=null;
	if (wobj==true) {
		sx=document.getElementById(id_objektu).offsetWidth;
		sy=document.getElementById(id_objektu).offsetHeight;
	}
	else {
		sx=document.layers[id_objektu].document.width;
		sy=document.layers[id_objektu].document.height; 
	}
	if (co.toLowerCase()=='x') return sx;
	else if (co.toLowerCase()=='y') return sy;
}

function pozice(id_objektu,co) {
	var sx=sy=null;
	if (wobj==true) {
		if (wpro=='expl') {
			sx=parseInt(document.getElementById(id_objektu).style.pixelLeft);
			sy=parseInt(document.getElementById(id_objektu).style.pixelTop);
		}
		else {
			sx=parseInt(document.getElementById(id_objektu).style.left);
			sy=parseInt(document.getElementById(id_objektu).style.top);
		}
	}
	else {
		sx=document.layers[id_objektu].left;
		sy=document.layers[id_objektu].top;
	}
	if (co.toLowerCase()=='x') return sx;
	else if (co.toLowerCase()=='y') return sy;
}

function pozice_desky() {
	var sy=null;
	if (wobj==true) {
		if (wpro=='expl') {
			sy=parseInt(document.getElementById("deska").style.pixelTop);
		}
		else {
			sy=parseInt(document.getElementById("deska").style.top);
		}
	}
	else {
		sy=document.skrolovaci_obsah.document.deska.top;
	}
	return sy;
}

function rozmer_desky() {
	var sy=null;
	if (wobj==true) {
		sy=parseInt(document.getElementById("deska").offsetHeight);
	}
	else {
		sy=document.skrolovaci_obsah.document.deska.clip.bottom;
	}
	return sy;
}

function nacti_hodnoty() {
	nahoru_sx=rozmer('ikona_nahoru','x');
	nahoru_sy=rozmer('ikona_nahoru','y');
	dolu_sx=rozmer('ikona_dolu','x');
	dolu_sy=rozmer('ikona_dolu','y');
	soupatko_sx=rozmer('ikona_soupatko','x');
	soupatko_sy=rozmer('ikona_soupatko','y');
	kolej_sy=rozmer('skrolovaci_draha','y');
	nahoru_x=pozice('ikona_nahoru','x');
	nahoru_y=pozice('ikona_nahoru','y');
	dolu_x=pozice('ikona_dolu','x');
	dolu_y=pozice('ikona_dolu','y');
	soupatko_x=pozice('ikona_soupatko','x');
	soupatko_pom=soupatko_y=pozice('ikona_soupatko','y');
	deska_y=rozmer_desky();
	skrolovaci_obsah_y=rozmer('skrolovaci_obsah','y');
	if (wobj==true) {
		document.getElementById("deska").style.top="0px";
	}
	aktualizace_delky_skrolovace();
}

function mys_tlacitko_stisk(co) {
	souradnice_mysi(co);
	soupatko_zakladni_y=(mys_y - soupatko_y);
	if(mys_x >= nahoru_x && (mys_x <= (nahoru_x + nahoru_sx)) && mys_y >= nahoru_y && (mys_y <= (nahoru_y + nahoru_sy))) {
		nahoru_klik=true;
		return presun_nahoru();
	}	
	else if(mys_x >= dolu_x && (mys_x <= (dolu_x + dolu_sx)) && mys_y >= dolu_y && (mys_y <= (dolu_y + dolu_sy))) {
		dolu_klik=true;
		return presun_dolu();
	}
	else if(mys_x >= soupatko_x && (mys_x <= (soupatko_x + soupatko_sx)) && mys_y >= soupatko_y && (mys_y <= (soupatko_y + soupatko_sy))) {
		soupatko_klik=true;
		return false;
	}
	else if(mys_x >= soupatko_x && (mys_x <= (soupatko_x + soupatko_sx)) && mys_y >= soupatko_pom && (mys_y <= (soupatko_pom + kolej_sy))) {
		if(mys_y < soupatko_y) {
			mezihorni_klik=true;
			nahoru_klik=true;
			return presun_nahoru();
		}
		else{
			mezispodni_klik=true;
			dolu_klik=true;
			return presun_dolu();
		}
	}
	else{
		return true;
	}
}

function mys_presun(co) {
	if(soupatko_klik && deska_y > skrolovaci_obsah_y) {
		souradnice_mysi(co);
		soupatko_y=(mys_y - soupatko_zakladni_y);		
		if(soupatko_y < (soupatko_pom)) soupatko_y=soupatko_pom;		
		if(soupatko_y > (soupatko_pom + kolej_sy - soupatko_sy)) soupatko_y=(soupatko_pom + kolej_sy - soupatko_sy);
		deska_pozice_y=((soupatko_y - soupatko_pom)*(1/skrolovac_delka));
		deska_pozice_y=deska_pozice_y*(-1);
		presun_desky();
		return false;
	}
}

function mys_tlacitko_pustit() {
	clearTimeout(skrolovac_cas);
	nahoru_klik=dolu_klik=soupatko_klik=mezihorni_klik=mezispodni_klik=false;
	return true;
}

function souradnice_mysi(co) {
	if (wpro=='expl') {
		mys_y=event.clientY + document.body.scrollTop;
		mys_x=event.clientX + document.body.scrollLeft;
	}
	else {			
		mys_y=co.pageY;
		mys_x=co.pageX;
	}
}

function presun_desky() {
	if (wobj==true)	{
		if (wpro=='expl') {
			document.all.deska.style.top=deska_pozice_y;
			document.all.ikona_soupatko.style.top=soupatko_y;
		}
		else {
			document.getElementById("deska").style.top=deska_pozice_y + "px";
			document.getElementById("ikona_soupatko").style.top=soupatko_y + "px";
		}
	}
	else {
		document.skrolovaci_obsah.document.deska.top=deska_pozice_y;
		document.ikona_soupatko.top=soupatko_y;
	}
}

function presun_nahoru() {
	deska_pozice_y=pozice_desky();
	if(mezihorni_klik) {
		if(soupatko_y <= (mys_y-(soupatko_sy/2))) return mys_tlacitko_pustit();
	}
	if(nahoru_klik) {
		if(deska_pozice_y < 0) {		
			soupatko_y=soupatko_y - (presnost_posunu*skrolovac_delka);
			if(soupatko_y < (soupatko_pom)) soupatko_y=soupatko_pom;
			deska_pozice_y=deska_pozice_y + presnost_posunu;
			if(deska_pozice_y > 0) deska_pozice_y=0;			
			presun_desky();
			skrolovac_cas=setTimeout("presun_nahoru()",skrolovac_odezva);
		}
	}
	return false;
}

function presun_dolu() {
	deska_pozice_y=pozice_desky();
	if(mezispodni_klik) {
		if(soupatko_y >= (mys_y-(soupatko_sy/2))) return mys_tlacitko_pustit();
	}
	if(dolu_klik) {
		if(deska_pozice_y > -(deska_y - skrolovaci_obsah_y)) {			
			soupatko_y=soupatko_y + (presnost_posunu*skrolovac_delka);
			if(soupatko_y > (soupatko_pom + kolej_sy - soupatko_sy)) soupatko_y=(soupatko_pom + kolej_sy - soupatko_sy);
			deska_pozice_y=deska_pozice_y - presnost_posunu;
			if(deska_pozice_y < -(deska_y - skrolovaci_obsah_y)) deska_pozice_y=-(deska_y - skrolovaci_obsah_y);			
			presun_desky();
			skrolovac_cas=setTimeout("presun_dolu()",skrolovac_odezva);
		}
	}
	return false;
}

function aktualizace_delky_skrolovace() {
	rozmer_desky();
	skrolovac_delka=((kolej_sy-soupatko_sy)/(deska_y-skrolovaci_obsah_y));
}

function reloadni() {
	location.reload();
}

if(wpro=='nets') {
	document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP | Event.KEYDOWN);
	window.onresize=reloadni;
}
document.onmousedown=mys_tlacitko_stisk;
document.onmousemove=mys_presun;
document.onmouseup=mys_tlacitko_pustit;
