/**
 * @author balazs.suhajda
 */

String.prototype.searchtemplate = function (o) {
    return this.replace(/#([^##]*)#/g,
        function (a, b) {
            var r = o[b];
            return typeof r === 'string' || typeof r === 'number' ? r : a;
        }
    );
};


var kum = kum || {};
kum.sitesearch = (function() {
    //	settings
    formSelector = '.sitesearch',
	submitBtnSelector = 'a.searchbutton, a.search-button';

    //	local vars
    var $form,
		defaultText;
    var init = function() {
        $form = (formSelector);
        defaultText = $('#sitesearch input[type="text"]')[0].defaultValue;
        //	press enter in search input
        $('input', $form).keydown(function(e) {
            if (e.keyCode == 13) {
                e.preventDefault()
                submit($(this).parent(formSelector));
            }
        });
        //	click on search submit buttom
        $(submitBtnSelector, $form).click(function(e) {
            e.preventDefault()
            submit($(this).parent(formSelector));
        });

      /*  $('.categories input').click(function(e) {
            submit($(this).parents('.categories').siblings(formSelector));
        });*/
    };

    var submit = function(form) {
        //	get search term from input
        var inp = form.find("input[type='text']"),
			st = inp.val();
        if (st == defaultText) st = '';

        //	check if area is selected, if so append to query str
        var categ = '';

        if ($('.categories', form).length > 0 && $('.categories', form).find('input:checked').val())
            $.each($('.categories', form).find('input:checked'), function() {
                categ = (categ == '') ? $(this).val() : categ + ';' + $(this).val();
            });

        //	create search url from search submit link's href
        var url = $('a.searchbutton, a.search-button', form).attr('href').toString();
        url = url.searchtemplate({
            0: st,
            1: categ
        });

        //console.log(url);
        window.location = url;
    }
    return {
        init: init
    }
})();

$(document).ready(kum.sitesearch.init);
