/*
XS AJAX Framework v1.0
Desenvolvido por TruXSoft - Design e Tecnologia
www.truxsoft.com
este framework pode ser usado livremente desde que mantida a versão e o crédito acima
*/
/*########## CRIA UM OBJETO COMUM PARA SER USADO PELO XS AJAX FRAMEWORK ##########*/
var obj_xmlhttp;
obj_xmlhttp = false;
// testa para ver se o XMLHTTP é um objeto do navegador (Mozilla e Safari)
if(window.XMLHttpRequest) {
try {
obj_xmlhttp = new XMLHttpRequest();
} catch(e) {
obj_xmlhttp = false;
}
// testa para ver se o XMLHTTP é criado por ActiveX (IE)
} else if(window.ActiveXObject) {
try {
obj_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
obj_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
obj_xmlhttp = false;
}
}
}
/*^^^^^^^^^^^^^ FIM DA CRIAÇÃO DO XS AJAX FRAMEWORK ^^^^^^^^^^^^^*/


/*############ PARTE REFERENTE AO CONTEÚDO CENTRAL ############*/
function load_content(url, alvo, act) {
/* significado dos parâmetros desta função
url: a página que será requisitada
alvo: o elemento indicado por um ID onde será exibido o conteúdo carregado (pode ser um div, iframe)
act: indica se o conteúdo principal será atualizado ou não. Isso evita que a página volte ao início quando sofre um reload
*/

if(obj_xmlhttp) {
/* corrige a codificação do tipo urlencode */
url = unescape(url);

/* requisita a página passada pelo parâmetro */
obj_xmlhttp.open("POST", url, true);

/* testa se o navegador aceita cookies e se sim cria um cookie que armazena a página requisitada */
if(document.cookie){
/* invoca a função que cria o cookie */	
cria_cookie(url);
}else{
alert("É necessário ativar os cookies para navegar neste site.");	
}

/* informa o div que recebe o conteúdo */
var target = document.getElementById(alvo);

obj_xmlhttp.onreadystatechange = function() 
{ 
if(obj_xmlhttp.readyState == 1) { // Quando estiver carregando exibe o div de carregando 
target.innerHTML = "<img src='imagens/load_content.gif' />"; 
} 
if(obj_xmlhttp.readyState == 4) { // Quando estiver tudo pronto. 
if(obj_xmlhttp.status == 200) { 
var resposta = obj_xmlhttp.responseText; // Coloca o retornado pelo obj_xmlhttp nessa variável 

if(act == "nullify"){
target.innerHTML = "";
}
target.innerHTML = resposta;

/* invoca a função que atualiza o histórico */
historico("your_history.asp", "your_history");

} else { 
target.innerHTML = "<font color='#CC0000'>Erro: não foi possível carregar este conteúdo.</font><p>Aguarde, você será redirecionado para a página princial...";
setTimeout('load_content("main.asp", "core_content", "nullify")', 3000)
} 
} 
}

obj_xmlhttp.send("");
}
}

/*^^^^^^^^^^^^^ FIM DO CONTEÚDO CENTRAL ^^^^^^^^^^^^^*/


/*########## PARTE PARA MANIPULAR FORMULÁRIOS MUITO EXTENSOS ##########*/

/* função que cria uma querystring com os dados do formulário para serem
enviados por método POST posteriormente pelo XS AJAX Framework 
Os parâmteros são:
form: o nome do formulário que enviará os dados */
function cria_querystring(form){
query_string = "";
var frm = document.getElementById(form); // cria uma variável para guardar o nome do formulário
var qtd_elementos =  frm.elements.length; // conta quantos elementos existem no formulário
for(var i = 0; i < qtd_elementos; i++) { // cria um loop coletando o valor de cada elemento e cria a querystring
if(i < qtd_elementos-1) {
query_string += frm.elements[i].name + "=" + escape(frm.elements[i].value) + "&";
} else {
query_string += frm.elements[i].name + "=" + escape(frm.elements[i].value);
}
}
}

/* função para enviar a querystring criada a partir de um formulário */
function envia_form(url, alvo) {
/* significado dos parâmetros desta função
url: a página que será requisitada
alvo: o elemento indicado por um ID onde será exibido o conteúdo carregado (pode ser um div, iframe)
*/
if(obj_xmlhttp) {
/* corrige a codificação do tipo urlencode */
url = unescape(url);

/* requisita a página passada pelo parâmetro */
obj_xmlhttp.open("POST", url, true);

/* informa o tipo de conteúdo a ser enviado */
obj_xmlhttp.setRequestHeader("content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");

/* informa o div que recebe o conteúdo */
var target = document.getElementById(alvo);

obj_xmlhttp.onreadystatechange = function() 
{ 
if(obj_xmlhttp.readyState == 1) { // Quando estiver carregando exibe o div de carregando 

target.style.display = "block";

} 
if(obj_xmlhttp.readyState == 4) { // Quando estiver tudo pronto. 
if(obj_xmlhttp.status == 200) { 
var resposta = obj_xmlhttp.responseText; // Coloca o retornado pelo obj_xmlhttp nessa variável 

target.style.display = "none";

} else { 
target.style.display = "none";
alert("Não foi possível manipular os dados...");
} 
} 
}

obj_xmlhttp.send(query_string);
}
}

/*^^^^^^^^^^^^^ FIM DA PARTE DE MANIPULAÇÃO DE FORMULÁRIOS EXTENSOS ^^^^^^^^^^^^^*/


/*############ PARTE REFERENTE AO HISTÓRICO DE ARTIGOS ############*/
function historico(h_url, h_target){

if(obj_xmlhttp) {

/* requisita a página passada pelo parâmetro */
obj_xmlhttp.open("POST", h_url, true);

/* informa o div que recebe o conteúdo */
var h_alvo = document.getElementById(h_target);

obj_xmlhttp.onreadystatechange = function() 
{ 
if(obj_xmlhttp.readyState == 4) { // Quando estiver tudo pronto. 
if(obj_xmlhttp.status == 200) { 
var h_resposta = obj_xmlhttp.responseText; // Coloca o retornado pelo obj_xmlhttp nessa variável 

h_alvo.innerHTML = "";
h_alvo.innerHTML = h_resposta;

}
} 
}

obj_xmlhttp.send("");
}

}
/*^^^^^^^^^^^^^ FIM DO HISTÓRICO DE ARTIGOS ^^^^^^^^^^^^^*/


/*############ FUNÇÃO PARA CRIAR O COOKIE QUE GUARDA O ENDEREÇO DA PÁGINA ATUAL ############*/

function cria_cookie(valor){
document.cookie = "pagina=" + escape(valor);
}

/*^^^^^^^^^^^^^ FIM DA FUNÇÃO PARA CRIAR O COOKIE QUE GUARDA O ENDEREÇO DA PÁGINA ATUAL ^^^^^^^^^^^^^*/


/*############ FUNÇÃO GERAL PARA COLETAR O VALOR DE COOKIES ############*/

function pega_cookie(nome_cookie){
var valor_cookie = null;
var pos_nome = document.cookie.indexOf(escape(nome_cookie) + '=');
if (pos_nome != -1)
{
var pos_value = pos_nome + (escape(nome_cookie) + '=').length;
var pos_final = document.cookie.indexOf(';', pos_value);
if (pos_final != -1)
{
valor_cookie = unescape(document.cookie.substring(pos_value, pos_final));
}
else
{
valor_cookie = unescape(document.cookie.substring(pos_value));
}
}
return valor_cookie;
}

/*^^^^^^^^^^^^^ FIM DA FUNÇÃO GERAL PARA COLETAR O VALOR DE COOKIES ^^^^^^^^^^^^^*/