var allowStatSelect = true;

$(function() {

	var isInIFrame = (window.location != window.parent.location) ? true : false;
	
	// If in iframe but not using facebook stylesheet, switch.
	if (isInIFrame && $('#main_css').val() != 'facebook') {
		//alert('In iframe. Switching to Facebook Template');
		//window.location = '/facebook/';
	}
	//console.log(isInIFrame, $('#main_css').val());

	$('body').live('keyup', function(e) {
		//console.log(e.keyCode);
		if (e.keyCode == 27) {
			hideDialogs();
		}
		
		if (e.keyCode == 37 && $('.previousOfflineCard').length) {
			$('.previousOfflineCard').click();
		}
		if (e.keyCode == 39 && $('.nextOfflineCard').length) {
			$('.nextOfflineCard').click();
		}
	});

	$('.ajaxForm').ajaxForm();

	if ($('.dialog.autoOpen').length) {
		$('#blackOverlay').fadeIn(200);
		$('.dialog.autoOpen').fadeIn(200);
	}

	$('.linkToUser,.unlinkFromUser').live('click', function(e) {
		e.preventDefault();
		if ($(this).hasClass('unlinkFromUser')) {
			$(this).parents('tr').remove();
		}
		$.get($(this).attr('href'), function(d) {
			flashMessage(d, 'small');
		});
	});

	$('.helpDialogLink').live('click', function(e) {
		e.preventDefault();
		$('#blackOverlay').fadeIn(200);
		$('.helpDialog').fadeIn(200);
	});

	$('a.cardLink').live('click', function(e) {
		e.preventDefault();
		$('.ajaxLoader').css('visibility', 'visible');
		$('.currentCard').load($(this).attr('href'), function() {
			$('.ajaxLoader').css('visibility', 'hidden');
		});
	});

	$('.viewSharePane').live('click', function(e) {
		e.preventDefault();
		$('#blackOverlay').fadeIn(200);
		$('.sharePane').fadeIn(200);
	});

	$('.toggleNext').click(function(e) {
		e.preventDefault();
		$(this).nextAll('.toggle:eq(0)').toggle();
	});

	$('.selectStatistic').live('click', function(e) {
		if (!allowStatSelect) {
			return false;
		}
		$(this).parents('tr').addClass('selectedStatistic');
		$('.ajaxLoader').css('visibility', 'visible');

		// stop double clicks without affecting column width
		//$('.selectStatistic').css('visibility', 'hidden');
		$('.selectStatistic').addClass('disabled');
		allowStatSelect = false;
	});

	$('.gameSettingsLink').click(function(e) {
		e.preventDefault();
		$('#blackOverlay').fadeIn(200);
		$('#gameSettings').fadeIn(200);
	});

	$('.viewScoreboard').live('click', function(e) {
		e.preventDefault();
		$('#scorecard').hide();
		$('#blackOverlay').fadeIn(200);
		$('.scoreboard').fadeIn(200);
	});

	$('.viewScorecard').live('click', function(e) {
		e.preventDefault();
		if (!$('#scorecard').length) {
			$('body').append('<div id="scorecard" class="dialog">Loading...</div>');
			$('#scorecard').load($(this).attr('href'));
		}
		$('.scoreboard').hide();
		$('#scorecard').fadeIn(200);
	});

	$('.showCredits').live('click', function(e) {
		e.preventDefault();
		$('#blackOverlay').fadeIn(200);
		$('.credits').fadeIn(200);
	});

	// For Card that contains all mode's play stats (T20, ODI, etc.)
	$('.showPlayStatsPane').live('click', function(e) {
		e.preventDefault();
		$('.playStatsPane').hide();
		$('.infoStats div').show();
		var thisRel = $(this).attr('rel');
		$('.playStatsPane').each(function(i) {
			if ($(this).attr('rel') == thisRel) {
				$(this).show();
			}			
		});
		$('.playStatsPane').each(function(i) {
			if ($(this).attr('rel') == thisRel) {
				$(this).show();
			}			
		});
		$('.infoStats div').each(function(i) {
			if ($(this).attr('rel') && $(this).attr('rel') != thisRel) {
				$(this).hide();
			}
		});
	});
	if ($('.showPlayStatsPane:eq(0)').length) {
		$('.showPlayStatsPane:eq(0)').click();
	}

	$('.feedbackLink').live('click', function(e) {
		e.preventDefault();
		$('#blackOverlay').fadeIn(200);
		$('#feedbackDialog').fadeIn(200, function() {
			$('#feedbackDialog').find('input[type=text]:eq(0)').focus();
		});
	});

	if ($('.globalFlashMessage').html()) {
		$('#blackOverlay').fadeIn(200);
		$('.globalFlashMessage').fadeIn(200);
	}

	$('.closeDialog').live('click', function(e) {
		e.preventDefault();
		$('#blackOverlay').fadeOut(200);
		$('.dialog').fadeOut(200);
	});

	$('#blackOverlay').live('click', function(e) {
		$('#blackOverlay').fadeOut(200);
		$('.dialog').fadeOut(200);
	});

	if ($('.loginForm #email').length) {
		$('.loginForm #email').focus();
	}

	// Hack to tidy empty game message
	if ($('.gameMessage').length && $('.gameMessage').html().trim().length == 0) {
		$('.gameMessage').hide();
	}
	
	$('.toggleHtml').live('click', function(e) {
		e.preventDefault();
		var altHtml = $(this).attr('altHtml');
		var currentHtml = $(this).html();
		$(this).html(altHtml);
		$(this).attr('altHtml', currentHtml);
	});

	$('.confirm').live('click', function() {
		var confirmText = 'Really?';
		if ($(this).attr('confirm')) {
			confirmText = $(this).attr('confirm');
		}
		return confirm(confirmText);
	});

	$('.currentCardHref').live('click', function(e) {
		e.preventDefault();
		$('.ajaxLoader').css('visibility', 'visible');
		$('#currentCard').load($(this).attr('href'), function() {
			$('.ajaxLoader').css('visibility', 'hidden');
		});
	});

	$('.cardSelects .sortable').sortable({
		stop: doCardSelect,
		connectWith: '.cardSelects .sortable.connect'
	});

	$('.cardSelects a').live('click', function(e) {
		e.preventDefault();
		//...
	});

	$('.clearSearch').live('click', function(e) {
		$('input[name=search_term]').val('');
		$('input[name=search_term]').parent('form').submit();
	});

	$('.viewDiscards').live('click', function(e) {
		e.preventDefault();
		$('.discards').load($(this).attr('href'));
	});

	$('.smallCard .top').live('click', function(e) {
		e.preventDefault();
		var thisId = $(this).next('.main').attr('id');
		$('.smallCard .main').each(function(i){
			if ($(this).attr('id') != thisId) {
				$(this).slideUp();
			}
		});
		$(this).next('.main').slideToggle();
	});

	// I know....
	if ($.browser.msie && $.browser.version == '7.0') {
		$('#blackOverlay').css('z-index', '-1');

		// "Fix" ugly background issue
		positionFooter(); 
		function positionFooter(){
			if($('body').height() < $(window).height()){
				$('body').height($(window).height());
			}	
		}
		$(window).scroll(positionFooter).resize(positionFooter);
		
	}
	if ($.browser.msie && $.browser.version == '8.0') {
		//...
	}

	// Height bug fixes
	if ($('body').height() > 1086) {
		$('html').css('background-attachment', 'fixed');
	}
	if ($(window).height() < 800) {
		var height = $(window).height() - 80;
		//$('.dialog').css('max-height', height+'px');
		//$('.dialog').css('overflow-y', 'scroll');
		$('.mapPane').css('max-height', height+'px');
		$('.mapPane').css('overflow-y', 'scroll');
	}

	noResults();
});

// "No results" shouldn't just display empty lists
function noResults() {
	$('table.noResults').each(function() {
		if ($(this).find('tbody tr').length === 0) {
			var colspan = $(this).find('thead th').length;
			var noResultsInfo = 'No Results';
			if ($('#noResultsInfo').length) {
				noResultsInfo = $('#noResultsInfo').html();
			}
			$(this).children('tbody').html('<tr><td colspan="'+colspan+'" class="noResults">'+noResultsInfo+'</td></tr>');
		}
	});
}

// For the "play/deck" screen
function doCardSelect(e, ui) {

	var cards = []; 

	$('.cardSelects .sortable').each(function(i) {
		var player_id = $(this).attr('rel');
		cards[player_id] = [];

		$(this).find('a').each(function(j) {
			var card_id = $(this).attr('rel');
			cards[player_id].push(card_id);
		});

		var numberOfCards = $(this).find('a').length;
		$(this).prev('h2').children('span.numberOfCards').html(numberOfCards);
	});

	$.post($('#updateHandsHref').val(), { cards: cards }, function(d) {
		var card_id = $(this).attr('rel');
	});
}
// end doCardSelect (sort)


var fmId = 0;
function flashMessage(msg, classes) {
	fmId++;
	$('body').append('<div id="flashMessage'+fmId+'" class="dialog '+classes+'">'+msg+'</div>');
	$('#blackOverlay').fadeIn(200);
	$('#flashMessage'+fmId).fadeIn();
}

function hideDialogs() {
	$('#blackOverlay').fadeOut(200);
	$('.dialog,.mapChart,.mapPane,.hideMeWhenClosingDialogs').fadeOut(200);
}

