/*
    /////////////////////////////////////////////////////////////
    file: /portail/selogerneuf_X_v3/base/recherche/js/dev/recherche.js
    function: include all JS useful for the page: RECHERCHE / ECO-HABITAT / CARTO
        - refine.pagging
        - refine
        - recherche
    last modified: Janvier 2012
    by: Anne-Laure Hoareau
    /////////////////////////////////////////////////////////////
*/


/*--------------------------Refine Pagging-------------------------------*/
function RefinePaging(refine, ltPages, ltPosition, btPrev, btNext, pages)
{
    this.currentPage = 1;
    this.refine = refine;
    this.$ltPages = ltPages;
    this.$ltPosition = ltPosition;
    this.$btPrev = btPrev;
    this.$btNext = btNext;
    this.$pages = pages;
    var refinePaging = this,
        idtt = '',
        test_prog = '';

    this.$pages.find(".lia").live("click", function(e) {
        test_prog = $j('#prgmOff').length;
        if( test_prog > 0){
            idtt = 2;
        } else {
            idtt=9;
        }
        var page = parseInt($j(this).children("span").text());
        refinePaging.refine.launchRequest(idtt, page);
        e.preventDefault();
        return false;
    });
    this.$btPrev.live("click", function(e) {
        test_prog = $j('#prgmOff').length;
        if( test_prog > 0){
            idtt = 2;
        } else {
            idtt=9;
        }
        if ($j(this).not('.nav_back_off').length === 1)
            refinePaging.refine.launchRequest(idtt, refinePaging.currentPage - 1);
        e.preventDefault();
        return false;
    });
    this.$btNext.live("click", function(e) {
        test_prog = $j('#prgmOff').length;
        if( test_prog > 0){
            idtt = 2;
        } else {
            idtt=9;
        }
        if ($j(this).not('.nav_forward_off').length === 1)
            refinePaging.refine.launchRequest(idtt, refinePaging.currentPage + 1);
        e.preventDefault();
        return false;
    });
}

RefinePaging.prototype.Update = function(nbResults, currentPage, totalPages)
{
    this.$ltPages.html([nbResults, ' r&eacute;sultat', (nbResults > 1 ? 's' : '')].join(''));
    
    if (nbResults > 100) { // afficher message d'avertissement si + de 100 résultats
        $j("#container_resultats_msg").show();
    } else {
        $j("#container_resultats_msg").hide();
    }
    
    this.$ltPosition.text(currentPage < 1 ? 'Page 1 sur 1' : ['Page ', currentPage, ' sur ', totalPages].join(''));
    
    this.$btPrev.attr('class', 'nav_back_' + (currentPage <= 1 ? 'off' : 'on'));
    this.$btNext.attr('class', 'nav_forward_' + (currentPage === totalPages ? 'off' : 'on'));
    this.currentPage = currentPage;
    if (totalPages > 1)
    {
        var multipage = ['<table cellpadding="0" cellspacing="0" align="center"><tr><td>'];
        multipage.push('<', currentPage === 1 ? 'span' : 'a href="#"', 
            ' class="nav_back_', currentPage === 1 ? 'off' : 'on','" id="pgprec_2"><!-- --></', 
            currentPage === 1 ? 'span' : 'a','>');
        var begin = currentPage - 5;
        if (begin < 1) begin = 1;
        for (var i = begin; i <= totalPages && i < begin + 10; i++)
        {
            if (i != currentPage) {
                multipage.push('<a class="lia" href="#">');
            }
            multipage.push('<span class="libasic">', i, '</span>');
            if (i != currentPage) {
                multipage.push('</a>');
            }
        }
        multipage.push('<', currentPage === totalPages ? 'span' : 'a href="#"', 
            ' class="nav_forward_', currentPage === totalPages ? 'off' : 'on','" id="pgsuiv_2" href="#"><!-- --></', 
            currentPage === totalPages - 1 ? 'span' : 'a','>');
        multipage.push('</td></tr></table>');
        this.$pages.html(multipage.join(''));
    }
    else { this.$pages.empty(); }
}

/*------------------------------------------------------------*/
/*------------------------- Refine -----------------------------------*/

function omniture_process_preliste(ajax){
    for (var i = 0; i < omniture_action.length; i++){  
        omniture_action[i](s);
    }   

 if(omniture_action.length != 0){   
    var s_code=s.t();          
    if(s_code)document.write(s_code)  
 }      
  
     if(!ajax){
     omniture_action = [];  
     s.products='';
     s.events='';
     s.prop13='';
     s.prop14='';  
     s.prop15='';
     s.prop17=''; 
     s.prop18='';
     s.prop19='';
     s.prop20='';
     s.prop21='';
     s.prop22='';
     s.prop23='';  
     s.prop24='';
     s.prop25='';
     s.prop26='';
     s.prop27='';
     s.prop31='';
     s.prop33='';  
     s.prop34='';  
     s.eVar26='';
     s.eVar35='';
     s.eVar36='';
     s.eVar38='';
     s.eVar41='';
     s.eVar42='';
     s.eVar43='';
     s.eVar44='';
     s.eVar46='';
     s.eVar49='';
     s.eVar17='';
    }
}
        
function omniture_process_preliste_ajax(){
 omniture_action = [];  
 s.products='';
 s.events='';
 s.prop13='';
 s.prop14='';  
 s.prop15='';
 s.prop17=''; 
 s.prop18='';
 s.prop19='';
 s.prop20='';
 s.prop21='';
 s.prop22='';
 s.prop23='';  
 s.prop24='';
 s.prop25='';
 s.prop26='';
 s.prop27='';
 s.prop31='';
 s.prop33='';  
 s.prop34='';  
 s.eVar26='';
 s.eVar35='';
 s.eVar36='';
 s.eVar38='';
 s.eVar41='';
 s.eVar42='';
 s.eVar43='';
 s.eVar44='';
 s.eVar46='';
 s.eVar49='';
 s.eVar17='';   
    $j(".tracking_omniture_bcl script").each( function() {
          eval($j(this).html());          
    }); 
    omniture_process_preliste(true);
} 
var recharge = 0;
function Refine()
{
    this.ajaxQuery = null;
    this.ajaxLocQuery = null;
    this.textBlockPub = '';
    this.type = 'habiter';
    var oldQuery = new SearchQuery(document.location.search);
    this.lastRnd = { rnd1: oldQuery.GetFirstValueOrDefault("rnd1"), 
                     rnd2: oldQuery.GetFirstValueOrDefault("rnd2") };
    this.types = ['habiter', 'investir', 'terrains'];
    this.$frLocPanel = $j('#france_localisation');
    this.$listContainer = $j('#container_resultats');
    
    this.$btPrev = $j('.nav_back_on, .nav_back_off');
    this.$btNext = $j('.nav_forward_on, .nav_forward_off');
    
    this.refinePaging = new RefinePaging(
        this,
        $j('#resultats_top_nombre'),
        $j('#rech_nav1 > .nav_pages'),
        $j('.nav_back_on, .nav_back_off'),
        $j('.nav_forward_on, .nav_forward_off'),
        $j('#rech_nav2 td')
    );
    
    this.breadcrumbInfo = $j('h2').text();
    
    var currentRefine = this;
    if (typeof($j.History) != 'undefined') {
        $j.History.bind(function(hash){
            var query = currentRefine.hashToQuery(hash);
            if (query === null || query.length === 0){
                query = document.location.search.substr(1);
                
            }
            /*
                if (document.location.hash.indexOf('expiree') === -1) {
                    currentRefine.executeRequest(query);
                }
            */
        });
        
    }
    // if there is a hash on first arrive, we change the url of the page
    // also check that there is no "expiree" after the hash
 /*   if ((document.location.hash != null && document.location.hash.length > 0) && (document.location.hash.indexOf('expiree') === -1)){
        document.location = 'http://' + document.location.host + document.location.pathname + '?' + this.hashToQuery(document.location.hash.substr(1));
    }
*/
    $j.browser.msie8 = $j.browser.msie && /MSIE 8\.0/i.test(window.navigator.userAgent);
       
    this.initRefine();
    if(recharge === 0 ){
        $j('.refiner_add_ville').live('click', function(e){ currentRefine.AddUITown(); e.preventDefault(); });
        $j('.refiner_del_ville').live('click', function(e){ currentRefine.DelUITown($j(this)); currentRefine.launchRequest(); e.preventDefault(); });
       recharge ++;
    }
}

Refine.prototype.onLaunchRequest = null;

Refine.prototype.onSuccessRequest = null;

Refine.prototype.onErrorRequest = null;

Refine.prototype.SetCurrentType = function(type)
{
    var checked = $j("#criteria_type_bien input:checked:visible").length > 0;
    if (type != this.type)
    {
        switch (type)
        {
            case "habiter":
            case "investir":
                if (!checked)
                    $j("#refiner_programme").attr("checked", "checked");
                break;
            case "terrains":
                if (!checked)
                    $j("#refiner_terrains_programme").attr("checked", "checked");
                break;
        }
    }
    this.type = type;
}

Refine.prototype.getCurrentCountryElement = function()
{
    return $j('#refiner_pays');
}

Refine.prototype.getCountry = function()
{
    return this.getCurrentCountryElement().val();
}

Refine.prototype.getCountryText = function()
{
    var elem = this.getCurrentCountryElement();
    if (elem.is(":visible"))
        return elem.find("option:selected").text();
    return null;
}

Refine.prototype.getCurrentRegionElement = function()
{
    return $j('#refiner_region');
}

Refine.prototype.getRegion = function()
{
    return this.getCurrentRegionElement().val();
}

Refine.prototype.getRegionText = function()
{
    var elem = this.getCurrentRegionElement();
    if (elem.is(":visible"))
        return elem.find("option:selected").text();
    return null;
}

Refine.prototype.getCurrentDepartementElement = function()
{
    return $j('#refiner_departement');
}

Refine.prototype.getDepartementText = function()
{
    var elem = this.getCurrentDepartementElement();
    if (elem.is(":visible"))
        return elem.find("option:selected").text();
    return null;
}

Refine.prototype.getDepartement = function()
{
    return this.getCurrentDepartementElement().val();
}

Refine.prototype.getCurrentTownElement = function()
{
    return $j('#france_localisation select[name="ci"]');
}

Refine.prototype.getTown = function()
{
    var vals = [];
    this.getCurrentTownElement().each(function()
        { 
            var $this = $j(this);
            if ($this.is(":visible"))
            {
                var val = $this.val();
                if (val != null && val.length > 0) vals.push(val); 
            }
        });
    return vals;
}

Refine.prototype.getTownTexts = function()
{
    var vals = [];
    this.getCurrentTownElement().each(function()
        { 
            var $this = $j(this);
            if ($this.is(":visible"))
            {
                if ($this.val() === "")
                    return;
                var val = $this.find("option:selected").text();
                if (val != null && val.length > 0) vals.push(val); 
            }
        });
    return vals;
}

Refine.prototype.getBreadcrumbInfo = function()
{
    return this.breadcrumbInfo;
}

Refine.prototype.hideDetailLoc = function()
{
    this.$frLocPanel.hide();
}

Refine.prototype.showDetailLoc = function()
{
    this.$frLocPanel.show();
}

Refine.prototype.launchUpdateDetailLoc = function(name)
{
    if(this.ajaxLocQuery != null){
        this.ajaxLocQuery.abort();
    }

    var myQuery = new SearchQuery(""),
        idtt ={},
        logement = $j('#prgmOff').length;
    // depending on what change we give the right param to the query
    switch (name)
    {
        case "country":
            myQuery.SetParameter('idpays', this.getCountry());
            break;
        case "region":
            myQuery.SetParameter('div', this.getRegion());
            break;
        case "dep":
            myQuery.SetParameter('sdiv', this.getDepartement());
            break;
        case "town":
            myQuery.SetParameter('ci', this.getTown().join(','));
            break;
        default:
            var townVal = this.getTown();
            if (townVal != null && townVal.length > 0)
            {
                myQuery.SetParameter('ci', townVal.join(','));
            }
            else
            {
                var depVal = this.getDepartement();
                if (depVal != null && depVal.length > 0)
                {
                    myQuery.SetParameter('sdiv', depVal);
                }
                else
                {
                    return;
                }
            }
            break;
    }
    
    idtt.name = 'idtt';
    if ( logement > 0 ) {
        idtt.values = 2;
    } else {
        idtt.values = 9;
    }    

    var dynParams = this.getParameters('', $j('#refiner_criteria .criteria_' + this.type + ' input[type="checkbox"]:checked:visible' +
                                ',#refiner_criteria  .criteria_' + this.type + ' input[type="radio"]:checked:visible' +
                                ',#refiner_criteria  .criteria_' + this.type + ' select:visible option:selected' +
                                ',#refiner_criteria  .criteria_' + this.type + ' input[type="text"]:visible'));
    
    for (var i = 0; i < dynParams.length; i++)
    {
        var currentDynParam = dynParams[i];
        // dynparam may contain localisation param, we skip it
        if (currentDynParam.name === "ci" || currentDynParam.name === "sdiv" ||
            currentDynParam.name === "div" || currentDynParam.name === "idpays")
            continue;
        myQuery.AddValue(currentDynParam.name, currentDynParam.values);
    }
    
    myQuery.AddValue(idtt.name, idtt.values);
    var currentRefine = this;
    this.ajaxLocQuery = $j.ajax(
    {
        url:'/update_localisation_json.htm',
        data:myQuery.toString(),
        timeout:15000,
        success:function(data)
        {
            $j("#current_recherche").val(myQuery.toString());
            currentRefine.updateDetailLoc(eval(data)[0]);
            initDetailClicks();
        } 
    });
}

Refine.prototype.updateDetailLoc = function(data)
{
    this.getCurrentRegionElement().html(this.createOptions(data.region));
    this.getCurrentDepartementElement().html(this.createOptions(data.departement));
    var selected = [];
    for (var j = 0; j < data.town.length; j++) {
        if (data.town[j].selected) selected.push(j);
        data.town[j].selected = false;
    }
    var options = this.createOptions(data.town);
    var selects = this.getCurrentTownElement();
    for (var i = 0; i < selects.length; i++) {
        $j(selects[i]).html(options);
        if (selected.length > 0) {
            $j(selects[i]).children(':eq(' + selected.pop() + ')')
                .attr("selected", "selected");
        }
    };
}


Refine.prototype.createOptions = function(values)
{
    var options = [];
    var name ="";
    for (var i = 0; i < values.length; i++)
    {
        name = values[i].label.split('(');
        options.push('<option value="', values[i].value,
            '" ', (values[i].selected ? 'selected' : ''),'>', 
           name[0], "</option>");
        // code below for type d'investissements
        if (values[i].selected && values[i].article_id) {
            var infos = $j('#CNTUNAME_' + values[i].article_id).html().split('|');
            $j('#lien_investir_type').attr('href', '/' + infos[0] + '/' + infos[1] + '/article.htm').attr("title","Plus d'infos pour investir en " + infos[2]);
        }
    }
    return options.join('');
}

Refine.prototype.createInputs = function(type, name, values, wrapTag)
{
    var options = [],
        classe= "";
    
    for (var i = 0; i < values.length; i++)
    {
        if (values[i].disabled) {
            classe= 'disabled';
        } else {
             classe= '';
        }
        if (wrapTag != undefined)
            options.push('<', wrapTag, '>');
        options.push('<input value="', values[i].value,
            '" ', (values[i].selected ? 'checked' : ''),
            ' ', (values[i].disabled ? 'disabled' : ''),
            ' name="', name, '" id="', name, '-', values[i].value,
            '" type="', type, '" /><label class="',classe,'" for="', name, '-', values[i].value, 
            '">', values[i].label, "</label>");
        if (wrapTag != undefined)
            options.push('</', wrapTag, '>');
    }
    return options.join('');
}

Refine.prototype.getParamInElement = function(element, rmStr)
{
    return element.id.substr(rmStr.length).split('|');
}

Refine.prototype.addParamValue = function(values, key, value)
{
    if (values[key] === null)
        values[key] = [];
    
    // check if val already exists (useful for quartier+location)
    var curValues = values[key];
    for (var k = 0; k < curValues.length; k++)
    {
        if (curValues[k] === value)
            break;
    }
    if (k === curValues.length)
        values[key].push(value);
}

Refine.prototype.getParameters = function(rmStr, elements)
{
    var len = elements.length;
    
    var values = new Object();
    var keys = [];
    var params = [];
    for (var i = 0; i < len; i++)
    {
        var elemNamer = elements[i].tagName.toLowerCase() === "option" ? elements[i].parentNode : elements[i];
        var name = elemNamer.name;
        if (name === undefined)
            name = elements[i].id;
        var names = name.split('|');
        var values = elements[i].value.split('|');
        for (var j = 0; j < names.length; j++)
        {
            params.push({name:names[j], values:values[j].split(',')});
        }
    }
    return params;
}

Refine.prototype.createQuery = function(idtt,page)
{   
    var myQuery = new SearchQuery(""),
        value_idtt = 9;
    var rnd;
    if (page === undefined) {
        // if no page set, then it's a new request and not
        // a pagination request (in this case we regenerate rnd)
        page = 1;
        rnd = this.genParamTri();

    }
    else {
        rnd = this.lastRnd;
    }
    var dynParams = this.getParameters('', $j('#refiner_criteria .criteria_' + this.type + ' input[type="checkbox"]:checked:visible' +
                                ',#refiner_criteria  .criteria_' + this.type + ' input[type="radio"]:checked:visible' +
                                ',#refiner_criteria  .criteria_' + this.type + ' select:visible option:selected' +
                                ',#refiner_criteria  .criteria_' + this.type + ' input[type="text"]:visible' +
                                ', #resultats_top_tri select:visible option:selected'));

    for (var i = 0; i < dynParams.length; i++)
    {
        var currentDynParam = dynParams[i];
        // handle dom-tom as country
        if (currentDynParam.name === "idpays" && currentDynParam.values[0] === "97")
        {
            currentDynParam.values[0] = "250";
            myQuery.AddValue("cp", "97");
        }
        myQuery.AddValue(currentDynParam.name, currentDynParam.values);
        if(currentDynParam.name === "idtypebien"){
            value_idtt =2;
        }
        if( currentDynParam.name ==='si_constructible' && currentDynParam.values[0] === "1" ){
            myQuery.SetParameter('idtt', 2);
            myQuery.SetParameter('idtypebien', 4);
        }
        if( currentDynParam.name ==='typeinvestissement' && currentDynParam.values[0] === "512"){ // ????????  le 512 bug le refine ??????
            myQuery.SetParameter('typeinvestissement', 1);
        }
        if( currentDynParam.name ==='si_terrain' && currentDynParam.values[0] === "1" ){
            value_idtt = 9;
        }
        
    }
    if(idtt===2){
        value_idtt=2;
    }
    if( idtt===9 || value_idtt===9 ){
        myQuery.AddValue('idtt', 9);
        myQuery.SetParameter('idtypebien', 15);
    } else {
        myQuery.SetParameter('idtt', 2);
    }
    
    var villeParams = [];
    for (var j = 0; j < 3; j++) {
        villeParams[j] = $j('.refiner_ville_container:eq('+j+') select:visible option:selected').attr('title');
        villeParams[j] = noaccent(villeParams[j]);
        
    }
    myQuery.AddValue("ville",villeParams.join(','));
    
    
    if (myQuery.GetFirstValueOrDefault("ci")) {
        myQuery.RmParameter("sdiv");
        myQuery.RmParameter("div");
        myQuery.RmParameter("idpays");
    } else if (myQuery.GetFirstValueOrDefault("sdiv")) {
        myQuery.RmParameter("div");
        myQuery.RmParameter("idpays");
    }
    
    
    if (page != undefined) {
        myQuery.SetParameter("ANN_NEUFpg", page);
    }
    myQuery.SetParameter("rnd1", rnd.rnd1);
    myQuery.SetParameter("rnd2", rnd.rnd2);

    this.lastRnd = rnd;
    return myQuery;
    
}

Refine.prototype.executeRequest = function(query,bien)
{
    if (this.onLaunchRequest != null)
        this.onLaunchRequest();

    if(this.ajaxQuery != null){
        this.ajaxQuery.abort();
    }

    var currentRefine = this;
            //alert(query);
            
    this.ajaxQuery = $j.ajax(
    {  
        url:'/recherche_ajax.htm',
        data:query,
        timeout:15000,
        async:false,
        success:function(data)
        {
            $j("#current_recherche").val(query);
            searchQuery = new SearchQuery(query);
            currentRefine.successRequest(data);
            currentRefine.updateAltContent(query);
            initDetailClicks();
        },
        error:function()
        {
            if (currentRefine.onErrorRequest != null)
                currentRefine.onErrorRequest();
        }
    });
    this.disabled(bien);
    

    
}

Refine.prototype.queryToHash = function(query)
{
    return query.replace(/\//g,';').replace(/&/g,'/').replace(/=/g,':');
}

Refine.prototype.hashToQuery = function(hash)
{
    if (hash === null)
        return null;
    return hash.replace(/\//g,'&').replace(/:/g,'=').replace(/;/g,'/');
}
Refine.prototype.doublon = function(select){
    var value_select = '',
        value_ville = '',
        id = select.id,
        doublon = false,
        id = id.split('_'),
        select_ville = '',
        nb = id[2],
        mess_erreur = "<p id='mess_erreur'>Localité déjà sélectionné</p>";

    for (i = 0 ; i < select.options.length ; i++){
        if (select.options[i].selected) {
            value_select = select.options[i].value;
        }
    }
    for( j = 1; j <= 3; j++){
        if (j != nb) {
            select_ville = document.getElementById('refiner_ville_'+j+'');
            if (select_ville !== null) {
                for ( k = 0; k < select_ville.options.length; k++){
                    if (select_ville.options[k].selected) {
                        value_ville = select_ville.options[k].value;
                    }
                }
                if (value_ville === value_select){
                    doublon = true;
                }
            }
        }
    }
    // for IE
    if(select.options[0].selected){
        doublon = true;
    }
    
    if (doublon){
        select.options[0].selected = true;
        $j(mess_erreur).insertAfter("#france_localisation");
    } else {
        select.disabled = true;
        currentRefine.launchRequest();
    }

}
Refine.prototype.disabled = function(bien){
    var maison = $j('#refiner_maison'),
        appart = $j('#refiner_appartement');
        
    if ( bien === 'logement') {
        //check
        maison.attr('checked');
        maison.removeAttr('disabled');
        appart.attr('checked');
        appart.removeAttr('disabled');
        maison.next('label').removeClass('disabled');
        appart.next('label').removeClass('disabled');
    } else {
        //check
        maison.removeAttr('checked');
        maison.attr('disabled',"disabled");
        appart.removeAttr('checked');
        appart.attr('disabled',"disabled");
        maison.next('label').addClass('disabled');
        appart.next('label').addClass('disabled');
    }
}
Refine.prototype.launchRequest = function(idtt,page)
{
    var searchQuery = this.createQuery(idtt,page).toString(),
        prgmOff = $j('#prgmOff'),
        bien = '',
        terrain = document.getElementById('choix_refiner_terrains').checked,
        queryArray = searchQuery.split('&');

    $j('#mess_erreur').remove();

    $j.History.setHash(this.queryToHash(searchQuery));
    for (var i = 0; i < queryArray.length; i++) {
        if (queryArray[i].indexOf('tri') > -1) {
            tmp = queryArray[i].split('=');
            if (!tmp[1]) {
                /* Retravail de la query */
                tmp[1] = 'a_nb_pieces,a_px';
                queryArray[i] = tmp.join('=');
            }
        }
    }

    if ( idtt !== 1 && !terrain){
        if( prgmOff.length > 0 ){
            queryArray[queryArray.length]= 'idtt=2';
            bien = 'logement';
        } else {
            queryArray[queryArray.length]= 'idtt=9';
            bien = 'programme';
        }

        if( idtt !== undefined ){
            if( idtt === 2){   
                queryArray[queryArray.length+1]= 'idtypebien=1,2';
            } else {
                queryArray[queryArray.length+1]= 'idtypebien=15';            
            }
        }
    }

    
    searchQuery = queryArray.join('&');

    this.executeRequest(searchQuery, bien);

    if(document.getElementById("refiner_ville_1").value === "" ){
        $j('#elargissement').hide();
    } else {
        $j('#elargissement').show();
    }

    nav_secondaire();
    
}
// function delSelect, Remove Selected whose value is null 
Refine.prototype.delSelect = function(){
    var eq = 1;
    var numList = 2;
    for(i=1; i<3; i++){
        var select = document.getElementById("refiner_ville_"+numList+"");
        if(select){
            if(select.value === ''){
                $j(".refiner_ville_container:eq("+eq+")").remove();
                this.refreshTownOptions();
            }else{
                var eq = 2;
            }
            numList += 1;
        }
    }
}

Refine.prototype.successRequest = function(data)
{
    var currentRefine = this;

    this.$listContainer.fadeTo('fast', 0.5);
    this.$listContainer[0].innerHTML = data;
    
    var refineData = eval($j('#search_refine_json').val())[0];
    
    this.updateRefine(refineData.refine);

    this.textBlockPub = refineData.textepub;
    //this.updateDetailLoc(refineData.place);

    this.refinePaging.Update(
        refineData.paging.nbResults,
        refineData.paging.currentPage,
        refineData.paging.totalPages);
        
    this.$listContainer.fadeTo('fast', 1);
    if (this.onSuccessRequest != null)
        this.onSuccessRequest();
    $j("#layer_over").hide();
    $j("#refiner_loading").hide();
}

Refine.prototype.updateAltContent = function(query) {

    /* Checking for idtt and idtypebiens within the query */
    var queryArray = query.split('&'),
        idtt = '',
        idtb = '',
        tmp = '',
        new_query = '';
        
    for (var i = 0; i < queryArray.length; i++) {
        if (queryArray[i].indexOf('idtt') > -1) {
            tmp = queryArray[i].split('=');
            if (tmp[1]) {
                idtt = tmp[1];
                /* Retravail de la query */
                tmp[1] = '9';
                queryArray[i] = tmp.join('=');
            }
        }
       
        if (queryArray[i].indexOf('idtypebien') > -1) {
            tmp = queryArray[i].split('=');
            idtb = tmp[1].split(',');
            /* Retravail de la query */
            tmp[1] = '15';
            queryArray[i] = tmp.join('=');
        }
    }

    /* Build new query for link */
    new_query = queryArray.join('&');
    
    if (idtt === '2') {
        var test_idtb = false;
        var idtb_text = "Découvrez les programmes neufs contenant l'ensemble des logements<br />se rapportant à cette recherche";
        var idtb_text2 = "Découvrez les programmes neufs contenant l'ensemble des logements se rapportant à cette recherche";
        for (var j = 0; j < idtb.length; j++) {
            if (idtb[j] === 1 || idtb[j] === 2 || idtb[j] === 4) {
                test_idtb = true;
                if (idtb[j] === 4) {
                    idtb_text = "Découvrez les lotissements contenant l’ensemble des terrains<br />se rapportant à cette recherche";
                    idtb_text2 = "Découvrez les lotissements contenant l’ensemble des terrains se rapportant à cette recherche";
                    new_query += "&si_terrain=1";
                }
            }
        }
        if (test_idtb) {
            /* Mise à jour du contenu du block */
            var new_link = '<a href="recherche.htm?' + new_query + '" title="' + idtb_text2 + '" class="button_vers_prog"><!-- --></a>'

            $j("#container_resultats_vers_prog").html('<p>' + idtb_text + ' : <span>' + this.textBlockPub + '</span></p>' + new_link);
            $j("#container_resultats_vers_prog_top").html('<p>' + idtb_text2 + ' : <br /><span>' + this.textBlockPub + '</span></p>' + new_link);

            $j("#container_resultats_vers_prog,#container_resultats_vers_prog_top").show();
            $j("#container_resultats_vers_prog_top").parents("div").show();
        } else {
            $j("#container_resultats_vers_prog,#container_resultats_vers_prog_top").hide();
        }
    } else {
        $j("#container_resultats_vers_prog,#container_resultats_vers_prog_top").hide();
    }

    var domain = $j("#current_domain").val();
    $j("#pub_300_Right_iframe").attr('src', domain + '/recherche,frame_300_250.htm?' + query);
    $j("#pub_728_90_iframe").attr('src', domain + '/recherche,frame_728_90.htm?' + query);
    $j("#pub_300_600_iframe").attr('src', domain + '/recherche,frame_300_600.htm?' + query);
    $j("#pub_300_600_2_iframe").attr('src', domain + '/recherche,frame_300_600_2.htm?' + query);
    $j("#pub_300_encart_iframe").attr('src', domain + '/recherche,frame_300_encart.htm?' + query);
    $j("#blocAlerte_refine_top,#blocAlerte_refine_bottom_1,#blocAlerte_refine_bottom_2").attr('href', domain + '/recherche,alerte,creation.htm?' + query);
    $j("#rss_recherche_refine").attr('href', domain + '/rss,recherche.xml?' + query);
}

Refine.prototype.updateTypeBienItem = function(id, count, selected)
{
    var input = $j('#' + id);

    input.next('label').children('.refiner_count').text('(' + count + ')');
    if (count === 0) {
        input.attr('disabled', 'disabled');
        input.next('label').addClass('disabled');
    } else {
        input.removeAttr('disabled');
        input.next('label').removeClass('disabled');
    }
    if (selected) {
        input.attr('checked', 'checked');
    } else {
        input.removeAttr('checked');
    }
}

Refine.prototype.updateTypeBien = function(refineInfo)
{
    var nbapp = 0,
        nbmaison = 0,
        nbprog = 0,
        nbterrains = 0,
        selapp = false,
        selmaison = false,
        selprog = false,
        selterrains = false;
    
    for (var i = 0; i < refineInfo.values.length; i++) {
        switch (refineInfo.values[i].value) {
            case '1':
                nbapp = refineInfo.values[i].count;
                selapp = refineInfo.values[i].selected;
                break;
            case '2':
                nbmaison = refineInfo.values[i].count;
                selmaison = refineInfo.values[i].selected;
                break;
            case '15':
                nbprog = refineInfo.values[i].count;
                selprog = refineInfo.values[i].selected;
                if (selprog) 
                {
                    $j("#resultats_top_tri_selection_prg").show();
                    $j("#resultats_top_tri_selection").hide();
                }
                else
                {
                    $j("#resultats_top_tri_selection_prg").hide();
                    $j("#resultats_top_tri_selection").show();
                }
                break;
            case '4':
                nbterrains = refineInfo.values[i].count;
                selterrains = refineInfo.values[i].selected;
                break;
        }
    }
    this.updateTypeBienItem('refiner_appartement', nbapp, selapp);
    this.updateTypeBienItem('refiner_maison', nbmaison, selmaison);
    this.updateTypeBienItem('refiner_terrains_logement', nbterrains, selterrains);
    this.updateTypeBienItem('refiner_terrains_programme', nbprog, selprog);
}

Refine.prototype.updateRefine = function(refineData)
{
    for (var i = 0; i < refineData.length; i++)
    {
        var refineInfo = refineData[i];
        if (refineInfo.name === 'idtypebien')
        {    
            if (jQuery.inArray(this.type, refineInfo.types) >= 0)
                this.updateTypeBien(refineInfo);
            continue;
        }
        var $container = $j('#' + refineInfo.name + '_container');
        switch (refineInfo.type)
        {
            case 'select':
                $container = $container.find('select');
                $container.html(this.createOptions(refineInfo.values));
                break;
            case 'checkbox':
            case 'radio':
                $container[0].innerHTML = this.createInputs(refineInfo.type, refineInfo.name, refineInfo.values, 'p');
                break;
        }
    }
}

Refine.prototype.countryChange = function()
{
    if (this.getCountry() != "250")
    {
        this.hideDetailLoc();
        this.launchRequest();
        return;
    }
    this.launchUpdateDetailLoc('country');
    this.showDetailLoc();
}

Refine.prototype.AddUITown = function()
{   

    this.$frLocPanel = $j('#france_localisation');
    var selects = this.$frLocPanel.find("select[name='ci']");
    var count = selects.length;
    if (count >= 3) return;
    var $lastTownElem = this.$frLocPanel.find(".refiner_ville_container:last");
    $lastTownElem.clone().insertAfter($lastTownElem).find("select").val("").removeAttr("disabled");
    $j('.refiner_ville_container:eq(0) select').attr("id","refiner_ville_1");
    $j('.refiner_ville_container:eq(1) select').attr("id","refiner_ville_2");
    $j('.refiner_ville_container:eq(2) select').attr("id","refiner_ville_3");
    this.refreshTownOptions();
    var currentRefine = this;
    this.$frLocPanel.find('.refiner_ville_container select')
        .unbind('change')
        .change(function() { $j('#mess_erreur').remove(); currentRefine.doublon(this); });
}

Refine.prototype.DelUITown = function($element)
{
    $j('#mess_erreur').remove();
    $element.parents(".refiner_ville_container").remove();
    $j('.refiner_ville_container:eq(0) select').attr("id","refiner_ville_1");
    $j('.refiner_ville_container:eq(1) select').attr("id","refiner_ville_2");
    $j('.refiner_ville_container:eq(2) select').attr("id","refiner_ville_3");
    this.refreshTownOptions();
}

Refine.prototype.clearTown = function()
{
    this.$frLocPanel.find(".refiner_ville_container").not(":eq(0)").remove();
    this.$frLocPanel.find(".refiner_ville_container option:eq(0)").attr("selected", "selected");
    this.refreshTownOptions();
}

Refine.prototype.refreshTownOptions = function()
{
    var currentRefine = this;
    var addOption = this.$frLocPanel.find(".refiner_add_ville").hide();
    if (addOption.length != 3) addOption.filter(":last").show();
    var delOption = this.$frLocPanel.find(".refiner_del_ville");
    delOption.css("visibility", delOption.length === 1 ? "hidden" : "visible");
}

Refine.prototype.setTypeBien = function($elem)
{
    if ($elem.attr("type") === "radio")
    {
        $elem.parent().parent().find('input[type="checkbox"]').removeAttr('checked');
        $elem.parent().nextAll(".refiner_block_criteres_indent").find('input').attr('checked', 'checked');
    }
    else
    {
        $elem.parent().parent().find('input[type="radio"]').removeAttr('checked');
        $elem.parent().parent().find('input:eq(0)').attr('checked', 'checked');
        if (!$elem.is(":checked")) // if elem is going unchecked
        {
            if ($elem.parent().parent().find('input[type="checkbox"]:checked').not($elem).length === 0)
            {
                $elem.attr('checked', 'checked');
            }
        }
    } 
}

Refine.prototype.genParamTri = function()
{
    rnd1 = 10000 * Math.random() | 0;
    rnd2 = 10000 * Math.random() | 0;
    
    while(rnd1 % rnd2 === 0 || rnd2 % rnd1 === 0) {
        rnd1++;
    }
    return { rnd1: rnd1, rnd2: rnd2 };
}

Refine.prototype.refreshSelect = function(code_ci,nb ){    
    var select_ville = document.getElementById('refiner_ville_'+nb);
    if(select_ville === null){
        this.AddUITown();
        select_ville = document.getElementById('refiner_ville_'+nb);
    }
    for ( i = 0; i < select_ville.options.length; i++){
        if (select_ville.options[i].value === code_ci) {
            select_ville.options[i].selected = true;
        }
    }
}

Refine.prototype.refreshRefine = function(recherche, separateur){
    var idtt ='',
        idtypebien ='',
        nb_pieces ='',
        val_piece ='',
        ci = '',
        code_ci ='',
        bien= '',
        currentRefine = this,
        select_ville = null,
        nb= null;
        
    for(var i=0; i < recherche.length; i++){
        if (recherche[i].indexOf('idtt') > -1){
            idtt = recherche[i].split(separateur);
            if( idtt[1] === '9'){
                bien ='programme';
            }else{
                bien ='logement';
            }
        }
        //pour le type de bien si logement
        if (recherche[i].indexOf('idtypebien') > -1){
            idtypebien = recherche[i].split(separateur);
            switch (idtypebien) {
                case '1':
                    document.getElementById('refiner_appartement').checked = true;
                    break;
                case '2':
                    document.getElementById('refiner_maison').checked = true;
                    break;
                case '1,2':
                    document.getElementById('refiner_appartement').checked = true;
                    document.getElementById('refiner_maison').checked = true;
                    break;
                default:
                    break;
            }
        }
        //pour nombre de pieces
        if (recherche[i].indexOf('nb_pieces') > -1){
            nb_pieces = recherche[i].split(separateur);
            if( nb_pieces[0] === 'nb_pieces'){
                val_pieces = nb_pieces[1].split(',');
                document.getElementById('nb_pieces-0').checked = false;
                for( var j=0; j < val_pieces.length ; j++){
                    nb = val_pieces[j];
                    document.getElementById('nb_pieces-'+nb).checked = true;
                }
            }  
        }
        // pour les ville
        if (recherche[i].indexOf('ci') > -1){
            ci = recherche[i].split(separateur);
            code_ci = ci[1].split(',');
            for( var j=0; j < code_ci.length; j++){
                currentRefine.refreshSelect(code_ci[j], j+1);
            }
        }
    }
    
    rechercheLotPrg(bien);
    currentRefine.disabled(bien);
    //  a tester, lancer launchRequest seulement si location.hash est != null
    if( window.location.hash !== "" ){
        currentRefine.launchRequest();
    }
}

Refine.prototype.initRefine = function()
{
    var currentRefine = this,
        recherche = window.location.hash,
        separateur = ':',
        bien = '';

    if(recherche === ""){
        recherche = $j("#current_recherche").val().split('&');
        separateur = '=';
    }else{
        recherche =recherche.split('/');
    }

    currentRefine.refreshRefine(recherche,separateur);
    
    $j('#refiner_pays').change(function(){ currentRefine.countryChange(); });
    $j('#refiner_region').change(function(){
        $j(".refiner_ville").removeAttr("disabled");
        currentRefine.clearTown();
        currentRefine.launchUpdateDetailLoc('region');
        document.getElementById("refiner_departement").style.display = "block";
        document.getElementById("refiner_labal_dep").style.display = "block";
    });
    // if departement change we must set town to empty
    $j('#refiner_departement').change(function(){ $j('#refiner_ville_1').removeAttr("disabled");currentRefine.clearTown();currentRefine.launchUpdateDetailLoc('dep');});
    // if type bien change, there is some logic to do
    $j("#criteria_type_bien input").change(
        function(e) {
            currentRefine.launchRequest(null,'&idtt=2');
        });
        
        $j('#refiner_criteria select').not('#refiner_pays, #refiner_region')
        .change(function() { currentRefine.launchRequest(); });

    $j('#idlabel_container').change(function() {currentRefine.launchRequest(); });

    // if any checkbox or radio change in column 3 or 4 we launch request
    // and we do some nasty stuff to know if there is some UI manip to do
    $j('#refiner_col_3 , #refiner_col_4')
        .delegate('input[type="radio"], input[type="checkbox"]', 'change', function()
        {
            var el = $j(this);
            if (el.attr("type") === "checkbox")
            {
                var sel;
                if (el.val() === "all" ||  el.val() === "0") { 
                    sel = el.parent().parent().find('input').not(el);
                } else { 
                    sel = el.parent().parent().find('input:first'); 
                }
                sel.removeAttr("checked");
                test = null;
            }
            currentRefine.launchRequest();
             
        });

    $j('#resultats_top_tri select').change(function(){ currentRefine.launchRequest(); });
    $j('.refiner_block_criteres input[type="image"]').click(function() {
        currentRefine.launchRequest();
    });
    
}

/*------------------------------------------------------------*/
/*-------------------- Recherche ----------------------------------------*/

/* variable contenant les évenements qui ne nécessite pas d'attendre le chargement complet de la page (pour alléger le document.ready)*/
var recherche = (function() 
{
    // recherche par logements ou par programmes
    $j('#logement').click(function(){
        rechercheLotPrg('logement');
        currentRefine.launchRequest(2);
        //currentRefine.clearTown();
        //currentRefine.launchUpdateDetailLoc('dep');
        
    });
    $j('#programme').click(function(){
        rechercheLotPrg('programme');
        currentRefine.launchRequest(9);
        //currentRefine.clearTown();
        //currentRefine.launchUpdateDetailLoc('dep');
    });
     $j("#rech_nav2").click(function(){ window.scrollTo( 0, 530); });
     
     /* --------- select dep sur cartes prérésultats --------- */
    var num_div = $j("recup_val_div").attr("value"),
        map = $j("#carte_region_" + num_div);    
    
    $j("map > area").mouseover(function(){ 
      $j("#titre_select_cartographie strong").text($j(this).attr("alt"));
      return false;
    });
    $j("map > area").mouseout(function(){ 
      $j("#titre_select_cartographie strong").text("");
      return false;
    });
    /* --------- FIN select dep sur cartes prérésultats --------- */
        /* Omniture lead initié sur formulaire alerte email */
    $j("#blocAlerte_refine_top,#blocAlerte_refine_bottom_1,#blocAlerte_refine_bottom_2").click(function(){            
        //s.events = s.apl(s.events, "event9", '|',1);        
        s.events=s.apl(s.events, "event9", ',',1);
                s.events=s.apl(s.events, "event12", ',',1);
                s.eVar7="Formulaire alerte email";
                void(s.t());
    });
    /* FIN Omniture lead initié sur formulaire alerte email */
    /*
    **************************************************************
    function: track click on link "élargir la recherche"
    returns: void
    created by: Stéphane Pavic
    **************************************************************
    */
    $j("#btn_elargir").click(function() {
            var s=s_gi(s_account);
            s.eVar6='Elargissement de recherche';
            s.events='event11';
            s.linkTrackVars='eVar6,events';
            s.linkTrackEvents='event11';
            s.tl(this, 'o', 'Elargissement de recherche'); 
        });
        

})();

/*
**************************************************************
function:  create or change a cookie (visit)
returns: void
parameters:
 name: {type: string | defaults: empty string | function: name of cookie }
 days: {type: integer | defaults: undefined | function:  }
created by: Anne-Laure HOAREAU
**************************************************************
*/
function readCookie(name, days, lien) {
    var cook = document.cookie.split(';'),
        value = '',
        date = new Date(),
        newDate = '',
        cookie ='',
        c_name = name,
        c_value ='',
        action = 1,
        bool = false;
        
    date.setDate(date.getDate() + days);

    for(var i=0;i < cook.length;i++) {
        cookie=cook[i].substr(0,cook[i].indexOf("="));
        cookie=cookie.replace(/^\s+|\s+$/g,"");
        if ( cookie === c_name) { 
            value=cook[i].substr(cook[i].indexOf("=")+1);
            bool = true;
        } 
    }

    if(bool){
        switch (value) {
            case '1' :
                action = 0;
                c_value = 2 + ((date==null) ? "" : "; expires="+date.toGMTString());
                document.cookie = name + '='+c_value+';path=/; domain=selogerneuf.com;';
                current_ali_layer = new ali_layer();
                return action;
                //launch_ali_layer();
                break;
            case '2':
                c_value = 3 + ((date==null) ? "" : "; expires="+date.toGMTString());
                document.cookie = name + '='+c_value+';path=/; domain=selogerneuf.com;';
                break;
            default:
                break;
        }
    } else {
        c_value = 1 + ((date==null) ? "" : "; expires="+date.toGMTString());
        document.cookie = c_name + '='+c_value+';path=/; domain=selogerneuf.com;';
    }
    return action; 
}

var currentRefine = new Refine();

currentRefine.onLaunchRequest = function() 
{
    $j("#layer_over").show();
    $j("#refiner_loading").show();
};
 currentRefine.onSuccessRequest = function() 
 {
    var nav = ['Immobilier neuf'];
    if (this.getCountry() != "250")
        nav.push(" > ", this.getCountryText());
    var region = this.getRegionText();
    if (region !== null && region !=="-- Sélectionner --") nav.push(" > ", region);        
    var dep = this.getDepartementText();
    if (dep != null) nav.push(" > ", dep);        
    var town = this.getTownTexts();
    if (town.length > 0)
        nav.push(" > ", town.join(", "));
    nav.push(" > ");
    $j('h1').text(nav.join(''));
    $j('h2').text(this.getBreadcrumbInfo());
     $j("#layer_over").hide();
     $j("#refiner_loading").hide();

 _gaq.push(['_trackPageview','Refiner']); // ajout Refiner en tant que pages vues dans Analytics 

    if (typeof(omniture_process_preliste_ajax) != 'undefined'){
        //console.info("omniture_process_preliste_ajax");
        omniture_process_preliste_ajax();
        }
        
    //currentRefine.delSelect(); //Remove Selected whose value is null
    /*
     var tonlien = "/recherche.htm?" + this.createQuery();
      $("#alert_id").attr("href", tonlien);
      */
     setTimeout('hide_iframe_pub()', 3000);
 };
 currentRefine.onErrorRequest = function() 
 { 
     $j("#refiner_error").show();
     $j("#refiner_loading").hide();
     $j("#close_refiner_error").click(function(){
     $j("#refiner_error").hide();
     $j("#layer_over").hide();
     });
 };
  /*
**************************************************************
function: rechercheLotPrg, 
returns: void
parameters:
 bien: {type: string | defaults: empty string | function:  }
created by: Anne-Laure HOAREAU Décembre 2011
**************************************************************
*/
function rechercheLotPrg(bien){
    var logement = $j('#logement'),
        programme = $j('#programme');

    if ( bien === 'logement') {
        $j('#prgmOn').attr('id','prgmOff');
        programme.attr('class','prg_lot_Off');
        logement.attr('class','prg_lot_On');
    } else {
        $j('#prgmOff').attr('id','prgmOn');
        logement.attr('class','prg_lot_Off');
        programme.attr('class','prg_lot_On');
    }
}

 /*
**************************************************************
function: addOption, for add a option if it's not in the list
returns: void
parameters:
 code: {type: integer | defaults: null | function: code of the city for add a value in the option }
 text: {type: string | defaults: empty string | function: name city for add a city in the option }
 select: {type: objet| defaults:  undefined | function: recovers the select }
 nb: {type:integer | defaults: null | function: numero of select for recover its ID  }

created by: Anne-Laure HOAREAU Décembre 2011
**************************************************************
*/
function addOption(code, text, select, nb){
var code_select ='',
    option_list = false;

    for ( i =0; i < document.getElementById("refiner_ville_"+nb+"").options.length; i++){
        code_select = document.getElementById("refiner_ville_"+nb+"").options[i].value;

        if(code === code_select){
            document.getElementById("refiner_ville_"+nb+"").options[i].selected = true;
            option_list = true;
            return;
        }
    }
    if (!option_list){
        select.append("<option title='"+text+"' value='"+code+"' selected=''>"+text+"</option>");
    }
}
/*
**************************************************************
function: changeSelectVille, to adjust the select refine based on multi Suggest
returns: void
parameters:
code : {type: integer | defaults: null | function: code of the city for adjust the select }
nb : {type:integer | defaults: null | function: numero of select for recover its ID  }
form_cp : {type: integer | defaults: null | function:  to know whether it is a department or city  }
ville : {type: string | defaults: empty string | function: name city for adjust the select }

created by: Anne-Laure HOAREAU Décembre 2011
**************************************************************
*/
 function changeSelectVille (code, nb,form_cp,ville){
 
    var input_ville ='',
        ville_guillemet = '',
        text = '',
        ville_encode = decodeURIComponent(ville),
        ville_suggest ='',
        select = $j("#refiner_ville_"+nb),
        query_suggest = ["ville=", ville, "&mode=1"],
        longue_ville = ville.split(" "),
        option_list = false,
        reg_exp_nbr = new RegExp("[0-9]+","g"); 
        
        if (longue_ville[1] !== undefined) {
            if (reg_exp_nbr.exec(longue_ville[1])) { // for arrondissement ( Paris 1er, paris 2eme, ...)
                ville = longue_ville[0];
                query_suggest = ["ville=", ville, "&mode=1"];
                ville = longue_ville.join(" ");
            } else {
                ville = longue_ville.join(" ");
                query_suggest = ["ville=", ville, "&mode=1"];
            }
        }
        
        
        // launch ajax query
        this.ajaxQuery = $j.ajax({
            contentType: "application/json; charset=utf-8",
            url: "/js,ajax,villequery_v3.htm", 
            data: query_suggest.join(''),
            type: 'GET', 
            dataType: "json",
            success: function(json){
                $j(json).each( function (i) {
                    ville_suggest = json[i].values;
                    for (var j=0; j < ville_suggest.length-1; j++){
                        input_ville =  noaccent(ville_suggest[j].ville);
                        if (ville === input_ville || ville_suggest.length === 1) {
                            text = ville_suggest[j].ville;
                            if (code.length !== 2){
                                addOption(ville_suggest[j].code_ci, text, select, nb);
                                select.attr("disabled","disabled");
                                if(form_cp === undefined || form_cp.length < 2 ){
                                    document.getElementById("refiner_region").options[0].selected = true;
                                    document.getElementById("refiner_departement").options[0].selected = true;
                                    document.getElementById("refiner_departement").style.display = "none";
                                    document.getElementById("refiner_labal_dep").style.display = "none";
                                }
                            } else {
                                $j("#refiner_departement").append("<option title='"+text+"' value='"+ville_suggest[j].code_ci+"' selected='' >"+text+"</option>");
                            }
                            document.getElementById("refiner_region").options[0].selected = true;
                            return;
                        }
                    }
                });
            },
            error: function() {
                console.log('error');
            }
        });
        
}
 

/*
**************************************************************
function: multiLocalisation, adapts the refine with multi-location
returns: void
parameters:
form_ci : {type: integer| defaults:  null| function:  numero ci of the location }
form_p : {type: integer| defaults: null  | function: numero cp of the location  }
created by: Anne-Laure HOAREAU Décembre 2011
**************************************************************
*/
function multiLocalisation(form_ci, form_cp) {
    var ci = '',
        cp = '',
        ville = '',
        query = $j('#current_recherche').val(),
        nb = '',
        town =[],
        nav = ['Immobilier neuf'];

    query = query.split('ville=');

    if (form_ci !== undefined){// si bug && query[1] !== undefined
        ci = form_ci.split(',');
        
        ville = query[1].split('&');
        ville = ville[0].split(',');
        for (var i=0; i < ci.length; i++ ) {
            if ( i !== 0 && ci[i].length !== 0){
                currentRefine.AddUITown();
            }
            nb = i +1;
            if(ville[i] !== undefined){
                ville[i] =ville[i].replace(/%27/gi,"'");
                ville[i] =ville[i].replace(/[+]/gi," ");
                changeSelectVille(ci[i],nb,form_cp,ville[i]);
                town[i] = ville[i].charAt(0).toUpperCase() + ville[i].substring(1).toLowerCase();
            }
        }
    }
    if (form_cp !== undefined && form_cp.length !== 0){
        changeSelectVille(form_cp,nb);
    }
    // pour fil d'arianne
    if (town.length > 0){
        nav.push(" > ", town.join(", "));
    }

    nav.push(" > ");
    $j('h1').text(nav.join(''));
}
/*
**************************************************************
function: nav_secondaire, can rework the H2
returns: void
created by: Anne-Laure HOAREAU Décembre 2011
**************************************************************
*/
function nav_secondaire(){
    var logement = $j('#prgmOff'),
        appartement = document.getElementById('refiner_appartement').checked,
        maison = document.getElementById('refiner_maison').checked,
        blocTerrain = document.getElementById('choix_refiner_terrains').checked,
        lotissement = document.getElementById('refiner_terrains_programme').checked,
        nav = [];
        
    if (blocTerrain) {
        if (lotissement) {
            nav.push('Lotissements neufs');
        } else {
            nav.push('Terrain');
        }
    } else {  
        if (logement.length > 0) {
            if (appartement) {
                nav.push('Appartements neufs');
            }
            if (maison) {
                nav.push('Maisons neuves');
            }
        } else {
            nav.push('Résidences neuves');
        }
    }
    
    $j('h2').text(nav.join(', '));
}

function initRecherche() 
{
    var form_ci = $j('#form_ci').val(),
        form_cp = $j('#form_cp').val();

    if(form_ci.split(',').length !== 1){
        multiLocalisation(form_ci, form_cp);
    }

    //nav_secondaire();
      
    function swapRefiners(displayName, hideName1, hideName2, isAnim)
    {
        if (isAnim) $j("#refiner_criteria").fadeTo(1, 0.1);
        $j("#refiner_criteria .criteria_" + hideName1 + ",#refiner_criteria .criteria_" + hideName2).not(".criteria_" + displayName)
            .hide();
        $j("#refiner_criteria .criteria_" + displayName)
            .show();
        if (isAnim) $j("#refiner_criteria").fadeTo(400, 1);
        $j("#choix_refiner_" + hideName1 + "_label").removeClass("refiner_choix_on");
        $j("#choix_refiner_" + hideName2 + "_label").removeClass("refiner_choix_on");
        $j("#choix_refiner_" + displayName + "_label").addClass("refiner_choix_on");
        currentRefine.SetCurrentType(displayName);
        if ($j("#refiner_criteria")[0] !== undefined) {
            $j("#refiner_criteria")[0].className = "refiner_criteria_" + displayName;
        }
        if(displayName === 'terrains'){
            $j('#btn_prg_lot').css({'display':'none'});
        }
    }
    
    /* --------- swap Refiners Recherche --------- */
    $j("#choix_refiner_habiter").click(function() {
        swapRefiners('habiter', 'terrains', 'investir', true);
        $j('#btn_prg_lot').css({'display':'block'});
        currentRefine.launchRequest();
    });
    
    $j("#choix_refiner_investir").click(function() {
        swapRefiners('investir', 'terrains', 'habiter', true);
        $j('#btn_prg_lot').css({'display':'block'});
        currentRefine.launchRequest();
    });
    $j("#choix_refiner_terrains").click(function() {
        swapRefiners('terrains', 'habiter', 'investir', true);
        $j('#btn_prg_lot').css({'display':'none'});
        //rechercheLotPrg('programme');
        currentRefine.launchRequest(1);
    });
    var $currentType = $j('#refiner_choix input:checked');

    if ($currentType.length > 0) {
        var currentType = $currentType[0].id.replace('choix_refiner_', '');
        var unselectTypes = [];
        $j('#refiner_choix input:not(:checked)').each(function() {
            unselectTypes.push(this.id.replace('choix_refiner_', ''));
        });
        swapRefiners(currentType, unselectTypes[0], unselectTypes[1], false);
    }
    /* --------- FIN swap Refiners Recherche --------- */
    

    /* --------- tri des résultats --------- */
    var query = location.search;
    
    /* --------- FIN tri des résultats --------- */
    
    /* --------- MOTEUR ECO HABITAT --------- */
            
    /* --------- Blur des champs de recherche --------- */
    $j('#ville_multi').each(function(){
        $j(this).val('villes, codes postaux ou département');
    });
    $j('#nb_piecesmin').each(function(){
        $j(this).val('Min.');
    });
    $j('#pxmax').each(function(){
        $j(this).val($j(this).attr("title"));
    });
    var blurValue;
    $j('#ville_multi, #nb_piecesmin, #pxmax').focus(function () {
        blurValue = $j(this).val();
        $j(this).val('');
    });
    $j('#nb_piecesmin, #pxmax').blur(function () {
        if ($j(this).val() == '') {
            $j(this).val(blurValue);
        }
    });
    $j('#refiner_budgetmaxi').val('');
/* --------- FIN Blur des champs de recherche --------- */
   
            /* --------- recherche par pays --------- */    
            $j("#engine_habiter_pays").change(function() {
                if (this.value===97){
                    document.location.href = "recherche.htm?idtt=9&idtypebien=15&idpays=250&idlabel=26$" + "&rnd1=" + rnd1 + "&rnd2=" + rnd2 + "&cp=" + this.value;
                }
                else if(this.value!=250){
                    document.location.href = "recherche.htm?idtt=9&idtypebien=15" + "&rnd1=" + rnd1 + "&rnd2=" + rnd2 + "&idpays=" + this.value;
                }
            });
            /* --------- FIN recherche par pays --------- */
            
            
            /* --------- envoyer l'idtypebien de la select dans la recherche --------- */
            $j('#engine_habiter_typebien').change(function() 
            {
                $j('#idtypebien').attr('value', $j(this).val());            
            });
            /* --------- FIN envoyer l'idtypebien de la select dans la recherche --------- */
    
    /* --------- FIN MOTEUR ECO HABITAT --------- */


    genParamTri();
    setTimeout('hide_iframe_pub()', 3000);
    
    /* besoin pour navigation dem doc */

    // Retour aux résultats de recherche après un envoi de demande de doc si query dispo en cookie
    /*
    if (url_referer === "" || url_referer === undefined) {
        url_referer = getCookie("recherche_referer");
    } else {
        setCookie("recherche_referer", url_referer);
    }
    $j('#lien_retour_resultats_dem_doc, .detail_nav_middle').click(function(){
        if (url_referer != "" && url_referer !== undefined) {
            $j(this).attr('href', url_referer);
        } else {
            return false;
        }
    });
    */
    /* Fin besoin pour navigation dem doc */

    // gère les liens de retour vers la recherche avec la nouvelle query refine
    initDetailClicks();

}/* fin initRecherche */

/*
**************************************************************
function: get query with or without refine in search page
returns: void
created by: Tristan Blazquez
modified by : Anne-Laure Hoareau
**************************************************************
*/
function initDetailClicks() 
{
    var action = null,
        lien = null;
        
    $j(".container_annonce_outline a").not(".picto_localiser a, .container_annonce_content_bottom_doc, .picto_imprimer, .picto_imprimer a").click(function() {
        lien = $j(this).attr('href') + '?' + $j("#current_recherche").val();
        action = readCookie('visit',180,lien);
        if(action === 0){
            $j(this).attr('href','#');
            launch_ali_layer();
            return false;
        } else {
            $j(this).attr('href', $j(this).attr('href') + '?' + $j("#current_recherche").val());
        }
    });

    $j(".container_annonce_content_mid .container_annonce_picto p").not(".picto_localiser a, .container_annonce_content_bottom_doc, .picto_imprimer, .picto_imprimer a").click(function() {
        $j(this).attr('href', $j(this).attr('href') + '?' + $j("#current_recherche").val());
    });

    
    $j(".container_annonce_content_mid .container_annonce_picto .picto_localiser a").not(".picto_imprimer a, .picto_imprimer").click(function() {
        $j(this).attr('href', $j(this).attr('href') + '?' + $j("#current_recherche").val() + '#ancre_carte');
    });

    $j(".container_annonce_content_mid .container_annonce_content_bottom .container_annonce_content_bottom_doc").not(".picto_imprimer, .picto_imprimer a").click(function() {
        $j(this).attr('href', $j(this).attr('href') + '?' + $j("#current_recherche").val() + '#ancre_demdoc');
    });
    // pour le layer de l'alerte mail
    $j('#jqibox .jqiclose').live('click',function(){
        window.location.href = lien;
    });
    $j('#jqi_state_state0 .jqibuttons #notService').live('click',function(){
        window.location.href = lien;
    });
    $j('#jqi_state_state0 .contentmsg .jqimessage #terminer').live('click',function(){
        window.location.href = lien;
    });
}

function genParamTri()
{
    // generation des 2 parametres de tri envoyes au moteur (random a la 1ere recherche du user)

    rnd1 = 10000*Math.random()|0;
    rnd2 = 10000*Math.random()|0;
    
    while(rnd1%rnd2===0 || rnd2%rnd1===0) {
        rnd1++;
    }

    $j("#engine form input[name='rnd1']").each(function() {
        $j(this).val(rnd1);
    });
    $j("#engine form input[name='rnd2']").each(function() {
        $j(this).val(rnd2);
    });
    $j("#MapEco area").each(function() {
        this.href = this.href + "&rnd1=" + rnd1 + "&rnd2=" + rnd2;
    });
}

function hide_iframe_pub()
{
    var iframe300x600 = $j("#pub_300_600_iframe");
    var iframe300x600_2 = $j("#pub_300_600_2_iframe");
    var iframe300encart = $j("#pub_300_encart_iframe");
    
    if(iframe300x600.contents().find("object,img").attr("id") != undefined){
        iframe300x600.css({"display" : "block"}); // si pub on force l'affichage au cas où lors d'un refine l'iframe était cachée
    }else {
        iframe300x600.css({"display" : "none"}); // si pas de pub on cache
    }
    
    if(iframe300x600_2.contents().find("object,img").attr("id") != undefined){
        iframe300x600_2.css({"display" : "block"}); // si pub on force l'affichage au cas où lors d'un refine l'iframe était cachée
    }else {
        iframe300x600_2.css({"display" : "none"}); // si pas de pub on cache
    }
        
    if(iframe300encart.contents().find("table").attr("id") != undefined){
        iframe300encart.css({"display" : "block"}); // si pub on force l'affichage au cas où lors d'un refine l'iframe était cachée
    }else {
        iframe300encart.css({"display" : "none"}); // si pas de pub on cache
    }
}
/*------------------------------------------------------------*/

function affichage_residence_print(nom_de_la_page, nom_interne_de_la_fenetre){
    window.open(nom_de_la_page, nom_interne_de_la_fenetre, config='toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no')
    } 

