textArray = new Array("C", "O", "N", "N", "E", "C", "T", "I", "N", "G", " ", "T" , "O", " ", "A", "L", "T", "I", "M", "I", "T", "-", "O", "S", ".", "N", "E", "T", "
", "I", "P", " ", "R", "E", "S", "O", "L", "V", "E", "D", "
", "B", "O", "O", "T", "I", "N", "G", " ", "P", "R", "O", "J", "E", "C", "T", ":", " ", "A", "L", "T", "I", "M", "I", "T");
gaprow = document.getElementById("gap");
hr1 = document.getElementById("rh1");
hr2 = document.getElementById("rh2");
load = document.getElementById("loading");
logoimg = document.getElementById("logo");
gaptbl = document.getElementById("gaptable");
logotbl = document.getElementById("logotable");
skippydiv = document.getElementById("skipdiv");
// This timeout should help us avoid most of that annoying clipping while loading images...
initTimer = setTimeout("text(0);", 3000);
agent = navigator.userAgent.toLowerCase();
mozilla = (navigator.product == 'Gecko');
msie = ((agent.indexOf("msie") != -1) && !mozilla);
var xterm = document.getElementById("xterminal");
xterm.titlerow = document.getElementById("xterm-title");
xterm.menu = document.getElementById("xterm-menu");
xterm.min = document.getElementById("xterm-min");
xterm.max = document.getElementById("xterm-max");
xterm.close = document.getElementById("xterm-close");
xterm.rest = document.getElementById("xterm-rest");
xterm.hr1 = document.getElementById("xterm-hr1");
xterm.hr2 = document.getElementById("xterm-hr2");
xterm.cont = document.getElementById("xterm-contents");
xterm.table = xterm.parentNode.parentNode.parentNode;
if(xterm.table.nodeName == "TBODY") xterm.table = xterm.table.parentNode;
xterm.style.width = "0px";
xterm.style.height = "0px";
xterm.opened = 0;
xterm.windowshade = 0;
xterm.titlerowtext = "xterm";
xterm.varname = "xterm";
xterm.closed = 0;
var dragwindow = 0;
start = document.getElementById("startbutton");
taskbarinuse = new Array(0, 0, 0, 0, 0, 0);
taskbarspots = new Array(document.getElementById("task1"), document.getElementById("task2"), document.getElementById("task3"), document.getElementById("task4"), document.getElementById("task5"), document.getElementById("task6"));
startdiv = document.getElementById("starttbl");
startentry = new Array(document.getElementById("startentry1"), document.getElementById("startentry2"), document.getElementById("startentry3"), document.getElementById("startentry4"), document.getElementById("startentry5"), document.getElementById("startentry6"));
var stopboot = 0;
if(mozilla) xterm.style.display = "table";
else
{
// IE doesn't like making SPAN tags with paddibuttonng if nothing's in them...
for(i=0;i<6;i++) taskbarspots[i].innerHTML = " ";
xterm.style.display = "block";
}
document.onmousemove = dragging;
// This first part handles the initial boot process (the part that can be skipped)
// Handles the text additions.
function text(start)
{
if(initTimer)
{
clearTimeout("initTimer");
initTimer = 0;
}
i = start;
if(i < textArray.length)
{
hr1.innerHTML += textArray[i];
i++;
textTimer = setTimeout("text(i);",20);
}
else wide();
}
// Starts the timer for widening the gap
function wide()
{
gapTimer = setTimeout("gap(0);",100);
}
// The actual gap widening (buggy in IE, as it works from top down.)
function gap(start)
{
i = start;
if(i < 100)
{
i += 10;
hr1.style.height = "0%";
if(mozilla)
{
gaprow.parentNode.style.display = "table-row";
}
else
{
gaprow.parentNode.style.display = "block";
}
gaprow.style.height = i + "%";
gapTimer = setTimeout("gap(i);",100);
}
else
{
// And at the end of course, you queue the logo.
clearTimeout("gapTimer");
gaptbl.style.display = "none";
loadtop = logoimg.offsetTop + 28;
loadleft = logoimg.offsetLeft + 164;
load.style.top = loadtop + "px";
load.style.left = loadleft + "px";
load.src = "images/loading.gif";
load.style.display = "inline";
if(!stopboot) bootTimer = setTimeout("openwindow(xterm);",9000);
}
}
// Let's the skip button work.
function skip()
{
clearTimeout("textTimer");
clearTimeout("gapTimer");
clearTimeout("bootTimer");
gaptbl.style.display = "none";
stopboot = 1;
openwindow(xterm);
}
// This next part works the actual xterm window. Probably have to recode it some to work with the right window.
// The initial opening height part.
function height(windowname, start)
{
i = start;
if(i < 400)
{
i += 50;
windowname.style.height = i + "px";
widthTimer = setTimeout("height(" + windowname.varname + ",i);",10);
}
else
{
clearTimeout(heightTimer);
widthTimer = setTimeout("width(" + windowname.varname + ",0);",10);
}
}
// And then the width part.
function width(windowname, start)
{
i = start;
if(i < 600)
{
i += 50;
windowname.style.width = i + "px";
widthTimer = setTimeout("width(" + windowname.varname + ",i);",10);
if(i == 100)
{
windowname.titlerow.innerHTML = windowname.titlerowtext;
}
if(i == 200)
{
windowname.menu.style.display = "inline";
windowname.min.style.display = "inline";
windowname.max.style.display = "inline";
windowname.close.style.display = "inline";
}
}
else
{
windowname.titlerow.style.width = "528px";
windowname.cont.style.display = "block";
clearTimeout(widthTimer);
}
}
// The initial open function. This will need to be edited for sure. I kludge the skipping part by setting the opened variable.
function openwindow(windowname)
{
if(windowname.opened != 1)
{
if(windowname.table.style.display = "none")
{
if(mozilla) windowname.table.style.display = "table";
else windowname.table.style.display = "block";
}
skippydiv.style.display = "none";
logotbl.style.display = "none";
heightTimer = setTimeout("height(" + windowname.varname + ", 0);",10);
windowname.opened = 1;
}
}
// This just closes the window.
function close(windowname)
{
windowname.opened = 0;
windowname.titlerow.innerHTML = "";
windowname.menu.style.display = "none";
windowname.min.style.display = "none";
windowname.max.style.display = "none";
windowname.close.style.display = "none";
windowname.style.top = "";
windowname.style.left = "";
windowname.style.height = "0px";
windowname.style.width = "0px";
windowname.table.style.display = "none";
windowname.cont.style.display = "none";
windowname.style.position = "relative";
windowname.parentNode.setAttribute("valign", "center");
windowname.parentNode.setAttribute("align", "center");
windowname.closed = 1;
}
// Resizing (the initial setup)button
function resizeon(windowname, dir)
{
dragwindow = windowname;
if(dir == "n")
{
windowname.resize = "n";
windowname.xdiff = windowname.offsetLeft;
windowname.ydiff = locY - windowname.offsetTop;
windowname.heightdiff = parseInt(windowname.style.height) + windowname.offsetTop;
}
else if(dir == "s")
{
windowname.resize = "s";
windowname.xdiff = windowname.offsetLeft;
windowname.ydiff = parseInt(windowname.style.height) - locY;
windowname.heightdiff = windowname.offsetTop;
}
else if(dir == "e")
{
windowname.resize = "e";
windowname.xdiff = parseInt(windowname.style.width) - locX;
windowname.ydiff = windowname.offsetTop;
windowname.widthdiff = windowname.offsetLeft;
}
else if(dir == "w")
{
windowname.resize = "w";
windowname.xdiff = locX - windowname.offsetLeft;
windowname.ydiff = windowname.offsetTop;
windowname.widthdiff = parseInt(windowname.style.width) + windowname.offsetLeft;
}
else if(dir == "ne")
{
windowname.resize = "ne";
windowname.xdiff = parseInt(windowname.style.width) - locX;
windowname.ydiff = locY - windowname.offsetTop;
windowname.widthdiff = windowname.offsetLeft;
windowname.heightdiff = parseInt(windowname.style.height) + windowname.offsetTop;
}
else if(dir == "nw")
{
windowname.resize = "nw";
windowname.xdiff = locX - windowname.offsetLeft;
windowname.ydiff = locY - windowname.offsetTop;
windowname.widthdiff = parseInt(windowname.style.width) + windowname.offsetLeft;
windowname.heightdiff = parseInt(windowname.style.height) + windowname.offsetTop;
}
else if(dir == "se")
{
windowname.resize = "se";
windowname.xdiff = parseInt(windowname.style.width) - locX;
windowname.ydiff = parseInt(windowname.style.height) - locY;
windowname.widthdiff = windowname.offsetLeft;
windowname.heightdiff = windowname.offsetTop;
}
else if(dir == "sw")
{
windowname.resize = "sw";
windowname.xdiff = locX - windowname.offsetLeft;
windowname.ydiff = parseInt(windowname.style.height) - locY;
windowname.widthdiff = parseInt(windowname.style.width) + windowname.offsetLeft;
windowname.heightdiff = windowname.offsetTop;
}
}
// On mouse out
function resizeoff(windowname)
{
windowname.resize = 0;
dragwindow = 0;
}
// The maximize button
function maximize(windowname)
{
if(windowname.windowshade) menudown(windowname);
windowname.oldwidth = windowname.style.width;
windowname.oldheight = windowname.style.height;
windowname.oldx = windowname.offsetLeft;
windowname.oldy = windowname.offsetTop;
windowname.titlerow.oldwidth = windowname.titlerow.style.width;
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.style.top = "0px";
windowname.style.left = "0px";
windowname.style.width = "100%";
windowname.style.height = "100%";
windowname.titlerow.style.width = windowname.offsetWidth - 72 + "px";
windowname.max.style.display = "none";
windowname.rest.style.display = "inline";
}
// The minimize button
function minimize(windowname)
{
if(windowname.style.position != "absolute")
{
windowname.style.left = windowname.offsetLeft + "px";
windowname.style.top = windowname.offsetTop + "px";
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.table.style.display = "none";
for(i=0;i<6;i++)
{
if(taskbarinuse[i] == 0)
{
taskbarinuse[i] = 1;
taskbarspots[i].style.paddingLeft = "3px";
taskbarspots[i].style.paddingRight = "3px";
taskbarspots[i].innerHTML = "" + windowname.titlerowtext + "";
windowname.taskbar = i;
break;
}
}
}
// The minimize restoration function
function minrestore(windowname)
{
if(mozilla)
{
windowname.table.style.display = "table";
taskbarspots[windowname.taskbar].innerHTML = "";
}
else
{
windowname.table.style.display = "block";
taskbarspots[windowname.taskbar].innerHTML = " ";
}
taskbarspots[windowname.taskbar].style.paddingLeft = "8px";
taskbarspots[windowname.taskbar].style.paddingRight = "8px";
taskup(windowname.taskbar);
}
function taskdown(buttonid)
{
if(buttonid == "start")
{
startcancel = 1;
taskitem = start;
}
else taskitem = taskbarspots[buttonid];
taskitem.style.borderTop = "2px solid black";
taskitem.style.borderLeft = "2px solid black";
taskitem.style.borderRight = "2px solid white";
taskitem.style.borderBottom = "2px solid white";
}
function taskup(buttonid)
{
if(buttonid == "start")
{
taskitem = start;
if(startdiv.style.display == "block")
{
startcancel = 0;
menuTimer = setTimeout("startmenuclose();",500);
return;
}
}
else taskitem = taskbarspots[buttonid];
taskitem.style.borderTop = "2px solid white";
taskitem.style.borderLeft = "2px solid white";
taskitem.style.borderRight = "2px solid black";
taskitem.style.borderBottom = "2px solid black";
}
function startmenu(startspot)
{
start.style.borderTop = "2px solid black";
start.style.borderLeft = "2px solid black";
start.style.borderRight = "2px solid white";
start.style.borderBottom = "2px solid white";
if(startdiv.style.display != "block") startdiv.style.display = "block";
i = startspot;
if(i < 300)
{
i += 50;
startdiv.style.height = i + "px";
startentry[Math.floor((i - 50) / 50)].style.display = "block";
widthTimer = setTimeout("startmenu(i);",20);
}
else
{
clearTimeout(widthTimer);
}
}
function startmenuclose()
{
if(!startcancel)
{
startdiv.style.height = "0px";
startdiv.style.display = "none";
start.style.borderTop = "2px solid white";
start.style.borderLeft = "2px solid white";
start.style.borderRight = "2px solid black";
start.style.borderBottom = "2px solid black";
for(i=0;i<6;i++) startentry[i].style.display = "none";
}
}
function hilight(entryid)
{
startentry[entryid].style.color = "black";
startentry[entryid].style.background = "white";
}
function unhilight(entryid)
{
startentry[entryid].style.color = "white";
startentry[entryid].style.background = "black";
}
// The restore button
function restore(windowname)
{
windowname.style.width = windowname.oldwidth;
windowname.style.height = windowname.oldheight;
if(windowname.style.position != "absolute") windowname.style.position = "absolute";
windowname.style.left = windowname.oldx + "px";
windowname.style.top = windowname.oldy + "px";
windowname.titlerow.style.width = windowname.titlerow.oldwidth;
windowname.rest.style.display = "none";
windowname.max.style.display = "inline";
}
// The menuup button (or double clicking (buggy in IE))
function menuup(windowname)
{
windowname.oldheight2 = windowname.style.height;
windowname.style.top = windowname.offsetTop + "px";
windowname.style.left = windowname.offsetLeft + "px";
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.style.height = "22px";
windowname.hr1.style.display = "none";
windowname.hr2.style.display = "none";
windowname.menu.parentNode.href = "javascript:menudown(" + windowname.varname + ")";
windowname.titlerow.setAttribute("ondblclick", "menudown(" + windowname.varname + ");");
windowname.windowshade = 1;
}
// And going back down.
function menudown(windowname)
{
windowname.style.height = windowname.oldheight2;
if(mozilla)
{
windowname.hr1.style.display = "table-row";
windowname.hr2.style.display = "table-row";
}
else
{
windowname.hr1.style.display = "block";
windowname.hr2.style.display = "block";
}
windowname.menu.parentNode.href = "javascript:menuup(" + windowname.varname + ")";
windowname.titlerow.setAttribute("ondblclick", "menuup(" + windowname.varname + ");");
windowname.windowshade = 0;
}
// The actual dragging/resizing function. Could be optimized?
function dragging(e)
{
if(msie)
{
locX = event.clientX;
locY = event.clientY;
}
else
{
locX = e.pageX;
locY = e.pageY;
}
if(!dragwindow) return;
windowname = dragwindow;
if(windowname.titlerow.drag == 1)
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newleft = locX - windowname.xdiff;
windowname.newtop = locY - windowname.ydiff;
windowname.style.left = windowname.newleft + "px";
windowname.style.top = windowname.newtop + "px";
}
else if(windowname.resize == "n")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newtop = locY - windowname.ydiff;
windowname.newheight = windowname.heightdiff - locY + windowname.ydiff;
windowname.style.left = windowname.xdiff + "px";
windowname.style.top = windowname.newtop + "px";
windowname.style.height = windowname.newheight + "px";
}
else if(windowname.resize == "s")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newheight = locY + windowname.ydiff;
windowname.style.left = windowname.xdiff + "px";
windowname.style.top = windowname.heightdiff + "px";
windowname.style.height = windowname.newheight + "px";
}
else if(windowname.resize == "e")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newwidth = locX + windowname.xdiff;
windowname.style.left = windowname.widthdiff + "px";
windowname.style.top = windowname.ydiff + "px";
windowname.style.width = windowname.newwidth + "px";
windowname.titlerow.style.width = windowname.newwidth - 72 + "px";
}
else if(windowname.resize == "w")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newleft = locX - windowname.xdiff;
windowname.newwidth = windowname.widthdiff - locX + windowname.xdiff;
windowname.style.left = windowname.newleft + "px";
windowname.style.top = windowname.ydiff + "px";
windowname.style.width = windowname.newwidth + "px";
windowname.titlerow.style.width = windowname.newwidth - 72 + "px";
}
else if(windowname.resize == "ne")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newtop = locY - windowname.ydiff;
windowname.newwidth = locX + windowname.xdiff;
windowname.newheight = windowname.heightdiff - locY + windowname.ydiff;
windowname.style.left = windowname.widthdiff + "px";
windowname.style.top = windowname.newtop + "px";
windowname.style.width = windowname.newwidth + "px";
windowname.style.height = windowname.newheight + "px";
windowname.titlerow.style.width = windowname.newwidth - 72 + "px";
}
else if(windowname.resize == "nw")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newleft = locX - windowname.xdiff;
windowname.newtop = locY - windowname.ydiff;
windowname.newwidth = windowname.widthdiff - locX + windowname.xdiff;
windowname.newheight = windowname.heightdiff - locY + windowname.ydiff;
windowname.style.left = windowname.newleft + "px";
windowname.style.top = windowname.newtop + "px";
windowname.style.width = windowname.newwidth + "px";
windowname.style.height = windowname.newheight + "px";
windowname.titlerow.style.width = windowname.newwidth - 72 + "px";
}
else if(windowname.resize == "se")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newwidth = locX + windowname.xdiff;
windowname.newheight = locY + windowname.ydiff;
windowname.style.left = windowname.widthdiff + "px";
windowname.style.top = windowname.heightdiff + "px";
windowname.style.width = windowname.newwidth + "px";
windowname.style.height = windowname.newheight + "px";
windowname.titlerow.style.width = windowname.newwidth - 72 + "px";
}
else if(windowname.resize == "sw")
{
if(windowname.style.position != "absolute")
{
windowname.parentNode.removeAttribute("align");
windowname.parentNode.removeAttribute("valign");
windowname.style.position = "absolute";
}
windowname.newleft = locX - windowname.xdiff;
windowname.newwidth = windowname.widthdiff - locX + windowname.xdiff;
windowname.newheight = locY + windowname.ydiff;
windowname.style.left = windowname.newleft + "px";
windowname.style.top = windowname.heightdiff + "px";
windowname.style.width = windowname.newwidth + "px";
windowname.style.height = windowname.newheight + "px";
windowname.titlerow.style.width = windowname.newwidth - 72 + "px";
}
}
// Turning dragging on
function dragon(windowname)
{
windowname.titlerow.drag = 1;
windowname.xdiff = locX - windowname.offsetLeft;
windowname.ydiff = locY - windowname.offsetTop;
if(windowname.ydiff < 0 && msie) windowname.ydiff = Math.floor(locY - windowname.offsetTop / 2);
/*if(windowname.closed == 1 && msie)
{
windowname.ydiff = windowname.ydiff + windowname.offsetParent.offsetTop;
}*/
dragwindow = windowname;
}
// And off.
function dragoff(windowname)
{
dragwindow = 0;
windowname.titlerow.drag = 0;
}