// JavaScript Document
function showBox(clickOut,PositionTop,PositionLeft,hideClose,cabslt) {
	
	if(!cabslt){
		var cabslt='';
	}
	
	
	//corecao do bug do ie q faz os select aparecer sobre o bodyoverlay
	$('select').css({visibility:"hidden"});
  // esconder suggest
  setTimeout(function() { $('.ac_results').hide() }, 500);
	
	$('<div id="BodyOverlay">&nbsp;</div>').appendTo("body");
	
	if(clickOut)
		$('#BodyOverlay').click( function(){hiddeBox();});
	//se nao for especificado posicao top
	if(!PositionTop){
		var scrollPosition=getScrollingPosition();
		PositionTop=(scrollPosition[1]+50)+"px";
	}else{
		PositionTop=PositionTop+"px";
	}
	
	if(!PositionLeft)
		PositionLeft=20;
	
	var sizesPage = getPageSize();
	$("#BodyOverlay").height(arrayPageSize[1]);
	$("#BodyOverlay").width(arrayPageSize[0]);
	
	var BoxOverlay='<div id="BoxOverlay">';
	if (!hideClose)
		BoxOverlay+='<div id="closeBoxOverlay" align="right"><a href="javascript:void(0)" onclick="hiddeBox()" accesskey="x"><img src="'+cabslt+'imagens/apagar.gif"></a></div>';
		BoxOverlay+='<table><tr><td>';
		BoxOverlay+='<div id="rodape_content">';
			BoxOverlay+='<div class="t">';
				BoxOverlay+='<div class="t">';
					BoxOverlay+='<div class="t"></div>';
				BoxOverlay+='</div>';
			BoxOverlay+='</div>';
		BoxOverlay+='</div>';
		BoxOverlay+='<div class="m" id="ctdoBoxOverlay"><img src="'+cabslt+'imagens/loading.gif"></div>'; 
		BoxOverlay+='<div id="rodape_content">';
			BoxOverlay+='<div class="b">';
				BoxOverlay+='<div class="b">';
					BoxOverlay+='<div class="b"></div>';
				BoxOverlay+='</div>';
			BoxOverlay+='</div>';
		BoxOverlay+='</div>';
		BoxOverlay+='</td></tr></table>';
		BoxOverlay+='</div>';
	//$("#BodyOverlay").fadeIn("fast", function(){
		//$(BoxOverlay).appendTo("body");
		//$("#BoxOverlay").css({top:PositionTop});
	//});
	$("#BodyOverlay").fadeIn("fast");
	$(BoxOverlay).appendTo("body");
	$("#BoxOverlay").css({top:PositionTop, left:PositionLeft});	
	//para o IE, problema q nao permite transparencia
	$("#BodyOverlay").fadeTo("fast",0.7);
	
	//$("#BodyOverlay").show();
	//w3Opacity.fading("BodyOverlay",0,50,400);
}
function hiddeBox(){
	$("#BodyOverlay").fadeOut("fast", function(){
		$("#BodyOverlay").remove();
		$("#BoxOverlay").remove();
		//corecao do bug do ie q faz os select aparecer sobre o bodyoverlay
		$('select').css({visibility:"visible"});
	});
	
	
}

/*
	w3Opacity (1.0) - 15/01/2007
	Por Leandro Vieira Pinho - http://leandro.w3invent.com.br
	
	Para informações sobre o w3Opacity viste:
	http://leandro.w3invent.com.br/labs/
	
	Dúvidas, sugestões, bugs?
	http://leandro.w3invent.com.br/labs/forum
*/
var w3Opacity = {
	/**
	 * Método que realiza o fadeOut e fadeIn
	 * @param strObjId {string} - Nome do atributo ID do objeto que receberá o efeito
	 * @param intOpacityStart {number} - Número inicial para o efeito
	 * @param intOpacityEnd {number} - Número final para o efeito
	 * @param intMillisecond {number} - Número (em milisegundos) para o tempo de duração do efeito
	 * @param fnOnFinish {} - Função a ser chamada quando o efeito terminar
	 * Exemplos:
	 * Não chamar uma função ao terminar o efeito: w3Opacity.fading("obj_id",0,100,400);
	 * Chamar uma função ao terminar o efeito: w3Opacity.fading("obj_id",100,0,400,nome_da_funcao);
	 */
	fading: function(strObjId,intOpacityStart,intOpacityEnd,intMillisecond,fnOnFinish) {
		var intSpeed = Math.round(intMillisecond / 100);
		var intTimer = 0;
		// Processo para o FadeOut
		if ( intOpacityStart > intOpacityEnd ) {
			for ( i = intOpacityStart; i >= intOpacityEnd; i-- ) {
				if ( intTimer == 100 && typeof(fnOnFinish) != "undefined" ) {
					setTimeout("w3Opacity.change_opacity('" + strObjId + "'," + i +"," + fnOnFinish + ")",(intTimer * intSpeed));
				} else {
					setTimeout("w3Opacity.change_opacity('" + strObjId + "'," + i +")",(intTimer * intSpeed));					
				}
				intTimer++;
			}
		// Processo para o FadeIn
		} else if ( intOpacityStart < intOpacityEnd ) {
			for ( i = intOpacityStart; i <= intOpacityEnd; i++ ) {
				if ( intTimer == 100 && typeof(fnOnFinish) != "undefined" ) {
					setTimeout("w3Opacity.change_opacity('" + strObjId + "'," + i +"," + fnOnFinish + ")",(intTimer * intSpeed));
				} else {
					setTimeout("w3Opacity.change_opacity('" + strObjId + "'," + i +")",(intTimer * intSpeed));
				}
				intTimer++;
			}				
		}
	},
	/**
	 * Método que verifica a opacidade do objeto e realiza um fadeOut ou fadeIn :)
 	 * @param strObjId {string} - Nome do atributo ID do objeto que receberá o efeito
	 * @param intMillisecond {number} - Número (em milisegundos) para o tempo de duração do efeito
	 * Exemplos:
	 * w3Opacity.toggle("obj_id",400);
	 */
	toggle: function(strObjId,intMillisecond) {
		if ( this.get_opacity(strObjId) < 1 ) {
			// fadeIn
			this.fading(strObjId,0,101,intMillisecond);	
		} else {
			// fadeOut
			this.fading(strObjId,101,0,intMillisecond);
		}
	},
	/**
	 * Método que define uma opacidade para o objeto
	 * @param strObjId {string} - Nome do atributo ID do objeto que receberá o efeito
	 * @param intOpacity {number} - Número inteiro que será o valor da opacidade
	 */
	set: function(strObjId,intOpacity) {
		this.change_opacity(strObjId,intOpacity);
	},
	/**
	 * Método interno, utilizado para alterar a opacidade do objeto
	 */
	change_opacity: function(strObjId,intOpacity,hasFnOnFinish) {
		if (typeof(hasFnOnFinish) != "undefined") {
			hasFnOnFinish();
		}
		var objStyle = this.$(strObjId).style;
		objStyle.opacity = (intOpacity / 101);
		objStyle.MozOpacity = (intOpacity / 101);
		objStyle.KhtmlOpacity = (intOpacity / 101);
		objStyle.filter = "alpha(opacity=" + intOpacity + ")";
	},
	$: function(strObjId) {
		return document.getElementById(strObjId);
	},
	get_style: function(strObjId,strStyleProperty) {
		var objToGetStyle = this.$(strObjId), styleValue;
		// Para o Internet Explorer
		if ( objToGetStyle.currentStyle ) {
			styleValue = objToGetStyle.currentStyle[strStyleProperty];
		// Para o Firefox, Opera, ...
		} else if ( window.getComputedStyle ) {
			styleValue = document.defaultView.getComputedStyle(objToGetStyle,null).getPropertyValue(strStyleProperty);
		}
		return styleValue;
	},
	get_opacity: function(strObjId) {
		var opacity;
		if ( opacity = this.get_style(strObjId,'opacity') ) {
			return parseFloat(opacity);
		}
		if ( opacity = (this.get_style(strObjId,'filter') || '').match(/alpha\(opacity=(.*)\)/) ) {
			if ( opacity[1] ) {
				return parseFloat(opacity[1]) / 100;
			} else {
				return 1.0;
			}
		// Caso não seja aplicado ao objeto um filter... será retornado undefined. Então, considero como o objeto está visível: 100
		} else {
			return 1.0;	
		}
	}
};

// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);

};

function getScrollingPosition() {
	// Variável que será retornada com os valores
	var position = [0, 0];
	// pageYOffset is used by Firefox and other Mozilla browsers, Safari, Konqueror, and Opera
	if (typeof window.pageYOffset != 'undefined') {
		position = [window.pageXOffset, window.pageYOffset];
	}
	// documentElement.scrollTop is used by IE 6 in standards-compliant mode
	else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0) {
		position = [document.documentElement.scrollLeft, document.documentElement.scrollTop];
	}
	// body.scrollTop is used by IE 5, and IE 6 in “Quirks” mode.
	else if (typeof document.body.scrollTop != 'undefined') {
		position = [document.body.scrollLeft, document.body.scrollTop];
	}
	return position;
	/**
	 * Notes
	 * More recent Mozilla browsers (such as Firefox) also support documentElement.scrollTop and body.scrollTop, 
	 * by the same render-ing mode rules as IE 6. Safari and Konqueror support body.scrollTop in either mode. 
	 * Opera supports all three properties in any mode!
	 */
};