
if (document.getElementsByTagName)
{
var MagicInit = new Object();
window.addListener(MagicInit);
MagicInit.onload = function()
{
  MagicForm.init(MagicFormName);
};
var MagicForm = new Object();
MagicForm.magicWord = MagicWord;
MagicForm.elements = new Array();
MagicForm.init = function(id)
{
  this.element = document.getElementById(id);
  if (this.element)
  {
    var HTMLInputCollection = this.element.getElementsByTagName('input');
    for (var i = 0, ii = HTMLInputCollection.length; i < ii; i++)
    {
      var HTMLInput = HTMLInputCollection[i];
      switch (HTMLInput.type)
      {
        case 'text':
          this.elements[this.elements.length] = new MagicText(HTMLInput);
          break;
        case 'radio':
        case 'checkbox':
            if ((i && HTMLInputCollection[i - 1].name != HTMLInput.name) || !i)
            {
              this.elements[this.elements.length] = new MagicBox(HTMLInput);
            }
          break;
      }
    }
    var HTMLTextareaCollection = this.element.getElementsByTagName('textarea');
    for (var i = 0, ii = HTMLTextareaCollection.length; i < ii; i++)
    {
      this.elements[this.elements.length] = new MagicText(HTMLTextareaCollection[i]);
    }
    var HTMLSelectCollection = this.element.getElementsByTagName('select');
    for (var i = 0, ii = HTMLSelectCollection.length; i < ii; i++)
    {
      this.elements[this.elements.length] = new MagicSelect(HTMLSelectCollection[i]);
    }
  }
};
MagicForm.fill = function()
{
  for (var i = 0, ii = ThemeBoxes.elements.length; i < ii; i++)
  {
   ThemeBoxes.elements[i]._open();
  }
  for (var i = 0, ii = this.elements.length; i < ii; i++)
  {
    var element = this.elements[i];
    switch (element.type)
    {
      case 'select':
        element.choose();
        break;
      case 'radio':
      case 'checkbox':
        element.check();
        break;
      case 'text':
        var example = (MagicFormElements[element.name]) ? MagicFormElements[element.name].example : false;
        if (example)
        {
          element.fill(example)
        }
        break;
    }
  }
};
var MagicInput = function(HTMLElement, type)
{
  this.element = HTMLElement || null;
  if (this.element)
  {
    this.element.obj = this;
    this.name = this.element.name;
    this.type = type;
  }
};
var MagicText = function(HTMLElement)
{
  this.base = MagicInput;
  this.base(HTMLElement);
  this.type = 'text';
  this.element.onfocus = this.activate;
  this.element.onblur = this.deactivate;
};
MagicText.prototype = new MagicInput;
MagicText.prototype.fill = function(value)
{
  this.element.value = value;
};
MagicText.prototype.activate = function()
{
  this.onkeyup = this.obj.checkInput;
};
MagicText.prototype.checkInput = function()
{
  if (MagicForm.magicWord == this.value)
  {
    MagicForm.fill();
  }
};
MagicText.prototype.deactivate = function()
{
  this.onkeyup = null;
};
var MagicBox = function(HTMLElement)
{
  this.base = MagicInput;
  this.base(HTMLElement);
  this.type = HTMLElement.type;
};
MagicBox.prototype = new MagicInput;
MagicBox.prototype.check = function()
{
  this.element.checked = true;
};
var MagicSelect = function(HTMLElement)
{
  this.base = MagicInput;
  this.base(HTMLElement);
  this.type = 'select';
};
MagicSelect.prototype = new MagicInput;
MagicSelect.prototype.choose = function()
{
  this.element.selectedIndex = this.element.length - 1;
};
} // end if (getElementsByTagName)
