/*

	funções globais Javascript
 	Criado por Davi Ferreira
	Última modificação 25/08/2007

*/

// marca/desmarca checkboxes para exclusão
// tipo = 0 -> checkbox
// tipo = 1 -> link
var checkAll = function(chk,tipo) {
	// instancia variáveis
	var checkboxes = $('#resultado-check').find('input');

	if (tipo) {
		if ($(chk).attr('checked') == true)
			$(chk).attr('checked',false);
		else
			$(chk).attr('checked',true);
	}
	
	// marca/desmarca
	// i = 0 : checkbox para marcar/desmarcar todos
	for (var i = 0; i < checkboxes.length; i++) {
		if(checkboxes[i].type.toLowerCase() == 'checkbox') {
			if ($(chk).attr('checked') == true) {
				checkboxes[i].checked = true;
				$("#row"+checkboxes[i].value).css('border','2px dashed #0066cc');
			} else {
				checkboxes[i].checked = false;
				$("#row"+checkboxes[i].value).css('border','2px solid #f7f7f7');
			}
		}
	}
	
}; // fim checkAll

// envia form para excluir todos os selecionados
var deleteAll = function() {
	var checkboxes = $('#resultado-check').find('input');
	var countCheck = false;
	
	// verifica se tem algum checkbox marcado 
	for (var i = 1; i < checkboxes.length; i++) {
		if((checkboxes[i].type.toLowerCase() == 'checkbox') && (checkboxes[i].checked == true)) {
			countCheck = true;
		}
	}
	
	if (countCheck) {	
		m2brAlert({
			 altura:150,
			 largura:300,
			 msg:'Tem certeza que deseja excluir os registros selecionados?',
			 classe:'pergunta',
			 botao1: {label:'confirmar', action: 'javascript:$(\'#excluir-lista\').submit();'},
			 botao2: {label: 'cancelar', action:'javascript:m2brHideAlert();'}
		});
	} else {
		var erro = "<li>Escolha ao menos um ítem!</li>";
		msgTopo(erro, 'erro', tempoPadrao);
		return false;	
	}
};

// focus no primeiro campo do form
var formFocus = function(elem) {
	var campos = $(elem).find('input');
	for (var i = 0; i<campos.length; i++) {
		if (campos[i].type != 'hidden') {
			campos[i].focus();
			return true;
		}
	}
};

// exibe/esconde filtros
var acaoFiltro = function(e) {
	if (e == 'block') {
		$('#filtros').slideUp(700);
		$('#filtros-link').html('[+] exibir filtros');
		xajax_sessionFiltros(1);
	} else {
		$('#filtros').slideDown(700);
		$('#filtros-link').html('[-] esconder');
		xajax_sessionFiltros(0);
	}
}; // fim acaoFiltro

// valida e-mail
var validaEmail = function(s) {
	var regexpEmail = /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/;
	return regexpEmail.test(s);
}; // fim validaEmail

// marca rows de uma tabela/lista
var disableRow = function(box) {
	for(i=0;i<box.form.elements[box.name].length;i++) {
		if(box.form.elements[box.name][i]===box) {
			break;
		}
	}
	if(box.checked) {
		$("#row"+box.value).css('border','2px dashed #0066cc');
	} else {
		$("#row"+box.value).css('border','2px solid #f7f7f7');
	}
}; // fim disableRow

// exibe popup para exclusão de registro
var excluirRegistro = function(codigo,params,area) {
	m2brAlert({
		 altura:150,
		 largura:300,
		 msg:'Tem certeza que deseja excluir este registro?',
		 classe:'pergunta',
		 botao1: {label:'confirmar', action: 'javascript:window.location.href=\''+raiz+area+'/resposta.php?acao=excluir&cod_'+area+'='+codigo+'&'+params+'\';'},
		 botao2: {label: 'cancelar', action:'javascript:m2brHideAlert();'}
	});
}; // fim excluirRegistro

// envia imagem via iframe
var enviaImagem = function() {
	$('#carregando').css('display', 'block');
	$('#div-form').css('display', 'none');
	$('#frm-upload').submit();
}; // fim enviaImagem

// exclui foto
var excluirFoto = function(arquivo,acao,tipo) {
	m2brAlert({
		 altura:150,
		 largura:300,
		 msg:'Tem certeza que deseja excluir esta imagem?',
		 classe:'pergunta',
		 botao1: {label:'confirmar', action: 'javascript:void(xajax_excluirImagem(\''+arquivo+'\',\''+acao+'\',\''+tipo+'\'));'},
		 botao2: {label: 'cancelar', action:'javascript:m2brHideAlert();'}
	});
}; // fim excluirFoto

// confirma cancelamento de operação no form
var cancelaOperacao = function(rel) {
	if (!rel) {
		rel = 'index.php';
	}
	m2brAlert({
			 altura:150,
			 largura:300,
			 msg:'Tem certeza que deseja cancelar esta operação?',
			 classe:'pergunta',
			 botao1: {label:'sim', action: rel},
			 botao2: {label: 'não', action:'javascript:m2brHideAlert();'}
	});
}; // fim cancelaOperacao

// exibe form de esqueci minha senha
var showEsqueci = function() {
	$('#form-login').hide();
	$('#esqueci').fadeIn();
}; // fim showEsqueci

// esconde form de esqueci minha senha
var hideEsqueci = function() {
	$('#esqueci').hide();
	$('#form-login').show();
}; // fim hideEsqueci

// envia form de esqueci minha senha
var esqueciSenha = function() {
	$('#esqueci-botoes').hide();
	$('#esqueci-carregando').show();
	if (!$('#esqueci-email').val()) {
		msgTopo('<li>Informe seu e-mail.</li>', 'erro', tempoPadrao);
		$('#esqueci-botoes').show();
		$('#esqueci-carregando').hide();
		return false;
	} else if (!validaEmail($('#esqueci-email').val())) {
		msgTopo('<li>E-mail inválido.</li>', 'erro', tempoPadrao);
		$('#esqueci-botoes').show();
		$('#esqueci-carregando').hide();
		return false;
	} else {
		xajax_esqueciSenha($('#esqueci-email').val());
	}
};

// marca permissões de um certo tipo
var checkPermissao = function(chk, tipo, vialink) {
	if (vialink == 1) {
		if ($(chk).is(':checked')) {
			$(chk).attr('checked', false);
		} else {
			$(chk).attr('checked', true);	
		}
		
		$('.'+tipo).each(function(){
								  
							if ($(chk).is(':checked')) {
								$(this).attr('checked', true);	
							} else {
								$(this).attr('checked', false);	
							}
								  
		});
		
	}
}; // fim checkPermissao

// função para exibir lista de cidades na troca do estado
var trocaEstado = function(elem) {
	var codigo = elem.options[elem.selectedIndex].value;
	if (codigo) {
		var cidade_id = $("#div-cidades-simples select").attr('id');
		$('#div-cidades').html('<img src="'+raiz+'_img/loading.gif" width="208" height="13" alt="carregando...">');
		xajax_cidades(codigo, 0, cidade_id);
	} else {
		$("#div-cidades").html('<select name="cod_cidades" id="cod_cidades" class="select" onchange="trocaCidade(this)"><option value=""> -- escolha um estado -- </option></select>');
		return false;	
	}
}; // fim trocaEstado

// função para exibir lista de bairros na troca da cidade
var trocaCidade = function(elem) {
	var codigo = elem.options[elem.selectedIndex].value;
	if (codigo) {
		var bairro_id = $("#div-bairros-simples select").attr('id');
		$('#div-bairros').html('<img src="'+raiz+'_img/loading.gif" width="208" height="13" alt="carregando...">');
		xajax_bairros(codigo, 0, bairro_id);
	} else {
		$("#div-bairros").html('<select name="cod_bairros" id="cod_bairros" class="select"><option value=""> -- escolha um estado -- </option></select>');
		return false;	
	}
}; // fim trocaEstado

// função para exibir lista de conteúdos na área de destaques
var trocaConteudo = function(elem) {
	var tipo = elem.options[elem.selectedIndex].value;
	if (tipo) {
		var tipo_id = $("#div-sel-conteudo select").attr('id');
		$('#div-sel-conteudo').html('<img src="'+raiz+'_img/loading.gif" width="208" height="13" alt="carregando...">');
		xajax_conteudo(tipo, 0, tipo_id);
	} else {
		$("#div-sel-conteudo").html('<select name="cod_conteudo" id="cod_conteudo" class="select"><option value=""> --- Escolha um tipo de conteúdo --- </option></select>');
		return false;	
	}
}; // fim trocaEstado

// adiciona conteúdo à lista de destaques
var addConteudo = function() {
	var erro 			= '';
	var tipo 			= $('#tipo option:selected').val();
	var cod_conteudo	= $('#cod_conteudo option:selected').val();
	
	if (!tipo) {
		erro += '<li>Escolha um tipo de conteúdo.</li>';	
	} 
	
	if (!cod_conteudo) {
		erro += '<li>Escolha um conteúdo.</li>';
	}
	
	if (erro) {
		msgTopo(erro, 'erro', tempoPadrao);
	} else {
		xajax_addConteudo(tipo, cod_conteudo);	
	}
}; // fim addConteudo

// limpa form de conteúdo
var limpaFormConteudo = function() {
	$('#tipo')[0].selectedIndex = 0;
	$("#div-sel-conteudo").html('<select name="cod_conteudo" id="cod_conteudo" class="select"><option value=""> --- Escolha um tipo de conteúdo --- </option></select>');
}; // fim limpaFormConteudo

var tipos = new Array('foo','colunas','criticas','dicas');

// move/reposiciona destaques da home
var moveDestaque = function(tipo, codigo, direcao, ordem) {
	exibeItems(tipos[tipo], false);
	xajax_moveDestaque(tipo, codigo, direcao, ordem);
}; // fim moveConteudo

// exibe/esconde lista de destaques
var exibeItems = function(tipo, exibe) {

	if (exibe) {
		$('#lista-'+tipo+ ' li').each( function() { $(this).show() } );
		$('#loading-'+tipo).hide();
	} else {
		$('#lista-'+tipo+ ' li').each( function() { $(this).hide() } );
		$('#loading-'+tipo).show();
	}
}; // fim exibeItems

// apaga destaque
var apagaDestaque = function(tipo, codigo) {
	m2brAlert({
		 altura:150,
		 largura:300,
		 msg:'Tem certeza que deseja excluir este destaque?',
		 classe:'pergunta',
		 botao1: {label:'confirmar', action: 'javascript:void(xajax_apagaDestaque(\''+tipo+'\',\''+codigo+'\'));'},
		 botao2: {label: 'cancelar', action:'javascript:m2brHideAlert();'}
	});
}; // fim apagaDestaque

// adiciona conteúdo à lista de destaques
var addNota = function(cod_pecas) {
	var erro 			= '';
	var colunista		= $('#colunistas_cod_colunistas option:selected').val();
	var nota			= $('#nota').val();
	
	if (!colunista) {
		erro += '<li>Selecione um crítico.</li>';	
	} 
	
	if (!nota) {
		erro += '<li>Informe a nota (ex: 9,5).</li>';
	}
	
	if (erro) {
		msgTopo(erro, 'erro', tempoPadrao);
	} else {
		xajax_addNota(colunista, nota, cod_pecas);	
	}
}; // fim addConteudo

// apaga nota
var apagaNota = function(cod_notas, cod_colunistas) {
	m2brAlert({
		 altura:150,
		 largura:300,
		 msg:'Tem certeza que deseja excluir esta nota?',
		 classe:'pergunta',
		 botao1: {label:'confirmar', action: 'javascript:void(xajax_apagaNota(\''+cod_notas+'\',\''+cod_colunistas+'\'));'},
		 botao2: {label: 'cancelar', action:'javascript:m2brHideAlert();'}
	});
}; // fim apagaDestaque

// adiciona teatro à lista de destaques
var addTeatro = function(cod_pecas) {
	var erro 			= '';
	var cod_teatros		= $('#cod_teatros option:selected').val();
	
	if (!cod_teatros) {
		erro += '<li>Selecione um teatro.</li>';	
	} 
	
	if (erro) {
		msgTopo(erro, 'erro', tempoPadrao);
	} else {
		xajax_addTeatro(cod_teatros, cod_pecas);	
	}
}; // fim addTeatro

// apaga teatro
var apagaTeatro = function(cod_teatros, cod_pecas) {
	m2brAlert({
		 altura:150,
		 largura:300,
		 msg:'Tem certeza que deseja excluir este teatro da lista?',
		 classe:'pergunta',
		 botao1: {label:'confirmar', action: 'javascript:void(xajax_apagaTeatro(\''+cod_teatros+'\',\''+cod_pecas+'\'));'},
		 botao2: {label: 'cancelar', action:'javascript:m2brHideAlert();'}
	});
}; // fim apagaDestaque

// exclui multimídia
var excluirMultimidia = function(arquivo,cod_multimidia,tabela) {
	m2brAlert({
		 altura:150,
		 largura:300,
		 msg:'Tem certeza que deseja excluir este arquivo multimídia?',
		 classe:'pergunta',
		 botao1: {label:'confirmar', action: 'javascript:void(xajax_excluirMultimidia(\''+arquivo+'\',\''+cod_multimidia+'\',\''+tabela+'\'));'},
		 botao2: {label: 'cancelar', action:'javascript:m2brHideAlert();'}
	});
}; // fim excluirFoto

// exibe o form para adicionar um novo bairro
var formBairro = function(exibe) {
		$('#novo_bairro').val('');
		if (exibe) {
			$('#novo-bairro').hide();
			$('#frm-bairro').show();
		} else {
			$('#novo-bairro').show();
			$('#frm-bairro').hide();
		}
}; // fim formBairro

// adiciona um bairro à listagem
var addBairro = function() {
		var erro 		= '';
		var cod_cidades	= $('#cod_cidades option:selected').val();
		var bairro		= $('#novo_bairro').val();
		// só deixa adicionar bairro se houver cidade selecionada
		if (!cod_cidades) {
			erro = '<li>Escolha uma cidade antes de adicionar um bairro.</li>';	
		} else if (!bairro) {
			erro = '<li>Informe o nome do bairro a ser adicionado.</li>';
		}
		
		bairro = bairro.toUpperCase();
		
		// trata erro
		if (erro) {
			msgTopo(erro, 'erro', tempoPadrao);	
		} else {
			xajax_addBairro(cod_cidades, bairro);
		}
}; // fim addBairro
