/// <reference path="jquery-1.4.1-vsdoc.js" />

//Preload Extension
(function($) {
	var cache = [];
	// Arguments are image paths relative to the current page.
	$.preLoadImages = function() {
		var args_len = arguments.length;
		for (var i = args_len; i--; ) {
			var cacheImage = document.createElement('img');
			cacheImage.src = arguments[i];
			cache.push(cacheImage);
		}
	}
})(jQuery)

/**
 * Mostra/Esconde menus
 * @author Daniel Lopes <danielhenriqueslopes@gmail.com>
 */
function showHideSubMenu(menuItemSelector, submenuSelector)
{
    $(menuItemSelector).mouseover(function() 
    {
        var parent = $(this).parent();
        $(submenuSelector).css("top", parent.offset().top + parent.height());
        $(submenuSelector).css("left", parent.offset().left);
        $(submenuSelector).stop(true).fadeTo("fast", 1);
    });
    
    $(submenuSelector).mouseover(function() 
    {
        $(submenuSelector).stop(true).fadeTo("fast", 1);
    });
    $(submenuSelector + ", " + menuItemSelector).mouseout(function() 
    {
        $(submenuSelector).fadeOut("fast");
    });
}

/**
 * Slideshow, caso deseje usar me contate e mantenha os créditos
 * @author Daniel Lopes <danielhenriqueslopes@gmail.com>
 */
function SlideShow(imagens, seletor, tempoAtualizacao)
{	
	var imagens = imagens;
	var seletor = seletor;
	var tempoAtualizacao = tempoAtualizacao;
	var atual = 0;
	var intervalSlideShow = null;
	//Pre carrega imagens
	for (var i = 0; i < imagens.lenght; i++)
	{	
		jQuery.preLoadImages(imagens[i].path);			
	}

	this.setSlide = function(indice)
	{	
		var url = imagens[indice].path;		
		var wrap = $(seletor);		
		wrap.find("img").fadeOut("normal", function()
		{
			wrap.find("img").attr("src", url);
			wrap.find("img").fadeIn("normal");
		});

		atual = indice;
	};

	this.executar = function()
	{		
		if (imagens.length > 0)
		{
			var _this = this;

			this.setSlide(0);
			intervalSlideShow = self.setInterval(function() { _this.mover("proxima", false) }, tempoAtualizacao);
		}
	};

	this.mover = function(direcao, stopAutoSlide)
	{
		if (stopAutoSlide)
		{
			clearInterval(intervalSlideShow);
		}

		if (direcao == "proxima")
		{
			if (atual + 1 > imagens.length - 1)
			{
				atual = -1;
			}
			atual++;
		}
		else if (direcao == "anterior")
		{
			if (atual - 1 < 0)
			{
				atual = imagens.length;
			}
			atual--;
		}
		

		this.setSlide(atual);
	};	
}


