$(document).ready(function() {
	function ensureRemove() {
		var count = $('div.playersearch .remove').size();
		if (count > 1) {
			$('div.playersearch .remove').show();
		}
		else {
			$('div.playersearch .remove').hide();
		}
		$('div.playersearch .remove').click(function() {
			if ($(this).is(':visible')) {
				$(this).parent().remove();
				ensureRemove();
			}
		});
	}
	
	$('div.playersearch .addCriteria').click(function() {
		var criteria = $('div.playersearch .criteria .item').last();
		var newCriteria = criteria.clone();
		newCriteria.find('input').val('');
		$('div.playersearch .criteria').append(newCriteria);
		newCriteria.find('select').val(-1);
		ensureRemove();
		bindCriteria();
		$(newCriteria).find('.criteriaSelect').focus();
	}).show();
	
	var clubs = null;
	var clubSuggestUrl = null;
	var isSetUp = false;
	
	function getClubs()
	{
		if (clubs == null) {
			$.ajax({
				url: clubSuggestUrl,
				dataType: 'json',
				async: false,
				success: function(data) {
					clubs = [];
					for (var key in data) {
						clubs.push({label:data[key], value:key}); 
					}
				},
			});
		}
		return clubs;
	}
	
	function bindCriteria() {
		$('div.playersearch .criteriaSelect').change(criteriaChange);
	}
	
	function criteriaChange() {
		var element = this;
		
		var item = $(element).parents('.item');
		if (isSetUp) {
			item.find('.criteriaId').val('');
			item.find('.criteriaTerm').val('');
		}
		
		var value = $(element).val();
		
		item.removeClass();
		item.addClass('item ' + value);

		var input = item.find('.criteriaTerm');
		var suggestUrl = $(element).find('option[value='+value+']').attr('data-suggest');
		
		if (value == 'name') {
			$(input).autocomplete({
				source: function(request, response) {
					$.ajax({
						url: suggestUrl,
						dataType: 'json',
						data: {term: request.term},
						success: function(data) {
							var dataArray = [];
							for (var key in data) {
								dataArray.push({label:data[key], value:key});  
							}
							response(dataArray);
						}
					});
				},
				focus: function(item) { return function(event, ui) {
						item.find(".criteriaId").val(ui.item.value);
						$(this).val(ui.item.label);
						return false;
					};
				}(item),
				select: function(item) { return function(event, ui) {
						item.find(".criteriaId").val(ui.item.value);
						$(this).val(ui.item.label);
						return false;
					};
				}(item),
				minLength: 1
			});
		}
		else if (value == 'club') {
			if (!clubSuggestUrl) {
				clubSuggestUrl = suggestUrl;
			}
			$(input).autocomplete({
				source: getClubs(),
				focus: function(item) { return function(event, ui) {
						item.find(".criteriaId").val(ui.item.value);
						$(this).val(ui.item.label);
						return false;
					};
				}(item),
				select: function(item) { return function(event, ui) {
						item.find(".criteriaId").val(ui.item.value);
						$(this).val(ui.item.label);
						return false;
					};
				}(item),
				minLength: 1
			});
		}
		else if (value == 'position') {
			$(input).autocomplete({
				source: ['Defender','Forward','Midfielder','Ruck'],
				minLength: 0,
				delay: 0,
			});
		}
		else if (value == 'multi') {
			$(input).autocomplete({
				source: ['Yes','No'],
				minLength: 0,
				delay: 0,
			});
		}
		else {
			
		}
	}
	
	$(".criteriaSelect").each(criteriaChange);
	
	$('.search .pageButton').height($('.search #page').height());
	
	$('.search .pageButton').click(function() {
		var img = $(this).find('input[type=image]');
		var page = img.attr('data-page');
		
		if (!img.attr('disabled')) {
			var form = $('form');
			var pInput = form.find('input.page');
			if (pInput.size()==0) {
				pInput = $('<input type="hidden" class="page" value="1" />');
				form.append(pInput);
			}
			pInput.attr('name', 'page['+parseInt(page)+']');
			form.submit();
			
			/*
			var data = $("form").find("input,select,textarea").serialize();
			data += "&callback=1&page["+parseInt(page)+"]=1";
			$.ajax({
				type: 'POST',
				url: window.location.href,
				data: data,
				dataType: "json",
				success: function(responseData, textStatus, xhr) {
					for (sel in responseData) {
						var selection = $(sel);
						selection.empty().append(responseData[sel]);
						if (ajaxify) ajaxify();
						selection.find(ajaxClickSelector).click(ajaxClick(ajaxify));
					}
				}
			});
			*/
		}
		return false;
	});
	
	$('.info').cluetip({sticky: true, activation: 'click', positionBy: 'bottomTop', closePosition: 'title', arrows: true});
	
	/*
	function applyDefaults() {
		$("input[type=submit].default, button[type=submit].default").each(function(index, element) {
			var bw = $(element).parents('.buttonWrapper');
			var qqq = function(btn){return function(e) {
				if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
					$(btn).click();  
					return false;
				}
				else {  
					return true; 
				}  
				return true;
			}}(this);
			
			if (bw.size()!=0) {
				bw.find('input,select').keypress(qqq).addClass('invokesDefault');
			}
			else {
				var f = $(element).parents('form:first').find('input:not(.invokesDefault),select:not(.invokesDefault)').keypress(qqq).addClass('invokesDefault');
			}
		});
	}
	applyDefaults();
	*/
	ensureRemove();
	bindCriteria();
	
	isSetUp = true;
});

