/**
* Menic banneru na HMP
*
* @author Radek Zemanek
* @version 1.0.02.11.2010
*
* @uses jQuery 1.4.2
*/
var Slider = {

	/**
	* Nastaveni objektu
	*
	* @var object
	*/
	options: {},

	/**
	* Reference Timeru rotatoru
	*
	* @var object|null
	*/
	referenceTimer: null,

	/**
	* DOM Aktualni animace
	*
	* @var object|null
	*/
	animeNow: [],

	/**
	* Aktualni ID banneru
	*
	* @var integer
	*/
	nextID: 0,

	/**
	* Flag pro zastaveni animace
	*
	* @var boolean
	*/
	animeStoped: false,

	/**
	* Seznam
	*/
	container: [],

	/**
	* V inicializaci predame nastaveni a nastavime udalosti
	*
	* @param object $options
	* @return void
	*/
	init: function(options) {

		var Reference = this;
		Slider.options = options;

		$(Slider.options.IDs.navigation + " li").removeClass("active");
		$(Slider.options.IDs.navigation + " li:eq(" + Slider.nextID + ")").addClass("active");

		$(Slider.options.IDs.container + " " + Slider.options.classes.item).hide();
		$(Slider.options.IDs.container + " " + Slider.options.classes.item + ":first").show();

		$(Slider.options.IDs.navigation + " li.play").hide();

		$(Slider.options.IDs.navigation + " a").mouseover(function(E) {
			E.stopPropagation();
			E.preventDefault();

			if ($(this).parent().hasClass("play") || $(this).parent().hasClass("stop")) {
				return true;
			}

			var ID = $(Slider.options.IDs.navigation + " li").index($(this).parent());

			Slider.stopRotate();

			if ($(Slider.animeNow).length > 0) {
				$(Slider.animeNow).stop();
				$(Slider.animeNow).css('opacity', 1);
			}

			Slider.nextID = ID;

			Slider.animate(ID);
		});

		$(Slider.options.IDs.navigation + " a").mouseout(function() {

			if ($(this).parent().hasClass("play") || $(this).parent().hasClass("stop")) {
				return true;
			}

			Slider.startRotate();
		});

		$(Slider.options.IDs.navigation + " li.stop a").click(function(E) {
			E.stopPropagation();
			E.preventDefault();

			$(this).parent().hide();

			$(Slider.options.IDs.navigation + " li.play").show();
			Slider.animeStoped = true;
			Slider.stopRotate();
		});

		$(Slider.options.IDs.navigation + " li.play a").click(function(E) {
			E.stopPropagation();
			E.preventDefault();

			$(this).parent().hide();
			$(Slider.options.IDs.navigation + " li.stop").show();
			Slider.animeStoped = false;
			Slider.startRotate();
		});


		Slider.startRotate();

	},

	/**
	* Zjisti ktery blok animovat a ten zanimuje
	*
	* @return void
	*/
	rotate: function() {

		if (Slider.nextID >= $(Slider.options.IDs.container + " " + Slider.options.classes.item).length) {
			Slider.nextID = 0;
		}

		$(Slider.options.IDs.navigation + " li").removeClass("active");
		$(Slider.options.IDs.navigation + " li:eq(" + Slider.nextID + ")").addClass("active");

		Slider.animate(Slider.nextID);

		Slider.nextID++

		Slider.startRotate();
	},

	/**
	* Nastavi timout pro animaci
	*
	* @return void
	*/
	startRotate: function() {
		if (Slider.animeStoped) {
			return true;
		}

		Slider.referenceTimer = window.setTimeout("Slider.rotate();", Slider.options.interval);
	},

	/**
	* Zastavi animaci
	*
	* @return void
	*/
	stopRotate: function() {
		window.clearInterval(Slider.referenceTimer);
	},

	/**
	* Animace bloku
	*
	* @param integer $ID
	* @return void
	*/
	animate: function(ID) {

		var Slide = $(Slider.options.IDs.container + " " + Slider.options.classes.item).get(ID);

		if ($(Slide).find('img').length == 0) {
			return false;
		}

		$(Slider.options.IDs.navigation + " li").removeClass("active");
		$(Slider.options.IDs.navigation + " li:eq(" + ID + ")").addClass("active");

		Slider.animeNow = Slide;

		$(Slide).css('z-index', 100);
		$(Slide).find('div.sliderContent').css('z-index', 100);

		$(Slide).fadeIn(500, function() {
			$(Slider.options.IDs.container + " " + Slider.options.classes.item).each(function(i, O) {
				if (i!= ID) {
					$(this).hide();
					$(Slide).css('z-index', 1);
					$(Slide).find('div.sliderContent').css('z-index', 1);
				}
			});

			Slider.animeNow = [];
		});
	}
}

var SliderNews = {
	/*
	* Nastaveni objektu
	*
	* @var stdClass
	*/
	Define: {
		IDs: {},
		Classes: {},
		isSliding: false,
		isMouseOver: false,
		itemPlus: 220,
		moveDirection: null
	},
	
	/**
	* Inicializace objektu
	*
	* @param json $Define
	*/
	init: function(Define) {
		SliderNews.Define = Define;
		SliderNews.Define.page = 0;
		SliderNews.Define.itemPlus = 200;
	},
	
	/**
	* Spusteni aplikace, naveseni udalosti
	*
	* @return void
	*/
	run: function() {
		$(SliderNews.Define.IDs.container).css("top", "0px");
		/* $(SliderNews.Define.IDs.previousLink).mouseout(function() {
			SliderNews.Define.isMouseOver = false;
		});*/
		
		$(SliderNews.Define.Classes.page + ':first').addClass('active');
		
		$(SliderNews.Define.IDs.previousLink).click(function(E) {
			E.preventDefault();
			E.stopPropagation();
			SliderNews.movePrevious();
		});
		
		$(SliderNews.Define.IDs.nextLink).click(function(E) {
			E.preventDefault();
			E.stopPropagation();
			SliderNews.moveNext();
		});
	},
	
	/**
	* Presun pocatecni pozice na dany prvek
	*
	* @param integer ID pozice
	* @return void
	*/
	goTo: function(page) {
		if (SliderNews.Define.isSliding == true) {
			return false;
		}
		SliderNews.Define.isSliding = true;
		
		var width = parseInt($(SliderNews.Define.Classes.adItem).css("width"), 10) * page + SliderNews.Define.itemPlus * page;
			width = -width;
			
		SliderNews.changePage();
		
		$(SliderNews.Define.IDs.container).animate({top: width.toString() + "px"}, 1000, null, function() {
			SliderNews.Define.isSliding = false;
			if (SliderNews.Define.isMouseOver == true) {
				SliderNews.move();
			}
			
		});

	},
	
	changePage: function() {
		$(SliderNews.Define.Classes.page).removeClass('active');
		$(SliderNews.Define.Classes.page + ':eq(' + (SliderNews.Define.page) + ')').addClass('active');
	},
	
	/**
	* Presun na predchazejici polozku
	*
	* @return void
	*/
	movePrevious: function() {
		if (SliderNews.Define.isSliding == true) {
			return false;
		}
		SliderNews.Define.isSliding = true;
		
		var pos = parseInt($(SliderNews.Define.IDs.container).css("left"), 10);
			
		if (pos > -286) { 
			SliderNews.Define.isSliding = false;
			return false; 
		}
		
		SliderNews.changePage();
		$(SliderNews.Define.IDs.container).animate({left: "+=" + 286 + "px"}, 1000, null, function() {
			SliderNews.Define.isSliding = false;
			if (SliderNews.Define.isMouseOver == true) {
				SliderNews.move();
			}
		});
	},
	
	/**
	* Presun na nasledujici polozku
	*
	* @return void
	*/
	moveNext: function(page) {
		if (SliderNews.Define.isSliding == true) {
			return false;
		}
		if (parseInt($(SliderNews.Define.IDs.container).css("left"), 10) < ($(SliderNews.Define.Classes.adItem).length -3) * 286 * -1) {
			SliderNews.Define.isSliding = false;
			return false;
		}
		SliderNews.Define.isSliding = true;
		
		$(SliderNews.Define.IDs.container).animate({left: "-=" + 286 + "px"}, 1000, null, function() {
			SliderNews.Define.isSliding = false;
			if (SliderNews.Define.isMouseOver == true) {
				SliderNews.move();
			}
		});
		
	},
	
	/**
	* Presun patricnym smerem (pri udalosti mouseOver)
	*
	* @return void
	*/
	move: function() {
		if (SliderNews.Define.moveDirection == 'next') {
			SliderNews.moveNext();
		}
		else {
			SliderNews.movePrevious();
		}
	}
}
