$(document).ready(function(){
	var curr_loc = window.location.pathname;

	switch (curr_loc)
	{
		case "/store/games/":
		case "/store/games":
			init_games_list_tabs();
			init_pc_popup_links();
			init_popup_ext_links();
			init_popup_psn_links();
			init_popup_coming_soon_links();
			init_sort_buttons();
			break;
	}
});

function init_games_list_tabs()
{
	$('ul.game-platforms li a').click(on_game_tab_click);
}

function on_game_tab_click()
{
	var href = $(this).attr('href');
	var href_arr = href.split('/');
	var game_name = href_arr[1];
	var game_platform = href_arr[2];
	var curr_game_tab = $('#store-games-list li#'+game_name+' ul.game-platforms li a.active');
	var curr_platform_href = curr_game_tab.attr('href');
	var curr_platform_href_arr = curr_platform_href.split('/');
	var curr_platform_name = curr_platform_href_arr[2];

	$('#store-games-list li#'+game_name+' div.info.'+curr_platform_name).addClass('hidden');
	$('#store-games-list li#'+game_name+' div.info.'+game_platform).removeClass('hidden');

	curr_game_tab.removeClass('active');
	$(this).addClass('active');

	return false;
}

function init_pc_popup_links()
{
	$('a.pc-link').click(function(){
		var href_arr = $(this).attr('href').split('/');
		var game_name = href_arr[1];
		var popup_html =  $('#store-games-list li#'+game_name+' div.pc-popup-wrapper').html();

		$.blockUI({
			message: popup_html,
			css: get_blockui_css(),
			overlayCSS: get_blockui_overlay_css()
		});
		$('.blockOverlay, .unblock').attr('title','Click to unblock').click($.unblockUI);

		return false;
	});
}

function init_popup_ext_links()
{
	$('a.ext-link').click(function(){
		var href = $(this).attr('href');

		var popup_html = $('div.ext-link-popup-wrapper').html();
		popup_html = popup_html.replace('href=""', 'href="'+href+'"');

		$.blockUI({
			message: popup_html,
			css: get_blockui_css(),
			overlayCSS: get_blockui_overlay_css()
		});
		
		$('.blockOverlay, .unblock').attr('title','Click to unblock').click($.unblockUI);

		return false;
	});
}

function init_popup_psn_links()
{
	$('a.psn-link').click(function(){
		var popup_html = $('div.psn-link-popup-wrapper').html();

		$.blockUI({
			message: popup_html,
			css: get_blockui_css(),
			overlayCSS: get_blockui_overlay_css()
		});

		$('.blockOverlay, .unblock').attr('title','Click to unblock').click($.unblockUI);

		return false;
	});
}

function init_popup_coming_soon_links()
{
	$('a.coming-soon').click(function(){
		var rel_date = $(this).parent().find('p.rel-date span.date').html();
		var popup_html = $('div.coming-soon-popup-wrapper').html().replace('{REL_DATE}', rel_date);

		$.blockUI({
			message: popup_html,
			css: get_blockui_css(),
			overlayCSS: get_blockui_overlay_css()
		});

		$('.blockOverlay, .unblock').attr('title','Click to unblock').click($.unblockUI);

		return false;
	});
}

function init_sort_buttons()
{
	$('#sort-by-platform a').click(function(){
		var href_arr = $(this).attr('href').split('/');
		var platform = href_arr[2];

		$('li.game ul.game-platforms li.'+platform+' a').click();
		$('#store-games-list > li:has(.last)').removeClass('last');

		if (platform != 'all')
		{
			$('#store-games-list > li:not(:has(ul.game-platforms > li.'+platform+'))').addClass('hidden');
			$('#store-games-list > li:has(ul.game-platforms > li.'+platform+')').removeClass('hidden');
		}
		else
		{
			$('#store-games-list > li').removeClass('hidden');
		}

		$('#store-games-list > li:not(.hidden):last').addClass('last');
		$('ul#sort-by-platform > li > a.active').removeClass('active');
		$(this).addClass('active');

		return false;
	});
}

function get_blockui_css()
{
	var css = {
		background:	'transparent',
		border:		0,
		cursor:		'normal',
		height:		327 + 'px',
		left:		($(window).width() - 500) /2 + 'px',
		textAlign:	'left',
		top:		305 + 'px',
		width:		508 + 'px'
	};

	return css;
}

function get_blockui_overlay_css()
{
	var css = {
		cursor:		'progress',
		opacity:	.35
	};

	return css;
}