var SearchMode = 0;
var CurrentPage = 0;
var ResultPerPage = 25;
var OverlayOpacity = '0.8';
	
window.addEvent('domready', function()
{
	if( $('pungamelist') != null )
	{
		$('overlay').setStyles({ opacity : 0, display : 'block'});
	//---------------------------------------------------------------------------------------------
	//	Fen&#234;tre d'ajout
	//---------------------------------------------------------------------------------------------
		$('fmodal_list').setStyles({ opacity : 0, display : 'block'});
		$('cmodal_list').addEvent('click',function(e) { $('fmodal_list').fade('out'); $('overlay').fade('out'); });	
		window.addEvent('keypress',function(e) { if(e.key == 'esc') { $('fmodal_list').fade('out'); $('overlay').fade('out'); } });
		$(document.body).addEvent('click',function(e) { 
			if($('fmodal_list').get('opacity') == 1 && !e.target.getParent('.generic_modal')) { 
				$('fmodal_list').fade('out');
				$('overlay').fade('out'); 
			} 
		});
		$('tmodal_list').addEvent('click',function() {
			$('fmodal_list').fade('in');
			$('overlay').fade(OverlayOpacity );
		});
	//---------------------------------------------------------------------------------------------
	//	Fen&#234;tre d'ajout
	//---------------------------------------------------------------------------------------------
		$('fmodal_add').setStyles({ opacity : 0, display : 'block'});
		$('cmodal_add').addEvent('click',function(e) { $('fmodal_add').fade('out'); $('overlay').fade('out'); });	
		$('cmodal_add_cancel').addEvent('click',function(e) { $('fmodal_add').fade('out'); $('overlay').fade('out'); });
		window.addEvent('keypress',function(e) { if(e.key == 'esc') { $('fmodal_add').fade('out'); $('overlay').fade('out'); } });
		$(document.body).addEvent('click',function(e) { 
			if($('fmodal_add').get('opacity') == 1 && !e.target.getParent('.generic_modal')) { 
				$('fmodal_add').fade('out');
				$('overlay').fade('out'); 
			} 
		});
		$('tmodal_add').addEvent('click',function() {
			$('fmodal_add').fade('in');
			$('overlay').fade(OverlayOpacity );
		});	
	//---------------------------------------------------------------------------------------------
	//	Fen&#234;tre de recherche
	//---------------------------------------------------------------------------------------------
		$('fmodal_search').setStyles({ opacity : 0, display : 'block'});
		$('cmodal_search').addEvent('click',function(e) { $('fmodal_search').fade('out'); $('overlay').fade('out'); });
		$('cmodal_search_cancel').addEvent('click',function(e) { $('fmodal_search').fade('out'); $('overlay').fade('out');});
		window.addEvent('keypress',function(e) { if(e.key == 'esc') { $('fmodal_search').fade('out'); $('overlay').fade('out'); } });
		$(document.body).addEvent('click',function(e) { 
			if($('fmodal_search').get('opacity') == 1 && !e.target.getParent('.generic_modal')) { 
				$('fmodal_search').fade('out');
				$('overlay').fade('out'); 
			} 
		});
		$('tmodal_search').addEvent('click',function() {
			$('fmodal_search').fade('in');
			$('overlay').fade(OverlayOpacity );
		});

	//---------------------------------------------------------------------------------------------
	//	Fen&#234;tre de modification
	//---------------------------------------------------------------------------------------------
		$('fmodal_edit').setStyles({ opacity : 0, display : 'block'});
		$('cmodal_edit').addEvent('click',function(e) { $('fmodal_edit').fade('out'); $('overlay').fade('out'); });
		$('cmodal_edit_cancel').addEvent('click',function(e) { $('fmodal_edit').fade('out'); $('overlay').fade('out'); });
		window.addEvent('keypress',function(e) { if(e.key == 'esc') { $('fmodal_edit').fade('out'); $('overlay').fade('out'); } });
		$(document.body).addEvent('click',function(e) { 
			if($('fmodal_edit').get('opacity') == 1 && !e.target.getParent('.generic_modal')) { 
				$('fmodal_edit').fade('out');
				$('overlay').fade('out'); 
			} 
		});
		$('tmodal_edit').addEvent('click',function() {
			$('fmodal_edit').fade('in');
			$('overlay').fade(OverlayOpacity );
		});
	//---------------------------------------------------------------------------------------------
	//	Fen&#234;tre de suppression
	//---------------------------------------------------------------------------------------------
		$('fmodal_delete').setStyles({ opacity : 0, display : 'block'});
		$('cmodal_delete').addEvent('click',function(e) { $('fmodal_delete').fade('out'); $('overlay').fade('out'); });
		$('cmodal_delete_cancel').addEvent('click',function(e) { $('fmodal_delete').fade('out'); $('overlay').fade('out'); });
		window.addEvent('keypress',function(e) { if(e.key == 'esc') { $('fmodal_delete').fade('out'); $('overlay').fade('out'); } });
		$(document.body).addEvent('click',function(e) { 
			if($('fmodal_delete').get('opacity') == 1 && !e.target.getParent('.generic_modal')) { 
				$('fmodal_delete').fade('out'); 
				$('overlay').fade('out'); 
			} 
		});
		$('tmodal_delete').addEvent('click',function() {
			$('fmodal_delete').fade('in');
			$('overlay').fade(OverlayOpacity );
		});

		var myTips = new Tips($$('.GameList'),{
			className: 'tooltip',
			onShow: function(tip, el){ tip.fade('in'); },
			onHide: function(tip, el){ tip.fade('out'); }
			}
		);

		var myPeriodical = function() { RefreshGameList(CurrentPage); }
		myPeriodical.periodical(20000); 
	}
}); 

//------------------------------------------------------
// Request function for add a new game
//------------------------------------------------------
function AddGame()
{
	if( $('add_game_name').value != "" )
	{
		new Request(
		{
			url : 'gamelist.php',
			method : 'post',
			data :
			{
				'add_game' : 1,
				'game_name': $('add_game_name').value,
				'game_link': $('add_game_link').value,
				'game_console': $('add_game_console').value,
				'game_type': $('add_game_type').value,
				'game_online': $('add_game_online').checked,
				'game_network': $('add_game_network').checked,
				'game_players': $('add_game_players').value,
				'game_finished': $('add_game_finished').checked
			},
			onSuccess : function() {
				RefreshGameList(CurrentPage);
				$('form_add_game').reset();
				$('add_game_players').disabled = true;
			}
		}).send();
	}
	else
	{
		$('warning').setStyle('display', '');
		return false;
	}
}

function update_navtext(text)
{
	$('navtext').set('html', text);
} 

//------------------------------------------------------
// Request function for add a new game
//------------------------------------------------------
function SearchGame()
{
	$('title_box').set('text', 'Recherche de jeux');
	SearchMode = 1;
	CurrentPage = 0;
	RefreshGameList(CurrentPage);
}

//------------------------------------------------------
//	Function : Select_EditGame
//------------------------------------------------------
//	Input : [game_id] : Game id in pun_games database
//------------------------------------------------------
function Select_EditGame(game_id)
{
	new Request.JSON(
	{
		url : 'gamelist.php',
		method : 'post',
		data : { 'select_game' : game_id },
		onSuccess : function(game_data)
		{
			$('edit_game_id').value = game_data["id"];
			$('edit_game_name').value = game_data["name"];
			$('edit_game_link').value = game_data["link"];
			$('edit_game_console').value = game_data["console"];
			$('edit_game_type').value = game_data["type"];
			$('edit_game_online').checked = ( game_data["online"] == '1' ) ? true : false ;
			$('edit_game_network').checked = ( game_data["network"] == '1' ) ? true : false ;
			$('edit_game_players').value = game_data["players"];
			$('tmodal_edit').click();
		}
	}).send();
}

//------------------------------------------------------
//	Function : EditGame
//------------------------------------------------------
//	Input : [game_data] : Data of the game
//------------------------------------------------------
function EditGame()
{
	new Request(
	{
		url : 'gamelist.php',
		method : 'post',
		data : 		
		{
			'edit_game' : 1,
			'game_id': $('edit_game_id').value,
			'game_name': $('edit_game_name').value,
			'game_link': $('edit_game_link').value,
			'game_console': $('edit_game_console').value,
			'game_type': $('edit_game_type').value,
			'game_online': $('edit_game_online').checked,
			'game_network': $('edit_game_network').checked,
			'game_players': $('edit_game_players').value
		},
		onSuccess : function() {
				RefreshGameList(CurrentPage);
			}
	}).send();
}

var GameId_Temp;
//------------------------------------------------------
// Request function for confirm delete
//------------------------------------------------------
function Select_DeleteGame(game_id)
{
	GameId_Temp = game_id;
	new Request.JSON(
	{
		url : 'gamelist.php',
		method : 'post',
		data : { 'select_game' : game_id },
		onSuccess : function(game_data)
		{
			$('delete_game_name').innerHTML = game_data["name"];
			$('tmodal_delete').click();
		}
	}).send();
}

//------------------------------------------------------
//	Function : DeleteGame
//------------------------------------------------------
//	Input : [void]
//------------------------------------------------------
function DeleteGame()
{
	new Request(
	{
		url : 'gamelist.php',
		method : 'post',
		data : { 'delete_game' : GameId_Temp },
		onSuccess : function() { RefreshGameList(CurrentPage); }
	}).send();
}

//------------------------------------------------------
// Function for modify the players number 
//------------------------------------------------------
function SelectPlayersEnable(check_network, combo_players)
{
	$(combo_players).disabled = ( $(check_network).checked == true ) ? false : true;
}

//------------------------------------------------------
//	Function : RefreshGameList
//------------------------------------------------------
//	Input : pageIndex
//------------------------------------------------------
function RefreshGameList(pageIndex)
{
	var PageCount;
	
	new Request({
		url : 'gamelist.php',
		method : 'post',
		data :
		{
			'count_game' : 1,
			'search_mode' : SearchMode,
			'game_console': $('search_game_console').value,
			'game_type': $('search_game_type').value,
			'game_online': $('search_game_online').checked,
			'game_network': $('search_game_network').checked
		},
		onSuccess : function(count_game){
			PageCount = Math.floor((parseInt(count_game) / ResultPerPage) + 1);
		}
	}).send();
	
	new Request.JSON({ 
		url : 'gamelist.php',
		method : 'post',
		data : 
		{
			'display_game' : 1,
			'search_mode' : SearchMode,		
			'game_base' : ( pageIndex * ResultPerPage ),
			'game_limit' : ResultPerPage,
			'game_console': $('search_game_console').value,
			'game_type': $('search_game_type').value,
			'game_online': $('search_game_online').checked,
			'game_network': $('search_game_network').checked
		},
		onSuccess : function(table_game){
			$('game_table').set('html', table_game);
			CurrentPage = pageIndex;
			GeneratePageLink();

		}
	}).send();
}

//------------------------------------------------------
// Request function for confirm delete
//------------------------------------------------------
function Select_ShowList(game_id)
{
	new Request(
	{
		url : 'gamelist.php',
		method : 'post',
		data : { 'select_list' : game_id },
		onSuccess : function(game_list){
			$('game_list').set('html', game_list);
			$('tmodal_list').click();
		}
	}).send();
}

//------------------------------------------------------
//	Function : GeneratePageLink
//------------------------------------------------------
//	Input : 
//------------------------------------------------------
function GeneratePageLink()
{
	new Request(
	{
		url : 'gamelist.php',
		method : 'post',
		data :
		{
			'page_link' : CurrentPage,
			'search_mode' : SearchMode,
			'game_console': $('search_game_console').value,
			'game_type': $('search_game_type').value,
			'game_online': $('search_game_online').checked,
			'game_network': $('search_game_network').checked
		},
		onSuccess : function(page_link){
			$('page_link_top').set('html', page_link);
			$('page_link_bottom').set('html', page_link);
		}
	}).send();
}

//------------------------------------------------------
//	Function : ToggleUser
//------------------------------------------------------
//	Input : game_id
//------------------------------------------------------
function ToggleUser(game_id)
{
	new Request(
	{
		url : 'gamelist.php',
		method : 'post',
		data :
		{
			'edit_possessors' : 1,
			'game_id' : game_id,
			'finish_mode' : 0
		},
		onSuccess : function(status){
				RefreshGameList(CurrentPage);
			}
	}).send();
}

//------------------------------------------------------
//	Function : ToggleFinish
//------------------------------------------------------
//	Input : game_id
//------------------------------------------------------
function ToggleFinish(game_id)
{
	new Request(
	{
		url : 'gamelist.php',
		method : 'post',
		data :
		{
			'edit_possessors' : 1,
			'game_id' : game_id,
			'finish_mode' : 1
		},
		onSuccess : function(status){
				RefreshGameList(CurrentPage);
			}
	}).send();
}