function initializeBoxes(){
	if (!window.myAppBox){
		myAppBox = document.createElement("div"); 
		myAppBox.style.zIndex=5;
		myAppBox.style.visibility='hidden';
		myAppBox.style.backgroundColor='#ffffdd';
		myAppBox.style.border='1px solid black';
		myAppBox.style.fontSize='12px';
		myAppBox.style.padding='9px';
		myAppBox.style.position='absolute';
		myAppBox.style.fontFamily='verdana';
		document.body.appendChild(myAppBox); 
	}
	if (!window.overlay){
		overlay = document.createElement('div');
		overlay.id = 'overlay';
		overlay.onclick='event.cancelBubble=true';
		overlay.style.position='absolute';
		overlay.style.top='0';
		overlay.style.left='0';
		overlay.style.display='none';
		overlay.style.opacity='.5';
		overlay.style.filter='Alpha(Opacity=50)';
		overlay.style.backgroundColor='black';
		document.body.appendChild(overlay); 
	}
	if (!window.myAjaxBox){
		myAjaxBox = document.createElement("div"); 
		myAjaxBox.onclick = cBubble;
		myAjaxBox.style.visibility='hidden';
		myAjaxBox.style.backgroundColor='#ffffdd';
		myAjaxBox.style.border='1px solid black';
		myAjaxBox.style.position='absolute';
		myAjaxBox.style.padding='6px';
		myAjaxBox.style.fontSize='12px';
		myAjaxBox.style.fontFamily='verdana';
		document.body.appendChild(myAjaxBox); 
	}
	if (!window.myHelpBox){
		myHelpBox = document.createElement("div"); 
		myHelpBox.onclick = "event.cancelBubble=true;"
		myHelpBox.style.visibility='hidden';
		myHelpBox.style.backgroundColor='#ffffdd';
		myHelpBox.style.border='1px solid black';
		myHelpBox.style.position='absolute';
		myHelpBox.style.padding='6px';
		myHelpBox.style.fontSize='12px';
		myHelpBox.style.fontFamily='verdana';
		myHelpBox.style.textAlign='left';
		document.body.appendChild(myHelpBox); 
	}
	/*myHelpBox = document.createElement("<div style='visibility:hidden;background-color:#ffffdd;border:1px solid black;
	position:absolute;padding:6px;font-size:12px;font-family:verdana;text-align:left'>"); */
	//document.body.insertBefore(myHelpBox); 
	//overlay = document.createElement('<div id="overlay" onclick="event.cancelBubble=true;" style="position:absolute;top:0;left:0;display:none;opacity:.5;FILTER: Alpha(Opacity=50);background-color:black">')
	//document.body.insertBefore(overlay); 
	/*myAjaxBox = document.createElement("<div onclick='event.cancelBubble=true;' style='visibility:hidden;background-color:#ffffdd;border:1px solid black;position:absolute;
	padding:6px;font-size:12px;font-family:verdana'>"); */
	//document.body.insertBefore(myAjaxBox); 
}
function cBubble(){
	event.cancelBubble=true;
}
function printme(obj){
	var myWindow = window.open("", "myWindow", "toolbar=no, location=no, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=yes, copyhistory=no, width="+myAjaxBox.clientWidth+", height="+myAjaxBox.clientHeight)
	var myHtml = "<html><body onload='print();window.close();'>" + obj + "</body></html>"
	myWindow.document.open()
	window.focus();
	myWindow.document.write(myHtml);
	myWindow.document.close();
	initbox()
}

function mouseout(){
	if (window.mytimeoutholder) {
		window.clearTimeout(mytimeoutholder)
	}
	if (window.myHelpBox)
		myHelpBox.style.visibility = 'hidden';
}

function initbox(){
	if (window.resetElements)
		for (var i=0;i<resetElements.length;i++)
			resetElements[i].style.visibility = "";
	if (window.myAjaxBox){
		myAjaxBox.style.zIndex = '';
		myAjaxBox.style.visibility="hidden";
		myAjaxBox.style.padding=6;
	}
	try {
		hideMap();	
	} catch (err) {
		var a=1;
		//	
	}
}

function mousemove(mytext,keyval,mystring){
	if (!window.event)
		return;
		
	if (!window.myHelpBox)
		return;
	if (isObject(mytext)){
		spanObj=mytext;
		mytext = spanObj.helptext;
	}
		
	if(mystring && myAjaxBox.style.visibility=="visible" && myAjaxBox.name==mystring && myAjaxBox.id==keyval)
		return;
	if (myHelpBox.style.visibility == 'hidden'){
		if (window.mytimeoutholder) {
			window.clearTimeout(mytimeoutholder)
		}
		myHelpBox.innerHTML = mytext;
		positionbox(myHelpBox,'1');
		if (event.type == 'click') {
			positionbox(myHelpBox,'1');
			myHelpBox.style.visibility = 'visible';
		}
		else {
			string = "myHelpBox.style.visibility = 'visible';"
			var mytimeout = setTimeout(string, 1200)
		}
		mytimeoutholder = mytimeout
	}
}
	
 
function ajaxbox(keyval,srcObj,mystring,urlparms) {
	if (myAjaxBox.style.visibility != 'hidden' && myAjaxBox.name == mystring && myAjaxBox.id == keyval){
		initbox();
		return;
	}
	
	resetElements = new Array();
	if (ajaxbox.arguments.length > 4){
		var k = 0;
		for (var i=4;i<ajaxbox.arguments.length;i++){
			if (document.getElementById(ajaxbox.arguments[i])){
				myElem = document.getElementById(ajaxbox.arguments[i])
				resetElements[k] = myElem;
				myElem.style.visibility = "hidden";
				k++
			}
		}
	}
	
	myAjaxBox.style.padding=6;
	myAjaxBox.style.textAlign="left";
	myAjaxBox.onclick= function(){event.cancelBubble=true}
		
	if (window.mytimeoutholder) 
		window.clearTimeout(mytimeoutholder)
	myHelpBox.style.visibility = "hidden";

	var tempvar =  " <div align=center><span style='text-decoration:underline;cursor:hand;cursor:pointer' onclick='initbox();'>close</span>"
	tempvar =  tempvar + " <span style='text-decoration:underline;cursor:hand;cursor:pointer' onclick='printme("+mystring+keyval+");'>print</span></div>"
		
	// have we loaded this before, if so, it's saved and we can just redisplay the same 
	if (mystring != 'stats' || keyval != 12){
		if (eval("window."+mystring+keyval)){
			myAjaxBox.innerHTML = eval(mystring+keyval)+tempvar
			positionbox(myAjaxBox,1);
			myAjaxBox.style.visibility = "visible";
			myAjaxBox.name = mystring;
			myAjaxBox.id = keyval;
			return
		}
	}
			
	mysrcObj = srcObj;
		
    if(window.XMLHttpRequest) 
		var myxmlhttp = new XMLHttpRequest();
    else if(window.ActiveXObject) 
		var myxmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0");
	urlstring = "ajax/get"+mystring+".cfm?"+urlparms
	myxmlhttp.open("GET", urlstring,true);
	mysrcObj.style.cursor="wait"
	myxmlhttp.onreadystatechange=function() {
		if (myxmlhttp.readyState==4) {
			myAjaxBox.innerHTML = myxmlhttp.responseText + tempvar
			eval(mystring+keyval+" = myxmlhttp.responseText")
			positionbox(myAjaxBox,2);
			myAjaxBox.style.visibility = "visible";
			document.body.style.cursor="default"
			mysrcObj.style.cursor="hand"
		}
	}

	myxmlhttp.send(null)

	myAjaxBox.innerHTML = "Retrieving data... Please wait"
		
	positionbox(myAjaxBox,1);
	myAjaxBox.name = mystring;
	myAjaxBox.id = keyval;
	myAjaxBox.style.visibility = "visible";
	document.body.style.cursor="wait"
	mysrcObj.style.cursor="wait"
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
function centerbox(theBox){
	var divY = theBox.offsetHeight;
	var divX = theBox.offsetWidth;
	var scrollY = document.body.scrollTop;
	var scrollX = document.body.scrollLeft;
	var browserY = document.body.clientHeight;
	var browserX = document.body.clientWidth;


	// x is 1/2 of the screen height - 1/2 of the box height
	var x = (browserX/2)-(divX/2);
	var y = (browserY/2)-(divY/2);
	//theBox.style.left=x+scrollX;
	if ((x+scrollX)<0)
		theBox.style.left=0;
	else
		theBox.style.left = x+scrollX;
	
	if ((y+scrollY)<0)
		theBox.style.top=0;
	else
		theBox.style.top=y+scrollY;
}

function positionbox(theBox,eventcode){
	if (eventcode != 0) {
		var breakvalue = 20
		// get the div's pixel position
		divheight = theBox.offsetHeight
		divwidth = theBox.offsetWidth
		// get the scrollbar positions
		var scrx = 0
		var scry = 0;
		if( typeof( window.pageYOffset ) == 'number' )
		{
			//Netscape compliant
			scry = window.pageYOffset;
			scrx = window.pageXOffset;
		} 
		else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
		{
			//DOM compliant
			scry = document.body.scrollTop;
			scrx = document.body.scrollLeft;
		}
		else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
		{
			//IE6 standards compliant mode
			scry = document.documentElement.scrollTop;
			scrx = document.documentElement.scrollLeft;
		}
		scrollY=scry;
		scrollX=scrx;
//		scrollY = document.documentElement.scrollTop; // documentElement is used to correctly gather the scrolling offset
//		scrollX = document.documentElement.scrollLeft; // documentElement is used to correctly gather the scrolling offset
//		scrollY = document.body.scrollTop; // documentElement is used to correctly gather the scrolling offset
//		scrollX = document.body.scrollLeft; // documentElement is used to correctly gather the scrolling offset

		// get the cursor position
		if (eventcode !=2){
			cursortop = event.clientY+scrollY;
			cursorleft = event.clientX+scrollX;
		}

		browserY = document.body.clientHeight;
		browserX = document.body.clientWidth;

		if ((cursorleft * 2) < browserX){
			if (((cursortop-scrollY) * 2) < browserY){
				cursortop2 = cursortop+breakvalue 
				cursorleft2 = cursorleft
				if ((cursortop2+divheight-scrollY) > browserY)
					cursortop2 = (browserY-divheight+scrollY);
			}
			else{
				cursortop2 = cursortop - ((breakvalue/2) + divheight) 
				//if (event.type != 'mousemove') alert(cursortop2-scrollY);
				cursorleft2 = cursorleft
				if ((cursortop2-scrollY) < 0)
					cursortop2 = scrollY;
			}
		}
		else{
		
			if (((cursortop-scrollY) * 2) < browserY){
				cursortop2 = cursortop+breakvalue // below and left
				cursorleft2 = cursorleft-divwidth
			}
			else{
				cursortop2 = cursortop-(breakvalue/2)-divheight // above & left
				cursorleft2 = cursorleft-divwidth				
			}
		}				

		theBox.style.left=cursorleft2;
		theBox.style.top=cursortop2;
	}			
	else{
		if (window.mytimeoutholder)
			window.clearTimeout(mytimeoutholder)
		theBox.style.visibility = 'hidden';
	}
}
function posAbove(elm,boxobj){
	var telm = elm;
	var iLeft=0;
	var iTop=0;
	while (telm.tagName != 'BODY'){
		iLeft+=telm.offsetLeft;
		iTop+=telm.offsetTop;
		telm = telm.offsetParent
	}
	iTop = iTop-boxobj.offsetHeight;
	boxobj.style.left = iLeft;
	boxobj.style.top = iTop;
}
function posBelow(elm,boxobj){
	var telm = elm;
	var iLeft=0;
	var iTop=telm.offsetHeight;
	while (telm.tagName != 'BODY'){
		//alert(telm.tagName+':'+telm.offsetTop+':'+telm.offsetLeft+':'+telm.style.position)
		iLeft+=telm.offsetLeft;
		iTop+=telm.offsetTop;
		telm = telm.offsetParent;
		if (boxobj.absolute && telm.style.position == 'absolute'){
			elm.absolute = false;
			break;
		}
	}
	if (boxobj.justifyleft){
		iLeft = iLeft - (boxobj.offsetWidth - elm.offsetWidth);
		boxobj.justifyleft = false;
	}
	if (boxobj.adjustTop){
		iTop += boxobj.adjustTop;
		boxobj.adjustTop = 0;
	}
	boxobj.style.left = iLeft;
	boxobj.style.top = iTop;
}
function posLeft(elm,boxobj){
	var telm = elm;
	var iLeft=0;
	var iTop=0;
	while (telm.tagName != 'BODY'){
		iLeft+=telm.offsetLeft;
		iTop+=telm.offsetTop;
		iTop-=telm.scrollTop;
		telm = telm.offsetParent;
	}
	iLeft-=boxobj.clientWidth;
	boxobj.style.left = iLeft;
	boxobj.style.top = iTop;
}
function posOver(elm,boxobj){
	posBelow(elm,boxobj)
	boxobj.style.top = boxobj.offsetTop - elm.offsetHeight;
}
function resetLastPullDown(){
	pulldownBox.style.visibility='hidden';
	pulldownBox.style.width='';
	if (window.lastPullDown){
		lastPullDown.style.zIndex = lastPullDown.resetZIndex;
		lastPullDown.style.borderBottomWidth='1px'
		lastPullDown=false;
	}
}
function showmenu(elm){
	event.cancelBubble=true;
	if (window.lastPullDown && lastPullDown == elm){
		resetLastPullDown();
		return;
	}
	resetLastPullDown();
		
	if (pulldownBox.offsetWidth > elm.offsetWidth){
		elm.resetZIndex = elm.style.zIndex;
		elm.style.zIndex = elm.style.zIndex+2;
		elm.style.borderBottomWidth='0px';
		pulldownBox.style.zIndex=(elm.style.zIndex-1)
		pulldownBox.style.borderTopWidth='1px';
	}
	else{
		pulldownBox.style.borderTopWidth='0px';
		pulldownBox.style.zIndex=(elm.style.zIndex+1)
		pulldownBox.justifyleft=true;
		pulldownBox.style.width=elm.offsetWidth;
	}
	lastPullDown=elm;
	
	pulldownBox.style.visibility='visible';
	pulldownBox.absolute = true;
	posBelow(elm,pulldownBox);
	pulldownBox.style.top = pulldownBox.offsetTop-1
}
function createPullDownElms(elm){
	/*var spans = elm.getElementsByTagName('span')
	var myelm='';
	for (var i=0;i<spans.length;i++){
		if (spans[i].className=='pulldown'){
			myelm=document.createElement('<span id="new_elm">')

			myelm.innerHTML=spans[i].innerHTML;
			myelm= elm.appendChild(myelm)
			
			myelm.style.position='absolute';
			myelm.style.zIndex= elm.style.zIndex+1;
			//myelm.id='new_elm';
			myelm.absolute=true;
			posOver(spans[i],myelm)
			myelm.onclick=spans[i].onclick;
		}
	}
	var new_elms = document.getElementsByName('new_elm')
	//alert(new_elms.length)
	for (var i=0;i<new_elms.length;i++){
		new_elms[i].className = 'pulldown';
	}*/
}
function pushOverlay(z){
	//alert(document.body.scrollHeight)
	if (!window.overlayArray){
		overlayArray=new Array();
	}
	overlay.style.height = document.body.scrollHeight+'px';
	overlay.style.width = document.body.scrollWidth+'px';
	overlayArray[overlayArray.length]=z;
	overlay.style.zIndex=z;
	overlay.style.display='';
}
function popOverlay(){
	if (overlayArray.length < 2){
		overlayArray = new Array()
		overlay.style.display='none'
		return;
	}
	overlay.style.zIndex = overlayArray[overlayArray.length-2]
	var a = new Array();
	for (var i=0;i<overlayArray.length-1;i++)
		a[a.length]=overlayArray[i]
	overlayArray = a;
}









