   var http_request = false;
   
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
// FUNÇÃO QUE REALIZA O PROCESSAMENTO AJAX
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//   
   function makePOSTRequest(url, parameters,d,tipo) {
   
		 http_request = false;
		 var div = d;
		 var tipo = tipo;
		 if (tipo == undefined ) 
		 	tipo = 1
			
		 mostra=document.getElementById(div);		 
		 
		  if (window.XMLHttpRequest) { // Mozilla, Safari,...
			 http_request = new XMLHttpRequest();
			 if (http_request.overrideMimeType) {
				// set type accordingly to anticipated content type
				//http_request.overrideMimeType('text/xml');
				http_request.overrideMimeType('text/html');
			 }
		  } else if (window.ActiveXObject) { // IE
			 try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			 } catch (e) {
				try {
				   http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			 }
		  }
		  if (!http_request) {
			 alert('Cannot create XMLHTTP instance');
			 return false;
		  }
		  
		  if (tipo == 1)
		  		http_request.onreadystatechange = alertContents;
		  else if (tipo == 2)
			  http_request.onreadystatechange = alertContents_location;
		  else if(tipo == 3)
		   		http_request.onreadystatechange = alertContents_alert;		
		  
		 
		  http_request.open('POST', url, true);
		  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		  http_request.setRequestHeader("Content-length", parameters.length);
		  http_request.setRequestHeader("Connection", "close");
		  http_request.send(parameters);
		  
   }


// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//  FUNÇÃO AJAX MOSTRA RESULTADO //
//  RETORNO HTML  //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   function alertContents() {
     if (http_request.readyState == 4) {
	     if (http_request.status == 200) {
		 
				result = http_request.responseText;

				var ini = 0
				ini = result.indexOf('<script', ini)
				var ini2 = 0
				ini2 = result.indexOf('function', ini2)
				
				if (result != ""){ // Caso retorno seja vazio não faz nada
												
						if( ini == "-1" || ini2 != "-1" ){
								//alert("ini=" +ini + " ini2=" +ini2 + "mostra.innerHTML=" +mostra.innerHTML)
								mostra.innerHTML = ''
								mostra.innerHTML = unescape(result.replace(/\+/g," ")); 
						}
					   else{
							result = unescape(result.replace(/\+/g," "));
							extraiScript(result);          
						}
				}
				
         } else {
		   mostra.innerHTML = "O Sistema não pôde concluir esta solicitação devido a problemas temporários com a conectividade da rede. Tente novamente mais tarde."
         }
      }
   }
   
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//  FUNÇÃO AJAX MOSTRA RESULTADO //
//  RETORNO TOP.LOCATION  //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // 
   function alertContents_location() {
     if (http_request.readyState == 4) {
	     if (http_request.status == 200) {
            result = http_request.responseText;
			top.location = result
				
         } else {
		   mostra.innerHTML = "O Sistema não pôde concluir esta solicitação devido a problemas temporários com a conectividade da rede. Tente novamente mais tarde."
         }
      }
   }
   
   
   
   function alertContents_alert() {
     if (http_request.readyState == 4) {
	     if (http_request.status == 200) {
            result = http_request.responseText;
			alert(result);
			 mostra.innerHTML  = result				
         } else {
			   mostra.innerHTML = "O Sistema não pôde concluir esta solicitação devido a problemas temporários com a conectividade da rede. Tente novamente mais tarde."
         }
      }
   }
   
   
  
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//  FUNÇÃO AJAX PEGA DADOS DO FORMULÁRIO //
//  RETORNO HTML OU TOP.LOCATION //
//  COM CARREGANDO.GIF //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
	
	
	
	ajax_get_formu = onnavigate("ajax_get_formu", function(data){
		var x = data.split('||')
		//var mensa = ""
		//for (var i=0; i < x.length ;i++){
		//	mensa = mensa + '"'+x[i]+'",'; 
		//}
		//mensa = left(mensa,mensa.length - 1)
		//alert(mensa)
		get_formu(x[0],x[1]);
	})
	

   function get_formu(url,div,tipo) {
      
	  formulario = document 
	  var Variaveis = "teste=23";
	  var NomeTag;
	  var TipoInput;
	  var url = url+"&"
	  mostra=document.getElementById(div);
	  
	
	  for (var i=0; i < document.forms[0].length ;i++)
		  {
			NomeTag = document.forms[0].elements[i].tagName.toUpperCase();
			TipoInput =  document.forms[0].elements[i].type;
			
					if(NomeTag == "INPUT" || NomeTag == "SELECT" || NomeTag == "TEXTAREA" || NomeTag == "select" || NomeTag == "select-one" ) 
					{
					  if(TipoInput == "FILE")
						alert('ERRO: Não é possível enviar arquivos por AJAX');
					 
					  if(TipoInput == "RADIO" || TipoInput == "CHECKBOX"  || TipoInput == "checkbox" || TipoInput == "radio"  )
					  {
						if(document.forms[0].elements[i].checked) Variaveis +="&"+document.forms[0].elements[i].name + "=" + escape(document.forms[0].elements[i].value);
					  } 
					  else
					  if(TipoInput == "select-one" ){
							 Variaveis += "&"+document.forms[0].elements[i].name + "=" + escape(document.forms[0].elements[i].value);
					  }
					  else 
						Variaveis += "&"+document.forms[0].elements[i].name + "=" + escape(document.forms[0].elements[i].value);
					}
		  }
			
			
	  mostra.innerHTML = "<br><br><div align=center><img src='images/loading.gif' border=0 align=middle> Carregando sua Solicitação. </div>"	
	  makePOSTRequest(url+"rnd="+ Math.random() +"", Variaveis,div,tipo);
   }
   
   function get_formu2(url,div,tipo,NOME_FORMULARIO) {
      
	  formulario = document 
	  var Variaveis = "teste=23";
	  var NomeTag;
	  var TipoInput;
	  mostra=document.getElementById(div);
	 
	  for (var i=0; i < document.getElementById(NOME_FORMULARIO).length ;i++)
		  {
			NomeTag = document.getElementById(NOME_FORMULARIO).elements[i].tagName.toUpperCase();
			TipoInput =  document.getElementById(NOME_FORMULARIO).elements[i].type;
			
					if(NomeTag == "INPUT" || NomeTag == "SELECT" || NomeTag == "TEXTAREA" || NomeTag == "select" || NomeTag == "select-one" ) 
					{
					  if(TipoInput == "FILE")
						alert('ERRO: Não é possível enviar arquivos por AJAX');
					 
					  if(TipoInput == "RADIO" || TipoInput == "CHECKBOX"  || TipoInput == "checkbox" || TipoInput == "radio"  )
					  {
						if(document.getElementById(NOME_FORMULARIO).elements[i].checked) Variaveis +="&"+document.getElementById(NOME_FORMULARIO).elements[i].name + "=" + escape(document.getElementById(NOME_FORMULARIO).elements[i].value);
					  } 
					  else
					  if(TipoInput == "select-one" ){
							 Variaveis += "&"+document.getElementById(NOME_FORMULARIO).elements[i].name + "=" + escape(document.getElementById(NOME_FORMULARIO).elements[i].value);
					  }
					  else 
						Variaveis += "&"+document.getElementById(NOME_FORMULARIO).elements[i].name + "=" + escape(document.getElementById(NOME_FORMULARIO).elements[i].value);
					}
		  }
			
		//	alert(Variaveis)
	  mostra.innerHTML = "<div align=center><img src='images/loading.gif' border=0 align=middle> Carregando sua Solicitação. </div>"	
	  makePOSTRequest(url+"rnd="+ Math.random() +"", Variaveis,div,tipo);
   }
   
   
   
   
   
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//  
    function get_url(url,d) {
		 var Variaveis = "teste=23";
		 makePOSTRequest(url+"?rnd="+ Math.random() +"", Variaveis,d);
	}

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//	
	ajax_get_url2 = onnavigate("ajax_get_url2", function(data){
		var x = data.split('||')
		get_url2(x[0],x[1]);
	})
	
	function get_url2(url,d) {
		
		document.getElementById(""+d+"").innerHTML = "<div align=center><img src='images/loading.gif' border=0 align=middle> Carregando sua Solicitação. </div>"
		 
		 var Variaveis = "teste=23";
		 makePOSTRequest(url+"&rnd="+ Math.random() +"", Variaveis,d);
	}
	
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//  Execute ação sem retornar nada
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//	
	function get_url3(url,d) {
		 var Variaveis = "teste=23";
		 makePOSTRequest(url+"&rnd="+ Math.random() +"", Variaveis,d);
	}
	
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//  Execute ação e colocar carregando em determinado lugar e depois colocar o resultado no lugar de carregando
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//	
	function get_url4(url,div1) {
		 var Variaveis = "teste=23";
		 document.getElementById(""+div1+"").innerHTML = "<div align=center><img src='images/loadingcircle.gif' border=0 align=middle></div>"		
		 makePOSTRequest(url+"&rnd="+ Math.random() +"", Variaveis,div1);
	}
	
	
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
	function extraiScript(texto){
				//Maravilhosa função feita pelo SkyWalker.TO do imasters/forum
				//http://forum.imasters.com.br/index.php?showtopic=165277
				// inicializa o inicio ><
				
				var ini = 0;
				// loop enquanto achar um script
				while (ini!=-1){
					// procura uma tag de script
					ini = texto.indexOf('<script', ini);
					// se encontrar
					if (ini >=0){
						// define o inicio para depois do fechamento dessa tag
						ini = texto.indexOf('>', ini) + 1;
						// procura o final do script
						var fim = texto.indexOf('</script>', ini);
						// extrai apenas o script
						codigo = texto.substring(ini,fim);
						/**********************
						
						* Alterado por Micox - micoxjcg@yahoo.com.br
						* Alterei pois com o eval não executava funções.
						
						* Alterado por Everton D. Silva - everton.silva@streamingshop.com.br
						* não estava retornando o valor
						***********************/
						var novo = document.createElement('script');
						novo.type = 'text/javascript';
						novo.language = 'javascript';
						//alert(novo.text)
						novo.text = codigo;
						
						document.body.appendChild(novo);
					
					}//if (ini >=0){
				}//while (ini!=-1){
		}
   
 
 

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
// FUNÇÕES PARA REALIZAR O UPLOAD DE ARQUIVOS COM AJAX//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//   
	/* funçõezinhas padrão pra facilitar */
	function $m(quem){
	 //apelido só pra não ficar repetindo o document.getElementById
	 return document.getElementById(quem)
	}
	
	function remove(quem){
	 quem.parentNode.removeChild(quem);
	}
	
	function addEvent(obj, evType, fn){
	 //o velho do elcio.com.br/crossbrowser
		if (obj.addEventListener)
			obj.addEventListener(evType, fn, true)
		if (obj.attachEvent)
			obj.attachEvent("on"+evType, fn)
	}
	
	function removeEvent( obj, type, fn ) {
	  if ( obj.detachEvent ) {
		obj.detachEvent( 'on'+type, fn );
	  } else {
		obj.removeEventListener( type, fn, false ); }
	} 
	
	/* a que faz o serviço pesado */
	function micoxUpload(form,url_action,id_elemento_retorno,html_exibe_carregando,html_erro_http){
		/******
		* micoxUpload - Submete um form para um iframe oculto e pega o resultado. Consequentemente pode
		*               ser usado pra fazer upload de arquivos de forma assíncrona.
		* Use a vontade mas coloque meu nome nos créditos. Licença Creative Commons.
		* Versão: 1.0 - 03/03/2007 - Testado no FF2.0 IE6.0 e OP9.1
		* Autor: Micox - Náiron JCG - elmicox.blogspot.com - micoxjcg@yahoo.com.br
		* Parametros:
		* form - o form a ser submetido ou seu ID
		* url_action - url pra onde deve ser submetido o form
		* id_elemento_retorno - id do elemento que irá receber a informação de retorno
		* html_exibe_carregando - Texto (ou imagem) que será exibido enquanto se carrega o upload
		* html_erro_http - texto (ou imagem) que será exibido se der erro HTTP.
		*******/
		
		 //testando se passou o ID ou o objeto mesmo
		 form = typeof(form)=="string"?$m(form):form;
		 
		 var erro="";
		 if(form==null || typeof(form)=="undefined"){ erro += "O form passado no 1o parâmetro não existe na página.\n";}
		 else if(form.nodeName!="FORM"){ erro += "O form passado no 1o parâmetro da função não é um form.\n";}
		 if($m(id_elemento_retorno)==null){ erro += "O elemento passado no 3o parâmetro não existe na página.\n";}
		 if(erro.length>0) {
		  alert("Erro ao chamar a função micoxUpload:\n" + erro);
		  return;
		 }
		
		 //criando o iframe
		 var iframe = document.createElement("iframe");
		 iframe.setAttribute("id","micox-temp");
		 iframe.setAttribute("name","micox-temp");
		 iframe.setAttribute("width","0");
		 iframe.setAttribute("height","0");
		 iframe.setAttribute("border","0");
		 iframe.setAttribute("style","width: 0; height: 0; border: none;");
		 /* Não usei display:none pra esconder o iframe
			pois tem uma lenda que diz que o NS6 ignora
			iframes que tenham o display:none */
		 
		 //adicionando ao documento
		 form.parentNode.appendChild(iframe);
		 window.frames['micox-temp'].name="micox-temp"; //ie sucks
		 
		 //adicionando o evento ao carregar
		 var carregou = function() { 
		   removeEvent( $m('micox-temp'),"load", carregou);
		   var cross = "javascript: ";
		   cross += "window.parent.$m('" + id_elemento_retorno + "').innerHTML = document.body.innerHTML; void(0); ";
		   
		   $m(id_elemento_retorno).innerHTML = html_erro_http;
		   $m('micox-temp').src = cross;
		   //deleta o iframe
		   setTimeout(function(){ remove($m('micox-temp'))}, 250);
		  }
		 addEvent( $m('micox-temp'),"load", carregou)
		 
		 //setando propriedades do form
		 form.setAttribute("target","micox-temp");
		 form.setAttribute("action",url_action);
		 form.setAttribute("method","get");
		 form.setAttribute("enctype","multipart/form-data");
		 form.setAttribute("encoding","multipart/form-data");
		 //submetendo
		 form.submit();
		 
		 //se for pra exibir alguma imagem ou texto enquanto carrega
		 if(html_exibe_carregando.length > 0){
		  $m(id_elemento_retorno ).innerHTML = "<BR><BR><DIV ALIGN=CENTER><B>"+html_exibe_carregando+"</B></DVI><BR><BR>";
		 }
	 
	}  
	
	
	
	
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
// FUNCTION LEFT     //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//   
	function left(str, n){
		if (n <= 0)
			return "";
		else if (n > String(str).length)
			return str;
		else
			return String(str).substring(0,n);
	}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
// FUNCTION RIGHT     //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//   
	function right(str, n){
		if (n <= 0)
		   return "";
		else if (n > String(str).length)
		   return str;
		else {
		   var iLen = String(str).length;
		   return String(str).substring(iLen, iLen - n);
		}
	} 
   




/************************************************************************************************************************
		FUNÇÃO MASCARA CNPJ
	*************************************************************************************************************************/	
     	function m_cnpj(campo) {
			//onkeyup="m_cnpj(this);"
			var vr = campo.value;
			vr = vr.replace(/\D/g,"")
			vr = vr.replace( "-", "" );
			vr = vr.replace( "/", "" );
			vr = vr.replace( ".", "" );
			vr = vr.replace( ".", "" );
			var tam = vr.length;
			//if (tam < tammax) { tam = vr.length + 1 ; }
			
			//tam = tam - 1;
			//if ( (tam > 2) && (tam <= 5) ) {
			//vr = vr.substr( 0, tam - 1 ) + '-' + vr.substr( tam - 1, tam ) ; }
			//if ( (tam >= 6) && (tam <= 8) ) {
			//vr = vr.substr( 0, tam - 5 ) + '/' + vr.substr( tam - 5, 4 ) + '-' + vr.substr( tam - 1, tam ) ; }
			//if ( (tam >= 9) && (tam <= 11) ) {
			//vr = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '/' + vr.substr( tam - 5, 4 ) + '-' + vr.substr( tam - 1, tam ) ; }
			//if ( (tam >= 12) && (tam < 14) ) {
			//vr = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '/' + vr.substr( tam - 5, 4 ) + '-' + vr.substr( tam - 1, tam ) ; }
			
			// 51.849.766/0001-86
			if ( (tam > 2) && (tam <= 14 ) ) 
				vr = vr.substr( 0,2 )+"."+vr.substr(2,3)+"."+vr.substr(5,3)+"/"+vr.substr(8,4)+"-"+vr.substr(12,2)
				
			campo.value = vr; 
		
		}
		
   