﻿(function(j$) {
    //Global Vars
    var txtSearch;
    var lblSearch;
    $SData = "";
    var selectedItem = null;
    var antidotAFSSuggestCarCount;

    j$(document).ready(function() {
        //#region

        antidotAFSSuggestCarCount = j$("#antidotAFSSuggestCarCount");

        txtSearch = j$("#productSearch");
        txtSearch.attr('autocomplete', 'off');
        j$("#lnkDoSearch").click(function() {
            doSearch();
        });
        txtSearch.keyup(txtsearch_keyup);
        txtSearch.keypress(txtsearch_keypress);
        txtSearch.blur(function() {
            //            if (txtSearch.val() == "") {
            //                lblSearch.show();
            //            }
        });
        j$("#autocompleteContainer").hide();
    });
    //#endregion

    function txtsearch_keypress(event) {
        //#region
        if (event.keyCode == '13') {
            event.preventDefault();
            j$("#autocompleteContainer").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();
            }
        }
    }
    //#endregion


    function txtsearch_keyup(event) {
        //#region
        //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);
                if (antidotAFSSuggestCarCount.val() <= txtSearch.val().length) getSuggest(); else j$("#autocompleteContainer").hide();
            } 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$("#autocompleteContainer").hide();
                //            event.preventDefault();
            }
        }
    }
    //#endregion

    function doSearch() {
        //#region
        if (txtSearch.val().length != 0) {
            j$("#WaitMessage").attr("style", "display:inline");
            QueryStringArbo();
            //            j$("#autocompleteContainer").hide();
            //            var reg = new RegExp('( )', 'gi');
            //            window.location.href = "/acheter/" + txtSearch.val().replace(reg, '_') + '?page=1';
        }
    }
    //#endregion

    function getSuggest() {
        //#region

        var visible = false;
        var ret = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
        var suggestAnswer = j$(".suggestAnswer");
        suggestAnswer.hide();
        j$("#autocompleteContainer").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];
                if (response[arrFeed[0]] != undefined) {
                    ret += "<td>&nbsp</td>"

                    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 == 1) { ret += " FamiItem"; }
                            if (i == 2) { ret += " ArboItem"; }
                            var reg = new RegExp('(' + txtSearch.val() + ')', 'gi');
                            ret += "\">" + feed[j].replace(reg, '<u><b>$1</b></u>') + "</div>";
                        }
                    }
                    ret += "</td>";
                    ret += "<td width=\"4\"></td>";

                }
                //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$('#autocompleteContainer').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();
                    j$('#autocompleteContainer').hide();
                    if (j$(this).hasClass('FamiItem')) {
                        QueryFami();
                    } else {
                        if (j$(this).hasClass('ArboItem')) {
                            QueryArbo();
                        } else {
                            doSearch();
                        }
                    }

                });
            });
        });
    }
    //#endregion

    function setSelectedItem(item) {
        //#region
        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');

    }
    //#endregion

    function QueryFami() {
        //#region
        j$.get('/Ajax/Antidot/GetSuggestArboUrl.aspx', { query: txtSearch.val() }, function(response) {
            if (response.length > 0) {
                window.location.href = '/' + response;
            } else {
                doSearch();
            }
        });
    }
    //#endregion

    function QueryArbo() {
        //#region
        j$.get('/Ajax/Antidot/GetSuggestArboUrl.aspx', { query: txtSearch.val(), arbo: "1" }, function(response) {
            if (response.length > 0) {
                window.location.href = '/' + response;
            } else {
                doSearch();
            }
        });
    }
    //#endregion

    function QueryStringArbo() {
        //#region
        //        txtSearch.val()
        var strQuery = txtSearch.val();
        //        j$.getJSON('/Ajax/Antidot/GetArboByString.aspx', { arboString: strQuery }, function(response) {
        //            if (response.length > 0) {
        //                window.location.href = '/' + response;
        //            }
        //        });


        j$.get('/Ajax/Antidot/GetArboByString.aspx', { arboString: strQuery }, function(response) {
                    if (response.length > 0) {
                        window.location.href = '/' + response;
                    }
                    else {
                        j$("#autocompleteContainer").hide();
                        var reg = new RegExp('( )', 'gi');
                        //window.location.href = "/acheter/" + txtSearch.val().replace(reg, '_') + '?page=1';
                        window.location.href = "/acheter/" + strQuery.replace(reg, '_');
                    }
                });


        //        j$("#autocompleteContainer").hide();
        //        var reg = new RegExp('( )', 'gi');
        //        window.location.href = "/acheter/" + txtSearch.val().replace(reg, '_') + '?page=1';

    }
    //#endregion



})(jQuery);
