// variaveis de ambiente
var idComboMarcaCarro;
var idComboModeloCarro;

/*  Marca  */
function bindMarcaModeloComboMarca(comboMarca, comboModelo, valorMarca)
{
	idComboMarcaCarro = comboMarca;
	idComboModeloCarro = comboModelo;
	
	limpaCombo(comboMarca);
	limpaCombo(comboModelo);
	
	document.getElementById(comboMarca).options.length = 0;
	document.getElementById(comboMarca).options[0] = new Option('', '');
	
	WebMotors.ssComum.ssServicos.InformacaoCarro.FindMarca(valorMarca, bindMarcaModeloComboMarca_OnComplete, bindMarcaModeloComboMarca_OnError, bindMarcaModeloComboMarca_OnTimeOut);
}

function bindMarcaModeloComboMarca_OnComplete(list)
{
	bindMarcaModeloCarregarCombo(list, idComboMarcaCarro, 'não foram encontradas marcas no servidor.', '0');
}

function bindMarcaModeloComboMarca_OnTimeOut(arg)
{
    alert(mensagemErroGenericoSite);
}

function bindMarcaModeloComboMarca_OnError(arg)
{
    alert(mensagemErroGenericoSite);
}


function bindMarcaModeloComboMarcaNovo(comboMarca, comboModelo, valorMarca) {
    idComboMarcaCarro = comboMarca;
    idComboModeloCarro = comboModelo;

    limpaCombo(comboMarca);
    limpaCombo(comboModelo);

    document.getElementById(comboMarca).options.length = 0;
    document.getElementById(comboMarca).options[0] = new Option('', '');

    WebMotors.ssComum.ssServicos.InformacaoCarro.FindMarcaNovos(valorMarca, bindMarcaModeloComboMarcaNovo_OnComplete, bindMarcaModeloComboMarca_OnError, bindMarcaModeloComboMarca_OnTimeOut);
}

function bindMarcaModeloComboMarcaNovo_OnComplete(list) {
    bindMarcaModeloCarregarCombo(list, idComboMarcaCarro, 'não foram encontradas marcas no servidor.', '0');
}

function bindMarcaModeloComboMarcaNovo_OnTimeOut(arg) {
    alert(mensagemErroGenericoSite);
}

function bindMarcaModeloComboMarcaNovo_OnError(arg) {
    alert(mensagemErroGenericoSite);
}


/*  Modelo  */
function bindMarcaModeloComboModelo(comboModelo, valorMarca, valorModelo) 
{
	idComboModeloCarro = comboModelo;

	limpaCombo(comboModelo);
	
	document.getElementById(comboModelo).options.length = 0;
	document.getElementById(comboModelo).options[0] = new Option('', '');
	
	WebMotors.ssComum.ssServicos.InformacaoCarro.FindModelo(valorMarca, valorModelo, bindMarcaModeloComboModelo_OnComplete, bindMarcaModeloComboModelo_OnError, bindMarcaModeloComboModelo_OnTimeOut);
}

function bindMarcaModeloComboModeloNovo(comboModelo, valorMarca, valorModelo) {
    idComboModeloCarro = comboModelo;

    limpaCombo(comboModelo);

    document.getElementById(comboModelo).options.length = 0;
    document.getElementById(comboModelo).options[0] = new Option('', '');

    WebMotors.ssComum.ssServicos.InformacaoCarro.FindModeloNovos(valorMarca, valorModelo, bindMarcaModeloComboModelo_OnComplete, bindMarcaModeloComboModelo_OnError, bindMarcaModeloComboModelo_OnTimeOut);
}

function bindMarcaModeloComboModelo_OnComplete(list)
{
	bindMarcaModeloCarregarCombo(list, idComboModeloCarro, 'não foram encontradas modelos no servidor.', '');
}

function bindMarcaModeloComboModelo_OnTimeOut(arg)
{
    alert(mensagemErroGenericoSite);
}

function bindMarcaModeloComboModelo_OnError(arg)
{
    alert(mensagemErroGenericoSite);
}


/*  comum  */
function limpaCombo(combo)
{
	if (document.getElementById(combo) != null)
		document.getElementById(combo).options.length = 0;
}

function bindMarcaModeloCarregarCombo(list, id, msg, valorInicial)
{
	if (list)
	{
	    limpaCombo(id);
		var e = document.getElementById(id);
        var selectedValueOption = null;
        var primeiro = true;
		for (i = 1; i <= list.length; i++)
		{
		    var item = list[i-1];
		    if (primeiro)
		    {
                if (item.value != null && item.value != '' && item.value != '0')
                    e.options[0] = new Option('', valorInicial);
		        primeiro = false;
		    }

            var listItemName = item.name;
            var listItemValue = item.value;
            var listItemIsDefaultValue = item.isDefaultValue;
            var optionElement = new Option(listItemName, listItemValue);
            if (listItemIsDefaultValue) 
                selectedValueOption = optionElement;

            e.options[e.options.length] = optionElement;
        }
        if (selectedValueOption)
            selectedValueOption.selected = true;
	}
	else
		alert(msg);
}
