// Utilizado para evitar de digitar: document.getElementById toda hora, tornando o processo mais prático

function gEi(ID)
{
	return document.getElementById(ID);
}

// Utilizado para evitar de digitar: document.getElementsByTagName toda hora, tornando o processo mais prático

function gEn(tag)
{
	return document.getElementsByTagName(tag);
}

// Esta função instancia o objeto XMLHttpRequest

function openAjax()
{
	var ajax;
	try
	{
		ajax = new XMLHttpRequest();
	}

	catch(ee)
	{
		try
		{
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}

		catch(e)
		{
			try
			{
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}

			catch(E)
			{
				ajax = false;
			}
		}
	}

	return ajax;
}



// ------- Cria a string a ser enviada, formato campo1=valor1&campo2=valor2... -------

function criaQueryString(nfr)
{
	var s = new String;
	s = '';
	var frm = gEi(nfr);
	var numElementos = frm.elements.length;
	for(var a = 0; a < numElementos; a++)
	{
		if(frm.elements[a].getAttribute("class") != "butbuscar" && frm.elements[a].getAttribute("class") != "but" && frm.elements[a].type != "button" && frm.elements[a].type != "submit" && frm.elements[a].type != "reset" && frm.elements[a].type != "radio" && frm.elements[a].type != "checkbox" && frm.elements[a].value != "")
		{
			if(frm.elements[a].tagName == "select")
			{
				s += frm.elements[a].name + "=" + encodeURIComponent(frm.elements[a].item(frm.elements[a].selectedIndex).value) + "&";
			}
			else
			{
				s += frm.elements[a].name + "=" + encodeURIComponent(frm.elements[a].value) + "&";
			}
		}
		else
		{
			if(frm.elements[a].type == "radio" && frm.elements[a].checked)
			{
				s += frm.elements[a].name + "=" + encodeURIComponent(frm.elements[a].value) + "&";
			}
			else
				if(frm.elements[a].type == "checkbox" && frm.elements[a].checked)
				{
					s += frm.elements[a].name + "=" + encodeURIComponent(frm.elements[a].value) + "&";
				}
		}
	}

	s = s.substr(0, s.length - 1);
	return s;
}


function AtivarbtnNL()
{
	// Se não houver os botões aborta a função
	if(!gEi('btnNL'))

		return false;
	gEi('btnNL').onclick = function()
	{
        // Valida os dados informado, a função retornará false se houver erro, e true se estiver tudo ok.
		var form = gEi('frmcad');
        var params = "?" + criaQueryString('frmcad');
        var dataPost = form.action + params;
		var action = form.action;
        var ctipe= 'application/x-www-form-urlencoded;charset=iso-8859-1';
			var ajax = openAjax();
			ajax.open('GET', dataPost, true);
			ajax.setRequestHeader('Content-Type', ctipe);
			ajax.setRequestHeader("encoding", "iso-8859-1");
			ajax.setRequestHeader("Content-length", params.length);
			ajax.onreadystatechange = function()
			{
				if(ajax.readyState == 4)
				{
					if(ajax.status == 200)
					{
 						// Atualiza o relatório
						getConteudo(dataPost, 'newl');
					}	// status ->200
				}	// readyState->4
			};	// ajax->onreadystatechange
			ajax.send(null);
		// Evita que o form seja enviado e dê o reload na página
		return false;
	}
}

 function loading(opt, tagN, imag, larg, txt, cor)
{
	if(cor == null)
	{
		var c = '#000000';
	}
	else
	{
		var c = cor;
	}

	// A tag que receberá a img de loading
	var refer = gEi(tagN);
	// O tamanho da referida tag
	var referHeight = refer.offsetHeight;
	if(opt == true)
	{
		//limpa o conteudo
		refer.innerHTML = '';
		// Dizemos que os elementos dentro dela será alinhado ao centro
		refer.style.textAlign = 'center';
		// Criamos uma imagem, img.
		var img = document.createElement('img');
		// Informamos o caminho da img
		img.setAttribute('src', imag);
		// Setamos um atributo ID na img criada
		img.setAttribute('id', 'loading');
		// Definimos seu tamanho
		img.setAttribute('width', larg);
		// Dizemos que o margin-top será um sexto do tamanho da div
		img.style.marginTop = (referHeight / 6) + 'px';
		// Evita que seja criada duas ou mais img de loading
		if(!gEi('loading'))
		{
			// Insere a img na tag informada na variável refer
			refer.insertBefore(img, refer.firstChild);
		}

		if(!gEi('msg'))
		{
			if(txt != '')
			{
				// Criamos um paragrafo
				var p = document.createElement('p');
				var texto = document.createTextNode(txt);
				p.appendChild(texto);
				p.style.color = c;
				p.setAttribute('id', 'msg');
				refer.insertBefore(p, refer.lestChild);
			}
		}
	}
	else
		if(opt == false)
		{
			// Referenciamos a img de login através de seu ID
			var imgLoading = gEi('loading');
			var txtmsg = gEi('msg');
			// Removemos a img de loading
			if(imgLoading)
			{
				imgLoading.parentNode.removeChild(imgLoading);
				if(txtmsg)
				{
					txtmsg.parentNode.removeChild(txtmsg);
				}

				// Dizemos que os elementos dentro dela será alinhado a esquerda
			}

			refer.style.textAlign = 'left';
		}
}

function getConteudo(url, onde)
{
	// Inicia o Ajax, através da variável Ajax
	var ajax = openAjax();
	// A tag bgBody conterá o formulário de cadastro
	var recipiente = gEi(onde);
	// Informamos o método e a página que será requisitada
	ajax.open('GET', url, true);
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 1)
		{
			// Cria o efeito de loading
			loading(true, onde, 'imagens/loading.gif', '32', 'Aguarde um momento..', '#800000');
		}	// if->readyState->1
		if(ajax.readyState == 4)
		{
			if(ajax.status == 200)
			{
				// Remove o efeito de loading
				loading(false, onde, '', '', '', '');
				// Pega o conteúdo - HTML - da página requisitada e coloca dentra da div definida na variável recipiente
				var txt = ajax.responseText;
				txt = txt.replace(/\+/g, " ");
				texto = unescape(txt);
				recipiente.innerHTML = texto;
         	}	// if-status->200
		}	// if->readyState->4
	};	// ajax->onreadystatechange
	// Envia a requisição
	ajax.send(null);
	// Evita o reload da página
	return false;
}

function loadFunctions()
{
   AtivarbtnNL();
}

window.onload = loadFunctions;
