$(document).ready(function(){

	function ajax_search_functions()
	{
		var td_content;
		

		$("#predictive-search-close-button").click(function(){
			$("#predictive-search").hide();
			$("#predictive-search-close-button").hide();
			$("#predictive-selected").html('');
		});
		
		function table_row_click()
		{
			$("#predictive-search table tr").click(function()
			{
				$(this).addClass('active');
				td_content = $(this).html();
				td_content = td_content.substr(4, td_content.length - 9);
				
				
				$("#programme-title").attr('value', td_content );
				$("#predictive-selected").html('');
				$('#predictive-search').hide();
				$('#predictive-search-close-button').hide();
				
				window.location = 'http://www.freshone.tv/programmes/program/' + $("#predictive-search table tr.active").attr("title") + '/' + $("#programme-title").val();				
			});
		}
			
		
		$('#programme-title').keydown(function(event) {


			var typed_key = String.fromCharCode(event.keyCode);
			var predictive_html;
			
			
			if (event.keyCode == 39)
			{
				$("#programme-title").attr('value', $("#predictive-search table tr.active td").html());
				$("#predictive-selected").html('');
				window.location = 'http://www.freshone.tv/programmes/program/' + $("#predictive-search table tr.active").attr("title") + '/' + $("#programme-title").val();
			}
			else if (event.keyCode == 13)
			{
				if ( $("#predictive-selected").html() != '' )
				{
					$("#programme-title").attr('value', $("#predictive-search table tr.active td").html());
				}
				
				window.location = 'http://www.freshone.tv/programmes/program/' + $("#predictive-search table tr.active").attr("title") + '/' + $("#programme-title").val();
			}
			else if (event.keyCode == 38)
			{
				if ( $("#predictive-selected").html() != '' )
				{
					if ( $("#predictive-search table tr.active").attr('id') == 'first-table-row')
					{
						$("#predictive-selected").html('');
						$("#predictive-search table tr").removeClass('active');				
					}
					else
					{
						$("#predictive-search table tr.active").removeClass('active').prev().addClass('active');
						td_content = $("#predictive-search table tr.active").html();
						td_content = td_content.substr(4, td_content.length - 9);
						$("#programme-title").attr('value', td_content );
					}
				}
			}
			else if (event.keyCode == 40 && ($("#predictive-search").html() != ''))
			{
				if ( $("#predictive-selected").html() != '' )
				{
					if ($("#predictive-search table tr.active").attr('id') == 'last-table-row')
					{
						$("#predictive-search table tr").removeClass('active')
						$("#predictive-search table tr:first-child").addClass('active');
						td_content = $("#predictive-search table tr:first-child").html();
						td_content = td_content.substr(4, td_content.length - 9);
						$("#programme-title").attr('value', td_content );				
					}
					else
					{
						$("#predictive-search table tr.active").removeClass('active').next().addClass('active');
						td_content = $("#predictive-search table tr.active").html();
						td_content = td_content.substr(4, td_content.length - 9);
						$("programme-title").attr('value', td_content );
					}
				}
				else
				{
					$("#predictive-selected").html('1');
					$("#predictive-search table tr:first-child").addClass('active');
					td_content = $("#predictive-search table tr:first-child").html();
					td_content = td_content.substr(4, td_content.length - 9);
						
					$("#programme-title").attr('value', td_content );
				}
			}
			else
			{
				$("#predictive-selected").html('');
				var request;
				if (event.keyCode == 8)
				{
					request = $('#programme-title').val();
					request = request.substr( 0, request.length - 1 );
				}
				else
				{
					request = $('#programme-title').val() + typed_key;
				}
				
				if (request == '')
				{
					$("#predictive-selected").html('');
					$('#predictive-search').hide();
					$('#predictive-search-close-button').hide();
				}
				else
				{
					aj("http://www.freshone.tv:/predict?l=" + encodeURIComponent(request), 'predictive-search');
				}	
				
				
				
			}
		
		});
		

	
		$("#predictive-search").ajaxComplete(function() {
			table_row_click();
		});
		
		function encode_utf8( s )
		{
		  return unescape( encodeURIComponent( s ) );
		}		
		
		function aj(url,container) {     
			
			
			try{
				$.post( url , '' , function( data ){                        
					$('#predictive-search').html( unescape(data) );
					
					if (data == '')
					{
						$('#predictive-search').hide();	
						$('#predictive-search-close-button').hide();
						$("#predictive-selected").html('');
						
					}
					else
					{
						$('#predictive-search').show();
						$('#predictive-search-close-button').show();
					}					
					
					 // ajax_search_functions();
				},'HTML');
			}
			catch(e)
			{
				warn(e);        
				$('.ajax_loader').hide();    
			}        
			
			return false;   
		}		
	
	}
	
	
	ajax_search_functions();
});
