﻿
// Texte de la barre de recherche "OU" quand il est vide
var emptyWhereTxt = null;

// Texte de la barre de recherche "QUOI" quand il est vide
var emptyWhatTxt = null;

// Texte de la barre de recherche "DIRECTORIES" quand il est vide
var emptyDirectoryTxt = null;




// Lorsque le document est chargé
$j(document).ready(function () {


    /**
    *
    * POUR LA BARRE DE RECHERCHE "OU" 
    *
    */

    // Nom de la barre de recherche "OU"
    var whereSearchInputName = "#search .whereSearch input[type=text]";

    // Texte quand le input est vide pour la barre de recherche "OU"
    emptyWhereTxt = $j("#search .whereSearch .searchEmptyTxt").text();
    $j(whereSearchInputName).setEmptyText({
        id: whereSearchInputName,
        classEmptyTxt: "searchinputEmptyTxt",
        emptyTxt: emptyWhereTxt
    });


    // Bouton pour effacer le contenu de la barre de recherche
    clearWhereImgName = "#search #clearWhereImg";
    clearWhereFunc = function () {
        value = $j(whereSearchInputName).val();
        if (value == "" || value == emptyWhereTxt) $j(clearWhereImgName).hide();
        else $j(clearWhereImgName).show();
    }
    clearWhereFunc();
    $j(clearWhereImgName).click(function () {
        $j(whereSearchInputName).val("").focus();
        $j(this).hide();
    });
    $j(whereSearchInputName).keyup(clearWhereFunc);
    $j(whereSearchInputName).blur(clearWhereFunc);


    // ContextMenu pour la barre de recherche "OU"
    $j.fn.contextMenu()({
        inputName: whereSearchInputName,
        itemName: "#search .whereSearch .contextMenuSearchbox .menuSearchbox .result .item",
        itemSelectedClass: "itemSelected",
        contextMenuViewName: "#search .whereSearch .contextMenuSearchbox .menuSearchbox",
        loadingViewName: "#search .whereSearch .contextMenuSearchbox .menuSearchbox .loading",
        resultViewName: "#search .whereSearch .contextMenuSearchbox .menuSearchbox .result",
        resultItemViewName: "#search .whereSearch .contextMenuSearchbox .menuSearchbox .result",
        emptyResultViewName: "#search .whereSearch .contextMenuSearchbox .menuSearchbox .empty",
        errorViewName: "#search .whereSearch .contextMenuSearchbox .menuSearchbox .error",
        codeRunSearch: function (keyword, onResponseRequest) {
            Ch.Swissportail.Services.SwissportailService.GetCities(keyword, 10, onResponseRequest);
            return true;
        },
        getHtmlResult: function (result) {
            html = "";
            for (i = 0; i < result.length; i++) {

                id = result[i].Id;
                name = result[i].Name;
                zip = result[i].Zip;

                html += "<div class='item' zip='" + zip + "'>" + name + "</div>";
            }
            return html;
        },
        fireSelectedItem: function (keyword, item) {
            zip = item.attr("zip");
            return item.text().replace(zip, "").trim();
        }
    });





    /**
    *
    * POUR LA BARRE DE RECHERCHE "QUOI" 
    *
    */

    // Nom de la barre de recherche "QUOI"
    var whatSearchInputName = "#search .whatSearch input[type=text]";

    // Bouton pour effacer le contenu de la barre de recherche
    $j("#search #clearWhatImg").click(function () {
        $j(whatSearchInputName).val("").focus();
    });

    // Texte quand le input est vide pour la barre de recherche "QUOI"
    emptyWhatTxt = $j("#search .whatSearch .searchEmptyTxt").text();
    $j(whatSearchInputName).setEmptyText({
        id: whatSearchInputName,
        classEmptyTxt: "searchinputEmptyTxt",
        emptyTxt: emptyWhatTxt
    });


    // Bouton pour effacer le contenu de la barre de recherche
    clearWhatImgName = "#search #clearWhatImg";
    clearWhatFunc = function () {
        value = $j(whatSearchInputName).val();
        if (value == "" || value == emptyWhatTxt) $j(clearWhatImgName).hide();
        else $j(clearWhatImgName).show();
    }
    clearWhatFunc();
    $j(clearWhatImgName).click(function () {
        $j(whatSearchInputName).val("").focus();
        $j(this).hide();
    });
    $j(whatSearchInputName).keyup(clearWhatFunc);
    $j(whatSearchInputName).blur(clearWhatFunc);


    // ContextMenu pour la barre de recherche "QUOI"
    $j.fn.contextMenu()({
        inputName: whatSearchInputName,
        itemName: "#search .whatSearch .contextMenuSearchbox .menuSearchbox .result .item",
        itemSelectedClass: "itemSelected",
        contextMenuViewName: "#search .whatSearch .contextMenuSearchbox .menuSearchbox",
        loadingViewName: "#search .whatSearch .contextMenuSearchbox .menuSearchbox .loading",
        resultViewName: "#search .whatSearch .contextMenuSearchbox .menuSearchbox .result",
        resultItemViewName: "#search .whatSearch .contextMenuSearchbox .menuSearchbox .result .results",
        emptyResultViewName: "#search .whatSearch .contextMenuSearchbox .menuSearchbox .empty",
        errorViewName: "#search .whatSearch .contextMenuSearchbox .menuSearchbox .error",
        codeRunSearch: function (keyword, onResponseRequest) {
            if (keyword.length >= 3) {
                Ch.Swissportail.Services.SwissportailService.GetSubscriptionByKeyword(keyword, getCityNameRequest(), 15, CURRENT_CULTURE, onResponseRequest);
                return true;
            }
            else return false;
        },
        getHtmlResult: function (result) {
            html = "";
            for (i = 0; i < result.length; i++) {

                id = result[i].Id;
                tradename = result[i].Tradename;
                txt = result[i].Txt;
                locality = result[i].Locality;
                distance = result[i].Distance;

                html += "<div class='item' id='" + id + "'>";
                html += "<div class='tradename'>" + tradename + "</div>";
                html += "<div class='description'>" + txt + "</div>";
                html += "<div class='locality'>" + locality + " " + distance + "</div>";
                html += "<br style='clear:both;' />";
                html += "</div>";
            }
            return html;
        },
        fireSelectedItem: function (keyword, item) {
            id = item.attr("id");
            if (id != -1) {
                document.location = "/Detail.aspx?subId=" + id;
                return item.children(".tradename").text();
            }
            else {
                if (getCityNameRequest() != "") $j("#search .buttons .listButton").click();
                else $j("#search .buttons .mapButton").click();
                return null;
            }
        }
    });







    /**
    *
    * POUR LA BARRE DE RECHERCHE "DIRECTORIES" 
    *
    */

    // Nom de la barre de recherche "DIRECTORIES"
    var directorySearchInputName = "#search .directorySearch input[type=text]";

    // Texte quand le input est vide pour la barre de recherche "DIRECTORIES"
    emptyDirectoryTxt = $j("#search .directorySearch .searchEmptyTxt").text();
    $j(directorySearchInputName).setEmptyText({
        id: directorySearchInputName,
        classEmptyTxt: "searchinputEmptyTxt",
        emptyTxt: emptyDirectoryTxt
    });

    // ContextMenu pour la barre de recherche "DIRECTORIES"
    $j.fn.contextMenu()({
        inputName: directorySearchInputName,
        itemName: "#search .directorySearch .contextMenuSearchbox .menuSearchbox .result .item",
        itemSelectedClass: "itemSelected",
        contextMenuViewName: "#search .directorySearch .contextMenuSearchbox .menuSearchbox",
        loadingViewName: "#search .directorySearch .contextMenuSearchbox .menuSearchbox .loading",
        resultViewName: "#search .directorySearch .contextMenuSearchbox .menuSearchbox .result",
        resultItemViewName: "#search .directorySearch .contextMenuSearchbox .menuSearchbox .result",
        emptyResultViewName: "#search .directorySearch .contextMenuSearchbox .menuSearchbox .empty",
        errorViewName: "#search .directorySearch .contextMenuSearchbox .menuSearchbox .error",
        codeRunSearch: function (keyword, onResponseRequest) {
            Ch.Swissportail.Services.SwissportailService.GetDirectories(keyword, CURRENT_CULTURE, 10, onResponseRequest);
            return true;
        },
        getHtmlResult: function (result) {
            html = "";
            for (iLoop = 0; iLoop < result.length; iLoop++) {
                name = result[iLoop].Name;
                url = result[iLoop].Url;
                html += "<div class='item' url='" + url + "'>" + name + "</div>";
            }
            return html;
        },
        fireSelectedItem: function (keyword, item) {

            url = item.attr("url");
            document.location = url;
            return item.text();
        }
    });

});



/**
*  Méthode pour récupérer le nom de la ville à envoyer avec la reqête ajax
*/
function getCityNameRequest() {

    city = $j("#search .whereSearch input[type=text]").val();
    if (city == emptyWhereTxt) city = "";

    return city;
}
