var currentDept = '0';


function enableFullTextSearchBox(textBox, dropDown, fieldDropDown, button, searchlink, defaulttext) {
    if ($('#' + textBox).val() == '') {
        $('#' + textBox).val(defaulttext);
    }
     $('#' + textBox).focus(function () {
        $(this).filter(function () {
            return $(this).val() == '' || $(this).val() == defaulttext;
        }).val('');
    });
    $('#' + textBox).blur(function () {
        $(this).filter(function () {
            return $(this).val() == '';
        }).val(defaulttext);
    });

    $('#' + dropDown).change(function () {
        var control = $('#' + fieldDropDown);
        $(control).val('');
        if ($(this).val() == currentDept) {
            $(control).removeAttr('disabled');
        }
        else {
            $(control).attr('disabled', 'disabled');
        }
    });

    $('#' + textBox).keypress(function (k) {
        if (k.which == 13) {
            doSearch(textBox, dropDown, fieldDropDown, searchlink, defaulttext);
            return false;
        }
    });
    $('#' + button).click(function () {
        doSearch(textBox, dropDown, fieldDropDown, searchlink, defaulttext);
    });
}



function containsIllegalPathCharacter(strTestString) {

    var illegalPathCharacterPattern = '[\"\'\~\^\{+.-\:\?]'; // Os Colchetes apenas delimitam uma lista de opções (OR). 

    var re = new RegExp(illegalPathCharacterPattern, "gi");

    return (re.exec(strTestString) != null);

}

function doSearch(textBox, dropDown, fieldDropDown, searchlink, defaulttext) {
    var ft = jQuery.trim($('#' + textBox).val());
    var dept = $('#' + dropDown).val();
    var field = $('#' + fieldDropDown).val();

    if (ft != '' && ft != defaulttext) {
        var pattern = "/",
        re = new RegExp(pattern, "g");
        ft = ft.replace(re, ' ');
//        pattern = "\?",
//        re = new RegExp(pattern, "g");
//        ft = ft.replace(re, ' ');
        pattern = "&",
        re = new RegExp(pattern, "g");
        ft = ft.replace(re, ' ');

        pattern = "\"",
        re = new RegExp(pattern, "g");
        ft = ft.replace(re, ' ');

        //Variavel que fica monitorando para ver se tem que colocar ? ou & na querystring.
        var concatenador = searchlink.indexOf("?") < 0 ? '?' : '&';

        if (!containsIllegalPathCharacter(ft)) {
            searchlink = searchlink.replace('SEARCHTERM', encodeURIComponent(ft));
            if (searchlink.indexOf("SEARCHTERM") > 0) { //Verifica se tem mesmo um segundo SearchTerm para ser trocado.
                searchlink = searchlink.replace('SEARCHTERM', encodeURIComponent(ft));
            }
        } else {
            searchlink = searchlink.replace('SEARCHTERM', 'busca');
            searchlink += concatenador + "ft=" + encodeURIComponent(ft);
           /* if (searchlink.indexOf("SEARCHTERM") > 0) { //Verifica se tem mesmo um segundo SearchTerm para ser trocado.
                searchlink = searchlink.replace('SEARCHTERM', encodeURIComponent(ft));
                searchlink += concatenador +"ft=" + encodeURIComponent(ft);
            } */
        }
        concatenador = searchlink.indexOf("?") < 0 ? '?' : '&';
        if (field != '') {
            searchlink = searchlink + concatenador + 'fq=spec_idx_' + field + ':';;
        }

        concatenador = searchlink.indexOf("?") < 0 ? '?' : '&';
        if (dept != '') {
            searchlink = searchlink + concatenador + 'ft=' + encodeURIComponent(ft) + '&fq=C:' + dept + '/';
        }

        document.location.href = searchlink;
    }
}



$(function() {
    function gotoHref(href) {
        document.location.href = href;
    }

    try {
        $(".fulltext-search-box").autocomplete({
            source: function(request, response) {
                $.ajax({
                    url: "/buscaautocomplete/",
                    dataType: "json",
                    data: {
                        maxRows: 12,
                        productNameContains: request.term
                    },
                    success: function(data) {
                        if (data != null) {
                            response($.map(data.itemsReturned, function(item) {
                                return {
                                    label: item.thumb + "&nbsp;" + item.name,
                                    value: item.name,
                                    href: item.href
                                }
                            }))
                        }
                    } 
                })
            },
            minLength: 3,
            delay: 500,
            select: function(event, ui) {
                //gotoHref(ui.item ? ("Selected: " + ui.item.label) : "Nothing selected, input was " + this.value);
                gotoHref(ui.item.href);
            },
            open: function() {
                $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
            },
            close: function() {
                $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
            }
        });

    }
    catch (erro) {
        alert(erro.Message);
    }
});











//http://www.devbridge.com/projects/autocomplete/jquery/
//////$(document).ready(function() {
//////    var a1; 
//////    var onAutocompleteSelect = function(value, data) {
////////        $('#selection').html('<img src="\/global\/flags\/small\/' + data + '.png" alt="" \/> ' + value);
//////        alert('oi');
//////    }

//////    var options = {
//////        serviceUrl: '/busca',
//////        width: 300,
//////        delimiter: /(,|;)\s*/,
//////        onSelect: onAutocompleteSelect,
//////        deferRequestBy: 500, //miliseconds
//////        //params: { country: 'Yes' },
//////        noCache: false, //set to true, to disable caching
//////        lookup: ['January', 'February', 'March', 'April', 'May', 'January', 'February', 'March', 'April', 'May', 'January', 'February', 'March', 'April', 'May'] //local lookup values 

//////    };

//////    a1 = $('.fulltext-search-box').autocomplete(options);

//////    $('#navigation a').each(function() {
//////        $(this).click(function(e) {
//////            var element = $(this).attr('href');
//////            $('html').animate({ scrollTop: $(element).offset().top }, 300, null, function() { document.location = element; });
//////            e.preventDefault();
//////        });
//////    });

//////});

//////function fnFormatResult(value, data, currentValue) {
//////    var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
//////    return value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
//////}



