// variaveis de ambiente
var idComboMarca;
var idComboModelo;
var idComboVersao;
var _inserirPrimeiraLinha;
var comboOnLoad = null;

/*  Marca  */
function bindMarcaModeloVersaoComboMarca(comboMarca, comboModelo, valorMarca) 
{
    
	idComboMarca = comboMarca;
	idComboModelo = comboModelo;	
	
	limpaCombo(comboMarca);
	limpaCombo(comboModelo);	
	
	document.getElementById(comboMarca).options.length = 0;
	document.getElementById(comboMarca).options[0] = new Option('carregando...', '');
	document.getElementById(comboMarca).disabled = true;
	WebMotors.ssComum.ssServicos.InformacaoCarro.FindMarca(valorMarca, bindMarcaModeloVersaoComboMarca_OnComplete, bindMarcaModeloVersaoComboMarca_OnError, bindMarcaModeloVersaoComboMarca_OnTimeOut);
	document.getElementById(comboMarca).disabled = false;
}

function bindMarcaModeloVersaoComboMarca1(comboMarca, comboModelo, valorMarca) {

    idComboMarca = comboMarca;
    idComboModelo = comboModelo;

    limpaCombo(comboMarca);
    limpaCombo(comboModelo);

    document.getElementById(comboMarca).options.length = 0;
    document.getElementById(comboMarca).options[0] = new Option('carregando...', '');
    document.getElementById(comboMarca).disabled = true;
    WebMotors.ssComum.ssServicos.InformacaoCarro.FindMarca(valorMarca, bindMarcaModeloVersaoComboMarca1_OnComplete, bindMarcaModeloVersaoComboMarca_OnError, bindMarcaModeloVersaoComboMarca_OnTimeOut);
    document.getElementById(comboMarca).disabled = false;
}

function bindMarcaModeloVersaoComboMarca_OnComplete(list)
{
	bindMarcaModeloVersaoCarregarCombo(list, idComboMarca, 'não foram encontradas marcas no servidor.', '0', true);
}

function bindMarcaModeloVersaoComboMarca1_OnComplete(list) {
    bindMarcaModeloVersaoCarregarCombo1(list, idComboMarca, 'não foram encontradas marcas no servidor.', '0', true);
}

function bindMarcaModeloVersaoComboMarca_OnTimeOut(arg)
{
    alert(mensagemErroGenericoSite);
}

function bindMarcaModeloVersaoComboMarca_OnError(arg)
{
    alert(mensagemErroGenericoSite);
}


/*  Modelo  */
function bindMarcaModeloVersaoComboModelo(comboModelo, valorMarca, valorModelo) 
{
    
	idComboModelo = comboModelo;

	limpaCombo(comboModelo);
	
	document.getElementById(comboModelo).options.length = 0;
	if (valorMarca != 0)
	    document.getElementById(comboModelo).options[0] = new Option('carregando...', '');
	
	document.getElementById(comboModelo).disabled = true;
	WebMotors.ssComum.ssServicos.InformacaoCarro.FindModelo(valorMarca, valorModelo, bindMarcaModeloVersaoComboModelo_OnComplete, bindMarcaModeloVersaoComboModelo_OnError, bindMarcaModeloVersaoComboModelo_OnTimeOut);
	document.getElementById(comboModelo).disabled = false;
}

function bindMarcaModeloVersaoComboModelo_OnComplete(list)
{
	bindMarcaModeloVersaoCarregarCombo(list, idComboModelo, 'não foram encontradas modelos no servidor.', '', true);
}

function bindMarcaModeloVersaoComboModelo_OnTimeOut(arg)
{
    alert(mensagemErroGenericoSite);
}

function bindMarcaModeloVersaoComboModelo_OnError(arg)
{
    alert(mensagemErroGenericoSite);
}

/*  Versao  */
function bindMarcaModeloVersaoComboVersao(comboVersao, valorModelo, valorVersao, valorAnoModeloDe, valorAnoModeloAte, inserirPrimeiraLinha, pOnLoad) {    
    comboOnLoad = pOnLoad;
	idComboVersao = comboVersao;
	_inserirPrimeiraLinha = inserirPrimeiraLinha;
	limpaCombo(comboVersao);
	document.getElementById(comboVersao).options.length = 0;
	if (valorModelo != null && valorModelo != '' && valorModelo != '0')
	    WebMotors.ssComum.ssServicos.InformacaoCarro.FindVersao(valorModelo, valorVersao, valorAnoModeloDe, valorAnoModeloAte, bindMarcaModeloVersaoComboVersao_OnComplete, bindMarcaModeloVersaoComboVersao_OnError, bindMarcaModeloVersaoComboVersao_OnTimeOut);
	else {
	    if (typeof (comboOnLoad) == 'function')
	        comboOnLoad(null);
	}
}

function bindMarcaModeloVersaoComboVersao_OnComplete(list)
{
    bindMarcaModeloVersaoCarregarCombo(list, idComboVersao, 'não foram encontradas versões no servidor.', '', _inserirPrimeiraLinha);
    if (typeof (comboOnLoad) == 'function')
        comboOnLoad(list);
}

function bindMarcaModeloVersaoComboVersao_OnTimeOut(arg)
{
    alert(mensagemErroGenericoSite);
}

function bindMarcaModeloVersaoComboVersao_OnError(arg)
{
    alert(mensagemErroGenericoSite);
}



function bindMarcaModeloVersaoCarregarCombo(list, id, msg, valorInicial, inserirValorInicial)
{
	if (list)
	{
		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 && inserirValorInicial)
		    {
                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);
}

function bindMarcaModeloVersaoCarregarCombo1(list, id, msg, valorInicial, inserirValorInicial) {
    if (list) {
        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 && inserirValorInicial) {
                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);
}

function limpaCombo(combo)
{
	if (document.getElementById(combo) != null)
		document.getElementById(combo).options.length = 0;
}

