package com.editev.chess.printer;

import com.editev.chess.GameHTML;

/** Prints any Javascript definitions needed for the chess board. 
 *
 *  @see See the source here.
 */
public class JavascriptPrinter extends Printer {

    /** Start of the Javascript headers. */
    private static final String HEADER_START =
        "\n"
      ;

    /** Prints any Javascript definitions needed for the chess board.
     *  @param game the GameHTML with the board status and PrintStream for this board.
     */
    public void print( GameHTML game ) {
        if (!game.hasJavascript) return;

        game.out.print( HEADER_START );
        
        game.out.print( " base    = '"+ game.baseURL   +"?moves=';\n" );
        game.out.print( " moves   = '"+ game.moves     +"';\n"    );
        if (game.moves.length() == 0) {
            game.out.print( " move    = base + moves     ;\n"    );
        } else {
            game.out.print( " move    = base + moves +'/';\n"    );
        }
        game.out.print( " target  = base + moves + '&target=';\n\n"   );
        
        game.out.print( HEADER_FUNCTIONS );
        game.out.print( HEADER_END );
    }
}