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

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

//Fila de conexões
filaps=[];
ifilaps=0;

//Carrega via XMLHTTP a url recebida e coloca seu valor
//no objeto com o id recebido
function carregaPS( categoria, cd, input, vlrDefault, idprm) {
	if ( categoria == 'tipo' || categoria == 'marca' || categoria == 'modelo' ) {
		// Limpa form de modelo
		if ( categoria == 'tipo' || categoria == 'marca' ) {
			listafrm = Array('Marca','Modelo');
			for ( ii=0; ii < listafrm.length; ii++ ) {
				forminput = document.getElementById( listafrm[ii].toLowerCase() );
				forminput.options.length = 0;
				forminput.options[0] = new Option( listafrm[ii], '0' );
				forminput.disabled = true;
			}
		}
		//alert(cd + categoria);
		if ( cd == 7 && categoria == 'marca' ) {
		} else {
			//Adiciona à fila
			// analisa parametro ID do cliente
			prmid = ( idprm > 0 ) ? '&id=' + idprm.toString() : '';
			filaps[filaps.length]=[input, '/jscript/tipomarcamodeloxml.php?cat=' + categoria.toLowerCase() + '&cd=' + cd + prmid, vlrDefault];
			//Se não há conexões pendentes, executa
			if((ifilaps+1)==filaps.length) ajaxRunPS( categoria );
		}
	}
	else { 
		alert('Valor inválido.'); 
		input = document.getElementById(input);
		input.options.length = 0;
		input.options[0] = new Option(" ", '0'); 
	}
}

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

			for (var x = 0; x < Xml.length; x++) {
				//cidXml[x].getAttribute('cod');
				input.options[x+1] = new Option(Xml[x].firstChild.nodeValue, Xml[x].getAttribute('cod')); 
			}
			input.disabled = false;
			if (filaps[ifilaps][2] > 0) input.value = filaps[ifilaps][2];

            //Roda o próximo
            ifilaps++;
            if(ifilaps<filaps.length)setTimeout("ajaxRunPS(" + categoria + ")",20);
        }
		//if ( categoria == 'tipo' ) carregaPS( 'marca', document.getElementById('tipo').value, 'marca', 0);
    }
    //Executa
    xmlhttp.send(null);
}
