// JavaScript Document
function ajaxInit(){
	try {
		xmlhttp = new XMLHttpRequest();
	} catch(ee) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(E) {
				alert('Este navegador não da suporte a ajax.');
				xmlhttp = false;
			}
		}
	}
	return xmlhttp;
}

//função get para carrecar uma página
function carregaPagina(url, divnome){
	//Exibe o texto carregando no div conteúdo
    var conteudo=document.getElementById(divnome);
    //document.getElementById("divExecutando").style.display = "";
	
	//Abre a url
    var xmlhttp = ajaxInit();
	if (xmlhttp){
		xmlhttp.open("GET", url,true);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	    xmlhttp.onreadystatechange=function(){
        	if (xmlhttp.readyState==4){
            	if(xmlhttp.status==200){ 
		            var texto=xmlhttp.responseText;
					//texto=texto.replace(/\+/g," ");
		            texto=unescape(texto);
		            conteudo.innerHTML=texto;
					ExtraiScript(texto);
					//document.getElementById("divExecutando").style.display = "none";
				}else{
					alert(xmlhttp.statusText);
				}
			}
		}
        xmlhttp.send(null);
	}
}

//função get
function carregaGet(url, divnome){
	//Exibe o texto carregando no div conteúdo
	//document.getElementById("divExecutando").style.display = "";
	
	//Abre a url
    var executaXML = ajaxInit();
	if(executaXML){
		executaXML.open("GET", url, true);
		executaXML.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		executaXML.onreadystatechange=function(){
			if(executaXML.readyState==4){
				if(executaXML.status==200){
					var texto=executaXML.responseText;
					texto=unescape(texto);
					ExtraiScript(texto);
					document.getElementById(divnome).innerHTML=texto;
					//document.getElementById("divExecutando").style.display = "none";
				}else{
					alert(executaXML.statusText);
				}
			}
		}
		executaXML.send(null);
	}
}


//função que extrai o script
function ExtraiScript(texto){
    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;
    }
}

//função post
function post(form, url, divnome){
	xmlhttp = false;
	var formdados = get(form);
	//alert(formdados);
	//exibe o texto cadastrando os dados
	document.getElementById("divExecutando").style.display = "";
	
	//abre a url
	xmlhttp = ajaxInit();
	if(xmlhttp){
		xmlhttp.open("POST", url, true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
		xmlhttp.send(formdados);
		xmlhttp.onreadystatechange=function(){
			if (xmlhttp.readyState==4){
            	if(xmlhttp.status==200){
					var texto=xmlhttp.responseText;
					texto=texto.replace(/\+/g," ");
		            texto=unescape(texto);
		            document.getElementById(divnome).innerHTML=texto;
					document.getElementById("divExecutando").style.display = "none";
					ExtraiScript(texto);
				}else{
					alert(xmlhttp.statusText);
				}
			}
		}
	}
}
function get(form) {
  var getstr = "";
  for (i=0; i<form.elements.length; i++) {
	 if (form.elements[i].tagName == "INPUT") {
		if (form.elements[i].type == "text" || form.elements[i].type == "password" || form.elements[i].type == "hidden") {
		   getstr += form.elements[i].name + "=" + form.elements[i].value + "&";
		}
		if (form.elements[i].type == "checkbox") {
		   if (form.elements[i].checked) {
			  getstr += form.elements[i].name + "=" + form.elements[i].value + "&";
		   } else {
			  getstr += form.elements[i].name + "=&";
		   }
		}
		if (form.elements[i].type == "radio") {
		   if (form.elements[i].checked) {
			  getstr += form.elements[i].name + "=" + form.elements[i].value + "&";
		   }
		}
	 }   
	 if (form.elements[i].tagName == "SELECT") {
		var sel = form.elements[i];
		getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
	 }
	 if (form.elements[i].tagName == "TEXTAREA") {
		getstr += form.elements[i].name + "=" + form.elements[i].value + "&";
	 }
  }
  return getstr;
}