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



function addEventListener(src,name,eventRedir,booble) { if(typeof(src.addEventListener)=="function") { src.addEventListener(name,eventRedir,booble); } else { src.attachEvent("on"+name,eventRedir); } } 
   
function WindowMinimize(e) { if (e.srcElement) { e.srcElement.parentWindow.minimize(); } else { e.target.parentWindow.minimize(); } }
function WindowRestore(e) { if (e.srcElement) { e.srcElement.parentWindow.restore(); } else { e.target.parentWindow.restore(); } }
function WindowClose(e) { if (e.srcElement) { e.srcElement.parentWindow.close(); } else { e.target.parentWindow.close(); } }




function BuildWindowFromObject(name,title,objectHTML,x,y,w,h) {
	// alert('Nowe Okienko 11');
	if (document.getElementById(name)) {
		// alert('Nowe Okienko 13');
		if (document.getElementById(name+'_clientarea')) {
			document.getElementById(name+'_clientarea').innerHTML = strHTML;
		} else {
			return false;
		}
	} else {
		var newWindowMain;
		newWindowMain = document.createElement("div");
		newWindowMain.setAttribute("id",name);
		newWindowMain.setAttribute("class","window");		
		// newWindowMain.setAttribute("style","position: absolute; padding: 0px; left:"+x+"px;top:"+y+"px;width:"+w+"px;");	
		newWindowMain.style.position = 'absolute'; 
		newWindowMain.style.padding = '0px'; 
		newWindowMain.style.margin='0px';
		newWindowMain.style.left = x+'px'; 
		newWindowMain.style.top = y+'px'; 
		newWindowMain.style.width = w+'px';		
			var newWindow;		
			newWindow = document.createElement("div");
			newWindow.className="titleBar";
				var newWindowSub;
				newWindowSub = document.createElement("span");
				newWindowSub.setAttribute("class", "titleBarText");				
				newWindowSub.appendChild(document.createTextNode(title));
			newWindow.appendChild(newWindowSub);
				newWindowSub = document.createElement("img");
				newWindowSub.setAttribute("class", "titleBarButtons");
				newWindowSub.setAttribute("alt", "Buttons");
				newWindowSub.setAttribute("src", "/img/buttons.gif");
				newWindowSub.setAttribute("usemap", "#sampleMap2");
			newWindow.appendChild(newWindowSub);
				newWindowSub = document.createElement("map");
				newWindowSub.setAttribute("id", "sampleMap2");
				newWindowSub.setAttribute("name", "sampleMap2");
					var newWindowSubMap;
					newWindowSubMap = document.createElement("area");
					newWindowSubMap.setAttribute("shape", "rect");
					newWindowSubMap.setAttribute("coords", "'0,0,15,13'");					
					newWindowSubMap.setAttribute("alt", "Minimaize");
					newWindowSubMap.setAttribute("title", "Minimize");
					addEventListener(newWindowSubMap,'click',WindowMinimize,false);
				newWindowSub.appendChild(newWindowSubMap);
					newWindowSubMap = document.createElement("area");
					newWindowSubMap.setAttribute("shape", "rect");
					newWindowSubMap.setAttribute("coords", "16,0,31,13");
					newWindowSubMap.setAttribute("alt", "Restore");
					newWindowSubMap.setAttribute("title", "Restore");
					addEventListener(newWindowSubMap,'click',WindowRestore,false);
				newWindowSub.appendChild(newWindowSubMap);
					newWindowSubMap = document.createElement("area");
					newWindowSubMap.setAttribute("shape", "rect");
					newWindowSubMap.setAttribute("coords", "34,0,49,13");
					newWindowSubMap.setAttribute("alt", "Close");
					newWindowSubMap.setAttribute("title", "Close");
					addEventListener(newWindowSubMap,'click',WindowClose,false);
				newWindowSub.appendChild(newWindowSubMap);				
			newWindow.appendChild(newWindowSub);
		newWindowMain.appendChild(newWindow);			
			newWindow = document.createElement("div");
			newWindow.setAttribute("id",name+'_clientarea');
			newWindow.setAttribute("class",'clientArea');
			newWindow.setAttribute("style","padding: 0px; height:"+h+"px; overflow: yes;");						
			newWindow.style.height=h+'px';
			newWindow.style.padding='0px';
			newWindow.style.margin='0px';
			newWindow.appendChild(objectHTML);			
		newWindowMain.appendChild(newWindow);
		
		newWindow = document.createElement("div");
		newWindow.appendChild(newWindowMain);
		// alert(newWindow.innerHTML);
		document.body.appendChild(newWindowMain);

		/*	
		document.body.innerHTML+=str;
		if (document.getElementById('hidde_usedtoopenwindow')) {
			document.getElementById('hidde_usedtoopenwindow').innerHTML=str;	
			document.body.appendChild(document.getElementById('hidde_usedtoopenwindow').firstChild);			
		} else {		
			document.body.innerHTML+=str;	
		}		
		*/
		winInit();
	}
}








function BuildWindow(name,title,strHTML,x,y,w,h) {
	// alert('Nowe Okienko 11');
	if (document.getElementById(name)) {
		// alert('Nowe Okienko 13');
		if (document.getElementById(name+'_clientarea')) {
			document.getElementById(name+'_clientarea').innerHTML = strHTML;
		} else {
			return false;
		}
	} else {		
		// alert('Nowe Okienko 20');
		str = '<div id="'+name+'" class="window" style="position: absolute; padding: 0px; left:'+x+'px;top:'+y+'px;width:'+w+'px;">';
		 // str = '<div id="'+name+'" class="window" style="left:100px;top:100px;width:400px;">';
			str += '<div class="titleBar">';
				str += '<span class="titleBarText">'+title+'</span>';
				str += '<img class="titleBarButtons" alt="" src="/img/buttons.gif" usemap="#sampleMap2" />';
				str += '<map id="sampleMap2" name="sampleMap2">';
					str += '<area shape="rect" coords="0,0,15,13" alt="" title="Minimize" onclick="winList[\''+name+'\'].minimize();return false;" />';
					str += '<area shape="rect" coords="16,0,31,13" alt="" title="Restore"  onclick="winList[\''+name+'\'].restore();return false;" />';
					str += '<area shape="rect" coords="34,0,49,13" alt="" title="Close"    onclick="winList[\''+name+'\'].close();return false;" />';
				str += '</map>';
			str += '</div>';
		if (browser.isIE) {
			str += '<div id="'+name+'_clientarea" class="clientArea" style="padding: 0px; padding-right: 12px; height:'+h+'px; overflow: yes;">';
		} else {
			str += '<div id="'+name+'_clientarea" class="clientArea" style="padding: 0px; height:'+h+'px; overflow: yes;">';
		}		
		str += strHTML;
		// str += ' GTo To jest Top GTo to jest To!';
		str += '</div>';
		str += '</div>';		
		// alert(str);
		var tmp = document.createElement('div');
		tmp.innerHTML+=str;
		document.body.appendChild(tmp);
		/*
		document.body.innerHTML+=str;
		if (document.getElementById('hidde_usedtoopenwindow')) {
			document.getElementById('hidde_usedtoopenwindow').innerHTML=str;	
			document.body.appendChild(document.getElementById('hidde_usedtoopenwindow').firstChild);			
		} else {		
			document.body.innerHTML+=str;	
		}
		*/		
		winInit();
	}
}










// Determine browser and version.

function Browser() {
	var ua, s, i;
	
	this.isIE    = false;  // Internet Explorer
	this.isNS    = false;  // Netscape
	this.version = null;
	
	ua = navigator.userAgent;
	
	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.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;
	}
	
	// Save images.
	
	this.activeButtonsImage   = this.titleBarButtons.src;
	this.inactiveButtonsImage = this.titleBarButtons.longDesc;
	
	// 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();
	// Get the minimum width.
	if (browser.isNS && browser.version >= 1.2)
	// For later versions of Gecko.
	this.minimumWidth = this.frame.offsetWidth;
	else
	// For all others.
	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;
	
	
	// przesuwanie sie zgodnie ze scrollBarami 
  
}

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

function winOpen() {

  if (this.isOpen) {
	return;
  }

  // Restore the window and make it visible.

  this.makeActive();
  this.isOpen = true;
  if (this.isMinimized)
    this.restore();
  this.frame.style.visibility = "visible";
}

function winClose() {

  // Hide the window.

  this.frame.style.visibility = "hidden";
  this.isOpen = false;
}

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() {

  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;
  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;
}

//=============================================================================
// 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;
}

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

var winList = new Array();
var winCtrl = new Object();

function winInit() {

  var elList;

  // Initialize window control object.

  winCtrl.maxzIndex                        =   0;
  winCtrl.resizeCornerSize                 =  16;
  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")
      winList[elList[i].id] = new Window(elList[i]);
}

window.onload = winInit;  // run initialization code after page loads.

