var KROK_POSUNU = 10;
var TIMER_SCROLLU = 50;
var anim_timer=false;
var anim_timer_skoc=false;

function center_this(cislo){
  scroll(0, false, cislo-1);
}

//volanie scrollbaru, s definovanym smerom (a priznakom double clicku)
function scroll(smer, dbl, centruj) {
  if(anim_timer!=false){ anim_timer_skoc=true; return; }

  if(centruj==false){
    // stred plochy - zistime ktora fotka je tam
    var stred=parseInt(document.getElementById('photos_line').clientWidth/2)-parseInt(document.getElementById('fotky').style.left);
    var i,j,x=0, x2=0;
  
    for(i=0;i<fotky_x.length;i++){
      x2=parseInt(x)+parseInt(fotky_x[i]);
      if( (x<=stred) && (stred<=x2) ) break;
      x=x2;
    }
    
    // teraz budeme centrovat dalsiu alebo predoslu fotku
    i=i+smer;
    if(i<0) i=0;
    if(i>fotky_x.length-1) i=fotky_x.length-1;
  }else{
    i=centruj;
  }
 
  // v 'x' bude style.left ktore ma byt v strede plochy
  x=0; for(j=0;j<i;j++) x=parseInt(x)+parseInt(fotky_x[j]);
  x=parseInt(x)+parseInt(fotky_x[i]/2);

  var new_left=(x-parseInt(document.getElementById('photos_line').clientWidth/2));
  var max_x;

  // aby neutekal moc vlavo
  if(new_left<0) new_left=0;

  max_x=parseInt(document.getElementById('fotky').clientWidth)-parseInt(document.getElementById('photos_line').clientWidth);
  if(new_left>max_x) new_left=max_x;

  anim_timer_skoc=false; if(dbl==true) anim_timer_skoc=true;
  anim_timer=setInterval("animuj('"+new_left+"');", TIMER_SCROLLU );
}

function animuj(animuj_do){
  var position=parseInt(document.getElementById('fotky').style.left)*(-1);

  if(position<animuj_do){
    new_left=position+KROK_POSUNU;
    if((new_left>animuj_do) || (anim_timer_skoc)){ new_left=animuj_do; clearInterval(anim_timer); anim_timer=false; }
  }else{
    new_left=position-KROK_POSUNU;
    if((new_left<animuj_do) || (anim_timer_skoc)){ new_left=animuj_do; clearInterval(anim_timer); anim_timer=false; }
  }

  var max_x=parseInt(document.getElementById('fotky').clientWidth)-parseInt(document.getElementById('photos_line').clientWidth);
  var bezec_max=document.getElementById('scrollbar').clientWidth-22-50;  
  var bezec_x=parseInt((new_left/max_x)*bezec_max);
  document.getElementById('bezec').style.left=bezec_x+'px';
  
  document.getElementById('fotky').style.left='-'+new_left+'px';
}


// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \\
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \\
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \\
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \\
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \\

var dragging = false;
var startMousePos = null;
var startBezec=0;

function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

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 mouseMove(ev){
	ev           = ev || window.event;
	var mousePos = mouseCoords(ev);
	
	if(!dragging) return;

	var nove_x=startBezec+(mousePos.x-startMousePos.x);
  var bezec_max=document.getElementById('scrollbar').clientWidth-22-50;  

	if(nove_x<0) nove_x=0;
	if(nove_x>bezec_max) nove_x=bezec_max;

  document.getElementById('bezec').style.left=nove_x+'px';

  var max_x=parseInt(document.getElementById('fotky').clientWidth)-parseInt(document.getElementById('photos_line').clientWidth);
  var fotky_x=parseInt((nove_x/bezec_max)*max_x);
  
  document.getElementById('fotky').style.left=-fotky_x+'px';  
}

function mouseUp(ev){
  ev = ev || window.event;
  mousePos = mouseCoords(ev);
  
  if(!dragging) return;

  dragging=false;
  return;
}

function mouseDown(ev){
  ev = ev || window.event;
  dragging = true;
	startMousePos = mouseCoords(ev);
  startBezec=parseInt(document.getElementById('bezec').style.left);
  return false;
}

function mouseCoords(ev){
  if(ev.pageX || ev.pageY) return {x:ev.pageX, y:ev.pageY};

  if(!document.body) return { x:ev.clientX, y:ev.clientY };

	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

document.onmousemove = mouseMove;
document.onmouseup = mouseUp;

