var acompanhanteModel;
var acompanhanteHolder;
var numAcompanhantes;
var radioBus;

$(document).ready( ColoniaMain );

function ColoniaMain()
{	
	// Add the mask to the filters
	$(".datahora").mask("99/99/9999 99:99");
	$(".data").mask("99/99/9999");
	$(".hora").mask("99:99");
	$(".cpf").mask("999.999.999-99");
	$(".placa").mask("aaa-9999");

	// Adiciona o evento que cria novos campos de associados
	var linkAddAcompanhante = $("#addAcompanhante");
	linkAddAcompanhante.click(onClickAddAcompanhante);
	
	// Guarda o modelo de acompanhante e a área destinada a recebe-los
	acompanhanteModel = $("#acompanhanteModel");
	acompanhanteHolder = $("#acompanhanteHolder");
	
	// Guarda o contador de acompanhantes
	numAcompanhantes = $("#numAcompanhantes");
	
	// Guarda os botões de escolha de onibus/van e adiciona o evento
	radioBus = $(".busRadio");
	radioBus.change(onRadioBusChanged);
	
	// Adiciona um evento antes do submit
	$("#formReservaColonia, #formAvaliacaoColonia").validate(
		{
			invalidHandler: onFormInvalid,
			rules:
			{
				associadoNome: "required",
				obrigatorio: "required",
				idade: {
					required: true,
					depends: function(element) {
						return true;$("#contactform_email:checked")
					}
				}
			},
			messages:
			{
				associadoNome: "O nome do associado é obrigatório",
				required: "Campo obrigatório",
				idade: "Por favor, entre uma idade válida"
			}
		}
	);
	$("#formReservaColonia").submit(onReservaColoniaSubmit);
	
	if( $("#admReserva").length > 0 ) ColoniaMainAdm();
}

function onClickAddAcompanhante()
{
	var newAcompanhante = acompanhanteModel.children().clone();
	
	// Busca pelo numero de acompanhantes atual e calcula o próximo
	var newNumber = numAcompanhantes.val();
	if( newNumber == undefined || newNumber == "" ) newNumber = 0;
	newNumber = parseInt( newNumber ) + 1;
	numAcompanhantes.val(newNumber);
	
	// Troca o token NNN pelo número do acompanhante
	var newAcompanhanteText = newAcompanhante.html();
	newAcompanhanteText = newAcompanhanteText.replace( /NNN/g ,  newNumber );
	
	newAcompanhante.attr("id","acompanhante" + newNumber);
	$("h4",newAcompanhante).text("Acompanhante " + newNumber);
	$("#acompanhanteNomeNNN",newAcompanhante).attr("id","acompanhanteNome" + newNumber ).attr("name","acompanhanteNome" + newNumber );
	$("#acompanhanteRGNNN",newAcompanhante).attr("id","acompanhanteRG" + newNumber ).attr("name","acompanhanteRG" + newNumber );
	$("#acompanhanteCPFNNN",newAcompanhante).attr("id","acompanhanteCPF" + newNumber ).attr("name","acompanhanteCPF" + newNumber );
	$("#acompanhanteDOBNNN",newAcompanhante).attr("id","acompanhanteDOB" + newNumber ).attr("name","acompanhanteDOB" + newNumber );
	
	// Adiciona o acompanhante ao html
	acompanhanteHolder.append( newAcompanhante );		
	
	// Adiciona o evento de exclusão
	var acompanhanteId = "#acompanhante"+newNumber;
	var deleteLink = $(acompanhanteId +" a.excluirAcompanhante");
	deleteLink.click(excluirAcompanhantes);
	$(acompanhanteId + " .data").mask("99/99/9999");
	$(acompanhanteId + " .hora").mask("(99:99");
	$(acompanhanteId + " .cpf").mask("999.999.999-99");
	
	return false;
}

function excluirAcompanhantes(evento)
{
	// Procure pelo link clicado e remove o acompanhente relacionado
	var clickedLink = $(this);
	var acompanhanteDiv = clickedLink.parents(".acompanhantes");
	acompanhanteDiv.remove();
	
	// Muda a contagem dos acompanhantes
	var acompanhantes = $(".acompanhantes");
	
	if( acompanhantes.length > 0 )
	{
		var count = 0;
		// Troca o texto
		acompanhantes.each(function()
		{
			count++;
			var title = $("h4", this);
			title.text( title.text().replace(/Acompanhante \d+/g, "Acompanhante " + count ) );
		});
		
		// Retira 1, pois o each anterior contava tambem o model
		numAcompanhantes.val(count-1);
	}
	
	return false;
}

function onReservaColoniaSubmit()
{
	acompanhanteModel.remove();	
}

function onRadioBusChanged()
{
	switch ($(this).val())
	{
		case 'nenhum': $("#busTable").slideUp("fast"); break;
		default: $("#busTable").slideDown("fast");
	}
}

function onFormInvalid(e, validator)
{
	var errors = validator.numberOfInvalids();
	if (errors) {
		
		var message = "Alguns campos obrigatórios não foram preenchidos, por favor verifique novamente os valores digitados";
		
		$("div.errorCotainer span").html(message);
		$("div.errorCotainer").show();
	} else {
		$("div.errorCotainer").hide();
	}
}



function ColoniaMainAdm()
{
	var linksAbertura = $(".linkSindicatoRequisitante");
	linksAbertura.click(expandPedidos);
}

function expandPedidos(evento)
{
	var link = $(this);
	$("h3").removeClass( "active" );
	link.parent().toggleClass( "active" );
	
	var holder = link.parent().next(".tableReservaHolder");
	holder.toggle();
	$(".tableReservaHolder").not(holder).hide();
	
}
