DEFAULT_TURN_TRACK_TURNS_MIN = 6 ;
DEFAULT_TURN_TRACK_TURNS_MAX = 10 ;
TURN_TRACK_SHADING_COLOR = "#e0e0e0" ;
// NOTE: Reinforcement flags get clipped on turn 100, but this is unlikely to be an issue :-/
_MAX_TURN_TRACK_TURNS = 100 ;
gTurnTrackReinforcements = null ;
gTurnTrackShading = null ;
// --------------------------------------------------------------------
function editTurnTrackSettings()
{
// initialize
var $dlg, $iframe, iframeSeqNo=0 ;
// FUDGE! This should work as a local variable, but causes a weird problem where it doesn't get reset properly :-/
gTurnTrackReinforcements = null ;
gTurnTrackShading = null ;
function loadControls() {
// load the dialog controls
$dlg.find( "select[name='nturns']" ).val(
$panel.find( "select[name='TURN_TRACK_NTURNS'].param" ).val()
).trigger("change" ) ;
var width = $panel.find( "input[name='TURN_TRACK_WIDTH']" ).val() ;
$dlg.find( "select[name='width']" ).val(
isNaN( parseInt( width ) ) ? "" : width
).trigger( "change" ) ;
$dlg.find( "input[name='vertical']" ).prop( "checked",
$panel.find( "input[name='TURN_TRACK_VERTICAL']" ).prop( "checked" )
) ;
$dlg.find( "input[name='swap-players']" ).prop( "checked",
$panel.find( "input[name='TURN_TRACK_SWAP_PLAYERS']" ).prop( "checked" )
) ;
// load the reinforcements
var params = updatePreview( false ) ;
var args = parseTurnTrackParams( params ) ;
gTurnTrackReinforcements = { 1: args.reinforce1, 2: args.reinforce2 } ;
gTurnTrackShading = args.shading ;
// update the UI
updateUI() ;
}
function onResetControls() {
// reset all the controls
ask( "Reset turn track", "Do you want to reset the turn track?", {
ok: function() {
setTurnTrackNTurns( DEFAULT_TURN_TRACK_TURNS_MIN ) ;
$panel.find( "input[name='TURN_TRACK_WIDTH']" ).val( "" ) ;
$panel.find( "input[name='TURN_TRACK_VERTICAL']" ).prop( "checked", false ) ;
$panel.find( "input[name='TURN_TRACK_SWAP_PLAYERS']" ).prop( "checked", false ) ;
$panel.find( "input[name='TURN_TRACK_SHADING']" ).val( "" ) ;
$panel.find( "input[name='TURN_TRACK_REINFORCEMENTS_1']" ).val( "" ) ;
$panel.find( "input[name='TURN_TRACK_REINFORCEMENTS_2']" ).val( "" ) ;
gTurnTrackReinforcements = null ;
gTurnTrackShading = null ;
loadControls() ;
}
} ) ;
}
function initTurnCountSelect2( $sel ) {
// initialize the TURN COUNT droplist
init_select2(
$sel, "4em", false, formatTurnTrackOption
).on( "select2:open", function() {
restrict_droplist_height( $(this) ) ;
} ).on( "change", function() {
setTurnTrackNTurns( $(this).val() ) ;
if ( $dlg )
updateUI() ;
} ) ;
for ( var nTurns=1 ; nTurns <= _MAX_TURN_TRACK_TURNS ; nTurns += 0.5 )
$sel.append( $( "" ) ) ;
}
function initWidthSelect2( $sel ) {
// initialize the WIDTH droplist
init_select2(
$sel, "3.5em", false, null
).on( "select2:open", function() {
restrict_droplist_height( $(this) ) ;
} ).on( "change", function() {
$panel.find( "input[name='TURN_TRACK_WIDTH']" ).val( $(this).val() ) ;
if ( $dlg )
updateUI() ;
} ) ;
$sel.append( $( "" ) ) ;
for ( var i=1 ; i <= 30 ; ++i )
$sel.append( $( "" ) ) ;
}
function syncCheckbox( $elem, $target ) {
// sync the target checkbox in the SCENARIO panel with the one in this dialog
$target.prop( "checked", $elem.prop("checked") ) ;
updateUI() ;
}
function updatePreview( showAllFlags ) {
// generate the turn track snippet
var params = unload_snippet_params( true, "turn_track" ) ;
if ( showAllFlags )
params.TURN_TRACK.REINFORCEMENTS_1 = params.TURN_TRACK.REINFORCEMENTS_2 = makeCommaList( _MAX_TURN_TRACK_TURNS ) ;
params.TURN_TRACK_PREVIEW_MODE = true ;
var $btn = $( "button.generate[data-id='turn_track']" ) ;
var snippet = make_snippet( $btn, params, {}, false ).content ;
// update the preview
// NOTE: To minimize flickering, we load the snippet into a hidden