//<script language="javascript">
/*=============================================================================
 WebSolvers Framework Library
 Copyright 2003, WebSolvers, Inc., All Rights Reserved.

 Library Browser
 Cross-Browser/Platform common browser library

 Revision History:
 6-26-03 Created

 Requires
  Library.js

  Notes:
  Aterntate DHTML functions to use.
    [document].getElement replaces .getElementById
    [document].newElement replaces .createElement
    [document].newFragment replaces .createDocumentFragment
    [element].replaceElem replaces .replaceChild
    [element].appendElem replaces .appendChild
    [element].getAttribute
    [element].setAttribute
    [element].getClass
    [element].setClass
    [element].getEvent
    [element].setEvent
    [element].clearEvent
=============================================================================

 The WebSolvers Framework Library may be used and/or modified by anyone owning
 the original work as it was incorporated into an original development project
 so long as this copyright notice and the comments above remain intact.

 By using this code you agree to indemnify WebSolvers, Inc. from any liability
 that might arise from its use.

 This code may not be sold exclusively or as a part of other code without prior
 written consent and is expressly forbidden.

 Obtain permission before redistributing this software over the Internet or
 in any other medium. In all cases the copyright and header must remain intact.
============================================================================= */

function getSelectedValue(elem) {
  if(!elem || !elem.options || !elem.options.length)
    return "";
    
  if(elem.selectedIndex < 0 || elem.selectedIndex > elem.options.length)
    return "";
    
  return elem.options[elem.selectedIndex].value;
}

function getSelectedText(elem) {
  if(!elem || !elem.options || !elem.options.length)
    return "";
    
  if(elem.selectedIndex < 0 || elem.selectedIndex > elem.options.length)
    return "";
    
  return elem.options[elem.selectedIndex].text;
}

function dupeFields(elmChk, strSrc, strDst) {
  var frm = elmChk.form;
  var elmSrc = null, strDstElm, elmDst;
  var i = 0;
      
  for(i = 0; i < frm.elements.length; i++) {
    elmSrc = frm.elements[i]
    if(elmSrc && elmSrc.name && elmSrc.name.indexOf(strSrc) == 0) {
      strDstElm = strDst + elmSrc.name.substr(strSrc.length);
      elmDst = frm.elements[strDstElm];
      if(elmDst && elmDst.type == elmSrc.type) {
        switch(elmDst.type.toLowerCase()) {
        case "select":
          elmDst.selectedIndex = elmSrc.selectedIndex
          break;
        case "checkbox":
          elmDst.checked = elmSrc.checked
          break;
        case "radio":
          elmDst.checked = elmSrc.checked
          break
        }
        elmDst.value = elmSrc.value;
        if(elmDst.onchange)
          elmDst.onchange();
      }
    }
  }
      
  elmChk.checked = false;
  return false;
}

function lookupOptions(fldParent, strChild, ary) {
  var i = 0, value = "";
  var fldChild = fldParent.form.elements[strChild];
  
  fldChild.selectedIndex = -1;
  while(fldChild.options.length)
    fldChild.options[0] = null;
  
  if(fldParent.selectedIndex > -1) {
    value = fldParent.options[fldParent.selectedIndex].value;
    if(ary && ary.length && ary[value] && ary[value].length) {
      for(i = 0; i < ary[value].length; i++) {
        fldChild.options[fldChild.options.length] = new Option(ary[value][ary[value][i]], ary[value][i]);
      }
      fldChild.selectedIndex = -1;
    } else {
      fldChild.options[fldChild.options.length] = new Option("", value);
      fldChild.selectedIndex = 0;
    }
  } else
    fldChild.selectedIndex = -1;
  
  return true;
}

// Takes a form element with options (or an array of elements)
// and makes sure that they are all selected.
function selectAll(elmField) {
  var ary = null;
  var i = 0;
  
  if(elmField.length)
    ary = elmField;
  else if(elmField.selectedIndex || elmField.selectedIndex == 0)
    ary = elmField.options;
    
  for(i = 0; i < ary.length; i++)
    ary[i].selected = ary[i].checked = true;
}

// Cascased a selection of a checkbox when there are
// multiples. setting state will cause the cascade to only
// happend when the state matches, setting before
// will cause all checboxes before the passed in one
// to be selected instead of the ones after.
function cascadeSelect(elmField, boolState, boolBefore) {
  var aryField = null;
  var i = 0;
  var boolFound = false;
  
  if(boolState || boolState == false)
    if(elmField.checked != boolState)
      return boolFound;
  
  aryField = elmField.form.elements[elmField.name];
  for(i = 0; i < aryField.length; i++) {
    if(!boolFound && aryField[i] == elmField)
      boolFound = true;
    else if((boolFound && !boolBefore) || (!boolFound && boolBefore))
      aryField[i].checked = elmField.checked;
  }
  
  return boolFound;
}

function selectedOptionShift(elmSrc, elmDst, boolUniq, boolPurge) {
  var i = 0, j = 0;
  var boolOk;
  
  for(i = 0; i < elmSrc.options.length; i++)
    if(elmSrc.options[i].selected) {
      boolOk = true;
      if(boolUniq) {
        for(j = 0; j < elmDst.options.length && boolOk; j++)
          boolOk = (elmDst.options[j].value != elmSrc.options[i].value)
      }
      if(boolOk)
        elmDst.options[elmDst.options.length] = new Option(elmSrc.options[i].text, elmSrc.options[i].value);
      if(boolPurge || boolOk) {
        elmSrc.options[i] = null;
        i--;
      }
    }
}

function purgeSameOptions(elmSrc, elmCmp, boolBoth) {
  var i = 0; j = 0;

  for(i = 0; i < elmSrc.options.length; i++)
    for(j = 0; j < elmCmp.options.length && i > -1; j++)
      if(elmSrc.options[i].value == elmCmp.options[j].value) {
        elmSrc.options[i] = null;
        i--;
        if(boolBoth) {
          elmCmp.options[j] = null;
          j--;
        }
      }
}

function readonly(elm) {
  var frm = elm.form;
  var i = 0;
  
  if(!elm.index && elm.index != 0) {
    for(i = 0; i < frm.elements.length; i++) {
      if(!frm.elements[i].index && frm.elements[i].index != 0)
        frm.elements[i].index = i;
    }
  }

  if(elm.index < frm.elements.length) {
    frm.elements[elm.index+1].focus();
    if(frm.elements[elm.index+1].onfocus)
      frm.elements[elm.index+1].onfocus();
  } else
    elm.blur();
}

//======================================================================================
//                                 Internal Routines
//======================================================================================

// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------

function bdhtml_NormDoc(doc) {
  if(!doc.parentWindow)
    doc.parentWindow = doc.root.parentWindow;

  if(!doc.getElement)
    doc.getElement = docObject_GetElement;
    
  if(!doc.getByTag)
    doc.getByTag = docObject_GetElementsByTag;

  if(!doc.getByName)
    doc.getByName = docObject_GetElementsByName;

  if(!doc.getByAttr)
    doc.getByAttr = docObject_GetElementsByAttr;

  if(!doc.newElement)
    doc.newElement = docObject_NewElement;

  if(!doc.newFragment)
    doc.newFragment = docObject_NewFrag;

  if(!doc.numStyles)
    doc.numStyles = docObject_CountStyles;
    
  if(!doc.getCSS)
    doc.getCSS = docObject_GetStyle;

  if(!doc.setCSS)
    doc.setCSS = docObject_SetStyle;
}

function bdhtml_Norm(elem) {
  if(!elem.getParent)
    elem.getParent = elemObject_GetParent;
  if(!elem.getFirst)
    elem.getFirst = elemObject_GetFirst;
  if(!elem.getLast)
    elem.getLast = elemObject_GetLast;
  if(!elem.getPrev)
    elem.getPrev = elemObject_GetPrev;
  if(!elem.getNext)
    elem.getNext = elemObject_GetNext;

  if(!elem.exec)
    elem.exec = elemObject_ExecFunc;

  if(elem.nodeType && elem.nodeType != 1 && elem.nodeType != 11)
    return;

  if(!elem.getAttribute)
    elem.getAttribute = elemObject_GetAttribute;
  if(!elem.setAttribute)
    elem.setAttribute = elemObject_SetAttribute;
   
  if(!elem.getClass)
    elem.getClass = elemObject_GetClass;
  if(!elem.setClass)
    elem.setClass = elemObject_SetClass;

  if(!elem.getEvent)
    elem.getEvent = elemObject_GetEvent;
  if(!elem.setEvent)
    elem.setEvent = elemObject_SetEvent;
  if(!elem.clearEvent)
    elem.clearEvent = elemObject_ClearEvent;
  if(!elem.addEvent)
    elem.addEvent = elemObject_AddEvent;
  if(!elem.removeEvent)
    elem.removeEvent = elemObject_RemoveEvent;
  if(!elem.throwEvent)
    elem.throwEvent = elemObject_ThrowEvent;

  if(!elem.lock)
    elem.lock = elemObject_Lock;
  if(!elem.unlock)
    elem.unlock = elemObject_Unlock;
  if(!elem.locked)
    elem.locked = elemObject_isLocked;
        
  if(!elem.getOffsetParent)
    elem.getOffsetParent = elemObject_GetOffsetParent;

  if(!elem.getElement)
    elem.getElement = elemObject_GetElement;
    
  if(!elem.getByTag)
    elem.getByTag = elemObject_GetElementsByTag;

  if(!elem.replaceElem)
    elem.replaceElem = elemObject_ReplaceElem;
  if(!elem.appendElem)
    elem.appendElem = elemObject_AppendElem;
  if(!elem.insertElem)
    elem.insertElem = elemObject_InsertElem;
  
}

function dhtmlObject_Container(elem) {
  var ep = elem.getParent();
  var frag = null;
  var child = null;
  var nchild = null;

  this._resync();

  if(this.IE) {
    frag = elem.document.newElement("SPAN");
    for(child = 0; child < elem.attributes.length; child++)
      frag.setAttribute(elem.attributes[child].nodeName, elem.attributes[child].nodeValue);

    while(elem.nextSibling && elem.nextSibling.nodeName.toUpperCase() != '/' + elem.nodeName.toUpperCase())
      frag.appendElem(ep.removeChild(elem.nextSibling));
    if(elem.nextSibling)
      ep.removeChild(elem.nextSibling)
      
    ep.replaceElem(frag, elem);
  } else
    frag = elem;

  return frag;
}

function dhtmlObject_ProcAlign(align) {
  var i = parseInt(align);

  if(isNaN(i)) {
    i = -1;
    if(align && align.length) {
      switch(align.substring(0, 1).toLowerCase()) {
      case "c":
      case "m":
        i = 0;
        break;
      case "r":
      case "b":
      case "d":
      case "v":
        i = 1;
        break;
      }
    }
  } else if(i < -1)
    i = -1;
  else if (i > 1)
    i = 1;

  return i;
}

function docObject_GetElement(id, cascade) {
  var elem = null;
  var i = 0;

  if(dhtml.NN4) {
    elem = this.layers[id];
    if(elem)
      dhtml.normalize(elem, this);
    else if(cascade || cascade != false || cascade != 0) {
      for(i = 0; i < this.layers.length && !elem; i++)
        elem = dhtml.normDoc(this.layers[i].document).getElement(id, true);
    }
  } else if(dhtml.DOM) {
    elem = this.getElementById(id);
    if(elem)
      elem = dhtml.normalize(elem, this);
  }

  return elem;
}

function docObject_GetElementsByName(name, cascade) {
  var nodes = null;
  var i = 0;

  if(dhtml.NN4) {
  } else if(dhtml.DOM) {
    nodes = this.getElementsByName(name);
    for(i = 0; i < nodes.length; i++)
      dhtml.normalize(nodes[i], this);
  }

  return nodes;
}

function docObject_GetElementsByTag(tag) {
  var nodes = null;
  var i = 0;
  
  if(dhtml.NN4) {
  } else if(dhtml.DOM) {
    nodes = this.getElementsByTagName(tag.toUpperCase());
    for(i = 0; i < nodes.length; i++)
      dhtml.normalize(nodes[i], this);
  }
  
  return nodes;
}

function docObject_GetElementsByAttr(attr, value) {
  var nodes = new Array();
  var tag = this._filterTags;
  var i = 0, j = 0, t = 0;
  var all = null;
  
  if(dhtml.NN4) {
  } else if(dhtml.DOM) {
    for(t = 0; t < tag.length; t++) {
      all = this.getElementsByTagName(tag[t]);
        
      for(i = 0; i < all.length; i++) {
        if(all.item(i).getAttribute && all.item(i).getAttribute(attr) && (!value || all.item(i).getAttribute(attr) == value))
          nodes[nodes.length] = all.item(i);
        else {
          for(j = 0; all.item(i).attributes && j < all.item(i).attributes.length; j++)
            if((all.item(i).attributes.item(j).nodeName == attr) && (!value || (all.item(i).attributes.item(j).nodeValue == value)))
              nodes[nodes.length] = all.item(i);
        }
      }
    }
  }
  
  return nodes;
}

function docObject_NewElement(name) {
  var elem = null;
  var param = new Array();

  if(dhtml.DOM) {
    switch(name.toLowerCase()) {
    case "input":
      if(docObject_NewElement.arguments.length > 1)
        param[0] = docObject_NewElement.arguments[1];
      else
        param[0] = "text";

      if(dhtml.mozilla) {
        elem = this.createElement("input");
        elem.type = param[0];
      } else
        elem = this.createElement('<INPUT TYPE="' + param[0] + '">');
      break;
    case "iframe":
      if(docObject_NewElement.arguments.length > 1)
        param[0] = docObject_NewElement.arguments[1];
      else
        param[0] = "newIFrame";

      if(docObject_NewElement.arguments.length > 2)
        param[1] = docObject_NewElement.arguments[2];
      else
        param[1] = param[0];

      if(dhtml.mozilla) {
        elem = this.createElement("iframe");
        elem.id = param[0];
        elem.name = param[1];
      } else if(dhtml.ID && dhtml.major == 5) {
        elem = this.createElement("DIV");
        elem.style.display = "none";
        this.body.appendChild(elem);
        elem.innerHTML = '<IFRAME NAME="' + param[1] + '" ID="' + param[0] + '"></IFRAME>';
        this.body.removeChild(elem);
        elem = elem.removeChild(elem.firstChild);
      } else
        elem = this.createElement('<IFRAME NAME="' + param[1] + '" ID="' + param[0] + '"></IFRAME>');
      break;
    default:
      elem = this.createElement(name);
    }
  }

  if(elem)
    elem = dhtml.normalize(elem, this);

  return elem;
}

function docObject_NewFrag() {
  var frag = null;

  if(dhtml.mozilla)
    frag = this.newElement("SPAN");
  else
    frag = dhtml.normalize(this.createDocumentFragment(), this);

  if(frag)
    frag._dhtmlFrag = true;

  return frag;
}

function docObject_CountStyles() {
  if(dhtml.DOM)
    return this.styleSheets.length;
  else
    return 0;
}

function docObject_GetStyle(id) {
  var cssStyle = null;
  var css = "";

  if(!id && id != 0) {
    css = "";
    for(id = 0; id < this.numStyles(); id++)
      css += this.getCSS(id) + "\n";
      
    return css;
  }
    
  if(dhtml.DOM)
    cssStyle = this.styleSheets.item(id);

  if(cssStyle) {
    if(dhtml.mozilla) {
      for(var i = 0; i < cssStyle.cssRules.length; i++) {
        css += cssStyle.cssRules[i].cssText + "\n";
      }
    } else if(dhtml.IE)
      css = cssStyle.cssText;
  }
  return css;
}

function docObject_SetStyle(id, css) {
  if(!id)
    id = 0;

  if(dhtml.DOM)
    cssStyle = this.styleSheets.item(id);
    
  if(cssStyle) {
    if(dhtml.mozilla)
      cssStyle.cssRules.cssText = css;
    else if(dhtml.IE)
      cssStyle.cssText = css;
  }
}

function elemObject_GetParent() {
  if(dhtml.DOM)
    return dhtml.normalize(this.parentNode, this.document);
  else if(dhtml.NN4)
    return dhtml.normalize(this.parentLayer, this.document);
  else
    return null;
}

function elemObject_GetFirst(noD) {
  var fc = null;
  
  if(dhtml.DOM && this.lastChild) {
    fc = this.firstChild;
    if(!noD) {
      while(fc && fc.nodeType == 3)
        fc = fc.nextSibling;
      
      if(fc) 
        return dhtml.normalize(fc, this.document);
    }
    
    return fc;
    return dhtml.normalize(this.firstChild, this.document);
  } else if(dhtml.NN4 && this.layers.length)
    return dhtml.normalize(this.layers[0], this.document);
  else
    return null;
}

function elemObject_GetLast(noD) {
  var lc = null;
  
  if(dhtml.DOM && this.lastChild) {
    lc = this.lastChild;
    if(!noD) {
      while(lc && lc.nodeType == 3)
        lc = lc.previousSibling;
      
      if(lc) 
        return dhtml.normalize(lc, this.document);
    }
    
    return lc;
  } else if(dhtml.NN4 && this.layers.length)
    return dhtml.normalize(this.layers[this.layers.length-1], this.document);
  else
    return null;
}

function elemObject_GetPrev(noD) {
  var ps = null;
  
  if(dhtml.DOM && this.lastChild) {
    ps = this.previousSibling;
    if(!noD) {
      while(ps && ps.nodeType == 3)
        ps = ps.previousSibling;
       
      if(ps) 
        return dhtml.normalize(ps, this.document);
    }
    return ps;
  } else if(dhtml.NN4 && this.layers.length)
    return null;
  else
    return null;
}

function elemObject_GetNext(noD) {
  var ns = null;
  if(dhtml.DOM && this.lastChild) {
    ns = this.nextSibling;
    if(!noD) {
      while(ns && ns.nodeType == 3)
        ns = ns.nextSibling;
       
      if(ns) 
        return dhtml.normalize(ns, this.document);
    }
    return ns;
  } else if(dhtml.NN4 && this.layers.length)
    return null;
  else
    return null;
}

function elemObject_GetOffsetParent() {
  if(dhtml.DOM)
    return dhtml.normalize(this.offsetParent, this.document);
  else if(dhtml.NN4)
    return dhtml.normalize(this.parentLayer, this.document);
  else
    return null;
}

function elemObject_GetElement(id, cascade) {
  var elem = null;
  var i = 0;

  if(dhtml.NN4) {
    elem = this.layers[id];
    if(elem)
      dhtml.normalize(elem, this);
    else if(cascade || cascade != false || cascade != 0) {
      for(i = 0; i < this.layers.length && !elem; i++)
        elem = dhtml.normDoc(this.layers[i].document).getElement(id, true);
    }
  } else if(dhtml.DOM) {
    elem = this.getElementById(id);
    if(elem)
      elem = dhtml.normalize(elem, this.document);
  }

  return elem;
}

function elemObject_GetElementsByTag(tag) {
  var nodes = null;
  var i = 0;
  
  if(dhtml.NN4) {
  } else if(dhtml.DOM) {
    nodes = this.getElementsByTagName(tag.toUpperCase());
    for(i = 0; i < nodes.length; i++)
      nodes[i] = dhmtl.normalize(nodes[i], this.document);
  }
  
  return nodes;
}

function elemObject_ReplaceElem(child, elem) {
  dhtml.normalize(elem, this.document);

  if(elem._dhtmlFrag) {
    this.insertElem(child, elem);
  
    if(!child._dhtmlFrag)
      return this.removeChild(child);
      
    return child;
  } else
    return this.replaceChild(child, elem);
}

// Inserts before not after!
function elemObject_InsertElem(sib, elem) {
  var child = null;
  
  dhtml.normalize(elem, this.document);

  if(elem._dhtmlFrag) {
    child = elem.lastChild;
    while(elem.lastChild)
      this.insertBefore(elem.lastChild, sib);

    return child;
  } else
    return this.insertBefore(elem, sib);
    
}

function elemObject_AppendElem(elem) {
  var child = null;

  dhtml.normalize(elem, this.document);

  if(elem._dhtmlFrag) {
    child = elem.lastChild;
    while(elem.firstChild)
      this.appendChild(elem.firstChild);

    return child;
  } else
    return this.appendChild(elem);
}

function elemObject_GetAttribute(name) {
  var i = 0;

  if(this.attributes) {
    for(i = 0; i < this.attributes.length; i++)
      if(this.attributes[i].nodeName == name)
        return this.attributes[i].nodeValue;
  } else if(this[name])
    return this[name];
  else
    return null;
}

function elemObject_SetAttribute(name, value) {
  var i = 0;
  if(this.attributes) {
    for(i = 0; i < this.attributes.length; i++)
      if(this.attributes[i].nodeName == name)
        this.attributes[i].nodeValue = value;
  } else
    this[name] = value;
}

function elemObject_GetClass() {
  if(this.className)
    return this.className;
  else
    return this.getAttribute("class");
}

function elemObject_SetClass(value) {
  if(this.className)
    this.className = value;
  else
    this.setAttribute("class", value);
}

function elemObject_GetEvent(name) {
  if(dhtml.IE || dhtml.mozilla)
    return this["on" + name.toLowerCase()];
  else if(dhtml.NN4 && this._layer)
    return this["on" + name.toLowerCase()];
  else
    return this["on" + name.toLowerCase()];
}

function elemObject_SetEvent(name, func) {
  this.clearEvent(name);

  if(func) {
    if(name.toLowerCase() == "lock" || name.toLowerCase() == "unlock") {
      this["on" + name.toLowerCase()] = func;
      return;
    }
    
    if(dhtml.IE)
      this["on" + name.toLowerCase()] = func;
    else if(dhtml.mozilla)
      this.addEventListener(name.toLowerCase(), func, true);
    else if(dhtml.NN4 && eval("Event." + name.toUpperCase())) {
      if(this._layer) {
        eval("this.captureEvents(Event." + name.toUpperCase() + ");");
      }
      this["on" + name.toLowerCase()] = func;
    }
  }
}

function elemObject_ClearEvent(name) {
  if(name.toLowerCase() == "lock" || name.toLowerCase() == "unlock") {
    this["on" + name.toLowerCase()] = null;
    return;
  }
  
  if(dhtml.IE)
    this["on" + name.toLowerCase()] = null;
  else if(dhtml.mozilla) {
    try {
      this.removeEventListener(name.toLowerCase());
    } catch(e) {
    }
  } else if(dhtml.NN4) {
    eval("this.document.releaseEvents(Event." + name.toUpperCase() + ");");
    this["on" + name.toLowerCase()] = null;
  }
}

function elemObject_AddEvent(name, func) {
  var ary = this["_" + name.toLowerCase() + "_lst"];
  var evt = null;

  if(!ary) {
    evt = this.getEvent(name);
    this["_" + name.toLowerCase() + "_lst"] = ary = new Array();
    
    if(evt)
      ary[ary.length] = evt;
    
    this.setEvent(name, new Function("e", "return this.throwEvent('" + name + "', e);"));
  }

  if(ary)
    ary[ary.length] = func;
}

function elemObject_ThrowEvent(name, e) {
  var ary = this["_" + name.toLowerCase() + "_lst"];
  var i = 0, res = true;

  if(!ary) {
    this._evt = this.getEvent(name);
    if(this._evt)
      return this._evt(e);
    else
      return true;
  }
  
  for(i = 0; i < ary.length; i++) {
    this._evt = ary[i];
    if(this._evt)
      res = (res == "undefined" || res) && this._evt(e);
  }
    
  return res;
}

function elemObject_RemoveEvent(name, func) {
  var ary = this["_" + name.toLowerCase() + "_lst"];
  var evt = null;
  var i = 0, j = 0;

  if(!ary) {
    evt = this.getEvent(name);
    if(evt == func)
      this.clearEvent(name);
    return;
  }
  
  for(var i = 0; i < ary.length; i++)
    if(ary[i] == func)
      for(j = i; j < ary.length-1; j++)
        ary[j] = ary[j+1];
}

function elemObject_isLocked() {
  return (this._locked ? this._locked : 0);
}

function elemObject_Lock() {
  if(!this._locked)
    this._locked = 0;

  logerr('elemObject_Lock(): ' + (this._locked+1), this);
    
  if(this._locked==1)
    this.throwEvent("lock", null);
        
  this._locked++;
}

function elemObject_Unlock() {
  if(this._locked) {
    this._locked--;
    
    if(!this._locked)
      this.document.parentWindow.setTimeout("document.getElement('"+this.id+"').throwEvent('unlock', null);", (this._lockTimeout ? this._lockTimeout : 100));
  }

  logerr('elemObject_Unlock(): ' + this._locked, this);
        
}

function elemObject_ExecFunc(func) {
  var cmd = "";
  var i = 0;
  
  this._exec = func;
  if(this._exec) {
    for(i = 1; i < arguments.length; i++)
      cmd += ", arguments["+i+"]";
    cmd = "this._exec(" + cmd.substr(1) + ");"; 
    eval(cmd);
  }
  this._exec = null;
}

//======================================================================================
//                                Initialization code
//======================================================================================
if(window.dhtml) {
  dhtml.addNormDoc(bdhtml_NormDoc);
  dhtml.addNorm(bdhtml_Norm);
  dhtml._quick = bdhtml_Norm;
//  dhtml._makeContainer = dhtmlObject_Container;
}

