/*
 * jQuery plugin pro meneni intra
 */

(function($) {

	$.fn.intro = function(options) {

		/* defaultni nastaveni rozsirime o uzivatelske */
		var opts = $.extend({}, $.fn.intro.defaults, options);

		this.each(function() {
			var $this = $(this);
			init($this, opts);
		});

		return this;
	};

	/*
	 * vytvori strukturu prolinacky
	 *
	 * @param node 		objekt prolinacky
	 * @param options 	nastaveni
	 */
	function init(node, options) 
	{
		/* aktivni prvek dostane tridu "aktivni" */
		$('#motto div:first, #intro_tlacitka li:first', node).addClass('aktivni');

		/* pokud se ma automaticky zacit prepinat */
		if (options['play']) {
			if (options['delay']) {
				/* prepinani spustit se spozdenim delay (pokud je nastaveno) */
				setTimeout(function(){
					play(node, options);
				}, options['delay']);
			}
			else {
				/* prepinani spustit ihned */
				play(node, options);
			}
		}

		/* pri najeti mysi pozastavit prepinani */
		if (options['pause_on_hover']) {
			$('#motto div, #intro_tlacitka li', node).hover(
				function () {
					stop(node, options);
				},
				function () {
					play(node, options);
				}
			);
		}

		return true;

	}

	/*
	 * prejde na dany prvek prolinacky
	 *
	 * @param node objekt prolinacky
	 * @param 	   na ktery element prejit ("next"/"prev"/cislo)
	 */
	function change(node, to)
	{
		/* prolinacka obsahuje pouze jednu polozku,
		 * nema smysl prolinat */
		if ($("#intro_tlacitka li", node).length < 2)
			return false;

		/* ziskame aktualni item */
		act_item = $("#intro_tlacitka li.aktivni", node);
		act_motto = $('#motto div.aktivni', node);

		/* skryt vsechna viditelna motta */
		$("#motto div.aktivni", node).hide().removeClass('aktivni');
		// u tlacitka odebrat pouze tridu "aktivni"
		$('#intro_tlacitka li.aktivni').removeClass('aktivni');

		/* prepnout na dalsi item */
		if (to == 'next') {
			to_element = act_item.next("li");
			to_motto = act_motto.next('div');

			if (! to_element.length) {
				to_element = $("#intro_tlacitka li:first", node);
				to_motto = $('#motto div:first', node);
			}
		}
		/* prepnout na predchozi item */
		/*
		else if (to == 'prev') {
			to_element = act_item.prev(".item");
			ctl = act_ctl.prev(".number");

			if (! to_element.length)
			{
				to_element = $(".item:last", node);
				ctl = $(".number:last", node);
			}
			ctl.addClass('act');
		}
		*/
		/* prepnout na n-ty item (pocitano od nuly) */
		/*
		else {
			to_element = $(".item:eq(" + to + ")", node);

			$(".controls .number:eq(" + to + ")", node).addClass('act');
		}
		*/

		/* zobrazit pozadovany item a zaktivnit ho */
		to_element.addClass('aktivni');
		to_motto.show().addClass('aktivni');
		$('#intro').removeClass().addClass(to_element.attr('id'));

		return true;
	}

	/*
	 * spusti periodicke prepinani prolinacky
	 *
	 * @param node objekt prolinacky
	 * @param time interval prepinani
	 * @param options nastaveni
	 */
	function play(node, options) {

		/* priznak isPlaying a objekt timeru ulozime do daneho nodu */
		if (! node.data('isPlaying')) {
			node.data('timer', window.setInterval(function(){
					change(node, 'next');
				}, options['time'])
			);

			node.data('isPlaying', true);
		}

		return true;
	}

	/*
	 * zastavi prepinani prolinacky
	 *
	 * @param node objekt prolinacky
	 * @param options nastaveni
	 */
	function stop(node, options)
	{
		if (node.data('timer')) {
			/* smazeme timer */
			window.clearInterval(node.data('timer'));
		}
		
		/* a prepneme priznak */
		node.data('isPlaying', false);

		return true;
	}

	/* verejne pristupne defaultni hodnoty nastaveni */
	$.fn.intro.defaults = {
		'play'			: true,		// zacit automaticky prepinat
		'time'			: 2000,		// cas mezi prepinanim v milisekundach
		'delay'			: 500,		// zpozdeni zacatku prepinani v milisekundach
		'pause_on_hover': true		// pri prejeti mysi nad prolinackou pozastavit prepinani
	};
	
})(jQuery);

