$(document).ready(function() {
	$('.search_dropdown > li').hover(
		function() { $('ul', this).css('visibility', 'visible'); },
		function() { $('ul', this).css('visibility', 'hidden'); }
	);
	$('#search_type > li > ul > li > a').click(function() { SelectType($(this).text()); });
	$('#search_sort > li > ul > li > a').click(function() { SelectSort($(this).text()); });
	$('#search_per > li > ul > li > a').click(function() { SelectPer($(this).text()); });
	$('#search_input').autocomplete("/", { extraParams: { 'search': 'complete', 'xhr': 'on' }, selectFirst: false });
	$('#search_input').result( function(event, data, formatted) { DoSearch(formatted); } );
});

function SelectType(sType) {
	$('#search_type > li > input').val(sType.substring(sType.indexOf(' ')).toLowerCase());
	$('#search_type > li > a').text(sType);
	$('#search_type > li > ul').css('visibility', 'hidden');
	DoSearch($('#search_input').val());
}

function SelectSort(sSort) {
	if (sSort.indexOf(' ') > 0) {
		$('#search_sort > li > input').val(sSort.substring(sSort.indexOf(' ')+1).toLowerCase());
	} else {
		$('#search_sort > li > input').val(sSort.toLowerCase());
	}
	$('#search_sort > li > a').text(sSort);
	$('#search_sort > li > ul').css('visibility', 'hidden');
	DoSearch($('#search_input').val());
}

function SelectPer(sPer) {
	if (sPer.indexOf(' ') > 0) {
		$('#search_per > li > input').val(sPer.substring(sPer.indexOf(' ')+1).toLowerCase());
	} else {
		$('#search_per > li > input').val(sPer.toLowerCase());
	}
	$('#search_per > li > a').text(sPer);
	$('#search_per > li > ul').css('visibility', 'hidden');
	DoSearch($('#search_input').val());
}

function EnlargeResearch() {
	$('#search_per > li > input').val('anytime');
	$('#search_type > li > input').val('all');
	$('#search_type > li > a').text('All');
	$('#search_per > li > a').text('Anytime');
	DoSearch($('#search_input').val());
}

function customHistory(hash) {
	if (hash == '') {
		hash = UrlParse(window.location.href, 1);
	}
	var tableau=hash.split('/');
	if (tableau.length == 1) {
		DoSearch(tableau[0]);
	} else if (tableau.length == 3) {
		if (tableau[1] == 'page' && tableau[0] !== null && tableau[2] !== null) {
			GoPage(tableau[0], tableau[2]);
		}
	}
}

function DoSearch(request) {
	request_send = request.replace(/\s/gi, "+");
	request_send = request_send.replace(/\//gi, "");
	request_send = request_send.replace(/\#/gi, "");
	request_send = request_send.replace(/\%/gi, "");
	//request_send = encodeURIComponent(encodeURIComponent(request_send)); //sorry this is ugly
	if (request_send.length > 0) {
		request = decodeURIComponent(request.replace(/\%/gi, ""));
		request = request.replace(/\+/gi, " ");
		$('#search_request').text(request);
		$('#search_input').val(request);
		searchData = 'search/'+request_send;
		if ($('#search_type > li > input').val().length > 0) {
			searchData += '/type/'+$('#search_type > li > input').val();
		}
		if ($('#search_sort > li > input').val().length > 0) {
			searchData += '/sort/'+$('#search_sort > li > input').val();
		}
		if ($('#search_per > li > input').val().length > 0) {
			searchData += '/per/'+$('#search_per > li > input').val();
		}
		$.ajax({
			url: '/',
			data: searchData+'/xhr',
			success: function(msg) {
				$('#content').html(msg);
				UpdateInterface();
				document.title = winTitle +' > ' + request;
			}
		});
	}
}

function SubmitSearch() {
	$.address.value($('#search_input').val());
}

function GoPage(request, page) {
	if (request.length > 0) {
		searchData = 'search/'+request+'/page/'+page;
		if ($('#search_type > li > input').val().length > 0) {
			searchData += '/type/'+$('#search_type > li > input').val();
		}
		if ($('#search_sort > li > input').val().length > 0) {
			searchData += '/sort/'+$('#search_sort > li > input').val();
		}
		if ($('#search_per > li > input').val().length > 0) {
			searchData += '/per/'+$('#search_per > li > input').val();
		}
		$.ajax({
			url: '/',
			data: searchData+'/xhr',
			success: function(msg) {
				$('#content').html(msg);
				UpdateInterface();
			}
		});
	}
}