window.cache = {};
$(function() {
	$('#projetos .projeto').each(function() {
		var that = $(this);
		that.wrapInner(that.find('a').eq(0).clone().empty());
		that.find(':first a').each(function() {
			var that = $(this);
			that.replaceWith(that.html());
		});
	});
	$('#menu > li').mouseover(function() {
		$('#menu ul').hide();
		$(this).find('ul').show();
	});
	$('#menu').mouseout(function() {$('#menu ul').css('display','');});
	
	
	
	if($('#thumbs').length) {
		var thumbs = $('#thumbs'),clone;
			
		clone = thumbs.clone().addClass(thumbs.find('li:first').attr('class')).find('img').each(function() {
			$(this).wrap($(document.createElement('a')).attr('href','#' + this.parentNode.className.substr(4)));
		}).end().prepend($('<a href="#" class="anterior">&lt; anterior</a>').click(slideShow.esquerda)).append($('<a href="#" class="proximo">pr&oacute;ximo &gt;</a>').click(slideShow.direita)).find('li:first a').addClass('on').end();
		
		thumbs.replaceWith(clone);
		
		cache.thumbs = $('#thumbs').find('li a');
		
		cache.thumbs.each(function(i) {
			$(this).click(function() {
				
				cache.animating = true;
				cache.atual = i;
				
				slideShow.move();
				
				return false;
			});
		});
	}
});

function slideShow() {
	
	cache.imagens.height(Math.max.apply(null,$.map($.makeArray($('img',cache.imagens)),function(img,i) {
		return img.height;
	})));
	
	$('a.esquerda, a.direita').css('top',(cache.imagens.height() / 2) - 10);
	
	var slide = cache.slide.width(0);
	slide.find('li').each(function() {
		var item = $(this);
		slide.width(slide.width() + item.width());
	});
	
	slide.css('marginLeft',0);
	
	
	calcPosition(true);
	
	
}




slideShow.esquerda = function() {
	if(cache.animating || cache.atual <= 0)
		return false;
	$('a.esquerda').css('left',slideShow.zeroPosition + 20);
	$('a.direita').css('right',slideShow.zeroPosition + 20);
	
	cache.animating = true;
	cache.atual--;
	slideShow.move();
	
	return false;
};


slideShow.direita = function() {
	if(cache.animating || cache.atual >= cache.totalImages)
		return false;
	
	
	cache.animating = true;
	cache.atual++;
	slideShow.move();
	
	return false;
};

slideShow.move = function() {
	var margin = 996 * cache.atual;
	margin -= slideShow.zeroPosition;
	
	
	cache.slide.animate({'marginLeft':-margin},'normal','linear',function() {cache.animating = false;});
	
	
	if(cache.thumbs.length)
		cache.thumbs.removeClass('on').eq(cache.atual).addClass('on');
};

function calcPosition() {
	if(arguments[0]) {
		var slide = cache.slide,
			marginAtual = parseFloat(slide.css('marginLeft')) - slideShow.zeroPosition;
		
		slideShow.zeroPosition = (cache.imagens.width() / 2) - 498;
		
		
		slide.css('marginLeft',marginAtual + slideShow.zeroPosition);
		
		$('a.esquerda').css('left',slideShow.zeroPosition + 20);
		$('a.direita').css('right',slideShow.zeroPosition + 20);
		
		if(cache.thumbs.length)
			$('#thumbs').css('paddingRight',slideShow.zeroPosition);
	}
}

function preSlideShow(box) {
	slideShow.zeroPosition = 0;
	if(navigator.userAgent.indexOf('MSIE 6.0') != -1) {
		window.onload = slideShow;
		window.onresize = calcPosition;
	}
	else {
		$(window).load(slideShow);
		$(window).resize(calcPosition);
	}
	
	
	
	
	
	cache.animating = false;
	cache.imagens = $(box);
	cache.slide = cache.imagens.find('ul');
	cache.totalImages = cache.slide.find('li').length-1;
	cache.atual = 0;
	cache.thumbs = [];
	
	$.each(['esquerda','direita'],function(i,lado) {
		$(document.createElement('a'))
		.attr({href:'#',title:lado})
		.text(lado)
		.addClass(lado)
		.click(slideShow[lado])
		.appendTo(cache.imagens);
	});
	
	/*
	if(typeof window.onload == 'function')
		cache.onload = window.onload;
	else
		cache.onload = function() {};
	*/
	
}



function moveRight() {
	var ul = cache.imagens.find('ul');
	
	return parseInt(ul.css('marginLeft'),10) - ul.find('li').eq(cache.slide++).width();
}
function moveLeft() {
	var ul = cache.imagens.find('ul');
	
	return parseInt(ul.css('marginLeft'),10) + ul.find('li').eq(--cache.slide).width();
}

function slideMoveEvent(dir) {
	var ul = cache.imagens.find('ul'),
		imgs = cache.imagens.find('li'),
		max = 0,
		margin = null;
	if(dir == 'right') {
		//Caso o total de imagens seja menor que o width total
		//a ultima imagem tem que continuar visivel
		max = imgs.length - 1;
		var limit = 0;
		//fazemos um calculo para saber como deixar a maior quantidade
		//de imagens Ãƒ  mostra no fim do slideshow
		for(var i=imgs.length-1;i>0;i--) {
			limit += imgs.eq(i).width();
			if(limit > cache.imagens.width()) {
				max = i+1;
				break;
			}
		}
		margin = moveRight;
	}
	else if(dir == 'left')
		margin = moveLeft;
	else
		throw new Error('DireÃƒÂ§ÃƒÂ£o incorreta.');
	
	return function() {
		if(cache.animating || (cache.slide <= 0 && dir == 'left') || (cache.slide >= max && dir == 'right'))
			return false;
		
		cache.animating = true;
		if(this.hash) {
			var hash = this.hash.substr(1),
				m = 0;
			cache.slide = 0;
			while(cache.slide < hash)
				m += -(ul.find('li').eq(cache.slide++).width());
		}
		else
			var m = margin();
		
		ul.animate({marginLeft:m+'px'},'normal','swing',function() {
			$('#thumbs li a').removeClass('on');
			$('#thumbs li.img_' + cache.slide).find('a').addClass('on');
			cache.animating = false;
		});
		return false;
	};
}


function posSlideShow() {
	try {cache.onload();}catch(e){}
	
	
	
	var maxHeight = [],
		maxWidth = 0,
		_imgs = cache.imagens.find('img');
	
	
	if(_imgs.length > 1) {
		var div = $(document.createElement('div'));
		div.addClass('setas');
		
		var a = document.createElement('a');
		a.href = '#';
		a.innerHTML = a.title = a.className = 'esquerda';
		//$(a).click(slideMoveEvent('left'));
		div.append(a);
		
		
		a = document.createElement('a');
		a.href = '#';
		a.innerHTML = a.title = a.className = 'direita';
		//$(a).click(slideMoveEvent('right'));
		cache.imagens.append(div.append(a));
	}
	
	
	
	
	
	_imgs.each(function() {
		cache.totalImages.push(this);
	});
	
	for(var i=0;i<cache.totalImages.length;i++) {
		var t = cache.totalImages[i];
		maxHeight.push(t.height);
		maxWidth += t.width;
	}
	
	maxHeight = Math.max.apply(Math,maxHeight);
	maxHeight = isFinite(maxHeight)?maxHeight:0;
	
	cache.imagens.height(maxHeight).find('ul').height(maxHeight).width(maxWidth);
	
	
	
}

