var searchOpen = false;
var cat;

$(function(){
    var heightform = $("#titre3").css("height");
    //ouverture/fermeture moteur recherche
    $("#bg_bas_contenu2").click(function () {
        if(searchOpen == false){
            searchOpen = true;
            $("#titre3 #imgmaison").hide();
            $("#contenu").hide();
            $("#description_moteur_pertinence").hide();
            $("#titre3").animate({
                width:"676px",
                height: "78px"
            }, "slow");
            $("#topen").hide();
            $("#tclose").show();
            $("#titre3 #moteur_index").hide();
            $(this).css("background-image", "url(/images/bg_bas_contenu2off.png)");
        }else{
            searchOpen = false;
            $(this).css("background-image", "url(/images/bg_bas_contenu2.png)");
            $("#titre3").animate({
                width:"676px",
                height: heightform
            }, "slow");
            $("#topen").show();
            $("#tclose").hide();
            $("#titre3 #moteur_index").show();
            $("#contenu").show();
            $("#titre3 #imgmaison").show();
            $("#description_moteur_pertinence").show();
        }
    });

    $(".changenb div.jqTransformSelectWrapper ul li a").click(function(){
        $("form.changenb").submit();
    });

    $("#searchBudget").slider({
        range: "min",
        value: 0,
        min: 0,
        max: 1000000,
        start: function(event, ui) {
            $("#searchBudgetValue").val(ui.value);
            $("#budget").html(ui.value).format({
                format:"#,###",
                locale:"fr"
            }).append(" €");
        },
        slide: function(event, ui) {
            $("#searchBudgetValue").val(ui.value);
            $("#budget").html(ui.value).format({
                format:"#,###",
                locale:"fr"
            }).append(" €");
        },
        change: function(event, ui) {
            $("#budget").html(ui.value).format({
                format:"#,###",
                locale:"fr"
            }).append(" €");
        }
    });
    //$("#amount").val($("#slider-range-min").slider("value"));

    $("#searchSurface").slider({
        range: "min",
        value: 0,
        min: 0,
        max: 300,
        start: function(event, ui) {
            $("#searchSurfaceValue").val(ui.value);
            $("#surface").html(ui.value).format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
        },
        slide: function(event, ui) {
            $("#searchSurfaceValue").val(ui.value);
            $("#surface").html(ui.value).format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
        },
        change: function(event, ui) {
            $("#surface").html(ui.value).format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
        }
    });
    //$("#input_surface").val($("#slider_surface").slider("value"));

    //charge la map
    load("carte_geoloc");
    $("#polyclear").hide();
    //dessine polygone
    $("#dessiner").click(function(){
        startPolygon('#735961',2,1,'#735961',0.30);
        $("#polyclear").show();
    });
    //effacer polygone
    $("#polyclear").click(function(){
        if(polygoneEnCours)cancelPolygon();
        $("#polyclear").hide();
        $("input[name='searchVille']").val("");
        $("input[name=searchGeo]").val("");
    });
    //on affiche le bouton effacer s'il y a un poly au chargement
    if($("input[name=searchGeo]").val()!="" && $("input[name=searchGeo]").val()!="null") $("#polyclear").show();

    //selection de la catégorie
    cat = $("input:checked[name=searchCategory]").val();
    $("input[name=searchCategory]").click(function () {
        cat = $(this).val();
        setCategorie(cat,false);
    });
    //chargement de la categorie
    setCategorie(cat,true);
    //chargement du type
    $("#type").switchFormSearch(true);

});

//fonction qui appelle le script d'autocompletion des villes
function run_autocomplete(url){
    $("#input_cp").autocomplete(url,{
        minChars: 1,
        width:215,
        dataType: "json",
        selectFirst: true,
        mustMatch: true,
        matchContains: true,
        autoFill: false,
        cacheLength: 50,
        forceSelect:true,
        max: 50,
        parse: function(data) {
            var rows = new Array();
            if(data!=undefined){
                for(var i=0; i<data.length; i++){
                    rows[i] = {
                        data: data[i],
                        value:data[i].name,
                        result:data[i].name
                    };
                }
            }
            return rows;
        },
        formatItem: function(data) {
            return data.name+" ("+data.codepostal+")";
        }
    }).result(function(event, data, formatted) {
        if(data!=undefined){
            if(polygoneEnCours)cancelPolygon();
            loadPolygon(data.polygone,'#735961',2,1,'#735961',0.30);
            goPolygone();
            $("#polyclear").show();
        }
    });
}

//chargement du formulaire
function setCategorie(categorie,isload){
    switch(categorie){
        case 'VE':case 'LO':case 'VI':
            $("#type").parents('.searchCol').show();
            $("#type").removeAttr("disabled");
            $("#searchOtherSelect").parents('.searchCol').show();
            $("#searchOtherSelect").removeAttr("disabled");
            $("#searchSurfaceValue").parents('.searchCol').show();
            $("#searchSurfaceValue").removeAttr("disabled");
            $("#amount").removeAttr("disabled");
            $("#piece").removeAttr("disabled");
            $("#type").parents(".jqTransformSelectWrapper ul li:gt(0)").show();
            if(categorie=="VE") $("#type").parents(".jqTransformSelectWrapper:first ul li:gt(1)").show();
            if(categorie=="LO") $("#type").parents(".jqTransformSelectWrapper:first ul li:gt(3)").hide();
            if(categorie=="VI") $("#type").parents(".jqTransformSelectWrapper:first ul li:gt(2)").hide();
            if(!isload){
                $("#type").parents(".jqTransformSelectWrapper:first ul li:first a").click();
                $("#type").change();
            }
            break;
        case 'NE':
            $("#type").parents('.searchCol').hide();
            $("#type").attr("disabled", true);
            $("#searchOtherSelect").parents('.searchCol').hide();
            $("#searchOtherSelect").attr("disabled", true);
            $("#searchSurfaceValue").parents('.searchCol').hide();
            $("#searchSurfaceValue").attr("disabled", true);
            $("#amount").attr("disabled", true);
            $("#piece").attr("disabled", true);
            break;
        case 'EL':
            $("#type").parents(".jqTransformSelectWrapper:first ul li:gt(0)").show();
            $("#type").parents(".jqTransformSelectWrapper:first ul li:gt(3)").hide();
            if(!isload){
                $("#type").parents(".jqTransformSelectWrapper:first ul li:first a").click();
                $("#type").change();
            }
            //setSliderOptions("#searchBudget",0,2000,50,false);
            break;
        case 'EV':
            $("#type").parents(".jqTransformSelectWrapper:first ul li:gt(0)").show();
            $("#type").parents(".jqTransformSelectWrapper:first ul li:gt(3)").show();
            if(!isload){
                $("#type").parents(".jqTransformSelectWrapper:first ul li:first a").click();
                $("#type").change();
            }
            //setSliderOptions("#searchBudget",0,5000,50,false);
            break;
        case "expert":case"diagnos":
            $("#searchMetier").parents('.searchCol').hide();
            $("#searchMetier").attr("disabled", true);
            break;
        case "agence":
            $("#searchMetier").parents('.searchCol').show();
            $("#searchMetier").removeAttr("disabled");
            break;
    }
}

var setSliderOptions //triche pour accéssibilité de la fonction setSliderOptions

(function($){
    $.fn.switchFormSearch = function(isLoadedPage){

        setSliderOptions = function (el,min,max,step,hide) {
            var namevalue = el+"Value"
            el = $(el);
            if(hide == true){
                //el.parents('.searchCol').hide();
                $(namevalue).attr("disabled", true);
            }else{
                $(namevalue).removeAttr("disabled");
                //el.parents('.searchCol').show();

                el.slider("option", "min",min);
                el.slider("option", "max",max);

                if(isLoadedPage != true){
                    el.slider('value',min);
                    $(namevalue).val("0");
                }else{
                    el.slider('value',$(namevalue).val());
                }

                el.slider('option', 'step',step);

            // $(el).find('span').hide();
            }
        };

        if(this.val() == -1){
            alert('Veuillez choisir un type de bien');
        }else{
            switch(this.val()){
                case 'M':
                    $('.nbpiece').show();
                    $('#piece').removeAttr("disabled");
                    $("#searchOtherSelect option").removeAttr("disabled");
                    $("#searchOtherSelect option[value='etage']").attr('selected', false).attr("disabled", "disabled");
                    $("#searchOtherSelect option[value='balcon']").attr('selected', false).attr("disabled", "disabled");
                    $("#searchOtherSelect option[value='rdc']").attr('selected', false).attr("disabled", "disabled");
                    $("#searchOtherSelect option[value='ascenceur']").attr('selected', false).attr("disabled", "disabled");
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 500
                    });
                    setSliderOptions("#searchSurface",0,200,10,false);
                    if(cat=="LO")
                        setSliderOptions("#searchBudget",0,3000,50,false);
                    else
                        setSliderOptions("#searchBudget",0,1000000,25000,false);
                    break;
                case 'A':
                    $('.nbpiece').show();
                    $('#piece').removeAttr("disabled");
                    $("#searchOtherSelect option").removeAttr("disabled");
                    $("#searchOtherSelect option[value='piscine']").attr('selected', false).attr("disabled", "disabled");
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 500
                    });
                    setSliderOptions("#searchSurface",0,200,10,false);
                    if(cat=="LO")
                        setSliderOptions("#searchBudget",0,1500,50,false);
                    else
                        setSliderOptions("#searchBudget",0,1000000,25000,false);
                    break;
                case 'T':
                    $('.nbpiece').hide();
                    $('#piece').attr("disabled", true);
                    $("#searchOtherSelect").each(function(){
                        $("#searchOtherSelect option").removeAttr("selected").attr("disabled", true);
                    });
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 500
                    });
                    setSliderOptions("#searchSurface",0,10000,500,false);
                    setSliderOptions("#searchBudget",0,500000,10000,false);
                    break;
                case 'G':
                    $('.nbpiece').hide();
                    $('#piece').attr("disabled", true);
                    $("#searchOtherSelect").each(function(){
                        $("#searchOtherSelect option").removeAttr("selected").attr("disabled", true);
                    });
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 500
                    });
                    setSliderOptions("#searchSurface",0,50,10,false);
                    if(cat=="LO")
                        setSliderOptions("#searchBudget",0,200,10,false);
                    else
                        setSliderOptions("#searchBudget",0,100000,1000,false);
                    break;
                case "Studio":case "T1":case "T2":case "T2C":case "T3C":case "T4C":
                    setSliderOptions("#searchBudget",0,1000,50,false);
                    break;
                case 'B':case 'L':case 'C':
                    if($("input[name=searchCategory]:checked").val()=="EL"){
                        setSliderOptions("#searchSurface",0,2000,50,false);
                        setSliderOptions("#searchBudget",0,2000,50,false);
                    }else{
                        setSliderOptions("#searchSurface",0,2000,50,false);
                        setSliderOptions("#searchBudget",0,5000,50,false);
                    }
                    break;
                case 'F':
                    setSliderOptions("#searchSurface",0,500,50,false);
                    setSliderOptions("#searchBudget",0,1000000,25000,false);
                    break;
                default:case 'Tous':
                    $('.nbpiece').show();
                    $("#searchOtherSelect option").removeAttr("disabled");
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 500
                    });
                                
                    switch(cat){
                        case "etudiant":
                            setSliderOptions("#searchBudget",0,1000,50,false);
                            break;
                        case "EV":
                            setSliderOptions("#searchSurface",0,2000,50,false);
                            setSliderOptions("#searchBudget",0,1000000,25000,false);
                            break;
                        case "EL":
                            setSliderOptions("#searchSurface",0,2000,50,false);
                            setSliderOptions("#searchBudget",0,2000,50,false);
                            break;
                        case "LO":
                            setSliderOptions("#searchSurface",0,200,10,false);
                            setSliderOptions("#searchBudget",0,3000,50,false);
                            break;
                        default:
                            setSliderOptions("#searchSurface",0,200,10,false);
                            setSliderOptions("#searchBudget",0,1000000,25000,false);
                            break;

                    }

                    break;
                    
            }
        }
    }
})(jQuery);

//fonction qui ferme le moteur de recherche
function close_search(){
    $("#titre3 #imgmaison").hide();
    $("#contenu").hide();
    $("#description_moteur_pertinence").hide();
    $("#titre3").css("height","78px");
    $("#topen").hide();
    $("#tclose").show();
    $("#titre3 #moteur_index").hide();
    $("#bg_bas_contenu2").css("background-image", "url(/images/bg_bas_contenu2off.png)");
    searchOpen = true;
}




