var autochange = 6000; // automaticka zmena obrazku => 5 sekund 
var statusbar_width = 155; // px
function ChangeContent(from, to)
{
	var cas_prechodu = 550; // v ms
	$('#' + to).fadeIn(cas_prechodu);
	$('#' + from).fadeOut(cas_prechodu);
}

/* Funkce pro zahajeni prechodu pro urcity box
 * @name_box => zacatek id boxu
 * napr. box_exkluzivne kde box_exkluzivne_1 je box 1 (2. v poradi)
 * @return => void
 */
function StartChangingBox(name_box, own_duration, own_statusbar_width)
{
	// Nacteni tlacitek next a prev
	$('#' + name_box + '_next').click(function(){
		ResetStatusBar(name_box, '1', own_duration, own_statusbar_width);
		ChangeToNext(name_box);
	});
	$('#' + name_box + '_prev').click(function(){
		ResetStatusBar(name_box, '1', own_duration, own_statusbar_width);
		ChangeToPrev(name_box);
	});
	// spusteni prvniho casovace
	ResetStatusBar(name_box, '1', own_duration, own_statusbar_width);

}

function ChangeToNext(name_box)
{
	var now = GetNowActiveBox(name_box);
	var i = now+1;
	if($('#' + name_box + '_' + i).css('display') == undefined)
		i = 0;
	ChangeContent(name_box + '_' + now, name_box + '_' + i);
}

function ChangeToPrev(name_box)
{
	var now = GetNowActiveBox(name_box);
	var i = now-1;
	if(i < 0)
	{
		i = 0;
		while($('#' + name_box + '_' + i).css('display') != undefined) // iteruji dokud nenajdu posledni
			i++;
		i--; // krok zpet
	}
	ChangeContent(name_box + '_' + now, name_box + '_' + i);
}

function ResetStatusBar(name_box, stop, own_duration, own_statusbar_width)
{
	var dur = (own_duration != undefined)?own_duration:autochange;
	var wid = (own_statusbar_width != undefined)?own_statusbar_width: statusbar_width;

	if(stop != undefined)
		$('#' + name_box + '_statusbar').stop(); // stop status baru
		
	$('#' + name_box + '_statusbar').css('width','1px'); // reset status baru
	// nastaveni casovace
	$('#' + name_box + '_statusbar').animate({ 
        width:  wid + "px"
      }, dur
		,"linear"
		, function(){ // dalsi opakovani
			AutoChangeToNextBox(name_box, dur, wid);
		});
}

function AutoChangeToNextBox(name_box, duration, own_statusbar_width)
{	
	ChangeToNext(name_box);
	ResetStatusBar(name_box, undefined, duration, own_statusbar_width);
}

/* Funkce vrati cislo aktalne zobrazovaneho boxu
 * @name_box => zacatek id boxu
 * napr box_exkluzivne kde box_exkluzivne_1 je box 1 (2. v poradi)
 * @return => int cislo
 */
function GetNowActiveBox(name_box)
{
	var i = 0;
	while($('#' + name_box + '_' + i).css('display') == 'none')
		i++;

	if($('#' + name_box + '_' + i).css('display') == undefined)
		i = 0;
	return i;
}