/*
//   Copyright© 2007 SolarWinds.Net. All rights reserved. ipMonitor® is a trademark or
//   registered trademark of SolarWinds.Net in the United States of America, Canada and
//   other countries.
*/

var winpos = -1;
var hoveritem = null;
var hoverlast = null;

var isMozilla = !(document.all);
if(isMozilla)
{
	HTMLElement.prototype.__defineGetter__("innerText", function () {
		var r = this.ownerDocument.createRange();
		r.selectNodeContents(this);
		return r.toString();
	});
}

function revive_winpos()
{
  if( winpos >= 0 ) window.scrollTo( 0, winpos );
}

function chk_insertoffs()
{
  var item = document.forms[0];
  if( item == null ) return;

  var a = new Array();

  var col = item.elements;
  var i   = 0;
  var imax = col.length;
  var cell;
  var newcell;

  for( ; i < imax ; ++i )
  {
    cell = col.item(i);

    if( (cell.tagName != "INPUT") ||
        (cell.type != "checkbox") ||
        (cell.checked) ||
        (cell.name != "chk") ) continue;
        
    a[a.length] = cell;
  }

  i = 0;
  imax = a.length;
  for( ; i < imax ; ++i )
  {
    cell = a[i];

    newcell = document.createElement("INPUT");
    newcell.type  = "hidden";
    newcell.name  = cell.name;
    newcell.value = cell.value;
    item.appendChild( newcell );
    
    cell.name = "";
  }
}

function form_finalize()
{
  var item = document.forms[0];
  if( item == null ) return;

  var newcell;
  newcell = document.createElement("INPUT");
  newcell.type  = "hidden";
  newcell.name  = "finalize";
  newcell.value = "true";
  item.appendChild( newcell );
  
  window.setTimeout( "dopb();", 20 );
}

function form_uncheckall()
{
  var item = document.forms[0];
  if( item == null ) return;

  var a = new Array();

  var col = item.elements;
  var i   = 0;
  var imax = col.length;
  var cell;
  var newcell;

  for( ; i < imax ; ++i )
  {
    cell = col.item(i);

    if( cell.tagName != "INPUT" ) continue;
    
    if( cell.type == "hidden" )
    {
      if( cell.name == "chkvs" ) cell.name = "";
      continue;
    }

    if( (cell.type != "checkbox") || (cell.name != "chk") ) continue;

    cell.name = "";
    cell.value = "";
  }

  window.setTimeout( "dopb();", 20 );
}

function form_collapseall()
{
  var item = document.forms[0];
  if( item == null ) return;

  item.opens.name = "";
  window.setTimeout( "dopb();", 20 );
}


function DoChange(item)
{
	if( item.value.match( /^([^|]+)([|]|$)/ ) )
	{
	  item.value = RegExp.$1 + "|" + ( item.checked ? "on" : "off" );

	  if( item.name == "" )
	  {
	    item.name = "chk";
	  }
	}
}

function dopb()
{
  chk_insertoffs();
  pushWinpos();
  document.forms[0].submit();
}

function pushWinpos()
{
  var item = document.forms[0];
  if( item == null ) return;

  var y = (window.pageYOffset) ? window.pageYOffset : document.body.scrollTop;

  var newcell;
  newcell = document.createElement("INPUT");
  newcell.type  = "hidden";
  newcell.name  = "winpos";
  newcell.value = "" + y;
  item.appendChild( newcell );
}

function TogO(item)
{
	if( (item.value == "1") && (item.checked) )
	{
	  if( confirm(
	    "Are you sure you want to include All MIBs in your personalized database?\r\n" +
	    "\r\n" + 
	    "After adding our entire collection:\r\n" +
	    "- ipMonitor will consume approximately 90MB of additional memory\r\n" +
	    "- ipMonitor's SNMP Tree will become large and less efficient to navigate\r\n" ) )
    {
      
    }
    else
    {
      return false;
    }
	}
	
	DoChange(item);
	window.setTimeout( "dopb();", 20 );
}

function TogC(item)
{
	DoChange(item);
}

function TogMib(item)
{
	DoChange(item);
}

function BO(id)
{
  var item = document.forms[0];
  if( item == null ) return;

  var newcell;
  newcell = document.createElement("INPUT");
  newcell.type  = "hidden";
  newcell.name  = "closes";
  newcell.value = id;
  item.appendChild( newcell );

  window.setTimeout( "dopb();", 20 );
	return false;
}

function BC(id)
{
  var item = document.forms[0];
  if( item == null ) return;

  var newcell;
  newcell = document.createElement("INPUT");
  newcell.type  = "hidden";
  newcell.name  = "opens";
  newcell.value = id;
  item.appendChild( newcell );

  window.setTimeout( "dopb();", 20 );
	return false;
}

function getpos(item)
{
  var oleft = 0;
  var otop = 0;

  while( item )
  {
    oleft += item.offsetLeft;
    otop  += item.offsetTop;
    item = item.offsetParent;
  }

  if( navigator.userAgent.indexOf("Mac") != -1 &&
    typeof document.body.leftMargin != "undefined" )
  {
    oleft += document.body.leftMargin;
    otop  += document.body.topMargin;
  }

  return { left: oleft, top: otop };
}

function mi(item)
{
  var hoverthis = item.innerText.replace( /^[^a-zA-Z0-9_-]+|[ ]*[(][a-zA-Z0-9 ]+[)][ ]*$/g, "" );

  if( hoverthis != hoverlast )
  {
    hoverlast = hoverthis;
  }
  else
  {
    if( hoveritem != null )
    {
      hoveritem.style.display = "block";
      return;
    }
  }

  if( hoveritem != null )
  {
    hoveritem.style.display = "none";
  }
  
  hoveritem = document.getElementById(hoverlast);

  if( hoveritem != null )
  {
    var pos = getpos(item);
    pos.top += 32;
    
    var wantpos = pos.top + "px";

    if( typeof hoveritem.placed == "undefined" )
    {
      hoveritem.style.top = wantpos;
      hoveritem.placed = wantpos;
    }
    else
    {
      if( hoveritem.style.top != wantpos )
      {
        hoveritem.style.top = wantpos;
      }
    }

    hoveritem.style.display = "block";
  }
}

function mo(item)
{
  if( hoveritem != null )
  {
    hoveritem.style.display = "none";
    hoveritem = null;
  }
}
