function bindFormActions()
{
	$(document).ready(function(){
		globals.temp.isover16=null;
		$("input.date").datepicker({dateFormat:'dd.mm.yy', firstDay:1, changeMonth: true, changeYear: true, yearRange: '1960:2020'}).attr({readonly: 'readonly', size:11});
		$("input.seria, input.passby").attr('size', 4);
		/*$('#location').change(function(){
			locationChange(this);
		});*/
		$('#gamesRegTbl input.game').change(function(){
			gameChange(this);
		});
		$('#gamesRegTbl input.game').change();
		$('#regForm').submit(function(){
			$('#bdday, #bdmonth, #bdyear').each(function(){
				$('#regForm').append('<input type="hidden" name="'+$(this).attr('name')+'" value="'+$(this).val()+'">');
			});
			if($('#accept_rules:checked').length == 0)
			{
				alert(globals.lang.accept_rules_req);
				return false;
			}
			if($('.acceptRules:checkbox:visible:not(#accept_rules, :checked)').length > 0)
			{
				alert(globals.lang.parent_accept_rules_req);
				return false;
			}
		});
		$('input, select').each(function()
		{
			// We make use of the .each() loop to gain access to each element via the "this" keyword...
			if($(this).data('tooltip') == '' || $(this).data('tooltip') == undefined)
				return;
			$(this).qtip(
			{
				content: {
					// Set the text to an image HTML string with the correct src URL to the loading image you want to use
					text: '<img class="throbber" src="'+globals.params._images_dir+'loading.gif" alt="Loading..." />',
					ajax: {
						url: _ajax_url+'tooltip.php', // URL to the local file
						type: 'GET', // POST or GET
						data: {'l' : globals.params.lang, 't' : $(this).data('tooltip')}, // Data to pass along with your request
						success: function(data, status) {
							if(data== '')
							{
								this.hide();
								this.destroy();
								return;
							}
							this.set('content.text', data);
						}
					}/*,
					title: {
						text: 'Wikipedia - ' + $(this).text(), // Give the tooltip a title using each elements text
						button: true
					}*/
				},
				position: {
					at: 'right center', // Position the tooltip above the link
					my: 'left center',
					viewport: $(window) // Keep the tooltip on-screen at all times
				},
				show: {
					event: 'click mouseenter',//focusin 
					delay: 10,
					solo: true // Only show one tooltip at a time
				},
				hide: 'unfocus focusout',// focusout
				style: {
					classes: 'ui-tooltip-wiki ui-tooltip-light ui-tooltip-shadow'
				}
			});
		})
		//.mouseenter(function(){console.log($(this).data('tooltip'))})
		.mouseenter().mouseleave();
		
		$('.personLbl').each(function(){
			$t = $(this);
			var rel = $t.data('rel');
			if(rel == '' || rel == undefined)
				return;
			var tbl_id = rel+'_tbl', fname_id = 'fname'+rel, lname_id = 'lname'+rel;
			$t.click(function(){
				$('#'+tbl_id).toggle();
			});
			$('#'+fname_id+', #'+lname_id).change(function(){
				showMemberName(this);
			})
			$('#'+fname_id).change();
		});
		$('.acceptRulesView').each(function(){
			$t = $(this);
			var fancyConf = {
				'overlayShow'	: true,
				'transitionIn'	: 'fade',
				'transitionOut'	: 'fade',
				'speedIn' : 400,
				'speedOut' : 300,
				'padding' : 20,
				'type' : 'ajax',
				'href' : _ajax_url+'content.php?c=top&u='+$t.attr('href')
			};
			$t.fancybox(fancyConf);
		});
	});
}

function showMemberName(t)
{
	$t = $(t);
	//alert($t.attr('id'));
	rel = $t.parents('table.teamMember').data('rel');
	//alert($t.parent('table').length)
	var $div = $('#'+rel+'_lbl'), 
		fval = $.trim($('#fname'+rel).val()), 
		lval = $.trim($('#lname'+rel).val());

	if(fval == '' && lval == '')
		$div.html($div.data('num') +'. '+$div.data('label'));
	else
		$div.html($div.data('num') +'. '+lval+' '+fval);
}

function isOver16(name)
{
	var selectorAdd = (name == null) ? '' : name
	var now = new Date();
	var ny = now.getFullYear();
	var nm = now.getMonth()+1;
	var nd = now.getDate();
	var d = +$('#bdday' + selectorAdd).val();
	var m = +$('#bdmonth' + selectorAdd).val();
	var y = +$('#bdyear' + selectorAdd).val();
	
	return (d*m*y == 0) ? null : (ny > globals.params.age_sep + y || ny == globals.params.age_sep + y && nm > m || ny == globals.params.age_sep + y && nm == m && nd > d);
}
function ageChange(name)
{
	var selectorAdd = (name == null) ? '' : name
	$bdday = $('#bdday' + selectorAdd);
	$bdmonth = $('#bdmonth' + selectorAdd);
	$bdyear = $('#bdyear' + selectorAdd);
	var d = +$bdday.val();
	var m = +$bdmonth.val();
	var y = +$bdyear.val();
	
	if(m*y != 0)
	{
		var ld;
		switch(m)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				ld = 31;
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				ld = 30;
				break;
			default:
				var tmp = new Date(new Date(y, m-1, 1).getTime()+30*24*60*60*1000);
				var ld = 31 - (tmp.getDate()) % 31;
		}
		$bdday.empty().append('<option></option>');
		for(var i = 1; i<=ld; i++)
		{
			$bdday.append('<option value="'+i+'">'+i+'</option>');
		}
		d = $bdday.val(d).val();
		try{$bdday.selectmenu();}catch(err){}
	}
		
	var isover16 = isOver16(name);
	if(name != null && isover16 == false && isGameOver16($bdyear))
	{
		isover16 = null;
		$bdyear.val('');
		alert(globals.lang.teamMemberAgeError)
	}
	if(name == null)
		formAgeChanges(isover16);
	else
	{
		teamMemberAgeChange(name, isover16);
	}
}

function gameChange(t, chckd)
{
	$t = $(t);
	if(chckd != null)
		chckd ? $t.attr('checked', 'checked') : $t.removeAttr('checked');
	id = $t.val();
	if($t.is(':checked'))
	{
		$('#gameInfo_'+id).show();
		var is_official = $t.data('official');
		if(is_official != null)
			$('#gamesRegTbl input.game[data-official="'+is_official+'"]:not(#'+$t.attr('id')+')').each(function(){gameChange(this, false);});
 	}
	else
		$('#gameInfo_'+id).hide();
}

function formAgeChanges(isover16)
{
	if(isover16 == null)
	{
		$('#under16_img').hide();
		$('#over16_img').hide();
		$('#gamesRegTbl, #btns').hide();
	}
	else
	{
		if($('#gamesRegTbl').length == 0 || !$('#gamesRegTbl').is(':visible'))//bottom content not loaded
		{
			openSubmenu($('#menuDiv .selected a'), function(){formAgeChanges(isover16);}, true);
		}
		else
		{
			$('#gamesRegTbl, #btns').show();
			if(globals.temp.isover16 != isover16)// age group changed
			{
				teamMemberAgeChange('', isover16);
				filterGames(isover16, $('#location').val());
				globals.temp.isover16 = isover16;
				$('#under16_img').toggle(!isover16);
				$('#over16_img').toggle(isover16);
			}
		}
	}
}

function teamMemberAgeChange(name, isover16)
{
	if(isover16 == null)
	{
		$('[data-rel='+name+'][data-over16]').hide();
	}
	else if(isover16)
	{
		$('[data-rel='+name+'][data-over16=0]').hide();
		$('[data-rel='+name+'][data-over16=1]').show();
	}
	else
	{
		$('[data-rel='+name+'][data-over16=0]').show();
		$('[data-rel='+name+'][data-over16=1]').hide();
	}
}

function locationChange(l)
{
	filterGames(null, $(l).val());
}

function filterGames(isover16, location)
{
	location = 0;//location || $('#location').val();
	isover16 = isover16 || isOver16();
	$('#gamesRegTbl input.game').removeAttr('disabled');
	var disableSelector = [];
	if(location > 0)
		disableSelector.push('#gamesRegTbl input.game:not([data-locations*="\\,'+location+'\\,"])');
	if(!isover16)
		disableSelector.push('#gamesRegTbl input.game[data-over16=1]');
	if(disableSelector.length > 0)
		$(disableSelector.join(',')).each(function(){gameChange(this, false);}).attr('disabled', 'disabled');
/*
	var disableElems = $('');
	if(!isover16)
		disableElems.add('#gamesRegTbl input.game[data-over16=1]');
	if(location > 0)
		disableElems.add('#gamesRegTbl input.game:not([data-locations*="\\,'+location+'\\,"])');
	alert(disableElems.length)
	$(disableElems).each(function(){gameChange(this, false);}).attr('disabled', 'disabled');
*/
}

function isGameOver16(elem)
{
	return $('#game_'+$(elem).parents('fieldset').data('game')).data('over16') == 1;
}
