//Cria variavel global que recebera o array com os dados do CEP
//var dadosDiretorio = null;

//Tenta criar o objeto xmlHTTP
try{
    objAjax = new XMLHttpRequest();
}catch(ee){
    try{
        objAjax = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            objAjax = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            objAjax = false;
        }
    }
}

//Fila de conexões
filapavanca=[];
ifilapavanca=0;

//Carrega via XMLHTTP a url recebida e coloca seu valor
//no objeto com o id recebido
function carregaCombosTipoMarcaModelo( id, tipo, categoria, vlr, vlrDefault, txtCombo, idcombo2, txtcombo2, vlrDefault2, idcombo3, txtcombo3, vlrDefault3 ) {
	if ( id != '' ) {
		url = '/jscript/ajax/tipo_marca_modelo_xml.php?cat=' + categoria + '&tipo=' + tipo + '&valorfiltro=' + vlr;

		//Adiciona à fila
		filapavanca[filapavanca.length]=[id, url, vlrDefault, categoria, txtCombo, tipo, idcombo2, txtcombo2, vlrDefault2, idcombo3, txtcombo3, vlrDefault3];
		//Se não há conexões pendentes, executa
		if ( (ifilapavanca+1)==filapavanca.length && categoria == 'marca' ) ajaxRunMarca();
		if ( (ifilapavanca+1)==filapavanca.length && categoria == 'modelo' ) ajaxRunModelo();
	}
/*	else { 
		alert('Estado inválido.'); 
		input = document.getElementById(id);
		input.options.length = 0;
		input.options[0] = new Option(" ", '0'); 
	}*/
}



//Executa a próxima conexão da fila
function ajaxRunMarca() {
    //Abre a conexão
    objAjax.open("GET",filapavanca[ifilapavanca][1],true);
    //Função para tratamento do retorno
    objAjax.onreadystatechange=function() {
        if (objAjax.readyState==4 && objAjax.status == 200) {
            //Mostra o HTML recebido
            //--  retorno=unescape(xmlhttp.responseText.replace(/\+/g," "))
			var result = objAjax.responseXML;
			var cidXml = result.getElementsByTagName( filapavanca[ifilapavanca][3].substring(0,3) );
			input = document.getElementById( filapavanca[ifilapavanca][0] );
			input.options.length = 0;
			input.disabled = true;
			input.options[0] = new Option( filapavanca[ifilapavanca][4], '0'); 

			for (var x = 0; x < cidXml.length; x++) {
				//cidXml[x].getAttribute('cod');
				input.options[x+1] = new Option(cidXml[x].firstChild.nodeValue, cidXml[x].getAttribute('cod')); 
			}
			input.disabled = false;
			// Verifica se define valor default para segundo combo
			if ( filapavanca[ifilapavanca][2] ) {
				id          = filapavanca[ifilapavanca][6];
				vlrMarca    = filapavanca[ifilapavanca][2];
				tipo        = filapavanca[ifilapavanca][5];
				txtCombo    = filapavanca[ifilapavanca][7];
				vlrDefault  = filapavanca[ifilapavanca][8];
				carregaCombosTipoMarcaModelo( id, tipo, 'modelo', vlrMarca, vlrDefault, txtCombo, '', '', 0, '', '', 0 );
			}
			if (filapavanca[ifilapavanca][2] > 0) input.value = filapavanca[ifilapavanca][2];

            //Roda o próximo
            ifilapavanca++;
            if(ifilapavanca<filapavanca.length)setTimeout("ajaxRunMarca()",20);
        }
    }
    //Executa
    objAjax.send(null);
}


//Executa a próxima conexão da fila
function ajaxRunModelo(){
    //Abre a conexão
    objAjax.open("GET",filapavanca[ifilapavanca][1],true);
    //Função para tratamento do retorno
    objAjax.onreadystatechange=function() {
        if (objAjax.readyState==4 && objAjax.status == 200) {
            //Mostra o HTML recebido
            //--  retorno=unescape(xmlhttp.responseText.replace(/\+/g," "))
			var result = objAjax.responseXML;
			var cidXml = result.getElementsByTagName( filapavanca[ifilapavanca][3].substring(0,3) );
			input = document.getElementById( filapavanca[ifilapavanca][0] );
			input.options.length = 0;
			input.disabled = true;
			input.options[0] = new Option( filapavanca[ifilapavanca][4], '0'); 

			for (var x = 0; x < cidXml.length; x++) {
				//cidXml[x].getAttribute('cod');
				input.options[x+1] = new Option(cidXml[x].firstChild.nodeValue, cidXml[x].getAttribute('cod')); 
			}
			input.disabled = false;
			// Verifica se define valor default para segundo combo
			if ( filapavanca[ifilapavanca][5] != '' ) {
				document.getElementById( filapavanca[ifilapavanca][3] ).disabled = false;
			}
			if (filapavanca[ifilapavanca][2] > 0) input.value = filapavanca[ifilapavanca][2];

            //Roda o próximo
            ifilapavanca++;
            if(ifilapavanca<filapavanca.length)setTimeout("ajaxRunTipoMarcaModelo()",20);
        }
    }
    //Executa
    objAjax.send(null);
}




