function VtAjaxClient()
{
	this.factoryPage = "/ajaxfactory.aspx";
	this.siteErrorPage = "siteError.aspx";
	
	var myVars = new Array();
	myVars[0] = new Array();
	myVars[1] = new Array();
	
	this.theVars = myVars;
	
	this.AddVar = function(name, value)
	{
		myVars[0][myVars[0].length] = name;
		myVars[1][myVars[1].length] = value;
	};
	
	this.DoAjaxPostBack = __doAjaxPostBack;
	this.DoAjaxPostBackIFrame = __doAjaxPostBackIFrame;
	this.ResetVars = __ResetVars;
}

function __ResetVars()
{
	for(var i=0;i!=this.theVars[0].length;++i)
	{
		this.theVars[0][i] = null;
		this.theVars[1][i] = null;
	}
}

function __doAjaxPostBack(controlPath, controlMethod , idContainer)
{	
	var container = document.getElementById(idContainer);
	
	var xmlHttp = createXMLHttpRequest();
	xmlHttp.open("post", this.factoryPage, true);
	xmlHttp.setRequestHeader('Content-Type',  "application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			if(xmlHttp.status == 200)
			{
				var strResp = xmlHttp.responseText;
				
				//alert(strResp);
				
				// Registar os scripts...
				var startScriptArr = strResp.split("<script");
				for(var i=0;i!=startScriptArr.length;++i)
				{
					var endScriptArr = startScriptArr[i].split("<\/script>");
					if(endScriptArr.length>0 && endScriptArr.length==2)
					{
						var script = document.createElement('script');
						script.type = 'text/javascript';
						script.text = endScriptArr[0].slice(endScriptArr[0].indexOf(">")+1, endScriptArr[0].length);
						
						var head;
						if(document.all)
							head = document.all.tags("head");
						else
							head = document.getElementsByTagName("head");
						head[0].appendChild(script);
					}
				}
				if(container != null)
					container.innerHTML = strResp;
				else
					return strResp;		
			}
			else
			{
				//alert(xmlHttp.responseText);
				document.body.innerHTML += "<div>"+xmlHttp.responseText+"</div>";
				//window.location = this.siteErrorPage;
				//window.location = "siteError.aspx";
			}
		}
	};
	var postString = "__CONTROLPATH="+controlPath+"&__CONTROLMETHOD="+controlMethod;
	for(var i=0;i!=this.theVars[0].length;++i)
	{
		postString += "&"+this.theVars[0][i]+"="+this.theVars[1][i];
	}
	xmlHttp.send(postString);
}

function __doAjaxPostBackIFrame(controlPath, controlMethod , idContainer)
{	
	//alert("Pedido Ajax!");
	
	var container = document.getElementById(idContainer);
	
	var xmlHttp = createXMLHttpRequest();
	xmlHttp.open("post", this.factoryPage, true);
	xmlHttp.setRequestHeader('Content-Type',  "application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			//alert("xmlHttp.readyState="+xmlHttp.readyState);
			//alert("xmlHttp.status="+xmlHttp.status);
			if(xmlHttp.status == 200)
			{
				var strResp = xmlHttp.responseText;
				
				// Registar os scripts...
				var startScriptArr = strResp.split("<script");
				for(var i=0;i!=startScriptArr.length;++i)
				{
					var endScriptArr = startScriptArr[i].split("<\/script>");
					if(endScriptArr.length>0 && endScriptArr.length==2)
					{
						var script = document.createElement('script');
						script.type = 'text/javascript';
						script.text = endScriptArr[0].slice(endScriptArr[0].indexOf(">")+1, endScriptArr[0].length);
						
						var head;
						if(document.all)
							head = document.all.tags("head");
						else
							head = document.getElementsByTagName("head");
						head[0].appendChild(script);
					}
				}
				if(container != null)
				{
					container.innerHTML = strResp;
					var infoToReturn = document.getElementById("divInfoToReturn");
					parent.displayAjaxInfo(infoToReturn.innerHTML);
				}
			}
			else
			{
				container.innerHTML = xmlHttp.responseText;
				//window.location = "siteError.aspx";
			}
		}
	};
	var postString = "__CONTROLPATH="+controlPath+"&__CONTROLMETHOD="+controlMethod;
	for(var i=0;i!=this.theVars[0].length;++i)
	{
		postString += "&"+this.theVars[0][i]+"="+this.theVars[1][i];
	}
	//alert(postString);
	xmlHttp.send(postString);
}

function createXMLHttpRequest() {
	if(typeof XMLHttpRequest != "undefined")
	{
		return new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp, Microsoft.XMLHttp"];
		for(var i=0;i!=aVersions.length;++i)
		{
			try
			{
				var oXmlHttp = new ActiveXObject(aVersions[i]);
				return oXmlHttp;
			}
			catch(oError){}
		}
		alert("O seu browser não suporta AJAX");
	}
}


/* Implementação Sandro Martins */

var xmlhttp
var ajaxPath = "/AjaxPage/AjaxPage.aspx";

function GetResult(url, fcStatus)				
{
	
	// code for Mozilla, etc.
	if (window.XMLHttpRequest)
	{
		xmlhttp=new XMLHttpRequest()
		xmlhttp.onreadystatechange=xmlhttpChangeBarraSapo;
		xmlhttp.open("GET",url,true)
		xmlhttp.send(null)
	}
	// code for IE
	else if (window.ActiveXObject)
	{
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
		if (xmlhttp)
		{
		xmlhttp.onreadystatechange=xmlhttpChangeBarraSapo;
		xmlhttp.open("GET",url,true)
		xmlhttp.send()
		}
	}
}

function xmlhttpChangeBarraSapo()
{
alert('change1');
	// if xmlhttp shows "loaded"
	if (xmlhttp.readyState==4)
	{
	// if "OK"
	if (xmlhttp.status==200)
	{				
alert('change2');
		document.getElementById("barra_sapo").innerHTML = xmlhttp.responseText;
alert(xmlhttp.responseText);
	}
	else
	{
		alert("Ocorreu um erro barra sapo.");
	}
}
}
		
function __getData(url, div)	
{    
	//alert("__getData("+url+", "+div+" )");
	// Code for Mozilla, etc.	
	url = String(url);
	if(url.indexOf('pubserver=1') == -1)
	    url = ajaxPath+"?path="+url;
	
	if(String(window.location).indexOf("refreshcache=1") != -1)
	    url += "&refreshcache=1";
	
	if(String(window.location).indexOf("usecache=0") != -1)
	    url += "&usecache=0";
	    
	if (window.XMLHttpRequest)
	{
		var request = new XMLHttpRequest();
		
		request.onreadystatechange = function(){XmlHttpChange(request, div)};
		request.open("GET", url, true);
		request.send(null);
	}
	// Code for IE.
	else if (window.ActiveXObject)
	{
		var request = new ActiveXObject("Microsoft.XMLHTTP");
		
		if (request)
		{
			request.onreadystatechange = function(){XmlHttpChange(request, div)};
			request.open("GET", url, true);
			request.send();
		}
	}
}

function XmlHttpChange(request, div)
{
	// If the request has been loaded.
	if (request.readyState == 4)
	{
		// If the request status is "OK".
		if (request.status == 200)
		{
		    // Registar os scripts...
			var startScriptArr = request.responseText.split("<script");
			for (var i=0; i!=startScriptArr.length; ++i)
			{
				var endScriptArr = startScriptArr[i].split("<\/script>");
				if (endScriptArr.length>0 && endScriptArr.length==2)
				{
					var script = document.createElement('script');
					script.type = 'text/javascript';
					script.text = endScriptArr[0].slice(endScriptArr[0].indexOf(">")+1, endScriptArr[0].length);

					var head;
					if(document.all)
						head = document.all.tags("head");
					else
						head = document.getElementsByTagName("head");
					head[0].appendChild(script);
				}
			}
			var strResp = request.responseText;
			var targetElem = document.getElementById(div);
			if(targetElem != null)
			{
				targetElem.innerHTML = strResp;
			}
		}
		else
		{
			//alert("Ocorreu um erro");
			document.getElementById(div).innerHTML = "<div><h1>Ajax Error</h1></div><div>"+request.responseText+"</div>";
		}
	}
}



