//------------------------------------------------------------------------------------------
// Common pops (c) netAdapt Ltd.
//------------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------------------------------------------------
// JSON pops
//------------------------------------------------------------------------------------------------------------------------------------

function XPopClanMember( ev, clanId, clanMemberId, offSetXParam, offSetYParam  )
{
	var url =  '/json/xpopmenu/clanmember_json.php?clanid=' + clanId + '&clanmemberid=' + clanMemberId;		
	JsonPopXMenuWinFromEv( ev, 'Clan Member', 'xclanmember', url,  true, (offSetXParam || 0), (offSetYParam || 0) );	
}

function XPopClanChallengePreview( ev, challengeId, offSetXParam, offSetYParam )
{			
	var url =  '/json/xpopmenu/clanchallengepreview_json.php?challengeid=' + challengeId;	
	JsonPopXMenuWinFromEv( ev, 'Challenge Preview : ' + challengeId, 'xclanchallengepreview', url,  true, (offSetXParam || -448), (offSetYParam || -100) );
}

function XPopGameLog( ev, gameId, offSetXParam, offSetYParam )
{
	var url =  '/json/xpopmenu/gamelog_json.php?gameid=' + gameId;	
	JsonPopXMenuWinFromEv( ev,   'Game ' + gameId + ' : Game Log', 'xgamelog', url,  true, (offSetXParam || -348), (offSetYParam || -15) );
}

function XPopGameMessageLog( ev, gameId, offSetXParam, offSetYParam )
{
	var url =  '/json/xpopmenu/gamemessagelog_json.php?gameid=' + gameId;	
	JsonPopXMenuWinFromEv( ev,   'Game ' + gameId + ' : Message Log', 'xgamemessages', url,  true, (offSetXParam || -348), (offSetYParam || -15) );
}

function XPopGameSummary( ev, gameId, offSetXParam, offSetYParam )
{
	var url =  '/json/xpopmenu/gamesummary_json.php?gameid=' + gameId;	
	JsonPopXMenuWinFromEv( ev,  'Game ' + gameId + ' : Summary', 'xgamesummary', url,  true, (offSetXParam || -460), (offSetYParam || -15) );
}

function XPopGameSummaryExtended( ev, gameId, offSetXParam, offSetYParam )
{
	var url =  '/json/xpopmenu/gamesummary_json.php?gameid=' + gameId + '&isextendedsummary=1';	
	JsonPopXMenuWinFromEv( ev,  'Game ' + gameId + ' : Summary', 'xgamesummary', url,  true, (offSetXParam || -460), (offSetYParam || -15) );
}

function XPopGamesWatched( ev,  offSetXParam, offSetYParam  )
{
	var url =  '/json/xpopmenu/gameswatched_json.php';		
	JsonPopXMenuWinFromEv( ev, 'My Watched Games', 'xgameswatched', url,  true, (offSetXParam || -432), (offSetYParam || -12) );
}

function XPopGamesUrgent( ev,  offSetXParam, offSetYParam  )
{
	var url =  '/json/xpopmenu/gamesurgent_json.php';
	JsonPopXMenuWinFromEv( ev,  'My Urgent Games', 'xmessages', url,  true, (offSetXParam || -400), (offSetYParam || -15)  );
}

function XPopGameTimeSummary( ev, gameId, offSetXParam, offSetYParam )
{	
	var url =  '/json/xpopmenu/gametimesummary_json.php?gameid=' + gameId;	
	JsonPopXMenuWinFromEv( ev, 'Game ' + gameId + ' : Time Summary', 'xgametimesummary', url,  true, (offSetXParam || -348), (offSetYParam || -15) );
}

function XPopRecommendedOpponent(  ev,  offSetXParam, offSetYParam )
{
	JsonPopXMenuWinFromEv( ev, 'Recommended Opponents', 'xrecopponents',  '/json/xpopmenu/recommendedopponent_json.php',  true, (offSetXParam || +0), (offSetYParam || -160) );			 
}

function XPopOpeningBrowser( ev, openingId, gameId, targetName, targetUrl, offSetXParam, offSetYParam )
{	
	var url =  '/json/xpopmenu/openingbrowser_json.php?gameid=' + gameId + '&openingid=' + openingId + '&targetname=' + targetName + '&targeturl=' + targetUrl;			
	JsonPopXMenuWinFromEv( ev, 'Opening Browser', 'xopeningbrowser', url,  true, (offSetXParam || +80), (offSetYParam || -300) );
}

function XPopMessagesUnread( ev )
{
	var url =  '/json/xpopmenu/messageunread_json.php';
	JsonPopXMenuWinFromEv( ev,   'My Unread Messages', 'xmessages', url,  true, -348, -15 );
}

function XPopConMovesSummary( ev, gameId, isPlayed, isDeepMode, offSetXParam, offSetYParam )
{	
	var url =  '/json/xpopmenu/conditionalmoves_json.php?gameid=' + gameId;	
	if ( isPlayed )
	{
		url +=  '&isplayed=1';
	}	
	if ( isDeepMode )
	{
		url +=  '&isdeepmode=1';
	}
	var title = (isPlayed)?'Played conditions':'Queued conditions';	
	JsonPopXMenuWinFromEv( ev, 'Game ' + gameId + ' : ' + title, 'xconditionalmoves', url,  true, (offSetXParam || -248), (offSetYParam || -320) );
}

function XPopConMovesSummaryAll( ev, userId, offSetXParam, offSetYParam  )
{		
	var url =  '/json/xpopmenu/conditionalmovesall_json.php?userid=' + userId;				
	JsonPopXMenuWinFromEv( ev,  'All Queued Conditional Moves', 'xconditionalmovesall', url,  true, (offSetXParam || -50), (offSetYParam || -50) );
	
}

function XPopGameFolders( ev, gameId, isArchiveView, offSetXParam, offSetYParam  )
{
	var url =  '/json/xpopmenu/gamefolders_json.php?gameid=' + gameId + '&isarchiveview=' + (isArchiveView?1:0);		
	JsonPopXMenuWinFromEv( ev, (gameId>0)?'Move Game ' + gameId:'Move Selected Games', 'xgamefolders', url,  true, (offSetXParam || -290), (offSetYParam || 0) );	
}

function XPopBuddiesWin( ev, offSetXParam, offSetYParam )
{
	var url =   '/json/xpopmenu/buddies_json.php';
	JsonPopXMenuWinFromEv( ev, 'My Buddies', 'xbuddies', url,  true, (offSetXParam || -290), (offSetYParam || 0) );				
}

function XPopPublicForums( ev, threadId, isArchiveView, offSetXParam, offSetYParam  )
{
	var url =  '/json/xpopmenu/publicforums_json.php?threadid=' + threadId;		
	JsonPopXMenuWinFromEv( ev, 'Public Forums', 'xforums', url,  true, (offSetXParam || -220), (offSetYParam || 0) );	
}

function XPopBlogImages( ev, blogId )
{	
	var url =  '/json/xpopmenu/blogimages_json.php?blogid=' + blogId;	
	var win = JsonPopXMenuWinFromEv( ev, 'Recently Uploaded Image', 'xblogimage', url,  false );					
	ShowElDeadCenter( win.GetElId( ), 600, 300); 
}


//
// Form pops
//


function XPopSendMessage( ev, recipientIdP )
{
	var recipientId =  recipientIdP || 0;
	var url =  '/json/xpopmenu/forms/sendmessageform_json.php?recipientid=' + recipientId;
	var win = JsonPopXMenuWinFromEv( ev, 'Send Message', 'xsendmessage', url,  false );					
	ShowElDeadCenter( win.GetElId( ), 600, 300); 
}

function XPopAddBookmark( ev, gameIdP )
{	
	var gameId =  gameIdP || 0;	
	var url =  '/json/xpopmenu/forms/addbookmarkform_json.php?gameid=' + gameId;	
	var win = JsonPopXMenuWinFromEv( ev, 'Update Bookmark', 'xaddbookmark', url,  false );					
	ShowElDeadCenter( win.GetElId( ), 600, 300); 
}

//
// Helpers
//
function JsonPopXMenuWinFromEv( ev, title, elIdPrefix, url, isReloadable, offSetX, offSetY )
{
	var popWin = GetOffSetPopWin( elIdPrefix, offSetX || 0 , offSetY  || 0 );	
	popWin.PositionOffEvent( ev );		
	popWin.SetTitle( title );	
	popWin.SetIsReloadable( isReloadable );
	popWin.ReloadContent( url );
	popWin.Render( );
	
	return popWin;
}

//
// Dockbar pops
//

function XPopDockGamesUrgent( ev   )
{	
	var url =  '/json/xpopmenu/gamesurgent_json.php';
	ToggleXmenuDockedWin( ev,  'My Urgent Games', 'xgamesurgent', url,  480);	
}

function XPopDockGamesWatched( ev   )
{
	var url =  '/json/xpopmenu/gameswatched_json.php';	
	ToggleXmenuDockedWin( ev, 'My Watched Games', 'xgameswatched', url,  440 );	
}

function XPopDockMessagesUnread( ev  )
{
	var url =  '/json/xpopmenu/messageunread_json.php';
	ToggleXmenuDockedWin( ev,   'My Unread Messages', 'xunreadmessages', url,  480 );	
}

function XPopDockBuddies( ev  )
{
	var url =   '/json/xpopmenu/buddies_json.php';
	ToggleXmenuDockedWin( ev,   'Buddies', 'xbuddies', url,  300 );		
}

function XPopDockSiteNotebook( ev, offSetXParam, offSetYParam )
{
	var url =  '/json/xpopmenu/forms/notebookform_json.php';
	ToggleXmenuDockedWin( ev,   'My Notebook', 'xnotebook', url, 700 );			
}

function ToggleXmenuDockedWin( ev, title, elIdPrefix, url, widthPx )
{
	var popWinId = elIdPrefix +  '_dockedwin';
	if (g_popWinManager.IsPopWin( popWinId ))
	{
		CloseWin( popWinId );
	}
	else
	{		
		var popWin =  new CPopWin( popWinId, false, 0, -70 );	
		popWin.PositionOffEvent( ev );		
		popWin.SetIsAnchoredToDock( true );			
		popWin.SetTitle( title );	
		popWin.SetIsReloadable( false );		
		popWin.SetWidth( widthPx );
		popWin.Render( );		
		popWin.ReloadContent( url );
		return popWin;		
	}
}
