/***********************************************************************************************************
 * su.bot.kisa.javascript.demo
 * Location: http://www.bot.su/library/su/bot/kisa/javascript/demo-lite.js
 * Version Location: http://www.bot.su/library/su/bot/kisa/javascript/demo/200702232/demo-lite.js
 * © Bot.Su (http://www.bot.su/)
***********************************************************************************************************/
var botElementId = "bot";
var botLog;
var botLogElementId = "botLog";
var botManager;
var classLoader;
var classVariantLoadTabLocation = "/library/su/bot/javascript/chatbot/chatbots/VariantLoadTab.js";
var classKisaVariantLoadTabLocation = "/library/su/bot/kisa/javascript/chatbots/VariantLoadTab.js";
var classKisaSituationLoadTabLocation = "/library/su/bot/kisa/javascript/chatbots/SituationLoadTab.js";
var classKisaEmptyQuestionLoadTabLocation = "/library/su/bot/kisa/javascript/chatbots/EmptyQuestionLoadTab.js";
var classSearchLoadTabLocation = "/library/su/bot/javascript/chatbot/chatbots/SearchLoadTab.js";
var classKisaSearchLoadTabLocation = "/library/su/bot/kisa/javascript/chatbots/SearchLoadTab.js";
var classSearchResLoadTabLocation = "/library/su/bot/javascript/chatbot/chatbots/SearchResLoadTab.js";
var classKisaSearchResLoadTabLocation = "/library/su/bot/kisa/javascript/chatbots/SearchResLoadTab.js";
var classKisaCalculatorLocation = "/library/su/bot/kisa/javascript/chatbots/Calculator.js";
var classKisaTimeLocation = "/library/su/bot/kisa/javascript/util/Time.js";
var classKisaDateTimeLocation = "/library/su/bot/kisa/javascript/chatbots/DateTime.js";
var classKisaMeasuringSystemLocation = "/library/su/bot/kisa/javascript/chatbots/MeasuringSystem.js";
var classKisaParrotLocation = "/library/su/bot/kisa/javascript/chatbots/Parrot.js";
var debugging = false;
var dom;
var events;
var language = "russian";
var loaded = true;
var monitorElementId = "monitor";
var relevationCalculator = 0.95;
var relevationDateTime = 0.95;
var relevationEmptyQuestionLoadTab = 0.89;
var relevationLoadTab = 0.5;
var relevationMeasuringSystem = 0.95;
var relevationParrot = 0.55;
var relevationSearchLoadTab = 0.95;
var relevationSearchResLoadTab = 0.975;
var relevationSituationLoadTab = 1;
var relevationVariantLoadTab = 0.85;
var saveKisaLog = true;
var tracing = false; 
var urlKisaLog = "/cgi-bin/library/su/bot/kisa/perl/proxy.cgi";
var userElementId = "guest";
var xmlEmptyQuestionLoadTabLocation = "/library/su/bot/kisa/xml/EmptyQuestionLoadTab.xml";
var xmlLoadTabLocation = "/library/su/bot/kisa/xml/LoadTab.xml";
var xmlSearchLoadTabLocation = "/library/su/bot/kisa/xml/SearchLoadTab.xml";
var xmlSearchResLoadTabLocation = "/library/su/bot/kisa/xml/SearchResLoadTab.xml";
var xmlSituationLoadTabLocation = "/library/su/bot/kisa/xml/SituationLoadTab.xml";
var xmlVariantLoadTabLocation = "/library/su/bot/kisa/xml/VariantLoadTab.xml";

var initAll = function(e) {
 if((debugging || tracing) && com.oclib.javascript.util.Log) {
  botLog = new com.oclib.javascript.util.Log("botLog", com.oclib.javascript.util.Log.SYMPLE_TEXT_LOG_TYPE, com.oclib.javascript.util.Log.INTRO_ELEMENT_LOG_PLACE);
  if(debugging && botLog) {botLog.println("demo.js:initAll: "+"Log is loaded...");};
  if(debugging && tracing && botLog && com.oclib.javascript.util.Dom) {
   botLog.println("demo.js:initAll: "+"com.oclib.javascript.util.Dom is loaded...");
  } else {
   botLog.println("demo.js:initAll: "+"com.oclib.javascript.util.Dom is NOT loaded...");
  };
 };
 events.setTracing(tracing); events.setDebugging(debugging); events.setLog(botLog); 
 if (com.oclib.javascript.util.Dom) {
  dom = new com.oclib.javascript.util.Dom();
  dom.setTracing(tracing);
  dom.setDebugging(debugging);
  dom.setLog(botLog);
 } else {
  loaded = false;
  return -1; 
 };
 dom.changeTextContent("loadMessage", dom.getTextContent("clickMessage"));
 
 var monitor;
 monitor = new su.bot.javascript.chatbot.console.Monitor();
 monitor.setTracing(tracing); monitor.setDebugging(debugging); monitor.setLog(botLog);
 monitor.setBotElementId(botElementId);
 monitor.setMonitorElementId(monitorElementId);
 monitor.setUserElementId(userElementId);
 monitor.setCurrentLanguage(language);
 monitor.main();
 
 var userConsole;
 userConsole = new su.bot.javascript.chatbot.console.UserConsole();
 userConsole.setTracing(tracing); userConsole.setDebugging(debugging); userConsole.setLog(botLog);
 userConsole.setEvent(events);
 userConsole.setMonitor(monitor);
 userConsole.main();
   
 botManager = new su.bot.javascript.chatbot.botsmanager.BotsManager();
 botManager.setTracing(tracing); botManager.setDebugging(debugging); botManager.setLog(botLog);
 botManager.setMonitor(monitor); 
 botManager.setCurrentLanguage(language);
 var d = new Date();
 botManager.setUid("u"+d.getFullYear()+d.getMonth()+d.getDate()+d.getHours()+d.getMinutes()+d.getSeconds()+d.getMilliseconds()+Math.floor(Math.random()*1000));
 botManager.setSaveUrl(urlKisaLog);
 botManager.setSave(saveKisaLog);
  
 var kisaLoadTab;
 kisaLoadTab = new su.bot.kisa.javascript.chatbots.LoadTab();
 kisaLoadTab.setTracing(tracing); kisaLoadTab.setDebugging(debugging); kisaLoadTab.setLog(botLog);
 kisaLoadTab.setRelevance(relevationLoadTab);
 kisaLoadTab.setTableLocation(xmlLoadTabLocation);
 botManager.addBot(kisaLoadTab); 

 botManager.main();

 runBot(); 
 
 kisaLoadTab.init(); 
 
 classLoader = new com.oclib.javascript.lang.ClassLoader();
// classLoader.setTracing(tracing); classLoader.setDebugging(debugging); classLoader.setLog(botLog);

 classLoader.require("su.bot.javascript.chatbots.VariantLoadTab", classVariantLoadTabLocation);
 classLoader.require("su.bot.kisa.javascript.chatbots.SituationLoadTab", classKisaSituationLoadTabLocation);
 var kisaSituationLoadTab;
 kisaSituationLoadTab= new su.bot.kisa.javascript.chatbots.SituationLoadTab();
 kisaSituationLoadTab.setTracing(tracing); kisaSituationLoadTab.setDebugging(debugging); kisaSituationLoadTab.setLog(botLog);
 kisaSituationLoadTab.setRelevance(relevationSituationLoadTab);
 kisaSituationLoadTab.setTableLocation(xmlSituationLoadTabLocation);
 kisaSituationLoadTab.init();
 botManager.addBot(kisaSituationLoadTab);
  
 classLoader.require("su.bot.kisa.javascript.chatbots.EmptyQuestionLoadTab", classKisaEmptyQuestionLoadTabLocation);
 var kisaEmptyQuestionLoadTab;
 kisaEmptyQuestionLoadTab= new su.bot.kisa.javascript.chatbots.EmptyQuestionLoadTab();
 kisaEmptyQuestionLoadTab.setTracing(tracing); kisaEmptyQuestionLoadTab.setDebugging(debugging); kisaEmptyQuestionLoadTab.setLog(botLog);
 kisaEmptyQuestionLoadTab.setRelevance(relevationEmptyQuestionLoadTab);
 kisaEmptyQuestionLoadTab.setTableLocation(xmlEmptyQuestionLoadTabLocation);
 kisaEmptyQuestionLoadTab.init();
 botManager.addBot(kisaEmptyQuestionLoadTab);
  
 classLoader.require("su.bot.kisa.javascript.chatbots.VariantLoadTab", classKisaVariantLoadTabLocation);
 var kisaVariantLoadTab;
 kisaVariantLoadTab = new su.bot.kisa.javascript.chatbots.VariantLoadTab();
 kisaVariantLoadTab.setTracing(tracing); kisaVariantLoadTab.setDebugging(debugging); kisaVariantLoadTab.setLog(botLog);
 kisaVariantLoadTab.setRelevance(relevationVariantLoadTab);
 kisaVariantLoadTab.setTableLocation(xmlVariantLoadTabLocation);
 kisaVariantLoadTab.init();
 botManager.addBot(kisaVariantLoadTab);  
 
 classLoader.require("su.bot.javascript.chatbots.SearchLoadTab", classSearchLoadTabLocation);
 classLoader.require("su.bot.kisa.javascript.chatbots.SearchLoadTab", classKisaSearchLoadTabLocation);
 var kisaSearchLoadTab;
 kisaSearchLoadTab = new su.bot.kisa.javascript.chatbots.SearchLoadTab();
 kisaSearchLoadTab.setTracing(tracing); kisaSearchLoadTab.setDebugging(debugging); kisaSearchLoadTab.setLog(botLog);
 kisaSearchLoadTab.setRelevance(relevationSearchLoadTab);
 kisaSearchLoadTab.setTableLocation(xmlSearchLoadTabLocation);
 kisaSearchLoadTab.init();
 botManager.addBot(kisaSearchLoadTab);
 
 classLoader.require("su.bot.javascript.chatbots.SearchResLoadTab", classSearchResLoadTabLocation);
 classLoader.require("su.bot.kisa.javascript.chatbots.SearchResLoadTab", classKisaSearchResLoadTabLocation);
 var kisaSearchResLoadTab;
 kisaSearchResLoadTab = new su.bot.kisa.javascript.chatbots.SearchResLoadTab();
 kisaSearchResLoadTab.setTracing(tracing); kisaSearchResLoadTab.setDebugging(debugging); kisaSearchResLoadTab.setLog(botLog);
 kisaSearchResLoadTab.setRelevance(relevationSearchResLoadTab);
 kisaSearchResLoadTab.setTableLocation(xmlSearchResLoadTabLocation);
 kisaSearchResLoadTab.init();
 botManager.addBot(kisaSearchResLoadTab); 
 
 classLoader.require("su.bot.kisa.javascript.chatbots.Calculator", classKisaCalculatorLocation);
 var kisaCalculator;
 kisaCalculator = new su.bot.kisa.javascript.chatbots.Calculator();
 kisaCalculator.setTracing(tracing); kisaCalculator.setDebugging(debugging); kisaCalculator.setLog(botLog);
 kisaCalculator.setRelevance(relevationCalculator);
 botManager.addBot(kisaCalculator);
 kisaCalculator.init(); 
   
 classLoader.require("su.bot.kisa.javascript.util.Time", classKisaTimeLocation);
 classLoader.require("su.bot.kisa.javascript.chatbots.DateTime", classKisaDateTimeLocation);
 var kisaDateTime;
 kisaDateTime = new su.bot.kisa.javascript.chatbots.DateTime();
 kisaDateTime.setTracing(tracing); kisaDateTime.setDebugging(debugging); kisaDateTime.setLog(botLog);
 kisaDateTime.setRelevance(relevationDateTime);
 kisaDateTime.init();
 botManager.addBot(kisaDateTime);
  
 classLoader.require("su.bot.kisa.javascript.chatbots.MeasuringSystem", classKisaMeasuringSystemLocation);
 var kisaMeasuringSystem;
 kisaMeasuringSystem = new su.bot.kisa.javascript.chatbots.MeasuringSystem();
 kisaMeasuringSystem.setTracing(tracing); kisaMeasuringSystem.setDebugging(debugging); kisaMeasuringSystem.setLog(botLog);
 kisaMeasuringSystem.setRelevance(relevationMeasuringSystem);
 kisaMeasuringSystem.init();
 botManager.addBot(kisaMeasuringSystem); 
 
 classLoader.require("su.bot.kisa.javascript.chatbots.Parrot", classKisaParrotLocation);
 var kisaParrot;
 kisaParrot = new su.bot.kisa.javascript.chatbots.Parrot();
 kisaParrot.setTracing(tracing); kisaParrot.setDebugging(debugging); kisaParrot.setLog(botLog);
 kisaParrot.setRelevance(relevationParrot);
 kisaParrot.init();
 botManager.addBot(kisaParrot); 
};

var runBot = function(e) {
 if(!((debugging || tracing) && botLog)) {
  dom.doHidden("botLog");
  var monitorElement = document.getElementById("monitor");
  monitorElement.style.height = "90%";  
 };
 dom.doHidden("hello");
 dom.doVisible("console");
 document.getElementById("userConsoleText").focus();
 if(debugging && botLog) {botLog.println("demo.js:runBot: "+"Kisa is runing...");};
};

var wrongExit = function(className) {
 if(debugging && botLog) {botLog.println("demo.js:wrongExit from demo.js:initAll: "+"ERROR: "+className+" is not loaded...");}; 
 loaded = false;
 return -1; 
};

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