
var Cagi_Search = {

    options: {
        formId: '#top-search-form',
        locationInput: '#search-location',
        locationIdInput: '#search-location_id',
        textInput: '#search-name',
        categoryInput: '#search-category',
        categoryIdInput: '#search-category_id',
        suggestLocationUrl: '/ajax/suggest-location/'
    },

    init: function(options) {
        for (var k in options) {
            this.options[k] = options[k];
        }
        
        this.bindEvents();
        this.initAutocomplete();
        this.initCategory();
    },

    initAutocomplete: function() {
        Cagi_Autocompleter.init({
            inputId: Cagi_Search.options.locationInput,
            resultBlockId: 'search-location-list',
            resultHandler: function(event, data, formatted){
                $(Cagi_Search.options.locationIdInput).val(data.id);
            }
        });
    },

    initCategory: function() {
        var category = Cagi_Category({
            categoryId: 0,
            inputId: Cagi_Search.options.categoryInput,
            hiddenInputId: Cagi_Search.options.categoryIdInput,
            categoryBlockId: '#categorySearchBlock',
            positionTop: 186,
            positionLeft: 217 // custon position
        });
    },
    
    bindEvents: function() {
        // delete location id if location input is empty
        $(Cagi_Search.options.formId).submit(function(){
            if ($(Cagi_Search.options.locationInput).val() == '') {
                $(Cagi_Search.options.locationIdInput).val('');
            }
        });

        // change page
        $(".pagination a").click(Cagi_Search.changePage);

        // chnage order
        $("#orderByList a").click(Cagi_Search.changeOrder);

        // change mode
        $("#modeList a").click(Cagi_Search.changeMode);

        $("#popular_users li a").click(function(){
            var userId = $(this).attr("rel");
            $("#search-user_id").val(userId);
            $(Cagi_Search.options.formId).submit();
            return false;
        });

        $(".back-to-list").click(function(){
            $("#top-search-form").submit();
            return false;
        });

        // erase prev text input
        $(".erase-input-text").click(function(){
           $(this).prev("input").val('');
           return false;
        });
    },
    
    changeOrder: function() {
        if ($(this).hasClass("active")) {
            return false;
        }
        $("#orderByList a").removeClass('active');
        $(this).addClass("active");
        $("#order").val($(this).attr("rel"));
        $(Cagi_Search.options.formId).submit();
        
        return false;
    },

    changePage: function() {
        $("#page").val($(this).text());
        $(Cagi_Search.options.formId).submit();
        return false;
    },
    
    changeMode: function() {
        if ($(this).hasClass("active")) {
            return false;
        }
        $("#modeList a").removeClass('active');
        $(this).addClass("active");
        $("#mode").val($(this).attr("rel"));
        $(Cagi_Search.options.formId).submit();
        return false;
    }
    
}
