theButtons = ["zoomin","zoomout","recenter","query","fullview","radius","measure","erase","model","efs","coordinates"];
lightedBorderColor = "#e5e5e5";
shadowBorderColor = "#000000";
backGroundColor = "#B0C4DE";
activeColor = "#dddddd";
activeTool = "zoomin";
activeToolText = "Zoom In";

//handle user clicks on tool bar
function setTool(tool) {
	switch(tool) {
		case "zoomin":
			setMode("browse","1");
			setLastMode("browse","1");
			resetButtons();
			buttonIn("zoomin");
			activeTool = "zoomin";
			activeToolText = "Zoom In";
			break;
		case "zoomout":
			setMode("browse","-1");
			setLastMode("browse","-1");
			resetButtons();
			buttonIn("zoomout");
			activeTool = "zoomout";
			activeToolText = "Zoom Out";
			break;
		case "recenter":
			setMode("browse","0");
			setLastMode("browse","0");
			resetButtons();
			buttonIn("recenter");
			activeTool = "recenter";
			break;
		case "query":
            var qm;
            if ( typeof(top.body_frame.tool_bar.document.control_form.qtype) != "undefined" )
            {
				qm = top.body_frame.tool_bar.document.control_form.qtype.value; 
            }
            else
            {
				qm = "query";
			}
			setMode(qm,"");
			setLastMode("query","");
			resetButtons();
			buttonIn("query");
			activeTool = "query";
			activeToolText = "Query";
			break;
		case "radius":
			setMode("radius","");
			setLastMode("radius","");
			resetButtons();
			buttonIn("radius");
			activeTool = "radius";
			activeToolText = "Circular Buffer";
			break;
		case "measure":
			setMode("measure","");
			setLastMode("measure","");
			resetButtons();
			buttonIn("measure");
			activeTool = "measure";
			activeToolText = "Distance Measure";
			break;
		case "addrecord":
			setMode("addrecord","");
			setLastMode("addrecord","");
			resetButtons();
			buttonIn("addrecord");
			activeTool = "addrecord";
	     	break;
		case "delrecord":
			setMode("delrecord","");
			setLastMode("delrecord","");
			resetButtons();
			buttonIn("delrecord");
			activeTool = "delrecord";
			break;
		case "efs":
			buttonIn("efs");
			open_efs();
			break;
		case "coordinates":
			setMode("coordinates","");
			setLastMode("coordinates","");
			resetButtons();
			buttonIn("coordinates");
			activeTool = "coordinates";
			activeToolText = "Get Lat/Lon";
			break;
	}
	return false;
}

//handle mouse over event for tool bar
function mouseOver(name,tip) {
	if (tip == undefined) {tip = "";}
	set_msg(tip);
	if (isActive(name) == false) {
		buttonOut(name);
	}
}

//handle mouse out event for tool bar
function mouseOut(name) {
	if (activeToolText != undefined)
	{
		set_msg("Active tool: "+activeToolText);
	}
	if (isActive(name) == false) {
		buttonOff(name);
	}
	

}

//make button appear activated
function buttonIn(name) {
	var button = getButton(name);
        if ( button != null ) {
	button.borderTopColor = shadowBorderColor;
	button.borderBottomColor = lightedBorderColor;
	button.borderLeftColor = shadowBorderColor;
	button.borderRightColor = lightedBorderColor;
	button.backgroundColor = activeColor;
        }
}

//make button appear in normal inactive state
function buttonOff(name) {
	var button = getButton(name);
        if ( button != null ) {
	button.borderTopColor = backGroundColor;
	button.borderBottomColor = backGroundColor;
	button.borderLeftColor = backGroundColor;
	button.borderRightColor = backGroundColor;
	button.backgroundColor = backGroundColor;
        }
}

//make button appear 'popped up' and ready to be clicked
function buttonOut(name) {
	var button = getButton(name);
        if ( button != null ) {
	button.borderTopColor = lightedBorderColor;
	button.borderBottomColor = shadowBorderColor;
	button.borderLeftColor = lightedBorderColor;
	button.borderRightColor = shadowBorderColor;
	button.backgroundColor = backGroundColor;
       }
}


function getButton(name) {
        var but = null;
	//alert(name);
	if (document.getElementById) {
                if ( eval('top.body_frame.tool_bar.document.getElementById("' + name + '")')) {
                but  = eval('top.body_frame.tool_bar.document.getElementById("' + name + '").style');
               }
	}
	else if (document.all) {
		but = eval('top.body_frame.tool_bar.document.all.' + name + '.style');
	}
	else {
		but = eval('top.body_frame.tool_bar.document.' + name + '.all');
	}
	return but;
}

function resetButtons() {
	for (i=0; i<theButtons.length; i++) {
		buttonOff(theButtons[i]);
	}
}



//returns true whan a button is active
function isActive(name) {
	var button = getButton(name);
    if ( button != null ) {
	//alert(button.backgroundColor);
	//alert(activeTool);
	//if (button.backgroundColor == activeColor) {
		if (activeTool == name) {
			return true;
		}
		else {
			return false;
		}
     } 
     else {
        return false;
     }
}


