﻿
function submitSearchListingFieldsClean(homeMainUrl) {

    $("input[class='advSearchAdt']:checked").attr('checked', false); /* pulisco i checkbox */
    $('#selVertical').val(homeMainUrl); /* pulisco il canale selezionato */
    $('#tab_default').click();  /* deseleziono i tab selezionati */

}


/// <reference path="jquery-1.3.2-vsdoc.js" />   //per intellisense

/* javascript per comportamenti pagine frontpanel */

/**
*  Funzione per decidere il canale per la ricerca generica
*/

function submitSearchListingBaseUrlSelect(baseurl, homeMainUrl) {

    var n_selectedAdts_real = $("#tabs-1 input[class='advSearchAdt']:checked").length;
    var n_selectedAdts_car = $("#tabs-2 input[class='advSearchAdt']:checked").length;
    var n_selectedAdts_job = $("#tabs-3 input[class='advSearchAdt']:checked").length;
    var n_selectedAdts_mer = $("#tabs-4 input[class='advSearchAdt']:checked").length;

    // se e' selezionato il tab CASE (#tabs-1), la base url sara CASE, a meno che non ci siano flaggati degli adtype di altri canali
    if (!$("#tabs-1").is('.ui-tabs-hide')) {
        if ((n_selectedAdts_car + n_selectedAdts_job + n_selectedAdts_mer) > 0) return homeMainUrl;
        else return baseurl;
    }

    // se e' selezionato il tab AUTO (#tabs-2), la base url sara AUTO, a meno che non ci siano flaggati degli adtype di altri canali
    else if (!$("#tabs-2").is('.ui-tabs-hide')) {
        if ((n_selectedAdts_real + n_selectedAdts_job + n_selectedAdts_mer) > 0) return homeMainUrl;
        else return baseurl;
    }

    // se e' selezionato il tab LAVORO (#tabs-3), la base url sara LAVORO, a meno che non ci siano flaggati degli adtype di altri canali
    else if (!$("#tabs-3").is('.ui-tabs-hide')) {
        if ((n_selectedAdts_real + n_selectedAdts_car + n_selectedAdts_mer) > 0) return homeMainUrl;
        else return baseurl;
    }

    // se e' selezionato il tab COMPROVENDO (#tabs-4), la base url sara COMPROVENDO, a meno che non ci siano flaggati degli adtype di altri canali
    else if (!$("#tabs-4").is('.ui-tabs-hide')) {
        if ((n_selectedAdts_real + n_selectedAdts_car + n_selectedAdts_job) > 0) return homeMainUrl;
        else return baseurl;
    }
    else {
        return homeMainUrl;
    }


}

/**
*  Funzione richiamata per la ricerca generica - click su pulsante Cerca nel header della pagina
*/

function submitSearchListing(urlListing, url) {

    var rs = $("input[name='rs']:checked").val();

    var st = $('#st').val(); // campo ricercato

    st = st.replace(/[^\wàèéìòù\s]/gi, '').replace('à', '[aa]').replace(/[èé]/gi, '[ee]');
    //var adtForSearch = $('#adtForSearch').val(); // eventuale adt
    if (st == 'Inizia qui la tua ricerca') return false;
    var adts = $("input[class='advSearchAdt']:checked");
    var selectedAdts = "";

    //L'utente ha selezionato almeno un adt della ricerca avanzata 
    if (adts.length > 0) {
        $.each(adts, function(ind, obj) {
            var a = replaceUrlPart(obj.value);
            //a = a.replace(',', '%2C');

            if (selectedAdts != "") {
                selectedAdts += "," + a;
            } else {
                selectedAdts += a;
            }
        });
    }

    st = jQuery.trim(st);

    if (st == "") {
        alert("Inserire parametro di ricerca");
        $('#st').focus();
        return;
    }

    while (st.indexOf("\"") != -1) {
        st = st.replace('"', '[qu]');
    }


    if (rs != null) {
        // ricerca libera
        if (rs == "Listing") {
            url = urlListing.toString().replace("{placeholder}", st);
        }
        else if (rs == "Free") {

            url = url + "?text=" + st;

            if (selectedAdts != "") {
                url = url + "&ad_type=" + selectedAdts;
            }

        }
        else if (rs == "ByCode") {
            url = url + "phone-" + st;
        }
        else if (rs == "ByNumber") {
            url = url + "adv_id-" + st;
        }
    }

    $("#advSearchPanel").hide(); /* lo nascondo per non vedere la pulizia in corso */
    $('#st').val(""); /* pulisco il form di ricerca */

    document.location.href = url;
}


/**
*  Funzione richiamata su cambio del numero di annunci per pagina
*/
function submitSearchListingPag(url, el) {
    var queryObj = getQueryString();
    start = queryObj["start"];
    if (start == undefined)
        queryObj["start"] = 0;
    rows = queryObj["rows"];
    if (el == "pagSup") rows = $('#pagSup').val();
    else if (el == "pagInf") rows = $('#pagInf').val();
    queryObj["rows"] = rows;
    if (start == "0" && rows == "20") {
        delete queryObj["start"];
        delete queryObj["rows"];
    }
    var querystring = setQueryString(queryObj);
    url = location.origin + location.pathname + querystring;
    document.location.href = url;
}

// Funzione che estrae un array associativo con la query string
function getQueryString() {
    var querystring = location.search.replace('?', '').split('&');
    var queryObj = {};
    for (var i = 0; i < querystring.length; i++) {
        var name = querystring[i].split('=')[0];
        var value = querystring[i].split('=')[1];
        queryObj[name] = value;
    }
    return queryObj;
}

// Funzione che serializza un array associativo in una query string
function setQueryString(queryObj) {
    var result = "?";
    for (var key in queryObj) {
        if (key != "")
            result = result + key + "=" + queryObj[key] + "&";
    }
    result = result.substr(0, result.length - 1);
    return result;
}

function replaceUrlPart(p) {
    p = p.replace(/,/g, '[co]');
    p = p.replace('/', '[sl]');
    p = p.replace(':', '[dp]');
    p = p.replace('.', '[.]');
    p = p.replace('à', '[aa]');
    p = p.replace('&', '[am]');
    return p;
}

function replaceUrlPart(p, replaceam) {
    p = p.replace(/,/g, '[co]');
    p = p.replace('/', '[sl]');
    p = p.replace(':', '[dp]');
    p = p.replace('.', '[.]');
    p = p.replace('à', '[aa]');
    p = p.replace('è', '[ee]');

    if (replaceam)
        p = p.replace('&', '[am]');

    return p;
}


/*
Prende l'action di un form e concatena tutti gli attributi checkbox selezionati
*/
function buildAction(a) {
    var fields = ['brand', 'model', 'type', 'country', 'region', 'province', 'city', 'district', 'category'];
    var first = true;
    var firstChar = "?";

    if (a.indexOf("?") > -1) {
        firstChar = "&";
    }

    $.each(fields, function(ind, value) {
        var chks = $("input[type=checkbox][name=" + value + "]:checked");

        if (chks.length > 0) {

            (first) ? (a += firstChar + value + "=") : (a += "&" + value + "=");
            first = false;
            $.each(chks, function(i, val) {
                var part = "";

                //(i == 0) ? (part = "/" + value + "-" + replaceUrlPart(val.value)) : (part = "," + replaceUrlPart(val.value));
                (i == 0) ? (part = replaceUrlPart(val.value)) : (part = "," + replaceUrlPart(val.value));
                a += part;

            })
        }
    });
    return a;
}

/*
Se ho selezionato un solo elemento ed è di tipo "geo" l'action dev'essere uguale al link
*/
/*
function buildActionOneElement(a) {
var fields = ['brand', 'model', 'type', 'country', 'region', 'province', 'city', 'district', 'category'];
$.each(fields, function(ind, value) {
var chks = $("input[type=checkbox][name=" + value + "]:checked");
$.each(chks, function(i, val) {
var selectedCheck = chks.val();
var selectedTitle = chks.attr("title");

if ((value == "region" || value == "province" || value == "city" || value == "district") && (selectedTitle!="province")) {
var linkname = value + "link";

a = $("a[title=" + selectedCheck + "][id=" + linkname + "]").attr("href");

} else {
var part = "";
(i == 0) ? (part = "/" + value + "-" + replaceUrlPart(val.value)) : (part = "," + replaceUrlPart(val.value));
a += part;
}

})
});
return a;
}*/

$(document).ready(function() {

    /* Premendo il pulsante Enter si richiama il click del pulsante di ricerca */
    $('#formSearch').submit(function(event) {
        event.preventDefault();
        $("#adnet_btn_search").click();
        return false;
    });

    /*  Author: Fernando Arturi
    Description: Evento click del bottone di ricerca che si trova
    nei diversi pannelli di navigazione (provincie, città, ecc.)
    */
    $('#adSearchBtn,#adSearchBtnTop').click(function(event) {

        var params = "";

        if ($("#browseParameters") && $("#browseParameters").val() !== undefined) {
            params = $("#browseParameters").val();
            params = replaceUrlPart(params, false);
        }
        var action = $("#adSearchForm").attr('action') + params;

        if ($(':checkbox:checked').size() == 0) {
            //alert("Selezionare almeno un elemento");

            document.location.href = action;
            return;
        }
        else if ($(':checkbox:checked').size() == 1) {

            elementChecked = $("input[type=checkbox]:checked");
            elementCheckedLinkHref = elementChecked.parent().find("label").find("a").attr('href');
            if (elementCheckedLinkHref == null) {
                //Fix per html senza <label>
                elementCheckedLinkHref = elementChecked.parent().find("a").attr('href');
            }
            document.location.href = elementCheckedLinkHref;
            return;

        }
        else {
            //var action = $("#adSearchForm").attr('action');
            action = buildAction(action);
            document.location.href = action;
        }
    });

    /*  Author: Fernando Arturi
    Description: Evento click del su ogni voce dell'elenco delle città.
    Seleziona il checkbox associato, deseleziona gli altri e fa il submit
    */
    $("a[id='citylink']").click(function(event) {
        $("input[type=checkbox][name=city]:checked").attr('checked', false);
        $("input[type=checkbox][name=province]:checked").attr('checked', false);
        $("input[type=checkbox][value$='" + this.title + "']").attr('checked', true);
        $("#adSearchForm").submit();
    });

    /*  
    Description: Evento click su ogni voce dell'elenco delle città.
    Seleziona il checkbox associato, deseleziona gli altri e fa il submit
    */
    $("a[id='districtlink']").click(function(event) {
        $("input[type=checkbox][name=district]:checked").attr('checked', false);
        $("input[type=checkbox][value$='" + this.title + "']").attr('checked', true);
        $("#adSearchForm").submit();
    });

    /*  
    Description: Evento click sulla mappa dei quartieri delle città principali.
    Seleziona il checkbox associato, deseleziona gli altri e fa il submit
    */
    $("area[id='districtlink']").click(function(event) {
        $("input[type=checkbox][name=district]:checked").attr('checked', false);
        $('#district').val(this.title);
        $("#adSearchForm").submit();
    });

    /*  
    Description: Evento click del su ogni voce dell'elenco delle marche 
    (solo canale auto, navigazione tipo C).
    Seleziona il checkbox associato, deseleziona gli altri e fa il submit
    */
    $("a[id='makelinkC']").click(function(event) {
        $("input[type=checkbox][name=make]:checked").attr('checked', false);
        $("#make").attr('checked', true);
        $("#adSearchForm").submit();
    });


    $('#resetPwdWait').hide();
    $('#resetPwdForm form').submit(function() {

        $('#resetPwdForm').hide(); //fadeOut('fast');
        var f = $('#resetPwdForm form');
        var action = f.attr('action');
        var serial = f.serialize();
        $('#resetPwdWait').show();
        $.post(action, serial, function(data) {
            $('#resetPwdWait').hide();
            $('#resetPwdResult').fadeIn('fast');
            $('#resetPwdResult').empty().append(data);
        });
        return false;
    });


    /* Auto submit del form di login quando l'utente premme il tasto invia */
    $("#password").filter(":password").keydown(function(event) {
        if (event.keyCode == 13) {
            submitLogin(); return false;
        }
    });

});


