/*
*
*	JavaScript Document
*
*	Data:				00/00/0000
*	Descricao:			Arquivo com as funções globais do projeto
*	Autor:				Marcelo Casinha
*	E-mail: 			marcelo@gadbrivia.com.br
	
*	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, "")
	});
}*/

// Ajax para carregar as UnidadesFederativas
function CarregarUnidadeFederativa(paisID, objeto)
{
	if(paisID == '')
	{
		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  + "unidade-federativa/carregar-unidade-federativa",
   		data: 
   		{
   			PaisID: paisID
   		},
   		success: function(retorno)
   		{
   			// Limpa o combo
   			objeto.html('');
   			objeto.append('<option value="" >'+FORM_SELECIONE+'</option>');
    		eval('var colecaoUnidadeFederativa = ' + retorno);
    		
    		// Caso a coleção seja valida, popula o combo
    		if(colecaoUnidadeFederativa != undefined)
    		{
    			
	    		for(var contador = 0;contador < colecaoUnidadeFederativa.length; contador ++)
	    		{
	    			objeto.append('<option value="' + colecaoUnidadeFederativa[contador].UnidadeFederativaID + '" >' + colecaoUnidadeFederativa[contador].Nome + '</option>');
	    		}
    		}
    		// Caso contrario, exibe a mensagem "Nenhum registro encontrado"
    		else
    		{
    			objeto.html('<option value="" >'+FORM_NENHUM_REGISTRO+'</option>');
    		}
   		}
	});	
}

// Ajax para carregar as UnidadesFederativas
function CarregarMunicipio(unidadeFederativaID, objeto)
{
	if(unidadeFederativaID == '')
	{
		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  + "municipio/carregar-municipio",
   		data: 
   		{
   			UnidadeFederativaID: unidadeFederativaID
   		},
   		success: function(retorno)
   		{
   			// Limpa o combo
   			objeto.html('');
   			objeto.append('<option value="" >'+FORM_SELECIONE+'</option>');
    		eval('var colecaoMunicipio = ' + retorno);
    		
    		// Caso a coleção seja valida, popula o combo
    		if(colecaoMunicipio != undefined)
    		{
    			
	    		for(var contador = 0;contador < colecaoMunicipio.length; contador ++)
	    		{
	    			objeto.append('<option value="' + colecaoMunicipio[contador].MunicipioID + '" >' + colecaoMunicipio[contador].Nome + '</option>');
	    		}
    		}
    		// Caso contrario, exibe a mensagem "Nenhum registro encontrado"
    		else
    		{
    			objeto.html('<option value="" >'+FORM_NENHUM_REGISTRO+'</option>');
    		}
   		},
   		complete: function()
   		{
   			$.jNice.SelectUpdate(objeto);
   		}
	});	
}

// Função que auxilia na visualização de campos conforme o pais
function VisualizarCamposRegiao(parametro, classePrimaria, classeSecundaria)
{
	switch(parametro)
	{
		case 1: // Brasil
			$('.' + classePrimaria).show()
			$('.' + classeSecundaria).hide()
			$('input:not(:checkbox,:radio,:password).' + classeSecundaria).val('');
			$('select.' + classeSecundaria).val('');
			$('textarea.' + classeSecundaria).val('');
			$('input:checkbox.' + classeSecundaria).removeAttr('checked');
			$('input:radio.' + classeSecundaria).removeAttr('checked');
			break;
		case 2: // Estrangeiro
			$('.' + classePrimaria).hide()
			$('.' + classeSecundaria).show()
			$('input:not(:checkbox,:radio,:password).' + classePrimaria).val('');
			$('select.' + classePrimaria).val('');
			$('textarea.' + classePrimaria).val('');
			$('input:checkbox.' + classePrimaria).removeAttr('checked');
			$('input:radio.' + classePrimaria).removeAttr('checked');
			break;
		default: // Reseta todos os campos
			$('.' + classePrimaria).show()
			$('.' + classeSecundaria).hide()
			$('input:not(:checkbox,:radio,:password).' + classePrimaria + ', input:not(:checkbox,:radio,:password).' + classeSecundaria).val('');
			$('select.' + classePrimaria + ', select.' + classeSecundaria).val('');
			$('textarea.' + classePrimaria + ', textarea.' + classeSecundaria).val('');
			$('input:checkbox.' + classePrimaria).removeAttr('checked');
			$('input:radio.' + classePrimaria).removeAttr('checked');
			$('input:checkbox.' + classeSecundaria).removeAttr('checked');
			$('input:radio.' + classeSecundaria).removeAttr('checked');
			break;
	}
}

// Função que declara os eventos change paises, estados e cidades.
function DelcararVizualizarPaisEstadoCidade()
{
	// Carregar os Estados de Acordo com os países
	$('#selPaisID').change(function() 
	{
		var paisID = $(this).val();
		if(paisID == CONSTANTE_PAIS_BRASIL_ID)
		{
			CarregarUnidadeFederativa(paisID, $('#selUnidadeFederativaID'));
			VisualizarCamposRegiao(1,'nacional','internacional');
			$('#txtMunicipioExterior').parent('li').addClass('menor');
		}
		else if(paisID != CONSTANTE_PAIS_BRASIL_ID && paisID != '')
		{
			VisualizarCamposRegiao(2,'nacional','internacional');
			$('#txtMunicipioExterior').parent('li').removeClass('menor');
		}
		else
		{
			VisualizarCamposRegiao(null,'nacional','internacional');
			$('#txtMunicipioExterior').parent('li').addClass('menor');
		}
	});
	
	//Carregar as Cidades de Acordo com os estados
	$('#selUnidadeFederativaID').change(function() 
	{
		var unidadeFederativaID = $(this).val();
		CarregarMunicipio(unidadeFederativaID, $('#selMunicipioID'));
	});
}

// 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('99.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.
	
	//$("#menu-global li").hover(
//	  function () {
//		$('#menu-secundario').stop().animate({top:'62px'}, 500);
//		if( $(this).hasClass('lk-colecao') ){ $('.sub-menu-colecao').stop().show(); }else{ $('.sub-menu-campanha').stop().show(); }
//	  }, 
//	  function () {
//		$('#menu-secundario').stop().animate({top:'0'}, 500, function(){
//			if( $(this).hasClass('lk-colecao') ){ $('.sub-menu-colecao').stop().hide(); }else{ $('.sub-menu-campanha').stop().hide(); }
//		});		
//	  }
//	);

	$(".li-colecao, .li-campanha, .li-institucional").hover(
		function () {
			$('.menu-secundario > div').stop().animate({height:'0'}, 500);  
			$('.menu-secundario').stop().animate({height:'0'}, 500);
			$(this).find('.menu-secundario').children().stop().animate({height:'51px'}, 500);
			$(this).find('.menu-secundario').stop().animate({height:'51px'}, 500);
		}, 
		function () {
			$(this).find('.menu-secundario').children().stop().animate({height:'0'}, 500);  
			$(this).find('.menu-secundario').stop().animate({height:'0'}, 500);
			$('#menu-global .ativo').find('.menu-secundario').children().stop().animate({height:'51px'}, 500);
			$('#menu-global .ativo').find('.menu-secundario').stop().animate({height:'51px'}, 500);
		}
	);
	
	/*$(".li-campanha").hover(
	  function () {
		$('.sub-menu-campanha').stop().animate({height:'40px'}, 500);
		$('.li-campanha #menu-secundario').stop().animate({height:'40px'}, 500);
	  }, 
	  function () {
		$('.sub-menu-camapnha').stop().animate({height:'0'}, 500);  
		$('.li-campanha #menu-secundario').stop().animate({height:'0'}, 500);
	  }
	);*/
	
	$("#chkFiltroColecao input[type=checkbox]").live('click', 
		function(){
			$('#inCod').val(FORM_INPUT_BUSCA);
			if( $('#verColecao').val() == '0' ){
				if($(this).val() == 'ALL'){
					window.open(CAMINHO_ABSOLUTO+'colecao/categoria-todas/','_self');
				}else{
					window.open(CAMINHO_ABSOLUTO+'colecao/categoria-'+ $(this).val() +'/','_self');
				}
			}			
		}
	);

	var txtInCod = $('#inCod').val();
	
	$('#inCod').focus(
		function(){
			if( $(this).val() == txtInCod){
				$(this).val('');
			}
		}
	);
	$('#inCod').blur(
		function() {
			if( $(this).val() == '' ) {
				$(this).val(txtInCod);
			}
		}
	);

	$("#btnBuscar").live('click', 
		function(){
			var col = $('#verColecao').val();
			var chk = $('#inCod').val();
			
			if(col == 1){			
				if(chk == '' || chk == FORM_INPUT_BUSCA){
					return false;
					//alert('Digite o Código do sapato para Buscar');
				}else{
					AjaxProdutos('inCod='+chk);
				}
			}else{
				if(chk == '' || chk == FORM_INPUT_BUSCA){
					return false;
					//alert('Digite o Código do sapato para Buscar');
				}else{
					window.open(CAMINHO_ABSOLUTO+'colecao/incod-'+ chk +'/','_self');
				}
			}			
		}
	);
	$("#formFiltroColecao").validate({
		submitHandler: function(){

			var col = $('#verColecao').val();
			var chk = $('#inCod').val();
			
			if(col == 1){			
				if(chk == '' || chk == FORM_INPUT_BUSCA){
					return false;
					//alert('Digite o Código do sapato para Buscar');
				}else{
					AjaxProdutos('inCod='+chk);
				}
			}else{
				if(chk == '' || chk == FORM_INPUT_BUSCA){
					return false;
					//alert('Digite o Código do sapato para Buscar');
				}else{
					window.open(CAMINHO_ABSOLUTO+'colecao/incod-'+ chk +'/','_self');
				}
			}						
		}
	});
	
	

});


