var req;
var ajaxResponse;
var ajaxDiv = "dvAjax";
var isInitialized = false;
var imgLoader = new Image(16, 16);

function Initialize(_divName){
	ajaxDiv = _divName;

	document.getElementById(ajaxDiv).visibility = 'none';

	//se esta incializado
	//if(isInitialized){
		try{req = new ActiveXObject("Msxml2.XMLHTTP");}
		catch(e){
			try{req = new ActiveXObject("Microsoft.XMLHTTP");}
			catch(oc){req = null;}
		}

		if ( !req && typeof XMLHttpRequest != "undefined" )
			req = new XMLHttpRequest();

		isInitialized = true;

	//}

	imgLoader.src = 'js/indicator.gif';

	//mantem o Div do ajax sempre visivel, no topo da pagina:
	JSFX_FloatTopLeft();
}


function getAjaxData(_url){
	if(!isInitialized){
		alert('A função Initialize(divName) não foi chamada!');
		return false;
	}
	var url = "";
	document.getElementById(ajaxDiv).innerHTML = "<p style='vertical-align:middle; height:20px;float:left; display: inline;position:relative;background-color: #fcfcfc;border: solid 1px; border-color: black;'>&nbsp;<img id='imagem_loader' border='0' src=''>&nbsp;&nbsp;Carregando ...</p>";
	document.getElementById('imagem_loader').src = imgLoader.src;


	//maque unique
	if(_url.indexOf('?') > 0)
		url = _url + "&ms=" + new Date().getTime();
	else
		url = _url + "?ms=" + new Date().getTime();

	//req = null;

	if ( req != null ){
		req.onreadystatechange = ProcessaAjax;
		req.open("GET", url, true);
	    req.send(null);
	}
	//se req == null, entao browser nao suporta ajax:
	else{
		ProcessEnd = null;
		HideDiv(ajaxDiv);
		url = _url.replace(".ajax", "");
		url = url.replace("template=none", "");
		//alert(url);
		window.location.href = url;
	}

}

function ProcessEnd(){};

function ProcessaAjax(){
	if (req.readyState == 4){
        // only if "OK"
		if (req.status == 200){
			if(req.responseText=="")
				HideDiv(ajaxDiv);
			else{
				ShowDiv(ajaxDiv);
				document.getElementById(ajaxDiv).innerHTML = "";
				ProcessEnd(trim(req.responseText));
			}
		}
		else{
			document.getElementById(ajaxDiv).innerHTML="Erro:"+req.statusText;
		}
	}
}

//trim string
function trim(str){
   return str.replace(/^\s*|\s*$/g,"");
}

//mostra o div
function ShowDiv(divid){
	el = document.getElementById(divid);
	el.style.display = '';
}

//esconde o div
function HideDiv(divid){
	el = document.getElementById(divid);
	el.style.display = 'none';
}


/* MANTEM O DIV 'LOADING' SEMPRE VISIVEL NO TOPO DA PAGINA:*/
function JSFX_FloatTopLeft(){
	var startX = 10, startY = 10;
	var ns = (navigator.appName.indexOf("Netscape") != -1);
	var d = document;
	var px = document.layers ? "" : "px";
	function ml(id){
		var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
		if(d.layers)el.style=el;
		el.sP=function(x,y){this.style.left=x+px;this.style.top=y+px;};
		el.x = startX; el.y = startY;
		return el;
	}
	window.stayTopLeft=function(){
		var pY = ns ? pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop :

		document.body.scrollTop;
		ftlObj.y = pY;
		ftlObj.sP(ftlObj.x, ftlObj.y);
		setTimeout("stayTopLeft()", 20);
	}
	ftlObj = ml('ajax_carregando');
	stayTopLeft();
}

