var http_request;
var http_request_complete = true;
var http_request_array = new Array();
var loopando = false;


function manipulaRequest(requestMethod, requestURL, requestAsynchronous, requestData, returnDiv){
	http_request_array[http_request_array.length] =	new Array(requestMethod, requestURL, requestAsynchronous, requestData, returnDiv)
	executaRequest();
}


function executaRequest(){
	if(http_request_complete && http_request_array.length){
		loadData(http_request_array[0][0],http_request_array[0][1],http_request_array[0][2],http_request_array[0][3],http_request_array[0][4]);
		http_request_array.shift();
	}else if(http_request_array.length){
		doSomethingWithData('<div style="margin:10px" align="center" class="texto_branco"><img src="../../../../site/images/ajax_loading.gif" /></div>', http_request_array[0][4]);
		if(!loopando){
			funcInterval = setInterval('executaRequest()', 50);
			loopando = true;
		}
	}else{
		clearInterval(funcInterval);
		loopando = false;
	}
}

function loadData(requestMethod, requestURL, requestAsynchronous, requestData, returnDiv)
{
	http_request_complete = false;
	http_request = false;

    // Testes de compatibilidades de browser

    if (window.XMLHttpRequest) // Mozilla, Firefox, SeaMonkey, Safari
	{
        http_request = new XMLHttpRequest();

        if (http_request.overrideMimeType) // Definimos o cabeçalho da resposta como sendo text/xml, pois algumas versões dos browsers Mozilla exigem este mimetype
        {
            http_request.overrideMimeType('text/xml');
		}
    }
    else if (window.ActiveXObject) // Internet Explorer
    {
		try
        {
            http_request = new ActiveXObject("Msxml2.XMLHTTP") // Versão 6
		}
        catch(e)
        {
            try
            {
                http_request = new ActiveXObject('Microsoft.XMLHTTP')  // Versão 5.5
            }
            catch(e)
            {
            }
        }
    }

    if (!http_request) // http_request continua sendo false, ou seja, não conseguimos implementar nenhum dos casos acima
    {
        alert('Não foi possível processar a requisição HTTP.');
        http_request_complete = true;
        return;
    }

// Anonymous function to handle changed request states
	http_request.onreadystatechange = function()
	{
		switch(http_request.readyState)
		{
		case 0:	// Uninitialized
			break;
		case 1: // Loading
			doSomethingWithData('<div style="margin:10px" align="center" class="texto_branco"><img src="../../../../site/images/ajax_loading.gif" /></div>', returnDiv);
			break;
		case 2: // Loaded
			break;
		case 3: // Interactive
			break;
		case 4:	// Done!
		// Retrieve the data between the <quote> tags
			switch(returnDiv){
				case 'cep':
					inputCEP(http_request.responseText);
				break;
				
				case 'cep2':
					inputCEP2(http_request.responseText);
				break;
				
				default:
					doSomethingWithData(http_request.responseText, returnDiv);
				}
			/*if(returnDiv != 'cep' || returnDiv != 'cep2'){
				
			}else{
				
			}*/
			http_request_complete = true;
			break;
		default:
			break;
		}
	}

//	eval('http_request.onreadystatechange = ' + returnFunction + ';');

// Make the request
	http_request.open(requestMethod, requestURL, requestAsynchronous);
	//http_request.open ('GET', URL, true);

	// Setamos o content-type da requisição. Este content-type é obrigatório quando estamos postando dados de um form e não faz diferença em caso contrário

    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    // Enviamos a requisição com os dados

    http_request.send(requestData);

//	http_request.send (null);
}

function get(obj) {
      var getstr = "";
      for (i=0; i<obj.childNodes.length; i++) {
         if (obj.childNodes[i].tagName == "INPUT") {
            if (obj.childNodes[i].type == "text") {
               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
            if (obj.childNodes[i].type == "checkbox") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               } else {
                  getstr += obj.childNodes[i].name + "=&";
               }
            }
            if (obj.childNodes[i].type == "radio") {
               if (obj.childNodes[i].checked) {
                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
               }
            }
         }
         if (obj.childNodes[i].tagName == "SELECT") {
            var sel = obj.childNodes[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }

      }
	  return getstr;
 }

function doSomethingWithData(data, divDestino)
	{
		//alert(data);
		document.getElementById(divDestino).innerHTML = data;
	}
	
function inputCEP(dados){
	if(dados != ''){
		data = dados.split('</>');
		
		document.getElementById('empEnd').value = data[0]; 
		document.getElementById('empBairro').value = data[1];
		document.getElementById('empCidade').value = data[2];
		document.getElementById('empUF').value = data[3];
		
		document.getElementById('rua').value = data[0]; 
		document.getElementById('bairro').value = data[1];
		document.getElementById('cidade').value = data[2];
		document.getElementById('UF').value = data[3];
	}else{
		
		document.getElementById('empEnd').value = ''; 
		document.getElementById('empBairro').value = '';
		document.getElementById('empCidade').value = '';
		document.getElementById('empUF').value = '';
		
		document.getElementById('rua').value = ''; 
		document.getElementById('bairro').value = '';
		document.getElementById('cidade').value = '';
		document.getElementById('UF').value = '';
		
		alert('O CEP digitado é inválido.');
		document.getElementById('empCEP').focus(); 
	
	}
}

function inputCEP2(dados){
	if(dados != ''){
		data = dados.split('</>');
		
		document.getElementById('dp_endereco').value = data[0]; 
		document.getElementById('dp_bairro').value = data[1];
		document.getElementById('dp_cidade').value = data[2];
		document.getElementById('dp_uf').value = data[3];

	}else{
		
		document.getElementById('dp_endereco').value = ''; 
		document.getElementById('dp_bairro').value = '';
		document.getElementById('dp_cidade').value = '';
		document.getElementById('dp_uf').value = '';
		
		alert('O CEP digitado é inválido.');
		//document.getElementById('dp_cep').focus(); 
	
	}
}

function buscaCEP(){
	if(document.getElementById("empCEP").value != ''){
		manipulaRequest("GET","/site/modulos/rh/cep.php?cep=" + document.getElementById("empCEP").value, true, "", "cep");	
	}else{
		alert('Preencha o campo CEP primeiro.');
		document.getElementById('empCEP').focus();
	}
	
}

function buscaCEP2(){
	if(document.getElementById("dp_cep").value != ''){
		manipulaRequest("GET","/site/modulos/rh/cep.php?cep=" + document.getElementById("dp_cep").value, true, "", "cep2");	
	}else{
		alert('Preencha o campo CEP primeiro.');
		//document.getElementById('dp_cep').focus();
	}
	
}

function abreCurriculo(){
	alert('A opção de editar curriculo esta em desenvolvimento.');
}
