/*
	scrollanje gore / dolje sa resizeom scrollera
	SS: SerijalaScrol
*/
var SS = {
	// dal je skripta slobodna, kad se scrola / resizea scroller ne moze jos jedan klik primit
	free:			false,
	// scroller id - ovdje se nalaze svi itemi
	c:				'#scroller',
	// klasa itema
	i:				'#scroller div.item',
	// kad je aktivni item
	// u kodu se moze definirati prvi aktivni item
	// npr. htio bi pokazati jucer, danas, sutra - naravno da je danas odma prikazano ali postoji i item prije danas
	a:				'#scroller div.active',
	// samo klasa za upotrebu u HTMLu
	ca:				'active',
	// gumb za gore
	bup:			'#up',
	// gumb za dolje
	bdown:			'#down',
	// koliko dugo ce raditi resize scrollera ( u milisekundama )
	ctime:		200,
	// koliko dugo ce se raditi micanje itema prema gore / dolje ( u milisekundama )
	itime:		500,
/*
	inicijalizacija scrollera
*/
	init:			function() {
		// dal je neki item aktivan
		if ($(SS.a).length > 0) {
			div =	$(SS.a);
		}
		// nema aktivnog itema, uzmi prvi po redu
		else {
			div =	$(SS.i).eq(0);
		}
		// div MORA biti object, inace nema potrebe za scrollerom
		if (typeof(div) != 'object') {return false;}
		// postavi prvi div da je aktivan
		SS.set_active(div);
		// resizeaj scroller na njegovu visinu
		SS.resize_scroller(div);
		div =		null;
		// postavi up i down funckije
		$(SS.bup).click(function() {
			SS.up();
			return false;
		});
		$(SS.bdown).click(function() {
			SS.down();
			return false;
		});
	},
/*
	postavi da je div aktivan class = SS.ca
*/
	set_active:		function(div) {
		$(div).addClass(SS.ca);
		div =		null;
	},
/*
	makni aktivni item
*/
	remove_active:	function() {
		$(SS.a).removeClass(SS.ca);
	},
/*
	resize scrollera na velicinu diva
*/
	resize_scroller:	function(div) {
		// div visina
		dh =		Number($(div).height());
		// scroller visina
		ch =		Number($(SS.c).height());
		// razlika u visini
		r =			String(((ch - dh) * -1) + ch)+'px';
		$(SS.c).animate({
			height:		r
		}, SS.ctime, 'linear', function() {
			// oslobodi skriptu
			SS.free =	true;
		});
		div =		null;
	},
/*
	skrolaj prema gore
*/
	up:			function() {
		// skripta mora biti slobodna
		if (!SS.free) {return false;}
		// zauzmi skriptu
		SS.free =	false;
		// aktivnom divu postavi margin top na njegovu visinu (minus margina)
		ad =		'-'+String($(SS.a).height())+'px';
		// animiraj micanje itema ako POSTOJI slijedeci item
		if ($(SS.a).next().length > 0) {
			$(SS.a).animate({
				marginTop:		ad
			}, SS.itime, 'linear', function() {
				SS.remove_active();
				SS.set_active($(this).next());
				SS.resize_scroller($(SS.a));
				SS.free =	true;
			});
		}
		else {
			SS.free =	true;
		}
	},
/*
	skrolaj prema dolje
*/
	down:			function() {
		// skripta mora biti slobodna
		if (!SS.free) {return false;}
		// zauzmi skriptu
		SS.free =	false;
		// animiraj micanje itema ako POSTOJI prethodni item
		if ($(SS.a).prev().length > 0) {
			prev =	$(SS.a).prev();
			// animiraj micanje margine
			$(prev).animate({
				marginTop:		'0px'
			}, SS.itime, 'linear', function() {
				SS.remove_active();
				SS.set_active(prev);
				SS.resize_scroller(prev);
				SS.free =	true;
				prev = null;
			});
		}
		else {
			SS.free =	true;
		}
	},
};
$(document).ready(function() {
	SS.init();
});
