function encode64(input)
{
   	var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
   	var output = "";
  	var chr1, chr2, chr3;
   	var enc1, enc2, enc3, enc4;
   	var i = 0;

   	do
   	{
      	chr1 = input.charCodeAt(i++);
      	chr2 = input.charCodeAt(i++);
      	chr3 = input.charCodeAt(i++);

      	enc1 = chr1 >> 2;
      	enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      	enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      	enc4 = chr3 & 63;

      	if (isNaN(chr2))
      	{
         	enc3 = enc4 = 64;
      	} 
      	else if (isNaN(chr3))
      	{
         	enc4 = 64;
      	}

      	output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
        keyStr.charAt(enc3) + keyStr.charAt(enc4);
   	} while (i < input.length);
   
   return output;
}

function getParam (paForm)
{
  	var form = document.getElementById(paForm);
  	var vtForm     = form.getElementsByTagName('input');
  	var vtTextArea = form.getElementsByTagName('textarea');
  	var param = "";
  	param = param + vtForm[0].id+"="+vtForm[0].value;

  	for(var i=1;i<vtForm.length;i++)
  	{
  		if(vtForm[i].id != "")
  		{
  	  		if(vtForm[i].type == 'radio')
  	  		{
  	  			if(vtForm[i].checked)
  	  	  			param = param + "&"+vtForm[i].name+"="+vtForm[i].value;
  	  		}
  	  		else if (vtForm[i].type == 'checkbox')
  	  		{
        		if(vtForm[i].checked)
  	  	  			param = param + "&"+vtForm[i].name+"="+vtForm[i].value;
  	  		}
  	  		else
  	  		{
          		param = param + "&"+vtForm[i].name+"="+vtForm[i].value;
  	  		}
  		}
  	}
  
  	for( var p=0; p<vtTextArea.length;p++ )
  	{
    	param = param + "&"+vtTextArea[p].name+"="+vtTextArea[p].value;
  	}
  
  	var vtForm = form.getElementsByTagName('select');
  	for(var i=0;i<vtForm.length;i++)
  	{
  		if(vtForm[i].id != "")
  		{
      		param = param + "&"+vtForm[i].id+"="+vtForm[i].value;
  		}
  	}
  	return param;
}

function carrega(paDiv, local)
{
    tbody = document.createElement("tbody");
    table = document.createElement("table");
    table.className = "carregando";
    tr    = document.createElement("tr");
    td    = document.createElement("td");
    label = document.createElement("label")

    label.innerHTML = " <img src='"+local+"apoio/img/carregando.gif"+"'> ";
        
    td.appendChild( label );
    tr.appendChild( td );
    table.appendChild( tr );
    
    table1 = document.createElement("table");
    table1.setAttribute( "width", '100%' );
    table1.setAttribute( "height", '100%' );
    tr1    = document.createElement("tr");
    td1    = document.createElement("td");
    td1.setAttribute( "align", 'center' );
    td1.appendChild( table )
    tr1.appendChild( td1 );
    table1.appendChild( tr1 );

    tbody.appendChild( table1 );
    
    if(document.getElementById(paDiv))
      	document.getElementById(paDiv).innerHTML = tbody.innerHTML;
}

function getPaginaAjax(paResultado,paCaminho,paForm,paLocal)
{
	var exibeResultado = document.getElementById(paResultado); // div que exibirá o resultado da busca.
	var ajax = openAjax(); // Inicia o Ajax.
	
	carrega(paResultado,paLocal);
	
	if(paForm != "")
	{
	  var param = getParam(paForm);
	  ajax.open("POST", paCaminho , true); // Envia o termo da busca como uma querystring, nos possibilitando o filtro na busca.
	  ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      ajax.setRequestHeader("Content-length", param.length);
      ajax.setRequestHeader("Connection", "close");
      ajax.send(param);
	}
	else
	{
	  ajax.open("GET", paCaminho , true);	
	  ajax.send(null);
	}
    
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 1)
		{
			// Quando estiver carregando, exibe: carregando...
			exibeResultado.style.display = "block";
		}
		if(ajax.readyState == 4)
		{
			exibeResultado.style.display = "block";
			// Quando estiver tudo pronto.
			if(ajax.status == 200)
			{
				var resultado = ajax.responseText; // Coloca o resultado (da busca) retornado pelo Ajax nessa variável (var resultado).
				exibeResultado.innerHTML = resultado;
				extraiScript(resultado);
			}
			else
			{
				exibeResultado.innerHTML = "Erro no componente AJAX.";
			}
		}
	}
}
