/********************/
// JAVASCRIPT EM AJAX
/*******************/
function extraiScript(texto){
 var ini = 0;
 while (ini!=-1){
  ini = texto.indexOf('<script', ini);
  if (ini >=0){
   ini = texto.indexOf('>', ini) + 1;
   var fim = texto.indexOf('</script>', ini);
   codigo = texto.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 PRA LINK
/***************/
function AjaxLink(caminho, div, loading){
	ajax.open ('GET',caminho)
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	// TRATAS OS ESTADOS
	ajax.onreadystatechange = function(){
	 if (ajax.readyState == 1){
		 if(document.getElementById(div) == null){
			 window.location.href = "default.asp"
			}
			else{
				if(loading != 0){
					document.getElementById(div).innerHTML = '<img src="imgs/icones/carregando.gif" title="Carregando..."/> <font class="font_vermelha_11">Carregando...</font>';
				}
				document.getElementById(div).className = 'loading';
		 }
		}
	
	 if (ajax.readyState == 4 ){
			if(document.getElementById(div) == null){
			 window.location.href = "default.asp"
			}
			else{
				if (ajax.status == 200){
	    texto = unescape(ajax.responseText);
	    document.getElementById(div).innerHTML = texto;
	    extraiScript(texto);
				}else{
					document.getElementById(div).innerHTML = "<img src=imgs/icones/esclamacao.gif align=absmiddle><font class=font_vermelha_11> "+ajax.statusText;
				}	
		 }
	 }
	}
	ajax.send(null);
}
/********************/
// FIM: AJAX PRA LINK
/********************/


/***************/
// AJAX PRA 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,nform){
 strRequestString = getFormValues(nform)
 
	ajax.open ('POST',acao)
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	// TRATAS OS ESTADOS
	ajax.onreadystatechange = function(){
	 if (ajax.readyState == 1){
			document.getElementById(retorno).innerHTML = '<img src="imgs/icones/carregando.gif" title="Carregando..."/> <font class="font_vermelha_11">Carregando...</font>';
			document.getElementById(retorno).className = 'loading';
	 }
	
	 if (ajax.readyState == 4 ){
			if (ajax.status == 200){
    texto = unescape(ajax.responseText);
    document.getElementById(retorno).innerHTML = texto;
    extraiScript(texto);
			}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
/*********************/


