// $Revision: 5128 $

var soloTypeFlash = {
  flashContainerId: "IDFlashTypeContainer",
  
  objectId: "IDFlashType",
  objectEmbedId: "IDEmbedFlashType",

flashCaller: {
  flash: "soloTypeFlash",
  listener: "listener.",
  
  initialize: function()
  { 
    if(window.document[this.flash])
      this.flashRef = window.document[this.flash];
    else
      this.flashRef = document[this.flash];    
  }, 
  
  call: function(p, arg)
  {
    try
    {
      this.flashRef.SetVariable(this.listener + p, arg);
    }
    catch(e) { 
    
      stop();
    }
  }
},
  
  nWidth: 911,
  nHeight: 611,
  
  width: '911px',
  height: '611px',
  
  setSizeCoefficient: function(coeff)
  {
    this.width = String(Math.floor(this.nWidth * coeff)) + "px";
    this.height = String(Math.floor(this.nHeight * coeff)) + "px";
  },
  
  initialize: function()
  {
    this.flashCaller.initialize();
  },
  
  getContainerId: function()
  {
    return this.flashContainerId;
  },
    
  captionPleaseWaitId: "captionPleaseWaitId",
  getFlash: function()
  {
    return "<div id='" + this.captionPleaseWaitId + "' style='position: fixed; z-index: 20; width: 100%; top: 0px; left:0px; display: none; font-size: 24px; height: 40px; text-align: center'><div style='display: inline; color: black; background: rgb(127,127,127);'>Подождите, идёт загрузка...</div></div><OBJECT ID='" + this.objectId + "'><PARAM NAME='allowScriptAccess' VALUE='"+Environment.getScriptAccess()+"'><PARAM NAME='movie' VALUE='" + Environment.getResourceDirectory() + "flash/SoloType-7E7A2C881801C7DF7AA0AFDFCFDA3438.swf'><EMBED id='" + this.objectEmbedId + "' WIDTH='" + this.width + "' HEIGHT='" + this.height + "' play='true' swliveconnect='true' name='" + this.flashCaller.flash + "' src='" + Environment.getResourceDirectory() + "flash/SoloType-7E7A2C881801C7DF7AA0AFDFCFDA3438.swf' quality='high' bgcolor='#FFFFFF' allowScriptAccess='" + Environment.getScriptAccess() + "' TYPE='application/x-shockwave-flash'></EMBED></OBJECT>";
  },
  
  blurEmbed: function()
  {
    try
    {
      document.getElementById(this.objectEmbedId).blur();
    }
    catch(e) { }
  },
  
  deinit: function()
  {
    this.blurEmbed();
  },
  
  showPleaseWait: function()
  {
     if(isOpera()) return;
     
     document.getElementById(this.captionPleaseWaitId).style.display = "";
  },
  hidePleaseWait: function()
  {
     if(isOpera()) return;
     
     document.getElementById(this.captionPleaseWaitId).style.display = "none";
  },
  
  
  show: function()
  {        
    document.getElementById(this.flashContainerId).innerHTML = this.getFlash();    
  },
  hide: function()
  {
    document.getElementById(this.flashContainerId).innerHTML = "";
  },

  setCite: function(cite)
  {
    this.flashCaller.call("cite", cite);
  },
  setCiteAuthor: function(citeAuthor)
  {  
    this.flashCaller.call("citeAuthor", citeAuthor);
  },
  
  setText: function(text)
  {
    this.flashCaller.call("text", text);
  },
  
  setText1: function(text1)
  {
    this.flashCaller.call("text1", text1);
  },
  setText2: function(text2)
  {
    this.flashCaller.call("text2", text2);
  },
  
  beginExercise: function()
  {
    this.flashCaller.call("action", "BeginExercise");
  },
  
  reset: function()
  {
    this.flashCaller.call("action", "Reset");
  },                                 

  setLanguage: function(language)
  {
    this.flashCaller.call("language", language);    
  },
  setTypeTest: function(typeTest)
  {
    this.flashCaller.call("typeTest", typeTest);
  },
  setExerciseType: function(exerciseType)
  {
    this.flashCaller.call("exerciseType", exerciseType);
  },
  
  setMaxErrors: function(maxErrors)
  {
    this.flashCaller.call("maxErrors", maxErrors);
  },
  
  setUser: function(user)
  {
    this.flashCaller.call("user", user);
  },
  
  setLessonExercise: function(lessonExercise)
  {
    this.flashCaller.call("lessonExercise", lessonExercise);
  }, 
  
  setKeyboardParameters: function(layout, bNextKey, bShowChars, bColored)
  {
    this.flashCaller.call("keyboardParams", "layout="+layout+"&next_key="+bNextKey+"&show_chars="+bShowChars + "&colored=" + bColored);
  },
  
  setErrorTexts: function(errorTexts)
  {
    this.flashCaller.call("errorTexts", errorTexts);
  },
  
  layoutChanged: function()
  {
    this.flashCaller.call("keyboardLayoutChanged", "");  
  },
  
  setOperationSystem: function(val)
  { 
    this.flashCaller.call("operatingSystem", val);    
  },
  
  setCourse: function(val)
  { 
    this.flashCaller.call("course", val);    
  },
  setResourceDirectory: function(val)
  {
    this.flashCaller.call("resourceDirectory", val);
  },
  killFocus: function()
  {
    this.flashCaller.call("killFocus");
  } 
  
};