Cliente = {
	
	filtros : '', //filtros de pesquisa
	
	/**
	 * Validate manual, para os cruds de endereço e telefone.
	*/
	valida : function(form)
	{
		var retorno = true;
		$(form+' input').each(function(){
			if($(this).attr('valida'))
			{
				var tipo = $(this).attr('type');
				switch(tipo)
				{
					case 'text':
					case 'password':
						if($(this).val() == '')
						{
							alert($(this).attr('title'));
							retorno = false;
							return false;
						}
					break;					
					
					default:
					break;
				}
			}
		});
		$(form+' select').each(function(){
			if($(this).attr('valida') && $(this).val() == 0)
			{
				
				alert($(this).attr('title'));
				retorno = false;
				return false;
			}
		});
		return retorno;
	},
	
	maskDocumento : function()
	{
		//$('form input[@type=text][@mask=number]').maskedinput("99999999999999");
	},
	
	/**
	 * Salva as alterações realizadas pelo usuário no banco.
	*/
	update : function(id)
	{
		var div = 'formAssinante';
		acao = 'admAssinante.php?acao=update';
			
		var parametros = Cliente.getParam('update',id);
		$(div+' form').hide();
		$(div).append(DC.loadingText);
		$.ajax({
			url:acao,
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				if(retorno == true)
				{							
					alert('Dados atualizados com sucesso!');					
					Cliente.showForm();
					pagina = $('#tableAssinantes').attr('page');
					Cliente.listContent(pagina);
				}
				else
				{
					alert('Erro ao tentar atualizar os dados!\n'+retorno);
					$(div+' form').show();
					$('#loadingText').remove();
				}
			}
		});
	},
	
	/**
	 * Mostra ou esconde os campos de alterar senha.
	*/
	controlarAlterarSenha : function(mostrar)
	{
		if(mostrar)
		{
			$('#frmAtualizarCadastro .senha').show();
			$('#frmAtualizarCadastro #cancSenha').show();
			$('#frmAtualizarCadastro #showPassword a').hide();
			$('#frmAtualizarCadastro #showPassword').attr('status','true');
		}
		else
		{
			$('#frmAtualizarCadastro .senha').hide();
			$('#frmAtualizarCadastro #cancSenha').hide();
			$('#frmAtualizarCadastro #showPassword a').show();
			$('#frmAtualizarCadastro #showPassword').attr('status','false');
			$('#frmAtualizarCadastro #senhaAtual').val('');
			$('#frmAtualizarCadastro #senha').val('');
			$('#frmAtualizarCadastro #senhaConfirm').val('');
		}
	},
	
	getParam : function(tipo,data)
	{
		data = data || 0;
		var parametros = '';
		parametros += '&nome='+escape($('#frmAtualizarCadastro #nome').val())+'&documento='+$('#frmAtualizarCadastro #documento').val()+
					  '&email='+escape($('#frmAtualizarCadastro #email').val())+'&tipo='+$('#frmAtualizarCadastro #tipoDocumento').val()+
					  '&id='+data;

		/*$('#selectEndereco option').each(function(i){
			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+'][clienteId]='+data;
		});
		$('#selectTelefone option').each(function(i){
			parametros += '&telefone['+i+'][ddd]='+$(this).attr('ddd');
			parametros += '&telefone['+i+'][telefone]='+$(this).attr('telefone');
			parametros += '&telefone['+i+'][clienteId]='+data;
		});*/
		//parametros += ClienteUsuario.getParam();
		return parametros;
	},
	
	/**
	 * Aplica a paginação
	*/
	scroll: function(page)
	{
		$("#listaAssinantes #contentScroll #scroll").jcarousel({
	        itemVisible		: 7,
	        itemScroll		: 7,
	        itemStart		: page,
	        scrollAnimation	: "low"
	    });
	    //css de pagina atual para a pagina
	    $('div#scroll li.jcarousel-item-'+(page+1)).css('border','none');//nova pagina
		$('div#scroll li.jcarousel-item-'+(page+1)).css('background-color','white');//nova pagina
		$('div#scroll li.jcarousel-item-'+(page+1)+' a.jcarousel-control').css('color','black');//nova pagina
		$('div#scroll li.jcarousel-item-'+(page+1)+' a.jcarousel-control').css('cursor','default');//nova pagina
	    
	}, // fim scroll
	
	/**
	 * Mostra o formulario de cadastro ou alteração de um novo assinante
	*/
	showForm : function(id)
	{
		id = id || 0;
		var parametros = 'id='+id;
		$('#formAssinante form').hide();
		$('#formAssinante').append(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=showForm',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				$('#formAssinante').html(retorno);
				$('#formAssinante form').show();
				$('#loadingText').remove();
				Cliente.initForms(id);
			}
		});
	},
	
	initForms:function(senha) // aplica a validacao sobre o formulario
	{
		$("#formAssinante #frmAtualizarCadastro").validate();
		$('#frmAtualizarCadastro input[@type=text], #frmAtualizarCadastro input[@type=password], #frmAtualizarCadastro select, #frmPesquisa input[@type=text]').css({background:'#EBF4FE', border:'1px solid #D5EBF9'});
		Cliente.maskDocumento();
		/*if(senha == 0) //controla a exibição dos campos dee senha
		{
			ClienteUsuario.toogleAltSenha(false,true);
		}
		else
		{
			ClienteUsuario.toogleAltSenha(false);
		}*/
	},//fim initForms
	
	/**
	 * Exclui permanentemente um novo assinante.
	*/
	remove : function(id)
	{
		if(confirm('Tem certeza que deseja EXCLUIR o assinante?\nTodas as assinaturas deste assinante e seus respectivos usuários também serão EXCLUÌDOS!\nDeseja continuar?'))
		{
			var parametros = 'id='+id;
			$('#listaAssinantes table').hide();
			$('#listaAssinantes').append(DC.loadingText);
			$.ajax({
				url:'admAssinante.php?acao=remove',
				type:'POST',
				data:parametros,
				success:function(retorno)
				{
					if(retorno == true)
					{
						alert('Assinante excluído com sucesso!');
						$('#listaAssinantes tr#'+id).remove();
						$('#listaAssinantes table').show();
						$('#loadingText').remove();
						if(('#formAssinante').attr('clienteId') == id) //cliente excluído carregado no formulario de alteração...
						{
							Cliente.showForm(0);
						}
					}
					else
					{
						alert('Erro ao tentar excluir o assinante!\n'+retorno);
						$('#listaAssinantes table').show();
						$('#loadingText').remove();
					}
				}
			});
		}
	},
	
	/**
	 * Inserção de novo assinante
	*/
	insert : function()
	{
		var div = '#formAssinante';
		var parametros = Cliente.getParam('insert');
		$('#formAssinante form').hide();
		$('#formAssinante').append(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=insert',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				if(retorno == true)
				{
					Cliente.showForm();
					pagina = $('#tableAssinantes').attr('page');
					Cliente.listContent(pagina);
					alert('Assinante inserido com sucesso!');
				}
				else
				{
					alert('Erro ao tentar inserir o assinante:'+retorno);
					$(div+' form').show();
					$('#loadingText').remove();
				}
			}
		});
	},
	
	/**
	 * CSS sobre a tabela de assinantes (mouseHover)
	*/
	tableHover : function()
	{
		$('.tableList tr').hover(function(){
			$(this).css('background-color','#DFEEFF');
		}, function(){
			$(this).css('background-color','#FFFFFF');
		});
	},
	
	tableSort: function() {
		$("#tableAssinantes").tableSorter({
			sortColumn: 0,
			headerClass: 'headerTableList',
			stripingRowClass: ['tableListLine0','tableListLine1'],
			highlightClass: false,
			stripRowsOnStartUp: true
		});		
	}, // fim tableSort
	
	/**
	 * Carrega uma lista de assinantes a serem exibidos, de acordo com a página e dados de pesquisa
	*/
	listContent : function(pagina)
	{
		var parametros = 'pagina='+pagina;
		parametros += Cliente.filtros;
		$('#listaAssinantes table, #listaAssinantes ul').hide();
		$('#listaAssinantes').append(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=listar',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				$('#listaAssinantes').html(retorno);
				Cliente.tableHover();
				Cliente.tableSort();
				Cliente.initForms();
				Cliente.scroll(pagina);
			}
		});
	},
	
	viewHistorico : function(doc, pagina)
	{
		doc = String(doc);
		parametros = 'assinaturaCod='+doc+'&pagina='+pagina;
		$('#listaAssinantes').html(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=viewHistorico',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				$('#listaAssinantes').html(retorno);
				Cliente.scroll(pagina);
				Cliente.tableSort();
				Cliente.tableHover();
			}
		});
	},
	
	/**
	 * Seta os parametros de pesquisa para a listagem de assinantes
	*/
	pesquisar : function()
	{
		/*var cadastrado = $('#frmPesquisa #cadastrados').get(0).checked;
		var naoCadastrado = $('#frmPesquisa #naoCadastrados').get(0).checked;
		if(cadastrado && naoCadastrado)
		{
			alert('Não é possível pesquisar somente assinantes cadastrados e somente não cadastrados ao mesmo tempo!');
			return;
		}*/
		parametros = $('#frmPesquisa #buscaNome').val() == '' ? '' : '&nome='+$('#frmPesquisa #buscaNome').val();
		parametros += $('#frmPesquisa #buscaDocumento').val() == '' ? '' : '&documento='+$('#frmPesquisa #buscaDocumento').val();
		parametros += $('#frmPesquisa #buscaCidade').val() == '' ? '' : '&cidade='+$('#frmPesquisa #buscaCidade').val();
		parametros += $('#frmPesquisa #buscaEstado').val() == '' ? '' : '&estado='+$('#frmPesquisa #buscaEstado').val();
		parametros += $('#frmPesquisa #ativos[@checked]').get(0)  ? '' : '&ativos=0';
		parametros += $('#frmPesquisa #inativos[@checked]').get(0)  ? '' : '&inativos=0';
		//parametros += cadastrado ? '&cadastrado=1' : '';
		//parametros += naoCadastrado ? '&cadastrado=0' : '';
		
		Cliente.filtros = parametros;
		Cliente.listContent(0);
	},
	
	/**
	 * Controla o label dos campos para a confirmação do pré-cadastro
	*/
	setLabelCadastro : function(tipo)
	{
		if(tipo == 1)
		{
			id = 'Número do registro: ';
			documento = 'CPF: ';
		}
		else
		{
			id = 'Código do Assinante: ';
			documento = 'CPF / CNPJ: ';
		}
		$('#frmConfirmarDados label[@for=docAssinante]').html(documento);
		$('#frmConfirmarDados label[@for=codAssinante]').html(id);
	},
	
	limparCampos : function()
	{
		$('#buscaNome').val('');
		$('#buscaDocumento').val('');
		$('#buscaCidade').val('');
		$('#buscaEstado').val('');
		$('#frmPesquisa #ativos').attr('checked',true);
		$('#frmPesquisa #inativos').attr('checked',true);
	},
	
	initialize : function()
	{
		Cliente.initForms(0);
		Cliente.tableHover();
		Cliente.tableSort();
		Cliente.filtros = '';
		Cliente.scroll(0);
	}
	
};