(function($) {
    $.fn.searchbox = function(options) {
	var container = $(this).addClass("ui-searchbox");

	var settings = $.extend({
	    text: 'Search...',
	    keywordSelector: 'input[type=text]',
	    buttonSelector: 'input[type=button]',
	    targetUrl: 'search.html',
	    keywordParam: 'q',
	    additionalParams: '',
	    formTarget: '_self'
	}, options);
	
	$(settings.keywordSelector + ':first', container).addClass('ui-searchbox-txt').val(settings.text).focus(function() {
	    if($(this).val() == settings.text) {
		$(this).addClass('ui-searchbox-txt-focus').val("");
	    }
	}).blur(function() {
	    if($(this).val() == "") {
		$(this).removeClass('ui-searchbox-txt-focus').val(settings.text);
	    }
	}).mouseover(function() {
	    $(this).addClass('ui-searchbox-txt-over');
	}).mouseout(function() {
	    $(this).removeClass('ui-searchbox-txt-over');
	});

	$(settings.buttonSelector + ':first', container).addClass('ui-searchbox-btn').click(function() {
	    if(($(settings.keywordSelector, container).val() == "") || ($(settings.keywordSelector, container).val() == settings.text)) {
		return false;
	    } else {
		var search_string = settings.targetUrl + '?' + settings.keywordParam + '=' + escape($(settings.keywordSelector, container).val());
		if(settings.additionalParams != '') {
		    search_string += '&' + settings.additionalParams;
		}
		window.open(search_string, settings.formTarget);
	    }
	});

	return container;
    };
})(jQuery);
