/*
*
*	JavaScript Document
*
*	Data:				00/00/0000
*	Descricao:			Arquivo com as funções globais do projeto
*	Autor:				Pedro Schneider
*	E-mail: 			correaschneider@gmail.com
	
*	Observacoes:		USE ESTE ARQUIVO SOMENTE PARA FUNÇÕES GENÉRICAS APLICÁVEIS A MAIS DE UMA ENTIDADE (EF) 
*
*/

// Funcao para inserir _blank em links externos
function ExternoLink() 
{
	$("a[rel=external]").attr("target", "_blank");
}
// Funcao para inserir _blank em links externos
function RetornoLink() 
{
	$("a[rel=back]").click( function(){ history.back(); return false });
}
// Funcao para inserir funcao de imprimir nos links
function ImprimirLink() 
{
	$("a[rel=print]").click( function(){ print(); })
}
// Funcao para inserir funcao de adicionar aos favoritos nos links
function FavoritoLinks()
{
	$("a[rel=bookmark]").click( function(){
		if (document.all) window.external.AddFavorite(window.location.href, document.title);
		else if (window.sidebar) window.sidebar.addPanel(document.title, window.location.href, "")
	});
}

//Funcao para flash
function carregaFlash(caminho, largura, altura, flashvar) {
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="'+largura+'" height="'+altura+'">');
	document.write('<param name="movie" value="'+caminho+'">');
	document.write('<param name="quality" value="high">');
	document.write('<param name="wmode" value="transparent">');
	document.write('<param name="flashvars" value="'+flashvar+'">');
	document.write('<param name="menu" value="false">');
	document.write('<embed wmode="transparent" flashvars="'+flashvar+'" src="'+caminho+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+largura+'" height="'+altura+'"></embed>');
	document.write('</object>');
} 

// Ajax para carregar as UnidadesFederativas
function CarregarCidade(estadoID, objeto)
{
	if(estadoID == '')
	{
		return false;
	}
	
	// Exibe a mensagem de Carregando...
	objeto.html('<option value="" >'+FORM_CARREGANDO+'</option>');
	
	// Executa a consulta em ajax	
	$.ajax(
	{
		type: "POST",
		url: CAMINHO_ABSOLUTO  + "cidade/carregar-cidade",
   		data: 
   		{
   			EstadoID: estadoID
   		},
   		success: function(retorno)
   		{
   			if (objeto.attr('id') == 'selProdutoCidade') {
   				var labelSelect = 'Cidade';
   			} else {
   				var labelSelect = FORM_SELECIONE;
   			}
   			
   			// Limpa o combo
   			objeto.html('');
   			objeto.append('<option value="">'+labelSelect+'</option>');
    		eval('var colecaoCidade = ' + retorno);
    		
    		// Caso a coleção seja valida, popula o combo
    		if(colecaoCidade != undefined)
    		{
    			var cidadeAtualID = objeto.next('input').val();
    			
	    		for(var contador = 0;contador < colecaoCidade.length; contador ++)
	    		{
	    			if (cidadeAtualID == colecaoCidade[contador].CidadeID) {
	    				objeto.append('<option value="' + colecaoCidade[contador].CidadeID + '" selected="selected">' + colecaoCidade[contador].Nome + '</option>');
	    			} else {
	    				objeto.append('<option value="' + colecaoCidade[contador].CidadeID + '">' + colecaoCidade[contador].Nome + '</option>');
	    			}
	    		}
    		}
    		// Caso contrario, exibe a mensagem "Nenhum registro encontrado"
    		else
    		{
    			objeto.html('<option value="" >'+FORM_NENHUM_REGISTRO+'</option>');
    		}
   		}
	});	
}


// Função que declara os eventos change paises, estados e cidades.
function DelcararVizualizarPaisEstadoCidade()
{
	//Carregar as Cidades de Acordo com os estados
	if ($('#selEstado').val() != '') {
		var estadoID = $('#selEstado').val();
		CarregarCidade(estadoID, $('#selCidade'));
	}

	$('#selEstado').change(function() 
	{
		var estadoID = $(this).val();
		CarregarCidade(estadoID, $('#selCidade'));
	});
	
	//Carregar as Cidades de Acordo com os estados
	if ($('#selProdutoEstado').val() != '') {
		var estadoID = $('#selProdutoEstado').val();
		CarregarCidade(estadoID, $('#selProdutoCidade'));
	}
	
	$('#selProdutoEstado').change(function() 
	{
		var estadoID = $(this).val();
		CarregarCidade(estadoID, $('#selProdutoCidade'));
	});
}

// Função que atribui mascasrás atrávez de classes CSS
function DeclararMascaras()
{
	$('input.data, input.cep, input.telefone, input.cpf, input.cnpj').unbind();
	$('input.data').mask('99/99/9999');
	$('input.cep').mask('99999-999');
	$('input.telefone').mask('(99) 9999-9999');
	$('input.cpf').mask('999.999.999-99');
	$('input.cnpj').mask('999.999.999/9999-99');
	$('input.numero').numeric();
}

// Função para iniciar as demais
$(document).ready(function() 
{
	ExternoLink(); // Funcao para inserir _blank em links externos
	RetornoLink(); // Funcao para inserir função de retorno no link
	ImprimirLink(); // Funcao para inserir função de imprimir no link
	FavoritoLinks(); // Funcao para inserir função de adicionar aos favoritos no link
	//DeclararMascaras(); // Funcao para Declarar as máscaras
	DelcararVizualizarPaisEstadoCidade(); // Função que declara os eventos change paises, estados e cidades.

	// Ajusta a altura das colunas (meio e lateral)
	if ($('#home').length > 0) {
		var alturaPrincipal = $('#tab1').height();
		var alturaSecundario = $('#secundario').height();

		if (alturaPrincipal > alturaSecundario) {
			$('#secundario div#empresas').height(alturaPrincipal - 400);
		} else {
			$('#tab1').height(alturaSecundario);
		}
	}
	
	// limpa o input no focus
	var clearMePrevious = '';

	$('.clearFocus').focus(function()
	{
		if($(this).val()==$(this).attr('title')) {
			clearMePrevious = $(this).val();
			$(this).val('');
		}
	});

	// se o campo estiver vazio, adiciona o texto novamente
	$('.clearFocus').blur(function() {
		if($(this).val()=='') {
			$(this).val(clearMePrevious);
		}
	});
	
	/* ABAS */
	$('.box-abas ul.menu li a').each(function(){
		if ($(this).hasClass('muda-aba')) {
			$(this).click(function(){
				$('.box-abas ul.menu li').addClass('azul');
				$('.box-abas ul.menu li a').removeClass('tt-aba');
				$('.box-abas ul.menu li a').addClass('tt-aba-azul');
				$('.box-abas ul.menu li div.box-off').removeClass('escondido');
				$(this).removeClass('tt-aba-azul');
				$(this).addClass('tt-aba');
				$(this).parent('strong').parent('li').removeClass('azul');
				$(this).parent('strong').parent('li').children('div.box-off').addClass('escondido');
				
				$.ajax({
					type: "POST",
					url: CAMINHO_ABSOLUTO  + "index/carregar-aba",
			   		data: {
			   			RamoID: $(this).attr('id')
			   		},
			   		success: function(retorno) {
			   			$('#tab1 div.data').html(retorno);
			   		}
				});
			})
		}
	})

	$('#abas-busca ul li a').each(function(){
		$(this).click(function(){
			$('#abas-busca ul.menu li').removeClass('azul');
			$('#abas-busca ul.menu li a').addClass('tt-aba');
			$('#abas-busca ul.menu li a').removeClass('tt-aba-azul');
			$('#abas-busca ul.menu li div.box-off').addClass('escondido');
			$(this).addClass('tt-aba-azul');
			$(this).removeClass('tt-aba');
			$(this).parent('strong').parent('li').addClass('azul');
			
			if ($(this).attr('id') == 'empresa') {
				$('#txtNomeEmpresaProduto').val('Nome da ' + $(this).attr('id'));
				$('#txtNomeEmpresaProduto').attr('title', 'Nome da ' + $(this).attr('id'));
				$('#hdnBuscaFiltro').val('E');
			} else {
				$('#txtNomeEmpresaProduto').val('Nome do ' + $(this).attr('id'));
				$('#txtNomeEmpresaProduto').attr('title', 'Nome do ' + $(this).attr('id'));
				$('#hdnBuscaFiltro').val('P');
			}
		})
	})
	
	/* BUSCA */
	$.ui.autocomplete.prototype._renderItem = function( ul, item){
		  var term = this.term.split(' ').join('|');
		  var re = new RegExp("(" + term + ")", "gi") ;
		  var t = item.Nome.replace(re,"<b>$1</b>");
		  return $( "<li></li>" )
		     .data( "item.autocomplete", item )
		     .append( "<a>" + t + "</a>" )
		     .appendTo( ul );
		};
		
	$("input#txtNomeEmpresaProduto").autocomplete({
		source: CAMINHO_ABSOLUTO + 'busca/?buscaFiltro=' + $('#hdnBuscaFiltro').val(),
		minLength: 3,
		select: function(event, ui) {
			document.location = CAMINHO_ABSOLUTO + ui.item.UrlCompleta;
		}
	});		
		
	$("#abas-busca a").bind('click', function(){
		$("input#txtNomeEmpresaProduto").autocomplete({
			source: CAMINHO_ABSOLUTO + 'busca/?buscaFiltro=' + $('#hdnBuscaFiltro').val(),
			minLength: 3,
			select: function(event, ui) {
				document.location = CAMINHO_ABSOLUTO + ui.item.UrlCompleta;
			}
		});
	});

	$('#frmBusca').submit(function(){
		if ($('#selProduto').val() != '') {
			$('#frmBusca').attr('action', $('#selProduto').val());
			
			return true;
		} else {
			$('#frmBusca').attr('action', $('#frmBusca').attr('action') + '/?q=' + $('#txtNomeEmpresaProduto').val());
			
			return true;
		}
	})
	
	/* CLIQUES */
	$('.lk-banner').click(function(){
		$.ajax({
			type: "POST",
			url: CAMINHO_ABSOLUTO  + "clique/banner",
	   		data: {
	   			BannerID: $(this).attr('id'),
	   			Tipo: $(this).attr('name')
	   		}
		});	
	});
	
	$('.lk-banner-produto').click(function(){
		$.ajax({
			type: "POST",
			url: CAMINHO_ABSOLUTO  + "clique/banner",
	   		data: {
	   			BannerProdutoID: $(this).attr('id'),
	   			Tipo: $(this).attr('name')
	   		}
		});	
	});
	
	$('.lk-banner-subcategoria').click(function(){
		$.ajax({
			type: "POST",
			url: CAMINHO_ABSOLUTO  + "clique/banner",
	   		data: {
	   			BannerSubCategoriaID: $(this).attr('id'),
	   			Tipo: $(this).attr('name')
	   		}
		});	
	});
	
	$('.lk-banner-categoria').click(function(){
		$.ajax({
			type: "POST",
			url: CAMINHO_ABSOLUTO  + "clique/banner",
	   		data: {
	   			BannerCategoriaID: $(this).attr('id'),
	   			Tipo: $(this).attr('name')
	   		}
		});	
	});
	
	// Carrossel produtos loja
	function carrosselProdutoLoja(carousel)
	{
	    // Disable autoscrolling if the user clicks the prev or next button.
	    carousel.buttonNext.bind('click', function() {
	        carousel.startAuto(0);
	    });

	    carousel.buttonPrev.bind('click', function() {
	        carousel.startAuto(0);
	    });

	    // Pause autoscrolling if the user moves with the cursor over the clip.
	    carousel.clip.hover(function() {
	        carousel.stopAuto();
	    }, function() {
	        carousel.startAuto();
	    });
	};

	$('.lista-loja').jcarousel({
        auto: 4,
        wrap: 'last',
        scroll: 1,
        initCallback: carrosselProdutoLoja
    });
	
	// Mostra ou não fundo do banner
	if ($('#banner-topo a').length <= 0) {
		$('#banner-topo').hide();
	}
	
	if ($('#banner-meio a').length <= 0) {
		$('#banner-meio').hide();
	}
	
	if ($('#banner-rodape a').length <= 0) {
		$('#banner-rodape').hide();
	}
	
	if ($('#banner-intermediario a').length <= 0) {
		$('#banner-intermediario').hide();
	}
});
