//maintains visibility status of overview (reference) image on reloads




function setReference() 
{
	var mapdoc = top.body_frame.left_frame.document;
	var tbardoc = top.body_frame.tool_bar.document;
	
	if (document.getElementById) {
		var ov = mapdoc.getElementById("overview").style;
		}
	else if (document.all) {
		var ov = mapdoc.all.overview.style;
		}
	else {
		var ov = mapdoc.overview.all;
		}
	if (tbardoc.control_form.ov_status.value == "on") {
		ov.visibility = "visible";
		}
	else {
		ov.visibility = "hidden";
	}
}





//fit the map image to the frame window

function setMapSize(win) {

	var lftfrm = win.body_frame.left_frame;
	var docbody = win.body_frame.left_frame.document.body;
	var mapform = win.body_frame.left_frame.document.mapserv;
	
	if ( navigator.appName == "Netscape") {
		var mapwidth = (lftfrm.innerWidth).toString();
		var mapheight = (lftfrm.innerHeight).toString();
	}
	else {
		var mapwidth;
		var mapheight;
		mapwidth = (docbody.clientWidth).toString();
		mapheight = (docbody.clientHeight).toString();

	}
	mapform.mapsize.value = mapwidth + " " + mapheight;
}

// read the layer list and set layers on if checked
// also set query layer

function setLayers(win) 
{
	i=0;
	var lyrform = win.body_frame.right_frame.layers_frame.document.layers_form;
	var mapform = win.body_frame.left_frame.document.mapserv;

	lyr_string = "";
	//alert(lyrform+".layer.length");
	for ( i=0; i < (lyrform.layer.length); i++ ) 
	{
		if ( lyrform.layer[i].checked) 
		{
			mylyrval = lyrform.layer[i].value;
		    lyr_string = lyr_string + mylyrval + " ";
		}
	}
	//alert(mapform.layers.value);
	mapform.layers.value = lyr_string;
	
	i=0;
	for ( i=0; i < (lyrform.qlayer.length); i++ ) 
	{
		if ( lyrform.qlayer[i].checked ) 
		{
			mapform.qlayer.value = lyrform.qlayer[i].value;
		}
	}
	//alert(mapform.qlayer.value);
}

//set the map template--used to change to print template

function setTemplate(template,win) 
{
	var mapform = win.body_frame.left_frame.document.mapserv;
	
	mapform.template.value = template;
}

// runs 'onLoad' functions

function setParams() 
{
	setMapSize(window.top);
	setLayers(window.top);
	setTemplate("map.html",window.top);
	return true;
}

// set the mapserver mode and target frame

function setMode(mode,zoomdir) 
{
	var maptopform = top.body_frame.left_frame.document.mapserv;
	maptopform.mode.value=mode;
	maptopform.zoomdir.value=zoomdir;
	
	if (mode == "query" || mode == "nquery") {
		maptopform.target = "query_frame";
	}
	else {
		maptopform.target = "left_frame";
	}
	//alert(maptopform.target);
}

//saves the currentmode so that it can be reset after a search or redraw
//(mode must be set to recenter during search and redraw so we don't zoom at the same time)

function setLastMode(mode,zoomdir) 
{
	var ctlform = top.body_frame.tool_bar.document.control_form;
	
	ctlform.lastmode.value=mode;
	ctlform.lastzoomdir.value=zoomdir;
}

//used to reset the mode to the last mode after a search or redraw

function setModetoLast() 
{
	var ctlform = top.body_frame.tool_bar.document.control_form;
	var maptopform = top.body_frame.left_frame.document.mapserv;
	var ctlform = top.body_frame.tool_bar.document.control_form;
	
	mode = ctlform.lastmode.value;
	maptopform.mode.value = mode;
	maptopform.zoomdir.value = ctlform.lastzoomdir.value;
	if (mode == "query" || mode == "nquery") {
	//alert("Mode is query");
		maptopform.target = "query_frame";
	}
	else {
		maptopform.target = "left_frame";
	}
	//alert(maptopform.mapserv.target);
}

function setButtons(button,win) 
{
	var windoc = win.top_bar.document;
	
	windoc.zoomin.src = "zoomin_off.png";
	windoc.zoomout.src = "zoomout_off.png";
	windoc.recenter.src = "recenter_off.png";
	windoc.query.src = "query_off.png";
	if ( button == "zoomin_ref" ) { windoc.zoomin.src = "zoomin_on.png"; }
	if ( button == "zoomout_ref" ) { windoc.zoomout.src = "zoomout_on.png"; }
	if ( button == "recenter_ref" ) { windoc.recenter.src = "recenter_on.png"; }
	if ( button == "query_ref" ) { windoc.query.src = "query_on.png"; }
}

function zoomtoZoning() 
{
	var lyrtopdoc = top.body_frame.right_frame.layers_frame.document;
	var topbarctrform = top.top_bar.document.control_form;
	var topqrydoc = top.query_frame.document;
	var maptopform = top.body_frame.left_frame.document.mapserv;
	
	if (lyrtopdoc.getElementById("zoning_pending") != undefined)
	{
		lyrtopdoc.getElementById("zoning_pending").checked=true;
	}
	var extent = topbarctrform.zoom_to.options[top.top_bar.document.control_form.zoom_to.selectedIndex].value;
	var casenum = topbarctrform.zoom_to.options[top.top_bar.document.control_form.zoom_to.selectedIndex].text;
	setSelected(casenum,top);
	topqrydoc.location = "/ms/query_template/pending_zoning_query.php?case1="+casenum;
	setLayers(window.top);
	setTool("zoomin");
	maptopform.target = "left_frame";
	maptopform.mapext.value = extent;
	setTemplate("map.html",window.top);
	setMapSize(window.top);
	maptopform.submit();
}


function maintain_extent() {
	var maptopform = top.body_frame.left_frame.document.mapserv;
	maptopform.mapext.value = basin_extent;
}

// refresh map

function goReload() 
{
	var maptopform = top.body_frame.left_frame.document.mapserv;
	
	setLayers(window.top);
	setTool("zoomin");
	maptopform.mapext.value = top.body_frame.left_frame.document.mapserv.imgext.value;
	maptopform.target = "left_frame";
	setTemplate("map.html",window.top);
	setMapSize(window.top);
	maptopform.submit();
}

function toggleOverview() 
{
	var mapdoc = top.body_frame.left_frame.document;
	var ctlform = top.body_frame.tool_bar.document.control_form;
	
	if (document.getElementById) {
		var ov = mapdoc.getElementById("overview").style;
	}
	else if (document.all) {
		var ov = mapdoc.all.overview.style;
	}
	else {
		var ov = mapdoc.overview.all;
	}
	if (ov.visibility == "hidden") {
		ov.visibility = "visible";
		ctlform.ov_status.value = "on";
	}
	else {
		ov.visibility = "hidden";
		ctlform.ov_status.value = "off"; 
	}
}

function setLayerStatus() 
{
	var lyrtopform = top.body_frame.right_frame.layers_frame.document.layers_form
	var docmapscale = document.mapserv.mapscale;
	
	var layers = lyrtopform.layer;
	for ( i=0; i<layers.length; i++ ) 
	{
	    //for ( i=0; i<16; i++ ) {
		//alert( "top.body_frame.right_frame.layers_frame.document.getElementById('" + layers[i].id + "_label')");
		label = eval("top.body_frame.right_frame.layers_frame.document.getElementById('" + layers[i].id + "_label')");
		maxscale = eval("top.body_frame.right_frame.layers_frame.document.layers_form." + layers[i].id + "_maxscale.value")*1;
		minscale = eval("top.body_frame.right_frame.layers_frame.document.layers_form." + layers[i].id + "_minscale.value")*1;
		mapscale = docmapscale.value*1;
		if ((mapscale > maxscale) || (mapscale < minscale)) {
			label.style.color = "#585858";
		}
		else {
			label.style.color = "black";
		}
		//alert(layers[i].id + ": " +mapscale + " " + maxscale + " " + minscale);
	}
	//alert(mapscale);
}

function toggleMeasureDisplay(mdStatus) 
{
	var mapdoc = top.body_frame.left_frame.document;

	if (document.getElementById) {
		var md = mapdoc.getElementById("measure").style;
	}
	else if (document.all) {
		var md = mapdoc.all.measure.style;
	}
	else {
		var md = mapdoc.measure.all;
	}
	if (mdStatus == "on") {
		md.visibility = "visible";
	}
	else {
		md.visibility = "hidden";
	}
}

function showLegend()
{
	var mapleg = top.body_frame.left_frame.document.mapserv.legend;
	
	var legend_img = new Image();
	legend_img.src = mapleg.value;
	legend_width = legend_img.width;
	legend_height = legend_img.height;
	imgloc = mapleg.value;
	window.open('legend.php?imgloc='+imgloc,'legendWin','width=300,height=500,scrollbars=yes,resizable=yes');
}

function setLegend() 
{
	var mapleg = top.body_frame.left_frame.document.mapserv.legend;
	var docleg = top.body_frame.right_frame.layers_frame.document.legend
	
	var legend_img = new Image();
	legend_img.src = mapleg.value;
	docleg.src = legend_img.src;
}

function toggleLegend(status) 
{ 
	var lyrtopdoc = top.body_frame.right_frame.layers_frame.document;
	var refdoc = top.body_frame.right_frame.ref_frame.document;
	var topdoc = top.top_bar.document;
	var topdocall = top.body_frame.left_frame.document.all;
	
	if (document.getElementById) {
		var legend = lyrtopdoc.getElementById("legend").style;
		var backing = lyrtopdoc.getElementById("backing").style;
		var expand_collapse = refdoc.getElementById("expand_collapse").style;
		var lay = topdoc.getElementById("lay").style;
		var leg = topdoc.getElementById("leg").style;
	}
	else if (document.all) {
		var legend = topdocall.legend.style;
		var backing = topdocall.backing.style;
	}
	else {
		var legend = top.body_frame.left_frame.document.legend.all;
		var backing = top.body_frame.left_frame.document.backing.all;
	}
	if (!status) {
		if (legend.visibility == "hidden") {
			legend.visibility = "visible";
			backing.visibility = "visible";
			legend.zIndex = "9";
			expand_collapse.visibility = "hidden";
			//visible = block
			//hidden = none
			lay.display = "block";
			leg.display = "none";
		}
		else {
			legend.visibility = "hidden";
			backing.visibility = "hidden";
			legend.zIndex = "2";
			expand_collapse.visibility = "visible";
			lay.display = "none";
			leg.display = "block";
			
		}
	}
	if (status == 'off') {
		legend.visibility = "hidden";
		backing.visibility = "hidden";
		legend.zIndex = "2";
	}
}

function openPrintableMap() 
{
	var maptopform = top.body_frame.left_frame.document.mapserv;
	
	setLayers(window.top);
	//setButtons("recenter_ref",window.top);
	maptopform.mapext.value = maptopform.imgext.value;
	maptopform.mode.value = "browse";
	maptopform.zoomdir.value = "0";
	maptopform.mapsize.value = "700 640";
	maptopform.target = "printable";
	setTemplate("print_map.html",window.top);
	maptopform.submit();
	setTemplate("map.html",window.top);
	maptopform.zoomdir.value = "1";
	maptopform.target = "_self";
}

function openSearch() 
{
	var topbarctrform = top.top_bar.document.control_form;
	
	var search_type = top.top_bar.document.control_form.search.options[top.top_bar.document.control_form.search.selectedIndex].value;
	window.open("../search_files/search.php?type="+search_type,"","status=yes,width=500,height=400,scrollbars,resizable");
	topbarctrform.search.selectedIndex = 0;
}

function zoomToROWExtent(extent, token, plat) 
{
	var mapform = win.body_frame.left_frame.document.mapserv;
	var docrowhidden = win.top_bar.document.row_hidden;
	
	if (window.opener == null) {
		win = window.top;
		setLayers(win);
		//ROW
		if ( typeof(docrowhidden) != "undefined" ) 
		{
		    docrowhidden.plat_id.value=plat;
            //alert (plat);
		}	
		//setButtons("recenter_ref",window.opener.top);
		mapform.mode.value = "browse";
		mapform.zoomdir.value = "0";
		mapform.target = "left_frame";
		mapform.mapext.value = extent;
		//mapform.map_sstreet_class_expression.value = "'"+token+"'";
		mapform.map_sparcel_class_expression.value = "'"+token+"'";
		setTemplate("map.html",win);
		setMapSize(win);
		mapform.submit();
	}
	else 
	{
		win = window.opener.top;
		setLayers(win);
		//ROW
                if ( typeof(docrowhidden) != "undefined" )
                {
				  docrowhidden.plat_id.value=plat;
        		  //alert (plat);
                }
		//setButtons("recenter_ref",window.opener.top);
		mapform.mode.value = "browse";
		mapform.zoomdir.value = "0";
		mapform.target = "left_frame";
		mapform.mapext.value = extent;
		//mapform.map_sstreet_class_expression.value = "'"+token+"'";
		mapform.map_sparcel_class_expression.value = "'"+token+"'";
		setTemplate("map.html",win);
		setMapSize(win);
		mapform.submit();
		self.close();
	}
}

function zoomToExtent(extent, token, plat) 
{
	
	if (window.opener == null) 
	{
		win = window.top;
		setLayers(win);
	    
		var mapform = win.body_frame.left_frame.document.mapserv;
		var docrowhidden = win.top_bar.document.row_hidden;
	

        //ROW
		if ( typeof(docrowhidden) != "undefined" ) 
		{
		    docrowhidden.plat_id.value=plat;
            //alert (plat);
		}	
		//setButtons("recenter_ref",window.opener.top);
		mapform.mode.value = "browse";
		mapform.zoomdir.value = "0";
		mapform.target = "left_frame";
		mapform.mapext.value = extent;
		setTemplate("map.html",win);
		setMapSize(win);
		mapform.submit();
	}
	else 
	{
		win = window.opener.top;
		setLayers(win);
		
		var mapform = win.body_frame.left_frame.document.mapserv;
		var docrowhidden = win.top_bar.document.row_hidden;
		
        //ROW
        if ( typeof(win.top_bar.document.row_hidden) != "undefined" )
        {
			docrowhidden.plat_id.value=plat;
            //alert (plat);
        }
		//setButtons("recenter_ref",window.opener.top);
		mapform.mode.value = "browse";
		mapform.zoomdir.value = "0";
		mapform.target = "left_frame";
		mapform.mapext.value = extent;
		setTemplate("map.html",win);
		setMapSize(win);
		mapform.submit();
		self.close();
	}
}

function openNameZoomTo() 
{
	var topbarctrform = top.top_bar.document.control_form;
	
	type = topbarctrform.selectNameZoomTo.options[document.control_form.selectNameZoomTo.selectedIndex].value;
	if (type != '') {
		window.open("zoom_to.php?type="+type,"zoomToWin","width=450,height=450");
	}
	setTool("recenter");
}

function openNumberZoomTo() 
{
	var topbarctrform = top.top_bar.document.control_form;
	
	type = topbarctrform.selectNumberZoomTo.options[document.control_form.selectNumberZoomTo.selectedIndex].value;
	if (type != '') {
		window.open("zoom_to.php?type="+type,"zoomToWin","width=450,height=450");
	}
	setTool("recenter");
}

function zoomToFull() 
{
	var maptopform = top.body_frame.left_frame.document.mapserv;
	
	setLayers(window.top);
	setTool("zoomin");
	maptopform.mapext.value = "";
	maptopform.imgxy.value = "";
	maptopform.target = "left_frame";
	setTemplate("map.html",window.top);
	setMapSize(window.top);
	maptopform.submit();
}

function drawRadius(x,y,radiusList)
{
		if (window.theGraphicPoint) 
		{
			for (j in theGraphicPoint)
			{
				gr.removeShape(theGraphicPoint[j])
			}
		}
		else
		{
			theGraphicPoint = new Array();
		}
		if (window.theGraphicCircle) 
		{
			for (j in theGraphicCircle)
			{
				gr.removeShape(theGraphicCircle[j])
			}
		}
		else
		{
			theGraphicCircle = new Array();
		}
		for ( i in radiusList )
		{
			gr.penColor = "red";
			theGraphicPoint[i] = gr.drawMarker(x,y);
			theGraphicCircle[i] = gr.drawCircle(x,y,radiusList[i]);
		}
}

function redrawRadius()
{
	var mapx = top.body_frame.tool_bar.document.control_form.radiusx.value;
	var mapy = top.body_frame.tool_bar.document.control_form.radiusy.value;
	var radiusFeet = top.body_frame.tool_bar.document.control_form.radiussize.value;
	
	if ((mapx != "") && (mapy != "") && (radiusFeet != ""))
	{
		var page = document.mapserv.mapsize.value.split(" ");
		var pagex = page[0];
		var pagey = page[1];
		var mapext = document.mapserv.imgext.value.split(" ");
		var xmin = mapext[0];
		var ymin = mapext[1];
		var xmax = mapext[2];
		var ymax = mapext[3];
		var A = pagex / (xmax - xmin);
		var B = -xmin * ( pagex / (xmax - xmin));
		var x = (A * mapx) + B;
		var C = pagey / (ymin - ymax);
		var D = -ymax * ( pagey / (ymin - ymax));
		var y = (C * mapy) + D;
		var mwidth = mapext[2] - mapext[0];
		var radiusFeetList = radiusFeet.split(",");
		var radiusList = new Array();
		for ( i in radiusFeetList )
		{
			radiusList[i] = radiusFeetList[i]*(pagex/mwidth);
			if (radiusList[i] < 800)
			{
				drawRadius(x,y,radiusList);
			}	
		}
	}
}

function eraseGraphics() 
{
	var toplftfrm = top.body_frame.left_frame;
	var tbardoc = top.body_frame.tool_bar.document;
	var maptopform = top.body_frame.left_frame.document.mapserv;
	var mapdoc = top.body_frame.left_frame.document;
		
	if (toplftfrm.theGraphicPoint)
	{
		for (i in toplftfrm.theGraphicPoint)
		{
			toplftfrm.gr.removeShape(toplftfrm.theGraphicPoint[i]);
		}
		toplftfrm.theGraphicPoint = undefined;
	}
	if (toplftfrm.theGraphicCircle)
	{
		for (i in toplftfrm.theGraphicCircle)
		{
			toplftfrm.gr.removeShape(toplftfrm.theGraphicCircle[i]);
		}
		toplftfrm.theGraphicCircle = undefined;
	}
	if (toplftfrm.measurePointList)
	{
		for (i in toplftfrm.measurePointList)
		{
			toplftfrm.gr.removeShape(toplftfrm.measurePointList[i]);
		}
		toplftfrm.measurePointList = undefined;
	}
	if (toplftfrm.measureLineList)
	{
		for (i in toplftfrm.measureLineList)
		{
			toplftfrm.gr.removeShape(toplftfrm.measureLineList[i]);
		}
		toplftfrm.measureLineList = undefined;
	}
	toplftfrm.gr.clear();
	tbardoc.control_form.radiusx.value= "";
	tbardoc.control_form.radiusy.value= "";
	tbardoc.control_form.radiussize.value= "";
	mapdoc.measure_form.segment_distance.value = "0.0";
	mapdoc.measure_form.total_distance.value = "0.0";
	toggleMeasureDisplay("off");
	
	if (maptopform.layerdata.value != "")
	{
		maptopform.layerdata.value = "";
		goReload();
	}
}
	
function makeImage(width,height) 
{
	var maptopform = top.body_frame.left_frame.document.mapserv;
	
	setLayers(window.top);
	setTool("zoomin");
	maptopform.mode.value = "map";
	maptopform.mapext.value = top.body_frame.left_frame.document.mapserv.imgext.value;
	maptopform.target = "_self";
	maptopform.mapsize.value = width+" "+height;

    var old_img = maptopform.map_imagetype.value;
    var old_action = maptopform.action;
    var old_method = maptopform.method;

    maptopform.map_imagetype.value = "jpeg2";
	setTemplate("map.html",window.top);
  
    maptopform.action = maptopform.action + ".jpx"
    maptopform.method = "post";
	maptopform.submit();

    maptopform.method = old_method;
    maptopform.action = old_action;
    maptopform.map_imagetype.value = old_img;
}

function makePDF(width,height) 
{
        var maptopform = top.body_frame.left_frame.document.mapserv;
		
		setLayers(window.top);
        setTool("zoomin");
        maptopform.mode.value = "map";
        maptopform.mapext.value = maptopform.imgext.value;
        maptopform.target = "_new";
        maptopform.mapsize.value = width+" "+height;

        var old_img = maptopform.map_imagetype.value;
        var old_action = maptopform.action;
        var old_method = maptopform.method;

        maptopform.map_imagetype.value = "PDF";

        setTemplate("map.html",window.top);
 
        maptopform.action = top.body_frame.left_frame.document.mapserv.action + ".pdf"
        maptopform.method = "post";
        maptopform.submit();

        maptopform.method = old_method;
        maptopform.action = old_action;
        maptopform.map_imagetype.value = old_img;
}

function make3DModel() 
{
	var maptopform = top.body_frame.left_frame.document.mapserv;
	var mapdoc = top.body_frame.left_frame.document;
	
	var mapsize = maptopform.mapsize.value;
	var img = mapdoc.img.src;
	var mapext = maptopform.imgext.value;
	var extent = mapext.split(" ");
	var xmin = extent[0];
	var ymin = extent[1];
	var xmax = extent[2];
	var ymax = extent[3];
	var win = xmin+" "+ymax+" "+xmax+" "+ymin;
	//top.document.location = "http://www.gis.fc/";
	window.open("/apps/terrain/3d.php?win="+win+"&mapext="+mapext+"&img="+img+"&mapsize="+mapsize,"3dmodelWin","");
}
 
function setSelected(objectid,win) 
{
	var mapform = win.body_frame.left_frame.document.mapserv;
	
	if ( typeof(mapform.objectid) != "undefined" ) {
 		mapform.objectid.value = objectid;
	}
}

function setData(data,win) 
{
	var mapform = win.body_frame.left_frame.document.mapserv;
	
	if ( typeof(mapform.layerdata) != "undefined" ) {
 		mapform.layerdata.value = data;
	}
}

function open_efs()
{
	var maptopform = top.body_frame.left_frame.document.mapserv;
	
	extent = maptopform.imgext.value;
	ext_list = extent.split(" ");
	efs_xmin = ext_list[0]/1;
	efs_ymin = ext_list[1]/1;
	efs_xmax = ext_list[2]/1;
	efs_ymax = ext_list[3]/1;
	efs_x = efs_xmin + ((efs_xmax - efs_xmin)/2);
	efs_y = efs_ymin + ((efs_ymax - efs_ymin)/2);
	document.location = "/ms/efs/efs_script.php.vbs?efs_x="+efs_x+"&efs_y="+efs_y;
}

function set_msg(msg)
{
	var msgfrmlcn = top.msg_frame.document;
	
	msg_location = msgfrmlcn.location.toString();
	if (msg_location.search("/ms/master/messages.php") == -1)
	{
		msgfrmlcn.location = "/ms/master/messages.php";
	}
	msg_location = msgfrmlcn.location.toString();
	if (msg_location.search("/ms/master/messages.php") >= 0)
	{
		msgfrmlcn.getElementById("msgbox").value = msg;
	}
	
	
}

function get_msg()
{
	var msgfrmlcn = top.msg_frame.document;
	
	msg_location = msgfrmlcn.location.toString();
	if (msg_location.search("/ms/master/messages.php") == -1)
	{
		msg = msgfrmlcn.getElementById("msgbox").value;
	}
	else
	{
		msg = "";
	}
}

