var AdSlider = {
	/*
	* Nastaveni objektu
	*
	* @var stdClass
	*/
	Define: {
		IDs: {},
		Classes: {},
		isSliding: false,
		isMouseOver: false,
		moveDirection: null,
		slideSpeed: 1500,
		slideStyle: "swing"
	},
	
	/**
	* Inicializace objektu
	*
	* @param json $Define
	*/
	init: function(Define) {
		AdSlider.Define = Define;
	},
	
	/**
	* Spusteni aplikace, naveseni udalosti
	*
	* @return void
	*/
	run: function() {
		$(AdSlider.Define.IDs.previousLink).click(function(E) {
			E.preventDefault();
			E.stopPropagation();
		});
		$(AdSlider.Define.IDs.previousLink).mouseover(function(E) {
			E.preventDefault();
			E.stopPropagation();
			AdSlider.Define.slideSpeed = 1500;
			AdSlider.Define.slideStyle = "swing";
			AdSlider.Define.isMouseOver = true;
			AdSlider.Define.moveDirection = 'previous';
			AdSlider.movePrevious();
		});
		$(AdSlider.Define.IDs.previousLink).mouseout(function() {
			AdSlider.Define.isMouseOver = false;
		});
		$(AdSlider.Define.IDs.previousLink).mousedown(function(E) {
			E.preventDefault();
			E.stopPropagation();
			AdSlider.Define.slideSpeed = 500;
			AdSlider.Define.slideStyle = "linear";
		});
		$(AdSlider.Define.IDs.previousLink).mouseup(function(E) {
			AdSlider.Define.slideSpeed = 1500;
			AdSlider.Define.slideStyle = "swing";
		});
	
		$(AdSlider.Define.IDs.nextLink).click(function(E) {
			E.preventDefault();
			E.stopPropagation();
		});
		$(AdSlider.Define.IDs.nextLink).mouseover(function(E) {
			E.preventDefault();
			E.stopPropagation();
			AdSlider.Define.slideSpeed = 1500;
			AdSlider.Define.slideStyle = "swing";
			AdSlider.Define.isMouseOver = true;			
			AdSlider.Define.moveDirection = 'next';
			AdSlider.moveNext();
		});
		$(AdSlider.Define.IDs.nextLink).mouseout(function() {
			AdSlider.Define.isMouseOver = false;
		});
		$(AdSlider.Define.IDs.nextLink).mousedown(function(E) {
			E.preventDefault();
			E.stopPropagation();
			AdSlider.Define.slideSpeed = 500;
			AdSlider.Define.slideStyle = "linear";
		});
		$(AdSlider.Define.IDs.nextLink).mouseup(function(E) {
			AdSlider.Define.slideSpeed = 1500;
			AdSlider.Define.slideStyle = "swing";
		});
	},
	
	/**
	* Presun pocatecni pozice na dany prvek
	*
	* @param integer ID pozice
	* @return void
	*/
	goToPosition: function(itemID) {
		if (itemID <= ($(AdSlider.Define.Classes.adItem).length))
		{
			var i = 1;
			$(AdSlider.Define.Classes.adItem).each(function () {
				if (i < itemID) {
					$(AdSlider.Define.Classes.adItem+":last").after($(AdSlider.Define.Classes.adItem+":first"));
				}
				i++;
			})
		}
	},
	
	/**
	* Presun na predchazejici polozku
	*
	* @return void
	*/
	movePrevious: function() {
		if (AdSlider.Define.isSliding == true) {
			return false;
		}
		AdSlider.Define.isSliding = true;
		$(AdSlider.Define.IDs.container).css("left","-" + $(AdSlider.Define.Classes.adItem).css("width"));
		$(AdSlider.Define.Classes.adItem+":first").before($(AdSlider.Define.Classes.adItem+":last"));
		$(AdSlider.Define.IDs.container).animate({left: "0px"}, AdSlider.Define.slideSpeed, AdSlider.Define.slideStyle, function() {
			AdSlider.Define.isSliding = false;
			if (AdSlider.Define.isMouseOver == true) {
				AdSlider.move();
			}
		});
	},
	
	/**
	* Presun na nasledujici polozku
	*
	* @return void
	*/
	moveNext: function() {
		if (AdSlider.Define.isSliding == true) {
			return false;
		}
		AdSlider.Define.isSliding = true;
		$(AdSlider.Define.IDs.container).animate({left: "-" + $(AdSlider.Define.Classes.adItem).css("width")}, AdSlider.Define.slideSpeed, AdSlider.Define.slideStyle, function() {
			$(AdSlider.Define.Classes.adItem+":last").after($(AdSlider.Define.Classes.adItem+":first"));
			$(AdSlider.Define.IDs.container).css("left","0px");
			AdSlider.Define.isSliding = false;
			if (AdSlider.Define.isMouseOver == true) {
				AdSlider.move();
			}
		});
	},
	
	/**
	* Presun patricnym smerem (pri udalosti mouseOver)
	*
	* @return void
	*/
	move: function() {
		if (AdSlider.Define.moveDirection == 'next') {
			AdSlider.moveNext();
		}
		else {
			AdSlider.movePrevious();
		}
	}
}
