/*************************************************************************************************/
// JAVASCRIPT EM AJAX
/*************************************************************************************************/
function extraiScript(conteudo){
 var ini = 0;
 while (ini!=-1){
  ini = conteudo.indexOf('<script', ini);
  if (ini >=0){
   ini = conteudo.indexOf('>', ini) + 1;
   var fim = conteudo.indexOf('</script>', ini);
   codigo = conteudo.substring(ini,fim);
   novo = document.createElement("script")
   novo.text = codigo;
   document.body.appendChild(novo);
  }
 }
}
/*************************************************************************************************/
// FIM: JAVASCRIPT EM AJAX
/*************************************************************************************************/


/*************************************************************************************************/
// AJAX
/*************************************************************************************************/
// Trata as exceções até conseguir cria o objeto ajax	
try{
	// Tenta criar objeto ajax para os browsers mais recentes como Firefox, e Opera
	ajax = new XMLHttpRequest(); // ajax p firefox opera e navegadores recentes
}catch(ee){

	try{
		// Tenta criar ajax para algumas versões do Microsoft Internet Explorer
		ajax = new ActiveXObject("Msxml2.XMLHTTP"); // IE
	}catch(e){
	
		try{
			// Tenta criar ajax para algumas versões do Microsoft Internet Explorer
			ajax = new ActiveXObject("Microsoft.XMLHTTP"); // IE

		}catch(E){
			// Browser utilizado não aceita ajax, o objeto não é criado
			ajax = false;
		}
	}	
}
/*************************************************************************************************/
// FIM: AJAX
/*************************************************************************************************/


/*************************************************************************************************/
// AJAX PARA LINK
/*************************************************************************************************/
function Ajax(caminho, div){
	ajax.open ('GET',caminho)
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	// TRATAS OS ESTADOS
	ajax.onreadystatechange = function(){
	 if (ajax.readyState == 1){
			document.getElementById(div).className = 'loading';
	 }
	
	 if (ajax.readyState == 4 ){
			if (ajax.status == 200){
    conteudo = unescape(ajax.responseText);
    document.getElementById(div).innerHTML = conteudo;
    extraiScript(conteudo);
			}else{
				document.getElementById(div).innerHTML = "<img src=imgs/geral/esclamacao.gif align=absmiddle> "+ajax.statusText;
			}	
	 }
	}
	ajax.send(null);
}
/*************************************************************************************************/
// FIM: AJAX PARA LINK
/*************************************************************************************************/


/*************************************************************************************************/
// AJAX PARA FORM
/*************************************************************************************************/
function url_encode(str) {  
 var hex_chars = "0123456789ABCDEF";  
 var noEncode = /^([a-zA-Z0-9\_\-\.])$/;  
 var n, strCode, hex1, hex2, strEncode = "";  

 for(n = 0; n < str.length; n++) {  
  if(noEncode.test(str.charAt(n))) {  
   strEncode += str.charAt(n);  
  }
		else{  
   strCode = str.charCodeAt(n);  
   hex1 = hex_chars.charAt(Math.floor(strCode / 16));  
   hex2 = hex_chars.charAt(strCode % 16);  
   strEncode += "%" + (hex1 + hex2);  
  }  
 }  
 return strEncode;
}  

function url_decode(str) {  
 var n, strCode, strDecode = "";  
 for (n = 0; n < str.length; n++) {  
  if (str.charAt(n) == "%") {  
   strCode = str.charAt(n + 1) + str.charAt(n + 2);  
   strDecode += String.fromCharCode(parseInt(strCode, 16));  
   n += 2;  
  }
		else{  
   strDecode += str.charAt(n);  
  }  
 }  
 return strDecode;  
} 

function getFormValues(i) {
 var str = "";
 var formObject = document.forms[i];
            
 for(var n = 0; n < formObject.elements.length; n++) {
  if(formObject.elements[n].type == "radio" || formObject.elements[n].type == "checkbox") {
   if(!str) {
    if(formObject.elements[n].checked == true)
     str = formObject.elements[n].name + '=' + url_encode(formObject.elements[n].value);
    else
     str = str;
    } 
   else {
    if(formObject.elements[n].checked == true)
     str = str + '&' + formObject.elements[n].name + '=' + url_encode(formObject.elements[n].value);
    else
     str = str;
    }
   } 
  else if(formObject.elements[n].type == "button")
   str = str;
  else {
   if(!str)
    str = formObject.elements[n].name + '=' + url_encode(formObject.elements[n].value);
   else
    str = str + '&' + formObject.elements[n].name + '=' + url_encode(formObject.elements[n].value);
   }
  }
 return (str);
}

function Ajax2(formulario,acao,retorno){
 strRequestString = getFormValues(0)
 
	ajax.open ('POST',acao)
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	ajax.onreadystatechange = function(){
	 if (ajax.readyState == 1){
			document.getElementById(retorno).innerHTML = '<img src="imgs/icones/ico_carregando.gif" title="Carregando..."/> <font class="font_vermelha_11">Carregando...</font>';
			document.getElementById(retorno).className = 'loading';
	 }
	
	 if (ajax.readyState == 4 ){
			if (ajax.status == 200){
    conteudo = unescape(ajax.responseText);
    document.getElementById(retorno).innerHTML = url_decode(conteudo);
    extraiScript(conteudo);
			}else{
				document.getElementById(retorno).innerHTML = "<img src=imgs/icones/esclamacao.gif align=absmiddle><font class=font_vermelha_11> " + ajax.statusText;
			}	
	 }
	}
 ajax.send(strRequestString);
}
/*************************************************************************************************/
// FIM: AJAX PARA FORM
/*************************************************************************************************/

