// Constantes de ordenação.
var peso = 0;
var POR_ORDEM_ALFABETICA = 0;
var POR_AREA_TEMATICA = 1;
var POR_AREA_GEOGRAFICA = 2;

jQuery.fn.extend({
	// Aplica efeito de zebra nas linhas de uma tabela.
	zebra: function() {
		var i = 0;
		this.each(function() {
			if ((i % 2) == 0) {
				$(this).addClass('zebraIn');
			} else {
				$(this).addClass('zebraOut');
			}
			i++;
		});
		return this;
	},
	// Preenche um campo de texto com uma dica.
	textTip: function(tip) {
		this.val(tip);
		this.click(function() {
			$(this).val('');
		}).blur(function() {
			if ($(this).val() == '') $(this).val(tip);
		});
		return this;
	},

	toggleRules: function (toggle) {
		if (toggle) {
			this.each(function() {
				$(this).children('td').next('td').children('input').rules('add', 'required');
			});
		} else {
			this.each(function() {
				$(this).children('td').next('td').children('input').rules('remove');
			});
		}
		return this;
	}
});

$(function(){

	$("#nif").mask("999999999");

	$('td#loader').hide();

	// Inicializa o newsticker.
	$('ul#news_lista').liScroll({travelocity: 0.03});
	// Inicializa o relógio.
	getHora();
	setInterval(getHora, 1000);
	// Inicializa o textTip do campo de busca.
	$('input#input_busca').textTip('Pesquisar por...');
	// Registrando callback´s para requisições AJAX.


	$('td#loader').ajaxStart(function(){
		$(this).show();
		$('td#finaliza').hide();
	}).ajaxSuccess(function(){
		$(this).hide();
		$('td#finaliza').show();
	});


	// Método de validação para o campo de emissão de recibo.
	$.validator.addMethod('verificar_nif', function(value, element){
		var nif = $('input#nif');
		if ($(element).attr('checked') != '') {
			if (nif.val() == '') return false;
		}
		return true;
	}, 'Antes de marcar esse campo você deve preencher o campo NIF.');
	// Validação para a página viewDoaProj03.php
	$('#frmDoaProj03_novo').validate({
		rules: {
			nome: 'required',
			apelido: 'required',
			email: {
				required: true,
				email: true
			},
			senha1: {
				required: true,
				minlength: 6
			},
			senha2: {
				required: true,
				equalTo: 'input#senha1'
			}
		},
		messages: {
			nome: 'Digite seu nome!',
			apelido: 'Digite um apelido!',

			designacao: 'Digite uma designação!',

			representante: 'Digite o nome do representante!',
			email: {
				required: 'Digite seu e-mail!',
				email: 'Digite um formato válido de e-mail!'
			},
			senha1: {
				required: 'Digite uma senha!',
				minlength: 'Digite uma senha com mínimo 6 caracteres!'
			},
			senha2: {
				required: 'Confirme sua senha!',
				equalTo: 'Por favor, digite a mesma senha!'
			},
			nif: 'Digite seu NIF!',
			morada: 'Digite as informações de sua morada!',

			codigo_postal: 'Digite o código postal!',
			localidade: 'Digite sua localidade!',
			telefone: 'Digite seu telefone!'
		},
		errorClass: 'invalido',
		errorElement: 'p',
		errorPlacement: function (error, element) {
			error.appendTo(element.next('p'));
			element.css('vertical-align', 'top');
		},
		submitHandler: function(form) {
			var submit = true;
			if ($('input[name=receber]:checked').val() == 0) {
				if (!confirm('Tem certeza que não deseja receber o recibo?')) {
					submit = false;
				}
			}
			if (submit) form.submit();
		}
	});
	$('#frmDoaProj03').validate({
		rules: {
			login: 'required',
			password: 'required'
		},
		messages: {
			login: 'Digite seu login!',
			password: 'Digite sua senha!'
		},
		errorClass: 'invalido',
		errorElement: 'p',
		errorPlacement: function (error, element) {
			error.appendTo(element.next('p'));
			element.css('vertical-align', 'top');
		}
	});
	// Validação para a página viewFundoCad01.php
	$('#viewFundosCad01').validate({
		rules: {
			nome: 'required',
			apelido: 'required',
			email: {
				required: true,
				email: true
			},
			senha1: {
				required: true,
				minlength: 6
			},
			senha2: {
				required: true,
				equalTo: 'input#senha1'
			}
		},
		messages: {
			nome: 'Digite seu nome!',
			apelido: 'Digite um apelido!',

			designacao: 'Digite uma designação!',

			representante: 'Digite o nome do representante!',
			email: {
				required: 'Digite seu e-mail!',
				email: 'Digite um formato válido de e-mail!'
			},
			senha1: {
				required: 'Digite uma senha!',
				minlength: 'Digite uma senha com mínimo 6 caracteres!'
			},
			senha2: {
				required: 'Confirme sua senha!',
				equalTo: 'Por favor, digite a mesma senha!'
			},
			nif: 'Digite seu NIF!',
			morada: 'Digite as informações de sua morada!',

			codigo_postal: 'Digite o código postal!',
			localidade: 'Digite sua localidade!',
			telefone: 'Digite seu telefone!'
		},
		errorClass: 'invalido',
		errorElement: 'p',
		errorPlacement: function (error, element) {
			error.appendTo(element.next('p'));
			element.css('vertical-align', 'top');
		},
		submitHandler: function(form) {
			var submit = true;
			if ($('input[name=receber]:checked').val() == 0) {
				if (!confirm('Tem certeza que não deseja receber o recibo?')) {
					submit = false;
				}
			}
			if (submit) form.submit();
		}
	});
	// Validação - viewImprensa.php
	$('#viewImprensaForm').validate({
		rules: {
			nome: 'required',
			email: {
				required: true,
				email: true
			},
			assunto: 'required',
			mensagem: 'required'
		},
		messages: {
			nome: 'Digite seu nome!',
			email: {
				required: 'Digite seu e-mail!',
				email: 'E-mail inválido!'
			},
			assunto: 'Digite um assunto!',
			mensagem: 'Digite uma mensagem!'
		},
		errorClass: 'invalido',
		errorElement: 'p',
		errorPlacement: function (error, element) {
			error.appendTo(element.next('p'));
		},
		onkeyup: false
	});	$('#frmLoginCandidatar').validate({		rules: {			email: {				required: true,				email: true			},			senha: 'required'		},		messages: {			email: {				required: 'Digite seu e-mail!',				email: 'E-mail inválido!'			},			senha: 'Digite sua senha!'		},		errorClass: 'invalido',		errorElement: 'p',		errorPlacement: function (error, element) {			error.appendTo(element.next('p'));		}	});
	// Mascara de formatação
	$('table#doacoes input.acoes_pretendidas').priceFormat({
		prefix: '',
		centsSeparator: ',',
		thousandsSeparator: ' '
	});
	// Mascara para inteiros
	$('input.acoes_pretendidas_doacao').format({precision: 0, autofix:true});
});

// Recupera o horário atual em horas e minutos.
function getHora() {
	var date = new Date();
	var hora = date.getHours();
	var minuto = date.getMinutes();
	if (hora < 10) hora = '0' + hora;
	if (minuto < 10) minuto = '0' + minuto;
	$('#relogio a').html(hora + ':' + minuto);
}

// Recuperar e ordenar os projetos
function getProjetos(order) {
	$.getJSON('../action/processa_projetos.php', {order: order}, function(data) {
		var tr = '';
		$.each(data, function(i, projeto) {
			var classe = 'zebraOut';
			if ((i % 2 == 0)) classe = 'zebraIn';
			tr += '<tr class="'+ classe +'">';
			tr += '<td class="td_projeto"><a href="viewDoaProj01.php?cod='+ projeto.cod_projeto +'">' + projeto.nome + '</a>';
			tr += '<p>' + projeto.organizacao + '</p>';
			tr += '</td>';
			tr += '<td class="td_localizacao">' + projeto.cidade + '</td>';
			tr += '<td class="td_tema">' + projeto.tematica + '</td>';
			tr += '<td class="td_ai">' + projeto.acoes_iniciais + '</td>';
			tr += '<td class="td_ad">' + projeto.acoes_disponiveis + '</td>';
			tr += '<td class="td_botao"><a href="viewDoaProj01.php?cod='+ projeto.cod_projeto +'"><img src="../images/tabela_btn_invista.png" alt="" /></a></td>';
			tr += '</tr>';
		});
		$('#projetos_dados #dados table').html(tr);
	});
}

// Setar cotas pretendidas para um projeto.
function setCotasPretendidas(cod, cotas) {
	$.post('../action/processa_cotas.php', {cod: cod, cotas: cotas}, function(data) {
		getCotasPretendidas();
	});
}

// Recuperar cotas pretendidas de um projeto.
function getCotasPretendidas() {
	$.getJSON('../action/processa_cotas.php', function(data) {
		$.each(data, function(i, projeto) {
			$('input#doacao_' + projeto.cod).val(projeto.cotas);
			$('input#total_' + projeto.cod).val(projeto.cotasFormatada);
			$('input#total_' + projeto.cod).priceFormat({
				prefix: '',
				centsSeparator: ',',
				thousandsSeparator: ' '
			});
			$('td#valor_total input').val(projeto.valorTotal);
			$('td#valor_total input').priceFormat({
				prefix: '',
				centsSeparator: ',',
				thousandsSeparator: ' '
			});
		});
	});
}

// Verificar se as doações estão acima da doação mínima.
function verificarDoacoes(msg) {
	var verificado = true;
	$('input.acoes_pretendidas_doacao').each(function(){
		if ($(this).val() < 5) {
			verificado = false;
		}
	});
	if (!verificado) alert(msg);
	return verificado;
}

// Exibe os campos de informação para quem deseja receber o recibo.
function showCamposRecibo(exibir) {
	if (exibir) {
		$('table#campos_recibo').show();
		$('table#campos_recibo input, textarea').not('input[name=celular]').each(function(){
			$(this).rules('add', 'required');
		});
	} else {
		$('table#campos_recibo').hide();
		$('table#campos_recibo input, textarea').not('input[name=celular]').each(function(){
			$(this).rules('remove');
		});
	}
}

// Verifica se uma área tematica foi selecionada para prosseguir com o pagamento.
function verificarTematica(msg) {
	var verificado = false;
	$('table#doacoes input.chb_tematica').each(function(){
		if ($(this).attr('checked') != '') {
			verificado = true;
		}
	});
	if (verificado == false) alert(msg);
	if (getValorTotal() <= 5) {
		return false;
	}
	return verificado;
}

// Valor total de doações.
function getValorTotal() {
	var valorTotal = 0;
	$('table#doacoes input.acoes_pretendidas').each(function(){
		var x = $(this).val();
		valorTotal += parseFloat(x.replace(/\s/g, '').replace(',', '.'));
	});
	return valorTotal;
}

// Soma dos valores de investimento.
function somaValores(name, valor) {
	var valorTotal = getValorTotal();
	$('table#doacoes td input#valor_total').val(valorTotal.toFixed(2));
	$('table#doacoes td input#valor_total').priceFormat({
		prefix: '',
		centsSeparator: ',',
		thousandsSeparator: ' '
	});
	name = name.replace('doacao_', '');
	$('table#doacoes th input#tema_'+name).attr('checked', true);
	if (valorTotal > 5) {
		$('#acoes').show();
	} else {
		$('#acoes').hide();
	}
}


function setAction(form, action)
{

	if(action=='viewPagVoucher.php')
	{
		$('#voucher').show();
		$('#recibo, span').hide();
		$('#boxred').hide();
	}
	else
	{
		$('#voucher').hide();
		$('#recibo, span').show();
		$('#boxred').show();
	}

	$(form).attr('action', action);

}

function submeter(txt)
{

	var a = txt.length;

	if(a==0)
	{
		$('#viewDoaProj04').submit();
	}
	else
	{
		alert(txt);
	}


}

function verificarDoacaoVoucher(form, cotas, projetos, msg, voucher)
{

	if ($(form).attr('action') == 'viewPagVoucher.php')
	{

		if(projetos > 1)
		{
			alert(msg);
			return false;
		}
		else
		{
				$.post('../action/processa_voucher.php', {voucher: voucher, cota:cotas }, function (txt)
				{
						txt = $.trim(txt);

						submeter(txt);
				}
				);
		}
	} else
	{
		$('#viewDoaProj04').removeAttr('onsubmit').submit();
	}

}

function toggleTr(toggle)
{
	if (toggle)
	{
			$('#novo_investidor table tr.emp').removeClass('invisivel').toggleRules(true);
			$('#novo_investidor table tr.pf').addClass('invisivel').toggleRules(false);
	}
	else
	{
			$('#novo_investidor table tr.emp').addClass('invisivel').toggleRules(false);
			$('#novo_investidor table tr.pf').removeClass('invisivel').toggleRules(true);
	}
}


function confirmaRecibo()
{

 	if( $('input[name=recibo]:checked').val() != 1 )
	{
		var conf = confirm('Tem certeza que não deseja receber o recibo?');

		if(conf==false)
		$('#recibo').attr('checked', 1);
		//else
		//$('#recibo').attr('checked', true);
	}
}
