window.addEvent('domready',function()
{
	var thinking = 0;
	var timer;
	
	
	$('home-filter-form').addEvent('change',function(e)
	{
		e.stop();
		var object = this;
		makeAjaxRequest(object);
	});
	
	$('keyword').addEvent('keyup', function(e)
	{
		e.stop();
		var object = this;
		
		if(timer)
		{
			clearTimeout(timer);	
		}
		
		timer = setTimeout(function(){makeKeypressRequest(object)}, 250);
	
	});	
	
	showMoreListener();
});

function showMoreListener()
{
	$('showmore').addEvent('click', function(e)
	{
		e.stop();
		var hidden = $('result-update').getElements('div.hide');
		var show_more_limit = 5;
		if( hidden.length > 0 )
		{
			if( show_more_limit > hidden.length )
			{
				show_more_limit = hidden.length;	
			}
				
			var wrapper = $('result-update-wrapper');
			var result_height = $('result-height');
			
			var wrapper_height = result_height.getStyle('height');
			wrapper.setStyle('height', wrapper_height);

			for( var i=0; i<show_more_limit; i++)
			{
				hidden[i].removeClass('hide');
				hidden[i].setStyle('opacity', 0);
			}
			
			var slideWrapper = new Fx.Tween( wrapper, 
			{
				duration:750,
				onComplete:function()
				{
					for( var i=0; i<show_more_limit; i++)
					{
						fadeIn(hidden[i]);
					}
					
					wrapper.setStyle('height', 'auto');
				}
			});
			
			slideWrapper.start('height', result_height.getStyle('height') );
			
			var hiddenLeft = $('result-update').getElements('div.hide').length;
			
			if(hiddenLeft == 0)
			{
				$('showmore').innerHTML = 'No more results';
			}
		}		
	});	
}

function fadeIn(object)
{
	var fadeIn = new Fx.Tween( object );
	fadeIn.start('opacity', 1);
}

function makeKeypressRequest(rawr)
{
	var object = rawr.getParent();
	makeAjaxRequest(object);	
}

function makeAjaxRequest(object)
{
	var submitted = false;
	
	var updateArea = $('result-height');
	var updateWrapper = $('result-update-wrapper');
	
	var updateHeight = updateArea.getStyle('height');
	var updateWidth = updateArea.getStyle('width');
	
	var ajaxLoader = new Element('div', 
	{
		id: 'ajax-loader',
		styles: 
		{
			'height' : updateHeight,
			'width' : updateWidth
		}
	});
	
	var ajaxLoaderDiv = new Element('div');
			
	//updateArea.empty();
	
	ajaxLoader.inject(updateWrapper);
	ajaxLoaderDiv.inject(ajaxLoader);
	
	ajaxLoader.setStyle('opacity',0);
	
	var fadeAjaxLoaderOut = new Fx.Tween(ajaxLoader, {duration:250});
	var fadeAjaxLoaderIn = new Fx.Tween(ajaxLoader, 
	{ 
		duration:250,  
		onComplete: function()
		{
			//Send the form.
			object.send();
		}
	});
	
	object.set('send', { url: 'includes/home-filter-results.inc.php', onComplete: function(response) 
	{ 
		//updateArea.empty();
		updateArea.set('html', response);
		fadeAjaxLoaderOut.start('opacity', 0);
		//filterToggleListener();
		showMoreListener();
	}});
	
	fadeAjaxLoaderIn.start('opacity', 1);
		
}