function window_onload()
{
	GotEm = true;
	var MessageDiv = document.getElementById("divDrawInPlace");
	if (MessageDiv == null)
	{
		return;
	}
	else	
	{
		Messages = MessageDiv.getElementsByTagName("img");
		totalMessages = Messages.length;
		halfMessages = Math.floor(totalMessages/2);
		MessageTop = 1000 + halfMessages;
	}
	var i = new Image();
	i.src="images/archOut.gif";
	i = new Image;
	i.src="images/bullOut.gif";
}
function beginDrag(elementToDrag, event)
{
	var deltaX = event.clientX - parseInt(elementToDrag.style.left);
	var deltaY = event.clientY - parseInt(elementToDrag.style.top);
	if (document.addEventListener) // dom level 2 event model
	{
		document.addEventListener("mousemove", moveHandler, true);
		document.addEventListener("mouseup", upHandler, true);
	}
	else if (document.attachEvent) // IE5+ Event Model
	{
		document.attachEvent("onmousemove", moveHandler);
		document.attachEvent("onmouseup", upHandler);
	}
	else // IE4 Event Model
	{
		var oldmovehandler = document.onmouseover;
		var olduphandler = document.onmouseup;
		document.onmousemove =  moveHandler;
		document.onmouseup = upHandler;
	}
	if  (event.stopPropogation) event.stopPropogation(); // DOM Level 2
	else event.cancelBubble = true;  // IE

	if  (event.preventDefault) event.preventDefault();
	else event.returnValue = false;

	function moveHandler(e)
	{
		if (!e) e = window.event; // IE Event Model
		elementToDrag.style.left = (e.clientX - deltaX) +"px";
		elementToDrag.style.top = (e.clientY - deltaY) + "px";
		
		if (e.stopPropogation) e.stopPropogation();  // DOM Level 2
	 	else cancelBubble = true;  // IE
	}
	function upHandler(e)
	{	
		if (!e) e = window.event; // IE Event Model
		if (document.removeEventListener)  // DOM Event Model
		{
			document.removeEventListener("mouseup", upHandler, true);
			document.removeEventListener("mousemove", moveHandler, true);
		}
		else if (document.detachEvent) // IE 5 +
		{
			document.detachEvent("onmouseup", upHandler);
			document.detachEvent("onmousemove", moveHandler);
		}
		else // IE 4 
		{
			document.onmouseup = olduphandler;
			document.onmousemove = oldmovehandler;
		}
		if (e.stopPropogation) e.stopPropogation(); // DOM Level 2
		else e.cancelBubble = true;  //IE
	}
}
var Messages;  // global array of all messages by div ID
var totalMessages;
var halfMessages=0;
var MessageTop=0;
var PageTimerID;
var GotEm=false;
var oldZ;

function OnTop(ctrl)
{
	if(Stacking) return;
	if (stacked)
		oldZ=ctrl.style.zIndex;
	MessageTop++;
	ctrl.style.zIndex=MessageTop;
}
function BackUnder(ctrl)
{
	if (stacked)
		ctrl.style.zIndex=oldZ;
}
var Order=false;
var LastZ=0;
var LastLeft=0;
var stackTargetLeft=320;
var stackTargetTop =300;
var stacked=false;
var stillMore=true;
var PageLeft=-80;
var xPage = 80;
var incFactor=.01;
var Stacking = false;


function StackUp()
{
	if (Stacking){return;}
	if (! GotEm) // page not loaded
		return;
	if (totalMessages < 3) return;
	stackTimerID=setInterval("StackGo()", 210-totalMessages);
	for (var i=0; i< totalMessages; i++)
	{
		Messages[i].style.zIndex=1000-i; 
	}
	Stacking = true;
	incFactor=.02;
	MessageTop=1000;
	showPage=0;
	stacked=true;
}

function StackGo()
{	
	{
		stillMore=false;
		var leftNow;
		var topNow;
		//var incFactor=.17;//.17
		incFactor*=1.2;
		for (var c=0; c < totalMessages; c++)
		{
			leftNow=parseInt(Messages[c].style.left);
			if (leftNow < stackTargetLeft)
			{
				Messages[c].style.left = parseInt(Messages[c].style.left) + Math.ceil(((stackTargetLeft-leftNow)*incFactor)) +"px";
				stillMore=true;
			} 
			if (leftNow > stackTargetLeft)
			{
				Messages[c].style.left = parseInt(Messages[c].style.left) - Math.ceil(((leftNow-stackTargetLeft)*incFactor)) +"px";
				stillMore=true;
			}
			topNow=parseInt(Messages[c].style.top);
			if (topNow < stackTargetTop)
			{
				Messages[c].style.top = parseInt(Messages[c].style.top) + Math.ceil(((stackTargetTop-topNow)*incFactor)) +"px";
				stillMore=true;
			} 
			if (topNow > stackTargetTop)
			{
				Messages[c].style.top = parseInt(Messages[c].style.top) - Math.ceil(((topNow-stackTargetTop)*incFactor)) +"px";
				stillMore=true;
			}
		}
		if (! stillMore)
		{
			clearInterval(stackTimerID);
			for (var i=0; i< totalMessages; i++)
			{
				Messages[i].style.zIndex=(1000+halfMessages)-i;
			}
			Splay();
			Order=true;	
			Stacking =false;
		} 
	}
}

function Splay()
{
	var leftInc =Math.ceil((250-totalMessages)/50); // 75
	var adj = (300-totalMessages)/(totalMessages*8);
	var leftPos=0;
	var topPos=0;
	for (var c=0; c < totalMessages; c++)
	{
		Messages[c].style.left = stackTargetLeft+leftPos +"px";
		Messages[c].style.top = stackTargetTop+topPos +"px";
		leftPos+=leftInc;
		topPos +=  (halfMessages - c)*adj;
		//Messages[c].style.zIndex=(1000+halfMessages)-c; //removed revised
		Messages[c].style.zIndex=1000-c;
	}
	stacked=true;
}

function Scatter()
{
	if (! GotEm) // page not loaded
		return;
	if (Stacking){return;}
	clearInterval(stackTimerID);
	var scatterLeft=800;
	var scatterTop=(totalMessages / 6) * 80;
	for (var c=0; c < totalMessages; c++)
	{
		Messages[c].style.left = 50+Math.floor(Math.random()*scatterLeft) +"px";
		Messages[c].style.top = 130+Math.floor(Math.random()*scatterTop) +"px";
	}
	stacked=false;
}
var GoLeft=true;
var direction="Up";
function PageUp()
{
	if (Messages==null) return;
	if (Stacking){return;}
	if (showPage==totalMessages)
	{		
		direction="Back";
		return;	
	}
	mesg=Messages[showPage%totalMessages];
	mesg.style.left = parseInt(mesg.style.left) + PageLeft +"px";
	showPage++;
}
function PageBack()
{
	if (Stacking){return;}
	if (showPage==0)
	{		
		direction="Up";
		return;
	}
	showPage--;
	mesg=Messages[showPage%totalMessages];
	mesg.style.left = parseInt(mesg.style.left) - PageLeft +"px";
}
function NextPage()
{
	if (Stacking){return;}
	if (GoLeft)
	{
		PageLeft=-xPage;
	}
	else
	{
		PageLeft=xPage;
	}
	Page();	
}
document.onkeydown = HandleDown;
function HandleDown(evt)
{
	evt=(evt) ? evt : ((event) ? event : null);
	if(evt)
	{
		switch (evt.keyCode)
		{
			case 39:
				stacked ? PageUp() : StackUp(); // Right Arrow
				break;
			case 37:
				stacked ? PageBack() : StackUp(); // Left Arrow
				break;
			case 38:
				StackUp(); // Up Arrow
				break;	
			case 17:
				stacked ? Page() : StackUp(); // Ctrl
				break;
			case 40:
				Scatter(); // Down Arrow
				break;		
		}
	}
}
function MouseLeft()
{
	stacked ? PageBack() : StackUp();
}
function MouseRight()
{
	stacked ? PageUp() : StackUp();
}
function Help_onclick(prog, hei)
{
	var w = window.open("Help/"+prog+".htm",null,"height="+ hei +",width=650,scrollbars=yes,resizable=yes,status=no,toolbar=no,menubar=no,location=no");
	w.focus();
}	
function imgArch_swap(b)
{
	if (b==0)
		document.images.imgArchIn.src="images/archIn.gif";
	else
		document.images.imgArchIn.src="images/archOut.gif";	
}
function imgBull_swap(b)
{
	if (b==0)
		document.images.imgBullseye.src="images/bullIn.gif";
	else
		document.images.imgBullseye.src="images/bullOut.gif";	
}