function openChangeStatus(u,W,H,X,Y,n,b,x,m,r)
{
  var cU  ='/pics/formdesigner/close-up.gif'
  var cO  ='/pics/formdesigner/close-ovr.gif'
  var cL  ='/pics/clear.gif'
  var mU  ='/pics/clear.gif'
  var mO  ='/pics/clear.gif'
  var xU  ='/pics/clear.gif'
  var xO  ='/pics/clear.gif'
  var rU  ='/pics/clear.gif'
  var rO  ='/pics/clear.gif'
  var tH  ='<b style="color:#fff;font-family:verdana;font-size:11px;">Change Status</b>'
  var tW  =''
  var wB  ='#888888'
  var wBs ='#888888'
  var wBG ='#888888'
  var wBGs='#999999'
  var wNS ='toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=0'
  var fSO ='scrolling=yes noresize'
  var brd =b||0;
  var max =x||false;
  var min =m||false;
  var res =r||false;
  var tsz =20;
  chromeless(u,n,W,H,X,Y,cU,cO,cL,mU,mO,xU,xO,rU,rO,tH,tW,wB,wBs,wBG,wBGs,wNS,fSO,brd,max,min,res,tsz);
}

function openMonitoringPost(u,W,H,X,Y,n,b,x,m,r)
{
  var cU  ='/pics/formdesigner/close-up.gif'
  var cO  ='/pics/formdesigner/close-ovr.gif'
  var cL  ='/pics/clear.gif'
  var mU  ='/pics/clear.gif'
  var mO  ='/pics/clear.gif'
  var xU  ='/pics/clear.gif'
  var xO  ='/pics/clear.gif'
  var rU  ='/pics/clear.gif'
  var rO  ='/pics/clear.gif'
  var tH  ='<b style="color:#fff;font-family:verdana;font-size:11px;">Monitoring Post</b>'
  var tW  =''
  var wB  ='#888888'
  var wBs ='#888888'
  var wBG ='#888888'
  var wBGs='#999999'
  var wNS ='toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=0'
  var fSO ='scrolling=yes noresize'
  var brd =b||0;
  var max =x||false;
  var min =m||false;
  var res =r||false;
  var tsz =20;
  chromeless(u,n,W,H,X,Y,cU,cO,cL,mU,mO,xU,xO,rU,rO,tH,tW,wB,wBs,wBG,wBGs,wNS,fSO,brd,max,min,res,tsz);
}


   
function selectExt(tag)
{
  this.tag = tag;
  this.executeJS = function()
  {
    eval(this.tag[this.tag.selectedIndex].value);
  }
  this.loadURL = function()
  {
    window.location.replace(this.tag[this.tag.selectedIndex].value);
  }
}


function tableExt(tag)
{
  this.tag = tag;
  this.swzDisplay = swzDisplay;
}

function tdExt(tag)
{
  this.tag = tag;
  /* DOM super hover - unrolled */
  if (this.tag.className && this.tag.className.match('dyn'))
  {
    this.tag.onmouseover = function (evt) { hoverIn(this.parentNode) }
    this.tag.onmouseout = function (evt) { hoverOut(this.parentNode) }
    
    /* app specifig extension: */
    if (this.tag.className == 'dynForm')
      this.tag.onmousedown = function (evt)
      {
        set(this.parentNode);
        if (document.lastSet == this.parentNode)
        {
          editField.setVisibility(0);
          unset(document.lastSet);
          document.lastSet = null;
        }
        else
        {      
          if (document.lastSet)
            unset(document.lastSet);
          document.lastSet = this.parentNode;
        
          setupEventObject(evt);
          document.forms['editField']['field_id'].value = this.parentNode.id;

          var scY = document.body.scrollTop | window.scrollY;
          
          editField.setPosition(window.event.x-30,scY + window.event.y-10);
          editField.setVisibility(1);
        }
      }
      
  }
}

function set(obj)
{
  if (obj.className && obj.className.match('dyn') && !obj.classNameUnToggled)
  {

    if (obj.classNameOrig)
    {
      obj.classNameUnToggled = obj.classNameOrig;
      obj.className = obj.classNameOrig + '_toggle';
      obj.classNameOrig = null;
    }
    else
    {
      obj.classNameUnToggled = obj.className;
      obj.className = obj.className + '_toggle';
    }
  } 
  if (obj.childNodes)
    for (var i=0; i < obj.childNodes.length; i++)
      set(obj.childNodes[i]);
}

function unset(obj)
{
  if (obj.className && obj.className.match('dyn') && obj.classNameUnToggled)
  {
    obj.className = obj.classNameUnToggled;
    obj.classNameUnToggled = null;
    obj.classNameOrig = null;
    document.lastToggled = null;
  }
  if (obj.childNodes)
    for (var i=0; i < obj.childNodes.length; i++)
      unset(obj.childNodes[i]);
}

function hoverIn(obj)
{
  if (obj.className && obj.className.match('dyn') && !obj.classNameOrig)
  {
          obj.classNameOrig = obj.className; 
          obj.className = obj.className + "_hover";
  }
  if (obj.childNodes)
    for (var i=0; i < obj.childNodes.length; i++)
      hoverIn(obj.childNodes[i]);
}

function hoverOut(obj)
{
  if (obj.className && obj.classNameOrig)
  {
      obj.className = obj.classNameOrig;
      obj.classNameOrig = null;
  }
  if (obj.childNodes)
    for (var i=0; i < obj.childNodes.length; i++)
      hoverOut(obj.childNodes[i]);
}

function swzDisplay(id)
{
  if (id)
    var obj = document.getElementById(id);
  else if (this.tag)
    var obj = this.tag;
    
  if (obj.style.display == "block")
    obj.style.display = "none";
  else
    obj.style.display = "block";
}

function setDisplay(b,id)
{
  if (id)
    var obj = document.getElementById(id);
  else if (this.tag)
    var obj = this.tag;

  if (b)
    obj.style.display = "block";
  else
    obj.style.display = "none";
}

function getDisplay(id)
{
  if (id)
    var obj = document.getElementById(id);
  else if (this.tag)
    var obj = this.tag;
  
  if (obj.style.display == "none")
    return 0;
  else
    return 1;
}
var toFlush = new Array();

function extendNodes(parent)
{
  if (parent && parent.childNodes)
  {
    r = new RegExp("[^a-z]","ig");
    for(var i = 0; i < parent.childNodes.length; i++)
    {
      child = parent.childNodes[i];
      if (!r.test(child.nodeName)) {
        if (obj = (eval("window." + child.nodeName.toLowerCase() + "Ext"))) {
          toFlush[toFlush.length] = child;  //talleta pino ie:n roskanker��j�lle
          child.ext = new obj(child);
	    }
      }
      extendNodes(child);
    }
  }
}



var killed = 0;
function destroyExt()
{
    for(var i = 0; i < toFlush.length; i++)
    {
      //tuhoa event-funktiot
      if (toFlush[i].onmouseover)
        toFlush[i].onmouseover = null;
      if (toFlush[i].onmouseout)
        toFlush[i].onmouseout = null;
      if (toFlush[i].onmousedown)
        toFlush[i].onmousedown = null;
      if (toFlush[i].onmouseup)
        toFlush[i].onmouseup = null;
              
      // tuhoa ext
      toFlush[i].ext = null;
      killed ++;
    }
}

window.onunload = function ()
{
  destroyExt();       //auttaa vapauttamaan noin 2/3 IE:n hukkaamasta muistista
}

window.onload = function ()
{
  extendNodes(document.body);
  if (document.layers)
    extendNS4(document);
}

function extendNS4(parent)
{
  alert(parent.layers.length);
  alert(parent.links.length)
  alert(parent.images.length)
}