// JavaScript Document
/*

        FUNCOES GERAIS
  
*/

function retornavalor(vetor, name)
{
	var i = 0;
	var aux = null;

	for (i=0;i<vetor.length;i++)
	{
		aux = vetor[i].split("=");
		if (aux[0] == name)//evitando problemas qdo tem um "=" no texto...
		{
			if (aux.length > 2)
			{
				return aux.slice(1).join("=");
			}
			else
			{
				return aux[1];
			}
		}
	}
	return null;
}

function CriaAjax()
{
	var ajax = null;
	
	try
	{
		ajax = new XMLHttpRequest();
	}
	catch (e)
	{
		ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
	}
	
	return ajax;
}

function ExecutaAjax(pathinfo, parametros, naomostraralerta)
{
	var xmlhttp = CriaAjax();

	xmlhttp.open("POST", url + pathinfo, false);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	
	xmlhttp.send(parametros);
	
	var resultado = xmlhttp.responseText.split("\r\n");
	
	if (retornavalor(resultado, "ERRO") != "0")
	{
	  if (!naomostraralerta) alert(retornavalor(resultado, "MSG"));
	  return null;
	}
	else
	{
		return resultado;
	}
}

function ExecutaAjaxAssincrono(pathinfo, parametros, funcaotratadora)
{
	var xmlhttp = CriaAjax();

	xmlhttp.open("POST", url + pathinfo, true);
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	
	
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4)
		{
			var resultado = xmlhttp.responseText.split("\r\n");
			
			if (resultado)
			{
				if (retornavalor(resultado, "ERRO") != "0")
				{
					alert(retornavalor(resultado, "MSG"));
				}
				else
				{
					funcaotratadora(resultado);
				}
			}
			else
			{
				alert("Nenhum dado recebido pelo servidor a tempo");
			}
		}
	}
	xmlhttp.send(parametros);	
}

function fireClickEvent(control)
{
  if (document.all) control.fireEvent("onclick");
  else
  {
    var clickEvent = window.document.createEvent("MouseEvent");
    clickEvent.initEvent("click", false, true);
    control.dispatchEvent(clickEvent);
  }
}

function RetornaElementosComId(pai, ID)
{
  var coll = pai.getElementsByTagName('*');
  var resultado = new Array();
  
  for (var i=0;i<coll.length;i++)
    if (coll[i].id == ID) resultado[resultado.length] = coll[i];
    
  if (resultado.length == 0) return null; else return resultado;
}


///
//
//   ROTINAS DE TRATAMENTO DE COOKIES
//
///

function SetCookie(nome, valor)
{
  var cookie = nome + "=" + escape(valor);
  document.cookie = cookie;
}

function DelCookie(nome)
{
  var cookie = nome + "=vazio; expires=0";
  document.cookie = cookie;
}

function GetCookie(nome)
{
  // cookies are separated by semicolons
  var cookies = document.cookie.split("; ");
  
  var cookie = "";
  var i = 0;
  for (i=0; i < cookies.length; i++)
  {
    cookie = cookies[i].split('=');
    if (cookie[0] == nome) return unescape(cookie[1]);
  }
  // a cookie with the requested name does not exist
  return null;
}
