var Yoffset = 0;
var Xoffset = 0;
var Cbo = new CallBackObject();
Cbo.OnComplete = Cbo_Complete;
Cbo.OnError    = Cbo_Error;

function startCallback(link, method, data, ev, x, y, width, bustcache) {
  if(bustcache) link = link + '?event.time=' + new Date().getTime();		// to be used only with GET requests
  if(document.getElementById('hiddenWindow').style.visibility == 'visible') document.getElementById('hiddenWindow').style.visibility = 'hidden';
  if(width) document.getElementById('hiddenWindow').style.width = width+'px';
  var mousePos = mouseCoords(ev);
  if(x) Xoffset = mousePos.x + x;
  if(y) Yoffset = mousePos.y + y;
  var theMethod = method;
  var thePage = link;
  var theData = data;

  Cbo.DoCallBack(theMethod, thePage, theData);
  return false;
}

function Cbo_Complete(responseText, responseXML) {
  hiddenobject = document.getElementById('hiddenWindow');
  showHelp(hiddenobject);
  responseText += '<!--[if lte IE 6.5]><iframe><\/iframe><![endif]-->';
  hiddenobject.innerHTML = responseText;
}

function Cbo_Error(status, statusText, responseText) {
//  alert(responseText);
}

function showHelp(hiddenobject) {
  hiddenobject.style.visibility='visible';
  hiddenobject.style.left	=	Xoffset;
  hiddenobject.style.top	=	Yoffset;
}

function hideKey(obj) {
	if(!obj) obj = document.getElementById('hiddenWindow');
  obj.style.visibility = 'hidden';
}

function hideMeRtNav(id) {
  objItem = document.getElementById(id);
  if(objItem.style.display == "none") {
    objItem.style.display='';
  } else {
     objItem.style.display='none';
  }
  return false;
}


if(typeof document.getElementsByTagName("TABLE")[0].moveRow == "undefined") {
  Node.prototype.moveRow = function() {
    if(this && this.nodeName.match(/^(table|t(body|head|foot))$/i)) {
      try {
        one = parseInt((!arguments[0] && arguments[0] != 0?-1:arguments[0]), 10);
        two = parseInt((!arguments[1] && arguments[1] != 0?-1:arguments[1]), 10);

// Makes sure the row exists and then makes sure the insertable row isn't greater then the length
        if(!this.rows[one] || two > this.rows.length) {
          var err = new Error();
          throw err;
        }

// This is just so that it gets put in the right place.
        if(two > one)
          two = two+1;
        else if(one > two)
          one = one+1;

        newRow = this.insertRow(two);
        newRow.id = 'insertRow';
        newRow.innerHTML = this.rows[one].innerHTML;
        this.deleteRow(one);
      } catch(e) {
      }
    }
  }
}

// Fixing ANY Version information in form drop-downs or anchor tags  -Dan
function changePageVersions(t) {
	aCol = document.getElementsByTagName("A");
	sCol = document.getElementsByTagName("SELECT");
	var aColLength = aCol.length;
	var sColLength = sCol.length;
	var i = 0;
	
	for(i=0;i<aColLength;i++)
		aCol[i].href = aCol[i].href.replace(/t=[^&#]+/, 't='+t);

	for(i=0;i<sColLength;i++) {
		var sColOptLength = sCol[i].options.length;
		var j = 0;
		for(j=0;j<sColOptLength;j++)
			if(sCol[i].id != 'noChng' && sCol[i].options[j].value == t) sCol[i].selectedIndex = j;
	}

}