ClienteUsuario = {
	
	filtros : 
	{
		assinaturaId : 0,
		nome: '',
		email: '',
		multiplo: 0,
		tipo: 0,
		pagina : 0,
		cadastrado : 0,
		ordenacao : {
			campo : 'nome',
			tipo : 'crescente'
		}
	},
	
	serializeFiltros : function()
	{
		var parametros = 'filtros[assinaturaId]='+ClienteUsuario.filtros.assinaturaId;
		parametros += '&filtros[nome]='+ClienteUsuario.filtros.nome;
		parametros += '&filtros[email]='+ClienteUsuario.filtros.email;
		parametros += '&filtros[multiplo]='+ClienteUsuario.filtros.multiplo;
		parametros += '&filtros[tipo]='+ClienteUsuario.filtros.tipo;
		parametros += '&pagina='+ClienteUsuario.filtros.pagina;
		parametros += '&filtros[cadastrado]='+ClienteUsuario.filtros.cadastrado;
		parametros += '&ordenacao[campo]='+ClienteUsuario.filtros.ordenacao.campo;
		parametros += '&ordenacao[tipo]='+ClienteUsuario.filtros.ordenacao.tipo;
		
		return parametros;
	},
	
	resetFiltros : function()
	{
		ClienteUsuario.filtros.assinaturaId = 0;
		ClienteUsuario.filtros.nome = '';
		ClienteUsuario.filtros.email = '';
		ClienteUsuario.filtros.multiplo = 0;
		ClienteUsuario.filtros.cadastrado = 0;
		ClienteUsuario.filtros.tipo = 0;
		ClienteUsuario.filtros.pagina = 0;
		ClienteUsuario.filtros.ordenacao.campo = 'nome';
		ClienteUsuario.filtros.ordenacao.tipo = 'crescente';
	},
	
	toogleAltSenha : function(status,required)
	{
		$('#fsUsuario #senhaUsuario').val('');
		$('#fsUsuario #senhaUsuarioC').val('');
		required = required || false;
		if(status == true)
		{
			$('#fsUsuario .altSenhaON').show();
			$('#fsUsuario .altSenhaOFF').hide();
			$('#fsUsuario').attr('senha','show');
			if(required) //esconde o botao de cancelar
			{
				$('#fsUsuario #altSenhaCancel').hide();
			}
		}
		else
		{
			$('#fsUsuario .altSenhaOFF').show();
			$('#fsUsuario .altSenhaON').hide();
			$('#fsUsuario').attr('senha','hide');
			if(required)
			{
				$('#fsUsuario .altSenhaOFF').hide();
			}
		}
	},
	
	getParam : function()
	{
		var parametros = '';
		if($('#fsUsuario #selectAssinaturas').get(0)) //se houver selectbox
		{
			$('#fsUsuario #selectAssinaturas option').each(function(i){
				parametros += '&usuario['+i+'][nome]='+escape(ClienteUsuario.removeSlashes($(this).attr('nome')));
				parametros += '&usuario['+i+'][id]='+escape($(this).val());
				parametros += '&usuario['+i+'][email]='+escape(ClienteUsuario.removeSlashes($(this).attr('email')));
				parametros += '&usuario['+i+'][assinaturaId]='+escape($(this).attr('assinaturaId'));
				var senha = $(this).attr('senha') ? ClienteUsuario.removeSlashes(String($(this).attr('senha'))) : '';
				if(senha != '')
				{
					parametros += '&usuario['+i+'][senha]='+escape(senha);
				}
				parametros += '&usuario['+i+'][tipo]='+escape($(this).attr('tipo'));
				
				parametros += '&assinatura['+i+'][id]='+$(this).attr('assinaturaId');
				parametros += '&assinatura['+i+'][enderecoEntrega]='+$(this).attr('enderecoentrega');
				parametros += '&assinatura['+i+'][enderecoCobranca]='+$(this).attr('enderecocobranca');
			});
		}
		else //obtem parametros pelos campos de texto
		{
			parametros = '&usuario[0][nome]='+escape(ClienteUsuario.removeSlashes($('#fsUsuario #nomeUsuario').val()));
			parametros +='&usuario[0][email]='+escape(ClienteUsuario.removeSlashes($('#fsUsuario #emailUsuario').val()));
			
			var senha = String($('#fsUsuario #senhaUsuario').val());
			if(senha.length >= 4)
			{
				parametros += '&usuario[0][senha]='+escape($('#fsUsuario #senhaUsuario').val());
				if($('#fsUsuario #senhaAtual').get(0))
				{
					parametros += '&senhaAtual='+escape(ClienteUsuario.removeSlashes($('#fsUsuario #senhaAtual').val()));
				}
			}
			
			$('#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+'][assinaturaId]='+$('#fsUsuario').attr('assinaturaId');
			});
			$('#selectTelefone option').each(function(i){
				parametros += '&telefone['+i+'][ddd]='+$(this).attr('ddd');
				parametros += '&telefone['+i+'][telefone]='+$(this).attr('telefone');
				parametros += '&telefone['+i+'][assinaturaId]='+$('#fsUsuario').attr('assinaturaId');
			});
			
			parametros +='&usuario[0][id]='+escape($('#fsUsuario').attr('usuario'));
			parametros +='&usuario[0][assinaturaId]='+escape($('#fsUsuario').attr('assinaturaId'));
			parametros +='&assinatura[0][id]='+escape($('#fsUsuario').attr('assinaturaId'));
			parametros +='&assinatura[0][enderecoCobranca]='+$('#fsUsuario #enderecoCobranca').val();
			parametros +='&assinatura[0][enderecoEntrega]='+$('#fsUsuario #enderecoEntrega').val();
		}
		return parametros;
	},
	
	validate : function(tipo)
	{
		if(tipo == 'select') //validar as options do select
		{
			var validacao = true;
			var adm = 0;
			$('#selectAssinaturas option').each(function(){
				if($(this).attr('required') == '1' && ($(this).attr('senha')=='' || !$(this).attr('senha'))) //senha nao digitada
				{
					alert('Por favor, digite uma senha válida para a assinatura '+$(this).html());
					validacao = false;
				}
				else if($(this).attr('email') == '' || !$(this).attr('email'))
				{
					alert('Por favor, digite um email válido para a assinatura '+$(this).html());
					validacao = false;
				}
				if(!validacao)
				{
					ClienteUsuario.loadUser($(this).val());
					return false;
				}
				if($(this).attr('tipo') == 0)
				{
					adm++;
				}
			});
			if(adm == 0)
			{
				alert('Por favor, conceda permissăo para alterar dados cadastrais para pelo menos 1 usuário!');
				validacao = false;
			}
			return validacao;
		}
		else //validar os campos do form
		{
			if($('#fsUsuario #nomeUsuario').val() == '')
			{
				alert('Por favor, digite um nome para identificar o usuário da assinatura!');
				return false;
			}
			if($('#fsUsuario #emailUsuario').val() == '')
			{
				alert('Por favor, digite um email para o usuário da assinatura!');
				return false;
			}
			if($('#fsUsuario').attr('senha') == 'show')
			{
				var senha = String($('#fsUsuario #senhaUsuario').val());
				var confirm = String($('#fsUsuario #senhaUsuarioC').val());
				if(senha.length < 4)
				{
					alert('A senha do usuário deve conter no mínimo 4 caracteres');
					return false;
				}
				if(senha != confirm)
				{
					alert('As senhas digitadas săo diferentes!');
					return false;
				}				
			}
		}
		return true;
	},
	
	removeSlashes : function(str)
	{
		return str;
	},
	
	loadUser : function(id)
	{
		var option = $('#selectAssinaturas option[@value='+id+']').get(0);
		var label = $(option).html();
		var nome = ClienteUsuario.removeSlashes($(option).attr('nome'));
		nome = nome ? nome : '';
		var email = ClienteUsuario.removeSlashes($(option).attr('email'));
		email = email ? email : '';
		var tipo = $(option).attr('tipo');
		var entrega = $(option).attr('enderecoentrega');
		var cobranca = $(option).attr('cobranca');
		var assinaturaId = $(option).attr('assinaturaid');
		var inicio = $(option).attr('inicio');
		var fim = $(option).attr('fim');
		var required = $(option).attr('required');
		
		
		$('#fsUsuario #labelUsuario').html(label);
		$('#fsUsuario').attr('usuario',id);
		$('#fsUsuario').attr('assinaturaid',assinaturaId);
		$('#fsUsuario').attr('inicio',inicio);
		$('#fsUsuario').attr('fim',fim);
		$('#fsUsuario').attr('required',required);
		$('#fsUsuario #nomeUsuario').val(nome);
		$('#fsUsuario #emailUsuario').val(email);
		$('#fsUsuario #senhaUsuario').val('');
		$('#fsUsuario #senhaUsuarioC').val('');
		if(tipo == 0)
		{
			$('#fsUsuario #tipoAdm').get(0).checked = true;
		}
		else
		{
			$('#fsUsuario #tipoAdm').removeAttr('checked');
		}
		
		if(required == '1') //senha obrigatória
		{
			ClienteUsuario.toogleAltSenha(true,true);
		}
		else
		{
			ClienteUsuario.toogleAltSenha(false,false);
		}
		
		$('#fsUsuario #enderecoCobranca').val(cobranca);
		$('#fsUsuario #enderecoEntrega').val(entrega);
		ClienteUsuario.toogleFsUsuario(true);
		$('#fsUsuario #nomeUsuario').get(0).focus();
		
	},
	
	addSlashes : function(str)
	{
		return str;
	},
	
	save : function()
	{
		if(ClienteUsuario.validate('form'))
		{
			//campos com slashes: nome, email, senha
			var nome = ClienteUsuario.addSlashes($('#fsUsuario #nomeUsuario').val());
			var email = ClienteUsuario.addSlashes($('#fsUsuario #emailUsuario').val());
			var tipo = $('#fsUsuario #tipoAdm').get(0).checked ? 0 : 1;
			var entrega = $('#fsUsuario #enderecoEntrega').val();
			var cobranca = $('#fsUsuario #enderecoCobranca').val();
			var id = $('#fsUsuario').attr('usuario');
			var assinaturaId = $('#fsUsuario').attr('assinaturaid');
			var senha = ClienteUsuario.addSlashes($('#fsUsuario #senhaUsuario').val());
			var inicio = $('#fsUsuario').attr('inicio');
			var fim = $('#fsUsuario').attr('fim');
			var label = inicio+' - '+fim+' ('+nome+')';
			var required = $('#fsUsuario').attr('required');
			if(senha != '')
			{
				required = '0';
			}
			
			var option = '<option value="'+id+'" nome="'+nome+'" email="'+email+'" tipo="'+tipo+'" enderecoentrega="'+entrega
						 +'" enderecocobranca="'+cobranca+'" assinaturaid="'+assinaturaId+'" inicio="'+inicio+'" fim="'+fim+'"'
						 +' required="'+required+'"';
			if($('#fsUsuario').attr('senha') == 'show')
			{
				option += ' senha="'+senha+'"';
			}
			option += '>'+label+'</option>';
			$('#selectAssinaturas option[@value='+id+']').remove();
			$('#selectAssinaturas').append(option);
			ClienteUsuario.toogleFsUsuario(false);
		}
	},
	
	toogleFsUsuario : function(status)
	{
		if(status)
		{
			$('#fsUsuario fieldset').show();
		}
		else
		{
			$('#fsUsuario fieldset').hide();
		}
	},
	
	update : function()
	{
		if(ClienteUsuario.validate('form'))
		{
			parametros = ClienteUsuario.getParam();
			$('#newsContent form').hide();
			$('#newsContent').append(DC.loadingText);
			$.ajax({
				url:'admAssinante.php?acao=updateUsuario',
				type:'POST',
				data:parametros,
				success:function(retorno)
				{
					if(retorno == true)
					{							
						alert('Dados atualizados com sucesso!');
						DC.load('home');
					}
					else
					{
						alert('Erro ao tentar atualizar os dados!\n'+retorno);
						$('#newsContent form').show();
						$('#loadingText').remove();
					}
				}
			});
		}
	},
	
	insertUsuarioParceria : function(usuarioId,parceriaId)
	{
		if(ClienteUsuario.validate('form'))
		{
			parametros = 'nome='+escape($('#frmParceria #nomeUsuario').val())+'&email='+escape($('#frmParceria #emailUsuario').val());
			parametros +='&senha='+escape($('#frmParceria #senhaUsuario').val())+'&usuarioId='+usuarioId+'&parceriaId='+parceriaId;			
			$('#newsContent form').hide();
			$('#newsContent').append(DC.loadingText);
			$.ajax({
				url:'admAssinante.php?acao=insertUsuarioParceria',
				type:'POST',
				data:parametros,
				success:function(retorno)
				{
					if(retorno == true)
					{							
						alert('Usuário cadastrado com sucesso!\nRealize o login para ter acesso completo ao site!');
						DC.load('home');
					}
					else
					{
						alert('Erro ao tentar atualizar os dados!\n'+retorno);
						$('#newsContent form').show();
						$('#loadingText').remove();
					}
				}
			});
		}
	},
	
	updateUsuarioParceria : function(usuarioId)
	{
		if(ClienteUsuario.validate('form'))
		{
			parametros = '&nome='+escape($('#fsUsuario #nomeUsuario').val());
			parametros +='&email='+escape($('#fsUsuario #emailUsuario').val());
			parametros +='&id='+usuarioId;
			
			var senha = String($('#fsUsuario #senhaUsuario').val());
			if(senha.length >= 4)
			{
				parametros += '&senha='+escape($('#fsUsuario #senhaUsuario').val());
				parametros += '&senhaAtual='+escape($('#fsUsuario #senhaAtual').val());
			}
			$('#newsContent form').hide();
			$('#newsContent').append(DC.loadingText);
			$.ajax({
				url:'admAssinante.php?acao=updateUsuarioParceria',
				type:'POST',
				data:parametros,
				success:function(retorno)
				{
					if(retorno == true)
					{							
						alert('Usuário alterado com sucesso!');
						DC.load('home');
					}
					else
					{
						alert('Erro ao tentar atualizar os dados!\n'+retorno);
						$('#newsContent form').show();
						$('#loadingText').remove();
					}
				}
			});
		}
		
	},
	
	showCrud : function(assinaturaId)
	{
		assinaturaId = assinaturaId || 0;
		ClienteUsuario.resetFiltros();
		ClienteUsuario.filtros.assinaturaId = assinaturaId;
		var parametros = 'assinaturaId='+assinaturaId;
		$('#conteudo').html(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=showCrudUsuario',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				$('#conteudo').html(retorno);
				ClienteUsuario.initializeAdm();
			}
		});
	},
	
	pesquisar : function()
	{
		ClienteUsuario.filtros.assinaturaId = $('#selectPesquisaAssinatura').val();
		ClienteUsuario.filtros.nome = $('#nomeUsuarioPesquisa').val();
		ClienteUsuario.filtros.email = $('#emailUsuarioPesquisa').val();
		ClienteUsuario.filtros.multiplo = ClienteUsuario.valorCheckBox($('#simultaneo').get(0),$('#naoSimultaneo').get(0));
		ClienteUsuario.filtros.cadastrado = ClienteUsuario.valorCheckBox($('#cadastrado').get(0),$('#naoCadastrado').get(0));
		ClienteUsuario.filtros.tipo = ClienteUsuario.valorCheckBox($('#usuarioImpresso').get(0),$('#usuarioParceria').get(0));
		ClienteUsuario.filtros.pagina = 0;
		
		ClienteUsuario.listContent(0);
	},
	
	limparCampos : function()
	{
		$('#selectPesquisaAssinatura').val(0);
		$('#nomeUsuarioPesquisa').val('');
		$('#emailUsuarioPesquisa').val('');
		$('#frmPesquisaUsuario input[@type=checkbox]').each(function(){
			this.checked = true;
		});
	},
	
	listContent : function(pagina)
	{
		pagina = pagina || 0;
		ClienteUsuario.filtros.pagina = pagina;
		var parametros = ClienteUsuario.serializeFiltros();
		$('#listaUsuario').html(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=listContentUsuario',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				$('#listaUsuario').html(retorno);
				ClienteUsuario.initForms('#listaUsuario');
				ClienteUsuario.scroll(pagina);
				ClienteUsuario.tableSort();
				ClienteUsuario.tableHover();
			}
		});
	},
	
	showForm : function(usuarioId, assinaturaId)
	{
		assinaturaId = assinaturaId || 0;
		if(assinaturaId == 0)
		{
			assinaturaId = ClienteUsuario.filtros.assinaturaId;
		}
		else
		{
			ClienteUsuario.filtros.assinaturaId = String(assinaturaId);
		}
		var parametros = 'assinaturaId='+assinaturaId+'&usuarioId='+usuarioId;
		$('#formUsuario').html(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=showFormUsuario',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				$('#formUsuario').html(retorno);
				ClienteUsuario.initForms('#formUsuario');
				ClienteUsuario.toogleAltSenha(false);
			}
		});
	},
	
	excluir : function(usuarioId, assinaturaId)
	{
		if(confirm('Tem certeza que deseja excluir esse usuário?'))
		{
			var parametros = 'usuarioId='+usuarioId+'&assinaturaId='+assinaturaId;
			$('#listaUsuario').html(DC.loadingText);
			$.ajax({
				url:'admAssinante.php?acao=excluirUsuario',
				type:'POST',
				data:parametros,
				success:function(retorno)
				{
					if(retorno == true)
					{
						alert('Usuário excluído com sucesso!');
					}
					else
					{
						alert('Năo foi possível excluir o usuário!\n'+retorno);
					}
					ClienteUsuario.showForm(0);
					ClienteUsuario.listContent(ClienteUsuario.filtros.pagina);
				}
			});
		}
	},
	
	updateAdm : function(usuarioId)
	{
		if(!ClienteUsuario.validate('form'))
		{
			return;
		}
		var parametros = ClienteUsuario.getParamAdm('update',usuarioId);
		$('#formUsuario fieldset').hide();
		$('#formUsuario').append(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=updateUsuarioAdm',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				if(retorno == true)
				{							
					alert('Usuário alterado com sucesso!');
					ClienteUsuario.showForm(0);
					ClienteUsuario.listContent(ClienteUsuario.filtros.pagina);
				}
				else
				{
					alert('Erro ao tentar alterars o Usuário!\n'+retorno);
					$('#formUsuario fieldset').show();
					$('#loadingText').remove();
				}
			}
		});
	},
	
	insertAdm : function()
	{
		if(!ClienteUsuario.validate('form'))
		{
			return;
		}
		var parametros = ClienteUsuario.getParamAdm('insert',0);
		$('#formUsuario fieldset').hide();
		$('#formUsuario').append(DC.loadingText);
		$.ajax({
			url:'admAssinante.php?acao=insertUsuario',
			type:'POST',
			data:parametros,
			success:function(retorno)
			{
				if(retorno == true)
				{							
					alert('Usuário inserido com sucesso!');
					ClienteUsuario.showForm(0);
					ClienteUsuario.listContent(ClienteUsuario.filtros.pagina);
				}
				else
				{
					alert('Erro ao tentar inserir o Usuário!\n'+retorno);
					$('#formUsuario fieldset').show();
					$('#loadingText').remove();
				}
			}
		});
	},
	
	getParamAdm : function(tipo, data)
	{
		var parametros = '';
		switch(tipo)
		{
			case 'insert':
				var multiplo = $('#frmUsuario #multiplo').get(0).checked ? 1 : 0;
			
				parametros += 'assinaturaId='+$('#frmUsuario #selectAssinatura').val();
				parametros += '&nome='+escape($('#frmUsuario #nomeUsuario').val());
				parametros += '&email='+escape($('#frmUsuario #emailUsuario').val());
				parametros += '&multiplo='+multiplo;
				var senha = escape($('#frmUsuario #senhaUsuario').val());
				if(senha.length >= 4)
				{
					parametros += '&senha='+escape($('#frmUsuario #senhaUsuario').val());
				}
			break;
			
			case 'update':
				parametros += ClienteUsuario.getParamAdm('insert',0);
				parametros += '&usuarioId='+data;
			break;
			
			default : break;
		}
		return parametros;
	},
	
	valorCheckBox : function(cb1, cb2)
	{
		//cb = checkBox
		/*
			Tipos:
				0 - Os 2 marcados
				1 - Somente o 1 marcado
				2 - Somente o 2 marcado
		*/
		var valor = 0;
		if(!cb1.checked)
		{
			valor = 2;
		}
		if(!cb2.checked)
		{
			valor = 1;
		}
		return valor;
	},
	
	verificaCheckBox : function(cb1, cb2)
	{
		if(!cb1.checked && !cb2.checked)
		{
			cb2.checked = true;
		}
	},
	
	initialize : function()	
	{
		ClienteUsuario.toogleAltSenha(false);
		if($('#selectAssinaturas').get(0))
		{
			ClienteUsuario.toogleFsUsuario(false);
		}
	},
	
	initForms:function(seletor) // aplica a validacao sobre o formulario
	{
		if(seletor == '#formUsuario' || seletor == '#assinanteGerencia')
		{
			$('#formUsuario #frmUsuario').validate();
		}
		$(seletor+' input[@type=text], '+seletor+' input[@type=password], '+seletor+' select').css({background:'#EBF4FE', border:'1px solid #D5EBF9'});
	},//fim initForms
	
	scroll: function(page)
	{
		if(!$("#contentScroll").get(0))
		{
			return false;
		}
		$("#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
	
	/**
	 * 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() {
		$("#tableUsuarios").tableSorter({
			headerClass: 'headerTableList',
			stripingRowClass: ['tableListLine0','tableListLine1'],
			highlightClass: false,
			stripRowsOnStartUp: true
		});		
	}, // fim tableSort
	
	initializeAdm : function()
	{
		ClienteUsuario.toogleAltSenha(false);
		ClienteUsuario.initForms('#assinanteGerencia');
		ClienteUsuario.scroll(0);
		ClienteUsuario.tableSort();
		ClienteUsuario.tableHover();
	}
};
