/*
Classe Ajax melhorada. by Stanzinho > vybSistemas :P
Como usar:
var a = new ajax() //instanciando o objeto ajax.
a.add = 1 // opcional, se usado, o resultado do atualiza sera adicionado a div e não sobreescrevera o que ja estiver escrito nela.
1 = não sobreescreve
0 = sobreescreve > PADRÃO.
a.atualiza('pagina','div','dados') // enviando o comando de atualização.
pagina= pagina que voce vai mostrar.
div= id da div onde ira ser mostrado o resultado.
dados= se no caso for um submit de form, aqui voce coloca os dados a serem enviados pelo metodo POST, ex: &nome=eu&idade=18&sexo=masculino.
*/
function quem(id){
	return document.getElementById(id)
}
function ajax(){
	this.add = 0
	this.atualiza = function(pag,div,dados){
		if (window.XMLHttpRequest) {var obj = new XMLHttpRequest()}
		else if (window.ActiveXObject) {
			try {var obj = new ActiveXObject("Microsoft.XMLHTTP")}
			catch(e) {
				try {var obj = new ActiveXObject("Msxml2.XMLHTTP")}
				catch(e) {var obj = false; alert("Seu navegador não suporta Ajax.")}
			}
		}
		var add = this.add
		if (obj) {
			obj.onreadystatechange = function change(){
				if (obj.readyState == 4) {
					if (obj.status == 200) {
						ExtraiScript(obj.responseText)
						if(div) {
							if(add == 0) document.getElementById(div).innerHTML = obj.responseText
							else if(add == 1) document.getElementById(div).innerHTML += obj.responseText
						}
					} else {
						alert("Houve um problema ao obter os dados:\n" + obj.statusText)
					}
				}
			}
			var met = (dados)?"POST":"GET";
			obj.open(met, pag, true)
			if(dados)
			obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8')
			obj.send(dados)
			this.add = 0
		} else {alert("Ajax não foi carregado.")}
	}
}

function ExtraiScript(texto){
	//desenvolvido por Skywalker.to, Micox e Pita.
	//Não retire para não violar os direitos autorais.
	var ini, pos_src, fim, codigo;
	var objScript = null;
	ini = texto.indexOf('<script', 0)
	while (ini!=-1){
		var objScript = document.createElement("script");
		//Busca se tem algum src a partir do inicio do script
		pos_src = texto.indexOf(' src', ini)
		ini = texto.indexOf('>', ini) + 1;

		//Verifica se este e um bloco de script ou include para um arquivo de scripts
		if (pos_src < ini && pos_src >=0){//Se encontrou um "src" dentro da tag script, esta e um include de um arquivo script
			//Marca como sendo o inicio do nome do arquivo para depois do src
			ini = pos_src + 4;
			//Procura pelo ponto do nome da extencao do arquivo e marca para depois dele
			fim = texto.indexOf('.', ini)+4;
			//Pega o nome do arquivo
			codigo = texto.substring(ini,fim);
			//Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano
			codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
			// Adiciona o arquivo de script ao objeto que sera adicionado ao documento
			objScript.src = codigo;
		}else{//Se nao encontrou um "src" dentro da tag script, esta e um bloco de codigo script
			// Procura o final do script
			fim = texto.indexOf('</script>', ini);
			// Extrai apenas o script
			codigo = texto.substring(ini,fim);
			// Adiciona o bloco de script ao objeto que sera adicionado ao documento
			objScript.text = codigo;
		}

		//Adiciona o script ao documento
		document.body.appendChild(objScript);
		// Procura a proxima tag de <script
		ini = texto.indexOf('<script', fim);

		//Limpa o objeto de script
		objScript = null;
	}
}
