//------------------------------------------------------------------------------------------
// Common pops (c) netAdapt Ltd.
//------------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------------------------------------------------
// JSON pops
//------------------------------------------------------------------------------------------------------------------------------------

function XPopHoleNotes( ev, holeNumber, roundId, offSetXParam, offSetYParam )
{
    var el = document.getElementById('notesid_' + holeNumber);
    var noteId = el.value;
    var url =  '/json/xpopmenu/forms/holenotesform_json.php?roundid=' + roundId + '&holenumber=' + holeNumber + '&notesid=' + noteId;
    JsonPopXMenuWinFromEv( ev, 'Notes for hole ' + holeNumber, 'xholenotes', url,  false, (offSetXParam || 0), (offSetYParam || 0) );
    UpdateNotesImage( noteId, holeNumber );
}

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) );                
}

//
// 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;        
    }
}