﻿function Busca() {

	var minimoFiltros = 2;
    var me = this;
    var zero = false;
    var Constructor = function() {
        me.preencherComboMarcas();
    };

    this.mudarAba = function(aba) {
        $('ulAbas').className = 'abaItem' + aba;
        if (aba == 1) {
            zero = false;
        } else {
            zero = true;
        }
    }

    this.submit = function() {
    	var url = 'ui/ResultadosBusca.aspx?';
    	var Aux;
    	var opcionais = '';
    	var placas = '';
    	var filtrosAdicionais = 0;

    	if ($('selAnoDe').value != 0 && $('selAnoAte').value != 0) {
    		if (parseInt($('selAnoDe').value) > parseInt($('selAnoAte').value)) {
    			alert('O (Ano De) deve ser menor ou igual ao (Ano Até)\nFiltros restantes (' + (minimoFiltros - filtrosAdicionais) + ')');
    			return;
    		}
    		filtrosAdicionais++;
    	}

    	if ($('selPrecoDe').value != 0 && $('selPrecoAte').value != 0) {
    		if (parseInt($('selPrecoDe').value.replace('.', '')) > parseInt($('selPrecoAte').value.replace('.', ''))) {
    			alert('O (Preço De) deve ser menor ou igual ao (Preço Até)\nFiltros restantes (' + (minimoFiltros - filtrosAdicionais) + ')');
    			return;
    		}
    		filtrosAdicionais++;
    	}

    	if ($('selEstados').value != 0) filtrosAdicionais++;

    	if (filtrosAdicionais < 2) {
    		if ($('selMarcas').value == 0) {
    			alert('Selecione ao menos ' + minimoFiltros + ' filtros');
    			return;
    		}
    		filtrosAdicionais++;
    	}

    	if (filtrosAdicionais < 2) {
    		if ($('selModelos').value == 0) {
    			alert('Selecione ao menos ' + minimoFiltros + ' filtros');
    			return;
    		}
    		filtrosAdicionais++;
    	}

    	if ($('selMarcas').value != 0) url = url + "CodMarca=" + $('selMarcas').value;
    	if ($('selModelos').value != 0) url = url + "&CodModelo=" + $('selModelos').value;

    	if ($('selVersoes').value != 0) url = url + "&CodVersao=" + $('selVersoes').value;
    	if ($('selAnoDe').value != 0) url = url + "&AnoDe=" + $('selAnoDe').value;
    	if ($('selAnoAte').value != 0) url = url + "&AnoAte=" + $('selAnoAte').value;
    	if ($('selPrecoDe').value != 0) url = url + "&PrecoDe=" + $('selPrecoDe').value;
    	if ($('selPrecoAte').value != 0) url = url + "&PrecoAte=" + $('selPrecoAte').value;
    	if ($('selEstados').value != 0) url = url + "&Estado=" + $('selEstados').value;
    	url = url + "&KmAte=" + (zero ? "0" : "-1");

    	location.href = url;
    };

    this.preencherComboMarcas = function() {
        $('selMarcas').onchange = new Function("javascript:oBusca.preencherComboModelos(this.value);");
    };

    this.preencherComboModelos = function(codMarca) {
        $('selMarcas').disabled = 'disabled';
        while ($('selModelos').childNodes.length > 0) $('selModelos').removeChild($('selModelos').childNodes[0]);
        while ($('selVersoes').childNodes.length > 0) $('selVersoes').removeChild($('selVersoes').childNodes[0]);
        if (codMarca == 0) {
            $('selModelos').options[$('selModelos').options.length] = new Option("Selecione", 0);
            $('selVersoes').options[$('selVersoes').options.length] = new Option("Selecione", 0);
            $('selMarcas').disabled = '';
            return;
        }
        BuscaRapida.GetModelos(codMarca, function(res) { preencherComboCallback($('selModelos'), res); });
        $('selModelos').onchange = new Function("javascript:oBusca.preencherComboVersoes(this.value);");
        $('selVersoes').options[$('selVersoes').options.length] = new Option("Selecione", 0);
        $('selMarcas').disabled = '';
    };

    this.preencherComboVersoes = function(codModelo) {
        $('selModelos').disabled = 'disabled';
        while ($('selVersoes').childNodes.length > 0) $('selVersoes').removeChild($('selVersoes').childNodes[0]);
        if (codModelo == 0) {
        	$('selVersoes').options[$('selVersoes').options.length] = new Option("Selecione", 0);
        	$('selModelos').disabled = '';
            return;
        }
        BuscaRapida.GetVersoes(codModelo, function(res) { preencherComboCallback($('selVersoes'), res); });
        $('selModelos').disabled = '';
    };

    var preencherComboCallback = function(el, res) {
        for (var i = 0; i < res.value.rows.count(); i++) {
            var option = document.createElement("option"); option.setAttribute('value', 0); option.setAttribute('selected', 'selected');
            option.appendChild(document.createTextNode("Selecione"));
            el.appendChild(option);

            if (res.error) new Erros().mostrarErro(res.error);

            for (var i = 0; i < res.value.rows.count(); i++) {
                option = document.createElement('option'); option.setAttribute('value', res.value.rows[i].CodItem); option.appendChild(document.createTextNode(res.value.rows[i].Nome));
                el.appendChild(option);
            }
        }
    };
    Constructor();
};

var oBusca;
$load(function() {
    oBusca = new Busca();
});
