var searchOpen = false;
var searchTown = false;
var searchOpenTown = false;
$(document).ready(function(){

    $("#formMailAlert").jqTransform();

    $(".offerSelectionAdd a").click(function(){
        var thisis = $(this);

        $.post('/index.php?module=annonce&action=ajax:addSelection',{
            id : $(this).attr("id")
        }, function(data) {
            if(thisis.html()=="Ajouter à ma sélection"){
                thisis.html("Retirer de ma sélection");
            }else{
                if($("#MySelection .selection").length != 0){
                    location.reload();
                    return true;
                }
                thisis.html("Ajouter à ma sélection");
            }
            $("#btnTopperSelection span").html(data);
        });

    });
    $(".offersection.selection div.topper a").click(function(){
        $.post('/index.php?module=annonce&action=ajax:addSelection',{
            id : $(this).attr("id")
        }, function() {
            location.reload();
            return true;
        });
    });

    $("form#formSearch").jqTransform();

    //aide pertinence
    $("a#lapertinence").colorbox({
        width:'700px',
        height:'550px',
        inline:true,
        href:"#pertinence"
    });

    //aide pertinence
    $("#reziseMap").colorbox({
        width:'750px',
        height:'550px',
        inline:true,
        href:"#formSearch .righter",
        onComplete:function(){
            var center = map.getCenter();
            map.checkResize();
            map.setCenter(center);
        },
        onClosed:function(){
            map.checkResize();
            goPolygone(polygoneEnCours);
        }
    });

    //ouverture/fermeture moteur recherche
    $("#btnSearchUpDown").click(function () {
        if(searchOpen == false){
            searchOpen = true;
            $("#helpopen").show();
            $("#formSearch").hide();
            //$("#mailAlert").show();
            $("#search").animate({
                width:"980px",
                height: "36px"
            }, "slow");
            $(this).addClass("down");
        }else{
            searchOpen = false;
            $("#helpopen").hide();
            // $("#mailAlert").hide();
            $(this).removeClass("down");
            $("#search").animate({
                width:"980px",
                height: "376px"
            }, "slow");
            $("#formSearch").show();

        }
    });

    //gestion des slider du moteur
    $("#searchSurface").slider({
        range: "min",
        value: $("#searchSurfaceValue").val(),
        min: 0,
        max: 2000,
        step: 10,
        start: function(event, ui) {
            $("#searchSurface a").html("<span>"+ui.value+"</span>");
            $("#searchSurface a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchSurface a span").prepend("+ ");
        },
        change: function(event, ui) {
            $("#searchSurface a").html("<span>"+ui.value+"</span>");
            $("#searchSurface a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchSurface a span").prepend("+ ");
            if(ui.value<=0) $("#searchSurface a span").hide();
        },
        slide: function(event, ui) {
            $("#searchSurfaceValue").val(ui.value);
            $("#searchSurface span").text(ui.value);
            $("#searchSurface a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchSurface a span").prepend("+ ");
        }
    });
    if($("#searchSurfaceValue").val()!=0)$("#searchSurface a").html("<span>"+$("#searchBudgetValue").val()+" m²</span>");
    if($("#searchSurfaceValue").is('*')) $("#searchSurfaceValue").val($("#searchSurface").slider("value"));

    $("#searchSurfaceLand").slider({
        range: "min",
        value:$("#searchSurfaceLandValue").val(),
        min: 0,
        max: 10000,
        step: 50,
        start: function(event, ui) {
            
            $("#searchSurfaceLand a").html("<span>"+ui.value+"</span>");
            $("#searchSurfaceLand a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchSurfaceLand a span").prepend("+ ");
        },
        change: function(event, ui) {
            $("#searchSurfaceLand a").html("<span>"+ui.value+"</span>");
            $("#searchSurfaceLand a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchSurfaceLand a span").prepend("+ ");
            if(ui.value<=0) $("#searchSurfaceLand a span").hide();
        },
        slide: function(event, ui) {
            $("#searchSurfaceLandValue").val(ui.value);
            $("#searchSurfaceLand span").text(ui.value);
            $("#searchSurfaceLand a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" m²");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchSurfaceLand a span").prepend("+ ");
        }
    });
    // if($("#searchSurfaceLandValue").val()!=0) $("#searchSurfaceLand a").html("<span>"+$("#searchSurfaceLandValue").val()+" m²</span>");
    //if($("#searchSurfaceLandValue").is('*')) $("#searchSurfaceLandValue").val($("#searchSurfaceLand").slider("value"));


    $("#searchBudget").slider({
        range: "min",
        value: $("#searchBudgetValue").val(),
        min: 0,
        max: 1000000,
        step: 25000,
        start: function(event, ui) {
            $("#searchBudget a").html("<span>"+ui.value+"</span>");
            $("#searchBudget a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" €");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchBudget a span").prepend("+ ");
        },
        change: function(event, ui) {
            $("#searchBudget a").html("<span>"+ui.value+"</span>");
            $("#searchBudget a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" €");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchBudget a span").prepend("+ ");
            if(ui.value<=0) $("#searchBudget a span").hide();
        },
        slide: function(event, ui) {
            $("#searchBudgetValue").val(ui.value);
            $("#searchBudget span").text(ui.value);
            $("#searchBudget a span").format({
                format:"#,###",
                locale:"fr"
            }).append(" €");
            var maxui = $(this).slider( "option", "max" );
            if(maxui==ui.value) $("#searchBudget a span").prepend("+ ");
        }
    });
    //if($("#searchBudgetValue").val()!=0) $("#searchBudget a").html("<span class='mil'>"+$("#searchBudgetValue").val()+" €</span>");
    //if($("#searchBudgetValue").is('*')) $("#searchBudgetValue").val($("#searchBudget").slider("value"));

    $("select[name='limitCount']").change(function (){
        $(this).parents('form').submit();
    });


    //selection de la catégorie
    $("input[name=searchCategory]").click(function () {
        $('.searchCol').show();
        switch($(this).val()){
            case 'viager':
                $("#searchType").parents("p.searchCol").find("ul li:gt(1)").hide();
                $("#searchType").parents(".searchCol ul li:first a").click();
                $("#searchType").change();
                break;
            case 'ancien':
                $("#searchType").parents("p.searchCol").find("ul li:gt(1)").show();
                $("#searchType").parents(".searchCol ul li:first a").click();
                $("#searchType").change();
                break;
            case 'EL':
                $("#searchType").parents(".searchCol ul li:gt(2)").hide();
                $("#searchType").parents(".searchCol ul li:first a").click();
                $("#searchType").change();
                setSliderOptions("#searchBudget",0,2000,50,false);
                break;
            case 'EV':
                $("#searchType").parents(".searchCol ul li:gt(2)").show();
                $("#searchType").parents(".searchCol ul li:first a").click();
                $("#searchType").change();
                setSliderOptions("#searchBudget",0,5000,50,false);
                break;
        }
    });
    $("#searchType").switchFormSearch(true);

    //searchOther
    /*$("#searchOtherSelect").dropdownchecklist({
        width: 300
    });*/

    //charge la map
    load("searchMap");


    //clear du polygone si pas de ville
    $("#town").blur(function(){
        if($("#town").val()==""){
            searchTown =true;
            if(polygoneEnCours)cancelPolygon();
        }

    });
    $("#town").change(function(){
        searchTown = false;
    });

});

//fonction qui ferme le moteur de recherche
function close_search(){
    $("#helpopen").show();
    $("#formSearch").hide();
    $("#search").css("height","28px");
    $("#btnSearchUpDown").addClass("down");
    searchOpen = true;
}

function selecttown(id,reload){
    $.getJSON("/index.php?module=annonce&action=ajax:getville&q="+id,function(data) {
        if(data!=undefined){
            searchTown =true;
            $("#town").val(data.name);
            if(polygoneEnCours)cancelPolygon();
            loadPolygon(data.polygone,'#735961',2,1,'#735961',0.30);
            goPolygone(polygoneEnCours);
        }
        if(reload==1){
            $("#formSearch").submit();
        }
    });
}

//fonction qui appelle le script d'autocompletion des villes
function run_autocomplete(url){
    url = url.replace(/\&amp;/g,'&');
    $("#town").autocomplete(url,{
        minChars: 1,
        width:310,
        dataType: "json",
        selectFirst: false,
        mustMatch: false,
        matchContains: true,
        autoFill: false,
        cacheLength: 1000,
        forceSelect:false,
        max: 50,
        parse: function(data) {
            var rows = new Array();
            if(data!=undefined){
                searchTown =false;
                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) {
            searchTown =false;
            searchOpenTown=true;
            return data.name+" ("+data.codepostal+")";
        }
    }).result(function(event, data, formatted) {
        if(data!=undefined){
            searchTown =true;
            if(polygoneEnCours)cancelPolygon();
            loadPolygon(data.polygone,'#735961',2,1,'#735961',0.30);
            goPolygone(polygoneEnCours);
        }
    });

}


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();
            }
        };

        var cat = $("input[name='categorie']").val();
        if(this.val() == -1){
            alert('Veuillez choisir un type de bien');
        }else{
            switch(this.val()){
                case 'M':
                    $('#searchNumberRoom').parents('.searchCol').show();
                    $('#searchNumberPiece').parents('.searchCol').show();
                    $('#searchNumberRoom').removeAttr("disabled");
                    $('#searchNumberPiece').removeAttr("disabled");
                    $("#searchOtherSelect option").removeAttr("disabled");
                    $("#searchOtherSelect option[value='etage']").attr('selected', false).attr("disabled", "disabled");
                    $("#searchOtherSelect option[value='lastetage']").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: 368
                    });
                    $("#othercrit").show();
                    setSliderOptions("#searchSurface",0,200,10,false);
                    setSliderOptions("#searchSurfaceLand",0,2000,100,false);
                    if(cat=="location")
                        setSliderOptions("#searchBudget",0,3000,50,false);
                    else
                        setSliderOptions("#searchBudget",0,1000000,25000,false);
                    break;
                case 'A':
                    $('#searchNumberRoom').parents('.searchCol').show();
                    $('#searchNumberPiece').parents('.searchCol').show();
                    $('#searchNumberRoom').removeAttr("disabled");
                    $('#searchNumberPiece').removeAttr("disabled");
                    $("#searchOtherSelect option").removeAttr("disabled");
                    $("#searchOtherSelect option[value='piscine']").attr('selected', false).attr("disabled", "disabled");
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 368
                    });
                    $("#othercrit").show();
                    setSliderOptions("#searchSurface",0,200,10,false);
                    setSliderOptions("#searchSurfaceLand",0,0,0,true);
                    if(cat=="location")
                        setSliderOptions("#searchBudget",0,1500,50,false);
                    else
                        setSliderOptions("#searchBudget",0,1000000,25000,false);
                    break;
                case 'T':
                    $('#searchNumberRoom').parents('.searchCol').hide();
                    $('#searchNumberPiece').parents('.searchCol').hide();
                    $('#searchNumberRoom').attr("disabled", true);
                    $('#searchNumberPiece').attr("disabled", true);
                    $("#searchOtherSelect").each(function(){
                        $("#searchOtherSelect option").removeAttr("selected").attr("disabled", true);
                    });
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 368
                    });
                    $("#othercrit").hide();
                    setSliderOptions("#searchSurface",0,5000,100,false);
                    setSliderOptions("#searchSurfaceLand",0,0,0,true);
                    setSliderOptions("#searchBudget",0,500000,10000,false);
                    break;
                case 'G':
                    $('#searchNumberRoom').parents('.searchCol').hide();
                    $('#searchNumberPiece').parents('.searchCol').hide();
                    $('#searchNumberRoom').attr("disabled", true);
                    $('#searchNumberPiece').attr("disabled", true);
                    $("#searchOtherSelect").each(function(){
                        $("#searchOtherSelect option").removeAttr("selected").attr("disabled", true);
                    });
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 368
                    });
                    $("#othercrit").hide();
                    setSliderOptions("#searchSurface",0,50,10,false);
                    setSliderOptions("#searchSurfaceLand",0,0,0,true);
                    if(cat=="location")
                        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":
                    $("#searchOtherSelect").dropdownchecklist("destroy");
                    $("#searchOtherSelect").dropdownchecklist({
                        width: 368
                    });
                    setSliderOptions("#searchSurface",0,100,5,false);
                    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);
                    }
                    
                    $('#searchActivite').parents('.searchCol').hide();
                    $('#searchActivite').attr("disabled", true);
                    break;
                case 'F':
                    $('#searchActivite').parents('.searchCol').show();
                    $('#searchActivite').removeAttr("disabled");
                    setSliderOptions("#searchSurface",0,500,50,false);
                    setSliderOptions("#searchBudget",0,1000000,25000,false);
                    break;
            }
        }
    }
})(jQuery);
