﻿function ShowHideSuggestWait() {
    document.getElementById('suggestAnswer').style.display = 'none';
    document.getElementById('WaitMessage').style.display = "block";
}


(function (j$) {
    //Global Vars
    var txtSearch;
    var lblSearch;
    $SData = "";
    var selectedItem = null;

    j$(document).ready(function () {
        txtSearch = j$(".txtsearch");
        txtSearch.attr('autocomplete', 'off');
        j$("#lnkDoSearch").click(function () {
            ShowHideSuggestWait();
            doSearch();
        });

        txtSearch.keyup(txtsearch_keypress);

        txtSearch.blur(function () {
           
            if (txtSearch.val() == '') txtSearch.val('Rechercher');
        });

        txtSearch.focus(function () {

            if (txtSearch.val() == 'Rechercher') txtSearch.val('');
        });

        j$(".suggestAnswer").hide();
    });

    function txtsearch_keypress(event) {
        if (txtSearch.val().length < 3) return;
        if (event.keyCode == '13') {
            j$(".suggestAnswer").hide();
            if (selectedItem != null) {
                txtSearch.val(j$(".suggestAnswer").find('.suggestItem').eq(selectedItem - 1).removeClass('.suggestHighlight').text());
                if (j$(".suggestAnswer").find('.suggestItem').eq(selectedItem - 1).hasClass('arboItem')) {
                    QueryArbo();
                } else {
                    setSelectedItem(null);
                    doSearch();
                }
            }
            else {
                doSearch();
            }
        }

        //Check if feeds are plugged in page
        var bsuggest = false;
        try {
            var arrTest = arrFeeds;
            bsuggest = true;
        } catch (e) { }

        if (bsuggest && event.keyCode != '13') {
            if (event.keyCode > 40 || event.keyCode == 8) {
                setSelectedItem(null);
                getSuggest();
            } else if (event.keyCode == 38) { //Fleche haut
                setSelectedItem(selectedItem - 1);
                //            event.preventDefault();
            } else if (event.keyCode == 40) {//Fleche bas
                setSelectedItem(selectedItem + 1);
                //            event.preventDefault();
            } else if (event.keyCode == 27 && selectedItem != null) {//Fleche bas
                setSelectedItem(selectedItem + 1);
                j$(".suggestAnswer").hide();
                //            event.preventDefault();
            }
        }
    }

    function doSearch() {
        j$(".suggestAnswer").hide();
        document.getElementById('WaitMessage').style.display = "block";
        var reg = new RegExp('( )', 'gi');
        window.location.href = j$("input#hidMilongaUrlVirtual").val() + "/acheter/" + txtSearch.val().replace(reg, '_'); //Lien de recherche vers le site milonga
    }

    function getSuggest() {

        var visible = false;
        var ret = "<table border='0' cellpadding=0 cellspacing=0><tr>";
        var suggestAnswer = j$(".suggestAnswer");
        suggestAnswer.hide();

        if (txtSearch.val().length == 0) { return; }
        var postArgs = { query: txtSearch.val() };
        j$.getJSON('/Ajax/Antidot/GetSuggest.aspx', postArgs, function (response) {

            for (i = 0; i < arrFeeds.length; i++) {
                var arrFeed = arrFeeds[i];
                ret += "<td valign=\"top\" class='suggestTdCol ";
                if ((i + 1) != arrFeeds.length) {
                    ret += "borderRightContent";
                }
                ret += "'>";
                //ret += "<td valign=\"top\"";

                ret += "<div class=\"suggestBoxHeader ";
                if ((i + 1) != arrFeeds.length) {
                    ret += "borderRight";
                }
                ret += "\"><b>" + arrFeed[1] + "</b></div>";
                if (response[arrFeed[0]] != undefined) {
                    visible = true;
                    var feed = response[arrFeed[0]][1];
                    for (j = 0; j < feed.length; j++) {
                        ret += "<div class=\"suggestItem";
                        if (i == 0) { ret += " arboItem"; }
                        var reg = new RegExp('(' + txtSearch.val() + ')', 'gi');
                        ret += "\">" + feed[j].replace(reg, '<b>$1</b>') + "</div>";
                    }
                }
                ret += "</td>";
            }

            //ret += "</tr><tr><td class='pubAnti' colspan='" + arrFeeds.length + "'>Suggestions powered by <a href='http://www.antidot.net' target='_blank'>Antidot</a></td>";
            ret += "</tr></table>";
            suggestAnswer.html(ret);
            if (visible) {
                suggestAnswer.show();
            }
            j$.each(suggestAnswer.find(".suggestItem"), function (index, term) {
                j$(term)
                .mouseover(function () {
                    j$(this).addClass("selectedSuggest");
                })
                .mouseout(function () {
                    j$(this).removeClass("selectedSuggest");
                })
                .click(function () {
                    txtSearch.val(j$(this).text());
                    suggestAnswer.hide();
                    if (j$(this).hasClass('arboItem')) {
                        QueryArbo();
                    } else {
                        doSearch();
                    }

                });
            });
        });
    }

    function setSelectedItem(item) {
        selectedItem = item;
        if (selectedItem === null) {
            j$(".suggestAnswer").hide();
        }
        if (selectedItem < 0) { selectedItem = 0; }
        if (selectedItem > j$(".suggestAnswer").find('.suggestItem').length) { selectedItem = j$(".suggestAnswer").find('.suggestItem').length; }

        j$(".suggestAnswer").find('.suggestItem').removeClass('suggestHighlight').eq(selectedItem - 1).addClass('suggestHighlight');

    }

    function QueryArbo() {
        j$.get('/Ajax/Antidot/GetSuggestArboUrl.aspx', { query: txtSearch.val() }, function (response) {
            if (response.length > 0) {
                window.location.href = j$("input#hidMilongaUrlVirtual").val() + '/' + response; //Lien de recherche vers le site milonga
            } else {
                doSearch();
            }
        });
    }



})(jQuery);
