/**
 * Javascript para display de div para bloquear operações mediante um novo
 * click em uma operação na aplicação.
 * 
 * Autor: Rudra A Dixit - rdixit@eservicios.indra.pt
 *  Data: 20/02/2008
 */
 

/*
 * Método para tratar todas as requisições. Ao ser invocado, invoca o método
 * displayProcessing() e redireciona a página para a URL desejada.
 *
 * @param urlToGo - formulário que será submetido após o bloqueio.
 */
function requestSender(frmToPost) {
    displayProcessing();
    frmToPost.submit();
}

/**
 * Encontra a posição exacta de um objecto em uma página.
 * http://www.quirksmode.org/js/findpos.html
 */
function findPos(obj) {
	var curleft = curtop = 0;
	
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}

	return [curleft, curtop];
}

/*
 * Método que mostra um div azulado em 100% do ecrã para bloqueio das operações.
 * 
 */
function displayProcessing() {
    var myDiv = document.getElementById("processamento");
    var wrapperDiv = document.getElementById("wrapper");
    var rodapeDiv = document.getElementById("rodape");

	//No IE, por algum motivo, width 100% não é 100%... 
	//Por isso, é necessário colocar mais alguns pixels.
	if (ie) {
		myDiv.style.width = "102%";
	}
	
	var wrapperCoordenadas = findPos(wrapperDiv);
	var rodapeCoordenadas = findPos(rodapeDiv);

	myDiv.style.height = rodapeCoordenadas[1] + rodapeDiv.clientHeight;
    myDiv.style.visibility = "visible";
    myDiv.style.display = "block";
}