/***********************************************************************************************************
 * su.bot.checkers.javascript.demo
 * Location: http://www.bot.su/library/su/bot/checkers/javascript/demo.js
 * Version Location: http://www.bot.su/library/su/bot/checkers/javascript/demo/builds/20070528/demo.js
 * © Bot.Su (http://www.bot.su/)
***********************************************************************************************************/

var checkersLogName = "checkersLog";
var debugging = true;
var tracing = true;

var checkersLog;
var classLoader;
var clock;
var dom;
var environment;
var events;
var gamePanel;
var loaded = false;
var mainBoard;
var maxGamer;
var minGamer;
var properties;
var referee;
var visualBoard;
var visualClock;
var visualGamePanel;
var visualProperties;

var init = function(e) {
 if((debugging || tracing) && com.oclib.javascript.util.Log) {
  checkersLog = new com.oclib.javascript.util.Log(checkersLogName, com.oclib.javascript.util.Log.SYMPLE_TEXT_LOG_TYPE, com.oclib.javascript.util.Log.INTRO_ELEMENT_LOG_PLACE);
  if(debugging && checkersLog) {checkersLog.println("demo.js:init: "+"com.oclib.javascript.util.Log (Version "+(new com.oclib.javascript.util.Log()).getClassVersion()+")  is loaded...");};
 };
 if(debugging && tracing && checkersLog) { 
  if(com.oclib.javascript.util.Dom) {checkersLog.println("demo.js:init: "+"com.oclib.javascript.util.Dom (Version "+(new com.oclib.javascript.util.Dom()).getClassVersion()+") is loaded...");} else {checkersLog.println("demo.js:init: "+"com.oclib.javascript.util.Dom is NOT loaded...");return -1;};
  if(com.oclib.javascript.lang.ClassLoader) {checkersLog.println("demo.js:init: "+"com.oclib.javascript.lang.ClassLoader (Version "+(new com.oclib.javascript.lang.ClassLoader()).getClassVersion()+") is loaded...");} else {checkersLog.println("demo.js:init: "+"com.oclib.javascript.lang.ClassLoader is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.Gamer) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Gamer (Version "+(new su.bot.checkers.javascript.Gamer()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Gamer is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.bot.Smart) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.bot.Smart (Version "+(new su.bot.checkers.javascript.bot.Smart()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.bot.Smart is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.Clock) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Clock (Version "+(new su.bot.checkers.javascript.Clock()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Clock is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.Environment) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Environment (Version "+(new su.bot.checkers.javascript.Environment()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Environment is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.Move) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Move (Version "+(new su.bot.checkers.javascript.Move()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Move is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.Node) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Node (Version "+(new su.bot.checkers.javascript.Node()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Node is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.Properties) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Properties (Version "+(new su.bot.checkers.javascript.Properties()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Properties is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.Referee) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Referee (Version "+(new su.bot.checkers.javascript.Referee()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.Referee is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.User) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.User (Version "+(new su.bot.checkers.javascript.User()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.User is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.VisualBoard) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.VisualBoard (Version "+(new su.bot.checkers.javascript.VisualBoard()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.VisualBoard is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.VisualClock) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.VisualClock (Version "+(new su.bot.checkers.javascript.VisualClock()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.VisualClock is NOT loaded...");return -1;};
  if(su.bot.checkers.javascript.VisualGamePanel) {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.VisualGamePanel (Version "+(new su.bot.checkers.javascript.VisualGamePanel()).getClassVersion()+")  is loaded...");} else {checkersLog.println("demo.js:init: "+"su.bot.checkers.javascript.VisualGamePanel is NOT loaded...");return -1;};
 };
 loaded = true;
 dom = new com.oclib.javascript.util.Dom();
 environment = new su.bot.checkers.javascript.Environment();
 environment.setEvents(events);
 environment.setDebugging(debugging); environment.setTracing(tracing); environment.setLog(checkersLog);
 environment.setDom(dom);
 classLoader = new com.oclib.javascript.lang.ClassLoader();
 environment.setClassLoader(classLoader);
 clock = new su.bot.checkers.javascript.Clock();
 clock.setDebugging(debugging); clock.setTracing(tracing); clock.setLog(checkersLog);
 environment.setClock(clock);
 mainBoard = new su.bot.checkers.javascript.Board();
 environment.setMainBoard(mainBoard); 
 maxGamer = new su.bot.checkers.javascript.User();
 maxGamer.setDebugging(debugging); maxGamer.setTracing(tracing); maxGamer.setLog(checkersLog);
 environment.setMaxGamer(maxGamer); 
 minGamer = new su.bot.checkers.javascript.bot.Smart();
 minGamer.setDebugging(debugging); minGamer.setTracing(tracing); minGamer.setLog(checkersLog);
 environment.setMinGamer(minGamer); 
 properties = new su.bot.checkers.javascript.Properties();
 properties.setDebugging(debugging); properties.setTracing(tracing); properties.setLog(checkersLog);
 environment.setProperties(properties); 
 properties.init();
 referee = new su.bot.checkers.javascript.Referee();
 referee.setDebugging(debugging); referee.setTracing(tracing); referee.setLog(checkersLog);
 environment.setReferee(referee); 
 visualBoard = new su.bot.checkers.javascript.VisualBoard();
 visualBoard.setDebugging(debugging); visualBoard.setTracing(tracing); visualBoard.setLog(checkersLog);
 environment.setVisualBoard(visualBoard); 
 visualClock = new su.bot.checkers.javascript.VisualClock();
 visualClock.setDebugging(debugging); visualClock.setTracing(tracing); visualClock.setLog(checkersLog);
 environment.setVisualClock(visualClock); 
 visualClock.run(); 
 visualGamePanel = new su.bot.checkers.javascript.VisualGamePanel();
 visualGamePanel.setDebugging(debugging); visualGamePanel.setTracing(tracing); visualGamePanel.setLog(checkersLog);
 environment.setVisualGamePanel(visualGamePanel); 
 visualGamePanel.init();
 environment.setVisualGamePanel(visualGamePanel);
 visualProperties = new su.bot.checkers.javascript.VisualProperties();
 visualProperties.setDebugging(debugging); visualProperties.setTracing(tracing); visualProperties.setLog(checkersLog);
 environment.setVisualProperties(visualProperties);
 visualProperties.init();
 environment.setVisualProperties(visualProperties); 
 
 referee.init();
};

if(com.oclib.javascript.lang.Root && com.oclib.javascript.util.Events) {
 events = new com.oclib.javascript.util.Events();
 events.addEventListener(window, "load", init, false);
};
