var regemail = new RegExp("^([_a-z0-9-]+)(\\.[_a-z0-9-]+)*@([a-z0-9-]+)(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})$");

$( function() {

    $("#bpcategoria").change(function() {
        var htmlcombustivel = '<option value="0">Todos</option>';
        $("#bpmarca").attr( "disabled", "disabled" ).find("option").remove();
        $("#bpmodelo").attr( "disabled", "disabled" ).find("option").remove();
        categoria = parseInt($(this).val());
        if ( categoria > 0 ) {
            if ( categoria != 7 ) {
                $("#bpmarca").jqIdVeiculo( { fk:categoria, tipo:categoria, dsccampo:"marca", label:"Selecione a marca", maioresfst:true, estoque:false, inicial:$("#bpmarca_default").val() } );
            } else {
                $("#bpmodelo").jqIdVeiculo( { fk:categoria, tipo:categoria, dsccampo:"modelo", label:"Selecione o modelo", estoque:false, inicial:$("#bpmarca_default").val() } );
            }
            //monta o combo de combustiveis de acordo com a categoria selecionada
            $.getJSON( "/ajax/combustivel.php",
                      {tipo: categoria},
                      function(data) {
                        if( data.records > 0 ) {
                            $.each(data.rows, function(i,item){
                                htmlcombustivel += '<option value="' + item[0] + '_' + item[2] + '">' + item[1] + '</option>';
                            });
                        }
                        $("#bpcombustivel").empty().append( htmlcombustivel );
                      }
            );
        }

    });

    /* modelos */
    $("#bpmarca").change(function() {
        categoria = parseInt($("#bpcategoria").val());
        if ( categoria != 7 ) {
            $("#bpmodelo").jqIdVeiculo( { fk:$("#bpmarca").val(), tipo:categoria, dsccampo:"modelo", label:"Selecione o modelo", estoque:false, inicial:$("#bpmodelo_default").val() } );
        } else {
            $(this).find("option").remove();
        }
    });



	/* alimenta combo de anos*/
	var data = new Date();
	var anoatual = data.getFullYear()+1;
	for(i=anoatual; i>=1900; i-- ) {
		selected1 = ( $("#bpano1_default").val() == i ) ? " selected=\"selected\"" : "" ;
		selected2 = ( $("#bpano2_default").val() == i ) ? " selected=\"selected\"" : "" ;
		$("#bpano1").append("<option value=\"" + i + "\"" + selected1 + ">" + i + "</option>");
		$("#bpano2").append("<option value=\"" + i + "\"" + selected2 + ">" + i + "</option>");
	}




    $("#bpemail").change( function() {
        var email = $.trim($(this).val());
        $("#msgemailvalido").text('');
        if ( !regemail.test(email) ) {
            $("#msgemailvalido").text("Preencha corretamente o e-mail");
            $("#bpemail").css('background-color', '#ffe6e6');
            return false;
        } else {
            $("#bpemail").css('background-color', '#ffffff');
        }
        var msg = '';
        $.post( "/ajax/buscaprogramada-email.php",
                { email: email },
                function(data) {
                    $("#emailvalido").val('');
                    if ( $.trim(data) == "0") {
                        $("#emailvalido").val('S');
                        $("#bpemail").css('background-color', '#ffffff');
                    } else {
                        msg = "E-mail já cadastrado";
                        $("#emailvalido").val('N');
                        $("#bpemail").css('background-color', '#ffe6e6');
                    }
                    $("#msgemailvalido").text(msg);
                }
        );
    });





    $("#btnadicionar").click( function( event, a) {

        var msgalerta = "";
        var htmllinha = "";
        var anobusca  = "";
    
    	var arrcombustivel  = $("#bpcombustivel").val().split("_");

        var categoriacodigo = ( $("#bpcategoria").val() > 0 ) ? $("#bpcategoria").val()  : '';
        var marcacodigo     = ( $("#bpmarca").val() > 0 )     ? $("#bpmarca").val()      : '';
        var modelocodigo    = ( $("#bpmodelo").val() > 0 )    ? $("#bpmodelo").val()     : '';
        var ano1            = ( $("#bpano1").val() > 0 )      ? $("#bpano1").val()       : '';
        var ano2            = ( $("#bpano2").val() > 0 )      ? $("#bpano2").val()       : '';
        var cidade          = ( $("#bpcidade").val() > 0 )    ? $("#bpcidade").val()     : '';
        var cor             = ( $("#bpcor").val() > 0 )       ? $("#bpcor").val()        : '';
        var combustivel     = ( arrcombustivel[0] > 0 )       ? arrcombustivel[0]        : '';
        var combustivelnome = ( arrcombustivel[0] > 0 )       ? arrcombustivel[1]        : "Todos";

        if ( ano1 == '' && ano2 == '' )  {
            anobusca  = "Todos";
        } else if ( ano1 == '' && ano2 > 0 ) {
            anobusca  = "Até " + ano2;
        } else if ( ano1 > 0 && ano2 == '' ) {
            anobusca  = "A partir de " + ano1;
        } else {
            anobusca  = ano1 + " - " + ano2;
        }

        if ( msgalerta.length > 0 ) {
            alert("Preencha corretamente: \n" + msgalerta);
            msgalerta = "";
            return false;
        }

        if ( ano1 > ano2 && ano2 != '' ) { msgalerta += "ano \n"; }
        if ( categoriacodigo <= 0 ) { msgalerta += "categoria \n"; }
        if ( marcacodigo <= 0 ) { msgalerta += "marca \n"; }
        if ( modelocodigo <= 0 ) { msgalerta += "modelo \n"; }

        if ( msgalerta.length > 0 ) {
            alert("Selecione corretamente: \n"+ msgalerta);
            return false;
        }

        if ( $("#tabela tbody tr").length < 3 ) {
            /* O campo hidden inserido na variavel htmllinha contera todos os dados referentes a busca que esta sendo cadastrada
             * na seguinte ordem: categoria|marca|modelo|cidade|cor|combustivel|ano1|ano2
             * Optei por esse tipo de implementacao, por ser mais simples e rapido a recuperacao e tratamento de apenas
             * uma variavel array(itensbusca)*/

            htmllinha = "<tr linha_\"" + $("#tabela tbody tr").length + "\"><td>" + $("#bpcidade option:selected").text()
            +  "</td><td>" + $("#bpcategoria option:selected").text() + " - " + $("#bpmarca option:selected").text() + " " + $("#bpmodelo option:selected").text() + "</td>\n\
            <td>" +  combustivelnome + "</td><td>" + $("#bpcor option:selected").text() + "</td><td>" + anobusca + "</td>\n\
            <td><span class=\"excluir\"><a href=\"javascript:void(0);\"><span>X</span></a></span></td>\n\
            <td class=\"coldados\"><input type=\"hidden\" name=\"itensbusca[]\" value='" + categoriacodigo + '|' + marcacodigo
            + '|' + modelocodigo + '|' + cidade + '|' + cor + '|' + combustivel + '|' + ano1 + '|' + ano2 + "' /></td></tr>";

            $("#tabela tbody").append( htmllinha );

            $(".excluir").click( function() {
                $(this).parent().parent().remove();
            });
        } else {
            alert("Você pode cadastrar no máximo 3 veículos para a busca programada!");
        }
        $("#tabela").trigger("update");
        $("#bpcidade, #bpcategoria, #bpmarca, #bpmodelo, #bpano1, #bpano2, #bpcor, #bpcombustivel").val(0);

        if ( a == 'concluir' ) {
            $("#frmbuscaprogramada").trigger("submit");
        }

    });


    $("#windowbusca").dialog({
        bgiframe: false,
        autoOpen: false,
        height: 170,
        modal: true,
        draggable: true,
        open: function() {
            $(this).find("p span").html( $("#bpmarca option:selected").text() + ' - ' + $("#bpmodelo option:selected").text() );
        },
        buttons: {
            'Cancelar': function() {
                $(this).dialog("close");
            },
            'Não': function() {
                $(this).dialog("close");
                $("#frmbuscaprogramada").trigger("submit");
            },
            'Sim': function() {
                $("#btnadicionar").trigger("click", ["concluir"]);
            }
        }
    });




    $("#btnconcluir").click( function() {
        if ( $("#bpcategoria").val() > 0 || $("#bpmarca").val() > 0 && $("#tabela tbody tr").length > 0 ) {
            $("#windowbusca").dialog('open');
        } else {
            $("#frmbuscaprogramada").trigger("submit");
        }

    });



    $("#frmbuscaprogramada").submit( function() {
        if ( $("#tabela tbody tr").length <= 0  ) {
            alert("Você não cadastrou nenhum veículo para busca programada!");
            return false;
        }

        var msgalerta = "";

        if ( $("#bpnome").val().length <= 3 ) { msgalerta += "Nome \n"; }
        if ( !regemail.test($("#bpemail").val()) ) { msgalerta += "E-mail \n"; }

        if (  $("#emailvalido").val() == 'N' ) {
            $("#msgemailvalido").text("E-mail já está cadastrado para outra busca programada!");
            $("#bpemail").css('background-color', '#ffe6e6');
            msgalerta += "E-mail inválido \n";
        }
        if ( msgalerta.length > 0 ) {
            alert ( "Verifique os seguintes campos:\n" + msgalerta );
            return false;
        }

    });


});