var hhtSearchCtrlClass = new Class ({
	init: function()	{
		this.fx	= {
			showWaitingScreen: $('advSearchLoading').effect('opacity', {duration: 400, wait: false}).hide(),
			showContentScreen: $('advSearchResults').effect('opacity', {duration: 400, wait: false}).hide()
		}
		
		this.extraFieldsToggle = new Fx.Slide('advSearchExtraFieldsContainer', {duration: 400});
	},
	
	switchScreen: function(waitingOp, contentOp)	{
		this.fx.showContentScreen.start(contentOp);
		this.fx.showWaitingScreen.start(waitingOp);
	},

	doQuickSearch : function( event ){
		
		var event = new Event ( event );
		var form = new Element( event.target );
		event.stop();
		
		var input = $E('input.searchString', form);
	
		if (input) {
			var query = input.value;
			var name = form.getProperty( 'name' );

				// track quickserach
			window.fireEvent( 'hht-track' , [ 'quicksearch', name ] );
				// show Lightbox wait message
			HHT_Lightbox.openLightBox('searchResults', null, label_search_searchfor + ' "' + query + '" '+ label_search_process, false);
				// start search request
			jsonServer.dispatchMethod('hht_search', 'tx_hhtsearch_json::doSearch', {'searchString':query,'searchLanguage':searchLanguage}, this.displayQuickSearchResult);
			
		}
	},

	displayQuickSearchResult: function(result)	{
		if (!HHT_Lightbox.options.closed)	{
			// console.debug(result);
			$('searchResults').innerHTML = result;
			HHT_Lightbox.changeContent('searchResults');
		}
	},
	
	doAdvancedSearch: function(searchString)	{
		if (searchString != '') {
			$('advSearchLoading').setStyle('display', '');
			this.switchScreen(1.0, 0);
			$('advSearchResults').setStyle('display', 'none');
		
			jsonServer.dispatchMethod('hht_search', 'tx_hhtsearch_json::doAdvancedSearch', {'searchString':searchString,'searchLanguage':searchLanguage}, this.displayAdvSearchResults, this);
		}
	},
	
	displayAdvSearchResults: function(result, pObj)	{
		$('advSearchResults').innerHTML = result;
		$('advSearchResults').setStyle('display', '');
		hhtTeaser.initTabs();
		pObj.switchScreen(0, 1.0);
		$('advSearchLoading').setStyle('display', 'none');
	}
});
	
window.addEvent('domready', function()	{
	HHT_SearchCtrl = new hhtSearchCtrlClass();
	
		// do stuff if advanced search is available
	if ($('advSearchForm'))	{
			// init effects
		HHT_SearchCtrl.init();

			// do advanced search on submit
		$('advSearchForm').addEvent('submit', function(e)	{
			new Event(e).stop();
			HHT_SearchCtrl.doAdvancedSearch($('advSearchString').value);
		});
		
			// clear on focus
		$('advSearchString').addEvent('focus', function(e)	{
			$('advSearchString').value = '';
		});
		
			// extra field toggle
		$('advSearchFieldToggle').addEvent('click', function(e)	{
			HHT_SearchCtrl.extraFieldsToggle.toggle();
		});
		
		if ($('adv_search_0'))	{
			// TODO: adjust size of .tabs
			setTimeout(function() {hhtTeaser.activateTab($('adv_search_1'))},1);			
		}
	};

});