﻿AppCore.ready(function() {
    AppCore.register('searchAutocomplete', function() {
        return {
            urlAutocomplete: '',
            init: function() {
                AppCore.$("#category").change(function() {
                    $("#Fnac_Search").flushCache();
                });
                AppCore.$("#Fnac_Search").autocomplete(this.urlAutocomplete, {
                    width: 260,
                    selectFirst: false,
                    max: 10,
                    scrollHeight: 200,
                    cacheLength: 0,
                    delay: 100,
                    dataType: "jsonp",
                    highlight: function(value, term) {
                        return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "i"), "<strong>$1</strong>");
                    },
                    extraParams: {
                        "text": function() { return $("#Fnac_Search").val(); },
                        "category": function() {
                            var rex = new RegExp("!1$");
                            var cat = $("#category").val().replace(rex, '');
                            return cat;
                        },
                        "encoding": "UTF-8"
                    },
                    parse: function(data) {
                        return $.map(data, function(row) {
                            return {
                                data: row,
                                value: row.sentence,
                                result: row.sentence
                            }
                        });
                    },
                    formatItem: function(itemResult) {
                        return itemResult.sentence;
                    }

                });
                AppCore.$("#Fnac_Search").result(function(event, data, formatted) {
                    if (data) {
                        AppCore.$("#QuickSearchForm").submit();
                    }

                });
                AppCore.$("#QuickSearchForm").submit(function() {
                    var search = $("#Fnac_Search").val();
                    var rex = /"*/g;
                    $("#Fnac_Search").val(search.replace(rex, ""));

                    if (search == '') return false;
                    if ($(".pipeSearchWidth .text").val() == "") {
                        return false;
                    }

                    //return true;
                });
            }
        };
    });
});
