/*
 * @autor: tadeu luis
 * @email: anestesya@gmail.com
 * @empresa: www.guenka.com.br
 * @data: 26/02/2010
 * @descrição: Este plugin cria um efeito no menu. 
 *  O menu tem que ser vertical. e pode-se utilizar imagens para criar o efeito.
 */
(function($){
   jQuery.fn.menu = function(opcoes){
   	  var self = this;
   	  var config = { 'default': 'fade' };
				   
	  if (opcoes) jQuery.extend(config, opcoes);
	  
	  var classe_lista = this.attr('class');
	  var lista_atual = this.attr('class');
	  
	  lista_atual = lista_atual.replace(classe_lista+' ', ''); //retorna a lista manipulada.

	  return this.each(function(i){
		jQuery(this).addClass('lista-'+i); //adiciona um identificador para cada elemento manipulado.
		jQuery(this).find('li').hover( function(){
			
			var lista = jQuery(this).parent();
			var $item = jQuery(this);
			var posicao = $item.parent();
			
			area = $item.parent();
			area = area.parent().find('h2').text();
			area = area.replace(' ', '_'); //trocar isso por uma regex decente! :P
			area = area.replace(' ', '_');
			
			switch(area){
				case 'segmentos': area = '.setapg_segmentos'; break;
				case 'pesquisa_&_inovação':	area = '.setapg_pesquisa_inovacao';	break;
				case 'ambiente_guenka': area = ".setapg_ambiente_guenka"; break;
				default: area='.seta';	break;
				
			}
								 	
			lista = lista.attr('class');
			lista = lista.replace(classe_lista+' ', '');
			
			posicao = posicao.find('li:first-child');
			posicao = $item.position().top;
			var atual = jQuery(this).parent().attr('class').replace(classe_lista+' ', '');
			//testa para saber se existe o elemento no DOM.
			if (!jQuery(area, $item)[0]) {
				$(area).remove();
				if(!jQuery(area)[0]){
					jQuery('<span class="'+area.replace('.', '')+'">&nbsp;</span>').css({
						'left': '-4px',
						'z-index': 1,
						'opacity': 0
					}).appendTo($item);
					jQuery(area).animate({'opacity': 1}, 120);
				}	 						
			} 
			//anima o elemento para a nova posição
			if(opcoes == 'fade' || (opcoes == 'undefined' || opcoes == null) ){ jQuery(area).css('top', (posicao-2) +'px').fadeIn('fast');	} //esmaecimento.
			if(opcoes == 'scroll'){jQuery(area).animate({'top':  (posicao-2) +'px'}, 200); } //scroll na vertical
			
			jQuery(this).find('a').css({
				color: '#fff',
				textShadow: 'none'
			});
	 	}, function(){
			jQuery(this).find('a').css({
				color: '#4d4d4d',
				textShadow: '1px 1px 0px #fff'
			});
			jQuery(area).fadeTo(100, 0);
			jQuery(area).remove();
	 	});//fim 'do hover();
	});//fim do return this.each()...
  };//fim do plugin
})(jQuery);
