jQuery(document).ready(function(){
	Turbo2.init();
});

Turbo2 = {};

Turbo2.confirm = '';

Turbo2.init = function () {
	Turbo2.confirm = jQuery('#overlay div.confirm').html();
	
	jQuery('#create-challenge-submit').click(Turbo2.checkChallengeCreation);

	// Overlays

	var level_selection_overlay = jQuery("#create-game-button").overlay({
		top: 'center',
		mask: {
			color: '#000',
			opacity: 0.4
		}
	});

	jQuery("#my-challenges button.cancel-challenge").overlay({
		onBeforeLoad: Turbo2.fillConfirmCancelChallengeForm,
		close: '.closer',
		top: 'center',
		mask: {
			color: '#000',
			opacity: 0.4
		}
	});

	if (jQuery("table.challenges tbody tr.challenge").length > 0) {
		var overlay = jQuery("table.challenges tbody tr.challenge").overlay({
			top: -35,
			left: 600,
			fixed: false,
			onBeforeLoad: Turbo2.fillAcceptChallengeForm
		});
	}
	
}

/********** HOME SCREEN **********/

/**
 *  When the user clicks on a challenge, this method fills the
 *  form  and replaces the place holder in the text of the pop up
 */
Turbo2.fillAcceptChallengeForm = function (event) {
	var trigger = this.getTrigger();
	var total = Turbo2.Settings.totalUserPoints;
	var key = trigger.find('.data .key').text();
	var level = trigger.find('.data .level').text();
	var confirm = Turbo2.confirm;
	var game_score = trigger.find('.original_game_score').text();
	var challenge_points = trigger.find('.points').text();
	if (challenge_points <= total) {
		jQuery('#overlay .not-enough-points').hide();
		jQuery('#overlay form.start-challenge-form .challenge-key').val(key);
		jQuery('#overlay form.start-challenge-form .challenge-level').val(level);
		jQuery('#overlay div.confirm').html(
			confirm
				.replace(/%username%/i, trigger.find('.username').text())
				.replace(/%original_game_score%/i, game_score)
				.replace(/%points%/i, challenge_points)
		);
		jQuery('#overlay .accept-challenge').show();
	} else {
		jQuery('#overlay form.start-challenge-form .challenge-key').val('');
		jQuery('#overlay form.start-challenge-form .level').val('');
		jQuery('#overlay .accept-challenge').hide();
		jQuery('#overlay .not-enough-points').show();

	}
}

/********** MY GAMES SCREEN **********/

Turbo2.fillConfirmCancelChallengeForm = function (event) {
	var trigger = this.getTrigger();
	var row = trigger.parents('tr:first');
	jQuery('#cancel-my-challenge .points').text(row.find('.points').text());
	jQuery('#cancel-my-challenge .level').text(row.find('.level').text());
	jQuery('#cancel-my-challenge .date-completed').text(row.find('.date-completed').text());
	jQuery('#cancel-my-challenge .key').val(row.find('.data .key').text());
}

/********** GAME OVER SCREEN **********/


/**
 * When the user submits the create challenge form, this method
 * checks if the entered MT Point value is valid.
 */
Turbo2.checkChallengeCreation = function (event) {
	var total = Turbo2.Settings.totalUserPoints;
	var ch_points = jQuery('#challenge-points').val();
	if (
			ch_points != parseInt(ch_points)
			|| ch_points <= 0
			|| ch_points > Turbo2.Settings.maxChallengePoints
	) {
		alert(Turbo2.Settings.nonNumeric)
		return false;
	}
	return true;
}






