Endereco = {
	
	enderecoId : -1,
	
	/**
	 * Carrega as informações nos devidos campos
	*/
	editEndereco : function(id)
	{
		Endereco.resetEndereco();
		var endereco = $('#selectEndereco option[@value='+id+']').attr('logradouro');
		var numero = $('#selectEndereco option[@value='+id+']').attr('numero');
		var complemento = $('#selectEndereco option[@value='+id+']').attr('complemento');
		var bairro = $('#selectEndereco option[@value='+id+']').attr('bairro');
		var cep = $('#selectEndereco option[@value='+id+']').attr('cep');
		var cidade = $('#selectEndereco option[@value='+id+']').attr('cidade');
		var estado = $('#selectEndereco option[@value='+id+']').attr('estado');
		var tipo = $('#selectEndereco option[@value='+id+']').attr('tipo');
		
		$('#fsEndereco #endereco').val(endereco);
		$('#fsEndereco #numero').val(numero);
		$('#fsEndereco #complemento').val(complemento);
		$('#fsEndereco #bairro').val(bairro);
		$('#fsEndereco #cep').val(cep);
		$('#fsEndereco #cidade').val(cidade);
		$('#fsEndereco #estado').val(estado);
		$('#fsEndereco #selectTipo').val(tipo);
		$('#fsEndereco').attr('endereco',id);
		$('#fsEndereco legend').html('<img src="themes/adm/icons/edit_16.gif" />Editar Endereco');
		$('#fsEndereco #btnEndereco').attr('value','Alterar');
	},
	
	/**
	 * Adiciona um novo registro ao SELECTBOX (não é adicionado ao banco)
	*/
	saveEndereco : function()
	{
		if(Cliente.valida('#fsEndereco'))
		{
			var cobranca = $('#enderecoCobranca').val();
			var entrega = $('#enderecoEntrega').val();
			var id = $('#fsEndereco').attr('endereco');
			if(id == 'new')
			{
				id = Endereco.enderecoId;
				Endereco.enderecoId--;
			}
			else
			{
				$('#selectEndereco option[@value='+id+']').remove();
				$('#enderecoCobranca option[@value='+id+']').remove();
				$('#enderecoEntrega option[@value='+id+']').remove();
			}
			
			var endereco = $('#fsEndereco #endereco').val();
			var numero = $('#fsEndereco #numero').val();
			var complemento = $('#fsEndereco #complemento').val();
			var bairro = $('#fsEndereco #bairro').val();
			var cep = $('#fsEndereco #cep').val();
			var cidade = $('#fsEndereco #cidade').val();
			var estado = $('#fsEndereco #estado').val();
			var tipo = $('#fsEndereco #selectTipo').val();
			
			$('#fsEndereco').attr('endereco','new');
			
			var option = '<option value="'+id+'" estado="'+estado+'" cidade="'+cidade+'" bairro="'+bairro+'"'+
							  'logradouro="'+endereco+'" numero="'+numero+'" complemento="'+complemento+'"'+
							  'tipo="'+tipo+'" cep="'+cep+'">'+
							  endereco+' nº '+numero+' - '+bairro+
						  '</option>';
			$('#selectEndereco').append(option); //adiciona no select de enderecos
			if(tipo != 1)
			{
				$('#enderecoCobranca').append(option); //adiciona no select de enderecosEntrega
			}
			if(tipo != 2)
			{
				$('#enderecoEntrega').append(option); //adiciona no select de enderecosCobranca
			}
			
			$('#enderecoCobranca').val(cobranca); //deixa os valores que haviam antes nos selects
			$('#enderecoEntrega').val(entrega);
			
			Endereco.resetEndereco();
		}
	},
	
	/**
	 * Reseta o formulário
	*/
	resetEndereco : function()
	{
		$('#fsEndereco input[@type=text]').each(function(){
			$(this).val('');
		});
		$('#fsEndereco #btnEndereco').attr('value','Adicionar');
		$('#fsEndereco').attr('endereco','new');
		$('#fsEndereco legend').html('<img src="themes/adm/icons/add_16.gif" />Inserir novo endereço ');
	},
	
	/**
	 * Exclui um registro do SELECTBOX (não exclui do banco!)
	*/
	deleteEndereco : function(tecla)
	{
		var keynum;
		if(window.event) // IE
		{
			keynum = tecla.keyCode;
		}
		else if(tecla.which) // Netscape/Firefox/Opera
		{
			keynum = tecla.which;
		}
		if(keynum == 46) //delete
		{
			var erro = '';
			var enderecos = ''; //guarda os enderecos que nao puderam ser excluidos
			$('#selectEndereco option[@selected]').each(function(){
				var id = $(this).val();
				//verificar se esse endereço está selecionado em alguma assinatura
				var existe = Endereco.checkEndereco(id);
				if(existe == '')
				{
					$('#selectEndereco option[@value='+id+']').remove(); //excluir do select de endereços
					$('#enderecoCobranca option[@value='+id+']').remove(); //exclui do select de enderecos de cobrança
					$('#enderecoEntrega option[@value='+id+']').remove(); //exclui do select de enderecos de entrega
				}
				else
				{
					
					erro += erro == '' ? '' : ', ';
					erro += existe;
					enderecos += enderecos == '' ? '' : ', ';
					enderecos += $(this).html();
				}
			});
			if(erro != '')
			{
				alert('Alguns endereços não puderam ser excluídos, pois existem assinaturas vinculadas a esses endereços!');
			}
		}
	},
	
	checkEndereco : function(id)
	{
		var option = $('#selectAssinaturas option[@enderecoentrega='+id+']').get(0);
		var erro = '';
		if(option)
		{
			erro += $(option).html();
		}
		else
		{
			option = $('#selectAssinaturas option[@enderecocobranca='+id+']').get(0)
			if(option)
			{
				erro += $(option).html();
			}
			else
			{
				if(!$('#selectAssinaturas').get(0) && ($('#enderecoCobranca').val() == id || $('#enderecoEntrega').val() == id))
				{
					erro = $('#labelUsuario').html();
				}
			}
		}
		return erro;
	},
	
	getParam : function(assinaturaId)
	{
		var parametros = '';
		var i = 0;
		$('#selectEndereco option').each(function(){
			parametros += '&endereco['+i+'][estado]='+escape($(this).attr('estado'));
			parametros += '&endereco['+i+'][id]='+$(this).val();
			parametros += '&endereco['+i+'][cidade]='+escape($(this).attr('cidade'));
			parametros += '&endereco['+i+'][bairro]='+escape($(this).attr('bairro'));
			parametros += '&endereco['+i+'][logradouro]='+escape($(this).attr('logradouro'));
			parametros += '&endereco['+i+'][numero]='+escape($(this).attr('numero'));
			parametros += '&endereco['+i+'][complemento]='+escape(($(this).attr('complemento') ? $(this).attr('complemento') : ''));
			parametros += '&endereco['+i+'][cep]='+$(this).attr('cep');
			parametros += '&endereco['+i+'][tipo]='+$(this).attr('tipo');
			parametros += '&endereco['+i+'][assinaturaId]='+assinaturaId;
			i++;
		});
		return parametros;
	}
	
};