jQuery(function(){
	jQuery('.toggle-popup').setup_popup();
	
	jQuery('.player-search').setup_player_search();
	
	jQuery('.deleteplayer').click(function(){
		var answer = confirm("Are you sure you want to delete this player? All their stats will also be deleted.");
		return answer;
	});

	jQuery('.removeplayer').click(function(){
		var answer = confirm("Are you sure you want to remove this player (and their stats) from this season's team?");
		return answer;
	});
	
	jQuery('.former-club .delete').delete_former_club();

	jQuery('.add-former-club').add_former_club();

	if(Modernizr.inputtypes.number)
		console.log('false positive');

	
	if(!Modernizr.inputtypes.number)
		jQuery('.stats').setup_stats();
});

jQuery.fn.setup_popup = function() {
	jQuery(this).live('click', function(e) {
		e.preventDefault();
		
		jQuery('body').append('<div class="popup"></div>');
		var popup = jQuery('.popup');
		
		popup.fadeIn('fast');
		
		jQuery.get(
			jQuery(this).attr('href'),
			function(data) {
				popup.append('<div class="popup-content">'+jQuery(data).find('.wrap').html()+'</div>');
				var content = jQuery('.popup-content');
				var left = (jQuery(window).width() - content.width() - (parseFloat(content.css('padding-left')) * 2) - (parseFloat(content.css('border-left-width')) * 2)) * 0.5;
				content.css({ 'left': left + 'px' });
				content.find('.submit').prepend('<a href="#page-anchor" class="cancel button button-highlighted">Cancel</a>');
				jQuery('.cancel').click(function(e){
					e.preventDefault();
					content.close_popup();
				});
				jQuery(document).keyup(function(event){
				    if (event.keyCode == 27)
						content.close_popup();
				});
				content.slideDown('normal', function(){
					content.attr('tabIndex',-1).focus();
				});
				content.find('input[type=submit]').live('click', function(){
					content.slideUp();
				});
			}
		);
	});
}

jQuery.fn.close_popup = function() {
	jQuery(document).unbind('keyup');
	var content = jQuery(this);
	var popup = jQuery('.popup');
	content.slideUp('normal', function(){
		popup.fadeOut('fast', function(){
			popup.remove();
		});
	});
}

jQuery.fn.setup_player_search = function() {
	jQuery(this).submit(function(e){
		var loading_image = jQuery('.player-search img');
		loading_image.show();
		e.preventDefault();
		var form = jQuery('.player-search');
		var first_name = form.find('input[name="player[first_name]"]');
		var last_name = form.find('input[name="player[last_name]"]');
		jQuery.getJSON(
			form.attr('action')+'?first_name='+first_name.val()+'&last_name='+last_name.val(),
			function(data){
				form.find('p').append('<ul class="results"/>');
				var results = jQuery('.results');
				jQuery.each(data.players, function(key, player){
					results.append('<li><a href="admin.php?page=wp-club/players&amp;action=edit&amp;player='+player.id+'" class="toggle-popup">'+player.first_name+' '+player.last_name+'</a></li>');
				});
				
				var offset = first_name.position();
				results.css({
					'left': offset.left + 2 + 'px',
					'width': first_name.width()*2 + parseFloat(first_name.css('padding-left'))*2 + 'px'
				});
				
				results.slideDown();
				jQuery(document).keyup(function(event){
				    if (event.keyCode == 27) {
				    	form.find('input[type=text]').val('');
						results.remove();
						jQuery(document).unbind('keyup');
					}
				});
				results.find('a').click(function(){
				    form.find('input[type=text]').val('');
					results.remove();
					jQuery(document).unbind('keyup');
				});
				loading_image.fadeOut();
			}
		);
	});
}

jQuery.fn.add_former_club = function() {
	 jQuery(this).live('click', function(e) {
		e.preventDefault();
		var i = jQuery('.former-club').length;
		var new_club = jQuery('.former-club').eq(0).clone().insertBefore(jQuery('.add-former-club').parents('tr'));
		new_club.attr('id', 'former-club-'+i);
		new_club.find('label').attr('for', 'player[formerclub]['+i+'][name]');
		new_club.find('input[type=hidden]').remove();
		new_club.find('input').attr('name', 'player[formerclub]['+i+'][name]');
		new_club.find('input[type=text]').eq(0)
			.attr('id', 'player[formerclub]['+i+'][name]')
			.val('');
		new_club.find('input[type=text]').eq(1)
			.attr('name', 'player[formerclub]['+i+'][year]')
			.val('');
		new_club.find('a').attr('href', '/formerclub/delete/');
	});
}

jQuery.fn.delete_former_club = function() {
	jQuery(this).live('click', function(e){
		e.preventDefault();
		if(jQuery(this).parents('tr').find('input[type=hidden]').length) {
			jQuery.get(
				jQuery(this).attr('href')
			);
		}
		jQuery(this).parents('tr').remove();
	});
}

jQuery.fn.setup_stats = function() {
	var inputs = jQuery(this).find('input[type=number]');
	jQuery('<a href="#" class="subtract"><img src="/wordpress/wp-content/plugins/wp-club/images/subtract.png" alt="Subtract" /></a>').insertBefore(inputs);
	jQuery('<a href="#" class="add"><img src="/wordpress/wp-content/plugins/wp-club/images/add.png" alt="Add" /></a>').insertAfter(inputs);

	jQuery('.subtract').live('click', function(e) {
		e.preventDefault();
		var current = jQuery(this).siblings('input[type=number]');
		current.val(parseFloat(current.val()) - 1);
	});

	jQuery('.add').live('click', function(e) {
		e.preventDefault();
		var current = jQuery(this).siblings('input[type=number]');
		current.val(parseFloat(current.val()) + 1);
	});
}