var PilhaChamadas = new Array();
var PilhaPonteiro = 0;
var PilhaTamanho = 0;

function LimparChamadas() {
	PilhaTamanho = 0;
	PilhaPonteiro = 0;
}

function EmpilharChamada(Chamada) {
	PilhaChamadas[PilhaPonteiro] = Chamada;
	PilhaPonteiro++;
	PilhaTamanho = PilhaPonteiro;
	//alert('EmpilharChamada: Pilha agora possui ' + PilhaTamanho + ' elementos e aponta para ' + PilhaPonteiro);
}

function PilhaChamadaRetroceder(Delta) {
	var chamada;
	if (Delta < 1) Delta = 1;
	if (PilhaPonteiro - Delta > 0) {
		PilhaPonteiro = PilhaPonteiro - Delta;
		chamada = PilhaChamadas[PilhaPonteiro-1];
	}
	//alert('PilhaChamadaAnterior: Pilha agora possui ' + PilhaTamanho + ' elementos e aponta para ' + PilhaPonteiro);
	return(chamada);
}

function PilhaChamadaAvancar(Delta) {
	var chamada;
	if (Delta < 1) Delta = 1;
	if (PilhaPonteiro + Delta <= PilhaTamanho) {
		PilhaPonteiro += Delta;
		chamada = PilhaChamadas[PilhaPonteiro-1];
	}
	//alert('PilhaChamadaSeguinte: Pilha agora possui ' + PilhaTamanho + ' elementos e aponta para ' + PilhaPonteiro);
	return(chamada);
}

function PodeAvancarChamada(Delta) {
	if (Delta < 1) Delta = 1;
	return(PilhaPonteiro + Delta <= PilhaTamanho);
}

function PodeRetrocederChamada(Delta) {
	if (Delta < 1) Delta = 1;
	return(PilhaPonteiro - Delta > 0);
}

