var lastText = "";
var countKeyUp = 0; // javascript: alert(countKeyUp);
var ajaxRequest = []; // javascript: alert(ajaxRequest.join('\n'));
var user_search;
function handleKey(code){
	if($('div#searchFast li.focus').size() == 0 && code == 40){
		$('div#searchFast li:first').addClass('focus');
	} else {
		var totalElements = $('div#searchFast li').size();
		var focado = $('div#searchFast li.focus');
		if( code == 39 && focado.parent('#suggestions1').size()>0){
			focado.removeClass('focus')
			var meuIndice = $('#suggestions1 li').index(focado[0]);
			if( $('#suggestions2 li').size() >= meuIndice ){
				$('#suggestions2 li').eq(meuIndice).addClass('focus');
			} else if ($('#suggestions2 li').size()>0){
				$('#suggestions2 li:first').addClass('focus');
			}
		} else if( code == 37 && focado.parent('#suggestions2').size()>0 ){
			focado.removeClass('focus')
			var meuIndice = $('#suggestions2 li').index(focado[0]);
			$('#suggestions1 li').eq(meuIndice).addClass('focus');
		} else if( code == 38 ){
			focado.removeClass('focus')
			if( focado.prev().size()> 0){
				focado.prev().addClass('focus');
			} else if(focado.parent('#suggestions2').size()>0){
				$('#suggestions1 li:last').addClass('focus')
			}
		} else if( code == 40 ){
			focado.removeClass('focus')
			if( focado.next().size() > 0){
				focado.next().addClass('focus');
			} else if(focado.parent('#suggestions1').size()>0){
				$('#suggestions2 li:first').addClass('focus')
			}
		} else if( code == 13 ){
			if( focado.size() > 0 && focado.find('a').size() > 0) {
				document.location = focado.find('a').attr('href');
			} else {
				$('#shopping-busca form')[0].submit();
			}
		}
	}
	
	if($.trim($('li.focus a').text()) != ""){
		$('#shopping-busca input[name=q]').val($('li.focus a').text());
	}else{
		$('#shopping-busca input[name=q]').val(user_search);
	}
}
$(function(){

	/* remove hover setado pelo teclado quando o mouse entra em ação */
	$('div#searchFast').mouseover(function(){
		$('div#searchFast ol li').removeClass('focus');
	});
	// autocomplete
	$('input#caixa-busca').attr('autocomplete','off');
	//$("div#searchFast").width($("input#caixa-busca").width());
	$("input#caixa-busca").keyup(function(event){
		var par = location.href.match(/([a-z0-9]{1,})\.?shopping.uol.com.br/i);
		
		if(event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 39 && event.keyCode != 37){
			user_search = $(this).val();
		}
		
		// escreve suggestion no shopping exceto nos parceiros
		if($('div#masterContentsFast').size() == 0){
			var html = '<div id="masterContentsFast"><div id="contentsFast"><div id="innerContentsFast"><div id="searchFast"></div></div></div></div>';
			$('div#tudo').prepend(html);
		}
		
		if( !event ) return false;
		if( !event.which && event.keyCode ){
			event.which = event.keyCode;
		}
		if ( (event.which > 36 && event.which < 41) || event.which == 13  ){
			if( $('div#searchFast li').size() > 0){
				handleKey( event.which );
				return false;
			}
		}
		var q = $("input#caixa-busca").val();
		if (q == "") {
			hideSearchFast();
			lastText = "";
		} else if(q != lastText) {
			setTimeout(function(){
				var newQ = $("input#caixa-busca").val();
				if( q == newQ ){
					lastText = q;
					retrieveSuggestion(q);
				}
			}, 100)
		}
	});
	$("#shopping-busca input[name=q]").focus();
	
	$('#shopping-busca input[name=q]').focus(function(){
		this.style.color = "#000";
		this.style.backgroundColor = "#FFF9E8";
		
		if($.trim($(this).val()) == "digite produto ou marca"){
			this.value = '';
		}
	});
	
	$('#shopping-busca input[name=q]').blur(function(){
		this.style.backgroundColor = "#FFF";
	
		if($.trim(this.value) == ''){
			this.style.color = "#CCC";
			this.value = 'digite produto ou marca';
		}
	});
	
	// eventos de exibição para todas as categorias na aba
	$('li.aba-todos').mouseover(function(){
		$('#posiciona-deptos').css({"visibility":"visible"});
	})
	$('li.aba-todos').mouseout(function(){
		$('#posiciona-deptos').css({"visibility":"hidden"});	
	})
});

function retrieveSuggestion(q){
	var counter = 0;
	var limit = 3;
	var term = "term="+q;
	function callAjax(){
		$.ajax({
			type: "GET",
			data: term,
			url: "suggestion.html",
			success: function(result){
				$("div#searchFast").show().removeClass('twocolumns');
				$("div#searchFast").html('<ol id="suggestions1">' + result + '</ol>');
				
				$('#searchFast li a').each(function(){
					var text = $(this).text().replace(q,'<strong>'+ q +'</strong>');
					$(this).html(text);
				});
				
				var listsize = $('div#searchFast li').size();
				if( listsize > 5 ){
					$("div#searchFast").append('<ol id="suggestions2"></ol>');
					$('div#searchFast li:gt('+(Math.floor(listsize/2)-1)+')').appendTo('#suggestions2');
					if( listsize > 8 && $.browser.msie ){
						$('body').addClass('hideselects');
					}
				} else if(listsize==0){
					hideSearchFast();
				}
				$("div#searchFast ol#suggestions1").before('<div id="titlefastsearch"><h2 id="sugestitle">Sugestões:</h2><a href="javascript:hideSearchFast()" id="ahide">fechar</a></div>');
			}
		});
	};
	callAjax();
}

function hideSearchFast(){
	$('body').removeClass('hideselects');
	$("div#searchFast").hide();
}

var busca = new Object();

// criaCookie: Cria um cookie (dã) - http://www.quirksmode.org/js/cookies.html
uol.criaCookie = function (name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; domain=.uol.com.br; path=/;";
}

// clear Cookie
uol.eraseCookie = function (name) {
	uol.criaCookie( name ,"", -1 );
	$('div#lastSearch p').fadeOut('slow');
}

busca.limitaCategorias = function() {
	$(".refina-colunas").eq(1).each(function(){
			$(this).css({"height":this.offsetHeight+'px'});
		})
	var initialValue = $(".refina-colunas + p.action").find("a").html();
	$(".refina-colunas + p.action").find("a").click(function(e){
		e.preventDefault();
		e.stopPropagation();
			$(this)
				.parent("p")
					.prev("div.refina-colunas").eq(0)
					.toggleClass("open-cats")
				.end()
			.end()
			.end()
			.toggleHtml(initialValue,"Fechar");
		})
}
$(function(){

	$('.refinamento').width(); /* hack for ie6 - show the refine box */

	/* reduz qt de caracteres das últimas buscas */
	$('#lastSearch a.countSize').each(function(){
		var s = $.trim($(this).html());
		if( s.length > 16 ){
			s = s.substring(0,15) + '<span>(...)</span>';
		}
		$(this).html(s);
	})

	//busca.iniAbas();
	busca.limitaCategorias();
});















// fim


