// JavaScript Document

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


imageDir = "img/";

function JSWindow(title, oContent, x, y, id, width, popupColor, minimizeIcon)
{

// define variables
this.title = title;
this.oContent = oContent;
this.width = width;
this.x = x;
this.y = y;
this.id = id;
this.bgcolor = popupColor;


// create the table window and define CSS properties
this.oTable = document.createElement("table");
this.oTable.id = "Window " + this.id;
this.oTable.style.width = this.width + "px";
this.oTable.style.border = "1px solid #cccccc";
this.oTable.cellSpacing = 0;
this.oTable.cellPadding = 2;
this.oTable.border = 0;
this.oTable.style.backgroundColor = "#FFFFFF";

// determine the windows position when first open
this.oTable.style.position = "absolute";
this.oTable.style.left = this.x + "px";
this.oTable.style.top = this.y + "px";

// link from the table to the JSWindow object
this.oTable.jsWindow = this;

// if the table is clicked anywhere, show the table in front of other open windows
this.oTable.onmousedown = JSWindow.prototype.onBringToFront;

// append to document body
document.body.appendChild(this.oTable);

// add a row for the titlebar
var oTR = this.oTable.insertRow(0);
oTR.className = "JSWindowTitleStyle";


// Title: add the title to the titlebar 
oTD = oTR.insertCell(0);
oTD.innerHTML = title;
oTD.jsWindow = this;
oTD.onmousedown = JSWindow.prototype.tdOnMouseDown;
oTD.style.borderBottom = "1px solid #cccccc";
oTD.style.backgroundImage = "url(" + imageDir + "title_bg.jpg)";
oTD.height = "20";
oTD.width = "98%";

// Minimize: add the minimize button to the titlebar
if (minimizeIcon == 1) {
this.oMinTD = oTR.insertCell(1);
this.oMinTD.innerHTML = "<img src='" + imageDir + "minimize.jpg'>";
this.oMinTD.onmousedown = JSWindow.prototype.onMinimize;
this.oMinTD.jsWindow = this;
this.oMinTD.style.borderBottom = "1px solid #cccccc";
this.oMinTD.style.backgroundImage = "url(" + imageDir + "title_bg.jpg)";
this.oMinTD.width = "1%";
this.oMinTD.style.paddingRight = "1px"; 
}

// Close: add the close button to the titlebar
if (minimizeIcon == 1) {
oTD = oTR.insertCell(2);
}
else {
oTD = oTR.insertCell(1); 
}
oTD.innerHTML = "<img src='" + imageDir + "close.jpg'>";
oTD.jsWindow = this;
oTD.onmousedown = JSWindow.prototype.onClose;
oTD.style.borderBottom = "1px solid #cccccc";
oTD.style.backgroundImage = "url(" + imageDir + "title_bg.jpg)";
oTD.width = "1%";
oTD.style.paddingLeft = "1px";

// add a row for the window's content
oTR = this.oTable.insertRow(1);

this.oContentTD = oTR.insertCell(0);
if (minimizeIcon == 1) {
this.oContentTD.colSpan = 3;
}
else {
this.oContentTD.colSpan = 2;
} 
this.oContentTD.style.backgroundColor = this.bgcolor;
this.oContentTD.className = "JSWindowContentStyle";


// use the content from the referenced div as the content for the window
this.oContentTD.innerHTML = document.all["Div" + this.id].innerHTML;

}

JSWindow.prototype.onBringToFront = function()
{
this.jsWindow.bringToFront();
}

JSWindow.prototype.bringToFront = function()
{
// if not already the last child of the document.body, make it so
if ( document.body.childNodes[document.body.childNodes.length-1] !== this.oTable )
{
// move to bottom of document
document.body.appendChild(this.oTable);
}
}

JSWindow.prototype.tdOnMouseDown = function()
{
this.jsWindow.onMouseDown();
}

JSWindow.prototype.onMouseDown = function()
{
// record that an onmousedown has just occurred
this.bDown = true;

// link from body to this JSWindow object
document.body.jsWindow = this;

// save body mouse handlers
this.saveMouseMove = document.body.onmousemove;
this.saveMouseUp = document.body.onmouseup;

// set new handlers.
document.body.onmousemove = JSWindow.prototype.bodyOnMouseMove;
document.body.onmouseup = JSWindow.prototype.bodyOnMouseUp;
}

JSWindow.prototype.bodyOnMouseMove = function(evt)
{
var e = window.event ? window.event : evt;
this.jsWindow.onMouseMove(e);
}

JSWindow.prototype.onMouseMove = function(evt)
{
// if mouse not down, stop the move (for IE only)
if ( (document.all) && !(evt.button & 1) )
{
this.onMouseUp();
return;
}
if ( this.bDown )
{
this.dx = parseInt(this.oTable.style.left, 10) - evt.clientX;
this.dy = parseInt(this.oTable.style.top, 10) - evt.clientY;
this.bDown = false;
}
else
{
this.oTable.style.left = Math.max((this.dx + evt.clientX),0) + "px";
this.oTable.style.top = Math.max((this.dy + evt.clientY),0) + "px";
}
}

JSWindow.prototype.bodyOnMouseUp = function()
{
this.jsWindow.onMouseUp();
}

JSWindow.prototype.onMouseUp = function()
{
document.body.onmouseup = this.saveMouseUp;
document.body.onmousemove = this.saveMouseMove;
document.body.jsWindow = null;
}


JSWindow.prototype.onMinimize = function()
{
this.jsWindow.minimize();
}


JSWindow.prototype.minimize = function()
{
// hide the content
this.oContent.style.visibility = "hidden";
this.oContent.style.position = "absolute";
document.body.appendChild(this.oContent);

this.oTable.deleteRow(1);

// save current position
this.saveX = this.oTable.style.left;
this.saveY = this.oTable.style.top;

// get the "window bar"
if ( !window.jsWindowBar )
{
window.jsWindowBar = document.createElement("span");
document.body.appendChild(window.jsWindowBar);
}

window.jsWindowBar.appendChild(this.oTable);
this.oTable.style.position = "static";
this.oTable.style.left = "0px";
this.oTable.style.top = "0px";

this.oMinTD.innerHTML = "<img src='" + imageDir + "maximize.jpg'>";
this.oMinTD.onmousedown = JSWindow.prototype.onMaximize;
this.oTable.style.width = "220px";
this.oTable.style.borderBottom = "0px";

}


JSWindow.prototype.onMaximize = function()
{
this.jsWindow.maximize();
}

JSWindow.prototype.maximize = function()
{
document.body.appendChild(this.oTable);
this.oTable.style.position = "absolute";

this.oTable.style.left = this.saveX;
this.oTable.style.top = this.saveY;
this.oTable.style.width = this.width + "px"
this.oTable.style.borderBottom = "1px solid #000000";

// add the content again.
oTR = this.oTable.insertRow(1);

this.oContentTD = oTR.insertCell(0);
this.oContentTD.colSpan = 3;
this.oContentTD.innerHTML = document.all["Div" + this.id].innerHTML;

//oTD.appendChild(this.oContent);
this.oContent.style.position = "static";
this.oContent.style.visibility = "visible";
this.oContentTD.style.backgroundColor = this.bgcolor;
this.oContentTD.className = "JSWindowContentStyle";

this.oMinTD.style.paddingRight = "1px"; 
this.oMinTD.innerHTML = "<img src='" + imageDir + "minimize.jpg'>";
this.oMinTD.onmousedown = JSWindow.prototype.onMinimize;

}

JSWindow.prototype.onMaximize = function()
{
this.jsWindow.maximize();
}

JSWindow.prototype.close = function()
{ 
// remove from browser document
this.oTable.parentNode.removeChild(this.oTable);
}

JSWindow.prototype.onClose = function()
{
this.jsWindow.close();
}


function hideDiv(divNumber) {
for (var count = 1; count <= divNumber;) {
document.getElementById('Div' + count).style.display = 'none';
count++;
}
}

function createWindow(title, width, popupColor, windowID, minimizeIcon, x, y)
{
if (document.getElementById('Window ' + windowID)) {
}
else {
new JSWindow("&nbsp;" + title, document.getElementById("Div" + windowID), x, y, windowID, width, popupColor, minimizeIcon); 
}
}

