/**
 * @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 pd = pd || {};
pd.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 = (form.next().is('.categories') && form.next().find('input:checked').val())
			? form.next().find('input:checked').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(pd.sitesearch.init);