// 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");

	$("#data_nascimento").mask("9999-99-99");

	$('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: {
			captcha_code: {
				required: true,
				remote: {
					url: '../validate_captcha.php',
					type: 'post'
				}
			},

			nome: 'required',

			email: {

				required: true,

				email: true

			},

			assunto: 'required',

			mensagem: 'required'

		},

		messages: {
			
			captcha_code: 'C&oacute;digo inv&aacute;lido.',

			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(){
          
          /*VH 2011-09-08 - ESTAVA 5*/
		  /*VH 2011-11-19 - ESTAVA 2*/
          
          
		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() <= 4.99) {

		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 > 4.99) {

		$('#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);

	}

}


