// A shorthand way of referencing the DOM
// Found in the Dojo ajax toolkit
function byId(id) 
{ 
return document.getElementById(id); 
}

// Gets the dimensions of the user's window for many different browsers--
// Returns an array of pageWidth, pageHeight, windowWidth, and windowHeight
// By Lokesh Dhakar of http://www.huddletogether.com
function getPageSize()
{
var xScroll, yScroll;

if (window.innerHeight && window.scrollMaxY) 
{
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
} 
else if (document.body.scrollHeight > document.body.offsetHeight)
// all but Explorer Mac
{ 
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
} 
else 
// Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
{ 
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}

var windowWidth, windowHeight;

if (self.innerHeight) 
// all except Explorer
{
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
} 
else if (document.documentElement && document.documentElement.clientHeight) 
// Explorer 6 Strict Mode
{ 
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
} 
else if (document.body) 
// other Explorers
{ 
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}

// for small pages with total height less then height of the viewport
if (yScroll < windowHeight)
pageHeight = windowHeight;
else 
pageHeight = yScroll;

// for small pages with total width less then width of the viewport
if (xScroll < windowWidth)
pageWidth = windowWidth;
else 
pageWidth = xScroll;

arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
return arrayPageSize;
}

// Inspiration from nsftools.com (http://www.nsftools.com/tips/NotesTips.htm#datepicker)
function drawCSSMessageBox(data, x, y, width, height)
{
// Toggle fading of the background the background
toggleMessageBoxScreen();

// Create CSSMessageBox if it doesn't already exist
if (!byId('CSSMessageBox')) 
{
// don't use innerHTML to update the body, because it can cause global variables
// that are currently pointing to objects on the page to have bad references
// document.body.innerHTML += "<div id='" + datePickerDivID + "' class='dpDiv'></div>";
var newNode = document.createElement("div");
newNode.setAttribute("id", 'CSSMessageBox');
newNode.setAttribute("style", "visibility: hidden;");
document.body.appendChild(newNode);
}

// move the CSSMessageBox div to the proper x,y coordinate and toggle the visiblity
var CSSMessageBox = byId('CSSMessageBox');
CSSMessageBox.style.position = "absolute";
CSSMessageBox.className = "messagebox";
CSSMessageBox.style.left = x + "px";
CSSMessageBox.style.top = y + "px";
CSSMessageBox.style.width = width + "px";
CSSMessageBox.style.height = height + "px";
CSSMessageBox.style.zIndex = 10000;
CSSMessageBox.innerHTML = data;

// toggle the visibility of CSSMessageBoxScreen and CSSMessageBox
CSSMessageBox.style.visibility = 
(CSSMessageBox.style.visibility == "visible" ? "hidden" : "visible");
CSSMessageBox.style.display = 
(CSSMessageBox.style.display == "block" ? "none" : "block");
}

function toggleMessageBoxScreen()
{
// Create MessageBoxScreen if it doesn't already exist
if (!byId('MessageBoxScreen'))
{
var newNode = document.createElement("div");
newNode.setAttribute("id", 'MessageBoxScreen');
newNode.setAttribute("style", "visibility: hidden;");
document.body.appendChild(newNode);
}

// move CSSMessageBoxScreen to cover the entire page with its dim-ness-ocity
var MessageBoxScreen = byId('MessageBoxScreen');
MessageBoxScreen.style.position = "absolute";
MessageBoxScreen.style.left = "1px";
MessageBoxScreen.style.top = "1px";
MessageBoxScreen.style.width = getPageSize()[0] + "px";
MessageBoxScreen.style.height = getPageSize()[1] + "px";
MessageBoxScreen.className = "trans75";
MessageBoxScreen.style.backgroundColor = "#ffffff";
MessageBoxScreen.style.zIndex = 9999;

// toggle the visibility
MessageBoxScreen.style.visibility = 
(MessageBoxScreen.style.visibility == "visible" ? "hidden" : "visible");
MessageBoxScreen.style.display = 
(MessageBoxScreen.style.display == "block" ? "none" : "block");
}