/***************************************************************
 * AJAX
 ****************************************************************/

/**
 * Abre conexÃ£o ajax
 * @return Object
 */
function ReadData(Params, SelectObj, DefaultValue)
{
	//CRIA OBJETO
	if (window.XMLHttpRequest){
	    var XMLObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
	    var XMLObj = new ActiveXObject("Microsoft.XMLHTTP");
	}

	//PERSONALIZACAO DE EVENTOS
	XMLObj.onreadystatechange = function () {
		switch(XMLObj.readyState){
			case 1:
				//EXIBE STATUS CARREGANDO
				SelectObj.disabled = true;
				SelectObj.options.length = 0;
				SelectObj.options[0] = new Option("Carregando...", "");

				break;
			case 4:
				//INICIA A MONTAGEM DO SELECT
				SelectObj.options.length = 0;
				SelectObj.options[0] = new Option("Selecione", "");

				//XML PARSER
				var xmlDoc = XMLObj.responseXML;
				var Row = xmlDoc.getElementsByTagName('linha');

				//CRIA OPTION PARA O SELECT
				for(i=0; i < Row.length; i++){
					SelectObj.options[SelectObj.options.length] = new Option(
															Row[i].getElementsByTagName('nome').item(0).firstChild.data,
															Row[i].getElementsByTagName('codigo').item(0).firstChild.data
															);
				}
				//OPTION SELECIONADO POR PADRAO
				if (DefaultValue == undefined) DefaultValue = "";
				SelectObj.value = DefaultValue;
				SelectObj.disabled = false;

				break;
		}
	};

	//CARREGA XML
	XMLObj.open("GET", "/ajax/readData.php?"+Params, true);
	XMLObj.send(null);
}


function CreateNew()
{
	var http_request;
	//CRIA OBJETO
	if (window.XMLHttpRequest){
	    http_request = new XMLHttpRequest();
	}else if(window.ActiveXObject){
	    http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}

	return http_request;
}

/**
 * Carrega dados da pÃ¡gina solicitada
 * @param Source - pÃ¡gina solicitada
 * @param returnFunction - nome da funÃ§Ã£o que vai receber o retorno
 * @return void
 */
function GetContent(Source, returnFunction)
{
	//CRIA OBJETO
	var http_request = CreateNew();


	//LEITURA DE RETORNO
	http_request.onreadystatechange = function(){
		if(http_request.readyState == 4){
			returnFunction(url_decode(http_request.responseText));
		}
	};

	http_request.open("GET", Source, true);
	http_request.send(null);
}

/**
 * Carrega dados da pÃ¡gina solicitada
 * @param Source - pÃ¡gina solicitada
 * @param returnFunction - nome da funÃ§Ã£o que vai receber o retorno
 * @return void
 */
function GetContent2(Source)
{
	//CRIA OBJETO
	var http_request = CreateNew();

	http_request.open("GET", Source, false);
	http_request.send(null);

	return unescape(http_request.responseText);
}

/**
 * FunÃ§Ã£o para resolver problemas de acentuaÃ§Ã£o do ajax
 * @param str - string
 * @return String
 */
function url_decode(str) {
    var n, strCode, strDecode = "";

    for (n = 0; n < str.length; n++) {
        if (str.charAt(n) == "%") {
            strCode = str.charAt(n + 1) + str.charAt(n + 2);
            strDecode += String.fromCharCode(parseInt(strCode, 16));
            n += 2;
        } else {
           	strDecode += str.charAt(n);
        }
    }
    return strDecode;
}

function getNome(url)
{
	//CRIA OBJETO
	if (window.XMLHttpRequest){
	    var XMLObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
	    var XMLObj = new ActiveXObject("Microsoft.XMLHTTP");
	}

	//PERSONALIZACAO DE EVENTOS
	XMLObj.onreadystatechange = function () {
		switch(XMLObj.readyState){
			case 1:
				//EXIBE STATUS CARREGANDO
				SelectObj.disabled = true;
				SelectObj.options.length = 0;
				SelectObj.options[0] = new Option("Carregando...", "");

				break;
			case 4:
				//INICIA A MONTAGEM DO SELECT
				SelectObj.options.length = 0;
				SelectObj.options[0] = new Option("Selecione", "");

				//XML PARSER
				var xmlDoc = XMLObj.responseXML;
				var Row = xmlDoc.getElementsByTagName('linha');

				//CRIA OPTION PARA O SELECT
				for(i=0; i < Row.length; i++){
					SelectObj.options[SelectObj.options.length] = new Option(
															Row[i].getElementsByTagName('nome').item(0).firstChild.data,
															Row[i].getElementsByTagName('codigo').item(0).firstChild.data
															);
				}
				//OPTION SELECIONADO POR PADRAO
				if (DefaultValue == undefined) DefaultValue = "";
				SelectObj.value = DefaultValue;
				SelectObj.disabled = false;

				break;
		}
	};

	//CARREGA XML
	XMLObj.open("GET", "/ajax/readData.php?"+Params, true);
	XMLObj.send(null);
}

/****************************************************************
 * CHAT - WCMS
 ****************************************************************/

function NewXMLHTTP() {
	try {
	    xmlhttp = new XMLHttpRequest();
	} catch(ee) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(E) {
				xmlhttp = false;
			}
		}
	}
	return xmlhttp;
}

function getNomeAluno(url)
{
	var xmlHttp = NewXMLHTTP();
	var valor = document.getElementById('rgm'+url).value;
	
	if(valor != '')
	{
		xmlHttp.open("GET", "ajax.php/" + url + '/' + valor, true);
	
		xmlHttp.onreadystatechange = function() {
			switch (xmlHttp.readyState) {
				case 4:
					// Carrega XML p/ xmlDoc
					var xmlDoc = xmlHttp.responseXML;
	
					// Carrega valores do XML
					var nome = xmlDoc.getElementsByTagName('nome').item(0).firstChild.data;
	
					// Exibe imagem de acordo com o status
					if(nome != '0')
					{
						document.getElementById("nome" +url).innerHTML = nome;
					} else {
						document.getElementById("nome" + url).innerHTML = 'Aluno não disponível.';
						document.getElementById("rgm" + url).value = '';
						document.getElementById("rgm" + url).focus();
					}
									
				break;
			}
		};
		
		xmlHttp.send(null);
	}
}

function getNomeAlunoCongreco(rgm,nome)
{
	var xmlHttp = NewXMLHTTP();
	var valor = document.getElementById(rgm).value;
	
	if(valor != '')
	{
		xmlHttp.open("GET", "ajax.php/" + valor, true);
	
		xmlHttp.onreadystatechange = function()
		{
			switch (xmlHttp.readyState)
			{
				case 4:
					// Carrega XML p/ xmlDoc
					var xmlDoc = xmlHttp.responseXML;
	
					// Carrega valores do XML
					var getnome = xmlDoc.getElementsByTagName('nome').item(0).firstChild.data;
	
					// Exibe imagem de acordo com o status
					if(getnome != '0')
					{
						document.getElementById(nome).value = getnome;
					} else {
						document.getElementById(nome).value = 'rgm não disponível.';
						document.getElementById(rgm).value = '';
						document.getElementById(rgm).focus();
					}					
					break;
			}
		};
		
		xmlHttp.send(null);
	} else {
		if(document.getElementById(nome))
		{
			document.getElementById(nome).value = '';
		}
	}
}

