JSAbbSymb = new Class({

	idEmEdicao: null,
	letraEmEdicao: null,

	// ----------------------------------------------------------------------------------------------------
	initialize: function() {
	},

	// ----------------------------------------------------------------------------------------------------
	verificaNova: function() {

		var errorArray = new Array();

		// Nome
		var nome = $('nome').value = $('nome').value.clean();
		if(nome == '') errorArray.push('N&atilde;o escreveu um nome<br /><span class="nota">Escreva um nome com um caractere ou mais</span>');

		// Texto
		var texto = $('texto').value = $('texto').value.clean();
		if(texto == '') errorArray.push('N&atilde;o escreveu uma descri&ccedil;&atilde;o<br /><span class="nota">Escreva uma descri&ccedil;&atilde;o com um caractere ou mais</span>');

		// Se houver erros mostra-los, caso contrario enviar o formulario
		if(errorArray.length) utils.mostraErrorArray(errorArray, 'saving');
		else $('form_adicionar').submit();

	},

	// ----------------------------------------------------------------------------------------------------
	verificaEditada: function(id) {

		var errorArray = new Array();

		// Nome
		var nome = $('nome_' + id).value = $('nome_' + id).value.clean();
		if(nome == '') errorArray.push('N&atilde;o escreveu um nome<br /><span class="nota">Escreva um nome com um caractere ou mais</span>');

		// Texto
		var texto = $('texto_' + id).value = $('texto_' + id).value.clean();
		if(texto == '') errorArray.push('N&atilde;o escreveu uma descri&ccedil;&atilde;o<br /><span class="nota">Escreva uma descri&ccedil;&atilde;o com um caractere ou mais</span>');

		// Se houver erros mostra-los, caso contrario enviar o formulario por AJAX
		if(errorArray.length) utils.mostraErrorArray(errorArray, 'saving');
		else {
			var abbSymbRequest = new Request.HTML({
				url: 'modulos/abb_symb/gravar.ajax.php',
				onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
					this.abbSymb.cancelaEdicao();
					var nome = $('nome_' + id).value;
					var primeiraLetra = nome.substr(0, 1).toUpperCase();
					if(primeiraLetra != this.abbSymb.letraEmEdicao) {
						new Request.HTML({
							url: 'modulos/abb_symb/get_lista.ajax.php',
							update: $('div_abb_symb')
						}).get();
					}
					this.abbSymb.idEmEdicao = null;
				}
			});
			abbSymbRequest.abbSymb = this;
			abbSymbRequest.get({id: id, nome: nome, texto: texto});
		}

	},

	// ----------------------------------------------------------------------------------------------------
	over: function(id) {

		if(id == this.idEmEdicao) {
		} else {
			$('nome_' + id).setStyle('border', '1px solid #FFFFFF');
			$('texto_' + id).setStyle('border', '1px solid #FFFFFF');
			$('div_apagar_' + id).setStyle('display', 'block');
		}

		$('tr_' + id).setStyle('background', '#FFFFFF');

	},

	// ----------------------------------------------------------------------------------------------------
	out: function(id) {

		if(id == this.idEmEdicao) {
		} else {
			$('nome_' + id).setStyle('border', '1px solid #D1CDB4');
			$('texto_' + id).setStyle('border', '1px solid #D1CDB4');
			$('div_apagar_' + id).setStyle('display', 'none');
		}

		$('tr_' + id).setStyle('background', 'none');

	},

	// ----------------------------------------------------------------------------------------------------
	cancelaEdicao: function() {

		if(this.idEmEdicao == null) return;
		var id = this.idEmEdicao;

		$('nome_' + id).setStyles({
			border: '1px solid #D1CDB4',
			background: 'none'
		});
		$('texto_' + id).setStyles({
			border: '1px solid #D1CDB4',
			background: 'none'
		});
		$('div_apagar_' + id).setStyle('display', 'none');
		$('div_salvar_' + id).setStyle('display', 'none');

	},

	// ----------------------------------------------------------------------------------------------------
	focusNome: function(id) {

		this.cancelaEdicao();
		this.idEmEdicao = id;
		this.letraEmEdicao = $('nome_' + id).value.substr(0, 1).toUpperCase();

		$('nome_' + id).setStyles({
			border: '1px solid #FECD08',
			background: '#FFFFFF'
		});
		$('texto_' + id).setStyles({
			border: '1px solid #FFFFFF',
			background: 'none'
		});
		$('div_apagar_' + id).setStyle('display', 'none');
		$('div_salvar_' + id).setStyle('display', 'block');

		$('nome_' + id).abbSymbId = id;
		$('nome_' + id).addEvent('keydown', function(event) {
			if(event.code == 13) abbSymb.verificaEditada(this.abbSymbId);
		});

	},

	// ----------------------------------------------------------------------------------------------------
	focusTexto: function(id) {

		this.cancelaEdicao();
		this.idEmEdicao = id;

		$('nome_' + id).setStyles({
			border: '1px solid #FFFFFF',
			background: 'none'
		});
		$('texto_' + id).setStyles({
			border: '1px solid #FECD08',
			background: '#FFFFFF'
		});
		$('div_apagar_' + id).setStyle('display', 'none');
		$('div_salvar_' + id).setStyle('display', 'block');

		$('texto_' + id).abbSymbId = id;
		$('texto_' + id).addEvent('keydown', function(event) {
			if(event.code == 13) abbSymb.verificaEditada(this.abbSymbId);
		});

	},

	// ----------------------------------------------------------------------------------------------------
	apaga: function(id, nome) {

		msgr.show({
			tipo: 'confirm',
			titulo: 'Apagar?',
			html: 'Apagar a abreviatura / s&iacute;mbolo <strong>' + nome + '</strong>?',
			onComplete: function(ok) {
				if(!ok) return;
				new Request.HTML({
					url: 'modulos/abb_symb/apagar.ajax.php',
					onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
						// Retirar a tr da entrada
						$('tr_' + id).dispose();
						// Se for ultimo de uma letra, apaga-la
						var letra = nome.substr(0, 1).toUpperCase();
						if($('table_letra_' + letra).getChildren()[0].getChildren().length == 1) {
							$('div_letra_' + letra).dispose();
						}
					}
				}).get({id: id});
			}
		});

	}

});

