var args = null;

//************************************************************
//* Function: GetArgs() Create an args object to hold all debug and command line query parameters
//************************************************************	
function GetArgs()
{
   	var args = new Object();
   	var query = location.search.substring(1);  		// Get query string.
   	var pairs = query.split(",");              		// Break at comma.
   	for(var i = 0; i < pairs.length; i++)
   	{
		var pos = pairs[i].indexOf('=');       		// Look for "name=value".
		if (pos == -1) continue;               		// If not found, skip.
		var argname = pairs[i].substring(0,pos);  	// Extract the name.
		var value = pairs[i].substring(pos+1); 		// Extract the value.  tjw.. with no second parm, must go to end of string.  Makes sense.
		if (value == "true") value = 1;
		if (value == "false") value = 0;
		args[argname] = unescape(value);          	// Store as a property.
    }
   	args[args] = query;
   	return args;                               		// Return the object.
	}

function PrintShow()
{	
    var kePopUpList = document.getElementsByTagName("DIV");
    
/*    
    for (var i = 0; i < kePopUpList.length; i++)
    {  	var thisDiv = kePopUpList[i];
    	if (thisDiv.className == "window")
    	{	
    		thisDiv.className = "OpenWindow";
    		thisDiv.style.left =  0;
    	//	thisDiv.style.width = "36em";
		thisDiv.style.width = "auto";    		
    		thisDiv.style.top	= 0;
            winList[thisDiv.id].open;
    		thisDiv.style.marginTop	= "1ex";
    		thisDiv.style.zIndex = ++winCtrl.maxzIndex
    //		thisDiv.style.visibility = "show";
    	}
    	if (thisDiv.className == "clientArea")
    	{	thisDiv.className = "OpenclientArea";		
    	 //  	thisDiv.style.width	= "36em"
    	   	thisDiv.style.width = "auto";
    	   	thisDiv.style.visibility = "visible";
    	  // 	thisDiv.style.zIndex	= "300";
    	   thisDiv.style.height	= "auto";
		}
     	if (thisDiv.className == "titleBar")
    	{	thisDiv.className = "OpentitleBar";		
    	  	 thisDiv.style.width	= "auto"
    	     thisDiv.style.height	= "auto";
		}
//	for (i = 0; i < winList.length; i++)
// 	{ winList[i].makeActive
// 	}


    }

    var keLinkList = document.getElementsByTagName("A");
    for (var i = 0; i < keLinkList.length; i++)
    {
     	var thisLink	= keLinkList[i];
     	thisLink.onclick	= "return false;";
     	thisLink.href	= "javascript:void false";
    	if (thisLink.id == "aPrint")
    	{
    		thisLink.innerText	= "Back to Online Version";
    		
    		thisLink.href		= "javascript: location.reload(true);";
    		thisLink.onclick 	= "return true";
    	}
  
    }	
*/
    for (var i = 0; i < kePopUpList.length; i++)
    {  	var thisDiv = kePopUpList[i];
    	if (thisDiv.className == "window")
    	{	thisDiv.className = "OpenWindow";
    //		thisDiv.style.left =  0;
    		thisDiv.style.width = "";
    		thisDiv.style.top	= 0;
    		thisDiv.style.marginTop	= "1em";
    	}
    	if (thisDiv.className == "clientArea")
    	{	thisDiv.style.className = "OpenclientArea";	
    	   	thisDiv.style.width	= ""
    	   	thisDiv.style.height	= "";
		}
    }
  /*  var keLinkList = document.getElementsByTagName("A");
    for (var i = 0; i < keLinkList.length; i++)
    {
     	var thisLink	= keLinkList[i];
     	thisLink.onclick	= "return false;";
     	thisLink.href	= "javascript:void false";
    	if (thisLink.id == "aPrint")
    	{	thisLink.innerText	= "Back to Online Version";
    		thisLink.href		= "javascript: location.reload(true);";
    		thisLink.onclick 	= "return true";
   		}
   	}*/	
 /*   
    for (var i = 0; i < kePopUpList.length; i++)
    {  	var thisDiv = kePopUpList[i];
    	if (thisDiv.className == "window")
    	{	thisDiv.className = "OpenWindow";
    //		thisDiv.style.left =  0;
    		thisDiv.style.width = "40em";
    		thisDiv.style.top	= 0;
    		thisDiv.style.marginTop	= "1em";
    	}
    	if (thisDiv.className == "clientArea")
    	{		
    	   thisDiv.style.width	= "auto"
    	   thisDiv.style.height	= "auto";
		}
    }
    var keLinkList = document.getElementsByTagName("A");
    for (var i = 0; i < keLinkList.length; i++)
    {
     	var thisLink	= keLinkList[i];
     	thisLink.onclick	= "return false;";
     	thisLink.href	= "javascript:void false";
    	if (thisLink.id == "aPrint")
    	{
    		thisLink.innerText	= "Back to Online Version";
    		
    		thisLink.href		= "javascript: location.reload(true);";
    		thisLink.onclick 	= "return true";
    	}
    }	
*/
}

function keNext()
{   var linkname = "";
//	var keItemNumber = new Number(args.itemnumber)
    keItemNumber = top.code.MTMTrackedItem;
	if (!keItemNumber) keItemNumber = 0;
    keItemNumber += 1;
    if (keItemNumber != top.code.MTMNumber)			// checks if last one
    {	linkname = "sub" + keItemNumber;	
    	debug ("clicked item number is: " + top.code.MTMClickedItem + " tracked item is: " + top.code.MTMTrackedItem + " MTMNumber is: " + top.code.MTMNumber);
	top.code.keExpandClick(top.code.menu, keItemNumber);
	top.code.MTMTrack = true;
    	top.code.MTMDisplayMenu();
	var keTempLinkname = "suba" + keItemNumber;
/*	var keGetLink =  keFindLink();
	debug ("keGetLink is: "+ keGetLink + " keGetLink name is: " + keGetLink.name);
	if (keGetLink)
		linkname = keGetLink.name;
*/
	if (top.code.MTMUA.browserType == "NN")
	{	keLinkList = top.code.MTMUA.document.anchors;
	}
	else keLinkList = top.code.MTMUA.document.getElementsByTagName("A"); 		
//	debug ("keLinkList.length is: " + keLinkList.length);
  	for (i = 0; i < keLinkList.length; i++)
    	{  	var thisLink = keLinkList[i];
    		if (thisLink.name == keTempLinkname)
    		linkname = keTempLinkname;
    	}                                                            // tjw end of new
	
  	for (i = 0; i < keLinkList.length; i++)
    	{  	var thisLink = keLinkList[i];
    		if (thisLink.name == linkname)
    		thisLink.click();
//    		top.code.MTMTrack = true;
//	    	top.code.MTMDisplayMenu();

	}                                                            // tjw end of new

//	top.code.MTMUA.document.all(linkname).click(); 
	}
	else
		return;
}

function keFindLink(linkName)
{
	var linkFound = false;
	if (top.code.MTMUA.browserType == "NN")
	{	keLinkList = top.code.MTMUA.document.anchors;
	}
	else keLinkList = top.code.MTMUA.document.getElementsByTagName("A"); 		//tjw this is new for turning off homelink track class
//	alert ("keLinkList.length is: " + keLinkList.length);
  	for (i = 0; i < keLinkList.length; i++)
    	{  	var thisLink = keLinkList[i];
    		if (thisLink.name == linkName)
    			linkFound = thisLink;
    	}                                                            // tjw end of new

	return(linkFound);
}

function kePrev()
{  
	var linkname = "";
//	var keItemNumber = new Number(args.itemnumber)
    if (top.code.MTMTrackedItem)
    {	keItemNumber = top.code.MTMTrackedItem;
   	keItemNumber -= 1;	
	if (keItemNumber == 0) 
		linkname = "keHomeLink";
	
	else linkname = "sub" + keItemNumber;
	top.code.keExpandClick(top.code.menu, keItemNumber);
	top.code.MTMTrack = true;
	top.code.MTMDisplayMenu();
	var keTempLinkname = "suba" + keItemNumber;
	if (top.code.MTMUA.browserType == "NN")
	{	keLinkList = top.code.MTMUA.document.anchors;
	}
	else keLinkList = top.code.MTMUA.document.getElementsByTagName("A"); 	
//		debug ("keLinkList.length is: " + keLinkList.length);
  	for (i = 0; i < keLinkList.length; i++)
    	{  	var thisLink = keLinkList[i];
    		if (thisLink.name == keTempLinkname)
    		linkname = keTempLinkname;
    	}                                                            // tjw end of new
	
  	for (i = 0; i < keLinkList.length; i++)
    	{  	var thisLink = keLinkList[i];
    		if (thisLink.name == linkname)
    		thisLink.click();
    	}                                                            // tjw end of new
/*
	if  (top.code.MTMUA.document.all(keTempLinkname))
		linkname = keTempLinkname;
	top.code.MTMUA.document.all(linkname).click(); 
*/
	}
	else
		return;    // this nothing tracked... must have been home item, or some error
}
function keHome()
{  
	if (top.code.MTMUA.browserType == "NN")
	{	keLinkList = top.code.MTMUA.document.anchors;
	}
	else keLinkList = top.code.MTMUA.document.getElementsByTagName("A"); 		//tjw this is new for turning off homelink track class
	debug ("keLinkList.length is: " + keLinkList.length);
  	for (i = 0; i < keLinkList.length; i++)
    	{  	var thisLink = keLinkList[i];
    		if (thisLink.name == "keHomeLink")
    		thisLink.click();
    	}                                                            // tjw end of new
	
//	top.code.MTMUA.document.all("keHomeLink").click();
}

function keReload()
{
 //	alert ("got here");
 	location.reload(true);
}

//*****************************************************************************
// Do not remove this notice.
//
// Copyright 2001 by Mike Hall.
// See http://www.brainjar.com for terms of use.
//*****************************************************************************

// Determine browser and version.

function Browser() {

// alert ("determining browser"); 
 var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isNS    = false;  // Netscape
  this.isMac   = false;	 // tjw find if mac	

 this.version = null;

  ua = navigator.userAgent;
 // alert ("userAgent is: " + navigator.userAgent);
  if (navigator.userAgent.toLowerCase().indexOf("mac") != -1)
 	{this.isMac = true;}



//	alert ("user agent is: " + ua);
  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
 

}

var browser = new Browser();

//=============================================================================
// Window Object
//=============================================================================

function Window(el) {

  var i, mapList, mapName;

  // Get window components.

  this.scrollHeight		= 0;
  this.frame           = el;
  this.titleBar        = winFindByClassName(el, "titleBar");
  this.titleBarText    = winFindByClassName(el, "titleBarText");
  this.titleBarButtons = winFindByClassName(el, "titleBarButtons");
  this.clientArea      = winFindByClassName(el, "clientArea");

  // Find matching button image map.

  mapName = this.titleBarButtons.useMap.substr(1);
  mapList = document.getElementsByTagName("MAP");
  for (i = 0; i < mapList.length; i++)
    if (mapList[i].name == mapName)
      this.titleBarMap = mapList[i];

  // Save colors.

  this.activeFrameBackgroundColor  = this.frame.style.backgroundColor;
  this.activeFrameBorderColor      = this.frame.style.borderColor;
  this.activeTitleBarColor         = this.titleBar.style.backgroundColor;
  this.activeTitleTextColor        = this.titleBar.style.color;
  this.activeClientAreaBorderColor = this.clientArea.style.borderColor;
  if (browser.isIE)
    this.activeClientAreaScrollbarColor = this.clientArea.style.scrollbarBaseColor;
  
// alert ("browser is Mac? " + browser.isMac);
//if (browser.isMac)
//	this.frame.style.width = 280;

  // Save images.

  this.activeButtonsImage   = this.titleBarButtons.src;
  this.inactiveButtonsImage = this.titleBarButtons.lowsrc;

  // Set flags.

  this.isOpen      = false;
  this.isMinimized = false;

  // Set methods.

  this.open       = winOpen;
  this.close      = winClose;
  this.minimize   = winMinimize;
  this.restore    = winRestore;
  this.makeActive = winMakeActive;

  // Set up event handling.

  this.frame.parentWindow = this;
  this.frame.onmousemove  = winResizeCursorSet;
  this.frame.onmouseout   = winResizeCursorRestore;
  this.frame.onmousedown  = winResizeDragStart;

  this.titleBar.parentWindow = this;
  this.titleBar.onmousedown  = winMoveDragStart;

  this.clientArea.parentWindow = this;
  this.clientArea.onclick      = winClientAreaClick;

  for (i = 0; i < this.titleBarMap.childNodes.length; i++)
    if (this.titleBarMap.childNodes[i].tagName == "AREA")
      this.titleBarMap.childNodes[i].parentWindow = this;

  // Calculate the minimum width and height values for resizing
  // and fix any initial display problems.

  var initLt, initWd, w, dw;

  // Save the inital frame width and position, then reposition
  // the window.

  initLt = this.frame.style.left;
  initWd = parseInt(this.frame.style.width);
  this.frame.style.left = -this.titleBarText.offsetWidth + "px";

  // For IE, start calculating the value to use when setting
  // the client area width based on the frame width.

  if (browser.isIE) {
    this.titleBarText.style.display = "none";
    w = this.clientArea.offsetWidth;
    this.widthDiff = this.frame.offsetWidth - w;
    this.clientArea.style.width = w + "px";
    dw = this.clientArea.offsetWidth - w;
    w -= dw;     
    this.widthDiff += dw;
    this.titleBarText.style.display = "";
  }

  // Find the difference between the frame's style and offset
  // widths. For IE, adjust the client area/frame width
  // difference accordingly.

  w = this.frame.offsetWidth;
  this.frame.style.width = w + "px";
  dw = this.frame.offsetWidth - w;
  w -= dw;     
  this.frame.style.width = w + "px";
  if (browser.isIE)
    this.widthDiff -= dw;

  // Find the minimum width for resize.

  this.isOpen = true;  // Flag as open so minimize call will work.
  this.minimize();
  this.minimumWidth = this.frame.offsetWidth - dw;

  // Find the frame width at which or below the title bar text will
  // need to be clipped.

  this.titleBarText.style.width = "";
  this.clipTextMinimumWidth = this.frame.offsetWidth - dw;

  // Set the minimum height.

  this.minimumHeight = 1;

  // Restore window. For IE, set client area width.

  this.restore();
  this.isOpen = false;  // Reset flag.
  initWd = Math.max(initWd, this.minimumWidth);
  this.frame.style.width = initWd + "px";
  if (browser.isIE)
    this.clientArea.style.width = (initWd - this.widthDiff) + "px";

  // Clip the title bar text if needed.

  if (this.clipTextMinimumWidth >= this.minimumWidth)
    this.titleBarText.style.width = (winCtrl.minimizedTextWidth + initWd - this.minimumWidth) + "px";

  // Restore the window to its original position.

  this.frame.style.left = initLt;
}

//=============================================================================
// Window Methods
//=============================================================================

function winOpen() {


  // It's open... close it 
  if (this.isOpen)
    {
     this.close();
     return;
     }

  // Restore the window and make it visible.

 
  this.makeActive();
  
  
  this.isOpen = true;
  if (this.isMinimized)
    this.restore();
  
//  alert ("top.keWin.newWidth is: " + top.keWin.newWidth);                      // tjw
//  top.window.resizeTo(top.keWin.newWidth, top.keWin.winHeight);                // tjw
  
  if (browser.isIE) this.scrollHeight =  document.body.scrollTop;
  if (browser.isNS) this.scrollHeight =  self.pageYOffset;
  
  var count = 0, Offset=0, thisOne = null;
  for (var i in winList)
  {
   	if (winList[i].isOpen == true && winList[i].scrollHeight == this.scrollHeight) 
   		count ++;
  }		

  Offset = count*18;               // tjw this is the number pixels each pop-up moves down, and over
   
  if (browser.isIE)
  {
  		winCtrl.active.frame.style.top = 10 + Offset +  document.body.scrollTop + "px";
  		winCtrl.active.frame.style.left = document.body.clientWidth - 270 - Offset + "px"; 
  }
  if (browser.isNS)
  {
  		winCtrl.active.frame.style.top = 30 + Offset + self.pageYOffset + "px";
   		winCtrl.active.frame.style.left = self.outerWidth - 524 - Offset + "px";
	 //	alert("made it... self.pageYOffset is: " + self.pageYOffset + " and winCtrl.active.frame.style.top is " + winCtrl.active.frame.style.top);
  		
 
  }
  
  //alert ("popup x position is: " + winCtrl.active.frame.style.left + " and pop-up y position is: " + winCtrl.active.frame.style.top);
  
  this.frame.style.visibility = "visible";

}

function winClose() {

  // Hide the window.

  this.frame.style.visibility = "hidden";
  this.isOpen = false;
  this.frame.style.left = 0 + "px";
 
  var lastOne = true;
  for (var i in winList)
  {
   	if (winList[i].isOpen == true ) lastOne = false;
// 	alert ("winList[i].isOpen is: " +  winList[i].isOpen); 
  }		
//  alert ("lastOne is: " + lastOne);
//  if (lastOne  == true)
//  top.window.resizeTo(top.keWin.winWidth, top.keWin.winHeight);                //tjw

}

function winMinimize() {

  if (!this.isOpen || this.isMinimized)
    return;

  this.makeActive();

  // Save current frame and title bar text widths.

  this.restoreFrameWidth = this.frame.style.width;
  this.restoreTextWidth = this.titleBarText.style.width;

  // Disable client area display.

  this.clientArea.style.display = "none";

  // Minimize frame and title bar text widths.

  if (this.minimumWidth)
    this.frame.style.width = this.minimumWidth + "px";
  else
    this.frame.style.width = "";
  this.titleBarText.style.width = winCtrl.minimizedTextWidth + "px";

  this.isMinimized = true;
}

function winRestore() {

  if (!this.isOpen || !this.isMinimized)
    return;

  this.makeActive();

  // Enable client area display.

  this.clientArea.style.display = "";

  // Restore frame and title bar text widths.

  this.frame.style.width = this.restoreFrameWidth;
  this.titleBarText.style.width = this.restoreTextWidth;

  this.isMinimized = false;
}

function winMakeActive()
{//	trace();

  if (winCtrl.active == this)
    return;

  // Inactivate the currently active window.

  if (winCtrl.active)
  {
    winCtrl.active.frame.style.backgroundColor    = winCtrl.inactiveFrameBackgroundColor;
    winCtrl.active.frame.style.borderColor        = winCtrl.inactiveFrameBorderColor;
    winCtrl.active.titleBar.style.backgroundColor = winCtrl.inactiveTitleBarColor;
    winCtrl.active.titleBar.style.color           = winCtrl.inactiveTitleTextColor;
    winCtrl.active.clientArea.style.borderColor   = winCtrl.inactiveClientAreaBorderColor;
    if (browser.isIE)
      winCtrl.active.clientArea.style.scrollbarBaseColor = winCtrl.inactiveClientAreaScrollbarColor;
    if (browser.isNS && browser.version < 6.1)
      winCtrl.active.clientArea.style.overflow = "hidden";
    if (winCtrl.active.inactiveButtonsImage)
      winCtrl.active.titleBarButtons.src = winCtrl.active.inactiveButtonsImage;
	
	}

  // Activate this window.

  this.frame.style.backgroundColor    = this.activeFrameBackgroundColor;
  this.frame.style.borderColor        = this.activeFrameBorderColor;
  this.titleBar.style.backgroundColor = this.activeTitleBarColor;
  this.titleBar.style.color           = this.activeTitleTextColor;
  this.clientArea.style.borderColor   = this.activeClientAreaBorderColor;
  this.clientArea.style.height		 	= "480px";								  //tjw
  //alert ("pop up height: " + this.clientArea.style.height);
//  if (this.clientArea.style.height     > 200) this.clientArea.style.height = 120;


  if (browser.isIE)
    this.clientArea.style.scrollbarBaseColor = this.activeClientAreaScrollbarColor;
  if (browser.isNS && browser.version < 6.1)
    this.clientArea.style.overflow = "auto";
  if (this.inactiveButtonsImage)
    this.titleBarButtons.src = this.activeButtonsImage;
  this.frame.style.zIndex = ++winCtrl.maxzIndex;
  winCtrl.active = this;

 // endtrace();
}

//=============================================================================
// Event handlers.
//=============================================================================

function winClientAreaClick(event) {

  // Make this window the active one.

  this.parentWindow.makeActive();
}

//-----------------------------------------------------------------------------
// Window dragging.
//-----------------------------------------------------------------------------

function winMoveDragStart(event) {

  var target;
  var x, y;

  if (browser.isIE)
    target = window.event.srcElement.tagName;
  if (browser.isNS)
    target = event.target.tagName;

  if (target == "AREA")
    return;

  this.parentWindow.makeActive();

  // Get cursor offset from window frame.

  if (browser.isIE) {
    x = window.event.x;
    y = window.event.y;
  }
  if (browser.isNS) {
    x = event.pageX;
    y = event.pageY;
  }
  winCtrl.xOffset = winCtrl.active.frame.offsetLeft - x;
  winCtrl.yOffset = winCtrl.active.frame.offsetTop  - y;

  // Set document to capture mousemove and mouseup events.

  if (browser.isIE) {
    document.onmousemove = winMoveDragGo;
    document.onmouseup   = winMoveDragStop;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", winMoveDragGo,   true);
    document.addEventListener("mouseup",   winMoveDragStop, true);
    event.preventDefault();
  }

  winCtrl.inMoveDrag = true;
}

function winMoveDragGo(event) {

  var x, y;

  if (!winCtrl.inMoveDrag)
    return;

  // Get cursor position.

  if (browser.isIE) {
    x = window.event.x;
    y = window.event.y;
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    x = event.pageX;
    y = event.pageY;
    event.preventDefault();
  }

  // Move window frame based on offset from cursor.

  winCtrl.active.frame.style.left = (x + winCtrl.xOffset) + "px";
  winCtrl.active.frame.style.top  = (y + winCtrl.yOffset) + "px";
}

function winMoveDragStop(event) {

  winCtrl.inMoveDrag = false;

  // Remove mousemove and mouseup event captures on document.

  if (browser.isIE) {
    document.onmousemove = null;
    document.onmouseup   = null;
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", winMoveDragGo,   true);
    document.removeEventListener("mouseup",   winMoveDragStop, true);
  }
}

//-----------------------------------------------------------------------------
// Window resizing.
//-----------------------------------------------------------------------------

function winResizeCursorSet(event) {

  var target;
  var xOff, yOff;

  if (this.parentWindow.isMinimized || winCtrl.inResizeDrag)
    return;

  // If not on window frame, restore cursor and exit.

  if (browser.isIE)
    target = window.event.srcElement;
  if (browser.isNS)
    target = event.target;
  if (target != this.parentWindow.frame)
    return;

  // Find resize direction.

  if (browser.isIE) {
    xOff = window.event.offsetX;
    yOff = window.event.offsetY;
  }
  if (browser.isNS) {
    xOff = event.layerX;
    yOff = event.layerY;
  }
  winCtrl.resizeDirection = ""
  if (yOff <= winCtrl.resizeCornerSize)
    winCtrl.resizeDirection += "n";
  else if (yOff >= this.parentWindow.frame.offsetHeight - winCtrl.resizeCornerSize)
    winCtrl.resizeDirection += "s";
  if (xOff <= winCtrl.resizeCornerSize)
    winCtrl.resizeDirection += "w";
  else if (xOff >= this.parentWindow.frame.offsetWidth - winCtrl.resizeCornerSize)
    winCtrl.resizeDirection += "e";

  // If not on window edge, restore cursor and exit.

  if (winCtrl.resizeDirection == "") {
    this.onmouseout(event);
    return;
  }

  // Change cursor.

  if (browser.isIE)
    document.body.style.cursor = winCtrl.resizeDirection + "-resize";
  if (browser.isNS)
    this.parentWindow.frame.style.cursor = winCtrl.resizeDirection + "-resize";
}

function winResizeCursorRestore(event) {

  if (winCtrl.inResizeDrag)
    return;

  // Restore cursor.

  if (browser.isIE)
    document.body.style.cursor = "";
  if (browser.isNS)
    this.parentWindow.frame.style.cursor = "";
}

function winResizeDragStart(event) {

  var target;

  // Make sure the event is on the window frame.

  if (browser.isIE)
    target = window.event.srcElement;
  if (browser.isNS)
    target = event.target;
  if (target != this.parentWindow.frame)
    return;

  this.parentWindow.makeActive();

  if (this.parentWindow.isMinimized)
    return;

  // Save cursor position.

  if (browser.isIE) {
    winCtrl.xPosition = window.event.x;
    winCtrl.yPosition = window.event.y;
  }
  if (browser.isNS) {
    winCtrl.xPosition = event.pageX;
    winCtrl.yPosition = event.pageY;
  }

  // Save window frame position and current window size.

  winCtrl.oldLeft   = parseInt(this.parentWindow.frame.style.left,  10);
  winCtrl.oldTop    = parseInt(this.parentWindow.frame.style.top,   10);
  winCtrl.oldWidth  = parseInt(this.parentWindow.frame.style.width, 10);
  winCtrl.oldHeight = parseInt(this.parentWindow.clientArea.style.height, 10);

  // Set document to capture mousemove and mouseup events.

  if (browser.isIE) {
    document.onmousemove = winResizeDragGo;
    document.onmouseup   = winResizeDragStop;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", winResizeDragGo,   true);
    document.addEventListener("mouseup"  , winResizeDragStop, true);
    event.preventDefault();
  }

  winCtrl.inResizeDrag = true;
}

function winResizeDragGo(event) {

 var north, south, east, west;
 var dx, dy;
 var w, h;

  if (!winCtrl.inResizeDrag)
    return;

  // Set direction flags based on original resize direction.

  north = false;
  south = false;
  east  = false;
  west  = false;
  if (winCtrl.resizeDirection.charAt(0) == "n")
    north = true;
  if (winCtrl.resizeDirection.charAt(0) == "s")
    south = true;
  if (winCtrl.resizeDirection.charAt(0) == "e" || winCtrl.resizeDirection.charAt(1) == "e")
    east = true;
  if (winCtrl.resizeDirection.charAt(0) == "w" || winCtrl.resizeDirection.charAt(1) == "w")
    west = true;

  // Find change in cursor position.

  if (browser.isIE) {
    dx = window.event.x - winCtrl.xPosition;
    dy = window.event.y - winCtrl.yPosition;
  }
  if (browser.isNS) {
    dx = event.pageX - winCtrl.xPosition;
    dy = event.pageY - winCtrl.yPosition;
  }

  // If resizing north or west, reverse corresponding amount.

  if (west)
    dx = -dx;
  if (north)
    dy = -dy;

  // Check new size.

  w = winCtrl.oldWidth  + dx;
  h = winCtrl.oldHeight + dy;
  if (w <= winCtrl.active.minimumWidth) {
    w = winCtrl.active.minimumWidth;
    dx = w - winCtrl.oldWidth;
  }
  if (h <= winCtrl.active.minimumHeight) {
    h = winCtrl.active.minimumHeight;
    dy = h - winCtrl.oldHeight;
  }

  // Resize the window. For IE, keep client area and frame widths in synch.

  if (east || west) {
    winCtrl.active.frame.style.width = w + "px";
    if (browser.isIE)
      winCtrl.active.clientArea.style.width = (w - winCtrl.active.widthDiff) + "px";
  }
  if (north || south)
    winCtrl.active.clientArea.style.height = h + "px";

  // Clip the title bar text, if necessary.

  if (east || west) {
    if (w < winCtrl.active.clipTextMinimumWidth)
      winCtrl.active.titleBarText.style.width = (winCtrl.minimizedTextWidth + w - winCtrl.active.minimumWidth) + "px";
    else
      winCtrl.active.titleBarText.style.width = "";
  }

  // For a north or west resize, move the window.

  if (west)
    winCtrl.active.frame.style.left = (winCtrl.oldLeft - dx) + "px";
  if (north)
    winCtrl.active.frame.style.top  = (winCtrl.oldTop  - dy) + "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function winResizeDragStop(event) {

  winCtrl.inResizeDrag = false;

  // Remove mousemove and mouseup event captures on document.

  if (browser.isIE) {
    document.onmousemove = null;
    document.onmouseup   = null;
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", winResizeDragGo,   true);
    document.removeEventListener("mouseup"  , winResizeDragStop, true);
  }
}

//=============================================================================
// Utility functions.
//=============================================================================

function winFindByClassName(el, className) {

  var i, tmp;

  if (el.className == className)
    return el;

  // Search for a descendant element assigned the given class.

  for (i = 0; i < el.childNodes.length; i++) {
    tmp = winFindByClassName(el.childNodes[i], className);
    if (tmp != null)
      return tmp;
  }

  return null;
}


function keTrackIt()
{
	if((navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 3 && navigator.userAgent.indexOf("Opera") == -1)
 	|| (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) >= 4) 
 	|| (navigator.appName == "Opera" && parseInt(navigator.appVersion) >= 5))
 	{	var MTMCodeFrame = "code";
		for(i = 0; i < parent.frames.length; i++)
		{ 	if(parent.frames[i].name == MTMCodeFrame && parent.frames[i].MTMLoaded)
		 	{	parent.frames[i].MTMTrack = true;
			//debug("i set MTMTRack to true.");
			//	setTimeout("parent.frames[" + i + "].MTMDisplayMenu(); window.focus();", 1000);
				setTimeout("parent.frames[" + i + "].MTMDisplayMenu();", 5);
				break;
			}
		}
	}
}




//=============================================================================
// Initialization code.
//=============================================================================

var winList = new Array();
var winCtrl = new Object();
var lastScrollTop = 0;
var args	= null;


function winInit()
{//	trace();
 //   top.window.resizeTo(top.keWin.winWidth, top.keWin.winHeight);

//  	keTrackIt();                                  // tjw for menu tracking
// 	args = GetArgs();  
  	var elList;
//  if (browser.isMac)
//	document.write ('<style type="text/css">\n .window \n {width: 280px;}');
  // Initialize window control object.

  winCtrl.maxzIndex                        = 300;
  winCtrl.resizeCornerSize                 =  32;
  winCtrl.minimizedTextWidth               = 100;
  winCtrl.inactiveFrameBackgroundColor     = "#c0c0c0";
  winCtrl.inactiveFrameBorderColor         = "#f0f0f0 #505050 #404040 #e0e0e0";
  winCtrl.inactiveTitleBarColor            = "#808080";
  winCtrl.inactiveTitleTextColor           = "#c0c0c0";
  winCtrl.inactiveClientAreaBorderColor    = "#404040 #e0e0e0 #f0f0f0 #505050";
  winCtrl.inactiveClientAreaScrollbarColor = "";
  winCtrl.inMoveDrag                       = false;
  winCtrl.inResizeDrag                     = false;

  // Initialize windows and build list.

  elList = document.getElementsByTagName("DIV");
  for (var i = 0; i < elList.length; i++)
    if (elList[i].className == "window")
	{	
		if (browser.isMac)
			elList[i].className = "windowMac";
      		winList[elList[i].id] = new Window(elList[i]);
	 }     
//	endtrace();
}



