
// funcao que carrega uma pagina dentro de um objeto qualquer
//Executa a próxima conexão da fila
function extraiScript(texto)
{
	//desenvolvido por Skywalker.to, Micox e Pita.
	//http://forum.imasters.uol.com.br/index.php?showtopic=165277
	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;
	}
}

function carrega(url, destino){
	// carrega os dados da pagina da fila
		try { 
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
    try { 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (E) { 
        xmlhttp = false; 
    } 
} 

if  (!xmlhttp && typeof  XMLHttpRequest != 'undefined' ) { 
    try  { 
        xmlhttp = new  XMLHttpRequest(); 
    } catch  (e) { 
        xmlhttp = false ; 
    } 
} 

		document.getElementById(destino).innerHTML="<div style='width:651px;padding-top:200px;height:100px'><center><img src='images/ajaxLoader.gif' /></center></div>";

        // carrega a pagina
        xmlhttp.open("GET", url, true);
        
        // headers

        // ao completar o carregamento
        xmlhttp.onreadystatechange=function() {
                if (xmlhttp.readyState==4){
                        // coloca o valor no objeto requisitado
                        texto=unescape(xmlhttp.responseText.replace(/\+/g," "));
                        document.getElementById(destino).innerHTML=texto;
						extraiScript(texto);
                }
        }
        
        // executa
        xmlhttp.send(url);
}
function carregaFoto(url, destino){
	// carrega os dados da pagina da fila
		try { 
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} catch (e) { 
    try { 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (E) { 
        xmlhttp = false; 
    } 
} 

if  (!xmlhttp && typeof  XMLHttpRequest != 'undefined' ) { 
    try  { 
        xmlhttp = new  XMLHttpRequest(); 
    } catch  (e) { 
        xmlhttp = false ; 
    } 
} 

		document.getElementById(destino).innerHTML="Carregando...";

        // carrega a pagina
        xmlhttp.open("GET", url, true);
        
        // headers

        // ao completar o carregamento
        xmlhttp.onreadystatechange=function() {
                if (xmlhttp.readyState==4){
                        // coloca o valor no objeto requisitado
                        texto=unescape(xmlhttp.responseText.replace(/\+/g," "));
                        document.getElementById(destino).innerHTML=texto;
                }
        }
        
        // executa
        xmlhttp.send(url);
}

// função que le todos os campos de um form e envia!
function enviaForm(frmNome, url, destino){
        // Captura o form
        f = document.getElementById(frmNome);
        // inicializa nova URL
        var query=url;
        //Percorre elementos do formulario
        for (i=0;i<f.elements.length;i++){
                // se for a primeira variavel adiciona o "?" senao adiciona "&"
                query += i==0 ? '?' : '&';
                // concatena a variavel na query
                query += f.elements[i].name + '=' + f.elements[i].value;
        }
        // envia o formulario
        carrega(query, destino);
}